xaq-cli 0.0.0 → 0.1.0-nightly.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +79 -0
- package/dist/admin-5gThRwgj.js +162 -0
- package/dist/admin-5gThRwgj.js.map +1 -0
- package/dist/admin-Btrm8mCd.js +218 -0
- package/dist/admin-Btrm8mCd.js.map +1 -0
- package/dist/admin-CWofnT_Q.js +2 -0
- package/dist/api-BFpElwqK.js +89 -0
- package/dist/api-BFpElwqK.js.map +1 -0
- package/dist/audit-BB7jK9Z5.js +2 -0
- package/dist/audit-BVYknW2i.js +79 -0
- package/dist/audit-BVYknW2i.js.map +1 -0
- package/dist/auth-CXmBdMqw.js +2 -0
- package/dist/auth-D-GmwNv-.js +550 -0
- package/dist/auth-D-GmwNv-.js.map +1 -0
- package/dist/brand--ZB8jTn1.js +32 -0
- package/dist/brand--ZB8jTn1.js.map +1 -0
- package/dist/bus-Cz0flS37.js +12 -0
- package/dist/bus-Cz0flS37.js.map +1 -0
- package/dist/bus-OKIGut72.js +2 -0
- package/dist/cli.js +234 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands-BNVLjYXA.js +167 -0
- package/dist/commands-BNVLjYXA.js.map +1 -0
- package/dist/commands-CdA6-WE7.js +112 -0
- package/dist/commands-CdA6-WE7.js.map +1 -0
- package/dist/config-C9XmYZWO.js +94 -0
- package/dist/config-C9XmYZWO.js.map +1 -0
- package/dist/config-CNVi0v5t.js +2 -0
- package/dist/connect-TtJ9n0Rw.js +362 -0
- package/dist/connect-TtJ9n0Rw.js.map +1 -0
- package/dist/content-C1lKMxFS.js +1170 -0
- package/dist/content-C1lKMxFS.js.map +1 -0
- package/dist/content-worker.js +28 -0
- package/dist/content-worker.js.map +1 -0
- package/dist/crypto-fv2fj3S8.js +75 -0
- package/dist/crypto-fv2fj3S8.js.map +1 -0
- package/dist/db-BEUEUPyP.js +561 -0
- package/dist/db-BEUEUPyP.js.map +1 -0
- package/dist/db-Q5BQuwga.js +2 -0
- package/dist/errors-FbMS3QBo.js +39 -0
- package/dist/errors-FbMS3QBo.js.map +1 -0
- package/dist/filter-Ck6OMxvu.js +158 -0
- package/dist/filter-Ck6OMxvu.js.map +1 -0
- package/dist/hermes-CKyzt1mH.js +3 -0
- package/dist/hermes-DHnDTYJp.js +1023 -0
- package/dist/hermes-DHnDTYJp.js.map +1 -0
- package/dist/import-DsN5NZT3.js +910 -0
- package/dist/import-DsN5NZT3.js.map +1 -0
- package/dist/instance-CwWbFbJ8.js +2 -0
- package/dist/instance-Dj9TpJB2.js +195 -0
- package/dist/instance-Dj9TpJB2.js.map +1 -0
- package/dist/listen-B9iO7HgQ.js +1568 -0
- package/dist/listen-B9iO7HgQ.js.map +1 -0
- package/dist/listen-CXVKG9XD.js +2 -0
- package/dist/manage-Bo6COB4p.js +477 -0
- package/dist/manage-Bo6COB4p.js.map +1 -0
- package/dist/manage-DoXqvjnU.js +2 -0
- package/dist/mcpheader-B8c5YO1B.js +2 -0
- package/dist/mcpheader-C9H4vudu.js +185 -0
- package/dist/mcpheader-C9H4vudu.js.map +1 -0
- package/dist/mcpsetup-BnHudwpq.js +2 -0
- package/dist/mcpsetup-DXXo2qjf.js +1053 -0
- package/dist/mcpsetup-DXXo2qjf.js.map +1 -0
- package/dist/node-check-CjTk6VNL.js +24 -0
- package/dist/node-check-CjTk6VNL.js.map +1 -0
- package/dist/paths-d-C2kdjo.js +2 -0
- package/dist/paths-yzOKD6ow.js +46 -0
- package/dist/paths-yzOKD6ow.js.map +1 -0
- package/dist/profile-CcMZ4hn7.js +2 -0
- package/dist/profile-NmMKAczz.js +222 -0
- package/dist/profile-NmMKAczz.js.map +1 -0
- package/dist/prompt-CKMQx_MJ.js +114 -0
- package/dist/prompt-CKMQx_MJ.js.map +1 -0
- package/dist/recipes-C7TIDlRj.js +3 -0
- package/dist/recipes-DG_-doGq.js +314 -0
- package/dist/recipes-DG_-doGq.js.map +1 -0
- package/dist/send-Dk-t8ia-.js +108 -0
- package/dist/send-Dk-t8ia-.js.map +1 -0
- package/dist/server-CDqDp1q3.js +20640 -0
- package/dist/server-CDqDp1q3.js.map +1 -0
- package/dist/service-BVn3soZZ.js +766 -0
- package/dist/service-BVn3soZZ.js.map +1 -0
- package/dist/service-BaWGPmSd.js +2 -0
- package/dist/service-C7jfo-Ex.js +457 -0
- package/dist/service-C7jfo-Ex.js.map +1 -0
- package/dist/service-DxDyKDQ-.js +2 -0
- package/dist/settings-B5qSHxRM.js +134 -0
- package/dist/settings-B5qSHxRM.js.map +1 -0
- package/dist/settings-DQvZaMN1.js +2 -0
- package/dist/setup-token-CwuSzfLK.js +48 -0
- package/dist/setup-token-CwuSzfLK.js.map +1 -0
- package/dist/skill/SKILL.md +445 -0
- package/dist/skill-1UQj3qgW.js +69 -0
- package/dist/skill-1UQj3qgW.js.map +1 -0
- package/dist/skill-pelq18JQ.js +2 -0
- package/dist/ssrf-BlVpGZ7C.js +181 -0
- package/dist/ssrf-BlVpGZ7C.js.map +1 -0
- package/dist/types-BhJDbSzE.js +135 -0
- package/dist/types-BhJDbSzE.js.map +1 -0
- package/dist/ui-B8Sd4Y7Y.js +81 -0
- package/dist/ui-B8Sd4Y7Y.js.map +1 -0
- package/dist/urls-Dp8pBGMU.js +2 -0
- package/dist/urls-U_LfYV61.js +27 -0
- package/dist/urls-U_LfYV61.js.map +1 -0
- package/dist/version-BxH7OuWD.js +20 -0
- package/dist/version-BxH7OuWD.js.map +1 -0
- package/dist/web/assets/_agentId-DonOCOlC.js +1 -0
- package/dist/web/assets/_app-B7t5lEia.js +1 -0
- package/dist/web/assets/_app-DMTGqYpM.js +65 -0
- package/dist/web/assets/_connectionId-DR5vFXOg.js +1 -0
- package/dist/web/assets/_webhookId-LfUlsULp.js +1 -0
- package/dist/web/assets/account-status-CEszs13C.js +1 -0
- package/dist/web/assets/accounts-5m7aiXuZ.js +1 -0
- package/dist/web/assets/accounts-list-YfJzThZa.js +1 -0
- package/dist/web/assets/activity-DOIe7SAg.js +1 -0
- package/dist/web/assets/add-connection-C8JR-13R.js +1 -0
- package/dist/web/assets/agent-create-form-CPxnPYH4.js +1 -0
- package/dist/web/assets/agents-B2Qj5KxT.js +1 -0
- package/dist/web/assets/approvals-BGaVaoFy.js +1 -0
- package/dist/web/assets/approve._id-BLrQnzPM.js +1 -0
- package/dist/web/assets/arrow-left-DZVAXoKj.js +1 -0
- package/dist/web/assets/arrow-right-C2zcqRr2.js +1 -0
- package/dist/web/assets/attention-gO9Nw5uW.js +1 -0
- package/dist/web/assets/audit-BPXXre8S.js +1 -0
- package/dist/web/assets/audit-bits-CGyIprzK.js +1 -0
- package/dist/web/assets/bell-ring-ig3zn1iS.js +1 -0
- package/dist/web/assets/bot-Zk76q_39.js +1 -0
- package/dist/web/assets/calendar-notice-DsCfq3VJ.js +1 -0
- package/dist/web/assets/calendar-plus-Cycfkk0y.js +1 -0
- package/dist/web/assets/calendar-setup-Pn61Wj1n.js +2 -0
- package/dist/web/assets/card-GSO5o-Ug.js +1 -0
- package/dist/web/assets/check-check-Ds1bPIGv.js +1 -0
- package/dist/web/assets/checkbox-B937U-Fd.js +1 -0
- package/dist/web/assets/chevron-right-Cqh4mDk1.js +1 -0
- package/dist/web/assets/chips-input-2xWDofmE.js +1 -0
- package/dist/web/assets/choice-cards-CgAIqBGX.js +1 -0
- package/dist/web/assets/circle-x-DcU-0zVh.js +1 -0
- package/dist/web/assets/command-khhto70y.js +1 -0
- package/dist/web/assets/common-BPZV8TFb.js +1 -0
- package/dist/web/assets/connect-agent-guide-CJdw31p2.js +1 -0
- package/dist/web/assets/connect-host-lr2c3xWh.js +6 -0
- package/dist/web/assets/connection-row-DYx_5o0c.js +1 -0
- package/dist/web/assets/connections-C4NOFb5R.js +1 -0
- package/dist/web/assets/data-table-kW1pkRB5.js +1 -0
- package/dist/web/assets/empty-DzTDioBP.js +1 -0
- package/dist/web/assets/events-C9zJnPKK.js +1 -0
- package/dist/web/assets/eye-B9gT1QSq.js +1 -0
- package/dist/web/assets/eye-off-Diktqz_g.js +1 -0
- package/dist/web/assets/field-C6ejurju.js +1 -0
- package/dist/web/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/dist/web/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/dist/web/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/dist/web/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/dist/web/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2 +0 -0
- package/dist/web/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2 +0 -0
- package/dist/web/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2 +0 -0
- package/dist/web/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2 +0 -0
- package/dist/web/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2 +0 -0
- package/dist/web/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2 +0 -0
- package/dist/web/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/dist/web/assets/get-started-C38bq1gZ.js +2 -0
- package/dist/web/assets/hidden-chars-Dr9TxfvF.js +1 -0
- package/dist/web/assets/index-DGzo3kGh.js +11 -0
- package/dist/web/assets/index-zKOCQLGX.css +2 -0
- package/dist/web/assets/input-CWwJgozn.js +1 -0
- package/dist/web/assets/input-group-HG8OXcJ4.js +1 -0
- package/dist/web/assets/label-multi-select-sH8mllw8.js +1 -0
- package/dist/web/assets/labels-B5UqVwFo.js +1 -0
- package/dist/web/assets/laptop-BxJ4Nbj7.js +1 -0
- package/dist/web/assets/last-call-D-O5O94z.js +1 -0
- package/dist/web/assets/listener-handled-HNCuVrQ7.js +1 -0
- package/dist/web/assets/login-DaeKclcf.js +1 -0
- package/dist/web/assets/mail-C5fm2pTC.js +1 -0
- package/dist/web/assets/mcp-call-UoOTPFyh.js +1 -0
- package/dist/web/assets/mcp-call-card-Cr-OEDX2.js +3 -0
- package/dist/web/assets/message-square-quote-se8Bf3RP.js +1 -0
- package/dist/web/assets/mutations-CLPqJ6cj.js +1 -0
- package/dist/web/assets/network-igNw0VVx.js +1 -0
- package/dist/web/assets/pairing-XjuaVr2u.js +1 -0
- package/dist/web/assets/pairing-notifier-KPzOEZSO.js +1 -0
- package/dist/web/assets/paperclip-znS4iTrg.js +1 -0
- package/dist/web/assets/password-input-DV3aqcNf.js +1 -0
- package/dist/web/assets/pause-o-dK3khK.js +1 -0
- package/dist/web/assets/pencil-DkPFAhEq.js +1 -0
- package/dist/web/assets/play-DvCHND93.js +1 -0
- package/dist/web/assets/plug-CXAniEiR.js +1 -0
- package/dist/web/assets/plug-zap-BwR-l5wb.js +1 -0
- package/dist/web/assets/plus-B_TUslu3.js +1 -0
- package/dist/web/assets/preload-helper-Cc_aKyUb.js +1 -0
- package/dist/web/assets/public-url-rF2Xjyel.js +1 -0
- package/dist/web/assets/queries-Cv3nXx0U.js +42 -0
- package/dist/web/assets/refresh-cw-Ch5FNrby.js +1 -0
- package/dist/web/assets/revealed-keys-C_9NtJPY.js +1 -0
- package/dist/web/assets/rolldown-runtime-XKyaHtl9.js +1 -0
- package/dist/web/assets/rotate-ccw-B-mzPDk0.js +1 -0
- package/dist/web/assets/search-CTVKGomS.js +1 -0
- package/dist/web/assets/select-Bb806bpq.js +1 -0
- package/dist/web/assets/send-DuMVuYs1.js +1 -0
- package/dist/web/assets/settings-BWauhfFf.js +1 -0
- package/dist/web/assets/setup-B7bNKQOp.js +1 -0
- package/dist/web/assets/sheet-CYPwpUsH.js +1 -0
- package/dist/web/assets/shield-alert-CSYB-ThV.js +1 -0
- package/dist/web/assets/shield-check-BulpsYqK.js +1 -0
- package/dist/web/assets/sparkles-CUTiob4K.js +1 -0
- package/dist/web/assets/stamp-BNXUGNa3.js +1 -0
- package/dist/web/assets/step-url-51aMNak-.js +1 -0
- package/dist/web/assets/stream-Du7fY5_Y.js +1 -0
- package/dist/web/assets/tag-I5_-1jFL.js +1 -0
- package/dist/web/assets/terminal-BvxDFTJc.js +1 -0
- package/dist/web/assets/test-email-button-DYi7V_6X.js +1 -0
- package/dist/web/assets/toggle-group-Bdo1gmQ1.js +1 -0
- package/dist/web/assets/trash-Ci0aICEl.js +1 -0
- package/dist/web/assets/use-delivery-speed-BBh7W2q6.js +1 -0
- package/dist/web/assets/use-label-names-BXicesnP.js +1 -0
- package/dist/web/assets/use-sign-out-CPrY_oVO.js +1 -0
- package/dist/web/assets/useInfiniteQuery-DJLIM8yJ.js +1 -0
- package/dist/web/assets/useQuery-MrTwwNy5.js +1 -0
- package/dist/web/assets/useRouterState-D4OBK8l5.js +1 -0
- package/dist/web/assets/webhook-DjeeZiNC.js +1 -0
- package/dist/web/assets/webhook-bits-jw-y2D3u.js +1 -0
- package/dist/web/assets/webhook-sheet-B8h0skDe.js +34 -0
- package/dist/web/assets/webhooks-Cfsdpoyd.js +1 -0
- package/dist/web/assets/x-MF2TZ9aG.js +1 -0
- package/dist/web/favicon.svg +1 -0
- package/dist/web/index.html +27 -0
- package/package.json +98 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-Dk-t8ia-.js","names":[],"sources":["../server/webhooks/send.ts"],"sourcesContent":["import { createHmac, randomBytes } from \"node:crypto\";\nimport http from \"node:http\";\nimport https from \"node:https\";\nimport type { LookupFunction } from \"node:net\";\nimport type { ResolvedTarget } from \"./ssrf.ts\";\n\n/** Standard Webhooks secret: \"whsec_\" + base64 of 24 random bytes. */\nexport const newSecret = (): string => `whsec_${randomBytes(24).toString(\"base64\")}`;\n/** \"whsec_\" plus 4 characters: enough to tell secrets apart, too little to help guess one. */\nexport const secretPrefix = (secret: string): string => secret.slice(0, 10);\n\n/**\n * Standard Webhooks signature (https://www.standardwebhooks.com): base64 HMAC-SHA256 over\n * \"{id}.{timestamp}.{body}\", keyed with the base64-decoded part of the secret after \"whsec_\".\n */\nexport function sign(secret: string, id: string, timestamp: number, body: string): string {\n const key = Buffer.from(secret.startsWith(\"whsec_\") ? secret.slice(6) : secret, \"base64\");\n return `v1,${createHmac(\"sha256\", key).update(`${id}.${timestamp}.${body}`).digest(\"base64\")}`;\n}\n\nexport interface SendResult {\n statusCode: number | null;\n /** First 500 characters of the response body. */\n response: string | null;\n error: string | null;\n durationMs: number;\n}\n\nconst MAX_RESPONSE_BYTES = 64 * 1024;\nconst RESPONSE_CHARS = 500;\n\n/**\n * POSTs the body to `url`, connecting only to the pre-validated `target` address (TLS still\n * verifies the URL's hostname). Never follows redirects and never throws.\n */\nexport function postPinned(\n url: URL,\n target: ResolvedTarget,\n headers: Record<string, string>,\n body: string,\n opts: { timeoutMs: number; signal?: AbortSignal },\n): Promise<SendResult> {\n const started = performance.now();\n const lookup: LookupFunction = (_hostname, options, cb) => {\n if (options.all) cb(null, [{ address: target.address, family: target.family }]);\n else cb(null, target.address, target.family);\n };\n const signal = opts.signal ? AbortSignal.any([opts.signal, AbortSignal.timeout(opts.timeoutMs)]) : AbortSignal.timeout(opts.timeoutMs);\n const mod = url.protocol === \"https:\" ? https : http;\n\n return new Promise<SendResult>((resolve) => {\n let settled = false;\n const done = (r: Omit<SendResult, \"durationMs\">) => {\n if (settled) return;\n settled = true;\n resolve({ ...r, durationMs: Math.round(performance.now() - started) });\n };\n const req = mod.request(\n url,\n {\n method: \"POST\",\n headers: { ...headers, \"content-length\": String(Buffer.byteLength(body)) },\n lookup,\n signal,\n agent: false,\n },\n (res) => {\n const chunks: Buffer[] = [];\n let size = 0;\n res.on(\"data\", (chunk: Buffer) => {\n if (size < MAX_RESPONSE_BYTES) chunks.push(chunk);\n size += chunk.length;\n });\n res.on(\"error\", (err) => done({ statusCode: res.statusCode ?? null, response: null, error: describe(err, opts.timeoutMs) }));\n res.on(\"close\", () => {\n if (!res.complete) done({ statusCode: res.statusCode ?? null, response: null, error: signal.aborted ? describe(signal.reason as Error, opts.timeoutMs) : \"Response was cut off\" });\n });\n res.on(\"end\", () => {\n const status = res.statusCode ?? 0;\n const text = Buffer.concat(chunks).toString(\"utf8\").slice(0, RESPONSE_CHARS);\n let error: string | null = null;\n if (status >= 300 && status < 400) {\n const location = res.headers.location;\n error = `Receiver redirected (${status}${location ? ` to ${location}` : \"\"}); redirects are not followed, point the webhook at the final URL`;\n } else if (status < 200 || status >= 300) {\n error = `Receiver responded ${status}${res.statusMessage ? ` ${res.statusMessage}` : \"\"}`;\n }\n done({ statusCode: status, response: text || null, error });\n });\n },\n );\n req.on(\"error\", (err) => done({ statusCode: null, response: null, error: describe(err, opts.timeoutMs) }));\n req.end(body);\n });\n}\n\nfunction describe(err: Error, timeoutMs: number): string {\n const code = (err as NodeJS.ErrnoException).code;\n const cause = (err as { cause?: unknown }).cause;\n if (err.name === \"AbortError\" && cause instanceof Error && cause.name === \"TimeoutError\") return `Timed out after ${timeoutMs / 1000} s`;\n if (err.name === \"TimeoutError\") return `Timed out after ${timeoutMs / 1000} s`;\n if (code === \"ECONNREFUSED\") return \"Connection refused\";\n if (code === \"ECONNRESET\") return \"Connection reset by the receiver\";\n return code ? `${err.message} (${code})` : err.message;\n}\n"],"mappings":";;;;;;AAOA,MAAa,kBAA0B,SAAS,YAAY,EAAE,CAAC,CAAC,SAAS,QAAQ;;AAEjF,MAAa,gBAAgB,WAA2B,OAAO,MAAM,GAAG,EAAE;;;;;AAM1E,SAAgB,KAAK,QAAgB,IAAY,WAAmB,MAAsB;CACxF,MAAM,MAAM,OAAO,KAAK,OAAO,WAAW,QAAQ,IAAI,OAAO,MAAM,CAAC,IAAI,QAAQ,QAAQ;CACxF,OAAO,MAAM,WAAW,UAAU,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC,OAAO,QAAQ;AAC7F;AAUA,MAAM,qBAAqB;AAC3B,MAAM,iBAAiB;;;;;AAMvB,SAAgB,WACd,KACA,QACA,SACA,MACA,MACqB;CACrB,MAAM,UAAU,YAAY,IAAI;CAChC,MAAM,UAA0B,WAAW,SAAS,OAAO;EACzD,IAAI,QAAQ,KAAK,GAAG,MAAM,CAAC;GAAE,SAAS,OAAO;GAAS,QAAQ,OAAO;EAAO,CAAC,CAAC;OACzE,GAAG,MAAM,OAAO,SAAS,OAAO,MAAM;CAC7C;CACA,MAAM,SAAS,KAAK,SAAS,YAAY,IAAI,CAAC,KAAK,QAAQ,YAAY,QAAQ,KAAK,SAAS,CAAC,CAAC,IAAI,YAAY,QAAQ,KAAK,SAAS;CACrI,MAAM,MAAM,IAAI,aAAa,WAAW,QAAQ;CAEhD,OAAO,IAAI,SAAqB,YAAY;EAC1C,IAAI,UAAU;EACd,MAAM,QAAQ,MAAsC;GAClD,IAAI,SAAS;GACb,UAAU;GACV,QAAQ;IAAE,GAAG;IAAG,YAAY,KAAK,MAAM,YAAY,IAAI,IAAI,OAAO;GAAE,CAAC;EACvE;EACA,MAAM,MAAM,IAAI,QACd,KACA;GACE,QAAQ;GACR,SAAS;IAAE,GAAG;IAAS,kBAAkB,OAAO,OAAO,WAAW,IAAI,CAAC;GAAE;GACzE;GACA;GACA,OAAO;EACT,IACC,QAAQ;GACP,MAAM,SAAmB,CAAC;GAC1B,IAAI,OAAO;GACX,IAAI,GAAG,SAAS,UAAkB;IAChC,IAAI,OAAO,oBAAoB,OAAO,KAAK,KAAK;IAChD,QAAQ,MAAM;GAChB,CAAC;GACD,IAAI,GAAG,UAAU,QAAQ,KAAK;IAAE,YAAY,IAAI,cAAc;IAAM,UAAU;IAAM,OAAO,SAAS,KAAK,KAAK,SAAS;GAAE,CAAC,CAAC;GAC3H,IAAI,GAAG,eAAe;IACpB,IAAI,CAAC,IAAI,UAAU,KAAK;KAAE,YAAY,IAAI,cAAc;KAAM,UAAU;KAAM,OAAO,OAAO,UAAU,SAAS,OAAO,QAAiB,KAAK,SAAS,IAAI;IAAuB,CAAC;GACnL,CAAC;GACD,IAAI,GAAG,aAAa;IAClB,MAAM,SAAS,IAAI,cAAc;IACjC,MAAM,OAAO,OAAO,OAAO,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,MAAM,GAAG,cAAc;IAC3E,IAAI,QAAuB;IAC3B,IAAI,UAAU,OAAO,SAAS,KAAK;KACjC,MAAM,WAAW,IAAI,QAAQ;KAC7B,QAAQ,wBAAwB,SAAS,WAAW,OAAO,aAAa,GAAG;IAC7E,OAAO,IAAI,SAAS,OAAO,UAAU,KACnC,QAAQ,sBAAsB,SAAS,IAAI,gBAAgB,IAAI,IAAI,kBAAkB;IAEvF,KAAK;KAAE,YAAY;KAAQ,UAAU,QAAQ;KAAM;IAAM,CAAC;GAC5D,CAAC;EACH,CACF;EACA,IAAI,GAAG,UAAU,QAAQ,KAAK;GAAE,YAAY;GAAM,UAAU;GAAM,OAAO,SAAS,KAAK,KAAK,SAAS;EAAE,CAAC,CAAC;EACzG,IAAI,IAAI,IAAI;CACd,CAAC;AACH;AAEA,SAAS,SAAS,KAAY,WAA2B;CACvD,MAAM,OAAQ,IAA8B;CAC5C,MAAM,QAAS,IAA4B;CAC3C,IAAI,IAAI,SAAS,gBAAgB,iBAAiB,SAAS,MAAM,SAAS,gBAAgB,OAAO,mBAAmB,YAAY,IAAK;CACrI,IAAI,IAAI,SAAS,gBAAgB,OAAO,mBAAmB,YAAY,IAAK;CAC5E,IAAI,SAAS,gBAAgB,OAAO;CACpC,IAAI,SAAS,cAAc,OAAO;CAClC,OAAO,OAAO,GAAG,IAAI,QAAQ,IAAI,KAAK,KAAK,IAAI;AACjD"}
|