@a11ign/screenreader-fleet 0.0.0-reserved.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +94 -2
  3. package/dist/capture-client.d.mts +49 -0
  4. package/dist/capture-client.d.mts.map +1 -0
  5. package/dist/capture-client.mjs +352 -0
  6. package/dist/capture-client.mjs.map +1 -0
  7. package/dist/check-worker-code.d.mts +34 -0
  8. package/dist/check-worker-code.d.mts.map +1 -0
  9. package/dist/check-worker-code.mjs +142 -0
  10. package/dist/check-worker-code.mjs.map +1 -0
  11. package/dist/cli-flags.d.mts +71 -0
  12. package/dist/cli-flags.d.mts.map +1 -0
  13. package/dist/cli-flags.mjs +207 -0
  14. package/dist/cli-flags.mjs.map +1 -0
  15. package/dist/code-drift.d.mts +140 -0
  16. package/dist/code-drift.d.mts.map +1 -0
  17. package/dist/code-drift.mjs +284 -0
  18. package/dist/code-drift.mjs.map +1 -0
  19. package/dist/command-line-census.d.mts +33 -0
  20. package/dist/command-line-census.d.mts.map +1 -0
  21. package/dist/command-line-census.mjs +96 -0
  22. package/dist/command-line-census.mjs.map +1 -0
  23. package/dist/compare-workers.d.mts +3 -0
  24. package/dist/compare-workers.d.mts.map +1 -0
  25. package/dist/compare-workers.mjs +332 -0
  26. package/dist/compare-workers.mjs.map +1 -0
  27. package/dist/control-plane-isolation.d.mts +45 -0
  28. package/dist/control-plane-isolation.d.mts.map +1 -0
  29. package/dist/control-plane-isolation.mjs +67 -0
  30. package/dist/control-plane-isolation.mjs.map +1 -0
  31. package/dist/deploy-worker.d.mts +3 -0
  32. package/dist/deploy-worker.d.mts.map +1 -0
  33. package/dist/deploy-worker.mjs +333 -0
  34. package/dist/deploy-worker.mjs.map +1 -0
  35. package/dist/doctor.d.mts +216 -0
  36. package/dist/doctor.d.mts.map +1 -0
  37. package/dist/doctor.mjs +962 -0
  38. package/dist/doctor.mjs.map +1 -0
  39. package/dist/fleet-consistency.d.mts +235 -0
  40. package/dist/fleet-consistency.d.mts.map +1 -0
  41. package/dist/fleet-consistency.mjs +436 -0
  42. package/dist/fleet-consistency.mjs.map +1 -0
  43. package/dist/fleet-env.d.mts +228 -0
  44. package/dist/fleet-env.d.mts.map +1 -0
  45. package/dist/fleet-env.mjs +509 -0
  46. package/dist/fleet-env.mjs.map +1 -0
  47. package/dist/fleet-scripts.d.mts +11 -0
  48. package/dist/fleet-scripts.d.mts.map +1 -0
  49. package/dist/fleet-scripts.mjs +41 -0
  50. package/dist/fleet-scripts.mjs.map +1 -0
  51. package/dist/git-safe-env.d.mts +10 -0
  52. package/dist/git-safe-env.d.mts.map +1 -0
  53. package/dist/git-safe-env.mjs +44 -0
  54. package/dist/git-safe-env.mjs.map +1 -0
  55. package/dist/guest-run.d.mts +26 -0
  56. package/dist/guest-run.d.mts.map +1 -0
  57. package/dist/guest-run.mjs +164 -0
  58. package/dist/guest-run.mjs.map +1 -0
  59. package/dist/host-address.d.mts +33 -0
  60. package/dist/host-address.d.mts.map +1 -0
  61. package/dist/host-address.mjs +105 -0
  62. package/dist/host-address.mjs.map +1 -0
  63. package/dist/host-capacity.d.mts +64 -0
  64. package/dist/host-capacity.d.mts.map +1 -0
  65. package/dist/host-capacity.mjs +152 -0
  66. package/dist/host-capacity.mjs.map +1 -0
  67. package/dist/host-metrics.d.mts +116 -0
  68. package/dist/host-metrics.d.mts.map +1 -0
  69. package/dist/host-metrics.mjs +201 -0
  70. package/dist/host-metrics.mjs.map +1 -0
  71. package/dist/index.d.ts +23 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +25 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/local-vm.d.ts +125 -0
  76. package/dist/local-vm.d.ts.map +1 -0
  77. package/dist/local-vm.js +360 -0
  78. package/dist/local-vm.js.map +1 -0
  79. package/dist/measure-guard.d.mts +34 -0
  80. package/dist/measure-guard.d.mts.map +1 -0
  81. package/dist/measure-guard.mjs +73 -0
  82. package/dist/measure-guard.mjs.map +1 -0
  83. package/dist/normalise-fleet.d.mts +2 -0
  84. package/dist/normalise-fleet.d.mts.map +1 -0
  85. package/dist/normalise-fleet.mjs +76 -0
  86. package/dist/normalise-fleet.mjs.map +1 -0
  87. package/dist/npm-cli-executable.d.mts +42 -0
  88. package/dist/npm-cli-executable.d.mts.map +1 -0
  89. package/dist/npm-cli-executable.mjs +159 -0
  90. package/dist/npm-cli-executable.mjs.map +1 -0
  91. package/dist/probe-outcome.d.mts +89 -0
  92. package/dist/probe-outcome.d.mts.map +1 -0
  93. package/dist/probe-outcome.mjs +104 -0
  94. package/dist/probe-outcome.mjs.map +1 -0
  95. package/dist/protocol-guard.d.mts +34 -0
  96. package/dist/protocol-guard.d.mts.map +1 -0
  97. package/dist/protocol-guard.mjs +121 -0
  98. package/dist/protocol-guard.mjs.map +1 -0
  99. package/dist/source-walk.d.mts +12 -0
  100. package/dist/source-walk.d.mts.map +1 -0
  101. package/dist/source-walk.mjs +56 -0
  102. package/dist/source-walk.mjs.map +1 -0
  103. package/dist/transient-fault.d.mts +6 -0
  104. package/dist/transient-fault.d.mts.map +1 -0
  105. package/dist/transient-fault.mjs +86 -0
  106. package/dist/transient-fault.mjs.map +1 -0
  107. package/dist/utm-deprecated.d.mts +6 -0
  108. package/dist/utm-deprecated.d.mts.map +1 -0
  109. package/dist/utm-deprecated.mjs +23 -0
  110. package/dist/utm-deprecated.mjs.map +1 -0
  111. package/dist/worker-code-check.d.mts +29 -0
  112. package/dist/worker-code-check.d.mts.map +1 -0
  113. package/dist/worker-code-check.mjs +85 -0
  114. package/dist/worker-code-check.mjs.map +1 -0
  115. package/dist/worker-health.d.mts +56 -0
  116. package/dist/worker-health.d.mts.map +1 -0
  117. package/dist/worker-health.mjs +73 -0
  118. package/dist/worker-health.mjs.map +1 -0
  119. package/dist/worker-http.d.mts +103 -0
  120. package/dist/worker-http.d.mts.map +1 -0
  121. package/dist/worker-http.mjs +277 -0
  122. package/dist/worker-http.mjs.map +1 -0
  123. package/dist/worker-stats.d.mts +66 -0
  124. package/dist/worker-stats.d.mts.map +1 -0
  125. package/dist/worker-stats.mjs +143 -0
  126. package/dist/worker-stats.mjs.map +1 -0
  127. package/package.json +96 -4
  128. package/src/local-worker/autounattend.xml +280 -0
  129. package/src/local-worker/build-vm.sh +218 -0
  130. package/src/local-worker/clone-worker.sh +141 -0
  131. package/src/local-worker/create-utm-vm.sh +202 -0
  132. package/src/local-worker/fetch-windows-iso.sh +238 -0
  133. package/src/local-worker/first-boot.cmd +58 -0
  134. package/src/local-worker/worker-ctl.sh +442 -0
  135. package/src/provisioning/README.md +28 -0
  136. package/src/provisioning/apply-foreground-lock-timeout.ps1 +71 -0
  137. package/src/provisioning/bare-metal/README.md +213 -0
  138. package/src/provisioning/bare-metal/a11y-bootstrap.service +58 -0
  139. package/src/provisioning/bare-metal/autounattend.xml +428 -0
  140. package/src/provisioning/bare-metal/serve-bootstrap.sh +86 -0
  141. package/src/provisioning/bootstrap-control-plane.sh +463 -0
  142. package/src/provisioning/bootstrap-windows-worker.ps1 +649 -0
  143. package/src/provisioning/build-lean-worker-image.ps1 +275 -0
  144. package/src/provisioning/diagnose-nvda-worker.ps1 +174 -0
  145. package/src/provisioning/provision-nvda-worker.ps1 +827 -0
  146. package/src/provisioning/set-display-mode.ps1 +411 -0
  147. package/src/provisioning/stamp-provision-revision.ps1 +184 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.mjs","sourceRoot":"","sources":["../src/doctor.mjs"],"names":[],"mappings":"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"}
