ue-mcp 1.0.19 → 1.0.21
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/privacy-scrub.d.ts +43 -0
- package/dist/privacy-scrub.js +59 -0
- package/dist/privacy-scrub.js.map +1 -0
- package/dist/tool-counts.json +2 -2
- package/dist/tools/feedback.js +97 -19
- package/dist/tools/feedback.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-side redaction of personal/project identifiers from feedback bodies
|
|
3
|
+
* before they hit the elicitation prompt or the GitHub POST. Applied
|
|
4
|
+
* unconditionally; the agent has no surface to bypass it and the user never
|
|
5
|
+
* sees the pre-scrubbed bytes outside the in-process call stack.
|
|
6
|
+
*
|
|
7
|
+
* Threat model: feedback issues post to a public tracker. The body the agent
|
|
8
|
+
* assembled may contain absolute paths, the OS username, the project name,
|
|
9
|
+
* etc. None of those carry signal a reader needs to understand the issue,
|
|
10
|
+
* and all of them carry privacy/confidentiality risk (NDA projects, machine
|
|
11
|
+
* fingerprinting, doxxing).
|
|
12
|
+
*
|
|
13
|
+
* What gets redacted:
|
|
14
|
+
*
|
|
15
|
+
* - The absolute project root path → REDACTED_PROJECT_ROOT
|
|
16
|
+
* - The OS home directory path → REDACTED_HOME
|
|
17
|
+
* - The project name as a whole word → REDACTED_PROJECT
|
|
18
|
+
* - The OS username as a whole word → REDACTED_USER
|
|
19
|
+
*
|
|
20
|
+
* Project/username matches use `\b` word boundaries (case-insensitive) so
|
|
21
|
+
* "david" inside paths or sentences matches but "davidson" does not. Class,
|
|
22
|
+
* component, and actor names are NOT redacted — the user can use the
|
|
23
|
+
* "Revise first" path on the approval prompt to request specific further
|
|
24
|
+
* redactions.
|
|
25
|
+
*/
|
|
26
|
+
export interface PrivacyScrubContext {
|
|
27
|
+
/** Absolute path to the .uproject's containing directory. */
|
|
28
|
+
projectRoot?: string;
|
|
29
|
+
/** Project name without the .uproject extension. */
|
|
30
|
+
projectName?: string;
|
|
31
|
+
/** OS username. Defaults to os.userInfo().username; tests pass an explicit value. */
|
|
32
|
+
username?: string;
|
|
33
|
+
/** OS home directory. Defaults to os.homedir(); tests pass an explicit value. */
|
|
34
|
+
homeDir?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface PrivacyScrubResult {
|
|
37
|
+
text: string;
|
|
38
|
+
hits: Array<{
|
|
39
|
+
rule: string;
|
|
40
|
+
count: number;
|
|
41
|
+
}>;
|
|
42
|
+
}
|
|
43
|
+
export declare function privacyScrub(input: string, ctx?: PrivacyScrubContext): PrivacyScrubResult;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as os from "node:os";
|
|
2
|
+
// Names shorter than this are not redacted as whole-word matches because the
|
|
3
|
+
// false-positive surface explodes. Project name "AI" would otherwise nuke
|
|
4
|
+
// every occurrence of "ai" in the body.
|
|
5
|
+
const MIN_WORD_LEN = 3;
|
|
6
|
+
function escapeRegex(s) {
|
|
7
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
8
|
+
}
|
|
9
|
+
export function privacyScrub(input, ctx = {}) {
|
|
10
|
+
let text = input;
|
|
11
|
+
const hits = [];
|
|
12
|
+
function record(rule, count) {
|
|
13
|
+
if (count > 0)
|
|
14
|
+
hits.push({ rule, count });
|
|
15
|
+
}
|
|
16
|
+
// Replace an absolute path under multiple separator conventions in one
|
|
17
|
+
// call. Source text may use \, /, or mixed paths depending on whether it
|
|
18
|
+
// came from execute_python output, JSON config, or a console log.
|
|
19
|
+
function replacePath(rawPath, replacement, rule) {
|
|
20
|
+
if (!rawPath || rawPath.length < MIN_WORD_LEN)
|
|
21
|
+
return;
|
|
22
|
+
const variants = new Set([
|
|
23
|
+
rawPath,
|
|
24
|
+
rawPath.replace(/\\/g, "/"),
|
|
25
|
+
rawPath.replace(/\//g, "\\"),
|
|
26
|
+
]);
|
|
27
|
+
let total = 0;
|
|
28
|
+
for (const v of variants) {
|
|
29
|
+
const re = new RegExp(escapeRegex(v), "gi");
|
|
30
|
+
text = text.replace(re, () => {
|
|
31
|
+
total++;
|
|
32
|
+
return replacement;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
record(rule, total);
|
|
36
|
+
}
|
|
37
|
+
function replaceWord(word, replacement, rule) {
|
|
38
|
+
if (!word || word.length < MIN_WORD_LEN)
|
|
39
|
+
return;
|
|
40
|
+
const re = new RegExp(`\\b${escapeRegex(word)}\\b`, "gi");
|
|
41
|
+
let count = 0;
|
|
42
|
+
text = text.replace(re, () => {
|
|
43
|
+
count++;
|
|
44
|
+
return replacement;
|
|
45
|
+
});
|
|
46
|
+
record(rule, count);
|
|
47
|
+
}
|
|
48
|
+
// ORDER MATTERS: replace longest/most-specific patterns first so the
|
|
49
|
+
// word-boundary passes don't fragment a string the path pass would
|
|
50
|
+
// otherwise have matched cleanly.
|
|
51
|
+
const home = ctx.homeDir ?? os.homedir();
|
|
52
|
+
const user = ctx.username ?? os.userInfo().username;
|
|
53
|
+
replacePath(ctx.projectRoot, "REDACTED_PROJECT_ROOT", "project-root-path");
|
|
54
|
+
replacePath(home, "REDACTED_HOME", "home-path");
|
|
55
|
+
replaceWord(ctx.projectName, "REDACTED_PROJECT", "project-name");
|
|
56
|
+
replaceWord(user, "REDACTED_USER", "username");
|
|
57
|
+
return { text, hits };
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=privacy-scrub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"privacy-scrub.js","sourceRoot":"","sources":["../src/privacy-scrub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AA4C9B,6EAA6E;AAC7E,0EAA0E;AAC1E,wCAAwC;AACxC,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,MAA2B,EAAE;IAE7B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,MAAM,IAAI,GAA2C,EAAE,CAAC;IAExD,SAAS,MAAM,CAAC,IAAY,EAAE,KAAa;QACzC,IAAI,KAAK,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,uEAAuE;IACvE,yEAAyE;IACzE,kEAAkE;IAClE,SAAS,WAAW,CAAC,OAA2B,EAAE,WAAmB,EAAE,IAAY;QACjF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,YAAY;YAAE,OAAO;QACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS;YAC/B,OAAO;YACP,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SAC7B,CAAC,CAAC;QACH,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE;gBAC3B,KAAK,EAAE,CAAC;gBACR,OAAO,WAAW,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,SAAS,WAAW,CAAC,IAAwB,EAAE,WAAmB,EAAE,IAAY;QAC9E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,YAAY;YAAE,OAAO;QAChD,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE;YAC3B,KAAK,EAAE,CAAC;YACR,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,qEAAqE;IACrE,mEAAmE;IACnE,kCAAkC;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;IAEpD,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,uBAAuB,EAAE,mBAAmB,CAAC,CAAC;IAC3E,WAAW,CAAC,IAAI,EAAa,eAAe,EAAU,WAAW,CAAC,CAAC;IACnE,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;IACjE,WAAW,CAAC,IAAI,EAAa,eAAe,EAAK,UAAU,CAAC,CAAC;IAE7D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
|
package/dist/tool-counts.json
CHANGED
package/dist/tools/feedback.js
CHANGED
|
@@ -4,6 +4,7 @@ import { submitFeedback } from "../github-app.js";
|
|
|
4
4
|
import { readUserAuth } from "../auth.js";
|
|
5
5
|
import { getWorkarounds, clearWorkarounds } from "../workaround-tracker.js";
|
|
6
6
|
import { scrubSecrets } from "../secret-scrub.js";
|
|
7
|
+
import { privacyScrub } from "../privacy-scrub.js";
|
|
7
8
|
import { warn } from "../log.js";
|
|
8
9
|
const PLACEHOLDER_TITLE_RE = /^(noop|nop|test|tests?|testing|x|y|z|todo|tbd|tba|ignore|ignored|stop|dummy|temp|tmp|placeholder|accidental|oops|cleanup|n\/?a|none|null|undefined|na|misc|\.+|-+)$/i;
|
|
9
10
|
const PLACEHOLDER_PHRASE_RE = /\b(ignore (previous|accidental|placeholder)|accidental (feedback|submission|tool call|placeholder)|placeholder feedback|stop accidental|cleanup needed|test submission)\b/i;
|
|
@@ -97,7 +98,7 @@ function inferLabels(title, summary, idealTool) {
|
|
|
97
98
|
labels.add("enhancement");
|
|
98
99
|
return [...labels];
|
|
99
100
|
}
|
|
100
|
-
function assemblePayload(title, summary, pythonWorkaround, idealTool) {
|
|
101
|
+
function assemblePayload(title, summary, pythonWorkaround, idealTool, privacy) {
|
|
101
102
|
const sections = ["## Summary", summary];
|
|
102
103
|
if (idealTool) {
|
|
103
104
|
sections.push("", "## Ideal Tool/Action", idealTool);
|
|
@@ -114,18 +115,42 @@ function assemblePayload(title, summary, pythonWorkaround, idealTool) {
|
|
|
114
115
|
}
|
|
115
116
|
sections.push("", "---", "*Submitted via ue-mcp agent feedback*");
|
|
116
117
|
const rawBody = sections.join("\n");
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
118
|
+
// Two-pass scrub. Order matters:
|
|
119
|
+
// 1. Secret-shaped strings (PEMs, API tokens, JWTs, env-style secrets).
|
|
120
|
+
// 2. Personal/project identifiers (project root path, home dir, project
|
|
121
|
+
// name, OS username). Applied second so a path that contained a
|
|
122
|
+
// secret-shaped substring has the secret redacted before we drop the
|
|
123
|
+
// surrounding path bytes.
|
|
124
|
+
// The agent has no surface to bypass either pass — both are applied here
|
|
125
|
+
// server-side before the body ever appears on the elicitation prompt or
|
|
126
|
+
// crosses the GitHub API boundary.
|
|
127
|
+
const secretsBody = scrubSecrets(rawBody);
|
|
128
|
+
const privacyBody = privacyScrub(secretsBody.text, {
|
|
129
|
+
projectRoot: privacy.projectRoot,
|
|
130
|
+
projectName: privacy.projectName,
|
|
131
|
+
});
|
|
132
|
+
const secretsTitle = scrubSecrets(title);
|
|
133
|
+
const privacyTitle = privacyScrub(secretsTitle.text, {
|
|
134
|
+
projectRoot: privacy.projectRoot,
|
|
135
|
+
projectName: privacy.projectName,
|
|
136
|
+
});
|
|
137
|
+
const allHits = [
|
|
138
|
+
...secretsBody.hits,
|
|
139
|
+
...privacyBody.hits,
|
|
140
|
+
...secretsTitle.hits,
|
|
141
|
+
...privacyTitle.hits,
|
|
142
|
+
];
|
|
143
|
+
const scrubHits = allHits.reduce((n, h) => n + h.count, 0);
|
|
121
144
|
if (scrubHits > 0) {
|
|
122
|
-
|
|
123
|
-
warn("feedback", `redacted ${scrubHits} secret-shaped strings before approval prompt: ${allHits.map((h) => `${h.rule}=${h.count}`).join(", ")}`);
|
|
145
|
+
warn("feedback", `redacted ${scrubHits} string(s) before approval prompt: ${allHits.map((h) => `${h.rule}=${h.count}`).join(", ")}`);
|
|
124
146
|
}
|
|
125
147
|
return {
|
|
126
|
-
title:
|
|
127
|
-
body:
|
|
128
|
-
labels
|
|
148
|
+
title: privacyTitle.text,
|
|
149
|
+
body: privacyBody.text,
|
|
150
|
+
// Inferred labels look at the (already-scrubbed) title + the
|
|
151
|
+
// user-supplied summary. summary feeds keyword detection (blueprint,
|
|
152
|
+
// niagara, etc.) which is structural classification, not user identity.
|
|
153
|
+
labels: inferLabels(privacyTitle.text, summary, idealTool),
|
|
129
154
|
scrubHits,
|
|
130
155
|
};
|
|
131
156
|
}
|
|
@@ -197,7 +222,10 @@ export const feedbackTool = categoryTool("feedback", "Submit feedback to improve
|
|
|
197
222
|
context: { code: "elicitation_unsupported" },
|
|
198
223
|
});
|
|
199
224
|
}
|
|
200
|
-
const payload = assemblePayload(title, summary, pythonWorkaround, idealTool
|
|
225
|
+
const payload = assemblePayload(title, summary, pythonWorkaround, idealTool, {
|
|
226
|
+
projectRoot: ctx.project?.projectDir ?? undefined,
|
|
227
|
+
projectName: ctx.project?.projectName ?? undefined,
|
|
228
|
+
});
|
|
201
229
|
// Two independent checks: (1) capture intent above, (2) validate
|
|
202
230
|
// auth here. Auth validation only matters when intent is "user".
|
|
203
231
|
// If validation fails, return a normal error directive — there is
|
|
@@ -242,11 +270,21 @@ export const feedbackTool = categoryTool("feedback", "Submit feedback to improve
|
|
|
242
270
|
properties: {
|
|
243
271
|
decision: {
|
|
244
272
|
type: "string",
|
|
245
|
-
title: "
|
|
246
|
-
description: "
|
|
247
|
-
enum: ["
|
|
273
|
+
title: "What should happen?",
|
|
274
|
+
description: "Choose how to handle this submission. \"Revise first\" returns your notes to the agent for a body rewrite, and nothing posts until you re-approve the revision.",
|
|
275
|
+
enum: ["submit", "revise", "decline"],
|
|
276
|
+
enumNames: [
|
|
277
|
+
"Submit as shown",
|
|
278
|
+
"Revise first",
|
|
279
|
+
"Decline (do not post)",
|
|
280
|
+
],
|
|
248
281
|
default: "decline",
|
|
249
282
|
},
|
|
283
|
+
revisions: {
|
|
284
|
+
type: "string",
|
|
285
|
+
title: "Revision notes (optional)",
|
|
286
|
+
description: "If you chose \"Revise first\", describe what the agent should change before resubmitting. Examples: redact a project path, soften a claim, drop a section.",
|
|
287
|
+
},
|
|
250
288
|
},
|
|
251
289
|
required: ["decision"],
|
|
252
290
|
},
|
|
@@ -268,13 +306,53 @@ export const feedbackTool = categoryTool("feedback", "Submit feedback to improve
|
|
|
268
306
|
const decision = typeof elicitResult.content?.decision === "string"
|
|
269
307
|
? elicitResult.content.decision
|
|
270
308
|
: "";
|
|
271
|
-
const
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
309
|
+
const revisions = typeof elicitResult.content?.revisions === "string"
|
|
310
|
+
? elicitResult.content.revisions.trim()
|
|
311
|
+
: "";
|
|
312
|
+
// Anything other than action="accept" + decision="submit" stops here.
|
|
313
|
+
// Outcomes:
|
|
314
|
+
// accept + submit → fall through to the GitHub POST below
|
|
315
|
+
// accept + revise → bounce revisions back to the agent for a rewrite
|
|
316
|
+
// accept + decline → declined (explicit in-form choice)
|
|
317
|
+
// decline / cancel → declined (form-level button)
|
|
318
|
+
if (elicitResult.action === "accept" && decision === "revise") {
|
|
319
|
+
// The user approved in principle but wants the body rewritten
|
|
320
|
+
// before anything posts. Hand the notes (or a request for them)
|
|
321
|
+
// back to the agent; agent revises the params and calls
|
|
322
|
+
// feedback(submit) again to surface a fresh approval prompt.
|
|
323
|
+
const guidanceBlock = revisions
|
|
324
|
+
? `User's revision notes:\n${revisions}`
|
|
325
|
+
: `The user did not provide specific revision notes. Ask the user in your next message what they want changed, then revise accordingly.`;
|
|
326
|
+
return directive([
|
|
327
|
+
`[FEEDBACK NEEDS REVISION BEFORE SUBMIT]`,
|
|
328
|
+
``,
|
|
329
|
+
`The user reviewed the body and chose "Revise first". Nothing has`,
|
|
330
|
+
`been posted. ${guidanceBlock}`,
|
|
331
|
+
``,
|
|
332
|
+
`When you re-call feedback(submit), the user will see a fresh`,
|
|
333
|
+
`approval prompt for the revised body.`,
|
|
334
|
+
].join("\n"), {
|
|
335
|
+
submitted: false,
|
|
336
|
+
code: "revisions_requested",
|
|
337
|
+
revisions,
|
|
338
|
+
}, {
|
|
339
|
+
kind: "feedback.revisions_requested",
|
|
340
|
+
requiredActions: [
|
|
341
|
+
"revise_submission_per_user_notes",
|
|
342
|
+
"call_feedback_submit_again_with_revised_payload",
|
|
343
|
+
],
|
|
344
|
+
context: { revisions },
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
const submitted = elicitResult.action === "accept" && decision === "submit";
|
|
348
|
+
if (!submitted) {
|
|
349
|
+
const reasonCode = elicitResult.action === "decline"
|
|
350
|
+
? "user_declined_form"
|
|
275
351
|
: elicitResult.action === "cancel"
|
|
276
352
|
? "user_cancelled"
|
|
277
|
-
: "
|
|
353
|
+
: decision === "decline"
|
|
354
|
+
? "user_declined_in_form"
|
|
355
|
+
: "user_did_not_approve";
|
|
278
356
|
return directive([
|
|
279
357
|
`[FEEDBACK NOT SUBMITTED - USER DID NOT APPROVE]`,
|
|
280
358
|
`Reason: ${reasonCode} (action="${elicitResult.action}", decision="${decision}")`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAkC,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,oBAAoB,GACxB,sKAAsK,CAAC;AAEzK,MAAM,qBAAqB,GACzB,4KAA4K,CAAC;AAO/K,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,OAAe,EACf,gBAAoC,EACpC,SAA6B,EAC7B,sBAA8B;IAE9B,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,EAAE,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEvC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,8EAA8E,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;IAC1I,CAAC;IACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,UAAU,CAAC,+GAA+G,EAAE,CAAC;IAC5K,CAAC;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,6IAA6I,EAAE,CAAC;IAC1L,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,gHAAgH,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;IAC9K,CAAC;IACD,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACxC,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC;IACzG,CAAC;IACD,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,6KAA6K,EAAE,CAAC;IACjO,CAAC;IACD,IAAI,CAAC,EAAE,IAAI,sBAAsB,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,6HAA6H,EAAE,CAAC;IACpL,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2CAA2C;AAC3C,MAAM,eAAe,GAA6B;IAChD,KAAK,EAAO,CAAC,OAAO,CAAC;IACrB,SAAS,EAAG,CAAC,WAAW,CAAC;IACzB,KAAK,EAAO,CAAC,OAAO,CAAC;IACrB,QAAQ,EAAI,CAAC,UAAU,CAAC;IACxB,SAAS,EAAG,CAAC,WAAW,CAAC;IACzB,MAAM,EAAM,CAAC,QAAQ,CAAC;IACtB,QAAQ,EAAI,CAAC,UAAU,CAAC;IACxB,OAAO,EAAK,CAAC,SAAS,CAAC;IACvB,MAAM,EAAM,CAAC,QAAQ,CAAC;IACtB,SAAS,EAAG,CAAC,WAAW,CAAC;IACzB,GAAG,EAAS,CAAC,KAAK,CAAC;IACnB,KAAK,EAAO,CAAC,OAAO,CAAC;IACrB,OAAO,EAAK,CAAC,SAAS,CAAC;IACvB,GAAG,EAAS,CAAC,KAAK,CAAC;IACnB,UAAU,EAAE,CAAC,YAAY,CAAC;IAC1B,UAAU,EAAE,CAAC,YAAY,CAAC;IAC1B,OAAO,EAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAO,CAAC,OAAO,EAAE,UAAU,CAAC;CAClC,CAAC;AAEF,SAAS,WAAW,CAAC,KAAa,EAAE,OAAe,EAAE,SAAkB;IACrE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEnD,sFAAsF;IACtF,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,MAAM;gBAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,MAAM,IAAI,GAAG,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAyB;QACrC,CAAC,0DAA0D,EAAG,CAAC,WAAW,CAAC,CAAC;QAC5E,CAAC,+CAA+C,EAAe,CAAC,OAAO,CAAC,CAAC;QACzE,CAAC,uDAAuD,EAAM,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC,4BAA4B,EAAkC,CAAC,UAAU,CAAC,CAAC;QAC5E,CAAC,gCAAgC,EAA6B,CAAC,SAAS,CAAC,CAAC;QAC1E,CAAC,mCAAmC,EAA0B,CAAC,QAAQ,CAAC,CAAC;QACzE,CAAC,wDAAwD,EAAK,CAAC,UAAU,CAAC,CAAC;QAC3E,CAAC,sDAAsD,EAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACpF,CAAC,4CAA4C,EAAiB,CAAC,WAAW,CAAC,CAAC;QAC5E,CAAC,+BAA+B,EAA+B,CAAC,WAAW,CAAC,CAAC;QAC7E,CAAC,kBAAkB,EAA2C,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC,yBAAyB,EAAoC,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC,4CAA4C,EAAkB,CAAC,KAAK,CAAC,CAAC;QACvE,CAAC,6BAA6B,EAAgC,CAAC,YAAY,CAAC,CAAC;QAC7E,CAAC,gCAAgC,EAA6B,CAAC,YAAY,CAAC,CAAC;QAC7E,CAAC,0BAA0B,EAAmC,CAAC,KAAK,CAAC,CAAC;KACvE,CAAC;IACF,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;QAClC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,wEAAwE;IACxE,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAEjD,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AACrB,CAAC;AAcD,SAAS,eAAe,CACtB,KAAa,EACb,OAAe,EACf,gBAAoC,EACpC,SAA6B,EAC7B,OAAsB;IAEtB,MAAM,QAAQ,GAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,2BAA2B,EAC3B,WAAW,EACX,gBAAgB,EAChB,KAAK,CACN,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAG,cAAc,EAAE,CAAC;IAC5C,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,2BAA2B,EAAE,GAAG,kBAAkB,CAAC,MAAM,uCAAuC,EAAE,EAAE,CAAC,CAAC;QACxH,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;YACnC,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,CAAC,SAAS,EAAE,EACpB,WAAW,EACX,CAAC,CAAC,IAAI,EACN,KAAK,EACL,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,EACzD,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,uCAAuC,CAAC,CAAC;IAElE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpC,iCAAiC;IACjC,0EAA0E;IAC1E,0EAA0E;IAC1E,qEAAqE;IACrE,0EAA0E;IAC1E,+BAA+B;IAC/B,yEAAyE;IACzE,wEAAwE;IACxE,mCAAmC;IACnC,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE;QACjD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE;QACnD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG;QACd,GAAG,WAAW,CAAC,IAAI;QACnB,GAAG,WAAW,CAAC,IAAI;QACnB,GAAG,YAAY,CAAC,IAAI;QACpB,GAAG,YAAY,CAAC,IAAI;KACrB,CAAC;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAE3D,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,CACF,UAAU,EACV,YAAY,SAAS,sCAAsC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnH,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,YAAY,CAAC,IAAI;QACxB,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,6DAA6D;QAC7D,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC;QAC1D,SAAS;KACV,CAAC;AACJ,CAAC;AAKD,SAAS,oBAAoB,CAC3B,CAAmB,EACnB,gBAAwB;IAExB,MAAM,KAAK,GAAa;QACtB,yDAAyD;QACzD,EAAE;QACF,qEAAqE;QACrE,iEAAiE;QACjE,EAAE;QACF,WAAW,CAAC,CAAC,KAAK,EAAE;QACpB,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAChC,WAAW,gBAAgB,EAAE;KAC9B,CAAC;IACF,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CACR,EAAE,EACF,SAAS,CAAC,CAAC,SAAS,sFAAsF,CAC3G,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,+CAA+C,EAAE,CAAC,CAAC,IAAI,EAAE,+CAA+C,CAAC,CAAC;IACzH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAY,YAAY,CAC/C,UAAU,EACV,6GAA6G,EAC7G;IACE,MAAM,EAAE;QACN,WAAW,EACT,uLAAuL;QACzL,OAAO,EAAE,KAAK,EAAE,GAAgB,EAAE,MAA+B,EAAE,EAAE;YACnE,MAAM,KAAK,GAAI,MAAM,CAAC,KAA4B,IAAI,EAAE,CAAC;YACzD,MAAM,OAAO,GAAI,MAAM,CAAC,OAA8B,IAAI,EAAE,CAAC;YAC7D,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAsC,CAAC;YACvE,MAAM,SAAS,GAAG,MAAM,CAAC,SAA+B,CAAC;YACzD,0DAA0D;YAC1D,MAAM,MAAM,GAAiB,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAEtE,MAAM,kBAAkB,GAAG,cAAc,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,kBAAkB,CAClC,KAAK,EACL,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,kBAAkB,CAAC,MAAM,CAC1B,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,gBAAgB,EAAE,CAAC;gBACnB,OAAO,SAAS,CACd;oBACE,oCAAoC;oBACpC,WAAW,SAAS,CAAC,IAAI,MAAM,SAAS,CAAC,OAAO,EAAE;oBAClD,EAAE;oBACF,+EAA+E;oBAC/E,0EAA0E;oBAC1E,+DAA+D;iBAChE,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,EACtE;oBACE,IAAI,EAAE,mBAAmB;oBACzB,eAAe,EAAE,CAAC,8BAA8B,EAAE,kBAAkB,CAAC;oBACrE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE;iBAClC,CACF,CAAC;YACJ,CAAC;YAED,+DAA+D;YAC/D,6DAA6D;YAC7D,8DAA8D;YAC9D,iEAAiE;YACjE,8DAA8D;YAC9D,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,SAAS,CACd;oBACE,0CAA0C;oBAC1C,mEAAmE;oBACnE,sEAAsE;oBACtE,2CAA2C;oBAC3C,EAAE;oBACF,wEAAwE;oBACxE,8DAA8D;iBAC/D,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ;oBACE,SAAS,EAAE,KAAK;oBAChB,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,yDAAyD;iBACnE,EACD;oBACE,IAAI,EAAE,kBAAkB;oBACxB,eAAe,EAAE,CAAC,mCAAmC,EAAE,cAAc,CAAC;oBACtE,OAAO,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE;iBAC7C,CACF,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE;gBAC3E,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,IAAI,SAAS;gBACjD,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,SAAS;aACnD,CAAC,CAAC;YAEH,iEAAiE;YACjE,iEAAiE;YACjE,kEAAkE;YAClE,kCAAkC;YAClC,IAAI,gBAAwB,CAAC;YAC7B,IAAI,eAAwB,CAAC;YAC7B,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,gBAAgB,GAAG,iCAAiC,CAAC;gBACrD,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,SAAS,CACd;wBACE,2CAA2C;wBAC3C,yFAAyF;wBACzF,EAAE;wBACF,SAAS;wBACT,4EAA4E;wBAC5E,4EAA4E;wBAC5E,EAAE;wBACF,qBAAqB;qBACtB,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ;wBACE,SAAS,EAAE,KAAK;wBAChB,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,kDAAkD;qBAC5D,EACD;wBACE,IAAI,EAAE,kBAAkB;wBACxB,eAAe,EAAE,CAAC,6CAA6C,CAAC;wBAChE,OAAO,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;qBACnC,CACF,CAAC;gBACJ,CAAC;gBACD,gBAAgB,GAAG,qBAAqB,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvD,eAAe,GAAG,KAAK,CAAC;YAC1B,CAAC;YAED,IAAI,YAAY,CAAC;YACjB,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC;oBAC9B,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,CAAC;oBACxD,eAAe,EAAE;wBACf,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,qBAAqB;gCAC5B,WAAW,EACT,iKAAiK;gCACnK,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;gCACrC,SAAS,EAAE;oCACT,iBAAiB;oCACjB,cAAc;oCACd,uBAAuB;iCACxB;gCACD,OAAO,EAAE,SAAS;6BACnB;4BACD,SAAS,EAAE;gCACT,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,2BAA2B;gCAClC,WAAW,EACT,4JAA4J;6BAC/J;yBACF;wBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;qBACvB;iBACF,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvD,OAAO,SAAS,CACd;oBACE,6CAA6C;oBAC7C,oDAAoD,GAAG,EAAE;oBACzD,EAAE;oBACF,+DAA+D;iBAChE,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,EAAE,EAC9D;oBACE,IAAI,EAAE,kBAAkB;oBACxB,eAAe,EAAE,CAAC,8BAA8B,EAAE,cAAc,CAAC;oBACjE,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE;iBACxC,CACF,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GACZ,OAAO,YAAY,CAAC,OAAO,EAAE,QAAQ,KAAK,QAAQ;gBAChD,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ;gBAC/B,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,SAAS,GACb,OAAO,YAAY,CAAC,OAAO,EAAE,SAAS,KAAK,QAAQ;gBACjD,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;YAET,sEAAsE;YACtE,YAAY;YACZ,8DAA8D;YAC9D,yEAAyE;YACzE,2DAA2D;YAC3D,qDAAqD;YACrD,IAAI,YAAY,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC9D,8DAA8D;gBAC9D,gEAAgE;gBAChE,wDAAwD;gBACxD,6DAA6D;gBAC7D,MAAM,aAAa,GAAG,SAAS;oBAC7B,CAAC,CAAC,2BAA2B,SAAS,EAAE;oBACxC,CAAC,CAAC,sIAAsI,CAAC;gBAC3I,OAAO,SAAS,CACd;oBACE,yCAAyC;oBACzC,EAAE;oBACF,kEAAkE;oBAClE,gBAAgB,aAAa,EAAE;oBAC/B,EAAE;oBACF,8DAA8D;oBAC9D,uCAAuC;iBACxC,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ;oBACE,SAAS,EAAE,KAAK;oBAChB,IAAI,EAAE,qBAAqB;oBAC3B,SAAS;iBACV,EACD;oBACE,IAAI,EAAE,8BAA8B;oBACpC,eAAe,EAAE;wBACf,kCAAkC;wBAClC,iDAAiD;qBAClD;oBACD,OAAO,EAAE,EAAE,SAAS,EAAE;iBACvB,CACF,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC;YAC5E,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,UAAU,GACd,YAAY,CAAC,MAAM,KAAK,SAAS;oBAC/B,CAAC,CAAC,oBAAoB;oBACtB,CAAC,CAAC,YAAY,CAAC,MAAM,KAAK,QAAQ;wBAChC,CAAC,CAAC,gBAAgB;wBAClB,CAAC,CAAC,QAAQ,KAAK,SAAS;4BACtB,CAAC,CAAC,uBAAuB;4BACzB,CAAC,CAAC,sBAAsB,CAAC;gBACjC,OAAO,SAAS,CACd;oBACE,iDAAiD;oBACjD,WAAW,UAAU,aAAa,YAAY,CAAC,MAAM,gBAAgB,QAAQ,IAAI;oBACjF,EAAE;oBACF,qEAAqE;oBACrE,yBAAyB;iBAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,EAC7E;oBACE,IAAI,EAAE,mBAAmB;oBACzB,eAAe,EAAE,CAAC,8BAA8B,EAAE,kBAAkB,CAAC;oBACrE,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE;iBAC3D,CACF,CAAC;YACJ,CAAC;YAED,+DAA+D;YAC/D,iEAAiE;YACjE,oEAAoE;YACpE,iCAAiC;YACjC,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,MAAM,EACd,EAAE,MAAM,EAAE,eAAe,EAAE,CAC5B,CAAC;YAEF,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACpC,gEAAgE;gBAChE,iEAAiE;gBACjE,iEAAiE;gBACjE,iEAAiE;gBACjE,OAAO,SAAS,CACd;oBACE,mEAAmE;oBACnE,EAAE;oBACF,gEAAgE;oBAChE,wDAAwD;oBACxD,EAAE;oBACF,cAAc,MAAM,CAAC,gBAAgB,EAAE;oBACvC,oBAAoB,MAAM,CAAC,SAAS,EAAE;oBACtC,wCAAwC;oBACxC,EAAE;oBACF,oBAAoB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC,OAAO;oBAC7D,2EAA2E;iBAC5E,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ;oBACE,SAAS,EAAE,KAAK;oBAChB,YAAY,EAAE,IAAI;oBAClB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;oBACzC,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;iBAC9B,EACD;oBACE,IAAI,EAAE,wBAAwB;oBAC9B,eAAe,EAAE,CAAC,2BAA2B,CAAC;oBAC9C,OAAO,EAAE;wBACP,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;wBACzC,SAAS,EAAE,MAAM,CAAC,SAAS;qBAC5B;iBACF,CACF,CAAC;YACJ,CAAC;YAED,oEAAoE;YACpE,+DAA+D;YAC/D,gBAAgB,EAAE,CAAC;YAEnB,OAAO;gBACL,OAAO,EAAE,yBAAyB,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE;gBAClG,SAAS,EAAE,MAAM,CAAC,GAAG;gBACrB,YAAY,EAAE,MAAM,CAAC,MAAM;gBAC3B,WAAW,EAAE,MAAM,CAAC,UAAU;gBAC9B,WAAW,EAAE,MAAM,CAAC,UAAU;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC;QACJ,CAAC;KACF;CACF,EACD,SAAS,EACT;IACE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CAAC,gFAAgF,CAAC;IAC7F,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,oFAAoF,CAAC;IACjG,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,wDAAwD,CAAC;IACrE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qGAAqG,CAAC;IAClH,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SACrB,QAAQ,EAAE;SACV,QAAQ,CACP,gJAAgJ,CACjJ;CACJ,CACF,CAAC"}
|