squally-reporter 0.7.0 → 0.8.1
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 +52 -11
- package/dist/index.d.ts +36 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +238 -5
- package/dist/index.js.map +1 -1
- package/dist/trace-console.d.ts +42 -0
- package/dist/trace-console.d.ts.map +1 -0
- package/dist/trace-console.js +173 -0
- package/dist/trace-console.js.map +1 -0
- package/dist/trace-zip.d.ts +23 -0
- package/dist/trace-zip.d.ts.map +1 -0
- package/dist/trace-zip.js +132 -0
- package/dist/trace-zip.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -39,9 +39,14 @@ export default defineConfig({
|
|
|
39
39
|
});
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
Alternatively, pass config explicitly instead of using env vars - **
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
Alternatively, pass config explicitly instead of using env vars - but **prefer
|
|
43
|
+
the env vars above for `apiKey`, and not only because a literal in a committed
|
|
44
|
+
file is obviously wrong.** Playwright's `json` and `blob` reporters serialize
|
|
45
|
+
your resolved config into their output file, options and all: an `apiKey`
|
|
46
|
+
passed here ends up in that file in plain text, even when its value came from
|
|
47
|
+
an environment variable at runtime. What gets written is the option, not where
|
|
48
|
+
it came from. The reporter warns, naming the file, when it sees this
|
|
49
|
+
combination. Measured against a real report, 20.09.2026.
|
|
45
50
|
|
|
46
51
|
```ts
|
|
47
52
|
reporter: [
|
|
@@ -52,18 +57,40 @@ reporter: [
|
|
|
52
57
|
That's it - run your tests as usual (`npx playwright test`) and results will
|
|
53
58
|
be sent to Squally after the run finishes.
|
|
54
59
|
|
|
55
|
-
##
|
|
60
|
+
## Artifact upload (screenshot, trace, browser console)
|
|
56
61
|
|
|
57
62
|
If your `playwright.config.ts` captures screenshots or traces, the reporter
|
|
58
63
|
uploads them to Squally so they show up next to the failing test in the
|
|
59
64
|
dashboard - no separate setup beyond the two env vars above.
|
|
60
65
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
Three kinds are uploaded:
|
|
67
|
+
|
|
68
|
+
| Kind | Where it comes from |
|
|
69
|
+
| --- | --- |
|
|
70
|
+
| **Screenshot** | the file Playwright writes for a failed attempt |
|
|
71
|
+
| **Trace** | the trace zip Playwright writes |
|
|
72
|
+
| **Browser console** | read out of that trace zip by this reporter |
|
|
73
|
+
|
|
74
|
+
**The browser console needs a trace.** It is not something Playwright hands a
|
|
75
|
+
reporter: `result.stdout`/`stderr` are the output of the *Node* process - what
|
|
76
|
+
your test file printed - while what the *page* printed only exists inside the
|
|
77
|
+
trace. So the reporter opens the trace and reads it out, which means an
|
|
78
|
+
attempt with no trace has no browser console, and nothing can change that but
|
|
79
|
+
turning tracing on. Squally's attempt page says which of the two it is rather
|
|
80
|
+
than showing an empty section.
|
|
81
|
+
|
|
82
|
+
Supported trace schema versions: **5 to 10**, which covers Playwright 1.30
|
|
83
|
+
through 1.62 (1.62 writes version 8). A trace outside that range is left alone
|
|
84
|
+
and the reporter prints one warning naming the version - it never uploads an
|
|
85
|
+
empty console file, because "no messages" and "this reporter could not read
|
|
86
|
+
it" must not look the same in the dashboard.
|
|
87
|
+
|
|
88
|
+
**Only from attempts worth looking at:** artifacts are uploaded only for
|
|
89
|
+
attempts that **failed**, or that **needed a retry** (even if that retry then
|
|
90
|
+
passed) - never for an attempt that passed on its first try, regardless of how
|
|
91
|
+
`screenshot`/`trace` are configured. Nobody looks at a screenshot of a test
|
|
92
|
+
that just passed, and uploading one anyway would only eat into your
|
|
93
|
+
organization's storage for no benefit.
|
|
67
94
|
|
|
68
95
|
**You need to actually enable capture in `playwright.config.ts`** - without
|
|
69
96
|
it, Playwright doesn't produce any attachments, so there's nothing for the
|
|
@@ -93,7 +120,13 @@ release of it:
|
|
|
93
120
|
silently missing.
|
|
94
121
|
- **A total storage cap per organization, depending on your Squally plan.**
|
|
95
122
|
Once it is reached, further uploads are rejected the same way until you free
|
|
96
|
-
up space or upgrade.
|
|
123
|
+
up space or upgrade. Note that a fully instrumented suite now produces up to
|
|
124
|
+
three artifacts per failed attempt rather than two.
|
|
125
|
+
- The browser console is a text file of a few KB - it is extracted from the
|
|
126
|
+
trace you are already uploading, so it adds no capture cost to your run.
|
|
127
|
+
- **Your test's own `stdout`/`stderr` is cut at 16 KB** before it is sent. That
|
|
128
|
+
is this reporter's own limit, not Squally's, and it applies whether or not
|
|
129
|
+
you capture artifacts at all.
|
|
97
130
|
- Two minutes per upload, and 30 seconds for the calls that surround it. An
|
|
98
131
|
unreachable or very slow server means a skipped upload and a `console.warn`,
|
|
99
132
|
not a CI job waiting indefinitely.
|
|
@@ -231,6 +264,14 @@ written two ways still compares equal: it is lowercased, and a leading `v` or a
|
|
|
231
264
|
`v1.2.0` is stored as `1.2.0`. The reporter says so once per run when it
|
|
232
265
|
happens, so a value that looks different in the dashboard is not a mystery.
|
|
233
266
|
|
|
267
|
+
## Troubleshooting
|
|
268
|
+
|
|
269
|
+
Set `SQUALLY_DEBUG=1` to print detail that is otherwise kept quiet - currently
|
|
270
|
+
the browser-console extraction: how many messages were found, or that an
|
|
271
|
+
attempt's trace held none. Everything that is *not* ordinary (a trace that
|
|
272
|
+
cannot be read, an unsupported schema version, a rejected upload) is printed
|
|
273
|
+
without it.
|
|
274
|
+
|
|
234
275
|
## Support
|
|
235
276
|
|
|
236
277
|
Found a bug or have a question? Please open an issue on
|
package/dist/index.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ interface AppendResultEntry {
|
|
|
32
32
|
browserName: string | null;
|
|
33
33
|
errorContext: string | null;
|
|
34
34
|
}
|
|
35
|
-
type ArtifactType = "screenshot" | "trace";
|
|
35
|
+
type ArtifactType = "screenshot" | "trace" | "console";
|
|
36
36
|
declare function truncate(value: string, max: number): string;
|
|
37
37
|
declare function truncateOrNull(value: string | null, max: number): string | null;
|
|
38
38
|
/**
|
|
@@ -47,6 +47,7 @@ declare function truncateOrNull(value: string | null, max: number): string | nul
|
|
|
47
47
|
* faster than the interval) is therefore unchanged by this.
|
|
48
48
|
*/
|
|
49
49
|
declare function flushIntervalFor(shardTotal: number | null): number;
|
|
50
|
+
declare function warnIfKeyWillBeSerialized(config: FullConfig, keyCameFromOptions: boolean): void;
|
|
50
51
|
declare function mapStatus(status: TestResult["status"]): AppendResultEntry["status"];
|
|
51
52
|
declare function detectCiRunId(env: NodeJS.ProcessEnv, generateFallback: () => string): string;
|
|
52
53
|
interface ProjectSuiteLike {
|
|
@@ -64,7 +65,32 @@ declare function resolveTestedRevision(): ResolvedRevision | null;
|
|
|
64
65
|
declare function toPosixPath(p: string): string;
|
|
65
66
|
declare function stripAnsi(value: string): string;
|
|
66
67
|
declare function maskSecrets(value: string): string;
|
|
67
|
-
|
|
68
|
+
/**
|
|
69
|
+
* The console output to send, and the size it had before the cut.
|
|
70
|
+
*
|
|
71
|
+
* RETURNS A PAIR SINCE 17.09., the same shape squally-app's own
|
|
72
|
+
* prepareConsoleOutput returns (lib/ingest-v2-core.ts). The reason is a gap
|
|
73
|
+
* nobody could see from either side alone: the app records
|
|
74
|
+
* consoleOutputOriginalBytes so a truncated capture says so on the page, and
|
|
75
|
+
* it derives that number from the text it RECEIVES - which this reporter has
|
|
76
|
+
* already cut to 16 KiB. The app therefore records NULL for every
|
|
77
|
+
* reporter-sent row and the page says nothing was cut, while something was.
|
|
78
|
+
*
|
|
79
|
+
* `truncatedFromBytes` is the masked size before the cut, null when nothing
|
|
80
|
+
* was cut - the optional-field shape the wire uses for expectedFailure.
|
|
81
|
+
*
|
|
82
|
+
* NOT SENT YET, and deliberately not: squally-app's v2 result schema has no
|
|
83
|
+
* field for it (checked in lib/ingest-v2-contract.ts, resultSchema), and that
|
|
84
|
+
* schema does not use .strict(), so zod would silently STRIP an unknown key.
|
|
85
|
+
* Sending it today would look done and change nothing. The receiving side goes
|
|
86
|
+
* first in this project - that is how the console artifact itself shipped -
|
|
87
|
+
* so the value is computed and available here, and the wire field is a
|
|
88
|
+
* squally-app change this release reports rather than pre-empts.
|
|
89
|
+
*/
|
|
90
|
+
declare function prepareConsoleOutput(value: string | null): {
|
|
91
|
+
text: string | null;
|
|
92
|
+
truncatedFromBytes: number | null;
|
|
93
|
+
};
|
|
68
94
|
declare function mapErrors(errors: readonly TestError[]): AppendErrorEntry[] | undefined;
|
|
69
95
|
declare function attemptQualifiesForArtifacts(mappedStatus: AppendResultEntry["status"], retryCount: number): boolean;
|
|
70
96
|
declare function artifactKey(testName: string, filePath: string, retryCount: number, repeatIndex: number, type: ArtifactType): string;
|
|
@@ -73,6 +99,8 @@ declare function computeBackoffMs(retryNumber: number): number;
|
|
|
73
99
|
export default class SquallyReporter implements Reporter {
|
|
74
100
|
private apiUrl;
|
|
75
101
|
private apiKey;
|
|
102
|
+
/** Whether apiKey came from the config rather than the environment. */
|
|
103
|
+
private apiKeyFromOptions;
|
|
76
104
|
private enabled;
|
|
77
105
|
private startedAt;
|
|
78
106
|
private dispatcher;
|
|
@@ -84,6 +112,11 @@ export default class SquallyReporter implements Reporter {
|
|
|
84
112
|
private runConfig;
|
|
85
113
|
private buffer;
|
|
86
114
|
private artifacts;
|
|
115
|
+
/** Trace schema versions already warned about - ONCE per run, not per
|
|
116
|
+
* attempt. A suite failing 200 tests under a Playwright this reporter does
|
|
117
|
+
* not know would otherwise print 200 identical paragraphs and teach the
|
|
118
|
+
* reader to scroll past the one thing worth reading. */
|
|
119
|
+
private warnedTraceVersions;
|
|
87
120
|
/**
|
|
88
121
|
* Every result this shard produced, counted where it is produced (0.6.0).
|
|
89
122
|
*
|
|
@@ -147,6 +180,7 @@ export default class SquallyReporter implements Reporter {
|
|
|
147
180
|
private presignAndUpload;
|
|
148
181
|
}
|
|
149
182
|
export declare const __internal: {
|
|
183
|
+
warnIfKeyWillBeSerialized: typeof warnIfKeyWillBeSerialized;
|
|
150
184
|
truncate: typeof truncate;
|
|
151
185
|
truncateOrNull: typeof truncateOrNull;
|
|
152
186
|
mapStatus: typeof mapStatus;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,EACT,UAAU,EACX,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@ const promises_1 = require("node:fs/promises");
|
|
|
11
11
|
const node_os_1 = require("node:os");
|
|
12
12
|
const node_path_1 = __importDefault(require("node:path"));
|
|
13
13
|
const undici_1 = require("undici");
|
|
14
|
+
const trace_console_1 = require("./trace-console");
|
|
14
15
|
// Mirrors squally-app's ingest contract (lib/ingest-contract.ts,
|
|
15
16
|
// FIELD_LIMITS). Kept as a copy on purpose - the reporter ships independently
|
|
16
17
|
// of the app and cannot import from it - which means this table has to be
|
|
@@ -197,6 +198,49 @@ const NETWORK_ERROR_MAX_ATTEMPTS = 2; // treated the same as a 5xx - one retry
|
|
|
197
198
|
// single retry cycle. Also covers waiting for onBegin itself to resolve, if
|
|
198
199
|
// it is still pending - see drainAndComplete().
|
|
199
200
|
const DRAIN_BUDGET_MS = 5000;
|
|
201
|
+
// Reporters that write the resolved config to disk, verbatim.
|
|
202
|
+
//
|
|
203
|
+
// MEASURED, not assumed (20.09.): Playwright's json reporter serializes
|
|
204
|
+
// `config.reporter` into its output file exactly as the config declared it,
|
|
205
|
+
// options object included. A squally-e2e run from 10.09. left a results file
|
|
206
|
+
// whose reporter list read
|
|
207
|
+
//
|
|
208
|
+
// ["json", { "outputFile": "test-results/shard-rerun-results.json" }],
|
|
209
|
+
// ["...squally-reporter/dist/index.js",
|
|
210
|
+
// { "apiUrl": "...", "apiKey": "sqly_..." }]
|
|
211
|
+
//
|
|
212
|
+
// with the key in full. The value had come from an env var at runtime, which
|
|
213
|
+
// is exactly what this package's README recommends - and it landed in a file
|
|
214
|
+
// anyway, because what gets serialized is the OPTION, not where it came from.
|
|
215
|
+
//
|
|
216
|
+
// This reporter cannot prevent that: the config is captured by the runner,
|
|
217
|
+
// before and outside anything this package touches. What it can do is say so
|
|
218
|
+
// once, naming the file - which is the whole difference between a key on disk
|
|
219
|
+
// and a key on disk that somebody knows about.
|
|
220
|
+
const CONFIG_WRITING_REPORTERS = /(^|[\\/])(json|blob)$/i;
|
|
221
|
+
function warnIfKeyWillBeSerialized(config, keyCameFromOptions) {
|
|
222
|
+
if (!keyCameFromOptions)
|
|
223
|
+
return;
|
|
224
|
+
try {
|
|
225
|
+
const reporters = Array.isArray(config.reporter) ? config.reporter : [];
|
|
226
|
+
for (const entry of reporters) {
|
|
227
|
+
const name = Array.isArray(entry) ? String(entry[0] ?? "") : String(entry ?? "");
|
|
228
|
+
if (!CONFIG_WRITING_REPORTERS.test(name))
|
|
229
|
+
continue;
|
|
230
|
+
const options = (Array.isArray(entry) ? entry[1] : null);
|
|
231
|
+
const target = typeof options?.outputFile === "string" ? options.outputFile : `the ${name} report`;
|
|
232
|
+
console.warn(`[squally-reporter] The apiKey is passed as a reporter option, and the "${name}" reporter ` +
|
|
233
|
+
`writes the resolved config to ${target} - your key will be in that file in plain text. ` +
|
|
234
|
+
"Set SQUALLY_API_KEY in the environment and drop the option: the reporter reads it from " +
|
|
235
|
+
"there, and nothing serializes it.");
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
// A warning is never worth a customer's run - the rule the whole package
|
|
241
|
+
// is measured against.
|
|
242
|
+
}
|
|
243
|
+
}
|
|
200
244
|
function describeRequestError(err, timeoutMs) {
|
|
201
245
|
const name = err instanceof Error ? err.name : "";
|
|
202
246
|
if (name === "TimeoutError" || name === "AbortError") {
|
|
@@ -541,6 +585,13 @@ const MASK_PATTERNS = [
|
|
|
541
585
|
// The token after the scheme, not the word "Bearer" itself - keeping the
|
|
542
586
|
// scheme is what makes a masked line still readable as an auth header.
|
|
543
587
|
{ pattern: /(Bearer\s+)[A-Za-z0-9\-._~+/]{8,}={0,2}/gi, replace: "$1[redacted]" },
|
|
588
|
+
// OUR OWN FORMAT, and it was the one missing (20.09.): this list redacted
|
|
589
|
+
// Stripe, GitHub and AWS while a Squally project key - the one credential a
|
|
590
|
+
// Squally user is most likely to have in their environment, and the only one
|
|
591
|
+
// that grants access to the dashboard this text is being sent to - travelled
|
|
592
|
+
// as written. Same shape as the others: prefix plus at least eight of the
|
|
593
|
+
// alphabet the key generator uses.
|
|
594
|
+
{ pattern: /\bsqly_[A-Za-z0-9_-]{8,}/g, replace: "[redacted]" },
|
|
544
595
|
{ pattern: /\bsk_[A-Za-z0-9_]{8,}/g, replace: "[redacted]" },
|
|
545
596
|
{ pattern: /\bghp_[A-Za-z0-9]{8,}/g, replace: "[redacted]" },
|
|
546
597
|
{ pattern: /\bAKIA[0-9A-Z]{16}\b/g, replace: "[redacted]" },
|
|
@@ -566,15 +617,41 @@ function maskSecrets(value) {
|
|
|
566
617
|
// server enforces this regardless of what the reporter already did, but
|
|
567
618
|
// doing it here too means a run never sends more than it needs to).
|
|
568
619
|
const CONSOLE_OUTPUT_MAX_BYTES = 16 * 1024;
|
|
620
|
+
/**
|
|
621
|
+
* The console output to send, and the size it had before the cut.
|
|
622
|
+
*
|
|
623
|
+
* RETURNS A PAIR SINCE 17.09., the same shape squally-app's own
|
|
624
|
+
* prepareConsoleOutput returns (lib/ingest-v2-core.ts). The reason is a gap
|
|
625
|
+
* nobody could see from either side alone: the app records
|
|
626
|
+
* consoleOutputOriginalBytes so a truncated capture says so on the page, and
|
|
627
|
+
* it derives that number from the text it RECEIVES - which this reporter has
|
|
628
|
+
* already cut to 16 KiB. The app therefore records NULL for every
|
|
629
|
+
* reporter-sent row and the page says nothing was cut, while something was.
|
|
630
|
+
*
|
|
631
|
+
* `truncatedFromBytes` is the masked size before the cut, null when nothing
|
|
632
|
+
* was cut - the optional-field shape the wire uses for expectedFailure.
|
|
633
|
+
*
|
|
634
|
+
* NOT SENT YET, and deliberately not: squally-app's v2 result schema has no
|
|
635
|
+
* field for it (checked in lib/ingest-v2-contract.ts, resultSchema), and that
|
|
636
|
+
* schema does not use .strict(), so zod would silently STRIP an unknown key.
|
|
637
|
+
* Sending it today would look done and change nothing. The receiving side goes
|
|
638
|
+
* first in this project - that is how the console artifact itself shipped -
|
|
639
|
+
* so the value is computed and available here, and the wire field is a
|
|
640
|
+
* squally-app change this release reports rather than pre-empts.
|
|
641
|
+
*/
|
|
569
642
|
function prepareConsoleOutput(value) {
|
|
570
643
|
if (value === null)
|
|
571
|
-
return null;
|
|
644
|
+
return { text: null, truncatedFromBytes: null };
|
|
572
645
|
const masked = maskSecrets(value);
|
|
573
646
|
const bytes = Buffer.from(masked, "utf8");
|
|
574
|
-
if (bytes.byteLength <= CONSOLE_OUTPUT_MAX_BYTES)
|
|
575
|
-
return masked;
|
|
647
|
+
if (bytes.byteLength <= CONSOLE_OUTPUT_MAX_BYTES) {
|
|
648
|
+
return { text: masked, truncatedFromBytes: null };
|
|
649
|
+
}
|
|
576
650
|
const cut = bytes.subarray(0, CONSOLE_OUTPUT_MAX_BYTES).toString("utf8");
|
|
577
|
-
return
|
|
651
|
+
return {
|
|
652
|
+
text: cut.endsWith("�") ? cut.slice(0, -1) : cut,
|
|
653
|
+
truncatedFromBytes: bytes.byteLength,
|
|
654
|
+
};
|
|
578
655
|
}
|
|
579
656
|
// --- errors[] (spec section 1.3) --------------------------------------------
|
|
580
657
|
//
|
|
@@ -710,6 +787,108 @@ async function runWithConcurrencyLimit(items, limit, worker) {
|
|
|
710
787
|
// (mapStatus above collapses those down) - retryCount > 0 additionally
|
|
711
788
|
// covers a passed-on-retry attempt, since seeing what an earlier, failing
|
|
712
789
|
// attempt looked like is still useful even if the test eventually passed.
|
|
790
|
+
/**
|
|
791
|
+
* Detail that is only interesting when something looks wrong, off by default.
|
|
792
|
+
*
|
|
793
|
+
* ADDED WITH THE CONSOLE ARTIFACT (17.09.), because that path has one outcome
|
|
794
|
+
* that is both completely ordinary and worth being able to see: an attempt
|
|
795
|
+
* whose page printed nothing uploads nothing, and a customer asking "where is
|
|
796
|
+
* my browser console" needs a way to tell that from a failure. Everything that
|
|
797
|
+
* is NOT ordinary on that path warns unconditionally instead.
|
|
798
|
+
*
|
|
799
|
+
* One variable, no levels: this package logs almost nothing by design, and a
|
|
800
|
+
* level system would be more machinery than it has output.
|
|
801
|
+
*/
|
|
802
|
+
function debugLog(message) {
|
|
803
|
+
if (process.env.SQUALLY_DEBUG)
|
|
804
|
+
console.log(`[squally-reporter] ${message}`);
|
|
805
|
+
}
|
|
806
|
+
/** Traces above this size are left unread rather than inflated in onTestEnd. */
|
|
807
|
+
const MAX_TRACE_BYTES_FOR_CONSOLE = 64 * 1024 * 1024;
|
|
808
|
+
/** The console file is written beside the trace, so Playwright's own output-dir
|
|
809
|
+
* cleanup removes it with everything else that test produced. */
|
|
810
|
+
const CONSOLE_ARTIFACT_FILENAME = "browser-console.txt";
|
|
811
|
+
/**
|
|
812
|
+
* Turns one trace into a console artifact on disk, or says why it did not.
|
|
813
|
+
*
|
|
814
|
+
* SYNCHRONOUS, like the statSync beside it and for the same reason: Playwright
|
|
815
|
+
* does not await onTestEnd, so anything async here would race onEnd() reading
|
|
816
|
+
* this.artifacts. Measured on a real 1.62 trace: 7 KB zip, inflate and parse
|
|
817
|
+
* under a millisecond; the cap above is what keeps a pathological 50 MB trace
|
|
818
|
+
* from turning that into a pause the customer notices.
|
|
819
|
+
*
|
|
820
|
+
* FAILURE MODES, and what each one does. None of them can be a skipReason sent
|
|
821
|
+
* to presign: that route decides its own reasons (not_found, file_too_large,
|
|
822
|
+
* cap_exceeded) and takes none from the client - checked in squally-app's
|
|
823
|
+
* presignPayloadSchema, not assumed. So every failure here is a LOCAL skip,
|
|
824
|
+
* and the difference between them is what gets logged:
|
|
825
|
+
*
|
|
826
|
+
* zip unreadable / no .trace -> warn. Something produced a trace this
|
|
827
|
+
* cannot open, and that is worth a line in
|
|
828
|
+
* the customer's log even though their run is
|
|
829
|
+
* unaffected.
|
|
830
|
+
* version unsupported -> warn ONCE per run, naming the version. The
|
|
831
|
+
* loudest case on purpose: it means this
|
|
832
|
+
* reporter is too old for the Playwright that
|
|
833
|
+
* produced the trace, and the silent
|
|
834
|
+
* alternative - uploading nothing and saying
|
|
835
|
+
* nothing - is the exact shape of the outage
|
|
836
|
+
* that cost six days in September.
|
|
837
|
+
* no console events -> debug only. An attempt whose page printed
|
|
838
|
+
* nothing is ordinary; the app already words
|
|
839
|
+
* the absence.
|
|
840
|
+
*/
|
|
841
|
+
function consoleArtifactFor(tracePath, warnedVersions) {
|
|
842
|
+
let zip;
|
|
843
|
+
try {
|
|
844
|
+
const size = (0, node_fs_1.statSync)(tracePath).size;
|
|
845
|
+
if (size > MAX_TRACE_BYTES_FOR_CONSOLE) {
|
|
846
|
+
console.warn(`[squally-reporter] Trace is ${Math.round(size / 1024 / 1024)} MB - skipping browser console extraction for this attempt.`);
|
|
847
|
+
return null;
|
|
848
|
+
}
|
|
849
|
+
zip = (0, node_fs_1.readFileSync)(tracePath);
|
|
850
|
+
}
|
|
851
|
+
catch (err) {
|
|
852
|
+
console.warn(`[squally-reporter] Could not read the trace for browser console extraction: ${err?.message ?? err}`);
|
|
853
|
+
return null;
|
|
854
|
+
}
|
|
855
|
+
const extraction = (0, trace_console_1.extractBrowserConsole)(zip);
|
|
856
|
+
if (extraction.status === "unsupported-version") {
|
|
857
|
+
if (!warnedVersions.has(extraction.version)) {
|
|
858
|
+
warnedVersions.add(extraction.version);
|
|
859
|
+
console.warn(`[squally-reporter] Playwright trace schema version ${extraction.version} is outside the range this reporter ` +
|
|
860
|
+
`has been verified against (${trace_console_1.TRACE_VERSION_MIN}-${trace_console_1.TRACE_VERSION_MAX}) - the browser console is NOT being ` +
|
|
861
|
+
"uploaded for this run. Screenshots and traces are unaffected. Upgrading squally-reporter should resolve it.");
|
|
862
|
+
}
|
|
863
|
+
return null;
|
|
864
|
+
}
|
|
865
|
+
if (extraction.status === "unreadable") {
|
|
866
|
+
console.warn(`[squally-reporter] Could not read the browser console out of the trace (${extraction.reason}) - ` +
|
|
867
|
+
"screenshot and trace are unaffected.");
|
|
868
|
+
return null;
|
|
869
|
+
}
|
|
870
|
+
if (extraction.status === "empty") {
|
|
871
|
+
// Not a warning: the page simply printed nothing.
|
|
872
|
+
debugLog(`browser console: no messages in ${tracePath}`);
|
|
873
|
+
return null;
|
|
874
|
+
}
|
|
875
|
+
const consolePath = node_path_1.default.join(node_path_1.default.dirname(tracePath), CONSOLE_ARTIFACT_FILENAME);
|
|
876
|
+
try {
|
|
877
|
+
// MASKED BEFORE IT IS WRITTEN (20.09.). The Node console output has gone
|
|
878
|
+
// through maskSecrets since the field existed - prepareConsoleOutput does
|
|
879
|
+
// it - but this text took a different road to the same dashboard: it is
|
|
880
|
+
// extracted from the trace, written to a FILE and uploaded as an artifact,
|
|
881
|
+
// and that road had no mask on it. A page that logs a token would have had
|
|
882
|
+
// it redacted in one column and printed in full in the other.
|
|
883
|
+
(0, node_fs_1.writeFileSync)(consolePath, maskSecrets(extraction.text), "utf8");
|
|
884
|
+
}
|
|
885
|
+
catch (err) {
|
|
886
|
+
console.warn(`[squally-reporter] Could not write the browser console file: ${err?.message ?? err}`);
|
|
887
|
+
return null;
|
|
888
|
+
}
|
|
889
|
+
debugLog(`browser console: ${extraction.messageCount} message(s) -> ${consolePath}`);
|
|
890
|
+
return consolePath;
|
|
891
|
+
}
|
|
713
892
|
function attemptQualifiesForArtifacts(mappedStatus, retryCount) {
|
|
714
893
|
return mappedStatus === "failed" || retryCount > 0;
|
|
715
894
|
}
|
|
@@ -836,6 +1015,8 @@ class SquallyReporter {
|
|
|
836
1015
|
constructor(options = {}) {
|
|
837
1016
|
this.apiUrl = "";
|
|
838
1017
|
this.apiKey = "";
|
|
1018
|
+
/** Whether apiKey came from the config rather than the environment. */
|
|
1019
|
+
this.apiKeyFromOptions = false;
|
|
839
1020
|
// Missing/invalid config must never take down the caller's whole test
|
|
840
1021
|
// suite over just a reporting integration - see the constructor below.
|
|
841
1022
|
// Every onXxx hook checks this first and no-ops if it's false.
|
|
@@ -847,6 +1028,11 @@ class SquallyReporter {
|
|
|
847
1028
|
this.projectName = null;
|
|
848
1029
|
this.buffer = [];
|
|
849
1030
|
this.artifacts = [];
|
|
1031
|
+
/** Trace schema versions already warned about - ONCE per run, not per
|
|
1032
|
+
* attempt. A suite failing 200 tests under a Playwright this reporter does
|
|
1033
|
+
* not know would otherwise print 200 identical paragraphs and teach the
|
|
1034
|
+
* reader to scroll past the one thing worth reading. */
|
|
1035
|
+
this.warnedTraceVersions = new Set();
|
|
850
1036
|
/**
|
|
851
1037
|
* Every result this shard produced, counted where it is produced (0.6.0).
|
|
852
1038
|
*
|
|
@@ -949,6 +1135,9 @@ class SquallyReporter {
|
|
|
949
1135
|
};
|
|
950
1136
|
const apiUrl = options.apiUrl ?? process.env.SQUALLY_API_URL;
|
|
951
1137
|
const apiKey = options.apiKey ?? process.env.SQUALLY_API_KEY;
|
|
1138
|
+
// Where it came from decides whether anything else can serialize it - see
|
|
1139
|
+
// warnIfKeyWillBeSerialized. Recorded as a boolean, never the value.
|
|
1140
|
+
this.apiKeyFromOptions = typeof options.apiKey === "string" && options.apiKey !== "";
|
|
952
1141
|
if (!apiUrl || !apiKey) {
|
|
953
1142
|
// Deliberately NOT thrown - a missing/wrong Squally API key must
|
|
954
1143
|
// only disable reporting to Squally, not fail the caller's entire
|
|
@@ -975,6 +1164,9 @@ class SquallyReporter {
|
|
|
975
1164
|
this.enabled = false;
|
|
976
1165
|
return;
|
|
977
1166
|
}
|
|
1167
|
+
// Before anything is sent, because it is about the config that produced
|
|
1168
|
+
// this run rather than about the run.
|
|
1169
|
+
warnIfKeyWillBeSerialized(config, this.apiKeyFromOptions);
|
|
978
1170
|
this.startedAt = new Date();
|
|
979
1171
|
this.dispatcher = new undici_1.Agent({
|
|
980
1172
|
keepAliveTimeout: 4000,
|
|
@@ -1112,6 +1304,12 @@ class SquallyReporter {
|
|
|
1112
1304
|
// false, which is the right answer for a runner that cannot tell us.
|
|
1113
1305
|
const expectedFailure = test.expectedStatus === "failed";
|
|
1114
1306
|
const errorContextAttachment = result.attachments.find((attachment) => attachment.name === "error-context");
|
|
1307
|
+
// Computed once, here: the text goes on the wire and the pre-cut size is
|
|
1308
|
+
// logged at debug. The size has no wire field yet - see the function.
|
|
1309
|
+
const preparedConsole = prepareConsoleOutput(formatConsoleOutput(result));
|
|
1310
|
+
if (preparedConsole.truncatedFromBytes !== null) {
|
|
1311
|
+
debugLog(`console output cut to ${CONSOLE_OUTPUT_MAX_BYTES} bytes (was ${preparedConsole.truncatedFromBytes}) for "${testName}"`);
|
|
1312
|
+
}
|
|
1115
1313
|
this.buffer.push({
|
|
1116
1314
|
testName,
|
|
1117
1315
|
filePath,
|
|
@@ -1124,7 +1322,7 @@ class SquallyReporter {
|
|
|
1124
1322
|
...(expectedFailure ? { expectedFailure: true } : {}),
|
|
1125
1323
|
durationMs: result.duration,
|
|
1126
1324
|
errors: mapErrors(result.errors),
|
|
1127
|
-
consoleOutput:
|
|
1325
|
+
consoleOutput: preparedConsole.text,
|
|
1128
1326
|
tags: testTags.length > 0
|
|
1129
1327
|
? testTags.slice(0, MAX_TAGS).map((tag) => truncate(tag, V2_FIELD_LIMITS.tag))
|
|
1130
1328
|
: undefined,
|
|
@@ -1141,6 +1339,11 @@ class SquallyReporter {
|
|
|
1141
1339
|
}
|
|
1142
1340
|
if (!attemptQualifiesForArtifacts(status, result.retry))
|
|
1143
1341
|
return;
|
|
1342
|
+
// The trace of THIS attempt, remembered while walking the attachments so
|
|
1343
|
+
// the console can be derived from it afterwards. Derived after the loop
|
|
1344
|
+
// rather than inside it, because the console artifact has to be pushed
|
|
1345
|
+
// with the same identity tuple and there is no reason to do that twice.
|
|
1346
|
+
let tracePath = null;
|
|
1144
1347
|
for (const attachment of result.attachments) {
|
|
1145
1348
|
if (attachment.name !== "screenshot" && attachment.name !== "trace")
|
|
1146
1349
|
continue;
|
|
@@ -1175,7 +1378,36 @@ class SquallyReporter {
|
|
|
1175
1378
|
localPath: attachment.path,
|
|
1176
1379
|
sizeBytes,
|
|
1177
1380
|
});
|
|
1381
|
+
if (attachment.name === "trace")
|
|
1382
|
+
tracePath = attachment.path;
|
|
1383
|
+
}
|
|
1384
|
+
// THE CONSOLE, DERIVED FROM THE TRACE, and only when there is one. No
|
|
1385
|
+
// trace means no source: the browser console exists nowhere else, and
|
|
1386
|
+
// squally-app renders the reason rather than an empty section. Extraction
|
|
1387
|
+
// happens HERE, before presign, so that a trace this reporter cannot read
|
|
1388
|
+
// becomes a logged local skip instead of an artifact that presign was
|
|
1389
|
+
// promised and never got.
|
|
1390
|
+
if (tracePath === null)
|
|
1391
|
+
return;
|
|
1392
|
+
const consolePath = consoleArtifactFor(tracePath, this.warnedTraceVersions);
|
|
1393
|
+
if (consolePath === null)
|
|
1394
|
+
return;
|
|
1395
|
+
let consoleSize;
|
|
1396
|
+
try {
|
|
1397
|
+
consoleSize = (0, node_fs_1.statSync)(consolePath).size;
|
|
1178
1398
|
}
|
|
1399
|
+
catch {
|
|
1400
|
+
return;
|
|
1401
|
+
}
|
|
1402
|
+
this.artifacts.push({
|
|
1403
|
+
testName,
|
|
1404
|
+
filePath,
|
|
1405
|
+
retryCount: result.retry,
|
|
1406
|
+
repeatIndex,
|
|
1407
|
+
type: "console",
|
|
1408
|
+
localPath: consolePath,
|
|
1409
|
+
sizeBytes: consoleSize,
|
|
1410
|
+
});
|
|
1179
1411
|
}
|
|
1180
1412
|
// (decision, spec section 3.2, closes 8.7) At onEnd: flush the remaining
|
|
1181
1413
|
// buffer, wait for in-flight batches, then call /complete - bounded by
|
|
@@ -1660,6 +1892,7 @@ exports.default = SquallyReporter;
|
|
|
1660
1892
|
// API surface (see package.json "files": ["dist"], which ships everything in
|
|
1661
1893
|
// dist regardless, but these are undocumented and may change without notice).
|
|
1662
1894
|
exports.__internal = {
|
|
1895
|
+
warnIfKeyWillBeSerialized,
|
|
1663
1896
|
truncate,
|
|
1664
1897
|
truncateOrNull,
|
|
1665
1898
|
mapStatus,
|
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":";;;;;;AASA,2DAA8C;AAC9C,6CAAyC;AACzC,qCAAgE;AAChE,+CAA4C;AAC5C,qCAA4C;AAC5C,0DAA6B;AAC7B,mCAAsC;AACtC,mDAIyB;AAiOzB,iEAAiE;AACjE,8EAA8E;AAC9E,0EAA0E;AAC1E,6EAA6E;AAC7E,wEAAwE;AACxE,6EAA6E;AAC7E,6EAA6E;AAC7E,yCAAyC;AACzC,EAAE;AACF,6EAA6E;AAC7E,6DAA6D;AAC7D,MAAM,YAAY,GAAG;IACnB,MAAM,EAAE,GAAG;IACX,SAAS,EAAE,GAAG;IACd,aAAa,EAAE,GAAG;IAClB,UAAU,EAAE,GAAG;IACf,cAAc,EAAE,GAAG;IACnB,SAAS,EAAE,GAAG;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,KAAK;CACT,CAAC;AAEX,2EAA2E;AAC3E,oEAAoE;AACpE,MAAM,eAAe,GAAG;IACtB,OAAO,EAAE,GAAG;IACZ,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,KAAK;IACnB,GAAG,EAAE,GAAG;IACR,iBAAiB,EAAE,EAAE;IACrB,EAAE,EAAE,GAAG;IACP,SAAS,EAAE,EAAE;CACL,CAAC;AAEX,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,0EAA0E;AAC1E,4EAA4E;AAC5E,gBAAgB;AAChB,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAE5C,4EAA4E;AAC5E,0EAA0E;AAC1E,2EAA2E;AAC3E,oBAAoB;AACpB,EAAE;AACF,4EAA4E;AAC5E,wEAAwE;AACxE,4EAA4E;AAC5E,wEAAwE;AACxE,0BAA0B;AAC1B,EAAE;AACF,4EAA4E;AAC5E,wEAAwE;AACxE,8EAA8E;AAC9E,4EAA4E;AAC5E,4EAA4E;AAC5E,sEAAsE;AACtE,wEAAwE;AACxE,2EAA2E;AAC3E,0EAA0E;AAC1E,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAEtC,6EAA6E;AAC7E,0EAA0E;AAC1E,qCAAqC;AACrC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,6EAA6E;AAC7E,2EAA2E;AAC3E,oEAAoE;AACpE,4EAA4E;AAC5E,2CAA2C;AAC3C,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAW;IAC1C,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,GAAG,IAAI,iBAAiB,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC;AAC5E,CAAC;AAED,SAAS,cAAc,CAAC,KAAoB,EAAE,GAAW;IACvD,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,6EAA6E;AAC7E,0EAA0E;AAC1E,oEAAoE;AACpE,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,wEAAwE;AACxE,4EAA4E;AAC5E,6EAA6E;AAC7E,0EAA0E;AAC1E,sEAAsE;AACtE,gEAAgE;AAChE,wBAAwB;AACxB,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,uEAAuE;AACvE,mEAAmE;AACnE,MAAM,gBAAgB,GAAI,OAAO,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAC;AACrF,MAAM,UAAU,GAAG,oBAAoB,gBAAgB,EAAE,CAAC;AAE1D,4EAA4E;AAC5E,0EAA0E;AAC1E,4EAA4E;AAC5E,wDAAwD;AACxD,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,aAAa;AACb,MAAM,sBAAsB,GAAG,KAAM,CAAC;AACtC,MAAM,yBAAyB,GAAG,MAAO,CAAC;AAE1C,6EAA6E;AAC7E,6EAA6E;AAC7E,iEAAiE;AACjE,MAAM,wBAAwB,GAAG,IAAK,CAAC;AAEvC,+EAA+E;AAC/E,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,sEAAsE;AACtE,4EAA4E;AAC5E,yDAAyD;AACzD,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,iBAAiB,GAAG,IAAK,CAAC;AAEhC,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAC9E,0EAA0E;AAC1E,oBAAoB;AACpB,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,2EAA2E;AAC3E,kEAAkE;AAClE,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,iBAAiB;AACjB,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,kEAAkE;AAClE,2CAA2C;AAC3C,MAAM,qBAAqB,GAAG,KAAM,CAAC;AAErC;;;;;;;;;;GAUG;AACH,SAAS,gBAAgB,CAAC,UAAyB;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,iBAAiB,GAAG,MAAM,CAAC,CAAC;AACrE,CAAC;AAED,+EAA+E;AAC/E,EAAE;AACF,6EAA6E;AAC7E,yEAAyE;AACzE,2EAA2E;AAC3E,qCAAqC;AACrC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,0BAA0B,GAAG,IAAK,CAAC;AACzC,MAAM,yBAAyB,GAAG,KAAM,CAAC;AACzC,MAAM,yBAAyB,GAAG,CAAC,CAAC,CAAC,iBAAiB;AACtD,MAAM,2BAA2B,GAAG,IAAK,CAAC;AAC1C,MAAM,0BAA0B,GAAG,CAAC,CAAC,CAAC,wCAAwC;AAE9E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,gDAAgD;AAChD,MAAM,eAAe,GAAG,IAAK,CAAC;AAE9B,8DAA8D;AAC9D,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,6EAA6E;AAC7E,2BAA2B;AAC3B,EAAE;AACF,yEAAyE;AACzE,0CAA0C;AAC1C,gDAAgD;AAChD,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,8EAA8E;AAC9E,+CAA+C;AAC/C,MAAM,wBAAwB,GAAG,wBAAwB,CAAC;AAE1D,SAAS,yBAAyB,CAAC,MAAkB,EAAE,kBAA2B;IAChF,IAAI,CAAC,kBAAkB;QAAE,OAAO;IAChC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAS;YACnD,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAoC,CAAC;YAC5F,MAAM,MAAM,GACV,OAAO,OAAO,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC;YACtF,OAAO,CAAC,IAAI,CACV,0EAA0E,IAAI,aAAa;gBACzF,iCAAiC,MAAM,kDAAkD;gBACzF,yFAAyF;gBACzF,mCAAmC,CACtC,CAAC;YACF,OAAO;QACT,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,uBAAuB;IACzB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAY,EAAE,SAAiB;IAC3D,MAAM,IAAI,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QACrD,OAAO,sBAAsB,SAAS,iBAAiB,CAAC;IAC1D,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,QAIpC;IACC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,6CAA6C;IAC/C,CAAC;IACD,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,GAAG,MAAM,EAAE,CAAC;AAC9D,CAAC;AAED,6DAA6D;AAC7D,uDAAuD;AACvD,8EAA8E;AAC9E,SAAS,SAAS,CAAC,MAA4B;IAC7C,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACzC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,0EAA0E;AAC1E,2EAA2E;AAC3E,SAAS,gBAAgB;IACvB,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,gBAAgB,CAAC;IACxD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS;QAAE,OAAO,WAAW,CAAC;IAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAC;IAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,YAAY,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,8BAA8B;AAC9B,2EAA2E;AAC3E,wEAAwE;AACxE,qCAAqC;AACrC,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,2EAA2E;AAC3E,wEAAwE;AACxE,eAAe;AACf,2EAA2E;AAC3E,wDAAwD;AACxD,MAAM,sBAAsB,GAAG,IAAK,CAAC;AAErC,SAAS,aAAa,CAAC,OAAe;IACpC,IAAI,CAAC;QACH,OAAO,IAAA,6BAAQ,EAAC,OAAO,EAAE;YACvB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,sBAAsB;SAChC,CAAC;aACC,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IACpE,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACtE,OAAO,aAAa,CAAC,iCAAiC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAC1D,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAChE,OAAO,aAAa,CAAC,oBAAoB,CAAC,CAAC;AAC7C,CAAC;AAED,0EAA0E;AAC1E,2EAA2E;AAC3E,wEAAwE;AACxE,0DAA0D;AAC1D,SAAS,mBAAmB;IAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACxE,OAAO,aAAa,CAAC,wBAAwB,CAAC,CAAC;AACjD,CAAC;AAED,0EAA0E;AAC1E,wEAAwE;AACxE,qEAAqE;AACrE,wEAAwE;AACxE,0EAA0E;AAC1E,SAAS,gBAAgB;IACvB,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC9D,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACzD,CAAC;IACD,OAAO,aAAa,CAAC,yBAAyB,CAAC,CAAC;AAClD,CAAC;AAED,+EAA+E;AAC/E,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,iDAAiD;AACjD,EAAE;AACF,6EAA6E;AAC7E,iCAAiC;AACjC,6EAA6E;AAC7E,2EAA2E;AAC3E,uEAAuE;AACvE,yEAAyE;AACzE,qEAAqE;AACrE,uCAAuC;AACvC,8EAA8E;AAC9E,0CAA0C;AAC1C,wEAAwE;AACxE,iDAAiD;AACjD,EAAE;AACF,4EAA4E;AAC5E,uEAAuE;AACvE,yEAAyE;AACzE,2EAA2E;AAC3E,yEAAyE;AACzE,sEAAsE;AACtE,6EAA6E;AAC7E,2DAA2D;AAC3D,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,2DAA2D;AAC3D,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,+EAA+E;AAC/E,yDAAyD;AACzD,EAAE;AACF,0EAA0E;AAC1E,UAAU;AACV,6EAA6E;AAC7E,gFAAgF;AAChF,8EAA8E;AAC9E,mEAAmE;AACnE,+EAA+E;AAC/E,wEAAwE;AACxE,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,0DAA0D;AAC1D,SAAS,oBAAoB,CAAC,MAAkB;IAC9C,MAAM,UAAU,GAAI,MAA6B,CAAC,IAAI,CAAC;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED,2EAA2E;AAC3E,mEAAmE;AACnE,SAAS,aAAa,CAAC,GAAsB,EAAE,gBAA8B;IAC3E,IAAI,GAAG,CAAC,iBAAiB;QAAE,OAAO,GAAG,CAAC,iBAAiB,CAAC;IACxD,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,kBAAkB;YAC3B,CAAC,CAAC,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,kBAAkB,EAAE;YAClD,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;IACxB,CAAC;IACD,IAAI,GAAG,CAAC,cAAc;QAAE,OAAO,GAAG,CAAC,cAAc,CAAC;IAClD,IAAI,GAAG,CAAC,kBAAkB;QAAE,OAAO,GAAG,CAAC,kBAAkB,CAAC;IAC1D,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC;AAgCD,SAAS,kBAAkB,CAAC,aAA0C;IACpE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC;IAC9C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,CAAC;AAED,4EAA4E;AAC5E,yEAAyE;AACzE,oEAAoE;AACpE,6EAA6E;AAC7E,sEAAsE;AACtE,yEAAyE;AACzE,0EAA0E;AAC1E,6EAA6E;AAC7E,wCAAwC;AACxC,SAAS,kBAAkB,CAAC,IAAc;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC;IACzC,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,qEAAqE;AACrE,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,sEAAsE;AACtE,yCAAyC;AAEzC,2EAA2E;AAC3E,mCAAmC;AACnC,6EAA6E;AAC7E,6EAA6E;AAC7E,4EAA4E;AAC5E,yEAAyE;AACzE,8EAA8E;AAC9E,8EAA8E;AAC9E,sDAAsD;AACtD,IAAI,0BAA0B,GAAG,KAAK,CAAC;AAEvC,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,KAAK,KAAK,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACjD,0BAA0B,GAAG,IAAI,CAAC;QAClC,OAAO,CAAC,IAAI,CACV,oEAAoE;YAClE,IAAI,GAAG,SAAS,KAAK,iDAAiD;YACtE,6DAA6D,CAChE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAOD,kBAAkB;AAClB,4EAA4E;AAC5E,0EAA0E;AAC1E,kEAAkE;AAClE,4EAA4E;AAC5E,2EAA2E;AAC3E,6BAA6B;AAC7B,wEAAwE;AACxE,0DAA0D;AAC1D,SAAS,qBAAqB;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,MAAM,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QACrE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,EAAE,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QACxE,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAC9F,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,yEAAyE;AACzE,0DAA0D;AAC1D,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACxE,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0EAA0E;AAC1E,gEAAgE;AAChE,0EAA0E;AAC1E,wEAAwE;AACxE,+CAA+C;AAC/C,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,KAAK,CAAC,mBAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,yEAAyE;AACzE,4EAA4E;AAC5E,4EAA4E;AAC5E,0EAA0E;AAC1E,yEAAyE;AACzE,wEAAwE;AACxE,uEAAuE;AACvE,qDAAqD;AACrD,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,2EAA2E;AAC3E,sEAAsE;AACtE,4EAA4E;AAC5E,6EAA6E;AAC7E,wEAAwE;AACxE,WAAW;AACX,6EAA6E;AAC7E,2EAA2E;AAC3E,8EAA8E;AAC9E,2EAA2E;AAC3E,2EAA2E;AAC3E,mDAAmD;AACnD,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,4DAA4D;AAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACpC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,oBAAoB,EAAE,GAAG,CAAC,CAAC;AAChE,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC;AAErG,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,4EAA4E;AAC5E,0EAA0E;AAC1E,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,8DAA8D;AAC9D,SAAS,mBAAmB,CAAC,MAAkB;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,WAAW,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED,+EAA+E;AAC/E,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,qEAAqE;AACrE,uEAAuE;AACvE,yEAAyE;AACzE,qEAAqE;AACrE,0EAA0E;AAC1E,WAAW;AACX,MAAM,aAAa,GAA2C;IAC5D,yEAAyE;IACzE,uEAAuE;IACvE,EAAE,OAAO,EAAE,2CAA2C,EAAE,OAAO,EAAE,cAAc,EAAE;IACjF,0EAA0E;IAC1E,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,0EAA0E;IAC1E,mCAAmC;IACnC,EAAE,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,YAAY,EAAE;IAC/D,EAAE,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,YAAY,EAAE;IAC5D,EAAE,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,YAAY,EAAE;IAC5D,EAAE,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,YAAY,EAAE;CAC5D,CAAC;AAEF,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,aAAa,EAAE,CAAC;QACjD,wEAAwE;QACxE,oEAAoE;QACpE,4CAA4C;QAC5C,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qEAAqE;AACrE,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,wEAAwE;AACxE,oEAAoE;AACpE,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,oBAAoB,CAAC,KAAoB;IAIhD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;IACpE,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,UAAU,IAAI,wBAAwB,EAAE,CAAC;QACjD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;IACpD,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzE,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAChD,kBAAkB,EAAE,KAAK,CAAC,UAAU;KACrC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,qEAAqE;AACrE,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,4EAA4E;AAC5E,2EAA2E;AAC3E,2EAA2E;AAC3E,sEAAsE;AACtE,0EAA0E;AAC1E,eAAe;AACf,EAAE;AACF,uEAAuE;AACvE,yEAAyE;AACzE,2EAA2E;AAC3E,6EAA6E;AAC7E,2CAA2C;AAC3C,SAAS,SAAS,CAAC,MAA4B;IAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACxG,MAAM,KAAK,GAAqB;YAC9B,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC;SACpE,CAAC;QACF,IAAI,KAAK,CAAC,KAAK;YAAE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;QACzF,iEAAiE;QACjE,sEAAsE;QACtE,IAAI,KAAK,CAAC,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACzF,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,CAAC,QAAQ,GAAG;gBACf,IAAI,EAAE,QAAQ,CACZ,WAAW,CAAC,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAC9D,YAAY,CAAC,QAAQ,CACtB;gBACD,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;gBACzB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;aAC9B,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED,yEAAyE;AACzE,6EAA6E;AAC7E,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAA0E;AAC1E,wEAAwE;AACxE,EAAE;AACF,wEAAwE;AACxE,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,wEAAwE;AACxE,0EAA0E;AAC1E,SAAS,gBAAgB,CAAC,UAAwD;IAChF,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,GACP,UAAU,CAAC,IAAI,KAAK,SAAS;YAC3B,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS;gBAC7B,CAAC,CAAC,IAAA,sBAAY,EAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;gBACvC,CAAC,CAAC,IAAI,CAAC;QACb,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;QACtE,sEAAsE;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,4EAA4E;AAC5E,sEAAsE;AACtE,uEAAuE;AACvE,qEAAqE;AACrE,2EAA2E;AAC3E,0EAA0E;AAC1E,wEAAwE;AACxE,gEAAgE;AAChE,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,uEAAuE;AACvE,yEAAyE;AACzE,4EAA4E;AAC5E,iEAAiE;AACjE,4EAA4E;AAC5E,6EAA6E;AAC7E,qEAAqE;AACrE,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,6EAA6E;AAC7E,EAAE;AACF,qEAAqE;AACrE,0EAA0E;AAC1E,4EAA4E;AAC5E,0DAA0D;AAC1D,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,2EAA2E;AAC3E,4EAA4E;AAC5E,uBAAuB;AACvB,KAAK,UAAU,uBAAuB,CACpC,KAAU,EACV,KAAa,EACb,MAAkC;IAElC,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,UAAU,OAAO;QACpB,MAAM,YAAY,GAAG,SAAS,EAAE,CAAC;QACjC,IAAI,YAAY,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO;QACzC,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;QAClC,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,wEAAwE;AACxE,0DAA0D;AAC1D,wEAAwE;AACxE,2EAA2E;AAC3E,wEAAwE;AACxE,0EAA0E;AAC1E,0EAA0E;AAC1E,uEAAuE;AACvE,0EAA0E;AAC1E,0EAA0E;AAC1E;;;;;;;;;;;GAWG;AACH,SAAS,QAAQ,CAAC,OAAe;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,gFAAgF;AAChF,MAAM,2BAA2B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAErD;kEACkE;AAClE,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAS,kBAAkB,CAAC,SAAiB,EAAE,cAA2B;IACxE,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,kBAAQ,EAAC,SAAS,CAAC,CAAC,IAAI,CAAC;QACtC,IAAI,IAAI,GAAG,2BAA2B,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CACV,+BAA+B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,6DAA6D,CAC3H,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,GAAG,GAAG,IAAA,sBAAY,EAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,+EAAgF,GAAa,EAAE,OAAO,IAAI,GAAG,EAAE,CAChH,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,qCAAqB,EAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,UAAU,CAAC,MAAM,KAAK,qBAAqB,EAAE,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CACV,sDAAsD,UAAU,CAAC,OAAO,sCAAsC;gBAC5G,8BAA8B,iCAAiB,IAAI,iCAAiB,uCAAuC;gBAC3G,6GAA6G,CAChH,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACvC,OAAO,CAAC,IAAI,CACV,2EAA2E,UAAU,CAAC,MAAM,MAAM;YAChG,sCAAsC,CACzC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAClC,kDAAkD;QAClD,QAAQ,CAAC,mCAAmC,SAAS,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,mBAAI,CAAC,IAAI,CAAC,mBAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC,CAAC;IAClF,IAAI,CAAC;QACH,yEAAyE;QACzE,0EAA0E;QAC1E,wEAAwE;QACxE,2EAA2E;QAC3E,2EAA2E;QAC3E,8DAA8D;QAC9D,IAAA,uBAAa,EAAC,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,gEAAiE,GAAa,EAAE,OAAO,IAAI,GAAG,EAAE,CACjG,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,QAAQ,CAAC,oBAAoB,UAAU,CAAC,YAAY,kBAAkB,WAAW,EAAE,CAAC,CAAC;IACrF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,4BAA4B,CAAC,YAAyC,EAAE,UAAkB;IACjG,OAAO,YAAY,KAAK,QAAQ,IAAI,UAAU,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,qEAAqE;AACrE,wEAAwE;AACxE,0EAA0E;AAC1E,wEAAwE;AACxE,0EAA0E;AAC1E,kDAAkD;AAClD,6EAA6E;AAC7E,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,yEAAyE;AACzE,4EAA4E;AAC5E,gFAAgF;AAChF,SAAS,WAAW,CAClB,QAAgB,EAChB,QAAgB,EAChB,UAAkB,EAClB,WAAmB,EACnB,IAAkB;IAElB,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAC7E,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CACvB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc;IACvC,IAAI,MAAM,KAAK,gBAAgB;QAAE,OAAO,8BAA8B,CAAC;IACvE,IAAI,MAAM,KAAK,cAAc;QAAE,OAAO,yDAAyD,CAAC;IAChG,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,6CAA6C,CAAC;IACjF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc;IAC1C,IAAI,MAAM,KAAK,cAAc;QAAE,OAAO,6CAA6C,CAAC;IACpF,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,6CAA6C,CAAC;IACjF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,IAAkB;IACvC,OAAO,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uEAAuE;AACvE,sEAAsE;AACtE,qEAAqE;AACrE,mBAAmB;AACnB,SAAS,iBAAiB,CAAC,WAA0B,EAAE,KAAa;IAClE,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,SAAS,GAAG,IAAI,CAAC;IAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8DAA8D;AAC9D,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,0BAA0B,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;AAClG,CAAC;AAQD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAEtC,mEAAmE;AACnE,0EAA0E;AAC1E,sEAAsE;AACtE,uCAAuC;AACvC,SAAS,YAAY,CAAI,OAAmB,EAAE,UAAkB;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,OAAO;QACP,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,EAAE;YACxC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;YAC/D,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,0EAA0E;AAC1E,uEAAuE;AACvE,2EAA2E;AAC3E,2EAA2E;AAC3E,kCAAkC;AAClC,IAAI,UAAU,GAAsD,IAAI,CAAC;AAEzE,MAAqB,eAAe;IAiGlC,YAAY,UAAkC,EAAE;QAhGxC,WAAM,GAAG,EAAE,CAAC;QACZ,WAAM,GAAG,EAAE,CAAC;QACpB,uEAAuE;QAC/D,sBAAiB,GAAG,KAAK,CAAC;QAClC,sEAAsE;QACtE,uEAAuE;QACvE,+DAA+D;QACvD,YAAO,GAAG,KAAK,CAAC;QAChB,cAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAoBvB,YAAO,GAAG,EAAE,CAAC;QACb,eAAU,GAAkB,IAAI,CAAC;QACjC,eAAU,GAAkB,IAAI,CAAC;QACjC,gBAAW,GAAkB,IAAI,CAAC;QAIlC,WAAM,GAAwB,EAAE,CAAC;QACjC,cAAS,GAAwB,EAAE,CAAC;QAC5C;;;iEAGyD;QACjD,wBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAEhD;;;;;;;;;;;;;;;;;;;;;;;;;WAyBG;QACK,oBAAe,GAAG,CAAC,CAAC;QAE5B,sEAAsE;QACtE,sEAAsE;QACtE,0EAA0E;QAC1E,iDAAiD;QACzC,oBAAe,GAAG,KAAK,CAAC;QAExB,qBAAgB,GAAyC,IAAI,CAAC;QAC9D,oBAAe,GAAG,IAAI,GAAG,EAAiB,CAAC;QAEnD,0EAA0E;QAC1E,2EAA2E;QAC3E,qEAAqE;QAC7D,eAAU,GAAG,KAAK,CAAC;QAE3B,8EAA8E;QAC9E,wEAAwE;QACxE,yEAAyE;QACzE,0EAA0E;QAC1E,2DAA2D;QACnD,iBAAY,GAA2B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrE,yEAAyE;QACzE,wEAAwE;QACxE,yCAAyC;QACjC,UAAK,GAAkB,IAAI,CAAC;QAqTpC,2EAA2E;QAC3E,sEAAsE;QACtE,wEAAwE;QACxE,0EAA0E;QAC1E,kEAAkE;QAClE,EAAE;QACF,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,0EAA0E;QAC1E,4EAA4E;QAC5E,yEAAyE;QACzE,iDAAiD;QACjD,EAAE;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,6CAA6C;QAC7C,UAAK,GAAG,KAAK,EAAE,MAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAE1B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5C,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC9B,iEAAiE;gBACjE,sEAAsE;gBACtE,+BAA+B;gBAC/B,qEAAqE;gBACrE,mEAAmE;gBACnE,mEAAmE;gBACnE,EAAE;gBACF,oEAAoE;gBACpE,yEAAyE;gBACzE,kEAAkE;gBAClE,qEAAqE;gBACrE,qEAAqE;gBACrE,EAAE;gBACF,sEAAsE;gBACtE,2DAA2D;gBAC3D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACjC,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QApWA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QAC7D,0EAA0E;QAC1E,qEAAqE;QACrE,IAAI,CAAC,iBAAiB,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC;QAErF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,iEAAiE;YACjE,kEAAkE;YAClE,6DAA6D;YAC7D,4CAA4C;YAC5C,OAAO,CAAC,IAAI,CACV,kEAAkE;gBAChE,qEAAqE;gBACrE,yBAAyB,CAC5B,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,kCAAkC;QAC3E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,MAAkB,EAAE,KAAY;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,yEAAyE;QACzE,0EAA0E;QAC1E,0EAA0E;QAC1E,qEAAqE;QACrE,qEAAqE;QACrE,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,sCAAsC;QACtC,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE1D,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAE5B,IAAI,CAAC,UAAU,GAAG,IAAI,cAAK,CAAC;YAC1B,gBAAgB,EAAE,IAAK;YACvB,mBAAmB,EAAE,IAAK;YAC1B,cAAc,EAAE,yBAAyB;YACzC,WAAW,EAAE,yBAAyB;SACvC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,wBAAU,GAAE,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;QACjG,qEAAqE;QACrE,kEAAkE;QAClE,uCAAuC;QACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEpD,kEAAkE;QAClE,yEAAyE;QACzE,wEAAwE;QACxE,gEAAgE;QAChE,mCAAmC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,OAAO;YACV,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE/C,yEAAyE;QACzE,mEAAmE;QACnE,sEAAsE;QACtE,0EAA0E;QAC1E,qEAAqE;QACrE,sEAAsE;QACtE,0EAA0E;QAC1E,4DAA4D;QAC5D,EAAE;QACF,0EAA0E;QAC1E,yDAAyD;QACzD,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACK,QAAQ;QACd,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,oEAAoE;IACpE,2EAA2E;IAC3E,0DAA0D;IAC1D,sEAAsE;IACtE,8CAA8C;IAC9C,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,wEAAwE;IACxE,qEAAqE;IACrE,0EAA0E;IAC1E,2EAA2E;IAC3E,uEAAuE;IACvE,wEAAwE;IACxE,sEAAsE;IACtE,yEAAyE;IACzE,oEAAoE;IACpE,yEAAyE;IACzE,yEAAyE;IACzE,0EAA0E;IAC1E,sBAAsB;IACd,gBAAgB,CAAC,MAAkB;QACzC,OAAO;YACL,iBAAiB,EACf,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI;YACzG,OAAO,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACnE,EAAE,EAAE,QAAQ,CAAC,IAAA,kBAAQ,GAAE,EAAE,eAAe,CAAC,EAAE,CAAC;YAC5C,SAAS,EAAE,QAAQ,CAAC,IAAA,iBAAO,GAAE,EAAE,eAAe,CAAC,SAAS,CAAC;SAC1D,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,IAAc,EAAE,MAAkB;QAC1C,8DAA8D;QAC9D,EAAE;QACF,0EAA0E;QAC1E,yEAAyE;QACzE,iDAAiD;QACjD,EAAE;QACF,yEAAyE;QACzE,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,6CAA6C;QAC7C,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QAEjC,oEAAoE;QACpE,qEAAqE;QACrE,yEAAyE;QACzE,yEAAyE;QACzE,qBAAqB;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,yEAAyE;QACzE,wEAAwE;QACxE,sEAAsE;QACtE,uEAAuE;QACvE,iEAAiE;QACjE,2BAA2B;QAC3B,EAAE;QACF,sEAAsE;QACtE,sEAAsE;QACtE,sEAAsE;QACtE,yEAAyE;QACzE,0DAA0D;QAC1D,yEAAyE;QACzE,yEAAyE;QACzE,mDAAmD;QACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxF,MAAM,QAAQ,GAAG,QAAQ,CACvB,WAAW,CAAC,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAC7D,YAAY,CAAC,QAAQ,CACtB,CAAC;QACF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,uEAAuE;QACvE,kCAAkC;QAClC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAE3D,2EAA2E;QAC3E,qEAAqE;QACrE,0EAA0E;QAC1E,yBAAyB;QACzB,EAAE;QACF,sEAAsE;QACtE,sEAAsE;QACtE,qEAAqE;QACrE,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC;QAEzD,MAAM,sBAAsB,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAE5G,yEAAyE;QACzE,sEAAsE;QACtE,MAAM,eAAe,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1E,IAAI,eAAe,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;YAChD,QAAQ,CACN,yBAAyB,wBAAwB,eAAe,eAAe,CAAC,kBAAkB,UAAU,QAAQ,GAAG,CACxH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,QAAQ;YACR,QAAQ;YACR,MAAM;YACN,UAAU,EAAE,MAAM,CAAC,KAAK;YACxB,WAAW;YACX,uEAAuE;YACvE,uEAAuE;YACvE,kDAAkD;YAClD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,UAAU,EAAE,MAAM,CAAC,QAAQ;YAC3B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAChC,aAAa,EAAE,eAAe,CAAC,IAAI;YACnC,IAAI,EACF,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACjB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;gBAC9E,CAAC,CAAC,SAAS;YACf,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC;YACrC,YAAY,EAAE,gBAAgB,CAAC,sBAAsB,CAAC;SACvD,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,wBAAwB,KAAK,CAAC,EAAE,CAAC;YACzG,OAAO,CAAC,IAAI,CACV,kDAAkD,wBAAwB,wBAAwB;gBAChG,uFAAuF;gBACvF,0DAA0D,CAC7D,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,uBAAuB,EAAE,CAAC;YAClD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO;QAEhE,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,wEAAwE;QACxE,IAAI,SAAS,GAAkB,IAAI,CAAC;QAEpC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO;gBAAE,SAAS;YAC9E,uEAAuE;YACvE,qEAAqE;YACrE,mEAAmE;YACnE,IAAI,CAAC,UAAU,CAAC,IAAI;gBAAE,SAAS;YAE/B,gEAAgE;YAChE,qEAAqE;YACrE,6DAA6D;YAC7D,qDAAqD;YACrD,IAAI,SAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,SAAS,GAAG,IAAA,kBAAQ,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAC7C,CAAC;YAAC,MAAM,CAAC;gBACP,6DAA6D;gBAC7D,kEAAkE;gBAClE,6CAA6C;gBAC7C,SAAS;YACX,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAClB,QAAQ;gBACR,QAAQ;gBACR,UAAU,EAAE,MAAM,CAAC,KAAK;gBACxB,uEAAuE;gBACvE,sEAAsE;gBACtE,6DAA6D;gBAC7D,WAAW;gBACX,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,SAAS,EAAE,UAAU,CAAC,IAAI;gBAC1B,SAAS;aACV,CAAC,CAAC;YAEH,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO;gBAAE,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;QAC/D,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,0EAA0E;QAC1E,0EAA0E;QAC1E,sEAAsE;QACtE,0BAA0B;QAC1B,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO;QAC/B,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5E,IAAI,WAAW,KAAK,IAAI;YAAE,OAAO;QAEjC,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACH,WAAW,GAAG,IAAA,kBAAQ,EAAC,WAAW,CAAC,CAAC,IAAI,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,QAAQ;YACR,QAAQ;YACR,UAAU,EAAE,MAAM,CAAC,KAAK;YACxB,WAAW;YACX,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,WAAW;SACvB,CAAC,CAAC;IACL,CAAC;IAsDD,yEAAyE;IACzE,uEAAuE;IACvE,yEAAyE;IACzE,wEAAwE;IACxE,kEAAkE;IAClE,2CAA2C;IAC3C,EAAE;IACF,2EAA2E;IAC3E,qEAAqE;IACrE,qEAAqE;IACrE,uEAAuE;IACvE,yEAAyE;IACzE,qEAAqE;IACrE,oEAAoE;IACpE,yEAAyE;IACzE,6EAA6E;IAC7E,6EAA6E;IAC7E,2EAA2E;IAC3E,8EAA8E;IAC9E,UAAU;IACF,KAAK,CAAC,gBAAgB,CAAC,MAAkB;QAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,uEAAuE;QACvE,+BAA+B;QAC/B,EAAE;QACF,yEAAyE;QACzE,2EAA2E;QAC3E,2EAA2E;QAC3E,0EAA0E;QAC1E,kEAAkE;QAClE,wEAAwE;QACxE,wEAAwE;QACxE,2EAA2E;QAC3E,wEAAwE;QACxE,2EAA2E;QAC3E,EAAE;QACF,uEAAuE;QACvE,uEAAuE;QACvE,oEAAoE;QACpE,2EAA2E;QAC3E,0EAA0E;QAC1E,sEAAsE;QACtE,sEAAsE;QACtE,gCAAgC;QAChC,EAAE;QACF,0EAA0E;QAC1E,qEAAqE;QACrE,yEAAyE;QACzE,mEAAmE;QACnE,kCAAkC;QAClC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;gBAAE,OAAO;YACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAE9D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CACV,8FAA8F,CAC/F,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,mEAAmE;YACnE,uCAAuC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QAChD,yEAAyE;QACzE,4DAA4D;QAC5D,MAAM,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE5E,MAAM,WAAW,GAAwB,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1F,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QAClD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,qEAAqE;YACrE,wEAAwE;YACxE,wEAAwE;YACxE,iCAAiC;QACnC,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;IACjC,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,yEAAyE;IACzE,sEAAsE;IACtE,mEAAmE;IACnE,yEAAyE;IACzE,SAAS;IACD,MAAM;QACZ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAEO,YAAY;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YAClD,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,GAAG,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACvD,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,uBAAuB;IACvB,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,yEAAyE;IACzE,2EAA2E;IAC3E,0EAA0E;IAC1E,4CAA4C;IAC5C,qEAAqE;IACrE,gEAAgE;IAChE,gEAAgE;IAChE,0EAA0E;IAC1E,sEAAsE;IACtE,wEAAwE;IACxE,kEAAkE;IAClE,iEAAiE;IACjE,yEAAyE;IACzE,0CAA0C;IAClC,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,KAA0B;QAC/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CACpC,MAAM,EACN,GAAG,IAAI,CAAC,MAAM,uBAAuB,KAAK,UAAU,EACpD,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO;QAElC,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAClC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,KAAK,GAAG;oBACN,OAAO,CAAC,IAAI,CACV,iCAAiC,KAAK,CAAC,MAAM,4BAA4B,OAAO,CAAC,MAAM,KAAK;wBAC1F,2CAA2C,CAC9C,CAAC;oBACF,OAAO;gBACT,KAAK,GAAG;oBACN,OAAO,CAAC,IAAI,CACV,mDAAmD,OAAO,CAAC,MAAM,6BAA6B;wBAC5F,8DAA8D,CACjE,CAAC;oBACF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,OAAO;gBACT,KAAK,GAAG;oBACN,OAAO,CAAC,IAAI,CACV,kEAAkE,OAAO,CAAC,MAAM,QAAQ;wBACtF,+BAA+B,CAClC,CAAC;oBACF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,OAAO;gBACT,KAAK,GAAG;oBACN,OAAO,CAAC,IAAI,CACV,uEAAuE,OAAO,CAAC,MAAM,QAAQ;wBAC3F,+BAA+B,CAClC,CAAC;oBACF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACd,OAAO;gBACT;oBACE,OAAO,CAAC,IAAI,CACV,qCAAqC,KAAK,CAAC,MAAM,0BAA0B,OAAO,CAAC,MAAM,KAAK;wBAC5F,GAAG,OAAO,CAAC,MAAM,8CAA8C,CAClE,CAAC;oBACF,OAAO;YACX,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CACV,qCAAqC,KAAK,CAAC,MAAM,0BAA0B,OAAO,CAAC,MAAM,KAAK;YAC5F,2CAA2C,CAC9C,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,gBAAgB,GAAG,qBAAqB,EAAE,CAAC;QAEjD,MAAM,OAAO,GAAoB;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC;YAC3D,SAAS,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC;YACpE,aAAa,EAAE,cAAc,CAAC,mBAAmB,EAAE,EAAE,YAAY,CAAC,aAAa,CAAC;YAChF,UAAU,EAAE,cAAc,CAAC,gBAAgB,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC;YACvE,UAAU,EAAE,gBAAgB,EAAE;YAC9B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YACvC,cAAc,EAAE,cAAc,CAAC,gBAAgB,EAAE,QAAQ,IAAI,IAAI,EAAE,YAAY,CAAC,cAAc,CAAC;YAC/F,cAAc,EAAE,gBAAgB,EAAE,MAAM,IAAI,IAAI;YAChD,SAAS,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC;YACpE,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,SAAS;SACvB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CACpC,MAAM,EACN,GAAG,IAAI,CAAC,MAAM,qBAAqB,EACnC,OAAO,CACR,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAErD,wEAAwE;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,6DAA6D;QAC7D,uEAAuE;QACvE,sEAAsE;QACtE,qEAAqE;QACrE,mEAAmE;QACnE,gCAAgC;QAChC,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CACV,0FAA0F;gBACxF,6FAA6F;gBAC7F,wCAAwC,CAC3C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YACxG,OAAO,CAAC,KAAK,CAAC,4DAA4D,MAAM,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,MAA2B;QAClE,MAAM,OAAO,GAAuB;YAClC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM;YACN,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,yEAAyE;YACzE,0DAA0D;YAC1D,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CACpC,MAAM,EACN,GAAG,IAAI,CAAC,MAAM,uBAAuB,KAAK,WAAW,EACrD,OAAO,CACR,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YACxG,OAAO,CAAC,KAAK,CAAC,kEAAkE,MAAM,EAAE,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,qEAAqE;IACrE,oEAAoE;IACpE,2EAA2E;IAC3E,qEAAqE;IACrE,0EAA0E;IAC1E,sEAAsE;IACtE,yEAAyE;IACzE,2EAA2E;IAC3E,OAAO;IACC,KAAK,CAAC,UAAU;QACtB,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;YAAE,OAAO;QAE5D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,cAAK,EAAC,GAAG,IAAI,CAAC,MAAM,sBAAsB,EAAE;gBACjE,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE;gBAC7E,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,wBAAwB,CAAC;aACtD,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CACV,oEAAoE;oBAClE,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,6BAA6B,CACxE,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAkB,CAAC;YACtD,UAAU,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC;QACxE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,mEAAmE,EACnE,oBAAoB,CAAC,GAAG,EAAE,wBAAwB,CAAC,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,EAAE;IACF,sEAAsE;IACtE,sEAAsE;IACtE,0EAA0E;IAC1E,yEAAyE;IACzE,sEAAsE;IACtE,wEAAwE;IACxE,qEAAqE;IACrE,yEAAyE;IACzE,uEAAuE;IACvE,EAAE;IACF,gEAAgE;IAChE,2EAA2E;IAC3E,oEAAoE;IACpE,+CAA+C;IACvC,KAAK,CAAC,WAAW,CAAI,MAAc,EAAE,GAAW,EAAE,IAAa;QACrE,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,SAAS,CAAC;YACR,IAAI,QAA2C,CAAC;YAChD,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAA,cAAK,EAAC,GAAG,EAAE;oBAC1B,MAAM;oBACN,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;wBACtC,YAAY,EAAE,UAAU;qBACzB;oBACD,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC3D,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,sBAAsB,CAAC;iBACpD,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,eAAe,EAAE,CAAC;gBAClB,IAAI,eAAe,IAAI,0BAA0B,EAAE,CAAC;oBAClD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,oBAAoB,CAAC,GAAG,EAAE,sBAAsB,CAAC,EAAE,CAAC;gBAC9F,CAAC;gBACD,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACzC,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,iBAAiB,EAAE,CAAC;gBACpB,IAAI,iBAAiB,IAAI,uBAAuB,EAAE,CAAC;oBACjD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5F,CAAC;gBACD,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACxF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,yBAAyB,EACzB,YAAY,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,CACpD,CAAC;gBACF,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;gBAC3B,mBAAmB,EAAE,CAAC;gBACtB,IAAI,mBAAmB,IAAI,yBAAyB,EAAE,CAAC;oBACrD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxG,CAAC;gBACD,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACzC,SAAS;YACX,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxG,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;gBAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YACvD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,uEAAuE;IACvE,uEAAuE;IACvE,yEAAyE;IACzE,uEAAuE;IACvE,iBAAiB;IACT,KAAK,CAAC,eAAe,CAAC,KAAa;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,yDAAyD,EAAE,GAAG,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,KAAa;QAC1C,MAAM,gBAAgB,GAA6B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACnF,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAC,CAAC;QAEJ,IAAI,cAAmC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,cAAK,EAAC,GAAG,IAAI,CAAC,MAAM,wBAAwB,EAAE;gBACnE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;oBACtC,YAAY,EAAE,UAAU;iBACzB;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;gBAC5D,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,sBAAsB,CAAC;aACpD,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CACV,+CAA+C,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE;oBACpF,0CAA0C,CAC7C,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqC,CAAC;YACzE,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,qDAAqD,EACrD,oBAAoB,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAClD,CAAC;YACF,OAAO;QACT,CAAC;QAED,8DAA8D;QAC9D,sEAAsE;QACtE,oEAAoE;QACpE,wEAAwE;QACxE,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC/B,WAAW,CACT,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,IAAI,CACd;YACD,QAAQ;SACT,CAAC,CACH,CAAC;QAEF,MAAM,OAAO,GAAyD,EAAE,CAAC;QAEzE,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,kEAAkE;YAClE,wEAAwE;YACxE,mDAAmD;YACnD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAC9B,WAAW,CACT,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,IAAI,EAAE,EACnB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,WAAW,IAAI,CAAC,EACrB,IAAI,CAAC,IAAI,CACV,CACF,CAAC;YACF,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CACV,sBAAsB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,cAAc,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CACnH,CAAC;gBACF,SAAS;YACX,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,qEAAqE;QACrE,yDAAyD;QACzD,MAAM,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;YAC3F,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAQ,EAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpD,MAAM,QAAQ,GAAG,MAAM,IAAA,cAAK,EAAC,SAAS,EAAE;oBACtC,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,yBAAyB,CAAC;iBACvD,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,OAAO,CAAC,IAAI,CACV,wCAAwC,QAAQ,CAAC,IAAI,QAAQ,QAAQ,CAAC,QAAQ,KAAK;wBACjF,CAAC,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAC1C,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CACV,wCAAwC,QAAQ,CAAC,IAAI,QAAQ,QAAQ,CAAC,QAAQ,IAAI,EAClF,oBAAoB,CAAC,GAAG,EAAE,yBAAyB,CAAC,CACrD,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,mEAAmE;QACnE,mEAAmE;QACnE,iEAAiE;QACjE,sEAAsE;QACtE,uEAAuE;QACvE,uEAAuE;QACvE,qEAAqE;QACrE,qEAAqE;QACrE,MAAM,gBAAgB,GAA6B,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YAChF,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,sDAAsD;YACtD,uEAAuE;YACvE,6DAA6D;YAC7D,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,cAAK,EAAC,GAAG,IAAI,CAAC,MAAM,wBAAwB,EAAE;gBACnE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;oBACtC,YAAY,EAAE,UAAU;iBACzB;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;gBAC5D,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,sBAAsB,CAAC;aACpD,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CACV,+CAA+C,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CACvF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqC,CAAC;YACzE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,SAAS;oBAAE,SAAS;gBAC7B,OAAO,CAAC,IAAI,CACV,sBAAsB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,oBAAoB,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAC5H,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,qDAAqD,EACrD,oBAAoB,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAClD,CAAC;QACJ,CAAC;IACH,CAAC;CAEF;AA3gCD,kCA2gCC;AAED,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AACjE,QAAA,UAAU,GAAG;IACxB,yBAAyB;IACzB,QAAQ;IACR,cAAc;IACd,SAAS;IACT,SAAS;IACT,iBAAiB;IACjB,qBAAqB;IACrB,WAAW;IACX,aAAa;IACb,kBAAkB;IAClB,WAAW;IACX,oBAAoB;IACpB,SAAS;IACT,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,4BAA4B;IAC5B,WAAW;CACZ,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The trace schema versions this extractor has been verified against.
|
|
3
|
+
*
|
|
4
|
+
* VERIFIED means: the console event shape above was checked in that version's
|
|
5
|
+
* writer. V5 through V10 carry it unchanged; 1.62 writes V8. The upper bound
|
|
6
|
+
* is deliberately the highest VERIFIED one and not Infinity - a future version
|
|
7
|
+
* that renames the event would otherwise be read as "this attempt had no
|
|
8
|
+
* console messages", which is silence, and silence in exactly the shape of the
|
|
9
|
+
* artifact outage this project spent six days not noticing.
|
|
10
|
+
*/
|
|
11
|
+
export declare const TRACE_VERSION_MIN = 5;
|
|
12
|
+
export declare const TRACE_VERSION_MAX = 10;
|
|
13
|
+
export type ConsoleExtraction =
|
|
14
|
+
/** Messages found and formatted. */
|
|
15
|
+
{
|
|
16
|
+
status: "ok";
|
|
17
|
+
text: string;
|
|
18
|
+
messageCount: number;
|
|
19
|
+
}
|
|
20
|
+
/** The trace was read, the version is known, there were no console events. */
|
|
21
|
+
| {
|
|
22
|
+
status: "empty";
|
|
23
|
+
}
|
|
24
|
+
/** A version outside the verified range - the extractor refuses to guess. */
|
|
25
|
+
| {
|
|
26
|
+
status: "unsupported-version";
|
|
27
|
+
version: number;
|
|
28
|
+
}
|
|
29
|
+
/** The zip could not be opened, or holds no .trace entry at all. */
|
|
30
|
+
| {
|
|
31
|
+
status: "unreadable";
|
|
32
|
+
reason: string;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* The browser console of a trace zip, or why there is none.
|
|
36
|
+
*
|
|
37
|
+
* NEVER THROWS. This runs inside onTestEnd on a customer's CI machine, and
|
|
38
|
+
* this package's first rule is that it cannot break their run - so every
|
|
39
|
+
* failure becomes a `status` the caller can log and carry on from.
|
|
40
|
+
*/
|
|
41
|
+
export declare function extractBrowserConsole(zip: Buffer): ConsoleExtraction;
|
|
42
|
+
//# sourceMappingURL=trace-console.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-console.d.ts","sourceRoot":"","sources":["../src/trace-console.ts"],"names":[],"mappings":"AAkCA;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,MAAM,MAAM,iBAAiB;AAC3B,oCAAoC;AAClC;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE;AACtD,8EAA8E;GAC5E;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE;AACrB,6EAA6E;GAC3E;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACpD,oEAAoE;GAClE;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA8D7C;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CA+DpE"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// The browser console of one attempt, read out of its Playwright trace.
|
|
3
|
+
//
|
|
4
|
+
// WHY FROM THE TRACE. Playwright hands a reporter `result.stdout`/`stderr`,
|
|
5
|
+
// which is the NODE process output - what the test file itself printed. What
|
|
6
|
+
// the page printed goes to the trace and nowhere else, so a reporter that
|
|
7
|
+
// wants it has to open the zip. That is the whole reason this file exists, and
|
|
8
|
+
// it is why an attempt with no trace can never have a browser console: there
|
|
9
|
+
// is no other source. squally-app says so on the page rather than showing an
|
|
10
|
+
// empty section (browserConsoleState).
|
|
11
|
+
//
|
|
12
|
+
// THE FORMAT INSIDE. Each .trace entry is newline-delimited JSON, one event
|
|
13
|
+
// per line, and the first line carries `version`. Console events read:
|
|
14
|
+
//
|
|
15
|
+
// {"type":"console","messageType":"warning","text":"a warning with a number 42",
|
|
16
|
+
// "args":[{"preview":"a warning with a number"},{"preview":"42"}],
|
|
17
|
+
// "location":{...},"time":1123.147,"pageId":"page@..."}
|
|
18
|
+
//
|
|
19
|
+
// MEASURED against Playwright 1.62.1 (trace version 8) rather than taken from
|
|
20
|
+
// the schema, and two of the three measurements changed the code:
|
|
21
|
+
//
|
|
22
|
+
// 1. A trace zip holds SEVERAL .trace files and the console events are not
|
|
23
|
+
// in the one you would guess. `test.trace` is the test-runner context and
|
|
24
|
+
// carried 0 console events; all six were in `0-trace.trace`, the browser
|
|
25
|
+
// context. So every .trace entry is read, not just the first.
|
|
26
|
+
// 2. `text` is ALREADY the rendered join of the args previews - "a warning
|
|
27
|
+
// with a number 42" for console.warn("a warning with a number", 42). The
|
|
28
|
+
// args array adds nothing a reader would want, so it is ignored.
|
|
29
|
+
// 3. `console.log()` with no arguments produces no event at all, while
|
|
30
|
+
// console.debug("") produces one with text "". The empty one is kept (see
|
|
31
|
+
// the formatter): a message that happened is a fact, and dropping it
|
|
32
|
+
// would make the count wrong.
|
|
33
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
+
exports.TRACE_VERSION_MAX = exports.TRACE_VERSION_MIN = void 0;
|
|
35
|
+
exports.extractBrowserConsole = extractBrowserConsole;
|
|
36
|
+
const trace_zip_1 = require("./trace-zip");
|
|
37
|
+
/**
|
|
38
|
+
* The trace schema versions this extractor has been verified against.
|
|
39
|
+
*
|
|
40
|
+
* VERIFIED means: the console event shape above was checked in that version's
|
|
41
|
+
* writer. V5 through V10 carry it unchanged; 1.62 writes V8. The upper bound
|
|
42
|
+
* is deliberately the highest VERIFIED one and not Infinity - a future version
|
|
43
|
+
* that renames the event would otherwise be read as "this attempt had no
|
|
44
|
+
* console messages", which is silence, and silence in exactly the shape of the
|
|
45
|
+
* artifact outage this project spent six days not noticing.
|
|
46
|
+
*/
|
|
47
|
+
exports.TRACE_VERSION_MIN = 5;
|
|
48
|
+
exports.TRACE_VERSION_MAX = 10;
|
|
49
|
+
/**
|
|
50
|
+
* One line per message, `[messageType] text`.
|
|
51
|
+
*
|
|
52
|
+
* THREE CHOICES, each with a case that forced it:
|
|
53
|
+
*
|
|
54
|
+
* no text -> the line is just `[debug]`. console.debug("") is a real
|
|
55
|
+
* message with empty text (measured); printing nothing for
|
|
56
|
+
* it would hide that the page logged at all, and printing
|
|
57
|
+
* "[debug] " leaves a trailing space in a file people read.
|
|
58
|
+
* multi-line -> kept as it is, newlines and all. "One line per message"
|
|
59
|
+
* is therefore approximate, and that is the right trade:
|
|
60
|
+
* the text of a console.error is usually a stack, and
|
|
61
|
+
* escaping or indenting it would make the one message
|
|
62
|
+
* people most want to read the hardest one. squally-app
|
|
63
|
+
* renders this in a `whitespace-pre-wrap` block, so it
|
|
64
|
+
* arrives as written.
|
|
65
|
+
* args preview -> ignored. `text` already contains it (measurement 2
|
|
66
|
+
* above); appending the previews would print everything
|
|
67
|
+
* twice.
|
|
68
|
+
*
|
|
69
|
+
* `messageType` is Playwright's own word, not remapped: log, info, warning,
|
|
70
|
+
* error, debug, trace. "warning" rather than "warn" is what the trace says and
|
|
71
|
+
* inventing a synonym here would make the file disagree with the trace viewer
|
|
72
|
+
* a reader might open beside it.
|
|
73
|
+
*/
|
|
74
|
+
function formatConsole(events) {
|
|
75
|
+
return events
|
|
76
|
+
.map((event) => (event.text === "" ? `[${event.messageType}]` : `[${event.messageType}] ${event.text}`))
|
|
77
|
+
.join("\n");
|
|
78
|
+
}
|
|
79
|
+
/** Reads one .trace entry: its version, and any console events in it. */
|
|
80
|
+
function readTraceEntry(text) {
|
|
81
|
+
let version = null;
|
|
82
|
+
const events = [];
|
|
83
|
+
for (const line of text.split("\n")) {
|
|
84
|
+
if (line === "")
|
|
85
|
+
continue;
|
|
86
|
+
let event;
|
|
87
|
+
try {
|
|
88
|
+
event = JSON.parse(line);
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// A truncated last line is the expected case (a trace written by a
|
|
92
|
+
// process that was killed). Skipping it loses that one event; failing
|
|
93
|
+
// the whole extraction would lose all of them.
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (version === null && typeof event.version === "number")
|
|
97
|
+
version = event.version;
|
|
98
|
+
if (event.type !== "console")
|
|
99
|
+
continue;
|
|
100
|
+
events.push({
|
|
101
|
+
messageType: typeof event.messageType === "string" ? event.messageType : "log",
|
|
102
|
+
text: typeof event.text === "string" ? event.text : "",
|
|
103
|
+
time: typeof event.time === "number" ? event.time : null,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return { version, events };
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The browser console of a trace zip, or why there is none.
|
|
110
|
+
*
|
|
111
|
+
* NEVER THROWS. This runs inside onTestEnd on a customer's CI machine, and
|
|
112
|
+
* this package's first rule is that it cannot break their run - so every
|
|
113
|
+
* failure becomes a `status` the caller can log and carry on from.
|
|
114
|
+
*/
|
|
115
|
+
function extractBrowserConsole(zip) {
|
|
116
|
+
let traceEntries;
|
|
117
|
+
try {
|
|
118
|
+
traceEntries = (0, trace_zip_1.readCentralDirectory)(zip).filter((entry) => entry.name.endsWith(".trace"));
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
return {
|
|
122
|
+
status: "unreadable",
|
|
123
|
+
reason: error instanceof trace_zip_1.ZipFormatError ? error.message : `${error?.message ?? error}`,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
if (traceEntries.length === 0) {
|
|
127
|
+
return { status: "unreadable", reason: "the zip holds no .trace entry" };
|
|
128
|
+
}
|
|
129
|
+
const events = [];
|
|
130
|
+
let sawVersion = false;
|
|
131
|
+
for (const entry of traceEntries) {
|
|
132
|
+
let text;
|
|
133
|
+
try {
|
|
134
|
+
text = (0, trace_zip_1.readZipEntry)(zip, entry).toString("utf8");
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
return {
|
|
138
|
+
status: "unreadable",
|
|
139
|
+
reason: error instanceof trace_zip_1.ZipFormatError ? error.message : `${error?.message ?? error}`,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
const { version, events: found } = readTraceEntry(text);
|
|
143
|
+
if (version !== null) {
|
|
144
|
+
sawVersion = true;
|
|
145
|
+
// ANY entry outside the range fails the whole extraction, rather than
|
|
146
|
+
// the others being read anyway: a zip whose parts disagree about the
|
|
147
|
+
// schema is not a zip to take a best guess at.
|
|
148
|
+
if (version < exports.TRACE_VERSION_MIN || version > exports.TRACE_VERSION_MAX) {
|
|
149
|
+
return { status: "unsupported-version", version };
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
events.push(...found);
|
|
153
|
+
}
|
|
154
|
+
if (!sawVersion) {
|
|
155
|
+
return { status: "unreadable", reason: "no .trace entry carried a version header" };
|
|
156
|
+
}
|
|
157
|
+
// Ordered by the trace clock, because the events come from several files -
|
|
158
|
+
// the browser context and the test-runner context are separate entries, and
|
|
159
|
+
// concatenating them would interleave a page's output wrongly. Events with
|
|
160
|
+
// no `time` keep their position (a stable sort), which is why `time` is read
|
|
161
|
+
// at all: it orders, it is not printed. It is a float of milliseconds since
|
|
162
|
+
// the trace started, which means nothing to a reader without that origin.
|
|
163
|
+
const ordered = events
|
|
164
|
+
.map((event, index) => ({ event, index }))
|
|
165
|
+
.sort((a, b) => a.event.time === null || b.event.time === null
|
|
166
|
+
? a.index - b.index
|
|
167
|
+
: a.event.time - b.event.time || a.index - b.index)
|
|
168
|
+
.map((entry) => entry.event);
|
|
169
|
+
if (ordered.length === 0)
|
|
170
|
+
return { status: "empty" };
|
|
171
|
+
return { status: "ok", text: formatConsole(ordered), messageCount: ordered.length };
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=trace-console.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-console.js","sourceRoot":"","sources":["../src/trace-console.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type ZipEntry = {
|
|
2
|
+
name: string;
|
|
3
|
+
method: number;
|
|
4
|
+
flags: number;
|
|
5
|
+
compressedSize: number;
|
|
6
|
+
uncompressedSize: number;
|
|
7
|
+
localHeaderOffset: number;
|
|
8
|
+
};
|
|
9
|
+
export declare class ZipFormatError extends Error {
|
|
10
|
+
constructor(message: string);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Every entry in the archive, from the central directory.
|
|
14
|
+
*
|
|
15
|
+
* Reads the directory only - no decompression happens here, so listing a 50 MB
|
|
16
|
+
* trace costs the same as listing an empty one.
|
|
17
|
+
*/
|
|
18
|
+
export declare function readCentralDirectory(zip: Buffer): ZipEntry[];
|
|
19
|
+
/** One entry's bytes, decompressed. */
|
|
20
|
+
export declare function readZipEntry(zip: Buffer, entry: ZipEntry): Buffer;
|
|
21
|
+
/** Convenience: the entry with this exact name, decompressed, or null. */
|
|
22
|
+
export declare function readZipEntryByName(zip: Buffer, name: string): Buffer | null;
|
|
23
|
+
//# sourceMappingURL=trace-zip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-zip.d.ts","sourceRoot":"","sources":["../src/trace-zip.ts"],"names":[],"mappings":"AAiDA,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAUD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAmC5D;AAED,uCAAuC;AACvC,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CA2BjE;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3E"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// A zip reader for exactly one input: the zip Playwright writes for a trace.
|
|
3
|
+
//
|
|
4
|
+
// WHY HAND-WRITTEN, when three ready alternatives exist. Measured before
|
|
5
|
+
// deciding, not argued from taste:
|
|
6
|
+
//
|
|
7
|
+
// playwright's bundled yauzl 247 ms and +42 MB RSS per CI process, just to
|
|
8
|
+
// require it. It is inside the customer's own playwright-core, so it costs
|
|
9
|
+
// no install - but this reporter runs in every worker of every CI job, and
|
|
10
|
+
// 42 MB of resident memory for a zip we open only on a failure is the
|
|
11
|
+
// wrong trade.
|
|
12
|
+
// fflate would be the SECOND runtime dependency this
|
|
13
|
+
// package has ever had. The first (undici) is still remembered here for
|
|
14
|
+
// the `engines` field it dragged in.
|
|
15
|
+
// node:zlib already in the runtime, no install, no import
|
|
16
|
+
// cost worth measuring. inflateRawSync is the whole of what a deflate
|
|
17
|
+
// entry needs.
|
|
18
|
+
//
|
|
19
|
+
// WHAT THIS DELIBERATELY DOES NOT DO. Playwright traces are the only input, and
|
|
20
|
+
// they are written by Playwright's own writer: stored or deflate, no
|
|
21
|
+
// encryption, no zip64, no spanning. Everything else is REJECTED with a
|
|
22
|
+
// message that says which unsupported thing was found, rather than half-
|
|
23
|
+
// handled. A zip this cannot read is a zip that should be reported, not
|
|
24
|
+
// guessed at - see the failure modes in trace-console.ts.
|
|
25
|
+
//
|
|
26
|
+
// SIZES COME FROM THE CENTRAL DIRECTORY, never from the local file header, and
|
|
27
|
+
// that is not a style choice: Playwright sets general-purpose bit 3 (measured:
|
|
28
|
+
// flags 2056 on every entry of a 1.62 trace), which means the local header
|
|
29
|
+
// carries zeros and the real sizes follow the data in a descriptor. A reader
|
|
30
|
+
// that trusts the local header gets an empty buffer for every entry.
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.ZipFormatError = void 0;
|
|
33
|
+
exports.readCentralDirectory = readCentralDirectory;
|
|
34
|
+
exports.readZipEntry = readZipEntry;
|
|
35
|
+
exports.readZipEntryByName = readZipEntryByName;
|
|
36
|
+
const node_zlib_1 = require("node:zlib");
|
|
37
|
+
const END_OF_CENTRAL_DIRECTORY = 0x06054b50;
|
|
38
|
+
const CENTRAL_FILE_HEADER = 0x02014b50;
|
|
39
|
+
const LOCAL_FILE_HEADER = 0x04034b50;
|
|
40
|
+
/** A zip comment can be 64 KiB, so the EOCD can sit that far from the end. */
|
|
41
|
+
const MAX_EOCD_SEARCH = 22 + 0xffff;
|
|
42
|
+
/** Marker value for "this number did not fit - see the zip64 record". */
|
|
43
|
+
const ZIP64_SENTINEL_32 = 0xffffffff;
|
|
44
|
+
const ZIP64_SENTINEL_16 = 0xffff;
|
|
45
|
+
const METHOD_STORED = 0;
|
|
46
|
+
const METHOD_DEFLATE = 8;
|
|
47
|
+
/** Bit 0 of the general-purpose flags: the entry is encrypted. */
|
|
48
|
+
const FLAG_ENCRYPTED = 0x1;
|
|
49
|
+
class ZipFormatError extends Error {
|
|
50
|
+
constructor(message) {
|
|
51
|
+
super(message);
|
|
52
|
+
this.name = "ZipFormatError";
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.ZipFormatError = ZipFormatError;
|
|
56
|
+
function findEndOfCentralDirectory(zip) {
|
|
57
|
+
const lowest = Math.max(0, zip.length - MAX_EOCD_SEARCH);
|
|
58
|
+
for (let offset = zip.length - 22; offset >= lowest; offset--) {
|
|
59
|
+
if (zip.readUInt32LE(offset) === END_OF_CENTRAL_DIRECTORY)
|
|
60
|
+
return offset;
|
|
61
|
+
}
|
|
62
|
+
throw new ZipFormatError("no end-of-central-directory record - not a zip file");
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Every entry in the archive, from the central directory.
|
|
66
|
+
*
|
|
67
|
+
* Reads the directory only - no decompression happens here, so listing a 50 MB
|
|
68
|
+
* trace costs the same as listing an empty one.
|
|
69
|
+
*/
|
|
70
|
+
function readCentralDirectory(zip) {
|
|
71
|
+
if (zip.length < 22)
|
|
72
|
+
throw new ZipFormatError(`file is too small to be a zip (${zip.length} bytes)`);
|
|
73
|
+
const eocd = findEndOfCentralDirectory(zip);
|
|
74
|
+
const entryCount = zip.readUInt16LE(eocd + 10);
|
|
75
|
+
const directoryOffset = zip.readUInt32LE(eocd + 16);
|
|
76
|
+
if (entryCount === ZIP64_SENTINEL_16 || directoryOffset === ZIP64_SENTINEL_32) {
|
|
77
|
+
throw new ZipFormatError("zip64 archives are not supported");
|
|
78
|
+
}
|
|
79
|
+
const entries = [];
|
|
80
|
+
let cursor = directoryOffset;
|
|
81
|
+
for (let index = 0; index < entryCount; index++) {
|
|
82
|
+
if (cursor + 46 > zip.length || zip.readUInt32LE(cursor) !== CENTRAL_FILE_HEADER) {
|
|
83
|
+
throw new ZipFormatError(`central directory entry ${index} is malformed`);
|
|
84
|
+
}
|
|
85
|
+
const flags = zip.readUInt16LE(cursor + 8);
|
|
86
|
+
const method = zip.readUInt16LE(cursor + 10);
|
|
87
|
+
const compressedSize = zip.readUInt32LE(cursor + 20);
|
|
88
|
+
const uncompressedSize = zip.readUInt32LE(cursor + 24);
|
|
89
|
+
const nameLength = zip.readUInt16LE(cursor + 28);
|
|
90
|
+
const extraLength = zip.readUInt16LE(cursor + 30);
|
|
91
|
+
const commentLength = zip.readUInt16LE(cursor + 32);
|
|
92
|
+
const localHeaderOffset = zip.readUInt32LE(cursor + 42);
|
|
93
|
+
const name = zip.subarray(cursor + 46, cursor + 46 + nameLength).toString("utf8");
|
|
94
|
+
if (compressedSize === ZIP64_SENTINEL_32 || uncompressedSize === ZIP64_SENTINEL_32) {
|
|
95
|
+
throw new ZipFormatError(`entry "${name}" needs zip64, which is not supported`);
|
|
96
|
+
}
|
|
97
|
+
entries.push({ name, method, flags, compressedSize, uncompressedSize, localHeaderOffset });
|
|
98
|
+
cursor += 46 + nameLength + extraLength + commentLength;
|
|
99
|
+
}
|
|
100
|
+
return entries;
|
|
101
|
+
}
|
|
102
|
+
/** One entry's bytes, decompressed. */
|
|
103
|
+
function readZipEntry(zip, entry) {
|
|
104
|
+
if ((entry.flags & FLAG_ENCRYPTED) !== 0) {
|
|
105
|
+
throw new ZipFormatError(`entry "${entry.name}" is encrypted, which is not supported`);
|
|
106
|
+
}
|
|
107
|
+
if (entry.method !== METHOD_STORED && entry.method !== METHOD_DEFLATE) {
|
|
108
|
+
throw new ZipFormatError(`entry "${entry.name}" uses compression method ${entry.method}; only stored (0) and deflate (8) are supported`);
|
|
109
|
+
}
|
|
110
|
+
const header = entry.localHeaderOffset;
|
|
111
|
+
if (header + 30 > zip.length || zip.readUInt32LE(header) !== LOCAL_FILE_HEADER) {
|
|
112
|
+
throw new ZipFormatError(`entry "${entry.name}" has no local file header where the directory says`);
|
|
113
|
+
}
|
|
114
|
+
// The local header's OWN name/extra lengths, which can differ from the
|
|
115
|
+
// central directory's extra length - the two are allowed to carry different
|
|
116
|
+
// extra fields, and using the wrong one lands mid-data.
|
|
117
|
+
const nameLength = zip.readUInt16LE(header + 26);
|
|
118
|
+
const extraLength = zip.readUInt16LE(header + 28);
|
|
119
|
+
const start = header + 30 + nameLength + extraLength;
|
|
120
|
+
const end = start + entry.compressedSize;
|
|
121
|
+
if (end > zip.length) {
|
|
122
|
+
throw new ZipFormatError(`entry "${entry.name}" runs past the end of the file`);
|
|
123
|
+
}
|
|
124
|
+
const raw = zip.subarray(start, end);
|
|
125
|
+
return entry.method === METHOD_STORED ? Buffer.from(raw) : (0, node_zlib_1.inflateRawSync)(raw);
|
|
126
|
+
}
|
|
127
|
+
/** Convenience: the entry with this exact name, decompressed, or null. */
|
|
128
|
+
function readZipEntryByName(zip, name) {
|
|
129
|
+
const entry = readCentralDirectory(zip).find((candidate) => candidate.name === name);
|
|
130
|
+
return entry ? readZipEntry(zip, entry) : null;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=trace-zip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-zip.js","sourceRoot":"","sources":["../src/trace-zip.ts"],"names":[],"mappings":"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"}
|