instar 1.3.998 → 1.3.1000
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/dist/core/CapabilityMapper.d.ts +86 -0
- package/dist/core/CapabilityMapper.d.ts.map +1 -1
- package/dist/core/CapabilityMapper.js +129 -12
- package/dist/core/CapabilityMapper.js.map +1 -1
- package/package.json +1 -1
- package/skills/instar-dev/scripts/write-trace.mjs +106 -0
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.3.1000.md +60 -0
- package/upgrades/1.3.999.md +86 -0
- package/upgrades/side-effects/builtin-manifest-path.md +93 -0
- package/upgrades/side-effects/gate-installation-selfcheck.md +83 -0
|
@@ -54,6 +54,13 @@ export interface CapabilityMap {
|
|
|
54
54
|
agentEvolved: number;
|
|
55
55
|
userConfigured: number;
|
|
56
56
|
unmapped: number;
|
|
57
|
+
/**
|
|
58
|
+
* Whether the builtin manifest — the source of `instarProvided` provenance — was
|
|
59
|
+
* actually readable. When this is not `loaded`, a low `instarProvided` count means
|
|
60
|
+
* the provenance data is MISSING, not that the agent lacks builtin capabilities.
|
|
61
|
+
* Reported so an absent manifest can never be read as a finding about the agent.
|
|
62
|
+
*/
|
|
63
|
+
builtinManifest: 'loaded' | 'not-found' | 'unreadable';
|
|
57
64
|
};
|
|
58
65
|
domains: CapabilityDomain[];
|
|
59
66
|
_links: {
|
|
@@ -107,6 +114,48 @@ export interface DriftReport {
|
|
|
107
114
|
impact: string;
|
|
108
115
|
}>;
|
|
109
116
|
}
|
|
117
|
+
/** Outcome of a builtin-manifest load — see loadBuiltinManifestFrom(). */
|
|
118
|
+
export interface BuiltinManifestLoad {
|
|
119
|
+
entries: Record<string, BuiltinManifestEntry>;
|
|
120
|
+
state: 'loaded' | 'not-found' | 'unreadable';
|
|
121
|
+
path: string | null;
|
|
122
|
+
error: string | null;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Candidate locations for the generated builtin manifest, in resolution order, relative
|
|
126
|
+
* to the directory of the module doing the reading.
|
|
127
|
+
*
|
|
128
|
+
* WHY A LIST AND NOT ONE PATH. The manifest is generated by
|
|
129
|
+
* scripts/generate-builtin-manifest.cjs into `src/data/`, and package.json's `files`
|
|
130
|
+
* ships `src/data` — so the data IS published. But the reader resolved
|
|
131
|
+
* `__dirname/../data`, which is `src/data` in a SOURCE checkout and `dist/data` in a
|
|
132
|
+
* COMPILED install. `dist/data` does not exist: tsc does not copy .json, and nothing else
|
|
133
|
+
* writes it. Verified in a real install — dist/data/builtin-manifest.json ABSENT,
|
|
134
|
+
* src/data/builtin-manifest.json PRESENT (62,717 bytes).
|
|
135
|
+
*
|
|
136
|
+
* So the old path worked in every source checkout (hence every test) and failed in every
|
|
137
|
+
* deployed agent. Both layouts are enumerated rather than picking one, because a build
|
|
138
|
+
* step that copies the file into dist/ is a step that can be skipped — and this read must
|
|
139
|
+
* not depend on it.
|
|
140
|
+
*
|
|
141
|
+
* EXPORTED, and parameterised by `moduleDir`, so tests exercise THIS function rather than
|
|
142
|
+
* a copy of its logic. A test that reimplements the resolution it is checking cannot fail
|
|
143
|
+
* when the resolution changes — which is precisely the class of blindness this bug is
|
|
144
|
+
* made of.
|
|
145
|
+
*/
|
|
146
|
+
export declare function builtinManifestCandidates(moduleDir: string): string[];
|
|
147
|
+
/**
|
|
148
|
+
* Load the builtin manifest, reporting WHICH of the three outcomes occurred.
|
|
149
|
+
*
|
|
150
|
+
* The previous implementation returned a bare `{}` for all three — found-and-empty,
|
|
151
|
+
* not-found, and unparseable alike — so a deployed agent reporting zero builtin
|
|
152
|
+
* capabilities was indistinguishable from an agent that genuinely has none. That is the
|
|
153
|
+
* same shape as `catch { return []; }`: an absence rendered as a confident answer.
|
|
154
|
+
*
|
|
155
|
+
* This stays a SIGNAL: a missing manifest still yields an empty entry set and the map
|
|
156
|
+
* still builds. Nothing here throws in production.
|
|
157
|
+
*/
|
|
158
|
+
export declare function loadBuiltinManifestFrom(moduleDir: string): BuiltinManifestLoad;
|
|
110
159
|
export interface BuiltinManifestEntry {
|
|
111
160
|
id: string;
|
|
112
161
|
type: string;
|
|
@@ -128,11 +177,19 @@ export interface CapabilityMapperConfig {
|
|
|
128
177
|
export declare class CapabilityMapper {
|
|
129
178
|
private config;
|
|
130
179
|
private builtinManifest;
|
|
180
|
+
/** How the builtin manifest load actually went — see loadBuiltinManifest(). */
|
|
181
|
+
private builtinManifestState;
|
|
131
182
|
private integrity;
|
|
132
183
|
private isRefreshing;
|
|
133
184
|
private lastMap;
|
|
134
185
|
private lastRefreshTime;
|
|
135
186
|
constructor(config: CapabilityMapperConfig);
|
|
187
|
+
/**
|
|
188
|
+
* Whether the builtin manifest actually loaded, for callers that must not read an
|
|
189
|
+
* empty capability set as a finding. `not-found`/`unreadable` mean the provenance
|
|
190
|
+
* data is MISSING, not that the agent has no builtin capabilities.
|
|
191
|
+
*/
|
|
192
|
+
getBuiltinManifestState(): 'loaded' | 'not-found' | 'unreadable';
|
|
136
193
|
/**
|
|
137
194
|
* Perform a full scan and return the capability map.
|
|
138
195
|
* Persists the manifest with HMAC signing.
|
|
@@ -178,6 +235,35 @@ export declare class CapabilityMapper {
|
|
|
178
235
|
private get manifestPath();
|
|
179
236
|
private persistManifest;
|
|
180
237
|
private loadPersistedManifest;
|
|
238
|
+
/**
|
|
239
|
+
* Candidate locations for the generated builtin manifest, in resolution order.
|
|
240
|
+
*
|
|
241
|
+
* WHY A LIST AND NOT ONE PATH. The manifest is generated by
|
|
242
|
+
* scripts/generate-builtin-manifest.cjs into `src/data/`, and package.json's `files`
|
|
243
|
+
* ships `src/data` — so the data IS published. But the reader resolved
|
|
244
|
+
* `__dirname/../data`, which is `src/data` in a SOURCE checkout and `dist/data` in a
|
|
245
|
+
* COMPILED install. `dist/data` does not exist: tsc does not copy .json, and nothing
|
|
246
|
+
* else writes it. Verified in a real install — dist/data/builtin-manifest.json ABSENT,
|
|
247
|
+
* src/data/builtin-manifest.json PRESENT (62,717 bytes).
|
|
248
|
+
*
|
|
249
|
+
* So the old path worked in every source checkout (hence every test) and failed in
|
|
250
|
+
* every deployed agent. Both layouts are enumerated here rather than picking one,
|
|
251
|
+
* because a build step that copies the file into dist/ is a step that can be skipped —
|
|
252
|
+
* and this read must not depend on it.
|
|
253
|
+
*/
|
|
254
|
+
private builtinManifestCandidates;
|
|
255
|
+
/**
|
|
256
|
+
* Load the builtin manifest, reporting WHICH of the three outcomes occurred.
|
|
257
|
+
*
|
|
258
|
+
* The previous implementation returned a bare `{}` for all three — found-and-empty,
|
|
259
|
+
* not-found, and unparseable — so a deployed agent reporting zero builtin capabilities
|
|
260
|
+
* was indistinguishable from an agent that genuinely has none. That is the same shape
|
|
261
|
+
* as `catch { return []; }`: an absence rendered as a confident answer. The state is
|
|
262
|
+
* returned alongside the entries so a caller can tell the difference.
|
|
263
|
+
*
|
|
264
|
+
* This stays a SIGNAL: a missing manifest still yields an empty entry set and the map
|
|
265
|
+
* still builds. Nothing here throws in production.
|
|
266
|
+
*/
|
|
181
267
|
private loadBuiltinManifest;
|
|
182
268
|
private loadEvolutionProposals;
|
|
183
269
|
private hashContent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CapabilityMapper.d.ts","sourceRoot":"","sources":["../../src/core/CapabilityMapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAIhE,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,OAAO,GACP,KAAK,GACL,MAAM,GACN,QAAQ,GACR,KAAK,GACL,WAAW,GACX,SAAS,GACT,YAAY,CAAC;AAEjB,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC7F,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;AAE/E,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE;QACP,iBAAiB,EAAE,MAAM,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"CapabilityMapper.d.ts","sourceRoot":"","sources":["../../src/core/CapabilityMapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,89 @@ import * as path from 'path';
|
|
|
18
18
|
import * as crypto from 'crypto';
|
|
19
19
|
import { fileURLToPath } from 'node:url';
|
|
20
20
|
import { ManifestIntegrity } from '../security/ManifestIntegrity.js';
|
|
21
|
+
/**
|
|
22
|
+
* Candidate locations for the generated builtin manifest, in resolution order, relative
|
|
23
|
+
* to the directory of the module doing the reading.
|
|
24
|
+
*
|
|
25
|
+
* WHY A LIST AND NOT ONE PATH. The manifest is generated by
|
|
26
|
+
* scripts/generate-builtin-manifest.cjs into `src/data/`, and package.json's `files`
|
|
27
|
+
* ships `src/data` — so the data IS published. But the reader resolved
|
|
28
|
+
* `__dirname/../data`, which is `src/data` in a SOURCE checkout and `dist/data` in a
|
|
29
|
+
* COMPILED install. `dist/data` does not exist: tsc does not copy .json, and nothing else
|
|
30
|
+
* writes it. Verified in a real install — dist/data/builtin-manifest.json ABSENT,
|
|
31
|
+
* src/data/builtin-manifest.json PRESENT (62,717 bytes).
|
|
32
|
+
*
|
|
33
|
+
* So the old path worked in every source checkout (hence every test) and failed in every
|
|
34
|
+
* deployed agent. Both layouts are enumerated rather than picking one, because a build
|
|
35
|
+
* step that copies the file into dist/ is a step that can be skipped — and this read must
|
|
36
|
+
* not depend on it.
|
|
37
|
+
*
|
|
38
|
+
* EXPORTED, and parameterised by `moduleDir`, so tests exercise THIS function rather than
|
|
39
|
+
* a copy of its logic. A test that reimplements the resolution it is checking cannot fail
|
|
40
|
+
* when the resolution changes — which is precisely the class of blindness this bug is
|
|
41
|
+
* made of.
|
|
42
|
+
*/
|
|
43
|
+
export function builtinManifestCandidates(moduleDir) {
|
|
44
|
+
return [
|
|
45
|
+
// Source checkout: src/core → src/data. Also an installed layout IF a build ever
|
|
46
|
+
// copies the manifest into dist/data.
|
|
47
|
+
path.join(moduleDir, '..', 'data', 'builtin-manifest.json'),
|
|
48
|
+
// Installed package: dist/core → <packageRoot>/src/data (what `files` actually ships).
|
|
49
|
+
path.join(moduleDir, '..', '..', 'src', 'data', 'builtin-manifest.json'),
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Load the builtin manifest, reporting WHICH of the three outcomes occurred.
|
|
54
|
+
*
|
|
55
|
+
* The previous implementation returned a bare `{}` for all three — found-and-empty,
|
|
56
|
+
* not-found, and unparseable alike — so a deployed agent reporting zero builtin
|
|
57
|
+
* capabilities was indistinguishable from an agent that genuinely has none. That is the
|
|
58
|
+
* same shape as `catch { return []; }`: an absence rendered as a confident answer.
|
|
59
|
+
*
|
|
60
|
+
* This stays a SIGNAL: a missing manifest still yields an empty entry set and the map
|
|
61
|
+
* still builds. Nothing here throws in production.
|
|
62
|
+
*/
|
|
63
|
+
export function loadBuiltinManifestFrom(moduleDir) {
|
|
64
|
+
for (const manifestPath of builtinManifestCandidates(moduleDir)) {
|
|
65
|
+
let raw;
|
|
66
|
+
try {
|
|
67
|
+
if (!fs.existsSync(manifestPath))
|
|
68
|
+
continue;
|
|
69
|
+
raw = fs.readFileSync(manifestPath, 'utf-8');
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
// Present but unreadable (permissions, a truncated write) — a real failure, and NOT
|
|
73
|
+
// the same as absent. Reported rather than falling through to the next candidate,
|
|
74
|
+
// which would hide it behind a second miss.
|
|
75
|
+
//
|
|
76
|
+
// @silent-fallback-ok — this is the OPPOSITE of a silent fallback and is the point
|
|
77
|
+
// of this change. The exception is converted into an explicit, observable
|
|
78
|
+
// `unreadable` state carrying the path and the error message, surfaced to callers as
|
|
79
|
+
// `summary.builtinManifest`. The code this replaced was the genuine silent fallback:
|
|
80
|
+
// `catch { /* fall through */ } return {}`, which made an unreadable manifest
|
|
81
|
+
// indistinguishable from an agent with no builtin capabilities.
|
|
82
|
+
return {
|
|
83
|
+
entries: {}, state: 'unreadable', path: manifestPath,
|
|
84
|
+
error: err instanceof Error ? err.message : String(err),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
const data = JSON.parse(raw);
|
|
89
|
+
return { entries: data.entries ?? {}, state: 'loaded', path: manifestPath, error: null };
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
// @silent-fallback-ok — same rationale as the read catch above: a parse failure
|
|
93
|
+
// becomes an explicit `unreadable` state with the offending path and the parse
|
|
94
|
+
// error, not a swallowed exception. The whole purpose of this function is that
|
|
95
|
+
// "could not read it" and "it was empty" stop being the same answer.
|
|
96
|
+
return {
|
|
97
|
+
entries: {}, state: 'unreadable', path: manifestPath,
|
|
98
|
+
error: err instanceof Error ? err.message : String(err),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return { entries: {}, state: 'not-found', path: null, error: null };
|
|
103
|
+
}
|
|
21
104
|
// ── Domain Definitions ───────────────────────────────────────────────
|
|
22
105
|
const DOMAINS = {
|
|
23
106
|
communication: {
|
|
@@ -65,15 +148,27 @@ const DOMAINS = {
|
|
|
65
148
|
export class CapabilityMapper {
|
|
66
149
|
config;
|
|
67
150
|
builtinManifest;
|
|
151
|
+
/** How the builtin manifest load actually went — see loadBuiltinManifest(). */
|
|
152
|
+
builtinManifestState;
|
|
68
153
|
integrity;
|
|
69
154
|
isRefreshing = false;
|
|
70
155
|
lastMap = null;
|
|
71
156
|
lastRefreshTime = null;
|
|
72
157
|
constructor(config) {
|
|
73
158
|
this.config = config;
|
|
74
|
-
|
|
159
|
+
const manifest = this.loadBuiltinManifest();
|
|
160
|
+
this.builtinManifest = manifest.entries;
|
|
161
|
+
this.builtinManifestState = manifest.state;
|
|
75
162
|
this.integrity = new ManifestIntegrity(path.join(config.stateDir, 'state'));
|
|
76
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Whether the builtin manifest actually loaded, for callers that must not read an
|
|
166
|
+
* empty capability set as a finding. `not-found`/`unreadable` mean the provenance
|
|
167
|
+
* data is MISSING, not that the agent has no builtin capabilities.
|
|
168
|
+
*/
|
|
169
|
+
getBuiltinManifestState() {
|
|
170
|
+
return this.builtinManifestState;
|
|
171
|
+
}
|
|
77
172
|
// ── Public API ───────────────────────────────────────────────────
|
|
78
173
|
/**
|
|
79
174
|
* Perform a full scan and return the capability map.
|
|
@@ -689,6 +784,7 @@ export class CapabilityMapper {
|
|
|
689
784
|
agentEvolved: allCaps.filter(c => c.provenance === 'agent').length,
|
|
690
785
|
userConfigured: allCaps.filter(c => c.provenance === 'user').length,
|
|
691
786
|
unmapped: allCaps.filter(c => c.provenance === 'unknown').length,
|
|
787
|
+
builtinManifest: this.builtinManifestState,
|
|
692
788
|
};
|
|
693
789
|
const domainLinks = {};
|
|
694
790
|
for (const d of domains) {
|
|
@@ -848,18 +944,39 @@ export class CapabilityMapper {
|
|
|
848
944
|
}
|
|
849
945
|
}
|
|
850
946
|
// ── Helpers ──────────────────────────────────────────────────────
|
|
947
|
+
/**
|
|
948
|
+
* Candidate locations for the generated builtin manifest, in resolution order.
|
|
949
|
+
*
|
|
950
|
+
* WHY A LIST AND NOT ONE PATH. The manifest is generated by
|
|
951
|
+
* scripts/generate-builtin-manifest.cjs into `src/data/`, and package.json's `files`
|
|
952
|
+
* ships `src/data` — so the data IS published. But the reader resolved
|
|
953
|
+
* `__dirname/../data`, which is `src/data` in a SOURCE checkout and `dist/data` in a
|
|
954
|
+
* COMPILED install. `dist/data` does not exist: tsc does not copy .json, and nothing
|
|
955
|
+
* else writes it. Verified in a real install — dist/data/builtin-manifest.json ABSENT,
|
|
956
|
+
* src/data/builtin-manifest.json PRESENT (62,717 bytes).
|
|
957
|
+
*
|
|
958
|
+
* So the old path worked in every source checkout (hence every test) and failed in
|
|
959
|
+
* every deployed agent. Both layouts are enumerated here rather than picking one,
|
|
960
|
+
* because a build step that copies the file into dist/ is a step that can be skipped —
|
|
961
|
+
* and this read must not depend on it.
|
|
962
|
+
*/
|
|
963
|
+
builtinManifestCandidates() {
|
|
964
|
+
return builtinManifestCandidates(path.dirname(fileURLToPath(import.meta.url)));
|
|
965
|
+
}
|
|
966
|
+
/**
|
|
967
|
+
* Load the builtin manifest, reporting WHICH of the three outcomes occurred.
|
|
968
|
+
*
|
|
969
|
+
* The previous implementation returned a bare `{}` for all three — found-and-empty,
|
|
970
|
+
* not-found, and unparseable — so a deployed agent reporting zero builtin capabilities
|
|
971
|
+
* was indistinguishable from an agent that genuinely has none. That is the same shape
|
|
972
|
+
* as `catch { return []; }`: an absence rendered as a confident answer. The state is
|
|
973
|
+
* returned alongside the entries so a caller can tell the difference.
|
|
974
|
+
*
|
|
975
|
+
* This stays a SIGNAL: a missing manifest still yields an empty entry set and the map
|
|
976
|
+
* still builds. Nothing here throws in production.
|
|
977
|
+
*/
|
|
851
978
|
loadBuiltinManifest() {
|
|
852
|
-
|
|
853
|
-
// Try loading from the installed package first
|
|
854
|
-
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
855
|
-
const manifestPath = path.join(__dirname, '..', 'data', 'builtin-manifest.json');
|
|
856
|
-
if (fs.existsSync(manifestPath)) {
|
|
857
|
-
const data = JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
|
|
858
|
-
return data.entries ?? {};
|
|
859
|
-
}
|
|
860
|
-
}
|
|
861
|
-
catch { /* fall through */ }
|
|
862
|
-
return {};
|
|
979
|
+
return loadBuiltinManifestFrom(path.dirname(fileURLToPath(import.meta.url)));
|
|
863
980
|
}
|
|
864
981
|
loadEvolutionProposals() {
|
|
865
982
|
const map = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CapabilityMapper.js","sourceRoot":"","sources":["../../src/core/CapabilityMapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CapabilityMapper.js","sourceRoot":"","sources":["../../src/core/CapabilityMapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAqHrE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAAiB;IACzD,OAAO;QACL,iFAAiF;QACjF,sCAAsC;QACtC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,uBAAuB,CAAC;QAC3D,uFAAuF;QACvF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,CAAC;KACzE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAiB;IACvD,KAAK,MAAM,YAAY,IAAI,yBAAyB,CAAC,SAAS,CAAC,EAAE,CAAC;QAChE,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;gBAAE,SAAS;YAC3C,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,oFAAoF;YACpF,kFAAkF;YAClF,4CAA4C;YAC5C,EAAE;YACF,mFAAmF;YACnF,0EAA0E;YAC1E,qFAAqF;YACrF,qFAAqF;YACrF,8EAA8E;YAC9E,gEAAgE;YAChE,OAAO;gBACL,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY;gBACpD,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,gFAAgF;YAChF,+EAA+E;YAC/E,+EAA+E;YAC/E,qEAAqE;YACrE,OAAO;gBACL,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY;gBACpD,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACtE,CAAC;AAsBD,wEAAwE;AAExE,MAAM,OAAO,GAA0D;IACrE,aAAa,EAAE;QACb,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,sDAAsD;KACpE;IACD,MAAM,EAAE;QACN,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,iEAAiE;KAC/E;IACD,UAAU,EAAE;QACV,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,yDAAyD;KACvE;IACD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,gEAAgE;KAC9E;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,sDAAsD;KACpE;IACD,SAAS,EAAE;QACT,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,gDAAgD;KAC9D;IACD,UAAU,EAAE;QACV,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,qDAAqD;KACnE;IACD,cAAc,EAAE;QACd,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,kDAAkD;KAChE;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,yDAAyD;KACvE;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,0DAA0D;KACxE;CACF,CAAC;AAEF,wEAAwE;AAExE,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAyB;IAC/B,eAAe,CAAuC;IAC9D,+EAA+E;IACvE,oBAAoB,CAAwC;IAC5D,SAAS,CAAoB;IAC7B,YAAY,GAAG,KAAK,CAAC;IACrB,OAAO,GAAyB,IAAI,CAAC;IACrC,eAAe,GAAkB,IAAI,CAAC;IAE9C,YAAY,MAA8B;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC5C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED;;;;OAIG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,oEAAoE;IAEpE;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEnC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YACnB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,WAAW,CAAC;YAEvC,OAAO,GAAG,CAAC;QACb,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,QAAQ,EAAE,WAAW,IAAI,OAAO,CAAC;QACtD,MAAM,UAAU,GAA8B,EAAE,CAAC;QAEjD,IAAI,OAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,YAAY;gBACZ,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;aACjF,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,eAAe,GAAG,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;QAEhD,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,yBAAyB;QACzB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChB,SAAS;YACX,CAAC;YACD,4BAA4B;YAC5B,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;gBAChF,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,KAAK,EAAE,aAAa;oBACpB,QAAQ,EAAE,IAAI,CAAC,WAAW;oBAC1B,OAAO,EAAE,GAAG,CAAC,WAAW;iBACzB,CAAC,CAAC;YACL,CAAC;YACD,0BAA0B;YAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE,IAAI,CAAC,UAAU;oBACzB,OAAO,EAAE,GAAG,CAAC,UAAU;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,eAAe;QACf,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO;YACL,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,YAAY;YACZ,KAAK;YACL,OAAO;YACP,OAAO;YACP,QAAQ;YACR,UAAU;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,GAAkB,EAAE,QAAuB,CAAC;QACzD,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe;YACrC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;YAC5E,CAAC,CAAC,CAAC,CAAC,CAAC;QACP,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;IACtE,CAAC;IAED,oEAAoE;IAE5D,KAAK,CAAC,IAAI;QAChB,MAAM,IAAI,GAAiB,EAAE,CAAC;QAC9B,MAAM,MAAM,GAA6C,EAAE,CAAC;QAE5D,oDAAoD;QACpD,MAAM,QAAQ,GAAwC;YACpD,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9C,CAAC;QAEF,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,UAAU;QAChB,MAAM,IAAI,GAAiB,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAE3C,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACzC,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS;YAEtC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEvC,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAE9C,IAAI,CAAC,IAAI,CAAC;gBACR,EAAE;gBACF,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,MAAM;gBAChC,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC;gBACrE,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,SAAS,EAAE,mBAAmB;gBAC1C,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpE,WAAW,EAAE,CAAC,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC1D,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,CAAC,kBAAkB,MAAM,WAAW,CAAC;aAC7C,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,WAAW;QACjB,MAAM,IAAI,GAAiB,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QAE5C,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;gBAAE,SAAS;YAElD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACvC,MAAM,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAE9C,IAAI,CAAC,IAAI,CAAC;gBACR,EAAE;gBACF,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC;gBACpE,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,SAAS;gBACrB,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpE,WAAW,EAAE,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC;gBACnD,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,CAAC,mBAAmB,IAAI,EAAE,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,SAAS;QACf,MAAM,IAAI,GAAiB,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC;QAE3C,wCAAwC;QACxC,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAElC,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACtC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;oBAAE,SAAS;gBAElD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACnD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACvC,MAAM,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;gBAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBAE9C,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE;oBACF,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC;oBAClE,MAAM,EAAE,QAAQ;oBAChB,UAAU,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;oBACtD,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACpE,WAAW,EAAE,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC;oBACnD,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,IAAI;oBACjB,KAAK,EAAE,CAAC,iBAAiB,MAAM,IAAI,IAAI,EAAE,CAAC;iBAC3C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;YAC1B,4CAA4C;YAC5C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;gBAAE,SAAS;YAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAE9C,IAAI,CAAC,IAAI,CAAC;gBACR,EAAE;gBACF,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,gBAAgB;gBAChD,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,SAAS;gBACrB,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpE,WAAW,EAAE,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC;gBACnD,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,CAAC,iBAAiB,IAAI,EAAE,CAAC;aACjC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,QAAQ;QACd,MAAM,IAAI,GAAiB,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,IAAI;oBAAE,SAAS;gBACxB,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBAE9C,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE;oBACF,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI;oBAC1B,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC;oBACrE,MAAM,EAAE,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;oBACrD,UAAU,EAAE,SAAS;oBACrB,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACpE,WAAW,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oBAClD,IAAI,EAAE,KAAK;oBACX,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;iBACnD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAEnC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,cAAc;QACpB,MAAM,IAAI,GAAiB,EAAE,CAAC;QAE9B,4DAA4D;QAC5D,MAAM,eAAe,GAMhB;YACH;gBACE,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,eAAe;gBACvB,KAAK,EAAE,GAAG,EAAE;oBACV,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAC7C,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;wBAChE,OAAO,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;oBACzF,CAAC;oBAAC,MAAM,CAAC;wBAAC,OAAO,KAAK,CAAC;oBAAC,CAAC;gBAC3B,CAAC;gBACD,WAAW,EAAE,2DAA2D;aACzE;YACD;gBACE,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,YAAY;gBACpB,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gBACxE,WAAW,EAAE,iDAAiD;aAC/D;YACD;gBACE,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;gBACjF,WAAW,EAAE,4DAA4D;aAC1E;YACD;gBACE,EAAE,EAAE,2BAA2B;gBAC/B,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,gBAAgB;gBACxB,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,iBAAiB;gBACpC,WAAW,EAAE,gDAAgD;aAC9D;YACD;gBACE,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,gBAAgB;gBACxB,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;gBACjB,WAAW,EAAE,iDAAiD;aAC/D;YACD;gBACE,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,GAAG,EAAE;oBACV,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAC7C,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;wBAChE,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;oBAChC,CAAC;oBAAC,MAAM,CAAC;wBAAC,OAAO,KAAK,CAAC;oBAAC,CAAC;gBAC3B,CAAC;gBACD,WAAW,EAAE,0DAA0D;aACxE;YACD;gBACE,EAAE,EAAE,wBAAwB;gBAC5B,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;uBACzE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACnE,WAAW,EAAE,iDAAiD;aAC/D;YACD;gBACE,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,YAAY;gBACpB,KAAK,EAAE,GAAG,EAAE;oBACV,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAC7C,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;wBAChE,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC7B,CAAC;oBAAC,MAAM,CAAC;wBAAC,OAAO,KAAK,CAAC;oBAAC,CAAC;gBAC3B,CAAC;gBACD,WAAW,EAAE,iEAAiE;aAC/E;YACD;gBACE,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,YAAY;gBACpB,KAAK,EAAE,GAAG,EAAE;oBACV,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAC7C,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;wBAChE,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;oBACtC,CAAC;oBAAC,MAAM,CAAC;wBAAC,OAAO,KAAK,CAAC;oBAAC,CAAC;gBAC3B,CAAC;gBACD,WAAW,EAAE,8CAA8C;aAC5D;YACD;gBACE,EAAE,EAAE,wBAAwB;gBAC5B,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,gBAAgB;gBACxB,KAAK,EAAE,GAAG,EAAE;oBACV,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAC7C,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;wBAChE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;oBAC1B,CAAC;oBAAC,MAAM,CAAC;wBAAC,OAAO,KAAK,CAAC;oBAAC,CAAC;gBAC3B,CAAC;gBACD,WAAW,EAAE,2DAA2D;aACzE;YACD;gBACE,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACvE,WAAW,EAAE,0DAA0D;aACxE;YACD;gBACE,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,eAAe;gBACvB,KAAK,EAAE,GAAG,EAAE;oBACV,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAC7C,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;wBAChE,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC;oBACpC,CAAC;oBAAC,MAAM,CAAC;wBAAC,OAAO,KAAK,CAAC;oBAAC,CAAC;gBAC3B,CAAC;gBACD,WAAW,EAAE,0CAA0C;aACxD;YACD;gBACE,EAAE,EAAE,kBAAkB;gBACtB,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,gBAAgB;gBACxB,KAAK,EAAE,GAAG,EAAE;oBACV,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;oBAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAC7C,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;wBAChE,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBAClC,CAAC;oBAAC,MAAM,CAAC;wBAAC,OAAO,KAAK,CAAC;oBAAC,CAAC;gBAC3B,CAAC;gBACD,WAAW,EAAE,2CAA2C;aACzD;SACF,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAElD,IAAI,CAAC,IAAI,CAAC;gBACR,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,GAAG,CAAC,MAAM;gBAC1C,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;gBACvC,UAAU,EAAE,SAAS;gBACrB,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,YAAY;gBAC1C,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,IAAI,EAAE,WAAW;aAClB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,mBAAmB;QACzB,MAAM,IAAI,GAAiB,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QAE5C,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAExE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACvC,MAAM,EAAE,GAAG,WAAW,IAAI,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAE9C,qDAAqD;YACrD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;YAEzF,IAAI,CAAC,IAAI,CAAC;gBACR,EAAE;gBACF,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,UAAU;gBAC1C,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,SAAS;gBACrB,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpE,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,CAAC,mBAAmB,IAAI,EAAE,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oEAAoE;IAEpE;;;OAGG;IACK,QAAQ,CAAC,YAA0B;QACzC,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEzD,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC5B,+CAA+C;YAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,YAAY,EAAE,CAAC;gBACjB,4CAA4C;gBAC5C,IAAI,GAAG,CAAC,WAAW,IAAI,YAAY,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;oBAChG,OAAO,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,WAAyB,EAAE,CAAC;gBAC3D,CAAC;gBACD,OAAO,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,QAAsB,EAAE,CAAC;YACxD,CAAC;YAED,yCAAyC;YACzC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAC1D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAc,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CACnG,CAAC;gBACF,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC;wBAC9F,OAAO,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,WAAyB,EAAE,CAAC;oBAC3D,CAAC;oBACD,OAAO,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,QAAsB,EAAE,CAAC;gBACxD,CAAC;YACH,CAAC;YAED,6BAA6B;YAC7B,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,OAAqB,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;YACnF,CAAC;YAED,wCAAwC;YACxC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBACxE,OAAO,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,OAAqB,EAAE,CAAC;YACvD,CAAC;YAED,sEAAsE;YACtE,4EAA4E;YAC5E,8EAA8E;YAC9E,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,MAAoB,EAAE,CAAC;YACtD,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oEAAoE;IAE5D,SAAS,CAAC,YAA0B;QAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAC;QAElD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,IAAI,gBAAgB,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,yBAAyB,EAAE,EAAE,EAAE,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE;gBACF,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC/D,YAAY,EAAE,IAAI,CAAC,MAAM;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,kEAAkE;QAClE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC3C,IAAI,EAAE,KAAK,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC;YACzB,IAAI,EAAE,KAAK,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;YACxB,OAAO,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oEAAoE;IAE5D,QAAQ,CAAC,OAA2B;QAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,MAAM,OAAO,GAAG;YACd,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,MAAM;YACrE,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,MAAM;YAClE,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,MAAM;YACnE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,MAAM;YAChE,eAAe,EAAE,IAAI,CAAC,oBAAoB;SAC3C,CAAC;QAEF,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC;QAChD,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YAC9B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,WAAW,EAAE,GAAG;YAChB,OAAO;YACP,OAAO;YACP,MAAM,EAAE;gBACN,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,gCAAgC;gBACzC,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,yBAAyB;gBAClC,OAAO,EAAE,WAAW;aACrB;YACD,SAAS,EAAE;gBACT,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,GAAG;aACjB;SACF,CAAC;IACJ,CAAC;IAED,oEAAoE;IAE5D,qBAAqB,CAAC,GAAkB;QAC9C,MAAM,KAAK,GAAa;YACtB,sBAAsB,GAAG,CAAC,KAAK,EAAE;YACjC,cAAc,GAAG,CAAC,WAAW,aAAa,GAAG,CAAC,OAAO,MAAM,GAAG,CAAC,OAAO,CAAC,iBAAiB,wBAAwB,GAAG,CAAC,OAAO,CAAC,OAAO,UAAU;YAC7I,EAAE;YACF,qDAAqD;YACrD,qDAAqD;SACtD,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;YACjH,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;YAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;YAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC;YAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM,CAAC;YACjF,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,MAAM,MAAM,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,MAAM,IAAI,CAAC,CAAC;QAC3F,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAEhF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,oBAAoB,CAAC,GAAkB;QAC7C,MAAM,KAAK,GAAa;YACtB,sBAAsB,GAAG,CAAC,KAAK,EAAE;YACjC,cAAc,GAAG,CAAC,WAAW,aAAa,GAAG,CAAC,OAAO,EAAE;YACvD,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,kBAAkB,GAAG,CAAC,OAAO,CAAC,cAAc,YAAY,GAAG,CAAC,OAAO,CAAC,YAAY,WAAW,GAAG,CAAC,OAAO,CAAC,cAAc,UAAU,GAAG,CAAC,OAAO,CAAC,QAAQ,WAAW;YAC9L,EAAE;SACH,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,YAAY,gBAAgB,CAAC,CAAC;YACtE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YAEjE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,GAAG,CAAC,iBAAiB;oBAChC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,iBAAiB,GAAG;oBAChD,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,MAAM,MAAM,IAAI,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;YACvF,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,kBAAkB,CAAC,GAAkB;QAC3C,MAAM,KAAK,GAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzD,yCAAyC;QACzC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,UAAU,WAAW,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;gBACvE,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1C,IAAI,GAAG,CAAC,WAAW;oBAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;gBACzE,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM;oBAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtF,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM;oBAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1E,IAAI,GAAG,CAAC,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;gBAChE,IAAI,GAAG,CAAC,cAAc;oBAAE,KAAK,CAAC,IAAI,CAAC,0BAA0B,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;gBACnF,IAAI,GAAG,CAAC,iBAAiB;oBAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBACnF,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM;oBAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,oEAAoE;IAEpE,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,0BAA0B,CAAC,CAAC;IAC9E,CAAC;IAEO,eAAe,CAAC,YAA0B;QAChD,MAAM,OAAO,GAAkC,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE9C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;gBAChB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACtD,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACtC,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;gBACxC,oBAAoB,EAAE,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAwB;oBAC1E,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,wCAAwC;wBAC3E,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,kBAAkB;4BACjH,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,8BAA8B;gCAC5D,CAAC,CAAC,SAAS;aACd,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAuB;YACnC,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,OAAO;SACR,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvC,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,QAA8C,CAAC,CAAC;QACjG,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;YAC5C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAuB,CAAC;YAE3D,4BAA4B;YAC5B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAA8C,CAAC,CAAC;gBACvF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAChC,2CAA2C;oBAC3C,qDAAqD;oBACrD,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;gBACrF,CAAC;YACH,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,oEAAoE;IAEpE;;;;;;;;;;;;;;;OAeG;IACK,yBAAyB;QAC/B,OAAO,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;;;;;;OAWG;IACK,mBAAmB;QACzB,OAAO,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IAEO,sBAAsB;QAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;QAE5D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,GAAG,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC/B,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;wBACvC,6DAA6D;wBAC7D,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;4BACpC,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gCACzB,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;oCAClC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gCAChD,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;QAE/B,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,WAAW,CAAC,OAAe;QACjC,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;IAEO,oBAAoB,CAAC,OAAe;QAC1C,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,QAAQ,KAAK,CAAC,CAAC;gBAAE,SAAS;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAC1E,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,wBAAwB,CAAC,OAAe;QAC9C,kDAAkD;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzD,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3E,IAAI,IAAI;oBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,EAAU,EAAE,IAAY,EAAE,IAAY;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEjC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO,eAAe,CAAC;QAC9I,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,QAAQ,CAAC;QACpI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,YAAY,CAAC;QACjI,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,YAAY,CAAC;QACjK,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,UAAU,CAAC;QACpI,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,WAAW,CAAC;QACzI,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,YAAY,CAAC;QAC5G,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,gBAAgB,CAAC;QAClK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,UAAU,CAAC;QAC/L,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO,cAAc,CAAC;QAE7I,wBAAwB;QACxB,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,UAAU,CAAC;QACvC,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,YAAY,CAAC;QACxC,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,gBAAgB,CAAC;QAE9C,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
import fs from 'node:fs';
|
|
47
47
|
import path from 'node:path';
|
|
48
48
|
import crypto from 'node:crypto';
|
|
49
|
+
import { execFileSync } from 'node:child_process';
|
|
49
50
|
|
|
50
51
|
const ROOT = path.resolve(path.dirname(new URL(import.meta.url).pathname), '..', '..', '..');
|
|
51
52
|
|
|
@@ -157,6 +158,107 @@ function buildToolchain() {
|
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
160
|
|
|
161
|
+
/**
|
|
162
|
+
* Verify the commit gate is actually INSTALLED before writing a trace that implies it ran.
|
|
163
|
+
*
|
|
164
|
+
* THE FAILURE THIS EXISTS TO CATCH. A worktree created with `git worktree add` and a
|
|
165
|
+
* symlinked (or absent) node_modules has no husky shim, so `core.hooksPath` points at a
|
|
166
|
+
* directory that does not exist. `git commit` then runs NO hook: it prints nothing and
|
|
167
|
+
* succeeds. **A working gate and an uninstalled gate look identical on screen — silence.**
|
|
168
|
+
* That is not hypothetical; it happened on 2026-07-27 and a whole change was committed
|
|
169
|
+
* believing the gate had passed it, when the gate had never executed.
|
|
170
|
+
*
|
|
171
|
+
* The gate cannot report its own absence — an uninstalled hook cannot run to say it is
|
|
172
|
+
* uninstalled. So the check belongs at the nearest chokepoint the agent DOES invoke by
|
|
173
|
+
* hand, which is this script. Writing a trace is the step that asserts "this change came
|
|
174
|
+
* through the skill", and that assertion is false if the gate cannot execute.
|
|
175
|
+
*
|
|
176
|
+
* SCOPE HONESTY: this is a SIGNAL, not an authority. It refuses to write the trace and
|
|
177
|
+
* says why; it cannot block a commit, because the very condition it detects is the one
|
|
178
|
+
* where no commit hook runs. Without a trace an in-scope commit is refused ANYWAY once the
|
|
179
|
+
* hook IS installed — so the two layers compose rather than overlap. Its whole job is to
|
|
180
|
+
* turn a silent absence into a loud one at the moment the agent would otherwise proceed.
|
|
181
|
+
*
|
|
182
|
+
* Set INSTAR_DEV_ALLOW_UNINSTALLED_GATE=1 to proceed anyway (a genuinely hookless
|
|
183
|
+
* environment, e.g. a test harness). The override is recorded IN THE TRACE rather than
|
|
184
|
+
* merely permitted, so a trace written without a live gate can never later be mistaken for
|
|
185
|
+
* one the gate approved.
|
|
186
|
+
*/
|
|
187
|
+
function inspectGateInstallation() {
|
|
188
|
+
const result = { installed: false, reason: '', hooksPath: null };
|
|
189
|
+
let hooksPath;
|
|
190
|
+
try {
|
|
191
|
+
hooksPath = execFileSync('git', ['config', '--get', 'core.hooksPath'], {
|
|
192
|
+
cwd: ROOT, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'],
|
|
193
|
+
}).trim();
|
|
194
|
+
} catch {
|
|
195
|
+
hooksPath = '';
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
if (!hooksPath) {
|
|
199
|
+
// No hooksPath set at all — git falls back to .git/hooks. Check there instead of
|
|
200
|
+
// assuming absence: a repo may legitimately install the hook the classic way.
|
|
201
|
+
let gitDir;
|
|
202
|
+
try {
|
|
203
|
+
gitDir = execFileSync('git', ['rev-parse', '--git-dir'], {
|
|
204
|
+
cwd: ROOT, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'],
|
|
205
|
+
}).trim();
|
|
206
|
+
} catch {
|
|
207
|
+
// NOT A GIT REPOSITORY AT ALL — the check does not apply.
|
|
208
|
+
//
|
|
209
|
+
// This is not a loophole, it is the check's actual scope. The hazard being guarded
|
|
210
|
+
// is "a git repo whose commit hook will not run". Where there is no repo there is no
|
|
211
|
+
// commit, so there is nothing to gate and nothing to be misled about. Test harnesses
|
|
212
|
+
// that drive this script inside a bare temp directory land here.
|
|
213
|
+
//
|
|
214
|
+
// Deliberately NOT solved by making every such harness set the override env var:
|
|
215
|
+
// that would push the burden onto whoever writes the next test remembering to do it,
|
|
216
|
+
// which is the willpower-over-structure trade this whole change exists to remove.
|
|
217
|
+
// It is also not a meaningful bypass — an agent cannot make the instar repo stop
|
|
218
|
+
// being a git repository.
|
|
219
|
+
return { installed: true, reason: '', hooksPath: null, notApplicable: true };
|
|
220
|
+
}
|
|
221
|
+
const classic = path.resolve(ROOT, gitDir, 'hooks', 'pre-commit');
|
|
222
|
+
if (fs.existsSync(classic)) return { installed: true, reason: '', hooksPath: classic };
|
|
223
|
+
return { ...result, reason: 'core.hooksPath is unset and .git/hooks/pre-commit does not exist' };
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
result.hooksPath = hooksPath;
|
|
227
|
+
const resolved = path.resolve(ROOT, hooksPath);
|
|
228
|
+
if (!fs.existsSync(resolved)) {
|
|
229
|
+
return { ...result, reason: `core.hooksPath is "${hooksPath}" but that directory does not exist — husky is not installed in this worktree (run \`npm ci\` then \`npx husky\`)` };
|
|
230
|
+
}
|
|
231
|
+
const preCommit = path.join(resolved, 'pre-commit');
|
|
232
|
+
if (!fs.existsSync(preCommit)) {
|
|
233
|
+
return { ...result, reason: `core.hooksPath is "${hooksPath}" but it contains no pre-commit hook` };
|
|
234
|
+
}
|
|
235
|
+
return { installed: true, reason: '', hooksPath };
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
const gate = inspectGateInstallation();
|
|
239
|
+
const gateOverridden = process.env.INSTAR_DEV_ALLOW_UNINSTALLED_GATE === '1';
|
|
240
|
+
if (!gate.installed && !gateOverridden) {
|
|
241
|
+
console.error('');
|
|
242
|
+
console.error(' ╔════════════════════════════════════════════════════════════════════╗');
|
|
243
|
+
console.error(' ║ REFUSING to write a trace — the commit gate is NOT installed ║');
|
|
244
|
+
console.error(' ╚════════════════════════════════════════════════════════════════════╝');
|
|
245
|
+
console.error('');
|
|
246
|
+
console.error(` ${gate.reason}`);
|
|
247
|
+
console.error('');
|
|
248
|
+
console.error(' A trace asserts this change came through /instar-dev. With no hook');
|
|
249
|
+
console.error(' installed, `git commit` runs NOTHING and succeeds silently — a passing');
|
|
250
|
+
console.error(' gate and an absent gate look identical on screen. Writing the trace now');
|
|
251
|
+
console.error(' would record an approval that was never given.');
|
|
252
|
+
console.error('');
|
|
253
|
+
console.error(' Fix it in this worktree: npm ci && npx husky');
|
|
254
|
+
console.error(' Then verify: git config core.hooksPath && ls .husky/_');
|
|
255
|
+
console.error('');
|
|
256
|
+
console.error(' If this environment genuinely has no hooks (e.g. a test harness), set');
|
|
257
|
+
console.error(' INSTAR_DEV_ALLOW_UNINSTALLED_GATE=1 — the override is recorded in the trace.');
|
|
258
|
+
console.error('');
|
|
259
|
+
process.exit(1);
|
|
260
|
+
}
|
|
261
|
+
|
|
160
262
|
const artifactPath = path.resolve(ROOT, artifact);
|
|
161
263
|
if (!fs.existsSync(artifactPath)) {
|
|
162
264
|
console.error(`Artifact not found: ${artifact}`);
|
|
@@ -235,6 +337,10 @@ const trace = {
|
|
|
235
337
|
// Duplicate-build guard §3.4 — omitted when no stub exists so pre-guard
|
|
236
338
|
// traces round-trip byte-identically.
|
|
237
339
|
...(duplicateBuildCheck ? { duplicateBuildCheck } : {}),
|
|
340
|
+
// Recorded ONLY when the gate-installation check was overridden, so a trace written
|
|
341
|
+
// without a live commit gate can never later be mistaken for one the gate approved.
|
|
342
|
+
// Absent on every normal trace, so existing traces round-trip byte-identically.
|
|
343
|
+
...(gate.installed ? {} : { gateInstallationOverridden: true, gateInstallationReason: gate.reason }),
|
|
238
344
|
};
|
|
239
345
|
|
|
240
346
|
fs.writeFileSync(traceFile, JSON.stringify(trace, null, 2) + '\n');
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-07-27T09:44:56.135Z",
|
|
5
|
+
"instarVersion": "1.3.1000",
|
|
6
6
|
"entryCount": 202,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
`skills/instar-dev/scripts/write-trace.mjs` now verifies the instar-dev commit gate is actually
|
|
9
|
+
installed before writing a trace, and refuses with an explanation when it is not.
|
|
10
|
+
|
|
11
|
+
A worktree created with `git worktree add` inherits `core.hooksPath` (typically `.husky/_`) from the
|
|
12
|
+
shared repo config, while that directory does not exist until `npm ci` plus `npx husky` have run. In
|
|
13
|
+
that state `git commit` executes no hook: it prints nothing and succeeds. A working gate and an
|
|
14
|
+
uninstalled gate are indistinguishable on screen, because both are silent — and on 2026-07-27 a
|
|
15
|
+
change was committed on the belief the gate had passed it when the gate had never run.
|
|
16
|
+
|
|
17
|
+
The gate cannot detect its own absence, since an uninstalled hook cannot execute to say so. The check
|
|
18
|
+
therefore lives at the nearest chokepoint invoked by hand: writing the trace, which is the step that
|
|
19
|
+
asserts the change came through the skill. `INSTAR_DEV_ALLOW_UNINSTALLED_GATE=1` overrides it, and
|
|
20
|
+
the override is recorded in the trace so an unguarded trace can never be mistaken for an approved one.
|
|
21
|
+
|
|
22
|
+
## What to Tell Your User
|
|
23
|
+
|
|
24
|
+
None — internal change (no user-facing surface).
|
|
25
|
+
|
|
26
|
+
## Summary of New Capabilities
|
|
27
|
+
|
|
28
|
+
None — internal change (no user-facing surface).
|
|
29
|
+
|
|
30
|
+
## Evidence
|
|
31
|
+
|
|
32
|
+
Verified against a real hookless worktree before any test was written — `core.hooksPath` was already
|
|
33
|
+
`.husky/_` in a freshly added worktree with no shim, confirming silently-no-gate is the default state
|
|
34
|
+
rather than an exotic misconfiguration:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
core.hooksPath is ".husky/_" but that directory does not exist — husky is not installed
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Falsified by neutering the check in the script:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
× THE FIX: refuses to write a trace when hooksPath points at a missing directory
|
|
44
|
+
→ expected +0 to be 1
|
|
45
|
+
× refuses when hooksPath is unset AND no classic hook exists
|
|
46
|
+
Tests 2 failed | 4 passed (6)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Restored byte-identical. The over-block was found by running the suites chosen from the diff rather
|
|
50
|
+
than the files authored: the first implementation broke seven tests in `write-trace-tier` and
|
|
51
|
+
`duplicate-build-guard-gates`, both of which drive the script inside bare temp directories. Scoping
|
|
52
|
+
the check to git repositories only fixed it — a directory that is not a repo has no commit to gate.
|
|
53
|
+
Final: `Test Files 3 passed (3) · Tests 23 passed (23)`.
|
|
54
|
+
|
|
55
|
+
## Known limits
|
|
56
|
+
|
|
57
|
+
The check verifies a pre-commit hook exists; it does not verify it is executable, non-empty, or that
|
|
58
|
+
it is the instar-dev gate rather than another hook. A hook that exits 0 immediately would satisfy it
|
|
59
|
+
while gating nothing. It also cannot help retroactively — a commit already made without the gate
|
|
60
|
+
leaves no marker, because nothing ran to leave one.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
`CapabilityMapper.loadBuiltinManifest()` resolved the builtin manifest as
|
|
9
|
+
`__dirname/../data/builtin-manifest.json`. In a source checkout that is `src/core → src/data`, which
|
|
10
|
+
exists. In a compiled install it is `dist/core → dist/data`, which does not — tsc does not copy JSON
|
|
11
|
+
and nothing else writes it, while the manifest actually ships at `src/data/` via package.json
|
|
12
|
+
`files`.
|
|
13
|
+
|
|
14
|
+
Verified on a real install: `dist/data/builtin-manifest.json` **absent**,
|
|
15
|
+
`src/data/builtin-manifest.json` **present (62,717 bytes)**.
|
|
16
|
+
|
|
17
|
+
The failure was then silent twice over: a missing file fell through to `return {}`, and a parse error
|
|
18
|
+
was caught and also returned `{}`. An empty map is indistinguishable from "this agent has no builtin
|
|
19
|
+
capabilities", so every deployed agent reported zero builtins with nothing saying why.
|
|
20
|
+
|
|
21
|
+
Resolution now enumerates both layouts, and the loader reports `loaded` / `not-found` / `unreadable`.
|
|
22
|
+
That state is surfaced as `summary.builtinManifest` on the capability map, so a low builtin count can
|
|
23
|
+
be told apart from unreadable provenance data. It remains a signal: a missing manifest still yields an
|
|
24
|
+
empty entry set, the map still builds, and nothing throws.
|
|
25
|
+
|
|
26
|
+
## What to Tell Your User
|
|
27
|
+
|
|
28
|
+
Your agent can now correctly tell which of its abilities came built in.
|
|
29
|
+
|
|
30
|
+
It ships with a list of everything it has out of the box, and it was looking for that list in a
|
|
31
|
+
folder that only exists while the code is being developed, not in the version you actually install.
|
|
32
|
+
So on every installed agent the list came back empty, and your agent quietly reported that it had no
|
|
33
|
+
built-in abilities at all — with nothing to indicate the information had simply failed to load.
|
|
34
|
+
|
|
35
|
+
It now looks in the right place. And if that information is ever genuinely missing or damaged, it
|
|
36
|
+
says so plainly instead of reporting an empty answer as though it were the truth, because a confident
|
|
37
|
+
wrong answer is worse than an honest gap.
|
|
38
|
+
|
|
39
|
+
One thing you may notice: on your next update, the breakdown of where your agent's abilities came
|
|
40
|
+
from will shift, with more of them correctly attributed as built in. That is the fix working, not a
|
|
41
|
+
change in what your agent can do.
|
|
42
|
+
|
|
43
|
+
## Summary of New Capabilities
|
|
44
|
+
|
|
45
|
+
No new endpoint, command, or configuration. The capability map summary gains a field reporting
|
|
46
|
+
whether the builtin manifest loaded, was not found, or was unreadable.
|
|
47
|
+
|
|
48
|
+
## Evidence
|
|
49
|
+
|
|
50
|
+
Falsified by restoring each half of the defect in production and confirming the tests fail.
|
|
51
|
+
|
|
52
|
+
Collapsing the candidate list back to the single original path:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
× THE BUG: resolves in an INSTALLED layout, where the manifest ships at src/data
|
|
56
|
+
→ expected 'not-found' to be 'loaded'
|
|
57
|
+
× a genuinely EMPTY manifest reports loaded — the other side of the boundary
|
|
58
|
+
× an UNPARSEABLE manifest reports unreadable, with the path and the parse error
|
|
59
|
+
× enumerates both layouts, in order
|
|
60
|
+
Tests 4 failed | 4 passed (8)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Conflating a missing manifest with a loaded one:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
× a MISSING manifest reports not-found — never confused with loaded-and-empty
|
|
67
|
+
→ expected 'loaded' to be 'not-found'
|
|
68
|
+
Tests 2 failed | 6 passed (8)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Both restored byte-identical. Green across every suite touching the changed file:
|
|
72
|
+
`Test Files 4 passed (4) · Tests 181 passed (181)` (`builtin-manifest-resolution`,
|
|
73
|
+
`capability-mapper`, `capability-mapper-advanced`, `builtin-manifest`); `tsc --noEmit` exit 0.
|
|
74
|
+
|
|
75
|
+
The tests were rewritten before landing: the first draft reimplemented the resolution inside the test
|
|
76
|
+
and asserted against that copy, which cannot fail when production changes — the same blindness the
|
|
77
|
+
bug is made of. Production now exports the resolution parameterised by a module directory, and the
|
|
78
|
+
tests call it directly.
|
|
79
|
+
|
|
80
|
+
## Known limits
|
|
81
|
+
|
|
82
|
+
The load state is reported but not acted on — nothing raises an alert when it is `not-found` on a
|
|
83
|
+
deployed agent, so a broken install still looks normal to anyone not reading the field. And this does
|
|
84
|
+
not settle *why* `dist/data` was expected: if a build step was meant to copy the manifest there, that
|
|
85
|
+
step still does not exist. Reading from both locations is the safer direction, not an answer to that
|
|
86
|
+
question.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Side-effects review — builtin manifest path resolution + load-state honesty
|
|
2
|
+
|
|
3
|
+
**Change:** `CapabilityMapper.loadBuiltinManifest()` resolved `__dirname/../data/builtin-manifest.json`,
|
|
4
|
+
which is `dist/data/` in a compiled install — a directory that does not exist. Resolution now
|
|
5
|
+
enumerates both the source and installed layouts, and reports `loaded` / `not-found` / `unreadable`
|
|
6
|
+
instead of returning a bare `{}` for all three.
|
|
7
|
+
|
|
8
|
+
**Decision point touched?** Yes, in the weak sense: `builtinManifest[id]` drives capability
|
|
9
|
+
*provenance* (instar / agent / user). It gates no action and blocks nothing, but it does decide what
|
|
10
|
+
the map claims about origin — which is why an unreadable manifest silently reading as "no builtins"
|
|
11
|
+
mattered.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. Over-block
|
|
16
|
+
|
|
17
|
+
Nothing is newly blocked or rejected. The change is strictly widening (one candidate path becomes
|
|
18
|
+
two) plus an added report field. No input that previously succeeded now fails.
|
|
19
|
+
|
|
20
|
+
The only behavioural sharpening: a manifest that is present but *unparseable* now returns
|
|
21
|
+
`state: 'unreadable'` instead of silently yielding `{}`. Callers still receive an empty entry set, so
|
|
22
|
+
nothing downstream breaks — they simply gain the ability to tell the difference.
|
|
23
|
+
|
|
24
|
+
## 2. Under-block
|
|
25
|
+
|
|
26
|
+
The load state is reported but not yet *acted on*. `summary.builtinManifest` makes an unreadable
|
|
27
|
+
manifest visible to a reader of `/capability-map`; nothing raises an attention item, logs a warning,
|
|
28
|
+
or fails a health check when it is `not-found` on a deployed agent. That is deliberate for this
|
|
29
|
+
change (signal before authority), and it means an install with a genuinely broken manifest will still
|
|
30
|
+
look normal to anyone not reading the field. Stated rather than implied.
|
|
31
|
+
|
|
32
|
+
Also not addressed: **why** `dist/data` was expected in the first place. If the intended design was
|
|
33
|
+
for the build to copy the manifest into `dist/`, that build step still does not exist. This change
|
|
34
|
+
makes the read work regardless, which is the safer direction, but it does not settle the question.
|
|
35
|
+
|
|
36
|
+
## 3. Level-of-abstraction fit
|
|
37
|
+
|
|
38
|
+
Correct layer. The defect is in how one module locates its own data file, and the fix is in that
|
|
39
|
+
module. The resolution is exported as a pure function taking a module directory — the minimum needed
|
|
40
|
+
to make it testable — rather than being pushed into a shared path helper, which would be a wider
|
|
41
|
+
change than the bug warrants.
|
|
42
|
+
|
|
43
|
+
## 4. Signal vs authority compliance
|
|
44
|
+
|
|
45
|
+
Compliant, and improved. The manifest was already a signal (provenance labelling). Previously it
|
|
46
|
+
failed *silently*, which is the pattern `docs/signal-vs-authority.md` warns about: a component that
|
|
47
|
+
cannot report its own degradation. It now reports state while retaining exactly the same
|
|
48
|
+
non-blocking, non-throwing behaviour. No new authority is introduced.
|
|
49
|
+
|
|
50
|
+
## 5. Interactions
|
|
51
|
+
|
|
52
|
+
`CapabilityMap.summary` gains one field (`builtinManifest`). This is an additive change to a
|
|
53
|
+
serialised read surface consumed by `/capability-map` and its compact rendering. Existing consumers
|
|
54
|
+
that read known fields are unaffected; a consumer doing exact-shape validation on the summary object
|
|
55
|
+
would see a new key.
|
|
56
|
+
|
|
57
|
+
`loadBuiltinManifestFrom` and `builtinManifestCandidates` are newly exported from
|
|
58
|
+
`CapabilityMapper.ts`. That widens the module's public surface by two pure functions with no side
|
|
59
|
+
effects beyond reading a file.
|
|
60
|
+
|
|
61
|
+
No change to when the manifest is loaded (still once, in the constructor), so no new I/O on any hot
|
|
62
|
+
path.
|
|
63
|
+
|
|
64
|
+
## 6. External surfaces
|
|
65
|
+
|
|
66
|
+
`GET /capability-map` responses gain `summary.builtinManifest`. No endpoint added or removed, no
|
|
67
|
+
config key, no agent-visible behaviour change beyond more accurate provenance on installs where the
|
|
68
|
+
manifest previously failed to load — which is expected to be *all* of them.
|
|
69
|
+
|
|
70
|
+
Worth stating plainly: on deployed agents this change will cause builtin provenance to start
|
|
71
|
+
resolving where it previously did not. Capability counts by provenance will shift — `instarProvided`
|
|
72
|
+
up, `unmapped` down. That is the fix working, but it will look like a change in the numbers.
|
|
73
|
+
|
|
74
|
+
## 7. Multi-machine posture
|
|
75
|
+
|
|
76
|
+
**Machine-local by design, and correctly so.** The manifest is a static artifact shipped inside the
|
|
77
|
+
installed package: every machine reads its own copy from its own filesystem, and there is nothing to
|
|
78
|
+
replicate, proxy, or reconcile. Two machines on different instar versions will legitimately hold
|
|
79
|
+
different manifests, which is the correct behaviour — the manifest describes *that install*.
|
|
80
|
+
|
|
81
|
+
No `machine-local-justification` marker is needed here because this introduces no new state surface;
|
|
82
|
+
it corrects the path of an existing per-install read.
|
|
83
|
+
|
|
84
|
+
## 8. Rollback cost
|
|
85
|
+
|
|
86
|
+
Low. Revert the module: the resolution returns to a single path and the summary field disappears.
|
|
87
|
+
No data migration, no persisted state, no schema change, no agent state to repair. Consumers of the
|
|
88
|
+
new summary field would see it vanish, which is why it is additive and optional rather than replacing
|
|
89
|
+
an existing field.
|
|
90
|
+
|
|
91
|
+
The one thing a rollback re-creates is the original defect — deployed agents silently reporting zero
|
|
92
|
+
builtins — so a rollback should be accompanied by an explanation of what failed, or it will look like
|
|
93
|
+
the bug returning on its own.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Side-effects review — write-trace gate-installation self-check
|
|
2
|
+
|
|
3
|
+
**Change:** `skills/instar-dev/scripts/write-trace.mjs` refuses to write a trace when the instar-dev
|
|
4
|
+
commit gate is not installed (hooksPath points at a missing directory, or no pre-commit hook exists).
|
|
5
|
+
Overridable via `INSTAR_DEV_ALLOW_UNINSTALLED_GATE=1`, and the override is recorded in the trace.
|
|
6
|
+
|
|
7
|
+
**Decision point touched?** Yes. This adds a refusal — the script now declines an operation it
|
|
8
|
+
previously always performed. Per `docs/signal-vs-authority.md` the refusal is deliberately scoped as
|
|
9
|
+
a SIGNAL: it cannot block a commit (the detected condition is precisely the one where no commit hook
|
|
10
|
+
runs), it only refuses to emit an artifact that would assert an approval that never happened.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 1. Over-block
|
|
15
|
+
|
|
16
|
+
Real and found during the build, not theorised. The first implementation refused inside any directory
|
|
17
|
+
whose hooks were absent, which broke seven existing tests in `write-trace-tier.test.ts` and
|
|
18
|
+
`duplicate-build-guard-gates.test.ts` — both drive the script inside bare temp directories.
|
|
19
|
+
|
|
20
|
+
Resolved by scoping the check to its actual hazard: a *git repository* whose hook will not run. A
|
|
21
|
+
directory that is not a git repo has no commit to gate, so the check does not apply. Deliberately NOT
|
|
22
|
+
resolved by setting the override env var in each harness — that would push the burden onto whoever
|
|
23
|
+
writes the next test remembering to do it, which is the willpower-over-structure trade this change
|
|
24
|
+
exists to remove.
|
|
25
|
+
|
|
26
|
+
Remaining over-block risk: a repo that installs its pre-commit hook by some mechanism other than
|
|
27
|
+
`core.hooksPath` or `.git/hooks/pre-commit` would be refused incorrectly. No such mechanism is used
|
|
28
|
+
in this repo. The override exists for exactly that case and records itself.
|
|
29
|
+
|
|
30
|
+
## 2. Under-block
|
|
31
|
+
|
|
32
|
+
The check verifies a pre-commit hook *exists*; it does not verify it is executable, non-empty, or that
|
|
33
|
+
it is actually the instar-dev gate rather than some other hook. A repo with a hook file that exits 0
|
|
34
|
+
immediately would pass this check while gating nothing. Named rather than fixed: deeper verification
|
|
35
|
+
would mean executing or parsing the hook, which is a larger change than the failure being closed.
|
|
36
|
+
|
|
37
|
+
It also cannot help after the fact. A commit already made without the gate leaves no marker, because
|
|
38
|
+
nothing ran to leave one.
|
|
39
|
+
|
|
40
|
+
## 3. Level-of-abstraction fit
|
|
41
|
+
|
|
42
|
+
Correct, and the placement is the substance of the change. The gate cannot detect its own absence —
|
|
43
|
+
an uninstalled hook cannot execute to report that it is uninstalled — so the check must live in
|
|
44
|
+
something that actually runs. Trace-writing is the nearest chokepoint the agent invokes by hand, and
|
|
45
|
+
it is the step whose whole meaning is "this change came through the skill". Putting the check
|
|
46
|
+
anywhere the agent might skip would reproduce the original problem one layer out.
|
|
47
|
+
|
|
48
|
+
## 4. Signal vs authority compliance
|
|
49
|
+
|
|
50
|
+
Compliant by construction. It holds no blocking authority over commits and could not acquire any:
|
|
51
|
+
the condition it detects is defined by the absence of the mechanism that would do the blocking. It
|
|
52
|
+
refuses to produce an artifact, which is the weakest possible action, and it fails loudly rather than
|
|
53
|
+
silently. The escape hatch is recorded rather than merely permitted, so an overridden trace is
|
|
54
|
+
distinguishable from an approved one by field presence.
|
|
55
|
+
|
|
56
|
+
## 5. Interactions
|
|
57
|
+
|
|
58
|
+
Composes with the pre-commit gate rather than duplicating it: without a trace an in-scope commit is
|
|
59
|
+
refused anyway *once the hook is installed*, so the two layers cover different halves of the same
|
|
60
|
+
failure. The trace gains two fields (`gateInstallationOverridden`, `gateInstallationReason`) emitted
|
|
61
|
+
ONLY on override, so every normal trace round-trips byte-identically and existing readers are
|
|
62
|
+
unaffected.
|
|
63
|
+
|
|
64
|
+
Adds two `git config` / `git rev-parse` subprocess calls to a script that already shells out. No hot
|
|
65
|
+
path; runs once per commit at most.
|
|
66
|
+
|
|
67
|
+
## 6. External surfaces
|
|
68
|
+
|
|
69
|
+
None. `write-trace.mjs` is a development-time script in the instar repo, not shipped behaviour, not
|
|
70
|
+
an endpoint, not agent-visible at runtime. The only observers are instar developers and CI.
|
|
71
|
+
|
|
72
|
+
## 7. Multi-machine posture
|
|
73
|
+
|
|
74
|
+
Not applicable — this is a development-time script operating on the local checkout. It introduces no
|
|
75
|
+
state, no persistence, and nothing to replicate, proxy, or reconcile. Every machine that develops
|
|
76
|
+
instar runs its own copy against its own worktree, which is the correct and only sensible posture.
|
|
77
|
+
|
|
78
|
+
## 8. Rollback cost
|
|
79
|
+
|
|
80
|
+
Trivial. Remove the check function and its call site; the trace fields disappear with it (they are
|
|
81
|
+
emitted only on override, so nothing else references them). No data migration, no persisted state, no
|
|
82
|
+
agent state. The rollback re-creates the original silent-gate hazard, so it should be accompanied by
|
|
83
|
+
a reason.
|