@stratusagent/tool-fs 0.12.0 → 0.12.2

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/README.md CHANGED
@@ -51,13 +51,14 @@ tools: [fs.read, fs.search] # or fs.* for the whole toolset
51
51
  | `fs.list` | `safe` | Runs unattended. Symlinks are listed as symlinks and never followed. |
52
52
  | `fs.search` | `safe` | Runs unattended. Matches **literal text** (optionally `wholeWord`), never a regular expression — see below. Given a directory it walks it without following symlinks, skipping `.git`, `node_modules`, and files over 1 MB — each skipped file is named in the result's `skipped` list (the first fifty; `skippedTotal` counts them all), never silently passed over; given a file it searches that file and no others, streamed a line at a time, whatever its size — a single line longer than a million characters (Unicode code points, whatever their encoding) is searched in its first million only, and a file that reports no size (a `/proc` file) is searched in its first 1 MB only; the result says so either way. |
53
53
  | `fs.write` | `gated` | `interactive` asks at the terminal, `remote` asks in Slack, `headless` refuses. Writing where other people read is the thing worth a person's attention. |
54
+ | `fs.move` | `gated` | Same as `fs.write`. Moves or renames a file or directory inside the roots (both ends checked), never overwrites, never moves a symlink, and carries provenance labels to the new path — see below. |
54
55
 
55
56
  ## Settings
56
57
 
57
58
  | Key | Default | What |
58
59
  | --- | --- | --- |
59
60
  | `roots` | none | Directories this agent may reach. **No roots means no filesystem** — nothing is readable, rather than everything. |
60
- | `maxBytes` | `64000` | Cap on one `fs.read`, before the `truncated` marker. A call's own `maxBytes` may ask for less, never more. |
61
+ | `maxBytes` | `64000` | Cap on one `fs.read`, before the `truncated` marker. A call's own `maxBytes` may ask for less, never more. A clipped read also returns `nextOffset`; `fs.read` with `offset: nextOffset` reads the next page, cut on a UTF-8 character boundary. |
61
62
  | `maxMatches` | `100` | Cap on `fs.search` matches. A call's own `maxMatches` may ask for fewer, never more. |
62
63
  | `maxEntries` | `500` | Cap on `fs.list` entries. |
63
64
  | `workspaceRoot` | the host's answer | Only for a host wiring this plugin by hand with no workspace layout of its own. Under the daemon the host answers per agent (`~/.stratus/agents/<id>/workspace`) and this key is not consulted at all — the ledger follows the host, so relocating one writer cannot fork it. Set on a hand-wired host, it means the old shape: one directory per agent directly under the root. |
@@ -95,6 +96,18 @@ inside a root that covers it; a read or search that shows what it holds is
95
96
  labelled at the lowest label in it, because its contents are the paths
96
97
  tainted sessions chose.
97
98
 
99
+ Labels are keyed by path, so a file moved with `shell.run mv` arrives at its
100
+ new path unlabelled. `fs.move` is the supported way for an agent to move its
101
+ own files: before the rename it appends a record at the destination for the
102
+ moved entry, at the lowest label a read of it carried (its own record or a
103
+ directory above it), and one for every recorded path beneath a moved
104
+ directory. A tainted session's move also labels the new name at the
105
+ session's level, since that name was its choice. Nothing is ever raised or
106
+ created for a path with no label, the old paths' records stay (append-only,
107
+ as above), and the ledger is read again after the rename so a record another
108
+ process appended under the old path meanwhile is carried too. It refuses to
109
+ move the ledger, a directory holding one, or anything the host protects.
110
+
98
111
  What this does not cover, said plainly: a copy under another name, a file a
99
112
  different process or a different agent wrote, content pasted through a path
100
113
  the ledger never saw. It closes the sequence one agent can perform by
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAKL,KAAK,UAAU,EAEf,KAAK,MAAM,EAMZ,MAAM,oBAAoB,CAAC;AAyB5B,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,uBAAuB,CAAC;AAS/B,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAwjCD;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,SAAQ,UAAe,KAAG,MAyDxD,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,YAAY,YA5Dc,UAAU,KAAQ,MA4Df,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAKL,KAAK,UAAU,EAEf,KAAK,MAAM,EAMZ,MAAM,oBAAoB,CAAC;AA0B5B,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,uBAAuB,CAAC;AAS/B,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA0+CD;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,SAAQ,UAAe,KAAG,MAuExD,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,YAAY,YA1Ec,UAAU,KAAQ,MA0Ef,CAAC"}
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { constants } from 'node:fs';
2
- import { mkdir, open, readdir, stat } from 'node:fs/promises';
2
+ import { lstat, mkdir, open, readdir, realpath, rename, rmdir, stat } from 'node:fs/promises';
3
3
  import { StringDecoder } from 'node:string_decoder';
4
4
  import os from 'node:os';
5
5
  import path from 'node:path';
6
6
  import { isTaintedTrust, leastTrusted, sessionTrustOf, IMAGE_ATTACHMENT_MAX_BYTES, } from '@stratusagent/core';
7
- import { createFileLedger, createProcessLocalLedger, ledgerContentTrust, ledgerGuard, ledgerTrustOfContent, protectedPathGuard, resolvePluginAgentConfig, workspaceResolver, workspacePreparer, allAgentWorkspaces, } from '@stratusagent/plugins';
7
+ import { createFileLedger, createProcessLocalLedger, LEDGER_FILENAME, ledgerContentTrust, ledgerGuard, ledgerTrustOfContent, protectedPathGuard, resolvePluginAgentConfig, workspaceResolver, workspacePreparer, allAgentWorkspaces, } from '@stratusagent/plugins';
8
8
  import { isRealDirectory, openContained, resolveWithinRoots, } from "./paths.js";
9
9
  export { canonicalRoots, expandHome, openContained, PathOutsideRootError, resolveWithinRoots, } from "./paths.js";
10
10
  // The ledger moved to the plugin host the moment it got a second writer
@@ -88,7 +88,33 @@ const imageMediaTypeOf = (bytes) => {
88
88
  return 'image/webp';
89
89
  return undefined;
90
90
  };
