squally-reporter 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +278 -189
- package/dist/index.d.ts +40 -3
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +251 -12
- package/dist/index.js.map +1 -0
- 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 +9 -1
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
|
|
@@ -412,6 +413,14 @@ function resolveBrowserName(test) {
|
|
|
412
413
|
// test" - testedRevision fills that gap.
|
|
413
414
|
// Applied to every resolved revision value before it's sent, regardless of
|
|
414
415
|
// which pattern below produced it.
|
|
416
|
+
// Warned about ONCE per process, not per call (D5). The three rewrites below
|
|
417
|
+
// are deliberate and stay - what the finding was about is that they happened
|
|
418
|
+
// SILENTLY: a customer whose release tag is "V2.1" sees "2.1" arrive in the
|
|
419
|
+
// dashboard with nothing anywhere saying who changed it, and the natural
|
|
420
|
+
// conclusion is that Squally lost the value. One line on the first rewrite is
|
|
421
|
+
// enough to make it findable; repeating it per test would bury the run's real
|
|
422
|
+
// output under a rewrite that is the same every time.
|
|
423
|
+
let warnedAboutRevisionRewrite = false;
|
|
415
424
|
function normalizeRevision(raw) {
|
|
416
425
|
let value = raw.toLowerCase();
|
|
417
426
|
if (value.startsWith("refs/heads/")) {
|
|
@@ -420,6 +429,12 @@ function normalizeRevision(raw) {
|
|
|
420
429
|
if (/^v\d/.test(value)) {
|
|
421
430
|
value = value.slice(1);
|
|
422
431
|
}
|
|
432
|
+
if (value !== raw && !warnedAboutRevisionRewrite) {
|
|
433
|
+
warnedAboutRevisionRewrite = true;
|
|
434
|
+
console.warn(`[squally-reporter] Normalised the tested revision for comparison: ` +
|
|
435
|
+
`'${raw}' -> '${value}' (lowercased, and any 'refs/heads/' prefix or ` +
|
|
436
|
+
`leading 'v' removed). The original is not what gets stored.`);
|
|
437
|
+
}
|
|
423
438
|
return value;
|
|
424
439
|
}
|
|
425
440
|
// Fallback chain:
|
|
@@ -478,9 +493,22 @@ function toPosixPath(p) {
|
|
|
478
493
|
// file has to stay plain, readable ASCII - a raw ESC byte pasted into source
|
|
479
494
|
// code is invisible in most editors/diffs and easy to mistake for empty
|
|
480
495
|
// content.
|
|
496
|
+
// TWO PATTERNS SINCE THIS RELEASE (T2-T5's stripAnsi item), because terminal
|
|
497
|
+
// escapes come in two shapes and only one was handled. CSI is the familiar
|
|
498
|
+
// colour/cursor form. OSC - "operating system command" - is ESC ] followed by
|
|
499
|
+
// a body and terminated by BEL or by ESC backslash; hyperlinks (OSC 8) and
|
|
500
|
+
// window-title changes use it, and CI tooling emits them often enough that
|
|
501
|
+
// they were reaching stored console output intact.
|
|
502
|
+
//
|
|
503
|
+
// The escape characters are built from char codes rather than written as
|
|
504
|
+
// literals, the way the original did, so this file stays free of raw control
|
|
505
|
+
// bytes - a lesson this codebase has already paid for once.
|
|
506
|
+
const ESC = String.fromCharCode(27);
|
|
507
|
+
const BEL = String.fromCharCode(7);
|
|
508
|
+
const CSI_PATTERN = new RegExp(ESC + "\\[[0-9;]*[a-zA-Z]", "g");
|
|
509
|
+
const OSC_PATTERN = new RegExp(ESC + "\\][^" + BEL + ESC + "]*(?:" + BEL + "|" + ESC + "\\\\)", "g");
|
|
481
510
|
function stripAnsi(value) {
|
|
482
|
-
|
|
483
|
-
return value.replace(ansiPattern, "");
|
|
511
|
+
return value.replace(CSI_PATTERN, "").replace(OSC_PATTERN, "");
|
|
484
512
|
}
|
|
485
513
|
// Playwright captures stdout/stderr as two separate arrays (each internally
|
|
486
514
|
// chronological, but not merged with each other), so a true byte-accurate
|
|
@@ -539,15 +567,41 @@ function maskSecrets(value) {
|
|
|
539
567
|
// server enforces this regardless of what the reporter already did, but
|
|
540
568
|
// doing it here too means a run never sends more than it needs to).
|
|
541
569
|
const CONSOLE_OUTPUT_MAX_BYTES = 16 * 1024;
|
|
570
|
+
/**
|
|
571
|
+
* The console output to send, and the size it had before the cut.
|
|
572
|
+
*
|
|
573
|
+
* RETURNS A PAIR SINCE 17.09., the same shape squally-app's own
|
|
574
|
+
* prepareConsoleOutput returns (lib/ingest-v2-core.ts). The reason is a gap
|
|
575
|
+
* nobody could see from either side alone: the app records
|
|
576
|
+
* consoleOutputOriginalBytes so a truncated capture says so on the page, and
|
|
577
|
+
* it derives that number from the text it RECEIVES - which this reporter has
|
|
578
|
+
* already cut to 16 KiB. The app therefore records NULL for every
|
|
579
|
+
* reporter-sent row and the page says nothing was cut, while something was.
|
|
580
|
+
*
|
|
581
|
+
* `truncatedFromBytes` is the masked size before the cut, null when nothing
|
|
582
|
+
* was cut - the optional-field shape the wire uses for expectedFailure.
|
|
583
|
+
*
|
|
584
|
+
* NOT SENT YET, and deliberately not: squally-app's v2 result schema has no
|
|
585
|
+
* field for it (checked in lib/ingest-v2-contract.ts, resultSchema), and that
|
|
586
|
+
* schema does not use .strict(), so zod would silently STRIP an unknown key.
|
|
587
|
+
* Sending it today would look done and change nothing. The receiving side goes
|
|
588
|
+
* first in this project - that is how the console artifact itself shipped -
|
|
589
|
+
* so the value is computed and available here, and the wire field is a
|
|
590
|
+
* squally-app change this release reports rather than pre-empts.
|
|
591
|
+
*/
|
|
542
592
|
function prepareConsoleOutput(value) {
|
|
543
593
|
if (value === null)
|
|
544
|
-
return null;
|
|
594
|
+
return { text: null, truncatedFromBytes: null };
|
|
545
595
|
const masked = maskSecrets(value);
|
|
546
596
|
const bytes = Buffer.from(masked, "utf8");
|
|
547
|
-
if (bytes.byteLength <= CONSOLE_OUTPUT_MAX_BYTES)
|
|
548
|
-
return masked;
|
|
597
|
+
if (bytes.byteLength <= CONSOLE_OUTPUT_MAX_BYTES) {
|
|
598
|
+
return { text: masked, truncatedFromBytes: null };
|
|
599
|
+
}
|
|
549
600
|
const cut = bytes.subarray(0, CONSOLE_OUTPUT_MAX_BYTES).toString("utf8");
|
|
550
|
-
return
|
|
601
|
+
return {
|
|
602
|
+
text: cut.endsWith("�") ? cut.slice(0, -1) : cut,
|
|
603
|
+
truncatedFromBytes: bytes.byteLength,
|
|
604
|
+
};
|
|
551
605
|
}
|
|
552
606
|
// --- errors[] (spec section 1.3) --------------------------------------------
|
|
553
607
|
//
|
|
@@ -683,6 +737,102 @@ async function runWithConcurrencyLimit(items, limit, worker) {
|
|
|
683
737
|
// (mapStatus above collapses those down) - retryCount > 0 additionally
|
|
684
738
|
// covers a passed-on-retry attempt, since seeing what an earlier, failing
|
|
685
739
|
// attempt looked like is still useful even if the test eventually passed.
|
|
740
|
+
/**
|
|
741
|
+
* Detail that is only interesting when something looks wrong, off by default.
|
|
742
|
+
*
|
|
743
|
+
* ADDED WITH THE CONSOLE ARTIFACT (17.09.), because that path has one outcome
|
|
744
|
+
* that is both completely ordinary and worth being able to see: an attempt
|
|
745
|
+
* whose page printed nothing uploads nothing, and a customer asking "where is
|
|
746
|
+
* my browser console" needs a way to tell that from a failure. Everything that
|
|
747
|
+
* is NOT ordinary on that path warns unconditionally instead.
|
|
748
|
+
*
|
|
749
|
+
* One variable, no levels: this package logs almost nothing by design, and a
|
|
750
|
+
* level system would be more machinery than it has output.
|
|
751
|
+
*/
|
|
752
|
+
function debugLog(message) {
|
|
753
|
+
if (process.env.SQUALLY_DEBUG)
|
|
754
|
+
console.log(`[squally-reporter] ${message}`);
|
|
755
|
+
}
|
|
756
|
+
/** Traces above this size are left unread rather than inflated in onTestEnd. */
|
|
757
|
+
const MAX_TRACE_BYTES_FOR_CONSOLE = 64 * 1024 * 1024;
|
|
758
|
+
/** The console file is written beside the trace, so Playwright's own output-dir
|
|
759
|
+
* cleanup removes it with everything else that test produced. */
|
|
760
|
+
const CONSOLE_ARTIFACT_FILENAME = "browser-console.txt";
|
|
761
|
+
/**
|
|
762
|
+
* Turns one trace into a console artifact on disk, or says why it did not.
|
|
763
|
+
*
|
|
764
|
+
* SYNCHRONOUS, like the statSync beside it and for the same reason: Playwright
|
|
765
|
+
* does not await onTestEnd, so anything async here would race onEnd() reading
|
|
766
|
+
* this.artifacts. Measured on a real 1.62 trace: 7 KB zip, inflate and parse
|
|
767
|
+
* under a millisecond; the cap above is what keeps a pathological 50 MB trace
|
|
768
|
+
* from turning that into a pause the customer notices.
|
|
769
|
+
*
|
|
770
|
+
* FAILURE MODES, and what each one does. None of them can be a skipReason sent
|
|
771
|
+
* to presign: that route decides its own reasons (not_found, file_too_large,
|
|
772
|
+
* cap_exceeded) and takes none from the client - checked in squally-app's
|
|
773
|
+
* presignPayloadSchema, not assumed. So every failure here is a LOCAL skip,
|
|
774
|
+
* and the difference between them is what gets logged:
|
|
775
|
+
*
|
|
776
|
+
* zip unreadable / no .trace -> warn. Something produced a trace this
|
|
777
|
+
* cannot open, and that is worth a line in
|
|
778
|
+
* the customer's log even though their run is
|
|
779
|
+
* unaffected.
|
|
780
|
+
* version unsupported -> warn ONCE per run, naming the version. The
|
|
781
|
+
* loudest case on purpose: it means this
|
|
782
|
+
* reporter is too old for the Playwright that
|
|
783
|
+
* produced the trace, and the silent
|
|
784
|
+
* alternative - uploading nothing and saying
|
|
785
|
+
* nothing - is the exact shape of the outage
|
|
786
|
+
* that cost six days in September.
|
|
787
|
+
* no console events -> debug only. An attempt whose page printed
|
|
788
|
+
* nothing is ordinary; the app already words
|
|
789
|
+
* the absence.
|
|
790
|
+
*/
|
|
791
|
+
function consoleArtifactFor(tracePath, warnedVersions) {
|
|
792
|
+
let zip;
|
|
793
|
+
try {
|
|
794
|
+
const size = (0, node_fs_1.statSync)(tracePath).size;
|
|
795
|
+
if (size > MAX_TRACE_BYTES_FOR_CONSOLE) {
|
|
796
|
+
console.warn(`[squally-reporter] Trace is ${Math.round(size / 1024 / 1024)} MB - skipping browser console extraction for this attempt.`);
|
|
797
|
+
return null;
|
|
798
|
+
}
|
|
799
|
+
zip = (0, node_fs_1.readFileSync)(tracePath);
|
|
800
|
+
}
|
|
801
|
+
catch (err) {
|
|
802
|
+
console.warn(`[squally-reporter] Could not read the trace for browser console extraction: ${err?.message ?? err}`);
|
|
803
|
+
return null;
|
|
804
|
+
}
|
|
805
|
+
const extraction = (0, trace_console_1.extractBrowserConsole)(zip);
|
|
806
|
+
if (extraction.status === "unsupported-version") {
|
|
807
|
+
if (!warnedVersions.has(extraction.version)) {
|
|
808
|
+
warnedVersions.add(extraction.version);
|
|
809
|
+
console.warn(`[squally-reporter] Playwright trace schema version ${extraction.version} is outside the range this reporter ` +
|
|
810
|
+
`has been verified against (${trace_console_1.TRACE_VERSION_MIN}-${trace_console_1.TRACE_VERSION_MAX}) - the browser console is NOT being ` +
|
|
811
|
+
"uploaded for this run. Screenshots and traces are unaffected. Upgrading squally-reporter should resolve it.");
|
|
812
|
+
}
|
|
813
|
+
return null;
|
|
814
|
+
}
|
|
815
|
+
if (extraction.status === "unreadable") {
|
|
816
|
+
console.warn(`[squally-reporter] Could not read the browser console out of the trace (${extraction.reason}) - ` +
|
|
817
|
+
"screenshot and trace are unaffected.");
|
|
818
|
+
return null;
|
|
819
|
+
}
|
|
820
|
+
if (extraction.status === "empty") {
|
|
821
|
+
// Not a warning: the page simply printed nothing.
|
|
822
|
+
debugLog(`browser console: no messages in ${tracePath}`);
|
|
823
|
+
return null;
|
|
824
|
+
}
|
|
825
|
+
const consolePath = node_path_1.default.join(node_path_1.default.dirname(tracePath), CONSOLE_ARTIFACT_FILENAME);
|
|
826
|
+
try {
|
|
827
|
+
(0, node_fs_1.writeFileSync)(consolePath, extraction.text, "utf8");
|
|
828
|
+
}
|
|
829
|
+
catch (err) {
|
|
830
|
+
console.warn(`[squally-reporter] Could not write the browser console file: ${err?.message ?? err}`);
|
|
831
|
+
return null;
|
|
832
|
+
}
|
|
833
|
+
debugLog(`browser console: ${extraction.messageCount} message(s) -> ${consolePath}`);
|
|
834
|
+
return consolePath;
|
|
835
|
+
}
|
|
686
836
|
function attemptQualifiesForArtifacts(mappedStatus, retryCount) {
|
|
687
837
|
return mappedStatus === "failed" || retryCount > 0;
|
|
688
838
|
}
|
|
@@ -692,8 +842,15 @@ function attemptQualifiesForArtifacts(mappedStatus, retryCount) {
|
|
|
692
842
|
// back to the local CollectedArtifact once the server round-trips these
|
|
693
843
|
// identity fields). Unchanged from v1 - see the CollectedArtifact comment
|
|
694
844
|
// above for why this stays a 4-part key under v2.
|
|
695
|
-
|
|
696
|
-
|
|
845
|
+
// FIVE PARTS SINCE THIS RELEASE, matching the tuple the app resolves by. The
|
|
846
|
+
// four-part version collided under `repeatEach`: two repetitions of one test
|
|
847
|
+
// share testName, filePath, retryCount and type, so the map kept only the last
|
|
848
|
+
// of them and the presign result for the first was matched to the wrong local
|
|
849
|
+
// file - or, once both mapped to the same entry, one upload was silently
|
|
850
|
+
// dropped. The app echoes repeatIndex back on every result for exactly this
|
|
851
|
+
// purpose (squally-app/app/api/artifacts/presign/route.ts says so at the type).
|
|
852
|
+
function artifactKey(testName, filePath, retryCount, repeatIndex, type) {
|
|
853
|
+
return [testName, filePath, String(retryCount), String(repeatIndex), type].join(String.fromCharCode(1));
|
|
697
854
|
}
|
|
698
855
|
function skipReasonMessage(reason) {
|
|
699
856
|
if (reason === "file_too_large")
|
|
@@ -813,6 +970,11 @@ class SquallyReporter {
|
|
|
813
970
|
this.projectName = null;
|
|
814
971
|
this.buffer = [];
|
|
815
972
|
this.artifacts = [];
|
|
973
|
+
/** Trace schema versions already warned about - ONCE per run, not per
|
|
974
|
+
* attempt. A suite failing 200 tests under a Playwright this reporter does
|
|
975
|
+
* not know would otherwise print 200 identical paragraphs and teach the
|
|
976
|
+
* reader to scroll past the one thing worth reading. */
|
|
977
|
+
this.warnedTraceVersions = new Set();
|
|
816
978
|
/**
|
|
817
979
|
* Every result this shard produced, counted where it is produced (0.6.0).
|
|
818
980
|
*
|
|
@@ -899,7 +1061,18 @@ class SquallyReporter {
|
|
|
899
1061
|
// This wait exists precisely to keep the process alive while sockets
|
|
900
1062
|
// finish closing - see delay(), and test/exit-code's failing-suite
|
|
901
1063
|
// scenario, which is what catches it if the unref ever comes back.
|
|
902
|
-
|
|
1064
|
+
//
|
|
1065
|
+
// WINDOWS ONLY SINCE THIS RELEASE. The race it mitigates is a libuv
|
|
1066
|
+
// assertion in src/win/async.c; it has never been observed on Linux, and
|
|
1067
|
+
// the CI matrix was built specifically to answer whether Linux is
|
|
1068
|
+
// affected - both jobs have been green throughout, so the 250 ms was
|
|
1069
|
+
// being spent on Ubuntu for nothing, on every run of every customer.
|
|
1070
|
+
//
|
|
1071
|
+
// The matrix stays as it is: if this ever has to come back for Linux,
|
|
1072
|
+
// the job that would show it is the one that already runs.
|
|
1073
|
+
if (process.platform === "win32") {
|
|
1074
|
+
await delay(EXIT_DRAIN_MS);
|
|
1075
|
+
}
|
|
903
1076
|
}
|
|
904
1077
|
};
|
|
905
1078
|
const apiUrl = options.apiUrl ?? process.env.SQUALLY_API_URL;
|
|
@@ -1057,16 +1230,35 @@ class SquallyReporter {
|
|
|
1057
1230
|
// may not have this field at all.
|
|
1058
1231
|
const repeatIndex = typeof test.repeatEachIndex === "number" ? test.repeatEachIndex : 0;
|
|
1059
1232
|
const testTags = Array.isArray(test.tags) ? test.tags : [];
|
|
1233
|
+
// Playwright's `test.fail()` marker (spec section 1.3.1). `expectedStatus`
|
|
1234
|
+
// is "failed" for exactly this and for nothing else: test.skip() and
|
|
1235
|
+
// test.fixme() both make it "skipped", which is a different statement and
|
|
1236
|
+
// deliberately not sent.
|
|
1237
|
+
//
|
|
1238
|
+
// Guarded like runTags and repeatEachIndex above - an older installed
|
|
1239
|
+
// Playwright may not carry the field, and `undefined === "failed"` is
|
|
1240
|
+
// false, which is the right answer for a runner that cannot tell us.
|
|
1241
|
+
const expectedFailure = test.expectedStatus === "failed";
|
|
1060
1242
|
const errorContextAttachment = result.attachments.find((attachment) => attachment.name === "error-context");
|
|
1243
|
+
// Computed once, here: the text goes on the wire and the pre-cut size is
|
|
1244
|
+
// logged at debug. The size has no wire field yet - see the function.
|
|
1245
|
+
const preparedConsole = prepareConsoleOutput(formatConsoleOutput(result));
|
|
1246
|
+
if (preparedConsole.truncatedFromBytes !== null) {
|
|
1247
|
+
debugLog(`console output cut to ${CONSOLE_OUTPUT_MAX_BYTES} bytes (was ${preparedConsole.truncatedFromBytes}) for "${testName}"`);
|
|
1248
|
+
}
|
|
1061
1249
|
this.buffer.push({
|
|
1062
1250
|
testName,
|
|
1063
1251
|
filePath,
|
|
1064
1252
|
status,
|
|
1065
1253
|
retryCount: result.retry,
|
|
1066
1254
|
repeatIndex,
|
|
1255
|
+
// Omitted rather than sent as false: the field is optional on the wire
|
|
1256
|
+
// and absent means "not marked", so an ordinary suite sends nothing at
|
|
1257
|
+
// all rather than a false on every single result.
|
|
1258
|
+
...(expectedFailure ? { expectedFailure: true } : {}),
|
|
1067
1259
|
durationMs: result.duration,
|
|
1068
1260
|
errors: mapErrors(result.errors),
|
|
1069
|
-
consoleOutput:
|
|
1261
|
+
consoleOutput: preparedConsole.text,
|
|
1070
1262
|
tags: testTags.length > 0
|
|
1071
1263
|
? testTags.slice(0, MAX_TAGS).map((tag) => truncate(tag, V2_FIELD_LIMITS.tag))
|
|
1072
1264
|
: undefined,
|
|
@@ -1083,6 +1275,11 @@ class SquallyReporter {
|
|
|
1083
1275
|
}
|
|
1084
1276
|
if (!attemptQualifiesForArtifacts(status, result.retry))
|
|
1085
1277
|
return;
|
|
1278
|
+
// The trace of THIS attempt, remembered while walking the attachments so
|
|
1279
|
+
// the console can be derived from it afterwards. Derived after the loop
|
|
1280
|
+
// rather than inside it, because the console artifact has to be pushed
|
|
1281
|
+
// with the same identity tuple and there is no reason to do that twice.
|
|
1282
|
+
let tracePath = null;
|
|
1086
1283
|
for (const attachment of result.attachments) {
|
|
1087
1284
|
if (attachment.name !== "screenshot" && attachment.name !== "trace")
|
|
1088
1285
|
continue;
|
|
@@ -1109,11 +1306,44 @@ class SquallyReporter {
|
|
|
1109
1306
|
testName,
|
|
1110
1307
|
filePath,
|
|
1111
1308
|
retryCount: result.retry,
|
|
1309
|
+
// THE SAME `repeatIndex` the result entry above was pushed with, not a
|
|
1310
|
+
// second derivation - the app resolves an artifact back to that exact
|
|
1311
|
+
// row, so the two have to be the same value by construction.
|
|
1312
|
+
repeatIndex,
|
|
1112
1313
|
type: attachment.name,
|
|
1113
1314
|
localPath: attachment.path,
|
|
1114
1315
|
sizeBytes,
|
|
1115
1316
|
});
|
|
1317
|
+
if (attachment.name === "trace")
|
|
1318
|
+
tracePath = attachment.path;
|
|
1319
|
+
}
|
|
1320
|
+
// THE CONSOLE, DERIVED FROM THE TRACE, and only when there is one. No
|
|
1321
|
+
// trace means no source: the browser console exists nowhere else, and
|
|
1322
|
+
// squally-app renders the reason rather than an empty section. Extraction
|
|
1323
|
+
// happens HERE, before presign, so that a trace this reporter cannot read
|
|
1324
|
+
// becomes a logged local skip instead of an artifact that presign was
|
|
1325
|
+
// promised and never got.
|
|
1326
|
+
if (tracePath === null)
|
|
1327
|
+
return;
|
|
1328
|
+
const consolePath = consoleArtifactFor(tracePath, this.warnedTraceVersions);
|
|
1329
|
+
if (consolePath === null)
|
|
1330
|
+
return;
|
|
1331
|
+
let consoleSize;
|
|
1332
|
+
try {
|
|
1333
|
+
consoleSize = (0, node_fs_1.statSync)(consolePath).size;
|
|
1334
|
+
}
|
|
1335
|
+
catch {
|
|
1336
|
+
return;
|
|
1116
1337
|
}
|
|
1338
|
+
this.artifacts.push({
|
|
1339
|
+
testName,
|
|
1340
|
+
filePath,
|
|
1341
|
+
retryCount: result.retry,
|
|
1342
|
+
repeatIndex,
|
|
1343
|
+
type: "console",
|
|
1344
|
+
localPath: consolePath,
|
|
1345
|
+
sizeBytes: consoleSize,
|
|
1346
|
+
});
|
|
1117
1347
|
}
|
|
1118
1348
|
// (decision, spec section 3.2, closes 8.7) At onEnd: flush the remaining
|
|
1119
1349
|
// buffer, wait for in-flight batches, then call /complete - bounded by
|
|
@@ -1474,6 +1704,7 @@ class SquallyReporter {
|
|
|
1474
1704
|
testName: artifact.testName,
|
|
1475
1705
|
filePath: artifact.filePath,
|
|
1476
1706
|
retryCount: artifact.retryCount,
|
|
1707
|
+
repeatIndex: artifact.repeatIndex,
|
|
1477
1708
|
type: artifact.type,
|
|
1478
1709
|
sizeBytes: artifact.sizeBytes,
|
|
1479
1710
|
}));
|
|
@@ -1507,12 +1738,15 @@ class SquallyReporter {
|
|
|
1507
1738
|
// guaranteed to match one of this.artifacts (barring a server bug),
|
|
1508
1739
|
// but a missing lookup is handled defensively below instead of assumed.
|
|
1509
1740
|
const artifactsByKey = new Map(this.artifacts.map((artifact) => [
|
|
1510
|
-
artifactKey(artifact.testName, artifact.filePath, artifact.retryCount, artifact.type),
|
|
1741
|
+
artifactKey(artifact.testName, artifact.filePath, artifact.retryCount, artifact.repeatIndex, artifact.type),
|
|
1511
1742
|
artifact,
|
|
1512
1743
|
]));
|
|
1513
1744
|
const uploads = [];
|
|
1514
1745
|
for (const item of presignResults) {
|
|
1515
|
-
|
|
1746
|
+
// `?? 0` mirrors what the app stores: v2 rows carry an int, and a
|
|
1747
|
+
// reporter this old cannot produce a v1 row. It is a type guard for the
|
|
1748
|
+
// echoed field, not a fallback anything relies on.
|
|
1749
|
+
const local = artifactsByKey.get(artifactKey(item.testName, item.filePath ?? "", item.retryCount, item.repeatIndex ?? 0, item.type));
|
|
1516
1750
|
if (!local)
|
|
1517
1751
|
continue;
|
|
1518
1752
|
if (item.skip) {
|
|
@@ -1555,6 +1789,10 @@ class SquallyReporter {
|
|
|
1555
1789
|
testName: artifact.testName,
|
|
1556
1790
|
filePath: artifact.filePath,
|
|
1557
1791
|
retryCount: artifact.retryCount,
|
|
1792
|
+
// Confirm resolves by the SAME five fields as presign
|
|
1793
|
+
// (squally-app/app/api/artifacts/confirm/route.ts) - sending four here
|
|
1794
|
+
// would move the outage from the upload to the confirmation.
|
|
1795
|
+
repeatIndex: artifact.repeatIndex,
|
|
1558
1796
|
type: artifact.type,
|
|
1559
1797
|
}));
|
|
1560
1798
|
try {
|
|
@@ -1608,3 +1846,4 @@ exports.__internal = {
|
|
|
1608
1846
|
attemptQualifiesForArtifacts,
|
|
1609
1847
|
artifactKey,
|
|
1610
1848
|
};
|
|
1849
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,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,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,IAAA,uBAAa,EAAC,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtD,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;IA+FlC,YAAY,UAAkC,EAAE;QA9FxC,WAAM,GAAG,EAAE,CAAC;QACZ,WAAM,GAAG,EAAE,CAAC;QACpB,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;QA8SpC,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;QA7VA,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;QAE7D,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,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;AAlgCD,kCAkgCC;AAED,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AACjE,QAAA,UAAU,GAAG;IACxB,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"}
|