@@ -0,0 +1,235 @@
1
+ /**
2
+ * Compare guests field by field.
3
+ *
4
+ * @param {Guest[]} guests
5
+ * @returns {{consistent: boolean, mismatches: Mismatch[], compared: number, fields: FieldCoverage,
6
+ * reportedOnly: ReportedDrift[]}}
7
+ * `compared` is how many guests the verdict is actually ABOUT -- #920. A guest with no `environment`
8
+ * and no `policy` is dropped below before comparing, so it is not the length of what was passed in,
9
+ * and a caller that reports `consistent` without it is stating agreement over a set it cannot name.
10
+ * `fields` is that same question one axis over: WHICH fields the verdict is about -- #1997.
11
+ * `reportedOnly` is the third channel (#2063): compared, named, and part of NEITHER of the two above,
12
+ * which is what makes it something to report rather than something to refuse.
13
+ */
14
+ export function fleetConsistency(guests: Guest[]): {
15
+ consistent: boolean;
16
+ mismatches: Mismatch[];
17
+ compared: number;
18
+ fields: FieldCoverage;
19
+ reportedOnly: ReportedDrift[];
20
+ };
21
+ /**
22
+ * One line per reported-only field that has something to say, in `describeMismatches`'s own shape.
23
+ *
24
+ * SEPARATE FROM `describeMismatches` rather than a flag on it, because the two lines make different
25
+ * claims and a reader has to be able to tell them apart at a glance: that one says the fleet is not
26
+ * usable for a capture run, this one says the fleet is not identical and the run may proceed anyway.
27
+ * Folding them would put the ruling's own distinction behind a boolean argument.
28
+ *
29
+ * @param {ReportedDrift[]} drifts
30
+ * @returns {string[]}
31
+ */
32
+ export function describeReportedOnly(drifts: ReportedDrift[]): string[];
33
+ /**
34
+ * One line per mismatch, naming the guests, so the report is actionable rather than just alarming.
35
+ *
36
+ * @param {Mismatch[]} mismatches
37
+ * @returns {string[]}
38
+ */
39
+ export function describeMismatches(mismatches: Mismatch[]): string[];
40
+ /**
41
+ * Are the guests actually interchangeable?
42
+ *
43
+ * The pool assumes they are. `captureAcrossPool` dispatches a case to whichever worker is free, the
44
+ * cache lets any guest reuse another's evidence, and a good/bad pair is only comparable because both
45
+ * halves came from equivalent machines. Every one of those assumptions is silently false the moment
46
+ * two guests differ.
47
+ *
48
+ * They did differ, twice in one day, and neither was caught by tooling:
49
+ *
50
+ * - Edge auto-updated to 151 on one guest while the others stayed on 150, despite the updater being
51
+ * policy-disabled. The cache key covers `browserVersion`, so evidence was not corrupted — but hit
52
+ * rates halved and the corpus became heterogeneous.
53
+ * - `StartupBoostEnabled` read 1 on two guests and 0 on a third. Nothing keys on that at all.
54
+ *
55
+ * The first was noticed by reading a boot log by eye; the second by a human looking at a screenshot of
56
+ * a guest console. Neither is a detection mechanism. This is.
57
+ *
58
+ * Deliberately NOT fatal. A run on slightly mismatched guests is worse than one on matched guests and
59
+ * far better than no run, and this project's rule is that a diagnostic must never be the thing that
60
+ * takes the pool offline. It reports; the operator decides.
61
+ */
62
+ /**
63
+ * Fields that must match across the fleet, and why each one matters.
64
+ *
65
+ * `workerCode` is absent on purpose: it changes when a comment changes, and the deploy tooling already
66
+ * verifies it against the checkout. Flagging it here would cry wolf on every reworded line.
67
+ */
68
+ export const MUST_MATCH: {
69
+ path: string;
70
+ why: string;
71
+ }[];
72
+ /**
73
+ * THE THIRD CHANNEL: fields that are COMPARED AND NAMED, and that gate nothing — #2063.
74
+ *
75
+ * `MUST_MATCH` above is a capture gate in both its channels. A disagreement there sets `consistent:
76
+ * false` and `capture-fleet-guard` exits 3; a field any compared guest fails to report lands in
77
+ * `fields.coverage` and, since #2047, exits 3 as well. So a field that belongs in the REPORT but must not
78
+ * refuse a run has nowhere to go in either — and adding it to one of them anyway is not a small
79
+ * mis-filing: `displayAdapter` reads one value on nine guests and another on the tenth, one letter apart,
80
+ * so a gate on it would refuse every capture on this fleet for ever.
81
+ *
82
+ * THIS CHANNEL IS A WAITING ROOM FOR SOME FIELDS AND A PERMANENT HOME FOR OTHERS, and the two must not be
83
+ * confused. `nodeVersion` was the first kind: `ceo` ruled the order on #2063, 2026-09-23 — **report it,
84
+ * then pin provisioning so the fleet converges, and only then may it join `MUST_MATCH`** — and #2170 is
85
+ * that last step, taken once the fleet read one runtime on all ten guests. `displayAdapter` is the
86
+ * second kind: the difference it reports is HARDWARE (`Intel(R) UHD Graphics 630` against
87
+ * `Intel(R) HD Graphics 630` on one box), so no provisioning run converges it and it can never graduate
88
+ * the way `nodeVersion` did. A field arriving here needs its exit named, or "not yet a gate" decays into
89
+ * "never looked at again".
90
+ *
91
+ * So these fields are compared exactly as the gating ones are, and their drift is named on the verdict
92
+ * line with each guest's value — but they contribute to NEITHER `mismatches` NOR `fields.coverage`, which
93
+ * are the only two things any gate reads. A fleet differing on one of them is `consistent: true`.
94
+ *
95
+ * A field NOBODY reports is `unreported` here rather than silent, which is the same distinction #1997
96
+ * drew for the gating fields: a field compared on nobody draws no values to disagree about and would
97
+ * otherwise read exactly like a field every guest agrees on. It is the state `displayAdapter` sat in
98
+ * until the worker carrying it was deployed on 2026-09-23, and the state any field added here starts in,
99
+ * and it must be readable as such without refusing anything.
100
+ */
101
+ export const REPORTED_ONLY: {
102
+ path: string;
103
+ why: string;
104
+ }[];
105
+ /**
106
+ * One field the guests disagree about, and the guests' values for it.
107
+ *
108
+ * Named once because it is produced by `fleetConsistency` and consumed by `describeMismatches`, and the
109
+ * two had already drifted apart the moment either was annotated — `object` on one side against
110
+ * `Record<string, unknown>` on the other, which typecheck caught in the test that calls them in sequence.
111
+ * Two spellings of one shape is the duplication this repo names as its most expensive recurring defect,
112
+ * and a typedef is the cheapest form of "delete a copy".
113
+ *
114
+ * @typedef {{field: string, why: string, values: Record<string, unknown>}} Mismatch
115
+ */
116
+ /** Edge policy values every guest must agree on, checked separately because they come from /diagnostics. */
117
+ export const POLICY_MUST_MATCH: string[];
118
+ /**
119
+ * Which fields the verdict is actually ABOUT -- #1997.
120
+ *
121
+ * `compared` NAMES the fields at least one guest reported a value for; `unchecked` names the ones that
122
+ * drew a value from NOBODY. The second list exists because `check()` below skips an absent value, which
123
+ * is right (a rolling deploy must not flag the guest it has not reached yet) and has a cost: a field no
124
+ * guest reports contributes no values, `new Set([]).size > 1` is false, and it reads as agreement.
125
+ * A field compared on nobody and a field equal on everybody produced the IDENTICAL verdict.
126
+ *
127
+ * Measured 2026-09-22T20:09Z on the live fleet, at the merge of #1953: nine fields at 10/10 guests and
128
+ * `displayMode` at 0/10, and `fleet:status` printed `fleet CONSISTENT across 10 of 10 -- these workers
129
+ * are interchangeable for capture`. The display was still not compared. Naming the two lists is what
130
+ * lets a reader tell "they agree" from "nobody was asked".
131
+ *
132
+ * `coverage` IS THE SAME QUESTION WITHOUT THE THRESHOLD -- #2019. The two lists above are a PARTITION on
133
+ * "did anybody report it", which answers 0-of-10 and says nothing about 1-of-10; `fleet:status` read the
134
+ * second as agreement about ten guests on the strength of one. So every asked field also carries how many
135
+ * of the asked guests actually reported it, and the verdict draws its own line. `compared`/`unchecked`
136
+ * stay because they are what a caller greps for the REMEDY -- a field at 0 sends a reader to the field,
137
+ * a field at k sends them to the boxes -- and `coverage` is the measurement both are derived from.
138
+ */
139
+ export type FieldReporters = {
140
+ field: string;
141
+ reported: number;
142
+ asked: number;
143
+ };
144
+ /**
145
+ * Which fields the verdict is actually ABOUT -- #1997.
146
+ *
147
+ * `compared` NAMES the fields at least one guest reported a value for; `unchecked` names the ones that
148
+ * drew a value from NOBODY. The second list exists because `check()` below skips an absent value, which
149
+ * is right (a rolling deploy must not flag the guest it has not reached yet) and has a cost: a field no
150
+ * guest reports contributes no values, `new Set([]).size > 1` is false, and it reads as agreement.
151
+ * A field compared on nobody and a field equal on everybody produced the IDENTICAL verdict.
152
+ *
153
+ * Measured 2026-09-22T20:09Z on the live fleet, at the merge of #1953: nine fields at 10/10 guests and
154
+ * `displayMode` at 0/10, and `fleet:status` printed `fleet CONSISTENT across 10 of 10 -- these workers
155
+ * are interchangeable for capture`. The display was still not compared. Naming the two lists is what
156
+ * lets a reader tell "they agree" from "nobody was asked".
157
+ *
158
+ * `coverage` IS THE SAME QUESTION WITHOUT THE THRESHOLD -- #2019. The two lists above are a PARTITION on
159
+ * "did anybody report it", which answers 0-of-10 and says nothing about 1-of-10; `fleet:status` read the
160
+ * second as agreement about ten guests on the strength of one. So every asked field also carries how many
161
+ * of the asked guests actually reported it, and the verdict draws its own line. `compared`/`unchecked`
162
+ * stay because they are what a caller greps for the REMEDY -- a field at 0 sends a reader to the field,
163
+ * a field at k sends them to the boxes -- and `coverage` is the measurement both are derived from.
164
+ */
165
+ export type FieldCoverage = {
166
+ compared: string[];
167
+ unchecked: string[];
168
+ coverage: FieldReporters[];
169
+ };
170
+ /**
171
+ * One reported-only field that has something to say, and WHICH thing it is saying — #2063.
172
+ *
173
+ * `drifted` is the guests giving more than one value; `unreported` is some or all of them giving none.
174
+ * Two states rather than a boolean because the REMEDY differs and the report has to name it: drift sends
175
+ * a reader to the provisioning pin, silence sends them to the worker deploy. Neither is a refusal.
176
+ *
177
+ * It carries `reported`/`asked` for the same reason `FieldReporters` does — a count is what lets a reader
178
+ * tell 0 of 10 from 9 of 10 — and the values map for the reason `Mismatch` does: drift detected and not
179
+ * located is not actionable.
180
+ */
181
+ export type ReportedDrift = {
182
+ field: string;
183
+ why: string;
184
+ values: Record<string, unknown>;
185
+ reported: number;
186
+ asked: number;
187
+ state: "drifted" | "unreported";
188
+ };
189
+ /**
190
+ * ONE FIELD READ ACROSS THE FLEET, before anybody decides what it means.
191
+ *
192
+ * Split out from `fleetConsistency` when the third channel arrived (#2063), because the READING and the
193
+ * CONSEQUENCE are two things and only the second differs between the channels: `MUST_MATCH` turns a
194
+ * reading into a mismatch and a coverage row, `REPORTED_ONLY` turns the same reading into a named drift
195
+ * that gates nothing. One reader means the two channels cannot drift apart in how they compare — a
196
+ * second copy of this loop is how a "reported-only" field would end up counted differently from a gating
197
+ * one and nobody would know which was right.
198
+ */
199
+ export type Guest = {
200
+ worker: string;
201
+ environment?: Record<string, unknown>;
202
+ policy?: Record<string, unknown>;
203
+ };
204
+ /**
205
+ * ONE FIELD READ ACROSS THE FLEET, before anybody decides what it means.
206
+ *
207
+ * Split out from `fleetConsistency` when the third channel arrived (#2063), because the READING and the
208
+ * CONSEQUENCE are two things and only the second differs between the channels: `MUST_MATCH` turns a
209
+ * reading into a mismatch and a coverage row, `REPORTED_ONLY` turns the same reading into a named drift
210
+ * that gates nothing. One reader means the two channels cannot drift apart in how they compare — a
211
+ * second copy of this loop is how a "reported-only" field would end up counted differently from a gating
212
+ * one and nobody would know which was right.
213
+ */
214
+ export type Reading = {
215
+ field: string;
216
+ why: string;
217
+ values: Record<string, unknown>;
218
+ reported: number;
219
+ asked: number;
220
+ };
221
+ /**
222
+ * One field the guests disagree about, and the guests' values for it.
223
+ *
224
+ * Named once because it is produced by `fleetConsistency` and consumed by `describeMismatches`, and the
225
+ * two had already drifted apart the moment either was annotated — `object` on one side against
226
+ * `Record<string, unknown>` on the other, which typecheck caught in the test that calls them in sequence.
227
+ * Two spellings of one shape is the duplication this repo names as its most expensive recurring defect,
228
+ * and a typedef is the cheapest form of "delete a copy".
229
+ */
230
+ export type Mismatch = {
231
+ field: string;
232
+ why: string;
233
+ values: Record<string, unknown>;
234
+ };
235
+ //# sourceMappingURL=fleet-consistency.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-consistency.d.mts","sourceRoot":"","sources":["../src/fleet-consistency.mjs"],"names":[],"mappings":"AAqUA;;;;;;;;;;;;GAYG;AACH,yCAVW,KAAK,EAAE,GACL;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAC9F,YAAY,EAAE,aAAa,EAAE,CAAA;CAAC,CAgClC;AAED;;;;;;;;;;GAUG;AACH,6CAHW,aAAa,EAAE,GACb,MAAM,EAAE,CAIpB;AAmBD;;;;;GAKG;AACH,+CAHW,QAAQ,EAAE,GACR,MAAM,EAAE,CAQpB;AAvZD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;GAKG;AACH;;;IA4EE;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH;;;IAeE;AAEF;;;;;;;;;;GAUG;AAEH,4GAA4G;AAC5G,yCAAkF;;;;;;;;;;;;;;;;;;;;;;6BAuBrE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC;;;;;;;;;;;;;;;;;;;;;;4BAChD;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAC;;;;;;;;;;;;4BAcrE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IACvF,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,YAAY,CAAA;CAAC;;;;;;;;;;;oBAavC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAC;;;;;;;;;;;sBACzF;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC;;;;;;;;;;uBAzD9F;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAC"}