91
- const readContained = async (resolved, maxBytes) => {
91
+ /** Whether a byte continues a UTF-8 sequence rather than starting one. */
92
+ const isContinuation = (byte) => byte !== undefined && (byte & 0xc0) === 0x80;
93
+ /**
94
+ * How many of `bytes` end on a whole character: a page cut inside a
95
+ * multi-byte sequence would show half of it as U+FFFD, and the next page
96
+ * would open with the other half as another. Dropping the partial tail
97
+ * here is what lets the pages join back into the file exactly.
98
+ */
99
+ const wholeCharacterLength = (bytes) => {
100
+ let start = bytes.length - 1;
101
+ while (start >= 0 && isContinuation(bytes[start])) {
102
+ start -= 1;
103
+ }
104
+ if (start < 0) {
105
+ return bytes.length;
106
+ }
107
+ // A lead byte with all its continuations present ends whole; one cut
108
+ // short is dropped, even when that leaves nothing. The caller widens an
109
+ // empty page to one whole character rather than returning half of one.
110
+ return start + utf8Width(bytes[start]) <= bytes.length ? bytes.length : start;
111
+ };
112
+ /** The bytes in the UTF-8 sequence this lead byte opens. */
113
+ const utf8Width = (lead) => {
114
+ const byte = lead ?? 0;
115
+ return byte >= 0xf0 ? 4 : byte >= 0xe0 ? 3 : byte >= 0xc0 ? 2 : 1;
116
+ };
117
+ const readContained = async (resolved, maxBytes, offset = 0) => {
92
118
  if (resolved.kind === 'directory') {
93
119
  throw new Error(`${resolved.path} is a directory; use fs.list.`);
94
120
  }
@@ -118,22 +144,51 @@ const readContained = async (resolved, maxBytes) => {
118
144
  if (info.size <= IMAGE_ATTACHMENT_MAX_BYTES) {
119
145
  const whole = Buffer.alloc(info.size);
120
146
  const { bytesRead: wholeRead } = await handle.read(whole, 0, info.size, 0);
121
- return { content: '', truncated: false, bytes: wholeRead, size: info.size, binary: true, image: { mediaType, data: whole.subarray(0, wholeRead) } };
147
+ return { content: '', truncated: false, bytes: wholeRead, size: info.size, offset: 0, binary: true, image: { mediaType, data: whole.subarray(0, wholeRead) } };
148
+ }
149
+ return { content: '', truncated: false, bytes: 0, size: info.size, offset: 0, binary: true, image: { mediaType, data: Buffer.alloc(0) } };
150
+ }
151
+ // An offset that lands inside a character (one a model computed rather
152
+ // than took from `nextOffset`) moves forward to the next whole one,
153
+ // three bytes at most, rather than opening the page with mojibake.
154
+ let start = Math.min(offset, info.size);
155
+ if (start > 0 && start < info.size) {
156
+ const peek = Buffer.alloc(3);
157
+ const { bytesRead: peeked } = await handle.read(peek, 0, Math.min(3, info.size - start), start);
158
+ let skip = 0;
159
+ while (skip < peeked && isContinuation(peek[skip])) {
160
+ skip += 1;
122
161
  }
123
- return { content: '', truncated: false, bytes: 0, size: info.size, binary: true, image: { mediaType, data: Buffer.alloc(0) } };
162
+ start += skip;
163
+ }
164
+ let length = Math.max(0, Math.min(info.size - start, maxBytes));
165
+ let buffer = Buffer.alloc(length);
166
+ let { bytesRead } = await handle.read(buffer, 0, length, start);
167
+ // A cap narrower than the character at `start` would otherwise return
168
+ // half of it and point `nextOffset` into its middle, where the next
169
+ // read skips the rest: the character lost. The page grows to that one
170
+ // character instead, four bytes at most.
171
+ if (bytesRead > 0 && start + bytesRead < info.size && wholeCharacterLength(buffer.subarray(0, bytesRead)) === 0) {
172
+ length = Math.min(info.size - start, utf8Width(buffer[0]));
173
+ buffer = Buffer.alloc(length);
174
+ ({ bytesRead } = await handle.read(buffer, 0, length, start));
124
175
  }
125
- const length = Math.min(info.size, maxBytes);
126
- const buffer = Buffer.alloc(length);
127
- const { bytesRead } = await handle.read(buffer, 0, length, 0);
128
- const slice = buffer.subarray(0, bytesRead);
129
- if (looksBinary(slice)) {
130
- return { content: '', truncated: false, bytes: bytesRead, size: info.size, binary: true };
176
+ const read = buffer.subarray(0, bytesRead);
177
+ if (looksBinary(read)) {
178
+ return { content: '', truncated: false, bytes: bytesRead, size: info.size, offset: start, binary: true };
131
179
  }
180
+ const end = start + bytesRead;
181
+ // Only a page that stops short of the end is trimmed to a character
182
+ // boundary; the file's own last byte is where it ends, whole or not.
183
+ const kept = end < info.size ? wholeCharacterLength(read) : bytesRead;
184
+ const nextOffset = start + kept < info.size ? start + kept : undefined;
132
185
  return {
133
- content: slice.toString('utf8'),
134
- truncated: info.size > bytesRead,
135
- bytes: bytesRead,
186
+ content: read.subarray(0, kept).toString('utf8'),
187
+ truncated: nextOffset !== undefined,
188
+ bytes: kept,
136
189
  size: info.size,
190
+ offset: start,
191
+ ...(nextOffset === undefined ? {} : { nextOffset }),
137
192
  binary: false,
138
193
  };
139
194
  }
@@ -165,6 +220,7 @@ const createReadTool = (config, ledger, isLedger, serialized, isProtected) => ({
165
220
  properties: {
166
221
  path: { type: 'string', description: 'Absolute, or relative to the agent’s first root.' },
167
222
  maxBytes: { type: 'number', description: 'Stop after this many bytes.' },
223
+ offset: { type: 'number', description: 'Start this many bytes in. A clipped read returns nextOffset; pass it here to read on.' },
168
224
  },
169
225
  required: ['path'],
170
226
  },
@@ -174,6 +230,9 @@ const createReadTool = (config, ledger, isLedger, serialized, isProtected) => ({
174
230
  const resolved = await resolveWithinRoots(settings.roots, requested, { home: settings.home });
175
231
  await refuseProtected(isProtected, resolved, requested);
176
232
  const maxBytes = narrowed(input.maxBytes, settings.maxBytes);
233
+ const offset = typeof input.offset === 'number' && Number.isFinite(input.offset) && input.offset > 0
234
+ ? Math.floor(input.offset)
235
+ : 0;
177
236
  // Per call, not per tool: most files an agent reads are its operator's,
178
237
  // and only the ones a tainted session wrote carry a label — see the
179
238
  // ledger. Bytes and label are read as one step under the path's own
@@ -186,14 +245,16 @@ const createReadTool = (config, ledger, isLedger, serialized, isProtected) => ({
186
245
  // succeeded, since a refused read put nothing in front of the model.
187
246
  const { result, recorded } = await serialized(resolved.path, async () => {
188
247
  const snapshot = await ledger.snapshot(session.agent.id);
189
- const contents = await readContained(resolved, maxBytes);
248
+ const contents = await readContained(resolved, maxBytes, offset);
190
249
  return {
191
250
  result: contents,
192
251
  // The result names the file's path, directories included — see
193
252
  // `withAncestors`.
194
253
  recorded: lowest(await recordedTrustAmong(ledger, session.agent.id, [resolved.path], resolved.root, snapshot), await ledgerContentTrustAmong(isLedger, [[resolved.path, {
195
254
  identity: resolved.identity,
196
- ...(contents.binary ? {} : { raw: contents.content, truncated: contents.truncated }),
255
+ // A page from past the start is as partial as a clipped one: the
256
+ // records before it are not in front of the label either.
257
+ ...(contents.binary ? {} : { raw: contents.content, truncated: contents.truncated || contents.offset > 0 }),
197
258
  }]])),
198
259
  };
199
260
  });
@@ -213,6 +274,10 @@ const createReadTool = (config, ledger, isLedger, serialized, isProtected) => ({
213
274
  // silently clipped file reads as a complete one, and a summary
214
275
  // written from half a document is confidently wrong.
215
276
  truncated: result.truncated,
277
+ // Named only when they say something: an ordinary whole-file
278
+ // read looks exactly as it did before paging existed.
279
+ ...(result.offset > 0 ? { offset: result.offset } : {}),
280
+ ...(result.nextOffset === undefined ? {} : { nextOffset: result.nextOffset }),
216
281
  }),
217
282
  };
218
283
  },
@@ -942,6 +1007,323 @@ const createWriteTool = (config, ledger, isLedger, serialized, isProtected) => (
942
1007
  };
943
1008
  },
944
1009
  });
1010
+ const spellingsOf = async (paths) => {
1011
+ const spellings = [];
1012
+ for (const named of paths) {
1013
+ spellings.push(path.resolve(named));
1014
+ try {
1015
+ const canonical = await realpath(named);
1016
+ if (canonical !== path.resolve(named)) {
1017
+ spellings.push(canonical);
1018
+ }
1019
+ }
1020
+ catch (error) {
1021
+ const code = error.code;
1022
+ if (code !== 'ENOENT' && code !== 'ENOTDIR') {
1023
+ throw error;
1024
+ }
1025
+ }
1026
+ }
1027
+ return spellings;
1028
+ };
1029
+ const isAtOrUnder = (parent, candidate) => candidate === parent || candidate.startsWith(`${parent}${path.sep}`);
1030
+ /**
1031
+ * The lowest label a read of `absolutePath` would carry: its own record and
1032
+ * those of the directories above it up to the root, which a read honours too
1033
+ * (see `withAncestors`). A move has to carry the label the file reads at, not
1034
+ * only the one recorded under its own name: a clean file inside a directory a
1035
+ * tainted session named reads as tainted, and moving it out of that directory
1036
+ * must not launder it.
1037
+ */
1038
+ const readLabelOf = (snapshot, absolutePath, root) => {
1039
+ const labels = withAncestors(absolutePath, root)
1040
+ .map((named) => snapshot[named])
1041
+ .filter((label) => label !== undefined);
1042
+ return labels.length > 0 ? leastTrusted(...labels) : undefined;
1043
+ };
1044
+ /**
1045
+ * The records a move of `source` to `destination` owes the ledger: the moved
1046
+ * entry at the label it reads at, and every recorded path beneath it at its
1047
+ * own label, re-rooted. Derived from the ledger rather than a walk of the
1048
+ * tree, because only a path the ledger names has a label to carry, and the
1049
+ * ledger is the thing that cannot be allowed to miss one.
1050
+ */
1051
+ const carriedLabels = (snapshot, source, sourceRoot, destination) => {
1052
+ const carried = new Map();
1053
+ const own = readLabelOf(snapshot, source, sourceRoot);
1054
+ if (own !== undefined) {
1055
+ carried.set(destination, own);
1056
+ }
1057
+ const prefix = `${source}${path.sep}`;
1058
+ for (const [named, label] of Object.entries(snapshot)) {
1059
+ if (named.startsWith(prefix)) {
1060
+ carried.set(path.join(destination, named.slice(prefix.length)), label);
1061
+ }
1062
+ }
1063
+ return carried;
1064
+ };
1065
+ /**
1066
+ * Resolve the entry a move acts on without following it. `resolveWithinRoots`
1067
+ * canonicalizes the whole path, so a symlink named as the source would
1068
+ * resolve to its target and the move would take the target, possibly from
1069
+ * another root. The parent is resolved instead and the final name is
1070
+ * inspected with `lstat`, so a link is seen as a link and refused.
1071
+ */
1072
+ const resolveMoveSource = async (roots, requested, home) => {
1073
+ const name = path.basename(requested);
1074
+ if (name.length === 0 || name === '.' || name === '..') {
1075
+ throw new Error(`fs.move needs a file or directory name to move, not ${requested}.`);
1076
+ }
1077
+ const parent = await resolveWithinRoots(roots, path.dirname(requested), { home });
1078
+ if (parent.kind !== 'directory') {
1079
+ throw new Error(`${parent.path} is not a directory.`);
1080
+ }
1081
+ const source = path.join(parent.path, name);
1082
+ let info;
1083
+ try {
1084
+ info = await lstat(source);
1085
+ }
1086
+ catch (error) {
1087
+ if (error.code === 'ENOENT') {
1088
+ const missing = new Error(`No such file or directory: ${requested}`);
1089
+ missing.code = 'ENOENT';
1090
+ throw missing;
1091
+ }
1092
+ throw error;
1093
+ }
1094
+ if (info.isSymbolicLink()) {
1095
+ throw new Error(`${source} is a symlink. fs.move moves files and directories, not links.`);
1096
+ }
1097
+ if (!info.isFile() && !info.isDirectory()) {
1098
+ throw new Error(`${source} is not a regular file or directory.`);
1099
+ }
1100
+ return {
1101
+ path: source,
1102
+ root: parent.root,
1103
+ exists: true,
1104
+ identity: { dev: info.dev, ino: info.ino },
1105
+ kind: info.isFile() ? 'file' : 'directory',
1106
+ };
1107
+ };
1108
+ const createMoveTool = (config, ledger, ledgerView, serialized, isProtected, protectedHolders) => ({
1109
+ name: 'fs.move',
1110
+ description: 'Move or rename a file or directory inside this agent’s roots. Provenance labels move with it, so content from outside still reads as outside after the move. Refuses to overwrite.',
1111
+ // Gated like fs.write: it changes what is where, and outlives the turn.
1112
+ risk: 'gated',
1113
+ parameters: {
1114
+ type: 'object',
1115
+ properties: {
1116
+ from: { type: 'string', description: 'The file or directory to move.' },
1117
+ to: { type: 'string', description: 'Its new path. Nothing may exist there yet.' },
1118
+ },
1119
+ required: ['from', 'to'],
1120
+ },
1121
+ async execute(input, session) {
1122
+ const settings = settingsFor(config, session);
1123
+ const fromRequested = requireString(input, 'from');
1124
+ const toRequested = requireString(input, 'to');
1125
+ const source = await resolveMoveSource(settings.roots, fromRequested, settings.home);
1126
+ const destination = await resolveWithinRoots(settings.roots, toRequested, { home: settings.home, allowMissing: true });
1127
+ // Refused before anything is recorded or created. The ledger, and any
1128
+ // directory holding one, never moves: the ledger is found by its place in
1129
+ // the workspace, so a moved ledger is a lost one and every file it
1130
+ // labelled would read as the agent's own. A directory holding something
1131
+ // the host protects is refused for the same reason a read of it is.
1132
+ const refuseLedger = (target) => new Error(`${target} is or holds the filesystem provenance ledger, which fs.move does not move.`);
1133
+ const checkGuards = async () => {
1134
+ await refuseProtected(isProtected, source, fromRequested);
1135
+ await refuseProtected(isProtected, destination, toRequested);
1136
+ const view = await ledgerView();
1137
+ if (await view.guard(source.path, source.identity)) {
1138
+ throw refuseLedger(source.path);
1139
+ }
1140
+ if (await view.guard(destination.path, destination.identity)) {
1141
+ throw refuseLedger(destination.path);
1142
+ }
1143
+ if (source.kind === 'directory') {
1144
+ if (view.holders.some((held) => isAtOrUnder(source.path, held))) {
1145
+ throw refuseLedger(source.path);
1146
+ }
1147
+ const guarded = (await protectedHolders()).find((held) => isAtOrUnder(source.path, held));
1148
+ if (guarded !== undefined) {
1149
+ throw new Error(`Refusing ${fromRequested}: it holds ${guarded}, which Stratus keeps from every agent whatever its roots allow.`);
1150
+ }
1151
+ }
1152
+ };
1153
+ // `exists` from the resolver misses a dangling symlink, which realpath
1154
+ // reports as missing and rename would silently replace.
1155
+ const refuseExisting = async () => {
1156
+ try {
1157
+ await lstat(destination.path);
1158
+ }
1159
+ catch (error) {
1160
+ if (error.code === 'ENOENT') {
1161
+ return;
1162
+ }
1163
+ throw error;
1164
+ }
1165
+ throw new Error(`${destination.path} already exists. fs.move does not overwrite; choose another name or move that one first.`);
1166
+ };
1167
+ await checkGuards();
1168
+ await refuseExisting();
1169
+ if (isAtOrUnder(source.path, destination.path)) {
1170
+ throw new Error(`Cannot move ${source.path} into itself.`);
1171
+ }
1172
+ // The directories the move creates, deepest last — named by this
1173
+ // session, so recorded at its label like fs.write's.
1174
+ const missingParents = [];
1175
+ let existingParent = destination.root;
1176
+ for (let parent = path.dirname(destination.path); parent !== destination.root && parent !== path.dirname(parent); parent = path.dirname(parent)) {
1177
+ try {
1178
+ await stat(parent);
1179
+ existingParent = parent;
1180
+ break;
1181
+ }
1182
+ catch {
1183
+ missingParents.unshift(parent);
1184
+ }
1185
+ }
1186
+ // rename(2) cannot cross filesystems. Refused here, before any label is
1187
+ // recorded or directory made, rather than by EXDEV halfway through.
1188
+ const sourceDevice = source.identity?.dev ?? (await lstat(source.path)).dev;
1189
+ const crossDevice = () => new Error(`${fromRequested} and ${toRequested} are on different filesystems, which fs.move does not cross; copy it with fs.read and fs.write instead.`);
1190
+ if ((await stat(existingParent)).dev !== sourceDevice) {
1191
+ throw crossDevice();
1192
+ }
1193
+ const trust = sessionTrustOf(session);
1194
+ const tainted = isTaintedTrust(trust);
1195
+ // One ledger read for the whole tree: per-path records would read the
1196
+ // ledger again for every labelled descendant.
1197
+ const record = async (labels) => {
1198
+ if (labels.size === 0) {
1199
+ return;
1200
+ }
1201
+ if (ledger.recordWrites !== undefined) {
1202
+ await ledger.recordWrites(session.agent.id, [...labels]);
1203
+ return;
1204
+ }
1205
+ for (const [named, label] of labels) {
1206
+ await ledger.recordWrite(session.agent.id, named, label);
1207
+ }
1208
+ };
1209
+ const owed = (snapshot) => {
1210
+ const labels = carriedLabels(snapshot, source.path, source.root, destination.path);
1211
+ if (tainted) {
1212
+ // The new name is this session's choice, so it carries the session's
1213
+ // label too, whichever is lower.
1214
+ const carried = labels.get(destination.path);
1215
+ labels.set(destination.path, carried === undefined ? trust : leastTrusted(carried, trust));
1216
+ }
1217
+ return labels;
1218
+ };
1219
+ // Both names, in a fixed order so two moves in opposite directions
1220
+ // cannot each hold one and wait on the other.
1221
+ const [first, second] = [source.path, destination.path].sort();
1222
+ let carriedCount = 0;
1223
+ await serialized(first, () => serialized(second, async () => {
1224
+ // Recorded BEFORE the rename, like fs.write's labels before its bytes:
1225
+ // a move that dies or fails after this leaves labels on a path with
1226
+ // nothing there, which over-marks; the other order could leave a
1227
+ // tainted file at the new path with no label, which launders it. The
1228
+ // ledger is append-only, so the old paths' records stay and nothing a
1229
+ // concurrent writer appended is lost.
1230
+ const before = await ledger.snapshot(session.agent.id);
1231
+ const labels = owed(before);
1232
+ if (tainted) {
1233
+ for (const parent of missingParents) {
1234
+ labels.set(parent, labels.has(parent) ? leastTrusted(labels.get(parent), trust) : trust);
1235
+ }
1236
+ }
1237
+ await record(labels);
1238
+ // A second look just before the rename: what was decided about must
1239
+ // still be what is there. The ledger guard reads the host's
1240
+ // workspaces again, and the source is the same inode.
1241
+ await checkGuards();
1242
+ const now = await lstat(source.path);
1243
+ if (now.dev !== source.identity?.dev || now.ino !== source.identity?.ino) {
1244
+ throw new Error(`${source.path} changed while the move was being prepared; try again.`);
1245
+ }
1246
+ await refuseExisting();
1247
+ const destinationParent = path.dirname(destination.path);
1248
+ // What this call made, from mkdir's own answer (the first directory it
1249
+ // created): a peer can make one of `missingParents` in the meantime,
1250
+ // and that one is not this call's to take back.
1251
+ let created = [];
1252
+ if (missingParents.length > 0) {
1253
+ const first = await mkdir(destinationParent, { recursive: true });
1254
+ created = first === undefined ? [] : missingParents.filter((parent) => isAtOrUnder(first, parent));
1255
+ }
1256
+ // rename(2) resolves both names afresh, and Node has no renameat to
1257
+ // hold the checked parent open across it. So the parent is checked
1258
+ // once more right before, and the result is checked right after:
1259
+ // a parent swapped for a link in either window moves the entry
1260
+ // somewhere other than the name decided about, which shows as a
1261
+ // different real parent or a different inode at the destination.
1262
+ // That is undone and refused rather than reported as a move.
1263
+ const parentIsCheckedDirectory = async () => {
1264
+ try {
1265
+ const info = await lstat(destinationParent);
1266
+ return info.isDirectory() && (await realpath(destinationParent)) === destinationParent;
1267
+ }
1268
+ catch {
1269
+ return false;
1270
+ }
1271
+ };
1272
+ if (!(await parentIsCheckedDirectory())) {
1273
+ throw new Error(`${destinationParent} changed while the move was being prepared; try again.`);
1274
+ }
1275
+ try {
1276
+ await rename(source.path, destination.path);
1277
+ }
1278
+ catch (error) {
1279
+ if (error.code !== 'EXDEV') {
1280
+ throw error;
1281
+ }
1282
+ // Two mounts of one filesystem share a device number, so the check
1283
+ // above can pass and rename still refuse. Nothing moved: the
1284
+ // directories this call made are taken back, deepest first and only
1285
+ // while empty. The labels recorded stay, which over-marks a path
1286
+ // with nothing there, the safe direction.
1287
+ for (const parent of [...created].reverse()) {
1288
+ await rmdir(parent).catch(() => undefined);
1289
+ }
1290
+ throw crossDevice();
1291
+ }
1292
+ let landed = false;
1293
+ try {
1294
+ const info = await lstat(destination.path);
1295
+ landed = info.dev === source.identity?.dev && info.ino === source.identity?.ino && (await parentIsCheckedDirectory());
1296
+ }
1297
+ catch {
1298
+ landed = false;
1299
+ }
1300
+ if (!landed) {
1301
+ // Best effort: the same names, reversed, reach the same entries.
1302
+ await rename(destination.path, source.path).catch(() => undefined);
1303
+ throw new Error(`Refusing to move ${source.path}: a directory on the way changed during the move, so it may not have landed at ${destination.path}. It was moved back where that was possible.`);
1304
+ }
1305
+ // Another process (a `stratus run`, or plugin-mcp) may have recorded a
1306
+ // tainted write under the old path after the first snapshot and before
1307
+ // the rename; its bytes moved with the tree. Records never clear, so a
1308
+ // second snapshot sees every such record, and anything new is carried.
1309
+ const after = owed(await ledger.snapshot(session.agent.id));
1310
+ const late = new Map();
1311
+ for (const [named, label] of after) {
1312
+ if (labels.get(named) !== label) {
1313
+ late.set(named, label);
1314
+ }
1315
+ }
1316
+ await record(late);
1317
+ carriedCount = after.size;
1318
+ }));
1319
+ return {
1320
+ from: relativeTo(source.root, source.path),
1321
+ to: relativeTo(destination.root, destination.path),
1322
+ absolutePath: destination.path,
1323
+ labelsCarried: carriedCount,
1324
+ };
1325
+ },
1326
+ });
945
1327
  /**
946
1328
  * The filesystem toolset.
947
1329
  *
@@ -1001,10 +1383,23 @@ export const createFsPlugin = (config = {}) => {
1001
1383
  // Asked per call, like the ledger guard: what the host protects is
1002
1384
  // re-read so a change under a running daemon holds from the next call.
1003
1385
  const isProtected = () => protectedPathGuard(context.protectedPaths);
1386
+ const ledgerView = async () => {
1387
+ const workspaces = await allAgentWorkspaces(context.workspaces, ledgerRoot);
1388
+ const roots = ledgerRoot !== undefined ? [ledgerRoot] : [];
1389
+ return {
1390
+ guard: await ledgerGuard(workspaces, roots),
1391
+ holders: await spellingsOf([
1392
+ ...workspaces.map((workspace) => path.join(workspace, LEDGER_FILENAME)),
1393
+ ...roots,
1394
+ ]),
1395
+ };
1396
+ };
1397
+ const protectedHolders = async () => spellingsOf(context.protectedPaths === undefined ? [] : await context.protectedPaths.all());
1004
1398
  context.tools.register(createReadTool(config, ledger, isLedger, serialized, isProtected));
1005
1399
  context.tools.register(createListTool(config, ledger, isProtected));
1006
1400
  context.tools.register(createSearchTool(config, ledger, isLedger, isProtected));
1007
1401
  context.tools.register(createWriteTool(config, ledger, isLedger, serialized, isProtected));
1402
+ context.tools.register(createMoveTool(config, ledger, ledgerView, serialized, isProtected, protectedHolders));
1008
1403
  },
1009
1404
  };
1010
1405
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAY,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EAQd,0BAA0B,GAE3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GAKnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,eAAe,EACf,aAAa,EACb,kBAAkB,GAEnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,wEAAwE;AACxE,uEAAuE;AACvE,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,oBAAoB,GAIrB,MAAM,uBAAuB,CAAC;AAE/B,+EAA+E;AAC/E,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC;AAClD,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACjC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,6BAA6B,GAAG,SAAS,CAAC;AAChD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAahC,MAAM,SAAS,GAAG,CAAC,KAA4B,EAAY,EAAE,CAC3D,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAElG,MAAM,QAAQ,GAAG,CAAC,KAA4B,EAAE,QAAgB,EAAU,EAAE,CAC1E,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,QAAQ,GAAG,CAAC,SAAgC,EAAE,GAAW,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAEpH,MAAM,aAAa,GAAG,CAAC,KAAiB,EAAE,GAAW,EAAU,EAAE;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,oCAAoC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG,CAAC,MAAkB,EAAE,OAAgB,EAAE,EAAE;IAC3D,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpE,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QACxD,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;QAC9D,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;QAC9D,IAAI,EAAE,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;KACvE,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAEpE,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,MAAc,EAAU,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC;AAEhG;;;;;GAKG;AACH,MAAM,eAAe,GAAG,KAAK,EAC3B,WAA8C,EAC9C,QAAsB,EACtB,SAAiB,EACF,EAAE;IACjB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,YAAY,SAAS,kBAAkB,KAAK,mEAAmE;cAC7G,oEAAoE,CACvE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,KAAiB,EAAwC,EAAE;IACnF,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,MAAc,EAAU,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IAC9G,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,WAAW,CAAC;IACxF,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC;IAC1G,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC;QAAE,OAAO,WAAW,CAAC;IACpG,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,YAAY,CAAC;IAChG,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,cAAc,GAAG,CAAC,IAAwB,EAAW,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;AAE3G;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAU,EAAE;IACrD,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,OAAO,KAAK,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAClD,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,qEAAqE;IACrE,wEAAwE;IACxE,uEAAuE;IACvE,OAAO,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AAChF,CAAC,CAAC;AAEF,4DAA4D;AAC5D,MAAM,SAAS,GAAG,CAAC,IAAwB,EAAU,EAAE;IACrD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,EACzB,QAAsB,EACtB,QAAgB,EAChB,MAAM,GAAG,CAAC,EAC0L,EAAE;IACtM,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,+BAA+B,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,yBAAyB,CAAC,CAAC;IAC7D,CAAC;IACD,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,mCAAmC;IACnC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/F,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,+BAA+B,CAAC,CAAC;QACnE,CAAC;QACD,uEAAuE;QACvE,mEAAmE;QACnE,mEAAmE;QACnE,qEAAqE;QACrE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACrD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QACnE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,IAAI,0BAA0B,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC3E,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;YACjK,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5I,CAAC;QACD,uEAAuE;QACvE,oEAAoE;QACpE,mEAAmE;QACnE,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YAChG,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,OAAO,IAAI,GAAG,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACnD,IAAI,IAAI,CAAC,CAAC;YACZ,CAAC;YACD,KAAK,IAAI,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChE,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAChE,sEAAsE;QACtE,oEAAoE;QACpE,sEAAsE;QACtE,yCAAyC;QACzC,IAAI,SAAS,GAAG,CAAC,IAAI,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAChH,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3C,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC3G,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,GAAG,SAAS,CAAC;QAC9B,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,MAAM,UAAU,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAChD,SAAS,EAAE,UAAU,KAAK,SAAS;YACnC,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,KAAK;YACb,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;YACnD,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AAaF,MAAM,qBAAqB,GAAG,GAAoB,EAAE;IAClD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,OAAO,CAAI,GAAW,EAAE,IAAsB,EAAc,EAAE;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACrB,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;gBAChC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,MAAkB,EAClB,MAA0B,EAC1B,QAAoC,EACpC,UAA2B,EAC3B,WAA8C,EACxC,EAAE,CAAC,CAAC;IACV,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,uJAAuJ;IACpK,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;YACzF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;YACxE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uFAAuF,EAAE;SACjI;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;IACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO;QACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,eAAe,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAClG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YAC1B,CAAC,CAAC,CAAC,CAAC;QACN,wEAAwE;QACxE,oEAAoE;QACpE,oEAAoE;QACpE,sEAAsE;QACtE,mEAAmE;QACnE,oEAAoE;QACpE,uEAAuE;QACvE,qEAAqE;QACrE,8DAA8D;QAC9D,qEAAqE;QACrE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACjE,OAAO;gBACL,MAAM,EAAE,QAAQ;gBAChB,+DAA+D;gBAC/D,mBAAmB;gBACnB,QAAQ,EAAE,MAAM,CACd,MAAM,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAC5F,MAAM,uBAAuB,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;4BACvD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;4BAC3B,iEAAiE;4BACjE,0DAA0D;4BAC1D,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;yBAC5G,CAAC,CAAC,CAAC,CACL;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QACD,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;YAC9C,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,GAAG,CAAC,MAAM,CAAC,MAAM;gBACf,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE;gBACzG,CAAC,CAAC;oBACE,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,4DAA4D;oBAC5D,+DAA+D;oBAC/D,qDAAqD;oBACrD,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,6DAA6D;oBAC7D,sDAAsD;oBACtD,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvD,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;iBAC9E,CAAC;SACP,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,SAAS,GAAG,CAChB,KAAwE,EACxE,IAAY,EACZ,OAAqC,EACzB,EAAE;IACd,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,0BAA0B,4BAA4B,EAAE,EAAE,CAAC;IAC1J,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,+CAA+C,EAAE,EAAE,CAAC;IAC1H,CAAC;IACD,IAAI,CAAC;QACH,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/F,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IACjI,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,KAA+E,EAAU,EAAE;IAC5G,IAAI,KAAK,CAAC,cAAc,EAAE;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,KAAK,CAAC,WAAW,EAAE;QAAE,OAAO,WAAW,CAAC;IAC5C,IAAI,KAAK,CAAC,MAAM,EAAE;QAAE,OAAO,MAAM,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;;;;GAMG;AACH;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAC,YAAoB,EAAE,IAAY,EAAY,EAAE;IACrE,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7B,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3J,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,KAAK,EAC9B,MAA0B,EAC1B,OAAe,EACf,aAA+B;AAC/B,qGAAqG;AACrG,IAAY;AACZ;;;;;;;GAOG;AACH,MAAkC,EACD,EAAE;IACnC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC;YACtD,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC,CAAC;AAmBF,MAAM,uBAAuB,GAAG,KAAK,EACnC,QAAoC,EACpC,KAA6C,EACZ,EAAE;IACnC,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACjD,SAAS;QACX,CAAC;QACD,kEAAkE;QAClE,oEAAoE;QACpE,iEAAiE;QACjE,mEAAmE;QACnE,kCAAkC;QAClC,IAAI,KAA6B,CAAC;QAClC,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,GAAG,MAAM,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC5B,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,YAAY,CAClB,SAAS,EACT,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,SAAS,EAC5C,CAAC,MAAM,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,SAAS,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,GAAG,MAAqC,EAA0B,EAAE;IAClF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAuB,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IACnF,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,MAAkB,EAClB,MAA0B,EAC1B,WAA8C,EACxC,EAAE,CAAC,CAAC;IACV,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,oDAAoD;IACjE,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;SAC7E;KACF;IACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO;QACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7F,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,eAAe,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,mCAAmC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,IAAwB,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjC,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,GAAG,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,+DAA+D;gBAC/D,mEAAmE;gBACnE,6BAA6B;gBAC7B,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;gBACtB,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;aACxC,CAAC;QACJ,CAAC,CAAC,CAAC,CAAC;QAEJ,wEAAwE;QACxE,2CAA2C;QAC3C,wEAAwE;QACxE,gBAAgB;QAChB,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACvC,MAAM,EACN,OAAO,CAAC,KAAK,CAAC,EAAE,EAChB,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAC/E,QAAQ,CAAC,IAAI,EACb,YAAY,CACb,CAAC;QACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;YAC9C,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;SAC1C,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAQH,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE7F;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,OAAyD,EAAU,EAAE;IACtG,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,IAAI,MAAM,CACf,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,EAChD,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CACjC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,cAAc,GAAG,SAAS,CAAC;AAwBjC;;;;;;;GAOG;AACH,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AAE7D,MAAM,eAAe,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;AACpF,MAAM,cAAc,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;AAEnF,0FAA0F;AAC1F,MAAM,eAAe,GAAG,CAAC,IAAY,EAAU,EAAE;IAC/C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACxD,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1F,KAAK,IAAI,CAAC,CAAC;YACX,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC7B,CAAC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,KAAa,EAAU,EAAE;IAC9D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QAClE,KAAK,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpI,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,GAAG,CAAC,IAAY,EAAY,EAAE;IACzC,IAAI,IAAI,CAAC,MAAM,IAAI,cAAc,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,cAAc,EAAE,CAAC;QAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACnD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC1F,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,IAAc,EAAW,EAAE;IACjE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7E,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,KAAK,EAAE,QAAsB,EAAwB,EAAE;IACvE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/F,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,MAAM,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,uFAAuF;AACvF,MAAM,OAAO,GAAG,KAAK,SAAS,CAAC,EAC7B,MAAwC,EACxC,IAAY,EACZ,MAA2B;IAE3B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,mEAAmE;QACnE,sEAAsE;QACtE,mEAAmE;QACnE,kEAAkE;QAClE,sEAAsE;QACtE,0EAA0E;QAC1E,sEAAsE;QACtE,sEAAsE;QACtE,4DAA4D;QAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;QACzD,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7F,oEAAoE;YACpE,kEAAkE;YAClE,mDAAmD;YACnD,gEAAgE;YAChE,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAI,GAAc,CAAC,MAAM,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClG,IAAI,IAAK,GAAc,CAAC,MAAM,CAAC;YAC/B,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACb,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACvB,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,GAAc,CAAC,QAAQ,CAAC,CAAC,EAAG,GAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAE,GAAc,CAAC;YACtG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM;YACR,CAAC;YACD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,SAAS,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,SAAS,CAAC;gBACR,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;oBACnB,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC1B,+DAA+D;wBAC/D,gEAAgE;wBAChE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;wBAC/B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;4BACpB,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;4BACrB,UAAU,GAAG,IAAI,CAAC;4BAClB,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;wBAC/B,CAAC;oBACH,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,MAAM,UAAU;oBACd,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE;oBACrD,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC/C,KAAK,GAAG,EAAE,CAAC;gBACX,UAAU,GAAG,KAAK,CAAC;gBACnB,aAAa,GAAG,EAAE,CAAC;gBACnB,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAa,UAAU;YAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE;YACrD,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC;QACb,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AAEF,4EAA4E;AAC5E,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,MAAM,SAAS,GAAG,KAAK,SAAS,CAAC,EAAE,SAAiB,EAAE,KAAK,GAAG,CAAC;IAC7D,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,qEAAqE;QACrE,qEAAqE;QACrE,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC3D,SAAS;YACX,CAAC;YACD,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAClC,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,MAAkB,EAClB,MAA0B,EAC1B,QAAoC,EACpC,WAA8C,EACxC,EAAE,CAAC,CAAC;IACV,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,wEAAwE;IACrF,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iDAAiD,EAAE;YACzF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sDAAsD,EAAE;YAC7F,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,EAAE;YACtE,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC/B;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB;IACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO;QACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7F,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,eAAe,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACxD,gEAAgE;QAChE,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE;YAChC,aAAa,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI;YAC3C,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI;SACpC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,uEAAuE;QACvE,sEAAsE;QACtE,wEAAwE;QACxE,0DAA0D;QAC1D,yEAAyE;QACzE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7D,iEAAiE;QACjE,wEAAwE;QACxE,oEAAoE;QACpE,mEAAmE;QACnE,+CAA+C;QAC/C,MAAM,OAAO,GAA2D,EAAE,CAAC;QAC3E,uEAAuE;QACvE,mEAAmE;QACnE,iDAAiD;QACjD,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,KAAsD,EAAE,QAAuB,EAAQ,EAAE;YACrG,YAAY,IAAI,CAAC,CAAC;YAClB,IAAI,OAAO,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpB,+DAA+D;gBAC/D,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,KAAK,IAAyB,EAAE;YAC7C,MAAM,QAAQ,GAAG,MAAM,CACrB,MAAM,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,EAClG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,UAAU,CAAC,CACpD,CAAC;YACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YACD,OAAO;gBACL,KAAK;gBACL,OAAO;gBACP,SAAS;gBACT,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvD,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,wEAAwE;QACxE,qEAAqE;QACrE,yEAAyE;QACzE,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9B,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,qEAAqE;YACrE,mBAAmB;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,yBAAyB,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,KAAgB,EAAW,EAAE;YACtF,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC5B,SAAS,GAAG,IAAI,CAAC;gBACjB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;gBACrC,IAAI,EAAE,KAAK,GAAG,CAAC;gBACf,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;aAC1D,CAAC,CAAC;YACH,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7B,mEAAmE;YACnE,kEAAkE;YAClE,qEAAqE;YACrE,kDAAkD;YAClD,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,MAAM,eAAe,GAAG,SAAS,CAAC;YAClC,mEAAmE;YACnE,gDAAgD;YAChD,kEAAkE;YAClE,+DAA+D;YAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChF,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACzD,kEAAkE;YAClE,mEAAmE;YACnE,kEAAkE;YAClE,6CAA6C;YAC7C,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC/B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,8DAA8D;oBAC9D,6DAA6D;oBAC7D,WAAW;oBACX,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACvB,0DAA0D;oBAC1D,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACjC,SAAS,GAAG,eAAe,CAAC;oBAC5B,OAAO,GAAG,KAAK,CAAC;oBAChB,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC3G,MAAM;gBACR,CAAC;gBACD,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC;gBACzB,IAAI,YAAY,EAAE,CAAC;oBACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC/F,MAAM,GAAG,IAAI,CAAC;gBAChB,CAAC;gBACD,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,KAAK,CAAC,SAAS,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC;YAC7C,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;oBAC9C,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,sBAAsB,cAAc,GAAG,SAAS,iDAAiD,cAAc,GAAG,SAAS,eAAe;iBACnJ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;oBAC9C,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,kDAAkD,sBAAsB,GAAG,SAAS,UAAU;iBACvG,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,MAAM,EAAE,CAAC;QAClB,CAAC;QAED,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC5B,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM;YACR,CAAC;YACD,kEAAkE;YAClE,iEAAiE;YACjE,IAAI,QAAgB,CAAC;YACrB,IAAI,QAAsB,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,eAAe,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpG,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oBACjC,QAAQ,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC5C,gEAAgE;oBAChE,gEAAgE;oBAChE,+DAA+D;oBAC/D,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;wBACtD,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,kCAAkC,EAAE,EAAE,QAAQ,CAAC,CAAC;wBACxH,SAAS;oBACX,CAAC;oBACD,IAAI,IAAI,CAAC,IAAI,GAAG,6BAA6B,EAAE,CAAC;wBAC9C,IAAI,CAAC;4BACH,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;4BACrC,KAAK,EAAE,IAAI,CAAC,IAAI;4BAChB,MAAM,EAAE,YAAY,6BAA6B,GAAG,SAAS,qDAAqD;yBACnH,EAAE,QAAQ,CAAC,CAAC;wBACb,SAAS;oBACX,CAAC;oBACD,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrC,CAAC;wBAAS,CAAC;oBACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC9E,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CACtB,MAAkB,EAClB,MAA0B,EAC1B,QAAoC,EACpC,UAA2B,EAC3B,WAA8C,EACxC,EAAE,CAAC,CAAC;IACV,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,2DAA2D;IACxE,yEAAyE;IACzE,wEAAwE;IACxE,IAAI,EAAE,OAAO;IACb,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC5B;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;KAC9B;IACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE;YACnE,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,eAAe,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAExD,mEAAmE;QACnE,wEAAwE;QACxE,sEAAsE;QACtE,qEAAqE;QACrE,MAAM,aAAa,GAAG,CAAC,MAAc,EAAS,EAAE,CAC9C,IAAI,KAAK,CAAC,GAAG,MAAM,qEAAqE,CAAC,CAAC;QAC5F,IAAI,MAAM,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,MAAM,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,oEAAoE;QACpE,sEAAsE;QACtE,qEAAqE;QACrE,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,QAAQ,CAAC,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1I,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnB,MAAM;gBACR,CAAC;gBAAC,MAAM,CAAC;oBACP,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACpC,sEAAsE;YACtE,oEAAoE;YACpE,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,IAAI,KAAK,WAAW;gBAC3B,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,kBAAkB;gBACpC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,yBAAyB,CAC9C,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI;YACjC,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,QAAQ;YAC7D,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAE/D,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACtC,qEAAqE;QACrE,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACzC,qEAAqE;YACrE,mEAAmE;YACnE,iEAAiE;YACjE,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,6DAA6D;YAC7D,kEAAkE;YAClE,iEAAiE;YACjE,gDAAgD;YAChD,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;oBACpC,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACrB,+DAA+D;gBAC/D,oEAAoE;gBACpE,kEAAkE;gBAClE,UAAU;gBACV,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,CAAC;YAED,mEAAmE;YACnE,iEAAiE;YACjE,sEAAsE;YACtE,mEAAmE;YACnE,IAAI,MAAM,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACrF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,QAAQ,CAAC,MAAM,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC1E,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,0DAA0D;gBAC1D,gEAAgE;gBAChE,4DAA4D;gBAC5D,gEAAgE;gBAChE,iEAAiE;gBACjE,gEAAgE;gBAChE,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjH,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,yBAAyB,CAAC,CAAC;gBAC5D,CAAC;gBACD,iEAAiE;gBACjE,kEAAkE;gBAClE,mEAAmE;gBACnE,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,iEAAiE,CAAC,CAAC;gBACrG,CAAC;gBACD,sEAAsE;gBACtE,mEAAmE;gBACnE,MAAM,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBACvD,IAAI,MAAM,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7D,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACpF,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;YAC9C,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;YACzC,QAAQ,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI;SAChC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAcH,MAAM,WAAW,GAAG,KAAK,EAAE,KAAwB,EAAqB,EAAE;IACxE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;YACnD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5C,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAW,EAAE,CACjE,SAAS,KAAK,MAAM,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,WAAW,GAAG,CAClB,QAAoC,EACpC,YAAoB,EACpB,IAAY,EACY,EAAE;IAC1B,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC;SAC7C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC/B,MAAM,CAAC,CAAC,KAAK,EAAuB,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CACpB,QAAoC,EACpC,MAAc,EACd,UAAkB,EAClB,WAAmB,EACM,EAAE;IAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACtD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,KAAK,EAC7B,KAAwB,EACxB,SAAiB,EACjB,IAAY,EACW,EAAE;IACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,uDAAuD,SAAS,GAAG,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAClF,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,sBAAsB,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAA0B,CAAC;YAC9F,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;YACxB,MAAM,OAAO,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,gEAAgE,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,sCAAsC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;QAC1C,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;KAC3C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,MAAkB,EAClB,MAA0B,EAC1B,UAAqC,EACrC,UAA2B,EAC3B,WAA8C,EAC9C,gBAAyC,EACnC,EAAE,CAAC,CAAC;IACV,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,oLAAoL;IACjM,wEAAwE;IACxE,IAAI,EAAE,OAAO;IACb,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;YACvE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE;SAClF;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;KACzB;IACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrF,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvH,sEAAsE;QACtE,0EAA0E;QAC1E,mEAAmE;QACnE,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,YAAY,GAAG,CAAC,MAAc,EAAS,EAAE,CAC7C,IAAI,KAAK,CAAC,GAAG,MAAM,6EAA6E,CAAC,CAAC;QACpG,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;YAC5C,MAAM,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YAC1D,MAAM,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;YAChC,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnD,MAAM,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7D,MAAM,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;oBAChE,MAAM,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC;gBACD,MAAM,OAAO,GAAG,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC1F,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CACb,YAAY,aAAa,cAAc,OAAO,kEAAkE,CACjH,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,uEAAuE;QACvE,wDAAwD;QACxD,MAAM,cAAc,GAAG,KAAK,IAAmB,EAAE;YAC/C,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACvD,OAAO;gBACT,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,CAAC,IAAI,0FAA0F,CAAC,CAAC;QACjI,CAAC,CAAC;QAEF,MAAM,WAAW,EAAE,CAAC;QACpB,MAAM,cAAc,EAAE,CAAC;QACvB,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,eAAe,MAAM,CAAC,IAAI,eAAe,CAAC,CAAC;QAC7D,CAAC;QAED,iEAAiE;QACjE,qDAAqD;QACrD,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,IAAI,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC;QACtC,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAChJ,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,cAAc,GAAG,MAAM,CAAC;gBACxB,MAAM;YACR,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5E,MAAM,WAAW,GAAG,GAAU,EAAE,CAAC,IAAI,KAAK,CACxC,GAAG,aAAa,QAAQ,WAAW,yGAAyG,CAC7I,CAAC;QACF,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YACtD,MAAM,WAAW,EAAE,CAAC;QACtB,CAAC;QAED,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,sEAAsE;QACtE,8CAA8C;QAC9C,MAAM,MAAM,GAAG,KAAK,EAAE,MAA+B,EAAiB,EAAE;YACtE,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACtC,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACzD,OAAO;YACT,CAAC;YACD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;gBACpC,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC;QACF,MAAM,IAAI,GAAG,CAAC,QAAoC,EAA2B,EAAE;YAC7E,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YACnF,IAAI,OAAO,EAAE,CAAC;gBACZ,qEAAqE;gBACrE,iCAAiC;gBACjC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7F,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,mEAAmE;QACnE,8CAA8C;QAC9C,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/D,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,UAAU,CAAC,KAAe,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAgB,EAAE,KAAK,IAAI,EAAE;YAC9E,uEAAuE;YACvE,oEAAoE;YACpE,iEAAiE;YACjE,qEAAqE;YACrE,sEAAsE;YACtE,sCAAsC;YACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;oBACpC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC5F,CAAC;YACH,CAAC;YACD,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAErB,oEAAoE;YACpE,4DAA4D;YAC5D,sDAAsD;YACtD,MAAM,WAAW,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;gBACzE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,wDAAwD,CAAC,CAAC;YAC1F,CAAC;YACD,MAAM,cAAc,EAAE,CAAC;YAEvB,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzD,uEAAuE;YACvE,qEAAqE;YACrE,gDAAgD;YAChD,IAAI,OAAO,GAAa,EAAE,CAAC;YAC3B,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClE,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YACrG,CAAC;YACD,oEAAoE;YACpE,mEAAmE;YACnE,iEAAiE;YACjE,+DAA+D;YAC/D,gEAAgE;YAChE,iEAAiE;YACjE,6DAA6D;YAC7D,MAAM,wBAAwB,GAAG,KAAK,IAAsB,EAAE;gBAC5D,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;oBAC5C,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,QAAQ,CAAC,iBAAiB,CAAC,CAAC,KAAK,iBAAiB,CAAC;gBACzF,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,CAAC;YACF,IAAI,CAAC,CAAC,MAAM,wBAAwB,EAAE,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,GAAG,iBAAiB,wDAAwD,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAK,KAA+B,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACtD,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,mEAAmE;gBACnE,6DAA6D;gBAC7D,oEAAoE;gBACpE,iEAAiE;gBACjE,0CAA0C;gBAC1C,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC5C,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC7C,CAAC;gBACD,MAAM,WAAW,EAAE,CAAC;YACtB,CAAC;YACD,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,wBAAwB,EAAE,CAAC,CAAC;YACxH,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,iEAAiE;gBACjE,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACnE,MAAM,IAAI,KAAK,CACb,oBAAoB,MAAM,CAAC,IAAI,kFAAkF,WAAW,CAAC,IAAI,8CAA8C,CAChL,CAAC;YACJ,CAAC;YAED,uEAAuE;YACvE,uEAAuE;YACvE,uEAAuE;YACvE,uEAAuE;YACvE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAC;YAC3C,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;gBACnC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;oBAChC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;YAC1C,EAAE,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;YAClD,YAAY,EAAE,WAAW,CAAC,IAAI;YAC9B,aAAa,EAAE,YAAY;SAC5B,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAqB,EAAE,EAAU,EAAE;IAChE,wEAAwE;IACxE,yEAAyE;IACzE,sEAAsE;IACtE,wEAAwE;IACxE,2EAA2E;IAC3E,wEAAwE;IACxE,eAAe;IACf,MAAM,mBAAmB,GAAG,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAC/F,CAAC,CAAC,MAAM,CAAC,UAAU;QACnB,CAAC,CAAC,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YAC3E,CAAC,CAAC,MAAM,CAAC,aAAa;YACtB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAC3C,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,KAAK,CAAC,OAAO;YACX,mEAAmE;YACnE,mEAAmE;YACnE,iDAAiD;YACjD,iEAAiE;YACjE,gEAAgE;YAChE,oEAAoE;YACpE,oEAAoE;YACpE,qEAAqE;YACrE,qEAAqE;YACrE,8DAA8D;YAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;YACtF,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,mEAAmE;YACnE,+BAA+B;YAC/B,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;gBACnE,CAAC,CAAC,gBAAgB,CAAC,YAAY,EAAE,UAAU,CAAC;gBAC5C,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC/B,uEAAuE;YACvE,qEAAqE;YACrE,0BAA0B;YAC1B,MAAM,QAAQ,GAAG,KAAK,IAA0B,EAAE,CAAC,WAAW,CAC5D,MAAM,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;YACxD,+DAA+D;YAC/D,iEAAiE;YACjE,6DAA6D;YAC7D,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAC7C,CAAC;YACF,mEAAmE;YACnE,uEAAuE;YACvE,MAAM,WAAW,GAAG,GAAgC,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAClG,MAAM,UAAU,GAAG,KAAK,IAAyB,EAAE;gBACjD,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBAC5E,MAAM,KAAK,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,OAAO;oBACL,KAAK,EAAE,MAAM,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC;oBAC3C,OAAO,EAAE,MAAM,WAAW,CAAC;wBACzB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;wBACvE,GAAG,KAAK;qBACT,CAAC;iBACH,CAAC;YACJ,CAAC,CAAC;YACF,MAAM,gBAAgB,GAAG,KAAK,IAAuB,EAAE,CACrD,WAAW,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9F,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;YAC1F,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;YAC3F,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAChH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stratusagent/tool-fs",
3
- "version": "0.12.0",
3
+ "version": "0.12.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -18,8 +18,8 @@
18
18
  "node": ">=22.13 <23 || >=23.4"
19
19
  },
20
20
  "dependencies": {
21
- "@stratusagent/core": "0.12.0",
22
- "@stratusagent/plugins": "0.12.0"
21
+ "@stratusagent/core": "0.12.2",
22
+ "@stratusagent/plugins": "0.12.2"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/node": "^24.6.0",
@@ -63,6 +63,10 @@
63
63
  {
64
64
  "name": "fs.write",
65
65
  "risk": "gated"
66
+ },
67
+ {
68
+ "name": "fs.move",
69
+ "risk": "gated"
66
70
  }
67
71
  ]
68
72
  },