@kya-os/mcp-i-cloudflare 1.5.8-canary.29 → 1.5.8-canary.30
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/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +82 -0
- package/dist/agent.js.map +1 -1
- package/package.json +1 -1
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAK9C,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,gBAAgB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,uBAAuB,CAAC;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,qBACf,SAAQ,IAAI,CACV,aAAa,EACX,aAAa,GACb,eAAe,GACf,kBAAkB,GAClB,oBAAoB,GACpB,oBAAoB,CACvB;IACD,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAAC;IACrE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,kBAAkB,CAAC,EAAE,WAAW,CAAC;CAClC;AAQD;;;;;;;;;;GAUG;AACH,8BAAsB,mBAAoB,SAAQ,QAAQ;IAIxD,MAAM,EAGA,GAAG,CAAC;IAEV,SAAS,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAC1C,SAAS,CAAC,GAAG,EAAE,qBAAqB,CAAC;IACrC,OAAO,CAAC,OAAO,CAAC,CAA6B;gBAEjC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,qBAAqB;IAiFjE;;;OAGG;IACH,MAAM,CAAC,eAAe,CACpB,UAAU,EAAE,OAAO,mBAAmB,EACtC,OAAO,EAAE,0BAA0B,GAClC,IAAI;IAIP;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAExD;;;OAGG;cACa,oBAAoB,CAClC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,GAAG,OAAO,EAEjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,GACzC,OAAO,CAAC,OAAO,CAAC;IA2InB;;OAEG;IACH,aAAa,IAAI,MAAM;CA0BxB"}
|
package/dist/agent.js
CHANGED
|
@@ -10,6 +10,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
10
10
|
import { CloudflareRuntime } from "./runtime";
|
|
11
11
|
import { createCloudflareRuntime } from "./index";
|
|
12
12
|
import { mapPrefixedEnv } from "./helpers/env-mapper";
|
|
13
|
+
import { STORAGE_KEYS } from "./constants/storage-keys";
|
|
13
14
|
// Global registry for agent options (set by createMCPIApp)
|
|
14
15
|
const agentOptionsRegistry = new Map();
|
|
15
16
|
/**
|
|
@@ -138,6 +139,86 @@ export class MCPICloudflareAgent extends McpAgent {
|
|
|
138
139
|
// Auto-add https:// if protocol missing
|
|
139
140
|
serverUrl = `https://${serverUrl}`;
|
|
140
141
|
}
|
|
142
|
+
// ✅ Look up delegation token from KV storage (3-priority system)
|
|
143
|
+
let delegationToken;
|
|
144
|
+
const delegationStorage = mappedEnv.DELEGATION_STORAGE;
|
|
145
|
+
if (delegationStorage) {
|
|
146
|
+
try {
|
|
147
|
+
const agentDid = (await this.mcpiRuntime.getIdentity()).did;
|
|
148
|
+
console.log("[MCPICloudflareAgent] 🔍 Starting delegation token lookup:", {
|
|
149
|
+
sessionId: sessionId.slice(0, 20) + "...",
|
|
150
|
+
agentDid: agentDid.slice(0, 20) + "...",
|
|
151
|
+
hasDelegationStorage: !!delegationStorage,
|
|
152
|
+
});
|
|
153
|
+
// PRIORITY 1: Agent-scoped token (most reliable, stable across sessions)
|
|
154
|
+
const agentKey = STORAGE_KEYS.legacyDelegation(agentDid);
|
|
155
|
+
console.log("[MCPICloudflareAgent] 🔍 PRIORITY 1: Checking agent-scoped key:", {
|
|
156
|
+
key: agentKey,
|
|
157
|
+
agentDid: agentDid.slice(0, 20) + "...",
|
|
158
|
+
});
|
|
159
|
+
delegationToken = await delegationStorage.get(agentKey, "text");
|
|
160
|
+
console.log("[MCPICloudflareAgent] 🔍 PRIORITY 1: Agent-scoped lookup result:", {
|
|
161
|
+
found: !!delegationToken,
|
|
162
|
+
tokenLength: delegationToken?.length || 0,
|
|
163
|
+
});
|
|
164
|
+
// PRIORITY 2: User+Agent scoped token (if userDid is available)
|
|
165
|
+
if (!delegationToken) {
|
|
166
|
+
// Try to get userDid from session cache
|
|
167
|
+
const sessionKey = STORAGE_KEYS.session(sessionId);
|
|
168
|
+
const sessionData = (await delegationStorage.get(sessionKey, "json"));
|
|
169
|
+
const userDid = sessionData?.userDid;
|
|
170
|
+
if (userDid) {
|
|
171
|
+
const userAgentKey = STORAGE_KEYS.delegation(userDid, agentDid);
|
|
172
|
+
console.log("[MCPICloudflareAgent] 🔍 PRIORITY 2: Checking user+agent scoped key:", {
|
|
173
|
+
key: userAgentKey,
|
|
174
|
+
userDid: userDid.slice(0, 20) + "...",
|
|
175
|
+
agentDid: agentDid.slice(0, 20) + "...",
|
|
176
|
+
});
|
|
177
|
+
const userAgentToken = await delegationStorage.get(userAgentKey, "text");
|
|
178
|
+
console.log("[MCPICloudflareAgent] 🔍 PRIORITY 2: User+agent scoped lookup result:", {
|
|
179
|
+
found: !!userAgentToken,
|
|
180
|
+
tokenLength: userAgentToken?.length || 0,
|
|
181
|
+
});
|
|
182
|
+
if (userAgentToken) {
|
|
183
|
+
delegationToken = userAgentToken;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// PRIORITY 3: Session-scoped token (if session ID persists)
|
|
188
|
+
if (!delegationToken) {
|
|
189
|
+
const sessionKey = STORAGE_KEYS.session(sessionId);
|
|
190
|
+
console.log("[MCPICloudflareAgent] 🔍 PRIORITY 3: Checking session-scoped key:", {
|
|
191
|
+
key: sessionKey,
|
|
192
|
+
sessionId: sessionId.slice(0, 20) + "...",
|
|
193
|
+
});
|
|
194
|
+
const sessionData = (await delegationStorage.get(sessionKey, "json"));
|
|
195
|
+
console.log("[MCPICloudflareAgent] 🔍 PRIORITY 3: Session-scoped lookup result:", {
|
|
196
|
+
found: !!sessionData,
|
|
197
|
+
hasDelegationToken: !!sessionData?.delegationToken,
|
|
198
|
+
tokenLength: sessionData?.delegationToken?.length || 0,
|
|
199
|
+
});
|
|
200
|
+
if (sessionData?.delegationToken) {
|
|
201
|
+
delegationToken = sessionData.delegationToken;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
if (delegationToken) {
|
|
205
|
+
console.log("[MCPICloudflareAgent] ✅ Delegation token retrieved:", {
|
|
206
|
+
sessionId: sessionId.slice(0, 20) + "...",
|
|
207
|
+
tokenLength: delegationToken.length,
|
|
208
|
+
source: "kv-storage",
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
console.log("[MCPICloudflareAgent] ⚠️ No delegation token found in KV storage:", {
|
|
213
|
+
sessionId: sessionId.slice(0, 20) + "...",
|
|
214
|
+
agentDid: agentDid.slice(0, 20) + "...",
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
console.warn("[MCPICloudflareAgent] Failed to retrieve delegation token:", error);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
141
222
|
const session = {
|
|
142
223
|
id: sessionId,
|
|
143
224
|
audience: "https://kya.vouched.id",
|
|
@@ -145,6 +226,7 @@ export class MCPICloudflareAgent extends McpAgent {
|
|
|
145
226
|
createdAt: timestamp,
|
|
146
227
|
expiresAt: timestamp + 30 * 60 * 1000, // 30 minutes
|
|
147
228
|
serverOrigin: serverUrl, // Use MCP_SERVER_URL for consent URL building
|
|
229
|
+
delegationToken, // ✅ Include token in session if found
|
|
148
230
|
};
|
|
149
231
|
// Execute tool with automatic proof generation
|
|
150
232
|
const result = await this.mcpiRuntime.processToolCall(toolName, args, handler, session);
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAgDxD,2DAA2D;AAC3D,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAGjC,CAAC;AAEJ;;;;;;;;;;GAUG;AACH,MAAM,OAAgB,mBAAoB,SAAQ,QAAQ;IACxD,4FAA4F;IAC5F,yDAAyD;IACzD,sFAAsF;IACtF,MAAM,GAAG,IAAI,SAAS,CAAC;QACrB,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,OAAO;KACjB,CAAQ,CAAC;IAEA,WAAW,CAAqB;IAChC,GAAG,CAAwB;IAC7B,OAAO,CAA8B;IAE7C,YAAY,KAAyB,EAAE,GAA0B;QAC/D,kFAAkF;QAClF,uFAAuF;QACvF,KAAK,CAAC,KAAY,EAAE,GAAG,CAAC,CAAC;QAEzB,0EAA0E;QAC1E,MAAM,UAAU,GAAG,GAAG,CAAC,MAAoC,CAAC;QAC5D,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAErD,qDAAqD;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,mFAAmF,UAAU,CAAC,IAAI,GAAG,CACtG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,wEAAwE;QACxE,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO;SACzC,CAAQ,CAAC;QAEV,qDAAqD;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;YACtC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAC7C,CAAC,CAAE,GAAqB,CAAC;QAE3B,uCAAuC;QACtC,SAA2B,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAEzD,6BAA6B;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAE/D,+CAA+C;QAC/C,MAAM,qBAAqB,GACzB,aAAa,CAAC,cAAc;YAC5B,SAAS,CAAC,kBAAkB;YAC5B,SAAS,CAAC,mBAAmB;YAC3B,CAAC,CAAC,iBAAiB,CAAC,2BAA2B,CAC3C,SAAS,CAAC,kBAAkB,EAC5B;gBACE,MAAM,EACJ,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM;oBAChD,SAAS,CAAC,mBAAmB;oBAC7B,wBAAwB;gBAC1B,MAAM,EAAE,SAAS,CAAC,mBAAoB;gBACtC,SAAS,EACP,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS;oBACnD,SAAS,CAAC,sBAAsB;gBAClC,QAAQ,EACN,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,IAAI,MAAM;gBAC9D,KAAK,EAAE,aAAa,CAAC,WAAW,KAAK,aAAa;gBAClD,mEAAmE;gBACnE,uEAAuE;gBACvE,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,QAAQ;oBACnD,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,KAAK,SAAS;wBAClE,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,QAAe,CAAC,kBAAkB;wBACjE,CAAC,CAAC,EAAE,eAAe,EAAE,aAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,UAAU;oBAC5E,CAAC,CAAC,SAAS;aACd,CACF;YACH,CAAC,CAAC,SAAS,CAAC;QAEhB,2BAA2B;QAC3B,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;YACzC,GAAG,EAAE,SAAS;YACd,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,KAAK,EAAE;gBACL,OAAO,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI;gBAC7C,WAAW,EACT,aAAa,CAAC,KAAK,EAAE,WAAW;oBAChC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;aACrD;YACD,qBAAqB;YACrB,aAAa,EAAE,yDAAyD;SACzE,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,eAAe,CACpB,UAAsC,EACtC,OAAmC;QAEnC,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAE5D,6CAA6C;QAC7C,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAQD;;;OAGG;IACO,KAAK,CAAC,oBAAoB,CAIlC,QAAgB,EAChB,IAAW,EACX,OAA0C;QAE1C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,iBAAiB;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,SAAS,GACZ,IAAY,CAAC,YAAY,EAAE;YAC5B,aAAa,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAE1E,wEAAwE;QACxE,+DAA+D;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS;YACvC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAClD,CAAC,CAAE,IAAI,CAAC,GAAqB,CAAC;QAChC,IAAI,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC;QAEzC,iDAAiD;QACjD,IACE,SAAS;YACT,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;YAChC,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,EACjC,CAAC;YACD,wCAAwC;YACxC,SAAS,GAAG,WAAW,SAAS,EAAE,CAAC;QACrC,CAAC;QAED,iEAAiE;QACjE,IAAI,eAAmC,CAAC;QACxC,MAAM,iBAAiB,GAAG,SAAS,CAAC,kBAAyB,CAAC;QAE9D,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC;gBAE5D,OAAO,CAAC,GAAG,CAAC,4DAA4D,EAAE;oBACxE,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;oBACzC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;oBACvC,oBAAoB,EAAE,CAAC,CAAC,iBAAiB;iBAC1C,CAAC,CAAC;gBAEH,yEAAyE;gBACzE,MAAM,QAAQ,GAAG,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,iEAAiE,EAAE;oBAC7E,GAAG,EAAE,QAAQ;oBACb,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;iBACxC,CAAC,CAAC;gBACH,eAAe,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,kEAAkE,EAAE;oBAC9E,KAAK,EAAE,CAAC,CAAC,eAAe;oBACxB,WAAW,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;iBAC1C,CAAC,CAAC;gBAEH,gEAAgE;gBAChE,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,wCAAwC;oBACxC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBACnD,MAAM,WAAW,GAAG,CAAC,MAAM,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAE5D,CAAC;oBACT,MAAM,OAAO,GAAG,WAAW,EAAE,OAAO,CAAC;oBAErC,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;wBAChE,OAAO,CAAC,GAAG,CAAC,sEAAsE,EAAE;4BAClF,GAAG,EAAE,YAAY;4BACjB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;4BACrC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;yBACxC,CAAC,CAAC;wBACH,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;wBACzE,OAAO,CAAC,GAAG,CAAC,uEAAuE,EAAE;4BACnF,KAAK,EAAE,CAAC,CAAC,cAAc;4BACvB,WAAW,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;yBACzC,CAAC,CAAC;wBACH,IAAI,cAAc,EAAE,CAAC;4BACnB,eAAe,GAAG,cAAc,CAAC;wBACnC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,4DAA4D;gBAC5D,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBACnD,OAAO,CAAC,GAAG,CAAC,mEAAmE,EAAE;wBAC/E,GAAG,EAAE,UAAU;wBACf,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;qBAC1C,CAAC,CAAC;oBACH,MAAM,WAAW,GAAG,CAAC,MAAM,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAE5D,CAAC;oBACT,OAAO,CAAC,GAAG,CAAC,oEAAoE,EAAE;wBAChF,KAAK,EAAE,CAAC,CAAC,WAAW;wBACpB,kBAAkB,EAAE,CAAC,CAAC,WAAW,EAAE,eAAe;wBAClD,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;qBACvD,CAAC,CAAC;oBACH,IAAI,WAAW,EAAE,eAAe,EAAE,CAAC;wBACjC,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;oBAChD,CAAC;gBACH,CAAC;gBAED,IAAI,eAAe,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,qDAAqD,EAAE;wBACjE,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;wBACzC,WAAW,EAAE,eAAe,CAAC,MAAM;wBACnC,MAAM,EAAE,YAAY;qBACrB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,mEAAmE,EAAE;wBAC/E,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;wBACzC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;qBACxC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,KAAK,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,SAAS;YACb,QAAQ,EAAE,wBAAwB;YAClC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG;YACpD,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;YACpD,YAAY,EAAE,SAAS,EAAE,8CAA8C;YACvE,eAAe,EAAE,sCAAsC;SACxD,CAAC;QAEF,+CAA+C;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CACnD,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC;QAEF,OAAO,MAAiB,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,IAAI,CAAC;YACH,MAAM,SAAS,GAAI,IAAY,CAAC,YAAY,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,IAAI,SAAS,CAAC;YAE3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,WAAW,SAAS,EAAE,CAAC;YAChC,CAAC;iBAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;gBAC7D,MAAM,eAAe,GACnB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,IAAI,IAAI,GAAG,CAAC,CAAC;gBACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC1C,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACpD,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;gBACrB,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;gBAC/C,OAAO,SAAS,KAAK,EAAE,CAAC;YAC1B,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;YACnE,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF"}
|