@killingjacky/claude-code-router 2.1.0 → 2.2.0

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.
Files changed (60) hide show
  1. package/README.md +53 -19
  2. package/dist/cli.js +234 -238
  3. package/dist/main/cli.js +8896 -0
  4. package/dist/main/fusion-tool-fallback-mcp.js +5 -0
  5. package/dist/main/fusion-vision-mcp.js +10 -0
  6. package/dist/main/gateway-bootstrap.js +2 -0
  7. package/dist/main/local-agent-auth-provider-hook.js +294 -0
  8. package/dist/main/media-tools-proxy-mcp.js +6 -0
  9. package/dist/main/request-log-worker.js +951 -0
  10. package/dist/main/route-script-worker.js +61 -0
  11. package/dist/main/toolhub-mcp.js +48 -0
  12. package/dist/main/upstream-header-sanitizer.js +1 -0
  13. package/dist/models.json +657155 -0
  14. package/dist/renderer/assets/assets/anthropic-CJYB5ODC.png +0 -0
  15. package/dist/renderer/assets/assets/bailian-6RH6ASGG.ico +0 -0
  16. package/dist/renderer/assets/assets/claude-code-WX35JWK4.png +0 -0
  17. package/dist/renderer/assets/assets/claudeapi-A6VUG2I3.png +0 -0
  18. package/dist/renderer/assets/assets/code0-XF6QJ6WD.png +0 -0
  19. package/dist/renderer/assets/assets/codex-3X2KBXKY.png +0 -0
  20. package/dist/renderer/assets/assets/deepseek-ZIDCDTQF.ico +0 -0
  21. package/dist/renderer/assets/assets/fenno-XFKUO3XQ.jpg +0 -0
  22. package/dist/renderer/assets/assets/gemini-7QB7T63T.svg +1 -0
  23. package/dist/renderer/assets/assets/grok-RUIG6CO6.ico +0 -0
  24. package/dist/renderer/assets/assets/infistar-ai-QGWTTUZK.jpg +0 -0
  25. package/dist/renderer/assets/assets/kilo-WKXQUJ25.svg +13 -0
  26. package/dist/renderer/assets/assets/logo-IPLFWCDN.png +0 -0
  27. package/dist/renderer/assets/assets/mascot-transition-DUBPNIIV.svg +100 -0
  28. package/dist/renderer/assets/assets/minimax-5TL6POE3.ico +0 -0
  29. package/dist/renderer/assets/assets/mistral-2RFSC6K3.webp +0 -0
  30. package/dist/renderer/assets/assets/moonshot-FNEXMLNW.ico +0 -0
  31. package/dist/renderer/assets/assets/nvidia-CCRWBFBH.svg +1 -0
  32. package/dist/renderer/assets/assets/openai-2EIP7LI2.png +0 -0
  33. package/dist/renderer/assets/assets/opencode-CEWXDOQI.ico +0 -0
  34. package/dist/renderer/assets/assets/openrouter-CZIFREDB.ico +0 -0
  35. package/dist/renderer/assets/assets/pi-O6OOC4YY.svg +21 -0
  36. package/dist/renderer/assets/assets/qiniu-ai-A5VJAOJ6.png +0 -0
  37. package/dist/renderer/assets/assets/runapi-UAX35AOL.jpg +0 -0
  38. package/dist/renderer/assets/assets/siliconflow-QCZUQAH2.png +0 -0
  39. package/dist/renderer/assets/assets/teamorouter-3LCEETRZ.png +0 -0
  40. package/dist/renderer/assets/assets/tray-cyan-C3U4WBE7.png +0 -0
  41. package/dist/renderer/assets/assets/tray-orange-VUJTRHBB.png +0 -0
  42. package/dist/renderer/assets/assets/tray-violet-EGMLZ2GB.png +0 -0
  43. package/dist/renderer/assets/assets/unity2-QCJYG2D6.jpg +0 -0
  44. package/dist/renderer/assets/assets/workbuddy-LBUELROU.png +0 -0
  45. package/dist/renderer/assets/assets/xiaomi-mimo-LQ6RRXCR.png +0 -0
  46. package/dist/renderer/assets/assets/zai-global-coding-OMCES3LL.svg +219 -0
  47. package/dist/renderer/assets/assets/zai-global-general-OMCES3LL.svg +219 -0
  48. package/dist/renderer/assets/assets/zcode-Z7V7YY2Q.png +0 -0
  49. package/dist/renderer/assets/assets/zhipu-cn-coding-7BBWPUTC.png +0 -0
  50. package/dist/renderer/assets/assets/zhipu-cn-general-7BBWPUTC.png +0 -0
  51. package/dist/renderer/assets/browser.js +408 -0
  52. package/dist/renderer/assets/log-body.worker.js +3 -0
  53. package/dist/renderer/assets/main.css +2 -0
  54. package/dist/renderer/assets/main.js +103 -0
  55. package/dist/renderer/assets/tray.js +8 -0
  56. package/dist/renderer/assets/web-client-bridge.js +1 -0
  57. package/dist/renderer/pages/browser/index.html +13 -0
  58. package/dist/renderer/pages/home/index.html +18 -0
  59. package/dist/renderer/pages/tray/index.html +17 -0
  60. package/package.json +6 -2
@@ -0,0 +1,294 @@
1
+ "use strict";var nD=Object.create;var ws=Object.defineProperty;var oD=Object.getOwnPropertyDescriptor;var iD=Object.getOwnPropertyNames;var sD=Object.getPrototypeOf,AD=Object.prototype.hasOwnProperty;var B=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),aD=(t,e)=>{for(var r in e)ws(t,r,{get:e[r],enumerable:!0})},op=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of iD(e))!AD.call(t,o)&&o!==r&&ws(t,o,{get:()=>e[o],enumerable:!(n=oD(e,o))||n.enumerable});return t};var le=(t,e,r)=>(r=t!=null?nD(sD(t)):{},op(e||!t||!t.__esModule?ws(r,"default",{value:t,enumerable:!0}):r,t)),cD=t=>op(ws({},"__esModule",{value:!0}),t);var j=B((TK,ap)=>{"use strict";ap.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"),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"),kHTTP2InitialWindowSize:Symbol("http2 initial window size"),kHTTP2ConnectionWindowSize:Symbol("http2 connection window size"),kEnableConnectProtocol:Symbol("http2session connect protocol"),kRemoteSettings:Symbol("http2session remote settings"),kHTTP2Stream:Symbol("http2session client stream"),kPingInterval:Symbol("ping interval"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent"),kSocks5ProxyAgent:Symbol("socks5 proxy agent")}});var mc=B((xK,lp)=>{"use strict";var _n=0,hc=1e3,Cc=(hc>>1)-1,ur,Ec=Symbol("kFastTimer"),zt=[],Ic=-2,Qc=-1,dp=0,cp=1;function Bc(){_n+=Cc;let t=0,e=zt.length;for(;t<e;){let r=zt[t];r._state===dp?(r._idleStart=_n-Cc,r._state=cp):r._state===cp&&_n>=r._idleStart+r._idleTimeout&&(r._state=Qc,r._idleStart=-1,r._onTimeout(r._timerArg)),r._state===Qc?(r._state=Ic,--e!==0&&(zt[t]=zt[e])):++t}zt.length=e,zt.length!==0&&up()}function up(){ur?.refresh?ur.refresh():(clearTimeout(ur),ur=setTimeout(Bc,Cc),ur?.unref())}var Ds=class{[Ec]=!0;_state=Ic;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(e,r,n){this._onTimeout=e,this._idleTimeout=r,this._timerArg=n,this.refresh()}refresh(){this._state===Ic&&zt.push(this),(!ur||zt.length===1)&&up(),this._state=dp}clear(){this._state=Qc,this._idleStart=-1}};lp.exports={setTimeout(t,e,r){return e<=hc?setTimeout(t,e,r):new Ds(t,e,r)},clearTimeout(t){t[Ec]?t.clear():clearTimeout(t)},setFastTimeout(t,e,r){return new Ds(t,e,r)},clearFastTimeout(t){t.clear()},now(){return _n},tick(t=0){_n+=t-hc+1,Bc(),Bc()},reset(){_n=0,zt.length=0,clearTimeout(ur),ur=null},kFastTimer:Ec}});var _=B((UK,Lp)=>{"use strict";var gp=Symbol.for("undici.error.UND_ERR"),te=class extends Error{constructor(e,r){super(e,r),this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](e){return e&&e[gp]===!0}get[gp](){return!0}},fp=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"),yc=class extends te{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[fp]===!0}get[fp](){return!0}},pp=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"),wc=class extends te{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[pp]===!0}get[pp](){return!0}},hp=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"),Rc=class extends te{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[hp]===!0}get[hp](){return!0}},Cp=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"),bc=class extends te{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[Cp]===!0}get[Cp](){return!0}},Ep=Symbol.for("undici.error.UND_ERR_INVALID_ARG"),Sc=class extends te{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[Ep]===!0}get[Ep](){return!0}},Ip=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"),Dc=class extends te{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[Ip]===!0}get[Ip](){return!0}},Qp=Symbol.for("undici.error.UND_ERR_ABORT"),ks=class extends te{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[Qp]===!0}get[Qp](){return!0}},Bp=Symbol.for("undici.error.UND_ERR_ABORTED"),kc=class extends ks{constructor(e){super(e),this.name="AbortError",this.message=e||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](e){return e&&e[Bp]===!0}get[Bp](){return!0}},mp=Symbol.for("undici.error.UND_ERR_INFO"),Nc=class extends te{constructor(e){super(e),this.name="InformationalError",this.message=e||"Request information",this.code="UND_ERR_INFO"}static[Symbol.hasInstance](e){return e&&e[mp]===!0}get[mp](){return!0}},yp=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"),Mc=class extends te{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[yp]===!0}get[yp](){return!0}},wp=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"),Tc=class extends te{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[wp]===!0}get[wp](){return!0}},Rp=Symbol.for("undici.error.UND_ERR_DESTROYED"),xc=class extends te{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[Rp]===!0}get[Rp](){return!0}},bp=Symbol.for("undici.error.UND_ERR_CLOSED"),Uc=class extends te{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[bp]===!0}get[bp](){return!0}},Sp=Symbol.for("undici.error.UND_ERR_SOCKET"),Fc=class extends te{constructor(e,r){super(e),this.name="SocketError",this.message=e||"Socket error",this.code="UND_ERR_SOCKET",this.socket=r}static[Symbol.hasInstance](e){return e&&e[Sp]===!0}get[Sp](){return!0}},Dp=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"),Pc=class extends te{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[Dp]===!0}get[Dp](){return!0}},kp=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"),Lc=class extends te{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[kp]===!0}get[kp](){return!0}},Np=Symbol.for("undici.error.UND_ERR_HTTP_PARSER"),vc=class extends Error{constructor(e,r,n){super(e),this.name="HTTPParserError",this.code=r?`HPE_${r}`:void 0,this.data=n?n.toString():void 0}static[Symbol.hasInstance](e){return e&&e[Np]===!0}get[Np](){return!0}},Mp=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"),_c=class extends te{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[Mp]===!0}get[Mp](){return!0}},Tp=Symbol.for("undici.error.UND_ERR_REQ_RETRY"),Oc=class extends te{constructor(e,r,{headers:n,data:o}){super(e),this.name="RequestRetryError",this.message=e||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=r,this.data=o,this.headers=n}static[Symbol.hasInstance](e){return e&&e[Tp]===!0}get[Tp](){return!0}},xp=Symbol.for("undici.error.UND_ERR_RESPONSE"),Gc=class extends te{constructor(e,r,{headers:n,body:o}){super(e),this.name="ResponseError",this.message=e||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=r,this.body=o,this.headers=n}static[Symbol.hasInstance](e){return e&&e[xp]===!0}get[xp](){return!0}},Up=Symbol.for("undici.error.UND_ERR_PRX_TLS"),Hc=class extends te{constructor(e,r,n={}){super(r,{cause:e,...n}),this.name="SecureProxyConnectionError",this.message=r||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=e}static[Symbol.hasInstance](e){return e&&e[Up]===!0}get[Up](){return!0}},Fp=Symbol.for("undici.error.UND_ERR_MAX_ORIGINS_REACHED"),Yc=class extends te{constructor(e){super(e),this.name="MaxOriginsReachedError",this.message=e||"Maximum allowed origins reached",this.code="UND_ERR_MAX_ORIGINS_REACHED"}static[Symbol.hasInstance](e){return e&&e[Fp]===!0}get[Fp](){return!0}},Vc=class extends te{constructor(e,r){super(e),this.name="Socks5ProxyError",this.message=e||"SOCKS5 proxy error",this.code=r||"UND_ERR_SOCKS5"}},Pp=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"),qc=class extends te{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[Pp]===!0}get[Pp](){return!0}};Lp.exports={AbortError:ks,HTTPParserError:vc,UndiciError:te,HeadersTimeoutError:wc,HeadersOverflowError:Rc,BodyTimeoutError:bc,RequestContentLengthMismatchError:Mc,ConnectTimeoutError:yc,InvalidArgumentError:Sc,InvalidReturnValueError:Dc,RequestAbortedError:kc,ClientDestroyedError:xc,ClientClosedError:Uc,InformationalError:Nc,SocketError:Fc,NotSupportedError:Pc,ResponseContentLengthMismatchError:Tc,BalancedPoolMissingUpstreamError:Lc,ResponseExceededMaxSizeError:_c,RequestRetryError:Oc,ResponseError:Gc,SecureProxyConnectionError:Hc,MaxOriginsReachedError:Yc,Socks5ProxyError:Vc,MessageSizeExceededError:qc}});var Ms=B((FK,_p)=>{"use strict";var Wc=["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"],Ns={};Object.setPrototypeOf(Ns,null);var vp={};Object.setPrototypeOf(vp,null);function FD(t){let e=vp[t];return e===void 0&&(e=Buffer.from(t)),e}for(let t=0;t<Wc.length;++t){let e=Wc[t],r=e.toLowerCase();Ns[e]=Ns[r]=r}_p.exports={wellknownHeaderNames:Wc,headerNameLowerCasedRecord:Ns,getHeaderNameAsBuffer:FD}});var Yp=B((PK,Hp)=>{"use strict";var{wellknownHeaderNames:Op,headerNameLowerCasedRecord:PD}=Ms(),Jc=class t{value=null;left=null;middle=null;right=null;code;constructor(e,r,n){if(n===void 0||n>=e.length)throw new TypeError("Unreachable");if((this.code=e.charCodeAt(n))>127)throw new TypeError("key must be ascii string");e.length!==++n?this.middle=new t(e,r,n):this.value=r}add(e,r){let n=e.length;if(n===0)throw new TypeError("Unreachable");let o=0,i=this;for(;;){let s=e.charCodeAt(o);if(s>127)throw new TypeError("key must be ascii string");if(i.code===s)if(n===++o){i.value=r;break}else if(i.middle!==null)i=i.middle;else{i.middle=new t(e,r,o);break}else if(i.code<s)if(i.left!==null)i=i.left;else{i.left=new t(e,r,o);break}else if(i.right!==null)i=i.right;else{i.right=new t(e,r,o);break}}}search(e){let r=e.length,n=0,o=this;for(;o!==null&&n<r;){let i=e[n];for(i<=90&&i>=65&&(i|=32);o!==null;){if(i===o.code){if(r===++n)return o;o=o.middle;break}o=o.code<i?o.left:o.right}}return null}},Ts=class{node=null;insert(e,r){this.node===null?this.node=new Jc(e,r,0):this.node.add(e,r)}lookup(e){return this.node?.search(e)?.value??null}},Gp=new Ts;for(let t=0;t<Op.length;++t){let e=PD[Op[t]];Gp.insert(e,e)}Hp.exports={TernarySearchTree:Ts,tree:Gp}});var O=B((LK,dh)=>{"use strict";var zo=require("node:assert"),{kDestroyed:Jp,kBodyUsed:On,kListeners:Us,kBody:Vp}=j(),{IncomingMessage:LD}=require("node:http"),Kp=require("node:stream"),vD=require("node:net"),{stringify:_D}=require("node:querystring"),{EventEmitter:OD}=require("node:events"),xs=mc(),{InvalidArgumentError:Be,ConnectTimeoutError:GD}=_(),{headerNameLowerCasedRecord:HD}=Ms(),{tree:zp}=Yp(),[YD,VD]=process.versions.node.split(".",2).map(t=>Number(t)),Ps=class{constructor(e){this[Vp]=e,this[On]=!1}async*[Symbol.asyncIterator](){zo(!this[On],"disturbed"),this[On]=!0,yield*this[Vp]}};function qp(){}function qD(t){return Ls(t)?(th(t)===0&&t.on("data",function(){zo(!1)}),typeof t.readableDidRead!="boolean"&&(t[On]=!1,OD.prototype.on.call(t,"data",function(){this[On]=!0})),t):t&&typeof t.pipeTo=="function"?new Ps(t):t&&sh(t)?t:t&&typeof t!="string"&&!ArrayBuffer.isView(t)&&eh(t)?new Ps(t):t}function Ls(t){return t&&typeof t=="object"&&typeof t.pipe=="function"&&typeof t.on=="function"}function jp(t){if(t===null)return!1;if(t instanceof Blob)return!0;if(typeof t!="object")return!1;{let e=t[Symbol.toStringTag];return(e==="Blob"||e==="File")&&("stream"in t&&typeof t.stream=="function"||"arrayBuffer"in t&&typeof t.arrayBuffer=="function")}}function $p(t){return t.includes("?")||t.includes("#")}function WD(t,e){if($p(t))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let r=_D(e);return r&&(t+="?"+r),t}function Zp(t){let e=parseInt(t,10);return e===Number(t)&&e>=0&&e<=65535}function Fs(t){return t!=null&&t[0]==="h"&&t[1]==="t"&&t[2]==="t"&&t[3]==="p"&&(t[4]===":"||t[4]==="s"&&t[5]===":")}function Xp(t){if(typeof t=="string"){if(t=new URL(t),!Fs(t.origin||t.protocol))throw new Be("Invalid URL protocol: the URL must start with `http:` or `https:`.");return t}if(!t||typeof t!="object")throw new Be("Invalid URL: The URL argument must be a non-null object.");if(!(t instanceof URL)){if(t.port!=null&&t.port!==""&&Zp(t.port)===!1)throw new Be("Invalid URL: port must be a valid integer or a string representation of an integer.");if(t.path!=null&&typeof t.path!="string")throw new Be("Invalid URL path: the path must be a string or null/undefined.");if(t.pathname!=null&&typeof t.pathname!="string")throw new Be("Invalid URL pathname: the pathname must be a string or null/undefined.");if(t.hostname!=null&&typeof t.hostname!="string")throw new Be("Invalid URL hostname: the hostname must be a string or null/undefined.");if(t.origin!=null&&typeof t.origin!="string")throw new Be("Invalid URL origin: the origin must be a string or null/undefined.");if(!Fs(t.origin||t.protocol))throw new Be("Invalid URL protocol: the URL must start with `http:` or `https:`.");let e=t.port!=null?t.port:t.protocol==="https:"?443:80,r=t.origin!=null?t.origin:`${t.protocol||""}//${t.hostname||""}:${e}`,n=t.path!=null?t.path:`${t.pathname||""}${t.search||""}`;return r[r.length-1]==="/"&&(r=r.slice(0,r.length-1)),n&&n[0]!=="/"&&(n=`/${n}`),new URL(`${r}${n}`)}if(!Fs(t.origin||t.protocol))throw new Be("Invalid URL protocol: the URL must start with `http:` or `https:`.");return t}function JD(t){if(t=Xp(t),t.pathname!=="/"||t.search||t.hash)throw new Be("invalid url");return t}function KD(t){if(t[0]==="["){let r=t.indexOf("]");return zo(r!==-1),t.substring(1,r)}let e=t.indexOf(":");return e===-1?t:t.substring(0,e)}function zD(t){if(!t)return null;zo(typeof t=="string");let e=KD(t);return vD.isIP(e)?"":e}function jD(t){return JSON.parse(JSON.stringify(t))}function $D(t){return t!=null&&typeof t[Symbol.asyncIterator]=="function"}function eh(t){return t!=null&&(typeof t[Symbol.iterator]=="function"||typeof t[Symbol.asyncIterator]=="function")}function ZD(t){let e=Object.getPrototypeOf(t);return Object.prototype.hasOwnProperty.call(t,Symbol.iterator)||e!=null&&e!==Object.prototype&&typeof t[Symbol.iterator]=="function"}function th(t){if(t==null)return 0;if(Ls(t)){let e=t._readableState;return e&&e.objectMode===!1&&e.ended===!0&&Number.isFinite(e.length)?e.length:null}else{if(jp(t))return t.size!=null?t.size:null;if(ih(t))return t.byteLength}return null}function rh(t){return t&&!!(t.destroyed||t[Jp]||Kp.isDestroyed?.(t))}function nh(t,e){t==null||!Ls(t)||rh(t)||(typeof t.destroy=="function"?(Object.getPrototypeOf(t).constructor===LD&&(t.socket=null),t.destroy(e)):e&&queueMicrotask(()=>{t.emit("error",e)}),t.destroyed!==!0&&(t[Jp]=!0))}var XD=/timeout=(\d+)/;function e0(t){let e=t.match(XD);return e?parseInt(e[1],10)*1e3:null}function oh(t){return typeof t=="string"?HD[t]??t.toLowerCase():zp.lookup(t)??t.toString("latin1").toLowerCase()}function t0(t){return zp.lookup(t)??t.toString("latin1").toLowerCase()}function r0(t,e){e===void 0&&(e={});for(let r=0;r<t.length;r+=2){let n=oh(t[r]),o=e[n];if(o!==void 0)if(Object.hasOwn(e,n))typeof o=="string"&&(o=[o],e[n]=o),o.push(t[r+1].toString("latin1"));else{let i=typeof t[r+1]=="string"?t[r+1]:Array.isArray(t[r+1])?t[r+1].map(s=>s.toString("latin1")):t[r+1].toString("latin1");n==="__proto__"?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i}else{let i=typeof t[r+1]=="string"?t[r+1]:Array.isArray(t[r+1])?t[r+1].map(s=>s.toString("latin1")):t[r+1].toString("latin1");e[n]=i}}return e}function n0(t){let e=t.length,r=new Array(e),n,o;for(let i=0;i<e;i+=2)n=t[i],o=t[i+1],typeof n!="string"&&(n=n.toString()),typeof o!="string"&&(o=o.toString("latin1")),r[i]=n,r[i+1]=o;return r}function o0(t){if(!Array.isArray(t))throw new TypeError("expected headers to be an array");return t.map(e=>Buffer.from(e))}function ih(t){return t instanceof Uint8Array||Buffer.isBuffer(t)}function i0(t,e,r){if(!t||typeof t!="object")throw new Be("handler must be an object");if(typeof t.onRequestStart!="function"){if(typeof t.onConnect!="function")throw new Be("invalid onConnect method");if(typeof t.onError!="function")throw new Be("invalid onError method");if(typeof t.onBodySent!="function"&&t.onBodySent!==void 0)throw new Be("invalid onBodySent method");if(r||e==="CONNECT"){if(typeof t.onUpgrade!="function")throw new Be("invalid onUpgrade method")}else{if(typeof t.onHeaders!="function")throw new Be("invalid onHeaders method");if(typeof t.onData!="function")throw new Be("invalid onData method");if(typeof t.onComplete!="function")throw new Be("invalid onComplete method")}}}function s0(t){return!!(t&&(Kp.isDisturbed(t)||t[On]))}function A0(t){return{localAddress:t.localAddress,localPort:t.localPort,remoteAddress:t.remoteAddress,remotePort:t.remotePort,remoteFamily:t.remoteFamily,timeout:t.timeout,bytesWritten:t.bytesWritten,bytesRead:t.bytesRead}}function a0(t){let e;return new ReadableStream({start(){e=t[Symbol.asyncIterator]()},pull(r){return e.next().then(({done:n,value:o})=>{if(n)return queueMicrotask(()=>{r.close(),r.byobRequest?.respond(0)});{let i=Buffer.isBuffer(o)?o:Buffer.from(o);return i.byteLength?r.enqueue(new Uint8Array(i)):this.pull(r)}})},cancel(){return e.return()},type:"bytes"})}function sh(t){return t&&typeof t=="object"&&typeof t.append=="function"&&typeof t.delete=="function"&&typeof t.get=="function"&&typeof t.getAll=="function"&&typeof t.has=="function"&&typeof t.set=="function"&&t[Symbol.toStringTag]==="FormData"}function c0(t,e){return"addEventListener"in t?(t.addEventListener("abort",e,{once:!0}),()=>t.removeEventListener("abort",e)):(t.once("abort",e),()=>t.removeListener("abort",e))}var Ah=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function d0(t){return Ah[t]===1}var u0=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;function l0(t){if(t.length>=12)return u0.test(t);if(t.length===0)return!1;for(let e=0;e<t.length;e++)if(Ah[t.charCodeAt(e)]!==1)return!1;return!0}var g0=/[^\t\x20-\x7e\x80-\xff]/;function f0(t){return!g0.test(t)}var p0=/^bytes (\d+)-(\d+)\/(\d+)?$/;function h0(t){if(t==null||t==="")return{start:0,end:null,size:null};let e=t?t.match(p0):null;return e?{start:parseInt(e[1]),end:e[2]?parseInt(e[2]):null,size:e[3]?parseInt(e[3]):null}:null}function C0(t,e,r){return(t[Us]??=[]).push([e,r]),t.on(e,r),t}function E0(t){if(t[Us]!=null){for(let[e,r]of t[Us])t.removeListener(e,r);t[Us]=null}return t}function I0(t,e,r){try{e.onError(r),zo(e.aborted)}catch(n){t.emit("error",n)}}var Q0=process.platform==="win32"?(t,e)=>{if(!e.timeout)return qp;let r=null,n=null,o=xs.setFastTimeout(()=>{r=setImmediate(()=>{n=setImmediate(()=>Wp(t.deref(),e))})},e.timeout);return()=>{xs.clearFastTimeout(o),clearImmediate(r),clearImmediate(n)}}:(t,e)=>{if(!e.timeout)return qp;let r=null,n=xs.setFastTimeout(()=>{r=setImmediate(()=>{Wp(t.deref(),e)})},e.timeout);return()=>{xs.clearFastTimeout(n),clearImmediate(r)}};function Wp(t,e){if(t==null)return;let r="Connect Timeout Error";Array.isArray(t.autoSelectFamilyAttemptedAddresses)?r+=` (attempted addresses: ${t.autoSelectFamilyAttemptedAddresses.join(", ")},`:r+=` (attempted address: ${e.hostname}:${e.port},`,r+=` timeout: ${e.timeout}ms)`,nh(t,new GD(r))}function B0(t){if(t[0]==="h"&&t[1]==="t"&&t[2]==="t"&&t[3]==="p")switch(t[4]){case":":return"http:";case"s":if(t[5]===":")return"https:"}return t.slice(0,t.indexOf(":")+1)}var ah=Object.create(null);ah.enumerable=!0;var Kc={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"},ch={...Kc,patch:"patch",PATCH:"PATCH"};Object.setPrototypeOf(Kc,null);Object.setPrototypeOf(ch,null);dh.exports={kEnumerableProperty:ah,isDisturbed:s0,isBlobLike:jp,parseOrigin:JD,parseURL:Xp,getServerName:zD,isStream:Ls,isIterable:eh,hasSafeIterator:ZD,isAsyncIterable:$D,isDestroyed:rh,headerNameToString:oh,bufferToLowerCasedHeaderName:t0,addListener:C0,removeAllListeners:E0,errorRequest:I0,parseRawHeaders:n0,encodeRawHeaders:o0,parseHeaders:r0,parseKeepAliveTimeout:e0,destroy:nh,bodyLength:th,deepClone:jD,ReadableStreamFrom:a0,isBuffer:ih,assertRequestHandler:i0,getSocketInfo:A0,isFormDataLike:sh,pathHasQueryOrFragment:$p,serializePathWithQuery:WD,addAbortListener:c0,isValidHTTPToken:l0,isValidHeaderValue:f0,isTokenCharCode:d0,parseRangeHeader:h0,normalizedMethodRecordsBase:Kc,normalizedMethodRecords:ch,isValidPort:Zp,isHttpOrHttpsPrefixed:Fs,nodeMajor:YD,nodeMinor:VD,safeHTTPMethods:Object.freeze(["GET","HEAD","OPTIONS","TRACE"]),wrapRequestBody:qD,setupConnectTimeout:Q0,getProtocolFromUrlString:B0}});var $c=B((vK,ph)=>{"use strict";var{kConnected:uh,kPending:lh,kRunning:gh,kSize:fh,kFree:m0,kQueued:y0}=j(),zc=class{constructor(e){this.connected=e[uh],this.pending=e[lh],this.running=e[gh],this.size=e[fh]}},jc=class{constructor(e){this.connected=e[uh],this.free=e[m0],this.pending=e[lh],this.queued=e[y0],this.running=e[gh],this.size=e[fh]}};ph.exports={ClientStats:zc,PoolStats:jc}});var lr=B((_K,Ch)=>{"use strict";var $=require("node:diagnostics_channel"),td=require("node:util"),Yr=td.debuglog("undici"),jo=td.debuglog("fetch"),vs=td.debuglog("websocket"),We={beforeConnect:$.channel("undici:client:beforeConnect"),connected:$.channel("undici:client:connected"),connectError:$.channel("undici:client:connectError"),sendHeaders:$.channel("undici:client:sendHeaders"),create:$.channel("undici:request:create"),bodySent:$.channel("undici:request:bodySent"),bodyChunkSent:$.channel("undici:request:bodyChunkSent"),bodyChunkReceived:$.channel("undici:request:bodyChunkReceived"),headers:$.channel("undici:request:headers"),trailers:$.channel("undici:request:trailers"),error:$.channel("undici:request:error"),open:$.channel("undici:websocket:open"),close:$.channel("undici:websocket:close"),socketError:$.channel("undici:websocket:socket_error"),ping:$.channel("undici:websocket:ping"),pong:$.channel("undici:websocket:pong"),proxyConnected:$.channel("undici:proxy:connected")},Zc=!1;function hh(t=Yr){if(!Zc){if(We.beforeConnect.hasSubscribers||We.connected.hasSubscribers||We.connectError.hasSubscribers||We.sendHeaders.hasSubscribers){Zc=!0;return}Zc=!0,$.subscribe("undici:client:beforeConnect",e=>{let{connectParams:{version:r,protocol:n,port:o,host:i}}=e;t("connecting to %s%s using %s%s",i,o?`:${o}`:"",n,r)}),$.subscribe("undici:client:connected",e=>{let{connectParams:{version:r,protocol:n,port:o,host:i}}=e;t("connected to %s%s using %s%s",i,o?`:${o}`:"",n,r)}),$.subscribe("undici:client:connectError",e=>{let{connectParams:{version:r,protocol:n,port:o,host:i},error:s}=e;t("connection to %s%s using %s%s errored - %s",i,o?`:${o}`:"",n,r,s.message)}),$.subscribe("undici:client:sendHeaders",e=>{let{request:{method:r,path:n,origin:o}}=e;t("sending request to %s %s%s",r,o,n)})}}var Xc=!1;function w0(t=Yr){if(!Xc){if(We.headers.hasSubscribers||We.trailers.hasSubscribers||We.error.hasSubscribers){Xc=!0;return}Xc=!0,$.subscribe("undici:request:headers",e=>{let{request:{method:r,path:n,origin:o},response:{statusCode:i}}=e;t("received response to %s %s%s - HTTP %d",r,o,n,i)}),$.subscribe("undici:request:trailers",e=>{let{request:{method:r,path:n,origin:o}}=e;t("trailers received from %s %s%s",r,o,n)}),$.subscribe("undici:request:error",e=>{let{request:{method:r,path:n,origin:o},error:i}=e;t("request to %s %s%s errored - %s",r,o,n,i.message)})}}var ed=!1;function R0(t=vs){if(!ed){if(We.open.hasSubscribers||We.close.hasSubscribers||We.socketError.hasSubscribers||We.ping.hasSubscribers||We.pong.hasSubscribers){ed=!0;return}ed=!0,$.subscribe("undici:websocket:open",e=>{if(e.address!=null){let{address:r,port:n}=e.address;t("connection opened %s%s",r,n?`:${n}`:"")}else t("connection opened")}),$.subscribe("undici:websocket:close",e=>{let{websocket:r,code:n,reason:o}=e;t("closed connection to %s - %s %s",r.url,n,o)}),$.subscribe("undici:websocket:socket_error",e=>{t("connection errored - %s",e.message)}),$.subscribe("undici:websocket:ping",e=>{t("ping received")}),$.subscribe("undici:websocket:pong",e=>{t("pong received")})}}(Yr.enabled||jo.enabled)&&(hh(jo.enabled?jo:Yr),w0(jo.enabled?jo:Yr));vs.enabled&&(hh(Yr.enabled?Yr:vs),R0(vs));Ch.exports={channels:We}});var Qh=B((OK,Ih)=>{"use strict";var{InvalidArgumentError:K,NotSupportedError:b0}=_(),kt=require("node:assert"),{isValidHTTPToken:rd,isValidHeaderValue:$o,isStream:S0,destroy:D0,isBuffer:k0,isFormDataLike:N0,isIterable:M0,hasSafeIterator:T0,isBlobLike:x0,serializePathWithQuery:U0,assertRequestHandler:F0,getServerName:P0,normalizedMethodRecords:L0,getProtocolFromUrlString:v0}=O(),{channels:Pe}=lr(),{headerNameLowerCasedRecord:Eh}=Ms(),_0=/[^\u0021-\u00ff]/;function O0(t){if(typeof t!="string"||t.length===0)return!1;for(let e=0;e<t.length;e++){let r=t.charCodeAt(e);if(r<48||r>57)return!1}return!0}var ct=Symbol("handler"),nd=class{constructor(e,{path:r,method:n,body:o,headers:i,query:s,idempotent:A,blocking:a,upgrade:c,headersTimeout:d,bodyTimeout:l,reset:u,expectContinue:p,servername:h,throwOnError:I,maxRedirections:m,typeOfService:E},Q){if(typeof r!="string")throw new K("path must be a string");if(r[0]!=="/"&&!(r.startsWith("http://")||r.startsWith("https://"))&&n!=="CONNECT")throw new K("path must be an absolute URL or start with a slash");if(_0.test(r))throw new K("invalid request path");if(typeof n!="string")throw new K("method must be a string");if(L0[n]===void 0&&!rd(n))throw new K("invalid request method");if(c&&typeof c!="string")throw new K("upgrade must be a string");if(c&&!$o(c))throw new K("invalid upgrade header");if(d!=null&&(!Number.isFinite(d)||d<0))throw new K("invalid headersTimeout");if(l!=null&&(!Number.isFinite(l)||l<0))throw new K("invalid bodyTimeout");if(u!=null&&typeof u!="boolean")throw new K("invalid reset");if(p!=null&&typeof p!="boolean")throw new K("invalid expectContinue");if(I!=null)throw new K("invalid throwOnError");if(m!=null&&m!==0)throw new K("maxRedirections is not supported, use the redirect interceptor");if(E!=null&&(!Number.isInteger(E)||E<0||E>255))throw new K("typeOfService must be an integer between 0 and 255");if(this.headersTimeout=d,this.bodyTimeout=l,this.method=n,this.typeOfService=E??0,this.abort=null,o==null)this.body=null;else if(S0(o)){this.body=o;let y=this.body._readableState;(!y||!y.autoDestroy)&&(this.endHandler=function(){D0(this)},this.body.on("end",this.endHandler)),this.errorHandler=v=>{this.abort?this.abort(v):this.error=v},this.body.on("error",this.errorHandler)}else if(k0(o))this.body=o.byteLength?o:null;else if(ArrayBuffer.isView(o))this.body=o.buffer.byteLength?Buffer.from(o.buffer,o.byteOffset,o.byteLength):null;else if(o instanceof ArrayBuffer)this.body=o.byteLength?Buffer.from(o):null;else if(typeof o=="string")this.body=o.length?Buffer.from(o):null;else if(N0(o)||M0(o)||x0(o))this.body=o;else throw new K("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=s?U0(r,s):r,this.origin=e,this.protocol=v0(e),this.idempotent=A??(n==="HEAD"||n==="GET"),this.blocking=a??this.method!=="HEAD",this.reset=u??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=p??!1,Array.isArray(i)){if(i.length%2!==0)throw new K("headers array must be even");for(let y=0;y<i.length;y+=2)_s(this,i[y],i[y+1])}else if(i&&typeof i=="object")if(T0(i))for(let y of i){if(!Array.isArray(y)||y.length!==2)throw new K("headers must be in key-value pair format");_s(this,y[0],y[1])}else{let y=Object.keys(i);for(let v=0;v<y.length;++v)_s(this,y[v],i[y[v]])}else if(i!=null)throw new K("headers must be an object or an array");F0(Q,n,c),this.servername=h||P0(this.host)||null,this[ct]=Q,Pe.create.hasSubscribers&&Pe.create.publish({request:this})}onBodySent(e){if(Pe.bodyChunkSent.hasSubscribers&&Pe.bodyChunkSent.publish({request:this,chunk:e}),this[ct].onBodySent)try{return this[ct].onBodySent(e)}catch(r){this.abort(r)}}onRequestSent(){if(Pe.bodySent.hasSubscribers&&Pe.bodySent.publish({request:this}),this[ct].onRequestSent)try{return this[ct].onRequestSent()}catch(e){this.abort(e)}}onConnect(e){if(kt(!this.aborted),kt(!this.completed),this.error)e(this.error);else return this.abort=e,this[ct].onConnect(e)}onResponseStarted(){return this[ct].onResponseStarted?.()}onHeaders(e,r,n,o){kt(!this.aborted),kt(!this.completed),Pe.headers.hasSubscribers&&Pe.headers.publish({request:this,response:{statusCode:e,headers:r,statusText:o}});try{return this[ct].onHeaders(e,r,n,o)}catch(i){this.abort(i)}}onData(e){kt(!this.aborted),kt(!this.completed),Pe.bodyChunkReceived.hasSubscribers&&Pe.bodyChunkReceived.publish({request:this,chunk:e});try{return this[ct].onData(e)}catch(r){return this.abort(r),!1}}onUpgrade(e,r,n){return kt(!this.aborted),kt(!this.completed),this[ct].onUpgrade(e,r,n)}onComplete(e){this.onFinally(),kt(!this.aborted),kt(!this.completed),this.completed=!0,Pe.trailers.hasSubscribers&&Pe.trailers.publish({request:this,trailers:e});try{return this[ct].onComplete(e)}catch(r){this.onError(r)}}onError(e){if(this.onFinally(),Pe.error.hasSubscribers&&Pe.error.publish({request:this,error:e}),!this.aborted)return this.aborted=!0,this[ct].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,r){return _s(this,e,r),this}};function _s(t,e,r){if(r&&typeof r=="object"&&!Array.isArray(r))throw new K(`invalid ${e} header`);if(r===void 0)return;let n=Eh[e];if(n===void 0&&(n=e.toLowerCase(),Eh[n]===void 0&&!rd(n)))throw new K("invalid header key");if(Array.isArray(r)){let o=[];for(let i=0;i<r.length;i++)if(typeof r[i]=="string"){if(!$o(r[i]))throw new K(`invalid ${e} header`);o.push(r[i])}else if(r[i]===null)o.push("");else{if(typeof r[i]=="object")throw new K(`invalid ${e} header`);{let s=`${r[i]}`;if(!$o(s))throw new K(`invalid ${e} header`);o.push(s)}}r=o}else if(typeof r=="string"){if(!$o(r))throw new K(`invalid ${e} header`)}else if(r===null)r="";else if(r=`${r}`,!$o(r))throw new K(`invalid ${e} header`);if(n==="host"){if(t.host!==null)throw new K("duplicate host header");if(typeof r!="string")throw new K("invalid host header");t.host=r}else if(n==="content-length"){if(t.contentLength!==null)throw new K("duplicate content-length header");if(!O0(r))throw new K("invalid content-length header");t.contentLength=parseInt(r,10)}else if(t.contentType===null&&n==="content-type")t.contentType=r,t.headers.push(e,r);else{if(n==="transfer-encoding"||n==="keep-alive"||n==="upgrade")throw new K(`invalid ${n} header`);if(n==="connection"){let o=typeof r=="string"?r:null;if(o===null)throw new K("invalid connection header");for(let i of o.toLowerCase().split(",")){let s=i.trim();if(!rd(s))throw new K("invalid connection header");s==="close"&&(t.reset=!0)}}else{if(n==="expect")throw new b0("expect header not supported");t.headers.push(e,r)}}}Ih.exports=nd});var Zo=B((GK,mh)=>{"use strict";var{InvalidArgumentError:G0}=_();mh.exports=class Bh{#e;constructor(e){this.#e=e}static wrap(e){return e.onRequestStart?e:new Bh(e)}onConnect(e,r){return this.#e.onConnect?.(e,r)}onResponseStarted(){return this.#e.onResponseStarted?.()}onHeaders(e,r,n,o){return this.#e.onHeaders?.(e,r,n,o)}onUpgrade(e,r,n){return this.#e.onUpgrade?.(e,r,n)}onData(e){return this.#e.onData?.(e)}onComplete(e){return this.#e.onComplete?.(e)}onError(e){if(!this.#e.onError)throw e;return this.#e.onError?.(e)}onRequestStart(e,r){this.#e.onConnect?.(n=>e.abort(n),r)}onRequestUpgrade(e,r,n,o){let i=[];for(let[s,A]of Object.entries(n))i.push(Buffer.from(s,"latin1"),od(A));this.#e.onUpgrade?.(r,i,o)}onResponseStart(e,r,n,o){let i=[];for(let[s,A]of Object.entries(n))i.push(Buffer.from(s,"latin1"),od(A));this.#e.onHeaders?.(r,i,()=>e.resume(),o)===!1&&e.pause()}onResponseData(e,r){this.#e.onData?.(r)===!1&&e.pause()}onResponseEnd(e,r){let n=[];for(let[o,i]of Object.entries(r))n.push(Buffer.from(o,"latin1"),od(i));this.#e.onComplete?.(n)}onResponseError(e,r){if(!this.#e.onError)throw new G0("invalid onError method");this.#e.onError?.(r)}};function od(t){return Array.isArray(t)?t.map(e=>Buffer.from(e,"latin1")):Buffer.from(t,"latin1")}});var Xo=B((HK,yh)=>{"use strict";var H0=require("node:events"),Y0=Zo(),V0=t=>(e,r)=>t(e,Y0.wrap(r)),id=class extends H0{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...e){let r=Array.isArray(e[0])?e[0]:e,n=this.dispatch.bind(this);for(let o of r)if(o!=null){if(typeof o!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof o}`);if(n=o(n),n=V0(n),n==null||typeof n!="function"||n.length!==2)throw new TypeError("invalid interceptor")}return new Proxy(this,{get:(o,i)=>i==="dispatch"?n:o[i]})}};yh.exports=id});var bh=B((YK,Rh)=>{"use strict";var{parseHeaders:sd}=O(),{InvalidArgumentError:q0}=_(),Ad=Symbol("resume"),ad=class{#e=!1;#t=null;#r=!1;#n;[Ad]=null;rawHeaders=null;rawTrailers=null;constructor(e){this.#n=e}pause(){this.#e=!0}resume(){this.#e&&(this.#e=!1,this[Ad]?.())}abort(e){this.#r||(this.#r=!0,this.#t=e,this.#n(e))}get aborted(){return this.#r}get reason(){return this.#t}get paused(){return this.#e}};Rh.exports=class wh{#e;#t;constructor(e){this.#e=e}static unwrap(e){return e.onRequestStart?new wh(e):e}onConnect(e,r){this.#t=new ad(e),this.#e.onRequestStart?.(this.#t,r)}onResponseStarted(){return this.#e.onResponseStarted?.()}onUpgrade(e,r,n){this.#t.rawHeaders=r,this.#e.onRequestUpgrade?.(this.#t,e,sd(r),n)}onHeaders(e,r,n,o){return this.#t[Ad]=n,this.#t.rawHeaders=r,this.#e.onResponseStart?.(this.#t,e,sd(r),o),!this.#t.paused}onData(e){return this.#e.onResponseData?.(this.#t,e),!this.#t.paused}onComplete(e){this.#t.rawTrailers=e,this.#e.onResponseEnd?.(this.#t,sd(e))}onError(e){if(!this.#e.onResponseError)throw new q0("invalid onError method");this.#e.onResponseError?.(this.#t,e)}}});var qr=B((VK,Sh)=>{"use strict";var W0=Xo(),J0=bh(),{ClientDestroyedError:cd,ClientClosedError:K0,InvalidArgumentError:Os}=_(),{kDestroy:z0,kClose:j0,kClosed:ei,kDestroyed:Gn,kDispatch:$0}=j(),gr=Symbol("onDestroyed"),Vr=Symbol("onClosed"),dd=Symbol("webSocketOptions"),ud=class extends W0{[Gn]=!1;[gr]=null;[ei]=!1;[Vr]=null;constructor(e){super(),this[dd]=e?.webSocket??{}}get webSocketOptions(){return{maxFragments:this[dd].maxFragments??131072,maxPayloadSize:this[dd].maxPayloadSize??128*1024*1024}}get destroyed(){return this[Gn]}get closed(){return this[ei]}close(e){if(e===void 0)return new Promise((n,o)=>{this.close((i,s)=>i?o(i):n(s))});if(typeof e!="function")throw new Os("invalid callback");if(this[Gn]){let n=new cd;queueMicrotask(()=>e(n,null));return}if(this[ei]){this[Vr]?this[Vr].push(e):queueMicrotask(()=>e(null,null));return}this[ei]=!0,this[Vr]??=[],this[Vr].push(e);let r=()=>{let n=this[Vr];this[Vr]=null;for(let o=0;o<n.length;o++)n[o](null,null)};this[j0]().then(()=>this.destroy()).then(()=>queueMicrotask(r))}destroy(e,r){if(typeof e=="function"&&(r=e,e=null),r===void 0)return new Promise((o,i)=>{this.destroy(e,(s,A)=>s?i(s):o(A))});if(typeof r!="function")throw new Os("invalid callback");if(this[Gn]){this[gr]?this[gr].push(r):queueMicrotask(()=>r(null,null));return}e||(e=new cd),this[Gn]=!0,this[gr]??=[],this[gr].push(r);let n=()=>{let o=this[gr];this[gr]=null;for(let i=0;i<o.length;i++)o[i](null,null)};this[z0](e).then(()=>queueMicrotask(n))}dispatch(e,r){if(!r||typeof r!="object")throw new Os("handler must be an object");r=J0.unwrap(r);try{if(!e||typeof e!="object")throw new Os("opts must be an object.");if(this[Gn]||this[gr])throw new cd;if(this[ei])throw new K0;return this[$0](e,r)}catch(n){if(typeof r.onError!="function")throw n;return r.onError(n),!1}}};Sh.exports=ud});var Wr=B((WK,Nh)=>{"use strict";var Z0=require("node:net"),Dh=require("node:assert"),kh=O(),{InvalidArgumentError:X0}=_(),ld,ek=class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map,this._sessionRegistry=new FinalizationRegistry(r=>{if(this._sessionCache.size<this._maxCachedSessions)return;let n=this._sessionCache.get(r);n!==void 0&&n.deref()===void 0&&this._sessionCache.delete(r)})}get(e){let r=this._sessionCache.get(e);return r?r.deref():null}set(e,r){if(this._maxCachedSessions!==0){if(this._sessionCache.has(e))this._sessionCache.delete(e);else if(this._sessionCache.size>=this._maxCachedSessions){for(let[o,i]of this._sessionCache)if(i.deref()===void 0){this._sessionCache.delete(o);return}let n=this._sessionCache.keys().next();n.done||this._sessionCache.delete(n.value)}this._sessionCache.set(e,new WeakRef(r)),this._sessionRegistry.register(r,e)}}};function tk({allowH2:t,useH2c:e,maxCachedSessions:r,socketPath:n,timeout:o,session:i,...s}){if(r!=null&&(!Number.isInteger(r)||r<0))throw new X0("maxCachedSessions must be a positive integer or zero");let A={path:n,...s},a=new ek(r??100);return o=o??1e4,t=t??!1,function({hostname:d,host:l,protocol:u,port:p,servername:h,localAddress:I,httpSocket:m},E){let Q;if(u==="https:"){ld||(ld=require("node:tls")),h=h||A.servername||kh.getServerName(l)||null;let v=h||d;Dh(v);let b=i||a.get(v)||null;p=p||443,Q=ld.connect({highWaterMark:16384,...A,servername:h,session:b,localAddress:I,ALPNProtocols:t?["http/1.1","h2"]:["http/1.1"],socket:m,port:p,host:d}),Q.on("session",function(F){a.set(v,F)})}else Dh(!m,"httpSocket can only be sent on TLS update"),p=p||80,Q=Z0.connect({highWaterMark:64*1024,...A,localAddress:I,port:p,host:d}),e===!0&&(Q.alpnProtocol="h2");if(A.keepAlive==null||A.keepAlive){let v=A.keepAliveInitialDelay===void 0?6e4:A.keepAliveInitialDelay;Q.setKeepAlive(!0,v)}let y=kh.setupConnectTimeout(new WeakRef(Q),{timeout:o,hostname:d,port:p});return Q.setNoDelay(!0).once(u==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(y),E){let v=E;E=null,v(null,this)}}).on("error",function(v){if(queueMicrotask(y),E){let b=E;E=null,b(v)}}),Q}}Nh.exports=tk});var Mh=B(gd=>{"use strict";Object.defineProperty(gd,"__esModule",{value:!0});gd.enumToMap=rk;function rk(t,e=[],r=[]){let n=(e?.length??0)===0,o=(r?.length??0)===0;return Object.fromEntries(Object.entries(t).filter(([,i])=>typeof i=="number"&&(n||e.includes(i))&&(o||!r.includes(i))))}});var Th=B(g=>{"use strict";Object.defineProperty(g,"__esModule",{value:!0});g.SPECIAL_HEADERS=g.MINOR=g.MAJOR=g.HTAB_SP_VCHAR_OBS_TEXT=g.QUOTED_STRING=g.CONNECTION_TOKEN_CHARS=g.HEADER_CHARS=g.TOKEN=g.HEX=g.URL_CHAR=g.USERINFO_CHARS=g.MARK=g.ALPHANUM=g.NUM=g.HEX_MAP=g.NUM_MAP=g.ALPHA=g.STATUSES_HTTP=g.H_METHOD_MAP=g.METHOD_MAP=g.METHODS_RTSP=g.METHODS_ICE=g.METHODS_HTTP=g.HEADER_STATE=g.FINISH=g.STATUSES=g.METHODS=g.LENIENT_FLAGS=g.FLAGS=g.TYPE=g.ERROR=void 0;var nk=Mh();g.ERROR={OK:0,INTERNAL:1,STRICT:2,CR_EXPECTED:25,LF_EXPECTED:3,UNEXPECTED_CONTENT_LENGTH:4,UNEXPECTED_SPACE:30,CLOSED_CONNECTION:5,INVALID_METHOD:6,INVALID_URL:7,INVALID_CONSTANT:8,INVALID_VERSION:9,INVALID_HEADER_TOKEN:10,INVALID_CONTENT_LENGTH:11,INVALID_CHUNK_SIZE:12,INVALID_STATUS:13,INVALID_EOF_STATE:14,INVALID_TRANSFER_ENCODING:15,CB_MESSAGE_BEGIN:16,CB_HEADERS_COMPLETE:17,CB_MESSAGE_COMPLETE:18,CB_CHUNK_HEADER:19,CB_CHUNK_COMPLETE:20,PAUSED:21,PAUSED_UPGRADE:22,PAUSED_H2_UPGRADE:23,USER:24,CB_URL_COMPLETE:26,CB_STATUS_COMPLETE:27,CB_METHOD_COMPLETE:32,CB_VERSION_COMPLETE:33,CB_HEADER_FIELD_COMPLETE:28,CB_HEADER_VALUE_COMPLETE:29,CB_CHUNK_EXTENSION_NAME_COMPLETE:34,CB_CHUNK_EXTENSION_VALUE_COMPLETE:35,CB_RESET:31,CB_PROTOCOL_COMPLETE:38};g.TYPE={BOTH:0,REQUEST:1,RESPONSE:2};g.FLAGS={CONNECTION_KEEP_ALIVE:1,CONNECTION_CLOSE:2,CONNECTION_UPGRADE:4,CHUNKED:8,UPGRADE:16,CONTENT_LENGTH:32,SKIPBODY:64,TRAILING:128,TRANSFER_ENCODING:512};g.LENIENT_FLAGS={HEADERS:1,CHUNKED_LENGTH:2,KEEP_ALIVE:4,TRANSFER_ENCODING:8,VERSION:16,DATA_AFTER_CLOSE:32,OPTIONAL_LF_AFTER_CR:64,OPTIONAL_CRLF_AFTER_CHUNK:128,OPTIONAL_CR_BEFORE_LF:256,SPACES_AFTER_CHUNK_SIZE:512};g.METHODS={DELETE:0,GET:1,HEAD:2,POST:3,PUT:4,CONNECT:5,OPTIONS:6,TRACE:7,COPY:8,LOCK:9,MKCOL:10,MOVE:11,PROPFIND:12,PROPPATCH:13,SEARCH:14,UNLOCK:15,BIND:16,REBIND:17,UNBIND:18,ACL:19,REPORT:20,MKACTIVITY:21,CHECKOUT:22,MERGE:23,"M-SEARCH":24,NOTIFY:25,SUBSCRIBE:26,UNSUBSCRIBE:27,PATCH:28,PURGE:29,MKCALENDAR:30,LINK:31,UNLINK:32,SOURCE:33,PRI:34,DESCRIBE:35,ANNOUNCE:36,SETUP:37,PLAY:38,PAUSE:39,TEARDOWN:40,GET_PARAMETER:41,SET_PARAMETER:42,REDIRECT:43,RECORD:44,FLUSH:45,QUERY:46};g.STATUSES={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,RESPONSE_IS_STALE:110,REVALIDATION_FAILED:111,DISCONNECTED_OPERATION:112,HEURISTIC_EXPIRATION:113,MISCELLANEOUS_WARNING:199,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,TRANSFORMATION_APPLIED:214,IM_USED:226,MISCELLANEOUS_PERSISTENT_WARNING:299,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,SWITCH_PROXY:306,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,PAGE_EXPIRED:419,ENHANCE_YOUR_CALM:420,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL:430,REQUEST_HEADER_FIELDS_TOO_LARGE:431,LOGIN_TIMEOUT:440,NO_RESPONSE:444,RETRY_WITH:449,BLOCKED_BY_PARENTAL_CONTROL:450,UNAVAILABLE_FOR_LEGAL_REASONS:451,CLIENT_CLOSED_LOAD_BALANCED_REQUEST:460,INVALID_X_FORWARDED_FOR:463,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,INVALID_TOKEN:498,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,BANDWIDTH_LIMIT_EXCEEDED:509,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511,WEB_SERVER_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMEOUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,SITE_IS_OVERLOADED:529,SITE_IS_FROZEN:530,IDENTITY_PROVIDER_AUTHENTICATION_ERROR:561,NETWORK_READ_TIMEOUT:598,NETWORK_CONNECT_TIMEOUT:599};g.FINISH={SAFE:0,SAFE_WITH_CB:1,UNSAFE:2};g.HEADER_STATE={GENERAL:0,CONNECTION:1,CONTENT_LENGTH:2,TRANSFER_ENCODING:3,UPGRADE:4,CONNECTION_KEEP_ALIVE:5,CONNECTION_CLOSE:6,CONNECTION_UPGRADE:7,TRANSFER_ENCODING_CHUNKED:8};g.METHODS_HTTP=[g.METHODS.DELETE,g.METHODS.GET,g.METHODS.HEAD,g.METHODS.POST,g.METHODS.PUT,g.METHODS.CONNECT,g.METHODS.OPTIONS,g.METHODS.TRACE,g.METHODS.COPY,g.METHODS.LOCK,g.METHODS.MKCOL,g.METHODS.MOVE,g.METHODS.PROPFIND,g.METHODS.PROPPATCH,g.METHODS.SEARCH,g.METHODS.UNLOCK,g.METHODS.BIND,g.METHODS.REBIND,g.METHODS.UNBIND,g.METHODS.ACL,g.METHODS.REPORT,g.METHODS.MKACTIVITY,g.METHODS.CHECKOUT,g.METHODS.MERGE,g.METHODS["M-SEARCH"],g.METHODS.NOTIFY,g.METHODS.SUBSCRIBE,g.METHODS.UNSUBSCRIBE,g.METHODS.PATCH,g.METHODS.PURGE,g.METHODS.MKCALENDAR,g.METHODS.LINK,g.METHODS.UNLINK,g.METHODS.PRI,g.METHODS.SOURCE,g.METHODS.QUERY];g.METHODS_ICE=[g.METHODS.SOURCE];g.METHODS_RTSP=[g.METHODS.OPTIONS,g.METHODS.DESCRIBE,g.METHODS.ANNOUNCE,g.METHODS.SETUP,g.METHODS.PLAY,g.METHODS.PAUSE,g.METHODS.TEARDOWN,g.METHODS.GET_PARAMETER,g.METHODS.SET_PARAMETER,g.METHODS.REDIRECT,g.METHODS.RECORD,g.METHODS.FLUSH,g.METHODS.GET,g.METHODS.POST];g.METHOD_MAP=(0,nk.enumToMap)(g.METHODS);g.H_METHOD_MAP=Object.fromEntries(Object.entries(g.METHODS).filter(([t])=>t.startsWith("H")));g.STATUSES_HTTP=[g.STATUSES.CONTINUE,g.STATUSES.SWITCHING_PROTOCOLS,g.STATUSES.PROCESSING,g.STATUSES.EARLY_HINTS,g.STATUSES.RESPONSE_IS_STALE,g.STATUSES.REVALIDATION_FAILED,g.STATUSES.DISCONNECTED_OPERATION,g.STATUSES.HEURISTIC_EXPIRATION,g.STATUSES.MISCELLANEOUS_WARNING,g.STATUSES.OK,g.STATUSES.CREATED,g.STATUSES.ACCEPTED,g.STATUSES.NON_AUTHORITATIVE_INFORMATION,g.STATUSES.NO_CONTENT,g.STATUSES.RESET_CONTENT,g.STATUSES.PARTIAL_CONTENT,g.STATUSES.MULTI_STATUS,g.STATUSES.ALREADY_REPORTED,g.STATUSES.TRANSFORMATION_APPLIED,g.STATUSES.IM_USED,g.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING,g.STATUSES.MULTIPLE_CHOICES,g.STATUSES.MOVED_PERMANENTLY,g.STATUSES.FOUND,g.STATUSES.SEE_OTHER,g.STATUSES.NOT_MODIFIED,g.STATUSES.USE_PROXY,g.STATUSES.SWITCH_PROXY,g.STATUSES.TEMPORARY_REDIRECT,g.STATUSES.PERMANENT_REDIRECT,g.STATUSES.BAD_REQUEST,g.STATUSES.UNAUTHORIZED,g.STATUSES.PAYMENT_REQUIRED,g.STATUSES.FORBIDDEN,g.STATUSES.NOT_FOUND,g.STATUSES.METHOD_NOT_ALLOWED,g.STATUSES.NOT_ACCEPTABLE,g.STATUSES.PROXY_AUTHENTICATION_REQUIRED,g.STATUSES.REQUEST_TIMEOUT,g.STATUSES.CONFLICT,g.STATUSES.GONE,g.STATUSES.LENGTH_REQUIRED,g.STATUSES.PRECONDITION_FAILED,g.STATUSES.PAYLOAD_TOO_LARGE,g.STATUSES.URI_TOO_LONG,g.STATUSES.UNSUPPORTED_MEDIA_TYPE,g.STATUSES.RANGE_NOT_SATISFIABLE,g.STATUSES.EXPECTATION_FAILED,g.STATUSES.IM_A_TEAPOT,g.STATUSES.PAGE_EXPIRED,g.STATUSES.ENHANCE_YOUR_CALM,g.STATUSES.MISDIRECTED_REQUEST,g.STATUSES.UNPROCESSABLE_ENTITY,g.STATUSES.LOCKED,g.STATUSES.FAILED_DEPENDENCY,g.STATUSES.TOO_EARLY,g.STATUSES.UPGRADE_REQUIRED,g.STATUSES.PRECONDITION_REQUIRED,g.STATUSES.TOO_MANY_REQUESTS,g.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL,g.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE,g.STATUSES.LOGIN_TIMEOUT,g.STATUSES.NO_RESPONSE,g.STATUSES.RETRY_WITH,g.STATUSES.BLOCKED_BY_PARENTAL_CONTROL,g.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS,g.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST,g.STATUSES.INVALID_X_FORWARDED_FOR,g.STATUSES.REQUEST_HEADER_TOO_LARGE,g.STATUSES.SSL_CERTIFICATE_ERROR,g.STATUSES.SSL_CERTIFICATE_REQUIRED,g.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT,g.STATUSES.INVALID_TOKEN,g.STATUSES.CLIENT_CLOSED_REQUEST,g.STATUSES.INTERNAL_SERVER_ERROR,g.STATUSES.NOT_IMPLEMENTED,g.STATUSES.BAD_GATEWAY,g.STATUSES.SERVICE_UNAVAILABLE,g.STATUSES.GATEWAY_TIMEOUT,g.STATUSES.HTTP_VERSION_NOT_SUPPORTED,g.STATUSES.VARIANT_ALSO_NEGOTIATES,g.STATUSES.INSUFFICIENT_STORAGE,g.STATUSES.LOOP_DETECTED,g.STATUSES.BANDWIDTH_LIMIT_EXCEEDED,g.STATUSES.NOT_EXTENDED,g.STATUSES.NETWORK_AUTHENTICATION_REQUIRED,g.STATUSES.WEB_SERVER_UNKNOWN_ERROR,g.STATUSES.WEB_SERVER_IS_DOWN,g.STATUSES.CONNECTION_TIMEOUT,g.STATUSES.ORIGIN_IS_UNREACHABLE,g.STATUSES.TIMEOUT_OCCURED,g.STATUSES.SSL_HANDSHAKE_FAILED,g.STATUSES.INVALID_SSL_CERTIFICATE,g.STATUSES.RAILGUN_ERROR,g.STATUSES.SITE_IS_OVERLOADED,g.STATUSES.SITE_IS_FROZEN,g.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR,g.STATUSES.NETWORK_READ_TIMEOUT,g.STATUSES.NETWORK_CONNECT_TIMEOUT];g.ALPHA=[];for(let t=65;t<=90;t++)g.ALPHA.push(String.fromCharCode(t)),g.ALPHA.push(String.fromCharCode(t+32));g.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};g.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};g.NUM=["0","1","2","3","4","5","6","7","8","9"];g.ALPHANUM=g.ALPHA.concat(g.NUM);g.MARK=["-","_",".","!","~","*","'","(",")"];g.USERINFO_CHARS=g.ALPHANUM.concat(g.MARK).concat(["%",";",":","&","=","+","$",","]);g.URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(g.ALPHANUM);g.HEX=g.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);g.TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(g.ALPHANUM);g.HEADER_CHARS=[" "];for(let t=32;t<=255;t++)t!==127&&g.HEADER_CHARS.push(t);g.CONNECTION_TOKEN_CHARS=g.HEADER_CHARS.filter(t=>t!==44);g.QUOTED_STRING=[" "," "];for(let t=33;t<=255;t++)t!==34&&t!==92&&g.QUOTED_STRING.push(t);g.HTAB_SP_VCHAR_OBS_TEXT=[" "," "];for(let t=33;t<=126;t++)g.HTAB_SP_VCHAR_OBS_TEXT.push(t);for(let t=128;t<=255;t++)g.HTAB_SP_VCHAR_OBS_TEXT.push(t);g.MAJOR=g.NUM_MAP;g.MINOR=g.MAJOR;g.SPECIAL_HEADERS={connection:g.HEADER_STATE.CONNECTION,"content-length":g.HEADER_STATE.CONTENT_LENGTH,"proxy-connection":g.HEADER_STATE.CONNECTION,"transfer-encoding":g.HEADER_STATE.TRANSFER_ENCODING,upgrade:g.HEADER_STATE.UPGRADE};g.default={ERROR:g.ERROR,TYPE:g.TYPE,FLAGS:g.FLAGS,LENIENT_FLAGS:g.LENIENT_FLAGS,METHODS:g.METHODS,STATUSES:g.STATUSES,FINISH:g.FINISH,HEADER_STATE:g.HEADER_STATE,ALPHA:g.ALPHA,NUM_MAP:g.NUM_MAP,HEX_MAP:g.HEX_MAP,NUM:g.NUM,ALPHANUM:g.ALPHANUM,MARK:g.MARK,USERINFO_CHARS:g.USERINFO_CHARS,URL_CHAR:g.URL_CHAR,HEX:g.HEX,TOKEN:g.TOKEN,HEADER_CHARS:g.HEADER_CHARS,CONNECTION_TOKEN_CHARS:g.CONNECTION_TOKEN_CHARS,QUOTED_STRING:g.QUOTED_STRING,HTAB_SP_VCHAR_OBS_TEXT:g.HTAB_SP_VCHAR_OBS_TEXT,MAJOR:g.MAJOR,MINOR:g.MINOR,SPECIAL_HEADERS:g.SPECIAL_HEADERS,METHODS_HTTP:g.METHODS_HTTP,METHODS_ICE:g.METHODS_ICE,METHODS_RTSP:g.METHODS_RTSP,METHOD_MAP:g.METHOD_MAP,H_METHOD_MAP:g.H_METHOD_MAP,STATUSES_HTTP:g.STATUSES_HTTP}});var pd=B((zK,xh)=>{"use strict";var{Buffer:ok}=require("node:buffer"),ik="AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgL5YUCAgd/A34gASACaiEEAkAgACIDKAIMIgANACADKAIEBEAgAyABNgIECyMAQRBrIgkkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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C0HjAQwHC0HXAQwGC0HYAQwFC0HZAQwEC0HaAQwDC0HbAQwCC0HdAQwBC0HcAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAg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ogKiAqICogKiAqICogKiAqICogKiAqICogIAogILIAQgAUEBaiIBRw0AC0HJACECDOwCCyABQQFqIQEgA0Evai0AAEEBcQ2lAiADQQA2AhwgAyABNgIUIANBlxA2AhAgA0EKNgIMQQAhAgzrAgsgASAERwRAA0AgAS0AAEEgRw0VIAQgAUEBaiIBRw0AC0H4ACECDOsCC0H4ACECDOoCCyADQQI6ACgMOAtBACECIANBADYCHCADQb8LNgIQIANBAjYCDCADIAFBAWo2AhQM6AILQQAhAgzOAgtBDSECDM0CC0ETIQIMzAILQRUhAgzLAgtBFiECDMoCC0EYIQIMyQILQRkhAgzIAgtBGiECDMcCC0EbIQIMxgILQRwhAgzFAgtBHSECDMQCC0EeIQIMwwILQR8hAgzCAgtBICECDMECC0EiIQIMwAILQSMhAgy/AgtBJSECDL4CC0HlACECDL0CCyADQT02AhwgAyABNgIUIAMgADYCDEEAIQIM1QILIANBGzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDNQCCyADQSA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzTAgsgA0ETNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0gILIANBCzYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNECCyADQRA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzQAgsgA0EgNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzwILIANBCzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM4CCyADQQw2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzNAgtBACECIANBADYCHCADIAE2AhQgA0HdDjYCECADQRI2AgwMzAILAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB/QEhAgzMAgsCQAJAIAMtADZBAUcNAEEAIQACQCADKAI4IgJFDQAgAigCYCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUcNASADQfwBNgIcIAMgATYCFCADQdwZNgIQIANBFTYCDEEAIQIMzQILQdwBIQIMswILIANBADYCHCADIAE2AhQgA0H5CzYCECADQR82AgxBACECDMsCCwJAAkAgAy0AKEEBaw4CBAEAC0HbASECDLICC0HUASECDLECCyADQQI6ADFBACEAAkAgAygCOCICRQ0AIAIoAgAiAkUNACADIAIRAAAhAAsgAEUEQEHdASECDLECCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQbQMNgIQIANBEDYCDEEAIQIMygILIANB+wE2AhwgAyABNgIUIANBgRo2AhAgA0EVNgIMQQAhAgzJAgsgASAERgRAQfoBIQIMyQILIAEtAABByABGDQEgA0EBOgAoC0HAASECDK4CC0HaASECDK0CCyABIARHBEAgA0EMNgIIIAMgATYCBEHZASECDK0CC0H5ASECDMUCCyABIARGBEBB+AEhAgzFAgsgAS0AAEHIAEcNBCABQQFqIQFB2AEhAgyrAgsgASAERgRAQfcBIQIMxAILAkACQCABLQAAQcUAaw4QAAUFBQUFBQUFBQUFBQUFAQULIAFBAWohAUHWASECDKsCCyABQQFqIQFB1wEhAgyqAgtB9gEhAiABIARGDcICIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbrVAGotAABHDQMgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMMCCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIARQRAQeMBIQIMqgILIANB9QE2AhwgAyABNgIUIAMgADYCDEEAIQIMwgILQfQBIQIgASAERg3BAiADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEG41QBqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzCAgsgA0GBBDsBKCADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIADQMMAgsgA0EANgIAC0EAIQIgA0EANgIcIAMgATYCFCADQeUfNgIQIANBCDYCDAy/AgtB1QEhAgylAgsgA0HzATYCHCADIAE2AhQgAyAANgIMQQAhAgy9AgtBACEAAkAgAygCOCICRQ0AIAIoAkAiAkUNACADIAIRAAAhAAsgAEUNbiAAQRVHBEAgA0EANgIcIAMgATYCFCADQYIPNgIQIANBIDYCDEEAIQIMvQILIANBjwE2AhwgAyABNgIUIANB7Bs2AhAgA0EVNgIMQQAhAgy8AgsgASAERwRAIANBDTYCCCADIAE2AgRB0wEhAgyjAgtB8gEhAgy7AgsgASAERgRAQfEBIQIMuwILAkACQAJAIAEtAABByABrDgsAAQgICAgICAgIAggLIAFBAWohAUHQASECDKMCCyABQQFqIQFB0QEhAgyiAgsgAUEBaiEBQdIBIQIMoQILQfABIQIgASAERg25AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBtdUAai0AAEcNBCAAQQJGDQMgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuQILQe8BIQIgASAERg24AiADKAIAIgAgBCABa2ohBiABIABrQQFqIQUDQCABLQAAIABBs9UAai0AAEcNAyAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuAILQe4BIQIgASAERg23AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMtwILIAMoAgQhACADQgA3AwAgAyAAIAVBAWoiARArIgBFDQIgA0HsATYCHCADIAE2AhQgAyAANgIMQQAhAgy2AgsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNnAIgA0HtATYCHCADIAE2AhQgAyAANgIMQQAhAgy0AgtBzwEhAgyaAgtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDLQCC0HOASECDJoCCyADQesBNgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMsgILIAEgBEYEQEHrASECDLICCyABLQAAQS9GBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GyODYCECADQQg2AgxBACECDLECC0HNASECDJcCCyABIARHBEAgA0EONgIIIAMgATYCBEHMASECDJcCC0HqASECDK8CCyABIARGBEBB6QEhAgyvAgsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFBywEhAgyWAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZcCIANB6AE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAEgBEYEQEHnASECDK4CCwJAIAEtAABBLkYEQCABQQFqIQEMAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5gE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILQcoBIQIMlAILIAEgBEYEQEHlASECDK0CC0EAIQBBASEFQQEhB0EAIQICQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQCABLQAAQTBrDgoKCQABAgMEBQYICwtBAgwGC0EDDAULQQQMBAtBBQwDC0EGDAILQQcMAQtBCAshAkEAIQVBACEHDAILQQkhAkEBIQBBACEFQQAhBwwBC0EAIQVBASECCyADIAI6ACsgAUEBaiEBAkACQCADLQAuQRBxDQACQAJAAkAgAy0AKg4DAQACBAsgB0UNAwwCCyAADQEMAgsgBUUNAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDQIgA0HiATYCHCADIAE2AhQgAyAANgIMQQAhAgyvAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZoCIANB4wE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ2YAiADQeQBNgIcIAMgATYCFCADIAA2AgwMrQILQckBIQIMkwILQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANBpA02AhAgA0EhNgIMQQAhAgytAgtByAEhAgyTAgsgA0HhATYCHCADIAE2AhQgA0HQGjYCECADQRU2AgxBACECDKsCCyABIARGBEBB4QEhAgyrAgsCQCABLQAAQSBGBEAgA0EAOwE0IAFBAWohAQwBCyADQQA2AhwgAyABNgIUIANBmRE2AhAgA0EJNgIMQQAhAgyrAgtBxwEhAgyRAgsgASAERgRAQeABIQIMqgILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyrAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqgILQcYBIQIMkAILIAEgBEYEQEHfASECDKkCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqgILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKkCC0HFASECDI8CCyABIARGBEBB3gEhAgyoAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKkCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyoAgtBxAEhAgyOAgsgASAERgRAQd0BIQIMpwILAkACQAJAAkAgAS0AAEEKaw4XAgMDAAMDAwMDAwMDAwMDAwMDAwMDAwEDCyABQQFqDAULIAFBAWohAUHDASECDI8CCyABQQFqIQEgA0Evai0AAEEBcQ0IIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKcCCyADQQA2AhwgAyABNgIUIANBjQs2AhAgA0ENNgIMQQAhAgymAgsgASAERwRAIANBDzYCCCADIAE2AgRBASECDI0CC0HcASECDKUCCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtB2wEhAgymAgsgAygCBCEAIANBADYCBCADIAAgARAtIgBFBEAgAUEBaiEBDAQLIANB2gE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMpQILIAMoAgQhACADQQA2AgQgAyAAIAEQLSIADQEgAUEBagshAUHBASECDIoCCyADQdkBNgIcIAMgADYCDCADIAFBAWo2AhRBACECDKICC0HCASECDIgCCyADQS9qLQAAQQFxDQEgA0EANgIcIAMgATYCFCADQeQcNgIQIANBGTYCDEEAIQIMoAILIAEgBEYEQEHZASEC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IAFBAWohAUGeASECDOQBCyABQQFqIQFBnwEhAgzjAQtBtwEhAiABIARGDfsBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQezUAGotAABHDSggAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPwBCyADQQA2AgAgBkEBaiEBQQ0MKAtBtgEhAiABIARGDfoBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDScgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPsBCyADQQA2AgAgBkEBaiEBQQwMJwtBtQEhAiABIARGDfkBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQerUAGotAABHDSYgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPoBCyADQQA2AgAgBkEBaiEBQQMMJgtBtAEhAiABIARGDfgBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQejUAGotAABHDSUgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPkBCyADQQA2AgAgBkEBaiEBQSYMJQsgASAERgRAQbMBIQIM+AELAkACQCABLQAAQdQAaw4CAAEnCyABQQFqIQFBmQEhAgzfAQsgAUEBaiEBQZoBIQIM3gELQbIBIQIgASAERg32ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHm1ABqLQAARw0jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz3AQsgA0EANgIAIAZBAWohAUEnDCMLQbEBIQIgASAERg31ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHk1ABqLQAARw0iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz2AQsgA0EANgIAIAZBAWohAUEcDCILQbABIQIgASAERg30ASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHe1ABqLQAARw0hIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz1AQsgA0EANgIAIAZBAWohAUEGDCELQa8BIQIgASAERg3zASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHZ1ABqLQAARw0gIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz0AQsgA0EANgIAIAZBAWohAUEZDCALIAEgBEYEQEGuASECDPMBCwJAAkACQAJAIAEtAABBLWsOIwAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAEkJCQkJAIkJCQDJAsgAUEBaiEBQY4BIQIM3AELIAFBAWohAUGPASECDNsBCyABQQFqIQFBlAEhAgzaAQsgAUEBaiEBQZUBIQIM2QELQa0BIQIgASAERg3xASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHX1ABqLQAARw0eIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzyAQsgA0EANgIAIAZBAWohAUELDB4LIAEgBEYEQEGsASECDPEBCwJAAkAgAS0AAEHBAGsOAwAgASALIAFBAWohAUGQASECDNgBCyABQQFqIQFBkwEhAgzXAQsgASAERgRAQasBIQIM8AELAkACQCABLQAAQcEAaw4PAB8fHx8fHx8fHx8fHx8BHwsgAUEBaiEBQZEBIQIM1wELIAFBAWohAUGSASECDNYBCyABIARGBEBBqgEhAgzvAQsgAS0AAEHMAEcNHCABQQFqIQFBCgwbC0GpASECIAEgBEYN7QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABB0dQAai0AAEcNGiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7gELIANBADYCACAGQQFqIQFBHgwaC0GoASECIAEgBEYN7AEgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCABLQAAIABBytQAai0AAEcNGSAAQQZGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7QELIANBADYCACAGQQFqIQFBFQwZC0GnASECIAEgBEYN6wEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBx9QAai0AAEcNGCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7AELIANBADYCACAGQQFqIQFBFwwYC0GmASECIAEgBEYN6gEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBwdQAai0AAEcNFyAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6wELIANBADYCACAGQQFqIQFBGAwXCyABIARGBEBBpQEhAgzqAQsCQAJAIAEtAABByQBrDgcAGRkZGRkBGQsgAUEBaiEBQYsBIQIM0QELIAFBAWohAUGMASECDNABC0GkASECIAEgBEYN6AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBptUAai0AAEcNFSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6QELIANBADYCACAGQQFqIQFBCQwVC0GjASECIAEgBEYN5wEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBpNUAai0AAEcNFCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6AELIANBADYCACAGQQFqIQFBHwwUC0GiASECIAEgBEYN5gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBvtQAai0AAEcNEyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5wELIANBADYCACAGQQFqIQFBAgwTC0GhASECIAEgBEYN5QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGA0AgAS0AACAAQbzUAGotAABHDREgAEEBRg0CIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADOUBCyABIARGBEBBoAEhAgzlAQtBASABLQAAQd8ARw0RGiABQQFqIQFBhwEhAgzLAQsgA0EANgIAIAZBAWohAUGIASECDMoBC0GfASECIAEgBEYN4gEgAygCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABBhNUAai0AAEcNDyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4wELIANBADYCACAGQQFqIQFBKQwPC0GeASECIAEgBEYN4QEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBuNQAai0AAEcNDiAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4gELIANBADYCACAGQQFqIQFBLQwOCyABIARGBEBBnQEhAgzhAQsgAS0AAEHFAEcNDiABQQFqIQFBhAEhAgzHAQsgASAERgRAQZwBIQIM4AELAkACQCABLQAAQcwAaw4IAA8PDw8PDwEPCyABQQFqIQFBggEhAgzHAQsgAUEBaiEBQYMBIQIMxgELQZsBIQIgASAERg3eASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEGz1ABqLQAARw0LIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzfAQsgA0EANgIAIAZBAWohAUEjDAsLQZoBIQIgASAERg3dASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGw1ABqLQAARw0KIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzeAQsgA0EANgIAIAZBAWohAUEADAoLIAEgBEYEQEGZASECDN0BCwJAAkAgAS0AAEHIAGsOCAAMDAwMDAwBDAsgAUEBaiEBQf0AIQIMxAELIAFBAWohAUGAASECDMMBCyABIARGBEBBmAEhAgzcAQsCQAJAIAEtAABBzgBrDgMACwELCyABQQFqIQFB/gAhAgzDAQsgAUEBaiEBQf8AIQIMwgELIAEgBEYEQEGXASECDNsBCyABLQAAQdkARw0IIAFBAWohAUEIDAcLQZYBIQIgASAERg3ZASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEGs1ABqLQAARw0GIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzaAQsgA0EANgIAIAZBAWohAUEFDAYLQZUBIQIgASAERg3YASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGm1ABqLQAARw0FIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzZAQsgA0EANgIAIAZBAWohAUEWDAULQZQBIQIgASAERg3XASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0EIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzYAQsgA0EANgIAIAZBAWohAUEQDAQLIAEgBEYEQEGTASECDNcBCwJAAkAgAS0AAEHDAGsODAAGBgYGBgYGBgYGAQYLIAFBAWohAUH5ACECDL4BCyABQQFqIQFB+gAhAgy9AQtBkgEhAiABIARGDdUBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQaDUAGotAABHDQIgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNYBCyADQQA2AgAgBkEBaiEBQSQMAgsgA0EANgIADAILIAEgBEYEQEGRASECDNQBCyABLQAAQcwARw0BIAFBAWohAUETCzoAKSADKAIEIQAgA0EANgIEIAMgACABEC4iAA0CDAELQQAhAiADQQA2AhwgAyABNgIUIANB/h82AhAgA0EGNgIMDNEBC0H4ACECDLcBCyADQZABNgIcIAMgATYCFCADIAA2AgxBACECDM8BC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUYNASADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgzOAQtB9wAhAgy0AQsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDMwBCyABIARGBEBBjwEhAgzMAQsCQCABLQAAQSBGBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GbHzYCECADQQY2AgxBACECDMwBC0ECIQIMsgELA0AgAS0AAEEgRw0CIAQgAUEBaiIBRw0AC0GOASECDMoBCyABIARGBEBBjQEhAgzKAQsCQCABLQAAQQlrDgRKAABKAAtB9QAhAgywAQsgAy0AKUEFRgRAQfYAIQIMsAELQfQAIQIMrwELIAEgBEYEQEGMASECDMgBCyADQRA2AgggAyABNgIEDAoLIAEgBEYEQEGLASECDMcBCwJAIAEtAABBCWsOBEcAAEcAC0HzACECDK0BCyABIARHBEAgA0EQNgIIIAMgATYCBEHxACECDK0BC0GKASECDMUBCwJAIAEgBEcEQANAIAEtAABBoNAAai0AACIAQQNHBEACQCAAQQFrDgJJAAQLQfAAIQIMrwELIAQgAUEBaiIBRw0AC0GIASECDMYBC0GIASECDMUBCyADQQA2AhwgAyABNgIUIANB2yA2AhAgA0EHNgIMQQAhAgzEAQsgASAERgRAQYkBIQIMxAELAkACQAJAIAEtAABBoNIAai0AAEEBaw4DRgIAAQtB8gAhAgysAQsgA0EANgIcIAMgATYCFCADQbQSNgIQIANBBzYCDEEAIQIMxAELQeoAIQIMqgELIAEgBEcEQCABQQFqIQFB7wAhAgyqAQtBhwEhAgzCAQsgBCABIgBGBEBBhgEhAgzCAQsgAC0AACIBQS9GBEAgAEEBaiEBQe4AIQIMqQELIAFBCWsiAkEXSw0BIAAhAUEBIAJ0QZuAgARxDUEMAQsgBCABIgBGBEBBhQEhAgzBAQsgAC0AAEEvRw0AIABBAWohAQwDC0EAIQIgA0EANgIcIAMgADYCFCADQdsgNgIQIANBBzYCDAy/AQsCQAJAAkACQAJAA0AgAS0AAEGgzgBqLQAAIgBBBUcEQAJAAkAgAEEBaw4IRwUGBwgABAEIC0HrACECDK0BCyABQQFqIQFB7QAhAgysAQsgBCABQQFqIgFHDQALQYQBIQIMwwELIAFBAWoMFAsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDR4gA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgzBAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDR4gA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgzAAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDR4gA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgy/AQsgA0EANgIcIAMgATYCFCADQfkPNgIQIANBBzYCDEEAIQIMvgELIAEgBEYEQEGDASECDL4BCwJAIAEtAABBoM4Aai0AAEEBaw4IPgQFBgAIAgMHCyABQQFqIQELQQMhAgyjAQsgAUEBagwNC0EAIQIgA0EANgIcIANB0RI2AhAgA0EHNgIMIAMgAUEBajYCFAy6AQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDRYgA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgy5AQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDRYgA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgy4AQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDRYgA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgy3AQsgA0EANgIcIAMgATYCFCADQfkPNgIQIANBBzYCDEEAIQIMtgELQewAIQIMnAELIAEgBEYEQEGCASECDLUBCyABQQFqDAILIAEgBEYEQEGBASECDLQBCyABQQFqDAELIAEgBEYNASABQQFqCyEBQQQhAgyYAQtBgAEhAgywAQsDQCABLQAAQaDMAGotAAAiAEECRwRAIABBAUcEQEHpACECDJkBCwwxCyAEIAFBAWoiAUcNAAtB/wAhAgyvAQsgASAERgRAQf4AIQIMrwELAkAgAS0AAEEJaw43LwMGLwQGBgYGBgYGBgYGBgYGBgYGBgYFBgYCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAAYLIAFBAWoLIQFBBSECDJQBCyABQQFqDAYLIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0IIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMqwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0IIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMqgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0IIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMqQELIANBADYCHCADIAE2AhQgA0GNFDYCECADQQc2AgxBACECDKgBCwJAAkACQAJAA0AgAS0AAEGgygBqLQAAIgBBBUcEQAJAIABBAWsOBi4DBAUGAAYLQegAIQIMlAELIAQgAUEBaiIBRw0AC0H9ACECDKsBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNByADQdsANgIcIAMgATYCFCADIAA2AgxBACECDKoBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNByADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDKkBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNByADQfoANgIcIAMgATYCFCADIAA2AgxBACECDKgBCyADQQA2AhwgAyABNgIUIANB5Ag2AhAgA0EHNgIMQQAhAgynAQsgASAERg0BIAFBAWoLIQFBBiECDIwBC0H8ACECDKQBCwJAAkACQAJAA0AgAS0AAEGgyABqLQAAIgBBBUcEQCAAQQFrDgQpAgMEBQsgBCABQQFqIgFHDQALQfsAIQIMpwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMpgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMpQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMpAELIANBADYCHCADIAE2AhQgA0G8CjYCECADQQc2AgxBACECDKMBC0HPACECDIkBC0HRACECDIgBC0HnACECDIcBCyABIARGBEBB+gAhAgygAQsCQCABLQAAQQlrDgQgAAAgAAsgAUEBaiEBQeYAIQIMhgELIAEgBEYEQEH5ACECDJ8BCwJAIAEtAABBCWsOBB8AAB8AC0EAIQACQCADKAI4IgJFDQAgAigCOCICRQ0AIAMgAhEAACEACyAARQRAQeIBIQIMhgELIABBFUcEQCADQQA2AhwgAyABNgIUIANByQ02AhAgA0EaNgIMQQAhAgyfAQsgA0H4ADYCHCADIAE2AhQgA0HqGjYCECADQRU2AgxBACECDJ4BCyABIARHBEAgA0ENNgIIIAMgATYCBEHkACECDIUBC0H3ACECDJ0BCyABIARGBEBB9gAhAgydAQsCQAJAAkAgAS0AAEHIAGsOCwABCwsLCwsLCwsCCwsgAUEBaiEBQd0AIQIMhQELIAFBAWohAUHgACECDIQBCyABQQFqIQFB4wAhAgyDAQtB9QAhAiABIARGDZsBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbXVAGotAABHDQggAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJwBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIABEAgA0H0ADYCHCADIAE2AhQgAyAANgIMQQAhAgycAQtB4gAhAgyCAQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJwBC0HhACECDIIBCyADQfMANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMmgELIAMtACkiAEEja0ELSQ0JAkAgAEEGSw0AQQEgAHRBygBxRQ0ADAoLQQAhAiADQQA2AhwgAyABNgIUIANB7Qk2AhAgA0EINgIMDJkBC0HyACECIAEgBEYNmAEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBs9UAai0AAEcNBSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMmQELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfEANgIcIAMgATYCFCADIAA2AgxBACECDJkBC0HfACECDH8LQQAhAAJAIAMoAjgiAkUNACACKAI0IgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANB6g02AhAgA0EmNgIMQQAhAgyZAQtB3gAhAgx/CyADQfAANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMlwELIAMtAClBIUYNBiADQQA2AhwgAyABNgIUIANBkQo2AhAgA0EINgIMQQAhAgyWAQtB7wAhAiABIARGDZUBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDVAGotAABHDQIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJYBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIARQ0CIANB7QA2AhwgAyABNgIUIAMgADYCDEEAIQIMlQELIANBADYCAAsgAygCBCEAIANBADYCBCADIAAgARArIgBFDYABIANB7gA2AhwgAyABNgIUIAMgADYCDEEAIQIMkwELQdwAIQIMeQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJMBC0HbACECDHkLIANB7AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyRAQsgAy0AKSIAQSNJDQAgAEEuRg0AIANBADYCHCADIAE2AhQgA0HJCTYCECADQQg2AgxBACECDJABC0HaACECDHYLIAEgBEYEQEHrACECDI8BCwJAIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMjwELQdkAIQIMdQsgASAERwRAIANBDjYCCCADIAE2AgRB2AAhAgx1C0HqACECDI0BCyABIARGBEBB6QAhAgyNAQsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFB1wAhAgx0CyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeiADQegANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyABIARGBEBB5wAhAgyMAQsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ17IANB5gA2AhwgAyABNgIUIAMgADYCDEEAIQIMjAELQdYAIQIMcgsgASAERgRAQeUAIQIMiwELQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIANgIcIAMgATYCFCADIAA2AgxBACECDI0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNfSADQeMANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeyADQeQANgIcIAMgATYCFCADIAA2AgwMiwELQdQAIQIMcQsgAy0AKUEiRg2GAUHTACECDHALQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALIABFBEBB1QAhAgxwCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQaQNNgIQIANBITYCDEEAIQIMiQELIANB4QA2AhwgAyABNgIUIANB0Bo2AhAgA0EVNgIMQQAhAgyIAQsgASAERgRAQeAAIQIMiAELAkACQAJAAkACQCABLQAAQQprDgQBBAQABAsgAUEBaiEBDAELIAFBAWohASADQS9qLQAAQQFxRQ0BC0HSACECDHALIANBADYCHCADIAE2AhQgA0G2ETYCECADQQk2AgxBACECDIgBCyADQQA2AhwgAyABNgIUIANBthE2AhAgA0EJNgIMQQAhAgyHAQsgASAERgRAQd8AIQIMhwELIAEtAABBCkYEQCABQQFqIQEMCQsgAy0ALkHAAHENCCADQQA2AhwgAyABNgIUIANBthE2AhAgA0ECNgIMQQAhAgyGAQsgASAERgRAQd0AIQIMhgELIAEtAAAiAkENRgRAIAFBAWohAUHQACECDG0LIAEhACACQQlrDgQFAQEFAQsgBCABIgBGBEBB3AAhAgyFAQsgAC0AAEEKRw0AIABBAWoMAgtBACECIANBADYCHCADIAA2AhQgA0HKLTYCECADQQc2AgwMgwELIAEgBEYEQEHbACECDIMBCwJAIAEtAABBCWsOBAMAAAMACyABQQFqCyEBQc4AIQIMaAsgASAERgRAQdoAIQIMgQELIAEtAABBCWsOBAABAQABC0EAIQIgA0EANgIcIANBmhI2AhAgA0EHNgIMIAMgAUEBajYCFAx/CyADQYASOwEqQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB2QA2AhwgAyABNgIUIANB6ho2AhAgA0EVNgIMQQAhAgx+C0HNACECDGQLIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDHwLIAEgBEYEQEHZACECDHwLIAEtAABBIEcNPSABQQFqIQEgAy0ALkEBcQ09IANBADYCHCADIAE2AhQgA0HCHDYCECADQR42AgxBACECDHsLIAEgBEYEQEHYACECDHsLAkACQAJAAkACQCABLQAAIgBBCmsOBAIDAwABCyABQQFqIQFBLCECDGULIABBOkcNASADQQA2AhwgAyABNgIUIANB5xE2AhAgA0EKNgIMQQAhAgx9CyABQQFqIQEgA0Evai0AAEEBcUUNcyADLQAyQYABcUUEQCADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALAkACQCAADhZNTEsBAQEBAQEBAQEBAQEBAQEBAQEAAQsgA0EpNgIcIAMgATYCFCADQawZNgIQIANBFTYCDEEAIQIMfgsg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c3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==",fd;Object.defineProperty(xh,"exports",{get:()=>fd||(fd=ok.from(ik,"base64"))})});var Fh=B((jK,Uh)=>{"use strict";var{Buffer:sk}=require("node:buffer"),Ak="AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRwX3NldF9sZW5pZW50X2hlYWRlcnMAISFsbGh0dHBfc2V0X2xlbmllbnRfY2h1bmtlZF9sZW5ndGgAIh1sbGh0dHBfc2V0X2xlbmllbnRfa2VlcF9hbGl2ZQAjJGxsaHR0cF9zZXRfbGVuaWVudF90cmFuc2Zlcl9lbmNvZGluZwAkGmxsaHR0cF9zZXRfbGVuaWVudF92ZXJzaW9uACUjbGxodHRwX3NldF9sZW5pZW50X2RhdGFfYWZ0ZXJfY2xvc2UAJidsbGh0dHBfc2V0X2xlbmllbnRfb3B0aW9uYWxfbGZfYWZ0ZXJfY3IAJyxsbGh0dHBfc2V0X2xlbmllbnRfb3B0aW9uYWxfY3JsZl9hZnRlcl9jaHVuawAoKGxsaHR0cF9zZXRfbGVuaWVudF9vcHRpb25hbF9jcl9iZWZvcmVfbGYAKSpsbGh0dHBfc2V0X2xlbmllbnRfc3BhY2VzX2FmdGVyX2NodW5rX3NpemUAKhhsbGh0dHBfbWVzc2FnZV9uZWVkc19lb2YANgkYAQBBAQsSAQIDBAUKBgcyNDMuKy8tLDAxCuzaAjQWAEHA1QAoAgAEQAALQcDVAEEBNgIACxQAIAAQOCAAIAI2AjggACABOgAoCxQAIAAgAC8BNCAALQAwIAAQNxAACx4BAX9BwAAQOiIBEDggAUGACDYCOCABIAA6ACggAQuPDAEHfwJAIABFDQAgAEEIayIBIABBBGsoAgAiAEF4cSIEaiEFAkAgAEEBcQ0AIABBA3FFDQEgASABKAIAIgBrIgFB1NUAKAIASQ0BIAAgBGohBAJAAkBB2NUAKAIAIAFHBEAgAEH/AU0EQCAAQQN2IQMgASgCCCIAIAEoAgwiAkYEQEHE1QBBxNUAKAIAQX4gA3dxNgIADAULIAIgADYCCCAAIAI2AgwMBAsgASgCGCEGIAEgASgCDCIARwRAIAAgASgCCCICNgIIIAIgADYCDAwDCyABQRRqIgMoAgAiAkUEQCABKAIQIgJFDQIgAUEQaiEDCwNAIAMhByACIgBBFGoiAygCACICDQAgAEEQaiEDIAAoAhAiAg0ACyAHQQA2AgAMAgsgBSgCBCIAQQNxQQNHDQIgBSAAQX5xNgIEQczVACAENgIAIAUgBDYCACABIARBAXI2AgQMAwtBACEACyAGRQ0AAkAgASgCHCICQQJ0QfTXAGoiAygCACABRgRAIAMgADYCACAADQFByNUAQcjVACgCAEF+IAJ3cTYCAAwCCyAGQRBBFCAGKAIQIAFGG2ogADYCACAARQ0BCyAAIAY2AhggASgCECICBEAgACACNgIQIAIgADYCGAsgAUEUaigCACICRQ0AIABBFGogAjYCACACIAA2AhgLIAEgBU8NACAFKAIEIgBBAXFFDQACQAJAAkACQCAAQQJxRQRAQdzVACgCACAFRgRAQdzVACABNgIAQdDVAEHQ1QAoAgAgBGoiADYCACABIABBAXI2AgQgAUHY1QAoAgBHDQZBzNUAQQA2AgBB2NUAQQA2AgAMBgtB2NUAKAIAIAVGBEBB2NUAIAE2AgBBzNUAQczVACgCACAEaiIANgIAIAEgAEEBcjYCBCAAIAFqIAA2AgAMBgsgAEF4cSAEaiEEIABB/wFNBEAgAEEDdiEDIAUoAggiACAFKAIMIgJGBEBBxNUAQcTVACgCAEF+IAN3cTYCAAwFCyACIAA2AgggACACNgIMDAQLIAUoAhghBiAFIAUoAgwiAEcEQEHU1QAoAgAaIAAgBSgCCCICNgIIIAIgADYCDAwDCyAFQRRqIgMoAgAiAkUEQCAFKAIQIgJFDQIgBUEQaiEDCwNAIAMhByACIgBBFGoiAygCACICDQAgAEEQaiEDIAAoAhAiAg0ACyAHQQA2AgAMAgsgBSAAQX5xNgIEIAEgBGogBDYCACABIARBAXI2AgQMAwtBACEACyAGRQ0AAkAgBSgCHCICQQJ0QfTXAGoiAygCACAFRgRAIAMgADYCACAADQFByNUAQcjVACgCAEF+IAJ3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogADYCACAARQ0BCyAAIAY2AhggBSgCECICBEAgACACNgIQIAIgADYCGAsgBUEUaigCACICRQ0AIABBFGogAjYCACACIAA2AhgLIAEgBGogBDYCACABIARBAXI2AgQgAUHY1QAoAgBHDQBBzNUAIAQ2AgAMAQsgBEH/AU0EQCAEQXhxQezVAGohAAJ/QcTVACgCACICQQEgBEEDdnQiA3FFBEBBxNUAIAIgA3I2AgAgAAwBCyAAKAIICyICIAE2AgwgACABNgIIIAEgADYCDCABIAI2AggMAQtBHyECIARB////B00EQCAEQSYgBEEIdmciAGt2QQFxIABBAXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgLhocCAwd/A34BeyABIAJqIQQCQCAAIgMoAgwiAA0AIAMoAgQEQCADIAE2AgQLIwBBEGsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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DAgLQeMBDAcLQdcBDAYLQdgBDAULQdkBDAQLQdoBDAMLQdsBDAILQd0BDAELQdwBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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A0EXNgIcIAMgADYCDCADIAFBAWo2AhQM+AILIABBFUYNI0EAIQIgA0EANgIcIAMgATYCFCADQdYMNgIQIANBIzYCDAz3AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQwdCyADQRk2AhwgAyAANgIMIAMgAUEBajYCFAz2AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQzvAgsgA0EaNgIcIAMgADYCDCADIAFBAWo2AhQM9QILIABBFUYNH0EAIQIgA0EANgIcIAMgATYCFCADQdAPNgIQIANBIjYCDAz0AgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDBsLIANBHDYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgzzAgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDOsCCyADQR02AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM8gILIABBO0cNASABQQFqIQELQSYhAgzXAgtBACECIANBADYCHCADIAE2AhQgA0GfFTYCECADQQw2AgwM7wILIAEgBEcEQANAIAEtAABBIEcNhAIgBCABQQFqIgFHDQALQSwhAgzvAgtBLCECDO4CCyABIARGBEBBNCECDO4CCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtBNCECDO8CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUNnwIgA0EyNgIcIAMgATYCFCADIAA2AgxBACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUEQCABQQFqIQEMnwILIANBMjYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgztAgsgASAERwRAAkADQCABLQAAQTBrIgBB/wFxQQpPBEBBOiECDNcCCyADKQMgIgtCmbPmzJmz5swZVg0BIAMgC0IKfiIKNwMgIAogAK1C/wGDIgtCf4VWDQEgAyAKIAt8NwMgIAQgAUEBaiIBRw0AC0HAACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABQQFqIgEQMSIADRcM4gILQcAAIQIM7AILIAEgBEYEQEHJACECDOwCCwJAA0ACQCABLQAAQQlrDhgAAqICogKpAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAgCiAgsgBCABQQFqIgFHDQALQckAIQIM7AILIAFBAWohASADQS9qLQAAQQFxDaUCIANBADYCHCADIAE2AhQgA0GXEDYCECADQQo2AgxBACECDOsCCyABIARHBEADQCABLQAAQSBHDRUgBCABQQFqIgFHDQALQfgAIQIM6wILQfgAIQIM6gILIANBAjoAKAw4C0EAIQIgA0EANgIcIANBvws2AhAgA0ECNgIMIAMgAUEBajYCFAzoAgtBACECDM4CC0ENIQIMzQILQRMhAgzMAgtBFSECDMsCC0EWIQIMygILQRghAgzJAgtBGSECDMgCC0EaIQIMxwILQRshAgzGAgtBHCECDMUCC0EdIQIMxAILQR4hAgzDAgtBHyECDMICC0EgIQIMwQILQSIhAgzAAgtBIyECDL8CC0ElIQIMvgILQeUAIQIMvQILIANBPTYCHCADIAE2AhQgAyAANgIMQQAhAgzVAgsgA0EbNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIM1AILIANBIDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNMCCyADQRM2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzSAgsgA0ELNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0QILIANBEDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNACCyADQSA2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzPAgsgA0ELNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzgILIANBDDYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM0CC0EAIQIgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDAzMAgsCQANAAkAgAS0AAEEKaw4EAAICAAILIAQgAUEBaiIBRw0AC0H9ASECDMwCCwJAAkAgAy0ANkEBRw0AQQAhAAJAIAMoAjgiAkUNACACKAJgIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB/AE2AhwgAyABNgIUIANB3Bk2AhAgA0EVNgIMQQAhAgzNAgtB3AEhAgyzAgsgA0EANgIcIAMgATYCFCADQfkLNgIQIANBHzYCDEEAIQIMywILAkACQCADLQAoQQFrDgIEAQALQdsBIQIMsgILQdQBIQIMsQILIANBAjoAMUEAIQACQCADKAI4IgJFDQAgAigCACICRQ0AIAMgAhEAACEACyAARQRAQd0BIQIMsQILIABBFUcEQCADQQA2AhwgAyABNgIUIANBtAw2AhAgA0EQNgIMQQAhAgzKAgsgA0H7ATYCHCADIAE2AhQgA0GBGjYCECADQRU2AgxBACECDMkCCyABIARGBEBB+gEhAgzJAgsgAS0AAEHIAEYNASADQQE6ACgLQcABIQIMrgILQdoBIQIMrQILIAEgBEcEQCADQQw2AgggAyABNgIEQdkBIQIMrQILQfkBIQIMxQILIAEgBEYEQEH4ASECDMUCCyABLQAAQcgARw0EIAFBAWohAUHYASECDKsCCyABIARGBEBB9wEhAgzEAgsCQAJAIAEtAABBxQBrDhAABQUFBQUFBQUFBQUFBQUBBQsgAUEBaiEBQdYBIQIMqwILIAFBAWohAUHXASECDKoCC0H2ASECIAEgBEYNwgIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABButUAai0AAEcNAyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMwwILIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgBFBEBB4wEhAgyqAgsgA0H1ATYCHCADIAE2AhQgAyAANgIMQQAhAgzCAgtB9AEhAiABIARGDcECIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbjVAGotAABHDQIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMICCyADQYEEOwEoIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgANAwwCCyADQQA2AgALQQAhAiADQQA2AhwgAyABNgIUIANB5R82AhAgA0EINgIMDL8CC0HVASECDKUCCyADQfMBNgIcIAMgATYCFCADIAA2AgxBACECDL0CC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ1uIABBFUcEQCADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgy9AgsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDLwCCyABIARHBEAgA0ENNgIIIAMgATYCBEHTASECDKMCC0HyASECDLsCCyABIARGBEBB8QEhAgy7AgsCQAJAAkAgAS0AAEHIAGsOCwABCAgICAgICAgCCAsgAUEBaiEBQdABIQIMowILIAFBAWohAUHRASECDKICCyABQQFqIQFB0gEhAgyhAgtB8AEhAiABIARGDbkCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEG11QBqLQAARw0EIABBAkYNAyAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy5AgtB7wEhAiABIARGDbgCIAMoAgAiACAEIAFraiEGIAEgAGtBAWohBQNAIAEtAAAgAEGz1QBqLQAARw0DIABBAUYNAiAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy4AgtB7gEhAiABIARGDbcCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEGw1QBqLQAARw0CIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy3AgsgAygCBCEAIANCADcDACADIAAgBUEBaiIBECsiAEUNAiADQewBNgIcIAMgATYCFCADIAA2AgxBACECDLYCCyADQQA2AgALIAMoAgQhACADQQA2AgQgAyAAIAEQKyIARQ2cAiADQe0BNgIcIAMgATYCFCADIAA2AgxBACECDLQCC0HPASECDJoCC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMtAILQc4BIQIMmgILIANB6wE2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyyAgsgASAERgRAQesBIQIMsgILIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMsQILQc0BIQIMlwILIAEgBEcEQCADQQ42AgggAyABNgIEQcwBIQIMlwILQeoBIQIMrwILIAEgBEYEQEHpASECDK8CCyABLQAAQTBrIgBB/wFxQQpJBEAgAyAAOgAqIAFBAWohAUHLASECDJYCCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNlwIgA0HoATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgASAERgRAQecBIQIMrgILAkAgAS0AAEEuRgRAIAFBAWohAQwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmAIgA0HmATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgtBygEhAgyUAgsgASAERgRAQeUBIQIMrQILQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIBNgIcIAMgATYCFCADIAA2AgxBACECDK8CCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmgIgA0HjATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5AE2AhwgAyABNgIUIAMgADYCDAytAgtByQEhAgyTAgtBACEAAkAgAygCOCICRQ0AIAIoAkQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GkDTYCECADQSE2AgxBACECDK0CC0HIASECDJMCCyADQeEBNgIcIAMgATYCFCADQdAaNgIQIANBFTYCDEEAIQIMqwILIAEgBEYEQEHhASECDKsCCwJAIAEtAABBIEYEQCADQQA7ATQgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GZETYCECADQQk2AgxBACECDKsCC0HHASECDJECCyABIARGBEBB4AEhAgyqAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKsCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyqAgtBxgEhAgyQAgsgASAERgRAQd8BIQIMqQILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyqAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqQILQcUBIQIMjwILIAEgBEYEQEHeASECDKgCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqQILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKgCC0HEASECDI4CCyABIARGBEBB3QEhAgynAgsCQAJAAkACQCABLQAAQQprDhcCAwMAAwMDAwMDAwMDAwMDAwMDAwMDAQMLIAFBAWoMBQsgAUEBaiEBQcMBIQIMjwILIAFBAWohASADQS9qLQAAQQFxDQggA0EANgIcIAMgATYCFCADQY0LNgIQIANBDTYCDEEAIQIMpwILIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKYCCyABIARHBEAgA0EPNgIIIAMgATYCBEEBIQIMjQILQdwBIQIMpQILAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0HbASECDKYCCyADKAIEIQAgA0EANgIEIAMgACABEC0iAEUEQCABQQFqIQEMBAsgA0HaATYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgylAgsgAygCBCEAIANBADYCBCADIAAgARAtIgANASABQQFqCyEBQcEBIQIMigILIANB2QE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMogILQcIBIQIMiAILIANBL2otAABBAXENASADQQA2AhwgAyABNgIUIANB5Bw2AhAgA0EZNgIMQQAhAgygAgsgASAERgRAQdkB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CyADIAU2AgAMkAILIANBADYCACAGQQFqIQFBGgw8C0HKASECIAEgBEYNjgIgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBjdUAai0AAEcNOyAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMjwILIANBADYCACAGQQFqIQFBIQw7CyABIARGBEBByQEhAgyOAgsCQAJAIAEtAABBwQBrDhQAPT09PT09PT09PT09PT09PT09AT0LIAFBAWohAUGtASECDPUBCyABQQFqIQFBsAEhAgz0AQsgASAERgRAQcgBIQIMjQILAkACQCABLQAAQdUAaw4LADw8PDw8PDw8PAE8CyABQQFqIQFBrgEhAgz0AQsgAUEBaiEBQa8BIQIM8wELQccBIQIgASAERg2LAiADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw04IABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyMAgsgA0EANgIAIAZBAWohAUEqDDgLIAEgBEYEQEHGASECDIsCCyABLQAAQdAARw04IAFBAWohAUElDDcLQcUBIQIgASAERg2JAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGB1QBqLQAARw02IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyKAgsgA0EANgIAIAZBAWohAUEODDYLIAEgBEYEQEHEASECDIkCCyABLQAAQcUARw02IAFBAWohAUGrASECDO8BCyABIARGBEBBwwEhAgyIAgsCQAJAAkACQCABLQAAQcIAaw4PAAECOTk5OTk5OTk5OTkDOQsgAUEBaiEBQacBIQIM8QELIAFBAWohAUGoASECDPABCyABQQFqIQFBqQEhAgzvAQsgAUEBaiEBQaoBIQIM7gELQcIBIQIgASAERg2GAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEH+1ABqLQAARw0zIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyHAgsgA0EANgIAIAZBAWohAUEUDDMLQcEBIQIgASAERg2FAiADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANA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BTYCAAzsAQsgA0EANgIAIAZBAWohAUEXDBgLQaYBIQIgASAERg3qASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHB1ABqLQAARw0XIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzrAQsgA0EANgIAIAZBAWohAUEYDBcLIAEgBEYEQEGlASECDOoBCwJAAkAgAS0AAEHJAGsOBwAZGRkZGQEZCyABQQFqIQFBiwEhAgzRAQsgAUEBaiEBQYwBIQIM0AELQaQBIQIgASAERg3oASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGm1QBqLQAARw0VIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzpAQsgA0EANgIAIAZBAWohAUEJDBULQaMBIQIgASAERg3nASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGk1QBqLQAARw0UIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzoAQsgA0EANgIAIAZBAWohAUEfDBQLQaIBIQIgASAERg3mASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEG+1ABqLQAARw0TIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAznAQsgA0EANgIAIAZBAWohAUECDBMLQaEBIQIgASAERg3lASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYDQCABLQAAIABBvNQAai0AAEcNESAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5QELIAEgBEYEQEGgASECDOUBC0EBIAEtAABB3wBHDREaIAFBAWohAUGHASECDMsBCyADQQA2AgAgBkEBaiEBQYgBIQIMygELQZ8BIQIgASAERg3iASADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw0PIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzjAQsgA0EANgIAIAZBAWohAUEpDA8LQZ4BIQIgASAERg3hASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEG41ABqLQAARw0OIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAziAQsgA0EANgIAIAZBAWohAUEtDA4LIAEgBEYEQEGdASECDOEBCyABLQAAQcUARw0OIAFBAWohAUGEASECDMcBCyABIARGBEBBnAEhAgzgAQsCQAJAIAEtAABBzABrDggADw8PDw8PAQ8LIAFBAWohAUGCASECDMcBCyABQQFqIQFBgwEhAgzGAQtBmwEhAiABIARGDd4BIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQbPUAGotAABHDQsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN8BCyADQQA2AgAgBkEBaiEBQSMMCwtBmgEhAiABIARGDd0BIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDUAGotAABHDQogAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN4BCyADQQA2AgAgBkEBaiEBQQAMCgsgASAERgRAQZkBIQIM3QELAkACQCABLQAAQcgAaw4IAAwMDAwMDAEMCyABQQFqIQFB/QAhAgzEAQsgAUEBaiEBQYABIQIMwwELIAEgBEYEQEGYASECDNwBCwJAAkAgAS0AAEHOAGsOAwALAQsLIAFBAWohAUH+ACECDMMBCyABQQFqIQFB/wAhAgzCAQsgASAERgRAQZcBIQIM2wELIAEtAABB2QBHDQggAUEBaiEBQQgMBwtBlgEhAiABIARGDdkBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQazUAGotAABHDQYgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNoBCyADQQA2AgAgBkEBaiEBQQUMBgtBlQEhAiABIARGDdgBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQabUAGotAABHDQUgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNkBCyADQQA2AgAgBkEBaiEBQRYMBQtBlAEhAiABIARGDdcBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDQQgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNgBCyADQQA2AgAgBkEBaiEBQRAMBAsgASAERgRAQZMBIQIM1wELAkACQCABLQAAQcMAaw4MAAYGBgYGBgYGBgYBBgsgAUEBaiEBQfkAIQIMvgELIAFBAWohAUH6ACECDL0BC0GSASECIAEgBEYN1QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBoNQAai0AAEcNAiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM1gELIANBADYCACAGQQFqIQFBJAwCCyADQQA2AgAMAgsgASAERgRAQZEBIQIM1AELIAEtAABBzABHDQEgAUEBaiEBQRMLOgApIAMoAgQhACADQQA2AgQgAyAAIAEQLiIADQIMAQtBACECIANBADYCHCADIAE2AhQgA0H+HzYCECADQQY2AgwM0QELQfgAIQIMtwELIANBkAE2AhwgAyABNgIUIAMgADYCDEEAIQIMzwELQQAhAAJAIAMoAjgiAkUNACACKAJAIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GCDzYCECADQSA2AgxBACECDM4BC0H3ACECDLQBCyADQY8BNgIcIAMgATYCFCADQewbNgIQIANBFTYCDEEAIQIMzAELIAEgBEYEQEGPASECDMwBCwJAIAEtAABBIEYEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQZsfNgIQIANBBjYCDEEAIQIMzAELQQIhAgyyAQsDQCABLQAAQSBHDQIgBCABQQFqIgFHDQALQY4BIQIMygELIAEgBEYEQEGNASECDMoBCwJAIAEtAABBCWsOBEoAAEoAC0H1ACECDLABCyADLQApQQVGBEBB9gAhAgywAQtB9AAhAgyvAQsgASAERgRAQYwBIQIMyAELIANBEDYCCCADIAE2AgQMCgsgASAERgRAQYsBIQIMxwELAkAgAS0AAEEJaw4ERwAARwALQfMAIQIMrQELIAEgBEcEQCADQRA2AgggAyABNgIEQfEAIQIMrQELQYoBIQIMxQELAkAgASAERwRAA0AgAS0AAEGg0ABqLQAAIgBBA0cEQAJAIABBAWsOAkkABAtB8AAhAgyvAQsgBCABQQFqIgFHDQALQYgBIQIMxgELQYgBIQIMxQELIANBADYCHCADIAE2AhQgA0HbIDYCECADQQc2AgxBACECDMQBCyABIARGBEBBiQEhAgzEAQsCQAJAAkAgAS0AAEGg0gBqLQAAQQFrDgNGAgABC0HyACECDKwBCyADQQA2AhwgAyABNgIUIANBtBI2AhAgA0EHNgIMQQAhAgzEAQtB6gAhAgyqAQsgASAERwRAIAFBAWohAUHvACECDKoBC0GHASECDMIBCyAEIAEiAEYEQEGGASECDMIBCyAALQAAIgFBL0YEQCAAQQFqIQFB7gAhAgypAQsgAUEJayICQRdLDQEgACEBQQEgAnRBm4CABHENQQwBCyAEIAEiAEYEQEGFASECDMEBCyAALQAAQS9HDQAgAEEBaiEBDAMLQQAhAiADQQA2AhwgAyAANgIUIANB2yA2AhAgA0EHNgIMDL8BCwJAAkACQAJAAkADQCABLQAAQaDOAGotAAAiAEEFRwRAAkACQCAAQQFrDghHBQYHCAAEAQgLQesAIQIMrQELIAFBAWohAUHtACECDKwBCyAEIAFBAWoiAUcNAAtBhAEhAgzDAQsgAUEBagwUCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDMEBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDMABCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDL8BCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy+AQsgASAERgRAQYMBIQIMvgELAkAgAS0AAEGgzgBqLQAAQQFrDgg+BAUGAAgCAwcLIAFBAWohAQtBAyECDKMBCyABQQFqDA0LQQAhAiADQQA2AhwgA0HREjYCECADQQc2AgwgAyABQQFqNgIUDLoBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDLkBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDLgBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDLcBCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy2AQtB7AAhAgycAQsgASAERgRAQYIBIQIMtQELIAFBAWoMAgsgASAERgRAQYEBIQIMtAELIAFBAWoMAQsgASAERg0BIAFBAWoLIQFBBCECDJgBC0GAASECDLABCwNAIAEtAABBoMwAai0AACIAQQJHBEAgAEEBRwRAQekAIQIMmQELDDELIAQgAUEBaiIBRw0AC0H/ACECDK8BCyABIARGBEBB/gAhAgyvAQsCQCABLQAAQQlrDjcvAwYvBAYGBgYGBgYGBgYGBgYGBgYGBgUGBgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYABgsgAUEBagshAUEFIQIMlAELIAFBAWoMBgsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgyrAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgyqAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgypAQsgA0EANgIcIAMgATYCFCADQY0UNgIQIANBBzYCDEEAIQIMqAELAkACQAJAAkADQCABLQAAQaDKAGotAAAiAEEFRwRAAkAgAEEBaw4GLgMEBQYABgtB6AAhAgyUAQsgBCABQQFqIgFHDQALQf0AIQIMqwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMqgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMqQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMqAELIANBADYCHCADIAE2AhQgA0HkCDYCECADQQc2AgxBACECDKcBCyABIARGDQEgAUEBagshAUEGIQIMjAELQfwAIQIMpAELAkACQAJAAkADQCABLQAAQaDIAGotAAAiAEEFRwRAIABBAWsOBCkCAwQFCyAEIAFBAWoiAUcNAAtB+wAhAgynAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgymAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgylAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgykAQsgA0EANgIcIAMgATYCFCADQbwKNgIQIANBBzYCDEEAIQIMowELQc8AIQIMiQELQdEAIQIMiAELQecAIQIMhwELIAEgBEYEQEH6ACECDKABCwJAIAEtAABBCWsOBCAAACAACyABQQFqIQFB5gAhAgyGAQsgASAERgRAQfkAIQIMnwELAkAgAS0AAEEJaw4EHwAAHwALQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFBEBB4gEhAgyGAQsgAEEVRwRAIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDJ8BCyADQfgANgIcIAMgATYCFCADQeoaNgIQIANBFTYCDEEAIQIMngELIAEgBEcEQCADQQ02AgggAyABNgIEQeQAIQIMhQELQfcAIQIMnQELIAEgBEYEQEH2ACECDJ0BCwJAAkACQCABLQAAQcgAaw4LAAELCwsLCwsLCwILCyABQQFqIQFB3QAhAgyFAQsgAUEBaiEBQeAAIQIMhAELIAFBAWohAUHjACECDIMBC0H1ACECIAEgBEYNmwEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBtdUAai0AAEcNCCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMnAELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfQANgIcIAMgATYCFCADIAA2AgxBACECDJwBC0HiACECDIIBC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMnAELQeEAIQIMggELIANB8wA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyaAQsgAy0AKSIAQSNrQQtJDQkCQCAAQQZLDQBBASAAdEHKAHFFDQAMCgtBACECIANBADYCHCADIAE2AhQgA0HtCTYCECADQQg2AgwMmQELQfIAIQIgASAERg2YASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGz1QBqLQAARw0FIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyZAQsgAygCBCEAIANCADcDACADIAAgBkEBaiIBECsiAARAIANB8QA2AhwgAyABNgIUIAMgADYCDEEAIQIMmQELQd8AIQIMfwtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJkBC0HeACECDH8LIANB8AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyXAQsgAy0AKUEhRg0GIANBADYCHCADIAE2AhQgA0GRCjYCECADQQg2AgxBACECDJYBC0HvACECIAEgBEYNlQEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMlgELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgBFDQIgA0HtADYCHCADIAE2AhQgAyAANgIMQQAhAgyVAQsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNgAEgA0HuADYCHCADIAE2AhQgAyAANgIMQQAhAgyTAQtB3AAhAgx5C0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMkwELQdsAIQIMeQsgA0HsADYCHCADIAE2AhQgA0GAGzYCECADQRU2AgxBACECDJEBCyADLQApIgBBI0kNACAAQS5GDQAgA0EANgIcIAMgATYCFCADQckJNgIQIANBCDYCDEEAIQIMkAELQdoAIQIMdgsgASAERgRAQesAIQIMjwELAkAgAS0AAEEvRgRAIAFBAWohAQwBCyAD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ciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==",hd;Object.defineProperty(Uh,"exports",{get:()=>hd||(hd=sk.from(Ak,"base64"))})});var ti=B(($K,Yh)=>{"use strict";var Ph=["GET","HEAD","POST"],ak=new Set(Ph),ck=[101,204,205,304],Lh=[301,302,303,307,308],dk=new Set(Lh),vh=["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"],uk=new Set(vh),_h=["no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],lk=["",..._h],gk=new Set(_h),fk=["follow","manual","error"],Oh=["GET","HEAD","OPTIONS","TRACE"],pk=new Set(Oh),hk=["navigate","same-origin","no-cors","cors"],Ck=["omit","same-origin","include"],Ek=["default","no-store","reload","no-cache","force-cache","only-if-cached"],Ik=["content-encoding","content-language","content-location","content-type","content-length"],Qk=["half"],Gh=["CONNECT","TRACE","TRACK"],Bk=new Set(Gh),Hh=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],mk=new Set(Hh);Yh.exports={subresource:Hh,forbiddenMethods:Gh,requestBodyHeader:Ik,referrerPolicy:lk,requestRedirect:fk,requestMode:hk,requestCredentials:Ck,requestCache:Ek,redirectStatus:Lh,corsSafeListedMethods:Ph,nullBodyStatus:ck,safeMethods:Oh,badPorts:vh,requestDuplex:Qk,subresourceSet:mk,badPortsSet:uk,redirectStatusSet:dk,corsSafeListedMethodsSet:ak,safeMethodsSet:pk,forbiddenMethodsSet:Bk,referrerPolicyTokens:gk}});var Ed=B((ZK,Vh)=>{"use strict";var Cd=Symbol.for("undici.globalOrigin.1");function yk(){return globalThis[Cd]}function wk(t){if(t===void 0){Object.defineProperty(globalThis,Cd,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let e=new URL(t);if(e.protocol!=="http:"&&e.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${e.protocol}`);Object.defineProperty(globalThis,Cd,{value:e,writable:!0,enumerable:!1,configurable:!1})}Vh.exports={getGlobalOrigin:yk,setGlobalOrigin:wk}});var Gs=B((XK,qh)=>{"use strict";var Rk=new TextDecoder;function bk(t){return t.length===0?"":(t[0]===239&&t[1]===187&&t[2]===191&&(t=t.subarray(3)),Rk.decode(t))}qh.exports={utf8DecodeBytes:bk}});var jt=B((ez,zh)=>{"use strict";var Wh=require("node:assert"),{utf8DecodeBytes:Sk}=Gs();function Dk(t,e,r){let n="";for(;r.position<e.length&&t(e[r.position]);)n+=e[r.position],r.position++;return n}function kk(t,e,r){let n=e.indexOf(t,r.position),o=r.position;return n===-1?(r.position=e.length,e.slice(o)):(r.position=n,e.slice(o,r.position))}var Nk=/[\u0009\u000A\u000C\u000D\u0020]/g;function Mk(t){t=t.replace(Nk,"");let e=t.length;if(e%4===0&&t.charCodeAt(e-1)===61&&(--e,t.charCodeAt(e-1)===61&&--e),e%4===1||/[^+/0-9A-Za-z]/.test(t.length===e?t:t.substring(0,e)))return"failure";let r=Buffer.from(t,"base64");return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function Jh(t){return t===9||t===10||t===12||t===13||t===32}function Tk(t){let e=t.length;if(65535>e)return String.fromCharCode.apply(null,t);let r="",n=0,o=65535;for(;n<e;)n+o>e&&(o=e-n),r+=String.fromCharCode.apply(null,t.subarray(n,n+=o));return r}var xk=/[^\x00-\xFF]/;function Uk(t){return Wh(!xk.test(t)),t}function Fk(t){return JSON.parse(Sk(t))}function Pk(t,e=!0,r=!0){return Kh(t,e,r,Jh)}function Kh(t,e,r,n){let o=0,i=t.length-1;if(e)for(;o<t.length&&n(t.charCodeAt(o));)o++;if(r)for(;i>0&&n(t.charCodeAt(i));)i--;return o===0&&i===t.length-1?t:t.slice(o,i+1)}function Lk(t){let e=JSON.stringify(t);if(e===void 0)throw new TypeError("Value is not JSON serializable");return Wh(typeof e=="string"),e}zh.exports={collectASequenceOfCodePoints:Dk,collectASequenceOfCodePointsFast:kk,forgivingBase64:Mk,isASCIIWhitespace:Jh,isomorphicDecode:Tk,isomorphicEncode:Uk,parseJSONFromBytes:Fk,removeASCIIWhitespace:Pk,removeChars:Kh,serializeJavascriptValueToJSONString:Lk}});var dt=B((tz,tC)=>{"use strict";var Ys=require("node:assert"),{forgivingBase64:vk,collectASequenceOfCodePoints:Id,collectASequenceOfCodePointsFast:ri,isomorphicDecode:_k,removeASCIIWhitespace:Ok,removeChars:Gk}=jt(),Hk=new TextEncoder,ni=/^[-!#$%&'*+.^_|~A-Za-z0-9]+$/u,Yk=/[\u000A\u000D\u0009\u0020]/u,Vk=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/u;function qk(t){Ys(t.protocol==="data:");let e=Zh(t,!0);e=e.slice(5);let r={position:0},n=ri(",",e,r),o=n.length;if(n=Ok(n,!0,!0),r.position>=e.length)return"failure";r.position++;let i=e.slice(o+1),s=Xh(i);if(/;(?:\u0020*)base64$/ui.test(n)){let a=_k(s);if(s=vk(a),s==="failure")return"failure";n=n.slice(0,-6),n=n.replace(/(\u0020+)$/u,""),n=n.slice(0,-1)}n.startsWith(";")&&(n="text/plain"+n);let A=Qd(n);return A==="failure"&&(A=Qd("text/plain;charset=US-ASCII")),{mimeType:A,body:s}}function Zh(t,e=!1){if(!e)return t.href;let r=t.href,n=t.hash.length,o=n===0?r:r.substring(0,r.length-n);return!n&&r.endsWith("#")?o.slice(0,-1):o}function Xh(t){let e=Hk.encode(t);return Wk(e)}function jh(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function $h(t){return t>=48&&t<=57?t-48:(t&223)-55}function Wk(t){let e=t.length,r=new Uint8Array(e),n=0,o=0;for(;o<e;){let i=t[o];i!==37?r[n++]=i:i===37&&!(jh(t[o+1])&&jh(t[o+2]))?r[n++]=37:(r[n++]=$h(t[o+1])<<4|$h(t[o+2]),o+=2),++o}return e===n?r:r.subarray(0,n)}function Qd(t){t=Hs(t,!0,!0);let e={position:0},r=ri("/",t,e);if(r.length===0||!ni.test(r)||e.position>=t.length)return"failure";e.position++;let n=ri(";",t,e);if(n=Hs(n,!1,!0),n.length===0||!ni.test(n))return"failure";let o=r.toLowerCase(),i=n.toLowerCase(),s={type:o,subtype:i,parameters:new Map,essence:`${o}/${i}`};for(;e.position<t.length;){e.position++,Id(c=>Yk.test(c),t,e);let A=Id(c=>c!==";"&&c!=="=",t,e);if(A=A.toLowerCase(),e.position<t.length){if(t[e.position]===";")continue;e.position++}if(e.position>=t.length)break;let a=null;if(t[e.position]==='"')a=eC(t,e,!0),ri(";",t,e);else if(a=ri(";",t,e),a=Hs(a,!1,!0),a.length===0)continue;A.length!==0&&ni.test(A)&&(a.length===0||Vk.test(a))&&!s.parameters.has(A)&&s.parameters.set(A,a)}return s}function eC(t,e,r=!1){let n=e.position,o="";for(Ys(t[e.position]==='"'),e.position++;o+=Id(s=>s!=='"'&&s!=="\\",t,e),!(e.position>=t.length);){let i=t[e.position];if(e.position++,i==="\\"){if(e.position>=t.length){o+="\\";break}o+=t[e.position],e.position++}else{Ys(i==='"');break}}return r?o:t.slice(n,e.position)}function Jk(t){Ys(t!=="failure");let{parameters:e,essence:r}=t,n=r;for(let[o,i]of e.entries())n+=";",n+=o,n+="=",ni.test(i)||(i=i.replace(/[\\"]/ug,"\\$&"),i='"'+i,i+='"'),n+=i;return n}function Kk(t){return t===13||t===10||t===9||t===32}function Hs(t,e=!0,r=!0){return Gk(t,e,r,Kk)}function zk(t){switch(t.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 t.subtype.endsWith("+json")?"application/json":t.subtype.endsWith("+xml")?"application/xml":""}tC.exports={dataURLProcessor:qk,URLSerializer:Zh,stringPercentDecode:Xh,parseMIMEType:Qd,collectAnHTTPQuotedString:eC,serializeAMimeType:Jk,removeHTTPWhitespace:Hs,minimizeSupportedMimeType:zk,HTTP_TOKEN_CODEPOINTS:ni}});var $t=B((rz,md)=>{"use strict";var rC={__proto__:null,"node:crypto":()=>require("node:crypto"),"node:sqlite":()=>require("node:sqlite"),"node:worker_threads":()=>require("node:worker_threads"),"node:zlib":()=>require("node:zlib")};function jk(t){try{return rC[t](),!0}catch(e){if(e.code!=="ERR_UNKNOWN_BUILTIN_MODULE"&&e.code!=="ERR_NO_CRYPTO")throw e;return!1}}function $k(t,e){return typeof rC[t]()[e]<"u"}var nC=["markAsUncloneable","zstd"],Zk={markAsUncloneable:["node:worker_threads","markAsUncloneable"],zstd:["node:zlib","createZstdDecompress"]},oC=["crypto","sqlite"],Xk=[...oC,...nC];function eN(t){if(oC.includes(t))return jk(`node:${t}`);if(nC.includes(t)){let[e,r]=Zk[t];return $k(e,r)}throw new TypeError(`unknown feature: ${t}`)}var Bd=class{#e=new Map;clear(){this.#e.clear()}has(e){return this.#e.get(e)??this.#t(e)}set(e,r){if(Xk.includes(e)===!1)throw new TypeError(`unknown feature: ${e}`);this.#e.set(e,r)}#t(e){let r=eN(e);return this.#e.set(e,r),r}},iC=new Bd;md.exports.runtimeFeatures=iC;md.exports.default=iC});var ye=B((nz,AC)=>{"use strict";var tN=require("node:assert"),{types:ae,inspect:rN}=require("node:util"),{runtimeFeatures:nN}=$t(),yd=1,wd=2,Vs=3,qs=4,Rd=5,Ws=6,bd=7,Je=8,sC=Function.call.bind(Function.prototype[Symbol.hasInstance]),C={converters:{},util:{},errors:{},is:{}};C.errors.exception=function(t){return new TypeError(`${t.header}: ${t.message}`)};C.errors.conversionFailed=function(t){let e=t.types.length===1?"":" one of",r=`${t.argument} could not be converted to${e}: ${t.types.join(", ")}.`;return C.errors.exception({header:t.prefix,message:r})};C.errors.invalidArgument=function(t){return C.errors.exception({header:t.prefix,message:`"${t.value}" is an invalid ${t.type}.`})};C.brandCheck=function(t,e){if(!sC(e,t)){let r=new TypeError("Illegal invocation");throw r.code="ERR_INVALID_THIS",r}};C.brandCheckMultiple=function(t){let e=t.map(r=>C.util.MakeTypeAssertion(r));return r=>{if(e.every(n=>!n(r))){let n=new TypeError("Illegal invocation");throw n.code="ERR_INVALID_THIS",n}}};C.argumentLengthCheck=function({length:t},e,r){if(t<e)throw C.errors.exception({message:`${e} argument${e!==1?"s":""} required, but${t?" only":""} ${t} found.`,header:r})};C.illegalConstructor=function(){throw C.errors.exception({header:"TypeError",message:"Illegal constructor"})};C.util.MakeTypeAssertion=function(t){return e=>sC(t,e)};C.util.Type=function(t){switch(typeof t){case"undefined":return yd;case"boolean":return wd;case"string":return Vs;case"symbol":return qs;case"number":return Rd;case"bigint":return Ws;case"function":case"object":return t===null?bd:Je}};C.util.Types={UNDEFINED:yd,BOOLEAN:wd,STRING:Vs,SYMBOL:qs,NUMBER:Rd,BIGINT:Ws,NULL:bd,OBJECT:Je};C.util.TypeValueToString=function(t){switch(C.util.Type(t)){case yd:return"Undefined";case wd:return"Boolean";case Vs:return"String";case qs:return"Symbol";case Rd:return"Number";case Ws:return"BigInt";case bd:return"Null";case Je:return"Object"}};C.util.markAsUncloneable=nN.has("markAsUncloneable")?require("node:worker_threads").markAsUncloneable:()=>{};C.util.ConvertToInt=function(t,e,r,n){let o,i;e===64?(o=Math.pow(2,53)-1,r==="unsigned"?i=0:i=Math.pow(-2,53)+1):r==="unsigned"?(i=0,o=Math.pow(2,e)-1):(i=-Math.pow(2,e-1),o=Math.pow(2,e-1)-1);let s=Number(t);if(s===0&&(s=0),C.util.HasFlag(n,C.attributes.EnforceRange)){if(Number.isNaN(s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY)throw C.errors.exception({header:"Integer conversion",message:`Could not convert ${C.util.Stringify(t)} to an integer.`});if(s=C.util.IntegerPart(s),s<i||s>o)throw C.errors.exception({header:"Integer conversion",message:`Value must be between ${i}-${o}, got ${s}.`});return s}return!Number.isNaN(s)&&C.util.HasFlag(n,C.attributes.Clamp)?(s=Math.min(Math.max(s,i),o),Math.floor(s)%2===0?s=Math.floor(s):s=Math.ceil(s),s):Number.isNaN(s)||s===0&&Object.is(0,s)||s===Number.POSITIVE_INFINITY||s===Number.NEGATIVE_INFINITY?0:(s=C.util.IntegerPart(s),s=s%Math.pow(2,e),r==="signed"&&s>=Math.pow(2,e-1)?s-Math.pow(2,e):s)};C.util.IntegerPart=function(t){let e=Math.floor(Math.abs(t));return t<0?-1*e:e};C.util.Stringify=function(t){switch(C.util.Type(t)){case qs:return`Symbol(${t.description})`;case Je:return rN(t);case Vs:return`"${t}"`;case Ws:return`${t}n`;default:return`${t}`}};C.util.IsResizableArrayBuffer=function(t){if(ae.isArrayBuffer(t))return t.resizable;if(ae.isSharedArrayBuffer(t))return t.growable;throw C.errors.exception({header:"IsResizableArrayBuffer",message:`"${C.util.Stringify(t)}" is not an array buffer.`})};C.util.HasFlag=function(t,e){return typeof t=="number"&&(t&e)===e};C.sequenceConverter=function(t){return(e,r,n,o)=>{if(C.util.Type(e)!==Je)throw C.errors.exception({header:r,message:`${n} (${C.util.Stringify(e)}) is not iterable.`});let i=typeof o=="function"?o():e?.[Symbol.iterator]?.(),s=[],A=0;if(i===void 0||typeof i.next!="function")throw C.errors.exception({header:r,message:`${n} is not iterable.`});for(;;){let{done:a,value:c}=i.next();if(a)break;s.push(t(c,r,`${n}[${A++}]`))}return s}};C.recordConverter=function(t,e){return(r,n,o)=>{if(C.util.Type(r)!==Je)throw C.errors.exception({header:n,message:`${o} ("${C.util.TypeValueToString(r)}") is not an Object.`});let i={};if(!ae.isProxy(r)){let A=[...Object.getOwnPropertyNames(r),...Object.getOwnPropertySymbols(r)];for(let a of A){let c=C.util.Stringify(a),d=t(a,n,`Key ${c} in ${o}`),l=e(r[a],n,`${o}[${c}]`);i[d]=l}return i}let s=Reflect.ownKeys(r);for(let A of s)if(Reflect.getOwnPropertyDescriptor(r,A)?.enumerable){let c=t(A,n,o),d=e(r[A],n,o);i[c]=d}return i}};C.interfaceConverter=function(t,e){return(r,n,o)=>{if(!t(r))throw C.errors.exception({header:n,message:`Expected ${o} ("${C.util.Stringify(r)}") to be an instance of ${e}.`});return r}};C.dictionaryConverter=function(t){return t.sort((e,r)=>(e.key>r.key)-(e.key<r.key)),(e,r,n)=>{let o={};if(e!=null&&C.util.Type(e)!==Je)throw C.errors.exception({header:r,message:`Expected ${e} to be one of: Null, Undefined, Object.`});for(let i of t){let{key:s,defaultValue:A,required:a,converter:c}=i;if(a===!0&&(e==null||!Object.hasOwn(e,s)))throw C.errors.exception({header:r,message:`Missing required key "${s}".`});let d=e?.[s],l=A!==void 0;if(l&&d===void 0&&(d=A()),a||l||d!==void 0){if(d=c(d,r,`${n}.${s}`),i.allowedValues&&!i.allowedValues.includes(d))throw C.errors.exception({header:r,message:`${d} is not an accepted type. Expected one of ${i.allowedValues.join(", ")}.`});o[s]=d}}return o}};C.nullableConverter=function(t){return(e,r,n)=>e===null?e:t(e,r,n)};C.is.USVString=function(t){return typeof t=="string"&&t.isWellFormed()};C.is.ReadableStream=C.util.MakeTypeAssertion(ReadableStream);C.is.Blob=C.util.MakeTypeAssertion(Blob);C.is.URLSearchParams=C.util.MakeTypeAssertion(URLSearchParams);C.is.File=C.util.MakeTypeAssertion(File);C.is.URL=C.util.MakeTypeAssertion(URL);C.is.AbortSignal=C.util.MakeTypeAssertion(AbortSignal);C.is.MessagePort=C.util.MakeTypeAssertion(MessagePort);C.is.BufferSource=function(t){return ae.isArrayBuffer(t)||ArrayBuffer.isView(t)&&ae.isArrayBuffer(t.buffer)};C.util.getCopyOfBytesHeldByBufferSource=function(t){let e=t,r=e,n=0,o=0;if(ae.isTypedArray(e)||ae.isDataView(e)?(r=e.buffer,n=e.byteOffset,o=e.byteLength):(tN(ae.isAnyArrayBuffer(e)),o=e.byteLength),r.detached)return new Uint8Array(0);let i=new Uint8Array(o),s=new Uint8Array(r,n,o);return i.set(s),i};C.converters.DOMString=function(t,e,r,n){if(t===null&&C.util.HasFlag(n,C.attributes.LegacyNullToEmptyString))return"";if(typeof t=="symbol")throw C.errors.exception({header:e,message:`${r} is a symbol, which cannot be converted to a DOMString.`});return String(t)};C.converters.ByteString=function(t,e,r){if(typeof t=="symbol")throw C.errors.exception({header:e,message:`${r} is a symbol, which cannot be converted to a ByteString.`});let n=String(t);for(let o=0;o<n.length;o++)if(n.charCodeAt(o)>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${o} has a value of ${n.charCodeAt(o)} which is greater than 255.`);return n};C.converters.USVString=function(t){return typeof t=="string"?t.toWellFormed():`${t}`.toWellFormed()};C.converters.boolean=function(t){return!!t};C.converters.any=function(t){return t};C.converters["long long"]=function(t,e,r){return C.util.ConvertToInt(t,64,"signed",0,e,r)};C.converters["unsigned long long"]=function(t,e,r){return C.util.ConvertToInt(t,64,"unsigned",0,e,r)};C.converters["unsigned long"]=function(t,e,r){return C.util.ConvertToInt(t,32,"unsigned",0,e,r)};C.converters["unsigned short"]=function(t,e,r,n){return C.util.ConvertToInt(t,16,"unsigned",n,e,r)};C.converters.ArrayBuffer=function(t,e,r,n){if(C.util.Type(t)!==Je||!ae.isArrayBuffer(t))throw C.errors.conversionFailed({prefix:e,argument:`${r} ("${C.util.Stringify(t)}")`,types:["ArrayBuffer"]});if(!C.util.HasFlag(n,C.attributes.AllowResizable)&&C.util.IsResizableArrayBuffer(t))throw C.errors.exception({header:e,message:`${r} cannot be a resizable ArrayBuffer.`});return t};C.converters.SharedArrayBuffer=function(t,e,r,n){if(C.util.Type(t)!==Je||!ae.isSharedArrayBuffer(t))throw C.errors.conversionFailed({prefix:e,argument:`${r} ("${C.util.Stringify(t)}")`,types:["SharedArrayBuffer"]});if(!C.util.HasFlag(n,C.attributes.AllowResizable)&&C.util.IsResizableArrayBuffer(t))throw C.errors.exception({header:e,message:`${r} cannot be a resizable SharedArrayBuffer.`});return t};C.converters.TypedArray=function(t,e,r,n,o){if(C.util.Type(t)!==Je||!ae.isTypedArray(t)||t.constructor.name!==e.name)throw C.errors.conversionFailed({prefix:r,argument:`${n} ("${C.util.Stringify(t)}")`,types:[e.name]});if(!C.util.HasFlag(o,C.attributes.AllowShared)&&ae.isSharedArrayBuffer(t.buffer))throw C.errors.exception({header:r,message:`${n} cannot be a view on a shared array buffer.`});if(!C.util.HasFlag(o,C.attributes.AllowResizable)&&C.util.IsResizableArrayBuffer(t.buffer))throw C.errors.exception({header:r,message:`${n} cannot be a view on a resizable array buffer.`});return t};C.converters.DataView=function(t,e,r,n){if(C.util.Type(t)!==Je||!ae.isDataView(t))throw C.errors.conversionFailed({prefix:e,argument:`${r} ("${C.util.Stringify(t)}")`,types:["DataView"]});if(!C.util.HasFlag(n,C.attributes.AllowShared)&&ae.isSharedArrayBuffer(t.buffer))throw C.errors.exception({header:e,message:`${r} cannot be a view on a shared array buffer.`});if(!C.util.HasFlag(n,C.attributes.AllowResizable)&&C.util.IsResizableArrayBuffer(t.buffer))throw C.errors.exception({header:e,message:`${r} cannot be a view on a resizable array buffer.`});return t};C.converters.ArrayBufferView=function(t,e,r,n){if(C.util.Type(t)!==Je||!ae.isArrayBufferView(t))throw C.errors.conversionFailed({prefix:e,argument:`${r} ("${C.util.Stringify(t)}")`,types:["ArrayBufferView"]});if(!C.util.HasFlag(n,C.attributes.AllowShared)&&ae.isSharedArrayBuffer(t.buffer))throw C.errors.exception({header:e,message:`${r} cannot be a view on a shared array buffer.`});if(!C.util.HasFlag(n,C.attributes.AllowResizable)&&C.util.IsResizableArrayBuffer(t.buffer))throw C.errors.exception({header:e,message:`${r} cannot be a view on a resizable array buffer.`});return t};C.converters.BufferSource=function(t,e,r,n){if(ae.isArrayBuffer(t))return C.converters.ArrayBuffer(t,e,r,n);if(ae.isArrayBufferView(t))return n&=~C.attributes.AllowShared,C.converters.ArrayBufferView(t,e,r,n);throw ae.isSharedArrayBuffer(t)?C.errors.exception({header:e,message:`${r} cannot be a SharedArrayBuffer.`}):C.errors.conversionFailed({prefix:e,argument:`${r} ("${C.util.Stringify(t)}")`,types:["ArrayBuffer","ArrayBufferView"]})};C.converters.AllowSharedBufferSource=function(t,e,r,n){if(ae.isArrayBuffer(t))return C.converters.ArrayBuffer(t,e,r,n);if(ae.isSharedArrayBuffer(t))return C.converters.SharedArrayBuffer(t,e,r,n);if(ae.isArrayBufferView(t))return n|=C.attributes.AllowShared,C.converters.ArrayBufferView(t,e,r,n);throw C.errors.conversionFailed({prefix:e,argument:`${r} ("${C.util.Stringify(t)}")`,types:["ArrayBuffer","SharedArrayBuffer","ArrayBufferView"]})};C.converters["sequence<ByteString>"]=C.sequenceConverter(C.converters.ByteString);C.converters["sequence<sequence<ByteString>>"]=C.sequenceConverter(C.converters["sequence<ByteString>"]);C.converters["record<ByteString, ByteString>"]=C.recordConverter(C.converters.ByteString,C.converters.ByteString);C.converters.Blob=C.interfaceConverter(C.is.Blob,"Blob");C.converters.AbortSignal=C.interfaceConverter(C.is.AbortSignal,"AbortSignal");C.converters.EventHandlerNonNull=function(t){return C.util.Type(t)!==Je?null:typeof t=="function"?t:()=>{}};C.attributes={Clamp:1,EnforceRange:2,AllowShared:4,AllowResizable:8,LegacyNullToEmptyString:16};AC.exports={webidl:C}});var Ke=B((oz,BC)=>{"use strict";var{Transform:oN}=require("node:stream"),aC=require("node:zlib"),{redirectStatusSet:iN,referrerPolicyTokens:sN,badPortsSet:AN}=ti(),{getGlobalOrigin:cC}=Ed(),{collectAnHTTPQuotedString:aN,parseMIMEType:cN}=dt(),{performance:dN}=require("node:perf_hooks"),{ReadableStreamFrom:uN,isValidHTTPToken:dC,normalizedMethodRecordsBase:lN}=O(),ii=require("node:assert"),{isUint8Array:gN}=require("node:util/types"),{webidl:fr}=ye(),{isomorphicEncode:Sd,collectASequenceOfCodePoints:Jr,removeChars:fN}=jt();function uC(t){let e=t.urlList,r=e.length;return r===0?null:e[r-1].toString()}function pN(t,e){if(!iN.has(t.status))return null;let r=t.headersList.get("location",!0);return r!==null&&gC(r)&&(lC(r)||(r=hN(r)),r=new URL(r,uC(t))),r&&!r.hash&&(r.hash=e),r}function lC(t){for(let e=0;e<t.length;++e){let r=t.charCodeAt(e);if(r>126||r<32)return!1}return!0}function hN(t){return Buffer.from(t,"binary").toString("utf8")}function zr(t){return t.urlList[t.urlList.length-1]}function CN(t){let e=zr(t);return IC(e)&&AN.has(e.port)?"blocked":"allowed"}function EN(t){return t instanceof Error||t?.constructor?.name==="Error"||t?.constructor?.name==="DOMException"}function IN(t){for(let e=0;e<t.length;++e){let r=t.charCodeAt(e);if(!(r===9||r>=32&&r<=126||r>=128&&r<=255))return!1}return!0}var QN=dC;function gC(t){return(t[0]===" "||t[0]===" "||t[t.length-1]===" "||t[t.length-1]===" "||t.includes(`
2
+ `)||t.includes("\r")||t.includes("\0"))===!1}function BN(t){let e=(t.headersList.get("referrer-policy",!0)??"").split(","),r="";if(e.length)for(let n=e.length;n!==0;n--){let o=e[n-1].trim();if(sN.has(o)){r=o;break}}return r}function mN(t,e){let r=BN(e);r!==""&&(t.referrerPolicy=r)}function yN(){return"allowed"}function wN(){return"success"}function RN(){return"success"}function bN(t){let e=null;e=t.mode,t.headersList.set("sec-fetch-mode",e,!0)}function SN(t){let e=t.origin;if(!(e==="client"||e===void 0)){if(t.responseTainting==="cors"||t.mode==="websocket")t.headersList.append("origin",e,!0);else if(t.method!=="GET"&&t.method!=="HEAD"){switch(t.referrerPolicy){case"no-referrer":e=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":t.origin&&kd(t.origin)&&!kd(zr(t))&&(e=null);break;case"same-origin":oi(t,zr(t))||(e=null);break;default:}t.headersList.append("origin",e,!0)}}}function Hn(t,e){return t}function DN(t,e,r){return!t?.startTime||t.startTime<e?{domainLookupStartTime:e,domainLookupEndTime:e,connectionStartTime:e,connectionEndTime:e,secureConnectionStartTime:e,ALPNNegotiatedProtocol:t?.ALPNNegotiatedProtocol}:{domainLookupStartTime:Hn(t.domainLookupStartTime,r),domainLookupEndTime:Hn(t.domainLookupEndTime,r),connectionStartTime:Hn(t.connectionStartTime,r),connectionEndTime:Hn(t.connectionEndTime,r),secureConnectionStartTime:Hn(t.secureConnectionStartTime,r),ALPNNegotiatedProtocol:t.ALPNNegotiatedProtocol}}function kN(t){return Hn(dN.now(),t)}function NN(t){return{startTime:t.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:t.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function fC(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function MN(t){return{referrerPolicy:t.referrerPolicy}}function TN(t){let e=t.referrerPolicy;ii(e);let r=null;if(t.referrer==="client"){let i=cC();if(!i||i.origin==="null")return"no-referrer";r=new URL(i)}else fr.is.URL(t.referrer)&&(r=t.referrer);let n=Dd(r),o=Dd(r,!0);switch(n.toString().length>4096&&(n=o),e){case"no-referrer":return"no-referrer";case"origin":return o??Dd(r,!0);case"unsafe-url":return n;case"strict-origin":{let i=zr(t);return Kr(n)&&!Kr(i)?"no-referrer":o}case"strict-origin-when-cross-origin":{let i=zr(t);return oi(n,i)?n:Kr(n)&&!Kr(i)?"no-referrer":o}case"same-origin":return oi(t,n)?n:"no-referrer";case"origin-when-cross-origin":return oi(t,n)?n:o;case"no-referrer-when-downgrade":{let i=zr(t);return Kr(n)&&!Kr(i)?"no-referrer":n}}}function Dd(t,e=!1){return ii(fr.is.URL(t)),t=new URL(t),EC(t)?"no-referrer":(t.username="",t.password="",t.hash="",e===!0&&(t.pathname="",t.search=""),t)}var xN=RegExp.prototype.test.bind(/^127\.(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){2}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$/),UN=RegExp.prototype.test.bind(/^(?:(?:0{1,4}:){7}|(?:0{1,4}:){1,6}:|::)0{0,3}1$/);function pC(t){return t.includes(":")?(t[0]==="["&&t[t.length-1]==="]"&&(t=t.slice(1,-1)),UN(t)):xN(t)}function FN(t){return t==null||t==="null"?!1:(t=new URL(t),!!(t.protocol==="https:"||t.protocol==="wss:"||pC(t.hostname)||t.hostname==="localhost"||t.hostname==="localhost."||t.hostname.endsWith(".localhost")||t.hostname.endsWith(".localhost.")||t.protocol==="file:"))}function Kr(t){return fr.is.URL(t)?t.href==="about:blank"||t.href==="about:srcdoc"||t.protocol==="data:"||t.protocol==="blob:"?!0:FN(t.origin):!1}function PN(t){}function oi(t,e){return t.origin===e.origin&&t.origin==="null"||t.protocol===e.protocol&&t.hostname===e.hostname&&t.port===e.port}function LN(t){return t.controller.state==="aborted"}function vN(t){return t.controller.state==="aborted"||t.controller.state==="terminated"}function _N(t){return lN[t.toLowerCase()]??t}var ON=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function hC(t,e,r=0,n=1){class o{#e;#t;#r;constructor(s,A){this.#e=s,this.#t=A,this.#r=0}next(){if(typeof this!="object"||this===null||!(#e in this))throw new TypeError(`'next' called on an object that does not implement interface ${t} Iterator.`);let s=this.#r,A=e(this.#e),a=A.length;if(s>=a)return{value:void 0,done:!0};let{[r]:c,[n]:d}=A[s];this.#r=s+1;let l;switch(this.#t){case"key":l=c;break;case"value":l=d;break;case"key+value":l=[c,d];break}return{value:l,done:!1}}}return delete o.prototype.constructor,Object.setPrototypeOf(o.prototype,ON),Object.defineProperties(o.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${t} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(i,s){return new o(i,s)}}function GN(t,e,r,n=0,o=1){let i=hC(t,r,n,o),s={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return fr.brandCheck(this,e),i(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return fr.brandCheck(this,e),i(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return fr.brandCheck(this,e),i(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(a,c=globalThis){if(fr.brandCheck(this,e),fr.argumentLengthCheck(arguments,1,`${t}.forEach`),typeof a!="function")throw new TypeError(`Failed to execute 'forEach' on '${t}': parameter 1 is not of type 'Function'.`);for(let{0:d,1:l}of i(this,"key+value"))a.call(c,l,d,this)}}};return Object.defineProperties(e.prototype,{...s,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:s.entries.value}})}function HN(t,e,r){let n=e,o=r;try{let i=t.stream.getReader();CC(i,n,o)}catch(i){o(i)}}function YN(t){try{t.close(),t.byobRequest?.respond(0)}catch(e){if(!e.message.includes("Controller is already closed")&&!e.message.includes("ReadableStream is already closed"))throw e}}async function CC(t,e,r){try{let n=[],o=0;do{let{done:i,value:s}=await t.read();if(i){e(Buffer.concat(n,o));return}if(!gN(s)){r(new TypeError("Received non-Uint8Array chunk"));return}n.push(s),o+=s.length}while(!0)}catch(n){r(n)}}function EC(t){ii("protocol"in t);let e=t.protocol;return e==="about:"||e==="blob:"||e==="data:"}function kd(t){return typeof t=="string"&&t[5]===":"&&t[0]==="h"&&t[1]==="t"&&t[2]==="t"&&t[3]==="p"&&t[4]==="s"||t.protocol==="https:"}function IC(t){ii("protocol"in t);let e=t.protocol;return e==="http:"||e==="https:"}function VN(t,e){let r=t;if(!r.startsWith("bytes"))return"failure";let n={position:5};if(e&&Jr(a=>a===" "||a===" ",r,n),r.charCodeAt(n.position)!==61)return"failure";n.position++,e&&Jr(a=>a===" "||a===" ",r,n);let o=Jr(a=>{let c=a.charCodeAt(0);return c>=48&&c<=57},r,n),i=o.length?Number(o):null;if(e&&Jr(a=>a===" "||a===" ",r,n),r.charCodeAt(n.position)!==45)return"failure";n.position++,e&&Jr(a=>a===" "||a===" ",r,n);let s=Jr(a=>{let c=a.charCodeAt(0);return c>=48&&c<=57},r,n),A=s.length?Number(s):null;return n.position<r.length||A===null&&i===null||i>A?"failure":{rangeStartValue:i,rangeEndValue:A}}function qN(t,e,r){let n="bytes ";return n+=Sd(`${t}`),n+="-",n+=Sd(`${e}`),n+="/",n+=Sd(`${r}`),n}var Nd=class extends oN{#e;constructor(e){super(),this.#e=e}_transform(e,r,n){if(!this._inflateStream){if(e.length===0){n();return}this._inflateStream=(e[0]&15)===8?aC.createInflate(this.#e):aC.createInflateRaw(this.#e),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",o=>this.destroy(o))}this._inflateStream.write(e,r,n)}_final(e){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),e()}};function WN(t){return new Nd(t)}function JN(t){let e=null,r=null,n=null,o=QC("content-type",t);if(o===null)return"failure";for(let i of o){let s=cN(i);s==="failure"||s.essence==="*/*"||(n=s,n.essence!==r?(e=null,n.parameters.has("charset")&&(e=n.parameters.get("charset")),r=n.essence):!n.parameters.has("charset")&&e!==null&&n.parameters.set("charset",e))}return n??"failure"}function KN(t){let e=t,r={position:0},n=[],o="";for(;r.position<e.length;){if(o+=Jr(i=>i!=='"'&&i!==",",e,r),r.position<e.length)if(e.charCodeAt(r.position)===34){if(o+=aN(e,r),r.position<e.length)continue}else ii(e.charCodeAt(r.position)===44),r.position++;o=fN(o,!0,!0,i=>i===9||i===32),n.push(o),o=""}return n}function QC(t,e){let r=e.get(t,!0);return r===null?null:KN(r)}function zN(t){return!1}function jN(t){return!!(t.username||t.password)}function $N(t){return t!=null&&t!=="client"&&t!=="no-traversable"}var Md=class{get baseUrl(){return cC()}get origin(){return this.baseUrl?.origin}policyContainer=fC()},Td=class{settingsObject=new Md},ZN=new Td;BC.exports={isAborted:LN,isCancelled:vN,isValidEncodedURL:lC,ReadableStreamFrom:uN,tryUpgradeRequestToAPotentiallyTrustworthyURL:PN,clampAndCoarsenConnectionTimingInfo:DN,coarsenedSharedCurrentTime:kN,determineRequestsReferrer:TN,makePolicyContainer:fC,clonePolicyContainer:MN,appendFetchMetadata:bN,appendRequestOriginHeader:SN,TAOCheck:RN,corsCheck:wN,crossOriginResourcePolicyCheck:yN,createOpaqueTimingInfo:NN,setRequestReferrerPolicyOnRedirect:mN,isValidHTTPToken:dC,requestBadPort:CN,requestCurrentURL:zr,responseURL:uC,responseLocationURL:pN,isURLPotentiallyTrustworthy:Kr,isValidReasonPhrase:IN,sameOrigin:oi,normalizeMethod:_N,iteratorMixin:GN,createIterator:hC,isValidHeaderName:QN,isValidHeaderValue:gC,isErrorLike:EN,fullyReadBody:HN,readableStreamClose:YN,urlIsLocal:EC,urlHasHttpsScheme:kd,urlIsHttpHttpsScheme:IC,readAllBytes:CC,simpleRangeHeaderValue:VN,buildContentRange:qN,createInflate:WN,extractMimeType:JN,getDecodeSplit:QC,environmentSettingsObject:ZN,isOriginIPPotentiallyTrustworthy:pC,hasAuthenticationEntry:zN,includesCredentials:jN,isTraversableNavigable:$N}});var Js=B((iz,yC)=>{"use strict";var{iteratorMixin:XN}=Ke(),{kEnumerableProperty:Yn}=O(),{webidl:z}=ye(),mC=require("node:util"),Zt=class t{#e=[];constructor(e=void 0){if(z.util.markAsUncloneable(this),e!==void 0)throw z.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]})}append(e,r,n=void 0){z.brandCheck(this,t);let o="FormData.append";z.argumentLengthCheck(arguments,2,o),e=z.converters.USVString(e),arguments.length===3||z.is.Blob(r)?(r=z.converters.Blob(r,o,"value"),n!==void 0&&(n=z.converters.USVString(n))):r=z.converters.USVString(r);let i=xd(e,r,n);this.#e.push(i)}delete(e){z.brandCheck(this,t),z.argumentLengthCheck(arguments,1,"FormData.delete"),e=z.converters.USVString(e),this.#e=this.#e.filter(n=>n.name!==e)}get(e){z.brandCheck(this,t),z.argumentLengthCheck(arguments,1,"FormData.get"),e=z.converters.USVString(e);let n=this.#e.findIndex(o=>o.name===e);return n===-1?null:this.#e[n].value}getAll(e){return z.brandCheck(this,t),z.argumentLengthCheck(arguments,1,"FormData.getAll"),e=z.converters.USVString(e),this.#e.filter(n=>n.name===e).map(n=>n.value)}has(e){return z.brandCheck(this,t),z.argumentLengthCheck(arguments,1,"FormData.has"),e=z.converters.USVString(e),this.#e.findIndex(n=>n.name===e)!==-1}set(e,r,n=void 0){z.brandCheck(this,t);let o="FormData.set";z.argumentLengthCheck(arguments,2,o),e=z.converters.USVString(e),arguments.length===3||z.is.Blob(r)?(r=z.converters.Blob(r,o,"value"),n!==void 0&&(n=z.converters.USVString(n))):r=z.converters.USVString(r);let i=xd(e,r,n),s=this.#e.findIndex(A=>A.name===e);s!==-1?this.#e=[...this.#e.slice(0,s),i,...this.#e.slice(s+1).filter(A=>A.name!==e)]:this.#e.push(i)}[mC.inspect.custom](e,r){let n=this.#e.reduce((i,s)=>(i[s.name]?Array.isArray(i[s.name])?i[s.name].push(s.value):i[s.name]=[i[s.name],s.value]:i[s.name]=s.value,i),{__proto__:null});r.depth??=e,r.colors??=!0;let o=mC.formatWithOptions(r,n);return`FormData ${o.slice(o.indexOf("]")+2)}`}static getFormDataState(e){return e.#e}static setFormDataState(e,r){e.#e=r}},{getFormDataState:eM,setFormDataState:tM}=Zt;Reflect.deleteProperty(Zt,"getFormDataState");Reflect.deleteProperty(Zt,"setFormDataState");XN("FormData",Zt,eM,"name","value");Object.defineProperties(Zt.prototype,{append:Yn,delete:Yn,get:Yn,getAll:Yn,has:Yn,set:Yn,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function xd(t,e,r){if(typeof e!="string"){if(z.is.File(e)||(e=new File([e],"blob",{type:e.type})),r!==void 0){let n={type:e.type,lastModified:e.lastModified};e=new File([e],r,n)}}return{name:t,value:e}}z.is.FormData=z.util.MakeTypeAssertion(Zt);yC.exports={FormData:Zt,makeEntry:xd,setFormDataState:tM}});var bC=B((sz,RC)=>{"use strict";var{bufferToLowerCasedHeaderName:rM}=O(),{HTTP_TOKEN_CODEPOINTS:nM}=dt(),{makeEntry:oM}=Js(),{webidl:Ud}=ye(),Fd=require("node:assert"),{isomorphicDecode:wC}=jt(),iM=Buffer.from("--"),Pd=new TextDecoder,sM=new TextDecoder("utf-8",{ignoreBOM:!0});function AM(t){for(let e=0;e<t.length;++e)if((t.charCodeAt(e)&-128)!==0)return!1;return!0}function aM(t){let e=t.length;if(e<27||e>70)return!1;for(let r=0;r<e;++r){let n=t.charCodeAt(r);if(!(n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122||n===39||n===45||n===95))return!1}return!0}function cM(t,e){Fd(e!=="failure"&&e.essence==="multipart/form-data");let r=e.parameters.get("boundary");if(r===void 0)throw Le("missing boundary in content-type header");let n=Buffer.from(`--${r}`,"utf8"),o=[],i={position:0},s=t.indexOf(n);if(s===-1)throw Le("no boundary found in multipart body");for(i.position=s;;){if(t.subarray(i.position,i.position+n.length).equals(n))i.position+=n.length;else throw Le("expected a value starting with -- and the boundary");if(lM(t,iM,i))return o;if(t[i.position]!==13||t[i.position+1]!==10)throw Le("expected CRLF");i.position+=2;let A=uM(t,i),{name:a,filename:c,contentType:d,encoding:l}=A;i.position+=2;let u;{let h=t.indexOf(n.subarray(2),i.position);if(h===-1)throw Le("expected boundary after body");u=t.subarray(i.position,h-4),i.position+=u.length,l==="base64"&&(u=Buffer.from(u.toString(),"base64"))}if(t[i.position]!==13||t[i.position+1]!==10)throw Le("expected CRLF");i.position+=2;let p;c!==null?(d??="text/plain",AM(d)||(d=""),p=new File([u],c,{type:d})):p=sM.decode(Buffer.from(u)),Fd(Ud.is.USVString(a)),Fd(typeof p=="string"&&Ud.is.USVString(p)||Ud.is.File(p)),o.push(oM(a,p,c))}}function dM(t,e){t[e.position]===59&&e.position++,ut(s=>s===32||s===9,t,e);let r=ut(s=>vd(s)&&s!==61&&s!==42,t,e);if(r.length===0)return null;let n=r.toString("ascii").toLowerCase(),o=t[e.position]===42;if(o&&e.position++,t[e.position]!==61)return null;e.position++,ut(s=>s===32||s===9,t,e);let i;if(o){let s=ut(A=>A!==32&&A!==13&&A!==10&&A!==59,t,e);if(s[0]!==117&&s[0]!==85||s[1]!==116&&s[1]!==84||s[2]!==102&&s[2]!==70||s[3]!==45||s[4]!==56)throw Le("unknown encoding, expected utf-8''");i=decodeURIComponent(Pd.decode(s.subarray(7)))}else if(t[e.position]===34){e.position++;let s=ut(A=>A!==10&&A!==13&&A!==34,t,e);if(t[e.position]!==34)throw Le("Closing quote not found");e.position++,i=Pd.decode(s).replace(/%0A/ig,`
3
+ `).replace(/%0D/ig,"\r").replace(/%22/g,'"')}else{let s=ut(A=>vd(A)&&A!==59,t,e);i=Pd.decode(s)}return{name:n,value:i,extended:o}}function uM(t,e){let r=null,n=null,o=null,i=null;for(;;){if(t[e.position]===13&&t[e.position+1]===10){if(r===null)throw Le("header name is null");return{name:r,filename:n,contentType:o,encoding:i}}let s=ut(A=>A!==10&&A!==13&&A!==58,t,e);if(s=Ld(s,!0,!0,A=>A===9||A===32),!nM.test(s.toString()))throw Le("header name does not match the field-name token production");if(t[e.position]!==58)throw Le("expected :");switch(e.position++,ut(A=>A===32||A===9,t,e),rM(s)){case"content-disposition":{r=n=null;let A=!1;if(ut(c=>vd(c),t,e).toString("ascii").toLowerCase()!=="form-data")throw Le("expected form-data for content-disposition header");for(;e.position<t.length&&(t[e.position]!==13||t[e.position+1]!==10);){let c=dM(t,e);if(!c)break;c.name==="name"?r=c.value:c.name==="filename"&&(c.extended?(n=c.value,A=!0):A||(n=c.value))}if(r===null)throw Le("name attribute is required in content-disposition header");break}case"content-type":{let A=ut(a=>a!==10&&a!==13,t,e);A=Ld(A,!1,!0,a=>a===9||a===32),o=wC(A);break}case"content-transfer-encoding":{let A=ut(a=>a!==10&&a!==13,t,e);A=Ld(A,!1,!0,a=>a===9||a===32),i=wC(A);break}default:ut(A=>A!==10&&A!==13,t,e)}if(t[e.position]!==13||t[e.position+1]!==10)throw Le("expected CRLF");e.position+=2}}function ut(t,e,r){let n=r.position;for(;n<e.length&&t(e[n]);)++n;return e.subarray(r.position,r.position=n)}function Ld(t,e,r,n){let o=0,i=t.length-1;if(e)for(;o<t.length&&n(t[o]);)o++;if(r)for(;i>0&&n(t[i]);)i--;return o===0&&i===t.length-1?t:t.subarray(o,i+1)}function lM(t,e,r){if(t.length<e.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[r.position+n])return!1;return!0}function Le(t){return new TypeError("Failed to parse body as FormData.",{cause:new TypeError(t)})}function gM(t){return t<=31||t===127}function fM(t){return t===40||t===41||t===60||t===62||t===64||t===44||t===59||t===58||t===92||t===34||t===47||t===91||t===93||t===63||t===61}function vd(t){return t<=127&&t!==32&&t!==9&&!gM(t)&&!fM(t)}RC.exports={multipartFormDataParser:cM,validateBoundary:aM}});var si=B((Az,SC)=>{"use strict";function pM(){let t,e;return{promise:new Promise((n,o)=>{t=n,e=o}),resolve:t,reject:e}}SC.exports={createDeferredPromise:pM}});var qn=B((az,TC)=>{"use strict";var Gd=O(),{ReadableStreamFrom:hM,readableStreamClose:CM,fullyReadBody:EM,extractMimeType:IM}=Ke(),{FormData:DC,setFormDataState:QM}=Js(),{webidl:It}=ye(),_d=require("node:assert"),{isErrored:Od,isDisturbed:BM}=require("node:stream"),{isUint8Array:mM}=require("node:util/types"),{serializeAMimeType:yM}=dt(),{multipartFormDataParser:wM}=bC(),{createDeferredPromise:RM}=si(),{parseJSONFromBytes:bM}=jt(),{utf8DecodeBytes:SM}=Gs(),{runtimeFeatures:DM}=$t(),kM=DM.has("crypto")?require("node:crypto").randomInt:t=>Math.floor(Math.random()*t),Ks=new TextEncoder;function NM(){}var MM=new FinalizationRegistry(t=>{let e=t.deref();e&&!e.locked&&!BM(e)&&!Od(e)&&e.cancel("Response object has been garbage collected").catch(NM)});function NC(t,e=!1){let r=null,n=null;It.is.ReadableStream(t)?r=t:It.is.Blob(t)?r=t.stream():r=new ReadableStream({pull(){},start(c){n=c},cancel(){},type:"bytes"}),_d(It.is.ReadableStream(r));let o=null,i=null,s=null,A=null;if(typeof t=="string")i=t,A="text/plain;charset=UTF-8";else if(It.is.URLSearchParams(t))i=t.toString(),A="application/x-www-form-urlencoded;charset=UTF-8";else if(It.is.BufferSource(t))i=It.util.getCopyOfBytesHeldByBufferSource(t);else if(It.is.FormData(t)){let c=`----formdata-undici-0${`${kM(1e11)}`.padStart(11,"0")}`,d=`--${c}\r
4
+ Content-Disposition: form-data`;let l=E=>E.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),u=E=>E.replace(/\r?\n|\r/g,`\r
5
+ `),p=[],h=new Uint8Array([13,10]);s=0;let I=!1;for(let[E,Q]of t)if(typeof Q=="string"){let y=Ks.encode(d+`; name="${l(u(E))}"\r
6
+ \r
7
+ ${u(Q)}\r
8
+ `);p.push(y),s+=y.byteLength}else{let y=Ks.encode(`${d}; name="${l(u(E))}"`+(Q.name?`; filename="${l(Q.name)}"`:"")+`\r
9
+ Content-Type: ${Q.type||"application/octet-stream"}\r
10
+ \r
11
+ `);p.push(y,Q,h),typeof Q.size=="number"?s+=y.byteLength+Q.size+h.byteLength:I=!0}let m=Ks.encode(`--${c}--\r
12
+ `);p.push(m),s+=m.byteLength,I&&(s=null),i=t,o=async function*(){for(let E of p)E.stream?yield*E.stream():yield E},A=`multipart/form-data; boundary=${c}`}else if(It.is.Blob(t))i=t,s=t.size,t.type&&(A=t.type);else if(typeof t[Symbol.asyncIterator]=="function"){if(e)throw new TypeError("keepalive");if(Gd.isDisturbed(t)||t.locked)throw new TypeError("Response body object should not be disturbed or locked");r=It.is.ReadableStream(t)?t:hM(t)}return(typeof i=="string"||mM(i))&&(o=()=>(s=typeof i=="string"?Buffer.byteLength(i):i.length,i)),o!=null&&(async()=>{let c=o(),d=c?.[Symbol.asyncIterator]?.();if(d)for await(let l of d){if(Od(r))break;l.length&&n.enqueue(new Uint8Array(l))}else c?.length&&!Od(r)&&n.enqueue(typeof c=="string"?Ks.encode(c):new Uint8Array(c));queueMicrotask(()=>CM(n))})(),[{stream:r,source:i,length:s},A]}function TM(t,e=!1){return It.is.ReadableStream(t)&&(_d(!Gd.isDisturbed(t),"The body has already been consumed."),_d(!t.locked,"The stream is locked.")),NC(t,e)}function xM(t){let{0:e,1:r}=t.stream.tee();return t.stream=e,{stream:r,length:t.length,source:t.source}}function UM(t,e){return{blob(){return Vn(this,n=>{let o=kC(e(this));return o===null?o="":o&&(o=yM(o)),new Blob([n],{type:o})},t,e)},arrayBuffer(){return Vn(this,n=>new Uint8Array(n).buffer,t,e)},text(){return Vn(this,SM,t,e)},json(){return Vn(this,bM,t,e)},formData(){return Vn(this,n=>{let o=kC(e(this));if(o!==null)switch(o.essence){case"multipart/form-data":{let i=wM(n,o),s=new DC;return QM(s,i),s}case"application/x-www-form-urlencoded":{let i=new URLSearchParams(n.toString()),s=new DC;for(let[A,a]of i)s.append(A,a);return s}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},t,e)},bytes(){return Vn(this,n=>new Uint8Array(n),t,e)}}}function FM(t,e){Object.assign(t.prototype,UM(t,e))}function Vn(t,e,r,n){try{It.brandCheck(t,r)}catch(A){return Promise.reject(A)}if(t=n(t),MC(t))return Promise.reject(new TypeError("Body is unusable: Body has already been read"));let o=RM(),i=o.reject,s=A=>{try{o.resolve(e(A))}catch(a){i(a)}};return t.body==null?(s(Buffer.allocUnsafe(0)),o.promise):(EM(t.body,s,i),o.promise)}function MC(t){let e=t.body;return e!=null&&(e.stream.locked||Gd.isDisturbed(e.stream))}function kC(t){let e=t.headersList,r=IM(e);return r==="failure"?null:r}TC.exports={extractBody:NC,safelyExtractBody:TM,cloneBody:xM,mixinBody:FM,streamRegistry:MM,bodyUnusable:MC}});var JC=B((cz,WC)=>{"use strict";var P=require("node:assert"),T=O(),{channels:xC}=lr(),Hd=mc(),{RequestContentLengthMismatchError:jr,ResponseContentLengthMismatchError:UC,RequestAbortedError:HC,InvalidArgumentError:PM,HeadersTimeoutError:LM,HeadersOverflowError:vM,SocketError:$r,InformationalError:Wn,BodyTimeoutError:_M,HTTPParserError:OM,ResponseExceededMaxSizeError:GM}=_(),{kUrl:YC,kReset:ve,kClient:Xs,kParser:re,kBlocking:ci,kRunning:fe,kPending:zd,kSize:FC,kWriting:pr,kQueue:Qt,kNoRef:Ai,kKeepAliveDefaultTimeout:HM,kHostHeader:YM,kPendingIdx:VM,kRunningIdx:lt,kError:Me,kPipelining:$s,kSocket:Xr,kKeepAliveTimeoutValue:eA,kMaxHeadersSize:qM,kKeepAliveMaxTimeout:WM,kKeepAliveTimeoutThreshold:JM,kHeadersTimeout:KM,kBodyTimeout:zM,kStrictContentLength:qd,kMaxRequests:PC,kCounter:jM,kMaxResponseSize:$M,kOnError:LC,kResume:Xt,kHTTPContext:VC,kClosed:Wd}=j(),ze=Th(),vC=Buffer.alloc(0),zs=Buffer[Symbol.species],ZM=T.removeAllListeners,en=Symbol("kIdleSocketValidation"),Zr=Symbol("kIdleSocketValidationTimeout"),jd=Symbol("kSocketUsed"),Yd;function XM(){let t=process.env.JEST_WORKER_ID?pd():void 0,e,r=process.arch!=="ppc64";if(process.env.UNDICI_NO_WASM_SIMD==="1"?r=!1:process.env.UNDICI_NO_WASM_SIMD==="0"&&(r=!0),r)try{e=new WebAssembly.Module(Fh())}catch{}return e||(e=new WebAssembly.Module(t||pd())),new WebAssembly.Instance(e,{env:{wasm_on_url:(n,o,i)=>0,wasm_on_status:(n,o,i)=>{P(ce.ptr===n);let s=o-Mt+Nt.byteOffset;return ce.onStatus(new zs(Nt.buffer,s,i))},wasm_on_message_begin:n=>(P(ce.ptr===n),ce.onMessageBegin()),wasm_on_header_field:(n,o,i)=>{P(ce.ptr===n);let s=o-Mt+Nt.byteOffset;return ce.onHeaderField(new zs(Nt.buffer,s,i))},wasm_on_header_value:(n,o,i)=>{P(ce.ptr===n);let s=o-Mt+Nt.byteOffset;return ce.onHeaderValue(new zs(Nt.buffer,s,i))},wasm_on_headers_complete:(n,o,i,s)=>(P(ce.ptr===n),ce.onHeadersComplete(o,i===1,s===1)),wasm_on_body:(n,o,i)=>{P(ce.ptr===n);let s=o-Mt+Nt.byteOffset;return ce.onBody(new zs(Nt.buffer,s,i))},wasm_on_message_complete:n=>(P(ce.ptr===n),ce.onMessageComplete())}})}var Vd=null,ce=null,Nt=null,js=0,Mt=null,eT=0,ai=1,Jn=2|ai,Zs=4|ai,Jd=8|eT,Kd=class{constructor(e,r,{exports:n}){this.llhttp=n,this.ptr=this.llhttp.llhttp_alloc(ze.TYPE.RESPONSE),this.client=e,this.socket=r,this.timeout=null,this.timeoutWeakRef=new WeakRef(this),this.timeoutValue=null,this.timeoutType=null,this.statusCode=0,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=e[qM],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=e[$M]}setTimeout(e,r){e!==this.timeoutValue||r&ai^this.timeoutType&ai?(this.timeout&&(Hd.clearTimeout(this.timeout),this.timeout=null),e&&(r&ai?this.timeout=Hd.setFastTimeout(_C,e,this.timeoutWeakRef):(this.timeout=setTimeout(_C,e,this.timeoutWeakRef),this.timeout?.unref())),this.timeoutValue=e):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=r}resume(){this.socket.destroyed||!this.paused||(P(this.ptr!=null),P(ce===null),this.llhttp.llhttp_resume(this.ptr),P(this.timeoutType===Zs),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||vC),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let e=this.socket.read();if(e===null)break;this.execute(e)}}execute(e){P(ce===null),P(this.ptr!=null),P(!this.paused);let{socket:r,llhttp:n}=this;e.length>js&&(Mt&&n.free(Mt),js=Math.ceil(e.length/4096)*4096,Mt=n.malloc(js)),new Uint8Array(n.memory.buffer,Mt,js).set(e);try{let o;try{Nt=e,ce=this,o=n.llhttp_execute(this.ptr,Mt,e.length)}finally{ce=null,Nt=null}if(o!==ze.ERROR.OK){let i=e.subarray(n.llhttp_get_error_pos(this.ptr)-Mt);if(o===ze.ERROR.PAUSED_UPGRADE)this.onUpgrade(i);else if(o===ze.ERROR.PAUSED)this.paused=!0,r.unshift(i);else throw this.createError(o,i)}}catch(o){T.destroy(r,o)}}finish(){P(ce===null),P(this.ptr!=null),P(!this.paused);let{llhttp:e}=this,r;try{ce=this,r=e.llhttp_finish(this.ptr)}finally{ce=null}return r===ze.ERROR.OK?null:r===ze.ERROR.PAUSED||r===ze.ERROR.PAUSED_UPGRADE?(this.paused=!0,null):this.createError(r,vC)}createError(e,r){let{llhttp:n,contentLength:o,bytesRead:i}=this;if(o&&i!==parseInt(o,10))return new UC;let s=n.llhttp_get_error_reason(this.ptr),A="";if(s){let a=new Uint8Array(n.memory.buffer,s).indexOf(0);A="Response does not match the HTTP/1.1 protocol ("+Buffer.from(n.memory.buffer,s,a).toString()+")"}return new OM(A,ze.ERROR[e],r)}destroy(){P(ce===null),P(this.ptr!=null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&Hd.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(e){return this.statusText=e.toString(),0}onMessageBegin(){let{socket:e,client:r}=this;if(e.destroyed)return-1;if(r[fe]===0)return T.destroy(e,new $r("bad response",T.getSocketInfo(e))),-1;let n=r[Qt][r[lt]];return n?(n.onResponseStarted(),0):-1}onHeaderField(e){let r=this.headers.length;return(r&1)===0?this.headers.push(e):this.headers[r-1]=Buffer.concat([this.headers[r-1],e]),this.trackHeader(e.length),0}onHeaderValue(e){let r=this.headers.length;(r&1)===1?(this.headers.push(e),r+=1):this.headers[r-1]=Buffer.concat([this.headers[r-1],e]);let n=this.headers[r-2];if(n.length===10){let o=T.bufferToLowerCasedHeaderName(n);o==="keep-alive"?this.keepAlive+=e.toString():o==="connection"&&(this.connection+=e.toString())}else n.length===14&&T.bufferToLowerCasedHeaderName(n)==="content-length"&&(this.contentLength+=e.toString());return this.trackHeader(e.length),0}trackHeader(e){this.headersSize+=e,this.headersSize>=this.headersMaxSize&&T.destroy(this.socket,new vM)}onUpgrade(e){let{upgrade:r,client:n,socket:o,headers:i,statusCode:s}=this;P(r),P(n[Xr]===o),P(!o.destroyed),P(!this.paused),P((i.length&1)===0);let A=n[Qt][n[lt]];P(A),P(A.upgrade||A.method==="CONNECT"),this.statusCode=0,this.statusText="",this.shouldKeepAlive=!1,this.headers=[],this.headersSize=0,o.unshift(e),o[re].destroy(),o[re]=null,o[Xs]=null,o[Me]=null,ZM(o),n[Xr]=null,n[VC]=null,n[Qt][n[lt]++]=null,n.emit("disconnect",n[YC],[n],new Wn("upgrade"));try{A.onUpgrade(s,i,o)}catch(a){T.destroy(o,a)}n[Xt]()}onHeadersComplete(e,r,n){let{client:o,socket:i,headers:s,statusText:A}=this;if(i.destroyed)return-1;if(o[fe]===0)return T.destroy(i,new $r("bad response",T.getSocketInfo(i))),-1;let a=o[Qt][o[lt]];if(!a)return-1;if(P(!this.upgrade),P(this.statusCode<200),e===100)return T.destroy(i,new $r("bad response",T.getSocketInfo(i))),-1;if(r&&!a.upgrade)return T.destroy(i,new $r("bad upgrade",T.getSocketInfo(i))),-1;if(P(this.timeoutType===Jn),this.statusCode=e,this.shouldKeepAlive=n||a.method==="HEAD"&&!i[ve]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let d=a.bodyTimeout!=null?a.bodyTimeout:o[zM];this.setTimeout(d,Zs)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(a.method==="CONNECT")return P(o[fe]===1),this.upgrade=!0,2;if(r)return P(o[fe]===1),this.upgrade=!0,2;if(P((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&o[$s]){let d=this.keepAlive?T.parseKeepAliveTimeout(this.keepAlive):null;if(d!=null){let l=Math.min(d-o[JM],o[WM]);l<=0?i[ve]=!0:o[eA]=l}else o[eA]=o[HM]}else i[ve]=!0;let c=a.onHeaders(e,s,this.resume,A)===!1;return a.aborted?-1:a.method==="HEAD"||e<200?1:(i[ci]&&(i[ci]=!1,o[Xt]()),c?ze.ERROR.PAUSED:0)}onBody(e){let{client:r,socket:n,statusCode:o,maxResponseSize:i}=this;if(n.destroyed)return-1;let s=r[Qt][r[lt]];return P(s),P(this.timeoutType===Zs),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),P(o>=200),i>-1&&this.bytesRead+e.length>i?(T.destroy(n,new GM),-1):(this.bytesRead+=e.length,s.onData(e)===!1?ze.ERROR.PAUSED:0)}onMessageComplete(){let{client:e,socket:r,statusCode:n,upgrade:o,headers:i,contentLength:s,bytesRead:A,shouldKeepAlive:a}=this;if(r.destroyed&&(!n||a))return-1;if(o)return 0;P(n>=100),P((this.headers.length&1)===0);let c=e[Qt][e[lt]];if(P(c),this.statusCode=0,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",this.headers=[],this.headersSize=0,n<200)return 0;if(c.method!=="HEAD"&&s&&A!==parseInt(s,10))return T.destroy(r,new UC),-1;if(c.onComplete(i),e[Qt][e[lt]++]=null,r[jd]=e[zd]===0,r[pr])return P(e[fe]===0),T.destroy(r,new Wn("reset")),ze.ERROR.PAUSED;if(a){if(r[ve]&&e[fe]===0)return T.destroy(r,new Wn("reset")),ze.ERROR.PAUSED;e[$s]==null||e[$s]===1?setImmediate(e[Xt]):e[Xt]()}else return T.destroy(r,new Wn("reset")),ze.ERROR.PAUSED;return 0}};function _C(t){let e=t.deref();if(!e)return;let{socket:r,timeoutType:n,client:o,paused:i}=e;n===Jn?(!r[pr]||r.writableNeedDrain||o[fe]>1)&&(P(!i,"cannot be paused while waiting for headers"),T.destroy(r,new LM)):n===Zs?i||T.destroy(r,new _M):n===Jd&&(P(o[fe]===0&&o[eA]),T.destroy(r,new Wn("socket idle timeout")))}function tT(t,e){if(t[Xr]=e,Vd||(Vd=XM()),e.errored)throw e.errored;if(e.destroyed)throw new $r("destroyed");return e[Ai]=!1,e[pr]=!1,e[ve]=!1,e[ci]=!1,e[en]=0,e[Zr]=null,e[jd]=!1,e[re]=new Kd(t,e,Vd),T.addListener(e,"error",rT),T.addListener(e,"readable",nT),T.addListener(e,"end",oT),T.addListener(e,"close",iT),e[Wd]=!1,e.on("close",sT),{version:"h1",defaultPipelining:1,write(r){return dT(t,r)},resume(){aT(t)},destroy(r,n){e[Wd]?queueMicrotask(n):(e.on("close",n),e.destroy(r))},get destroyed(){return e.destroyed},busy(r){return!!(e[pr]||e[ve]||e[ci]||e[en]===1||r&&(t[fe]>0&&!r.idempotent||t[fe]>0&&(r.upgrade||r.method==="CONNECT")||t[fe]>0&&T.bodyLength(r.body)!==0&&(T.isStream(r.body)||T.isAsyncIterable(r.body)||T.isFormDataLike(r.body))))}}}function rT(t){P(t.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let e=this[re];if(t.code==="ECONNRESET"&&e.statusCode&&!e.shouldKeepAlive){let r=e.finish();r&&(this[Me]=r,this[Xs][LC](r));return}this[Me]=t,this[Xs][LC](t)}function nT(){this[re]?.readMore()}function oT(){let t=this[re];if(t.statusCode&&!t.shouldKeepAlive){let e=t.finish();e&&T.destroy(this,e);return}T.destroy(this,new $r("other side closed",T.getSocketInfo(this)))}function iT(){let t=this[re];qC(this),t&&(!this[Me]&&t.statusCode&&!t.shouldKeepAlive&&(this[Me]=t.finish()||this[Me]),this[re].destroy(),this[re]=null);let e=this[Me]||new $r("closed",T.getSocketInfo(this)),r=this[Xs];if(r[Xr]=null,r[VC]=null,r.destroyed){P(r[zd]===0);let n=r[Qt].splice(r[lt]);for(let o=0;o<n.length;o++){let i=n[o];T.errorRequest(r,i,e)}}else if(r[fe]>0&&e.code!=="UND_ERR_INFO"){let n=r[Qt][r[lt]];r[Qt][r[lt]++]=null,T.errorRequest(r,n,e)}r[VM]=r[lt],P(r[fe]===0),r.emit("disconnect",r[YC],[r],e),r[Xt]()}function sT(){this[Wd]=!0}function qC(t){t[Zr]&&(clearTimeout(t[Zr]),t[Zr]=null),t[en]=0}function AT(t,e){e[en]=1,e[Zr]=setTimeout(()=>{e[Zr]=null,e[en]=2,t[Xr]===e&&!e.destroyed&&t[Xt]()},0),e[Zr].unref?.()}function aT(t){let e=t[Xr];if(e&&!e.destroyed){if(t[FC]===0?!e[Ai]&&e.unref&&(e.unref(),e[Ai]=!0):e[Ai]&&e.ref&&(e.ref(),e[Ai]=!1),t[fe]===0&&t[zd]>0&&e[jd]){if(e[en]===0)return AT(t,e),e[re].readMore(),e.destroyed,void 0;if(e[en]===1)return e[re].readMore(),e.destroyed,void 0}if(t[fe]===0&&(e[re].readMore(),e.destroyed))return;if(t[FC]===0)e[re].timeoutType!==Jd&&e[re].setTimeout(t[eA],Jd);else if(t[fe]>0&&e[re].statusCode<200&&e[re].timeoutType!==Jn){let r=t[Qt][t[lt]],n=r.headersTimeout!=null?r.headersTimeout:t[KM];e[re].setTimeout(n,Jn)}}}function cT(t){return t!=="GET"&&t!=="HEAD"&&t!=="OPTIONS"&&t!=="TRACE"&&t!=="CONNECT"}function dT(t,e){let{method:r,path:n,host:o,upgrade:i,blocking:s,reset:A}=e,{body:a,headers:c,contentLength:d}=e,l=r==="PUT"||r==="POST"||r==="PATCH"||r==="QUERY"||r==="PROPFIND"||r==="PROPPATCH";if(T.isFormDataLike(a)){Yd||(Yd=qn().extractBody);let[m,E]=Yd(a);e.contentType==null&&c.push("content-type",E),a=m.stream,d=m.length}else if(T.isBlobLike(a)&&e.contentType==null){let m=a.type;if(m){let E=`${m}`;if(!T.isValidHeaderValue(E))return T.errorRequest(t,e,new PM("invalid content-type header")),!1;c.push("content-type",E)}}a&&typeof a.read=="function"&&a.read(0);let u=T.bodyLength(a);if(d=u??d,d===null&&(d=e.contentLength),d===0&&!l&&(d=null),cT(r)&&d>0&&e.contentLength!==null&&e.contentLength!==d){if(t[qd])return T.errorRequest(t,e,new jr),!1;process.emitWarning(new jr)}let p=t[Xr];qC(p);let h=m=>{e.aborted||e.completed||(T.errorRequest(t,e,m||new HC),T.destroy(a),T.destroy(p,new Wn("aborted")))};try{e.onConnect(h)}catch(m){T.errorRequest(t,e,m)}if(e.aborted)return!1;r==="HEAD"&&(p[ve]=!0),(i||r==="CONNECT")&&(p[ve]=!0),A!=null&&(p[ve]=A),t[PC]&&p[jM]++>=t[PC]&&(p[ve]=!0),s&&(p[ci]=!0),p.setTypeOfService&&p.setTypeOfService(e.typeOfService);let I=`${r} ${n} HTTP/1.1\r
13
+ `;if(typeof o=="string"?I+=`host: ${o}\r
14
+ `:I+=t[YM],i?I+=`connection: upgrade\r
15
+ upgrade: ${i}\r
16
+ `:t[$s]&&!p[ve]?I+=`connection: keep-alive\r
17
+ `:I+=`connection: close\r
18
+ `,Array.isArray(c))for(let m=0;m<c.length;m+=2){let E=c[m+0],Q=c[m+1];if(Array.isArray(Q))for(let y=0;y<Q.length;y++)I+=`${E}: ${Q[y]}\r
19
+ `;else I+=`${E}: ${Q}\r
20
+ `}return xC.sendHeaders.hasSubscribers&&xC.sendHeaders.publish({request:e,headers:I,socket:p}),!a||u===0?OC(h,null,t,e,p,d,I,l):T.isBuffer(a)?OC(h,a,t,e,p,d,I,l):T.isBlobLike(a)?typeof a.stream=="function"?GC(h,a.stream(),t,e,p,d,I,l):lT(h,a,t,e,p,d,I,l):T.isStream(a)?uT(h,a,t,e,p,d,I,l):T.isIterable(a)?GC(h,a,t,e,p,d,I,l):P(!1),!0}function uT(t,e,r,n,o,i,s,A){P(i!==0||r[fe]===0,"stream body cannot be pipelined");let a=!1,c=new tA({abort:t,socket:o,request:n,contentLength:i,client:r,expectsPayload:A,header:s}),d=function(h){if(!a)try{!c.write(h)&&this.pause&&this.pause()}catch(I){T.destroy(this,I)}},l=function(){a||e.resume&&e.resume()},u=function(){if(queueMicrotask(()=>{e.removeListener("error",p)}),!a){let h=new HC;queueMicrotask(()=>p(h))}},p=function(h){if(!a){if(a=!0,P(o.destroyed||o[pr]&&r[fe]<=1),o.off("drain",l).off("error",p),e.removeListener("data",d).removeListener("end",p).removeListener("close",u),!h)try{c.end()}catch(I){h=I}c.destroy(h),h&&(h.code!=="UND_ERR_INFO"||h.message!=="reset")?T.destroy(e,h):T.destroy(e)}};e.on("data",d).on("end",p).on("error",p).on("close",u),e.resume&&e.resume(),o.on("drain",l).on("error",p),e.errorEmitted??e.errored?setImmediate(p,e.errored):(e.endEmitted??e.readableEnded)&&setImmediate(p,null),(e.closeEmitted??e.closed)&&setImmediate(u)}function OC(t,e,r,n,o,i,s,A){try{e?T.isBuffer(e)&&(P(i===e.byteLength,"buffer body must have content length"),o.cork(),o.write(`${s}content-length: ${i}\r
21
+ \r
22
+ `,"latin1"),o.write(e),o.uncork(),n.onBodySent(e),!A&&n.reset!==!1&&(o[ve]=!0)):i===0?o.write(`${s}content-length: 0\r
23
+ \r
24
+ `,"latin1"):(P(i===null,"no body must not have content length"),o.write(`${s}\r
25
+ `,"latin1")),n.onRequestSent(),r[Xt]()}catch(a){t(a)}}async function lT(t,e,r,n,o,i,s,A){P(i===e.size,"blob body must have content length");try{if(i!=null&&i!==e.size)throw new jr;let a=Buffer.from(await e.arrayBuffer());o.cork(),o.write(`${s}content-length: ${i}\r
26
+ \r
27
+ `,"latin1"),o.write(a),o.uncork(),n.onBodySent(a),n.onRequestSent(),!A&&n.reset!==!1&&(o[ve]=!0),r[Xt]()}catch(a){t(a)}}async function GC(t,e,r,n,o,i,s,A){P(i!==0||r[fe]===0,"iterator body cannot be pipelined");let a=null;function c(){if(a){let u=a;a=null,u()}}let d=()=>new Promise((u,p)=>{P(a===null),o[Me]?p(o[Me]):a=u});o.on("close",c).on("drain",c);let l=new tA({abort:t,socket:o,request:n,contentLength:i,client:r,expectsPayload:A,header:s});try{for await(let u of e){if(o[Me])throw o[Me];l.write(u)||await d()}l.end()}catch(u){l.destroy(u)}finally{o.off("close",c).off("drain",c)}}var tA=class{constructor({abort:e,socket:r,request:n,contentLength:o,client:i,expectsPayload:s,header:A}){this.socket=r,this.request=n,this.contentLength=o,this.client=i,this.bytesWritten=0,this.expectsPayload=s,this.header=A,this.abort=e,r[pr]=!0}write(e){let{socket:r,request:n,contentLength:o,client:i,bytesWritten:s,expectsPayload:A,header:a}=this;if(r[Me])throw r[Me];if(r.destroyed)return!1;let c=Buffer.byteLength(e);if(!c)return!0;if(o!==null&&s+c>o){if(i[qd])throw new jr;process.emitWarning(new jr)}r.cork(),s===0&&(!A&&n.reset!==!1&&(r[ve]=!0),o===null?r.write(`${a}transfer-encoding: chunked\r
28
+ `,"latin1"):r.write(`${a}content-length: ${o}\r
29
+ \r
30
+ `,"latin1")),o===null&&r.write(`\r
31
+ ${c.toString(16)}\r
32
+ `,"latin1"),this.bytesWritten+=c;let d=r.write(e);return r.uncork(),n.onBodySent(e),d||r[re].timeout&&r[re].timeoutType===Jn&&r[re].timeout.refresh&&r[re].timeout.refresh(),d}end(){let{socket:e,contentLength:r,client:n,bytesWritten:o,expectsPayload:i,header:s,request:A}=this;if(A.onRequestSent(),e[pr]=!1,e[Me])throw e[Me];if(!e.destroyed){if(o===0?i?e.write(`${s}content-length: 0\r
33
+ \r
34
+ `,"latin1"):e.write(`${s}\r
35
+ `,"latin1"):r===null&&e.write(`\r
36
+ 0\r
37
+ \r
38
+ `,"latin1"),r!==null&&o!==r){if(n[qd])throw new jr;process.emitWarning(new jr)}e[re].timeout&&e[re].timeoutType===Jn&&e[re].timeout.refresh&&e[re].timeout.refresh(),n[Xt]()}}destroy(e){let{socket:r,client:n,abort:o}=this;r[pr]=!1,e&&(P(n[fe]<=1,"pipeline should only contain this request"),o(e))}};WC.exports=tT});var rE=B((dz,tE)=>{"use strict";var ft=require("node:assert"),{pipeline:gT}=require("node:stream"),H=O(),{RequestContentLengthMismatchError:eu,RequestAbortedError:fT,SocketError:gi,InformationalError:hr,InvalidArgumentError:pT}=_(),{kUrl:li,kReset:iA,kClient:je,kRunning:fi,kPending:hT,kQueue:Cr,kPendingIdx:ru,kRunningIdx:Bt,kError:$e,kSocket:se,kStrictContentLength:CT,kOnError:Kn,kMaxConcurrentStreams:nA,kPingInterval:KC,kHTTP2Session:er,kHTTP2InitialWindowSize:ET,kHTTP2ConnectionWindowSize:IT,kResume:Tt,kSize:QT,kHTTPContext:nu,kClosed:tu,kBodyTimeout:BT,kEnableConnectProtocol:di,kRemoteSettings:ui,kHTTP2Stream:rA,kHTTP2SessionState:ou}=j(),{channels:zC}=lr(),gt=Symbol("open streams"),jC,oA;try{oA=require("node:http2")}catch{oA={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:mT,HTTP2_HEADER_METHOD:$C,HTTP2_HEADER_PATH:ZC,HTTP2_HEADER_SCHEME:$d,HTTP2_HEADER_CONTENT_LENGTH:yT,HTTP2_HEADER_EXPECT:wT,HTTP2_HEADER_STATUS:Zd,HTTP2_HEADER_PROTOCOL:RT,NGHTTP2_REFUSED_STREAM:bT,NGHTTP2_CANCEL:ST}}=oA;function Xd(t){let e=[];for(let[r,n]of Object.entries(t))if(Array.isArray(n))for(let o of n)e.push(Buffer.from(r),Buffer.from(o));else e.push(Buffer.from(r),Buffer.from(n));return e}function DT(t,e){t[se]=e;let r=t[ET],n=t[IT],o=oA.connect(t[li],{createConnection:()=>e,peerMaxConcurrentStreams:t[nA],settings:{enablePush:!1,...r!=null?{initialWindowSize:r}:null}});return t[se]=e,o[gt]=0,o[je]=t,o[se]=e,o[ou]={ping:{interval:t[KC]===0?null:setInterval(TT,t[KC],o).unref()}},o[di]=!1,o[ui]=!1,n&&H.addListener(o,"connect",NT.bind(o,n)),H.addListener(o,"error",xT),H.addListener(o,"frameError",UT),H.addListener(o,"end",FT),H.addListener(o,"goaway",PT),H.addListener(o,"close",LT),H.addListener(o,"remoteSettings",MT),o.unref(),t[er]=o,e[er]=o,H.addListener(e,"error",_T),H.addListener(e,"end",OT),H.addListener(e,"close",vT),e[tu]=!1,e.on("close",GT),{version:"h2",defaultPipelining:1/0,write(i){return YT(t,i)},resume(){kT(t)},destroy(i,s){e[tu]?queueMicrotask(s):e.destroy(i).on("close",s)},get destroyed(){return e.destroyed},busy(i){if(i!=null)if(t[fi]>0){if(i.idempotent===!1||(i.upgrade==="websocket"||i.method==="CONNECT")&&o[ui]===!1||H.bodyLength(i.body)!==0&&(H.isStream(i.body)||H.isAsyncIterable(i.body)||H.isFormDataLike(i.body)))return!0}else return(i.upgrade==="websocket"||i.method==="CONNECT")&&o[ui]===!1;return!1}}}function kT(t){let e=t[se];e?.destroyed===!1&&(t[QT]===0||t[nA]===0?(e.unref(),t[er].unref()):(e.ref(),t[er].ref()))}function NT(t){try{typeof this.setLocalWindowSize=="function"&&this.setLocalWindowSize(t)}catch{}}function MT(t){if(this[je][nA]=t.maxConcurrentStreams??this[je][nA],this[ui]===!0&&this[di]===!0&&t.enableConnectProtocol===!1){let e=new hr("HTTP/2: Server disabled extended CONNECT protocol against RFC-8441");this[se][$e]=e,this[je][Kn](e);return}this[di]=t.enableConnectProtocol??this[di],this[ui]=!0,this[je][Tt]()}function TT(t){let e=t[ou];if((t.closed||t.destroyed)&&e.ping.interval!=null){clearInterval(e.ping.interval),e.ping.interval=null;return}t.ping(r.bind(t));function r(n,o){let i=this[je],s=this[je];if(n!=null){let A=new hr(`HTTP/2: "PING" errored - type ${n.message}`);s[$e]=A,i[Kn](A)}else i.emit("ping",o)}}function xT(t){ft(t.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[se][$e]=t,this[je][Kn](t)}function UT(t,e,r){if(r===0){let n=new hr(`HTTP/2: "frameError" received - type ${t}, code ${e}`);this[se][$e]=n,this[je][Kn](n)}}function FT(){let t=new gi("other side closed",H.getSocketInfo(this[se]));this.destroy(t),H.destroy(this[se],t)}function PT(t){let e=this[$e]||new gi(`HTTP/2: "GOAWAY" frame received with code ${t}`,H.getSocketInfo(this[se])),r=this[je];if(r[se]=null,r[nu]=null,this.close(),this[er]=null,H.destroy(this[se],e),r[Bt]<r[Cr].length){let n=r[Cr][r[Bt]];r[Cr][r[Bt]++]=null,H.errorRequest(r,n,e),r[ru]=r[Bt]}ft(r[fi]===0),r.emit("disconnect",r[li],[r],e),r.emit("connectionError",r[li],[r],e),r[Tt]()}function LT(){let{[je]:t,[ou]:e}=this,{[se]:r}=t,n=this[se][$e]||this[$e]||new gi("closed",H.getSocketInfo(r));if(t[se]=null,t[nu]=null,e.ping.interval!=null&&(clearInterval(e.ping.interval),e.ping.interval=null),t.destroyed){ft(t[hT]===0);let o=t[Cr].splice(t[Bt]);for(let i=0;i<o.length;i++){let s=o[i];H.errorRequest(t,s,n)}}}function vT(){let t=this[$e]||new gi("closed",H.getSocketInfo(this)),e=this[er][je];e[se]=null,e[nu]=null,this[er]!==null&&this[er].destroy(t),e[ru]=e[Bt],ft(e[fi]===0),e.emit("disconnect",e[li],[e],t),e[Tt]()}function _T(t){ft(t.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[$e]=t,this[je][Kn](t)}function OT(){H.destroy(this,new gi("other side closed",H.getSocketInfo(this)))}function GT(){this[tu]=!0}function HT(t){return t!=="GET"&&t!=="HEAD"&&t!=="OPTIONS"&&t!=="TRACE"&&t!=="CONNECT"}function YT(t,e){let r=e.bodyTimeout??t[BT],n=t[er],{method:o,path:i,host:s,upgrade:A,expectContinue:a,signal:c,protocol:d,headers:l}=e,{body:u}=e;if(A!=null&&A!=="websocket")return H.errorRequest(t,e,new pT(`Custom upgrade "${A}" not supported over HTTP/2`)),!1;let p={};for(let k=0;k<l.length;k+=2){let x=l[k+0],U=l[k+1];if(x==="cookie"){p[x]!=null?p[x]=Array.isArray(p[x])?(p[x].push(U),p[x]):[p[x],U]:p[x]=U;continue}if(Array.isArray(U))for(let q=0;q<U.length;q++)p[x]?p[x]+=`, ${U[q]}`:p[x]=U[q];else p[x]?p[x]+=`, ${U}`:p[x]=U}let h=null,{hostname:I,port:m}=t[li];p[mT]=s||`${I}${m?`:${m}`:""}`,p[$C]=o;let E=k=>{e.aborted||e.completed||(k=k||new fT,H.errorRequest(t,e,k),h!=null&&(h.removeAllListeners("data"),h.close(),t[Kn](k),t[Tt]()),H.destroy(u,k))};try{e.onConnect(E)}catch(k){H.errorRequest(t,e,k)}if(e.aborted)return!1;if(A||o==="CONNECT")return n.ref(),A==="websocket"?n[di]===!1?(H.errorRequest(t,e,new hr("HTTP/2: Extended CONNECT protocol not supported by server")),n.unref(),!1):(p[$C]="CONNECT",p[RT]="websocket",p[ZC]=i,d==="ws:"||d==="wss:"?p[$d]=d==="ws:"?"http":"https":p[$d]=d==="http:"?"http":"https",h=n.request(p,{endStream:!1,signal:c}),h[rA]=!0,h.once("response",(k,x)=>{let{[Zd]:U,...q}=k;e.onUpgrade(U,Xd(q),h),++n[gt],t[Cr][t[Bt]++]=null}),h.on("error",()=>{(h.rstCode===bT||h.rstCode===ST)&&E(new hr(`HTTP/2: "stream error" received - code ${h.rstCode}`))}),h.once("close",()=>{n[gt]-=1,n[gt]===0&&n.unref()}),h.setTimeout(r),!0):(h=n.request(p,{endStream:!1,signal:c}),h[rA]=!0,h.on("response",k=>{let{[Zd]:x,...U}=k;e.onUpgrade(x,Xd(U),h),++n[gt],t[Cr][t[Bt]++]=null}),h.once("close",()=>{n[gt]-=1,n[gt]===0&&n.unref()}),h.setTimeout(r),!0);p[ZC]=i,p[$d]=d==="http:"?"http":"https";let Q=o==="PUT"||o==="POST"||o==="PATCH";u&&typeof u.read=="function"&&u.read(0);let y=H.bodyLength(u);if(H.isFormDataLike(u)){jC??=qn().extractBody;let[k,x]=jC(u);p["content-type"]=x,u=k.stream,y=k.length}if(y==null&&(y=e.contentLength),Q||(y=null),HT(o)&&y>0&&e.contentLength!=null&&e.contentLength!==y){if(t[CT])return H.errorRequest(t,e,new eu),!1;process.emitWarning(new eu)}if(y!=null&&(ft(u||y===0,"no body must not have content length"),p[yT]=`${y}`),n.ref(),zC.sendHeaders.hasSubscribers){let k="";for(let x in p)k+=`${x}: ${p[x]}\r
39
+ `;zC.sendHeaders.publish({request:e,headers:k,socket:n[se]})}let v=o==="GET"||o==="HEAD"||u===null;a?(p[wT]="100-continue",h=n.request(p,{endStream:v,signal:c}),h[rA]=!0,h.once("continue",F)):(h=n.request(p,{endStream:v,signal:c}),h[rA]=!0,F()),++n[gt],h.setTimeout(r);let b=!1;return h.once("response",k=>{let{[Zd]:x,...U}=k;if(e.onResponseStarted(),b=!0,e.aborted){h.removeAllListeners("data");return}e.onHeaders(Number(x),Xd(U),h.resume.bind(h),"")===!1&&h.pause(),h.on("data",q=>{e.aborted||e.completed||e.onData(q)===!1&&h.pause()})}),h.once("end",()=>{h.removeAllListeners("data"),b?(!e.aborted&&!e.completed&&e.onComplete({}),t[Cr][t[Bt]++]=null,t[Tt]()):(E(new hr("HTTP/2: stream half-closed (remote)")),t[Cr][t[Bt]++]=null,t[ru]=t[Bt],t[Tt]())}),h.once("close",()=>{h.removeAllListeners("data"),n[gt]-=1,n[gt]===0&&n.unref()}),h.once("error",function(k){h.removeAllListeners("data"),E(k)}),h.once("frameError",(k,x)=>{h.removeAllListeners("data"),E(new hr(`HTTP/2: "frameError" received - type ${k}, code ${x}`))}),h.on("aborted",()=>{h.removeAllListeners("data")}),h.on("timeout",()=>{let k=new hr(`HTTP/2: "stream timeout after ${r}"`);h.removeAllListeners("data"),n[gt]-=1,n[gt]===0&&n.unref(),E(k)}),h.once("trailers",k=>{e.aborted||e.completed||(h.removeAllListeners("data"),e.onComplete(k))}),!0;function F(){!u||y===0?XC(E,h,null,t,e,t[se],y,Q):H.isBuffer(u)?XC(E,h,u,t,e,t[se],y,Q):H.isBlobLike(u)?typeof u.stream=="function"?eE(E,h,u.stream(),t,e,t[se],y,Q):qT(E,h,u,t,e,t[se],y,Q):H.isStream(u)?VT(E,t[se],Q,h,u,t,e,y):H.isIterable(u)?eE(E,h,u,t,e,t[se],y,Q):ft(!1)}}function XC(t,e,r,n,o,i,s,A){try{r!=null&&H.isBuffer(r)&&(ft(s===r.byteLength,"buffer body must have content length"),e.cork(),e.write(r),e.uncork(),e.end(),o.onBodySent(r)),A||(i[iA]=!0),o.onRequestSent(),n[Tt]()}catch(a){t(a)}}function VT(t,e,r,n,o,i,s,A){ft(A!==0||i[fi]===0,"stream body cannot be pipelined");let a=gT(o,n,d=>{d?(H.destroy(a,d),t(d)):(H.removeAllListeners(a),s.onRequestSent(),r||(e[iA]=!0),i[Tt]())});H.addListener(a,"data",c);function c(d){s.onBodySent(d)}}async function qT(t,e,r,n,o,i,s,A){ft(s===r.size,"blob body must have content length");try{if(s!=null&&s!==r.size)throw new eu;let a=Buffer.from(await r.arrayBuffer());e.cork(),e.write(a),e.uncork(),e.end(),o.onBodySent(a),o.onRequestSent(),A||(i[iA]=!0),n[Tt]()}catch(a){t(a)}}async function eE(t,e,r,n,o,i,s,A){ft(s!==0||n[fi]===0,"iterator body cannot be pipelined");let a=null;function c(){if(a){let l=a;a=null,l()}}let d=()=>new Promise((l,u)=>{ft(a===null),i[$e]?u(i[$e]):a=l});e.on("close",c).on("drain",c);try{for await(let l of r){if(i[$e])throw i[$e];let u=e.write(l);o.onBodySent(l),u||await d()}e.end(),o.onRequestSent(),A||(i[iA]=!0),n[Tt]()}catch(l){t(l)}finally{e.off("close",c).off("drain",c)}}tE.exports=DT});var Br=B((uz,dE)=>{"use strict";var tr=require("node:assert"),sE=require("node:net"),pi=require("node:http"),tn=O(),{ClientStats:WT}=$c(),{channels:zn}=lr(),JT=Qh(),KT=qr(),{InvalidArgumentError:ne,InformationalError:zT,ClientDestroyedError:jT}=_(),$T=Wr(),{kUrl:xt,kServerName:Qr,kClient:ZT,kBusy:su,kConnect:XT,kResuming:rn,kRunning:Ii,kPending:Qi,kSize:hi,kQueue:mt,kConnected:ex,kConnecting:jn,kNeedDrain:Ir,kKeepAliveDefaultTimeout:nE,kHostHeader:tx,kPendingIdx:yt,kRunningIdx:nr,kError:rx,kPipelining:sA,kKeepAliveTimeoutValue:nx,kMaxHeadersSize:ox,kKeepAliveMaxTimeout:ix,kKeepAliveTimeoutThreshold:sx,kHeadersTimeout:Ax,kBodyTimeout:ax,kStrictContentLength:cx,kConnector:Ci,kMaxRequests:Au,kCounter:dx,kClose:ux,kDestroy:lx,kDispatch:gx,kLocalAddress:Ei,kMaxResponseSize:fx,kOnError:px,kHTTPContext:ge,kMaxConcurrentStreams:hx,kHTTP2InitialWindowSize:Cx,kHTTP2ConnectionWindowSize:Ex,kResume:rr,kPingInterval:Ix}=j(),Qx=JC(),Bx=rE(),Er=Symbol("kClosedResolve"),mx=pi&&pi.maxHeaderSize&&Number.isInteger(pi.maxHeaderSize)&&pi.maxHeaderSize>0?()=>pi.maxHeaderSize:()=>{throw new ne("http module not available or http.maxHeaderSize invalid")},oE=()=>{};function AE(t){return t[sA]??t[ge]?.defaultPipelining??1}var au=class extends KT{constructor(e,{maxHeaderSize:r,headersTimeout:n,socketTimeout:o,requestTimeout:i,connectTimeout:s,bodyTimeout:A,idleTimeout:a,keepAlive:c,keepAliveTimeout:d,maxKeepAliveTimeout:l,keepAliveMaxTimeout:u,keepAliveTimeoutThreshold:p,socketPath:h,pipelining:I,tls:m,strictContentLength:E,maxCachedSessions:Q,connect:y,maxRequestsPerClient:v,localAddress:b,maxResponseSize:F,autoSelectFamily:k,autoSelectFamilyAttemptTimeout:x,maxConcurrentStreams:U,allowH2:q,useH2c:ie,initialWindowSize:oe,connectionWindowSize:Ne,pingInterval:Qe,webSocket:Kt}={}){if(c!==void 0)throw new ne("unsupported keepAlive, use pipelining=0 instead");if(o!==void 0)throw new ne("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(i!==void 0)throw new ne("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(a!==void 0)throw new ne("unsupported idleTimeout, use keepAliveTimeout instead");if(l!==void 0)throw new ne("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(r!=null){if(!Number.isInteger(r)||r<1)throw new ne("invalid maxHeaderSize")}else r=mx();if(h!=null&&typeof h!="string")throw new ne("invalid socketPath");if(s!=null&&(!Number.isFinite(s)||s<0))throw new ne("invalid connectTimeout");if(d!=null&&(!Number.isFinite(d)||d<=0))throw new ne("invalid keepAliveTimeout");if(u!=null&&(!Number.isFinite(u)||u<=0))throw new ne("invalid keepAliveMaxTimeout");if(p!=null&&!Number.isFinite(p))throw new ne("invalid keepAliveTimeoutThreshold");if(n!=null&&(!Number.isInteger(n)||n<0))throw new ne("headersTimeout must be a positive integer or zero");if(A!=null&&(!Number.isInteger(A)||A<0))throw new ne("bodyTimeout must be a positive integer or zero");if(y!=null&&typeof y!="function"&&typeof y!="object")throw new ne("connect must be a function or an object");if(v!=null&&(!Number.isInteger(v)||v<0))throw new ne("maxRequestsPerClient must be a positive number");if(b!=null&&(typeof b!="string"||sE.isIP(b)===0))throw new ne("localAddress must be valid string IP address");if(F!=null&&(!Number.isInteger(F)||F<-1))throw new ne("maxResponseSize must be a positive number");if(x!=null&&(!Number.isInteger(x)||x<-1))throw new ne("autoSelectFamilyAttemptTimeout must be a positive number");if(q!=null&&typeof q!="boolean")throw new ne("allowH2 must be a valid boolean value");if(U!=null&&(typeof U!="number"||U<1))throw new ne("maxConcurrentStreams must be a positive integer, greater than 0");if(ie!=null&&typeof ie!="boolean")throw new ne("useH2c must be a valid boolean value");if(oe!=null&&(!Number.isInteger(oe)||oe<1))throw new ne("initialWindowSize must be a positive integer, greater than 0");if(Ne!=null&&(!Number.isInteger(Ne)||Ne<1))throw new ne("connectionWindowSize must be a positive integer, greater than 0");if(Qe!=null&&(typeof Qe!="number"||!Number.isInteger(Qe)||Qe<0))throw new ne("pingInterval must be a positive integer, greater or equal to 0");if(super({webSocket:Kt}),typeof y!="function")y=$T({...m,maxCachedSessions:Q,allowH2:q,useH2c:ie,socketPath:h,timeout:s,...typeof k=="boolean"?{autoSelectFamily:k,autoSelectFamilyAttemptTimeout:x}:void 0,...y});else{let At=y;y=(_r,Or)=>At({..._r,...h!=null?{socketPath:h}:null,...q!=null?{allowH2:q}:null},Or)}this[xt]=tn.parseOrigin(e),this[Ci]=y,this[sA]=I??1,this[ox]=r,this[nE]=d??4e3,this[ix]=u??6e5,this[sx]=p??2e3,this[nx]=this[nE],this[Qr]=null,this[Ei]=b??null,this[rn]=0,this[Ir]=0,this[tx]=`host: ${this[xt].hostname}${this[xt].port?`:${this[xt].port}`:""}\r
40
+ `,this[ax]=A??3e5,this[Ax]=n??3e5,this[cx]=E??!0,this[Au]=v,this[Er]=null,this[fx]=F>-1?F:-1,this[ge]=null,this[hx]=U??100,this[Cx]=oe??262144,this[Ex]=Ne??524288,this[Ix]=Qe??6e4,this[mt]=[],this[nr]=0,this[yt]=0,this[rr]=At=>cu(this,At),this[px]=At=>aE(this,At)}get pipelining(){return this[sA]}set pipelining(e){this[sA]=e,this[rr](!0)}get stats(){return new WT(this)}get[Qi](){return this[mt].length-this[yt]}get[Ii](){return this[yt]-this[nr]}get[hi](){return this[mt].length-this[nr]}get[ex](){return!!this[ge]&&!this[jn]&&!this[ge].destroyed}get[su](){return!!(this[ge]?.busy(null)||this[hi]>=(AE(this)||1)||this[Qi]>0)}[XT](e){cE(this),this.once("connect",e)}[gx](e,r){let n=new JT(this[xt].origin,e,r);return this[mt].push(n),this[rn]||(tn.bodyLength(n.body)==null&&tn.isIterable(n.body)?(this[rn]=1,queueMicrotask(()=>cu(this))):this[rr](!0)),this[rn]&&this[Ir]!==2&&this[su]&&(this[Ir]=2),this[Ir]<2}[ux](){return new Promise(e=>{this[hi]?this[Er]=e:e(null)})}[lx](e){return new Promise(r=>{let n=this[mt].splice(this[yt]);for(let i=0;i<n.length;i++){let s=n[i];tn.errorRequest(this,s,e)}let o=()=>{this[Er]&&(this[Er](),this[Er]=null),r(null)};this[ge]?(this[ge].destroy(e,o),this[ge]=null):queueMicrotask(o),this[rr]()})}};function aE(t,e){if(t[Ii]===0&&e.code!=="UND_ERR_INFO"&&e.code!=="UND_ERR_SOCKET"){tr(t[yt]===t[nr]);let r=t[mt].splice(t[nr]);for(let n=0;n<r.length;n++){let o=r[n];tn.errorRequest(t,o,e)}tr(t[hi]===0)}}function cE(t){tr(!t[jn]),tr(!t[ge]);let{host:e,hostname:r,protocol:n,port:o}=t[xt];if(r[0]==="["){let i=r.indexOf("]");tr(i!==-1);let s=r.substring(1,i);tr(sE.isIPv6(s)),r=s}t[jn]=!0,zn.beforeConnect.hasSubscribers&&zn.beforeConnect.publish({connectParams:{host:e,hostname:r,protocol:n,port:o,version:t[ge]?.version,servername:t[Qr],localAddress:t[Ei]},connector:t[Ci]});try{t[Ci]({host:e,hostname:r,protocol:n,port:o,servername:t[Qr],localAddress:t[Ei]},(i,s)=>{if(i){iu(t,i,{host:e,hostname:r,protocol:n,port:o}),t[rr]();return}if(t.destroyed){tn.destroy(s.on("error",oE),new jT),t[rr]();return}tr(s);try{t[ge]=s.alpnProtocol==="h2"?Bx(t,s):Qx(t,s)}catch(A){s.destroy().on("error",oE),iu(t,A,{host:e,hostname:r,protocol:n,port:o}),t[rr]();return}t[jn]=!1,s[dx]=0,s[Au]=t[Au],s[ZT]=t,s[rx]=null,zn.connected.hasSubscribers&&zn.connected.publish({connectParams:{host:e,hostname:r,protocol:n,port:o,version:t[ge]?.version,servername:t[Qr],localAddress:t[Ei]},connector:t[Ci],socket:s}),t.emit("connect",t[xt],[t]),t[rr]()})}catch(i){iu(t,i,{host:e,hostname:r,protocol:n,port:o}),t[rr]()}}function iu(t,e,{host:r,hostname:n,protocol:o,port:i}){if(!t.destroyed){if(t[jn]=!1,zn.connectError.hasSubscribers&&zn.connectError.publish({connectParams:{host:r,hostname:n,protocol:o,port:i,version:t[ge]?.version,servername:t[Qr],localAddress:t[Ei]},connector:t[Ci],error:e}),e.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(tr(t[Ii]===0);t[Qi]>0&&t[mt][t[yt]].servername===t[Qr];){let s=t[mt][t[yt]++];tn.errorRequest(t,s,e)}else aE(t,e);t.emit("connectionError",t[xt],[t],e)}}function iE(t){t[Ir]=0,t.emit("drain",t[xt],[t])}function cu(t,e){t[rn]!==2&&(t[rn]=2,yx(t,e),t[rn]=0,t[nr]>256&&(t[mt].splice(0,t[nr]),t[yt]-=t[nr],t[nr]=0))}function yx(t,e){for(;;){if(t.destroyed){tr(t[Qi]===0);return}if(t[Er]&&!t[hi]){t[Er](),t[Er]=null;return}if(t[ge]&&t[ge].resume(),t[su])t[Ir]=2;else if(t[Ir]===2){e?(t[Ir]=1,queueMicrotask(()=>iE(t))):iE(t);continue}if(t[Qi]===0||t[Ii]>=(AE(t)||1))return;let r=t[mt][t[yt]];if(r===null)return;if(t[xt].protocol==="https:"&&t[Qr]!==r.servername){if(t[Ii]>0)return;t[Qr]=r.servername,t[ge]?.destroy(new zT("servername changed"),()=>{t[ge]=null,cu(t)})}if(t[jn])return;if(!t[ge]){cE(t);return}if(t[ge].destroyed||t[ge].busy(r))return;!r.aborted&&t[ge].write(r)?t[yt]++:t[mt].splice(t[yt],1)}}dE.exports=au});var du=B((gz,uE)=>{"use strict";var AA=class{bottom=0;top=0;list=new Array(2048).fill(void 0);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)}};uE.exports=class{constructor(){this.head=this.tail=new AA}isEmpty(){return this.head.isEmpty()}push(e){this.head.isFull()&&(this.head=this.head.next=new AA),this.head.push(e)}shift(){let e=this.tail,r=e.shift();return e.isEmpty()&&e.next!==null&&(this.tail=e.next,e.next=null),r}}});var aA=B((fz,QE)=>{"use strict";var{PoolStats:wx}=$c(),Rx=qr(),bx=du(),{kConnected:uu,kSize:lE,kRunning:gE,kPending:fE,kQueued:Bi,kBusy:Sx,kFree:Dx,kUrl:kx,kClose:Nx,kDestroy:Mx,kDispatch:Tx}=j(),me=Symbol("clients"),Te=Symbol("needDrain"),mi=Symbol("queue"),lu=Symbol("closed resolve"),gu=Symbol("onDrain"),pE=Symbol("onConnect"),hE=Symbol("onDisconnect"),CE=Symbol("onConnectionError"),fu=Symbol("get dispatcher"),EE=Symbol("add client"),IE=Symbol("remove client"),pu=class extends Rx{[mi]=new bx;[Bi]=0;[me]=[];[Te]=!1;[gu](e,r,n){let o=this[mi],i=!1;for(;!i;){let s=o.shift();if(!s)break;this[Bi]--,i=!e.dispatch(s.opts,s.handler)}if(e[Te]=i,!i&&this[Te]&&(this[Te]=!1,this.emit("drain",r,[this,...n])),this[lu]&&o.isEmpty()){let s=[];for(let A=0;A<this[me].length;A++){let a=this[me][A];a.destroyed||s.push(a.close())}return Promise.all(s).then(this[lu])}}[pE]=(e,r)=>{this.emit("connect",e,[this,...r])};[hE]=(e,r,n)=>{this.emit("disconnect",e,[this,...r],n)};[CE]=(e,r,n)=>{this.emit("connectionError",e,[this,...r],n)};get[Sx](){return this[Te]}get[uu](){let e=0;for(let{[uu]:r}of this[me])e+=r;return e}get[Dx](){let e=0;for(let{[uu]:r,[Te]:n}of this[me])e+=r&&!n;return e}get[fE](){let e=this[Bi];for(let{[fE]:r}of this[me])e+=r;return e}get[gE](){let e=0;for(let{[gE]:r}of this[me])e+=r;return e}get[lE](){let e=this[Bi];for(let{[lE]:r}of this[me])e+=r;return e}get stats(){return new wx(this)}[Nx](){if(this[mi].isEmpty()){let e=[];for(let r=0;r<this[me].length;r++){let n=this[me][r];n.destroyed||e.push(n.close())}return Promise.all(e)}else return new Promise(e=>{this[lu]=e})}[Mx](e){for(;;){let n=this[mi].shift();if(!n)break;n.handler.onError(e)}let r=new Array(this[me].length);for(let n=0;n<this[me].length;n++)r[n]=this[me][n].destroy(e);return Promise.all(r)}[Tx](e,r){let n=this[fu]();return n?n.dispatch(e,r)||(n[Te]=!0,this[Te]=!this[fu]()):(this[Te]=!0,this[mi].push({opts:e,handler:r}),this[Bi]++),!this[Te]}[EE](e){return e.on("drain",this[gu].bind(this,e)).on("connect",this[pE]).on("disconnect",this[hE]).on("connectionError",this[CE]),this[me].push(e),this[Te]&&queueMicrotask(()=>{this[Te]&&this[gu](e,e[kx],[e,this])}),this}[IE](e){e.close(()=>{let r=this[me].indexOf(e);r!==-1&&this[me].splice(r,1)}),this[Te]=this[me].some(r=>!r[Te]&&r.closed!==!0&&r.destroyed!==!0)}};QE.exports={PoolBase:pu,kClients:me,kNeedDrain:Te,kAddClient:EE,kRemoveClient:IE,kGetDispatcher:fu}});var nn=B((pz,wE)=>{"use strict";var{PoolBase:xx,kClients:cA,kNeedDrain:Ux,kAddClient:Fx,kGetDispatcher:Px,kRemoveClient:Lx}=aA(),vx=Br(),{InvalidArgumentError:hu}=_(),BE=O(),{kUrl:mE}=j(),_x=Wr(),dA=Symbol("options"),Cu=Symbol("connections"),yE=Symbol("factory");function Ox(t,e){return new vx(t,e)}var Eu=class extends xx{constructor(e,{connections:r,factory:n=Ox,connect:o,connectTimeout:i,tls:s,maxCachedSessions:A,socketPath:a,autoSelectFamily:c,autoSelectFamilyAttemptTimeout:d,allowH2:l,clientTtl:u,...p}={}){if(r!=null&&(!Number.isFinite(r)||r<0))throw new hu("invalid connections");if(typeof n!="function")throw new hu("factory must be a function.");if(o!=null&&typeof o!="function"&&typeof o!="object")throw new hu("connect must be a function or an object");typeof o!="function"&&(o=_x({...s,maxCachedSessions:A,allowH2:l,socketPath:a,timeout:i,...typeof c=="boolean"?{autoSelectFamily:c,autoSelectFamilyAttemptTimeout:d}:void 0,...o})),super(p),this[Cu]=r||null,this[mE]=BE.parseOrigin(e),this[dA]={...BE.deepClone(p),connect:o,allowH2:l,clientTtl:u,socketPath:a},this[dA].interceptors=p.interceptors?{...p.interceptors}:void 0,this[yE]=n,this.on("connect",(h,I)=>{if(u!=null&&u>0)for(let m of I)Object.assign(m,{ttl:Date.now()})}),this.on("connectionError",(h,I,m)=>{for(let E of I){let Q=this[cA].indexOf(E);Q!==-1&&this[cA].splice(Q,1)}})}[Px](){let e=this[dA].clientTtl;for(let r of this[cA])if(e!=null&&e>0&&r.ttl&&Date.now()-r.ttl>e)this[Lx](r);else if(!r[Ux])return r;if(!this[Cu]||this[cA].length<this[Cu]){let r=this[yE](this[mE],this[dA]);return this[Fx](r),r}}};wE.exports=Eu});var DE=B((hz,SE)=>{"use strict";var{BalancedPoolMissingUpstreamError:Gx,InvalidArgumentError:Hx}=_(),{PoolBase:Yx,kClients:we,kNeedDrain:yi,kAddClient:Vx,kRemoveClient:qx,kGetDispatcher:Wx}=aA(),Jx=nn(),{kUrl:uA}=j(),lA=O(),RE=Symbol("factory"),wi=Symbol("options"),bE=Symbol("kGreatestCommonDivisor"),on=Symbol("kCurrentWeight"),sn=Symbol("kIndex"),pt=Symbol("kWeight"),gA=Symbol("kMaxWeightPerServer"),fA=Symbol("kErrorPenalty");function Kx(t,e){if(t===0)return e;for(;e!==0;){let r=e;e=t%e,t=r}return t}function zx(t,e){return new Jx(t,e)}var Iu=class extends Yx{constructor(e=[],{factory:r=zx,...n}={}){if(typeof r!="function")throw new Hx("factory must be a function.");super(n),this[wi]={...lA.deepClone(n)},this[wi].interceptors=n.interceptors?{...n.interceptors}:void 0,this[sn]=-1,this[on]=0,this[gA]=this[wi].maxWeightPerServer||100,this[fA]=this[wi].errorPenalty||15,Array.isArray(e)||(e=[e]),this[RE]=r;for(let o of e)this.addUpstream(o);this._updateBalancedPoolStats()}addUpstream(e){let r=lA.parseOrigin(e).origin;if(this[we].find(o=>o[uA].origin===r&&o.closed!==!0&&o.destroyed!==!0))return this;let n=this[RE](r,this[wi]);this[Vx](n),n.on("connect",()=>{n[pt]=Math.min(this[gA],n[pt]+this[fA])}),n.on("connectionError",()=>{n[pt]=Math.max(1,n[pt]-this[fA]),this._updateBalancedPoolStats()}),n.on("disconnect",(...o)=>{let i=o[2];i&&i.code==="UND_ERR_SOCKET"&&(n[pt]=Math.max(1,n[pt]-this[fA]),this._updateBalancedPoolStats())});for(let o of this[we])o[pt]=this[gA];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let e=0;for(let r=0;r<this[we].length;r++)e=Kx(this[we][r][pt],e);this[bE]=e}removeUpstream(e){let r=lA.parseOrigin(e).origin,n=this[we].find(o=>o[uA].origin===r&&o.closed!==!0&&o.destroyed!==!0);return n&&this[qx](n),this}getUpstream(e){let r=lA.parseOrigin(e).origin;return this[we].find(n=>n[uA].origin===r&&n.closed!==!0&&n.destroyed!==!0)}get upstreams(){return this[we].filter(e=>e.closed!==!0&&e.destroyed!==!0).map(e=>e[uA].origin)}[Wx](){if(this[we].length===0)throw new Gx;if(!this[we].find(i=>!i[yi]&&i.closed!==!0&&i.destroyed!==!0)||this[we].map(i=>i[yi]).reduce((i,s)=>i&&s,!0))return;let n=0,o=this[we].findIndex(i=>!i[yi]);for(;n++<this[we].length;){this[sn]=(this[sn]+1)%this[we].length;let i=this[we][this[sn]];if(i[pt]>this[we][o][pt]&&!i[yi]&&(o=this[sn]),this[sn]===0&&(this[on]=this[on]-this[bE],this[on]<=0&&(this[on]=this[gA])),i[pt]>=this[on]&&!i[yi])return i}return this[on]=this[we][o][pt],this[sn]=o,this[we][o]}};SE.exports=Iu});var TE=B((Cz,ME)=>{"use strict";var{PoolBase:jx,kClients:pA,kNeedDrain:$x,kAddClient:kE,kGetDispatcher:Zx,kRemoveClient:Xx}=aA(),eU=Br(),{InvalidArgumentError:Qu}=_(),NE=O(),{kUrl:Bu}=j(),tU=Wr(),Ri=Symbol("options"),mu=Symbol("connections"),yu=Symbol("factory"),hA=Symbol("index");function rU(t,e){return new eU(t,e)}var wu=class extends jx{constructor(e,{connections:r,factory:n=rU,connect:o,connectTimeout:i,tls:s,maxCachedSessions:A,socketPath:a,autoSelectFamily:c,autoSelectFamilyAttemptTimeout:d,allowH2:l,clientTtl:u,...p}={}){if(r!=null&&(!Number.isFinite(r)||r<0))throw new Qu("invalid connections");if(typeof n!="function")throw new Qu("factory must be a function.");if(o!=null&&typeof o!="function"&&typeof o!="object")throw new Qu("connect must be a function or an object");typeof o!="function"&&(o=tU({...s,maxCachedSessions:A,allowH2:l,socketPath:a,timeout:i,...typeof c=="boolean"?{autoSelectFamily:c,autoSelectFamilyAttemptTimeout:d}:void 0,...o})),super(),this[mu]=r||null,this[Bu]=NE.parseOrigin(e),this[Ri]={...NE.deepClone(p),connect:o,allowH2:l,clientTtl:u,socketPath:a},this[Ri].interceptors=p.interceptors?{...p.interceptors}:void 0,this[yu]=n,this[hA]=-1,this.on("connect",(h,I)=>{if(u!=null&&u>0)for(let m of I)Object.assign(m,{ttl:Date.now()})}),this.on("connectionError",(h,I,m)=>{for(let E of I){let Q=this[pA].indexOf(E);Q!==-1&&this[pA].splice(Q,1)}})}[Zx](){let e=this[Ri].clientTtl,r=this[pA].length;if(r===0){let o=this[yu](this[Bu],this[Ri]);return this[kE](o),o}let n=0;for(;n<r;){this[hA]=(this[hA]+1)%r;let o=this[pA][this[hA]];if(e!=null&&e>0&&o.ttl&&Date.now()-o.ttl>e){this[Xx](o),n++;continue}if(!o[$x])return o;n++}if(!this[mu]||r<this[mu]){let o=this[yu](this[Bu],this[Ri]);return this[kE](o),o}}};ME.exports=wu});var An=B((Ez,_E)=>{"use strict";var{InvalidArgumentError:CA,MaxOriginsReachedError:nU}=_(),{kClients:ht,kRunning:xE,kClose:oU,kDestroy:iU,kDispatch:sU,kUrl:AU}=j(),aU=qr(),cU=nn(),dU=Br(),uU=O(),UE=Symbol("onConnect"),FE=Symbol("onDisconnect"),PE=Symbol("onConnectionError"),LE=Symbol("onDrain"),vE=Symbol("factory"),Ru=Symbol("options"),bi=Symbol("origins");function lU(t,e){return e&&e.connections===1?new dU(t,e):new cU(t,e)}var bu=class extends aU{constructor({factory:e=lU,maxOrigins:r=1/0,connect:n,...o}={}){if(typeof e!="function")throw new CA("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new CA("connect must be a function or an object");if(typeof r!="number"||Number.isNaN(r)||r<=0)throw new CA("maxOrigins must be a number greater than 0");super(o),n&&typeof n!="function"&&(n={...n}),this[Ru]={...uU.deepClone(o),maxOrigins:r,connect:n},this[vE]=e,this[ht]=new Map,this[bi]=new Set,this[LE]=(i,s)=>{this.emit("drain",i,[this,...s])},this[UE]=(i,s)=>{this.emit("connect",i,[this,...s])},this[FE]=(i,s,A)=>{this.emit("disconnect",i,[this,...s],A)},this[PE]=(i,s,A)=>{this.emit("connectionError",i,[this,...s],A)}}get[xE](){let e=0;for(let{dispatcher:r}of this[ht].values())e+=r[xE];return e}[sU](e,r){let n;if(e.origin&&(typeof e.origin=="string"||e.origin instanceof URL))n=String(e.origin);else throw new CA("opts.origin must be a non-empty string or URL.");if(this[bi].size>=this[Ru].maxOrigins&&!this[bi].has(n))throw new nU;let o=this[ht].get(n),i=o&&o.dispatcher;if(!i){let s=A=>{let a=this[ht].get(n);a&&(A&&(a.count-=1),a.count<=0&&(this[ht].delete(n),a.dispatcher.destroyed||a.dispatcher.close()),this[bi].delete(n))};i=this[vE](e.origin,this[Ru]).on("drain",this[LE]).on("connect",(A,a)=>{let c=this[ht].get(n);c&&(c.count+=1),this[UE](A,a)}).on("disconnect",(A,a,c)=>{s(!0),this[FE](A,a,c)}).on("connectionError",(A,a,c)=>{s(!1),this[PE](A,a,c)}),this[ht].set(n,{count:0,dispatcher:i}),this[bi].add(n)}return i.dispatch(e,r)}[oU](){let e=[];for(let{dispatcher:r}of this[ht].values())e.push(r.close());return this[ht].clear(),Promise.all(e)}[iU](e){let r=[];for(let{dispatcher:n}of this[ht].values())r.push(n.destroy(e));return this[ht].clear(),Promise.all(r)}get stats(){let e={};for(let{dispatcher:r}of this[ht].values())r.stats&&(e[r[AU].origin]=r.stats);return e}};_E.exports=bu});var HE=B((Iz,GE)=>{"use strict";var{Buffer:yr}=require("node:buffer"),Su=require("node:net"),{InvalidArgumentError:mr}=_();function gU(t){if(Su.isIPv4(t)){let r=t.split(".").map(Number);return{type:1,buffer:yr.from(r)}}if(Su.isIPv6(t))return{type:4,buffer:OE(t)};let e=yr.from(t,"utf8");if(e.length>255)throw new mr("Domain name too long (max 255 bytes)");return{type:3,buffer:yr.concat([yr.from([e.length]),e])}}function OE(t){let e=yr.alloc(16),r=t;if(t.includes(".")){let o=t.lastIndexOf(":"),i=t.slice(o+1);if(Su.isIPv4(i)){let s=i.split(".").map(Number),A=(s[0]<<8|s[1]).toString(16),a=(s[2]<<8|s[3]).toString(16);r=`${t.slice(0,o)}:${A}:${a}`}}let n=r.indexOf("::");if(n!==-1){let o=r.slice(0,n),i=r.slice(n+2),s=o===""?[]:o.split(":"),A=i===""?[]:i.split(":"),a=0;for(let c of s)e.writeUInt16BE(parseInt(c,16),a),a+=2;a=16-A.length*2;for(let c of A)e.writeUInt16BE(parseInt(c,16),a),a+=2}else{let o=r.split(":");for(let i=0;i<o.length;i++)e.writeUInt16BE(parseInt(o[i],16),i*2)}return e}function fU(t,e,r){let n=yr.allocUnsafe(2);return n.writeUInt16BE(r,0),yr.concat([yr.from([t]),e,n])}function pU(t,e=0){if(t.length<e+1)throw new mr("Buffer too small to contain address type");let r=t[e],n,o=e+1;switch(r){case 1:{if(t.length<o+6)throw new mr("Buffer too small for IPv4 address");n=Array.from(t.subarray(o,o+4)).join("."),o+=4;break}case 3:{if(t.length<o+1)throw new mr("Buffer too small for domain length");let s=t[o];if(o+=1,t.length<o+s+2)throw new mr("Buffer too small for domain address");n=t.subarray(o,o+s).toString("utf8"),o+=s;break}case 4:{if(t.length<o+18)throw new mr("Buffer too small for IPv6 address");let s=[];for(let A=0;A<8;A++){let a=t.readUInt16BE(o+A*2);s.push(a.toString(16))}n=s.join(":"),o+=16;break}default:throw new mr(`Invalid address type: ${r}`)}if(t.length<o+2)throw new mr("Buffer too small for port");let i=t.readUInt16BE(o);return o+=2,{address:n,port:i,bytesRead:o-e}}function hU(t){let r={1:"General SOCKS server failure",2:"Connection not allowed by ruleset",3:"Network unreachable",4:"Host unreachable",5:"Connection refused",6:"TTL expired",7:"Command not supported",8:"Address type not supported"}[t]||`Unknown SOCKS5 error code: ${t}`,n=new Error(r);return n.code=`SOCKS5_${t}`,n}GE.exports={parseAddress:gU,parseIPv6:OE,buildAddressBuffer:fU,parseResponseAddress:pU,createReplyError:hU}});var WE=B((Qz,qE)=>{"use strict";var{EventEmitter:CU}=require("node:events"),{Buffer:an}=require("node:buffer"),{InvalidArgumentError:$n,Socks5ProxyError:wr}=_(),{debuglog:EU}=require("node:util"),{parseAddress:IU}=HE(),or=EU("undici:socks5"),YE=an.alloc(0),EA=5,Zn={NO_AUTH:0,GSSAPI:1,USERNAME_PASSWORD:2,NO_ACCEPTABLE:255},VE={CONNECT:1,BIND:2,UDP_ASSOCIATE:3},cn={IPV4:1,DOMAIN:3,IPV6:4},Ut={SUCCEEDED:0,GENERAL_FAILURE:1,CONNECTION_NOT_ALLOWED:2,NETWORK_UNREACHABLE:3,HOST_UNREACHABLE:4,CONNECTION_REFUSED:5,TTL_EXPIRED:6,COMMAND_NOT_SUPPORTED:7,ADDRESS_TYPE_NOT_SUPPORTED:8},Re={INITIAL:"initial",HANDSHAKING:"handshaking",AUTHENTICATING:"authenticating",AUTHENTICATED:"authenticated",CONNECTING:"connecting",CONNECTED:"connected",ERROR:"error",CLOSED:"closed"},Du=class extends CU{constructor(e,r={}){if(super(),!e)throw new $n("socket is required");this.socket=e,this.options=r,this.state=Re.INITIAL,this.buffer=YE,this.onSocketData=this.onData.bind(this),this.onSocketError=this.onError.bind(this),this.onSocketClose=this.onClose.bind(this),this.authMethods=[],r.username&&r.password&&this.authMethods.push(Zn.USERNAME_PASSWORD),this.authMethods.push(Zn.NO_AUTH),this.socket.on("data",this.onSocketData),this.socket.on("error",this.onSocketError),this.socket.on("close",this.onSocketClose)}onData(e){or("received data",e.length,"bytes in state",this.state),this.buffer=an.concat([this.buffer,e]);try{switch(this.state){case Re.HANDSHAKING:this.handleHandshakeResponse();break;case Re.AUTHENTICATING:this.handleAuthResponse();break;case Re.CONNECTING:this.handleConnectResponse();break}}catch(r){this.onError(r)}}onError(e){or("socket error",e),this.state=Re.ERROR,this.emit("error",e),this.destroy()}onClose(){or("socket closed"),this.state=Re.CLOSED,this.emit("close")}destroy(){this.socket&&!this.socket.destroyed&&this.socket.destroy()}markAuthenticated(){this.state=Re.AUTHENTICATED,this.emit("authenticated")}handshake(){if(this.state!==Re.INITIAL)throw new $n("Handshake already started");or("starting handshake with",this.authMethods.length,"auth methods"),this.state=Re.HANDSHAKING;let e=an.alloc(2+this.authMethods.length);e[0]=EA,e[1]=this.authMethods.length,this.authMethods.forEach((r,n)=>{e[2+n]=r}),this.socket.write(e)}handleHandshakeResponse(){if(this.buffer.length<2)return;let e=this.buffer[0],r=this.buffer[1];if(e!==EA)throw new wr(`Invalid SOCKS version: ${e}`,"UND_ERR_SOCKS5_VERSION");if(r===Zn.NO_ACCEPTABLE)throw new wr("No acceptable authentication method","UND_ERR_SOCKS5_AUTH_REJECTED");if(this.buffer=this.buffer.subarray(2),or("server selected auth method",r),r===Zn.NO_AUTH)this.markAuthenticated();else if(r===Zn.USERNAME_PASSWORD)this.state=Re.AUTHENTICATING,this.sendAuthRequest();else throw new wr(`Unsupported authentication method: ${r}`,"UND_ERR_SOCKS5_AUTH_METHOD")}sendAuthRequest(){let{username:e,password:r}=this.options;if(!e||!r)throw new $n("Username and password required for authentication");or("sending username/password auth");let n=an.from(e),o=an.from(r);if(n.length>255||o.length>255)throw new $n("Username or password too long");let i=an.alloc(3+n.length+o.length);i[0]=1,i[1]=n.length,n.copy(i,2),i[2+n.length]=o.length,o.copy(i,3+n.length),this.socket.write(i)}handleAuthResponse(){if(this.buffer.length<2)return;let e=this.buffer[0],r=this.buffer[1];if(e!==1)throw new wr(`Invalid auth sub-negotiation version: ${e}`,"UND_ERR_SOCKS5_AUTH_VERSION");if(r!==0)throw new wr("Authentication failed","UND_ERR_SOCKS5_AUTH_FAILED");this.buffer=this.buffer.subarray(2),or("authentication successful"),this.markAuthenticated()}connect(e,r){if(this.state===Re.CONNECTING||this.state===Re.CONNECTED)throw new $n("Connection already in progress");if(this.state!==Re.AUTHENTICATED)throw new $n("Client must be authenticated before CONNECT");or("connecting to",e,r),this.state=Re.CONNECTING;let n=this.buildConnectRequest(VE.CONNECT,e,r);this.socket.write(n)}buildConnectRequest(e,r,n){let{type:o,buffer:i}=IU(r),s=an.alloc(4+i.length+2);return s[0]=EA,s[1]=e,s[2]=0,s[3]=o,i.copy(s,4),s.writeUInt16BE(n,4+i.length),s}handleConnectResponse(){if(this.buffer.length<4)return;let e=this.buffer[0],r=this.buffer[1],n=this.buffer[3];if(e!==EA)throw new wr(`Invalid SOCKS version in reply: ${e}`,"UND_ERR_SOCKS5_REPLY_VERSION");let o=4;if(n===cn.IPV4)o+=6;else if(n===cn.DOMAIN){if(this.buffer.length<5)return;o+=1+this.buffer[4]+2}else if(n===cn.IPV6)o+=18;else throw new wr(`Invalid address type in reply: ${n}`,"UND_ERR_SOCKS5_ADDR_TYPE");if(this.buffer.length<o)return;if(r!==Ut.SUCCEEDED){let a=this.getReplyErrorMessage(r);throw new wr(`SOCKS5 connection failed: ${a}`,`UND_ERR_SOCKS5_REPLY_${r}`)}let i,s=4;if(n===cn.IPV4)i=Array.from(this.buffer.subarray(s,s+4)).join("."),s+=4;else if(n===cn.DOMAIN){let a=this.buffer[s];s+=1,i=this.buffer.subarray(s,s+a).toString(),s+=a}else if(n===cn.IPV6){let a=[];for(let c=0;c<8;c++){let d=this.buffer.readUInt16BE(s+c*2);a.push(d.toString(16))}i=a.join(":"),s+=16}let A=this.buffer.readUInt16BE(s);this.buffer=YE,this.state=Re.CONNECTED,this.socket.removeListener("data",this.onSocketData),or("connected, bound address:",i,"port:",A),this.emit("connected",{address:i,port:A})}getReplyErrorMessage(e){switch(e){case Ut.GENERAL_FAILURE:return"General SOCKS server failure";case Ut.CONNECTION_NOT_ALLOWED:return"Connection not allowed by ruleset";case Ut.NETWORK_UNREACHABLE:return"Network unreachable";case Ut.HOST_UNREACHABLE:return"Host unreachable";case Ut.CONNECTION_REFUSED:return"Connection refused";case Ut.TTL_EXPIRED:return"TTL expired";case Ut.COMMAND_NOT_SUPPORTED:return"Command not supported";case Ut.ADDRESS_TYPE_NOT_SUPPORTED:return"Address type not supported";default:return`Unknown error code: ${e}`}}};qE.exports={Socks5Client:Du,AUTH_METHODS:Zn,COMMANDS:VE,ADDRESS_TYPES:cn,REPLY_CODES:Ut,STATES:Re}});var xu=B((Bz,eI)=>{"use strict";var{URL:JE}=require("node:url"),ku,QU=qr(),{InvalidArgumentError:KE}=_(),{Socks5Client:BU,STATES:mU}=WE(),{kDispatch:zE,kClose:yU,kDestroy:wU}=j(),RU=nn(),bU=Wr(),{debuglog:SU}=require("node:util"),Rr=SU("undici:socks5-proxy"),Nu=Symbol("proxy url"),DU=Symbol("proxy headers"),jE=Symbol("proxy auth"),$E=Symbol("proxy protocol"),dn=Symbol("pools"),ZE=Symbol("connector"),Mu=Symbol("request tls settings"),XE=!1,Tu=class extends QU{constructor(e,r={}){if(super(),XE||(process.emitWarning("SOCKS5 proxy support is experimental and subject to change","ExperimentalWarning"),XE=!0),!e)throw new KE("Proxy URL is mandatory");let n=typeof e=="string"?new JE(e):e;if(n.protocol!=="socks5:"&&n.protocol!=="socks:")throw new KE("Proxy URL must use socks5:// or socks:// protocol");this[Nu]=n,this[DU]=r.headers||{},this[$E]=r.proxyTls?"https:":"http:",this[Mu]=r.requestTls,this[jE]={username:r.username||(n.username?decodeURIComponent(n.username):null),password:r.password||(n.password?decodeURIComponent(n.password):null)},this[ZE]=r.connect||bU({...r.proxyTls,servername:r.proxyTls?.servername||n.hostname}),this[dn]=new Map}async createSocks5Connection(e,r){let n=this[Nu].hostname,o=parseInt(this[Nu].port)||1080;Rr("creating SOCKS5 connection to",n,o);let i=await new Promise((A,a)=>{this[ZE]({hostname:n,host:n,port:o,protocol:this[$E]},(c,d)=>{c?a(c):A(d)})}),s=new BU(i,this[jE]);return s.on("error",A=>{Rr("SOCKS5 error:",A),i.destroy()}),await s.handshake(),await new Promise((A,a)=>{let c=setTimeout(()=>{a(new Error("SOCKS5 authentication timeout"))},5e3),d=()=>{clearTimeout(c),s.removeListener("error",l),A()},l=u=>{clearTimeout(c),s.removeListener("authenticated",d),a(u)};s.state===mU.AUTHENTICATED?(clearTimeout(c),A()):(s.once("authenticated",d),s.once("error",l))}),await s.connect(e,r),await new Promise((A,a)=>{let c=setTimeout(()=>{a(new Error("SOCKS5 connection timeout"))},5e3),d=u=>{Rr("SOCKS5 tunnel established to",e,r,"via",u),clearTimeout(c),s.removeListener("error",l),A()},l=u=>{clearTimeout(c),s.removeListener("connected",d),a(u)};s.once("connected",d),s.once("error",l)}),i}[zE](e,r){let{origin:n}=e;Rr("dispatching request to",n,"via SOCKS5");try{let o=String(n),i=this[dn].get(o);return(!i||i.destroyed||i.closed)&&(i=new RU(n,{pipelining:e.pipelining,connections:e.connections,connect:async(s,A)=>{try{let a=new JE(n),c=a.hostname,d=parseInt(a.port)||(a.protocol==="https:"?443:80);Rr("establishing SOCKS5 connection to",c,d);let l=await this.createSocks5Connection(c,d),u=l;a.protocol==="https:"&&(ku||(ku=require("node:tls")),Rr("upgrading to TLS"),u=ku.connect({...this[Mu],socket:l,servername:this[Mu]?.servername||c}),await new Promise((p,h)=>{u.once("secureConnect",p),u.once("error",h)})),A(null,u)}catch(a){Rr("SOCKS5 connection error:",a),A(a)}}}),this[dn].set(o,i)),i[zE](e,r)}catch(o){if(Rr("dispatch error:",o),typeof r.onResponseError=="function")return r.onResponseError(null,o),!1;if(typeof r.onError=="function")return r.onError(o),!1;throw o}}async[yU](){let e=[];for(let r of this[dn].values())e.push(r.close());this[dn].clear(),await Promise.all(e)}async[wU](e){let r=[];for(let n of this[dn].values())r.push(n.destroy(e));this[dn].clear(),await Promise.all(r)}};eI.exports=Tu});var Lu=B((mz,lI)=>{"use strict";var{kProxy:Xn,kClose:AI,kDestroy:aI,kDispatch:tI}=j(),kU=An(),cI=nn(),dI=qr(),{InvalidArgumentError:un,RequestAbortedError:NU,SecureProxyConnectionError:MU}=_(),rI=Wr(),uI=Br(),{channels:nI}=lr(),TU=xu(),IA=Symbol("proxy agent"),br=Symbol("proxy client"),ir=Symbol("proxy headers"),Uu=Symbol("request tls settings"),oI=Symbol("proxy tls settings"),iI=Symbol("connect endpoint function"),sI=Symbol("tunnel proxy");function xU(t){return t==="https:"?443:80}function UU(t,e){return new cI(t,e)}var FU=()=>{};function PU(t,e){return e.connections===1?new uI(t,e):new cI(t,e)}var Fu=class extends dI{#e;constructor(e,{headers:r={},connect:n,factory:o}){if(!e)throw new un("Proxy URL is mandatory");super(),this[ir]=r,o?this.#e=o(e,{connect:n}):this.#e=new uI(e,{connect:n})}[tI](e,r){let n=r.onHeaders;r.onHeaders=function(A,a,c){if(A===407){typeof r.onError=="function"&&r.onError(new un("Proxy Authentication Required (407)"));return}n&&n.call(this,A,a,c)};let{origin:o,path:i="/",headers:s={}}=e;if(e.path=o+i,!("host"in s)&&!("Host"in s)){let{host:A}=new URL(o);s.host=A}return e.headers={...this[ir],...s},this.#e[tI](e,r)}[AI](){return this.#e.close()}[aI](e){return this.#e.destroy(e)}},Pu=class extends dI{constructor(e){if(!e||typeof e=="object"&&!(e instanceof URL)&&!e.uri)throw new un("Proxy uri is mandatory");let{clientFactory:r=UU}=e;if(typeof r!="function")throw new un("Proxy opts.clientFactory must be a function.");let{proxyTunnel:n=!0}=e;super();let o=this.#e(e),{href:i,origin:s,port:A,protocol:a,username:c,password:d,hostname:l}=o;if(this[Xn]={uri:i,protocol:a},this[Uu]=e.requestTls,this[oI]=e.proxyTls,this[ir]=e.headers||{},this[sI]=n,e.auth&&e.token)throw new un("opts.auth cannot be used in combination with opts.token");e.auth?this[ir]["proxy-authorization"]=`Basic ${e.auth}`:e.token?this[ir]["proxy-authorization"]=e.token:c&&d&&(this[ir]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(c)}:${decodeURIComponent(d)}`).toString("base64")}`);let u=rI({...e.proxyTls});this[iI]=rI({...e.requestTls});let p=e.factory||PU,h=(I,m)=>{let{protocol:E}=new URL(I);return this[Xn].protocol==="socks5:"||this[Xn].protocol==="socks:"?new TU(this[Xn].uri,{headers:this[ir],connect:u,factory:p,username:e.username||c,password:e.password||d,proxyTls:e.proxyTls,requestTls:e.requestTls}):!this[sI]&&E==="http:"&&this[Xn].protocol==="http:"?new Fu(this[Xn].uri,{headers:this[ir],connect:u,factory:p}):p(I,m)};a==="socks5:"||a==="socks:"?this[br]=null:this[br]=r(o,{connect:u}),this[IA]=new kU({...e,factory:h,connect:async(I,m)=>{if(!this[br]){m(new un("Cannot establish tunnel connection without a proxy client"));return}let E=I.host;I.port||(E+=`:${xU(I.protocol)}`);try{let Q={origin:s,port:A,path:E,signal:I.signal,headers:{...this[ir],host:I.host,...I.connections==null||I.connections>0?{"proxy-connection":"keep-alive"}:{}},servername:this[oI]?.servername||l},{socket:y,statusCode:v}=await this[br].connect(Q);if(v!==200){y.on("error",FU).destroy(),m(new NU(`Proxy response (${v}) !== 200 when HTTP Tunneling`));return}if(nI.proxyConnected.hasSubscribers&&nI.proxyConnected.publish({socket:y,connectParams:Q}),I.protocol!=="https:"){m(null,y);return}let b;this[Uu]?b=this[Uu].servername:b=I.servername,this[iI]({...I,servername:b,httpSocket:y},m)}catch(Q){Q.code==="ERR_TLS_CERT_ALTNAME_INVALID"?m(new MU(Q)):m(Q)}}})}dispatch(e,r){let n=LU(e.headers);if(vU(n),n&&!("host"in n)&&!("Host"in n)){let{host:o}=new URL(e.origin);n.host=o}return this[IA].dispatch({...e,headers:n},r)}#e(e){return typeof e=="string"?new URL(e):e instanceof URL?e:new URL(e.uri)}[AI](){let e=[this[IA].close()];return this[br]&&e.push(this[br].close()),Promise.all(e)}[aI](){let e=[this[IA].destroy()];return this[br]&&e.push(this[br].destroy()),Promise.all(e)}};function LU(t){if(Array.isArray(t)){let e={};for(let r=0;r<t.length;r+=2)e[t[r]]=t[r+1];return e}return t}function vU(t){if(t&&Object.keys(t).find(r=>r.toLowerCase()==="proxy-authorization"))throw new un("Proxy-Authorization should be sent in ProxyAgent constructor")}lI.exports=Pu});var CI=B((yz,hI)=>{"use strict";var _U=qr(),{kClose:OU,kDestroy:GU,kClosed:gI,kDestroyed:fI,kDispatch:HU,kNoProxyAgent:Si,kHttpProxyAgent:Sr,kHttpsProxyAgent:ln}=j(),pI=Lu(),YU=An(),VU={"http:":80,"https:":443},vu=class extends _U{#e=null;#t=null;#r=null;constructor(e={}){super(),this.#r=e;let{httpProxy:r,httpsProxy:n,noProxy:o,...i}=e;this[Si]=new YU(i);let s=r??process.env.http_proxy??process.env.HTTP_PROXY;s?this[Sr]=new pI({...i,uri:s}):this[Sr]=this[Si];let A=n??process.env.https_proxy??process.env.HTTPS_PROXY;A?this[ln]=new pI({...i,uri:A}):this[ln]=this[Sr],this.#o()}[HU](e,r){let n=new URL(e.origin);return this.#n(n).dispatch(e,r)}[OU](){return Promise.all([this[Si].close(),!this[Sr][gI]&&this[Sr].close(),!this[ln][gI]&&this[ln].close()])}[GU](e){return Promise.all([this[Si].destroy(e),!this[Sr][fI]&&this[Sr].destroy(e),!this[ln][fI]&&this[ln].destroy(e)])}#n(e){let{protocol:r,host:n,port:o}=e;return n=n.replace(/:\d*$/,"").toLowerCase(),o=Number.parseInt(o,10)||VU[r]||0,this.#i(n,o)?r==="https:"?this[ln]:this[Sr]:this[Si]}#i(e,r){if(this.#a&&this.#o(),this.#t.length===0)return!0;if(this.#e==="*")return!1;for(let n=0;n<this.#t.length;n++){let o=this.#t[n];if(!(o.port&&o.port!==r)&&(e===o.hostname||e.slice(-(o.hostname.length+1))===`.${o.hostname}`))return!1}return!0}#o(){let e=this.#r.noProxy??this.#s,r=e.split(/[,\s]/),n=[];for(let o=0;o<r.length;o++){let i=r[o];if(!i)continue;let s=i.match(/^(.+):(\d+)$/);n.push({hostname:(s?s[1]:i).replace(/^\*?\./,"").toLowerCase(),port:s?Number.parseInt(s[2],10):0})}this.#e=e,this.#t=n}get#a(){return this.#r.noProxy!==void 0?!1:this.#e!==this.#s}get#s(){return process.env.no_proxy??process.env.NO_PROXY??""}};hI.exports=vu});var QA=B((wz,mI)=>{"use strict";var eo=require("node:assert"),{kRetryHandlerDefaultRetry:EI}=j(),{RequestRetryError:to}=_(),qU=Zo(),{isDisturbed:II,parseRangeHeader:QI,wrapRequestBody:WU}=O();function JU(t){let e=new Date(t).getTime();return isNaN(e)?0:e-Date.now()}function BI(t,e,r,n){let o=t["content-length"];if(o==null||!Number.isFinite(e.start)||!Number.isFinite(e.end))return;let i=Number(o),s=e.end-e.start+1;if(!Number.isFinite(i)||i!==s)throw new to("Content-Length mismatch",r,{headers:t,data:{count:n}})}var _u=class t{constructor(e,{dispatch:r,handler:n}){let{retryOptions:o,...i}=e,{retry:s,maxRetries:A,maxTimeout:a,minTimeout:c,timeoutFactor:d,methods:l,errorCodes:u,retryAfter:p,statusCodes:h,throwOnError:I}=o??{};this.error=null,this.dispatch=r,this.handler=qU.wrap(n),this.opts={...i,body:WU(e.body)},this.retryOpts={throwOnError:I??!0,retry:s??t[EI],retryAfter:p??!0,maxTimeout:a??30*1e3,minTimeout:c??500,timeoutFactor:d??2,maxRetries:A??5,methods:l??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:h??[500,502,503,504,429],errorCodes:u??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.headersSent=!1,this.start=0,this.end=null,this.etag=null}onResponseStartWithRetry(e,r,n,o,i){if(this.retryOpts.throwOnError){this.retryOpts.statusCodes.includes(r)===!1?(this.headersSent=!0,this.handler.onResponseStart?.(e,r,n,o)):this.error=i;return}if(II(this.opts.body)){this.headersSent=!0,this.handler.onResponseStart?.(e,r,n,o);return}function s(A){if(A){this.headersSent=!0,this.handler.onResponseStart?.(e,r,n,o),e.resume();return}this.error=i,e.resume()}e.pause(),this.retryOpts.retry(i,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},s.bind(this))}onRequestStart(e,r){this.headersSent||this.handler.onRequestStart?.(e,r)}onRequestUpgrade(e,r,n,o){this.handler.onRequestUpgrade?.(e,r,n,o)}static[EI](e,{state:r,opts:n},o){let{statusCode:i,code:s,headers:A}=e,{method:a,retryOptions:c}=n,{maxRetries:d,minTimeout:l,maxTimeout:u,timeoutFactor:p,statusCodes:h,errorCodes:I,methods:m}=c,{counter:E}=r;if(s&&s!=="UND_ERR_REQ_RETRY"&&!I.includes(s)){o(e);return}if(Array.isArray(m)&&!m.includes(a)){o(e);return}if(i!=null&&Array.isArray(h)&&!h.includes(i)){o(e);return}if(E>d){o(e);return}let Q=A?.["retry-after"];Q&&(Q=Number(Q),Q=Number.isNaN(Q)?JU(A["retry-after"]):Q*1e3);let y=Q>0?Math.min(Q,u):Math.min(l*p**(E-1),u);setTimeout(()=>o(null),y)}onResponseStart(e,r,n,o){if(this.error=null,this.retryCount+=1,r>=300){let i=new to("Request failed",r,{headers:n,data:{count:this.retryCount}});this.onResponseStartWithRetry(e,r,n,o,i);return}if(this.headersSent){if(r!==206&&(this.start>0||r!==200))throw new to("server does not support the range header and the payload was partially consumed",r,{headers:n,data:{count:this.retryCount}});let i=QI(n["content-range"]);if(!i)throw new to("Content-Range mismatch",r,{headers:n,data:{count:this.retryCount}});if(this.etag!=null&&this.etag!==n.etag)throw new to("ETag mismatch",r,{headers:n,data:{count:this.retryCount}});BI(n,i,r,this.retryCount);let{start:s,size:A,end:a=A?A-1:null}=i;eo(this.start===s,"content-range mismatch"),eo(this.end==null||this.end===a,"content-range mismatch");return}if(this.end==null){if(r===206){let i=QI(n["content-range"]);if(i==null){this.headersSent=!0,this.handler.onResponseStart?.(e,r,n,o);return}BI(n,i,r,this.retryCount);let{start:s,size:A,end:a=A?A-1:null}=i;eo(s!=null&&Number.isFinite(s),"content-range mismatch"),eo(a!=null&&Number.isFinite(a),"invalid content-length"),this.start=s,this.end=a}if(this.end==null){let i=n["content-length"];this.end=i!=null?Number(i)-1:null}eo(Number.isFinite(this.start)),eo(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=!0,this.etag=n.etag!=null?n.etag:null,this.etag!=null&&this.etag[0]==="W"&&this.etag[1]==="/"&&(this.etag=null),this.headersSent=!0,this.handler.onResponseStart?.(e,r,n,o)}else throw new to("Request failed",r,{headers:n,data:{count:this.retryCount}})}onResponseData(e,r){this.error||(this.start+=r.length,this.handler.onResponseData?.(e,r))}onResponseEnd(e,r){if(this.error&&this.retryOpts.throwOnError)throw this.error;if(!this.error)return this.retryCount=0,this.handler.onResponseEnd?.(e,r);this.retry(e)}retry(e){if(this.start!==0){let r={range:`bytes=${this.start}-${this.end??""}`};this.etag!=null&&(r["if-match"]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...r}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(r){this.handler.onResponseError?.(e,r)}}onResponseError(e,r){if(e?.aborted||II(this.opts.body)){this.handler.onResponseError?.(e,r);return}function n(o){if(!o){this.retry(e);return}this.handler?.onResponseError?.(e,o)}this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryOpts.retry(r,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},n.bind(this))}};mI.exports=_u});var wI=B((Rz,yI)=>{"use strict";var KU=Xo(),zU=QA(),Ou=class extends KU{#e=null;#t=null;constructor(e,r={}){super(r),this.#e=e,this.#t=r}dispatch(e,r){let n=new zU({...e,retryOptions:this.#t},{dispatch:this.#e.dispatch.bind(this.#e),handler:r});return this.#e.dispatch(e,n)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}};yI.exports=Ou});var SI=B((bz,bI)=>{"use strict";var{InvalidArgumentError:RI}=_(),jU=Br(),Gu=class extends jU{constructor(e,r){if(typeof e=="string"&&(e=new URL(e)),e.protocol!=="http:")throw new RI("h2c-client: Only h2c protocol is supported");let{maxConcurrentStreams:n,pipelining:o,...i}=r??{},s=100,A=100;if(n!=null&&Number.isInteger(n)&&n>0&&(s=n),o!=null&&Number.isInteger(o)&&o>0&&(A=o),A>s)throw new RI("h2c-client: pipelining cannot be greater than maxConcurrentStreams");super(e,{...i,maxConcurrentStreams:s,pipelining:A,allowH2:!0,useH2c:!0})}};bI.exports=Gu});var PI=B((Sz,FI)=>{"use strict";var MI=require("node:assert"),{Readable:$U}=require("node:stream"),{RequestAbortedError:TI,NotSupportedError:ZU,InvalidArgumentError:XU,AbortError:BA}=_(),xI=O(),{ReadableStreamFrom:eF}=O(),Ze=Symbol("kConsume"),mA=Symbol("kReading"),gn=Symbol("kBody"),DI=Symbol("kAbort"),UI=Symbol("kContentType"),Hu=Symbol("kContentLength"),Yu=Symbol("kUsed"),yA=Symbol("kBytesRead"),tF=()=>{},Vu=class extends $U{constructor({resume:e,abort:r,contentType:n="",contentLength:o,highWaterMark:i=64*1024}){super({autoDestroy:!0,read:e,highWaterMark:i}),this._readableState.dataEmitted=!1,this[DI]=r,this[Ze]=null,this[yA]=0,this[gn]=null,this[Yu]=!1,this[UI]=n,this[Hu]=Number.isFinite(o)?o:null,this[mA]=!1}_destroy(e,r){!e&&!this._readableState.endEmitted&&(e=new TI),e&&this[DI](),this[Yu]?r(e):setImmediate(r,e)}on(e,r){return(e==="data"||e==="readable")&&(this[mA]=!0,this[Yu]=!0),super.on(e,r)}addListener(e,r){return this.on(e,r)}off(e,r){let n=super.off(e,r);return(e==="data"||e==="readable")&&(this[mA]=this.listenerCount("data")>0||this.listenerCount("readable")>0),n}removeListener(e,r){return this.off(e,r)}push(e){return e&&(this[yA]+=e.length,this[Ze])?(Wu(this[Ze],e),this[mA]?super.push(e):!0):super.push(e)}text(){return Di(this,"text")}json(){return Di(this,"json")}blob(){return Di(this,"blob")}bytes(){return Di(this,"bytes")}arrayBuffer(){return Di(this,"arrayBuffer")}async formData(){throw new ZU}get bodyUsed(){return xI.isDisturbed(this)}get body(){return this[gn]||(this[gn]=eF(this),this[Ze]&&(this[gn].getReader(),MI(this[gn].locked))),this[gn]}dump(e){let r=e?.signal;if(r!=null&&(typeof r!="object"||!("aborted"in r)))return Promise.reject(new XU("signal must be an AbortSignal"));let n=e?.limit&&Number.isFinite(e.limit)?e.limit:128*1024;return r?.aborted?Promise.reject(r.reason??new BA):this._readableState.closeEmitted?Promise.resolve(null):new Promise((o,i)=>{if((this[Hu]&&this[Hu]>n||this[yA]>n)&&this.destroy(new BA),r){let s=()=>{this.destroy(r.reason??new BA)};r.addEventListener("abort",s),this.on("close",function(){r.removeEventListener("abort",s),r.aborted?i(r.reason??new BA):o(null)})}else this.on("close",o);this.on("error",tF).on("data",()=>{this[yA]>n&&this.destroy()}).resume()})}setEncoding(e){return Buffer.isEncoding(e)&&(this._readableState.encoding=e),this}};function rF(t){return t[gn]?.locked===!0||t[Ze]!==null}function nF(t){return xI.isDisturbed(t)||rF(t)}function Di(t,e){return MI(!t[Ze]),new Promise((r,n)=>{if(nF(t)){let o=t._readableState;o.destroyed&&o.closeEmitted===!1?t.on("error",n).on("close",()=>{n(new TypeError("unusable"))}):n(o.errored??new TypeError("unusable"))}else queueMicrotask(()=>{t[Ze]={type:e,stream:t,resolve:r,reject:n,length:0,body:[]},t.on("error",function(o){Ju(this[Ze],o)}).on("close",function(){this[Ze].body!==null&&Ju(this[Ze],new TI)}),oF(t[Ze])})})}function oF(t){if(t.body===null)return;let{_readableState:e}=t.stream;if(e.bufferIndex){let r=e.bufferIndex,n=e.buffer.length;for(let o=r;o<n;o++)Wu(t,e.buffer[o])}else for(let r of e.buffer)Wu(t,r);for(e.endEmitted?NI(this[Ze],this._readableState.encoding):t.stream.on("end",function(){NI(this[Ze],this._readableState.encoding)}),t.stream.resume();t.stream.read()!=null;);}function qu(t,e,r){if(t.length===0||e===0)return"";let n=t.length===1?t[0]:Buffer.concat(t,e),o=n.length,i=o>2&&n[0]===239&&n[1]===187&&n[2]===191?3:0;return!r||r==="utf8"||r==="utf-8"?n.utf8Slice(i,o):n.subarray(i,o).toString(r)}function kI(t,e){if(t.length===0||e===0)return new Uint8Array(0);if(t.length===1)return new Uint8Array(t[0]);let r=new Uint8Array(Buffer.allocUnsafeSlow(e).buffer),n=0;for(let o=0;o<t.length;++o){let i=t[o];r.set(i,n),n+=i.length}return r}function NI(t,e){let{type:r,body:n,resolve:o,stream:i,length:s}=t;try{r==="text"?o(qu(n,s,e)):r==="json"?o(JSON.parse(qu(n,s,e))):r==="arrayBuffer"?o(kI(n,s).buffer):r==="blob"?o(new Blob(n,{type:i[UI]})):r==="bytes"&&o(kI(n,s)),Ju(t)}catch(A){i.destroy(A)}}function Wu(t,e){t.length+=e.length,t.body.push(e)}function Ju(t,e){t.body!==null&&(e?t.reject(e):t.resolve(),t.type=null,t.stream=null,t.resolve=null,t.reject=null,t.length=0,t.body=null)}FI.exports={Readable:Vu,chunksDecode:qu}});var _I=B((Dz,Ku)=>{"use strict";var iF=require("node:assert"),{AsyncResource:sF}=require("node:async_hooks"),{Readable:AF}=PI(),{InvalidArgumentError:ro,RequestAbortedError:LI}=_(),Ct=O();function ki(){}var wA=class extends sF{constructor(e,r){if(!e||typeof e!="object")throw new ro("invalid opts");let{signal:n,method:o,opaque:i,body:s,onInfo:A,responseHeaders:a,highWaterMark:c}=e;try{if(typeof r!="function")throw new ro("invalid callback");if(c!=null&&(!Number.isFinite(c)||c<0))throw new ro("invalid highWaterMark");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new ro("signal must be an EventEmitter or EventTarget");if(o==="CONNECT")throw new ro("invalid method");if(A&&typeof A!="function")throw new ro("invalid onInfo callback");super("UNDICI_REQUEST")}catch(d){throw Ct.isStream(s)&&Ct.destroy(s.on("error",ki),d),d}this.method=o,this.responseHeaders=a||null,this.opaque=i||null,this.callback=r,this.res=null,this.abort=null,this.body=s,this.trailers={},this.context=null,this.onInfo=A||null,this.highWaterMark=c,this.reason=null,this.removeAbortListener=null,n?.aborted?this.reason=n.reason??new LI:n&&(this.removeAbortListener=Ct.addAbortListener(n,()=>{this.reason=n.reason??new LI,this.res?Ct.destroy(this.res.on("error",ki),this.reason):this.abort&&this.abort(this.reason)}))}onConnect(e,r){if(this.reason){e(this.reason);return}iF(this.callback),this.abort=e,this.context=r}onHeaders(e,r,n,o){let{callback:i,opaque:s,abort:A,context:a,responseHeaders:c,highWaterMark:d}=this,l=c==="raw"?Ct.parseRawHeaders(r):Ct.parseHeaders(r);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:l});return}let u=c==="raw"?Ct.parseHeaders(r):l,p=u["content-type"],h=u["content-length"],I=new AF({resume:n,abort:A,contentType:p,contentLength:this.method!=="HEAD"&&h?Number(h):null,highWaterMark:d});if(this.removeAbortListener&&(I.on("close",this.removeAbortListener),this.removeAbortListener=null),this.callback=null,this.res=I,i!==null)try{this.runInAsyncScope(i,null,null,{statusCode:e,statusText:o,headers:l,trailers:this.trailers,opaque:s,body:I,context:a})}catch(m){this.res=null,Ct.destroy(I.on("error",ki),m),queueMicrotask(()=>{throw m})}}onData(e){return this.res.push(e)}onComplete(e){Ct.parseHeaders(e,this.trailers),this.res.push(null)}onError(e){let{res:r,callback:n,body:o,opaque:i}=this;n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,e,{opaque:i})})),r&&(this.res=null,queueMicrotask(()=>{Ct.destroy(r.on("error",ki),e)})),o&&(this.body=null,Ct.isStream(o)&&(o.on("error",ki),Ct.destroy(o,e))),this.removeAbortListener&&(this.removeAbortListener(),this.removeAbortListener=null)}};function vI(t,e){if(e===void 0)return new Promise((r,n)=>{vI.call(this,t,(o,i)=>o?n(o):r(i))});try{let r=new wA(t,e);this.dispatch(t,r)}catch(r){if(typeof e!="function")throw r;let n=t?.opaque;queueMicrotask(()=>e(r,{opaque:n}))}}Ku.exports=vI;Ku.exports.RequestHandler=wA});var Ni=B((kz,HI)=>{"use strict";var{addAbortListener:aF}=O(),{RequestAbortedError:cF}=_(),no=Symbol("kListener"),Ft=Symbol("kSignal");function OI(t){t.abort?t.abort(t[Ft]?.reason):t.reason=t[Ft]?.reason??new cF,GI(t)}function dF(t,e){if(t.reason=null,t[Ft]=null,t[no]=null,!!e){if(e.aborted){OI(t);return}t[Ft]=e,t[no]=()=>{OI(t)},aF(t[Ft],t[no])}}function GI(t){t[Ft]&&("removeEventListener"in t[Ft]?t[Ft].removeEventListener("abort",t[no]):t[Ft].removeListener("abort",t[no]),t[Ft]=null,t[no]=null)}HI.exports={addSignal:dF,removeSignal:GI}});var WI=B((Nz,qI)=>{"use strict";var uF=require("node:assert"),{finished:lF}=require("node:stream"),{AsyncResource:gF}=require("node:async_hooks"),{InvalidArgumentError:oo,InvalidReturnValueError:fF}=_(),sr=O(),{addSignal:pF,removeSignal:YI}=Ni();function hF(){}var zu=class extends gF{constructor(e,r,n){if(!e||typeof e!="object")throw new oo("invalid opts");let{signal:o,method:i,opaque:s,body:A,onInfo:a,responseHeaders:c}=e;try{if(typeof n!="function")throw new oo("invalid callback");if(typeof r!="function")throw new oo("invalid factory");if(o&&typeof o.on!="function"&&typeof o.addEventListener!="function")throw new oo("signal must be an EventEmitter or EventTarget");if(i==="CONNECT")throw new oo("invalid method");if(a&&typeof a!="function")throw new oo("invalid onInfo callback");super("UNDICI_STREAM")}catch(d){throw sr.isStream(A)&&sr.destroy(A.on("error",hF),d),d}this.responseHeaders=c||null,this.opaque=s||null,this.factory=r,this.callback=n,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=A,this.onInfo=a||null,sr.isStream(A)&&A.on("error",d=>{this.onError(d)}),pF(this,o)}onConnect(e,r){if(this.reason){e(this.reason);return}uF(this.callback),this.abort=e,this.context=r}onHeaders(e,r,n,o){let{factory:i,opaque:s,context:A,responseHeaders:a}=this,c=a==="raw"?sr.parseRawHeaders(r):sr.parseHeaders(r);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:c});return}if(this.factory=null,i===null)return;let d=this.runInAsyncScope(i,null,{statusCode:e,headers:c,opaque:s,context:A});if(!d||typeof d.write!="function"||typeof d.end!="function"||typeof d.on!="function")throw new fF("expected Writable");return lF(d,{readable:!1},u=>{let{callback:p,res:h,opaque:I,trailers:m,abort:E}=this;this.res=null,(u||!h?.readable)&&sr.destroy(h,u),this.callback=null,this.runInAsyncScope(p,null,u||null,{opaque:I,trailers:m}),u&&E()}),d.on("drain",n),this.res=d,(d.writableNeedDrain!==void 0?d.writableNeedDrain:d._writableState?.needDrain)!==!0}onData(e){let{res:r}=this;return r?r.write(e):!0}onComplete(e){let{res:r}=this;YI(this),r&&(this.trailers=sr.parseHeaders(e),r.end())}onError(e){let{res:r,callback:n,opaque:o,body:i}=this;YI(this),this.factory=null,r?(this.res=null,sr.destroy(r,e)):n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,e,{opaque:o})})),i&&(this.body=null,sr.destroy(i,e))}};function VI(t,e,r){if(r===void 0)return new Promise((n,o)=>{VI.call(this,t,e,(i,s)=>i?o(i):n(s))});try{let n=new zu(t,e,r);this.dispatch(t,n)}catch(n){if(typeof r!="function")throw n;let o=t?.opaque;queueMicrotask(()=>r(n,{opaque:o}))}}qI.exports=VI});var jI=B((Mz,zI)=>{"use strict";var{Readable:KI,Duplex:CF,PassThrough:EF}=require("node:stream"),IF=require("node:assert"),{AsyncResource:QF}=require("node:async_hooks"),{InvalidArgumentError:Mi,InvalidReturnValueError:BF,RequestAbortedError:ju}=_(),Pt=O(),{addSignal:mF,removeSignal:yF}=Ni();function JI(){}var io=Symbol("resume"),$u=class extends KI{constructor(){super({autoDestroy:!0}),this[io]=null}_read(){let{[io]:e}=this;e&&(this[io]=null,e())}_destroy(e,r){this._read(),r(e)}},Zu=class extends KI{constructor(e){super({autoDestroy:!0}),this[io]=e}_read(){this[io]()}_destroy(e,r){!e&&!this._readableState.endEmitted&&(e=new ju),r(e)}},Xu=class extends QF{constructor(e,r){if(!e||typeof e!="object")throw new Mi("invalid opts");if(typeof r!="function")throw new Mi("invalid handler");let{signal:n,method:o,opaque:i,onInfo:s,responseHeaders:A}=e;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new Mi("signal must be an EventEmitter or EventTarget");if(o==="CONNECT")throw new Mi("invalid method");if(s&&typeof s!="function")throw new Mi("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=i||null,this.responseHeaders=A||null,this.handler=r,this.abort=null,this.context=null,this.onInfo=s||null,this.req=new $u().on("error",JI),this.ret=new CF({readableObjectMode:e.objectMode,autoDestroy:!0,read:()=>{let{body:a}=this;a?.resume&&a.resume()},write:(a,c,d)=>{let{req:l}=this;l.push(a,c)||l._readableState.destroyed?d():l[io]=d},destroy:(a,c)=>{let{body:d,req:l,res:u,ret:p,abort:h}=this;!a&&!p._readableState.endEmitted&&(a=new ju),h&&a&&h(),Pt.destroy(d,a),Pt.destroy(l,a),Pt.destroy(u,a),yF(this),c(a)}}).on("prefinish",()=>{let{req:a}=this;a.push(null)}),this.res=null,mF(this,n)}onConnect(e,r){let{res:n}=this;if(this.reason){e(this.reason);return}IF(!n,"pipeline cannot be retried"),this.abort=e,this.context=r}onHeaders(e,r,n){let{opaque:o,handler:i,context:s}=this;if(e<200){if(this.onInfo){let a=this.responseHeaders==="raw"?Pt.parseRawHeaders(r):Pt.parseHeaders(r);this.onInfo({statusCode:e,headers:a})}return}this.res=new Zu(n);let A;try{this.handler=null;let a=this.responseHeaders==="raw"?Pt.parseRawHeaders(r):Pt.parseHeaders(r);A=this.runInAsyncScope(i,null,{statusCode:e,headers:a,opaque:o,body:this.res,context:s})}catch(a){throw this.res.on("error",JI),a}if(!A||typeof A.on!="function")throw new BF("expected Readable");A.on("data",a=>{let{ret:c,body:d}=this;!c.push(a)&&d.pause&&d.pause()}).on("error",a=>{let{ret:c}=this;Pt.destroy(c,a)}).on("end",()=>{let{ret:a}=this;a.push(null)}).on("close",()=>{let{ret:a}=this;a._readableState.ended||Pt.destroy(a,new ju)}),this.body=A}onData(e){let{res:r}=this;return r.push(e)}onComplete(e){let{res:r}=this;r.push(null)}onError(e){let{ret:r}=this;this.handler=null,Pt.destroy(r,e)}};function wF(t,e){try{let r=new Xu(t,e);return this.dispatch({...t,body:r.req},r),r.ret}catch(r){return new EF().destroy(r)}}zI.exports=wF});var rQ=B((Tz,tQ)=>{"use strict";var{InvalidArgumentError:el,SocketError:RF}=_(),{AsyncResource:bF}=require("node:async_hooks"),$I=require("node:assert"),ZI=O(),{kHTTP2Stream:SF}=j(),{addSignal:DF,removeSignal:XI}=Ni(),tl=class extends bF{constructor(e,r){if(!e||typeof e!="object")throw new el("invalid opts");if(typeof r!="function")throw new el("invalid callback");let{signal:n,opaque:o,responseHeaders:i}=e;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new el("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=i||null,this.opaque=o||null,this.callback=r,this.abort=null,this.context=null,DF(this,n)}onConnect(e,r){if(this.reason){e(this.reason);return}$I(this.callback),this.abort=e,this.context=null}onHeaders(){throw new RF("bad upgrade",null)}onUpgrade(e,r,n){$I(n[SF]===!0?e===200:e===101);let{callback:o,opaque:i,context:s}=this;XI(this),this.callback=null;let A=this.responseHeaders==="raw"?ZI.parseRawHeaders(r):ZI.parseHeaders(r);this.runInAsyncScope(o,null,null,{headers:A,socket:n,opaque:i,context:s})}onError(e){let{callback:r,opaque:n}=this;XI(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,e,{opaque:n})}))}};function eQ(t,e){if(e===void 0)return new Promise((r,n)=>{eQ.call(this,t,(o,i)=>o?n(o):r(i))});try{let r=new tl(t,e),n={...t,method:t.method||"GET",upgrade:t.protocol||"Websocket"};this.dispatch(n,r)}catch(r){if(typeof e!="function")throw r;let n=t?.opaque;queueMicrotask(()=>e(r,{opaque:n}))}}tQ.exports=eQ});var AQ=B((xz,sQ)=>{"use strict";var kF=require("node:assert"),{AsyncResource:NF}=require("node:async_hooks"),{InvalidArgumentError:rl,SocketError:MF}=_(),nQ=O(),{addSignal:TF,removeSignal:oQ}=Ni(),nl=class extends NF{constructor(e,r){if(!e||typeof e!="object")throw new rl("invalid opts");if(typeof r!="function")throw new rl("invalid callback");let{signal:n,opaque:o,responseHeaders:i}=e;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new rl("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=o||null,this.responseHeaders=i||null,this.callback=r,this.abort=null,TF(this,n)}onConnect(e,r){if(this.reason){e(this.reason);return}kF(this.callback),this.abort=e,this.context=r}onHeaders(){throw new MF("bad connect",null)}onUpgrade(e,r,n){let{callback:o,opaque:i,context:s}=this;oQ(this),this.callback=null;let A=r;A!=null&&(A=this.responseHeaders==="raw"?nQ.parseRawHeaders(r):nQ.parseHeaders(r)),this.runInAsyncScope(o,null,null,{statusCode:e,headers:A,socket:n,opaque:i,context:s})}onError(e){let{callback:r,opaque:n}=this;oQ(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,e,{opaque:n})}))}};function iQ(t,e){if(e===void 0)return new Promise((r,n)=>{iQ.call(this,t,(o,i)=>o?n(o):r(i))});try{let r=new nl(t,e),n={...t,method:"CONNECT"};this.dispatch(n,r)}catch(r){if(typeof e!="function")throw r;let n=t?.opaque;queueMicrotask(()=>e(r,{opaque:n}))}}sQ.exports=iQ});var aQ=B((Uz,so)=>{"use strict";so.exports.request=_I();so.exports.stream=WI();so.exports.pipeline=jI();so.exports.upgrade=rQ();so.exports.connect=AQ()});var il=B((Fz,dQ)=>{"use strict";var{UndiciError:xF}=_(),cQ=Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"),ol=class extends xF{constructor(e){super(e),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[cQ]===!0}get[cQ](){return!0}};dQ.exports={MockNotMatchedError:ol}});var fn=B((Pz,uQ)=>{"use strict";uQ.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"),kOriginalDispatch:Symbol("original dispatch"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected"),kIgnoreTrailingSlash:Symbol("ignore trailing slash"),kMockAgentMockCallHistoryInstance:Symbol("mock agent mock call history name"),kMockAgentRegisterCallHistory:Symbol("mock agent register mock call history"),kMockAgentAddCallHistoryLog:Symbol("mock agent add call history log"),kMockAgentIsCallHistoryEnabled:Symbol("mock agent is call history enabled"),kMockAgentAcceptsNonStandardSearchParameters:Symbol("mock agent accepts non standard search parameters"),kMockCallHistoryAddLog:Symbol("mock call history add log"),kTotalDispatchCount:Symbol("total dispatch count")}});var Ti=B((Lz,mQ)=>{"use strict";var{MockNotMatchedError:Ao}=il(),{kDispatches:pn,kMockAgent:UF,kOriginalDispatch:FF,kOrigin:PF,kGetNetConnect:LF,kTotalDispatchCount:al}=fn(),{serializePathWithQuery:vF}=O(),{STATUS_CODES:_F}=require("node:http"),{types:{isPromise:OF}}=require("node:util"),{InvalidArgumentError:sl}=_();function Lt(t,e){return typeof t=="string"?t===e:t instanceof RegExp?t.test(e):typeof t=="function"?t(e)===!0:!1}function gQ(t){return Object.fromEntries(Object.entries(t).map(([e,r])=>[e.toLocaleLowerCase(),r]))}function fQ(t,e){if(Array.isArray(t)){for(let r=0;r<t.length;r+=2)if(t[r].toLocaleLowerCase()===e.toLocaleLowerCase())return t[r+1];return}else return typeof t.get=="function"?t.get(e):gQ(t)[e.toLocaleLowerCase()]}function ul(t){let e=t.slice(),r=[];for(let n=0;n<e.length;n+=2)r.push([e[n],e[n+1]]);return Object.fromEntries(r)}function pQ(t,e){if(typeof t.headers=="function")return Array.isArray(e)&&(e=ul(e)),t.headers(e?gQ(e):{});if(typeof t.headers>"u")return!0;if(typeof e!="object"||typeof t.headers!="object")return!1;for(let[r,n]of Object.entries(t.headers)){let o=fQ(e,r);if(!Lt(n,o))return!1}return!0}function GF(t){if(typeof t!="string")return t;let e=new URLSearchParams(t),r=new URLSearchParams;for(let[n,o]of e.entries()){if(n=n.replace("[]",""),/^(['"]).*\1$/.test(o)){r.append(n,o);continue}if(o.includes(",")){let s=o.split(",");for(let A of s)r.append(n,A);continue}r.append(n,o)}return r}function Al(t){if(typeof t!="string")return t;let e=t.split("?",3);if(e.length!==2)return t;let r=new URLSearchParams(e.pop());return r.sort(),[...e,r.toString()].join("?")}function HF(t,{path:e,method:r,body:n,headers:o}){let i=Lt(t.path,e),s=Lt(t.method,r),A=typeof t.body<"u"?Lt(t.body,n):!0,a=pQ(t,o);return i&&s&&A&&a}function hQ(t){return Buffer.isBuffer(t)||t instanceof Uint8Array||t instanceof ArrayBuffer?t:typeof t=="object"?JSON.stringify(t):t?t.toString():""}function CQ(t,e){let r=e.query?vF(e.path,e.query):e.path,n=typeof r=="string"?Al(r):r,o=lQ(n),i=t.filter(({consumed:s})=>!s).filter(({path:s,ignoreTrailingSlash:A})=>A?Lt(lQ(Al(s)),o):Lt(Al(s),n));if(i.length===0)throw new Ao(`Mock dispatch not matched for path '${n}'`);if(i=i.filter(({method:s})=>Lt(s,e.method)),i.length===0)throw new Ao(`Mock dispatch not matched for method '${e.method}' on path '${n}'`);if(i=i.filter(({body:s})=>typeof s<"u"?Lt(s,e.body):!0),i.length===0)throw new Ao(`Mock dispatch not matched for body '${e.body}' on path '${n}'`);if(i=i.filter(s=>pQ(s,e.headers)),i.length===0){let s=typeof e.headers=="object"?JSON.stringify(e.headers):e.headers;throw new Ao(`Mock dispatch not matched for headers '${s}' on path '${n}'`)}return i[0]}function YF(t,e,r,n){let o={timesInvoked:0,times:1,persist:!1,consumed:!1,...n},i=typeof r=="function"?{callback:r}:{...r},s={...o,...e,pending:!0,data:{error:null,...i}};return t.push(s),t[al]=(t[al]||0)+1,s}function cl(t,e){let r=t.findIndex(n=>n.consumed?HF(n,e):!1);r!==-1&&t.splice(r,1)}function lQ(t){for(;t.endsWith("/");)t=t.slice(0,-1);return t.length===0&&(t="/"),t}function EQ(t){let{path:e,method:r,body:n,headers:o,query:i}=t;return{path:e,method:r,body:n,headers:o,query:i}}function dl(t){let e=Object.keys(t),r=[];for(let n=0;n<e.length;++n){let o=e[n],i=t[o],s=Buffer.from(`${o}`);if(Array.isArray(i))for(let A=0;A<i.length;++A)r.push(s,Buffer.from(`${i[A]}`));else r.push(s,Buffer.from(`${i}`))}return r}function IQ(t){return _F[t]||"unknown"}async function VF(t){let e=[];for await(let r of t)e.push(r);return Buffer.concat(e).toString("utf8")}function QQ(t,e){let r=EQ(t),n=CQ(this[pn],r);n.timesInvoked++,n.data.callback&&(n.data={...n.data,...n.data.callback(t)});let{data:{statusCode:o,data:i,headers:s,trailers:A,error:a},delay:c,persist:d}=n,{timesInvoked:l,times:u}=n;if(n.consumed=!d&&l>=u,n.pending=l<u,a!==null)return cl(this[pn],r),e.onError(a),!0;let p=!1,h=null;function I(Q){p||(p=!0,h!==null&&(clearTimeout(h),h=null),e.onError(Q))}e.onConnect?.(I,null),typeof c=="number"&&c>0?h=setTimeout(()=>{h=null,m(this[pn])},c):m(this[pn]);function m(Q,y=i){if(p)return;let v=Array.isArray(t.headers)?ul(t.headers):t.headers,b=typeof y=="function"?y({...t,headers:v}):y;if(OF(b))return b.then(U=>m(Q,U));if(p)return;let F=hQ(b),k=dl(s),x=dl(A);e.onHeaders?.(o,k,E,IQ(o)),e.onData?.(Buffer.from(F)),e.onComplete?.(x),cl(Q,r)}function E(){}return!0}function qF(){let t=this[UF],e=this[PF],r=this[FF];return function(o,i){if(t.isMockActive)try{QQ.call(this,o,i)}catch(s){if(s.code==="UND_MOCK_ERR_MOCK_NOT_MATCHED"){let A=t[LF](),a=this[pn][al]||this[pn].length,d=`, ${this[pn].filter(({consumed:l})=>!l).length} interceptor(s) remaining out of ${a} defined`;if(A===!1)throw new Ao(`${s.message}: subsequent request to origin ${e} was not allowed (net.connect disabled)${d}`);if(BQ(A,e))r.call(this,o,i);else throw new Ao(`${s.message}: subsequent request to origin ${e} was not allowed (net.connect is not enabled for this origin)${d}`)}else throw s}else r.call(this,o,i)}}function BQ(t,e){let r=new URL(e);return t===!0?!0:!!(Array.isArray(t)&&t.some(n=>Lt(n,r.host)))}function WF(t){return typeof t!="string"&&!(t instanceof URL)?t:t instanceof URL?t.origin:t.toLowerCase()}function JF(t){let{agent:e,...r}=t;if("enableCallHistory"in r&&typeof r.enableCallHistory!="boolean")throw new sl("options.enableCallHistory must to be a boolean");if("acceptNonStandardSearchParameters"in r&&typeof r.acceptNonStandardSearchParameters!="boolean")throw new sl("options.acceptNonStandardSearchParameters must to be a boolean");if("ignoreTrailingSlash"in r&&typeof r.ignoreTrailingSlash!="boolean")throw new sl("options.ignoreTrailingSlash must to be a boolean");return r}mQ.exports={getResponseData:hQ,getMockDispatch:CQ,addMockDispatch:YF,deleteMockDispatch:cl,buildKey:EQ,generateKeyValues:dl,matchValue:Lt,getResponse:VF,getStatusText:IQ,mockDispatch:QQ,buildMockDispatch:qF,checkNetConnect:BQ,buildAndValidateMockOptions:JF,getHeaderByName:fQ,buildHeadersFromArray:ul,normalizeSearchParams:GF,normalizeOrigin:WF}});var El=B((vz,Cl)=>{"use strict";var{getResponseData:KF,buildKey:zF,addMockDispatch:ll}=Ti(),{kDispatches:RA,kDispatchKey:bA,kDefaultHeaders:gl,kDefaultTrailers:fl,kContentLength:pl,kMockDispatch:SA,kIgnoreTrailingSlash:DA}=fn(),{InvalidArgumentError:vt}=_(),{serializePathWithQuery:jF}=O(),ao=class{constructor(e){this[SA]=e}delay(e){if(typeof e!="number"||!Number.isInteger(e)||e<=0)throw new vt("waitInMs must be a valid integer > 0");return this[SA].delay=e,this}persist(){return this[SA].persist=!0,this}times(e){if(typeof e!="number"||!Number.isInteger(e)||e<=0)throw new vt("repeatTimes must be a valid integer > 0");return this[SA].times=e,this}},hl=class{constructor(e,r){if(typeof e!="object")throw new vt("opts must be an object");if(typeof e.path>"u")throw new vt("opts.path must be defined");if(typeof e.method>"u"&&(e.method="GET"),typeof e.path=="string")if(e.query)e.path=jF(e.path,e.query);else{let n=new URL(e.path,"data://");e.path=n.pathname+n.search}typeof e.method=="string"&&(e.method=e.method.toUpperCase()),this[bA]=zF(e),this[RA]=r,this[DA]=e.ignoreTrailingSlash??!1,this[gl]={},this[fl]={},this[pl]=!1}createMockScopeDispatchData({statusCode:e,data:r,responseOptions:n}){let o=KF(r),i=this[pl]?{"content-length":o.length}:{},s={...this[gl],...i,...n.headers},A={...this[fl],...n.trailers};return{statusCode:e,data:r,headers:s,trailers:A}}validateReplyParameters(e){if(typeof e.statusCode>"u")throw new vt("statusCode must be defined");if(typeof e.responseOptions!="object"||e.responseOptions===null)throw new vt("responseOptions must be an object")}reply(e){if(typeof e=="function"){let i=A=>{let a=e(A);if(typeof a!="object"||a===null)throw new vt("reply options callback must return an object");let c={data:"",responseOptions:{},...a};return this.validateReplyParameters(c),{...this.createMockScopeDispatchData(c)}},s=ll(this[RA],this[bA],i,{ignoreTrailingSlash:this[DA]});return new ao(s)}let r={statusCode:e,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(r);let n=this.createMockScopeDispatchData(r),o=ll(this[RA],this[bA],n,{ignoreTrailingSlash:this[DA]});return new ao(o)}replyWithError(e){if(typeof e>"u")throw new vt("error must be defined");let r=ll(this[RA],this[bA],{error:e},{ignoreTrailingSlash:this[DA]});return new ao(r)}defaultReplyHeaders(e){if(typeof e>"u")throw new vt("headers must be defined");return this[gl]=e,this}defaultReplyTrailers(e){if(typeof e>"u")throw new vt("trailers must be defined");return this[fl]=e,this}replyContentLength(){return this[pl]=!0,this}};Cl.exports.MockInterceptor=hl;Cl.exports.MockScope=ao});var ml=B((_z,kQ)=>{"use strict";var{promisify:$F}=require("node:util"),ZF=Br(),{buildMockDispatch:XF}=Ti(),{kDispatches:Il,kMockAgent:yQ,kClose:wQ,kOriginalClose:RQ,kOrigin:bQ,kOriginalDispatch:eP,kConnected:Ql,kIgnoreTrailingSlash:SQ}=fn(),{MockInterceptor:tP}=El(),DQ=j(),{InvalidArgumentError:rP}=_(),Bl=class extends ZF{constructor(e,r){if(!r||!r.agent||typeof r.agent.dispatch!="function")throw new rP("Argument opts.agent must implement Agent");super(e,r),this[yQ]=r.agent,this[bQ]=e,this[SQ]=r.ignoreTrailingSlash??!1,this[Il]=[],this[Ql]=1,this[eP]=this.dispatch,this[RQ]=this.close.bind(this),this.dispatch=XF.call(this),this.close=this[wQ]}get[DQ.kConnected](){return this[Ql]}intercept(e){return new tP(e&&{ignoreTrailingSlash:this[SQ],...e},this[Il])}cleanMocks(){this[Il]=[]}async[wQ](){await $F(this[RQ])(),this[Ql]=0,this[yQ][DQ.kClients].delete(this[bQ])}};kQ.exports=Bl});var Rl=B((Oz,wl)=>{"use strict";var{kMockCallHistoryAddLog:nP}=fn(),{InvalidArgumentError:Nr}=_();function Dr(t,e,r,n,o){switch(e.operator){case"OR":return n.push(...r(t,o)),n;case"AND":return r(t,n);default:throw new Nr("options.operator must to be a case insensitive string equal to 'OR' or 'AND'")}}function oP(t={}){let e={};if("operator"in t){if(typeof t.operator!="string"||t.operator.toUpperCase()!=="OR"&&t.operator.toUpperCase()!=="AND")throw new Nr("options.operator must to be a case insensitive string equal to 'OR' or 'AND'");return{...e,operator:t.operator.toUpperCase()}}return e}function kr(t){return(e,r)=>{if(typeof e=="string"||e==null)return r.filter(n=>n[t]===e);if(e instanceof RegExp)return r.filter(n=>e.test(n[t]));throw new Nr(`${t} parameter should be one of string, regexp, undefined or null`)}}function iP(t){try{let e=new URL(t.path,t.origin);return e.search.length!==0||(e.search=new URLSearchParams(t.query).toString()),e}catch(e){throw new Nr("An error occurred when computing MockCallHistoryLog.url",{cause:e})}}var kA=class{constructor(e={}){this.body=e.body,this.headers=e.headers,this.method=e.method;let r=iP(e);this.fullUrl=r.toString(),this.origin=r.origin,this.path=r.pathname,this.searchParams=Object.fromEntries(r.searchParams),this.protocol=r.protocol,this.host=r.host,this.port=r.port,this.hash=r.hash}toMap(){return new Map([["protocol",this.protocol],["host",this.host],["port",this.port],["origin",this.origin],["path",this.path],["hash",this.hash],["searchParams",this.searchParams],["fullUrl",this.fullUrl],["method",this.method],["body",this.body],["headers",this.headers]])}toString(){let e={betweenKeyValueSeparator:"->",betweenPairSeparator:"|"},r="";return this.toMap().forEach((n,o)=>{(typeof n=="string"||n===void 0||n===null)&&(r=`${r}${o}${e.betweenKeyValueSeparator}${n}${e.betweenPairSeparator}`),(typeof n=="object"&&n!==null||Array.isArray(n))&&(r=`${r}${o}${e.betweenKeyValueSeparator}${JSON.stringify(n)}${e.betweenPairSeparator}`)}),r.slice(0,-1)}},yl=class{logs=[];calls(){return this.logs}firstCall(){return this.logs.at(0)}lastCall(){return this.logs.at(-1)}nthCall(e){if(typeof e!="number")throw new Nr("nthCall must be called with a number");if(!Number.isInteger(e))throw new Nr("nthCall must be called with an integer");if(Math.sign(e)!==1)throw new Nr("nthCall must be called with a positive value. use firstCall or lastCall instead");return this.logs.at(e-1)}filterCalls(e,r){if(this.logs.length===0)return this.logs;if(typeof e=="function")return this.logs.filter(e);if(e instanceof RegExp)return this.logs.filter(n=>e.test(n.toString()));if(typeof e=="object"&&e!==null){if(Object.keys(e).length===0)return this.logs;let n={operator:"OR",...oP(r)},o=n.operator==="AND"?this.logs:[];return"protocol"in e&&(o=Dr(e.protocol,n,this.filterCallsByProtocol,o,this.logs)),"host"in e&&(o=Dr(e.host,n,this.filterCallsByHost,o,this.logs)),"port"in e&&(o=Dr(e.port,n,this.filterCallsByPort,o,this.logs)),"origin"in e&&(o=Dr(e.origin,n,this.filterCallsByOrigin,o,this.logs)),"path"in e&&(o=Dr(e.path,n,this.filterCallsByPath,o,this.logs)),"hash"in e&&(o=Dr(e.hash,n,this.filterCallsByHash,o,this.logs)),"fullUrl"in e&&(o=Dr(e.fullUrl,n,this.filterCallsByFullUrl,o,this.logs)),"method"in e&&(o=Dr(e.method,n,this.filterCallsByMethod,o,this.logs)),[...new Set(o)]}throw new Nr("criteria parameter should be one of function, regexp, or object")}filterCallsByProtocol=kr.call(this,"protocol");filterCallsByHost=kr.call(this,"host");filterCallsByPort=kr.call(this,"port");filterCallsByOrigin=kr.call(this,"origin");filterCallsByPath=kr.call(this,"path");filterCallsByHash=kr.call(this,"hash");filterCallsByFullUrl=kr.call(this,"fullUrl");filterCallsByMethod=kr.call(this,"method");clear(){this.logs=[]}[nP](e){let r=new kA(e);return this.logs.push(r),r}*[Symbol.iterator](){for(let e of this.calls())yield e}};wl.exports.MockCallHistory=yl;wl.exports.MockCallHistoryLog=kA});var kl=B((Gz,PQ)=>{"use strict";var{promisify:sP}=require("node:util"),AP=nn(),{buildMockDispatch:aP}=Ti(),{kDispatches:bl,kMockAgent:NQ,kClose:MQ,kOriginalClose:TQ,kOrigin:xQ,kOriginalDispatch:cP,kConnected:Sl,kIgnoreTrailingSlash:UQ}=fn(),{MockInterceptor:dP}=El(),FQ=j(),{InvalidArgumentError:uP}=_(),Dl=class extends AP{constructor(e,r){if(!r||!r.agent||typeof r.agent.dispatch!="function")throw new uP("Argument opts.agent must implement Agent");super(e,r),this[NQ]=r.agent,this[xQ]=e,this[UQ]=r.ignoreTrailingSlash??!1,this[bl]=[],this[Sl]=1,this[cP]=this.dispatch,this[TQ]=this.close.bind(this),this.dispatch=aP.call(this),this.close=this[MQ]}get[FQ.kConnected](){return this[Sl]}intercept(e){return new dP(e&&{ignoreTrailingSlash:this[UQ],...e},this[bl])}cleanMocks(){this[bl]=[]}async[MQ](){await sP(this[TQ])(),this[Sl]=0,this[NQ][FQ.kClients].delete(this[xQ])}};PQ.exports=Dl});var vQ=B((Yz,LQ)=>{"use strict";var{Transform:lP}=require("node:stream"),{Console:gP}=require("node:console"),fP=process.versions.icu?"\u2705":"Y ",pP=process.versions.icu?"\u274C":"N ";LQ.exports=class{constructor({disableColors:e}={}){this.transform=new lP({transform(r,n,o){o(null,r)}}),this.logger=new gP({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){let r=e.map(({method:n,path:o,data:{statusCode:i},persist:s,times:A,timesInvoked:a,origin:c})=>({Method:n,Origin:c,Path:o,"Status code":i,Persistent:s?fP:pP,Invocations:a,Remaining:s?1/0:A-a}));return this.logger.table(r),this.transform.read().toString()}}});var Ul=B((Vz,qQ)=>{"use strict";var{kClients:hn}=j(),hP=An(),{kAgent:Nl,kMockAgentSet:NA,kMockAgentGet:_Q,kDispatches:Ml,kIsMockActive:MA,kNetConnect:Cn,kGetNetConnect:CP,kOptions:TA,kFactory:xA,kMockAgentRegisterCallHistory:Tl,kMockAgentIsCallHistoryEnabled:xi,kMockAgentAddCallHistoryLog:OQ,kMockAgentMockCallHistoryInstance:co,kMockAgentAcceptsNonStandardSearchParameters:GQ,kMockCallHistoryAddLog:EP,kIgnoreTrailingSlash:HQ}=fn(),IP=ml(),QP=kl(),{matchValue:BP,normalizeSearchParams:mP,buildAndValidateMockOptions:yP,normalizeOrigin:YQ}=Ti(),{InvalidArgumentError:VQ,UndiciError:wP}=_(),RP=Xo(),bP=vQ(),{MockCallHistory:SP}=Rl(),xl=class extends RP{constructor(e={}){super(e);let r=yP(e);if(this[Cn]=!0,this[MA]=!0,this[xi]=r.enableCallHistory??!1,this[GQ]=r.acceptNonStandardSearchParameters??!1,this[HQ]=r.ignoreTrailingSlash??!1,e?.agent&&typeof e.agent.dispatch!="function")throw new VQ("Argument opts.agent must implement Agent");let n=e?.agent?e.agent:new hP(e);this[Nl]=n,this[hn]=n[hn],this[TA]=r,this[xi]&&this[Tl]()}get(e){let r=YQ(e),n=this[HQ]?r.replace(/\/$/,""):r,o=this[_Q](n);return o||(o=this[xA](n),this[NA](n,o)),o}dispatch(e,r){e.origin=YQ(e.origin),this.get(e.origin),this[OQ](e);let n=this[GQ],o={...e};if(n&&o.path){let[i,s]=o.path.split("?"),A=mP(s,n);o.path=`${i}?${A}`}return this[Nl].dispatch(o,r)}async close(){this.clearCallHistory(),await this[Nl].close(),this[hn].clear()}deactivate(){this[MA]=!1}activate(){this[MA]=!0}enableNetConnect(e){if(typeof e=="string"||typeof e=="function"||e instanceof RegExp)Array.isArray(this[Cn])?this[Cn].push(e):this[Cn]=[e];else if(typeof e>"u")this[Cn]=!0;else throw new VQ("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[Cn]=!1}enableCallHistory(){return this[xi]=!0,this}disableCallHistory(){return this[xi]=!1,this}getCallHistory(){return this[co]}clearCallHistory(){this[co]!==void 0&&this[co].clear()}get isMockActive(){return this[MA]}[Tl](){this[co]===void 0&&(this[co]=new SP)}[OQ](e){this[xi]&&(this[Tl](),this[co][EP](e))}[NA](e,r){this[hn].set(e,{count:0,dispatcher:r})}[xA](e){let r=Object.assign({agent:this},this[TA]);return this[TA]&&this[TA].connections===1?new IP(e,r):new QP(e,r)}[_Q](e){let r=this[hn].get(e);if(r?.dispatcher)return r.dispatcher;if(typeof e!="string"){let n=this[xA]("http://localhost:9999");return this[NA](e,n),n}for(let[n,o]of Array.from(this[hn]))if(o&&typeof n!="string"&&BP(n,e)){let i=this[xA](e);return this[NA](e,i),i[Ml]=o.dispatcher[Ml],i}}[CP](){return this[Cn]}pendingInterceptors(){let e=this[hn];return Array.from(e.entries()).flatMap(([r,n])=>n.dispatcher[Ml].map(o=>({...o,origin:r}))).filter(({pending:r})=>r)}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new bP}={}){let r=this.pendingInterceptors();if(r.length!==0)throw new wP(r.length===1?`1 interceptor is pending:
41
+
42
+ ${e.format(r)}`.trim():`${r.length} interceptors are pending:
43
+
44
+ ${e.format(r)}`.trim())}};qQ.exports=xl});var Fl=B((qz,zQ)=>{"use strict";var{InvalidArgumentError:DP}=_(),{runtimeFeatures:kP}=$t();function NP(t={}){let{ignoreHeaders:e=[],excludeHeaders:r=[],matchHeaders:n=[],caseSensitive:o=!1}=t;return{ignore:new Set(e.map(i=>o?i:i.toLowerCase())),exclude:new Set(r.map(i=>o?i:i.toLowerCase())),match:new Set(n.map(i=>o?i:i.toLowerCase()))}}var WQ=kP.has("crypto")?require("node:crypto"):null,MP=WQ?.hash?t=>WQ.hash("sha256",t,"base64url"):t=>Buffer.from(t).toString("base64url");function KQ(t){return Array.isArray(t)&&(t.length&1)===0}function TP(t=[]){return t.length===0?()=>!1:function(r){let n;for(let o of t)if(typeof o=="string"){if(n||(n=r.toLowerCase()),n.includes(o.toLowerCase()))return!0}else if(o instanceof RegExp&&o.test(r))return!0;return!1}}function xP(t){let e={};if(!t)return e;if(KQ(t)){for(let r=0;r<t.length;r+=2){let n=t[r],o=t[r+1];if(n&&o!==void 0){let i=Buffer.isBuffer(n)?n.toString():n,s=Buffer.isBuffer(o)?o.toString():o;e[i.toLowerCase()]=s}}return e}if(t&&typeof t=="object")for(let[r,n]of Object.entries(t))r&&typeof r=="string"&&(e[r.toLowerCase()]=Array.isArray(n)?n.join(", "):String(n));return e}var JQ=["record","playback","update"];function UP(t){if(!JQ.includes(t))throw new DP(`Invalid snapshot mode: ${t}. Must be one of: ${JQ.join(", ")}`)}zQ.exports={createHeaderFilters:NP,hashId:MP,isUndiciHeaders:KQ,normalizeHeaders:xP,isUrlExcludedFactory:TP,validateSnapshotMode:UP}});var oB=B((Wz,nB)=>{"use strict";var{writeFile:FP,readFile:PP,mkdir:LP}=require("node:fs/promises"),{dirname:vP,resolve:jQ}=require("node:path"),{setTimeout:_P,clearTimeout:$Q}=require("node:timers"),{InvalidArgumentError:ZQ,UndiciError:OP}=_(),{hashId:GP,isUrlExcludedFactory:HP,normalizeHeaders:XQ,createHeaderFilters:eB}=Fl();function Ui(t,e,r={}){let n=new URL(t.path,t.origin),o=t._normalizedHeaders||XQ(t.headers);return t._normalizedHeaders||(t._normalizedHeaders=o),{method:t.method||"GET",url:r.matchQuery!==!1?n.toString():`${n.origin}${n.pathname}`,headers:tB(o,e,r),body:r.matchBody!==!1&&t.body?String(t.body):""}}function tB(t,e,r={}){if(!t||typeof t!="object")return{};let{caseSensitive:n=!1}=r,o={},{ignore:i,exclude:s,match:A}=e;for(let[a,c]of Object.entries(t)){let d=n?a:a.toLowerCase();s.has(d)||i.has(d)||A.size!==0&&!A.has(d)||(o[d]=c)}return o}function rB(t,e,r={}){if(!t||typeof t!="object")return{};let{caseSensitive:n=!1}=r,o={},{exclude:i}=e;for(let[s,A]of Object.entries(t)){let a=n?s:s.toLowerCase();i.has(a)||(o[a]=A)}return o}function Fi(t){let e=[t.method,t.url];if(t.headers&&typeof t.headers=="object"){let n=Object.keys(t.headers).sort();for(let o of n){let i=Array.isArray(t.headers[o])?t.headers[o]:[t.headers[o]];e.push(o);for(let s of i.sort())e.push(String(s))}}e.push(t.body);let r=e.join("|");return GP(r)}var Pl=class{#e;#t;#r=new Map;#n;#i=1/0;#o=!1;#a;constructor(e={}){this.#n=e.snapshotPath,this.#i=e.maxSnapshots||1/0,this.#o=e.autoFlush||!1,this.flushInterval=e.flushInterval||3e4,this._flushTimer=null,this.matchOptions={matchHeaders:e.matchHeaders||[],ignoreHeaders:e.ignoreHeaders||[],excludeHeaders:e.excludeHeaders||[],matchBody:e.matchBody!==!1,matchQuery:e.matchQuery!==!1,caseSensitive:e.caseSensitive||!1},this.#a=eB(this.matchOptions),this.shouldRecord=e.shouldRecord||(()=>!0),this.shouldPlayback=e.shouldPlayback||(()=>!0),this.#t=HP(e.excludeUrls),this.#o&&this.#n&&this.#s()}async record(e,r){if(!this.shouldRecord(e)||this.isUrlExcluded(e))return;let n=Ui(e,this.#a,this.matchOptions),o=Fi(n),i=XQ(r.headers),s={statusCode:r.statusCode,headers:rB(i,this.#a,this.matchOptions),body:Buffer.isBuffer(r.body)?r.body.toString("base64"):Buffer.from(String(r.body||"")).toString("base64"),trailers:r.trailers};if(this.#r.size>=this.#i&&!this.#r.has(o)){let a=this.#r.keys().next().value;this.#r.delete(a)}let A=this.#r.get(o);A&&A.responses?(A.responses.push(s),A.timestamp=new Date().toISOString()):this.#r.set(o,{request:n,responses:[s],callCount:0,timestamp:new Date().toISOString()}),this.#o&&this.#n&&this.#c()}isUrlExcluded(e){let r=new URL(e.path,e.origin).toString();return this.#t(r)}findSnapshot(e){if(!this.shouldPlayback(e)||this.isUrlExcluded(e))return;let r=Ui(e,this.#a,this.matchOptions),n=Fi(r),o=this.#r.get(n);if(!o)return;let i=o.callCount||0,s=Math.min(i,o.responses.length-1);return o.callCount=i+1,{...o,response:o.responses[s]}}async loadSnapshots(e){let r=e||this.#n;if(!r)throw new ZQ("Snapshot path is required");try{let n=await PP(jQ(r),"utf8"),o=JSON.parse(n);if(Array.isArray(o)){this.#r.clear();for(let{hash:i,snapshot:s}of o)this.#r.set(i,s)}else this.#r=new Map(Object.entries(o))}catch(n){if(n.code==="ENOENT")this.#r.clear();else throw new OP(`Failed to load snapshots from ${r}`,{cause:n})}}async saveSnapshots(e){let r=e||this.#n;if(!r)throw new ZQ("Snapshot path is required");let n=jQ(r);await LP(vP(n),{recursive:!0});let o=Array.from(this.#r.entries()).map(([i,s])=>({hash:i,snapshot:s}));await FP(n,JSON.stringify(o,null,2),{flush:!0})}clear(){this.#r.clear()}getSnapshots(){return Array.from(this.#r.values())}size(){return this.#r.size}resetCallCounts(){for(let e of this.#r.values())e.callCount=0}deleteSnapshot(e){let r=Ui(e,this.#a,this.matchOptions),n=Fi(r);return this.#r.delete(n)}getSnapshotInfo(e){let r=Ui(e,this.#a,this.matchOptions),n=Fi(r),o=this.#r.get(n);return o?{hash:n,request:o.request,responseCount:o.responses?o.responses.length:o.response?1:0,callCount:o.callCount||0,timestamp:o.timestamp}:null}replaceSnapshots(e){if(this.#r.clear(),Array.isArray(e))for(let{hash:r,snapshot:n}of e)this.#r.set(r,n);else e&&typeof e=="object"&&(this.#r=new Map(Object.entries(e)))}#s(){return this.#c()}#A(){this.#e&&($Q(this.#e),this.saveSnapshots().catch(()=>{}),this.#e=null)}#c(){this.#e=_P(()=>{this.saveSnapshots().catch(()=>{}),this.#o?this.#e?.refresh():this.#e=null},1e3)}destroy(){this.#A(),this.#e&&($Q(this.#e),this.#e=null)}async close(){this.#n&&this.#r.size!==0&&await this.saveSnapshots(),this.destroy()}};nB.exports={SnapshotRecorder:Pl,formatRequestKey:Ui,createRequestHash:Fi,filterHeadersForMatching:tB,filterHeadersForStorage:rB,createHeaderFilters:eB}});var AB=B((Jz,sB)=>{"use strict";var YP=An(),VP=Ul(),{SnapshotRecorder:qP}=oB(),WP=Zo(),{InvalidArgumentError:JP,UndiciError:KP}=_(),{validateSnapshotMode:zP}=Fl(),_e=Symbol("kSnapshotRecorder"),_t=Symbol("kSnapshotMode"),Pi=Symbol("kSnapshotPath"),Ll=Symbol("kSnapshotLoaded"),UA=Symbol("kRealAgent"),iB=!1,vl=class extends VP{constructor(e={}){iB||(process.emitWarning("SnapshotAgent is experimental and subject to change","ExperimentalWarning"),iB=!0);let{mode:r="record",snapshotPath:n=null,...o}=e;if(super(o),zP(r),(r==="playback"||r==="update")&&!n)throw new JP(`snapshotPath is required when mode is '${r}'`);this[_t]=r,this[Pi]=n,this[_e]=new qP({snapshotPath:this[Pi],mode:this[_t],maxSnapshots:e.maxSnapshots,autoFlush:e.autoFlush,flushInterval:e.flushInterval,matchHeaders:e.matchHeaders,ignoreHeaders:e.ignoreHeaders,excludeHeaders:e.excludeHeaders,matchBody:e.matchBody,matchQuery:e.matchQuery,caseSensitive:e.caseSensitive,shouldRecord:e.shouldRecord,shouldPlayback:e.shouldPlayback,excludeUrls:e.excludeUrls}),this[Ll]=!1,(this[_t]==="record"||this[_t]==="update"||this[_t]==="playback"&&e.excludeUrls&&e.excludeUrls.length>0)&&(this[UA]=new YP(e)),(this[_t]==="playback"||this[_t]==="update")&&this[Pi]&&this.loadSnapshots().catch(()=>{})}dispatch(e,r){r=WP.wrap(r);let n=this[_t];if(this[_e].isUrlExcluded(e))return this[UA].dispatch(e,r);if(n==="playback"||n==="update"){if(!this[Ll])return this.#e(e,r);let o=this[_e].findSnapshot(e);if(o)return this.#r(o,r);if(n==="update")return this.#t(e,r);{let i=new KP(`No snapshot found for ${e.method||"GET"} ${e.path}`);if(r.onError){r.onError(i);return}throw i}}else if(n==="record")return this.#t(e,r)}async#e(e,r){return await this.loadSnapshots(),this.dispatch(e,r)}#t(e,r){let n={statusCode:null,headers:{},trailers:{},body:[]},o=this,i={onRequestStart(A,a){return r.onRequestStart(A,{...a,history:this.history})},onRequestUpgrade(A,a,c,d){return r.onRequestUpgrade(A,a,c,d)},onResponseStart(A,a,c,d){return n.statusCode=a,n.headers=c,r.onResponseStart(A,a,c,d)},onResponseData(A,a){return n.body.push(a),r.onResponseData(A,a)},onResponseEnd(A,a){n.trailers=a;let c=Buffer.concat(n.body);o[_e].record(e,{statusCode:n.statusCode,headers:n.headers,body:c,trailers:n.trailers}).then(()=>r.onResponseEnd(A,a)).catch(d=>r.onResponseError(A,d))}};return this[UA].dispatch(e,i)}#r(e,r){try{let{response:n}=e,o={pause(){},resume(){},abort(s){this.aborted=!0,this.reason=s},aborted:!1,paused:!1};r.onRequestStart(o),r.onResponseStart(o,n.statusCode,n.headers);let i=Buffer.from(n.body,"base64");r.onResponseData(o,i),r.onResponseEnd(o,n.trailers)}catch(n){r.onError?.(n)}}async loadSnapshots(e){await this[_e].loadSnapshots(e||this[Pi]),this[Ll]=!0,this[_t]==="playback"&&this.#n()}async saveSnapshots(e){return this[_e].saveSnapshots(e||this[Pi])}#n(){for(let e of this[_e].getSnapshots()){let{request:r,responses:n,response:o}=e,i=new URL(r.url),s=this.get(i.origin),A=n?n[0]:o;A&&s.intercept({path:i.pathname+i.search,method:r.method,headers:r.headers,body:r.body}).reply(A.statusCode,A.body,{headers:A.headers,trailers:A.trailers}).persist()}}getRecorder(){return this[_e]}getMode(){return this[_t]}clearSnapshots(){this[_e].clear()}resetCallCounts(){this[_e].resetCallCounts()}deleteSnapshot(e){return this[_e].deleteSnapshot(e)}getSnapshotInfo(e){return this[_e].getSnapshotInfo(e)}replaceSnapshots(e){this[_e].replaceSnapshots(e)}async close(){await this[_e].close(),await this[UA]?.close(),await super.close()}};sB.exports=vl});var FA=B((Kz,uB)=>{"use strict";var jP=Symbol.for("undici.globalDispatcher.2"),aB=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:$P}=_(),ZP=An();dB()===void 0&&cB(new ZP);function cB(t){if(!t||typeof t.dispatch!="function")throw new $P("Argument agent must implement Agent");Object.defineProperty(globalThis,jP,{value:t,writable:!0,enumerable:!1,configurable:!1}),Object.defineProperty(globalThis,aB,{value:t,writable:!0,enumerable:!1,configurable:!1})}function dB(){return globalThis[aB]}var XP=["fetch","Headers","Response","Request","FormData","WebSocket","CloseEvent","ErrorEvent","MessageEvent","EventSource"];uB.exports={setGlobalDispatcher:cB,getGlobalDispatcher:dB,installedExports:XP}});var uo=B((jz,lB)=>{"use strict";var Ar=require("node:assert"),eL=Zo();lB.exports=class{#e;#t=!1;#r=!1;#n=!1;constructor(e){if(typeof e!="object"||e===null)throw new TypeError("handler must be an object");this.#e=eL.wrap(e)}onRequestStart(...e){this.#e.onRequestStart?.(...e)}onRequestUpgrade(...e){return Ar(!this.#t),Ar(!this.#r),this.#e.onRequestUpgrade?.(...e)}onResponseStart(...e){return Ar(!this.#t),Ar(!this.#r),Ar(!this.#n),this.#n=!0,this.#e.onResponseStart?.(...e)}onResponseData(...e){return Ar(!this.#t),Ar(!this.#r),this.#e.onResponseData?.(...e)}onResponseEnd(...e){return Ar(!this.#t),Ar(!this.#r),this.#t=!0,this.#e.onResponseEnd?.(...e)}onResponseError(...e){return this.#r=!0,this.#e.onResponseError?.(...e)}onBodySent(){}}});var Hl=B(($z,hB)=>{"use strict";var Oe=O(),{kBodyUsed:Li}=j(),Gl=require("node:assert"),{InvalidArgumentError:_l}=_(),tL=require("node:events"),rL=[300,301,302,303,307,308],gB=Symbol("body"),fB=()=>{},PA=class{constructor(e){this[gB]=e,this[Li]=!1}async*[Symbol.asyncIterator](){Gl(!this[Li],"disturbed"),this[Li]=!0,yield*this[gB]}},Ol=class t{static buildDispatch(e,r){if(r!=null&&(!Number.isInteger(r)||r<0))throw new _l("maxRedirections must be a positive number");let n=e.dispatch.bind(e);return(o,i)=>n(o,new t(n,r,o,i))}constructor(e,r,n,o){if(r!=null&&(!Number.isInteger(r)||r<0))throw new _l("maxRedirections must be a positive number");this.dispatch=e,this.location=null;let{maxRedirections:i,...s}=n;this.opts=s,this.maxRedirections=r,this.handler=o,this.history=[],Oe.isStream(this.opts.body)?(Oe.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){Gl(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[Li]=!1,tL.prototype.on.call(this.opts.body,"data",function(){this[Li]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new PA(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&Oe.isIterable(this.opts.body)&&!Oe.isFormDataLike(this.opts.body)&&(this.opts.body=new PA(this.opts.body))}onRequestStart(e,r){this.handler.onRequestStart?.(e,{...r,history:this.history})}onRequestUpgrade(e,r,n,o){this.handler.onRequestUpgrade?.(e,r,n,o)}onResponseStart(e,r,n,o){if(this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections)throw new Error("max redirects");if((r===301||r===302)&&this.opts.method==="POST"&&(this.opts.method="GET",Oe.isStream(this.opts.body)&&Oe.destroy(this.opts.body.on("error",fB)),this.opts.body=null),r===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",Oe.isStream(this.opts.body)&&Oe.destroy(this.opts.body.on("error",fB)),this.opts.body=null),this.location=this.history.length>=this.maxRedirections||Oe.isDisturbed(this.opts.body)||rL.indexOf(r)===-1?null:n.location,this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location){this.handler.onResponseStart?.(e,r,n,o);return}let{origin:i,pathname:s,search:A}=Oe.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),a=A?`${s}${A}`:s,c=`${i}${a}`;for(let d of this.history)if(d.toString()===c)throw new _l(`Redirect loop detected. Cannot redirect to ${i}. This typically happens when using a Client or Pool with cross-origin redirects. Use an Agent for cross-origin redirects.`);this.opts.headers=nL(this.opts.headers,r===303,this.opts.origin!==i),this.opts.path=a,this.opts.origin=i,this.opts.query=null}onResponseData(e,r){this.location||this.handler.onResponseData?.(e,r)}onResponseEnd(e,r){this.location?this.dispatch(this.opts,this):this.handler.onResponseEnd(e,r)}onResponseError(e,r){this.handler.onResponseError?.(e,r)}};function pB(t,e,r){if(t.length===4)return Oe.headerNameToString(t)==="host";if(e&&Oe.headerNameToString(t).startsWith("content-"))return!0;if(r&&(t.length===13||t.length===6||t.length===19)){let n=Oe.headerNameToString(t);return n==="authorization"||n==="cookie"||n==="proxy-authorization"}return!1}function nL(t,e,r){let n=[];if(Array.isArray(t))for(let o=0;o<t.length;o+=2)pB(t[o],e,r)||n.push(t[o],t[o+1]);else if(t&&typeof t=="object"){let o=Oe.hasSafeIterator(t)?t:Object.entries(t);for(let[i,s]of o)pB(i,e,r)||n.push(i,s)}else Gl(t==null,"headers must be an object or an array");return n}hB.exports=Ol});var EB=B((Zz,CB)=>{"use strict";var oL=Hl();function iL({maxRedirections:t}={}){return e=>function(n,o){let{maxRedirections:i=t,...s}=n;if(i==null||i===0)return e(n,o);let A={...s},a=new oL(e,i,A,o);return e(A,a)}}CB.exports=iL});var QB=B((Xz,IB)=>{"use strict";var sL=uo(),{ResponseError:AL}=_(),Yl=class extends sL{#e;#t;#r;#n;#i;constructor(e,{handler:r}){super(r)}#o(e){return(this.#t??"").indexOf(e)===0}onRequestStart(e,r){return this.#e=0,this.#t=null,this.#r=null,this.#n=null,this.#i="",super.onRequestStart(e,r)}onResponseStart(e,r,n,o){if(this.#e=r,this.#n=n,this.#t=n["content-type"],this.#e<400)return super.onResponseStart(e,r,n,o);(this.#o("application/json")||this.#o("text/plain"))&&(this.#r=new TextDecoder("utf-8"))}onResponseData(e,r){if(this.#e<400)return super.onResponseData(e,r);this.#i+=this.#r?.decode(r,{stream:!0})??""}onResponseEnd(e,r){if(this.#e>=400){if(this.#i+=this.#r?.decode(void 0,{stream:!1})??"",this.#o("application/json"))try{this.#i=JSON.parse(this.#i)}catch{}let n,o=Error.stackTraceLimit;Error.stackTraceLimit=0;try{n=new AL("Response Error",this.#e,{body:this.#i,headers:this.#n})}finally{Error.stackTraceLimit=o}super.onResponseError(e,n)}else super.onResponseEnd(e,r)}onResponseError(e,r){super.onResponseError(e,r)}};IB.exports=()=>t=>function(r,n){return t(r,new Yl(r,{handler:n}))}});var mB=B((ej,BB)=>{"use strict";var aL=QA();BB.exports=t=>e=>function(n,o){return e(n,new aL({...n,retryOptions:{...t,...n.retryOptions}},{handler:o,dispatch:e}))}});var wB=B((tj,yB)=>{"use strict";var{InvalidArgumentError:cL,RequestAbortedError:dL}=_(),uL=uo(),Vl=class extends uL{#e=1024*1024;#t=!1;#r=0;#n=null;aborted=!1;reason=!1;constructor({maxSize:e,signal:r},n){if(e!=null&&(!Number.isFinite(e)||e<1))throw new cL("maxSize must be a number greater than 0");super(n),this.#e=e??this.#e}#i(e){this.aborted=!0,this.reason=e}onRequestStart(e,r){return e.abort=this.#i.bind(this),this.#n=e,super.onRequestStart(e,r)}onResponseStart(e,r,n,o){let i=n["content-length"];if(i!=null&&i>this.#e)throw new dL(`Response size (${i}) larger than maxSize (${this.#e})`);return this.aborted===!0?!0:super.onResponseStart(e,r,n,o)}onResponseError(e,r){this.#t||(r=this.#n?.reason??r,super.onResponseError(e,r))}onResponseData(e,r){return this.#r=this.#r+r.length,this.#r>=this.#e&&(this.#t=!0,this.aborted===!0?super.onResponseError(e,this.reason):super.onResponseEnd(e,{})),!0}onResponseEnd(e,r){if(!this.#t){if(this.#n.aborted===!0){super.onResponseError(e,this.reason);return}super.onResponseEnd(e,r)}}};function lL({maxSize:t}={maxSize:1024*1024}){return e=>function(n,o){let{dumpMaxSize:i=t}=n,s=new Vl({maxSize:i,signal:n.signal},o);return e(n,s)}}yB.exports=lL});var DB=B((rj,SB)=>{"use strict";var{isIP:gL}=require("node:net"),{lookup:fL}=require("node:dns"),pL=uo(),{InvalidArgumentError:En,InformationalError:hL}=_(),ql=Math.pow(2,31)-1;function CL(t){let e=Object.getPrototypeOf(t);return Object.prototype.hasOwnProperty.call(t,Symbol.iterator)||e!=null&&e!==Object.prototype&&typeof t[Symbol.iterator]=="function"}function RB(t){return typeof t=="string"&&t.toLowerCase()==="host"}function EL(t){if(t==null)return null;if(Array.isArray(t)){if(t.length===0||!Array.isArray(t[0]))return t;let e=[];for(let r of t)Array.isArray(r)&&r.length===2?e.push(r[0],r[1]):e.push(r);return e}if(typeof t=="object"&&CL(t)){let e=[];for(let r of t)Array.isArray(r)&&r.length===2?e.push(r[0],r[1]):e.push(r);return e}return t}function IL(t){if(t==null)return!1;if(Array.isArray(t)){if(t.length===0)return!1;for(let e=0;e<t.length;e+=2)if(RB(t[e]))return!0;return!1}if(typeof t=="object"){for(let e in t)if(RB(e))return!0}return!1}function bB(t,e){let r=EL(e);return IL(r)?r:Array.isArray(r)?["host",t,...r]:r&&typeof r=="object"?{host:t,...r}:{host:t}}var Wl=class{#e=0;#t=new Map;constructor(e){this.#e=e.maxItems}get size(){return this.#t.size}get(e){return this.#t.get(e)??null}set(e,r){this.#t.set(e,r)}delete(e){this.#t.delete(e)}full(){return this.size>=this.#e}},Jl=class{#e=0;#t=0;dualStack=!0;affinity=null;lookup=null;pick=null;storage=null;constructor(e){this.#e=e.maxTTL,this.#t=e.maxItems,this.dualStack=e.dualStack,this.affinity=e.affinity,this.lookup=e.lookup??this.#r,this.pick=e.pick??this.#n,this.storage=e.storage??new Wl(e)}runLookup(e,r,n){let o=this.storage.get(e.hostname);if(o==null&&this.storage.full()){n(null,e);return}let i={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...r.dns,maxTTL:this.#e,maxItems:this.#t};if(o==null)this.lookup(e,i,(s,A)=>{if(s||A==null||A.length===0){n(s??new hL("No DNS entries found"));return}this.setRecords(e,A);let a=this.storage.get(e.hostname),c=this.pick(e,a,i.affinity),d;typeof c.port=="number"?d=`:${c.port}`:e.port!==""?d=`:${e.port}`:d="",n(null,new URL(`${e.protocol}//${c.family===6?`[${c.address}]`:c.address}${d}`))});else{let s=this.pick(e,o,i.affinity);if(s==null){this.storage.delete(e.hostname),this.runLookup(e,r,n);return}let A;typeof s.port=="number"?A=`:${s.port}`:e.port!==""?A=`:${e.port}`:A="",n(null,new URL(`${e.protocol}//${s.family===6?`[${s.address}]`:s.address}${A}`))}}#r(e,r,n){fL(e.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:"ipv4first"},(o,i)=>{if(o)return n(o);let s=new Map;for(let A of i)s.set(`${A.address}:${A.family}`,A);n(null,s.values())})}#n(e,r,n){let o=null,{records:i,offset:s}=r,A;if(this.dualStack?(n==null&&(s==null||s===ql?(r.offset=0,n=4):(r.offset++,n=(r.offset&1)===1?6:4)),i[n]!=null&&i[n].ips.length>0?A=i[n]:A=i[n===4?6:4]):A=i[n],A==null||A.ips.length===0)return o;A.offset==null||A.offset===ql?A.offset=0:A.offset++;let a=A.offset%A.ips.length;return o=A.ips[a]??null,o==null?o:Date.now()-o.timestamp>o.ttl?(A.ips.splice(a,1),this.pick(e,r,n)):o}pickFamily(e,r){let n=this.storage.get(e.hostname)?.records;if(!n)return null;let o=n[r];if(!o)return null;o.offset==null||o.offset===ql?o.offset=0:o.offset++;let i=o.offset%o.ips.length,s=o.ips[i]??null;return s==null||Date.now()-s.timestamp>s.ttl&&o.ips.splice(i,1),s}setRecords(e,r){let n=Date.now(),o={records:{4:null,6:null}},i=this.#e;for(let s of r){s.timestamp=n,typeof s.ttl=="number"?(s.ttl=Math.min(s.ttl,this.#e),i=Math.min(i,s.ttl)):s.ttl=this.#e;let A=o.records[s.family]??{ips:[]};A.ips.push(s),o.records[s.family]=A}this.storage.set(e.hostname,o,{ttl:i})}deleteRecords(e){this.storage.delete(e.hostname)}getHandler(e,r){return new Kl(this,e,r)}},Kl=class extends pL{#e=null;#t=null;#r=null;#n=null;#i=null;#o=null;#a=!0;constructor(e,{origin:r,handler:n,dispatch:o,newOrigin:i},s){super(n),this.#n=r,this.#o=i,this.#t={...s},this.#e=e,this.#r=o}onResponseError(e,r){switch(r.code){case"ETIMEDOUT":case"ECONNREFUSED":{if(this.#e.dualStack){if(!this.#a){super.onResponseError(e,r);return}this.#a=!1;let n=this.#o.hostname[0]==="["?4:6,o=this.#e.pickFamily(this.#n,n);if(o==null){super.onResponseError(e,r);return}let i;typeof o.port=="number"?i=`:${o.port}`:this.#n.port!==""?i=`:${this.#n.port}`:i="";let s={...this.#t,origin:`${this.#n.protocol}//${o.family===6?`[${o.address}]`:o.address}${i}`,headers:bB(this.#n.host,this.#t.headers)};this.#r(s,this);return}super.onResponseError(e,r);break}case"ENOTFOUND":this.#e.deleteRecords(this.#n),super.onResponseError(e,r);break;default:super.onResponseError(e,r);break}}};SB.exports=t=>{if(t?.maxTTL!=null&&(typeof t?.maxTTL!="number"||t?.maxTTL<0))throw new En("Invalid maxTTL. Must be a positive number");if(t?.maxItems!=null&&(typeof t?.maxItems!="number"||t?.maxItems<1))throw new En("Invalid maxItems. Must be a positive number and greater than zero");if(t?.affinity!=null&&t?.affinity!==4&&t?.affinity!==6)throw new En("Invalid affinity. Must be either 4 or 6");if(t?.dualStack!=null&&typeof t?.dualStack!="boolean")throw new En("Invalid dualStack. Must be a boolean");if(t?.lookup!=null&&typeof t?.lookup!="function")throw new En("Invalid lookup. Must be a function");if(t?.pick!=null&&typeof t?.pick!="function")throw new En("Invalid pick. Must be a function");if(t?.storage!=null&&(typeof t?.storage?.get!="function"||typeof t?.storage?.set!="function"||typeof t?.storage?.full!="function"||typeof t?.storage?.delete!="function"))throw new En("Invalid storage. Must be a object with methods: { get, set, full, delete }");let e=t?.dualStack??!0,r;e?r=t?.affinity??null:r=t?.affinity??4;let n={maxTTL:t?.maxTTL??1e4,lookup:t?.lookup??null,pick:t?.pick??null,dualStack:e,affinity:r,maxItems:t?.maxItems??1/0,storage:t?.storage},o=new Jl(n);return i=>function(A,a){let c=A.origin.constructor===URL?A.origin:new URL(A.origin);return gL(c.hostname)!==0?i(A,a):(o.runLookup(c,A,(d,l)=>{if(d)return a.onResponseError(null,d);let u={...A,servername:c.hostname,origin:l.origin,headers:bB(c.host,A.headers)};i(u,o.getHandler({origin:c,dispatch:i,handler:a,newOrigin:l},A))}),!0)}}});var lo=B((nj,_B)=>{"use strict";var{safeHTTPMethods:kB,pathHasQueryOrFragment:QL,hasSafeIterator:BL,isValidHTTPToken:vi}=O(),{serializePathWithQuery:mL}=O(),yL=2147483647,NB=["no-store","private","no-cache"],zl=Symbol("invalid cache-control directives");function In(t){return t.replace(/^[\t ]+|[\t ]+$/g,"")}function PB(t,e){for(let r=0;r<t.length;r++)if(t[r]===e)return!0;return!1}function MB(t){return t.replace(/^[\t ]+/,"")}function TB(t){return t.replace(/[\t ]+$/,"")}function xB(t,e){let r=!1;for(let n=e;n<t.length;n++)if(r)r=!1;else if(t[n]==="\\")r=!0;else if(t[n]==='"')return n;return-1}function wL(t){let e=[],r=0,n=-1,o=!1,i=!1;for(let c=0;c<t.length;c++)o?i?i=!1:t[c]==="\\"?i=!0:t[c]==='"'&&(o=!1,n=-1):t[c]==='"'?(o=!0,n=c):t[c]===","&&(e.push({value:t.substring(r,c),fromMalformedQuote:!1}),r=c+1);if(!o)return e.push({value:t.substring(r),fromMalformedQuote:!1}),e;let s=t.substring(r),A=n-r,a=0;for(let c=0;c<s.length;c++)s[c]===","&&(e.push({value:s.substring(a,c),fromMalformedQuote:a>A}),a=c+1);return e.push({value:s.substring(a),fromMalformedQuote:a>A}),e}function UB(t,e){let r=t[zl];r===void 0&&(r=new Set,Object.defineProperty(t,zl,{value:r})),r.add(e)}function RL(t,e){return t[zl]?.has(e)===!0}function bL(t){for(let n of NB)if(t.startsWith(n)&&t.length>n.length&&!vi(t[n.length]))return n;let e="",r=!1;for(let n=0;n<t.length;n++)vi(t[n])?e+=t[n]:r=!0;if(r&&PB(NB,e))return e}function SL(t){if(!t.origin)throw new Error("opts.origin is undefined");let e=t.path||"/";return t.query&&!QL(e)&&(e=mL(e,t.query)),{origin:t.origin.toString(),method:t.method,path:e,headers:t.headers}}function FB(t,e,r){let n=e.toLowerCase(),o=t[n],i=Array.isArray(r)?r:[r];o===void 0?t[n]=Array.isArray(r)?r.slice():r:Array.isArray(o)?o.push(...i):t[n]=[o,...i]}function DL(t){let e;if(t.headers==null)e={};else if(typeof t.headers=="object")if(e={},BL(t.headers))for(let r of t.headers){if(!Array.isArray(r))throw new Error("opts.headers is not a valid header map");let[n,o]=r;if(typeof n!="string"||typeof o!="string")throw new Error("opts.headers is not a valid header map");FB(e,n,o)}else for(let r of Object.keys(t.headers))FB(e,r,t.headers[r]);else throw new Error("opts.headers is not an object");return e}function kL(t){if(typeof t!="object")throw new TypeError(`expected key to be object, got ${typeof t}`);for(let e of["origin","method","path"])if(typeof t[e]!="string")throw new TypeError(`expected key.${e} to be string, got ${typeof t[e]}`);if(t.headers!==void 0&&typeof t.headers!="object")throw new TypeError(`expected headers to be object, got ${typeof t}`)}function NL(t){if(typeof t!="object")throw new TypeError(`expected value to be object, got ${typeof t}`);for(let e of["statusCode","cachedAt","staleAt","deleteAt"])if(typeof t[e]!="number")throw new TypeError(`expected value.${e} to be number, got ${typeof t[e]}`);if(typeof t.statusMessage!="string")throw new TypeError(`expected value.statusMessage to be string, got ${typeof t.statusMessage}`);if(t.headers!=null&&typeof t.headers!="object")throw new TypeError(`expected value.rawHeaders to be object, got ${typeof t.headers}`);if(t.vary!==void 0&&typeof t.vary!="object")throw new TypeError(`expected value.vary to be object, got ${typeof t.vary}`);if(t.etag!==void 0&&typeof t.etag!="string")throw new TypeError(`expected value.etag to be string, got ${typeof t.etag}`)}function ML(t){let e={},r=new Set,n=new Set,o=wL(Array.isArray(t)?t.join(","):t);for(let i=0;i<o.length;i++){let s=o[i],A=s.value.toLowerCase(),a=s.fromMalformedQuote,c=A.indexOf("="),d,l,u=!1,p=!1;if(c!==-1){let I=A.substring(0,c),m=A.substring(c+1);u=TB(I)!==I,p=MB(m)!==m,d=In(I),l=MB(m)}else d=In(A);let h=bL(d);if(h!==void 0){e[h]=!0;continue}switch(d){case"min-fresh":case"max-stale":case"max-age":case"s-maxage":case"stale-while-revalidate":case"stale-if-error":{if(a||r.has(d))continue;if(l===void 0||u||p){delete e[d],r.add(d),UB(e,d);continue}if(l.length>=2&&l[0]==='"'&&l[l.length-1]==='"'&&(l=l.substring(1,l.length-1)),!/^[0-9]+$/.test(l)){delete e[d],r.add(d),UB(e,d);continue}let I=Math.min(parseInt(l,10),yL);d==="min-fresh"?(!(d in e)||e[d]<I)&&(e[d]=I):(!(d in e)||e[d]>I)&&(e[d]=I);break}case"private":case"no-cache":{if(a){e[d]=!0;break}if(l!==void 0&&l.length===0){e[d]=!0;break}if(l){if(l[0]==='"'){l=TB(l);let I="",m=i,E=!1,Q=xB(l,1);if(Q!==-1)I=l.substring(1,Q),E=!0;else{let b=[l.substring(1)];for(let F=i+1;F<o.length;F++){let k=In(o[F].value),x=xB(k,0);if(m=F,x!==-1){b.push(k.substring(0,x)),E=!0;break}b.push(k)}I=b.join(",")}if(!E){e[d]=!0;break}i=m;let y=I.split(","),v=!0;for(let b=0;b<y.length;b++)y[b]=In(y[b]),vi(y[b])||(v=!1);v?e[d]!==!0&&(d in e?e[d]=e[d].concat(y):e[d]=y):e[d]=!0}else{let I=In(l);vi(I)?e[d]!==!0&&(d in e?e[d]=e[d].concat(I):e[d]=[I]):e[d]=!0}break}}case"public":case"must-revalidate":case"proxy-revalidate":case"immutable":case"no-transform":case"must-understand":case"only-if-cached":if(a||n.has(d))continue;if(l!==void 0){delete e[d],n.add(d);continue}e[d]=!0;break;case"no-store":e[d]=!0;break;default:continue}}return e}function LB(t){let e=Array.isArray(t)?t:[t],r=[];for(let n=0;n<e.length;n++){let o=e[n].split(",");for(let i=0;i<o.length;i++)r.push(o[i])}return r}function jl(t){let e=LB(t);for(let r=0;r<e.length;r++)if(In(e[r]).indexOf("*")!==-1)return!0;return!1}function vB(t,e){if(jl(t))return e;let r={},n=LB(t);for(let o of n){let i=In(o).toLowerCase();if(i.length===0)continue;if(!vi(i))return;let s=e[i];r[i]=Array.isArray(s)?s.slice():s??null}return r}function TL(t){return jl(t)||vB(t,{})===void 0}function xL(t){return t.length<=2?!1:t[0]==='"'&&t[t.length-1]==='"'?!(t[1]==='"'||t.startsWith('"W/')):t.startsWith('W/"')&&t[t.length-1]==='"'?t.length!==4:!1}function UL(t,e="CacheStore"){if(typeof t!="object"||t===null)throw new TypeError(`expected type of ${e} to be a CacheStore, got ${t===null?"null":typeof t}`);for(let r of["get","createWriteStream","delete"])if(typeof t[r]!="function")throw new TypeError(`${e} needs to have a \`${r}()\` function`)}function FL(t,e="CacheMethods"){if(!Array.isArray(t))throw new TypeError(`expected type of ${e} needs to be an array, got ${t===null?"null":typeof t}`);if(t.length===0)throw new TypeError(`${e} needs to have at least one method`);for(let r of t)if(!PB(kB,r))throw new TypeError(`element of ${e}-array needs to be one of following values: ${kB.join(", ")}, got ${r}`)}function PL(t,e){let r={};if(t.headers){let n=Object.keys(t.headers).sort();for(let o of n)e?.has(o.toLowerCase())||(r[o]=t.headers[o])}return JSON.stringify([t.origin,t.method,t.path,r])}_B.exports={makeCacheKey:SL,normalizeHeaders:DL,assertCacheKey:kL,assertCacheValue:NL,parseCacheControlHeader:ML,hasInvalidCacheControlDirective:RL,parseVaryHeader:vB,hasVaryStar:jl,isInvalidOrWildcardVaryHeader:TL,isEtagUsable:xL,assertCacheMethods:FL,assertCacheStore:UL,makeDeduplicationKey:PL}});var Zl=B((oj,OB)=>{"use strict";function LL(t){switch(t[3]){case",":return vL(t);case" ":return _L(t);default:return OL(t)}}function $l(t,e,r,n,o,i,s){let A=new Date(Date.UTC(t,e,r,n,o,i));return t>=0&&t<=99&&A.setUTCFullYear(t),A.getUTCFullYear()===t&&A.getUTCMonth()===e&&A.getUTCDate()===r&&A.getUTCHours()===n&&A.getUTCMinutes()===o&&A.getUTCSeconds()===i&&A.getUTCDay()===s?A:void 0}function vL(t){if(t.length!==29||t[4]!==" "||t[7]!==" "||t[11]!==" "||t[16]!==" "||t[19]!==":"||t[22]!==":"||t[25]!==" "||t[26]!=="G"||t[27]!=="M"||t[28]!=="T")return;let e=-1;if(t[0]==="S"&&t[1]==="u"&&t[2]==="n")e=0;else if(t[0]==="M"&&t[1]==="o"&&t[2]==="n")e=1;else if(t[0]==="T"&&t[1]==="u"&&t[2]==="e")e=2;else if(t[0]==="W"&&t[1]==="e"&&t[2]==="d")e=3;else if(t[0]==="T"&&t[1]==="h"&&t[2]==="u")e=4;else if(t[0]==="F"&&t[1]==="r"&&t[2]==="i")e=5;else if(t[0]==="S"&&t[1]==="a"&&t[2]==="t")e=6;else return;let r=0;if(t[5]==="0"){let u=t.charCodeAt(6);if(u<49||u>57)return;r=u-48}else{let u=t.charCodeAt(5);if(u<49||u>51)return;let p=t.charCodeAt(6);if(p<48||p>57)return;r=(u-48)*10+(p-48)}let n=-1;if(t[8]==="J"&&t[9]==="a"&&t[10]==="n")n=0;else if(t[8]==="F"&&t[9]==="e"&&t[10]==="b")n=1;else if(t[8]==="M"&&t[9]==="a")if(t[10]==="r")n=2;else if(t[10]==="y")n=4;else return;else if(t[8]==="J")if(t[9]==="a"&&t[10]==="n")n=0;else if(t[9]==="u")if(t[10]==="n")n=5;else if(t[10]==="l")n=6;else return;else return;else if(t[8]==="A")if(t[9]==="p"&&t[10]==="r")n=3;else if(t[9]==="u"&&t[10]==="g")n=7;else return;else if(t[8]==="S"&&t[9]==="e"&&t[10]==="p")n=8;else if(t[8]==="O"&&t[9]==="c"&&t[10]==="t")n=9;else if(t[8]==="N"&&t[9]==="o"&&t[10]==="v")n=10;else if(t[8]==="D"&&t[9]==="e"&&t[10]==="c")n=11;else return;let o=t.charCodeAt(12);if(o<48||o>57)return;let i=t.charCodeAt(13);if(i<48||i>57)return;let s=t.charCodeAt(14);if(s<48||s>57)return;let A=t.charCodeAt(15);if(A<48||A>57)return;let a=(o-48)*1e3+(i-48)*100+(s-48)*10+(A-48),c=0;if(t[17]==="0"){let u=t.charCodeAt(18);if(u<48||u>57)return;c=u-48}else{let u=t.charCodeAt(17);if(u<48||u>50)return;let p=t.charCodeAt(18);if(p<48||p>57||u===50&&p>51)return;c=(u-48)*10+(p-48)}let d=0;if(t[20]==="0"){let u=t.charCodeAt(21);if(u<48||u>57)return;d=u-48}else{let u=t.charCodeAt(20);if(u<48||u>53)return;let p=t.charCodeAt(21);if(p<48||p>57)return;d=(u-48)*10+(p-48)}let l=0;if(t[23]==="0"){let u=t.charCodeAt(24);if(u<48||u>57)return;l=u-48}else{let u=t.charCodeAt(23);if(u<48||u>53)return;let p=t.charCodeAt(24);if(p<48||p>57)return;l=(u-48)*10+(p-48)}return $l(a,n,r,c,d,l,e)}function _L(t){if(t.length!==24||t[7]!==" "||t[10]!==" "||t[19]!==" ")return;let e=-1;if(t[0]==="S"&&t[1]==="u"&&t[2]==="n")e=0;else if(t[0]==="M"&&t[1]==="o"&&t[2]==="n")e=1;else if(t[0]==="T"&&t[1]==="u"&&t[2]==="e")e=2;else if(t[0]==="W"&&t[1]==="e"&&t[2]==="d")e=3;else if(t[0]==="T"&&t[1]==="h"&&t[2]==="u")e=4;else if(t[0]==="F"&&t[1]==="r"&&t[2]==="i")e=5;else if(t[0]==="S"&&t[1]==="a"&&t[2]==="t")e=6;else return;let r=-1;if(t[4]==="J"&&t[5]==="a"&&t[6]==="n")r=0;else if(t[4]==="F"&&t[5]==="e"&&t[6]==="b")r=1;else if(t[4]==="M"&&t[5]==="a")if(t[6]==="r")r=2;else if(t[6]==="y")r=4;else return;else if(t[4]==="J")if(t[5]==="a"&&t[6]==="n")r=0;else if(t[5]==="u")if(t[6]==="n")r=5;else if(t[6]==="l")r=6;else return;else return;else if(t[4]==="A")if(t[5]==="p"&&t[6]==="r")r=3;else if(t[5]==="u"&&t[6]==="g")r=7;else return;else if(t[4]==="S"&&t[5]==="e"&&t[6]==="p")r=8;else if(t[4]==="O"&&t[5]==="c"&&t[6]==="t")r=9;else if(t[4]==="N"&&t[5]==="o"&&t[6]==="v")r=10;else if(t[4]==="D"&&t[5]==="e"&&t[6]==="c")r=11;else return;let n=0;if(t[8]===" "){let u=t.charCodeAt(9);if(u<49||u>57)return;n=u-48}else{let u=t.charCodeAt(8);if(u<49||u>51)return;let p=t.charCodeAt(9);if(p<48||p>57)return;n=(u-48)*10+(p-48)}let o=0;if(t[11]==="0"){let u=t.charCodeAt(12);if(u<48||u>57)return;o=u-48}else{let u=t.charCodeAt(11);if(u<48||u>50)return;let p=t.charCodeAt(12);if(p<48||p>57||u===50&&p>51)return;o=(u-48)*10+(p-48)}let i=0;if(t[14]==="0"){let u=t.charCodeAt(15);if(u<48||u>57)return;i=u-48}else{let u=t.charCodeAt(14);if(u<48||u>53)return;let p=t.charCodeAt(15);if(p<48||p>57)return;i=(u-48)*10+(p-48)}let s=0;if(t[17]==="0"){let u=t.charCodeAt(18);if(u<48||u>57)return;s=u-48}else{let u=t.charCodeAt(17);if(u<48||u>53)return;let p=t.charCodeAt(18);if(p<48||p>57)return;s=(u-48)*10+(p-48)}let A=t.charCodeAt(20);if(A<48||A>57)return;let a=t.charCodeAt(21);if(a<48||a>57)return;let c=t.charCodeAt(22);if(c<48||c>57)return;let d=t.charCodeAt(23);if(d<48||d>57)return;let l=(A-48)*1e3+(a-48)*100+(c-48)*10+(d-48);return $l(l,r,n,o,i,s,e)}function OL(t){let e=-1,r=-1;if(t[0]==="S")t[1]==="u"&&t[2]==="n"&&t[3]==="d"&&t[4]==="a"&&t[5]==="y"?(r=0,e=6):t[1]==="a"&&t[2]==="t"&&t[3]==="u"&&t[4]==="r"&&t[5]==="d"&&t[6]==="a"&&t[7]==="y"&&(r=6,e=8);else if(t[0]==="M"&&t[1]==="o"&&t[2]==="n"&&t[3]==="d"&&t[4]==="a"&&t[5]==="y")r=1,e=6;else if(t[0]==="T")t[1]==="u"&&t[2]==="e"&&t[3]==="s"&&t[4]==="d"&&t[5]==="a"&&t[6]==="y"?(r=2,e=7):t[1]==="h"&&t[2]==="u"&&t[3]==="r"&&t[4]==="s"&&t[5]==="d"&&t[6]==="a"&&t[7]==="y"&&(r=4,e=8);else if(t[0]==="W"&&t[1]==="e"&&t[2]==="d"&&t[3]==="n"&&t[4]==="e"&&t[5]==="s"&&t[6]==="d"&&t[7]==="a"&&t[8]==="y")r=3,e=9;else if(t[0]==="F"&&t[1]==="r"&&t[2]==="i"&&t[3]==="d"&&t[4]==="a"&&t[5]==="y")r=5,e=6;else return;if(t[e]!==","||t.length-e-1!==23||t[e+1]!==" "||t[e+4]!=="-"||t[e+8]!=="-"||t[e+11]!==" "||t[e+14]!==":"||t[e+17]!==":"||t[e+20]!==" "||t[e+21]!=="G"||t[e+22]!=="M"||t[e+23]!=="T")return;let n=0;if(t[e+2]==="0"){let l=t.charCodeAt(e+3);if(l<49||l>57)return;n=l-48}else{let l=t.charCodeAt(e+2);if(l<49||l>51)return;let u=t.charCodeAt(e+3);if(u<48||u>57)return;n=(l-48)*10+(u-48)}let o=-1;if(t[e+5]==="J"&&t[e+6]==="a"&&t[e+7]==="n")o=0;else if(t[e+5]==="F"&&t[e+6]==="e"&&t[e+7]==="b")o=1;else if(t[e+5]==="M"&&t[e+6]==="a"&&t[e+7]==="r")o=2;else if(t[e+5]==="A"&&t[e+6]==="p"&&t[e+7]==="r")o=3;else if(t[e+5]==="M"&&t[e+6]==="a"&&t[e+7]==="y")o=4;else if(t[e+5]==="J"&&t[e+6]==="u"&&t[e+7]==="n")o=5;else if(t[e+5]==="J"&&t[e+6]==="u"&&t[e+7]==="l")o=6;else if(t[e+5]==="A"&&t[e+6]==="u"&&t[e+7]==="g")o=7;else if(t[e+5]==="S"&&t[e+6]==="e"&&t[e+7]==="p")o=8;else if(t[e+5]==="O"&&t[e+6]==="c"&&t[e+7]==="t")o=9;else if(t[e+5]==="N"&&t[e+6]==="o"&&t[e+7]==="v")o=10;else if(t[e+5]==="D"&&t[e+6]==="e"&&t[e+7]==="c")o=11;else return;let i=t.charCodeAt(e+9);if(i<48||i>57)return;let s=t.charCodeAt(e+10);if(s<48||s>57)return;let A=(i-48)*10+(s-48);A+=A<70?2e3:1900;let a=0;if(t[e+12]==="0"){let l=t.charCodeAt(e+13);if(l<48||l>57)return;a=l-48}else{let l=t.charCodeAt(e+12);if(l<48||l>50)return;let u=t.charCodeAt(e+13);if(u<48||u>57||l===50&&u>51)return;a=(l-48)*10+(u-48)}let c=0;if(t[e+15]==="0"){let l=t.charCodeAt(e+16);if(l<48||l>57)return;c=l-48}else{let l=t.charCodeAt(e+15);if(l<48||l>53)return;let u=t.charCodeAt(e+16);if(u<48||u>57)return;c=(l-48)*10+(u-48)}let d=0;if(t[e+18]==="0"){let l=t.charCodeAt(e+19);if(l<48||l>57)return;d=l-48}else{let l=t.charCodeAt(e+18);if(l<48||l>53)return;let u=t.charCodeAt(e+19);if(u<48||u>57)return;d=(l-48)*10+(u-48)}return $l(A,o,n,a,c,d,r)}OB.exports={parseHttpDate:LL}});var JB=B((ij,WB)=>{"use strict";var Xl=O(),{parseCacheControlHeader:GL,hasInvalidCacheControlDirective:GB,parseVaryHeader:HL,hasVaryStar:YL,isInvalidOrWildcardVaryHeader:YB,isEtagUsable:VL}=lo(),{parseHttpDate:eg}=Zl();function qL(){}var VB=[200,203,204,206,300,301,308,404,405,410,414,501],WL=[206],_i=2147483647e3;function JL(t){return t.replace(/^[\t ]+|[\t ]+$/g,"")}function go(t,e){for(let r=0;r<t.length;r++)if(t[r]===e)return!0;return!1}function KL(t,e){let r=Array.isArray(e)?e:[e];for(let n=0;n<r.length;n++){let o=r[n].split(",");for(let i=0;i<o.length;i++)t.push(JL(o[i]).toLowerCase())}}function zL(t,e){if(typeof e!="string")return;let r,n,o;try{r=new URL(t.origin),n=new URL(t.path,r),o=new URL(e,n)}catch{return}if(o.origin===r.origin)return o.pathname+o.search}function qB(t,e,r){Oi(t,{...e,path:r});for(let n=0;n<Xl.safeHTTPMethods.length;n++){let o=Xl.safeHTTPMethods[n];o!==e.method&&Oi(t,{...e,method:o,path:r})}}function HB(t,e,r){if(r===void 0)return;let n=Array.isArray(r)?r:[r];for(let o=0;o<n.length;o++){let i=zL(e,n[o]);i!==void 0&&qB(t,e,i)}}function jL(t,e,r){qB(t,e,e.path),HB(t,e,r.location),HB(t,e,r["content-location"])}var tg=class{#e;#t;#r;#n;#i;#o;constructor({store:e,type:r,cacheByDefault:n},o,i){this.#n=e,this.#t=r,this.#r=n,this.#e=o,this.#i=i}onRequestStart(e,r){this.#o?.destroy(),this.#o=void 0,this.#i.onRequestStart?.(e,r)}onRequestUpgrade(e,r,n,o){this.#i.onRequestUpgrade?.(e,r,n,o)}onResponseStart(e,r,n,o){let i=()=>this.#i.onResponseStart?.(e,r,n,o),s=this;if(!go(Xl.safeHTTPMethods,this.#e.method)&&r>=200&&r<=399)return jL(this.#n,this.#e,n),i();let A=n["cache-control"],a=n["last-modified"]&&go(VB,r);if(!A&&!n.expires&&!a&&!this.#r)return r===304&&n.vary&&YB(n.vary)&&Oi(this.#n,this.#e),i();let c=A?GL(A):{};if(!ZL(this.#t,r,n,c,this.#e.headers))return r===304&&(A||$L(this.#t,n,c))&&Oi(this.#n,this.#e),i();let d=Date.now(),l=Object.hasOwn(n,"age")?ev(n.age):void 0;if(l!==void 0&&l>=_i)return LA(r,this.#n,this.#e),i();let u=Object.hasOwn(n,"date")?XL(n.date):void 0;if(u===null)return LA(r,this.#n,this.#e),i();let p=u?Math.max(0,d-u.getTime()):0,h=Math.max(p,l??0),I=tv(this.#t,d,l,n,u,c)??this.#r;if(I===void 0||h>=I)return(A||I!==void 0)&&LA(r,this.#n,this.#e),i();let m=d-h,E=I+m;if(d>=E)return LA(r,this.#n,this.#e),i();let Q;if(this.#e.headers&&n.vary&&(Q=HL(n.vary,this.#e.headers),!Q))return i();let y=m,v=rv(m,d,c,E),b=nv(n,c),F={statusCode:r,statusMessage:o,headers:b,vary:Q,cacheControlDirectives:c,cachedAt:y,staleAt:E,deleteAt:v};if(r===304){let k=U=>{if(!U)return i();if(F.statusCode=U.statusCode,F.statusMessage=U.statusMessage,F.etag=U.etag,F.vary=Q??U.vary,F.headers={...U.headers,...b},i(),this.#o=this.#n.createWriteStream(this.#e,F),!(!this.#o||!U?.body))if(typeof U.body.values=="function"){let q=U.body.values(),ie=()=>{for(let oe of q){let Ne=this.#o.write(oe)===!1;if(this.#i.onResponseData?.(e,oe),Ne)break}};this.#o.on("error",function(){s.#o=void 0,s.#n.delete(s.#e)}).on("drain",()=>{ie()}).on("close",function(){s.#o===this&&(s.#o=void 0)}),ie()}else typeof U.body.on=="function"&&(U.body.on("data",q=>{this.#o.write(q),this.#i.onResponseData?.(e,q)}).on("end",()=>{this.#o.end()}).on("error",()=>{this.#o=void 0,this.#n.delete(this.#e)}),this.#o.on("error",function(){s.#o=void 0,s.#n.delete(s.#e)}).on("close",function(){s.#o===this&&(s.#o=void 0)}))},x=this.#n.get(this.#e);x&&typeof x.then=="function"?x.then(k):k(x)}else{if(typeof n.etag=="string"&&VL(n.etag)&&(F.etag=n.etag),this.#o=this.#n.createWriteStream(this.#e,F),!this.#o)return i();this.#o.on("drain",()=>e.resume()).on("error",function(){s.#o=void 0,s.#n.delete(s.#e)}).on("close",function(){s.#o===this&&(s.#o=void 0),e.resume()}),i()}}onResponseData(e,r){this.#o?.write(r)===!1&&e.pause(),this.#i.onResponseData?.(e,r)}onResponseEnd(e,r){this.#o?.end(),this.#i.onResponseEnd?.(e,r)}onResponseError(e,r){this.#o?.destroy(r),this.#o=void 0,this.#i.onResponseError?.(e,r)}};function Oi(t,e){try{t.delete(e)?.catch?.(qL)}catch{}}function LA(t,e,r){t===304&&Oi(e,r)}function $L(t,e,r){return r["no-store"]===!0||t==="shared"&&r.private===!0||(e.vary?YB(e.vary):!1)}function ZL(t,e,r,n,o){return!(e<200||go(WL,e)||!go(VB,e)&&!r.expires&&!n.public&&n["max-age"]===void 0&&!(n.private&&t==="private")&&!(n["s-maxage"]!==void 0&&t==="shared")||n["no-store"]||t==="shared"&&n.private===!0||r.vary&&YL(r.vary)||o!=null&&Object.hasOwn(o,"authorization")&&(!n.public&&!n["s-maxage"]&&!n["must-revalidate"]||typeof o.authorization!="string"||Array.isArray(n["no-cache"])&&go(n["no-cache"],"authorization")||Array.isArray(n.private)&&go(n.private,"authorization")))}function XL(t){let e=t;if(Array.isArray(e)){if(e.length!==1)return null;e=e[0]}return typeof e!="string"?null:eg(e)}function ev(t){let e=t;if(Array.isArray(e)){if(e.length!==1)return _i;e=e[0]}if(typeof e!="string"||!/^[\t ]*[0-9]+[\t ]*$/.test(e))return _i;let r=BigInt(e.replace(/^[\t ]+|[\t ]+$/g,""));return r>=BigInt(_i/1e3)?_i:Number(r)*1e3}function tv(t,e,r,n,o,i){if(t==="shared"){if(GB(i,"s-maxage"))return 0;let A=i["s-maxage"];if(A!==void 0)return A*1e3}if(GB(i,"max-age"))return 0;let s=i["max-age"];if(s!==void 0)return s*1e3;if(Object.hasOwn(n,"expires")){if(typeof n.expires!="string")return 0;let A=eg(n.expires);if(!A||e>=A.getTime())return 0;if(o){if(o>=A)return 0;let a=A.getTime()-o.getTime();return r!==void 0&&r>=a?0:a}return A.getTime()-e}if(typeof n["last-modified"]=="string"){let A=eg(n["last-modified"]);if(A)return A.getTime()>=e?void 0:(e-A.getTime())*.1}if(i.immutable)return 31536e6}function rv(t,e,r,n){let o=-1/0,i=-1/0,s=-1/0;if(r["stale-while-revalidate"]&&(o=n+r["stale-while-revalidate"]*1e3),r["stale-if-error"]&&(i=n+r["stale-if-error"]*1e3),r.immutable&&o===-1/0&&i===-1/0&&(s=e+31536e6),o===-1/0&&i===-1/0&&s===-1/0){let A=n-t,a=Math.min(Math.max(e-t,0),1e3);return n+A+a}return Math.max(n,o,i,s)}function nv(t,e){let r=["connection","proxy-authenticate","proxy-authentication-info","proxy-authorization","proxy-connection","te","transfer-encoding","upgrade","age"];t.connection&&KL(r,t.connection),Array.isArray(e["no-cache"])&&r.push(...e["no-cache"]),Array.isArray(e.private)&&r.push(...e.private);let n;for(let o of r)Object.hasOwn(t,o)&&(n??={...t},delete n[o]);return n??t}WB.exports=tg});var ng=B((sj,jB)=>{"use strict";var{Writable:ov}=require("node:stream"),{EventEmitter:iv}=require("node:events"),{assertCacheKey:KB,assertCacheValue:sv}=lo(),rg=class extends iv{#e=1024;#t=104857600;#r=5242880;#n=0;#i=0;#o=new Map;#a=!1;constructor(e){if(super(),e){if(typeof e!="object")throw new TypeError("MemoryCacheStore options must be an object");if(e.maxCount!==void 0){if(typeof e.maxCount!="number"||!Number.isInteger(e.maxCount)||e.maxCount<0)throw new TypeError("MemoryCacheStore options.maxCount must be a non-negative integer");this.#e=e.maxCount}if(e.maxSize!==void 0){if(typeof e.maxSize!="number"||!Number.isInteger(e.maxSize)||e.maxSize<0)throw new TypeError("MemoryCacheStore options.maxSize must be a non-negative integer");this.#t=e.maxSize}if(e.maxEntrySize!==void 0){if(typeof e.maxEntrySize!="number"||!Number.isInteger(e.maxEntrySize)||e.maxEntrySize<0)throw new TypeError("MemoryCacheStore options.maxEntrySize must be a non-negative integer");this.#r=e.maxEntrySize}}}get size(){return this.#n}isFull(){return this.#n>=this.#t||this.#i>=this.#e}get(e){KB(e);let r=`${e.origin}:${e.path}`,n=Date.now(),o=this.#o.get(r),i=o?zB(e,o,n):null;return i==null?void 0:{statusMessage:i.statusMessage,statusCode:i.statusCode,headers:i.headers,body:i.body,vary:i.vary?i.vary:void 0,etag:i.etag,cacheControlDirectives:i.cacheControlDirectives,cachedAt:i.cachedAt,staleAt:i.staleAt,deleteAt:i.deleteAt}}createWriteStream(e,r){KB(e),sv(r);let n=`${e.origin}:${e.path}`,o=this,i={...e,...r,body:[],size:0};return new ov({write(s,A,a){typeof s=="string"&&(s=Buffer.from(s,A)),i.size+=s.byteLength,i.size>=o.#r?this.destroy():i.body.push(s),a(null)},final(s){let A=o.#o.get(n);A||(A=[],o.#o.set(n,A));let a=zB(e,A,Date.now());if(a){let c=A.indexOf(a);A.splice(c,1,i),o.#n-=a.size}else A.push(i),o.#i+=1;if(o.#n+=i.size,o.#n>o.#t||o.#i>o.#e){o.#a||(o.emit("maxSizeExceeded",{size:o.#n,maxSize:o.#t,count:o.#i,maxCount:o.#e}),o.#a=!0);for(let[c,d]of o.#o){for(let l of d.splice(0,d.length/2))o.#n-=l.size,o.#i-=1;d.length===0&&o.#o.delete(c)}o.#n<o.#t&&o.#i<o.#e&&(o.#a=!1)}s(null)}})}delete(e){if(typeof e!="object")throw new TypeError(`expected key to be object, got ${typeof e}`);let r=`${e.origin}:${e.path}`;for(let n of this.#o.get(r)??[])this.#n-=n.size,this.#i-=1;this.#o.delete(r)}};function zB(t,e,r){for(let n=0;n<e.length;n++){let o=e[n];if(o.deleteAt>r&&o.method===t.method&&Av(t,o))return o}}function Av(t,e){if(e.vary==null)return!0;for(let r in e.vary)if(Object.hasOwn(e.vary,r)&&!av(t.headers?.[r],e.vary[r]))return!1;return!0}function av(t,e){if(t==null&&e==null)return!0;if(t==null&&e!=null||t!=null&&e==null)return!1;if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(t[r]!==e[r])return!1;return!0}return t===e}jB.exports=rg});var ZB=B((Aj,$B)=>{"use strict";var cv=require("node:assert"),og=class{#e=!1;#t;#r;#n;#i;constructor(e,r,n){if(typeof e!="function")throw new TypeError("callback must be a function");this.#t=e,this.#r=r,this.#i=n}onRequestStart(e,r){this.#e=!1,this.#n=r}onRequestUpgrade(e,r,n,o){this.#r.onRequestUpgrade?.(e,r,n,o)}onResponseStart(e,r,n,o){if(cv(this.#t!=null),this.#e=r===304||this.#i&&r>=500&&r<=504,this.#t(this.#e,this.#n,r,n),this.#t=null,this.#e)return!0;this.#r.onRequestStart?.(e,this.#n),this.#r.onResponseStart?.(e,r,n,o)}onResponseData(e,r){if(!this.#e)return this.#r.onResponseData?.(e,r)}onResponseEnd(e,r){this.#e||this.#r.onResponseEnd?.(e,r)}onResponseError(e,r){if(!this.#e)if(this.#t&&(this.#t(!1),this.#t=null),typeof this.#r.onResponseError=="function")this.#r.onResponseError(e,r);else throw r}};$B.exports=og});var sm=B((aj,im)=>{"use strict";var XB=require("node:assert"),{Readable:dv}=require("node:stream"),Mr=O(),fo=JB(),uv=ng(),lv=ZB(),{assertCacheStore:gv,assertCacheMethods:fv,makeCacheKey:pv,normalizeHeaders:hv,parseCacheControlHeader:om,isInvalidOrWildcardVaryHeader:Cv}=lo(),{AbortError:Ev}=_(),{parseHttpDate:Iv}=Zl();function Qv(t,e){if(t!==void 0){if(!Array.isArray(t))throw new TypeError(`expected ${e} to be an array or undefined, got ${typeof t}`);for(let r=0;r<t.length;r++){let n=t[r];if(typeof n!="string"&&!(n instanceof RegExp))throw new TypeError(`expected ${e}[${r}] to be a string or RegExp, got ${typeof n}`)}}}var Gi=()=>{};function Bv(t){return t.replace(/^[\t ]+|[\t ]+$/g,"")}function em(t,e){for(let r=0;r<t.length;r++)if(t[r]===e)return!0;return!1}function mv(t){let e=t?.pragma;if(!e)return!1;let r=Array.isArray(e)?e:[e];for(let n=0;n<r.length;n++){let o=r[n];if(typeof o!="string")continue;let i=o.split(",");for(let s=0;s<i.length;s++)if(Bv(i[s]).toLowerCase()==="no-cache")return!0}return!1}function yv(t,e,{headers:r={}}){return!!(e?.["no-cache"]||t.cacheControlDirectives?.["no-cache"]&&!Array.isArray(t.cacheControlDirectives["no-cache"])||r["if-modified-since"]||r["if-none-match"])}function sg(t,e){return t.cacheControlDirectives?.["must-revalidate"]===!0||e==="shared"&&(t.cacheControlDirectives?.["proxy-revalidate"]===!0||t.cacheControlDirectives?.["s-maxage"]!==void 0)}function wv(t,e){if(e.vary&&Cv(e.vary))return!0;let r=e["cache-control"];if(!r)return!1;let n=om(r);return n["no-store"]===!0||t==="shared"&&n.private===!0}function Rv(t){return t["cache-control"]!==void 0}function tm(t,e){try{t.delete(e)?.catch?.(Gi)}catch{}}function bv(t){let e=t?.["last-modified"];if(typeof e=="string"&&Iv(e))return e}function rm(t,e){let r={...t.headers,"if-modified-since":bv(e.headers)??new Date(e.cachedAt).toUTCString()};if(e.etag&&(r["if-none-match"]=e.etag),e.vary)for(let n in e.vary)e.vary[n]!=null&&(r[n]=e.vary[n]);return r}function Sv(t,e,r){let n=Date.now();if(n>t.staleAt){if(!sg(t,r)&&e?.["max-stale"]){let o=t.staleAt+e["max-stale"]*1e3;return n>o}return!0}if(e?.["min-fresh"]){let o=t.staleAt-n,i=e["min-fresh"]*1e3;return o<=i}return!1}function Dv(t,e){let r=t.cacheControlDirectives?.["stale-while-revalidate"];if(!r||sg(t,e))return!1;let n=Date.now(),o=t.staleAt+r*1e3;return n<=o}function kv(t,e,r,n,o,i){if(i?.["only-if-cached"]){let s=!1;try{if(typeof n.onConnect=="function"&&(n.onConnect(()=>{s=!0}),s)||typeof n.onHeaders=="function"&&(n.onHeaders(504,[],Gi,"Gateway Timeout"),s))return;typeof n.onComplete=="function"&&n.onComplete([])}catch(A){typeof n.onError=="function"&&n.onError(A)}return!0}return t(o,new fo(e,r,n))}function ig(t,e,r,n,o,i){let s=Mr.isStream(r.body)?r.body:dv.from(r.body??[]);XB(!s.destroyed,"stream should not be destroyed"),XB(!s.readableDidRead,"stream should not be readableDidRead");let A={resume(){s.resume()},pause(){s.pause()},get paused(){return s.isPaused()},get aborted(){return s.destroyed},get reason(){return s.errored},abort(c){s.destroy(c??new Ev)}};if(s.on("error",function(c){if(!this.readableEnded)if(typeof t.onResponseError=="function")t.onResponseError(A,c);else throw c}).on("close",function(){this.errored||t.onResponseEnd?.(A,{})}),t.onRequestStart?.(A,o),s.destroyed)return;let a={...r.headers,age:String(n)};i&&(a.warning='110 - "response is stale"'),t.onResponseStart?.(A,r.statusCode,a,r.statusMessage),e.method==="HEAD"?s.destroy():s.on("data",function(c){t.onResponseData?.(A,c)})}function nm(t,e,r,n,o,i,s){if(!s)return kv(t,e,r,n,o,i);let A=Date.now();if(A>s.deleteAt)return t(o,new fo(e,r,n));let a=Math.round((A-s.cachedAt)/1e3),c=i?.["max-age"]!==void 0&&a>=i["max-age"],d=c||Sv(s,i,e.type),l=c||yv(s,i,o);if(d||l){if(Mr.isStream(o.body)&&Mr.bodyLength(o.body)!==0)return t(o,new fo(e,r,n));if(!l&&Dv(s,e.type))return ig(n,o,s,a,null,!0),queueMicrotask(()=>{let h=rm(o,s);t({...o,headers:h},new fo(e,r,{onRequestStart(){},onRequestUpgrade(){},onResponseStart(){},onResponseData(){},onResponseEnd(){},onResponseError(){}}))}),!0;let u=!1;if(!sg(s,e.type)){let h=s.cacheControlDirectives["stale-if-error"]??i?.["stale-if-error"];h&&(u=A<s.staleAt+h*1e3)}let p=rm(o,s);return t({...o,headers:p},new lv((h,I,m,E)=>{if(h){if(m===304){if(wv(e.type,E))return Mr.isStream(s.body)&&s.body.on("error",Gi).destroy(),tm(e.store,r),t(o,new fo(e,r,n));Rv(E)&&tm(e.store,r)}ig(n,o,s,a,I,d)}else Mr.isStream(s.body)&&s.body.on("error",Gi).destroy()},new fo(e,r,n),u))}Mr.isStream(o.body)&&o.body.on("error",Gi).destroy(),ig(n,o,s,a,null,!1)}im.exports=(t={})=>{let{store:e=new uv,methods:r=["GET"],cacheByDefault:n=void 0,type:o="shared",origins:i=void 0}=t;if(typeof t!="object"||t===null)throw new TypeError(`expected type of opts to be an Object, got ${t===null?"null":typeof t}`);if(gv(e,"opts.store"),fv(r,"opts.methods"),Qv(i,"opts.origins"),typeof n<"u"&&typeof n!="number")throw new TypeError(`expected opts.cacheByDefault to be number or undefined, got ${typeof n}`);if(typeof o<"u"&&o!=="shared"&&o!=="private")throw new TypeError(`expected opts.type to be shared, private, or undefined, got ${typeof o}`);let s={store:e,methods:r,cacheByDefault:n,type:o},A=[];for(let a=0;a<Mr.safeHTTPMethods.length;a++){let c=Mr.safeHTTPMethods[a];em(r,c)||A.push(c)}return a=>(c,d)=>{if(!c.origin||em(A,c.method))return a(c,d);if(i!==void 0){let h=c.origin.toString().toLowerCase(),I=!1;for(let m=0;m<i.length;m++){let E=i[m];if(typeof E=="string"){if(E.toLowerCase()===h){I=!0;break}}else if(E.test(h)){I=!0;break}}if(!I)return a(c,d)}c={...c,headers:hv(c)};let l=c.headers?.["cache-control"]?om(c.headers["cache-control"]):mv(c.headers)?{"no-cache":!0}:void 0;if(l?.["no-store"])return a(c,d);let u=pv(c),p=e.get(u);return p&&typeof p.then=="function"?p.then(h=>nm(a,s,u,d,c,l,h)):nm(a,s,u,d,c,l,p)}}});var um=B((cj,dm)=>{"use strict";var{createInflate:Ag,createGunzip:Am,createBrotliDecompress:Nv,createZstdDecompress:Mv}=require("node:zlib"),{pipeline:Tv}=require("node:stream"),xv=uo(),{runtimeFeatures:Uv}=$t(),am={gzip:Am,"x-gzip":Am,br:Nv,deflate:Ag,compress:Ag,"x-compress":Ag,...Uv.has("zstd")?{zstd:Mv}:{}},Fv=[204,304],cm=!1,ag=class extends xv{#e=[];#t;#r;constructor(e,{skipStatusCodes:r=Fv,skipErrorResponses:n=!0}={}){super(e),this.#t=r,this.#r=n}#n(e,r){return!!(!e||r<200||this.#t.includes(r)||this.#r&&r>=400)}#i(e){let r=e.split(","),n=5;if(r.length>n)throw new Error(`too many content-encodings in response: ${r.length}, maximum allowed is ${n}`);let o=[];for(let i=r.length-1;i>=0;i--){let s=r[i].trim();if(s){if(!am[s])return o.length=0,o;o.push(am[s]())}}return o}#o(e,r){e.on("readable",()=>{let n;for(;(n=e.read())!==null&&super.onResponseData(r,n)!==!1;);}),e.on("error",n=>{super.onResponseError(r,n)})}#a(e){let r=this.#e[0];this.#o(r,e),r.on("end",()=>{super.onResponseEnd(e,{})})}#s(e){let r=this.#e[this.#e.length-1];this.#o(r,e),Tv(this.#e,n=>{if(n){super.onResponseError(e,n);return}super.onResponseEnd(e,{})})}#A(){this.#e.length=0}onResponseStart(e,r,n,o){let i=n["content-encoding"];if(this.#n(i,r))return super.onResponseStart(e,r,n,o);let s=this.#i(i.toLowerCase());if(s.length===0)return this.#A(),super.onResponseStart(e,r,n,o);this.#e=s;let{"content-encoding":A,"content-length":a,...c}=n;return this.#e.length===1?this.#a(e):this.#s(e),super.onResponseStart(e,r,c,o)}onResponseData(e,r){if(this.#e.length>0){this.#e[0].write(r);return}super.onResponseData(e,r)}onResponseEnd(e,r){if(this.#e.length>0){this.#e[0].end(),this.#A();return}super.onResponseEnd(e,r)}onResponseError(e,r){if(this.#e.length>0){for(let n of this.#e)n.destroy(r);this.#A()}super.onResponseError(e,r)}};function Pv(t={}){return cm||(process.emitWarning("DecompressInterceptor is experimental and subject to change","ExperimentalWarning"),cm=!0),e=>(r,n)=>{let o=new ag(n,t);return e(r,o)}}dm.exports=Pv});var fm=B((dj,gm)=>{"use strict";var{RequestAbortedError:Lv}=_(),lm=5*1024*1024,cg=class{#e;#t=[];#r=lm;#n=0;#i={};#o="";#a=!1;#s=!1;#A=!1;#c=!1;#u=null;#d=null;constructor(e,r,n=lm){this.#e=e,this.#d=r,this.#r=n}addWaitingHandler(e){if(this.#c||this.#A)return!1;let r=this.#l(e),n=r.controller;try{if(e.onRequestStart?.(n,null),n.aborted)return r.done=!0,!0;this.#s&&e.onResponseStart?.(n,this.#n,this.#i,this.#o)}catch{return r.done=!0,!0}return n.aborted||this.#t.push(r),!0}onRequestStart(e,r){this.#u=e,this.#e.onRequestStart?.(e,r)}onRequestUpgrade(e,r,n,o){this.#e.onRequestUpgrade?.(e,r,n,o)}onResponseStart(e,r,n,o){this.#s=!0,this.#n=r,this.#i=n,this.#o=o,this.#e.onResponseStart?.(e,r,n,o);for(let i of this.#t){let{handler:s,controller:A}=i;if(i.done||A.aborted){i.done=!0;continue}try{s.onResponseStart?.(A,r,n,o)}catch{}A.aborted&&(i.done=!0)}this.#p()}onResponseData(e,r){if(!(this.#a||this.#c)){this.#A=!0,this.#e.onResponseData?.(e,r);for(let n of this.#t){let{handler:o,controller:i}=n;if(n.done||i.aborted){n.done=!0;continue}if(i.paused){this.#g(n,r);continue}try{o.onResponseData?.(i,r)}catch{}i.aborted&&(n.done=!0,n.bufferedChunks=[],n.bufferedBytes=0)}this.#p()}}onResponseEnd(e,r){if(!(this.#a||this.#c)){this.#c=!0,this.#e.onResponseEnd?.(e,r);for(let n of this.#t){if(n.done||n.controller.aborted){n.done=!0;continue}if(this.#f(n),n.done||n.controller.aborted){n.done=!0;continue}if(n.controller.paused&&n.bufferedChunks.length>0){n.pendingTrailers=r;continue}try{n.handler.onResponseEnd?.(n.controller,r)}catch{}n.done=!0}this.#p(),this.#d?.()}}onResponseError(e,r){if(!this.#c){this.#a=!0,this.#c=!0,this.#e.onResponseError?.(e,r);for(let n of this.#t)this.#h(n,r);this.#t=[],this.#d?.()}}#l(e){let r={handler:e,controller:null,bufferedChunks:[],bufferedBytes:0,pendingTrailers:null,done:!1},n={aborted:!1,paused:!1,reason:null};return r.controller={resume:()=>{if(!n.aborted){if(n.paused=!1,this.#f(r),this.#c&&r.pendingTrailers&&r.bufferedChunks.length===0&&!n.paused&&!n.aborted){try{r.handler.onResponseEnd?.(r.controller,r.pendingTrailers)}catch{}r.pendingTrailers=null,r.done=!0}this.#p()}},pause:()=>{n.aborted||(n.paused=!0)},get paused(){return n.paused},get aborted(){return n.aborted},get reason(){return n.reason},abort:o=>{n.aborted=!0,n.reason=o??null,r.done=!0,r.pendingTrailers=null,r.bufferedChunks=[],r.bufferedBytes=0}},r}#g(e,r){if(e.done||e.controller.aborted){e.done=!0,e.bufferedChunks=[],e.bufferedBytes=0;return}let n=Buffer.from(r);if(e.bufferedChunks.push(n),e.bufferedBytes+=n.length,e.bufferedBytes>this.#r){let o=new Lv(`Deduplicated waiting handler exceeded maxBufferSize (${this.#r} bytes) while paused`);this.#h(e,o)}}#f(e){let{handler:r,controller:n}=e;for(;!e.done&&!n.aborted&&!n.paused&&e.bufferedChunks.length>0;){let o=e.bufferedChunks.shift();e.bufferedBytes-=o.length;try{r.onResponseData?.(n,o)}catch{}if(n.aborted){e.done=!0,e.pendingTrailers=null,e.bufferedChunks=[],e.bufferedBytes=0;break}}}#h(e,r){if(!e.done){e.done=!0,e.pendingTrailers=null,e.bufferedChunks=[],e.bufferedBytes=0;try{e.controller.abort(r),e.handler.onResponseError?.(e.controller,r)}catch{}}}#p(){this.#t=this.#t.filter(e=>e.done===!1)}};gm.exports=cg});var hm=B((uj,pm)=>{"use strict";var vv=require("node:diagnostics_channel"),_v=O(),Ov=fm(),{normalizeHeaders:Gv,makeCacheKey:Hv,makeDeduplicationKey:Yv}=lo(),vA=vv.channel("undici:request:pending-requests");pm.exports=(t={})=>{let{methods:e=["GET"],skipHeaderNames:r=[],excludeHeaderNames:n=[],maxBufferSize:o=5*1024*1024}=t;if(typeof t!="object"||t===null)throw new TypeError(`expected type of opts to be an Object, got ${t===null?"null":typeof t}`);if(!Array.isArray(e))throw new TypeError(`expected opts.methods to be an array, got ${typeof e}`);for(let a of e)if(!_v.safeHTTPMethods.includes(a))throw new TypeError(`expected opts.methods to only contain safe HTTP methods, got ${a}`);if(!Array.isArray(r))throw new TypeError(`expected opts.skipHeaderNames to be an array, got ${typeof r}`);if(!Array.isArray(n))throw new TypeError(`expected opts.excludeHeaderNames to be an array, got ${typeof n}`);if(!Number.isFinite(o)||o<=0)throw new TypeError(`expected opts.maxBufferSize to be a positive finite number, got ${o}`);let i=new Set(r.map(a=>a.toLowerCase())),s=new Set(n.map(a=>a.toLowerCase())),A=new Map;return a=>(c,d)=>{if(!c.origin||e.includes(c.method)===!1)return a(c,d);if(c={...c,headers:Gv(c)},i.size>0){for(let I of Object.keys(c.headers))if(i.has(I.toLowerCase()))return a(c,d)}let l=Hv(c),u=Yv(l,s),p=A.get(u);if(p)return p.addWaitingHandler(d)?!0:a(c,d);let h=new Ov(d,()=>{A.delete(u),vA.hasSubscribers&&vA.publish({size:A.size,key:u,type:"removed"})},o);return A.set(u,h),vA.hasSubscribers&&vA.publish({size:A.size,key:u,type:"added"}),a(c,h)}}});var Im=B((gj,Em)=>{"use strict";var{Writable:Vv}=require("node:stream"),{assertCacheKey:dg,assertCacheValue:qv}=lo(),ug,Xe=3,Cm=2*1e3*1e3*1e3;Em.exports=class{#e=Cm;#t=1/0;#r;#n;#i;#o;#a;#s;#A;#c;constructor(e){if(e){if(typeof e!="object")throw new TypeError("SqliteCacheStore options must be an object");if(e.maxEntrySize!==void 0){if(typeof e.maxEntrySize!="number"||!Number.isInteger(e.maxEntrySize)||e.maxEntrySize<0)throw new TypeError("SqliteCacheStore options.maxEntrySize must be a non-negative integer");if(e.maxEntrySize>Cm)throw new TypeError("SqliteCacheStore options.maxEntrySize must be less than 2gb");this.#e=e.maxEntrySize}if(e.maxCount!==void 0){if(typeof e.maxCount!="number"||!Number.isInteger(e.maxCount)||e.maxCount<0)throw new TypeError("SqliteCacheStore options.maxCount must be a non-negative integer");this.#t=e.maxCount}}ug||(ug=require("node:sqlite").DatabaseSync),this.#r=new ug(e?.location??":memory:"),this.#r.exec(`
45
+ PRAGMA journal_mode = WAL;
46
+ PRAGMA synchronous = NORMAL;
47
+ PRAGMA temp_store = memory;
48
+ PRAGMA optimize;
49
+
50
+ CREATE TABLE IF NOT EXISTS cacheInterceptorV${Xe} (
51
+ -- Data specific to us
52
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
53
+ url TEXT NOT NULL,
54
+ method TEXT NOT NULL,
55
+
56
+ -- Data returned to the interceptor
57
+ body BUF NULL,
58
+ deleteAt INTEGER NOT NULL,
59
+ statusCode INTEGER NOT NULL,
60
+ statusMessage TEXT NOT NULL,
61
+ headers TEXT NULL,
62
+ cacheControlDirectives TEXT NULL,
63
+ etag TEXT NULL,
64
+ vary TEXT NULL,
65
+ cachedAt INTEGER NOT NULL,
66
+ staleAt INTEGER NOT NULL
67
+ );
68
+
69
+ CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${Xe}_getValuesQuery ON cacheInterceptorV${Xe}(url, method, deleteAt);
70
+ CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${Xe}_deleteByUrlQuery ON cacheInterceptorV${Xe}(deleteAt);
71
+ `),this.#n=this.#r.prepare(`
72
+ SELECT
73
+ id,
74
+ body,
75
+ deleteAt,
76
+ statusCode,
77
+ statusMessage,
78
+ headers,
79
+ etag,
80
+ cacheControlDirectives,
81
+ vary,
82
+ cachedAt,
83
+ staleAt
84
+ FROM cacheInterceptorV${Xe}
85
+ WHERE
86
+ url = ?
87
+ AND method = ?
88
+ ORDER BY
89
+ deleteAt ASC
90
+ `),this.#i=this.#r.prepare(`
91
+ UPDATE cacheInterceptorV${Xe} SET
92
+ body = ?,
93
+ deleteAt = ?,
94
+ statusCode = ?,
95
+ statusMessage = ?,
96
+ headers = ?,
97
+ etag = ?,
98
+ cacheControlDirectives = ?,
99
+ cachedAt = ?,
100
+ staleAt = ?
101
+ WHERE
102
+ id = ?
103
+ `),this.#o=this.#r.prepare(`
104
+ INSERT INTO cacheInterceptorV${Xe} (
105
+ url,
106
+ method,
107
+ body,
108
+ deleteAt,
109
+ statusCode,
110
+ statusMessage,
111
+ headers,
112
+ etag,
113
+ cacheControlDirectives,
114
+ vary,
115
+ cachedAt,
116
+ staleAt
117
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
118
+ `),this.#s=this.#r.prepare(`DELETE FROM cacheInterceptorV${Xe} WHERE url = ?`),this.#A=this.#r.prepare(`SELECT COUNT(*) AS total FROM cacheInterceptorV${Xe}`),this.#a=this.#r.prepare(`DELETE FROM cacheInterceptorV${Xe} WHERE deleteAt <= ?`),this.#c=this.#t===1/0?null:this.#r.prepare(`
119
+ DELETE FROM cacheInterceptorV${Xe}
120
+ WHERE id IN (
121
+ SELECT
122
+ id
123
+ FROM cacheInterceptorV${Xe}
124
+ ORDER BY cachedAt ASC
125
+ LIMIT ?
126
+ )
127
+ `)}close(){this.#r.close()}get(e){dg(e);let r=this.#l(e);return r?{body:r.body?Buffer.from(r.body.buffer,r.body.byteOffset,r.body.byteLength):void 0,statusCode:r.statusCode,statusMessage:r.statusMessage,headers:r.headers?JSON.parse(r.headers):void 0,etag:r.etag?r.etag:void 0,vary:r.vary?JSON.parse(r.vary):void 0,cacheControlDirectives:r.cacheControlDirectives?JSON.parse(r.cacheControlDirectives):void 0,cachedAt:r.cachedAt,staleAt:r.staleAt,deleteAt:r.deleteAt}:void 0}set(e,r){dg(e);let n=this.#d(e),o=Array.isArray(r.body)?Buffer.concat(r.body):r.body,i=o?.byteLength;if(i&&i>this.#e)return;let s=this.#l(e,!0);s?this.#i.run(o,r.deleteAt,r.statusCode,r.statusMessage,r.headers?JSON.stringify(r.headers):null,r.etag?r.etag:null,r.cacheControlDirectives?JSON.stringify(r.cacheControlDirectives):null,r.cachedAt,r.staleAt,s.id):(this.#o.run(n,e.method,o,r.deleteAt,r.statusCode,r.statusMessage,r.headers?JSON.stringify(r.headers):null,r.etag?r.etag:null,r.cacheControlDirectives?JSON.stringify(r.cacheControlDirectives):null,r.vary?JSON.stringify(r.vary):null,r.cachedAt,r.staleAt),this.#u())}createWriteStream(e,r){dg(e),qv(r);let n=0,o=[],i=this;return new Vv({decodeStrings:!0,write(s,A,a){n+=s.byteLength,n<i.#e?o.push(s):this.destroy(),a()},final(s){i.set(e,{...r,body:o}),s()}})}delete(e){if(typeof e!="object")throw new TypeError(`expected key to be object, got ${typeof e}`);this.#s.run(this.#d(e))}#u(){if(Number.isFinite(this.#t)&&this.size<=this.#t)return 0;{let e=this.#a.run(Date.now()).changes;if(e)return e}{let e=this.#c?.run(Math.max(Math.floor(this.#t*.1),1)).changes;if(e)return e}return 0}get size(){let{total:e}=this.#A.get();return e}#d(e){return`${e.origin}/${e.path}`}#l(e,r=!1){let n=this.#d(e),{headers:o,method:i}=e,s=this.#n.all(n,i);if(s.length===0)return;let A=Date.now();for(let a of s){if(A>=a.deleteAt&&!r)continue;let c=!0;if(a.vary){let d=JSON.parse(a.vary);for(let l in d)if(!Wv(o[l],d[l])){c=!1;break}}if(c)return a}}};function Wv(t,e){if(t==null&&e==null)return!0;if(t==null&&e!=null||t!=null&&e==null)return!1;if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(t[r]!==e[r])return!1;return!0}return t===e}});var Qn=B((fj,bm)=>{"use strict";var{kConstruct:Jv}=j(),{kEnumerableProperty:po}=O(),{iteratorMixin:Kv,isValidHeaderName:Hi,isValidHeaderValue:Bm}=Ke(),{webidl:V}=ye(),lg=require("node:assert"),_A=require("node:util");function Qm(t){return t===10||t===13||t===9||t===32}function mm(t){let e=0,r=t.length;for(;r>e&&Qm(t.charCodeAt(r-1));)--r;for(;r>e&&Qm(t.charCodeAt(e));)++e;return e===0&&r===t.length?t:t.substring(e,r)}function ym(t,e){if(Array.isArray(e))for(let r=0;r<e.length;++r){let n=e[r];if(n.length!==2)throw V.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${n.length}.`});gg(t,n[0],n[1])}else if(typeof e=="object"&&e!==null){let r=Object.keys(e);for(let n=0;n<r.length;++n)gg(t,r[n],e[r[n]])}else throw V.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}function gg(t,e,r){if(r=mm(r),Hi(e)){if(!Bm(r))throw V.errors.invalidArgument({prefix:"Headers.append",value:r,type:"header value"})}else throw V.errors.invalidArgument({prefix:"Headers.append",value:e,type:"header name"});if(Rm(t)==="immutable")throw new TypeError("immutable");return GA(t).append(e,r,!1)}function zv(t){let e=GA(t);if(!e)return[];if(e.sortedMap)return e.sortedMap;let r=[],n=e.toSortedArray(),o=e.cookies;if(o===null||o.length===1)return e.sortedMap=n;for(let i=0;i<n.length;++i){let{0:s,1:A}=n[i];if(s==="set-cookie")for(let a=0;a<o.length;++a)r.push([s,o[a]]);else r.push([s,A])}return e.sortedMap=r}function wm(t,e){return t[0]<e[0]?-1:1}var OA=class t{cookies=null;sortedMap;headersMap;constructor(e){e instanceof t?(this.headersMap=new Map(e.headersMap),this.sortedMap=e.sortedMap,this.cookies=e.cookies===null?null:[...e.cookies]):(this.headersMap=new Map(e),this.sortedMap=null)}contains(e,r){return this.headersMap.has(r?e:e.toLowerCase())}clear(){this.headersMap.clear(),this.sortedMap=null,this.cookies=null}append(e,r,n){this.sortedMap=null;let o=n?e:e.toLowerCase(),i=this.headersMap.get(o);if(i){let s=o==="cookie"?"; ":", ";this.headersMap.set(o,{name:i.name,value:`${i.value}${s}${r}`})}else this.headersMap.set(o,{name:e,value:r});o==="set-cookie"&&(this.cookies??=[]).push(r)}set(e,r,n){this.sortedMap=null;let o=n?e:e.toLowerCase();o==="set-cookie"&&(this.cookies=[r]),this.headersMap.set(o,{name:e,value:r})}delete(e,r){this.sortedMap=null,r||(e=e.toLowerCase()),e==="set-cookie"&&(this.cookies=null),this.headersMap.delete(e)}get(e,r){return this.headersMap.get(r?e:e.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:e,1:{value:r}}of this.headersMap)yield[e,r]}get entries(){let e={};if(this.headersMap.size!==0)for(let{name:r,value:n}of this.headersMap.values())e[r]=n;return e}rawValues(){return this.headersMap.values()}get entriesList(){let e=[];if(this.headersMap.size!==0)for(let{0:r,1:{name:n,value:o}}of this.headersMap)if(r==="set-cookie")for(let i of this.cookies)e.push([n,i]);else e.push([n,o]);return e}toSortedArray(){let e=this.headersMap.size,r=new Array(e);if(e<=32){if(e===0)return r;let n=this.headersMap[Symbol.iterator](),o=n.next().value;r[0]=[o[0],o[1].value],lg(o[1].value!==null);for(let i=1,s=0,A=0,a=0,c=0,d,l;i<e;++i){for(l=n.next().value,d=r[i]=[l[0],l[1].value],lg(d[1]!==null),a=0,A=i;a<A;)c=a+(A-a>>1),r[c][0]<=d[0]?a=c+1:A=c;if(i!==c){for(s=i;s>a;)r[s]=r[--s];r[a]=d}}if(!n.next().done)throw new TypeError("Unreachable");return r}else{let n=0;for(let{0:o,1:{value:i}}of this.headersMap)r[n++]=[o,i],lg(i!==null);return r.sort(wm)}}},wt=class t{#e;#t;constructor(e=void 0){V.util.markAsUncloneable(this),e!==Jv&&(this.#t=new OA,this.#e="none",e!==void 0&&(e=V.converters.HeadersInit(e,"Headers constructor","init"),ym(this,e)))}append(e,r){V.brandCheck(this,t),V.argumentLengthCheck(arguments,2,"Headers.append");let n="Headers.append";return e=V.converters.ByteString(e,n,"name"),r=V.converters.ByteString(r,n,"value"),gg(this,e,r)}delete(e){if(V.brandCheck(this,t),V.argumentLengthCheck(arguments,1,"Headers.delete"),e=V.converters.ByteString(e,"Headers.delete","name"),!Hi(e))throw V.errors.invalidArgument({prefix:"Headers.delete",value:e,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#t.contains(e,!1)&&this.#t.delete(e,!1)}get(e){V.brandCheck(this,t),V.argumentLengthCheck(arguments,1,"Headers.get");let r="Headers.get";if(e=V.converters.ByteString(e,r,"name"),!Hi(e))throw V.errors.invalidArgument({prefix:r,value:e,type:"header name"});return this.#t.get(e,!1)}has(e){V.brandCheck(this,t),V.argumentLengthCheck(arguments,1,"Headers.has");let r="Headers.has";if(e=V.converters.ByteString(e,r,"name"),!Hi(e))throw V.errors.invalidArgument({prefix:r,value:e,type:"header name"});return this.#t.contains(e,!1)}set(e,r){V.brandCheck(this,t),V.argumentLengthCheck(arguments,2,"Headers.set");let n="Headers.set";if(e=V.converters.ByteString(e,n,"name"),r=V.converters.ByteString(r,n,"value"),r=mm(r),Hi(e)){if(!Bm(r))throw V.errors.invalidArgument({prefix:n,value:r,type:"header value"})}else throw V.errors.invalidArgument({prefix:n,value:e,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#t.set(e,r,!1)}getSetCookie(){V.brandCheck(this,t);let e=this.#t.cookies;return e?[...e]:[]}[_A.inspect.custom](e,r){return r.depth??=e,`Headers ${_A.formatWithOptions(r,this.#t.entries)}`}static getHeadersGuard(e){return e.#e}static setHeadersGuard(e,r){e.#e=r}static getHeadersList(e){return e.#t}static setHeadersList(e,r){e.#t=r}},{getHeadersGuard:Rm,setHeadersGuard:jv,getHeadersList:GA,setHeadersList:$v}=wt;Reflect.deleteProperty(wt,"getHeadersGuard");Reflect.deleteProperty(wt,"setHeadersGuard");Reflect.deleteProperty(wt,"getHeadersList");Reflect.deleteProperty(wt,"setHeadersList");Kv("Headers",wt,zv,0,1);Object.defineProperties(wt.prototype,{append:po,delete:po,get:po,has:po,set:po,getSetCookie:po,[Symbol.toStringTag]:{value:"Headers",configurable:!0},[_A.inspect.custom]:{enumerable:!1}});V.converters.HeadersInit=function(t,e,r){if(V.util.Type(t)===V.util.Types.OBJECT){let n=Reflect.get(t,Symbol.iterator);if(!_A.types.isProxy(t)&&n===wt.prototype.entries)try{return GA(t).entriesList}catch{}return typeof n=="function"?V.converters["sequence<sequence<ByteString>>"](t,e,r,n.bind(t)):V.converters["record<ByteString, ByteString>"](t,e,r)}throw V.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};bm.exports={fill:ym,compareHeaderName:wm,Headers:wt,HeadersList:OA,getHeadersGuard:Rm,setHeadersGuard:jv,setHeadersList:$v,getHeadersList:GA}});var Vi=B((pj,vm)=>{"use strict";var{Headers:Tm,HeadersList:Sm,fill:Zv,getHeadersGuard:Xv,setHeadersGuard:xm,setHeadersList:Um}=Qn(),{extractBody:Dm,cloneBody:e_,mixinBody:t_,streamRegistry:Fm,bodyUnusable:r_}=qn(),Pm=O(),km=require("node:util"),{kEnumerableProperty:et}=Pm,{isValidReasonPhrase:n_,isCancelled:o_,isAborted:i_,isErrorLike:s_,environmentSettingsObject:A_}=Ke(),{redirectStatusSet:a_,nullBodyStatus:c_}=ti(),{webidl:Y}=ye(),{URLSerializer:Nm}=dt(),{kConstruct:YA}=j(),fg=require("node:assert"),{isomorphicEncode:d_,serializeJavascriptValueToJSONString:u_}=jt(),l_=new TextEncoder("utf-8"),tt=class t{#e;#t;static error(){return Yi(VA(),"immutable")}static json(e,r=void 0){Y.argumentLengthCheck(arguments,1,"Response.json"),r!==null&&(r=Y.converters.ResponseInit(r));let n=l_.encode(u_(e)),o=Dm(n),i=Yi(ho({}),"response");return Mm(i,r,{body:o[0],type:"application/json"}),i}static redirect(e,r=302){Y.argumentLengthCheck(arguments,1,"Response.redirect"),e=Y.converters.USVString(e),r=Y.converters["unsigned short"](r);let n;try{n=new URL(e,A_.settingsObject.baseUrl)}catch(s){throw new TypeError(`Failed to parse URL from ${e}`,{cause:s})}if(!a_.has(r))throw new RangeError(`Invalid status code ${r}`);let o=Yi(ho({}),"immutable");o.#t.status=r;let i=d_(Nm(n));return o.#t.headersList.append("location",i,!0),o}constructor(e=null,r=void 0){if(Y.util.markAsUncloneable(this),e===YA)return;e!==null&&(e=Y.converters.BodyInit(e,"Response","body")),r=Y.converters.ResponseInit(r),this.#t=ho({}),this.#e=new Tm(YA),xm(this.#e,"response"),Um(this.#e,this.#t.headersList);let n=null;if(e!=null){let[o,i]=Dm(e);n={body:o,type:i}}Mm(this,r,n)}get type(){return Y.brandCheck(this,t),this.#t.type}get url(){Y.brandCheck(this,t);let e=this.#t.urlList,r=e[e.length-1]??null;return r===null?"":Nm(r,!0)}get redirected(){return Y.brandCheck(this,t),this.#t.urlList.length>1}get status(){return Y.brandCheck(this,t),this.#t.status}get ok(){return Y.brandCheck(this,t),this.#t.status>=200&&this.#t.status<=299}get statusText(){return Y.brandCheck(this,t),this.#t.statusText}get headers(){return Y.brandCheck(this,t),this.#e}get body(){return Y.brandCheck(this,t),this.#t.body?this.#t.body.stream:null}get bodyUsed(){return Y.brandCheck(this,t),!!this.#t.body&&Pm.isDisturbed(this.#t.body.stream)}clone(){if(Y.brandCheck(this,t),r_(this.#t))throw Y.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let e=pg(this.#t);return this.#t.urlList.length!==0&&this.#t.body?.stream&&Fm.register(this,new WeakRef(this.#t.body.stream)),Yi(e,Xv(this.#e))}[km.inspect.custom](e,r){r.depth===null&&(r.depth=2),r.colors??=!0;let n={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 ${km.formatWithOptions(r,n)}`}static getResponseHeaders(e){return e.#e}static setResponseHeaders(e,r){e.#e=r}static getResponseState(e){return e.#t}static setResponseState(e,r){e.#t=r}},{getResponseHeaders:g_,setResponseHeaders:f_,getResponseState:Bn,setResponseState:p_}=tt;Reflect.deleteProperty(tt,"getResponseHeaders");Reflect.deleteProperty(tt,"setResponseHeaders");Reflect.deleteProperty(tt,"getResponseState");Reflect.deleteProperty(tt,"setResponseState");t_(tt,Bn);Object.defineProperties(tt.prototype,{type:et,url:et,status:et,ok:et,redirected:et,statusText:et,headers:et,clone:et,body:et,bodyUsed:et,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(tt,{json:et,redirect:et,error:et});function pg(t){if(t.internalResponse)return Lm(pg(t.internalResponse),t.type);let e=ho({...t,body:null});return t.body!=null&&(e.body=e_(t.body)),e}function ho(t){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...t,headersList:t?.headersList?new Sm(t?.headersList):new Sm,urlList:t?.urlList?[...t.urlList]:[]}}function VA(t){let e=s_(t);return ho({type:"error",status:0,error:e?t:new Error(t&&String(t)),aborted:t&&t.name==="AbortError"})}function h_(t){return t.type==="error"&&t.status===0}function HA(t,e){return e={internalResponse:t,...e},new Proxy(t,{get(r,n){return n in e?e[n]:r[n]},set(r,n,o){return fg(!(n in e)),r[n]=o,!0}})}function Lm(t,e){if(e==="basic")return HA(t,{type:"basic",headersList:t.headersList});if(e==="cors")return HA(t,{type:"cors",headersList:t.headersList});if(e==="opaque")return HA(t,{type:"opaque",urlList:[],status:0,statusText:"",body:null});if(e==="opaqueredirect")return HA(t,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});fg(!1)}function C_(t,e=null){return fg(o_(t)),i_(t)?VA(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:e})):VA(Object.assign(new DOMException("Request was cancelled."),{cause:e}))}function Mm(t,e,r){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&&!n_(String(e.statusText)))throw new TypeError("Invalid statusText");if("status"in e&&e.status!=null&&(Bn(t).status=e.status),"statusText"in e&&e.statusText!=null&&(Bn(t).statusText=e.statusText),"headers"in e&&e.headers!=null&&Zv(g_(t),e.headers),r){if(c_.includes(t.status))throw Y.errors.exception({header:"Response constructor",message:`Invalid response status code ${t.status}`});Bn(t).body=r.body,r.type!=null&&!Bn(t).headersList.contains("content-type",!0)&&Bn(t).headersList.append("content-type",r.type,!0)}}function Yi(t,e){let r=new tt(YA);p_(r,t);let n=new Tm(YA);return f_(r,n),Um(n,t.headersList),xm(n,e),t.urlList.length!==0&&t.body?.stream&&Fm.register(r,new WeakRef(t.body.stream)),r}Y.converters.XMLHttpRequestBodyInit=function(t,e,r){return typeof t=="string"?Y.converters.USVString(t,e,r):Y.is.Blob(t)||Y.is.BufferSource(t)||Y.is.FormData(t)||Y.is.URLSearchParams(t)?t:Y.converters.DOMString(t,e,r)};Y.converters.BodyInit=function(t,e,r){return Y.is.ReadableStream(t)||t?.[Symbol.asyncIterator]?t:Y.converters.XMLHttpRequestBodyInit(t,e,r)};Y.converters.ResponseInit=Y.dictionaryConverter([{key:"status",converter:Y.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:Y.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:Y.converters.HeadersInit}]);Y.is.Response=Y.util.MakeTypeAssertion(tt);vm.exports={isNetworkError:h_,makeNetworkError:VA,makeResponse:ho,makeAppropriateNetworkError:C_,filterResponse:Lm,Response:tt,cloneResponse:pg,fromInnerResponse:Yi,getResponseState:Bn}});var Co=B((hj,Zm)=>{"use strict";var{extractBody:E_,mixinBody:I_,cloneBody:Q_,bodyUnusable:_m}=qn(),{Headers:qm,fill:B_,HeadersList:JA,setHeadersGuard:hg,getHeadersGuard:m_,setHeadersList:Wm,getHeadersList:Om}=Qn(),WA=O(),Gm=require("node:util"),{isValidHTTPToken:y_,sameOrigin:Hm,environmentSettingsObject:qA}=Ke(),{forbiddenMethodsSet:w_,corsSafeListedMethodsSet:R_,referrerPolicy:b_,requestRedirect:S_,requestMode:D_,requestCredentials:k_,requestCache:N_,requestDuplex:M_}=ti(),{kEnumerableProperty:pe,normalizedMethodRecordsBase:T_,normalizedMethodRecords:x_}=WA,{webidl:L}=ye(),{URLSerializer:U_}=dt(),{kConstruct:KA}=j(),F_=require("node:assert"),{getMaxListeners:Jm,setMaxListeners:P_,defaultMaxListeners:L_}=require("node:events"),v_=Symbol("abortController"),Km=new FinalizationRegistry(({signal:t,abort:e})=>{t.removeEventListener("abort",e)}),zA=new WeakMap,Cg;try{Cg=Jm(new AbortController().signal)>0}catch{Cg=!1}function Ym(t){return e;function e(){let r=t.deref();if(r!==void 0){Km.unregister(e),this.removeEventListener("abort",e),r.abort(this.reason);let n=zA.get(r.signal);if(n!==void 0){if(n.size!==0){for(let o of n){let i=o.deref();i!==void 0&&i.abort(this.reason)}n.clear()}zA.delete(r.signal)}}}}var Vm=!1,Ge=class t{#e;#t;#r;#n;constructor(e,r=void 0){if(L.util.markAsUncloneable(this),e===KA)return;L.argumentLengthCheck(arguments,1,"Request constructor"),e=L.converters.RequestInfo(e),r=L.converters.RequestInit(r);let o=null,i=null,s=qA.settingsObject.baseUrl,A=null;if(typeof e=="string"){this.#t=r.dispatcher;let E;try{E=new URL(e,s)}catch(Q){throw new TypeError("Failed to parse URL from "+e,{cause:Q})}if(E.username||E.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+e);o=jA({urlList:[E]}),i="cors"}else F_(L.is.Request(e)),o=e.#n,A=e.#e,this.#t=r.dispatcher||e.#t;let a=qA.settingsObject.origin,c="client";if(o.window?.constructor?.name==="EnvironmentSettingsObject"&&Hm(o.window,a)&&(c=o.window),r.window!=null)throw new TypeError(`'window' option '${c}' must be null`);"window"in r&&(c="no-window"),o=jA({method:o.method,headersList:o.headersList,unsafeRequest:o.unsafeRequest,client:qA.settingsObject,window:c,priority:o.priority,origin:o.origin,referrer:o.referrer,referrerPolicy:o.referrerPolicy,mode:o.mode,credentials:o.credentials,cache:o.cache,redirect:o.redirect,integrity:o.integrity,keepalive:o.keepalive,reloadNavigation:o.reloadNavigation,historyNavigation:o.historyNavigation,urlList:[...o.urlList]});let d=Object.keys(r).length!==0;if(d&&(o.mode==="navigate"&&(o.mode="same-origin"),o.reloadNavigation=!1,o.historyNavigation=!1,o.origin="client",o.referrer="client",o.referrerPolicy="",o.url=o.urlList[o.urlList.length-1],o.urlList=[o.url]),r.referrer!==void 0){let E=r.referrer;if(E==="")o.referrer="no-referrer";else{let Q;try{Q=new URL(E,s)}catch(y){throw new TypeError(`Referrer "${E}" is not a valid URL.`,{cause:y})}Q.protocol==="about:"&&Q.hostname==="client"||a&&!Hm(Q,qA.settingsObject.baseUrl)?o.referrer="client":o.referrer=Q}}r.referrerPolicy!==void 0&&(o.referrerPolicy=r.referrerPolicy);let l;if(r.mode!==void 0?l=r.mode:l=i,l==="navigate")throw L.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(l!=null&&(o.mode=l),r.credentials!==void 0&&(o.credentials=r.credentials),r.cache!==void 0&&(o.cache=r.cache),o.cache==="only-if-cached"&&o.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(r.redirect!==void 0&&(o.redirect=r.redirect),r.integrity!=null&&(o.integrity=String(r.integrity)),r.keepalive!==void 0&&(o.keepalive=!!r.keepalive),r.method!==void 0){let E=r.method,Q=x_[E];if(Q!==void 0)o.method=Q;else{if(!y_(E))throw new TypeError(`'${E}' is not a valid HTTP method.`);let y=E.toUpperCase();if(w_.has(y))throw new TypeError(`'${E}' HTTP method is unsupported.`);E=T_[y]??E,o.method=E}!Vm&&o.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"}),Vm=!0)}r.signal!==void 0&&(A=r.signal),this.#n=o;let u=new AbortController;if(this.#e=u.signal,A!=null)if(A.aborted)u.abort(A.reason);else{this[v_]=u;let E=new WeakRef(u),Q=Ym(E);Cg&&Jm(A)===L_&&P_(1500,A),WA.addAbortListener(A,Q),Km.register(u,{signal:A,abort:Q},Q)}if(this.#r=new qm(KA),Wm(this.#r,o.headersList),hg(this.#r,"request"),l==="no-cors"){if(!R_.has(o.method))throw new TypeError(`'${o.method} is unsupported in no-cors mode.`);hg(this.#r,"request-no-cors")}if(d){let E=Om(this.#r),Q=r.headers!==void 0?r.headers:new JA(E);if(E.clear(),Q instanceof JA){for(let{name:y,value:v}of Q.rawValues())E.append(y,v,!1);E.cookies=Q.cookies}else B_(this.#r,Q)}let p=L.is.Request(e)?e.#n.body:null;if((r.body!=null||p!=null)&&(o.method==="GET"||o.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let h=null;if(r.body!=null){let[E,Q]=E_(r.body,o.keepalive);h=E,Q&&!Om(this.#r).contains("content-type",!0)&&this.#r.append("content-type",Q,!0)}let I=h??p;if(I!=null&&I.source==null){if(h!=null&&r.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(o.mode!=="same-origin"&&o.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');o.useCORSPreflightFlag=!0}let m=I;if(h==null&&p!=null){if(_m(e.#n))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let E=new TransformStream;p.stream.pipeThrough(E),m={source:p.source,length:p.length,stream:E.readable}}this.#n.body=m}get method(){return L.brandCheck(this,t),this.#n.method}get url(){return L.brandCheck(this,t),U_(this.#n.url)}get headers(){return L.brandCheck(this,t),this.#r}get destination(){return L.brandCheck(this,t),this.#n.destination}get referrer(){return L.brandCheck(this,t),this.#n.referrer==="no-referrer"?"":this.#n.referrer==="client"?"about:client":this.#n.referrer.toString()}get referrerPolicy(){return L.brandCheck(this,t),this.#n.referrerPolicy}get mode(){return L.brandCheck(this,t),this.#n.mode}get credentials(){return L.brandCheck(this,t),this.#n.credentials}get cache(){return L.brandCheck(this,t),this.#n.cache}get redirect(){return L.brandCheck(this,t),this.#n.redirect}get integrity(){return L.brandCheck(this,t),this.#n.integrity}get keepalive(){return L.brandCheck(this,t),this.#n.keepalive}get isReloadNavigation(){return L.brandCheck(this,t),this.#n.reloadNavigation}get isHistoryNavigation(){return L.brandCheck(this,t),this.#n.historyNavigation}get signal(){return L.brandCheck(this,t),this.#e}get body(){return L.brandCheck(this,t),this.#n.body?this.#n.body.stream:null}get bodyUsed(){return L.brandCheck(this,t),!!this.#n.body&&WA.isDisturbed(this.#n.body.stream)}get duplex(){return L.brandCheck(this,t),"half"}clone(){if(L.brandCheck(this,t),_m(this.#n))throw new TypeError("unusable");let e=jm(this.#n),r=new AbortController;if(this.signal.aborted)r.abort(this.signal.reason);else{let n=zA.get(this.signal);n===void 0&&(n=new Set,zA.set(this.signal,n));let o=new WeakRef(r);n.add(o),WA.addAbortListener(r.signal,Ym(o))}return $m(e,this.#t,r.signal,m_(this.#r))}[Gm.inspect.custom](e,r){r.depth===null&&(r.depth=2),r.colors??=!0;let n={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 ${Gm.formatWithOptions(r,n)}`}static setRequestSignal(e,r){return e.#e=r,e}static getRequestDispatcher(e){return e.#t}static setRequestDispatcher(e,r){e.#t=r}static setRequestHeaders(e,r){e.#r=r}static getRequestState(e){return e.#n}static setRequestState(e,r){e.#n=r}},{setRequestSignal:__,getRequestDispatcher:O_,setRequestDispatcher:G_,setRequestHeaders:H_,getRequestState:zm,setRequestState:Y_}=Ge;Reflect.deleteProperty(Ge,"setRequestSignal");Reflect.deleteProperty(Ge,"getRequestDispatcher");Reflect.deleteProperty(Ge,"setRequestDispatcher");Reflect.deleteProperty(Ge,"setRequestHeaders");Reflect.deleteProperty(Ge,"getRequestState");Reflect.deleteProperty(Ge,"setRequestState");I_(Ge,zm);function jA(t){return{method:t.method??"GET",localURLsOnly:t.localURLsOnly??!1,unsafeRequest:t.unsafeRequest??!1,body:t.body??null,client:t.client??null,reservedClient:t.reservedClient??null,replacesClientId:t.replacesClientId??"",window:t.window??"client",keepalive:t.keepalive??!1,serviceWorkers:t.serviceWorkers??"all",initiator:t.initiator??"",destination:t.destination??"",priority:t.priority??null,origin:t.origin??"client",policyContainer:t.policyContainer??"client",referrer:t.referrer??"client",referrerPolicy:t.referrerPolicy??"",mode:t.mode??"no-cors",useCORSPreflightFlag:t.useCORSPreflightFlag??!1,credentials:t.credentials??"same-origin",useCredentials:t.useCredentials??!1,cache:t.cache??"default",redirect:t.redirect??"follow",integrity:t.integrity??"",cryptoGraphicsNonceMetadata:t.cryptoGraphicsNonceMetadata??"",parserMetadata:t.parserMetadata??"",reloadNavigation:t.reloadNavigation??!1,historyNavigation:t.historyNavigation??!1,userActivation:t.userActivation??!1,taintedOrigin:t.taintedOrigin??!1,redirectCount:t.redirectCount??0,responseTainting:t.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:t.preventNoCacheCacheControlHeaderModification??!1,done:t.done??!1,timingAllowFailed:t.timingAllowFailed??!1,useURLCredentials:t.useURLCredentials??void 0,traversableForUserPrompts:t.traversableForUserPrompts??"client",urlList:t.urlList,url:t.urlList[0],headersList:t.headersList?new JA(t.headersList):new JA}}function jm(t){let e=jA({...t,body:null});return t.body!=null&&(e.body=Q_(t.body)),e}function $m(t,e,r,n){let o=new Ge(KA);Y_(o,t),G_(o,e),__(o,r);let i=new qm(KA);return H_(o,i),Wm(i,t.headersList),hg(i,n),o}Object.defineProperties(Ge.prototype,{method:pe,url:pe,headers:pe,redirect:pe,clone:pe,signal:pe,duplex:pe,destination:pe,body:pe,bodyUsed:pe,isHistoryNavigation:pe,isReloadNavigation:pe,keepalive:pe,integrity:pe,cache:pe,credentials:pe,attribute:pe,referrerPolicy:pe,referrer:pe,mode:pe,[Symbol.toStringTag]:{value:"Request",configurable:!0}});L.is.Request=L.util.MakeTypeAssertion(Ge);L.converters.RequestInfo=function(t){return typeof t=="string"?L.converters.USVString(t):L.is.Request(t)?t:L.converters.USVString(t)};L.converters.RequestInit=L.dictionaryConverter([{key:"method",converter:L.converters.ByteString},{key:"headers",converter:L.converters.HeadersInit},{key:"body",converter:L.nullableConverter(L.converters.BodyInit)},{key:"referrer",converter:L.converters.USVString},{key:"referrerPolicy",converter:L.converters.DOMString,allowedValues:b_},{key:"mode",converter:L.converters.DOMString,allowedValues:D_},{key:"credentials",converter:L.converters.DOMString,allowedValues:k_},{key:"cache",converter:L.converters.DOMString,allowedValues:N_},{key:"redirect",converter:L.converters.DOMString,allowedValues:S_},{key:"integrity",converter:L.converters.DOMString},{key:"keepalive",converter:L.converters.boolean},{key:"signal",converter:L.nullableConverter(t=>L.converters.AbortSignal(t,"RequestInit","signal"))},{key:"window",converter:L.converters.any},{key:"duplex",converter:L.converters.DOMString,allowedValues:M_},{key:"dispatcher",converter:L.converters.any},{key:"priority",converter:L.converters.DOMString,allowedValues:["high","low","auto"],defaultValue:()=>"auto"}]);Zm.exports={Request:Ge,makeRequest:jA,fromInnerRequest:$m,cloneRequest:jm,getRequestDispatcher:O_,getRequestState:zm}});var sy=B((Cj,iy)=>{"use strict";var V_=require("node:assert"),{runtimeFeatures:ey}=$t(),mn=new Map([["sha256",0],["sha384",1],["sha512",2]]),Eg;if(ey.has("crypto")){Eg=require("node:crypto");let t=Eg.getHashes();t.length===0&&mn.clear();for(let e of mn.keys())t.includes(e)===!1&&mn.delete(e)}else mn.clear();var Xm=Map.prototype.get.bind(mn),Ig=Map.prototype.has.bind(mn),q_=ey.has("crypto")===!1||mn.size===0?()=>!0:(t,e)=>{let r=ry(e);if(r.length===0)return!0;let n=ty(r);for(let o of n){let i=o.alg,s=o.val,A=ny(i,t);if(oy(A,s))return!0}return!1};function ty(t){let e=[],r=null;for(let n of t){if(V_(Ig(n.alg),"Invalid SRI hash algorithm token"),e.length===0){e.push(n),r=n;continue}let o=r.alg,i=Xm(o),s=n.alg,A=Xm(s);A<i||(A>i?(r=n,e[0]=n,e.length=1):e.push(n))}return e}function ry(t){let e=[];for(let r of t.split(" ")){let o=r.split("?",1)[0],i="",s=[o.slice(0,6),o.slice(7)],A=s[0];if(!Ig(A))continue;s[1]&&(i=s[1]);let a={alg:A,val:i};e.push(a)}return e}var ny=(t,e)=>Eg.hash(t,e,"base64");function oy(t,e){let r=t.length;r!==0&&t[r-1]==="="&&(r-=1),r!==0&&t[r-1]==="="&&(r-=1);let n=e.length;if(n!==0&&e[n-1]==="="&&(n-=1),n!==0&&e[n-1]==="="&&(n-=1),r!==n)return!1;for(let o=0;o<r;++o)if(!(t[o]===e[o]||t[o]==="+"&&e[o]==="-"||t[o]==="/"&&e[o]==="_"))return!1;return!0}iy.exports={applyAlgorithmToBytes:ny,bytesMatch:q_,caseSensitiveMatch:oy,isValidSRIHashAlgorithm:Ig,getStrongestMetadata:ty,parseMetadata:ry}});var Ji=B((Ej,Qy)=>{"use strict";var{makeNetworkError:Z,makeAppropriateNetworkError:qi,filterResponse:Qg,makeResponse:$A,fromInnerResponse:W_,getResponseState:J_}=Vi(),{HeadersList:Bg}=Qn(),{Request:K_,cloneRequest:z_,getRequestDispatcher:j_,getRequestState:$_}=Co(),Rt=require("node:zlib"),{makePolicyContainer:Z_,clonePolicyContainer:X_,requestBadPort:eO,TAOCheck:tO,appendRequestOriginHeader:rO,responseLocationURL:nO,requestCurrentURL:rt,setRequestReferrerPolicyOnRedirect:oO,tryUpgradeRequestToAPotentiallyTrustworthyURL:iO,createOpaqueTimingInfo:Sg,appendFetchMetadata:sO,corsCheck:AO,crossOriginResourcePolicyCheck:aO,determineRequestsReferrer:cO,coarsenedSharedCurrentTime:Wi,sameOrigin:Rg,isCancelled:Tr,isAborted:Ay,isErrorLike:dO,fullyReadBody:uO,readableStreamClose:lO,urlIsLocal:gO,urlIsHttpHttpsScheme:ta,urlHasHttpsScheme:fO,clampAndCoarsenConnectionTimingInfo:pO,simpleRangeHeaderValue:hO,buildContentRange:CO,createInflate:EO,extractMimeType:IO,hasAuthenticationEntry:QO,includesCredentials:ay,isTraversableNavigable:BO}=Ke(),yn=require("node:assert"),{safelyExtractBody:ra,extractBody:cy}=qn(),{redirectStatusSet:gy,nullBodyStatus:fy,safeMethodsSet:mO,requestBodyHeader:yO,subresourceSet:wO}=ti(),RO=require("node:events"),{Readable:bO,pipeline:SO,finished:DO,isErrored:kO,isReadable:ZA}=require("node:stream"),{addAbortListener:NO,bufferToLowerCasedHeaderName:dy}=O(),{dataURLProcessor:MO,serializeAMimeType:TO,minimizeSupportedMimeType:xO}=dt(),{getGlobalDispatcher:UO}=FA(),{webidl:Dg}=ye(),{STATUS_CODES:uy}=require("node:http"),{bytesMatch:FO}=sy(),{createDeferredPromise:PO}=si(),{isomorphicEncode:XA}=jt(),{runtimeFeatures:LO}=$t(),vO=LO.has("zstd"),_O=["GET","HEAD"],OO=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",mg,ea=class extends RO{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 GO(t){py(t,"fetch")}function HO(t,e=void 0){Dg.argumentLengthCheck(arguments,1,"globalThis.fetch");let r=PO(),n;try{n=new K_(t,e)}catch(d){return r.reject(d),r.promise}let o=$_(n);if(n.signal.aborted)return yg(r,o,null,n.signal.reason,null),r.promise;o.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(o.serviceWorkers="none");let s=null,A=!1,a=null;return NO(n.signal,()=>{A=!0,yn(a!=null),a.abort(n.signal.reason);let d=s?.deref();yg(r,o,d,n.signal.reason,a.controller)}),a=Cy({request:o,processResponseEndOfBody:GO,processResponse:d=>{if(!A){if(d.aborted){yg(r,o,s,a.serializedAbortReason,a.controller);return}if(d.type==="error"){r.reject(new TypeError("fetch failed",{cause:d.error}));return}s=new WeakRef(W_(d,"immutable")),r.resolve(s.deref()),r=null}},dispatcher:j_(n),requestObject:n}),r.promise}function py(t,e="other"){if(t.type==="error"&&t.aborted||!t.urlList?.length)return;let r=t.urlList[0],n=t.timingInfo,o=t.cacheState;ta(r)&&n!==null&&(t.timingAllowPassed||(n=Sg({startTime:n.startTime}),o=""),n.endTime=Wi(),t.timingInfo=n,hy(n,r.href,e,globalThis,o,"",t.status))}var hy=performance.markResourceTiming;function yg(t,e,r,n,o){if(t&&t.reject(n),e.body?.stream!=null&&ZA(e.body.stream)&&e.body.stream.cancel(n).catch(s=>{if(s.code!=="ERR_INVALID_STATE")throw s}),r==null)return;let i=J_(r);i.body?.stream!=null&&ZA(i.body.stream)&&o.error(n)}function Cy({request:t,processRequestBodyChunkLength:e,processRequestEndOfBody:r,processResponse:n,processResponseEndOfBody:o,processResponseConsumeBody:i,useParallelQueue:s=!1,dispatcher:A=UO(),requestObject:a=null}){yn(A);let c=null,d=!1;t.client!=null&&(c=t.client.globalObject,d=t.client.crossOriginIsolatedCapability);let l=Wi(d),u=Sg({startTime:l}),p={controller:new ea(A),request:t,timingInfo:u,processRequestBodyChunkLength:e,processRequestEndOfBody:r,processResponse:n,processResponseConsumeBody:i,processResponseEndOfBody:o,taskDestination:c,crossOriginIsolatedCapability:d,requestObject:a};return yn(!t.body||t.body.stream),t.window==="client"&&(t.window=t.client?.globalObject?.constructor?.name==="Window"?t.client:"no-window"),t.origin==="client"&&(t.origin=t.client.origin),t.policyContainer==="client"&&(t.client!=null?t.policyContainer=X_(t.client.policyContainer):t.policyContainer=Z_()),t.headersList.contains("accept",!0)||t.headersList.append("accept","*/*",!0),t.headersList.contains("accept-language",!0)||t.headersList.append("accept-language","*",!0),t.priority,wO.has(t.destination),Ey(p,!1),p.controller}async function Ey(t,e){try{let r=t.request,n=null;if(r.localURLsOnly&&!gO(rt(r))&&(n=Z("local URLs only")),iO(r),eO(r)==="blocked"&&(n=Z("bad port")),r.referrerPolicy===""&&(r.referrerPolicy=r.policyContainer.referrerPolicy),r.referrer!=="no-referrer"&&(r.referrer=cO(r)),n===null){let i=rt(r);Rg(i,r.url)&&r.responseTainting==="basic"||i.protocol==="data:"||r.mode==="navigate"||r.mode==="websocket"?(r.responseTainting="basic",n=await ly(t)):r.mode==="same-origin"?n=Z('request mode cannot be "same-origin"'):r.mode==="no-cors"?r.redirect!=="follow"?n=Z('redirect mode cannot be "follow" for "no-cors" request'):(r.responseTainting="opaque",n=await ly(t)):ta(rt(r))?(r.responseTainting="cors",n=await Iy(t)):n=Z("URL scheme must be a HTTP(S) scheme")}if(e)return n;n.status!==0&&!n.internalResponse&&(r.responseTainting,r.responseTainting==="basic"?n=Qg(n,"basic"):r.responseTainting==="cors"?n=Qg(n,"cors"):r.responseTainting==="opaque"?n=Qg(n,"opaque"):yn(!1));let o=n.status===0?n:n.internalResponse;if(o.urlList.length===0&&o.urlList.push(...r.urlList),r.timingAllowFailed||(n.timingAllowPassed=!0),n.type==="opaque"&&o.status===206&&o.rangeRequested&&!r.headers.contains("range",!0)&&(n=o=Z()),n.status!==0&&(r.method==="HEAD"||r.method==="CONNECT"||fy.includes(o.status))&&(o.body=null,t.controller.dump=!0),r.integrity){let i=A=>wg(t,Z(A));if(r.responseTainting==="opaque"||n.body==null){i(n.error);return}let s=A=>{if(!FO(A,r.integrity)){i("integrity mismatch");return}n.body=ra(A)[0],wg(t,n)};uO(n.body,s,i)}else wg(t,n)}catch(r){t.controller.terminate(r)}}function ly(t){if(Tr(t)&&t.request.redirectCount===0)return Promise.resolve(qi(t));let{request:e}=t,{protocol:r}=rt(e);switch(r){case"about:":return Promise.resolve(Z("about scheme is not supported"));case"blob:":{mg||(mg=require("node:buffer").resolveObjectURL);let n=rt(e);if(n.search.length!==0)return Promise.resolve(Z("NetworkError when attempting to fetch resource."));let o=mg(n.toString());if(e.method!=="GET"||!Dg.is.Blob(o))return Promise.resolve(Z("invalid method"));let i=$A(),s=o.size,A=XA(`${s}`),a=o.type;if(e.headersList.contains("range",!0)){i.rangeRequested=!0;let c=e.headersList.get("range",!0),d=hO(c,!0);if(d==="failure")return Promise.resolve(Z("failed to fetch the data URL"));let{rangeStartValue:l,rangeEndValue:u}=d;if(l===null)l=s-u,u=l+u-1;else{if(l>=s)return Promise.resolve(Z("Range start is greater than the blob's size."));(u===null||u>=s)&&(u=s-1)}let p=o.slice(l,u+1,a),h=cy(p);i.body=h[0];let I=XA(`${p.size}`),m=CO(l,u,s);i.status=206,i.statusText="Partial Content",i.headersList.set("content-length",I,!0),i.headersList.set("content-type",a,!0),i.headersList.set("content-range",m,!0)}else{let c=cy(o);i.statusText="OK",i.body=c[0],i.headersList.set("content-length",A,!0),i.headersList.set("content-type",a,!0)}return Promise.resolve(i)}case"data:":{let n=rt(e),o=MO(n);if(o==="failure")return Promise.resolve(Z("failed to fetch the data URL"));let i=TO(o.mimeType);return Promise.resolve($A({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:i}]],body:ra(o.body)[0]}))}case"file:":return Promise.resolve(Z("not implemented... yet..."));case"http:":case"https:":return Iy(t).catch(n=>Z(n));default:return Promise.resolve(Z("unknown scheme"))}}function YO(t,e){t.request.done=!0,t.processResponseDone!=null&&queueMicrotask(()=>t.processResponseDone(e))}function wg(t,e){let r=t.timingInfo,n=()=>{let i=Date.now();t.request.destination==="document"&&(t.controller.fullTimingInfo=r),t.controller.reportTimingSteps=()=>{if(!ta(t.request.url))return;r.endTime=i;let A=e.cacheState,a=e.bodyInfo;e.timingAllowPassed||(r=Sg(r),A="");let c=0;if(t.request.mode!=="navigate"||!e.hasCrossOriginRedirects){c=e.status;let d=IO(e.headersList);d!=="failure"&&(a.contentType=xO(d))}t.request.initiatorType!=null&&hy(r,t.request.url.href,t.request.initiatorType,globalThis,A,a,c)};let s=()=>{t.request.done=!0,t.processResponseEndOfBody!=null&&queueMicrotask(()=>t.processResponseEndOfBody(e)),t.request.initiatorType!=null&&t.controller.reportTimingSteps()};queueMicrotask(()=>s())};t.processResponse!=null&&queueMicrotask(()=>{t.processResponse(e),t.processResponse=null});let o=e.type==="error"?e:e.internalResponse??e;o.body==null?n():DO(o.body.stream,()=>{n()})}async function Iy(t){let e=t.request,r=null,n=null,o=t.timingInfo;if(e.serviceWorkers,r===null){if(e.redirect==="follow"&&(e.serviceWorkers="none"),n=r=await bg(t),e.responseTainting==="cors"&&AO(e,r)==="failure")return Z("cors failure");tO(e,r)==="failure"&&(e.timingAllowFailed=!0)}return(e.responseTainting==="opaque"||r.type==="opaque")&&aO(e.origin,e.client,e.destination,n)==="blocked"?Z("blocked"):(gy.has(n.status)&&(e.redirect!=="manual"&&t.controller.connection.destroy(void 0,!1),e.redirect==="error"?r=Z("unexpected redirect"):e.redirect==="manual"?r=n:e.redirect==="follow"?r=await VO(t,r):yn(!1)),r.timingInfo=o,r)}function VO(t,e){let r=t.request,n=e.internalResponse?e.internalResponse:e,o;try{if(o=nO(n,rt(r).hash),o==null)return e}catch(s){return Promise.resolve(Z(s))}if(!ta(o))return Promise.resolve(Z("URL scheme must be a HTTP(S) scheme"));if(r.redirectCount===20)return Promise.resolve(Z("redirect count exceeded"));if(r.redirectCount+=1,r.mode==="cors"&&(o.username||o.password)&&!Rg(r,o))return Promise.resolve(Z('cross origin not allowed for request mode "cors"'));if(r.responseTainting==="cors"&&(o.username||o.password))return Promise.resolve(Z('URL cannot contain credentials for request mode "cors"'));if(n.status!==303&&r.body!=null&&r.body.source==null)return Promise.resolve(Z());if([301,302].includes(n.status)&&r.method==="POST"||n.status===303&&!_O.includes(r.method)){r.method="GET",r.body=null;for(let s of yO)r.headersList.delete(s)}Rg(rt(r),o)||(r.headersList.delete("authorization",!0),r.headersList.delete("proxy-authorization",!0),r.headersList.delete("cookie",!0),r.headersList.delete("host",!0)),r.body!=null&&(yn(r.body.source!=null),r.body=ra(r.body.source)[0]);let i=t.timingInfo;return i.redirectEndTime=i.postRedirectStartTime=Wi(t.crossOriginIsolatedCapability),i.redirectStartTime===0&&(i.redirectStartTime=i.startTime),r.urlList.push(o),oO(r,n),Ey(t,!0)}async function bg(t,e=!1,r=!1){let n=t.request,o=null,i=null,s=null,A=null,a=!1;n.window==="no-window"&&n.redirect==="error"?(o=t,i=n):(i=z_(n),o={...t},o.request=i);let c=n.credentials==="include"||n.credentials==="same-origin"&&n.responseTainting==="basic",d=i.body?i.body.length:null,l=null;if(i.body==null&&["POST","PUT"].includes(i.method)&&(l="0"),d!=null&&(l=XA(`${d}`)),l!=null&&!i.headersList.contains("content-length",!0)&&i.headersList.append("content-length",l,!0),d!=null&&i.keepalive,Dg.is.URL(i.referrer)&&i.headersList.append("referer",XA(i.referrer.href),!0),rO(i),sO(i),i.headersList.contains("user-agent",!0)||i.headersList.append("user-agent",OO,!0),i.cache==="default"&&(i.headersList.contains("if-modified-since",!0)||i.headersList.contains("if-none-match",!0)||i.headersList.contains("if-unmodified-since",!0)||i.headersList.contains("if-match",!0)||i.headersList.contains("if-range",!0))&&(i.cache="no-store"),i.cache==="no-cache"&&!i.preventNoCacheCacheControlHeaderModification&&!i.headersList.contains("cache-control",!0)&&i.headersList.append("cache-control","max-age=0",!0),(i.cache==="no-store"||i.cache==="reload")&&(i.headersList.contains("pragma",!0)||i.headersList.append("pragma","no-cache",!0),i.headersList.contains("cache-control",!0)||i.headersList.append("cache-control","no-cache",!0)),i.headersList.contains("range",!0)&&i.headersList.append("accept-encoding","identity",!0),i.headersList.contains("accept-encoding",!0)||(fO(rt(i))?i.headersList.append("accept-encoding","br, gzip, deflate",!0):i.headersList.append("accept-encoding","gzip, deflate",!0)),i.headersList.delete("host",!0),c&&!i.headersList.contains("authorization",!0)){let u=null;if(!(QO(i)&&(i.useURLCredentials===void 0||!ay(rt(i))))){if(ay(rt(i))&&e){let{username:p,password:h}=rt(i);u=`Basic ${Buffer.from(`${p}:${h}`).toString("base64")}`}}u!==null&&i.headersList.append("Authorization",u,!1)}if(A==null&&(i.cache="no-store"),i.cache!=="no-store"&&i.cache,s==null){if(i.cache==="only-if-cached")return Z("only if cached");let u=await qO(o,c,r);!mO.has(i.method)&&u.status>=200&&u.status<=399,a&&u.status,s==null&&(s=u)}if(s.urlList=[...i.urlList],i.headersList.contains("range",!0)&&(s.rangeRequested=!0),s.requestIncludesCredentials=c,s.status===401&&i.responseTainting!=="cors"&&c&&(n.useURLCredentials!==void 0||BO(n.traversableForUserPrompts))){if(n.body!=null){if(n.body.source==null)return s;n.body=ra(n.body.source)[0]}if(n.useURLCredentials===void 0||e)return Tr(t)?qi(t):s;t.controller.connection.destroy(),s=await bg(t,!0)}if(s.status===407)return n.window==="no-window"?Z():Tr(t)?qi(t):Z("proxy authentication required");if(s.status===421&&!r&&(n.body==null||n.body.source!=null)){if(Tr(t))return qi(t);t.controller.connection.destroy(),s=await bg(t,e,!0)}return s}async function qO(t,e=!1,r=!1){yn(!t.controller.connection||t.controller.connection.destroyed),t.controller.connection={abort:null,destroyed:!1,destroy(h,I=!0){this.destroyed||(this.destroyed=!0,I&&this.abort?.(h??new DOMException("The operation was aborted.","AbortError")))}};let n=t.request,o=null,i=t.timingInfo;null==null&&(n.cache="no-store");let A=r?"yes":"no";n.mode;let a=null;if(n.body==null&&t.processRequestEndOfBody)queueMicrotask(()=>t.processRequestEndOfBody());else if(n.body!=null){let h=async function*(E){Tr(t)||(yield E,t.processRequestBodyChunkLength?.(E.byteLength))},I=()=>{Tr(t)||t.processRequestEndOfBody&&t.processRequestEndOfBody()},m=E=>{Tr(t)||(E.name==="AbortError"?t.controller.abort():t.controller.terminate(E))};a=(async function*(){try{for await(let E of n.body.stream)yield*h(E);I()}catch(E){m(E)}})()}try{let{body:h,status:I,statusText:m,headersList:E,socket:Q}=await p({body:a});if(Q)o=$A({status:I,statusText:m,headersList:E,socket:Q});else{let y=h[Symbol.asyncIterator]();t.controller.next=()=>y.next(),o=$A({status:I,statusText:m,headersList:E})}}catch(h){return h.name==="AbortError"?(t.controller.connection.destroy(),qi(t,h)):Z(h)}let c=()=>t.controller.resume(),d=h=>{Tr(t)||t.controller.abort(h)},l=new ReadableStream({start(h){t.controller.controller=h},pull:c,cancel:d,type:"bytes"});o.body={stream:l,source:null,length:null},t.controller.resume||t.controller.on("terminated",u),t.controller.resume=async()=>{for(;;){let h,I;try{let{done:E,value:Q}=await t.controller.next();if(Ay(t))break;h=E?void 0:Q}catch(E){t.controller.ended&&!i.encodedBodySize?h=void 0:(h=E,I=!0)}if(h===void 0){lO(t.controller.controller),YO(t,o);return}if(i.decodedBodySize+=h?.byteLength??0,I){t.controller.terminate(h);return}let m=new Uint8Array(h);if(m.byteLength&&t.controller.controller.enqueue(m),kO(l)){t.controller.terminate();return}if(t.controller.controller.desiredSize<=0)return}};function u(h){Ay(t)?(o.aborted=!0,ZA(l)&&t.controller.controller.error(t.controller.serializedAbortReason)):ZA(l)&&t.controller.controller.error(new TypeError("terminated",{cause:dO(h)?h:void 0})),t.controller.connection.destroy()}return o;function p({body:h}){let I=rt(n),m=t.controller.dispatcher,E=I.pathname+I.search,Q=I.search.length===0&&I.href[I.href.length-I.hash.length-1]==="?";return new Promise((y,v)=>m.dispatch({path:Q?`${E}?`:E,origin:I.origin,method:n.method,body:m.isMockActive?n.body&&(n.body.source||n.body.stream):h,headers:n.headersList.entries,maxRedirections:0,upgrade:n.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(b){let{connection:F}=t.controller;i.finalConnectionTimingInfo=pO(void 0,i.postRedirectStartTime,t.crossOriginIsolatedCapability),F.destroyed?b(new DOMException("The operation was aborted.","AbortError")):(t.controller.on("terminated",b),this.abort=F.abort=b),i.finalNetworkRequestStartTime=Wi(t.crossOriginIsolatedCapability)},onResponseStarted(){i.finalNetworkResponseStartTime=Wi(t.crossOriginIsolatedCapability)},onHeaders(b,F,k,x){if(b<200)return!1;let U=new Bg;for(let Qe=0;Qe<F.length;Qe+=2){let Kt=dy(F[Qe]),At=F[Qe+1];if(Array.isArray(At)&&!Buffer.isBuffer(F[Qe+1]))for(let _r of At)U.append(Kt,_r.toString("latin1"),!0);else U.append(Kt,At.toString("latin1"),!0)}let q=U.get("location",!0);this.body=new bO({read:k});let ie=q&&n.redirect==="follow"&&gy.has(b),oe=[];if(n.method!=="HEAD"&&n.method!=="CONNECT"&&!fy.includes(b)&&!ie){let Qe=U.get("content-encoding",!0),Kt=Qe?Qe.toLowerCase().split(","):[],At=5;if(Kt.length>At)return v(new Error(`too many content-encodings in response: ${Kt.length}, maximum allowed is ${At}`)),!0;for(let _r=Kt.length-1;_r>=0;--_r){let Or=Kt[_r].trim();if(Or==="x-gzip"||Or==="gzip")oe.push(Rt.createGunzip({flush:Rt.constants.Z_SYNC_FLUSH,finishFlush:Rt.constants.Z_SYNC_FLUSH}));else if(Or==="deflate")oe.push(EO({flush:Rt.constants.Z_SYNC_FLUSH,finishFlush:Rt.constants.Z_SYNC_FLUSH}));else if(Or==="br")oe.push(Rt.createBrotliDecompress({flush:Rt.constants.BROTLI_OPERATION_FLUSH,finishFlush:Rt.constants.BROTLI_OPERATION_FLUSH}));else if(Or==="zstd"&&vO)oe.push(Rt.createZstdDecompress({flush:Rt.constants.ZSTD_e_continue,finishFlush:Rt.constants.ZSTD_e_end}));else{oe.length=0;break}}}let Ne=this.onError.bind(this);return y({status:b,statusText:x,headersList:U,body:oe.length?SO(this.body,...oe,Qe=>{Qe&&this.onError(Qe)}).on("error",Ne):this.body.on("error",Ne)}),!0},onData(b){if(t.controller.dump)return;let F=b;return i.encodedBodySize+=F.byteLength,this.body.push(F)},onComplete(){this.abort&&t.controller.off("terminated",this.abort),t.controller.ended=!0,this.body.push(null)},onError(b){this.abort&&t.controller.off("terminated",this.abort),this.body?.destroy(b),t.controller.terminate(b),v(b)},onRequestUpgrade(b,F,k,x){if(x.session!=null&&F!==200||x.session==null&&F!==101)return!1;let U=new Bg;for(let[q,ie]of Object.entries(k)){if(ie==null)continue;let oe=q.toLowerCase();if(Array.isArray(ie))for(let Ne of ie)U.append(oe,String(Ne),!0);else U.append(oe,String(ie),!0)}return y({status:F,statusText:uy[F],headersList:U,socket:x}),!0},onUpgrade(b,F,k){if(k.session!=null&&b!==200||k.session==null&&b!==101)return!1;let x=new Bg;for(let U=0;U<F.length;U+=2){let q=dy(F[U]),ie=F[U+1];if(Array.isArray(ie)&&!Buffer.isBuffer(F[U+1]))for(let oe of ie)x.append(q,oe.toString("latin1"),!0);else x.append(q,ie.toString("latin1"),!0)}return y({status:b,statusText:uy[b],headersList:x,socket:k}),!0}}))}}Qy.exports={fetch:HO,Fetch:ea,fetching:Cy,finalizeAndReportTiming:py}});var yy=B((Ij,my)=>{"use strict";var WO=require("node:assert"),{URLSerializer:By}=dt(),{isValidHeaderName:JO}=Ke();function KO(t,e,r=!1){let n=By(t,r),o=By(e,r);return n===o}function zO(t){WO(t!==null);let e=[];for(let r of t.split(","))r=r.trim(),JO(r)&&e.push(r);return e}my.exports={urlEquals:KO,getFieldValues:zO}});var Sy=B((Qj,by)=>{"use strict";var kg=require("node:assert"),{kConstruct:jO}=j(),{urlEquals:$O,getFieldValues:Ng}=yy(),{kEnumerableProperty:wn,isDisturbed:ZO}=O(),{webidl:S}=ye(),{cloneResponse:wy,fromInnerResponse:XO,getResponseState:eG}=Vi(),{Request:Ki,fromInnerRequest:tG,getRequestState:Ot}=Co(),{fetching:rG}=Ji(),{urlIsHttpHttpsScheme:na,readAllBytes:nG}=Ke(),{createDeferredPromise:Eo}=si(),oa=class t{#e;constructor(){arguments[0]!==jO&&S.illegalConstructor(),S.util.markAsUncloneable(this),this.#e=arguments[1]}async match(e,r={}){S.brandCheck(this,t);let n="Cache.match";S.argumentLengthCheck(arguments,1,n),e=S.converters.RequestInfo(e),r=S.converters.CacheQueryOptions(r,n,"options");let o=this.#i(e,r,1);if(o.length!==0)return o[0]}async matchAll(e=void 0,r={}){S.brandCheck(this,t);let n="Cache.matchAll";return e!==void 0&&(e=S.converters.RequestInfo(e)),r=S.converters.CacheQueryOptions(r,n,"options"),this.#i(e,r)}async add(e){S.brandCheck(this,t),S.argumentLengthCheck(arguments,1,"Cache.add"),e=S.converters.RequestInfo(e);let n=[e];return await this.addAll(n)}async addAll(e){S.brandCheck(this,t);let r="Cache.addAll";S.argumentLengthCheck(arguments,1,r);let n=[],o=[];for(let u of e){if(u===void 0)throw S.errors.conversionFailed({prefix:r,argument:"Argument 1",types:["undefined is not allowed"]});if(u=S.converters.RequestInfo(u),typeof u=="string")continue;let p=Ot(u);if(!na(p.url)||p.method!=="GET")throw S.errors.exception({header:r,message:"Expected http/s scheme when method is not GET."})}let i=[];for(let u of e){let p=Ot(new Ki(u));if(!na(p.url))throw S.errors.exception({header:r,message:"Expected http/s scheme."});p.initiator="fetch",p.destination="subresource",o.push(p);let h=Eo();i.push(rG({request:p,processResponse(I){if(I.type==="error"||I.status===206||I.status<200||I.status>299)h.reject(S.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(I.headersList.contains("vary")){let m=Ng(I.headersList.get("vary"));for(let E of m)if(E==="*"){h.reject(S.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let Q of i)Q.abort();return}}},processResponseEndOfBody(I){if(I.aborted){h.reject(new DOMException("aborted","AbortError"));return}h.resolve(I)}})),n.push(h.promise)}let A=await Promise.all(n),a=[],c=0;for(let u of A){let p={type:"put",request:o[c],response:u};a.push(p),c++}let d=Eo(),l=null;try{this.#t(a)}catch(u){l=u}return queueMicrotask(()=>{l===null?d.resolve(void 0):d.reject(l)}),d.promise}async put(e,r){S.brandCheck(this,t);let n="Cache.put";S.argumentLengthCheck(arguments,2,n),e=S.converters.RequestInfo(e),r=S.converters.Response(r,n,"response");let o=null;if(S.is.Request(e)?o=Ot(e):o=Ot(new Ki(e)),!na(o.url)||o.method!=="GET")throw S.errors.exception({header:n,message:"Expected an http/s scheme when method is not GET"});let i=eG(r);if(i.status===206)throw S.errors.exception({header:n,message:"Got 206 status"});if(i.headersList.contains("vary")){let p=Ng(i.headersList.get("vary"));for(let h of p)if(h==="*")throw S.errors.exception({header:n,message:"Got * vary field value"})}if(i.body&&(ZO(i.body.stream)||i.body.stream.locked))throw S.errors.exception({header:n,message:"Response body is locked or disturbed"});let s=wy(i),A=Eo();if(i.body!=null){let h=i.body.stream.getReader();nG(h,A.resolve,A.reject)}else A.resolve(void 0);let a=[],c={type:"put",request:o,response:s};a.push(c);let d=await A.promise;s.body!=null&&(s.body.source=d);let l=Eo(),u=null;try{this.#t(a)}catch(p){u=p}return queueMicrotask(()=>{u===null?l.resolve():l.reject(u)}),l.promise}async delete(e,r={}){S.brandCheck(this,t);let n="Cache.delete";S.argumentLengthCheck(arguments,1,n),e=S.converters.RequestInfo(e),r=S.converters.CacheQueryOptions(r,n,"options");let o=null;if(S.is.Request(e)){if(o=Ot(e),o.method!=="GET"&&!r.ignoreMethod)return!1}else kg(typeof e=="string"),o=Ot(new Ki(e));let i=[],s={type:"delete",request:o,options:r};i.push(s);let A=Eo(),a=null,c;try{c=this.#t(i)}catch(d){a=d}return queueMicrotask(()=>{a===null?A.resolve(!!c?.length):A.reject(a)}),A.promise}async keys(e=void 0,r={}){S.brandCheck(this,t);let n="Cache.keys";e!==void 0&&(e=S.converters.RequestInfo(e)),r=S.converters.CacheQueryOptions(r,n,"options");let o=null;if(e!==void 0)if(S.is.Request(e)){if(o=Ot(e),o.method!=="GET"&&!r.ignoreMethod)return[]}else typeof e=="string"&&(o=Ot(new Ki(e)));let i=Eo(),s=[];if(e===void 0)for(let A of this.#e)s.push(A[0]);else{let A=this.#r(o,r);for(let a of A)s.push(a[0])}return queueMicrotask(()=>{let A=[];for(let a of s){let c=tG(a,void 0,new AbortController().signal,"immutable");A.push(c)}i.resolve(Object.freeze(A))}),i.promise}#t(e){let r=this.#e,n=[...r],o=[],i=[];try{for(let s of e){if(s.type!=="delete"&&s.type!=="put")throw S.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(s.type==="delete"&&s.response!=null)throw S.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#r(s.request,s.options,o).length)throw new DOMException("???","InvalidStateError");let A;if(s.type==="delete"){if(A=this.#r(s.request,s.options),A.length===0)return[];for(let a of A){let c=r.indexOf(a);kg(c!==-1),r.splice(c,1)}}else if(s.type==="put"){if(s.response==null)throw S.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let a=s.request;if(!na(a.url))throw S.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(a.method!=="GET")throw S.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(s.options!=null)throw S.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});A=this.#r(s.request);for(let c of A){let d=r.indexOf(c);kg(d!==-1),r.splice(d,1)}r.push([s.request,s.response]),o.push([s.request,s.response])}i.push([s.request,s.response])}return i}catch(s){throw this.#e.length=0,this.#e=n,s}}#r(e,r,n){let o=[],i=n??this.#e;for(let s of i){let[A,a]=s;this.#n(e,A,a,r)&&o.push(s)}return o}#n(e,r,n=null,o){let i=new URL(e.url),s=new URL(r.url);if(o?.ignoreSearch&&(s.search="",i.search=""),!$O(i,s,!0))return!1;if(n==null||o?.ignoreVary||!n.headersList.contains("vary"))return!0;let A=Ng(n.headersList.get("vary"));for(let a of A){if(a==="*")return!1;let c=r.headersList.get(a),d=e.headersList.get(a);if(c!==d)return!1}return!0}#i(e,r,n=1/0){let o=null;if(e!==void 0)if(S.is.Request(e)){if(o=Ot(e),o.method!=="GET"&&!r.ignoreMethod)return[]}else typeof e=="string"&&(o=Ot(new Ki(e)));let i=[];if(e===void 0)for(let A of this.#e)i.push(A[1]);else{let A=this.#r(o,r);for(let a of A)i.push(a[1])}let s=[];for(let A of i){let a=XO(wy(A),"immutable");if(s.push(a),s.length>=n)break}return Object.freeze(s)}};Object.defineProperties(oa.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:wn,matchAll:wn,add:wn,addAll:wn,put:wn,delete:wn,keys:wn});var Ry=[{key:"ignoreSearch",converter:S.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:S.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:S.converters.boolean,defaultValue:()=>!1}];S.converters.CacheQueryOptions=S.dictionaryConverter(Ry);S.converters.MultiCacheQueryOptions=S.dictionaryConverter([...Ry,{key:"cacheName",converter:S.converters.DOMString}]);S.converters.Response=S.interfaceConverter(S.is.Response,"Response");S.converters["sequence<RequestInfo>"]=S.sequenceConverter(S.converters.RequestInfo);by.exports={Cache:oa}});var ky=B((Bj,Dy)=>{"use strict";var{Cache:ia}=Sy(),{webidl:be}=ye(),{kEnumerableProperty:zi}=O(),{kConstruct:ji}=j(),sa=class t{#e=new Map;constructor(){arguments[0]!==ji&&be.illegalConstructor(),be.util.markAsUncloneable(this)}async match(e,r={}){if(be.brandCheck(this,t),be.argumentLengthCheck(arguments,1,"CacheStorage.match"),e=be.converters.RequestInfo(e),r=be.converters.MultiCacheQueryOptions(r),r.cacheName!=null){if(this.#e.has(r.cacheName)){let n=this.#e.get(r.cacheName);return await new ia(ji,n).match(e,r)}}else for(let n of this.#e.values()){let i=await new ia(ji,n).match(e,r);if(i!==void 0)return i}}async has(e){be.brandCheck(this,t);let r="CacheStorage.has";return be.argumentLengthCheck(arguments,1,r),e=be.converters.DOMString(e,r,"cacheName"),this.#e.has(e)}async open(e){be.brandCheck(this,t);let r="CacheStorage.open";if(be.argumentLengthCheck(arguments,1,r),e=be.converters.DOMString(e,r,"cacheName"),this.#e.has(e)){let o=this.#e.get(e);return new ia(ji,o)}let n=[];return this.#e.set(e,n),new ia(ji,n)}async delete(e){be.brandCheck(this,t);let r="CacheStorage.delete";return be.argumentLengthCheck(arguments,1,r),e=be.converters.DOMString(e,r,"cacheName"),this.#e.delete(e)}async keys(){return be.brandCheck(this,t),[...this.#e.keys()]}};Object.defineProperties(sa.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:zi,has:zi,open:zi,delete:zi,keys:zi});Dy.exports={CacheStorage:sa}});var My=B((mj,Ny)=>{"use strict";Ny.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var xg=B((yj,Fy)=>{"use strict";function oG(t){for(let e=0;e<t.length;++e){let r=t.charCodeAt(e);if(r>=0&&r<=8||r>=10&&r<=31||r===127)return!0}return!1}function Mg(t){for(let e=0;e<t.length;++e){let r=t.charCodeAt(e);if(r<33||r>126||r===34||r===40||r===41||r===60||r===62||r===64||r===44||r===59||r===58||r===92||r===47||r===91||r===93||r===63||r===61||r===123||r===125)throw new Error("Invalid cookie name")}}function Tg(t){let e=t.length,r=0;if(t[0]==='"'){if(e===1||t[e-1]!=='"')throw new Error("Invalid cookie value");--e,++r}for(;r<e;){let n=t.charCodeAt(r++);if(n<33||n>126||n===34||n===44||n===59||n===92)throw new Error("Invalid cookie value")}}function xy(t){for(let e=0;e<t.length;++e){let r=t.charCodeAt(e);if(r<32||r>126||r===59)throw new Error("Invalid cookie path")}}function Ty(t){return t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122}function iG(t){if(t===" ")return;if(t.length>255)throw new Error("Invalid cookie domain");let e=0;for(let r=0;r<t.length;++r){let n=t.charCodeAt(r);if(n===46){if(e===0)throw new Error("Invalid cookie domain");if(t.charCodeAt(r-1)===45)throw new Error("Invalid cookie domain");e=0;continue}if(e===0&&!Ty(n))throw new Error("Invalid cookie domain");if(!Ty(n)&&n!==45)throw new Error("Invalid cookie domain");if(++e>63)throw new Error("Invalid cookie domain")}if(e===0||t.charCodeAt(t.length-1)===45)throw new Error("Invalid cookie domain")}var sG=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],AG=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Aa=Array(61).fill(0).map((t,e)=>e.toString().padStart(2,"0"));function Uy(t){return typeof t=="number"&&(t=new Date(t)),`${sG[t.getUTCDay()]}, ${Aa[t.getUTCDate()]} ${AG[t.getUTCMonth()]} ${t.getUTCFullYear()} ${Aa[t.getUTCHours()]}:${Aa[t.getUTCMinutes()]}:${Aa[t.getUTCSeconds()]} GMT`}function aG(t){if(t<0)throw new Error("Invalid cookie max-age")}function cG(t){if(t.name.length===0)return null;Mg(t.name),Tg(t.value);let e=[`${t.name}=${t.value}`];t.name.startsWith("__Secure-")&&(t.secure=!0),t.name.startsWith("__Host-")&&(t.secure=!0,t.domain=null,t.path="/"),t.secure&&e.push("Secure"),t.httpOnly&&e.push("HttpOnly"),typeof t.maxAge=="number"&&(aG(t.maxAge),e.push(`Max-Age=${t.maxAge}`)),t.domain&&(iG(t.domain),e.push(`Domain=${t.domain}`)),t.path&&(xy(t.path),e.push(`Path=${t.path}`)),t.expires&&t.expires.toString()!=="Invalid Date"&&e.push(`Expires=${Uy(t.expires)}`),t.sameSite&&e.push(`SameSite=${t.sameSite}`);for(let r of t.unparsed){if(!r.includes("="))throw new Error("Invalid unparsed");let[n,...o]=r.split("="),i=n.trim(),s=o.join("=");Mg(i),Tg(s),e.push(`${i}=${s}`)}return e.join("; ")}Fy.exports={isCTLExcludingHtab:oG,validateCookieName:Mg,validateCookiePath:xy,validateCookieValue:Tg,toIMFDate:Uy,stringify:cG}});var Ly=B((wj,Py)=>{"use strict";var{collectASequenceOfCodePointsFast:aa}=jt(),{maxNameValuePairSize:dG,maxAttributeValueSize:uG}=My(),{isCTLExcludingHtab:lG}=xg(),gG=require("node:assert");function fG(t){if(lG(t))return null;let e="",r="",n="",o="";if(t.includes(";")){let i={position:0};e=aa(";",t,i),r=t.slice(i.position)}else e=t;if(!e.includes("="))o=e;else{let i={position:0};n=aa("=",e,i),o=e.slice(i.position+1)}return n=n.trim(),o=o.trim(),n.length+o.length>dG?null:{name:n,value:o,...Io(r)}}function Io(t,e={}){if(t.length===0)return e;gG(t[0]===";"),t=t.slice(1);let r="";t.includes(";")?(r=aa(";",t,{position:0}),t=t.slice(r.length)):(r=t,t="");let n="",o="";if(r.includes("=")){let s={position:0};n=aa("=",r,s),o=r.slice(s.position+1)}else n=r;if(n=n.trim(),o=o.trim(),o.length>uG)return Io(t,e);let i=n.toLowerCase();if(i==="expires"){let s=new Date(o);e.expires=s}else if(i==="max-age"){let s=o.charCodeAt(0);if((s<48||s>57)&&o[0]!=="-"||!/^\d+$/.test(o))return Io(t,e);let A=Number(o);e.maxAge=A}else if(i==="domain"){let s=o;s[0]==="."&&(s=s.slice(1)),s=s.toLowerCase(),e.domain=s}else if(i==="path"){let s="";o.length===0||o[0]!=="/"?s="/":s=o,e.path=s}else if(i==="secure")e.secure=!0;else if(i==="httponly")e.httpOnly=!0;else if(i==="samesite"){let s=o.toLowerCase();s==="none"?e.sameSite="None":s==="strict"?e.sameSite="Strict":s==="lax"&&(e.sameSite="Lax")}else e.unparsed??=[],e.unparsed.push(`${n}=${o}`);return Io(t,e)}Py.exports={parseSetCookie:fG,parseUnparsedAttributes:Io}});var Gy=B((Rj,Oy)=>{"use strict";var{parseSetCookie:vy}=Ly(),{stringify:pG}=xg(),{webidl:W}=ye(),{Headers:hG}=Qn(),ca=W.brandCheckMultiple([hG,globalThis.Headers].filter(Boolean));function CG(t){W.argumentLengthCheck(arguments,1,"getCookies"),ca(t);let e=t.get("cookie"),r={};if(!e)return r;for(let n of e.split(";")){let[o,...i]=n.split("=");r[o.trim()]=i.join("=")}return r}function EG(t,e,r){ca(t);let n="deleteCookie";W.argumentLengthCheck(arguments,2,n),e=W.converters.DOMString(e,n,"name"),r=W.converters.DeleteCookieAttributes(r),_y(t,{name:e,value:"",expires:new Date(0),...r})}function IG(t){W.argumentLengthCheck(arguments,1,"getSetCookies"),ca(t);let e=t.getSetCookie();return e?e.map(r=>vy(r)):[]}function QG(t){return t=W.converters.DOMString(t),vy(t)}function _y(t,e){W.argumentLengthCheck(arguments,2,"setCookie"),ca(t),e=W.converters.Cookie(e);let r=pG(e);r&&t.append("set-cookie",r,!0)}W.converters.DeleteCookieAttributes=W.dictionaryConverter([{converter:W.nullableConverter(W.converters.DOMString),key:"path",defaultValue:()=>null},{converter:W.nullableConverter(W.converters.DOMString),key:"domain",defaultValue:()=>null}]);W.converters.Cookie=W.dictionaryConverter([{converter:W.converters.DOMString,key:"name"},{converter:W.converters.DOMString,key:"value"},{converter:W.nullableConverter(t=>typeof t=="number"?W.converters["unsigned long long"](t):new Date(t)),key:"expires",defaultValue:()=>null},{converter:W.nullableConverter(W.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:W.nullableConverter(W.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:W.nullableConverter(W.converters.DOMString),key:"path",defaultValue:()=>null},{converter:W.nullableConverter(W.converters.boolean),key:"secure",defaultValue:()=>null},{converter:W.nullableConverter(W.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:W.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:W.sequenceConverter(W.converters.DOMString),key:"unparsed",defaultValue:()=>[]}]);Oy.exports={getCookies:CG,deleteCookie:EG,getSetCookies:IG,setCookie:_y,parseCookie:QG}});var la=B((bj,Yy)=>{"use strict";var{webidl:N}=ye(),{kEnumerableProperty:He}=O(),{kConstruct:Hy}=j(),Qo=class t extends Event{#e;constructor(e,r={}){if(e===Hy){super(arguments[1],arguments[2]),N.util.markAsUncloneable(this);return}let n="MessageEvent constructor";N.argumentLengthCheck(arguments,1,n),e=N.converters.DOMString(e,n,"type"),r=N.converters.MessageEventInit(r,n,"eventInitDict"),super(e,r),this.#e=r,N.util.markAsUncloneable(this)}get data(){return N.brandCheck(this,t),this.#e.data}get origin(){return N.brandCheck(this,t),this.#e.origin}get lastEventId(){return N.brandCheck(this,t),this.#e.lastEventId}get source(){return N.brandCheck(this,t),this.#e.source}get ports(){return N.brandCheck(this,t),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(e,r=!1,n=!1,o=null,i="",s="",A=null,a=[]){return N.brandCheck(this,t),N.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new t(e,{bubbles:r,cancelable:n,data:o,origin:i,lastEventId:s,source:A,ports:a})}static createFastMessageEvent(e,r){let n=new t(Hy,e,r);return n.#e=r,n.#e.data??=null,n.#e.origin??="",n.#e.lastEventId??="",n.#e.source??=null,n.#e.ports??=[],n}},{createFastMessageEvent:BG}=Qo;delete Qo.createFastMessageEvent;var da=class t extends Event{#e;constructor(e,r={}){let n="CloseEvent constructor";N.argumentLengthCheck(arguments,1,n),e=N.converters.DOMString(e,n,"type"),r=N.converters.CloseEventInit(r),super(e,r),this.#e=r,N.util.markAsUncloneable(this)}get wasClean(){return N.brandCheck(this,t),this.#e.wasClean}get code(){return N.brandCheck(this,t),this.#e.code}get reason(){return N.brandCheck(this,t),this.#e.reason}},ua=class t extends Event{#e;constructor(e,r){let n="ErrorEvent constructor";N.argumentLengthCheck(arguments,1,n),super(e,r),N.util.markAsUncloneable(this),e=N.converters.DOMString(e,n,"type"),r=N.converters.ErrorEventInit(r??{}),this.#e=r}get message(){return N.brandCheck(this,t),this.#e.message}get filename(){return N.brandCheck(this,t),this.#e.filename}get lineno(){return N.brandCheck(this,t),this.#e.lineno}get colno(){return N.brandCheck(this,t),this.#e.colno}get error(){return N.brandCheck(this,t),this.#e.error}};Object.defineProperties(Qo.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:He,origin:He,lastEventId:He,source:He,ports:He,initMessageEvent:He});Object.defineProperties(da.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:He,code:He,wasClean:He});Object.defineProperties(ua.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:He,filename:He,lineno:He,colno:He,error:He});N.converters.MessagePort=N.interfaceConverter(N.is.MessagePort,"MessagePort");N.converters["sequence<MessagePort>"]=N.sequenceConverter(N.converters.MessagePort);var Ug=[{key:"bubbles",converter:N.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:N.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:N.converters.boolean,defaultValue:()=>!1}];N.converters.MessageEventInit=N.dictionaryConverter([...Ug,{key:"data",converter:N.converters.any,defaultValue:()=>null},{key:"origin",converter:N.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:N.converters.DOMString,defaultValue:()=>""},{key:"source",converter:N.nullableConverter(N.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:N.converters["sequence<MessagePort>"],defaultValue:()=>[]}]);N.converters.CloseEventInit=N.dictionaryConverter([...Ug,{key:"wasClean",converter:N.converters.boolean,defaultValue:()=>!1},{key:"code",converter:N.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:N.converters.USVString,defaultValue:()=>""}]);N.converters.ErrorEventInit=N.dictionaryConverter([...Ug,{key:"message",converter:N.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:N.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:N.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:N.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:N.converters.any}]);Yy.exports={MessageEvent:Qo,CloseEvent:da,ErrorEvent:ua,createFastMessageEvent:BG}});var xr=B((Sj,Vy)=>{"use strict";var mG="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",yG={enumerable:!0,writable:!1,configurable:!1},wG={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},RG={SENT:1,RECEIVED:2},bG={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},SG=65535,DG={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},kG=Buffer.allocUnsafe(0),NG={text:1,typedArray:2,arrayBuffer:3,blob:4};Vy.exports={uid:mG,sentCloseFrameState:RG,staticPropertyDescriptors:yG,states:wG,opcodes:bG,maxUnsigned16Bit:SG,parserStates:DG,emptyBuffer:kG,sendHints:NG}});var Rn=B((Dj,zy)=>{"use strict";var{states:ga,opcodes:Bo}=xr(),{isUtf8:MG}=require("node:buffer"),{removeHTTPWhitespace:qy}=dt(),{collectASequenceOfCodePointsFast:TG}=jt();function xG(t){return t===ga.CONNECTING}function UG(t){return t===ga.OPEN}function FG(t){return t===ga.CLOSING}function PG(t){return t===ga.CLOSED}function LG(t,e,r=(o,i)=>new Event(o,i),n={}){let o=r(t,n);e.dispatchEvent(o)}function vG(t,e,r){t.onMessage(e,r)}function _G(t){return t.byteLength===t.buffer.byteLength?t.buffer:new Uint8Array(t).buffer}function OG(t){if(t.length===0)return!1;for(let e=0;e<t.length;++e){let r=t.charCodeAt(e);if(r<33||r>126||r===34||r===40||r===41||r===44||r===47||r===58||r===59||r===60||r===61||r===62||r===63||r===64||r===91||r===92||r===93||r===123||r===125)return!1}return!0}function GG(t){return t>=1e3&&t<1015?t!==1004&&t!==1005&&t!==1006:t>=3e3&&t<=4999}function Wy(t){return t===Bo.CLOSE||t===Bo.PING||t===Bo.PONG}function Jy(t){return t===Bo.CONTINUATION}function Ky(t){return t===Bo.TEXT||t===Bo.BINARY}function HG(t){return Ky(t)||Jy(t)||Wy(t)}function YG(t){let e={position:0},r=new Map;for(;e.position<t.length;){let n=TG(";",t,e),[o,i=""]=n.split("=",2);r.set(qy(o,!0,!1),qy(i,!1,!0)),e.position++}return r}function VG(t){if(t.length===0)return!1;for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(n<48||n>57)return!1}let e=Number.parseInt(t,10);return e>=8&&e<=15}function qG(t,e){let r;try{r=new URL(t,e)}catch(n){throw new DOMException(n,"SyntaxError")}if(r.protocol==="http:"?r.protocol="ws:":r.protocol==="https:"&&(r.protocol="wss:"),r.protocol!=="ws:"&&r.protocol!=="wss:")throw new DOMException("expected a ws: or wss: url","SyntaxError");if(r.hash.length||r.href.endsWith("#"))throw new DOMException("hash","SyntaxError");return r}function WG(t,e){if(t!==null&&t!==1e3&&(t<3e3||t>4999))throw new DOMException("invalid code","InvalidAccessError");if(e!==null){let r=Buffer.byteLength(e);if(r>123)throw new DOMException(`Reason must be less than 123 bytes; received ${r}`,"SyntaxError")}}var JG=(()=>{if(typeof process.versions.icu=="string"){let t=new TextDecoder("utf-8",{fatal:!0});return t.decode.bind(t)}return function(t){if(MG(t))return t.toString("utf-8");throw new TypeError("Invalid utf-8 received.")}})();zy.exports={isConnecting:xG,isEstablished:UG,isClosing:FG,isClosed:PG,fireEvent:LG,isValidSubprotocol:OG,isValidStatusCode:GG,websocketMessageReceived:vG,utf8Decode:JG,isControlFrame:Wy,isContinuationFrame:Jy,isTextBinaryFrame:Ky,isValidOpcode:HG,parseExtensions:YG,isValidClientWindowBits:VG,toArrayBuffer:_G,getURLRecord:qG,validateCloseCodeAndReason:WG}});var yo=B((kj,$y)=>{"use strict";var{runtimeFeatures:KG}=$t(),{maxUnsigned16Bit:jy,opcodes:zG}=xr(),fa=8*1024,$i=null,mo=fa,jG=KG.has("crypto")?require("node:crypto").randomFillSync:function(e,r,n){for(let o=0;o<e.length;++o)e[o]=Math.random()*255|0;return e};function Fg(){return mo===fa&&(mo=0,jG($i??=Buffer.allocUnsafeSlow(fa),0,fa)),[$i[mo++],$i[mo++],$i[mo++],$i[mo++]]}var Pg=class{constructor(e){this.frameData=e}createFrame(e){let r=this.frameData,n=Fg(),o=r?.byteLength??0,i=o,s=6;o>jy?(s+=8,i=127):o>125&&(s+=2,i=126);let A=Buffer.allocUnsafe(o+s);A[0]=A[1]=0,A[0]|=128,A[0]=(A[0]&240)+e;A[s-4]=n[0],A[s-3]=n[1],A[s-2]=n[2],A[s-1]=n[3],A[1]=i,i===126?A.writeUInt16BE(o,2):i===127&&(A[2]=A[3]=0,A.writeUIntBE(o,4,6)),A[1]|=128;for(let a=0;a<o;++a)A[s+a]=r[a]^n[a&3];return A}static createFastTextFrame(e){let r=Fg(),n=e.length;for(let A=0;A<n;++A)e[A]^=r[A&3];let o=n,i=6;n>jy?(i+=8,o=127):n>125&&(i+=2,o=126);let s=Buffer.allocUnsafeSlow(i);return s[0]=128|zG.TEXT,s[1]=o|128,s[i-4]=r[0],s[i-3]=r[1],s[i-2]=r[2],s[i-1]=r[3],o===126?s.writeUInt16BE(n,2):o===127&&(s[2]=s[3]=0,s.writeUIntBE(n,4,6)),[s,e]}};$y.exports={WebsocketFrameSend:Pg,generateMask:Fg}});var pa=B((Nj,nw)=>{"use strict";var{uid:$G,states:Lg,sentCloseFrameState:vg,emptyBuffer:Zy,opcodes:ZG}=xr(),{parseExtensions:XG,isClosed:eH,isClosing:tH,isEstablished:tw,isConnecting:rH,validateCloseCodeAndReason:nH}=Rn(),{makeRequest:oH}=Co(),{fetching:iH}=Ji(),{Headers:sH,getHeadersList:AH}=Qn(),{getDecodeSplit:aH}=Ke(),{WebsocketFrameSend:cH}=yo(),dH=require("node:assert"),{runtimeFeatures:uH}=$t(),Xy=uH.has("crypto")?require("node:crypto"):null,ew=!1;function lH(t,e,r,n,o){let i=t;i.protocol=t.protocol==="ws:"?"http:":"https:";let s=oH({urlList:[i],client:r,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error",useURLCredentials:!0});if(o.headers){let d=AH(new sH(o.headers));s.headersList=d}let A=Xy.randomBytes(16).toString("base64");s.headersList.append("sec-websocket-key",A,!0),s.headersList.append("sec-websocket-version","13",!0);for(let d of e)s.headersList.append("sec-websocket-protocol",d,!0);return s.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits",!0),iH({request:s,useParallelQueue:!0,dispatcher:o.dispatcher,processResponse(d){if(d.type==="error"||d.status!==101){if(d.socket?.session==null){Gt(n,1002,"Received network error or non-101 status code.",d.error);return}if(d.status!==200){Gt(n,1002,"Received network error or non-200 status code.",d.error);return}}if(ew===!1&&d.socket?.session!=null&&(process.emitWarning("WebSocket over HTTP2 is experimental, and subject to change.","ExperimentalWarning"),ew=!0),e.length!==0&&!d.headersList.get("Sec-WebSocket-Protocol")){Gt(n,1002,"Server did not respond with sent protocols.");return}if(d.socket.session==null&&d.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){Gt(n,1002,'Server did not set Upgrade header to "websocket".');return}if(d.socket.session==null&&d.headersList.get("Connection")?.toLowerCase()!=="upgrade"){Gt(n,1002,'Server did not set Connection header to "upgrade".');return}let l=d.headersList.get("Sec-WebSocket-Accept"),u=Xy.hash("sha1",A+$G,"base64");if(l!==u){Gt(n,1002,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let p=d.headersList.get("Sec-WebSocket-Extensions"),h;if(p!==null&&(h=XG(p),!h.has("permessage-deflate"))){Gt(n,1002,"Sec-WebSocket-Extensions header does not match.");return}let I=d.headersList.get("Sec-WebSocket-Protocol");if(I!==null&&!aH("sec-websocket-protocol",s.headersList).includes(I)){Gt(n,1002,"Protocol was not set in the opening handshake.");return}d.socket.on("data",n.onSocketData),d.socket.on("close",n.onSocketClose),d.socket.on("error",n.onSocketError),n.wasEverConnected=!0,n.onConnectionEstablished(d,h)}})}function rw(t,e,r,n=!1){if(e??=null,r??="",n&&nH(e,r),!(eH(t.readyState)||tH(t.readyState)))if(!tw(t.readyState))Gt(t),t.readyState=Lg.CLOSING;else if(!t.closeState.has(vg.SENT)&&!t.closeState.has(vg.RECEIVED)){let o=new cH;r.length!==0&&e===null&&(e=1e3),dH(e===null||Number.isInteger(e)),e===null&&r.length===0?o.frameData=Zy:e!==null&&r===null?(o.frameData=Buffer.allocUnsafe(2),o.frameData.writeUInt16BE(e,0)):e!==null&&r!==null?(o.frameData=Buffer.allocUnsafe(2+Buffer.byteLength(r)),o.frameData.writeUInt16BE(e,0),o.frameData.write(r,2,"utf-8")):o.frameData=Zy,t.socket.write(o.createFrame(ZG.CLOSE)),t.closeState.add(vg.SENT),t.readyState=Lg.CLOSING}else t.readyState=Lg.CLOSING}function Gt(t,e,r,n){tw(t.readyState)&&rw(t,e,r,!1),t.controller.abort(),rH(t.readyState)?t.onSocketClose():t.socket?.destroyed===!1&&t.socket.destroy()}nw.exports={establishWebSocketConnection:lH,failWebsocketConnection:Gt,closeWebSocketConnection:rw}});var iw=B((Mj,ow)=>{"use strict";var{createInflateRaw:gH,Z_DEFAULT_WINDOWBITS:fH}=require("node:zlib"),{isValidClientWindowBits:pH}=Rn(),{MessageSizeExceededError:hH}=_(),CH=Buffer.from([0,0,255,255]),ha=Symbol("kBuffer"),Zi=Symbol("kLength"),_g=class{#e;#t={};#r=0;constructor(e,r){this.#t.serverNoContextTakeover=e.has("server_no_context_takeover"),this.#t.serverMaxWindowBits=e.get("server_max_window_bits"),this.#r=r.maxPayloadSize}decompress(e,r,n){if(!this.#e){let o=fH;if(this.#t.serverMaxWindowBits){if(!pH(this.#t.serverMaxWindowBits)){n(new Error("Invalid server_max_window_bits"));return}o=Number.parseInt(this.#t.serverMaxWindowBits)}try{this.#e=gH({windowBits:o})}catch(i){n(i);return}this.#e[ha]=[],this.#e[Zi]=0,this.#e.on("data",i=>{if(this.#e[Zi]+=i.length,this.#r>0&&this.#e[Zi]>this.#r){n(new hH),this.#e.removeAllListeners(),this.#e=null;return}this.#e[ha].push(i)}),this.#e.on("error",i=>{this.#e=null,n(i)})}this.#e.write(e),r&&this.#e.write(CH),this.#e.flush(()=>{if(!this.#e)return;let o=Buffer.concat(this.#e[ha],this.#e[Zi]);this.#e[ha].length=0,this.#e[Zi]=0,n(null,o)})}};ow.exports={PerMessageDeflate:_g}});var Yg=B((Tj,dw)=>{"use strict";var{Writable:EH}=require("node:stream"),IH=require("node:assert"),{parserStates:Ye,opcodes:wo,states:QH,emptyBuffer:sw,sentCloseFrameState:Xi}=xr(),{isValidStatusCode:BH,isValidOpcode:mH,websocketMessageReceived:Aw,utf8Decode:yH,isControlFrame:Og,isTextBinaryFrame:Gg,isContinuationFrame:wH}=Rn(),{failWebsocketConnection:Se}=pa(),{WebsocketFrameSend:aw}=yo(),{PerMessageDeflate:RH}=iw(),{MessageSizeExceededError:cw}=_(),Hg=class extends EH{#e=[];#t=0;#r=0;#n=!1;#i=Ye.INFO;#o={};#a=[];#s;#A;#c;#u;constructor(e,r,n={}){super(),this.#A=e,this.#s=r??new Map,this.#c=n.maxFragments??0,this.#u=n.maxPayloadSize??0,this.#s.has("permessage-deflate")&&this.#s.set("permessage-deflate",new RH(r,n))}_write(e,r,n){this.#e.push(e),this.#r+=e.length,this.#n=!0,this.run(n)}#d(){return this.#u>0&&!Og(this.#o.opcode)&&this.#o.payloadLength+this.#t>this.#u?(Se(this.#A,1009,"Payload size exceeds maximum allowed size"),!1):!0}run(e){for(;this.#n;)if(this.#i===Ye.INFO){if(this.#r<2)return e();let r=this.consume(2),n=(r[0]&128)!==0,o=r[0]&15,i=(r[1]&128)===128,s=!n&&o!==wo.CONTINUATION,A=r[1]&127,a=r[0]&64,c=r[0]&32,d=r[0]&16;if(!mH(o))return Se(this.#A,1002,"Invalid opcode received"),e();if(i)return Se(this.#A,1002,"Frame cannot be masked"),e();if(a!==0&&!this.#s.has("permessage-deflate")){Se(this.#A,1002,"Expected RSV1 to be clear.");return}if(c!==0||d!==0){Se(this.#A,1002,"RSV1, RSV2, RSV3 must be clear");return}if(s&&!Gg(o)){Se(this.#A,1002,"Invalid frame type was fragmented.");return}if(Gg(o)&&this.#a.length>0){Se(this.#A,1002,"Expected continuation frame");return}if(this.#o.fragmented&&s){Se(this.#A,1002,"Fragmented frame exceeded 125 bytes.");return}if((A>125||s)&&Og(o)){Se(this.#A,1002,"Control frame either too large or fragmented");return}if(wH(o)&&this.#a.length===0&&!this.#o.compressed){Se(this.#A,1002,"Unexpected continuation frame");return}if(A<=125){if(this.#o.payloadLength=A,this.#i=Ye.READ_DATA,!this.#d())return}else A===126?this.#i=Ye.PAYLOADLENGTH_16:A===127&&(this.#i=Ye.PAYLOADLENGTH_64);Gg(o)&&(this.#o.binaryType=o,this.#o.compressed=a!==0),this.#o.opcode=o,this.#o.masked=i,this.#o.fin=n,this.#o.fragmented=s}else if(this.#i===Ye.PAYLOADLENGTH_16){if(this.#r<2)return e();let r=this.consume(2);if(this.#o.payloadLength=r.readUInt16BE(0),this.#i=Ye.READ_DATA,!this.#d())return}else if(this.#i===Ye.PAYLOADLENGTH_64){if(this.#r<8)return e();let r=this.consume(8),n=r.readUInt32BE(0),o=r.readUInt32BE(4);if(n!==0||o>2**31-1){Se(this.#A,1009,"Received payload length > 2^31 bytes.");return}if(this.#o.payloadLength=o,this.#i=Ye.READ_DATA,!this.#d())return}else if(this.#i===Ye.READ_DATA){if(this.#r<this.#o.payloadLength)return e();let r=this.consume(this.#o.payloadLength);if(Og(this.#o.opcode))this.#n=this.parseControlFrame(r),this.#i=Ye.INFO;else if(this.#o.compressed){this.#s.get("permessage-deflate").decompress(r,this.#o.fin,(n,o)=>{if(n){let i=n instanceof cw?1009:1007;Se(this.#A,i,n.message);return}if(this.writeFragments(o)){if(this.#u>0&&this.#t>this.#u){Se(this.#A,1009,new cw().message);return}if(!this.#o.fin){this.#i=Ye.INFO,this.#n=!0,this.run(e);return}Aw(this.#A,this.#o.binaryType,this.consumeFragments()),this.#n=!0,this.#i=Ye.INFO,this.run(e)}},this.#t),this.#n=!1;break}else{if(!this.writeFragments(r))return;!this.#o.fragmented&&this.#o.fin&&Aw(this.#A,this.#o.binaryType,this.consumeFragments()),this.#i=Ye.INFO}}}consume(e){if(e>this.#r)throw new Error("Called consume() before buffers satiated.");if(e===0)return sw;this.#r-=e;let r=this.#e[0];if(r.length>e)return this.#e[0]=r.subarray(e,r.length),r.subarray(0,e);if(r.length===e)return this.#e.shift();{let n=0,o=Buffer.allocUnsafeSlow(e);for(;n!==e;){let i=this.#e[0],s=i.length;if(s+n===e){o.set(this.#e.shift(),n);break}else if(s+n>e){o.set(i.subarray(0,e-n),n),this.#e[0]=i.subarray(e-n);break}else o.set(this.#e.shift(),n),n+=s}return o}}writeFragments(e){return this.#c>0&&this.#a.length===this.#c?(Se(this.#A,1008,"Too many message fragments"),!1):(this.#t+=e.length,this.#a.push(e),!0)}consumeFragments(){let e=this.#a;if(e.length===1)return this.#t=0,e.shift();let r=0,n=Buffer.allocUnsafeSlow(this.#t);for(let o=0;o<e.length;++o){let i=e[o];n.set(i,r),r+=i.length}return this.#a=[],this.#t=0,n}parseCloseBody(e){IH(e.length!==1);let r;if(e.length>=2&&(r=e.readUInt16BE(0)),r!==void 0&&!BH(r))return{code:1002,reason:"Invalid status code",error:!0};let n=e.subarray(2);n[0]===239&&n[1]===187&&n[2]===191&&(n=n.subarray(3));try{n=yH(n)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:r,reason:n,error:!1}}parseControlFrame(e){let{opcode:r,payloadLength:n}=this.#o;if(r===wo.CLOSE){if(n===1)return Se(this.#A,1002,"Received close frame with a 1-byte body."),!1;if(this.#o.closeInfo=this.parseCloseBody(e),this.#o.closeInfo.error){let{code:o,reason:i}=this.#o.closeInfo;return Se(this.#A,o,i),!1}if(!this.#A.closeState.has(Xi.SENT)&&!this.#A.closeState.has(Xi.RECEIVED)){let o=sw;this.#o.closeInfo.code&&(o=Buffer.allocUnsafe(2),o.writeUInt16BE(this.#o.closeInfo.code,0));let i=new aw(o);this.#A.socket.write(i.createFrame(wo.CLOSE)),this.#A.closeState.add(Xi.SENT)}return this.#A.readyState=QH.CLOSING,this.#A.closeState.add(Xi.RECEIVED),!1}else if(r===wo.PING){if(!this.#A.closeState.has(Xi.RECEIVED)){let o=new aw(e);this.#A.socket.write(o.createFrame(wo.PONG)),this.#A.onPing(e)}}else r===wo.PONG&&this.#A.onPong(e);return!0}get closingInfo(){return this.#o.closeInfo}};dw.exports={ByteParser:Hg}});var fw=B((xj,gw)=>{"use strict";var{WebsocketFrameSend:lw}=yo(),{opcodes:uw,sendHints:bn}=xr(),bH=du(),qg=class{#e=new bH;#t=!1;#r;constructor(e){this.#r=e}add(e,r,n){if(n!==bn.blob){if(this.#t){let i={promise:null,callback:r,frame:Vg(e,n)};this.#e.push(i)}else if(n===bn.text){let{0:i,1:s}=lw.createFastTextFrame(e);this.#r.cork(),this.#r.write(i),this.#r.write(s,r),this.#r.uncork()}else this.#r.write(Vg(e,n),r);return}let o={promise:e.arrayBuffer().then(i=>{o.promise=null,o.frame=Vg(i,n)}),callback:r,frame:null};this.#e.push(o),this.#t||this.#n()}async#n(){this.#t=!0;let e=this.#e;for(;!e.isEmpty();){let r=e.shift();r.promise!==null&&await r.promise,this.#r.write(r.frame,r.callback),r.callback=r.frame=null}this.#t=!1}};function Vg(t,e){return new lw(SH(t,e)).createFrame(e===bn.text?uw.TEXT:uw.BINARY)}function SH(t,e){switch(e){case bn.text:case bn.typedArray:return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);case bn.arrayBuffer:case bn.blob:return new Uint8Array(t)}}gw.exports={SendQueue:qg}});var Qw=B((Uj,Iw)=>{"use strict";var{isArrayBuffer:DH}=require("node:util/types"),{webidl:M}=ye(),{URLSerializer:kH}=dt(),{environmentSettingsObject:pw}=Ke(),{staticPropertyDescriptors:Ur,states:ar,sentCloseFrameState:Wg,sendHints:Ca,opcodes:Jg}=xr(),{isConnecting:NH,isEstablished:hw,isClosing:Cw,isClosed:MH,isValidSubprotocol:TH,fireEvent:Ea,utf8Decode:xH,toArrayBuffer:UH,getURLRecord:FH}=Rn(),{establishWebSocketConnection:PH,closeWebSocketConnection:LH,failWebsocketConnection:Ew}=pa(),{ByteParser:vH}=Yg(),{kEnumerableProperty:Et}=O(),{getGlobalDispatcher:_H}=FA(),{ErrorEvent:OH,CloseEvent:GH,createFastMessageEvent:HH}=la(),{SendQueue:YH}=fw(),{WebsocketFrameSend:VH}=yo(),{channels:Ht}=lr();function qH(t){return typeof t?.address=="function"?t.address():typeof t?.session?.socket?.address=="function"?t.session.socket.address():null}var xe=class t extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#r="";#n="";#i;#o={onConnectionEstablished:(e,r)=>this.#c(e,r),onMessage:(e,r)=>this.#u(e,r),onParserError:e=>Ew(this.#o,null,e.message),onParserDrain:()=>this.#d(),onSocketData:e=>{this.#A.write(e)||this.#o.socket.pause()},onSocketError:e=>{this.#o.readyState=ar.CLOSING,Ht.socketError.hasSubscribers&&Ht.socketError.publish(e),this.#o.socket.destroy()},onSocketClose:()=>this.#l(),onPing:e=>{Ht.ping.hasSubscribers&&Ht.ping.publish({payload:e,websocket:this})},onPong:e=>{Ht.pong.hasSubscribers&&Ht.pong.publish({payload:e,websocket:this})},readyState:ar.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#a;#s;#A;constructor(e,r=[]){super(),M.util.markAsUncloneable(this);let n="WebSocket constructor";M.argumentLengthCheck(arguments,1,n);let o=M.converters["DOMString or sequence<DOMString> or WebSocketInit"](r,n,"options");e=M.converters.USVString(e),r=o.protocols;let i=pw.settingsObject.baseUrl,s=FH(e,i);if(typeof r=="string"&&(r=[r]),r.length!==new Set(r.map(a=>a.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(r.length>0&&!r.every(a=>TH(a)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this.#a=new URL(s.href);let A=pw.settingsObject;this.#o.controller=PH(s,r,A,this.#o,o),this.#o.readyState=t.CONNECTING,this.#s="blob"}close(e=void 0,r=void 0){M.brandCheck(this,t),e!==void 0&&(e=M.converters["unsigned short"](e,"WebSocket.close","code",M.attributes.Clamp)),r!==void 0&&(r=M.converters.USVString(r)),e??=null,r??="",LH(this.#o,e,r,!0)}send(e){M.brandCheck(this,t);let r="WebSocket.send";if(M.argumentLengthCheck(arguments,1,r),e=M.converters.WebSocketSendData(e,r,"data"),NH(this.#o.readyState))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!hw(this.#o.readyState)||Cw(this.#o.readyState)))if(typeof e=="string"){let n=Buffer.from(e);this.#t+=n.byteLength,this.#i.add(n,()=>{this.#t-=n.byteLength},Ca.text)}else DH(e)?(this.#t+=e.byteLength,this.#i.add(e,()=>{this.#t-=e.byteLength},Ca.arrayBuffer)):ArrayBuffer.isView(e)?(this.#t+=e.byteLength,this.#i.add(e,()=>{this.#t-=e.byteLength},Ca.typedArray)):M.is.Blob(e)&&(this.#t+=e.size,this.#i.add(e,()=>{this.#t-=e.size},Ca.blob))}get readyState(){return M.brandCheck(this,t),this.#o.readyState}get bufferedAmount(){return M.brandCheck(this,t),this.#t}get url(){return M.brandCheck(this,t),kH(this.#a)}get extensions(){return M.brandCheck(this,t),this.#n}get protocol(){return M.brandCheck(this,t),this.#r}get onopen(){return M.brandCheck(this,t),this.#e.open}set onopen(e){M.brandCheck(this,t),this.#e.open&&this.removeEventListener("open",this.#e.open);let r=M.converters.EventHandlerNonNull(e);r!==null?(this.addEventListener("open",r),this.#e.open=e):this.#e.open=null}get onerror(){return M.brandCheck(this,t),this.#e.error}set onerror(e){M.brandCheck(this,t),this.#e.error&&this.removeEventListener("error",this.#e.error);let r=M.converters.EventHandlerNonNull(e);r!==null?(this.addEventListener("error",r),this.#e.error=e):this.#e.error=null}get onclose(){return M.brandCheck(this,t),this.#e.close}set onclose(e){M.brandCheck(this,t),this.#e.close&&this.removeEventListener("close",this.#e.close);let r=M.converters.EventHandlerNonNull(e);r!==null?(this.addEventListener("close",r),this.#e.close=e):this.#e.close=null}get onmessage(){return M.brandCheck(this,t),this.#e.message}set onmessage(e){M.brandCheck(this,t),this.#e.message&&this.removeEventListener("message",this.#e.message);let r=M.converters.EventHandlerNonNull(e);r!==null?(this.addEventListener("message",r),this.#e.message=e):this.#e.message=null}get binaryType(){return M.brandCheck(this,t),this.#s}set binaryType(e){M.brandCheck(this,t),e!=="blob"&&e!=="arraybuffer"?this.#s="blob":this.#s=e}#c(e,r){this.#o.socket=e.socket;let n=this.#o.controller.dispatcher?.webSocketOptions,o=n?.maxFragments,i=n?.maxPayloadSize,s=new vH(this.#o,r,{maxFragments:o,maxPayloadSize:i});s.on("drain",()=>this.#o.onParserDrain()),s.on("error",c=>this.#o.onParserError(c)),this.#A=s,this.#i=new YH(e.socket),this.#o.readyState=ar.OPEN;let A=e.headersList.get("sec-websocket-extensions");A!==null&&(this.#n=A);let a=e.headersList.get("sec-websocket-protocol");if(a!==null&&(this.#r=a),Ea("open",this),Ht.open.hasSubscribers){let c=e.headersList.entries;Ht.open.publish({address:qH(e.socket),protocol:this.#r,extensions:this.#n,websocket:this,handshakeResponse:{status:e.status,statusText:e.statusText,headers:c}})}}#u(e,r){if(this.#o.readyState!==ar.OPEN)return;let n;if(e===Jg.TEXT)try{n=xH(r)}catch{Ew(this.#o,1007,"Received invalid UTF-8 in text frame.");return}else e===Jg.BINARY&&(this.#s==="blob"?n=new Blob([r]):n=UH(r));Ea("message",this,HH,{origin:this.#a.origin,data:n})}#d(){this.#o.socket.resume()}#l(){let e=this.#o.closeState.has(Wg.SENT)&&this.#o.closeState.has(Wg.RECEIVED),r=1005,n="",o=this.#A?.closingInfo;o&&!o.error&&(r=o.code??1005,n=o.reason),this.#o.readyState=ar.CLOSED,this.#o.closeState.has(Wg.RECEIVED)||(r=1006,Ea("error",this,(i,s)=>new OH(i,s),{error:new TypeError(n)})),Ea("close",this,(i,s)=>new GH(i,s),{wasClean:e,code:r,reason:n}),Ht.close.hasSubscribers&&Ht.close.publish({websocket:this,code:r,reason:n})}static ping(e,r){if(Buffer.isBuffer(r)){if(r.length>125)throw new TypeError("A PING frame cannot have a body larger than 125 bytes.")}else if(r!==void 0)throw new TypeError("Expected buffer payload");let n=e.#o.readyState;if(hw(n)&&!Cw(n)&&!MH(n)){let o=new VH(r);e.#o.socket.write(o.createFrame(Jg.PING))}}},{ping:WH}=xe;Reflect.deleteProperty(xe,"ping");xe.CONNECTING=xe.prototype.CONNECTING=ar.CONNECTING;xe.OPEN=xe.prototype.OPEN=ar.OPEN;xe.CLOSING=xe.prototype.CLOSING=ar.CLOSING;xe.CLOSED=xe.prototype.CLOSED=ar.CLOSED;Object.defineProperties(xe.prototype,{CONNECTING:Ur,OPEN:Ur,CLOSING:Ur,CLOSED:Ur,url:Et,readyState:Et,bufferedAmount:Et,onopen:Et,onerror:Et,onclose:Et,close:Et,onmessage:Et,binaryType:Et,send:Et,extensions:Et,protocol:Et,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(xe,{CONNECTING:Ur,OPEN:Ur,CLOSING:Ur,CLOSED:Ur});M.converters["sequence<DOMString>"]=M.sequenceConverter(M.converters.DOMString);M.converters["DOMString or sequence<DOMString>"]=function(t,e,r){return M.util.Type(t)===M.util.Types.OBJECT&&Symbol.iterator in t?M.converters["sequence<DOMString>"](t):M.converters.DOMString(t,e,r)};M.converters.WebSocketInit=M.dictionaryConverter([{key:"protocols",converter:M.converters["DOMString or sequence<DOMString>"],defaultValue:()=>[]},{key:"dispatcher",converter:M.converters.any,defaultValue:()=>_H()},{key:"headers",converter:M.nullableConverter(M.converters.HeadersInit)}]);M.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(t){return M.util.Type(t)===M.util.Types.OBJECT&&!(Symbol.iterator in t)?M.converters.WebSocketInit(t):{protocols:M.converters["DOMString or sequence<DOMString>"](t)}};M.converters.WebSocketSendData=function(t){return M.util.Type(t)===M.util.Types.OBJECT&&(M.is.Blob(t)||M.is.BufferSource(t))?t:M.converters.USVString(t)};Iw.exports={WebSocket:xe,ping:WH}});var Kg=B((Fj,yw)=>{"use strict";var{webidl:Ia}=ye(),{validateCloseCodeAndReason:JH}=Rn(),{kConstruct:Bw}=j(),{kEnumerableProperty:mw}=O();function KH(){class t extends DOMException{get reason(){return""}}return new t().reason!==void 0?DOMException:new Proxy(DOMException,{construct(e,r,n){let o=Reflect.construct(e,r,e);return Object.setPrototypeOf(o,n.prototype),o}})}var Sn=class t extends KH(){#e;#t;constructor(e="",r=void 0){if(e=Ia.converters.DOMString(e,"WebSocketError","message"),super(e,"WebSocketError"),r===Bw)return;r!==null&&(r=Ia.converters.WebSocketCloseInfo(r));let n=r.closeCode??null,o=r.reason??"";JH(n,o),o.length!==0&&n===null&&(n=1e3),this.#e=n,this.#t=o}get closeCode(){return this.#e}get reason(){return this.#t}static createUnvalidatedWebSocketError(e,r,n){let o=new t(e,Bw);return o.#e=r,o.#t=n,o}},{createUnvalidatedWebSocketError:zH}=Sn;delete Sn.createUnvalidatedWebSocketError;Object.defineProperties(Sn.prototype,{closeCode:mw,reason:mw,[Symbol.toStringTag]:{value:"WebSocketError",writable:!1,enumerable:!1,configurable:!0}});Ia.is.WebSocketError=Ia.util.MakeTypeAssertion(Sn);yw.exports={WebSocketError:Sn,createUnvalidatedWebSocketError:zH}});var Dw=B((Pj,Sw)=>{"use strict";var{createDeferredPromise:zg}=si(),{environmentSettingsObject:ww}=Ke(),{states:Ro,opcodes:Qa,sentCloseFrameState:bo}=xr(),{webidl:de}=ye(),{getURLRecord:jH,isValidSubprotocol:$H,isEstablished:ZH,utf8Decode:XH}=Rn(),{establishWebSocketConnection:eY,failWebsocketConnection:jg,closeWebSocketConnection:$g}=pa(),{channels:Rw}=lr(),{WebsocketFrameSend:tY}=yo(),{ByteParser:rY}=Yg(),{WebSocketError:nY,createUnvalidatedWebSocketError:oY}=Kg(),{kEnumerableProperty:Ba}=O(),{utf8DecodeBytes:iY}=Gs(),bw=!1,ma=class{#e;#t;#r;#n;#i;#o;#a=!1;#s={onConnectionEstablished:(e,r)=>this.#u(e,r),onMessage:(e,r)=>this.#d(e,r),onParserError:e=>jg(this.#s,null,e.message),onParserDrain:()=>this.#s.socket.resume(),onSocketData:e=>{this.#A.write(e)||this.#s.socket.pause()},onSocketError:e=>{this.#s.readyState=Ro.CLOSING,Rw.socketError.hasSubscribers&&Rw.socketError.publish(e),this.#s.socket.destroy()},onSocketClose:()=>this.#l(),onPing:()=>{},onPong:()=>{},readyState:Ro.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#A;constructor(e,r=void 0){bw||(process.emitWarning("WebSocketStream is experimental! Expect it to change at any time.",{code:"UNDICI-WSS"}),bw=!0),de.argumentLengthCheck(arguments,1,"WebSocket"),e=de.converters.USVString(e),r!==null&&(r=de.converters.WebSocketStreamOptions(r));let n=ww.settingsObject.baseUrl,o=jH(e,n),i=r.protocols;if(i.length!==new Set(i.map(A=>A.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(i.length>0&&!i.every(A=>$H(A)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(this.#e=o.toString(),this.#t=zg(),this.#r=zg(),r.signal!=null){let A=r.signal;if(A.aborted){this.#t.reject(A.reason),this.#r.reject(A.reason);return}A.addEventListener("abort",()=>{ZH(this.#s.readyState)||(jg(this.#s),this.#s.readyState=Ro.CLOSING,this.#t.reject(A.reason),this.#r.reject(A.reason),this.#a=!0)},{once:!0})}let s=ww.settingsObject;this.#s.controller=eY(o,i,s,this.#s,r)}get url(){return this.#e.toString()}get opened(){return this.#t.promise}get closed(){return this.#r.promise}close(e=void 0){e!==null&&(e=de.converters.WebSocketCloseInfo(e));let r=e.closeCode??null,n=e.reason;$g(this.#s,r,n,!0)}#c(e){e=de.converters.WebSocketStreamWrite(e);let r=zg(),n=null,o=null;if(de.is.BufferSource(e))n=new Uint8Array(ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e.slice()),o=Qa.BINARY;else{let i;try{i=de.converters.DOMString(e)}catch(s){return r.reject(s),r.promise}n=new TextEncoder().encode(i),o=Qa.TEXT}if(!this.#s.closeState.has(bo.SENT)&&!this.#s.closeState.has(bo.RECEIVED)){let i=new tY(n);this.#s.socket.write(i.createFrame(o),()=>{r.resolve(void 0)})}return r.promise}#u(e,r){this.#s.socket=e.socket;let n=this.#s.controller.dispatcher?.webSocketOptions?.maxFragments,o=this.#s.controller.dispatcher?.webSocketOptions?.maxPayloadSize,i=new rY(this.#s,r,{maxFragments:n,maxPayloadSize:o});i.on("drain",()=>this.#s.onParserDrain()),i.on("error",d=>this.#s.onParserError(d)),this.#A=i,this.#s.readyState=Ro.OPEN;let s=r??"",A=e.headersList.get("sec-websocket-protocol")??"",a=new ReadableStream({start:d=>{this.#i=d},cancel:d=>this.#f(d)}),c=new WritableStream({write:d=>this.#c(d),close:()=>$g(this.#s,null,null),abort:d=>this.#g(d)});this.#n=a,this.#o=c,this.#t.resolve({extensions:s,protocol:A,readable:a,writable:c})}#d(e,r){if(this.#s.readyState!==Ro.OPEN)return;let n;if(e===Qa.TEXT)try{n=XH(r)}catch{jg(this.#s,1007,"Received invalid UTF-8 in text frame.");return}else e===Qa.BINARY&&(n=new Uint8Array(r.buffer,r.byteOffset,r.byteLength));this.#i.enqueue(n)}#l(){let e=this.#s.closeState.has(bo.SENT)&&this.#s.closeState.has(bo.RECEIVED);if(this.#s.readyState=Ro.CLOSED,this.#a)return;this.#s.wasEverConnected||this.#t.reject(new nY("Socket never opened"));let r=this.#A?.closingInfo,n=r?.code??1005;!this.#s.closeState.has(bo.SENT)&&!this.#s.closeState.has(bo.RECEIVED)&&(n=1006);let o=r?.reason==null?"":iY(Buffer.from(r.reason));if(e)this.#i.close(),this.#o.locked||this.#o.abort(new DOMException("A closed WebSocketStream cannot be written to","InvalidStateError")),this.#r.resolve({closeCode:n,reason:o});else{let i=oY("unclean close",n,o);this.#i?.error(i),this.#o?.abort(i),this.#r.reject(i)}}#g(e){let r=null,n="";de.is.WebSocketError(e)&&(r=e.closeCode,n=e.reason),$g(this.#s,r,n)}#f(e){this.#g(e)}};Object.defineProperties(ma.prototype,{url:Ba,opened:Ba,closed:Ba,close:Ba,[Symbol.toStringTag]:{value:"WebSocketStream",writable:!1,enumerable:!1,configurable:!0}});de.converters.WebSocketStreamOptions=de.dictionaryConverter([{key:"protocols",converter:de.sequenceConverter(de.converters.USVString),defaultValue:()=>[]},{key:"signal",converter:de.nullableConverter(de.converters.AbortSignal),defaultValue:()=>null}]);de.converters.WebSocketCloseInfo=de.dictionaryConverter([{key:"closeCode",converter:t=>de.converters["unsigned short"](t,de.attributes.EnforceRange)},{key:"reason",converter:de.converters.USVString,defaultValue:()=>""}]);de.converters.WebSocketStreamWrite=function(t){return typeof t=="string"?de.converters.USVString(t):de.converters.BufferSource(t)};Sw.exports={WebSocketStream:ma}});var Nw=B((Lj,kw)=>{"use strict";function sY(t){return t.indexOf("\0")===-1}function AY(t){if(t.length===0)return!1;for(let e=0;e<t.length;e++)if(t.charCodeAt(e)<48||t.charCodeAt(e)>57)return!1;return!0}kw.exports={isValidLastEventId:sY,isASCIINumber:AY}});var Uw=B((vj,xw)=>{"use strict";var{Transform:aY}=require("node:stream"),{isASCIINumber:Mw,isValidLastEventId:Tw}=Nw(),cr=[239,187,191],Zg=10,ya=13,cY=58,dY=32,Xg=class extends aY{state;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,r,n){if(e.length===0){n();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]===cr[0]){n();return}this.checkBOM=!1,n();return;case 2:if(this.buffer[0]===cr[0]&&this.buffer[1]===cr[1]){n();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===cr[0]&&this.buffer[1]===cr[1]&&this.buffer[2]===cr[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,n();return}this.checkBOM=!1;break;default:this.buffer[0]===cr[0]&&this.buffer[1]===cr[1]&&this.buffer[2]===cr[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]===Zg){this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.crlfCheck=!1;continue}this.crlfCheck=!1}if(this.buffer[this.pos]===Zg||this.buffer[this.pos]===ya){this.buffer[this.pos]===ya&&(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!==void 0||this.event.retry)&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(this.buffer[this.pos]===Zg||this.buffer[this.pos]===ya){this.buffer[this.pos]===ya&&(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++}n()}parseLine(e,r){if(e.length===0)return;let n=e.indexOf(cY);if(n===0)return;let o="",i="";if(n!==-1){o=e.subarray(0,n).toString("utf8");let s=n+1;e[s]===dY&&++s,i=e.subarray(s).toString("utf8")}else o=e.toString("utf8"),i="";switch(o){case"data":r[o]===void 0?r[o]=i:r[o]+=`
128
+ ${i}`;break;case"retry":Mw(i)&&(r[o]=i);break;case"id":Tw(i)&&(r[o]=i);break;case"event":i.length>0&&(r[o]=i);break}}processEvent(e){e.retry&&Mw(e.retry)&&(this.state.reconnectionTime=parseInt(e.retry,10)),e.id!==void 0&&Tw(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}}};xw.exports={EventSourceStream:Xg}});var Hw=B((_j,Gw)=>{"use strict";var{pipeline:uY}=require("node:stream"),{fetching:lY}=Ji(),{makeRequest:gY}=Co(),{webidl:Ue}=ye(),{EventSourceStream:fY}=Uw(),{parseMIMEType:pY}=dt(),{createFastMessageEvent:hY}=la(),{isNetworkError:Fw}=Vi(),{kEnumerableProperty:Dn}=O(),{environmentSettingsObject:Pw}=Ke(),Lw=!1,vw=3e3,es=0,_w=1,ts=2,CY="anonymous",EY="use-credentials",So=class t extends EventTarget{#e={open:null,error:null,message:null};#t;#r=!1;#n=es;#i=null;#o=null;#a;#s;constructor(e,r={}){super(),Ue.util.markAsUncloneable(this);let n="EventSource constructor";Ue.argumentLengthCheck(arguments,1,n),Lw||(Lw=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),e=Ue.converters.USVString(e),r=Ue.converters.EventSourceInitDict(r,n,"eventSourceInitDict"),this.#a=r.node.dispatcher||r.dispatcher,this.#s={lastEventId:"",reconnectionTime:r.node.reconnectionTime};let o=Pw,i;try{i=new URL(e,o.settingsObject.baseUrl),this.#s.origin=i.origin}catch(a){throw new DOMException(a,"SyntaxError")}this.#t=i.href;let s=CY;r.withCredentials===!0&&(s=EY,this.#r=!0);let A={redirect:"follow",keepalive:!0,mode:"cors",credentials:s==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};A.client=Pw.settingsObject,A.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],A.cache="no-store",A.initiator="other",A.urlList=[new URL(this.#t)],this.#i=gY(A),this.#A()}get readyState(){return this.#n}get url(){return this.#t}get withCredentials(){return this.#r}#A(){if(this.#n===ts)return;this.#n=es;let e={request:this.#i,dispatcher:this.#a},r=n=>{if(!Fw(n))return this.#c()};e.processResponseEndOfBody=r,e.processResponse=n=>{if(Fw(n))if(n.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#c();return}let o=n.headersList.get("content-type",!0),i=o!==null?pY(o):"failure",s=i!=="failure"&&i.essence==="text/event-stream";if(n.status!==200||s===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#n=_w,this.dispatchEvent(new Event("open")),this.#s.origin=n.urlList[n.urlList.length-1].origin;let A=new fY({eventSourceSettings:this.#s,push:a=>{this.dispatchEvent(hY(a.type,a.options))}});uY(n.body.stream,A,a=>{a?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#o=lY(e)}#c(){this.#n!==ts&&(this.#n=es,this.dispatchEvent(new Event("error")),setTimeout(()=>{this.#n===es&&(this.#s.lastEventId.length&&this.#i.headersList.set("last-event-id",this.#s.lastEventId,!0),this.#A())},this.#s.reconnectionTime)?.unref())}close(){Ue.brandCheck(this,t),this.#n!==ts&&(this.#n=ts,this.#o.abort(),this.#i=null)}get onopen(){return this.#e.open}set onopen(e){this.#e.open&&this.removeEventListener("open",this.#e.open);let r=Ue.converters.EventHandlerNonNull(e);r!==null?(this.addEventListener("open",r),this.#e.open=e):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(e){this.#e.message&&this.removeEventListener("message",this.#e.message);let r=Ue.converters.EventHandlerNonNull(e);r!==null?(this.addEventListener("message",r),this.#e.message=e):this.#e.message=null}get onerror(){return this.#e.error}set onerror(e){this.#e.error&&this.removeEventListener("error",this.#e.error);let r=Ue.converters.EventHandlerNonNull(e);r!==null?(this.addEventListener("error",r),this.#e.error=e):this.#e.error=null}},Ow={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:es,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:_w,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:ts,writable:!1}};Object.defineProperties(So,Ow);Object.defineProperties(So.prototype,Ow);Object.defineProperties(So.prototype,{close:Dn,onerror:Dn,onmessage:Dn,onopen:Dn,readyState:Dn,url:Dn,withCredentials:Dn});Ue.converters.EventSourceInitDict=Ue.dictionaryConverter([{key:"withCredentials",converter:Ue.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:Ue.converters.any},{key:"node",converter:Ue.dictionaryConverter([{key:"reconnectionTime",converter:Ue.converters["unsigned long"],defaultValue:()=>vw},{key:"dispatcher",converter:Ue.converters.any}]),defaultValue:()=>({})}]);Gw.exports={EventSource:So,defaultReconnectionTime:vw}});var Kw=B((Oj,w)=>{"use strict";var IY=Br(),Vw=Xo(),QY=nn(),BY=DE(),mY=TE(),yY=An(),wY=Lu(),RY=xu(),bY=CI(),SY=wI(),DY=SI(),qw=_(),Ra=O(),{InvalidArgumentError:wa}=qw,Do=aQ(),kY=Wr(),NY=ml(),{MockCallHistory:MY,MockCallHistoryLog:TY}=Rl(),xY=Ul(),UY=kl(),FY=AB(),PY=il(),LY=QA(),{getGlobalDispatcher:Ww,setGlobalDispatcher:vY}=FA(),_Y=uo(),OY=Hl();Object.assign(Vw.prototype,Do);w.exports.Dispatcher=Vw;w.exports.Client=IY;w.exports.Pool=QY;w.exports.BalancedPool=BY;w.exports.RoundRobinPool=mY;w.exports.Agent=yY;w.exports.ProxyAgent=wY;w.exports.Socks5ProxyAgent=RY;w.exports.EnvHttpProxyAgent=bY;w.exports.RetryAgent=SY;w.exports.H2CClient=DY;w.exports.RetryHandler=LY;w.exports.DecoratorHandler=_Y;w.exports.RedirectHandler=OY;w.exports.interceptors={redirect:EB(),responseError:QB(),retry:mB(),dump:wB(),dns:DB(),cache:sm(),decompress:um(),deduplicate:hm()};w.exports.cacheStores={MemoryCacheStore:ng()};var GY=Im();w.exports.cacheStores.SqliteCacheStore=GY;w.exports.buildConnector=kY;w.exports.errors=qw;w.exports.util={parseHeaders:Ra.parseHeaders,headerNameToString:Ra.headerNameToString};function rs(t){return(e,r,n)=>{if(typeof r=="function"&&(n=r,r=null),!e||typeof e!="string"&&typeof e!="object"&&!(e instanceof URL))throw new wa("invalid url");if(r!=null&&typeof r!="object")throw new wa("invalid opts");if(r&&r.path!=null){if(typeof r.path!="string")throw new wa("invalid opts.path");let s=r.path;r.path.startsWith("/")||(s=`/${s}`),e=new URL(Ra.parseOrigin(e).origin+s)}else r||(r=typeof e=="object"?e:{}),e=Ra.parseURL(e);let{agent:o,dispatcher:i=Ww()}=r;if(o)throw new wa("unsupported opts.agent. Did you mean opts.client?");return t.call(i,{...r,origin:e.origin,path:e.search?`${e.pathname}${e.search}`:e.pathname,method:r.method||(r.body?"PUT":"GET")},n)}}w.exports.setGlobalDispatcher=vY;w.exports.getGlobalDispatcher=Ww;var HY=Ji().fetch,Yw=typeof __filename<"u"?__filename:void 0;function Jw(t,e){if(!t||typeof t!="object")return;let r=typeof t.stack=="string"?t.stack:"",n=e.replace(/\\/g,"/");if(r&&(r.includes(e)||r.includes(n)))return;let o={};if(Error.captureStackTrace(o,Jw),!o.stack)return;let i=o.stack.split(`
129
+ `).slice(1).join(`
130
+ `);t.stack=r?`${r}
131
+ ${i}`:o.stack}w.exports.fetch=function(e,r=void 0){return HY(e,r).catch(n=>{throw Yw?Jw(n,Yw):n&&typeof n=="object"&&Error.captureStackTrace(n,w.exports.fetch),n})};w.exports.Headers=Qn().Headers;w.exports.Response=Vi().Response;w.exports.Request=Co().Request;w.exports.FormData=Js().FormData;var{setGlobalOrigin:YY,getGlobalOrigin:VY}=Ed();w.exports.setGlobalOrigin=YY;w.exports.getGlobalOrigin=VY;var{CacheStorage:qY}=ky(),{kConstruct:WY}=j();w.exports.caches=new qY(WY);var{deleteCookie:JY,getCookies:KY,getSetCookies:zY,setCookie:jY,parseCookie:$Y}=Gy();w.exports.deleteCookie=JY;w.exports.getCookies=KY;w.exports.getSetCookies=zY;w.exports.setCookie=jY;w.exports.parseCookie=$Y;var{parseMIMEType:ZY,serializeAMimeType:XY}=dt();w.exports.parseMIMEType=ZY;w.exports.serializeAMimeType=XY;var{CloseEvent:e2,ErrorEvent:t2,MessageEvent:r2}=la(),{WebSocket:n2,ping:o2}=Qw();w.exports.WebSocket=n2;w.exports.CloseEvent=e2;w.exports.ErrorEvent=t2;w.exports.MessageEvent=r2;w.exports.ping=o2;w.exports.WebSocketStream=Dw().WebSocketStream;w.exports.WebSocketError=Kg().WebSocketError;w.exports.request=rs(Do.request);w.exports.stream=rs(Do.stream);w.exports.pipeline=rs(Do.pipeline);w.exports.connect=rs(Do.connect);w.exports.upgrade=rs(Do.upgrade);w.exports.MockClient=NY;w.exports.MockCallHistory=MY;w.exports.MockCallHistoryLog=TY;w.exports.MockPool=UY;w.exports.MockAgent=xY;w.exports.SnapshotAgent=FY;w.exports.mockErrors=PY;var{EventSource:i2}=Hw();w.exports.EventSource=i2;function s2(){globalThis.fetch=w.exports.fetch,globalThis.Headers=w.exports.Headers,globalThis.Response=w.exports.Response,globalThis.Request=w.exports.Request,globalThis.FormData=w.exports.FormData,globalThis.WebSocket=w.exports.WebSocket,globalThis.CloseEvent=w.exports.CloseEvent,globalThis.ErrorEvent=w.exports.ErrorEvent,globalThis.MessageEvent=w.exports.MessageEvent,globalThis.EventSource=w.exports.EventSource}w.exports.install=s2});var RK={};aD(RK,{createGatewayPlugin:()=>eK,isLocalAgentOauthProviderPlugin:()=>tK,localAgentOauthProviderHooks:()=>$S});module.exports=cD(RK);var fc=require("node:child_process"),ip=require("node:crypto"),Hr=le(require("node:os")),Gr=le(require("node:path"));var Rs=require("node:fs");var _o="ccr-local-agent-login";function bs(t,e){let r=new Set(e),n=Object.entries(t??{}).map(([o,i])=>[o.trim(),i]).filter(([o,i])=>o&&r.has(o)&&i&&typeof i=="object");return n.length>0?Object.fromEntries(n):void 0}function Oo(t,e){let r=new Set(e),n=Object.entries(t??{}).map(([o,i])=>[o.trim(),i.trim()]).filter(([o,i])=>o&&i&&o!==i&&r.has(o));return n.length>0?Object.fromEntries(n):void 0}function Go(t){if(!qe(t))return;let e=D(t.accessToken)||D(t.access_token)||D(t.anthropicAccessToken),r=D(t.refreshToken)||D(t.refresh_token)||D(t.anthropicRefreshToken);return e||r?{accessToken:e,refreshToken:r}:void 0}function Dt(t){if((0,Rs.existsSync)(t))try{let e=JSON.parse((0,Rs.readFileSync)(t,"utf8"));return qe(e)?e:void 0}catch{return}}function D(t){return typeof t=="string"&&t.trim()?t.trim():void 0}function at(t){let e=new Set,r=[];for(let n of t){let o=n?.trim();!o||e.has(o)||(e.add(o),r.push(o))}return r}function qe(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var dD="Claude Code-credentials",uD=/^[a-zA-Z0-9._-]+$/,lD=/^Claude Code(?:-[a-z]+-oauth)?-credentials(?:-[0-9a-f]{8})?$/,gD=44,Ho=(t,e,r,n)=>({id:t,kind:"quota",label:e,limit:100,remaining:`100 - ${r}.utilization`,resetAt:`${r}.resets_at`,unit:"%",used:`${r}.utilization`,window:n}),kK={meters:[Ho("claude_five_hour_quota","5h quota","$.five_hour","5h"),Ho("claude_seven_day_quota","7d quota","$.seven_day","weekly"),Ho("claude_oauth_apps_quota","OAuth apps quota","$.seven_day_oauth_apps","weekly"),Ho("claude_opus_quota","Opus quota","$.seven_day_opus","weekly"),Ho("claude_sonnet_quota","Sonnet quota","$.seven_day_sonnet","weekly"),{id:"claude_extra_usage",kind:"quota",label:"Extra usage",limit:100,remaining:"100 - $.extra_usage.utilization",unit:"%",used:"$.extra_usage.utilization",window:"monthly"},{id:"claude_extra_usage_credits",kind:"balance",label:"Extra usage credits",limit:"$.extra_usage.monthly_limit",unit:"credits",used:"$.extra_usage.used_credits",window:"monthly"}]};function pc(){return fD().oauth}function fD(){let t={errors:[],inspected:[],tokenless:[]},e=ED(t);if(e)return t.oauth=e,t;for(let r of pD()){let n=Dt(r);if(!n)continue;t.inspected.push(r);let o=Go(n.claudeAiOauth)??Go(n);if(!o?.accessToken&&!o?.refreshToken){t.tokenless.push(`${r} (keys: ${Object.keys(n).join(", ")})`);continue}return t.oauth={accessToken:o.accessToken,refreshToken:o.refreshToken,sourceFile:r},t}return t}function pD(){return at([Gr.default.join(sp(),".credentials.json"),Gr.default.join(Hr.default.homedir(),".claude",".credentials.json"),Gr.default.join(Hr.default.homedir(),".claude","credentials.json"),Gr.default.join(Hr.default.homedir(),".config","claude","credentials.json")])}function sp(){let t=process.env.CLAUDE_SECURESTORAGE_CONFIG_DIR;return(t!==void 0?t||Gr.default.join(Hr.default.homedir(),".claude"):process.env.CLAUDE_CONFIG_DIR||Gr.default.join(Hr.default.homedir(),".claude")).normalize("NFC")}function hD(){let t=process.env.CLAUDE_SECURESTORAGE_CONFIG_DIR,r=(t!==void 0?!t:!process.env.CLAUDE_CONFIG_DIR)?"":`-${(0,ip.createHash)("sha256").update(sp()).digest("hex").slice(0,8)}`,n=process.env.CLAUDE_CODE_CUSTOM_OAUTH_URL?"-custom-oauth":"";return at([`Claude Code${n}-credentials${r}`,dD])}function CD(){let t;try{t=process.env.USER||Hr.default.userInfo().username}catch{t=void 0}return t&&uD.test(t)?t:"claude-code-user"}function ED(t){if(process.platform!=="darwin")return;let e=hD(),r=CD(),n=[()=>e.map(A=>({account:r,service:A})),ID,()=>e.map(A=>({service:A}))],o=new Set,i=new Set,s;for(let A of n)for(let a of A()){let c=`${a.service}\0${a.account??""}`;if(o.has(c)||a.account===void 0&&i.has(a.service))continue;o.add(c);let d=a.account===void 0?a.service:`${a.service} (${a.account})`,l=QD(a,t,d);if(!l)continue;i.add(a.service),t.inspected.push(`keychain:${d}`);let u=Go(l.claudeAiOauth);if(u)return{accessToken:u.accessToken,refreshToken:u.refreshToken,sourceFile:`keychain:${d}`};let p=Go(l);if(p){s??={accessToken:p.accessToken,refreshToken:p.refreshToken,sourceFile:`keychain:${d}`};continue}t.tokenless.push(`keychain:${d} (keys: ${Object.keys(l).join(", ")})`)}return s}function ID(){let t;try{t=(0,fc.execFileSync)("security",["dump-keychain"],{encoding:"utf8",maxBuffer:64*1024*1024,stdio:["ignore","pipe","ignore"]})}catch{return[]}let e=[],r,n="",o,i=()=>{o&&lD.test(o)&&e.push({account:r,modified:n,service:o}),r=void 0,n="",o=void 0};for(let s of t.split(`
132
+ `)){if(s.startsWith("keychain:")){i();continue}let A=/^\s*"svce"<blob>="(.*)"$/.exec(s);if(A){o=A[1];continue}let a=/^\s*"acct"<blob>="(.*)"$/.exec(s);if(a){r=a[1];continue}let c=/^\s*"mdat"<timedate>=.*"(\d{14})Z/.exec(s);c&&(n=c[1])}return i(),e.sort((s,A)=>A.modified.localeCompare(s.modified)).map(({account:s,service:A})=>({account:s,service:A}))}function QD(t,e,r){let n=["find-generic-password","-s",t.service,"-w"];t.account!==void 0&&n.splice(1,0,"-a",t.account);try{let o=(0,fc.execFileSync)("security",n,{encoding:"utf8",stdio:["ignore","pipe","pipe"]}),i=JSON.parse(o.trim());if(qe(i))return i;e.errors.push(`keychain:${r}: item is not a JSON object`);return}catch(o){let i=BD(o);i!==void 0&&e.errors.push(`keychain:${r}: ${i}`);return}}function BD(t){if(t instanceof SyntaxError)return`item is not valid JSON (${t.message})`;let e=t;if(e?.status===gD)return;let n=(typeof e?.stderr=="string"?e.stderr:e?.stderr?.toString("utf8"))?.trim().replace(/\s*\n\s*/g,"; ");return n?/could not be found/i.test(n)?void 0:n:e?.status===void 0?String(t):`security exited ${e.status}`}var VW=le(require("node:os")),qW=le(require("node:path"));function mD(t){let e=t.trim();if(!e)throw new Error("Base URL is required.");let r=new URL(Ss(e));r.username="",r.password="",r.hash="",r.search="",r.pathname=wD(r.pathname),r.pathname=kD(r.pathname);let n=Jo(r),o=RD(n),i=o,s=MD(i)?Ap([i,xD(i,"anthropic")]):[i],A=n,a=ND(A)?Ap([A,TD(o,"v1")]):[A];return{anthropicBaseUrl:i,anthropicBaseUrlCandidates:s,geminiBaseUrl:bD(n,o),normalizedInputBaseUrl:n,openaiBaseUrl:A,openaiBaseUrlCandidates:a,raw:e,rootBaseUrl:o}}function Ko(t,e){let r=t.trim();if(!r)return"";try{let n=mD(r);return e?yD(n,e):n.normalizedInputBaseUrl}catch{return UD(r,e)}}function yD(t,e){return e==="openai_responses"||e==="openai_chat_completions"?t.openaiBaseUrl:e==="anthropic_messages"?t.anthropicBaseUrl:t.geminiBaseUrl}function Ss(t){return/^[a-z][a-z0-9+.-]*:\/\//i.test(t)?t:/^(localhost|127\.|0\.0\.0\.0|\[::1\])/i.test(t)?`http://${t}`:`https://${t}`}function Jo(t){let e=t.toString();return e.endsWith("/")?e.slice(0,-1):e}function wD(t){let e=t.replace(/\/+$/,"")||"/",r=[[/\/v1\/chat\/completions$/i,"/v1"],[/\/chat\/completions$/i,""],[/\/v1\/responses$/i,"/v1"],[/\/responses$/i,""],[/\/v1\/messages$/i,"/v1"],[/\/messages$/i,""],[/\/v1beta\/models\/[^/]+:(generateContent|streamGenerateContent)$/i,"/v1beta"],[/\/v1\/models\/[^/]+:(generateContent|streamGenerateContent)$/i,"/v1"],[/\/v1beta\/interactions(?:\/[^/]+(?:\/cancel)?)?$/i,"/v1beta"],[/\/v1\/interactions(?:\/[^/]+(?:\/cancel)?)?$/i,"/v1"],[/\/interactions(?:\/[^/]+(?:\/cancel)?)?$/i,""],[/\/v1beta\/models$/i,"/v1beta"],[/\/v1\/models$/i,"/v1"],[/\/models$/i,""]];for(let[n,o]of r)if(n.test(e))return e.replace(n,o)||"/";return e}function RD(t){let e=new URL(t);return e.pathname=e.pathname.replace(/\/(v1|v1beta)$/i,"")||"/",Jo(e)}function bD(t,e){return SD(t)||DD(t)?t:e}function SD(t){try{let r=new URL(t).pathname.split("/").map(n=>n.trim().toLowerCase()).filter(Boolean);return r.includes("bypass")&&r.includes("vertex")&&/^(v1|v1beta)$/.test(r[r.length-1]??"")}catch{return!1}}function DD(t){try{let r=new URL(t).pathname.split("/").map(n=>n.trim().toLowerCase()).filter(Boolean);return r.length>1&&/^(v1|v1beta)$/.test(r[r.length-1]??"")}catch{return!1}}function kD(t){return t.replace(/(\/v[0-9][a-z0-9-]*)\/v1$/i,"$1")||"/"}function ND(t){let r=new URL(t).pathname.replace(/\/+$/,"");return!/\/v[0-9][a-z0-9-]*$/i.test(r)}function MD(t){return!new URL(t).pathname.split("/").map(n=>n.trim().toLowerCase()).filter(Boolean).includes("anthropic")}function TD(t,e){let r=new URL(t),n=r.pathname.replace(/\/+$/,"");return new RegExp(`/${e}$`,"i").test(n)||(r.pathname=`${n}/${e}`.replace(/\/{2,}/g,"/")),Jo(r)}function xD(t,e){let r=new URL(t),n=r.pathname.replace(/\/+$/,"");return r.pathname=`${n}/${e}`.replace(/\/{2,}/g,"/"),Jo(r)}function Ap(t){return t.filter((e,r)=>t.indexOf(e)===r)}function UD(t,e){let r=t.trim().replace(/[?#].*$/,"").replace(/\/+$/,"");return e==="openai_chat_completions"?r.replace(/\/chat\/completions$/i,"").replace(/\/responses$/i,""):e==="openai_responses"?r.replace(/\/responses$/i,"").replace(/\/chat\/completions$/i,""):e==="anthropic_messages"?r.replace(/\/v1\/messages$/i,"").replace(/\/messages$/i,"").replace(/\/v1$/i,""):e==="gemini_generate_content"||e==="gemini_interactions"?r.replace(/\/v1beta\/models\/[^/]+:(generateContent|streamGenerateContent)$/i,"").replace(/\/v1\/models\/[^/]+:(generateContent|streamGenerateContent)$/i,"").replace(/\/v1beta\/interactions(?:\/[^/]+(?:\/cancel)?)?$/i,"").replace(/\/v1\/interactions(?:\/[^/]+(?:\/cancel)?)?$/i,"").replace(/\/interactions(?:\/[^/]+(?:\/cancel)?)?$/i,"").replace(/\/v1beta\/models$/i,"").replace(/\/v1\/models$/i,"").replace(/\/v1beta$/i,"").replace(/\/v1$/i,""):r}var DS=le(Kw());var ja=require("node:crypto"),Uo=require("node:fs"),Fe=le(require("node:path"));var va=require("node:crypto"),Ee=require("node:fs"),Pr=require("node:path");var he=le(require("node:path"));var ba=le(require("node:os")),Fr=le(require("node:path")),zw="Claude Code Router",ef="claude-code-router",A2="CCR_INTERNAL_HOME_DIR",a2="CCR_INTERNAL_APP_DATA_DIR",c2="CCR_INTERNAL_USER_DATA_DIR";function ns(t){let e=$w(t);return e||(t==="home"?ba.default.homedir():t==="appData"?d2():u2())}var jw=Fr.default.join(ns("home"),".claude-code-router");function Sa(){return process.platform==="win32"?Fr.default.join(ns("appData"),ef):Fr.default.join(ns("home"),`.${ef}`)}function tf(){let t=$w("userData");return t||(process.platform==="win32"?Sa():Fr.default.join(Sa(),"app-data"))}function $w(t){let e=t==="home"?A2:t==="appData"?a2:c2;return process.env[e]?.trim()||void 0}function d2(){return process.platform==="win32"?process.env.APPDATA||process.env.LOCALAPPDATA||(process.env.USERPROFILE?Fr.default.join(process.env.USERPROFILE,"AppData","Roaming"):Fr.default.join(ba.default.homedir(),"AppData","Roaming")):process.env.XDG_CONFIG_HOME||Fr.default.join(ba.default.homedir(),".config")}function u2(){return tf()}var ko=require("node:fs"),rf=le(require("node:path"));function Zw(t,e,r){if(!(!t||!e||l2(t,e)||!(0,ko.existsSync)(t)))try{(0,ko.mkdirSync)(e,{recursive:!0}),(0,ko.cpSync)(t,e,{errorOnExist:!1,force:!1,recursive:!0})}catch(n){console.warn(`Failed to migrate ${r} from ${t} to ${e}: ${g2(n)}`)}}function l2(t,e){return rf.default.resolve(t).toLowerCase()===rf.default.resolve(e).toLowerCase()}function g2(t){return t instanceof Error?t.message:String(t)}var Da=he.default.join(jw,"config.json");var ka=Sa(),Na=he.default.join(ns("appData"),zw),Ma=he.default.join(Na,"config.json"),Ta=he.default.join(ka,"config.json"),xa=he.default.join(ka,".onboard_finished"),nf="onboardingFinishedAt",Yt=tf(),os=he.default.join(ka,"config.sqlite"),f2=he.default.join(Yt,"api-keys.sqlite"),Xw=process.platform==="win32"?[he.default.join(Na,"config.sqlite")]:[],eR=[f2,...process.platform==="win32"?[he.default.join(Na,"api-keys.sqlite")]:[]],of=he.default.join(Yt,"certs"),Jj=he.default.join(Yt,"provider-icons"),Kj=he.default.join(of,"ca.pem"),zj=he.default.join(of,"ca.cer"),jj=he.default.join(of,"key.pem"),$j=he.default.join(Yt,"request-logs.sqlite"),Zj=he.default.join(Yt,"request-log-bodies"),Xj=he.default.join(Yt,"context-archive.sqlite"),e$=he.default.join(Yt,"raw-trace-spool"),t$=he.default.join(Yt,"usage.sqlite");process.platform==="win32"&&Zw(Na,ka,"Windows app data directory");var rR=require("node:module"),sf=le(require("better-sqlite3")),p2=(0,rR.createRequire)(__filename),Ua,tR=!1;function Fa(t,e={}){let r=h2();return r?new sf.default(t,{...e,nativeBinding:r}):new sf.default(t,e)}function h2(){if(tR)return Ua;tR=!0;try{Ua=p2.resolve("better-sqlite3/build/Release/better_sqlite3.node")}catch{Ua=void 0}return Ua}var Af="default",_a="plain",nR=448,af=384,oR="legacy-storage-backup-dedup-v1",iR="legacy-storage-cleanup-queue-v1",sR="unified-config-store-v1",C2=[Ta,Ma,Da],cf=class{constructor(e,r={}){this.dbFile=e;this.removeFile=r.removeFile??(n=>(0,Ee.rmSync)(n,{force:!0}))}dbFile;database;initPromise;removeFile;async readAppConfig(){return this.readSetting(Af)}async readSetting(e){let r=await this.getDatabase(),n=Lr(r,"SELECT value_json FROM app_config WHERE key = ? LIMIT 1",[e])[0],o=Ve(n?.value_json);return o?JSON.parse(o):void 0}async replaceAppConfig(e){let r=await this.getDatabase();Pa(r,Af,e),kn(this.dbFile)}async replaceSetting(e,r){let n=await this.getDatabase();Pa(n,e,r),kn(this.dbFile)}async readRuntimeState(e){let r=await this.getDatabase(),n=Lr(r,"SELECT value_json FROM runtime_state WHERE key = ? LIMIT 1",[e])[0],o=Ve(n?.value_json);return o?JSON.parse(o):void 0}async replaceRuntimeState(e,r){let n=await this.getDatabase();gR(n,"runtime_state",e,r),kn(this.dbFile)}async deleteRuntimeState(e){(await this.getDatabase()).prepare("DELETE FROM runtime_state WHERE key = ?").run(e),kn(this.dbFile)}async listApiKeys(){let e=await this.getDatabase();return R2(e)}async replaceApiKeys(e){let r=df(e),n=await this.getDatabase();return No(n,()=>aR(n,r)),kn(this.dbFile),r}async replaceConfigSnapshot(e,r){let n=df(r),o=await this.getDatabase();return No(o,()=>{Pa(o,Af,e),aR(o,n)}),kn(this.dbFile),n}async archiveLegacyJsonConfigFiles(e){let r=is(e),n=r.filter(i=>!C2.some(s=>as(s,i)));if(n.length>0)throw new Error(`Refusing to archive unknown legacy JSON config file: ${n.join(", ")}`);if(r.length===0)return;let o=await this.getDatabase();B2(o,r,"legacy-json-config",this.removeFile)}async getDatabase(){return this.database?this.database:(this.initPromise??=this.open(),this.initPromise)}async open(){let e=(0,Pr.dirname)(this.dbFile);(0,Ee.mkdirSync)(e,{mode:nR,recursive:!0}),La(e,nR);let r=Fa(this.dbFile);N2(r),E2(r);try{I2(r,this.removeFile),Q2(r,this.removeFile),ss(r,this.removeFile,"legacy-json-config")}catch(n){throw r.close(),n}return this.database=r,kn(this.dbFile),r}},As=new cf(os);async function cR(){return As.readAppConfig()}async function uf(){return As.listApiKeys()}async function dR(t){return As.replaceApiKeys(t)}async function uR(t,e){return As.replaceConfigSnapshot(t,e)}async function lR(t){await As.archiveLegacyJsonConfigFiles(t)}function E2(t){t.exec(`
133
+ CREATE TABLE IF NOT EXISTS app_config (
134
+ key TEXT PRIMARY KEY,
135
+ value_json TEXT NOT NULL,
136
+ updated_at TEXT NOT NULL
137
+ );
138
+
139
+ CREATE TABLE IF NOT EXISTS api_keys (
140
+ id TEXT PRIMARY KEY,
141
+ name TEXT NOT NULL DEFAULT '',
142
+ encrypted_key TEXT NOT NULL,
143
+ encryption TEXT NOT NULL DEFAULT '${_a}',
144
+ created_at TEXT NOT NULL,
145
+ expires_at TEXT NOT NULL DEFAULT '',
146
+ limits_json TEXT NOT NULL DEFAULT ''
147
+ );
148
+ CREATE INDEX IF NOT EXISTS api_keys_created_at_idx ON api_keys(created_at);
149
+
150
+ CREATE TABLE IF NOT EXISTS config_schema_migrations (
151
+ id TEXT PRIMARY KEY,
152
+ applied_at TEXT NOT NULL,
153
+ details_json TEXT NOT NULL DEFAULT ''
154
+ );
155
+
156
+ CREATE TABLE IF NOT EXISTS runtime_state (
157
+ key TEXT PRIMARY KEY,
158
+ value_json TEXT NOT NULL,
159
+ updated_at TEXT NOT NULL
160
+ );
161
+
162
+ CREATE TABLE IF NOT EXISTS legacy_storage_backups (
163
+ id TEXT PRIMARY KEY,
164
+ source_path TEXT NOT NULL,
165
+ source_kind TEXT NOT NULL,
166
+ sha256 TEXT NOT NULL,
167
+ content BLOB NOT NULL,
168
+ archived_at TEXT NOT NULL
169
+ );
170
+
171
+ DELETE FROM legacy_storage_backups
172
+ WHERE NOT EXISTS (
173
+ SELECT 1
174
+ FROM config_schema_migrations
175
+ WHERE id = '${oR}'
176
+ )
177
+ AND rowid NOT IN (
178
+ SELECT MIN(rowid)
179
+ FROM legacy_storage_backups
180
+ GROUP BY source_path, source_kind, sha256
181
+ );
182
+
183
+ CREATE UNIQUE INDEX IF NOT EXISTS legacy_storage_backups_content_idx
184
+ ON legacy_storage_backups(source_kind, source_path, sha256);
185
+
186
+ INSERT OR IGNORE INTO config_schema_migrations (id, applied_at, details_json)
187
+ VALUES ('${oR}', '${new Date().toISOString()}', '');
188
+
189
+ CREATE TABLE IF NOT EXISTS legacy_storage_cleanup (
190
+ source_path TEXT PRIMARY KEY,
191
+ source_kind TEXT NOT NULL,
192
+ sha256 TEXT NOT NULL,
193
+ queued_at TEXT NOT NULL
194
+ );
195
+
196
+ INSERT OR IGNORE INTO legacy_storage_cleanup (
197
+ source_path,
198
+ source_kind,
199
+ sha256,
200
+ queued_at
201
+ )
202
+ SELECT
203
+ source_path,
204
+ source_kind,
205
+ sha256,
206
+ archived_at
207
+ FROM legacy_storage_backups
208
+ WHERE NOT EXISTS (
209
+ SELECT 1
210
+ FROM config_schema_migrations
211
+ WHERE id = '${iR}'
212
+ );
213
+
214
+ INSERT OR IGNORE INTO config_schema_migrations (id, applied_at, details_json)
215
+ VALUES ('${iR}', '${new Date().toISOString()}', '');
216
+ `)}function I2(t,e){let r=m2(),n=y2(),o=r.rows,i=n.rows,s=is([...r.failedFiles,...n.failedFiles]),A=is([...r.readableFiles,...n.readableFiles]).filter(l=>!s.some(u=>as(l,u))),a=lf(A.flatMap(k2),"legacy-sqlite-config");No(t,()=>{for(let l of o)t.prepare(`
217
+ INSERT INTO app_config (key, value_json, updated_at)
218
+ VALUES (?, ?, ?)
219
+ ON CONFLICT(key) DO NOTHING
220
+ `).run(l.key,l.valueJson,l.updatedAt);w2(t,i),gf(t,a)});let c=ss(t,e,"legacy-sqlite-config"),d=is([...s,...c]);No(t,()=>{if(d.length>0){t.prepare("DELETE FROM config_schema_migrations WHERE id = ?").run(sR);return}t.prepare(`
221
+ INSERT INTO config_schema_migrations (id, applied_at, details_json)
222
+ VALUES (?, ?, ?)
223
+ ON CONFLICT(id) DO UPDATE SET
224
+ applied_at = excluded.applied_at,
225
+ details_json = excluded.details_json
226
+ `).run(sR,new Date().toISOString(),JSON.stringify({appConfigRows:o.length,apiKeyRows:i.length,archivedFiles:a.length}))}),d.length>0&&console.warn(`[config] Preserving legacy SQLite source${d.length===1?"":"s"} for a future migration retry: ${d.join(", ")}`)}function Q2(t,e){if(!(0,Ee.existsSync)(xa)){ss(t,e,"legacy-onboarding-state");return}let r=lf([xa],"legacy-onboarding-state")[0];if(!r)return;let n=Lr(t,"SELECT key FROM app_config WHERE key = ? LIMIT 1",[nf]).length>0;No(t,()=>{if(!n){let o=(0,Ee.statSync)(xa).mtime.toISOString();Pa(t,nf,o)}gf(t,[r])}),ss(t,e,"legacy-onboarding-state")}function B2(t,e,r,n){let o=lf(is(e),r);o.length>0&&No(t,()=>gf(t,o)),ss(t,n,r)}function lf(t,e){return t.flatMap(r=>{if(!(0,Ee.existsSync)(r)||as(r,os))return[];let n=(0,Ee.readFileSync)(r),o=(0,va.createHash)("sha256").update(n).digest("hex");return[{content:n,id:(0,va.createHash)("sha256").update(`${e}\0${(0,Pr.resolve)(r)}\0${o}`).digest("hex"),sha256:o,sourceKind:e,sourcePath:(0,Pr.resolve)(r)}]})}function gf(t,e){let r=new Date().toISOString(),n=t.prepare(`
227
+ INSERT OR IGNORE INTO legacy_storage_backups (
228
+ id, source_path, source_kind, sha256, content, archived_at
229
+ ) VALUES (?, ?, ?, ?, ?, ?)
230
+ `),o=t.prepare(`
231
+ INSERT INTO legacy_storage_cleanup (
232
+ source_path, source_kind, sha256, queued_at
233
+ ) VALUES (?, ?, ?, ?)
234
+ ON CONFLICT(source_path) DO UPDATE SET
235
+ source_kind = excluded.source_kind,
236
+ sha256 = excluded.sha256,
237
+ queued_at = excluded.queued_at
238
+ `);for(let i of e)n.run(i.id,i.sourcePath,i.sourceKind,i.sha256,i.content,r),o.run(i.sourcePath,i.sourceKind,i.sha256,r)}function ss(t,e,r){let n=Lr(t,`
239
+ SELECT source_path, sha256
240
+ FROM legacy_storage_cleanup
241
+ WHERE source_kind = ?
242
+ ORDER BY queued_at, source_path
243
+ `,[r]),o=[];for(let i of n){let s=Ve(i.source_path),A=Ve(i.sha256);if(!(!s||!A)){if(!(0,Ee.existsSync)(s)){AR(t,s);continue}try{let a=(0,va.createHash)("sha256").update((0,Ee.readFileSync)(s)).digest("hex");if(a!==A){if(!Lr(t,`
244
+ SELECT id
245
+ FROM legacy_storage_backups
246
+ WHERE source_path = ? AND sha256 = ?
247
+ LIMIT 1
248
+ `,[s,a])[0]){o.push(s),console.warn(`[config] Preserving changed legacy config source for a future migration retry: ${s}`);continue}t.prepare(`
249
+ UPDATE legacy_storage_cleanup
250
+ SET sha256 = ?, queued_at = ?
251
+ WHERE source_path = ?
252
+ `).run(a,new Date().toISOString(),s)}if(e(s),(0,Ee.existsSync)(s))throw new Error("source still exists after cleanup");AR(t,s)}catch(a){o.push(s),console.warn(`[config] Failed to remove migrated config source ${s}: ${ff(a)}`)}}}return o}function AR(t,e){t.prepare("DELETE FROM legacy_storage_cleanup WHERE source_path = ?").run(e)}function m2(){let t={failedFiles:[],readableFiles:[],rows:[]};for(let e of Xw){if(!(0,Ee.existsSync)(e)||as(e,os))continue;let r;try{r=Fa(e,{fileMustExist:!0,readonly:!0});let n=Lr(r,"SELECT key, value_json, updated_at FROM app_config");t.readableFiles.push(e),t.rows.push(...n.flatMap(o=>{let i=Ve(o.key),s=Ve(o.value_json);return!i||!s?[]:[{key:i,updatedAt:Ve(o.updated_at)||new Date(0).toISOString(),valueJson:s}]}))}catch(n){t.failedFiles.push(e),console.warn(`[config] Failed to read legacy app config database ${e}: ${ff(n)}`)}finally{r?.close()}}return t}function y2(){let t={failedFiles:[],readableFiles:[],rows:[]};for(let e of eR){if(!(0,Ee.existsSync)(e)||as(e,os))continue;let r;try{r=Fa(e,{fileMustExist:!0,readonly:!0});let n=Lr(r,`
253
+ SELECT id, name, encrypted_key, encryption, created_at, expires_at, limits_json
254
+ FROM api_keys
255
+ ORDER BY rowid
256
+ `);t.readableFiles.push(e),t.rows.push(...n)}catch(n){t.failedFiles.push(e),console.warn(`[config] Failed to read legacy API key database ${e}: ${ff(n)}`)}finally{r?.close()}}return t}function w2(t,e){let r=t.prepare(`
257
+ INSERT OR IGNORE INTO api_keys (
258
+ id, name, encrypted_key, encryption, created_at, expires_at, limits_json
259
+ ) VALUES (?, ?, ?, ?, ?, ?, ?)
260
+ `);for(let n of e){let o=fR(n);o&&r.run(o.id,o.name,o.storedKey,o.encryption,o.createdAt,o.expiresAt,o.limitsJson)}}function Pa(t,e,r){gR(t,"app_config",e,r)}function gR(t,e,r,n){t.prepare(`
261
+ INSERT INTO ${e} (key, value_json, updated_at)
262
+ VALUES (?, ?, ?)
263
+ ON CONFLICT(key) DO UPDATE SET
264
+ value_json = excluded.value_json,
265
+ updated_at = excluded.updated_at
266
+ `).run(r,JSON.stringify(n),new Date().toISOString())}function R2(t){let e=Lr(t,`
267
+ SELECT id, name, encrypted_key, encryption, created_at, expires_at, limits_json
268
+ FROM api_keys
269
+ ORDER BY rowid
270
+ `);return df(e.map(b2))}function aR(t,e){let r=t.prepare(`
271
+ INSERT INTO api_keys (
272
+ id, name, encrypted_key, encryption, created_at, expires_at, limits_json
273
+ ) VALUES (?, ?, ?, ?, ?, ?, ?)
274
+ `);t.exec("DELETE FROM api_keys");for(let n of e)r.run(n.id,n.name??"",n.key,_a,n.createdAt,n.expiresAt??"",n.limits?JSON.stringify(n.limits):"")}function b2(t){let e=fR(t);if(!e)return;if(e.encryption!==_a){console.warn(`[api-keys] Stored API key uses unsupported storage "${e.encryption}". Re-save the API key to migrate it.`);return}let r=e.storedKey.trim();if(!r)return;let n=S2(e.limitsJson);return{createdAt:e.createdAt,...e.expiresAt?{expiresAt:e.expiresAt}:{},id:e.id,key:r,...n?{limits:n}:{},...e.name?{name:e.name}:{}}}function fR(t){let e=Ve(t.id),r=Ve(t.encrypted_key);if(!(!e||!r))return{createdAt:Ve(t.created_at)||new Date(0).toISOString(),encryption:Ve(t.encryption)||_a,expiresAt:Ve(t.expires_at)||"",id:e,limitsJson:Ve(t.limits_json)||"",name:Ve(t.name)||"",storedKey:r}}function S2(t){if(t)try{let e=JSON.parse(t);if(!T2(e))return;let r={};for(let n of["ipd","iph","ipm","maxRequests","maxTokens","quotaWindowMs","rpd","rph","rpm","tpd","tph","tpm","windowMs"]){let o=M2(e[n]);o&&(r[n]=o)}return Object.keys(r).length?r:void 0}catch{return}}function df(t){let e=new Set,r=new Set,n=[];for(let[o,i]of t.entries()){let s=i?.key.trim();if(!i||!s||e.has(s))continue;e.add(s);let A=D2(i.id||`key-${o+1}`,r,o);n.push({createdAt:i.createdAt||new Date(0).toISOString(),...i.expiresAt?{expiresAt:i.expiresAt}:{},id:A,key:s,...i.limits?{limits:i.limits}:{},...i.name?{name:i.name}:{}})}return n}function D2(t,e,r){let n=t.trim()||`key-${r+1}`,o=n,i=2;for(;e.has(o);)o=`${n}-${i}`,i+=1;return e.add(o),o}function No(t,e){try{t.exec("BEGIN IMMEDIATE"),e(),t.exec("COMMIT")}catch(r){try{t.exec("ROLLBACK")}catch{}throw r}}function k2(t){return[t,`${t}-wal`,`${t}-shm`]}function N2(t){t.pragma("journal_mode = WAL"),t.pragma("synchronous = NORMAL"),t.pragma("busy_timeout = 5000")}function Lr(t,e,r=[]){return t.prepare(e).all(...r)}function M2(t){let e=Number(t);return Number.isFinite(e)&&e>0?Math.ceil(e):void 0}function Ve(t){return typeof t=="string"&&t.trim()?t.trim():void 0}function kn(t){La(t,af),La(`${t}-wal`,af),La(`${t}-shm`,af)}function La(t,e){if(!(process.platform==="win32"||!(0,Ee.existsSync)(t)))try{(0,Ee.chmodSync)(t,e)}catch{}}function is(t){let e=new Set;return t.filter(r=>{let n=(0,Pr.resolve)(r).toLowerCase();return e.has(n)?!1:(e.add(n),!0)})}function as(t,e){return(0,Pr.resolve)(t).toLowerCase()===(0,Pr.resolve)(e).toLowerCase()}function T2(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function ff(t){return t instanceof Error?t.message:String(t)}var ls=require("node:fs"),DR=le(require("node:os")),us=le(require("node:path"));var cs="https://api.x.ai/v1",pR="grok-imagine-image-quality",hR="grok-imagine-video";var Ga=1,a$=5*1024*1024,CR=2e3,ER=3e4,IR=9999,nt="claude-design",ot="claude-ship",x2={description:"Open Claude Design in a dedicated CCR Electron window.",icon:"palette",id:"claude-design",name:"Claude Design",url:"https://claude-design.ccrdesk.top/design"},U2={description:"Open Claude Ship in a dedicated CCR Electron window.",icon:"rocket",id:"claude-ship",name:"Claude Ship",url:"https://claude.ai/claude-ship"},Nn=["apps","gateway","provider"],pf=["trusted-code","apps","gateway-routes","proxy-routes","http-backends","provider-account-connectors","gateway-request-transforms","core-gateway-config","core-provider-plugins","virtual-model-profiles","sqlite-store","system-launcher"],QR={"claude-design":{permissions:["trusted-code","apps","gateway-routes","proxy-routes","http-backends","sqlite-store"],surfaces:{apps:!0,gateway:!0,provider:!1}},"claude-ship":{permissions:["trusted-code","apps","gateway-routes","proxy-routes","http-backends","sqlite-store"],surfaces:{apps:!0,gateway:!0,provider:!1}},"cursor-proxy":{permissions:["trusted-code","gateway-routes","proxy-routes","http-backends"],surfaces:{apps:!1,gateway:!0,provider:!1}}};function hf(t){let e=QR[t.trim().toLowerCase()]?.permissions;return e?[...e]:void 0}function Cf(t){let e=QR[t.trim().toLowerCase()]?.surfaces;return e?{...e}:void 0}function Ha(t){let e=t.trim().toLowerCase();if(e===nt)return[{...x2}];if(e===ot)return[{...U2}]}var Ef="CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY",Ya={[Ef]:"1"};var ue={account:"bar",modelShare:"bars",rings:"rings",stats:"cards",tokenFlow:"line",tokenMix:"bars"},BR=["1:1","2:1","3:1","4:1","1:2","2:2","3:2","4:2","1:3","2:3","3:3","4:3","1:4","2:4","3:4","4:4"],mR=[{enabled:!0,id:"system-status",size:"4:1",type:"system-status",variant:"timeline"},{enabled:!0,id:"account-balance",size:"4:2",type:"account-balance",variant:"cards"},{enabled:!0,id:"metric-requests",metric:"requests",size:"1:1",type:"metric",variant:"card"},{enabled:!0,id:"metric-input-tokens",metric:"input-tokens",size:"1:1",type:"metric",variant:"card"},{enabled:!0,id:"metric-output-tokens",metric:"output-tokens",size:"1:1",type:"metric",variant:"card"},{enabled:!0,id:"metric-cache-tokens",metric:"cache-tokens",size:"1:1",type:"metric",variant:"card"},{enabled:!0,id:"metric-cache-ratio",metric:"cache-ratio",size:"1:1",type:"metric",variant:"card"},{enabled:!0,id:"metric-estimated-cost",metric:"estimated-cost",size:"1:1",type:"metric",variant:"card"},{enabled:!0,id:"usage-trend",size:"3:2",type:"usage-trend",variant:"composed"},{enabled:!0,id:"token-activity",size:"4:2",type:"token-activity",variant:"heatmap"},{enabled:!0,id:"token-mix",size:"1:2",type:"token-mix",variant:"bars"},{enabled:!0,id:"client-analysis",size:"2:2",type:"client-analysis",variant:"table"},{enabled:!0,id:"provider-analysis",size:"2:2",type:"provider-analysis",variant:"table"}],If=["source-tabs","header","account","token-flow","activity","stats","token-mix","rings","model-share","footer"],yR=["source-tabs","header"],wR=["source-tabs","header"],RR=[...If],bR=[{id:"source-tabs",type:"source-tabs"},{id:"header",type:"header"},{id:"account",type:"account",variant:ue.account},{id:"token-flow",type:"token-flow",variant:ue.tokenFlow},{id:"activity",type:"activity"},{id:"stats",type:"stats",variant:ue.stats},{id:"token-mix",type:"token-mix",variant:ue.tokenMix},{id:"rings",type:"rings",variant:ue.rings},{id:"model-share",type:"model-share",variant:ue.modelShare}];function F2(t){return t==="ccr"||t==="custom"?t:"global"}function Oa(t){return t.enabled&&F2(t.scope)==="global"}function Qf(t,e){let r=new Map,n=typeof e=="number"?e:void 0,o=n!==void 0?t[n]:void 0;return n!==void 0&&o&&Oa(o)&&r.set(o.agent,n),t.map((i,s)=>{if(!Oa(i))return i;let A=r.get(i.agent);return A===void 0?(r.set(i.agent,s),i):A===s?i:{...i,enabled:!1}})}var kR="https://cli-chat-proxy.grok.com/v1",v2="https://cli-chat-proxy.grok.com/v1/billing?format=credits",_2="https://cli-chat-proxy.grok.com/v1/user?include=subscription";var O2="https://auth.x.ai",G2=8e3,H2="0.2.93",Bf=new Map,ds=["$.billingPeriodEnd","$.currentPeriod.end","$.currentPeriod.billingPeriodEnd","$.config.billingPeriodEnd","$.config.currentPeriod.end","$.end"],Y2={meters:[{id:"grok_credit_usage_percent",kind:"quota",label:"Credit usage",limit:100,remaining:["100 - $.creditUsagePercent","100 - $.config.creditUsagePercent","100 - $.config.creditUsagePercent.val"],resetAt:ds,unit:"%",used:["$.creditUsagePercent","$.config.creditUsagePercent","$.config.creditUsagePercent.val"],window:"monthly"},{id:"grok_included_credits",kind:"quota",label:"Included credits",limit:["$.monthlyLimit","$.monthlyLimit.val","$.currentPeriod.monthlyLimit","$.currentPeriod.monthlyLimit.val","$.config.monthlyLimit","$.config.monthlyLimit.val","$.config.currentPeriod.monthlyLimit","$.config.currentPeriod.monthlyLimit.val"],resetAt:ds,unit:"credits",used:["$.includedUsed","$.includedUsed.val","$.currentPeriod.includedUsed","$.currentPeriod.includedUsed.val","$.config.includedUsed","$.config.includedUsed.val","$.config.currentPeriod.includedUsed","$.config.currentPeriod.includedUsed.val"],window:"monthly"},{id:"grok_total_credits",kind:"quota",label:"Total credits",limit:["$.monthlyLimit","$.monthlyLimit.val","$.currentPeriod.monthlyLimit","$.currentPeriod.monthlyLimit.val","$.config.monthlyLimit","$.config.monthlyLimit.val","$.config.currentPeriod.monthlyLimit","$.config.currentPeriod.monthlyLimit.val"],resetAt:ds,unit:"credits",used:["$.totalUsed","$.totalUsed.val","$.currentPeriod.totalUsed","$.currentPeriod.totalUsed.val","$.config.totalUsed","$.config.totalUsed.val","$.config.currentPeriod.totalUsed","$.config.currentPeriod.totalUsed.val"],window:"monthly"},{id:"grok_pay_as_you_go_cap",kind:"quota",label:"Pay-as-you-go cap",limit:["$.onDemandCap","$.onDemandCap.val","$.currentPeriod.onDemandCap","$.currentPeriod.onDemandCap.val","$.config.onDemandCap","$.config.onDemandCap.val","$.config.currentPeriod.onDemandCap","$.config.currentPeriod.onDemandCap.val"],resetAt:ds,unit:"credits",used:["$.onDemandUsed","$.onDemandUsed.val","$.currentPeriod.onDemandUsed","$.currentPeriod.onDemandUsed.val","$.config.onDemandUsed","$.config.onDemandUsed.val","$.config.currentPeriod.onDemandUsed","$.config.currentPeriod.onDemandUsed.val"],window:"monthly"},{id:"grok_prepaid_balance",kind:"balance",label:"Prepaid balance",remaining:["$.prepaidBalance","$.prepaidBalance.val","$.currentPeriod.prepaidBalance","$.currentPeriod.prepaidBalance.val","$.config.prepaidBalance","$.config.prepaidBalance.val","$.config.currentPeriod.prepaidBalance","$.config.currentPeriod.prepaidBalance.val"],resetAt:ds,unit:"credits",window:"monthly"}]},Va=class extends Error{status;constructor(e,r){super(r),this.name="GrokRefreshAuthError",this.status=e}};function qa(){let t=X2().flatMap(e=>NR(e));return t.find(e=>e.accessToken&&!Wa(e))??t.find(e=>e.refreshToken)??t.find(e=>e.accessToken)}async function yf(){let t=qa();if(!t?.refreshToken||t.accessToken&&!Wa(t))return t;let e=`${t.sourceFile}::${t.authRecordKey??""}`,r=Bf.get(e);return r||(r=(async()=>{try{return await $2(t)}catch(n){return V2(t,n)}})().finally(()=>{Bf.delete(e)}),Bf.set(e,r)),r}function V2(t,e){if(!(e instanceof Va))throw e;let r=NR(t.sourceFile).find(n=>n.authRecordKey===t.authRecordKey);if(r?.refreshToken&&r.accessToken&&r.refreshToken!==t.refreshToken)return r;throw e}function NR(t){let e=Dt(t);return e?[e,...Object.entries(e).filter(r=>qe(r[1])).map(([r,n])=>({...n,__ccr_auth_record_key:r}))].map(r=>q2(r,t)).filter(r=>!!r):[]}function q2(t,e){let r=D(t.key)||D(t.access_token)||D(t.accessToken)||D(t.token)||D(t.id_token)||D(t.idToken),n=D(t.refresh_token)||D(t.refreshToken);if(!(!r&&!n))return{accessToken:r,authRecordKey:D(t.__ccr_auth_record_key),expiresAt:D(t.expires_at)||D(t.expiresAt),oidcClientId:D(t.oidc_client_id)||D(t.oidcClientId)||D(process.env.GROK_OIDC_CLIENT_ID),oidcIssuer:D(t.oidc_issuer)||D(t.oidcIssuer)||D(process.env.GROK_OIDC_ISSUER),refreshToken:n,sourceFile:e}}function Wa(t){let e=r1(t.expiresAt)??FR(t.accessToken);return e!==void 0&&e<=Date.now()+6e4}function W2(){let t=wf();return{connectors:[{auth:"provider-api-key",endpoint:e1(),headers:{"x-grok-client-identifier":"xai-grok-cli","x-grok-client-version":t},mapping:Y2,type:"http-json"},{auth:"provider-api-key",endpoint:t1(),headers:{"x-grok-client-identifier":"xai-grok-cli","x-grok-client-version":t},mapping:{meters:[]},parser:"grok-subscription",type:"http-json"}],enabled:!0}}function MR(t){if(!xR(t)||!K2(t.account))return t;let e=W2();return{...t,account:{...e,refreshIntervalMs:t.account?.refreshIntervalMs??e.refreshIntervalMs}}}function TR(t){if(!xR(t))return t;let e=(t.capabilities??[]).map(o=>o.type==="openai_video_generations"&&J2(o.baseUrl)?{...o,type:"xai_video_generations"}:o),r=o=>{e.some(i=>i.type===o.type)||e.push(o)},n=UR(t)||kR;return r({baseUrl:n,source:"preset",type:"openai_responses"}),r({baseUrl:cs,endpoint:`${cs}/images/generations`,source:"preset",type:"openai_image_generations"}),r({baseUrl:cs,endpoint:`${cs}/videos/generations`,source:"preset",type:"xai_video_generations"}),{...t,capabilities:e,models:at([...t.models,pR,hR])}}function J2(t){try{return/(?:^|\.)api\.x\.ai$/i.test(new URL(t).hostname)}catch{return!1}}function xR(t){if(j2(t)!==_o)return!1;let e=Ko(UR(t)).toLowerCase(),r=t.name?.toLowerCase()??"";return e.includes("cli-chat-proxy.grok.com")||r.includes("grok")}function K2(t){if(t?.enabled===!1)return!1;let e=t?.connectors??[];return e.length===0?!0:e.every(z2)}function z2(t){return t.type==="standard"?!t.endpoint?.trim()&&!t.endpoints?.length&&!t.headers&&!t.id:t.type!=="http-json"?!1:/^https:\/\/grok\.com\/(?:billing|user)(?:$|[?#/])/i.test(t.endpoint.trim())||/^https:\/\/cli-chat-proxy\.grok\.com\/v1\/(?:billing|user)(?:$|[?#/])/i.test(t.endpoint.trim())}function UR(t){return t.api_base_url||t.baseurl||t.baseUrl||""}function j2(t){return t.api_key||t.apiKey||t.apikey||""}function wf(){let t=process.env.GROK_CLI_VERSION?.trim();if(t)return t;let e=Dt(us.default.join(mf(),"version.json"));return D(e?.version)||H2}async function $2(t){let e=t.refreshToken;if(!e)throw new Error("Grok CLI refresh token was not found.");let r=t.oidcClientId||D(process.env.GROK_OIDC_CLIENT_ID);if(!r)throw new Error("Grok CLI OAuth client id was not found.");let n=await Z2(t),o=vR(process.env.GROK_OIDC_REFRESH_TIMEOUT_MS),i=new AbortController,s=setTimeout(()=>i.abort(),o);try{let A=await Mo(n,{body:new URLSearchParams({client_id:r,grant_type:"refresh_token",refresh_token:e}).toString(),headers:{"content-type":"application/x-www-form-urlencoded"},method:"POST",signal:i.signal}),a=await A.text(),c=PR(a);if(!A.ok){let u=`Grok CLI OAuth token refresh returned HTTP ${A.status}${LR(c,a)}`;throw A.status===401||A.status===403?new Va(A.status,u):new Error(u)}let d=D(c?.access_token)||D(c?.accessToken);if(!d)throw new Error("Grok CLI OAuth token refresh did not return an access token.");let l={...t,accessToken:d,expiresAt:n1(d,c),refreshToken:D(c?.refresh_token)||D(c?.refreshToken)||e};return o1(l),l}catch(A){throw A instanceof Error&&A.name==="AbortError"?new Error(`Grok CLI OAuth token refresh timed out after ${o}ms.`):A}finally{clearTimeout(s)}}async function Z2(t){let e=D(process.env.GROK_OIDC_TOKEN_ENDPOINT);if(e)return e;let n=`${(t.oidcIssuer||D(process.env.GROK_OIDC_ISSUER)||O2).replace(/\/+$/,"")}/.well-known/openid-configuration`,o=vR(process.env.GROK_OIDC_REFRESH_TIMEOUT_MS),i=new AbortController,s=setTimeout(()=>i.abort(),o);try{let A=await Mo(n,{headers:{accept:"application/json"},signal:i.signal}),a=await A.text(),c=PR(a);if(!A.ok)throw new Error(`Grok CLI OIDC discovery returned HTTP ${A.status}${LR(c,a)}`);let d=D(c?.token_endpoint)||D(c?.tokenEndpoint);if(!d)throw new Error("Grok CLI OIDC discovery did not return a token endpoint.");return d}catch(A){throw A instanceof Error&&A.name==="AbortError"?new Error(`Grok CLI OIDC discovery timed out after ${o}ms.`):A}finally{clearTimeout(s)}}function X2(){let t=process.env.GROK_AUTH_FILE?.trim();return at([t,us.default.join(mf(),"auth.json"),us.default.join(mf(),"credentials.json")])}function mf(){let t=process.env.GROK_HOME?.trim()||process.env.GROK_STORAGE_DIR?.trim()||process.env.GROK_CONFIG_DIR?.trim();if(t)return t;let e=process.env.CCR_INTERNAL_HOME_DIR?.trim()||process.env.HOME?.trim()||process.env.USERPROFILE?.trim()||DR.default.homedir();return us.default.join(e,".grok")}function e1(){return process.env.GROK_BILLING_ENDPOINT?.trim()||v2}function t1(){return process.env.GROK_SUBSCRIPTION_ENDPOINT?.trim()||_2}function r1(t){if(!t)return;let e=new Date(t).getTime();return Number.isFinite(e)?e:void 0}function FR(t){let e=t?.split(".")[1];if(e)try{let r=e.padEnd(e.length+(4-e.length%4)%4,"="),n=JSON.parse(Buffer.from(r.replace(/-/g,"+").replace(/_/g,"/"),"base64").toString("utf8")),o=qe(n)&&typeof n.exp=="number"?n.exp:void 0;return o?o*1e3:void 0}catch{return}}function n1(t,e){let r=FR(t)??SR(e?.expires_in)??SR(e?.expiresIn);return r?new Date(r).toISOString():void 0}function SR(t){let e=typeof t=="number"?t:typeof t=="string"&&t.trim()?Number(t):void 0;return e&&Number.isFinite(e)?Date.now()+e*1e3:void 0}function o1(t){if(!(!t.sourceFile||!t.accessToken))try{let e=JSON.parse((0,ls.readFileSync)(t.sourceFile,"utf8"));if(!qe(e))return;let r=e;if(t.authRecordKey){let n=e[t.authRecordKey];qe(n)&&(r=n)}r.key=t.accessToken,t.refreshToken&&(r.refresh_token=t.refreshToken),t.expiresAt&&(r.expires_at=t.expiresAt),(0,ls.writeFileSync)(t.sourceFile,`${JSON.stringify(e,null,2)}
275
+ `,"utf8")}catch{}}function PR(t){try{let e=JSON.parse(t);return qe(e)?e:void 0}catch{return}}function LR(t,e){let r=D(t?.error_description)||D(t?.error)||D(t?.message)||i1(e);return r?`: ${r}`:""}function i1(t){return t.replace(/\s+/g," ").trim().slice(0,200)}function vR(t){let e=Number(t);return Math.max(1,Number.isFinite(e)?e:G2)}var OR=require("node:fs"),c1=le(require("node:os")),d1=le(require("node:path"));function GR(t){let e=t.account;if(!e?.connectors?.some(_R))return t;let r=e.connectors.filter(n=>!_R(n));return{...t,account:r.length>0?{...e,connectors:r}:void 0}}function _R(t){if(t.type!=="local-estimate")return!1;let e=new Set(t.windows.map(r=>r.id));return e.has("opencode_monthly_spend")&&e.has("opencode_monthly_tokens")&&e.has("opencode_monthly_requests")}var I$=Number.MAX_SAFE_INTEGER;var l1=[{host:"api.anthropic.com",paths:["/v1/messages","/v1/messages/count_tokens"]},{host:"api.openai.com",paths:["/v1/chat/completions","/v1/responses","/v1/models"]},{host:"generativelanguage.googleapis.com",paths:["/v1beta/models","/v1/models"]},{host:"openrouter.ai",paths:["/api/v1/chat/completions","/api/v1/responses","/api/v1/models"]},{host:"api.deepseek.com",paths:["/chat/completions","/v1/chat/completions","/models","/v1/models"]},{host:"api.mistral.ai",paths:["/v1/chat/completions","/v1/models"]}];function HR(t={}){let e=t.coreHost??"127.0.0.1";return{APIKEY:"",APIKEYS:[],API_TIMEOUT_MS:6e5,CUSTOM_ROUTER_PATH:"",HOST:"127.0.0.1",PORT:3456,Providers:[],Router:{builtInRules:{"claude-code":{enabled:!0},codex:{enabled:!0}},fallback:{mode:"off",models:[],retryCount:1},rules:[]},agent:{mcpServers:[]},autoStart:!1,botConfigs:[],botGateway:{acknowledgeEvents:!1,args:[],authType:"",autoStartIntegration:!0,command:"",createIntegration:!1,credentials:{},cwd:"",enabled:!1,forwardAllAgentMessages:!0,handoff:{enabled:!1,idleSeconds:30,phoneBluetoothTargets:[],phoneWifiTargets:[],screenLock:!0,userIdle:!0},integrationConfig:{},integrationId:"",language:"auto",maxAttachmentBytes:20*1024*1024,maxTurnTimeMs:600*1e3,mediaEnabled:!0,messageChunkChars:3500,platform:"none",pollIntervalMs:2e3,requestTimeoutMs:6e5,sessionIdleMinutes:0,shellEnabled:!1,sourceDir:"",startupTimeoutMs:1e4,stateDir:"",streamReplies:!0,tenantId:"ccr"},contextArchive:{enabled:!1,maxBytes:512*1024*1024,maxSnapshotBytes:32*1024*1024,maxSnapshots:200,mcpEnabled:!0,replayTimeoutMs:6e4,retentionDays:30,storagePath:"",toolName:"ccr_history_ask"},gateway:{coreHost:e,corePort:3457,enabled:!0,host:"127.0.0.1",port:3456},mediaTools:{allowedInputRoots:[],artifactTtlHours:24,enabled:!1,jobTimeoutMs:6e5,maxImageConcurrency:2,maxVideoConcurrency:1},launchAtLogin:!1,observability:{agentAnalysis:!1,requestLogBodyCapture:"all",requestLogMaxBodyBytes:52428800,requestLogSuccessSampleRate:1,requestLogs:!1},preferredProvider:"",plugins:[],profile:{claudeCode:{enabled:!0,fableModel:"",haikuModel:"",managedCompact:!1,model:"",opusModel:"",settingsFile:"~/.claude/settings.json",sonnetModel:"",smallFastModel:""},codex:{cliMiddleware:!0,codexCliPath:"",codexHome:"",configFormat:"separate_profile_files",configFile:"~/.codex/config.toml",enabled:!0,managedCompact:!1,model:"",providerId:"claude-code-router",providerName:"Claude Code Router",showAllSessions:!1},enabled:!0,profiles:[{agent:"claude-code",enabled:!0,env:{...Ya},fableModel:"",haikuModel:"",id:"default-claude-code",managedCompact:!1,model:"",name:"Claude Code",opusModel:"",scope:"global",settingsFile:"~/.claude/settings.json",sonnetModel:"",smallFastModel:"",surface:"auto"},{agent:"codex",cliMiddleware:!0,codexCliPath:"",codexHome:"",configFormat:"separate_profile_files",configFile:"~/.codex/config.toml",enabled:!0,env:{},id:"default-codex",managedCompact:!1,model:"",name:"Codex",providerId:"claude-code-router",providerName:"Claude Code Router",showAllSessions:!1,scope:"global",surface:"auto"}]},proxy:{browserMode:!0,captureNetwork:!1,enabled:!1,host:"127.0.0.1",mode:"gateway",port:7890,systemProxy:!1,targets:l1,upstream:{custom:{password:"",port:7890,server:"",username:""},mode:"system"}},providerPlugins:[],overviewWidgets:mR,routerEndpoint:"http://127.0.0.1:3456",theme:"system",trayComponentVariants:ue,trayIcon:"random",trayProgressTargetTokens:1e5,trayWidgets:bR,trayWindowModules:RR,toolHub:{browserAutomation:!1,enabled:!1,llm:{apiKey:"",baseUrl:"https://api.openai.com/v1",model:""},mcpServers:[],maxTools:10,requestTimeoutMs:6e4},virtualModelProfiles:[]}}var X={connectors:[],enabled:!1},Rf={connectors:[{auth:"provider-api-key",type:"standard"}],enabled:!0};var YR={account:X,aliases:["anthropic","claude"],defaultModels:["claude-sonnet-4-20250514"],endpoints:[{baseUrl:"https://api.anthropic.com",protocols:["anthropic_messages"]}],id:"anthropic",name:"Anthropic",officialApiKeyPatterns:[{flags:"i",source:"^sk-ant-[a-z0-9_-]+$"}],websiteUrl:"https://www.anthropic.com/"};var VR={account:X,aliases:["qwen","dashscope","bailian","alibaba"],endpoints:[{baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1",protocols:["openai_chat_completions"]}],id:"bailian",name:"Alibaba Bailian",websiteUrl:"https://bailian.console.aliyun.com/"};var qR={account:X,aliases:["claudeapi","claudeapi.com","www.claudeapi.com"],endpoints:[{baseUrl:"https://gw.claudeapi.com",protocols:["anthropic_messages"]}],id:"claudeapi",name:"claudeapi",websiteUrl:"https://console.claudeapi.com/agent/register/LbmB7Y9kPloyzhwF?utm_source=claudecoderouter&utm_medium=partner&utm_campaign=claudecoderouter_2026&utm_content=default"};var WR={account:X,aliases:["code0","code0.ai","code 0"],endpoints:[{baseUrl:"https://console.code0.ai",protocols:["anthropic_messages","openai_chat_completions","openai_responses"]}],id:"code0",name:"code0.ai",websiteUrl:"https://code0.ai/agent/register/9n9jOsSnYQoemIVL?utm_source=claudecoderouter&utm_medium=partner&utm_campaign=claudecoderouter_2026&utm_content=default"};var g1={connectors:[{auth:"provider-api-key",endpoint:"https://api.deepseek.com/user/balance",mapping:{meters:[{id:"balance",kind:"balance",label:"Balance",remaining:"$.balance_infos[0].total_balance",unit:"$.balance_infos[0].currency"},{id:"granted_balance",kind:"balance",label:"Granted balance",remaining:"$.balance_infos[0].granted_balance",unit:"$.balance_infos[0].currency"},{id:"topped_up_balance",kind:"balance",label:"Topped-up balance",remaining:"$.balance_infos[0].topped_up_balance",unit:"$.balance_infos[0].currency"}]},type:"http-json"}],enabled:!0},JR={account:g1,aliases:["deepseek"],endpoints:[{baseUrl:"https://api.deepseek.com",protocols:["openai_chat_completions"]}],id:"deepseek",name:"DeepSeek",websiteUrl:"https://www.deepseek.com/"};var KR={account:X,aliases:["fenno","fenno.ai","fenno ai"],endpoints:[{baseUrl:"https://api.fenno.ai",protocols:["openai_chat_completions","openai_responses","anthropic_messages"]}],id:"fenno",name:"Fenno.ai",websiteUrl:"https://api.fenno.ai/register?redirect=/purchase?tab=subscription%26group=16&aff=9HHHAB5QLAES"};var zR={account:X,aliases:["gemini","google"],endpoints:[{baseUrl:"https://generativelanguage.googleapis.com",protocols:["gemini_generate_content","gemini_interactions"]}],id:"gemini",name:"Google Gemini",officialApiKeyPatterns:[{flags:"i",source:"^AIza[a-z0-9_-]{20,}$"}],websiteUrl:"https://gemini.google.com/"};var jR={account:X,aliases:["infistar","infistar ai","\u65E0\u9650\u661F\u6CB3","\u65E0\u9650\u661F\u6CB3ai","\u65E0\u9650\u661F\u6CB3 ai"],defaultModels:["gpt-4o"],endpoints:[{baseUrl:"https://infistar.ai/v1",protocols:["openai_chat_completions"]}],id:"infistar-ai",name:"\u65E0\u9650\u661F\u6CB3",websiteUrl:"https://infistar.ai/register?aff=CCRCCR&ref_source=link"};var f1={connectors:[{auth:"provider-api-key",endpoint:"https://api.kimi.com/coding/v1/usages",mapping:{meters:[]},parser:"kimi-code-usages",type:"http-json"}],enabled:!0},$R={account:f1,aliases:["kimi code","kimi coding","kimi coding plan","kimi-for-coding"],defaultModelDisplayNames:{"kimi-for-coding":"K2.7 Code"},defaultModels:["kimi-for-coding"],endpoints:[{baseUrl:"https://api.kimi.com/coding/v1",protocols:["openai_chat_completions"],websiteUrl:"https://www.kimi.com/code?aff=ccr"},{baseUrl:"https://api.kimi.com/coding/",protocols:["anthropic_messages"],websiteUrl:"https://www.kimi.com/code?aff=ccr"}],id:"kimi-coding",name:"Kimi Code - Coding Plan",websiteUrl:"https://www.kimi.com/code?aff=ccr"};var ZR={account:Rf,aliases:["minimax","minimax global"],defaultModels:["MiniMax-M3"],endpoints:[{baseUrl:"https://api.minimax.io/v1",protocols:["openai_chat_completions"],websiteUrl:"https://platform.minimax.io/docs"},{baseUrl:"https://api.minimax.io/anthropic/v1",protocols:["anthropic_messages"],websiteUrl:"https://platform.minimax.io/docs"}],id:"minimax-global",name:"MiniMax (Global)",websiteUrl:"https://platform.minimax.io/docs"},XR={account:Rf,aliases:["minimax","minimaxi","minimax china"],defaultModels:["MiniMax-M3"],endpoints:[{baseUrl:"https://api.minimaxi.com/v1",protocols:["openai_chat_completions"],websiteUrl:"https://platform.minimaxi.com/docs"},{baseUrl:"https://api.minimaxi.com/anthropic/v1",protocols:["anthropic_messages"],websiteUrl:"https://platform.minimaxi.com/docs"}],id:"minimax-cn",name:"MiniMax (China)",websiteUrl:"https://platform.minimaxi.com/docs"};var p1={connectors:[{auth:"provider-api-key",endpoint:"https://api.mistral.ai/v1/billing/subscription",mapping:{meters:[{id:"credit_balance",kind:"balance",label:"Credit balance",remaining:"$.credit_balance",unit:"EUR"},{id:"monthly_budget",kind:"quota",label:"Monthly budget",limit:"$.monthly_budget",unit:"EUR",window:"monthly"}]},type:"http-json"}],enabled:!0},eb={account:p1,aliases:["mistral"],endpoints:[{baseUrl:"https://api.mistral.ai/v1",protocols:["openai_chat_completions"]}],id:"mistral",name:"Mistral",websiteUrl:"https://mistral.ai/"};var h1={connectors:[{auth:"provider-api-key",endpoint:"https://api.moonshot.ai/v1/users/me/balance",mapping:{meters:[{id:"balance",kind:"balance",label:"Balance",remaining:"$.data.available_balance",unit:"CNY"},{id:"voucher_balance",kind:"balance",label:"Voucher balance",remaining:"$.data.voucher_balance",unit:"CNY"},{id:"cash_balance",kind:"balance",label:"Cash balance",remaining:"$.data.cash_balance",unit:"CNY"}]},type:"http-json"}],enabled:!0},C1={connectors:[{auth:"provider-api-key",endpoint:"https://api.moonshot.cn/v1/users/me/balance",mapping:{meters:[{id:"balance",kind:"balance",label:"Balance",remaining:"$.data.available_balance",unit:"CNY"},{id:"voucher_balance",kind:"balance",label:"Voucher balance",remaining:"$.data.voucher_balance",unit:"CNY"},{id:"cash_balance",kind:"balance",label:"Cash balance",remaining:"$.data.cash_balance",unit:"CNY"}]},type:"http-json"}],enabled:!0},tb={account:C1,aliases:["kimi","kimi api","moonshot","moonshot kimi"],defaultModels:["kimi-k2.7-code"],endpoints:[{baseUrl:"https://api.moonshot.cn/v1",protocols:["openai_chat_completions"],websiteUrl:"https://platform.kimi.com/?aff=ccr"}],id:"moonshot",name:"Kimi API (China)",websiteUrl:"https://platform.kimi.com/?aff=ccr"},rb={account:h1,aliases:["kimi","kimi api","moonshot","moonshot kimi"],defaultModels:["kimi-k2.7-code"],endpoints:[{baseUrl:"https://api.moonshot.ai/v1",protocols:["openai_chat_completions"],websiteUrl:"https://platform.kimi.ai/?aff=ccr"}],id:"moonshot-global",name:"Kimi API (Global)",websiteUrl:"https://platform.kimi.ai/?aff=ccr"};var nb={account:X,aliases:["nvidia","nvidia nim","nvidia api catalog","build.nvidia.com"],defaultModels:["nvidia/nemotron-3-super-120b-a12b","nvidia/nemotron-3-ultra-550b-a55b"],endpoints:[{baseUrl:"https://integrate.api.nvidia.com/v1",protocols:["openai_chat_completions"]}],id:"nvidia",name:"NVIDIA",officialApiKeyPatterns:[{flags:"i",source:"^nvapi-[a-z0-9_-]+$"}],websiteUrl:"https://build.nvidia.com/models"};var ob={account:X,aliases:["openai","chatgpt"],defaultModels:["gpt-4o"],endpoints:[{baseUrl:"https://api.openai.com/v1",protocols:["openai_responses","openai_chat_completions"]}],id:"openai",name:"OpenAI",officialApiKeyPatterns:[{flags:"i",source:"^sk-(?:proj|svcacct)-[a-z0-9_-]+$"}],websiteUrl:"https://openai.com/"};var E1={connectors:[{auth:"provider-api-key",endpoint:"https://openrouter.ai/api/v1/credits",mapping:{meters:[{id:"balance",kind:"balance",label:"Balance",limit:"$.data.total_credits",used:"$.data.total_usage",unit:"USD"},{id:"total_credits",kind:"balance",label:"Total credits",limit:"$.data.total_credits",unit:"USD"},{id:"total_usage",kind:"balance",label:"Total usage",unit:"USD",used:"$.data.total_usage"}]},type:"http-json"}],enabled:!0},ib={account:E1,aliases:["openrouter"],endpoints:[{baseUrl:"https://openrouter.ai/api/v1",protocols:["openai_chat_completions","openai_responses"]}],id:"openrouter",name:"OpenRouter",officialApiKeyPatterns:[{flags:"i",source:"^sk-or-v1-[a-z0-9_-]+$"}],websiteUrl:"https://openrouter.ai/"};var sb={account:X,aliases:["qiniu","qiniu ai","qiniu cloud ai","qiniu yun ai","qiniu yun","\u4E03\u725B\u4E91","\u4E03\u725B\u4E91ai","\u4E03\u725B\u4E91 ai","modelink"],endpoints:[{baseUrl:"https://api.qnaigc.com",label:"China mainland OpenAI",protocols:["openai_chat_completions"],websiteUrl:"https://s.qiniu.com/AVjMVf"},{baseUrl:"https://api.qnaigc.com/bypass/openai/v1",label:"China mainland OpenAI Responses",protocols:["openai_responses"],websiteUrl:"https://s.qiniu.com/AVjMVf"},{baseUrl:"https://api.qnaigc.com",label:"China mainland Anthropic",protocols:["anthropic_messages"],websiteUrl:"https://s.qiniu.com/AVjMVf"},{baseUrl:"https://api.qnaigc.com/bypass/vertex/v1",label:"China mainland Gemini Generate",protocols:["gemini_generate_content"],websiteUrl:"https://s.qiniu.com/AVjMVf"}],id:"qiniu-ai",name:"\u4E03\u725B\u4E91 AI",websiteUrl:"https://s.qiniu.com/AVjMVf"};var Ab={account:X,aliases:["runapi"],endpoints:[{baseUrl:"https://runapi.co/v1",protocols:["openai_responses","openai_chat_completions"]}],id:"runapi",name:"RunAPI",websiteUrl:"https://runapi.co/register?aff=IX1t"};var I1={connectors:[{auth:"provider-api-key",endpoint:"https://api.siliconflow.cn/v1/user/info",mapping:{meters:[{id:"balance",kind:"balance",label:"Balance",remaining:"$.data.totalBalance",unit:"CNY"},{id:"current_balance",kind:"balance",label:"Current balance",remaining:"$.data.balance",unit:"CNY"},{id:"charge_balance",kind:"balance",label:"Charge balance",remaining:"$.data.chargeBalance",unit:"CNY"}]},type:"http-json"}],enabled:!0},ab={account:I1,aliases:["siliconflow"],endpoints:[{baseUrl:"https://api.siliconflow.cn/v1",protocols:["openai_chat_completions"]}],id:"siliconflow",name:"SiliconFlow",websiteUrl:"https://siliconflow.cn/"};var cb={account:X,aliases:["teamorouter","teamo router","teamo"],endpoints:[{baseUrl:"https://api.teamorouter.com",protocols:["anthropic_messages","openai_chat_completions","openai_responses"]}],id:"teamorouter",name:"TeamoRouter",websiteUrl:"https://teamorouter.com/"};var db={account:X,aliases:["unity2","unity2.ai","unity2 ai","unity 2"],endpoints:[{baseUrl:"https://unity2.ai/v1",protocols:["openai_chat_completions"]}],id:"unity2",name:"Unity2.Ai",websiteUrl:"https://unity2.ai/register?source=claudecoderouter"};var Q1=["mimo-v2.5-pro","mimo-v2.5"],B1="https://platform.xiaomimimo.com/";function Ja(t){return{account:X,aliases:t.aliases,defaultModels:Q1,endpoints:[{baseUrl:t.openAiBaseUrl,label:"OpenAI",protocols:["openai_responses","openai_chat_completions"]},{baseUrl:t.anthropicBaseUrl,label:"Anthropic",protocols:["anthropic_messages"]}],id:t.id,name:t.name,websiteUrl:B1}}var ub=Ja({aliases:["mimo","xiaomi","xiaomi mimo","\u5C0F\u7C73","\u5C0F\u7C73 mimo"],anthropicBaseUrl:"https://api.xiaomimimo.com/anthropic",id:"xiaomi",name:"Xiaomi MiMo",openAiBaseUrl:"https://api.xiaomimimo.com/v1"}),lb=Ja({aliases:["mimo token plan china","xiaomi token plan china","xiaomi token plan cn"],anthropicBaseUrl:"https://token-plan-cn.xiaomimimo.com/anthropic",id:"xiaomi-token-plan-cn",name:"Xiaomi Token Plan (China)",openAiBaseUrl:"https://token-plan-cn.xiaomimimo.com/v1"}),gb=Ja({aliases:["mimo token plan singapore","xiaomi token plan singapore","xiaomi token plan sgp"],anthropicBaseUrl:"https://token-plan-sgp.xiaomimimo.com/anthropic",id:"xiaomi-token-plan-sgp",name:"Xiaomi Token Plan (Singapore)",openAiBaseUrl:"https://token-plan-sgp.xiaomimimo.com/v1"}),fb=Ja({aliases:["mimo token plan europe","xiaomi token plan ams","xiaomi token plan europe"],anthropicBaseUrl:"https://token-plan-ams.xiaomimimo.com/anthropic",id:"xiaomi-token-plan-ams",name:"Xiaomi Token Plan (Europe)",openAiBaseUrl:"https://token-plan-ams.xiaomimimo.com/v1"});var m1={meters:[{id:"five_hour_quota",kind:"quota",label:"5h quota",limit:100,remaining:'100 - $.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==3)].percentage',resetAt:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==3)].nextResetTime',unit:"%",used:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==3)].percentage',window:"5h"},{id:"weekly_quota",kind:"quota",label:"Weekly quota",limit:100,remaining:'100 - $.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==6)].percentage',resetAt:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==6)].nextResetTime',unit:"%",used:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==6)].percentage',window:"weekly"}]},y1={connectors:[{auth:"provider-api-key-raw",endpoint:"https://api.z.ai/api/monitor/usage/quota/limit",headers:{"Accept-Language":"en-US,en"},mapping:m1,type:"http-json"}],enabled:!0},pb={account:y1,aliases:["z.ai","zai","z ai","z-ai","glm global"],defaultModels:["glm-5.2","glm-5.1","glm-4.7","glm-4.5-air"],endpoints:[{baseUrl:"https://api.z.ai/api/coding/paas/v4",protocols:["openai_chat_completions"]},{baseUrl:"https://api.z.ai/api/anthropic",protocols:["anthropic_messages"]}],id:"zai-global-coding",name:"Z.ai (Global) - Coding Plan",websiteUrl:"https://z.ai/"};var w1={meters:[{id:"five_hour_quota",kind:"quota",label:"5h quota",limit:100,remaining:'100 - $.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==3)].percentage',resetAt:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==3)].nextResetTime',unit:"%",used:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==3)].percentage',window:"5h"},{id:"weekly_quota",kind:"quota",label:"Weekly quota",limit:100,remaining:'100 - $.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==6)].percentage',resetAt:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==6)].nextResetTime',unit:"%",used:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==6)].percentage',window:"weekly"}]},R1={connectors:[{auth:"provider-api-key-raw",endpoint:"https://api.z.ai/api/monitor/usage/quota/limit",headers:{"Accept-Language":"en-US,en"},mapping:w1,type:"http-json"}],enabled:!0},hb={account:R1,aliases:["z.ai","zai","z ai","z-ai","glm global"],defaultModels:["glm-5.2","glm-5.1","glm-4.7","glm-4.5-air"],endpoints:[{baseUrl:"https://api.z.ai/api/paas/v4",protocols:["openai_chat_completions"]}],id:"zai-global-general",name:"Z.ai (Global) - General Endpoint",websiteUrl:"https://z.ai/"};var b1={meters:[{id:"five_hour_quota",kind:"quota",label:"5h quota",limit:100,remaining:'100 - $.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==3)].percentage',resetAt:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==3)].nextResetTime',unit:"%",used:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==3)].percentage',window:"5h"},{id:"weekly_quota",kind:"quota",label:"Weekly quota",limit:100,remaining:'100 - $.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==6)].percentage',resetAt:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==6)].nextResetTime',unit:"%",used:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==6)].percentage',window:"weekly"}]},S1={connectors:[{auth:"provider-api-key-raw",endpoint:"https://open.bigmodel.cn/api/monitor/usage/quota/limit",headers:{"Accept-Language":"en-US,en"},mapping:b1,type:"http-json"}],enabled:!0},Cb={account:S1,aliases:["zhipu","bigmodel","glm","\u667A\u8C31","\u667A\u8C31ai","\u667A\u8C31\u6E05\u8A00"],defaultModels:["glm-5.2","glm-5.1","glm-4.7","glm-4.5-air"],endpoints:[{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4",protocols:["openai_chat_completions"]},{baseUrl:"https://open.bigmodel.cn/api/anthropic",protocols:["anthropic_messages"]}],id:"zhipu-cn-coding",name:"Zhipu AI (China) - Coding Plan",websiteUrl:"https://www.bigmodel.cn/"};var D1={meters:[{id:"five_hour_quota",kind:"quota",label:"5h quota",limit:100,remaining:'100 - $.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==3)].percentage',resetAt:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==3)].nextResetTime',unit:"%",used:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==3)].percentage',window:"5h"},{id:"weekly_quota",kind:"quota",label:"Weekly quota",limit:100,remaining:'100 - $.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==6)].percentage',resetAt:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==6)].nextResetTime',unit:"%",used:'$.data.limits[?(@.type=="TOKENS_LIMIT" && @.unit==6)].percentage',window:"weekly"}]},k1={connectors:[{auth:"provider-api-key-raw",endpoint:"https://open.bigmodel.cn/api/monitor/usage/quota/limit",headers:{"Accept-Language":"en-US,en"},mapping:D1,type:"http-json"}],enabled:!0},Eb={account:k1,aliases:["zhipu","bigmodel","glm","\u667A\u8C31","\u667A\u8C31ai","\u667A\u8C31\u6E05\u8A00"],defaultModels:["glm-5.2","glm-5.1","glm-4.7","glm-4.5-air"],endpoints:[{baseUrl:"https://open.bigmodel.cn/api/paas/v4",protocols:["openai_chat_completions"]}],id:"zhipu-cn-general",name:"Zhipu AI (China) - General Endpoint",websiteUrl:"https://www.bigmodel.cn/"};function Bb(t,e){return t.find(r=>mb(r,e))}function bf(t){return t.endpoints[0]}function mb(t,e){return t.endpoints.some(r=>N1(r.baseUrl,e))}function N1(t,e){let r=Ib(t),n=Ib(e);if(!r||!n||n.protocol!==r.protocol||n.host!==r.host)return!1;let o=Qb(r.pathname),i=Qb(n.pathname);return o==="/"||i==="/"||i===o||i.startsWith(`${o}/`)||o.startsWith(`${i}/`)}function Ib(t){try{return new URL(Ss(t.trim()))}catch{return}}function Qb(t){return t.replace(/\/+$/,"")||"/"}var M1=[ob,YR,zR,ib,nb,JR,ub,lb,gb,fb,$R,Cb,Eb,pb,hb,ZR,XR,eb,tb,rb,VR,ab,sb,KR,jR,Ab,cb,db,WR,qR];function To(t){return Bb(M1,t)}var T1="CCR_DESKTOP_APP";function yb(){return process.env[T1]==="1"&&!!process.versions.electron}var U1=new Set(["legacy-subagent","legacy-background","legacy-thinking","legacy-web-search","legacy-image"]),xf="127.0.0.1",F1="local-gateway",P1=new Set(pf),G=HR({coreHost:xf});function Uf(t){let e=L1(t?.platform??G.botGateway.platform);return{...G.botGateway,...t??{},authType:v1(e,t?.authType??G.botGateway.authType),credentials:Lb(t?.credentials??G.botGateway.credentials),handoff:{...G.botGateway.handoff,...t?.handoff??{}},integrationConfig:O1(e,t?.integrationConfig??G.botGateway.integrationConfig),platform:e}}function L1(t){let e=typeof t=="string"?t.trim().toLowerCase():"";return!e||e==="off"||e==="disabled"?"none":e==="lark"?"feishu":e==="dingding"?"dingtalk":["wechat","weixin","wx","weixin-ilink","weixin_ilink","ilink"].includes(e)?"weixin-ilink":["wecom","wework","wechat-work","work-weixin","enterprise-wechat"].includes(e)?"wecom":e}function v1(t,e){let r=typeof e=="string"?e.trim().toLowerCase().replace(/-/g,"_"):"";return!t||t==="none"?"":!r||r==="default"||r==="auto"||r==="webhook"||r==="webhook_secret"||r==="outgoing_webhook"?_1(t):r==="appsecret"?"app_secret":r==="bottoken"||r==="token"?"bot_token":r==="oauth"||r==="oauth_2"?"oauth2":["qr","qr_login","qrcode","qr_code"].includes(r)?"qr_login":r}function _1(t){return t==="weixin-ilink"?"qr_login":t==="feishu"||t==="dingtalk"||t==="wecom"?"app_secret":t==="slack"||t==="discord"||t==="telegram"||t==="line"?"bot_token":t==="imessage"?"local":""}function O1(t,e){let r=Lb(e);delete r.transport,delete r.sendMode;let n=G1(t);return n?{...r,transport:n}:r}function G1(t){return!t||t==="none"?"":t==="slack"?"socket":"websocket"}function Lb(t){let e={};if(!R(t))return e;for(let[r,n]of Object.entries(t))!r.trim()||H1(r)||(e[r]=n);return e}function H1(t){let e=t.trim().toLowerCase().replace(/[_-]+/g,"");return e.includes("webhook")||e==="sendmode"}async function Ff(){try{let t=await J1(),e=t.value,r=jq(e,t.source),n=$1(r),o=n.Providers??G.Providers,i=n.PORT??$q(n.routerEndpoint)??G.PORT,s=n.HOST??G.HOST,A=n.routerEndpoint??`http://${Xq(s)}:${i}`,a=n.gateway??{},c=a.corePort??Zq(i),d=Jq(n.APIKEYS,n.APIKEY).filter(y=>!Df(y)),l=(await uf()).filter(y=>!Df(y)),u=Gf([...l,...d]),p=Pb(u),h=cq(n.plugins??G.plugins),I=Y1({...G,...n,APIKEY:p[0]?.key??"",APIKEYS:p,HOST:s,PORT:i,Providers:o,Router:{...G.Router,...n.Router},agent:{...G.agent,...n.agent??{},mcpServers:n.agent?.mcpServers??G.agent.mcpServers},botConfigs:n.botConfigs??G.botConfigs,botGateway:Uf(n.botGateway),contextArchive:{enabled:n.contextArchive?.enabled??G.contextArchive.enabled,maxBytes:n.contextArchive?.maxBytes??G.contextArchive.maxBytes,maxSnapshotBytes:n.contextArchive?.maxSnapshotBytes??G.contextArchive.maxSnapshotBytes,maxSnapshots:n.contextArchive?.maxSnapshots??G.contextArchive.maxSnapshots,mcpEnabled:n.contextArchive?.mcpEnabled??G.contextArchive.mcpEnabled,replayTimeoutMs:n.contextArchive?.replayTimeoutMs??G.contextArchive.replayTimeoutMs,retentionDays:n.contextArchive?.retentionDays??G.contextArchive.retentionDays,storagePath:n.contextArchive?.storagePath??G.contextArchive.storagePath,toolName:n.contextArchive?.toolName??G.contextArchive.toolName},gateway:{...G.gateway,...a,coreHost:xf,corePort:c,host:a.host??s,port:a.port??i},mediaTools:{...G.mediaTools,...n.mediaTools??{},allowedInputRoots:n.mediaTools?.allowedInputRoots??G.mediaTools.allowedInputRoots},observability:{...G.observability,...n.observability??{}},plugins:h.plugins,preferredProvider:n.preferredProvider||o[0]?.name||G.preferredProvider,profile:{...G.profile,...n.profile??{},claudeCode:{...G.profile.claudeCode,...n.profile?.claudeCode??{}},codex:{...G.profile.codex,...n.profile?.codex??{},cliMiddleware:!0},profiles:n.profile?.profiles??G.profile.profiles},proxy:{...G.proxy,...n.proxy??{},targets:n.proxy?.targets?.length?n.proxy.targets:G.proxy.targets},routerEndpoint:A,toolHub:{...G.toolHub,...n.toolHub??{},llm:{...G.toolHub.llm,...n.toolHub?.llm??{}},mcpServers:n.toolHub?.mcpServers??G.toolHub.mcpServers}}),m=u.length===0||zq(e)||d.length>0,E=W1(r.Providers),Q=h.changed;return(t.source!=="sqlite"||m||E||Q)&&await uR(z1(I),p),t.source==="legacy-json"&&t.legacyJsonFile&&await lR([t.legacyJsonFile]).catch(y=>{console.warn(`[config] Failed to archive legacy JSON config: ${fs(y)}`)}),I}catch(t){console.warn(`[config] Failed to load config: ${fs(t)}`);let e=await uf().catch(n=>(console.warn(`[config] Failed to load API keys: ${fs(n)}`),[])),r=Pb(e.filter(n=>!Df(n)));return e.length===0&&await dR(r).catch(n=>{console.warn(`[config] Failed to persist generated API key: ${fs(n)}`)}),{...G,APIKEY:r[0]?.key??"",APIKEYS:r}}}var sX=Promise.resolve();function Y1(t){let e=Qf(t.profile.profiles);return{...t,Providers:t.Providers.map(_b),profile:vb({...t.profile,profiles:e})}}function vb(t){let e=Qf(t.profiles),r=t.enabled!==!1&&e.some(i=>i.enabled),n=r?wb(e,"claude-code"):void 0,o=r?wb(e,"codex"):void 0;return{...t,enabled:r,claudeCode:V1(t.claudeCode,n),codex:q1(t.codex,o),profiles:e}}function wb(t,e){return t.find(r=>r.agent===e&&Oa(r))}function V1(t,e){return e?{...t,enabled:!0,fableModel:e.fableModel??t.fableModel,haikuModel:e.haikuModel??t.haikuModel,managedCompact:e.managedCompact??t.managedCompact,model:e.model,opusModel:e.opusModel??t.opusModel,settingsFile:e.settingsFile??t.settingsFile,sonnetModel:e.sonnetModel??t.sonnetModel,smallFastModel:e.smallFastModel??t.smallFastModel}:{...t,enabled:!1}}function q1(t,e){return e?{...t,cliMiddleware:e.cliMiddleware??t.cliMiddleware,codexCliPath:e.codexCliPath??t.codexCliPath,codexHome:e.codexHome??t.codexHome,configFormat:e.configFormat??t.configFormat,configFile:e.configFile??t.configFile,enabled:!0,managedCompact:e.managedCompact??t.managedCompact,model:e.model,providerId:e.providerId??t.providerId,providerName:e.providerName??t.providerName,showAllSessions:e.showAllSessions??t.showAllSessions}:{...t,enabled:!1}}function _b(t){let e=To(kf(t));if(e?.id!=="nvidia")return t;let r=t.capabilities?.find(o=>o.type==="openai_chat_completions"),n=bf(e)?.baseUrl??kf(t);return{...t,capabilities:[{baseUrl:r?.baseUrl||n,endpoint:r?.endpoint,source:r?.source??"preset",type:"openai_chat_completions"}]}}function W1(t){return Array.isArray(t)?t.some(e=>{if(!R(e))return!1;let r=f(e.api_base_url)||f(e.baseUrl)||f(e.baseurl);return!r||To(r)?.id!=="nvidia"||!Array.isArray(e.capabilities)?!1:e.capabilities.some(n=>{if(!R(n))return!1;let o=Pf(f(n.type)||f(n.protocol));return!!(o&&o!=="openai_chat_completions")})}):!1}function kf(t){return t.api_base_url||t.baseUrl||t.baseurl||""}async function J1(){let t=await cR();if(R(t))return{source:"sqlite",value:t};let e=K1();return e?{legacyJsonFile:e.file,source:"legacy-json",value:e.value}:{source:"default",value:{}}}function K1(){let t=Vt([Ta,Ma,Da]);for(let e of t)if((0,Uo.existsSync)(e))try{let r=JSON.parse((0,Uo.readFileSync)(e,"utf8"));if(R(r))return{file:e,value:r};console.warn(`[config] Ignoring legacy config with non-object root: ${e}`)}catch(r){console.warn(`[config] Failed to read legacy config ${e}: ${fs(r)}`)}}function z1(t){return{...t,APIKEY:"",APIKEYS:[],gateway:{...t.gateway,coreHost:xf},Providers:Hb(t.Providers),profile:j1(t.profile)}}function j1(t){let e=vb(t),{remoteFrontendMode:r,...n}=e.codex;return{...e,codex:n,profiles:e.profiles.map(o=>{if(o.agent!=="codex"&&o.agent!=="opencode"&&o.agent!=="kilo"&&o.agent!=="workbuddy"&&o.agent!=="zcode")return o;let{coreMode:i,frontendMode:s,remoteFrontendMode:A,...a}=o;return a})}}function $1(t){let e={},r=xo(t.PORT);r&&(e.PORT=r),typeof t.HOST=="string"&&t.HOST.trim()&&(e.HOST=t.HOST.trim()),typeof t.APIKEY=="string"&&(e.APIKEY=t.APIKEY);let n=qq(t.APIKEYS??t.apiKeys);n&&(e.APIKEYS=n),(typeof t.API_TIMEOUT_MS=="string"||typeof t.API_TIMEOUT_MS=="number")&&(e.API_TIMEOUT_MS=t.API_TIMEOUT_MS),typeof t.CUSTOM_ROUTER_PATH=="string"&&(e.CUSTOM_ROUTER_PATH=t.CUSTOM_ROUTER_PATH.trim());let o=DV(t.Providers??t.providers);o&&(e.Providers=o),Array.isArray(t.providerPlugins)&&(e.providerPlugins=t.providerPlugins);let i=t.virtualModelProfiles;Array.isArray(i)&&(e.virtualModelProfiles=i.map(X1));let s=Aq(t.plugins??t.gatewayPlugins);s&&(e.plugins=s);let A=GV(t.Router);A&&(e.Router=A);let a=XV(t.agent??t.Agent,t.mcpServers);a&&(e.agent=a);let c=Lf(t.botGateway??t.bot_gateway??t.bot);c&&(e.botGateway=c);let d=eq(t.botConfigs??t.bot_configs);d&&(e.botConfigs=d);let l=Z1(t.contextArchive??t.context_archive);l&&(e.contextArchive=l),typeof t.autoStart=="boolean"&&(e.autoStart=t.autoStart);let u=t.launchAtLogin;if(typeof u=="boolean"&&(e.launchAtLogin=u),R(t.gateway)){let q=t.gateway,ie={};typeof q.enabled=="boolean"&&(ie.enabled=q.enabled),typeof q.host=="string"&&q.host.trim()&&(ie.host=q.host.trim());let oe=xo(q.port);oe&&(ie.port=oe);let Ne=xo(q.corePort);Ne&&(ie.corePort=Ne),e.gateway=ie}let p=Fq(t.profile);p&&(e.profile=p);let h=oq(t.proxy);h&&(e.proxy=h);let I=eV(t.observability);I&&(e.observability=I);let m=rV(t.mediaTools??t.media_tools??t.grokMedia??t.grok_media);m&&(e.mediaTools=m);let E=tV(t.toolHub??t.tool_hub);E&&(e.toolHub=E),typeof t.preferredProvider=="string"&&t.preferredProvider.trim()&&(e.preferredProvider=t.preferredProvider.trim()),typeof t.routerEndpoint=="string"&&t.routerEndpoint.trim()&&(e.routerEndpoint=t.routerEndpoint.trim()),(t.theme==="system"||t.theme==="light"||t.theme==="dark")&&(e.theme=t.theme);let Q=hV(t.trayIcon);Q&&(e.trayIcon=Q);let y=CV(t.trayBalanceProgress);y?e.trayBalanceProgress=y:e.trayIcon==="progress"&&(e.trayIcon="random");let v=J(t.trayProgressTargetTokens);v&&v>0&&(e.trayProgressTargetTokens=Ae(v,1e3,1e9));let b=SV(t.trayComponentVariants);b&&(e.trayComponentVariants=b);let F=b??ue,k=EV(t.trayWindowModules);k!==void 0&&(e.trayWindowModules=k);let x=IV(t.trayWidgets);x!==void 0?e.trayWidgets=x:k!==void 0&&(e.trayWidgets=bV(k,F));let U=nV(t.overviewWidgets);return U!==void 0&&(e.overviewWidgets=U),e}function Z1(t){if(!R(t))return;let e={};typeof t.enabled=="boolean"&&(e.enabled=t.enabled);let r=t.mcpEnabled??t.mcp_enabled;typeof r=="boolean"&&(e.mcpEnabled=r);let n=J(t.maxBytes??t.max_bytes);n!==void 0&&(e.maxBytes=Ae(n,1024*1024,64*1024*1024*1024));let o=J(t.maxSnapshotBytes??t.max_snapshot_bytes);o!==void 0&&(e.maxSnapshotBytes=Ae(o,64*1024,1024*1024*1024));let i=J(t.maxSnapshots??t.max_snapshots);i!==void 0&&(e.maxSnapshots=Ae(i,1,1e5));let s=J(t.replayTimeoutMs??t.replay_timeout_ms);s!==void 0&&(e.replayTimeoutMs=Ae(s,1e3,6e5));let A=J(t.retentionDays??t.retention_days);A!==void 0&&(e.retentionDays=Ae(A,1,3650));let a=f(t.storagePath??t.storage_path);a!==void 0&&(e.storagePath=a);let c=f(t.toolName??t.tool_name);return c!==void 0&&(e.toolName=c),Object.keys(e).length?e:void 0}function X1(t){if(!R(t)||!R(t.execution)||!("maxTurns"in t.execution)&&!("maxToolCalls"in t.execution))return t;let{maxToolCalls:e,maxTurns:r,...n}=t.execution;return{...t,execution:n}}function eV(t){if(!R(t))return;let e={};return typeof t.requestLogs=="boolean"&&(e.requestLogs=t.requestLogs),typeof t.agentAnalysis=="boolean"&&(e.agentAnalysis=t.agentAnalysis),(t.requestLogBodyCapture==="all"||t.requestLogBodyCapture==="errors"||t.requestLogBodyCapture==="none")&&(e.requestLogBodyCapture=t.requestLogBodyCapture),typeof t.requestLogMaxBodyBytes=="number"&&Number.isFinite(t.requestLogMaxBodyBytes)&&(e.requestLogMaxBodyBytes=Math.max(0,Math.min(52428800,Math.floor(t.requestLogMaxBodyBytes)))),typeof t.requestLogSuccessSampleRate=="number"&&Number.isFinite(t.requestLogSuccessSampleRate)&&(e.requestLogSuccessSampleRate=Math.max(0,Math.min(1,t.requestLogSuccessSampleRate))),Object.keys(e).length?e:void 0}function tV(t){if(!R(t))return;let e={};typeof t.enabled=="boolean"&&(e.enabled=t.enabled);let r=t.browserAutomation??t.browser_automation;typeof r=="boolean"&&(e.browserAutomation=r);let n=J(t.maxTools??t.max_tools);n!==void 0&&(e.maxTools=Ae(n,1,20));let o=J(t.requestTimeoutMs??t.request_timeout_ms);o!==void 0&&(e.requestTimeoutMs=Ae(o,8e3,3e5));let i=Wb(t.mcpServers??t.mcp_servers);i&&(e.mcpServers=i);let s=R(t.llm)?t.llm:t,A={},a=f(s.apiKey)||f(s.api_key);a!==void 0&&(A.apiKey=a);let c=f(s.baseUrl)||f(s.base_url);c!==void 0&&(A.baseUrl=c);let d=f(s.model);return d!==void 0&&(A.model=d),Object.keys(A).length>0&&(e.llm=A),Object.keys(e).length?e:void 0}function rV(t){if(!R(t))return;let e={};typeof t.enabled=="boolean"&&(e.enabled=t.enabled);let r=t.allowedInputRoots??t.allowed_input_roots;Array.isArray(r)&&(e.allowedInputRoots=r.filter(A=>typeof A=="string"&&!!A.trim()).map(A=>A.trim()));let n=J(t.artifactTtlHours??t.artifact_ttl_hours);n!==void 0&&(e.artifactTtlHours=Ae(n,1,720));let o=J(t.jobTimeoutMs??t.job_timeout_ms);o!==void 0&&(e.jobTimeoutMs=Ae(o,3e4,36e5));let i=J(t.maxImageConcurrency??t.max_image_concurrency);i!==void 0&&(e.maxImageConcurrency=Ae(i,1,8));let s=J(t.maxVideoConcurrency??t.max_video_concurrency);return s!==void 0&&(e.maxVideoConcurrency=Ae(s,1,4)),Object.keys(e).length?e:void 0}function nV(t){return Array.isArray(t)?t.map(oV).filter(r=>!!r):void 0}function oV(t){if(!R(t))return;let e=cV(t.type);if(!e)return;let r=e==="metric"?lV(t.metric)??"requests":void 0,n=e==="account-balance"?iV(t):[],o=e==="account-balance"?sV(t.accountCardOrder):[],i=e==="account-balance"?AV(t.accountCardSizes):void 0;return{...o.length>0?{accountCardOrder:o}:{},...i?{accountCardSizes:i}:{},...n.length===1?{accountProvider:n[0]}:{},...n.length>0?{accountProviders:n}:{},enabled:typeof t.enabled=="boolean"?t.enabled:!0,id:f(t.id)||pV(e,r),...r?{metric:r}:{},size:dV(t.size,e)??gV(e),type:e,variant:uV(t.variant)??fV(e)}}function iV(t){let e=f(t.accountProvider);return Vt([...vr(t.accountProviders),...e?[e]:[]])}function sV(t){return Vt(vr(t))}function AV(t){if(!R(t))return;let e={};for(let[r,n]of Object.entries(t)){let o=r.trim(),i=aV(n);o&&i&&(e[o]=i)}return Object.keys(e).length>0?e:void 0}function aV(t){return t==="small"?"1:1":t==="large"?"1:2":De(t,["1:1","1:2","2:1","2:2"],void 0)}function cV(t){return De(t,["account-balance","client-analysis","metric","model-distribution","provider-analysis","share-fuel-cockpit","share-model-leaderboard","share-route-map","share-spend-receipt","share-token-calendar","share-usage-wrapped","system-status","token-activity","token-mix","usage-trend"],void 0)}function dV(t,e){let r=De(t,BR,void 0);if(r)return r;if(t==="small")return"1:1";if(t==="medium"||t==="large")return"2:2";if(t==="wide")return"3:2";if(t==="full")return e==="system-status"?"4:1":"4:2"}function uV(t){return De(t,["arc","area","bar","bars","card","cards","compact","composed","donut","heatmap","line","nested-rings","pie","ring","semicircle","stacked","table","timeline"],void 0)}function lV(t){return De(t,["avg-latency","cache-ratio","cache-tokens","errors","estimated-cost","input-tokens","output-tokens","requests","success-rate","total-tokens"],void 0)}function gV(t){return t==="metric"?"1:1":t==="model-distribution"?"2:2":t==="token-mix"?"1:2":t==="token-activity"?"4:2":t==="client-analysis"||t==="provider-analysis"?"2:2":t==="usage-trend"?"3:2":t==="system-status"?"4:1":Ob(t)?"1:4":"4:2"}function fV(t){return t==="account-balance"?"cards":t==="metric"?"card":t==="model-distribution"?"pie":t==="token-mix"?"bars":t==="token-activity"?"heatmap":t==="usage-trend"?"composed":t==="system-status"?"timeline":Ob(t)?"card":"table"}function pV(t,e){return t==="metric"?`metric-${e??"requests"}`:t}function Ob(t){return t==="share-fuel-cockpit"||t==="share-model-leaderboard"||t==="share-route-map"||t==="share-spend-receipt"||t==="share-token-calendar"||t==="share-usage-wrapped"}function hV(t){if(t==="random"||t==="violet"||t==="orange"||t==="cyan"||t==="progress")return t}function CV(t){if(!R(t))return;let e=f(t.provider),r=f(t.meterId);return e&&r?{meterId:r,provider:e}:void 0}function EV(t){if(!Array.isArray(t))return;let e=new Set(If);return Vt(t.map(r=>f(r)).filter(r=>!!r)).filter(r=>e.has(r))}function IV(t){if(Array.isArray(t))return Gb(RV(t.map(QV).filter(e=>!!e)))}function QV(t){if(!R(t))return;let e=BV(t.type);if(!e)return;let r=mV(e,t.variant);return{id:f(t.id)||e,type:e,...r?{variant:r}:{}}}function BV(t){return De(t,["account","activity","header","model-share","rings","source-tabs","stats","token-flow","token-mix"],void 0)}function mV(t,e){let r=yV(t);return r===void 0?De(e,Rb(t),void 0):De(e,Rb(t),r)}function Rb(t){return t==="account"?["bar","compact","ring","arc","stacked"]:t==="model-share"?["bars","list","donut","pie"]:t==="rings"?["rings","arcs","gauges"]:t==="stats"?["cards","compact","pills"]:t==="token-flow"?["line","area","bar","sparkline"]:t==="token-mix"?["bars","stacked","donut","pie"]:[]}function yV(t){if(t==="account")return ue.account;if(t==="model-share")return ue.modelShare;if(t==="rings")return ue.rings;if(t==="stats")return ue.stats;if(t==="token-flow")return ue.tokenFlow;if(t==="token-mix")return ue.tokenMix}function wV(t){return yR.includes(t)}function bb(t){return wR.includes(t)}function Gb(t){return[...t.filter(e=>bb(e.type)),...t.filter(e=>!bb(e.type))]}function RV(t){let e=new Set;return t.filter(r=>wV(r.type)?e.has(r.type)?!1:(e.add(r.type),!0):!0)}function bV(t,e){return Gb(t.filter(r=>r!=="footer").map(r=>({id:r,type:r,...r==="account"?{variant:e.account}:{},...r==="model-share"?{variant:e.modelShare}:{},...r==="rings"?{variant:e.rings}:{},...r==="stats"?{variant:e.stats}:{},...r==="token-flow"?{variant:e.tokenFlow}:{},...r==="token-mix"?{variant:e.tokenMix}:{}})))}function SV(t){if(R(t))return{account:De(t.account,["bar","compact","ring","arc","stacked"],ue.account),modelShare:De(t.modelShare,["bars","list","donut","pie"],ue.modelShare),rings:De(t.rings,["rings","arcs","gauges"],ue.rings),stats:De(t.stats,["cards","compact","pills"],ue.stats),tokenFlow:De(t.tokenFlow,["line","area","bar","sparkline"],ue.tokenFlow),tokenMix:De(t.tokenMix,["bars","stacked","donut","pie"],ue.tokenMix)}}function De(t,e,r){return typeof t=="string"&&e.includes(t)?t:r}function DV(t){if(!Array.isArray(t))return;let e=t.map(r=>{if(!R(r))return;let n=f(r.name),o=Array.isArray(r.models)?r.models.map(c=>f(c)).filter(c=>!!c):[],i=kV(r.modelDescriptions??r.model_descriptions,o),s=NV(r.modelDisplayNames??r.model_display_names,o),A=MV(r.modelMetadata??r.model_metadata,o);if(!n)return;let a={account:Yb(r.account),api_base_url:f(r.api_base_url),api_key:f(r.api_key),apiKey:f(r.apiKey),apikey:f(r.apikey),baseUrl:f(r.baseUrl),baseurl:f(r.baseurl),billing:r.billing,capabilities:_V(r.capabilities)??OV(r),credentials:vV(r.credentials??r.keys??r.apiKeys),extraBody:r.extraBody,extraHeaders:r.extraHeaders,icon:f(r.icon),id:f(r.id),enabled:r.enabled===!1?!1:void 0,autoFetchModels:Nf(r.autoFetchModels??r.auto_fetch_models??r.autoRefreshModels??r.auto_refresh_models),autoFetchKnownModels:Ka(r.autoFetchKnownModels??r.auto_fetch_known_models??r.autoRefreshKnownModels??r.auto_refresh_known_models),modelDescriptions:i,modelDisplayNames:s,modelMetadata:A,models:o,name:n,provider:f(r.provider),protocolDetectionMode:De(r.protocolDetectionMode,["auto","manual"],void 0),transformer:r.transformer,type:f(r.type)};return GR(_b(TR(MR(tS(a)))))}).filter(r=>!!r);return Hb(e)}function kV(t,e){if(!R(t))return;let r=new Set(e),n=Object.entries(t).map(([o,i])=>[o.trim(),f(i)]).filter(o=>{let[i,s]=o;return!!(i&&s&&r.has(i))});return n.length>0?Object.fromEntries(n):void 0}function NV(t,e){if(!R(t))return;let r=new Set(e),n=Object.entries(t).map(([o,i])=>[o.trim(),f(i)]).filter(o=>{let[i,s]=o;return!!(i&&s&&r.has(i)&&i!==s)});return n.length>0?Object.fromEntries(n):void 0}function MV(t,e){if(!R(t))return;let r=new Set(e),n=Object.entries(t).map(([o,i])=>[o.trim(),TV(i)]).filter(o=>{let[i,s]=o;return!!(i&&s&&r.has(i))});return n.length>0?Object.fromEntries(n):void 0}function TV(t){if(!R(t))return;let e=PV(t.supportedReasoningLevels??t.supported_reasoning_levels),r=UV(t.capabilities),n=Mn(t.contextWindow??t.context_window),o=eW(t.effectiveContextWindowPercent??t.effective_context_window_percent),i=Mn(t.maxContextWindow??t.max_context_window),s=Mn(t.maxOutputTokens??t.max_output_tokens??t.outputTokens??t.output_tokens),A=xV(t.openRouterDiscountRouting??t.open_router_discount_routing),a=FV(t.pricing),c={...Array.isArray(t.additionalSpeedTiers)?{additionalSpeedTiers:t.additionalSpeedTiers}:{},...Array.isArray(t.additional_speed_tiers)?{additionalSpeedTiers:t.additional_speed_tiers}:{},...r?{capabilities:r}:{},...n?{contextWindow:n}:{},...t.defaultReasoningLevel===null?{defaultReasoningLevel:null}:{},...f(t.defaultReasoningLevel)?{defaultReasoningLevel:f(t.defaultReasoningLevel)}:{},...t.default_reasoning_level===null?{defaultReasoningLevel:null}:{},...f(t.default_reasoning_level)?{defaultReasoningLevel:f(t.default_reasoning_level)}:{},...f(t.defaultReasoningSummary)?{defaultReasoningSummary:f(t.defaultReasoningSummary)}:{},...f(t.default_reasoning_summary)?{defaultReasoningSummary:f(t.default_reasoning_summary)}:{},...o?{effectiveContextWindowPercent:o}:{},...i?{maxContextWindow:i}:{},...s?{maxOutputTokens:s}:{},...A?{openRouterDiscountRouting:A}:{},...a?{pricing:a}:{},...Array.isArray(t.serviceTiers)?{serviceTiers:t.serviceTiers}:{},...Array.isArray(t.service_tiers)?{serviceTiers:t.service_tiers}:{},...typeof t.supportsFastMode=="boolean"?{supportsFastMode:t.supportsFastMode}:{},...typeof t.supports_fast_mode=="boolean"?{supportsFastMode:t.supports_fast_mode}:{},...e?{supportedReasoningLevels:e}:{},...typeof t.supportsReasoningSummaries=="boolean"?{supportsReasoningSummaries:t.supportsReasoningSummaries}:{},...typeof t.supports_reasoning_summaries=="boolean"?{supportsReasoningSummaries:t.supports_reasoning_summaries}:{}};return Object.keys(c).length>0?c:void 0}function xV(t){if(t===!0)return{enabled:!0};if(t===!1||!R(t))return;let e=vr(t.providerBlacklist??t.provider_blacklist??t.ignoredProviders??t.ignored_providers??t.ignore),r={...typeof t.allowFallbacks=="boolean"?{allowFallbacks:t.allowFallbacks}:{},...typeof t.allow_fallbacks=="boolean"?{allowFallbacks:t.allow_fallbacks}:{},...bt(t.cacheHitRate??t.cache_hit_rate)!==void 0?{cacheHitRate:bt(t.cacheHitRate??t.cache_hit_rate)}:{},...typeof t.enabled=="boolean"?{enabled:t.enabled}:{},...Mn(t.endpointTtlMs??t.endpoint_ttl_ms??t.priceTtlMs??t.price_ttl_ms)?{endpointTtlMs:Mn(t.endpointTtlMs??t.endpoint_ttl_ms??t.priceTtlMs??t.price_ttl_ms)}:{},...Mn(t.minOutputTokens??t.min_output_tokens)?{minOutputTokens:Mn(t.minOutputTokens??t.min_output_tokens)}:{},...bt(t.minSavingsRatio??t.min_savings_ratio)!==void 0?{minSavingsRatio:bt(t.minSavingsRatio??t.min_savings_ratio)}:{},...bt(t.minSavingsUsd??t.min_savings_usd)!==void 0?{minSavingsUsd:bt(t.minSavingsUsd??t.min_savings_usd)}:{},...bt(t.minUptime5m??t.min_uptime_5m)!==void 0?{minUptime5m:bt(t.minUptime5m??t.min_uptime_5m)}:{},...bt(t.outputTokenRatio??t.output_token_ratio)!==void 0?{outputTokenRatio:bt(t.outputTokenRatio??t.output_token_ratio)}:{},...e.length>0?{providerBlacklist:e}:{},...typeof t.requireParameters=="boolean"?{requireParameters:t.requireParameters}:{},...typeof t.require_parameters=="boolean"?{requireParameters:t.require_parameters}:{},...typeof t.respectExistingProviderOrder=="boolean"?{respectExistingProviderOrder:t.respectExistingProviderOrder}:{},...typeof t.respect_existing_provider_order=="boolean"?{respectExistingProviderOrder:t.respect_existing_provider_order}:{}};return Object.keys(r).length>0?r:void 0}function UV(t){if(!R(t))return;let e={},r=["imageInput","webSearch"];for(let n of r){let o=n.replace(/[A-Z]/g,s=>`_${s.toLowerCase()}`),i=t[n]??t[o];typeof i=="boolean"&&(e[n]=i)}return Object.keys(e).length>0?e:void 0}function FV(t){if(!R(t))return;let e={},r=["cacheReadUsdPerMillionTokens","cacheWriteUsdPerMillionTokens","cacheWrite1hUsdPerMillionTokens","cacheWrite5mUsdPerMillionTokens","inputUsdPerMillionTokens","outputUsdPerMillionTokens"];for(let n of r){let o=n.replace(/[A-Z]/g,A=>`_${A.toLowerCase()}`),i=o.replace(/([a-z])([0-9])/g,"$1_$2"),s=bt(t[n]??t[i]??t[o]);s!==void 0&&(e[n]=s)}return Object.keys(e).length>0?e:void 0}function PV(t){if(!Array.isArray(t))return;let e=t.map(r=>{if(!R(r)){let o=f(r);return o?{description:o,effort:o}:void 0}let n=f(r.effort);if(n)return{description:f(r.description)||n,effort:n}}).filter(r=>!!r);return e.length>0?e:t.length===0?[]:void 0}function Hb(t){let e=new Map;return t.map(r=>{let n=LV(r),o=(e.get(n)??0)+1;return e.set(n,o),{...r,id:o===1?n:`${n}-${o}`}})}function LV(t){let e=Sb(t.id);if(e)return e;let r=Sb(t.name)||"provider",n=[t.name,t.provider??"",kf(t),t.type??""].join(`
276
+ `),o=(0,ja.createHash)("sha256").update(n).digest("hex").slice(0,10);return`provider-${r.slice(0,48)}-${o}`}function Sb(t){return t?.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9_.-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,72)||void 0}function vV(t){if(!Array.isArray(t))return;let e=t.map((r,n)=>{if(!R(r))return;let o=f(r.api_key)||f(r.apiKey)||f(r.apikey)||f(r.key)||f(r.token);if(!o)return;let i=f(r.label),s=f(r.id),A=f(r.name)||i||s||`Key ${n+1}`,a=J(r.priority),c=J(r.weight);return{account:Yb(r.account),api_key:o,enabled:typeof r.enabled=="boolean"?r.enabled:void 0,...i?{label:i}:{},...s?{id:s}:{},name:A,limits:Xb(r.limits),priority:a!==void 0?a:void 0,weight:c!==void 0&&c>0?c:void 0}}).filter(r=>!!r);return e.length>0?e:void 0}function Yb(t){if(!R(t))return;let e=J(t.refreshIntervalMs),r=Array.isArray(t.connectors)?t.connectors.filter(n=>R(n)).map(n=>({...n})):void 0;if(!(typeof t.enabled!="boolean"&&!e&&!r?.length))return{connectors:r,enabled:typeof t.enabled=="boolean"?t.enabled:void 0,refreshIntervalMs:e&&e>0?e:void 0}}function _V(t){if(!Array.isArray(t))return;let e=t.map(r=>{if(!R(r))return;let n=Pf(f(r.type)||f(r.protocol)),o=f(r.baseUrl)||f(r.baseurl)||f(r.api_base_url);if(!n||!o)return;let i=f(r.source);return{baseUrl:o,endpoint:f(r.endpoint),source:i==="preset"||i==="detected"?i:void 0,type:n}}).filter(r=>!!r);return e.length>0?e:void 0}function OV(t){let e=Pf(f(t.protocol)),r=f(t.baseUrl)||f(t.baseurl)||f(t.api_base_url);if(!(!e||!r))return[{baseUrl:r,type:e}]}function Pf(t){if(!t)return;let e=t.trim().toLowerCase();if(e==="openai_responses"||e==="openai")return"openai_responses";if(e==="openai_chat"||e==="openai_chat_completions")return"openai_chat_completions";if(e==="openai_image_generations"||e==="openai_images")return"openai_image_generations";if(e==="openai_video_generations"||e==="openai_videos")return"openai_video_generations";if(e==="xai_video_generations"||e==="xai_videos")return"xai_video_generations";if(e==="anthropic"||e==="anthropic_messages")return"anthropic_messages";if(e==="gemini"||e==="gemini_generate_content")return"gemini_generate_content";if(e==="gemini_interactions"||e==="gemini-interactions"||e==="google_interactions"||e==="google-interactions"||e==="interactions"||e==="interaction")return"gemini_interactions"}function GV(t){if(!R(t))return;let e={},r=HV(t.builtInRules??t.builtinRules??t.agentRules);r&&(e.builtInRules=r);let n=qb(t.rules);n?e.rules=n:e.rules=[];let o=Vb(t.fallback??t.failureFallback??t.fallbackStrategy);return o&&(e.fallback=o),e}function HV(t){if(R(t))return{"claude-code":Db(t["claude-code"]??t.claudeCode??t.claude),codex:Db(t.codex)}}function Db(t){return typeof t=="boolean"?{enabled:t}:R(t)?{enabled:typeof t.enabled=="boolean"?t.enabled:!0}:{enabled:!0}}function Vb(t){if(!R(t))return;let e=kb(t.mode)??kb(t.strategy)??YV(t),r=Ae(J(t.retryCount??t.retries??t.maxRetries)??1,0,IR),n=vr(t.models??t.chain??t.fallbackModels).map(o=>o.trim()).filter(Boolean);return{mode:e,models:Vt(n),retryCount:r}}function YV(t){return t.enabled===!1?"off":vr(t.models??t.chain??t.fallbackModels).length>0?"model-chain":t.enabled===!0?"retry":"off"}function kb(t){if(typeof t!="string")return;let e=t.trim().toLowerCase();if(e==="off"||e==="disabled"||e==="none")return"off";if(e==="retry"||e==="retries")return"retry";if(e==="model-chain"||e==="chain"||e==="fallback-chain"||e==="switch-model"||e==="switch")return"model-chain"}function vr(t){return Array.isArray(t)?t.map(e=>f(e)).filter(e=>!!e):typeof t=="string"?t.split(/\r?\n|,/g).map(e=>e.trim()).filter(Boolean):[]}function Ka(t){if(!Array.isArray(t)&&typeof t!="string")return;let e=vr(t);return e.length?e:void 0}function qb(t){if(Array.isArray(t))return t.map((e,r)=>{if(!R(e))return;let n=VV(e.type);if(!n)return;let o=f(e.id)||`rule-${r+1}`;if(U1.has(o))return;let i=f(e.name)||ZV(n),s=f(e.target),A=f(e.pattern),a=J(e.threshold),c=WV(e.condition??e)??KV(n,{pattern:A}),d=jV(e),l=n==="script"?qV(e.script??e):void 0,u=Vb(e.fallback??e.failureFallback??e.fallbackStrategy);return{...c?{condition:c}:{},enabled:typeof e.enabled=="boolean"?e.enabled:!0,...u?{fallback:u}:{},id:o,name:i,...A?{pattern:A}:{},...d.length===1?{rewrite:d[0]}:{},...d.length>0?{rewrites:d}:{},...l?{script:l}:{},...s?{target:s}:{},...a!==void 0&&a>0?{threshold:a}:{},type:n==="script"?"script":c?"condition":n}}).filter(e=>!!e)}function VV(t){if(typeof t!="string")return;let e=t.trim().toLowerCase();if(e==="condition"||e==="model-prefix"||e==="script")return e}function qV(t){if(!R(t))return;let e=f(t.file??t.filePath??t.path),r=typeof t.source=="string"?t.source:typeof t.code=="string"?t.code:void 0;if(!e&&r===void 0)return;let n=f(t.language)?.toLowerCase();if(n&&n!=="javascript"&&n!=="js"||(J(t.apiVersion??t.version)??Ga)!==Ga)return;let i=J(t.timeoutMs??t.timeout),s=i===void 0?CR:Math.max(10,Math.min(ER,Math.trunc(i)));return{apiVersion:Ga,...e?{file:e}:{},language:"javascript",...r!==void 0?{source:r}:{},timeoutMs:s}}function WV(t){if(!R(t))return;let e=f(t.left)??f(t.path)??f(t.field)??f(t.parameter),r=JV(t.operator??t.op),n=zV(t.right??t.value);return e&&r&&n!==void 0?{left:e,operator:r,right:n}:void 0}function JV(t){if(typeof t!="string")return;let e=t.trim();if(e==="=="||e==="!="||e===">"||e===">="||e==="<"||e==="<="||e==="starts-with"||e==="contains"||e==="contains-deep"||e==="not-contains")return e}function KV(t,e){if(t==="model-prefix"&&e.pattern)return{left:"request.body.model",operator:"starts-with",right:e.pattern}}function zV(t){if(typeof t=="string")return t.trim();if(typeof t=="number"||typeof t=="boolean")return String(t)}function jV(t){if(Array.isArray(t.rewrites))return t.rewrites.map(n=>Nb(n)).filter(n=>!!n);let e=Nb(t.rewrite??t.action),r=f(t.target);return[...e?[e]:[],...r?[{key:"request.body.model",operation:"set",value:r}]:[]]}function Nb(t){if(!R(t))return;let e=f(t.key)??f(t.path)??f(t.field)??f(t.parameter),r=$V(t.operation??t.op??t.type)??"set",n=Mb(t.value),o=Mb(t.match);if(e)return r==="delete"?{key:e,operation:r}:r==="array-replace"?o!==void 0&&n!==void 0?{key:e,match:o,operation:r,value:n}:void 0:n!==void 0?{key:e,operation:r,value:n}:void 0}function $V(t){if(typeof t!="string")return;let e=t.trim().toLowerCase();if(e==="set"||e==="delete"||e==="array-append"||e==="array-prepend"||e==="array-remove"||e==="array-replace")return e}function Mb(t){if(typeof t=="string")return t.trim();if(typeof t=="number"||typeof t=="boolean")return String(t)}function ZV(t){return t==="condition"?"Condition":t==="script"?"JavaScript":"Legacy"}function XV(t,e){let r=R(t)?t:{},n=Wb(r.mcpServers??e);if(n)return{mcpServers:n}}function Lf(t){if(!R(t))return;let e={};typeof t.enabled=="boolean"&&(e.enabled=t.enabled);let r=f(t.sourceDir)||f(t.source_dir)||f(t.projectDir)||f(t.project_dir);r&&(e.sourceDir=r);let n=f(t.command);n&&(e.command=n);let o=Ka(t.args);o&&(e.args=o);let i=f(t.cwd)||f(t.rootDir)||f(t.root_dir);i&&(e.cwd=i);let s=f(t.stateDir)||f(t.state_dir);s&&(e.stateDir=s);let A=f(t.tenantId)||f(t.tenant_id);A&&(e.tenantId=A);let a=f(t.integrationId)||f(t.integration_id);a&&(e.integrationId=a);let c=f(t.platform);c&&(e.platform=c);let d=f(t.authType)||f(t.auth_type);d&&(e.authType=d);let l=gs(t.credentials)||gs(t.authFields)||gs(t.auth_fields);l&&(e.credentials=l);let u=gs(t.integrationConfig)||gs(t.config);u&&(e.integrationConfig=u);let p=rq(t.conversationRef??t.conversation_ref??t.conversation);p&&(e.conversationRef=p),typeof t.createIntegration=="boolean"?e.createIntegration=t.createIntegration:typeof t.create_integration=="boolean"&&(e.createIntegration=t.create_integration),typeof t.autoStartIntegration=="boolean"?e.autoStartIntegration=t.autoStartIntegration:typeof t.auto_start_integration=="boolean"&&(e.autoStartIntegration=t.auto_start_integration),typeof t.acknowledgeEvents=="boolean"?e.acknowledgeEvents=t.acknowledgeEvents:typeof t.acknowledge_events=="boolean"&&(e.acknowledgeEvents=t.acknowledge_events),typeof t.forwardAllAgentMessages=="boolean"?e.forwardAllAgentMessages=t.forwardAllAgentMessages:(typeof t.forward_all_agent_messages=="boolean"||typeof t.forward_all_codex_messages=="boolean")&&(e.forwardAllAgentMessages=!!(t.forward_all_agent_messages??t.forward_all_codex_messages)),typeof t.mediaEnabled=="boolean"&&(e.mediaEnabled=t.mediaEnabled),typeof t.streamReplies=="boolean"&&(e.streamReplies=t.streamReplies),typeof t.shellEnabled=="boolean"?e.shellEnabled=t.shellEnabled:typeof t.shell_enabled=="boolean"&&(e.shellEnabled=t.shell_enabled);let h=f(t.language);(h==="auto"||h==="en"||h==="zh-CN")&&(e.language=h);let I=J(t.requestTimeoutMs??t.request_timeout_ms);I!==void 0&&(e.requestTimeoutMs=Ae(I,1e3,36e5));let m=J(t.startupTimeoutMs??t.startup_timeout_ms);m!==void 0&&(e.startupTimeoutMs=Ae(m,1e3,12e4));let E=J(t.pollIntervalMs??t.poll_interval_ms);E!==void 0&&(e.pollIntervalMs=Ae(E,500,6e4));let Q=J(t.maxTurnTimeMs??t.max_turn_time_ms);Q!==void 0&&(e.maxTurnTimeMs=Ae(Q,1e4,36e5));let y=J(t.maxAttachmentBytes??t.max_attachment_bytes);y!==void 0&&(e.maxAttachmentBytes=Ae(y,1024,100*1024*1024));let v=J(t.messageChunkChars??t.message_chunk_chars);v!==void 0&&(e.messageChunkChars=Ae(v,500,2e4));let b=J(t.sessionIdleMinutes??t.session_idle_minutes);b!==void 0&&(e.sessionIdleMinutes=Ae(b,0,43200));let F=tq(t.handoff);return F&&(e.handoff=F),e}function eq(t){if(!Array.isArray(t))return;let e=[],r=new Set;return t.forEach((n,o)=>{if(!R(n))return;let i=n.botGateway??n.bot_gateway??n.bot??n.config,s=Lf(i);if(!s)return;let A=Uf(s);if(!A.enabled||!A.platform||A.platform==="none")return;let a=A.integrationId||`bot-${o+1}`,c=f(n.id)||f(n.savedConfigId)||f(n.saved_config_id)||a;!c||r.has(c)||(r.add(c),e.push({botGateway:A,id:c,name:f(n.name)||A.platform||c,...f(n.updatedAt)||f(n.updated_at)?{updatedAt:f(n.updatedAt)||f(n.updated_at)}:{}}))}),e}function tq(t){if(!R(t))return;let e={};typeof t.enabled=="boolean"&&(e.enabled=t.enabled);let r=J(t.idleSeconds??t.idle_seconds);r!==void 0&&(e.idleSeconds=Ae(r,30,86400)),typeof t.screenLock=="boolean"?e.screenLock=t.screenLock:typeof t.screen_lock=="boolean"&&(e.screenLock=t.screen_lock),typeof t.userIdle=="boolean"?e.userIdle=t.userIdle:typeof t.user_idle=="boolean"&&(e.userIdle=t.user_idle);let n=Ka(t.phoneWifiTargets??t.phone_wifi_targets);n&&(e.phoneWifiTargets=Vt(n).slice(0,1));let o=Ka(t.phoneBluetoothTargets??t.phone_bluetooth_targets);return o&&(e.phoneBluetoothTargets=Vt(o).slice(0,1)),Object.keys(e).length?e:void 0}function rq(t){if(!R(t))return;let e=f(t.platformConversationId)||f(t.platform_conversation_id)||f(t.conversationId)||f(t.chatId)||f(t.channelId),r=f(t.gatewayConversationId)||f(t.gateway_conversation_id);if(!e&&!r)return;let n=De(t.type,["dm","group","channel","thread"],"dm"),o=f(t.threadId)||f(t.thread_id);return{...r?{gatewayConversationId:r}:{},...e?{platformConversationId:e}:{},...o?{threadId:o}:{},type:n}}function Wb(t){if(!Array.isArray(t))return;let e=t.map((r,n)=>{if(!R(r))return;let o=nq(r.transport??r.type),i=f(r.name)||f(o!=="stdio"?r.url:r.command)||`mcp-${n+1}`,s=f(r.protocolVersion)||"2024-11-05",A=Ae(J(r.startupTimeoutMs)??6e5,100,6e5),a=Ae(J(r.requestTimeoutMs)??3e4,100,6e5);if(o!=="stdio"){let l=f(r.url);return l?{...f(r.apiKey)?{apiKey:f(r.apiKey)}:{},...f(r.apiKeyEnv)?{apiKeyEnv:f(r.apiKeyEnv)}:{},headers:za(r.headers)??{},name:i,protocolVersion:s,requestTimeoutMs:a,startupTimeoutMs:A,transport:o,url:l}:void 0}let c=f(r.command);if(!c)return;let d=f(r.stdioMessageMode)==="newline-json"?"newline-json":"content-length";return{args:vr(r.args),command:c,...f(r.cwd)?{cwd:f(r.cwd)}:{},env:za(r.env)??{},name:i,protocolVersion:s,requestTimeoutMs:a,startupTimeoutMs:A,stdioMessageMode:d,transport:o}}).filter(r=>!!r);return e.length?e:void 0}function nq(t){let e=f(t)?.toLowerCase().replace(/_/g,"-").replace(/\s+/g,"-");return e==="sse"?"sse":e==="http"||e==="streamable-http"||e==="streamablehttp"||e==="streamble-http"||e==="websocket"?"streamable-http":"stdio"}function oq(t){if(!R(t))return;let e={},r=typeof t.captureNetwork=="boolean"?t.captureNetwork:typeof t.networkCaptureEnabled=="boolean"?t.networkCaptureEnabled:void 0;r!==void 0&&(e.captureNetwork=r);let n=typeof t.browserMode=="boolean"?t.browserMode:typeof t.builtInBrowser=="boolean"?t.builtInBrowser:typeof t.builtInBrowserMode=="boolean"?t.builtInBrowserMode:void 0;n!==void 0&&(e.browserMode=n),typeof t.enabled=="boolean"&&(e.enabled=t.enabled),typeof t.host=="string"&&t.host.trim()&&(e.host=t.host.trim());let o=xo(t.port);o&&(e.port=o),(t.mode==="gateway"||t.mode==="transparent")&&(e.mode=t.mode),typeof t.systemProxy=="boolean"?e.systemProxy=t.systemProxy:typeof t.systemProxyEnabled=="boolean"&&(e.systemProxy=t.systemProxyEnabled);let i=iq(t.upstream??t.upstreamProxy??t.outboundProxy);i&&(e.upstream=i);let s=sq(t.targets);return s&&(e.targets=s),e}function iq(t){let e=G.proxy.upstream;if(typeof t=="string"){let c=Tb(t);return c?{...e,mode:c}:void 0}if(!R(t))return;let r=Tb(t.mode??t.type),n=R(t.custom)?t.custom:t,o=f(n.server??n.host??n.hostname),i=xo(n.port),s=f(n.username??n.user),A=typeof n.password=="string"?n.password:typeof n.pass=="string"?n.pass:void 0,a=o!==void 0||i!==void 0||s!==void 0||A!==void 0;return{...e,custom:{...e.custom,...o!==void 0?{server:o}:{},...i!==void 0?{port:i}:{},...s!==void 0?{username:s}:{},...A!==void 0?{password:A}:{}},mode:r??(a?"custom":e.mode)}}function Tb(t){if(typeof t!="string")return;let e=t.trim().toLowerCase().replace(/[\s_-]+/g,"");if(["none","off","disabled","direct","noproxy"].includes(e))return"none";if(["system","systemproxy","os","osproxy","env","environment"].includes(e))return"system";if(["custom","manual","http","httpproxy"].includes(e))return"custom"}function sq(t){if(!Array.isArray(t))return;let e=t.map(r=>{if(typeof r=="string"&&r.trim())return{host:r.trim().toLowerCase()};if(!R(r))return;let n=f(r.host)?.toLowerCase();if(!n)return;let o=Array.isArray(r.paths)?r.paths.map(i=>f(i)).filter(i=>!!i):void 0;return{host:n,paths:o?.length?o:void 0}}).filter(r=>!!r);return e.length?e:void 0}function Aq(t){if(!Array.isArray(t))return;let e=t.map((r,n)=>{if(!R(r))return;let o=f(r.id)||f(r.key)||`plugin-${n+1}`,i=f(r.module)||f(r.path),s=Tq(r.apps),A=xq(R(r.proxy)?r.proxy.routes:void 0),a=Uq(r.coreGateway),c=r.surfaces??r.surface,d=Dq(r.permissions),l=Rq(c),u=r.permissions===void 0?hf(o):d,p=c===void 0?Cf(o):l;return{...s?{apps:s}:{},...r.config!==void 0?{config:r.config}:{},...a?{coreGateway:a}:{},enabled:typeof r.enabled=="boolean"?r.enabled:!0,id:o,...i?{module:i}:{},...u!==void 0?{permissions:u}:{},...A?{proxy:{routes:A}}:{},...p?{surfaces:p}:{}}}).filter(r=>!!r);return e.length?e:void 0}var aq=new Set([nt,ot,"cursor-proxy"]);function cq(t){let e=t??[],r=!1,n=e.some(i=>i.id===ot),o=[];for(let i of e){let s=dq(i),A=s.plugin;if(r=r||s.changed,A.id===ot){let c=pq(A);r=r||c.changed,o.push(c.plugin);continue}if(A.id!==nt){o.push(A);continue}let a=uq(A);if(r=r||a.changed,o.push(a.plugin),!n&&Eq(A)){let c=Cq(A);c&&(o.push(c),n=!0,r=!0)}}return{changed:r,plugins:o}}function dq(t){let e=Iq(t.id,t.module);return!e||e===t.module?{changed:!1,plugin:t}:{changed:!0,plugin:{...t,module:e}}}function uq(t){let e=!1,r={...t},n=vf(t.config);n.changed&&(e=!0,n.config===void 0?delete r.config:r.config=n.config);let o=$a(t.module),i=Kb(nt,t.module);i&&i!==t.module&&(r.module=i,e=!0);let s=!!t.apps?.some(A=>_f(A)||Jb(A.url));if(o||s){let A=fq(t.apps);A.changed&&(r.apps=A.apps,e=!0)}return{changed:e,plugin:r,plugins:[r]}}var lq=new Set(["appMode","autoAnswerQuestions","claudeAppAssetDir","claudeAppAssets","claudeAppIonDistDir","claudeAppPath","claudeShipAssetDir","claudeShipAssets","claudeShipIonDistDir","claudeShipLocalApp","designHtmlPath","htmlPath","localApp","localShell","onlineApp","savedHtmlPath","shipAssetDir","shipAssets","shipIonDistDir","shipLocalApp","useSavedHtml"]),gq=new Set(["assetsOrigin","designAssetsOrigin","designFrontendAssetsOrigin","designFrontendOrigin","designFrontendUrl","designWebUrl","frontendAssetsOrigin","frontendOrigin","frontendUrl","shipAssetsOrigin","shipFrontendAssetsOrigin","shipFrontendOrigin","shipFrontendUrl","shipWebUrl","staticAssetsOrigin","webUrl"]);function vf(t){if(!R(t))return{changed:!1,...t!==void 0?{config:t}:{}};let e={},r=!1;for(let[n,o]of Object.entries(t)){if(lq.has(n)||o===!1&&gq.has(n)){r=!0;continue}e[n]=o}return r?{changed:!0,...Object.keys(e).length>0?{config:e}:{}}:{changed:!1,config:t}}function fq(t){let e=Ha(nt)??[];if(!t?.length)return{apps:e,changed:e.length>0};let r=!1,n=t.filter(o=>{let i=_f(o);return r=r||i,!i}).map(o=>{if(!Jb(o.url))return o;let i=e.find(s=>s.id===(o.id||"claude-design"))??e[0];return i?(r=!0,{...o,url:i.url}):o});return!n.length&&e.length?{apps:e,changed:!0}:{apps:n,changed:r}}function pq(t){let e=!1,r={...t},n=vf(t.config);n.changed&&(e=!0,n.config===void 0?delete r.config:r.config=n.config);let o=hq(t.apps);return o.changed&&(e=!0,r.apps=o.apps),e?{changed:!0,plugin:r,plugins:[r]}:{changed:!1,plugin:t,plugins:[t]}}function hq(t){let e=Ha(ot)??[];return t?.length?{apps:t,changed:!1}:{apps:e,changed:e.length>0}}function Cq(t){let e=$a(t.module)?Kb(ot,t.module):Of(ot,t.module);if(!e)return;let r=vf(t.config);return{...r.config!==void 0?{config:r.config}:{},apps:Ha(ot),enabled:t.enabled,id:ot,module:e,permissions:hf(ot),surfaces:Cf(ot)}}function Eq(t){return $a(t.module)||!!t.apps?.some(_f)}function _f(t){return[t.id,t.name,t.url].some(e=>typeof e=="string"&&e.toLowerCase().includes("claude-ship"))}function Jb(t){try{let e=new URL(t,"https://claude.ai"),r=e.hostname.toLowerCase(),n=e.pathname.replace(/\/$/,"");return r==="claude.ai"?n==="/design"||n==="/discover/design":!1}catch{return!1}}function Kb(t,e){return $a(e)?Of(t,e)||e||"":e||""}function Iq(t,e){return zb(t,e)?Of(t,e)||e||"":e||""}function Of(t,e){let r=Qq(t);if(r)return r;for(let n of yq(e)){let o=Fe.default.join(n,"plugins",t,"index.cjs");if((0,Uo.existsSync)(o))return o}return""}function Qq(t){if(!Bq(t))return"";for(let e of mq(t))if((0,Uo.existsSync)(e))return e;return""}function Bq(t){return yb()&&(t===nt||t===ot)}function mq(t){let e=process.resourcesPath,r=e?[Fe.default.join(e,"app.asar.unpacked","dist","bundled-plugins",t,"index.cjs"),Fe.default.join(e,"app.asar","dist","bundled-plugins",t,"index.cjs"),Fe.default.join(e,"app","dist","bundled-plugins",t,"index.cjs")]:[];return Vt([...r,Fe.default.join(__dirname,"..","bundled-plugins",t,"index.cjs"),Fe.default.resolve(__dirname,"..","..","..","electron","bundled-plugins",t,"index.cjs"),Fe.default.resolve(process.cwd(),"packages","electron","dist","bundled-plugins",t,"index.cjs"),Fe.default.resolve(process.cwd(),"packages","electron","bundled-plugins",t,"index.cjs")])}function $a(t){return zb(nt,t)}function zb(t,e){if(!aq.has(t))return!1;let r=e?.replace(/\\/g,"/").toLowerCase()||"";return r.includes(`/marketplace/plugins/${t}/`)||r.includes(`/examples/plugins/${t}/`)||r.endsWith(`/examples/plugins/${t}-plugin.cjs`)||r.endsWith(`/examples/plugins/${t}/index.cjs`)}function yq(t){let e=[process.env.CCR_EXTENSIONS_DIR,wq(t),Fe.default.resolve(process.cwd(),"..","ccr-extensions"),Fe.default.resolve(process.cwd(),"ccr-extensions")];return Vt(e.filter(r=>!!r?.trim()))}function wq(t){if(!t)return"";let r=Fe.default.resolve(t).split(Fe.default.sep),n=r.lastIndexOf("claude-code-router");return n<=0?"":Fe.default.join(Fe.default.sep,...r.slice(1,n),"ccr-extensions")}function Rq(t){if(t===void 0)return;let e={},r=(n,o=!0)=>{let i=bq(n);return i?(e[i]=o,!0):!1};if(typeof t=="string"){if(Sf(t)){for(let n of Nn)e[n]=!0;return e}if(!r(t))return;Nn.forEach(n=>{e[n]??=!1})}else if(Array.isArray(t)){let n=!1;for(let o of t)if(typeof o=="string"&&Sf(o)){for(let i of Nn)e[i]=!0;n=!0}else n=r(o)||n;if(!n)return;Nn.forEach(o=>{e[o]??=!1})}else if(R(t))for(let[n,o]of Object.entries(t))if(Sf(n))for(let i of Nn)e[i]=o!==!1;else r(n,o!==!1);return Object.keys(e).length>0?e:void 0}function bq(t){if(typeof t!="string")return;let e=Sq(t.trim().toLowerCase().replace(/[\s_]+/g,"-"));return Nn.includes(e)?e:void 0}function Sq(t){switch(t){case"app":case"browser-app":case"browser-apps":case"ui":return"apps";case"gateway-route":case"route":case"routes":case"gateway-routes":case"proxy-route":case"proxy":case"proxy-routes":case"http-backend":case"http-backends":case"backend":case"backends":case"core-gateway":case"core-gateway-config":case"fusion-profile":case"fusion-profiles":case"virtual-model":case"virtual-models":case"virtual-model-profile":case"virtual-model-profiles":case"request":case"requests":return"gateway";case"core-provider-plugin":case"provider-plugin":case"provider-plugins":case"provider-account":case"provider-account-connector":case"provider-account-connectors":case"providers":return"provider";default:return t}}function Sf(t){let e=t.trim().toLowerCase();return e==="*"||e==="all"}function Dq(t){if(t===void 0)return;let e=[],r=new Set,n=o=>{let i=kq(o);!i||r.has(i)||(r.add(i),e.push(i))};if(typeof t=="string")n(t);else if(Array.isArray(t))t.forEach(n);else if(R(t))for(let[o,i]of Object.entries(t))i!==!1&&(Mq(o)?pf.forEach(n):n(o));return e}function kq(t){if(typeof t!="string")return;let e=t.trim().toLowerCase().replace(/[\s_]+/g,"-"),r=Nq(e);return P1.has(r)?r:void 0}function Nq(t){switch(t){case"code":case"execute-code":case"trusted":case"trusted-code":return"trusted-code";case"app":case"browser-app":case"browser-apps":return"apps";case"gateway-route":case"route":case"routes":return"gateway-routes";case"gateway-request-transform":case"gateway-request-transforms":case"request-transform":case"request-transforms":return"gateway-request-transforms";case"proxy":case"proxy-route":return"proxy-routes";case"backend":case"backends":case"http-backend":return"http-backends";case"provider-account":case"provider-account-connector":return"provider-account-connectors";case"core-gateway":return"core-gateway-config";case"provider-plugin":case"provider-plugins":case"core-provider-plugin":return"core-provider-plugins";case"fusion-profile":case"fusion-profiles":case"virtual-model":case"virtual-models":case"virtual-model-profile":return"virtual-model-profiles";case"sqlite":case"data-store":case"store":return"sqlite-store";case"launcher":case"mac-launcher":return"system-launcher";default:return t}}function Mq(t){let e=t.trim().toLowerCase();return e==="*"||e==="all"}function Tq(t){if(!Array.isArray(t))return;let e=t.map((r,n)=>{if(!R(r))return;let o=f(r.name)||f(r.title),i=f(r.url)||f(r.href)||f(r.target);if(!(!o||!i))return{...f(r.description)?{description:f(r.description)}:{},...f(r.icon)?{icon:f(r.icon)}:{},id:f(r.id)||`app-${n+1}`,name:o,url:i}}).filter(r=>!!r);return e.length?e:void 0}function xq(t){if(!Array.isArray(t))return;let e=t.map((r,n)=>{if(!R(r))return;let o=f(r.host)?.toLowerCase(),i=f(r.upstream)||f(r.target)||f(r.backend);if(!o||!i)return;let s=Array.isArray(r.paths)?r.paths.map(d=>f(d)).filter(d=>!!d):void 0,A=za(r.headers),a=typeof r.stripPathPrefix=="boolean"||typeof r.stripPathPrefix=="string"?r.stripPathPrefix:void 0,c=f(r.rewritePathPrefix);return{...A?{headers:A}:{},host:o,id:f(r.id)||`route-${n+1}`,...s?.length?{paths:s}:{},...typeof r.preserveHost=="boolean"?{preserveHost:r.preserveHost}:{},...c?{rewritePathPrefix:c}:{},...a!==void 0?{stripPathPrefix:a}:{},upstream:i}}).filter(r=>!!r);return e.length?e:void 0}function Uq(t){if(!R(t))return;let e=Array.isArray(t.providerPlugins)?t.providerPlugins:void 0,r=Array.isArray(t.virtualModelProfiles)?t.virtualModelProfiles:void 0,n=R(t.config)?{...t.config}:void 0;if(!(!e&&!r&&!n))return{...n?{config:n}:{},...e?{providerPlugins:e}:{},...r?{virtualModelProfiles:r}:{}}}function Fq(t){if(!R(t))return;let e={};typeof t.enabled=="boolean"&&(e.enabled=t.enabled);let r=R(t.claudeCode)?t.claudeCode:R(t.claude)?t.claude:void 0;if(r){e.claudeCode={},typeof r.enabled=="boolean"&&(e.claudeCode.enabled=r.enabled);let i=Mf(r);i!==void 0&&(e.claudeCode.managedCompact=i);let s=f(r.settingsFile)||f(r.configFile)||f(r.path);s&&(e.claudeCode.settingsFile=s);let A=f(r.model);A!==void 0&&(e.claudeCode.model=A);let a=f(r.fableModel)||f(r.defaultFableModel);a!==void 0&&(e.claudeCode.fableModel=a);let c=f(r.opusModel)||f(r.defaultOpusModel);c!==void 0&&(e.claudeCode.opusModel=c);let d=f(r.sonnetModel)||f(r.defaultSonnetModel);d!==void 0&&(e.claudeCode.sonnetModel=d);let l=f(r.haikuModel)||f(r.defaultHaikuModel)||f(r.smallFastModel)||f(r.smallModel);l!==void 0&&(e.claudeCode.haikuModel=l);let u=f(r.smallFastModel)||f(r.smallModel);u!==void 0&&(e.claudeCode.smallFastModel=u)}let n=R(t.codex)?t.codex:void 0;if(n){e.codex={},typeof n.enabled=="boolean"&&(e.codex.enabled=n.enabled);let i=Mf(n);i!==void 0&&(e.codex.managedCompact=i),typeof n.cliMiddleware=="boolean"&&(e.codex.cliMiddleware=n.cliMiddleware);let s=f(n.codexCliPath)||f(n.cliPath)||f(n.codexPath);s&&(e.codex.codexCliPath=s);let A=f(n.codexHome)||f(n.home);A&&(e.codex.codexHome=A);let a=$b(f(n.configFormat)||f(n.profileConfigFormat));a&&(e.codex.configFormat=a);let c=Zb(f(n.remoteFrontendMode)||f(n.frontendMode)||f(n.coreMode));c&&(e.codex.remoteFrontendMode=c);let d=f(n.configFile)||f(n.settingsFile)||f(n.path);d&&(e.codex.configFile=d);let l=f(n.model);l!==void 0&&(e.codex.model=l);let u=f(n.providerId)||f(n.provider);u&&(e.codex.providerId=u);let p=f(n.providerName)||f(n.name);p&&(e.codex.providerName=p);let h=typeof n.showAllSessions=="boolean"?n.showAllSessions:typeof n.show_all_sessions=="boolean"?n.show_all_sessions:void 0;h!==void 0&&(e.codex.showAllSessions=h)}let o=Pq(t.profiles);if(o)e.profiles=o;else{let i=[];e.claudeCode&&i.push(Hq({...G.profile.claudeCode,...e.claudeCode})),e.codex&&i.push(Yq({...G.profile.codex,...e.codex})),i.length&&(e.profiles=i)}return e}function Pq(t){if(Array.isArray(t))return t.map((e,r)=>{if(!R(e))return;let n=vq(e.agent);if(!n)return;let o=typeof e.enabled=="boolean"?e.enabled:!0,i=f(e.id)||`profile-${r+1}`,s=f(e.name)||_q(n),A=f(e.model)??"",a=vr(e.availableModels??e.available_models??e.models),c=a.length>0?Vt([A,...a].filter(Boolean)):void 0,d=za(e.env)??{},l=Vq(f(e.surface)||f(e.entry)||f(e.frontend))||"auto",u=n==="workbuddy"||n==="zcode"||n===nt?"app":n==="pi"||n==="kilo"?"cli":l,p=u!=="cli"?f(e.botConfigId)||f(e.bot_config_id)||f(e.savedBotConfigId)||f(e.saved_bot_config_id):"",h=Lf(e.botGateway??e.bot_gateway??e.bot),I=u!=="cli"&&h?Uf(h):void 0,m=Mf(e),E=Lq(e.routing??e.route,n);if(n==="claude-code"){let v=xb(e,n);return{agent:n,...v?{appPath:v}:{},...p?{botConfigId:p}:{},...I?{botGateway:I}:{},enabled:o,env:jb(d),fableModel:f(e.fableModel)||f(e.defaultFableModel)||"",haikuModel:f(e.haikuModel)||f(e.defaultHaikuModel)||f(e.smallFastModel)||f(e.smallModel)||"",id:i,...m!==void 0?{managedCompact:m}:{},...c?{availableModels:c}:{},model:A,name:s,opusModel:f(e.opusModel)||f(e.defaultOpusModel)||"",...E?{routing:E}:{},scope:Fb(f(e.scope)||f(e.applyScope)||f(e.effectScope))||"global",settingsFile:f(e.settingsFile)||f(e.configFile)||"~/.claude/settings.json",sonnetModel:f(e.sonnetModel)||f(e.defaultSonnetModel)||"",smallFastModel:f(e.smallFastModel)||f(e.smallModel)||"",surface:u}}if(n==="grok"||n==="kimi"||n==="pi")return{agent:n,...c?{availableModels:c}:{},enabled:o,env:Ub(d),id:i,model:A,name:s,...E?{routing:E}:{},scope:"ccr",surface:"cli"};if(n===nt)return{agent:n,enabled:o,env:{},id:i,model:"",name:s,...E?{routing:E}:{},scope:"ccr",surface:"app"};let Q=xb(e,n),y=n==="zcode"||n==="opencode"||n==="kilo"||n==="workbuddy"?!1:typeof e.showAllSessions=="boolean"?e.showAllSessions:typeof e.show_all_sessions=="boolean"?e.show_all_sessions:void 0;return{agent:n,...Q?{appPath:Q}:{},...p?{botConfigId:p}:{},...I?{botGateway:I}:{},cliMiddleware:!0,codexCliPath:f(e.codexCliPath)||f(e.cliPath)||f(e.codexPath)||"",codexHome:f(e.codexHome)||f(e.home)||"",configFormat:$b(f(e.configFormat)||f(e.profileConfigFormat))||"separate_profile_files",configFile:Gq(n,f(e.configFile)||f(e.settingsFile)),enabled:o,env:Ub(d),id:i,...m!==void 0?{managedCompact:m}:{},...c?{availableModels:c}:{},model:A,name:s,providerId:f(e.providerId)||f(e.provider)||"claude-code-router",providerName:f(e.providerName)||"Claude Code Router",remoteFrontendMode:Zb(f(e.remoteFrontendMode)||f(e.frontendMode)||f(e.coreMode))||"app",...E?{routing:E}:{},scope:Fb(f(e.scope)||f(e.applyScope)||f(e.effectScope))||"global",...y!==void 0?{showAllSessions:y}:{},surface:u}}).filter(e=>!!e)}function Lq(t,e){if(t===!1)return{enabled:!1,enhancedRoute:!0,rules:[]};if(t===!0)return{enabled:!0,enhancedRoute:!0,rules:[]};if(!R(t))return;let r=Nf(t.enhancedRoute??t.useEnhancedRoute??t.builtInRoute??t.builtinRoute??t.useBuiltInRoute??t.use_builtin_route);return{enabled:Nf(t.enabled)??!0,enhancedRoute:r??!0,rules:qb(t.rules)??[]}}function Nf(t){return typeof t=="boolean"?t:void 0}function xb(t,e){return f(t.appPath)||f(t.app_path)||f(t.appExecutablePath)||f(t.app_executable_path)||(e==="claude-code"?f(t.claudeAppPath)||f(t.claude_app_path):e==="codex"?f(t.chatgptAppPath)||f(t.chatgpt_app_path)||f(t.codexAppPath)||f(t.codex_app_path):e==="opencode"?f(t.openCodeAppPath)||f(t.opencodeAppPath)||f(t.opencode_app_path):e==="workbuddy"?f(t.workbuddyAppPath)||f(t.workbuddy_app_path)||f(t.workBuddyAppPath)||f(t.work_buddy_app_path):f(t.zcodeAppPath)||f(t.zcode_app_path))}function vq(t){if(typeof t!="string")return;let e=t.trim().toLowerCase();if(e==="claude"||e==="claude-code"||e==="claude code")return"claude-code";if(e==="codex")return"codex";if(e==="grok"||e==="grok-cli"||e==="grok cli")return"grok";if(e==="kimi"||e==="kimi-cli"||e==="kimi cli"||e==="kimi-code"||e==="kimi code")return"kimi";if(e==="opencode"||e==="open-code"||e==="open code")return"opencode";if(e==="kilo"||e==="kilo-cli"||e==="kilo cli"||e==="kilocode"||e==="kilo-code"||e==="kilo code")return"kilo";if(e==="pi"||e==="pi-agent"||e==="pi agent"||e==="pi-coding-agent"||e==="pi coding agent")return"pi";if(e==="workbuddy"||e==="work-buddy"||e==="work buddy"||e==="workbuddy-agent"||e==="workbuddy agent")return"workbuddy";if(e==="zcode"||e==="z-code"||e==="z code")return"zcode";if(e==="claude-design"||e==="claude design"||e==="design")return nt}function Mf(t){let e=t.managedCompact??t.managed_compact??t.ccrManagedCompact??t.ccr_managed_compact??t.contextArchiveCompact??t.context_archive_compact;return typeof e=="boolean"?e:void 0}function _q(t){return t==="claude-code"?"Claude Code":t==="zcode"?"ZCode":t==="grok"?"Grok CLI":t==="kimi"?"Kimi CLI":t==="opencode"?"OpenCode":t==="kilo"?"Kilo CLI":t==="pi"?"Pi":t==="workbuddy"?"Workbuddy":t===nt?"Claude Design":"Codex"}function Oq(t){return t==="zcode"?"~/.zcode/cli/config.json":t==="opencode"?"~/.config/opencode/opencode.jsonc":t==="kilo"?"~/.config/kilo/kilo.jsonc":t==="workbuddy"?"~/.workbuddy/config.toml":t==="pi"?"~/.pi/agent":t===nt?"~/.claude-code-router/claude-design":"~/.codex/config.toml"}function Gq(t,e){let r=e?.trim();return!r||t==="zcode"&&r==="~/.zcode/config.toml"?Oq(t):r}function Hq(t){return{agent:"claude-code",enabled:t.enabled,env:jb(),fableModel:t.fableModel,haikuModel:t.haikuModel||t.smallFastModel,id:"default-claude-code",managedCompact:t.managedCompact,model:t.model,name:"Claude Code",opusModel:t.opusModel,scope:"global",settingsFile:t.settingsFile,sonnetModel:t.sonnetModel,smallFastModel:t.smallFastModel,surface:"auto"}}function jb(t={}){return{...Ya,...t}}function Ub(t){let{[Ef]:e,...r}=t;return r}function Yq(t){return{agent:"codex",cliMiddleware:!0,codexCliPath:t.codexCliPath,codexHome:t.codexHome,configFormat:t.configFormat,configFile:t.configFile,enabled:t.enabled,env:{},id:"default-codex",managedCompact:t.managedCompact,model:t.model,name:"Codex",providerId:t.providerId,providerName:t.providerName,remoteFrontendMode:t.remoteFrontendMode,scope:"global",showAllSessions:t.showAllSessions,surface:"auto"}}function Fb(t){if(!t)return;let e=t.trim().toLowerCase().replace(/_/g,"-").replace(/\s+/g,"-");if(e==="ccr"||e==="managed"||e==="local"||e==="ccr-only"||e==="only-ccr")return"ccr";if(e==="global"||e==="system"||e==="system-default"||e==="default")return"global";if(e==="custom"||e==="custom-path"||e==="custom-config")return"custom"}function Vq(t){if(!t)return;let e=t.trim().toLowerCase().replace(/_/g,"-").replace(/\s+/g,"-");if(e==="auto"||e==="automatic")return"auto";if(e==="cli"||e==="command-line")return"cli";if(e==="app"||e==="desktop"||e==="desktop-app")return"app"}function $b(t){if(!t)return;let e=t.trim().toLowerCase().replace(/-/g,"_").replace(/\s+/g,"_");if(e==="legacy"||e==="profiles"||e==="profile_table"||e==="profiles_table"||e==="separate"||e==="separate_profile_files"||e==="profile_files"||e==="profile_file"||e==="new")return"separate_profile_files"}function Zb(t){if(!t)return;let e=t.trim().toLowerCase().replace(/_/g,"-").replace(/\s+/g,"-");if(e==="app"||e==="codex-app")return"app";if(e==="cli"||e==="codex-cli")return"cli";if(e==="claude-code"||e==="claude")return"claude-code"}function za(t){if(!R(t))return;let e={};for(let[r,n]of Object.entries(t)){let o=r.trim(),i=f(n);o&&i&&(e[o]=i)}return Object.keys(e).length?e:void 0}function gs(t){if(R(t))return{...t}}function qq(t){if(!Array.isArray(t))return;let e=t.map((r,n)=>Wq(r,n)).filter(r=>!!r);return Gf(e)}function Wq(t,e){if(typeof t=="string"){let A=f(t);return A?eS(A,e):void 0}if(!R(t))return;let r=f(t.key)||f(t.value)||f(t.APIKEY);if(!r)return;let n=f(t.createdAt)||new Date(0).toISOString(),o=f(t.expiresAt),i=Xb(t.limits),s=f(t.name);return{createdAt:n,...o?{expiresAt:o}:{},id:f(t.id)||`key-${e+1}`,key:r,...i?{limits:i}:{},...s?{name:s}:{}}}function Xb(t){if(!R(t))return;let e={};for(let r of["ipd","iph","ipm","maxRequests","maxTokens","quotaWindowMs","rpd","rph","rpm","tpd","tph","tpm","windowMs"]){let n=J(t[r]);n!==void 0&&n>0&&(e[r]=n)}return Object.keys(e).length?e:void 0}function Jq(t,e){return Gf([...t??[],...e?[eS(e,t?.length??0)]:[]])}function Pb(t){return t.length?t:[Kq()]}function Kq(){return{createdAt:new Date().toISOString(),id:F1,key:`sk-ccr-${(0,ja.randomBytes)(32).toString("base64url")}`,name:"Local Gateway"}}function eS(t,e){return{createdAt:new Date(0).toISOString(),id:`key-${e+1}`,key:t.trim(),name:`API Key ${e+1}`}}function Gf(t){let e=new Set,r=[];for(let n of t){let o=n?.key.trim();!n||!o||e.has(o)||(e.add(o),r.push({createdAt:n.createdAt,...n.expiresAt?{expiresAt:n.expiresAt}:{},id:n.id,key:o,...n.limits?{limits:n.limits}:{},...n.name?{name:n.name}:{}}))}return r}function zq(t){let e=t;if(typeof e.APIKEY=="string"&&e.APIKEY.trim())return!0;let r=e.APIKEYS??e.apiKeys;return Array.isArray(r)?r.some(n=>typeof n=="string"?!!n.trim():R(n)?!!(f(n.key)||f(n.value)||f(n.APIKEY)):!1):!1}function Df(t){return t.key==="sk-123"&&t.createdAt===new Date(0).toISOString()&&(t.id==="key-1"||t.id==="legacy")&&(!t.name||t.name==="API Key 1")}function jq(t,e){return e==="legacy-json"?Tf(t):t}function Tf(t){if(typeof t=="string")return t.replace(/\$\{([^}]+)\}|\$([A-Z_][A-Z0-9_]*)/g,(e,r,n)=>{let o=r||n;return process.env[o]??e});if(Array.isArray(t))return t.map(Tf);if(R(t)){let e={};for(let[r,n]of Object.entries(t))e[r]=Tf(n);return e}return t}function $q(t){if(t)try{return xo(new URL(t).port)}catch{return}}function R(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Zq(t){return t>=65535?t-1:t+1}function Xq(t){return t==="0.0.0.0"?"127.0.0.1":t}function J(t){if(typeof t=="number"&&Number.isFinite(t))return t;if(typeof t!="string"||!t.trim())return;let e=Number(t);return Number.isFinite(e)?e:void 0}function bt(t){let e=J(t);return e!==void 0&&e>=0?e:void 0}function eW(t){let e=J(t);return e!==void 0&&e>0&&e<=100?e:void 0}function Mn(t){let e=J(t);return e!==void 0&&e>0?Math.trunc(e):void 0}function Ae(t,e,r){return Math.min(r,Math.max(e,Math.trunc(t)))}function xo(t){let e=J(t);if(!(!e||e<1||e>65535))return Math.trunc(e)}function Vt(t){let e=new Set,r=[];for(let n of t){let o=n.trim();!o||e.has(o)||(e.add(o),r.push(o))}return r}function f(t){return typeof t=="string"&&t.trim()?t.trim():void 0}function fs(t){return t instanceof Error?t.message:String(t)}var gS=require("node:child_process"),rW=require("node:buffer"),Jt=require("node:fs"),qf=le(require("node:path"));var tW=require("node:child_process"),rS=require("node:fs"),Fo=le(require("node:path"));function qt(t){if(process.platform!=="win32"||Fo.default.isAbsolute(t))return t;let e=[process.env.SystemRoot,process.env.windir].map(o=>o?.trim()).filter(o=>!!o),r=t.toLowerCase();return e.flatMap(o=>r==="powershell.exe"?[Fo.default.join(o,"System32","WindowsPowerShell","v1.0","powershell.exe"),Fo.default.join(o,"Sysnative","WindowsPowerShell","v1.0","powershell.exe")]:[Fo.default.join(o,"System32",t),Fo.default.join(o,"Sysnative",t)]).find(o=>(0,rS.existsSync)(o))??t}var nW="/usr/sbin/networksetup",nc="HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings",Is=qf.default.join(Yt,"system-proxy-snapshot.json"),Yf=class{snapshot;status={state:process.platform==="darwin"||process.platform==="win32"?"inactive":"unsupported"};upstreamProxy;async enable(e){if(this.upstreamProxy=void 0,process.platform!=="darwin"&&process.platform!=="win32")return this.status={lastError:"Automatic system proxy switching is only implemented for macOS and Windows.",state:"unsupported"},this.current();try{let r=vo(e);await this.restorePersistedSnapshotIfCurrentProxyIsManaged();let n=process.platform==="win32"?await ES(r):await CS(r),o=Vf(n,r);return this.snapshot=n,this.upstreamProxy=o,mW(n),await aW(n,r),this.status={state:"active",upstream:nS(o)},this.current()}catch(r){let n=await this.restoreSnapshotAfterEnableFailure();return this.status={lastError:[xn(r),n].filter(Boolean).join(" "),state:"error"},this.current()}}async restore(){if(this.upstreamProxy=void 0,process.platform!=="darwin"&&process.platform!=="win32")return this.snapshot=void 0,this.status={lastError:"Automatic system proxy switching is only implemented for macOS and Windows.",state:"unsupported"},this.getStatus();let e=this.snapshot,r=e??dS();if(this.snapshot=void 0,!r)return this.status={state:"inactive"},this.getStatus();if(!e&&r.platform!==process.platform)return ps(),this.status={state:"inactive"},this.getStatus();try{let n=!!e||await oS(r);return n&&await Hf(r),ps(),this.status={state:n?"restored":"inactive",upstream:nS(Vf(r,vo(r.managedEndpoint)))},this.getStatus()}catch(n){return this.status={lastError:xn(n),state:"error"},this.getStatus()}}getStatus(){return{...this.status}}getManagedEndpointUrl(){return this.status.state==="active"?this.snapshot?.managedEndpoint:void 0}getUpstreamProxy(){if(this.upstreamProxy)return{http:this.upstreamProxy.http?{...this.upstreamProxy.http}:void 0,https:this.upstreamProxy.https?{...this.upstreamProxy.https}:void 0}}current(){return{status:this.getStatus(),upstreamProxy:this.getUpstreamProxy()}}async restorePersistedSnapshotIfCurrentProxyIsManaged(){let e=dS();if(e){if(e.platform!==process.platform){ps();return}await oS(e)&&await Hf(e),ps()}}async restoreSnapshotAfterEnableFailure(){let e=this.snapshot;if(this.snapshot=void 0,this.upstreamProxy=void 0,!!e)try{await Hf(e),ps();return}catch(r){return`Failed to restore the previous system proxy: ${xn(r)}`}}},oc=new Yf;function nS(t){if(!t?.http&&!t?.https)return;if(t.http&&Qs(t.http,t.https))return`HTTP/HTTPS ${Tn(t.http)}`;let e=[];return t.http&&e.push(`HTTP ${Tn(t.http)}`),t.https&&!Qs(t.http,t.https)&&e.push(`HTTPS ${Tn(t.https)}`),e.join(", ")}function fS(t){if(t?.mode!=="custom")return;let e=oW(t.custom.server),r=t.custom.port;if(!e||!Number.isInteger(r)||r<1||r>65535)return;let n={host:e,password:t.custom.password,port:r,protocol:"http",username:t.custom.username.trim()};return{http:n,https:n}}function pS(t){let e=t.username??"",r=t.password??"",n=e||r?`${encodeURIComponent(e)}:${encodeURIComponent(r)}@`:"";return`${t.protocol}://${n}${Wf(t.host)}:${t.port}`}async function hS(t){if(process.platform!=="darwin"&&process.platform!=="win32")return;let e=vo(t),r=process.platform==="win32"?await ES(e):await CS(e);return Vf(r,e)}function vo(t){let e=new URL(t),r=Number(e.port||(e.protocol==="https:"?443:80));if(!e.hostname||!Number.isInteger(r)||r<1||r>65535)throw new Error(`Invalid proxy endpoint: ${t}`);return{host:e.hostname,port:r,url:`http://${Wf(e.hostname)}:${r}`}}function oW(t){let e=t.trim();if(!e)return"";try{return new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`http://${e}`).hostname}catch{return e.replace(/^[a-z][a-z0-9+.-]*:\/\//i,"").replace(/\/.*$/,"").replace(/^\[(.*)]$/,"$1")}}async function CS(t){let e=await iW(),r=[];for(let n of e)n.disabled||r.push({name:n.name,secureWeb:await Cs("-getsecurewebproxy",n.name),socks:await Cs("-getsocksfirewallproxy",n.name),web:await Cs("-getwebproxy",n.name)});return{createdAt:new Date().toISOString(),managedEndpoint:t.url,platform:"darwin",services:r,version:1}}async function ES(t){return{createdAt:new Date().toISOString(),managedEndpoint:t.url,platform:"win32",settings:await IS(),version:1}}async function iW(){return(await rc(["-listallnetworkservices"])).split(/\r?\n/).map(e=>e.trim()).filter(e=>e&&!e.toLowerCase().startsWith("an asterisk")).map(e=>({disabled:e.startsWith("*"),name:e.startsWith("*")?e.slice(1).trim():e})).filter(e=>e.name.length>0)}async function Cs(t,e){let r=await rc([t,e]),n=Za(r,"Enabled").toLowerCase(),o=Za(r,"Server"),i=Number(Za(r,"Port")),s=Za(r,"Authenticated Proxy Enabled").toLowerCase();return{authenticated:s==="1"||s==="yes"||s==="true",enabled:n==="yes"||n==="1"||n==="true",port:Number.isInteger(i)&&i>0?i:0,server:o}}async function sW(t,e){for(let r of t.services)await Lo("-setwebproxy","-setwebproxystate",r.name,{authenticated:!1,enabled:!0,port:e.port,server:e.host}),await Lo("-setsecurewebproxy","-setsecurewebproxystate",r.name,{authenticated:!1,enabled:!0,port:e.port,server:e.host}),r.socks?.enabled&&await Lo("-setsocksfirewallproxy","-setsocksfirewallproxystate",r.name,{...r.socks,enabled:!1})}async function AW(t){let e=vo(t.managedEndpoint);for(let r of t.services)await Lo("-setwebproxy","-setwebproxystate",r.name,cS(r.web,e)),await Lo("-setsecurewebproxy","-setsecurewebproxystate",r.name,cS(r.secureWeb,e)),r.socks&&await Lo("-setsocksfirewallproxy","-setsocksfirewallproxystate",r.name,r.socks)}async function aW(t,e){if(t.platform==="win32"){await cW(t,e);return}await sW(t,e)}async function Hf(t){if(t.platform==="win32"){await dW(t);return}await AW(t)}async function Lo(t,e,r,n){n.server&&n.port>0&&await rc([t,r,n.server,String(n.port),n.authenticated?"on":"off","",""]),await rc([e,r,n.enabled?"on":"off"])}async function IS(){let t=await hs("AutoConfigURL"),e=await hs("AutoDetect"),r=await hs("ProxyEnable"),n=await hs("ProxyServer"),o=await hs("ProxyOverride"),i=await hW();return{autoConfigUrl:t?.value,autoDetect:e?uS(e.value):void 0,hadAutoConfigUrl:!!t,hadAutoDetect:!!e,hadProxyEnable:!!r,hadProxyOverride:!!o,hadProxyServer:!!n,proxyEnable:r?uS(r.value):void 0,proxyOverride:o?.value,proxyServer:n?.value,winHttp:i}}async function cW(t,e){let r=`http=${Tn(e)};https=${Tn(e)}`;await Po("AutoConfigURL"),await tc("AutoDetect",0),await tc("ProxyEnable",1),await Es("ProxyServer",r),await Es("ProxyOverride","<local>"),t.settings.winHttp&&await EW(e).catch(n=>{console.warn(`[proxy] Failed to set Windows WinHTTP proxy: ${xn(n)}`)}),await yS()}async function dW(t){let e=t.settings;e.hadProxyEnable&&e.proxyEnable!==void 0?await tc("ProxyEnable",e.proxyEnable):await Po("ProxyEnable"),e.hadProxyServer&&e.proxyServer!==void 0?await Es("ProxyServer",e.proxyServer):await Po("ProxyServer"),e.hadProxyOverride&&e.proxyOverride!==void 0?await Es("ProxyOverride",e.proxyOverride):await Po("ProxyOverride"),e.hadAutoConfigUrl&&e.autoConfigUrl!==void 0?await Es("AutoConfigURL",e.autoConfigUrl):await Po("AutoConfigURL"),e.hadAutoDetect&&e.autoDetect!==void 0?await tc("AutoDetect",e.autoDetect):await Po("AutoDetect"),await IW(e.winHttp).catch(r=>{console.warn(`[proxy] Failed to restore Windows WinHTTP proxy: ${xn(r)}`)}),await yS()}function Vf(t,e){return t.platform==="win32"?lW(t,e):uW(t,e)}function uW(t,e){let r={};for(let n of t.services)if(!r.http&&aS(n.web,e)&&(r.http={host:n.web.server,port:n.web.port,protocol:"http"}),!r.https&&aS(n.secureWeb,e)&&(r.https={host:n.secureWeb.server,port:n.secureWeb.port,protocol:"http"}),r.http&&r.https)break;return!r.https&&r.http&&(r.https=r.http),!r.http&&r.https&&(r.http=r.https),r.http||r.https?r:void 0}function lW(t,e){if(t.settings.proxyEnable===1&&t.settings.proxyServer){let r=QS(t.settings.proxyServer,e);if(r)return r}return QW(t.settings.winHttp,e)}async function oS(t){return t.platform==="win32"?fW(t):gW(t)}async function gW(t){let e=vo(t.managedEndpoint);for(let r of t.services){let n=await Cs("-getwebproxy",r.name).catch(()=>{});if(n&&Xa(n,e))return!0;let o=await Cs("-getsecurewebproxy",r.name).catch(()=>{});if(o&&Xa(o,e))return!0}return!1}async function fW(t){let e=vo(t.managedEndpoint),r=await IS();return r.proxyEnable===1&&r.proxyServer&&BS(r.proxyServer,e)?!0:BW(r.winHttp,e)}function QS(t,e){let r=mS(t),n={},o=r.http??r.default,i=r.https??r.default??o;return o&&!Qs(o,e)&&(n.http=o),i&&!Qs(i,e)&&(n.https=i),!n.https&&n.http&&(n.https=n.http),!n.http&&n.https&&(n.http=n.https),n.http||n.https?n:void 0}function BS(t,e){let r=mS(t);return[r.default,r.http,r.https].some(n=>Qs(n,e))}function mS(t){let e=t.trim();if(!e)return{};if(!e.includes("="))return{default:iS(e,"http")};let r={};for(let n of e.split(";")){let[o,...i]=n.split("="),s=o.trim().toLowerCase(),A=i.join("=").trim(),a=iS(A,"http");a&&(s==="http"?r.http=a:s==="https"&&(r.https=a))}return r}function iS(t,e){let r=t.trim();if(!r||/^socks(?:4|5)?:\/\//i.test(r))return;let n=/^https?:\/\//i.test(r)?"http":void 0;r=r.replace(/^[a-z][a-z0-9+.-]*:\/\//i,"");let o=pW(r);if(!o?.hostname)return;let i=Number(o.port||80);if(!(!Number.isInteger(i)||i<1||i>65535))return{host:o.hostname,port:i,protocol:n??e}}function pW(t){try{return new URL(`http://${t}`)}catch{try{return new URL(`http://${t.replace(/^\[?([^\]]+)\]?:(\d+)$/,"[$1]:$2")}`)}catch{return}}}async function hW(){try{return CW(await Wt(qt("netsh.exe"),["winhttp","show","proxy"]))}catch(t){console.warn(`[proxy] Failed to read Windows WinHTTP proxy: ${xn(t)}`);return}}function CW(t){let e=AS(sS(t,"Proxy Server")),r=AS(sS(t,"Bypass List")),n=/Direct access\s*\(no proxy server\)/i.test(t);if(!n&&!e)throw new Error("Could not parse Windows WinHTTP proxy settings.");return{bypassList:r,direct:n,proxyServer:e,raw:t}}function sS(t,e){return(e==="Proxy Server"?/^\s*Proxy Server(?:\(s\))?\s*:\s*(.+?)\s*$/im:/^\s*Bypass List\s*:\s*(.+?)\s*$/im).exec(t)?.[1]?.trim()}function AS(t){if(!t)return;let e=t.trim();return!e||/^\(none\)$/i.test(e)?void 0:e}async function EW(t){let e=`http=${Tn(t)};https=${Tn(t)}`;await Wt(qt("netsh.exe"),["winhttp","set","proxy",`proxy-server=${e}`,"bypass-list=<local>"])}async function IW(t){if(t){if(t.direct||!t.proxyServer){await Wt(qt("netsh.exe"),["winhttp","reset","proxy"]);return}await Wt(qt("netsh.exe"),["winhttp","set","proxy",`proxy-server=${t.proxyServer}`,...t.bypassList?[`bypass-list=${t.bypassList}`]:[]])}}function QW(t,e){if(!(!t||t.direct||!t.proxyServer))return QS(t.proxyServer,e)}function BW(t,e){return!!(t&&!t.direct&&t.proxyServer&&BS(t.proxyServer,e))}function aS(t,e){return t.enabled&&t.server.length>0&&t.port>0&&!Xa(t,e)}function cS(t,e){return Xa(t,e)?{...t,enabled:!1}:t}function Xa(t,e){return t.enabled&&ec(t.server)===ec(e.host)&&t.port===e.port}function ec(t){let e=t.trim().toLowerCase();return e==="::1"||e==="[::1]"||e==="localhost"?"127.0.0.1":e}function Za(t,e){return new RegExp(`^${bW(e)}:\\s*(.*)$`,"im").exec(t)?.[1]?.trim()??""}function mW(t){(0,Jt.mkdirSync)(qf.default.dirname(Is),{recursive:!0}),(0,Jt.writeFileSync)(Is,`${JSON.stringify(t,null,2)}
277
+ `,"utf8")}function dS(){if((0,Jt.existsSync)(Is))try{let t=JSON.parse((0,Jt.readFileSync)(Is,"utf8"));if(yW(t))return t}catch{return}}function ps(){(0,Jt.rmSync)(Is,{force:!0})}function yW(t){return!lS(t)||t.version!==1||typeof t.managedEndpoint!="string"?!1:t.platform==="darwin"?Array.isArray(t.services):t.platform==="win32"?lS(t.settings):!1}function Qs(t,e){return!!(t&&e&&ec(t.host)===ec(e.host)&&t.port===e.port&&(!("protocol"in e)||t.protocol===e.protocol))}function Tn(t){let e=`${Wf(t.host)}:${t.port}`;return"protocol"in t?`${t.protocol}://${e}`:e}function Wf(t){return t.includes(":")&&!t.startsWith("[")?`[${t}]`:t}async function hs(t){try{let e=await Wt(qt("reg.exe"),["query",nc,"/v",t]);return wW(e,t)}catch{return}}function wW(t,e){for(let r of t.split(/\r?\n/)){let n=/^\s*(\S+)\s+(REG_\S+)\s+(.+?)\s*$/.exec(r);if(n?.[1].toLowerCase()===e.toLowerCase())return{type:n[2],value:n[3]}}}function uS(t){let e=t.trim().toLowerCase(),r=e.startsWith("0x")?Number.parseInt(e.slice(2),16):Number.parseInt(e,10);return Number.isFinite(r)?r:void 0}async function tc(t,e){await Wt(qt("reg.exe"),["add",nc,"/v",t,"/t","REG_DWORD","/d",String(e),"/f"])}async function Es(t,e){await Wt(qt("reg.exe"),["add",nc,"/v",t,"/t","REG_SZ","/d",e,"/f"])}async function Po(t){await Wt(qt("reg.exe"),["delete",nc,"/v",t,"/f"]).catch(()=>{})}async function yS(){let t=[`$signature = '[DllImport("wininet.dll", SetLastError=true)] public static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength);';`,"Add-Type -MemberDefinition $signature -Namespace WinInet -Name NativeMethods;","[WinInet.NativeMethods]::InternetSetOption([IntPtr]::Zero, 39, [IntPtr]::Zero, 0) | Out-Null;","[WinInet.NativeMethods]::InternetSetOption([IntPtr]::Zero, 37, [IntPtr]::Zero, 0) | Out-Null;"].join(" ");await Wt(qt("powershell.exe"),["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-Command",t]).catch(e=>{console.warn(`[proxy] Failed to notify Windows system proxy change: ${xn(e)}`)})}function rc(t){return Wt(nW,t).then(e=>{if(RW(e))throw new Error(e.trim());return e})}function Wt(t,e){return new Promise((r,n)=>{(0,gS.execFile)(t,e,{windowsHide:process.platform==="win32"},(o,i,s)=>{let A=s?.trim()||i?.trim();if(o){n(new Error(A||o.message));return}r(i)})})}function RW(t){return!!(t&&(/AuthorizationCreate\(\) failed/i.test(t)||/^\*\* Error:/m.test(t)))}function bW(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function xn(t){return t instanceof Error?t.message:String(t)}function lS(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var SW=30*1e3,DW="http://127.0.0.1:65535",wS=new Map,Un,Bs;async function Mo(t,e){let r=vW(t);if(!r||!_W(r)||OW(r))return fetch(t,e);let n=await NW(r);return n?fetch(t,{...e,dispatcher:PW(n)}):fetch(t,e)}function kW(){let t=process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy;return t?t.trim():void 0}async function NW(t){let e=await UW(),r=e?.proxy.upstream.mode??"system";if(r==="none")return;let n=t.protocol==="https:"?"https":"http";if(r==="custom"){let s=RS(fS(e?.proxy.upstream),n);return s?bS(s):void 0}let o=await MW(e),i=RS(o.upstreamProxy,n);return i?bS(i):kW()}async function MW(t){let e=Date.now(),r=oc.getManagedEndpointUrl(),n=t?Jf(t):void 0;return Un&&Un.expiresAt>e&&(!r||Un.managedEndpointUrl===r)&&(!n||Un.managedEndpointUrl===n)?Un:Bs||(Bs=TW(t).then(o=>(Un={...o,expiresAt:Date.now()+SW},Un)).finally(()=>{Bs=void 0}),Bs)}async function TW(t){let{managedEndpointUrl:e,systemProxyActive:r}=await xW(t);if(r){let n=oc.getUpstreamProxy();if(n)return{managedEndpointUrl:e,upstreamProxy:n}}try{return{managedEndpointUrl:e,upstreamProxy:await hS(e)}}catch(n){return console.warn(`[network] Failed to read system proxy: ${Kf(n)}`),{managedEndpointUrl:e}}}async function xW(t){let e=oc.getManagedEndpointUrl();if(e)return{managedEndpointUrl:e,systemProxyActive:!0};if(t)return{managedEndpointUrl:Jf(t),systemProxyActive:t.proxy.enabled&&t.proxy.systemProxy};try{return t=await Ff(),{managedEndpointUrl:Jf(t),systemProxyActive:t.proxy.enabled&&t.proxy.systemProxy}}catch(r){console.warn(`[network] Failed to read proxy config: ${Kf(r)}`)}return{managedEndpointUrl:DW,systemProxyActive:!1}}async function UW(){try{return await Ff()}catch(t){console.warn(`[network] Failed to read proxy config: ${Kf(t)}`);return}}function Jf(t){let e=FW(t.gateway.host);return`http://${LW(e)}:${t.gateway.port}`}function FW(t){let e=t.trim();return!e||e==="0.0.0.0"||e==="::"||e==="[::]"?"127.0.0.1":e}function RS(t,e){if(t)return e==="https"?t.https??t.http:t.http??t.https}function PW(t){let e=wS.get(t);if(e)return e;let r=new DS.ProxyAgent(t);return wS.set(t,r),r}function bS(t){return pS(t)}function LW(t){return t.includes(":")&&!t.startsWith("[")?`[${t}]`:t}function vW(t){try{return t instanceof URL?t:typeof t=="string"?new URL(t):new URL(t.url)}catch{return}}function _W(t){return t.protocol==="http:"||t.protocol==="https:"}function OW(t){let e=YW(t.hostname);if(e==="localhost"||e==="127.0.0.1"||e.startsWith("127.")||e==="0.0.0.0"||e==="::1"||e==="0:0:0:0:0:0:0:1")return!0;let r=process.env.NO_PROXY||process.env.no_proxy;if(!r)return!1;let n=r.split(",").map(o=>o.trim()).filter(Boolean);for(let o of n){if(o==="*")return!0;if(o.startsWith(".")){if(e.endsWith(o.toLowerCase())||e===o.slice(1).toLowerCase())return!0;continue}if(o.includes("/")&&GW(e)){if(HW(e,o))return!0;continue}if(e===o.toLowerCase())return!0}return!1}function GW(t){return/^\d+\.\d+\.\d+\.\d+$/.test(t)}function HW(t,e){let[r,n]=e.split("/"),o=parseInt(n,10);if(isNaN(o)||o<0||o>32)return!1;let i=SS(t),s=SS(r);if(i===null||s===null)return!1;let A=o===0?0:-1<<32-o>>>0;return(i&A)===(s&A)}function SS(t){let e=t.split(".");if(e.length!==4)return null;let r=0;for(let n of e){let o=parseInt(n,10);if(isNaN(o)||o<0||o>255)return null;r=r<<8|o}return r>>>0}function YW(t){return t.trim().toLowerCase().replace(/^\[(.*)]$/,"$1").replace(/\.$/,"")}function Kf(t){return t instanceof Error?t.message:String(t)}var kS="https://chatgpt.com/backend-api/codex",zf="https://chatgpt.com/backend-api";var WW=368e3,JW=256e3;var KW={meters:[{id:"codex_primary_quota",kind:"quota",label:"Primary quota",limit:100,remaining:["100 - $.rate_limit.primary_window.used_percent","100 - $.rate_limits.primary.used_percent"],resetAt:["$.rate_limit.primary_window.reset_at","$.rate_limit.primary_window.resets_at","$.rate_limits.primary.resets_at"],unit:"%",used:["$.rate_limit.primary_window.used_percent","$.rate_limits.primary.used_percent"],window:"primary"},{id:"codex_manual_resets",kind:"requests",label:"Manual resets",remaining:["$.resetsAvailable","$.availableRateLimitResetCount","$.rate_limit_reset_credits.available_count","$.rate_limit.resetsAvailable","$.rate_limits.resetsAvailable","$.rate_limit.manual_resets.remaining","$.rate_limit.manual_resets.resetsAvailable","$.rate_limit.manual_reset.remaining","$.rate_limit.manual_reset.resetsAvailable","$.rate_limits.manual_resets.remaining","$.rate_limits.manual_resets.resetsAvailable","$.rate_limits.manual_reset.remaining","$.rate_limits.manual_reset.resetsAvailable","$.manual_resets.remaining","$.manual_resets.resetsAvailable","$.manual_reset.remaining","$.manual_reset.resetsAvailable","$.resets.remaining","$.resets.resetsAvailable","$.rate_limit.manual_resets.available","$.rate_limit.manual_reset.available","$.rate_limit.resets.available","$.rate_limits.resets.available","$.manual_resets.available","$.manual_reset.available","$.resets.available",0],resetAt:["$.resetExpires","$.expires_at","$.resets_at","$.rate_limit.manual_resets.expires_at","$.rate_limit.manual_resets.expire_at","$.rate_limit.manual_resets.reset_at","$.rate_limit.manual_resets.resets_at","$.rate_limit.manual_reset.expires_at","$.rate_limit.manual_reset.expire_at","$.rate_limit.manual_reset.reset_at","$.rate_limit.manual_reset.resets_at","$.rate_limits.manual_resets.expires_at","$.rate_limits.manual_resets.expire_at","$.rate_limits.manual_resets.reset_at","$.rate_limits.manual_resets.resets_at","$.rate_limits.manual_reset.expires_at","$.rate_limits.manual_reset.expire_at","$.rate_limits.manual_reset.reset_at","$.rate_limits.manual_reset.resets_at","$.rate_limit.resets.expires_at","$.rate_limit.resets.expire_at","$.rate_limit.resets.reset_at","$.rate_limit.resets.resets_at","$.rate_limits.resets.expires_at","$.rate_limits.resets.expire_at","$.rate_limits.resets.reset_at","$.rate_limits.resets.resets_at","$.manual_resets.expires_at","$.manual_resets.expire_at","$.manual_resets.reset_at","$.manual_resets.resets_at","$.manual_reset.expires_at","$.manual_reset.expire_at","$.manual_reset.reset_at","$.manual_reset.resets_at","$.resets.expires_at","$.resets.expire_at","$.resets.reset_at","$.resets.resets_at"],unit:"resets",used:["$.rate_limit.manual_resets.used","$.rate_limit.manual_reset.used","$.rate_limits.manual_resets.used","$.manual_resets.used","$.manual_reset.used","$.resets.used"],window:"manual-reset"},{id:"codex_secondary_quota",kind:"quota",label:"Secondary quota",limit:100,remaining:["100 - $.rate_limit.secondary_window.used_percent","100 - $.rate_limits.secondary.used_percent"],resetAt:["$.rate_limit.secondary_window.reset_at","$.rate_limit.secondary_window.resets_at","$.rate_limits.secondary.resets_at"],unit:"%",used:["$.rate_limit.secondary_window.used_percent","$.rate_limits.secondary.used_percent"],window:"secondary"},{id:"codex_individual_limit",kind:"quota",label:"Individual limit",limit:"$.spend_control.individual_limit.limit",remaining:"$.spend_control.individual_limit.remaining",resetAt:"$.spend_control.individual_limit.reset_at",unit:"credits",used:"$.spend_control.individual_limit.used",window:"monthly"},{id:"codex_credit_balance",kind:"balance",label:"Credit balance",remaining:"$.credits.balance",unit:"credits"}]},zW={meters:[{id:"codex_manual_resets",kind:"requests",label:"Manual resets",remaining:["$.available_count","$.rate_limit_reset_credits.available_count",0],resetAt:["$.expires_at","$.expiresAt","$.reset_at","$.resetAt"],unit:"resets",window:"manual-reset"}]},jW={meters:[{id:"codex_lifetime_tokens",kind:"tokens",label:"Lifetime tokens",unit:"tokens",used:"$.stats.lifetime_tokens"},{id:"codex_peak_daily_tokens",kind:"tokens",label:"Peak daily tokens",unit:"tokens",used:"$.stats.peak_daily_tokens",window:"daily"}]};function $W(){return{connectors:[{auth:"provider-api-key",endpoint:`${zf}/wham/usage`,headers:{"User-Agent":"codex-cli"},mapping:KW,type:"http-json"},{auth:"provider-api-key",endpoint:`${zf}/wham/rate-limit-reset-credits`,headers:{"User-Agent":"codex-cli"},mapping:zW,type:"http-json"},{auth:"provider-api-key",endpoint:`${zf}/wham/profiles/me`,headers:{"User-Agent":"codex-cli"},mapping:jW,type:"http-json"}],enabled:!0}}function tS(t){let e=ZW(t);if(!NS(e)||!XW(e.account))return e;let r=$W();return{...e,account:{...r,refreshIntervalMs:e.account?.refreshIntervalMs??r.refreshIntervalMs}}}function ZW(t){if(!NS(t))return t;let e=nJ(t.modelMetadata,t.models??[]);return e===t.modelMetadata?t:{...t,modelMetadata:e}}function NS(t){return rJ(t)===_o&&Ko(tJ(t))===Ko(kS)}function XW(t){if(t?.enabled===!1)return!1;let e=t?.connectors??[];return e.length===0?!0:e.every(eJ)}function eJ(t){return t.type==="standard"?!t.endpoint?.trim()&&!t.endpoints?.length&&!t.headers&&!t.id:t.type!=="http-json"?!1:/^https:\/\/chatgpt\.com\/backend-api\/wham\//i.test(t.endpoint.trim())}function tJ(t){return t.api_base_url||t.baseUrl||t.baseurl||""}function rJ(t){return t.api_key||t.apiKey||t.apikey||""}function nJ(t,e){let r={...t??{}},n=!1;for(let o of e){let i=oJ(o);i&&(r[o]={...r[o]??{},contextWindow:i,maxContextWindow:i},n=!0)}return n?r:t}function oJ(t){let e=t.trim().toLowerCase().split("/").at(-1)??"";if(/^gpt-5\.6(?:[.-]|$)/.test(e))return WW;if(/^gpt-5(?:[.-]|$)/.test(e))return JW}var $f=require("node:child_process"),Zf=require("node:crypto"),ke=require("node:fs"),st=le(require("node:os")),St=le(require("node:path"));var sJ="https://api.kimi.com/coding/v1",AJ="https://api.moonshot.ai/v1",aJ="https://auth.kimi.com",cJ="17e5f671-d194-4dfb-9706-5516cb48c098",dJ=["kimi-for-coding"],MS=3e4,jf=new Map,ic=class extends Error{status;constructor(e,r){super(r),this.name="KimiRefreshAuthError",this.status=e}};function Ac(t){let e=fJ(t),r=t?.key?.trim()||e?.oauthKey;if(r)return FS(BJ(r),t?.oauthHost?.trim()||e?.oauthHost)}function FS(t,e){let r=Dt(t);if(!r)return;let n=Fn(r.expires_at)??Fn(r.expiresAt);return{accessToken:D(r.access_token)||D(r.accessToken),expiresAt:n,expiresIn:Fn(r.expires_in)??Fn(r.expiresIn),oauthHost:e,refreshToken:D(r.refresh_token)||D(r.refreshToken),scope:D(r.scope),sourceFile:t,tokenType:D(r.token_type)||D(r.tokenType)}}async function Xf(t){let e=Ac(t);if(!e?.refreshToken||e.accessToken&&!ac(e))return e;let r=e.sourceFile,n=jf.get(r);return n||(n=pJ(e).catch(o=>uJ(e,o)).finally(()=>{jf.delete(r)}),jf.set(r,n)),n}function uJ(t,e){if(!(e instanceof ic))throw e;let r=FS(t.sourceFile,t.oauthHost);if(r?.refreshToken&&r.accessToken&&r.refreshToken!==t.refreshToken)return r;throw e}function ac(t){return t.expiresAt!==void 0&&t.expiresAt*1e3<=Date.now()+6e4}function cc(){let t=mJ(),e={"User-Agent":`kimi-code-cli/${t}`,"X-Msh-Device-Model":RJ(),"X-Msh-Device-Name":Ln(st.default.hostname()),"X-Msh-Os-Version":Ln(st.default.release()),"X-Msh-Platform":"kimi_code_cli","X-Msh-Version":t};return e["X-Msh-Device-Id"]=wJ(),e}function lJ(){let t=QJ();if(!(0,ke.existsSync)(t))return[];let e;try{e=(0,ke.readFileSync)(t,"utf8")}catch{return[]}let r=CJ(e),n=r.filter(s=>s.path[0]==="providers"&&s.path.length===2),o=r.filter(s=>s.path[0]==="models"&&s.path.length===2),i=it(EJ(e).default_model);return n.flatMap(s=>{let A=s.path[1]||"kimi";if(it(s.values.type)!=="kimi")return[];let c={...US(s.values.env),...xS(r,["providers",A,"env"])?.values??{}},d={...US(s.values.oauth),...xS(r,["providers",A,"oauth"])?.values??{}},l=it(s.values.api_key)||it(c.KIMI_API_KEY),u=it(d.key),p=process.env.KIMI_CODE_OAUTH_HOST?.trim()||process.env.KIMI_OAUTH_HOST?.trim()||it(d.oauth_host),h=!!(u&&!l),I=it(s.values.base_url)||it(c.KIMI_BASE_URL)||(h?sJ:AJ),m=(h&&process.env.KIMI_CODE_BASE_URL?.trim()||I).replace(/\/+$/,""),E=gJ(o,A,i),Q=E.models.length>0?E.models:dJ;return[{apiKey:l,baseUrl:m,candidateId:`kimi-cli-${SJ(A)||"kimi"}`,modelDisplayNames:Oo(E.modelDisplayNames,Q),modelMetadata:bs(E.modelMetadata,Q),models:Q,name:h?"Kimi CLI OAuth":A==="kimi"?"Kimi CLI API":`Kimi CLI \xB7 ${A}`,oauthHost:p,oauthKey:u,protocol:"openai_chat_completions",providerId:A,sourceFile:t}]})}function gJ(t,e,r){let n=[],o={},i={},s=[...t].sort((A,a)=>{let c=A.path[1]===r?0:1,d=a.path[1]===r?0:1;return c-d});for(let A of s){if(it(A.values.provider)!==e)continue;let a=it(A.values.model)||A.path[1];if(!a)continue;n.push(a);let c=it(A.values.display_name);c&&c!==a&&(o[a]=c);let d=Fn(A.values.max_context_size),l=it(A.values.default_effort),u=kJ(A.values.support_efforts);(d||l||u.length>0)&&(i[a]={...d?{contextWindow:d,maxContextWindow:d}:{},...l?{defaultReasoningLevel:l}:{},...u.length>0?{supportedReasoningLevels:u.map(p=>({description:p,effort:p}))}:{}})}return{modelDisplayNames:o,modelMetadata:i,models:at(n)}}function fJ(t){let e=lJ().filter(o=>!!(o.oauthKey&&!o.apiKey)),r=t?.key?.trim();if(!r)return e[0];let n=t?.oauthHost?.trim().replace(/\/+$/,"");return e.find(o=>o.oauthKey===r&&(!n||o.oauthHost?.replace(/\/+$/,"")===n))??e.find(o=>o.oauthKey===r)}async function pJ(t){if(!t.refreshToken)throw new Error("Kimi CLI refresh token was not found.");let e=new AbortController,r=setTimeout(()=>e.abort(),MS),n=(t.oauthHost||aJ).replace(/\/+$/,"");try{let o=await Mo(`${n}/api/oauth/token`,{body:new URLSearchParams({client_id:cJ,grant_type:"refresh_token",refresh_token:t.refreshToken}).toString(),headers:{...bJ(cc(),"user-agent"),accept:"application/json","content-type":"application/x-www-form-urlencoded"},method:"POST",signal:e.signal}),i=await o.text(),s=NJ(i);if(!o.ok){let l=`Kimi CLI OAuth token refresh returned HTTP ${o.status}${MJ(s,i)}`;throw o.status===401||o.status===403?new ic(o.status,l):new Error(l)}let A=D(s?.access_token)||D(s?.accessToken),a=D(s?.refresh_token)||D(s?.refreshToken),c=Fn(s?.expires_in)??Fn(s?.expiresIn);if(!A||!a||!c)throw new Error("Kimi CLI OAuth token refresh returned an incomplete token response.");let d={...t,accessToken:A,expiresAt:Math.floor(Date.now()/1e3)+c,expiresIn:c,refreshToken:a,scope:D(s?.scope)||t.scope||"",tokenType:D(s?.token_type)||D(s?.tokenType)||"Bearer"};return hJ(d),d}catch(o){throw o instanceof Error&&o.name==="AbortError"?new Error(`Kimi CLI OAuth token refresh timed out after ${MS}ms.`):o}finally{clearTimeout(r)}}function hJ(t){if(!t.accessToken||!t.refreshToken)return;let e={access_token:t.accessToken,refresh_token:t.refreshToken,expires_at:t.expiresAt??0,scope:t.scope??"",token_type:t.tokenType??"Bearer",expires_in:t.expiresIn??0},r=`${t.sourceFile}.${process.pid}.${(0,Zf.randomUUID)()}.tmp`;try{(0,ke.writeFileSync)(r,`${JSON.stringify(e,null,2)}
278
+ `,{encoding:"utf8",mode:384}),(0,ke.renameSync)(r,t.sourceFile),(0,ke.chmodSync)(t.sourceFile,384)}catch{try{(0,ke.rmSync)(r,{force:!0})}catch{}}}function CJ(t){let e=[],r;for(let n of t.split(/\r?\n/)){let o=PS(n).trim();if(!o)continue;let i=o.match(/^\[([^\]]+)\]$/);if(i?.[1]){r={path:IJ(i[1]),values:{}},e.push(r);continue}if(!r)continue;let s=o.match(/^([A-Za-z0-9_-]+)\s*=\s*(.+)$/);s?.[1]&&s[2]!==void 0&&(r.values[s[1]]=sc(s[2].trim()))}return e}function EJ(t){let e={};for(let r of t.split(/\r?\n/)){let n=PS(r).trim();if(!n)continue;if(n.startsWith("["))break;let o=n.match(/^([A-Za-z0-9_-]+)\s*=\s*(.+)$/);o?.[1]&&o[2]!==void 0&&(e[o[1]]=sc(o[2].trim()))}return e}function IJ(t){let e=[],r="",n="",o=!1;for(let i of t){if(o){r+=i,o=!1;continue}if(n&&i==="\\"){o=!0;continue}if(i==='"'||i==="'"){n?n===i?n="":r+=i:n=i;continue}if(i==="."&&!n){e.push(r.trim()),r="";continue}r+=i}return r.trim()&&e.push(r.trim()),e}function sc(t){if(t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")){let r=t.slice(1,-1);return t.startsWith('"')?r.replace(/\\n/g,`
279
+ `).replace(/\\r/g,"\r").replace(/\\"/g,'"').replace(/\\\\/g,"\\"):r}if(t.startsWith("[")&&t.endsWith("]"))return TS(t.slice(1,-1)).map(r=>sc(r.trim()));if(t.startsWith("{")&&t.endsWith("}"))return Object.fromEntries(TS(t.slice(1,-1)).flatMap(r=>{let n=r.match(/^([A-Za-z0-9_-]+)\s*=\s*(.+)$/);return n?.[1]&&n[2]!==void 0?[[n[1],sc(n[2].trim())]]:[]}));if(t==="true")return!0;if(t==="false")return!1;let e=Number(t.replaceAll("_",""));return Number.isFinite(e)?e:t}function TS(t){let e=[],r="",n="",o=!1,i=0;for(let s of t){if(o){r+=s,o=!1;continue}if(n&&s==="\\"){r+=s,o=!0;continue}if(s==='"'||s==="'"){n=n===s?"":n||s,r+=s;continue}if(!n&&(s==="["||s==="{")?i+=1:!n&&(s==="]"||s==="}")&&(i=Math.max(0,i-1)),s===","&&!n&&i===0){r.trim()&&e.push(r.trim()),r="";continue}r+=s}return r.trim()&&e.push(r.trim()),e}function PS(t){let e="",r=!1;for(let n=0;n<t.length;n+=1){let o=t[n];if(r){r=!1;continue}if(e&&o==="\\"){r=!0;continue}if(o==='"'||o==="'"){e=e===o?"":e||o;continue}if(o==="#"&&!e)return t.slice(0,n)}return t}function xS(t,e){return t.find(r=>r.path.length===e.length&&r.path.every((n,o)=>n===e[o]))}function QJ(){return St.default.join(Pn(),"config.toml")}function BJ(t){let e=t==="kimi-code"||t==="oauth/kimi-code"?"kimi-code":t.startsWith("oauth/")?t.slice(6):t;return!e||e.includes("/")||e.startsWith(".")?St.default.join(Pn(),"credentials","kimi-code.json"):St.default.join(Pn(),"credentials",`${e}.json`)}function Pn(){let t=process.env.KIMI_CODE_HOME?.trim();if(t)return DJ(t);let e=process.env.CCR_INTERNAL_HOME_DIR?.trim();return e?St.default.join(e,".kimi-code"):St.default.join(st.default.homedir(),".kimi-code")}function mJ(){let t=process.env.KIMI_CODE_VERSION?.trim();if(t)return Ln(t,"unknown");for(let e of yJ())try{let r=(0,$f.execFileSync)(e,["--version"],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3}).trim();if(r)return Ln(r,"unknown")}catch{continue}return"unknown"}function yJ(){let t=process.env.CCR_KIMI_BIN?.trim()||process.env.KIMI_BIN?.trim();return at([t,St.default.join(Pn(),"bin",process.platform==="win32"?"kimi.exe":"kimi"),"kimi"])}function wJ(){try{let e=(0,ke.readFileSync)(St.default.join(Pn(),"device_id"),"utf8").trim();if(e)return e}catch{}let t=(0,Zf.randomUUID)();try{(0,ke.mkdirSync)(Pn(),{mode:448,recursive:!0}),(0,ke.writeFileSync)(St.default.join(Pn(),"device_id"),t,{encoding:"utf8",mode:384})}catch{}return t}function RJ(){if(process.platform==="darwin")try{let t=(0,$f.execFileSync)("/usr/bin/sw_vers",["-productVersion"],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:1e3}).trim();return Ln(`macOS ${t||st.default.release()} ${st.default.arch()}`)}catch{}return process.platform==="win32"?Ln(`Windows ${st.default.release()} ${st.default.arch()}`):Ln(`${st.default.type()} ${st.default.release()} ${st.default.arch()}`)}function Ln(t,e="unknown"){return t.replace(/[^\x20-\x7e]/g,"").trim()||e}function bJ(t,e){return Object.fromEntries(Object.entries(t).filter(([r])=>r.toLowerCase()!==e.toLowerCase()))}function SJ(t){return t.trim().toLowerCase().replace(/[^a-z0-9_.-]+/g,"-").replace(/^-+|-+$/g,"")}function DJ(t){let e=t.trim();return e==="~"?st.default.homedir():e.startsWith("~/")||e.startsWith("~\\")?St.default.join(st.default.homedir(),e.slice(2)):St.default.resolve(e)}function it(t){return typeof t=="string"&&t.trim()?t.trim():void 0}function Fn(t){let e=typeof t=="number"?t:typeof t=="string"&&t.trim()?Number(t):NaN;return Number.isFinite(e)?e:void 0}function kJ(t){return Array.isArray(t)?t.map(it).filter(e=>!!e):[]}function US(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}function NJ(t){try{let e=JSON.parse(t);return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}catch{return}}function MJ(t,e){let r=D(t?.error_description)||D(t?.error)||D(t?.message)||e.trim().slice(0,240);return r?`: ${r}`:""}var TJ=le(require("node:os")),xJ=le(require("node:path"));var YJ=require("node:stream"),VJ=require("node:string_decoder");var UJ=require("node:crypto");function ee(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Ce(t){return typeof t=="string"&&t.trim()?t.trim():void 0}function ms(t){return typeof t=="string"?t:void 0}var ys=require("node:crypto"),dr="/__ccr/remote",FJ=100,LS=2e3,PJ=500,LJ=15e3,tp=class{sessions=new Map;async handleRequest(e){let r=vJ(e.path),[n,o,i]=r;if(r.length===0||e.path===dr){this.sendCapabilities(e);return}if(n==="capabilities"){this.sendCapabilities(e);return}if(n!=="sessions"){e.sendJson(e.response,404,{error:{message:"Remote control endpoint not found."}});return}if(!o){await this.handleSessionsRequest(e);return}if(!i){await this.handleSessionRequest(e,o);return}if(i==="events"){await this.handleEventsRequest(e,o);return}if(i==="inbound"){await this.handleInboundRequest(e,o);return}if(i==="presence"){await this.handlePresenceRequest(e,o);return}e.sendJson(e.response,404,{error:{message:"Remote control session endpoint not found."}})}sendCapabilities(e){e.sendJson(e.response,200,{endpoints:{createSession:`${e.endpoint}${dr}/sessions`,inbound:`${e.endpoint}${dr}/sessions/{sessionId}/inbound`,sessionEvents:`${e.endpoint}${dr}/sessions/{sessionId}/events`},name:"ccr-remote-control",protocol:"ccr.remote.v1",transport:["json","sse"],capabilities:{catchupReplay:!0,fanout:!0,inboundQueue:!0,presence:!0}})}async handleSessionsRequest(e){if(e.request.method==="GET"){e.sendJson(e.response,200,{sessions:[...this.sessions.values()].map(A=>this.sessionSummary(A,e.endpoint))});return}if(e.request.method!=="POST"){e.sendJson(e.response,405,{error:{message:"Method not allowed."}});return}let r=await this.readJsonBody(e);if(!r)return;let n=HS(Ie(r.id)||Ie(r.sessionId))||(0,ys.randomUUID)(),o=Ie(r.title)||Ie(r.name)||`CCR Remote ${n.slice(0,8)}`,i=ep(r.metadata)??{},s=this.ensureSession(n,o,i);this.appendEvent(s,{direction:"system",payload:{title:o},source:"ccr-gateway",type:"session.created"}),e.sendJson(e.response,201,{session:this.sessionSnapshot(s,e.endpoint)})}async handleSessionRequest(e,r){let n=this.sessions.get(r);if(!n){e.sendJson(e.response,404,{error:{message:"Remote session not found."}});return}if(e.request.method==="GET"){e.sendJson(e.response,200,{session:this.sessionSnapshot(n,e.endpoint)});return}if(e.request.method==="PATCH"){let o=await this.readJsonBody(e);if(!o)return;let i=Ie(o.title)||Ie(o.name);i&&(n.title=i);let s=ep(o.metadata);s&&(n.metadata={...n.metadata,...s}),n.updatedAt=new Date().toISOString(),this.appendEvent(n,{direction:"system",payload:{metadata:s??{},title:i??n.title},source:"ccr-gateway",type:"session.updated"}),e.sendJson(e.response,200,{session:this.sessionSnapshot(n,e.endpoint)});return}if(e.request.method==="DELETE"){n.archivedAt=new Date().toISOString(),n.updatedAt=n.archivedAt,this.appendEvent(n,{direction:"system",payload:{archivedAt:n.archivedAt},source:"ccr-gateway",type:"session.archived"}),e.sendJson(e.response,200,{archived:!0,session:this.sessionSummary(n,e.endpoint)});return}e.sendJson(e.response,405,{error:{message:"Method not allowed."}})}async handleEventsRequest(e,r){let n=this.sessions.get(r);if(!n){e.sendJson(e.response,404,{error:{message:"Remote session not found."}});return}if(e.request.method==="GET"){let s=GS(e.request);if(OS(e.request)){this.openSse(e,n,"events",s);return}e.sendJson(e.response,200,{events:n.events.filter(A=>A.seq>s),session:this.sessionSummary(n,e.endpoint)});return}if(e.request.method!=="POST"){e.sendJson(e.response,405,{error:{message:"Method not allowed."}});return}let o=await this.readJsonBody(e);if(!o)return;let i=vS(o).map(s=>this.appendEvent(n,{...s,direction:s.direction??"local",type:s.type||"message"}));e.sendJson(e.response,202,{accepted:i.length,events:i,session:this.sessionSummary(n,e.endpoint)})}async handleInboundRequest(e,r){let n=this.sessions.get(r);if(!n){e.sendJson(e.response,404,{error:{message:"Remote session not found."}});return}if(e.request.method==="GET"){let s=GS(e.request);if(OS(e.request)){this.openSse(e,n,"inbound",s);return}e.sendJson(e.response,200,{events:n.inboundEvents.filter(A=>A.seq>s),session:this.sessionSummary(n,e.endpoint)});return}if(e.request.method!=="POST"){e.sendJson(e.response,405,{error:{message:"Method not allowed."}});return}let o=await this.readJsonBody(e);if(!o)return;let i=vS(o).map(s=>this.appendEvent(n,{...s,direction:"remote",type:s.type||"user.message"},!0));e.sendJson(e.response,202,{accepted:i.length,events:i,session:this.sessionSummary(n,e.endpoint)})}async handlePresenceRequest(e,r){let n=this.sessions.get(r);if(!n){e.sendJson(e.response,404,{error:{message:"Remote session not found."}});return}if(e.request.method==="GET"){e.sendJson(e.response,200,{presence:n.presence});return}if(e.request.method!=="POST"){e.sendJson(e.response,405,{error:{message:"Method not allowed."}});return}let o=await this.readJsonBody(e);if(!o)return;let i=HS(Ie(o.clientId)||Ie(o.id))||(0,ys.randomUUID)(),s={lastSeenAt:new Date().toISOString(),metadata:ep(o.metadata)??{},name:Ie(o.name)||i,role:Ie(o.role)||"client"};n.presence[i]=s;let A=this.appendEvent(n,{direction:"system",payload:{clientId:i,presence:s},source:"ccr-gateway",type:"presence.updated"});e.sendJson(e.response,202,{event:A,presence:n.presence})}ensureSession(e,r,n){let o=this.sessions.get(e);if(o)return o.metadata={...o.metadata,...n},o.title=r||o.title,o.updatedAt=new Date().toISOString(),o;this.pruneSessions();let i=new Date().toISOString(),s={createdAt:i,events:[],id:e,inboundEvents:[],lastSeq:0,metadata:n,presence:{},seenDedupeKeys:new Map,subscribers:new Set,title:r,updatedAt:i};return this.sessions.set(e,s),s}appendEvent(e,r,n=!1){let o=r.dedupeKey||r.id;if(o){let s=e.seenDedupeKeys.get(o);if(s)return s}let i={createdAt:new Date().toISOString(),...o?{dedupeKey:o}:{},direction:r.direction??"local",id:r.id||(0,ys.randomUUID)(),payload:r.payload??{},...r.role?{role:r.role}:{},seq:++e.lastSeq,sessionId:e.id,...r.source?{source:r.source}:{},...r.text?{text:r.text}:{},type:r.type||"message"};if(e.events.push(i),YS(e.events,LS),(n||i.direction==="remote"||i.direction==="inbound")&&(e.inboundEvents.push(i),YS(e.inboundEvents,PJ)),o)for(e.seenDedupeKeys.set(o,i);e.seenDedupeKeys.size>LS;){let s=e.seenDedupeKeys.keys().next().value;if(!s)break;e.seenDedupeKeys.delete(s)}return e.updatedAt=i.createdAt,this.broadcast(e,i),i}openSse(e,r,n,o){e.response.writeHead(200,{"cache-control":"no-cache, no-transform",connection:"keep-alive","content-type":"text/event-stream; charset=utf-8","x-accel-buffering":"no"}),e.response.write(`: connected
280
+
281
+ `);let i=n==="events"?r.events:r.inboundEvents;for(let a of i.filter(c=>c.seq>o))_S(e.response,a);let s=setInterval(()=>{e.response.destroyed||e.response.write(`: keepalive
282
+
283
+ `)},LJ),A={close:()=>clearInterval(s),id:(0,ys.randomUUID)(),kind:n,response:e.response};r.subscribers.add(A),e.request.once("close",()=>{A.close(),r.subscribers.delete(A)})}broadcast(e,r){for(let n of e.subscribers)if(!(n.kind==="inbound"&&!(r.direction==="remote"||r.direction==="inbound"))){if(n.response.destroyed){n.close(),e.subscribers.delete(n);continue}_S(n.response,r)}}sessionSnapshot(e,r){return{...this.sessionSummary(e,r),events:e.events,inboundEvents:e.inboundEvents,metadata:e.metadata,presence:e.presence}}sessionSummary(e,r){return{...e.archivedAt?{archivedAt:e.archivedAt}:{},createdAt:e.createdAt,endpoints:{events:`${r}${dr}/sessions/${encodeURIComponent(e.id)}/events`,inbound:`${r}${dr}/sessions/${encodeURIComponent(e.id)}/inbound`,presence:`${r}${dr}/sessions/${encodeURIComponent(e.id)}/presence`},eventCount:e.events.length,id:e.id,inboundCount:e.inboundEvents.length,lastSeq:e.lastSeq,subscriberCount:e.subscribers.size,title:e.title,updatedAt:e.updatedAt}}pruneSessions(){for(;this.sessions.size>=FJ;){let e=[...this.sessions.values()].sort((r,n)=>Date.parse(r.updatedAt)-Date.parse(n.updatedAt))[0];if(!e)return;for(let r of e.subscribers)r.close(),r.response.end();this.sessions.delete(e.id)}}async readJsonBody(e){let r=await e.readBody(e.request);if(r.length===0)return{};try{let n=JSON.parse(r.toString("utf8"));if(typeof n=="object"&&n!==null&&!Array.isArray(n))return n;e.sendJson(e.response,400,{error:{message:"Request body must be a JSON object."}});return}catch{e.sendJson(e.response,400,{error:{message:"Request body must be valid JSON."}});return}}},A4=new tp;function vS(t){return(Array.isArray(t.events)?t.events:[t]).filter(r=>typeof r=="object"&&r!==null&&!Array.isArray(r)).map(r=>{let n=Object.prototype.hasOwnProperty.call(r,"payload")?r.payload:Object.prototype.hasOwnProperty.call(r,"message")?r.message:{};return{dedupeKey:Ie(r.dedupeKey)||Ie(r.uuid)||Ie(r.requestId),direction:_J(r.direction),id:Ie(r.id),payload:n,role:Ie(r.role),source:Ie(r.source),text:Ie(r.text)||Ie(r.content),type:Ie(r.type)}})}function _S(t,e){t.write(`id: ${e.seq}
284
+ `),t.write(`event: ${e.type.replace(/[\r\n]+/g,"")||"message"}
285
+ `),t.write(`data: ${JSON.stringify(e)}
286
+
287
+ `)}function OS(t){let e=new URL(t.url||"/","http://127.0.0.1");return e.searchParams.get("stream")==="1"||e.searchParams.get("stream")==="true"||VS(t.headers.accept)?.toLowerCase().includes("text/event-stream")===!0}function GS(t){let e=new URL(t.url||"/","http://127.0.0.1"),r=Number(e.searchParams.get("after")??VS(t.headers["last-event-id"])??0);return Number.isFinite(r)&&r>0?Math.floor(r):0}function vJ(t){let e=t.slice(dr.length).replace(/^\/+|\/+$/g,"");return e?e.split("/").map(r=>decodeURIComponent(r)).filter(Boolean):[]}function _J(t){return t==="inbound"||t==="local"||t==="remote"||t==="system"?t:void 0}function VS(t){return Array.isArray(t)?t[0]?.trim():typeof t=="string"&&t.trim()?t.trim():void 0}function ep(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:void 0}function Ie(t){return typeof t=="string"&&t.trim()?t.trim():void 0}function HS(t){return t?.trim().replace(/[^a-zA-Z0-9:._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,128)||void 0}function YS(t,e){t.length>e&&t.splice(0,t.length-e)}var WS=require("node:module");var qS=require("node:fs"),OJ=require("node:path");var B4=(0,WS.createRequire)(__filename),dc="anthropic-beta",JS="oauth-2025-04-20";var m4=8*1024*1024;var rp="virtual_apply_patch";var uc=["When modifying files, call virtual_apply_patch.","Do not use exec_command or write_stdin to edit files, including shell redirection, heredocs, cat >, tee, sed -i, perl -i, python, node scripts, or similar shell-based edits.","Use exec_command only for reading files, listing/searching, running builds/tests, starting servers, and other commands that are not manual file edits."].join(" "),vn=["When virtual_apply_patch is available, do not use this tool to edit files.","Do not write files with shell redirection, heredocs, cat >, tee, sed -i, perl -i, python, node scripts, or similar commands.","Use virtual_apply_patch for manual file changes."].join(" "),np=["start: begin_patch hunk+ end_patch",'begin_patch: "*** Begin Patch" LF','end_patch: "*** End Patch" LF?',"","hunk: add_hunk | delete_hunk | update_hunk",'add_hunk: "*** Add File: " filename LF add_line+','delete_hunk: "*** Delete File: " filename LF','update_hunk: "*** Update File: " filename LF change_move? change?',"","filename: /(.+)/",'add_line: "+" /(.*)/ LF -> line',"",'change_move: "*** Move to: " filename LF',"change: (change_context | change_line)+ eof_line?",'change_context: ("@@" | "@@ " /(.+)/) LF','change_line: ("+" | "-" | " ") /(.*)/ LF','eof_line: "*** End of File" LF',"","%import common.LF"].join(`
288
+ `);function KS(t){let e={...t},r=[],n=qJ(t.tools);if(n.changed){e.tools=n.value,r.push("tools");let o=WJ(t.instructions);o.changed&&(e.instructions=o.value,r.push("instructions"));let i=zJ(t.input);i.changed&&(e.input=i.value,r.push("input"))}return{body:e,changed:r.length>0,changedParts:r}}function qJ(t){if(!Array.isArray(t))return{value:t,changed:!1};if(!t.some(o=>ee(o)&&o.type==="custom"&&o.name==="apply_patch"))return{value:t,changed:!1};let r=!1;return{value:t.map(o=>{if(ee(o)&&o.type==="custom"&&o.name==="apply_patch")return r=!0,$J();let i=JJ(o);return i.changed?(r=!0,i.value):o}),changed:r}}function WJ(t){let e=ms(t);return e===void 0?t===void 0?{value:uc,changed:!0}:{value:t,changed:!1}:e.includes(uc)?{value:t,changed:!1}:{value:`${e.trimEnd()}
289
+
290
+ ${uc}`,changed:!0}}function JJ(t){if(!ee(t)||t.type!=="function")return{value:t,changed:!1};let e=Ce(t.name);if(e!=="exec_command"&&e!=="write_stdin")return{value:t,changed:!1};let r=!1,n={...t},o=ms(t.description)??"";if(o.includes(vn)||(n.description=o?`${o} ${vn}`:vn,r=!0),e==="exec_command"){let i=KJ(t.parameters);i.changed&&(n.parameters=i.value,r=!0)}return{value:r?n:t,changed:r}}function KJ(t){if(!ee(t)||!ee(t.properties)||!ee(t.properties.cmd))return{value:t,changed:!1};let e=t.properties.cmd,r=ms(e.description)??"";return r.includes(vn)?{value:t,changed:!1}:{value:{...t,properties:{...t.properties,cmd:{...e,description:r?`${r} ${vn}`:vn}}},changed:!0}}function zJ(t){if(!Array.isArray(t))return{value:t,changed:!1};let e=new Set;for(let o of t)if(ee(o)&&o.type==="custom_tool_call"&&o.name==="apply_patch"){let i=Ce(o.call_id);i&&e.add(i)}let r=!1;return{value:t.map(o=>{let i=jJ(o,e);return r||=i.changed,i.value}),changed:r}}function jJ(t,e){if(!ee(t))return{value:t,changed:!1};if(t.type==="custom_tool_call"&&t.name==="apply_patch"){let{input:r,name:n,type:o,...i}=t;return{value:{...i,type:"function_call",name:rp,arguments:JSON.stringify({patch:ms(r)??""})},changed:!0}}if(t.type==="custom_tool_call_output"&&(e.has(Ce(t.call_id)??"")||t.name==="apply_patch")){let{name:r,type:n,...o}=t;return{value:{...o,type:"function_call_output"},changed:!0}}return{value:t,changed:!1}}function $J(){return{type:"function",name:rp,description:["Edit files by returning exactly one complete apply_patch patch.","The patch field must be raw patch grammar text starting with *** Begin Patch and ending with *** End Patch.","Do not wrap the patch in JSON, markdown fences, shell commands, cat, sed, perl, or python.","The patch field must match this Lark grammar:",np].join(`
291
+
292
+ `),strict:!0,parameters:{type:"object",additionalProperties:!1,required:["patch"],properties:{patch:{type:"string",description:["Raw apply_patch grammar text matching this Lark grammar:",np].join(`
293
+
294
+ `)}}}}}function zS(...t){let e=new Set,r=[];for(let n of t)for(let o of n?.split(",")??[]){let i=o.trim(),s=i.toLowerCase();!i||e.has(s)||(e.add(s),r.push(i))}return r.join(",")}var ZJ="config:",XJ="ccr-local-agent-";function eK(t={}){return{providerHooks:$S(t.config)}}function $S(t){return(Array.isArray(t?.providerPlugins)?t.providerPlugins:[]).map(rK).filter(r=>!!r)}function tK(t){return ee(t)?ZS(t)!==void 0:!1}function rK(t){if(!ee(t))return;let e=ZS(t),r=Ce(t.key);if(!e||!r)return;let n={key:`${ZJ}${r}`,provider:Ce(t.provider),providerName:Ce(t.providerName)};return e==="grok"?(n.authenticate=o=>jS(o,()=>oK(t),t,"Grok CLI access token was not found."),n.transformRequest=o=>AK(o,t),n):e==="kimi"?(n.authenticate=o=>jS(o,()=>iK(t),t,"Kimi CLI access token was not found."),n.transformRequest=o=>sK(o,cc()),n):(n.authenticate=o=>nK(o,t),n)}function ZS(t){let e=Ce(t.key)?.toLowerCase();if(e?.startsWith(XJ)){if(e.includes("grok-cli-oauth"))return"grok";if(e.includes("kimi-cli-oauth"))return"kimi";if(e.includes("claude-code-oauth"))return"claude-code"}}async function jS(t,e,r,n){let o=await e()||lc(r);return o?{ok:!0,value:{...t.upstreamRequest,headers:XS(t.upstreamRequest.headers,o,eD(r))}}:{error:n,ok:!1}}async function nK(t,e){let r=pc()?.accessToken||lc(e);if(!r)return{error:"Claude Code access token was not found.",ok:!1};let n=XS(t.upstreamRequest.headers,r,eD(e));return n[dc]=zS(IK(t.request?.headers,dc),hK(e),JS),{ok:!0,value:{...t.upstreamRequest,headers:n}}}async function oK(t){let e=await yf().catch(()=>qa());return e?.accessToken&&!Wa(e)?e.accessToken:lc(t)}async function iK(t){let e=BK(t),r=await Xf(e).catch(()=>Ac(e));return r?.accessToken&&!ac(r)?r.accessToken:lc(t)}function sK(t,e){return{ok:!0,value:{...t.upstreamRequest,headers:{...t.upstreamRequest.headers??{},...e}}}}function AK(t,e){let r={...t.upstreamRequest.headers??{},"x-grok-client-identifier":"xai-grok-cli","x-grok-client-version":wf(),"x-grok-model-override":t.model||pK(e,"x-grok-model-override")||""},n=aK(t.upstreamRequest.body);return{ok:!0,value:{...t.upstreamRequest,body:n.changed?n.value:t.upstreamRequest.body,headers:r}}}function aK(t){if(!ee(t))return{value:t,changed:!1};let e=KS(t),r=cK(e.body),n=dK(r.value);return{value:n.value,changed:e.changed||r.changed||n.changed}}function cK(t){let e;for(let r of yK)Object.hasOwn(t,r)&&(e??={...t},delete e[r]);return e?{value:e,changed:!0}:{value:t,changed:!1}}function dK(t){if(!Array.isArray(t.tools))return{value:t,changed:!1};let e=!1,r=new Set,n=t.tools.filter(i=>{let s=uK(i);if(!s){e=!0;let A=lK(i);A&&r.add(A)}return s});if(!e)return{value:t,changed:!1};let o={...t};return n.length>0?o.tools=n:(delete o.tools,delete o.parallel_tool_calls),(n.length===0||gK(o.tool_choice,r))&&delete o.tool_choice,{value:o,changed:!0}}function uK(t){return ee(t)?mK.has(Ce(t.type)??""):!1}function lK(t){if(ee(t))return Ce(t.name)||Ce(t.server_label)}function gK(t,e){if(e.size===0||!ee(t))return!1;let r=Ce(t.name)||Ce(t.server_label);return r?e.has(r):!1}function XS(t,e,r){let n={...t??{}};for(let o of r)rD(n,o);return QK(n,"authorization",`Bearer ${e}`),n}function eD(t){let e=ee(t.auth)?t.auth:void 0,r=Array.isArray(e?.removeHeaders)?e.removeHeaders:[];return wK([...r.map(n=>Ce(n)).filter(n=>!!n),"x-api-key"])}function lc(t){let e=fK(t,"authorization"),r="Bearer ";return e?.startsWith(r)&&e.slice(r.length).trim()||void 0}function fK(t,e){let r=ee(t.auth)?t.auth:void 0,n=ee(r?.headers)?r.headers:void 0;return tD(n,e)}function pK(t,e){let r=ee(t.request)?t.request:void 0,n=ee(r?.headers)?r.headers:void 0;return tD(n,e)}function hK(t){let e=CK(t,dc);if(typeof e=="string")return e;if(ee(e))return Ce(e.default)}function CK(t,e){let r=ee(t.auth)?t.auth:void 0,n=ee(r?.headers)?r.headers:void 0;if(!n)return;let o=e.toLowerCase();return Object.entries(n).find(([i])=>i.trim().toLowerCase()===o)?.[1]}function tD(t,e){let r=EK(t,e);return typeof r=="string"?r:void 0}function EK(t,e){if(!t)return;let r=e.toLowerCase();return Object.entries(t).find(([n])=>n.trim().toLowerCase()===r)?.[1]}function IK(t,e){if(!t)return;let r=e.toLowerCase(),n=Object.entries(t).find(([o])=>o.trim().toLowerCase()===r)?.[1];return Array.isArray(n)?n.join(","):n}function QK(t,e,r){rD(t,e),t[e]=r}function rD(t,e){let r=e.toLowerCase();for(let n of Object.keys(t))n.trim().toLowerCase()===r&&delete t[n]}function BK(t){let e=ee(t.kimiOauth)?t.kimiOauth:void 0;if(!e)return;let r=Ce(e.key),n=Ce(e.oauthHost)||Ce(e.oauth_host);return r||n?{key:r,oauthHost:n}:void 0}var mK=new Set(["function","x_search","image_generation","collections_search","file_search","code_execution","code_interpreter","mcp","shell"]),yK=new Set(["external_web_access"]);function wK(t){let e=new Set,r=[];for(let n of t){let o=n.trim().toLowerCase();!o||e.has(o)||(e.add(o),r.push(n))}return r}0&&(module.exports={createGatewayPlugin,isLocalAgentOauthProviderPlugin,localAgentOauthProviderHooks});