run402-mcp 2.49.0 → 3.0.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 +5 -5
  2. package/dist/index.js +15 -15
  3. package/dist/index.js.map +1 -1
  4. package/dist/tools/contract-call.d.ts +2 -2
  5. package/dist/tools/contract-call.js +2 -2
  6. package/dist/tools/contract-call.js.map +1 -1
  7. package/dist/tools/contract-deploy.d.ts +2 -2
  8. package/dist/tools/contract-deploy.js +4 -4
  9. package/dist/tools/contract-deploy.js.map +1 -1
  10. package/dist/tools/delete-signer.d.ts +16 -0
  11. package/dist/tools/delete-signer.d.ts.map +1 -0
  12. package/dist/tools/delete-signer.js +17 -0
  13. package/dist/tools/delete-signer.js.map +1 -0
  14. package/dist/tools/{drain-contract-wallet.d.ts → drain-signer.d.ts} +5 -5
  15. package/dist/tools/drain-signer.d.ts.map +1 -0
  16. package/dist/tools/{drain-contract-wallet.js → drain-signer.js} +7 -7
  17. package/dist/tools/drain-signer.js.map +1 -0
  18. package/dist/tools/get-signer.d.ts +16 -0
  19. package/dist/tools/get-signer.d.ts.map +1 -0
  20. package/dist/tools/get-signer.js +17 -0
  21. package/dist/tools/get-signer.js.map +1 -0
  22. package/dist/tools/{list-contract-wallets.d.ts → list-signers.d.ts} +3 -3
  23. package/dist/tools/list-signers.d.ts.map +1 -0
  24. package/dist/tools/{list-contract-wallets.js → list-signers.js} +5 -5
  25. package/dist/tools/list-signers.js.map +1 -0
  26. package/dist/tools/{provision-contract-wallet.d.ts → provision-signer.d.ts} +3 -3
  27. package/dist/tools/provision-signer.d.ts.map +1 -0
  28. package/dist/tools/provision-signer.js +21 -0
  29. package/dist/tools/provision-signer.js.map +1 -0
  30. package/dist/tools/set-low-balance-alert.d.ts +2 -2
  31. package/dist/tools/set-low-balance-alert.js +2 -2
  32. package/dist/tools/set-low-balance-alert.js.map +1 -1
  33. package/dist/tools/set-recovery-address.d.ts +2 -2
  34. package/dist/tools/set-recovery-address.js +2 -2
  35. package/dist/tools/set-recovery-address.js.map +1 -1
  36. package/package.json +1 -1
  37. package/sdk/README.md +1 -1
  38. package/sdk/dist/namespaces/contracts.d.ts +38 -38
  39. package/sdk/dist/namespaces/contracts.d.ts.map +1 -1
  40. package/sdk/dist/namespaces/contracts.js +44 -44
  41. package/sdk/dist/namespaces/contracts.js.map +1 -1
  42. package/sdk/dist/namespaces/transfers.d.ts +3 -3
  43. package/sdk/dist/namespaces/transfers.d.ts.map +1 -1
  44. package/sdk/dist/scoped.d.ts +8 -8
  45. package/sdk/dist/scoped.js +14 -14
  46. package/dist/tools/delete-contract-wallet.d.ts +0 -16
  47. package/dist/tools/delete-contract-wallet.d.ts.map +0 -1
  48. package/dist/tools/delete-contract-wallet.js +0 -17
  49. package/dist/tools/delete-contract-wallet.js.map +0 -1
  50. package/dist/tools/drain-contract-wallet.d.ts.map +0 -1
  51. package/dist/tools/drain-contract-wallet.js.map +0 -1
  52. package/dist/tools/get-contract-wallet.d.ts +0 -16
  53. package/dist/tools/get-contract-wallet.d.ts.map +0 -1
  54. package/dist/tools/get-contract-wallet.js +0 -17
  55. package/dist/tools/get-contract-wallet.js.map +0 -1
  56. package/dist/tools/list-contract-wallets.d.ts.map +0 -1
  57. package/dist/tools/list-contract-wallets.js.map +0 -1
  58. package/dist/tools/provision-contract-wallet.d.ts.map +0 -1
  59. package/dist/tools/provision-contract-wallet.js +0 -21
  60. package/dist/tools/provision-contract-wallet.js.map +0 -1
@@ -227,20 +227,20 @@ class ScopedContracts {
227
227
  this.parent = parent;
228
228
  this.projectId = projectId;
229
229
  }
