synomem 0.1.0 → 0.2.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.
- package/ARCHITECTURE.md +2 -2
- package/CHANGELOG.md +37 -1
- package/README.md +28 -15
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +311 -70
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +96 -17
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +333 -76
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +2 -2
- package/dist/config.js +8 -8
- package/dist/import.d.ts +207 -13
- package/dist/import.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +156 -31
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp-server.js +54 -8
- package/dist/mcp-server.js.map +1 -1
- package/dist/ports/repository.d.ts +18 -1
- package/dist/ports/repository.d.ts.map +1 -1
- package/dist/projections.d.ts +18 -1
- package/dist/projections.d.ts.map +1 -1
- package/dist/projections.js +137 -44
- package/dist/projections.js.map +1 -1
- package/dist/remote.d.ts +57 -9
- package/dist/remote.d.ts.map +1 -1
- package/dist/remote.js +43 -2
- package/dist/remote.js.map +1 -1
- package/dist/schemas.d.ts +302 -21
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +142 -26
- package/dist/schemas.js.map +1 -1
- package/dist/service.d.ts +57 -10
- package/dist/service.d.ts.map +1 -1
- package/dist/skill-install.d.ts +8 -2
- package/dist/skill-install.d.ts.map +1 -1
- package/dist/skill-install.js +6 -11
- package/dist/skill-install.js.map +1 -1
- package/dist/storage.d.ts +41 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +254 -36
- package/dist/storage.js.map +1 -1
- package/dist/types.d.ts +213 -38
- package/dist/types.d.ts.map +1 -1
- package/docs/cli.md +53 -20
- package/docs/examples.md +4 -4
- package/docs/mcp.md +12 -4
- package/docs/skill.md +10 -7
- package/docs/storage-format.md +4 -4
- package/openapi/synomem-v1.yaml +24 -24
- package/package.json +1 -1
- package/skills/synomem/SKILL.md +24 -8
- package/skills/synomem/agents/openai.yaml +1 -1
- package/skills/synomem/references/examples.md +1 -1
- package/src/cli.ts +572 -173
- package/src/client.ts +391 -79
- package/src/config.ts +8 -8
- package/src/index.ts +11 -1
- package/src/mcp/index.ts +189 -30
- package/src/mcp-server.ts +58 -8
- package/src/ports/repository.ts +16 -0
- package/src/projections.ts +139 -44
- package/src/remote.ts +118 -8
- package/src/schemas.ts +147 -26
- package/src/service.ts +59 -7
- package/src/skill-install.ts +14 -17
- package/src/storage.ts +326 -34
- package/src/types.ts +228 -39
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActorIdentity, AgentProfile, ChangePage, ItemListInput, ItemSummary, KudosListInput, KudosSummary, SynomemConfig, SynomemEvent, Page, RecordKind } from '../types.js';
|
|
1
|
+
import type { ActorIdentity, AgentProfile, AgentRuntimeBinding, ChangePage, ItemListInput, JsonValue, ItemSummary, KudosListInput, KudosSummary, SynomemConfig, SynomemEvent, Page, RecordKind } from '../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Operations required by authoritative domain behavior.
|
|
4
4
|
*
|
|
@@ -21,6 +21,23 @@ export interface SynomemRepository {
|
|
|
21
21
|
updateAgent(profile: AgentProfile, updatedAt: string): Awaitable<void>;
|
|
22
22
|
getAgent(idOrAlias: string): Awaitable<AgentProfile | undefined>;
|
|
23
23
|
listAgents(): Awaitable<AgentProfile[]>;
|
|
24
|
+
/** Resolves a name case-insensitively, reporting ambiguity instead of guessing. */
|
|
25
|
+
resolveAgent(query: string): Awaitable<{
|
|
26
|
+
match?: AgentProfile;
|
|
27
|
+
candidates: AgentProfile[];
|
|
28
|
+
}>;
|
|
29
|
+
listRuntimeBindings(agentId: string): Awaitable<AgentRuntimeBinding[]>;
|
|
30
|
+
bindRuntime(binding: {
|
|
31
|
+
id: string;
|
|
32
|
+
agentId: string;
|
|
33
|
+
installationId?: string;
|
|
34
|
+
runtime: string;
|
|
35
|
+
profile?: string;
|
|
36
|
+
capabilities?: Record<string, JsonValue>;
|
|
37
|
+
boundAt: string;
|
|
38
|
+
}): Awaitable<void>;
|
|
39
|
+
unbindRuntime(bindingId: string): Awaitable<boolean>;
|
|
40
|
+
touchRuntimeBinding(agentId: string, runtime: string, at: string): Awaitable<void>;
|
|
24
41
|
listKudosSummaries(input: Required<Pick<KudosListInput, 'limit' | 'offset'>> & KudosListInput, viewer: ActorIdentity): Awaitable<Page<KudosSummary>>;
|
|
25
42
|
listKudosChanges(after: string | undefined, limit: number, viewer: ActorIdentity): Awaitable<ChangePage>;
|
|
26
43
|
listItemSummaries(input: Required<Pick<ItemListInput, 'limit' | 'offset'>> & ItemListInput, viewer: ActorIdentity): Awaitable<Page<ItemSummary>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/ports/repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,UAAU,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,IAAI,EACJ,UAAU,EACX,MAAM,aAAa,CAAC;AAErB;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAE/B,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,wBAAwB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5C,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1D,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAClD,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC7D,qBAAqB,CACnB,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,EAChC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IACvC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;IACrE,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;IAE7D,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACpD,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IACjE,UAAU,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/ports/repository.ts"],"names":[],"mappings":"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"}
|
package/dist/projections.d.ts
CHANGED
|
@@ -1,11 +1,28 @@
|
|
|
1
1
|
import type { SynomemStorage } from './storage.js';
|
|
2
2
|
import type { ProjectionWriter } from './ports/projections.js';
|
|
3
|
-
import type { SynomemEvent, KudosRecord, MemoRecord, NoteRecord, TodoRecord } from './types.js';
|
|
3
|
+
import type { SynomemEvent, KudosRecord, MemoRecord, NoteRecord, TaskDue, TaskRecord, TodoRecord } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* The instant a deadline has passed.
|
|
6
|
+
*
|
|
7
|
+
* A date-only deadline does not invent a time of day; it lapses at the end of
|
|
8
|
+
* that UTC day, which is the latest reading that cannot call work late while
|
|
9
|
+
* the stated day is still running. Every projection must use this one rule, or
|
|
10
|
+
* two stores would disagree about what is overdue.
|
|
11
|
+
*/
|
|
12
|
+
export declare function dueInstant(due: TaskDue | undefined): string | undefined;
|
|
4
13
|
export declare function escapeMarkdown(value: string): string;
|
|
5
14
|
export declare function recordsFromEvents(events: SynomemEvent[]): KudosRecord[];
|
|
6
15
|
export declare function memoRecordsFromEvents(events: SynomemEvent[]): MemoRecord[];
|
|
7
16
|
export declare function noteRecordsFromEvents(events: SynomemEvent[]): NoteRecord[];
|
|
17
|
+
/**
|
|
18
|
+
* Builds private Todo records.
|
|
19
|
+
*
|
|
20
|
+
* Deliberately simpler than the Task reducer: there is no acceptance state and
|
|
21
|
+
* no response history, because there is nobody to negotiate with. A Todo goes
|
|
22
|
+
* open → completed / canceled / archived, and back to open on reopen.
|
|
23
|
+
*/
|
|
8
24
|
export declare function todoRecordsFromEvents(events: SynomemEvent[]): TodoRecord[];
|
|
25
|
+
export declare function taskRecordsFromEvents(events: SynomemEvent[]): TaskRecord[];
|
|
9
26
|
/** Render a portable human-readable export without reading generated projections. */
|
|
10
27
|
export declare function renderMarkdownExport(events: SynomemEvent[]): string;
|
|
11
28
|
export declare class ProjectionManager implements ProjectionWriter {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projections.d.ts","sourceRoot":"","sources":["../src/projections.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAGV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,UAAU,EACX,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"projections.d.ts","sourceRoot":"","sources":["../src/projections.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAGV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGvE;AAQD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOpD;AA2JD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CA4BvE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,CAoB1E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,CAqC1E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,CAwD1E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,CA8E1E;AAED,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAoBnE;AAED,qBAAa,iBAAkB,YAAW,gBAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,cAAc;IAEpD,OAAO,IAAI;QAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;IAwGrD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;IA+GtE,aAAa,IAAI,MAAM,EAAE;CAqC1B"}
|
package/dist/projections.js
CHANGED
|
@@ -2,6 +2,19 @@ import { existsSync, lstatSync, unlinkSync } from 'node:fs';
|
|
|
2
2
|
import { join, relative, sep } from 'node:path';
|
|
3
3
|
import { SynomemError } from './errors.js';
|
|
4
4
|
import { assertNoSymlinkEscape, atomicWriteDerivedFile, atomicWriteFile, ensureDirectory, } from './fs-utils.js';
|
|
5
|
+
/**
|
|
6
|
+
* The instant a deadline has passed.
|
|
7
|
+
*
|
|
8
|
+
* A date-only deadline does not invent a time of day; it lapses at the end of
|
|
9
|
+
* that UTC day, which is the latest reading that cannot call work late while
|
|
10
|
+
* the stated day is still running. Every projection must use this one rule, or
|
|
11
|
+
* two stores would disagree about what is overdue.
|
|
12
|
+
*/
|
|
13
|
+
export function dueInstant(due) {
|
|
14
|
+
if (!due)
|
|
15
|
+
return undefined;
|
|
16
|
+
return due.kind === 'date' ? `${due.date}T23:59:59.999Z` : due.datetime;
|
|
17
|
+
}
|
|
5
18
|
const generatedMarker = '<!-- Generated by Synomem. Rebuild with `synomem rebuild`. -->';
|
|
6
19
|
function manifestPath(home, path) {
|
|
7
20
|
return relative(home, path).split(sep).join('/');
|
|
@@ -87,7 +100,7 @@ function memoInboxMarkdown(record) {
|
|
|
87
100
|
'',
|
|
88
101
|
].join('\n')}\n`;
|
|
89
102
|
}
|
|
90
|
-
function
|
|
103
|
+
function taskInboxMarkdown(record) {
|
|
91
104
|
const due = record.current.due?.kind === 'date'
|
|
92
105
|
? record.current.due.date
|
|
93
106
|
: record.current.due
|
|
@@ -101,7 +114,7 @@ function todoInboxMarkdown(record) {
|
|
|
101
114
|
`**Status:** ${record.status} `,
|
|
102
115
|
`**Priority:** ${record.current.priority} `,
|
|
103
116
|
`**Due:** ${escapeMarkdown(due)} `,
|
|
104
|
-
`**
|
|
117
|
+
`**Task ID:** \`${record.event.id}\``,
|
|
105
118
|
'',
|
|
106
119
|
...(record.current.description ? [escapeMarkdown(record.current.description), ''] : []),
|
|
107
120
|
].join('\n')}\n`;
|
|
@@ -123,24 +136,24 @@ function memoryMarkdown(profile, records, rebuiltAt) {
|
|
|
123
136
|
}
|
|
124
137
|
return `${lines.join('\n')}\n`;
|
|
125
138
|
}
|
|
126
|
-
function
|
|
139
|
+
function tasksMarkdown(profile, records, rebuiltAt) {
|
|
127
140
|
const lines = [
|
|
128
141
|
generatedMarker,
|
|
129
142
|
'',
|
|
130
|
-
`#
|
|
143
|
+
`# Tasks — ${escapeMarkdown(profile.displayName)}`,
|
|
131
144
|
'',
|
|
132
145
|
`_Last rebuilt: ${rebuiltAt}_`,
|
|
133
146
|
'',
|
|
134
147
|
];
|
|
135
148
|
if (!records.length)
|
|
136
|
-
lines.push('_No
|
|
149
|
+
lines.push('_No tasks yet._', '');
|
|
137
150
|
for (const record of records) {
|
|
138
151
|
const due = record.current.due?.kind === 'date'
|
|
139
152
|
? record.current.due.date
|
|
140
153
|
: record.current.due
|
|
141
154
|
? `${record.current.due.datetime} (${record.current.due.timeZone})`
|
|
142
155
|
: 'None';
|
|
143
|
-
lines.push(`## ${escapeMarkdown(record.current.title)}`, '', `**Status:** ${record.status} `, `**Priority:** ${record.current.priority} `, `**Due:** ${escapeMarkdown(due)} `, `**
|
|
156
|
+
lines.push(`## ${escapeMarkdown(record.current.title)}`, '', `**Status:** ${record.status} `, `**Priority:** ${record.current.priority} `, `**Due:** ${escapeMarkdown(due)} `, `**Task ID:** \`${record.event.id}\``, '');
|
|
144
157
|
}
|
|
145
158
|
return `${lines.join('\n')}\n`;
|
|
146
159
|
}
|
|
@@ -234,6 +247,13 @@ export function noteRecordsFromEvents(events) {
|
|
|
234
247
|
}
|
|
235
248
|
return [...records.values()].sort((a, b) => b.event.createdAt.localeCompare(a.event.createdAt));
|
|
236
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* Builds private Todo records.
|
|
252
|
+
*
|
|
253
|
+
* Deliberately simpler than the Task reducer: there is no acceptance state and
|
|
254
|
+
* no response history, because there is nobody to negotiate with. A Todo goes
|
|
255
|
+
* open → completed / canceled / archived, and back to open on reopen.
|
|
256
|
+
*/
|
|
237
257
|
export function todoRecordsFromEvents(events) {
|
|
238
258
|
const records = new Map();
|
|
239
259
|
for (const event of events) {
|
|
@@ -242,14 +262,13 @@ export function todoRecordsFromEvents(events) {
|
|
|
242
262
|
event,
|
|
243
263
|
current: {
|
|
244
264
|
title: event.title,
|
|
245
|
-
...(event.
|
|
265
|
+
...(event.details !== undefined ? { details: event.details } : {}),
|
|
246
266
|
priority: event.priority,
|
|
247
267
|
...(event.due ? { due: event.due } : {}),
|
|
248
268
|
tags: event.tags ?? [],
|
|
249
|
-
visibility: event.visibility,
|
|
250
269
|
version: event.aggregateVersion,
|
|
251
270
|
},
|
|
252
|
-
status:
|
|
271
|
+
status: 'open',
|
|
253
272
|
});
|
|
254
273
|
}
|
|
255
274
|
else if (event.type === 'todo.updated') {
|
|
@@ -258,25 +277,26 @@ export function todoRecordsFromEvents(events) {
|
|
|
258
277
|
record.update = event;
|
|
259
278
|
record.current = {
|
|
260
279
|
title: event.title,
|
|
261
|
-
...(event.
|
|
280
|
+
...(event.details !== undefined ? { details: event.details } : {}),
|
|
262
281
|
priority: event.priority,
|
|
263
282
|
...(event.due ? { due: event.due } : {}),
|
|
264
283
|
tags: event.tags ?? [],
|
|
265
|
-
visibility: event.visibility,
|
|
266
284
|
version: event.aggregateVersion,
|
|
267
285
|
};
|
|
268
286
|
}
|
|
269
287
|
}
|
|
270
|
-
else if (event.type === 'todo.
|
|
288
|
+
else if (event.type === 'todo.reopened') {
|
|
271
289
|
const record = records.get(event.todoId);
|
|
272
290
|
if (record) {
|
|
291
|
+
record.reopened = event;
|
|
273
292
|
record.current.version = event.aggregateVersion;
|
|
274
293
|
record.status = 'open';
|
|
294
|
+
delete record.terminal;
|
|
275
295
|
}
|
|
276
296
|
}
|
|
277
297
|
else if (event.type === 'todo.completed' ||
|
|
278
|
-
event.type === 'todo.
|
|
279
|
-
event.type === 'todo.
|
|
298
|
+
event.type === 'todo.canceled' ||
|
|
299
|
+
event.type === 'todo.archived') {
|
|
280
300
|
const record = records.get(event.todoId);
|
|
281
301
|
if (record) {
|
|
282
302
|
record.terminal = event;
|
|
@@ -284,13 +304,86 @@ export function todoRecordsFromEvents(events) {
|
|
|
284
304
|
record.status =
|
|
285
305
|
event.type === 'todo.completed'
|
|
286
306
|
? 'completed'
|
|
287
|
-
: event.type === 'todo.
|
|
307
|
+
: event.type === 'todo.canceled'
|
|
308
|
+
? 'canceled'
|
|
309
|
+
: 'archived';
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
return [...records.values()];
|
|
314
|
+
}
|
|
315
|
+
export function taskRecordsFromEvents(events) {
|
|
316
|
+
const records = new Map();
|
|
317
|
+
for (const event of events) {
|
|
318
|
+
if (event.type === 'task.created') {
|
|
319
|
+
records.set(event.id, {
|
|
320
|
+
event,
|
|
321
|
+
current: {
|
|
322
|
+
title: event.title,
|
|
323
|
+
...(event.description !== undefined ? { description: event.description } : {}),
|
|
324
|
+
priority: event.priority,
|
|
325
|
+
...(event.due ? { due: event.due } : {}),
|
|
326
|
+
tags: event.tags ?? [],
|
|
327
|
+
visibility: event.visibility,
|
|
328
|
+
version: event.aggregateVersion,
|
|
329
|
+
},
|
|
330
|
+
status: event.requiresAcceptance ? 'assigned' : 'open',
|
|
331
|
+
responses: [],
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
else if (event.type === 'task.updated') {
|
|
335
|
+
const record = records.get(event.taskId);
|
|
336
|
+
if (record) {
|
|
337
|
+
record.update = event;
|
|
338
|
+
record.current = {
|
|
339
|
+
title: event.title,
|
|
340
|
+
...(event.description !== undefined ? { description: event.description } : {}),
|
|
341
|
+
priority: event.priority,
|
|
342
|
+
...(event.due ? { due: event.due } : {}),
|
|
343
|
+
tags: event.tags ?? [],
|
|
344
|
+
visibility: event.visibility,
|
|
345
|
+
version: event.aggregateVersion,
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
else if (event.type === 'task.accepted') {
|
|
350
|
+
const record = records.get(event.taskId);
|
|
351
|
+
if (record) {
|
|
352
|
+
record.current.version = event.aggregateVersion;
|
|
353
|
+
record.status = 'open';
|
|
354
|
+
record.responses.push({
|
|
355
|
+
kind: 'accepted',
|
|
356
|
+
...(event.response !== undefined ? { response: event.response } : {}),
|
|
357
|
+
actor: event.actor,
|
|
358
|
+
at: event.createdAt,
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
else if (event.type === 'task.completed' ||
|
|
363
|
+
event.type === 'task.rejected' ||
|
|
364
|
+
event.type === 'task.canceled') {
|
|
365
|
+
const record = records.get(event.taskId);
|
|
366
|
+
if (record) {
|
|
367
|
+
record.terminal = event;
|
|
368
|
+
record.current.version = event.aggregateVersion;
|
|
369
|
+
if (event.type === 'task.rejected') {
|
|
370
|
+
record.responses.push({
|
|
371
|
+
kind: 'rejected',
|
|
372
|
+
response: event.response,
|
|
373
|
+
actor: event.actor,
|
|
374
|
+
at: event.createdAt,
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
record.status =
|
|
378
|
+
event.type === 'task.completed'
|
|
379
|
+
? 'completed'
|
|
380
|
+
: event.type === 'task.rejected'
|
|
288
381
|
? 'rejected'
|
|
289
382
|
: 'canceled';
|
|
290
383
|
}
|
|
291
384
|
}
|
|
292
|
-
else if (event.type === '
|
|
293
|
-
const record = records.get(event.
|
|
385
|
+
else if (event.type === 'task.reopened') {
|
|
386
|
+
const record = records.get(event.taskId);
|
|
294
387
|
if (record) {
|
|
295
388
|
record.reopened = event;
|
|
296
389
|
record.current.version = event.aggregateVersion;
|
|
@@ -306,7 +399,7 @@ export function renderMarkdownExport(events) {
|
|
|
306
399
|
...recordsFromEvents(events).map((record) => `## Kudos: ${escapeMarkdown(record.event.title)}\n\n${escapeMarkdown(record.event.reason)}\n\nStatus: ${record.revocationStatus === 'revoked' ? 'Revoked' : record.status}\n\nID: \`${record.event.id}\``),
|
|
307
400
|
...memoRecordsFromEvents(events).map((record) => `## Memo: ${escapeMarkdown(record.event.subject)}\n\n${escapeMarkdown(record.event.body)}\n\nStatus: ${record.status}\n\nID: \`${record.event.id}\``),
|
|
308
401
|
...noteRecordsFromEvents(events).map((record) => `## Note: ${escapeMarkdown(record.current.title)}\n\n${escapeMarkdown(record.current.body)}\n\nStatus: ${record.status}; version ${record.current.version}\n\nID: \`${record.event.id}\``),
|
|
309
|
-
...
|
|
402
|
+
...taskRecordsFromEvents(events).map((record) => `## Task: ${escapeMarkdown(record.current.title)}\n\n${record.current.description ? `${escapeMarkdown(record.current.description)}\n\n` : ''}Status: ${record.status}; priority ${record.current.priority}\n\nID: \`${record.event.id}\``),
|
|
310
403
|
];
|
|
311
404
|
return `${sections.join('\n\n')}\n`;
|
|
312
405
|
}
|
|
@@ -326,7 +419,7 @@ export class ProjectionManager {
|
|
|
326
419
|
const records = recordsFromEvents(events);
|
|
327
420
|
const memos = memoRecordsFromEvents(events);
|
|
328
421
|
const notes = noteRecordsFromEvents(events);
|
|
329
|
-
const
|
|
422
|
+
const tasks = taskRecordsFromEvents(events);
|
|
330
423
|
const rebuiltAt = events.at(-1)?.createdAt ?? new Date(0).toISOString();
|
|
331
424
|
const generated = [];
|
|
332
425
|
for (const profile of profiles) {
|
|
@@ -339,12 +432,12 @@ export class ProjectionManager {
|
|
|
339
432
|
const inboxDirectory = join(agentDirectory, 'inbox');
|
|
340
433
|
const kudosInboxDirectory = join(inboxDirectory, 'kudos');
|
|
341
434
|
const memoInboxDirectory = join(inboxDirectory, 'memos');
|
|
342
|
-
const
|
|
435
|
+
const taskInboxDirectory = join(inboxDirectory, 'tasks');
|
|
343
436
|
assertNoSymlinkEscape(this.storage.home, inboxDirectory);
|
|
344
437
|
ensureDirectory(inboxDirectory);
|
|
345
438
|
ensureDirectory(kudosInboxDirectory);
|
|
346
439
|
ensureDirectory(memoInboxDirectory);
|
|
347
|
-
ensureDirectory(
|
|
440
|
+
ensureDirectory(taskInboxDirectory);
|
|
348
441
|
atomicWriteDerivedFile(profilePath, `${JSON.stringify({ _generatedBy: 'synomem', ...profile }, null, 2)}\n`);
|
|
349
442
|
generated.push(manifestPath(this.storage.home, profilePath));
|
|
350
443
|
if (!existsSync(notesPath)) {
|
|
@@ -361,11 +454,11 @@ export class ProjectionManager {
|
|
|
361
454
|
atomicWriteDerivedFile(memoryPath, memoryMarkdown(profile, agentNotes, rebuiltAt));
|
|
362
455
|
generated.push(manifestPath(this.storage.home, memoryPath));
|
|
363
456
|
}
|
|
364
|
-
const
|
|
365
|
-
if (this.storage.config.projection.
|
|
366
|
-
const
|
|
367
|
-
atomicWriteDerivedFile(
|
|
368
|
-
generated.push(manifestPath(this.storage.home,
|
|
457
|
+
const agentTasks = tasks.filter((record) => record.event.assigneeAgentId === profile.id);
|
|
458
|
+
if (this.storage.config.projection.writeTasksMarkdown) {
|
|
459
|
+
const tasksPath = join(agentDirectory, 'TASKS.md');
|
|
460
|
+
atomicWriteDerivedFile(tasksPath, tasksMarkdown(profile, agentTasks, rebuiltAt));
|
|
461
|
+
generated.push(manifestPath(this.storage.home, tasksPath));
|
|
369
462
|
}
|
|
370
463
|
if (this.storage.config.projection.writeInboxEntries) {
|
|
371
464
|
for (const record of agentRecords.filter((item) => item.status === 'unacknowledged' && item.revocationStatus === 'active')) {
|
|
@@ -378,9 +471,9 @@ export class ProjectionManager {
|
|
|
378
471
|
atomicWriteDerivedFile(inboxPath, memoInboxMarkdown(record));
|
|
379
472
|
generated.push(manifestPath(this.storage.home, inboxPath));
|
|
380
473
|
}
|
|
381
|
-
for (const record of
|
|
382
|
-
const inboxPath = join(
|
|
383
|
-
atomicWriteDerivedFile(inboxPath,
|
|
474
|
+
for (const record of agentTasks.filter((item) => item.status === 'open' || item.status === 'assigned')) {
|
|
475
|
+
const inboxPath = join(taskInboxDirectory, `${record.event.id}.md`);
|
|
476
|
+
atomicWriteDerivedFile(inboxPath, taskInboxMarkdown(record));
|
|
384
477
|
generated.push(manifestPath(this.storage.home, inboxPath));
|
|
385
478
|
}
|
|
386
479
|
}
|
|
@@ -413,20 +506,20 @@ export class ProjectionManager {
|
|
|
413
506
|
const records = recordsFromEvents(events).filter((record) => record.event.recipientAgentId === profile.id);
|
|
414
507
|
const memos = memoRecordsFromEvents(events).filter((record) => record.event.recipientAgentId === profile.id);
|
|
415
508
|
const notes = noteRecordsFromEvents(events).filter((record) => record.event.ownerAgentId === profile.id);
|
|
416
|
-
const
|
|
509
|
+
const tasks = taskRecordsFromEvents(events).filter((record) => record.event.assigneeAgentId === profile.id);
|
|
417
510
|
const rebuiltAt = events.at(-1)?.createdAt ?? new Date(0).toISOString();
|
|
418
511
|
const agentDirectory = join(this.storage.home, profile.id);
|
|
419
512
|
const inboxDirectory = join(agentDirectory, 'inbox');
|
|
420
513
|
const kudosInboxDirectory = join(inboxDirectory, 'kudos');
|
|
421
514
|
const memoInboxDirectory = join(inboxDirectory, 'memos');
|
|
422
|
-
const
|
|
515
|
+
const taskInboxDirectory = join(inboxDirectory, 'tasks');
|
|
423
516
|
assertNoSymlinkEscape(this.storage.home, agentDirectory);
|
|
424
517
|
assertNoSymlinkEscape(this.storage.home, inboxDirectory);
|
|
425
518
|
ensureDirectory(agentDirectory);
|
|
426
519
|
ensureDirectory(inboxDirectory);
|
|
427
520
|
ensureDirectory(kudosInboxDirectory);
|
|
428
521
|
ensureDirectory(memoInboxDirectory);
|
|
429
|
-
ensureDirectory(
|
|
522
|
+
ensureDirectory(taskInboxDirectory);
|
|
430
523
|
const generated = [];
|
|
431
524
|
const profilePath = join(agentDirectory, 'profile.json');
|
|
432
525
|
atomicWriteDerivedFile(profilePath, `${JSON.stringify({ _generatedBy: 'synomem', ...profile }, null, 2)}\n`);
|
|
@@ -445,10 +538,10 @@ export class ProjectionManager {
|
|
|
445
538
|
atomicWriteDerivedFile(memoryPath, memoryMarkdown(profile, notes, rebuiltAt));
|
|
446
539
|
generated.push(manifestPath(this.storage.home, memoryPath));
|
|
447
540
|
}
|
|
448
|
-
if (this.storage.config.projection.
|
|
449
|
-
const
|
|
450
|
-
atomicWriteDerivedFile(
|
|
451
|
-
generated.push(manifestPath(this.storage.home,
|
|
541
|
+
if (this.storage.config.projection.writeTasksMarkdown) {
|
|
542
|
+
const tasksPath = join(agentDirectory, 'TASKS.md');
|
|
543
|
+
atomicWriteDerivedFile(tasksPath, tasksMarkdown(profile, tasks, rebuiltAt));
|
|
544
|
+
generated.push(manifestPath(this.storage.home, tasksPath));
|
|
452
545
|
}
|
|
453
546
|
if (this.storage.config.projection.writeInboxEntries) {
|
|
454
547
|
for (const record of records.filter((item) => item.status === 'unacknowledged' && item.revocationStatus === 'active')) {
|
|
@@ -465,11 +558,11 @@ export class ProjectionManager {
|
|
|
465
558
|
atomicWriteDerivedFile(inboxPath, memoInboxMarkdown(record));
|
|
466
559
|
generated.push(relativePath);
|
|
467
560
|
}
|
|
468
|
-
for (const record of
|
|
469
|
-
const inboxPath = join(
|
|
561
|
+
for (const record of tasks.filter((item) => item.status === 'open' || item.status === 'assigned')) {
|
|
562
|
+
const inboxPath = join(taskInboxDirectory, `${record.event.id}.md`);
|
|
470
563
|
const relativePath = manifestPath(this.storage.home, inboxPath);
|
|
471
564
|
if (!existsSync(inboxPath))
|
|
472
|
-
atomicWriteDerivedFile(inboxPath,
|
|
565
|
+
atomicWriteDerivedFile(inboxPath, taskInboxMarkdown(record));
|
|
473
566
|
generated.push(relativePath);
|
|
474
567
|
}
|
|
475
568
|
}
|
|
@@ -500,7 +593,7 @@ export class ProjectionManager {
|
|
|
500
593
|
const events = this.storage.getReadableEvents();
|
|
501
594
|
const records = recordsFromEvents(events);
|
|
502
595
|
const memos = memoRecordsFromEvents(events);
|
|
503
|
-
const
|
|
596
|
+
const tasks = taskRecordsFromEvents(events);
|
|
504
597
|
const paths = [];
|
|
505
598
|
for (const profile of profiles) {
|
|
506
599
|
paths.push(`${profile.id}/profile.json`);
|
|
@@ -508,8 +601,8 @@ export class ProjectionManager {
|
|
|
508
601
|
paths.push(`${profile.id}/WINS.md`);
|
|
509
602
|
if (this.storage.config.projection.writeMemoryMarkdown)
|
|
510
603
|
paths.push(`${profile.id}/MEMORY.md`);
|
|
511
|
-
if (this.storage.config.projection.
|
|
512
|
-
paths.push(`${profile.id}/
|
|
604
|
+
if (this.storage.config.projection.writeTasksMarkdown)
|
|
605
|
+
paths.push(`${profile.id}/TASKS.md`);
|
|
513
606
|
if (this.storage.config.projection.writeInboxEntries) {
|
|
514
607
|
for (const record of records.filter((item) => item.event.recipientAgentId === profile.id &&
|
|
515
608
|
item.status === 'unacknowledged' &&
|
|
@@ -519,9 +612,9 @@ export class ProjectionManager {
|
|
|
519
612
|
for (const record of memos.filter((item) => item.event.recipientAgentId === profile.id && item.status === 'unread')) {
|
|
520
613
|
paths.push(`${profile.id}/inbox/memos/${record.event.id}.md`);
|
|
521
614
|
}
|
|
522
|
-
for (const record of
|
|
615
|
+
for (const record of tasks.filter((item) => item.event.assigneeAgentId === profile.id &&
|
|
523
616
|
(item.status === 'open' || item.status === 'assigned'))) {
|
|
524
|
-
paths.push(`${profile.id}/inbox/
|
|
617
|
+
paths.push(`${profile.id}/inbox/tasks/${record.event.id}.md`);
|
|
525
618
|
}
|
|
526
619
|
}
|
|
527
620
|
}
|
package/dist/projections.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projections.js","sourceRoot":"","sources":["../src/projections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AAavB,MAAM,eAAe,GAAG,gEAAgE,CAAC;AAEzF,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY;IAC9C,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK;SACT,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC;SACxC,OAAO,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,YAAY,CAAC,QAA2B;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,OAAO,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AACtH,CAAC;AAED,SAAS,cAAc,CAAC,MAAmB,EAAE,YAAY,GAAG,IAAI;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,KAAK,GAAG;QACZ,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,iBAAiB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI;QACjD,aAAa,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;QAC1E,eAAe,MAAM,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,IAAI;KACxF,CAAC;IACF,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/F,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,4BAA4B,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,OAAqB,EAAE,OAAsB,EAAE,SAAiB;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG;QACZ,eAAe;QACf,EAAE;QACF,YAAY,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACjD,EAAE;QACF,kBAAkB,SAAS,GAAG;QAC9B,EAAE;KACH,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,2DAA2D,EAAE,EAAE,CAAC,CAAC;QAC5E,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACjC,CAAC;IACD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,GAAG,QAAQ,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,aAAa,CAAC,MAAmB;IACxC,OAAO,GAAG;QACR,eAAe;QACf,EAAE;QACF,KAAK,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACzC,EAAE;QACF,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC;KAC9B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,OAAO,GAAG;QACR,eAAe;QACf,EAAE;QACF,KAAK,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QAC3C,EAAE;QACF,aAAa,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI;QACxF,aAAa,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI;QACvC,kBAAkB,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI;QACrC,EAAE;QACF,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,MAAM,GAAG,GACP,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM;QACjC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI;QACzB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG;YAClB,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG;YACnE,CAAC,CAAC,MAAM,CAAC;IACf,OAAO,GAAG;QACR,eAAe;QACf,EAAE;QACF,KAAK,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC3C,EAAE;QACF,eAAe,MAAM,CAAC,MAAM,IAAI;QAChC,iBAAiB,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI;QAC5C,YAAY,cAAc,CAAC,GAAG,CAAC,IAAI;QACnC,kBAAkB,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI;QACrC,EAAE;QACF,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACxF,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,OAAqB,EAAE,OAAqB,EAAE,SAAiB;IACrF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG;QACZ,eAAe;QACf,EAAE;QACF,cAAc,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACnD,EAAE;QACF,kBAAkB,SAAS,GAAG;QAC9B,EAAE;KACH,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;IAChE,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CACR,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAC5C,EAAE,EACF,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EACnC,EAAE,EACF,gBAAgB,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAC1C,kBAAkB,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EACrC,EAAE,CACH,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,aAAa,CAAC,OAAqB,EAAE,OAAqB,EAAE,SAAiB;IACpF,MAAM,KAAK,GAAG;QACZ,eAAe;QACf,EAAE;QACF,aAAa,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAClD,EAAE;QACF,kBAAkB,SAAS,GAAG;QAC9B,EAAE;KACH,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACvD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GACP,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM;YACjC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI;YACzB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG;gBAClB,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG;gBACnE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,CAAC,IAAI,CACR,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAC5C,EAAE,EACF,eAAe,MAAM,CAAC,MAAM,IAAI,EAChC,iBAAiB,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,EAC5C,YAAY,cAAc,CAAC,GAAG,CAAC,IAAI,EACnC,kBAAkB,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EACrC,EAAE,CACH,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAsB;IACtD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAyC,CAAC;IACzE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAqC,CAAC;IACjE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/E,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACtE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,MAAM;SACV,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;SAC/C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7C,OAAO;YACL,KAAK;YACL,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB;YAC1D,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;SAC9B,CAAC;IAC1B,CAAC,CAAC;SACD,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAC7F,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAsB;IAC1D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxB,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAsB;IAC1D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;gBACpB,KAAK;gBACL,OAAO,EAAE;oBACP,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;oBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,gBAAgB;iBAChC;gBACD,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxB,MAAM,CAAC,OAAO,GAAG;oBACf,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;oBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,gBAAgB;iBAChC,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBAChD,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAsB;IAC1D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;gBACpB,KAAK;gBACL,OAAO,EAAE;oBACP,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9E,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;oBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,gBAAgB;iBAChC;gBACD,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM;aACvD,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;gBACtB,MAAM,CAAC,OAAO,GAAG;oBACf,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9E,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;oBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,gBAAgB;iBAChC,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBAChD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC;QACH,CAAC;aAAM,IACL,KAAK,CAAC,IAAI,KAAK,gBAAgB;YAC/B,KAAK,CAAC,IAAI,KAAK,eAAe;YAC9B,KAAK,CAAC,IAAI,KAAK,eAAe,EAC9B,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBAChD,MAAM,CAAC,MAAM;oBACX,KAAK,CAAC,IAAI,KAAK,gBAAgB;wBAC7B,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe;4BAC9B,CAAC,CAAC,UAAU;4BACZ,CAAC,CAAC,UAAU,CAAC;YACrB,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBAChD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACzD,MAAM,QAAQ,GAAG;QACf,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAC9B,CAAC,MAAM,EAAE,EAAE,CACT,aAAa,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAC5M;QACD,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,CAClC,CAAC,MAAM,EAAE,EAAE,CACT,YAAY,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CACvJ;QACD,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,CAClC,CAAC,MAAM,EAAE,EAAE,CACT,YAAY,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,OAAO,CAAC,OAAO,aAAa,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAC5L;QACD,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,CAClC,CAAC,MAAM,EAAE,EAAE,CACT,YAAY,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,OAAO,CAAC,QAAQ,aAAa,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAC5O;KACF,CAAC;IACF,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACtC,CAAC;AAED,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAExD,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxE,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3D,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YACzD,eAAe,CAAC,cAAc,CAAC,CAAC;YAChC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YACnD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC1D,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACzD,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YACzD,eAAe,CAAC,cAAc,CAAC,CAAC;YAChC,eAAe,CAAC,mBAAmB,CAAC,CAAC;YACrC,eAAe,CAAC,kBAAkB,CAAC,CAAC;YACpC,eAAe,CAAC,kBAAkB,CAAC,CAAC;YAEpC,sBAAsB,CACpB,WAAW,EACX,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACxE,CAAC;YACF,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,eAAe,CACb,SAAS,EACT,aAAa,OAAO,CAAC,WAAW,qEAAqE,CACtG,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;YAC9F,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBACrD,sBAAsB,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;gBACjF,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;YACtF,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;gBACvD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;gBACrD,sBAAsB,CAAC,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;gBACnF,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;YACzF,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;gBACtD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;gBACnD,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;gBACjF,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBACrD,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,MAAM,CACtC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,KAAK,QAAQ,CACjF,EAAE,CAAC;oBACF,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;oBACrE,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;oBACzD,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,CAC/B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,KAAK,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CACjF,EAAE,CAAC;oBACF,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;oBACpE,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC7D,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBACD,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,MAAM,CACpC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAC/D,EAAE,CAAC;oBACF,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;oBACpE,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC7D,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5C,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC5C,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,6CAA6C,KAAK,EAAE,CAAC,CAAC;YAC9F,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7D,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IAClE,CAAC;IAED,SAAS,CAAC,OAAe;QACvB,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,kBAAkB,OAAO,EAAE,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,CAC9C,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,OAAO,CAAC,EAAE,CACzD,CAAC;QACF,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,MAAM,CAChD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,OAAO,CAAC,EAAE,CACzD,CAAC;QACF,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,MAAM,CAChD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,KAAK,OAAO,CAAC,EAAE,CACrD,CAAC;QACF,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,MAAM,CAChD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,OAAO,CAAC,EAAE,CACxD,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACzD,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACzD,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACzD,eAAe,CAAC,cAAc,CAAC,CAAC;QAChC,eAAe,CAAC,cAAc,CAAC,CAAC;QAChC,eAAe,CAAC,mBAAmB,CAAC,CAAC;QACrC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QACpC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAEpC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACzD,sBAAsB,CACpB,WAAW,EACX,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACxE,CAAC;QACF,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;QAE7D,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,eAAe,CACb,SAAS,EACT,aAAa,OAAO,CAAC,WAAW,qEAAqE,CACtG,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YACjD,sBAAsB,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;YAC5E,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YACrD,sBAAsB,CAAC,UAAU,EAAE,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;YAC9E,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YACnD,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;YAC5E,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACrD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CACjC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,KAAK,QAAQ,CACjF,EAAE,CAAC;gBACF,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gBACrE,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAChE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;oBAAE,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrF,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/B,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACtE,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gBACpE,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAChE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;oBAAE,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;gBACzF,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/B,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,CAC/B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAC/D,EAAE,CAAC;gBACF,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gBACpE,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAChE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;oBAAE,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;gBACzF,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO;aAC7B,kBAAkB,EAAE;aACpB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5C,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC5C,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,6CAA6C,KAAK,EAAE,CAAC,CAAC;YAC9F,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9E,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IAClE,CAAC;IAED,aAAa;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;YAC1F,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;YAC9F,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;YAC5F,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBACrD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CACjC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,KAAK,CAAC,gBAAgB,KAAK,OAAO,CAAC,EAAE;oBAC1C,IAAI,CAAC,MAAM,KAAK,gBAAgB;oBAChC,IAAI,CAAC,gBAAgB,KAAK,QAAQ,CACrC,EAAE,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,gBAAgB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gBAChE,CAAC;gBACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,CAC/B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,KAAK,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CACjF,EAAE,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,gBAAgB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gBAChE,CAAC;gBACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,CAC/B,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,OAAO,CAAC,EAAE;oBACzC,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CACzD,EAAE,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,gBAAgB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"projections.js","sourceRoot":"","sources":["../src/projections.ts"],"names":[],"mappings":"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"}
|