pi-maestro-mobile 0.2.11 → 0.2.12
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/jsonl-pager.d.ts.map +1 -1
- package/dist/jsonl-pager.js +78 -30
- package/dist/jsonl-pager.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl-pager.d.ts","sourceRoot":"","sources":["../src/jsonl-pager.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"jsonl-pager.d.ts","sourceRoot":"","sources":["../src/jsonl-pager.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAKD,2CAA2C;AAC3C,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAE5F;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,SAAM,GACV,OAAO,CAAC,UAAU,CAAC,CAGrB;AA8ED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,GAC3B,YAAY,GAAG,SAAS,CAE1B;AA0ED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,UAAU,SAAK,GACd,OAAO,CAAC;IAAE,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAiD7F"}
|
package/dist/jsonl-pager.js
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* cursor=N 表示尾部 N 条已发,下一页往前取更早的。
|
|
17
17
|
*/
|
|
18
18
|
import { open } from "node:fs/promises";
|
|
19
|
+
import { imageBlocksFromContent, materializeImages } from "./image-cache.js";
|
|
19
20
|
const MAX_LINE_BYTES = 4 * 1024 * 1024;
|
|
20
21
|
const READ_CHUNK = 512 * 1024;
|
|
21
22
|
/** 首次加载:取最后 limit 条(此时 cursor=0,skip=0) */
|
|
@@ -65,8 +66,8 @@ async function scanWindow(filePath, opts) {
|
|
|
65
66
|
if (ring.length >= want) {
|
|
66
67
|
ring.shift();
|
|
67
68
|
}
|
|
68
|
-
const
|
|
69
|
-
ring.push(
|
|
69
|
+
const parsed = parseMessageLineItems(line, totalEntries - 1, seenToolResults);
|
|
70
|
+
ring.push(parsed.length > 0 ? parsed : null);
|
|
70
71
|
};
|
|
71
72
|
const { size } = await fd.stat();
|
|
72
73
|
if (size === 0)
|
|
@@ -93,7 +94,7 @@ async function scanWindow(filePath, opts) {
|
|
|
93
94
|
const start = Math.max(0, end - opts.limit);
|
|
94
95
|
const items = ring
|
|
95
96
|
.slice(start, end)
|
|
96
|
-
.
|
|
97
|
+
.flatMap((messageItems) => messageItems ?? []);
|
|
97
98
|
// hasMore:ring 里还有比窗口更早的 message(含占位)
|
|
98
99
|
const hasMore = start > 0;
|
|
99
100
|
const cursor = opts.skip + (end - start);
|
|
@@ -104,15 +105,18 @@ async function scanWindow(filePath, opts) {
|
|
|
104
105
|
}
|
|
105
106
|
}
|
|
106
107
|
export function parseMessageLine(line, index, seenToolResults) {
|
|
108
|
+
return parseMessageLineItems(line, index, seenToolResults)[0];
|
|
109
|
+
}
|
|
110
|
+
function parseMessageLineItems(line, index, seenToolResults) {
|
|
107
111
|
let entry;
|
|
108
112
|
try {
|
|
109
113
|
entry = JSON.parse(line);
|
|
110
114
|
}
|
|
111
115
|
catch {
|
|
112
|
-
return
|
|
116
|
+
return [];
|
|
113
117
|
}
|
|
114
118
|
if (entry.type !== "message")
|
|
115
|
-
return
|
|
119
|
+
return [];
|
|
116
120
|
const msg = (entry.message ?? {});
|
|
117
121
|
const role = String(msg.role ?? "");
|
|
118
122
|
const timestamp = typeof msg.timestamp === "number" ? msg.timestamp : 0;
|
|
@@ -120,48 +124,61 @@ export function parseMessageLine(line, index, seenToolResults) {
|
|
|
120
124
|
if (role === "toolResult") {
|
|
121
125
|
const toolCallId = String(msg.toolCallId ?? "");
|
|
122
126
|
if (toolCallId && seenToolResults.has(toolCallId))
|
|
123
|
-
return
|
|
127
|
+
return [];
|
|
124
128
|
if (toolCallId)
|
|
125
129
|
seenToolResults.add(toolCallId);
|
|
126
130
|
const text = extractText(msg.content);
|
|
127
131
|
if (!text)
|
|
128
|
-
return
|
|
129
|
-
return {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
132
|
+
return [];
|
|
133
|
+
return [{
|
|
134
|
+
id: `replay-tool-${index}`,
|
|
135
|
+
kind: "tool",
|
|
136
|
+
text,
|
|
137
|
+
createdAt,
|
|
138
|
+
toolName: String(msg.toolName ?? "tool"),
|
|
139
|
+
toolCallId,
|
|
140
|
+
isError: msg.isError === true,
|
|
141
|
+
}];
|
|
138
142
|
}
|
|
139
143
|
if (role === "tool" || role === "toolCall") {
|
|
140
144
|
const toolName = String(msg.toolName ?? "tool");
|
|
141
145
|
const text = extractText(msg.content);
|
|
142
|
-
return {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
146
|
+
return [{
|
|
147
|
+
id: `replay-toolcall-${index}`,
|
|
148
|
+
kind: "tool",
|
|
149
|
+
text: text || `调用 ${toolName}`,
|
|
150
|
+
createdAt,
|
|
151
|
+
toolName,
|
|
152
|
+
}];
|
|
149
153
|
}
|
|
150
154
|
const text = extractText(msg.content);
|
|
151
155
|
if (role === "user") {
|
|
152
|
-
|
|
156
|
+
const imagePaths = materializeImages(imageBlocksFromContent(msg.content));
|
|
157
|
+
if (!text && imagePaths.length === 0)
|
|
158
|
+
return [];
|
|
159
|
+
return [{
|
|
160
|
+
id: `replay-user-${index}`,
|
|
161
|
+
kind: "user",
|
|
162
|
+
text: imagePaths.length > 0 && !text ? `[🖼 ${imagePaths.length} 张图片]` : text,
|
|
163
|
+
createdAt,
|
|
164
|
+
...(imagePaths.length > 0 ? { images: imagePaths } : {}),
|
|
165
|
+
}];
|
|
153
166
|
}
|
|
154
167
|
if (role === "assistant" || role === "system") {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
168
|
+
const items = [];
|
|
169
|
+
if (text)
|
|
170
|
+
items.push({ id: `replay-assistant-${index}`, kind: "assistant", text, createdAt });
|
|
171
|
+
for (const callItem of toolCallImageItems(msg.content, createdAt)) {
|
|
172
|
+
items.push({ ...callItem, id: `replay-toolcall-${index}-${items.length}` });
|
|
173
|
+
}
|
|
174
|
+
return items;
|
|
158
175
|
}
|
|
159
176
|
if (role === "thinking") {
|
|
160
177
|
if (!text)
|
|
161
|
-
return
|
|
162
|
-
return { id: `replay-thinking-${index}`, kind: "thinking", text, createdAt };
|
|
178
|
+
return [];
|
|
179
|
+
return [{ id: `replay-thinking-${index}`, kind: "thinking", text, createdAt }];
|
|
163
180
|
}
|
|
164
|
-
return
|
|
181
|
+
return [];
|
|
165
182
|
}
|
|
166
183
|
/**
|
|
167
184
|
* 搜索 jsonl 中匹配关键词的消息(返回文件顺序中的匹配项 + 其 timeline 下标范围)
|
|
@@ -221,6 +238,37 @@ export async function searchInJsonl(filePath, keyword, maxResults = 50) {
|
|
|
221
238
|
await fd?.close();
|
|
222
239
|
}
|
|
223
240
|
}
|
|
241
|
+
function toolCallImageItems(content, createdAt) {
|
|
242
|
+
if (!Array.isArray(content))
|
|
243
|
+
return [];
|
|
244
|
+
const items = [];
|
|
245
|
+
for (const block of content) {
|
|
246
|
+
const value = block;
|
|
247
|
+
if (value.type !== "toolCall" || value.name !== "read")
|
|
248
|
+
continue;
|
|
249
|
+
const argsValue = value.arguments;
|
|
250
|
+
let args;
|
|
251
|
+
if (argsValue && typeof argsValue === "object") {
|
|
252
|
+
args = argsValue;
|
|
253
|
+
}
|
|
254
|
+
else if (typeof argsValue === "string") {
|
|
255
|
+
try {
|
|
256
|
+
const parsed = JSON.parse(argsValue);
|
|
257
|
+
if (parsed && typeof parsed === "object")
|
|
258
|
+
args = parsed;
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
args = undefined;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
const path = typeof args?.path === "string" ? args.path.trim() : "";
|
|
265
|
+
if (path && TOOL_IMAGE_EXT.test(path)) {
|
|
266
|
+
items.push({ id: "", kind: "tool", text: path, createdAt, toolName: "read" });
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
return items;
|
|
270
|
+
}
|
|
271
|
+
const TOOL_IMAGE_EXT = /\.(png|jpe?g|gif|webp|bmp)$/i;
|
|
224
272
|
function extractText(content) {
|
|
225
273
|
if (typeof content === "string")
|
|
226
274
|
return content;
|
package/dist/jsonl-pager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl-pager.js","sourceRoot":"","sources":["../src/jsonl-pager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"jsonl-pager.js","sourceRoot":"","sources":["../src/jsonl-pager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAU7E,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACvC,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC;AAE9B,2CAA2C;AAC3C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAgB,EAAE,KAAK,GAAG,GAAG;IACrE,OAAO,UAAU,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,MAAc,EACd,KAAK,GAAG,GAAG;IAEX,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAClF,OAAO,UAAU,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9D,CAAC;AAQD,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,IAAmB;IAC7D,oDAAoD;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACxC,IAAI,EAAgD,CAAC;IACrD,IAAI,CAAC;QACH,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC;YACH,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC;YACnB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QACnE,CAAC;QACD,0EAA0E;QAC1E,mDAAmD;QACnD,MAAM,IAAI,GAA8B,EAAE,CAAC;QAC3C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,GAAG,GAAG,EAAE,CAAC;QAEb,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,cAAc;gBAAE,OAAO;YACzD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO;YAC9C,8CAA8C;YAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBAAE,OAAO;YAC/C,YAAY,EAAE,CAAC;YACf,yCAAyC;YACzC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;YACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;YAC9E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QACjF,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,GAAG,GAAG,IAAI,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACtC,GAAG,IAAI,OAAO,CAAC;YACf,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9B,QAAQ;YACR,IAAI,EAAU,CAAC;YACf,OAAO,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9B,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACxB,UAAU,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,EAAE;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU;QAE3C,wEAAwE;QACxE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAmB,IAAI;aAC/B,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;aACjB,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACjD,sCAAsC;QACtC,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;QAEzC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAClD,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,KAAa,EACb,eAA4B;IAE5B,OAAO,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAY,EACZ,KAAa,EACb,eAA4B;IAE5B,IAAI,KAA8B,CAAC;IACnC,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzE,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,UAAU,IAAI,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7D,IAAI,UAAU;YAAE,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC;gBACN,EAAE,EAAE,eAAe,KAAK,EAAE;gBAC1B,IAAI,EAAE,MAAM;gBACZ,IAAI;gBACJ,SAAS;gBACT,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC;gBACxC,UAAU;gBACV,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI;aAC9B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC;gBACN,EAAE,EAAE,mBAAmB,KAAK,EAAE;gBAC9B,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,IAAI,MAAM,QAAQ,EAAE;gBAC9B,SAAS;gBACT,QAAQ;aACT,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAChD,OAAO,CAAC;gBACN,EAAE,EAAE,eAAe,KAAK,EAAE;gBAC1B,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,IAAI;gBAC7E,SAAS;gBACT,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,oBAAoB,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9F,KAAK,MAAM,QAAQ,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,mBAAmB,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,EAAE,EAAE,EAAE,mBAAmB,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,OAAe,EACf,UAAU,GAAG,EAAE;IAEf,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAC7D,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,EAAgD,CAAC;IACrD,IAAI,CAAC;QACH,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,OAAO,GAAoD,EAAE,CAAC;QACpE,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBAAE,OAAO;YAC/D,YAAY,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU;gBAAE,OAAO;YACzC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAE5B,CAAC;gBACF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;gBACvD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC;wBACX,KAAK,EAAE,YAAY,GAAG,CAAC;wBACvB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;wBACxB,IAAI,EAAE,IAAI;qBACX,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC,CAAC;QACF,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,GAAG,GAAG,IAAI,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACtC,GAAG,IAAI,OAAO,CAAC;YACf,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,EAAU,CAAC;YACf,OAAO,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACvC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC7B,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,EAAE;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IACnC,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgB,EAAE,SAAiB;IAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAgC,CAAC;QAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QACjE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,IAAI,IAAyC,CAAC;QAC9C,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,IAAI,GAAG,SAAoC,CAAC;QAC9C,CAAC;aAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAY,CAAC;gBAChD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;oBAAE,IAAI,GAAG,MAAiC,CAAC;YACrF,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,GAAG,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,cAAc,GAAG,8BAA8B,CAAC;AAEtD,SAAS,WAAW,CAAC,OAAgB;IACnC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,KAAgC,CAAC;QAC3C,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|