230
- provisionWallet(opts) {
231
- return this.parent.contracts.provisionWallet(this.projectId, opts);
230
+ provisionSigner(opts) {
231
+ return this.parent.contracts.provisionSigner(this.projectId, opts);
232
232
  }
233
- getWallet(walletId) {
234
- return this.parent.contracts.getWallet(this.projectId, walletId);
233
+ getSigner(signerId) {
234
+ return this.parent.contracts.getSigner(this.projectId, signerId);
235
235
  }
236
- listWallets() {
237
- return this.parent.contracts.listWallets(this.projectId);
236
+ listSigners() {
237
+ return this.parent.contracts.listSigners(this.projectId);
238
238
  }
239
- setRecovery(walletId, recoveryAddress) {
240
- return this.parent.contracts.setRecovery(this.projectId, walletId, recoveryAddress);
239
+ setRecovery(signerId, recoveryAddress) {
240
+ return this.parent.contracts.setRecovery(this.projectId, signerId, recoveryAddress);
241
241
  }
242
- setLowBalanceAlert(walletId, thresholdWei) {
243
- return this.parent.contracts.setLowBalanceAlert(this.projectId, walletId, thresholdWei);
242
+ setLowBalanceAlert(signerId, thresholdWei) {
243
+ return this.parent.contracts.setLowBalanceAlert(this.projectId, signerId, thresholdWei);
244
244
  }
245
245
  call(opts) {
246
246
  return this.parent.contracts.call(this.projectId, opts);
@@ -251,11 +251,11 @@ class ScopedContracts {
251
251
  callStatus(callId) {
252
252
  return this.parent.contracts.callStatus(this.projectId, callId);
253
253
  }
254
- drain(walletId, destinationAddress) {
255
- return this.parent.contracts.drain(this.projectId, walletId, destinationAddress);
254
+ drain(signerId, destinationAddress) {
255
+ return this.parent.contracts.drain(this.projectId, signerId, destinationAddress);
256
256
  }
257
- deleteWallet(walletId) {
258
- return this.parent.contracts.deleteWallet(this.projectId, walletId);
257
+ deleteSigner(signerId) {
258
+ return this.parent.contracts.deleteSigner(this.projectId, signerId);
259
259
  }
260
260
  // `read` is not project-scoped — pass through.
261
261
  read(opts) {
@@ -1,16 +0,0 @@
1
- import { z } from "zod";
2
- export declare const deleteContractWalletSchema: {
3
- project_id: z.ZodString;
4
- wallet_id: z.ZodString;
5
- };
6
- export declare function handleDeleteContractWallet(args: {
7
- project_id: string;
8
- wallet_id: string;
9
- }): Promise<{
10
- content: Array<{
11
- type: "text";
12
- text: string;
13
- }>;
14
- isError?: boolean;
15
- }>;
16
- //# sourceMappingURL=delete-contract-wallet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-contract-wallet.d.ts","sourceRoot":"","sources":["../../src/tools/delete-contract-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,0BAA0B;;;CAGtC,CAAC;AAEF,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAOhL"}
@@ -1,17 +0,0 @@
1
- import { z } from "zod";
2
- import { getSdk } from "../sdk.js";
3
- import { mapSdkError } from "../errors.js";
4
- export const deleteContractWalletSchema = {
5
- project_id: z.string().describe("The project ID"),
6
- wallet_id: z.string().describe("The KMS contract wallet ID. Schedules KMS key deletion (7-day window). Refused if balance >= dust — drain first."),
7
- };
8
- export async function handleDeleteContractWallet(args) {
9
- try {
10
- const body = await getSdk().contracts.deleteWallet(args.project_id, args.wallet_id);
11
- return { content: [{ type: "text", text: "## Wallet Deleted\n\n```json\n" + JSON.stringify(body, null, 2) + "\n```" }] };
12
- }
13
- catch (err) {
14
- return mapSdkError(err, "deleting wallet");
15
- }
16
- }
17
- //# sourceMappingURL=delete-contract-wallet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-contract-wallet.js","sourceRoot":"","sources":["../../src/tools/delete-contract-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kHAAkH,CAAC;CACnJ,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAA+C;IAC9F,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACpF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC;IAC3H,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"drain-contract-wallet.d.ts","sourceRoot":"","sources":["../../src/tools/drain-contract-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,yBAAyB;;;;CAIrC,CAAC;AAEF,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAO5M"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"drain-contract-wallet.js","sourceRoot":"","sources":["../../src/tools/drain-contract-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC5D,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sHAAsH,CAAC;CACjK,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAA4E;IAC1H,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACvG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC;IAC5H,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -1,16 +0,0 @@
1
- import { z } from "zod";
2
- export declare const getContractWalletSchema: {
3
- project_id: z.ZodString;
4
- wallet_id: z.ZodString;
5
- };
6
- export declare function handleGetContractWallet(args: {
7
- project_id: string;
8
- wallet_id: string;
9
- }): Promise<{
10
- content: Array<{
11
- type: "text";
12
- text: string;
13
- }>;
14
- isError?: boolean;
15
- }>;
16
- //# sourceMappingURL=get-contract-wallet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-contract-wallet.d.ts","sourceRoot":"","sources":["../../src/tools/get-contract-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,uBAAuB;;;CAGnC,CAAC;AAEF,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAO7K"}
@@ -1,17 +0,0 @@
1
- import { z } from "zod";
2
- import { getSdk } from "../sdk.js";
3
- import { mapSdkError } from "../errors.js";
4
- export const getContractWalletSchema = {
5
- project_id: z.string().describe("The project ID"),
6
- wallet_id: z.string().describe("The KMS contract wallet ID (cwlt_...)"),
7
- };
8
- export async function handleGetContractWallet(args) {
9
- try {
10
- const body = await getSdk().contracts.getWallet(args.project_id, args.wallet_id);
11
- return { content: [{ type: "text", text: "```json\n" + JSON.stringify(body, null, 2) + "\n```" }] };
12
- }
13
- catch (err) {
14
- return mapSdkError(err, "fetching wallet");
15
- }
16
- }
17
- //# sourceMappingURL=get-contract-wallet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-contract-wallet.js","sourceRoot":"","sources":["../../src/tools/get-contract-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CACxE,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAA+C;IAC3F,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACjF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC;IACtG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-contract-wallets.d.ts","sourceRoot":"","sources":["../../src/tools/list-contract-wallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,yBAAyB;;CAErC,CAAC;AAEF,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAO5J"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-contract-wallets.js","sourceRoot":"","sources":["../../src/tools/list-contract-wallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;CAClD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAA4B;IAC1E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC;IACtG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"provision-contract-wallet.d.ts","sourceRoot":"","sources":["../../src/tools/provision-contract-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,6BAA6B;;;;CAIzC,CAAC;AAEF,wBAAsB,6BAA6B,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAUnO"}
@@ -1,21 +0,0 @@
1
- import { z } from "zod";
2
- import { getSdk } from "../sdk.js";
3
- import { mapSdkError } from "../errors.js";
4
- export const provisionContractWalletSchema = {
5
- project_id: z.string().describe("The project ID"),
6
- chain: z.enum(["base-mainnet", "base-sepolia"]).describe("Which EVM chain. Cost: $0.04/day rental, requires $1.20 in cash credit at creation."),
7
- recovery_address: z.string().optional().describe("Optional 0x-prefixed address for auto-drain on day-90 deletion"),
8
- };
9
- export async function handleProvisionContractWallet(args) {
10
- try {
11
- const body = await getSdk().contracts.provisionWallet(args.project_id, {
12
- chain: args.chain,
13
- recoveryAddress: args.recovery_address,
14
- });
15
- return { content: [{ type: "text", text: "## KMS Contract Wallet Provisioned\n\n```json\n" + JSON.stringify(body, null, 2) + "\n```\n\n**Cost**: $0.04/day rental ($1.20/month) + $0.000005 per contract call. **Non-custodial** — see https://run402.com/humans/terms.html#non-custodial-kms-wallets" }] };
16
- }
17
- catch (err) {
18
- return mapSdkError(err, "provisioning KMS contract wallet");
19
- }
20
- }
21
- //# sourceMappingURL=provision-contract-wallet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provision-contract-wallet.js","sourceRoot":"","sources":["../../src/tools/provision-contract-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,qFAAqF,CAAC;IAC/I,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;CACnH,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,IAA+F;IACjJ,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE;YACrE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,eAAe,EAAE,IAAI,CAAC,gBAAgB;SACvC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iDAAiD,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,yKAAyK,EAAE,CAAC,EAAE,CAAC;IAC9S,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC"}