@miller-tech/uap 1.168.0 → 1.170.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/delivery/self-gate.js +6 -0
- package/dist/delivery/self-gate.js.map +1 -1
- package/dist/delivery/user-paths.d.ts +17 -0
- package/dist/delivery/user-paths.d.ts.map +1 -1
- package/dist/delivery/user-paths.js +108 -20
- package/dist/delivery/user-paths.js.map +1 -1
- package/dist/delivery/verifier-ladder.d.ts +35 -0
- package/dist/delivery/verifier-ladder.d.ts.map +1 -1
- package/dist/delivery/verifier-ladder.js +111 -10
- package/dist/delivery/verifier-ladder.js.map +1 -1
- package/docs/guides/DELIVER.md +4 -0
- package/package.json +1 -1
- package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
- package/src/policies/enforcers/_common.py +106 -0
- package/src/policies/enforcers/iac_plan_destruction_check.py +15 -4
- package/src/policies/enforcers/workdir_scope.py +6 -0
- package/templates/hooks/__pycache__/deliver_autoroute.cpython-312.pyc +0 -0
- package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
|
@@ -15,6 +15,22 @@ import { existsSync, readFileSync, readdirSync, lstatSync } from 'fs';
|
|
|
15
15
|
import { join } from 'path';
|
|
16
16
|
import { synthesizeExecutionRung } from './execution-gate.js';
|
|
17
17
|
/** Cheap → expensive promotion order. */
|
|
18
|
+
/**
|
|
19
|
+
* Tiers deferred while a non-promotion-blocking rung is red: the ones that stand
|
|
20
|
+
* up real infrastructure per run — docker compose up/down, an ephemeral postgres,
|
|
21
|
+
* migrations. See the cost ceiling in runTieredLadder.
|
|
22
|
+
*
|
|
23
|
+
* `runtime` and `final` are deliberately NOT here, even though `final` drives a
|
|
24
|
+
* headless browser. They carry the two signals unblocking promotion existed to
|
|
25
|
+
* deliver — does the artifact EXECUTE, and does it BEHAVE on the user journeys —
|
|
26
|
+
* and deferring them would re-starve exactly what `blocksPromotion` unstarved,
|
|
27
|
+
* just for a different reason. The complaint this ceiling answers was a compose
|
|
28
|
+
* cycle every turn, not a browser run.
|
|
29
|
+
*/
|
|
30
|
+
export const COSTLY_TIERS = new Set([
|
|
31
|
+
'integration',
|
|
32
|
+
'deploy-dev',
|
|
33
|
+
]);
|
|
18
34
|
export const TIER_ORDER = [
|
|
19
35
|
'fast',
|
|
20
36
|
'runtime',
|
|
@@ -695,11 +711,36 @@ export function formatFeedback(results, rungs) {
|
|
|
695
711
|
const requiredIds = new Set(rungs.filter((r) => r.required).map((r) => r.id));
|
|
696
712
|
const lines = ['Gate results:'];
|
|
697
713
|
for (const r of results) {
|
|
698
|
-
const status = r.skipped
|
|
714
|
+
const status = r.skipped
|
|
715
|
+
? r.skipReason === 'deferred-cost'
|
|
716
|
+
? 'DEFERRED (cheap gates first — will run once they pass)'
|
|
717
|
+
: 'SKIPPED (earlier gate failed)'
|
|
718
|
+
: r.passed
|
|
719
|
+
? 'PASS'
|
|
720
|
+
: 'FAIL';
|
|
699
721
|
const optional = requiredIds.has(r.id) ? '' : ' (optional)';
|
|
700
722
|
lines.push(`- ${r.name}${optional}: ${status}`);
|
|
701
723
|
}
|
|
702
|
-
|
|
724
|
+
// Which failure gets the one detail block matters. Results arrive in TIER_ORDER,
|
|
725
|
+
// so the fast-tier synthetic self-gate always won the slot — and once
|
|
726
|
+
// blocksPromotion let the runtime/final gates actually RUN behind a red
|
|
727
|
+
// self-gate, they ran and their output was still never shown. The model was
|
|
728
|
+
// told "fix this gate first" about a model-authored acceptance script that is
|
|
729
|
+
// SUPPOSED to stay red until the mission is done, while the real build/execution
|
|
730
|
+
// failure sat one line above with no tail.
|
|
731
|
+
//
|
|
732
|
+
// So prefer a failure that blocks promotion — a real, objective gate the model
|
|
733
|
+
// can actually act on this turn. Fall back to the synthetic one when that is all
|
|
734
|
+
// there is, since then it genuinely is the only thing to work toward.
|
|
735
|
+
const blockingIds = new Set(rungs.filter((r) => r.required && r.blocksPromotion !== false).map((r) => r.id));
|
|
736
|
+
const failedRequired = results.filter((r) => !r.passed && !r.skipped && requiredIds.has(r.id));
|
|
737
|
+
const firstRequiredFailure = failedRequired.find((r) => blockingIds.has(r.id) && r.outputTail) ??
|
|
738
|
+
// Never drop the only diagnostic we have: preferring a TAILLESS blocking rung
|
|
739
|
+
// over a non-blocking one that actually has output would print no failure
|
|
740
|
+
// detail at all — strictly worse than before this preference existed.
|
|
741
|
+
failedRequired.find((r) => r.outputTail) ??
|
|
742
|
+
failedRequired.find((r) => blockingIds.has(r.id)) ??
|
|
743
|
+
failedRequired[0];
|
|
703
744
|
if (firstRequiredFailure && firstRequiredFailure.outputTail) {
|
|
704
745
|
lines.push('');
|
|
705
746
|
lines.push(`Fix this gate first — ${firstRequiredFailure.name} output:`);
|
|
@@ -707,6 +748,15 @@ export function formatFeedback(results, rungs) {
|
|
|
707
748
|
lines.push(firstRequiredFailure.outputTail);
|
|
708
749
|
lines.push('```');
|
|
709
750
|
}
|
|
751
|
+
else if (firstRequiredFailure) {
|
|
752
|
+
// A REQUIRED gate failed but produced no output (a script that exits non-zero
|
|
753
|
+
// silently). Say exactly that — the branch below would otherwise tell the
|
|
754
|
+
// model this blocking gate is "OPTIONAL … do not prioritize it", which is the
|
|
755
|
+
// opposite of true and the inverse of the bait that branch exists to prevent.
|
|
756
|
+
lines.push('');
|
|
757
|
+
lines.push(`Fix this gate first — ${firstRequiredFailure.name} failed with no output ` +
|
|
758
|
+
`(exit ${firstRequiredFailure.exitCode}). Run it yourself to see why.`);
|
|
759
|
+
}
|
|
710
760
|
else {
|
|
711
761
|
// Optional-only failures must NOT carry the "fix this first" imperative or
|
|
712
762
|
// the failure tail: on an otherwise-green baseline the tail baits the model
|
|
@@ -714,7 +764,9 @@ export function formatFeedback(results, rungs) {
|
|
|
714
764
|
// goal (observed live 2026-07-10: 13/13 writes against an optional lint
|
|
715
765
|
// rung whose eslint plugin crash the agent could never fix, zero writes
|
|
716
766
|
// toward the epic goal).
|
|
717
|
-
|
|
767
|
+
// Scoped to genuinely optional rungs — `firstRequiredFailure` being unset is
|
|
768
|
+
// now the only way to reach here, so this can no longer mislabel a required one.
|
|
769
|
+
const firstOptionalFailure = results.find((r) => !r.passed && !r.skipped && !requiredIds.has(r.id));
|
|
718
770
|
if (firstOptionalFailure) {
|
|
719
771
|
lines.push('');
|
|
720
772
|
lines.push(`Note: ${firstOptionalFailure.name} is failing but is OPTIONAL — it does not block ` +
|
|
@@ -810,7 +862,13 @@ export function runLadder(rungs, projectRoot, options = {}) {
|
|
|
810
862
|
}
|
|
811
863
|
const result = runRung(rung, projectRoot, tailChars, options.requireTestsRan ?? false);
|
|
812
864
|
results.push(result);
|
|
813
|
-
|
|
865
|
+
// Same rule as cross-tier promotion: a synthetic rung fails the ladder but
|
|
866
|
+
// does not hide the rungs ordered after it. Without this the fix was half a
|
|
867
|
+
// fix — the self-gate is pushed into `fast` and redetected build/typecheck/
|
|
868
|
+
// test rungs are APPENDED after it, so on a from-scratch mission (the
|
|
869
|
+
// classic self-gate trigger) a red self-gate marked every real gate
|
|
870
|
+
// `skipped` on every turn, inside the tier, no matter what promotion did.
|
|
871
|
+
if (!result.passed && rung.required && rung.blocksPromotion !== false && failFast) {
|
|
814
872
|
stop = true;
|
|
815
873
|
}
|
|
816
874
|
}
|
|
@@ -844,7 +902,7 @@ export function mergeRedetectedRungs(current, detected, allow) {
|
|
|
844
902
|
const added = detected.filter((r) => !have.has(r.id) && allowed(r));
|
|
845
903
|
return added.length > 0 ? [...current, ...added] : current;
|
|
846
904
|
}
|
|
847
|
-
const skippedRung = (rung) => ({
|
|
905
|
+
const skippedRung = (rung, reason) => ({
|
|
848
906
|
id: rung.id,
|
|
849
907
|
name: rung.name,
|
|
850
908
|
passed: false,
|
|
@@ -852,6 +910,7 @@ const skippedRung = (rung) => ({
|
|
|
852
910
|
exitCode: null,
|
|
853
911
|
durationMs: 0,
|
|
854
912
|
outputTail: '',
|
|
913
|
+
...(reason ? { skipReason: reason } : {}),
|
|
855
914
|
});
|
|
856
915
|
/**
|
|
857
916
|
* Cheap-first tiered ladder. Runs the cheapest tier first and only promotes to
|
|
@@ -885,14 +944,18 @@ export async function runTieredLadder(rungs, projectRoot, options = {}) {
|
|
|
885
944
|
// Rungs that were eligible to run (tier <= maxTier); only these gate delivery.
|
|
886
945
|
const inScope = [];
|
|
887
946
|
let promotionStopped = false;
|
|
947
|
+
/** A rung failed that is required but deliberately does not stop promotion. */
|
|
948
|
+
let nonBlockingFailed = false;
|
|
888
949
|
for (const tier of TIER_ORDER) {
|
|
889
950
|
const tierRungs = byTier.get(tier);
|
|
890
951
|
if (!tierRungs || tierRungs.length === 0)
|
|
891
952
|
continue;
|
|
892
953
|
// 'final' is an epilogue tier: always in scope when its rung was
|
|
893
|
-
// synthesized (config-gated upstream), regardless of the
|
|
894
|
-
// it must not drag integration/deploy-dev into scope
|
|
895
|
-
//
|
|
954
|
+
// synthesized (config-gated upstream), regardless of the maxTier ceiling —
|
|
955
|
+
// it must not drag integration/deploy-dev into scope. It runs when no
|
|
956
|
+
// PROMOTION-BLOCKING rung has failed; the cost ceiling can leave
|
|
957
|
+
// integration/deploy-dev deferred-not-passed while final still runs, which
|
|
958
|
+
// is intended (it carries the behavioural signal, they carry infrastructure).
|
|
896
959
|
const eligible = tier === 'final' || TIER_ORDER.indexOf(tier) <= maxIdx;
|
|
897
960
|
if (!eligible) {
|
|
898
961
|
// Above maxTier — verified remotely, never run locally.
|
|
@@ -907,13 +970,51 @@ export async function runTieredLadder(rungs, projectRoot, options = {}) {
|
|
|
907
970
|
results.push(skippedRung(rung));
|
|
908
971
|
continue;
|
|
909
972
|
}
|
|
973
|
+
// COST CEILING while a non-blocking rung is red.
|
|
974
|
+
//
|
|
975
|
+
// blocksPromotion exists so a red synthetic self-gate stops starving the real
|
|
976
|
+
// gates. But "don't starve" should not mean "pay for everything, every turn":
|
|
977
|
+
// the self-gate is raised precisely when the project's own gates are green and
|
|
978
|
+
// is REQUIRED to stay red until the mission is done, so without a ceiling every
|
|
979
|
+
// turn of a long run would bring a docker-compose stack up and down
|
|
980
|
+
// (integration/deploy-dev) and drive a headless browser + vision model (final).
|
|
981
|
+
//
|
|
982
|
+
// runtime is the tier that carries the feedback the unblocking was for — does
|
|
983
|
+
// the artifact actually execute — and it is cheap. So while a non-blocking rung
|
|
984
|
+
// is red, run up to runtime and defer the expensive tiers until the ladder is
|
|
985
|
+
// otherwise clean. Escape hatch for anyone who wants the full ladder anyway.
|
|
986
|
+
if (nonBlockingFailed &&
|
|
987
|
+
COSTLY_TIERS.has(tier) &&
|
|
988
|
+
process.env.UAP_LADDER_NO_COST_CEILING !== '1') {
|
|
989
|
+
for (const rung of tierRungs)
|
|
990
|
+
results.push(skippedRung(rung, 'deferred-cost'));
|
|
991
|
+
continue;
|
|
992
|
+
}
|
|
910
993
|
const useRunner = tier === 'deploy-dev' && options.deployDevRunner ? options.deployDevRunner
|
|
911
994
|
: tier === 'final' && options.userValidationRunner ? options.userValidationRunner
|
|
912
995
|
: runner;
|
|
913
996
|
const tierResult = await useRunner(tierRungs, projectRoot, innerOptions);
|
|
914
997
|
results.push(...tierResult.results);
|
|
915
|
-
if
|
|
916
|
-
|
|
998
|
+
// Promotion stops only if a rung that BLOCKS promotion failed. A synthetic
|
|
999
|
+
// rung (blocksPromotion: false) still fails the ladder — it just does not
|
|
1000
|
+
// hide the real gates in later tiers behind it.
|
|
1001
|
+
if (!tierResult.passed) {
|
|
1002
|
+
let blockingFailed = false;
|
|
1003
|
+
for (const r of tierResult.results) {
|
|
1004
|
+
if (r.passed || r.skipped)
|
|
1005
|
+
continue;
|
|
1006
|
+
const rung = tierRungs.find((g) => g.id === r.id);
|
|
1007
|
+
const required = rung?.required ?? true;
|
|
1008
|
+
if (!required)
|
|
1009
|
+
continue;
|
|
1010
|
+
if (rung?.blocksPromotion === false)
|
|
1011
|
+
nonBlockingFailed = true;
|
|
1012
|
+
else
|
|
1013
|
+
blockingFailed = true;
|
|
1014
|
+
}
|
|
1015
|
+
if (blockingFailed)
|
|
1016
|
+
promotionStopped = true;
|
|
1017
|
+
}
|
|
917
1018
|
}
|
|
918
1019
|
// Aggregate — only in-scope rungs gate delivery (remote tiers are skipped).
|
|
919
1020
|
// Score is computed over in-scope rungs ONLY: out-of-scope rungs (above
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifier-ladder.js","sourceRoot":"","sources":["../../src/delivery/verifier-ladder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAmB9D,yCAAyC;AACzC,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,MAAM;IACN,SAAS;IACT,aAAa;IACb,YAAY;IACZ,OAAO;IACP,IAAI;IACJ,gBAAgB;IAChB,aAAa;CACd,CAAC;AAuCF,8EAA8E;AAC9E,MAAM,UAAU,MAAM,CAAC,IAAc;IACnC,OAAO,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;AAC7B,CAAC;AAgDD,MAAM,kBAAkB,GAAG,OAAO,CAAC;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAExC,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,kDAAkD;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,YAAoB,kBAAkB;IACrF,MAAM,KAAK,GAAe,EAAE,CAAC;IAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAClD,IAAI,OAAO,GAA2B,EAAE,CAAC;IACzC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAyC,CAAC;YAC/F,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;YACtB,QAAQ,EAAE,IAAI;YACd,SAAS;YACT,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,wEAAwE;IACxE,IACE,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAC9C,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAC5D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,2BAA2B;YACjC,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC;YACzC,QAAQ,EAAE,IAAI;YACd,SAAS;YACT,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,MAAM,CAAC;YACd,QAAQ,EAAE,IAAI;YACd,SAAS;YACT,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS;YACT,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAED,uEAAuE;IACvE,0EAA0E;IAC1E,0EAA0E;IAC1E,6EAA6E;IAC7E,kDAAkD;IAClD,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAExD,8EAA8E;IAC9E,gFAAgF;IAChF,iFAAiF;IACjF,8EAA8E;IAC9E,+EAA+E;IAC/E,yEAAyE;IACzE,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAE3D,oEAAoE;IACpE,0CAA0C;IAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,mEAAmE;IACnE,sEAAsE;IACtE,0EAA0E;IAC1E,KAAK,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACvE,IAAI,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAErC,+EAA+E;IAC/E,+EAA+E;IAC/E,2EAA2E;IAC3E,gFAAgF;IAChF,iFAAiF;IACjF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,uBAAuB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC7D,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAAmB,EACnB,OAA+B,EAC/B,YAAoB,kBAAkB;IAEtC,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,4EAA4E;IAC5E,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;IAE9D,IAAI,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,kBAAkB;YACtB,IAAI,EAAE,8CAA8C;YACpD,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC;YACjC,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;YACzB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,wDAAwD;IACxD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,0BAA0B,CAAC,WAAW,CAAC,EAAE,CAAC;QAClE,0EAA0E;QAC1E,wEAAwE;QACxE,2EAA2E;QAC3E,0EAA0E;QAC1E,0EAA0E;QAC1E,0CAA0C;QAC1C,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,mBAAmB,CAAC,WAAW,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,oBAAoB;YACxB,IAAI,EAAE,2CAA2C;YACjD,OAAO,EAAE,SAAS;YAClB,IAAI;YACJ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,kBAAkB;YAC7B,IAAI,EAAE,aAAa;YACnB,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,yEAAyE;AACzE,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,KAAK,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;QAC5E,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,SAAS;QAC7B,IAAI,CAAC;YACH,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kEAAkE;AAClE,SAAS,0BAA0B,CAAC,WAAmB;IACrD,KAAK,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;QAC5E,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,SAAS;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACtC,wDAAwD;YACxD,IAAI,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;QACtE,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,WAAmB,EACnB,OAA+B,EAC/B,YAAoB,kBAAkB;IAEtC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,yCAAyC;YAC/C,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC;YAC3B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,aAAa;YACxB,IAAI,EAAE,YAAY;SACnB,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,MAAM,WAAW,GAAG,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,IAAI,CACnG,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CACxC,CAAC;IAEF,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;QAC/B,0EAA0E;QAC1E,4EAA4E;QAC5E,OAAO;YACL,EAAE,EAAE,oBAAoB;YACxB,IAAI,EAAE,4CAA4C,WAAW,GAAG;YAChE,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC;YAC1B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,aAAa;YACxB,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE;SACpF,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,2EAA2E;QAC3E,gDAAgD;QAChD,OAAO;YACL,EAAE,EAAE,kBAAkB;YACtB,IAAI,EAAE,+BAA+B,WAAW,GAAG;YACnD,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC;YAC1B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,aAAa;YACxB,IAAI,EAAE,YAAY;SACnB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,MAAM,sBAAsB,GAAG,mDAAmD,CAAC;AAW1F;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAiB,EACjB,WAAmB,EACnB,YAAoB,kBAAkB;IAEtC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,OAAO,GAAmC,EAAE,CAAC;IACnD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,GAAG,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,sBAAsB,EAAE,EAAE,CAAC;IAChF,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;AAClE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,YAAoB,kBAAkB;IAC1F,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACpD,OAAO;QACL;YACE,yEAAyE;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,wEAAwE;YACxE,8DAA8D;YAC9D,EAAE,EAAE,eAAe;YACnB,IAAI,EAAE,4DAA4D;YAClE,OAAO,EAAE,MAAM;YACf,IAAI,EAAE;gBACJ,IAAI;gBACJ,iEAAiE;gBACjE,qEAAqE;gBACrE,8aAA8a;aAC/a;YACD,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;YACtC,IAAI,EAAE,MAAM;SACb;QACD;YACE,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,iCAAiC;YACvC,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;YAC9B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,cAAc;YACzB,IAAI,EAAE,MAAM;SACb;QACD;YACE,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;YAC7B,uEAAuE;YACvE,4EAA4E;YAC5E,0EAA0E;YAC1E,sEAAsE;YACtE,wEAAwE;YACxE,6EAA6E;YAC7E,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,cAAc;YACzB,IAAI,EAAE,MAAM;SACb;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG;QACb,QAAQ;QACR,qGAAqG;QACrG,qGAAqG;QACrG,uBAAuB;QACvB,8CAA8C;QAC9C,qEAAqE;QACrE,kNAAkN;QAClN,gEAAgE;QAChE,OAAO;QACP,uHAAuH;QACvH,mFAAmF;QACnF,0FAA0F;KAC3F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO;QACL,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,qDAAqD;QAC3D,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,OAAO;QAClB,IAAI,EAAE,aAAa;KACpB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB,EAAE,YAAoB,kBAAkB;IAC7F,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,CAAC,CAAS,EAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAW,EAAE;QACvC,IAAI,CAAC;YACH,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,mEAAmE;IACnE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,IAAY,EAAE,OAAe,EAAE,IAAc,EAAE,QAAQ,GAAG,IAAI,EAAQ,EAAE;QAC/F,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC,CAAC;IAEF,6EAA6E;IAC7E,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClB,GAAG,CAAC,UAAU,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACpE,GAAG,CAAC,SAAS,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,6EAA6E;IAC7E,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,gCAAgC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,cAAc,EAAE,sBAAsB,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QAC7E,GAAG,CAAC,aAAa,EAAE,qBAAqB,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,8EAA8E;IAC9E,IAAI,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,aAAa,EAAE,uBAAuB,EAAE,MAAM,EAAE;YAClD,KAAK;YACL,4CAA4C;SAC7C,CAAC,CAAC;QACH,0EAA0E;QAC1E,yCAAyC;QACzC,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,CAAC,KAAK,EAAE,4CAA4C,CAAC;YAC3D,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,OAAO;YAClB,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,IAAI,GAAG,CAAC,SAAS,CAAC;QAAE,GAAG,CAAC,YAAY,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjF,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvD,GAAG,CAAC,aAAa,EAAE,UAAU,MAAM,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,GAAG,CAAC,WAAW,CAAC;QAAE,GAAG,CAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3E,6EAA6E;IAC7E,IAAI,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,aAAa,EAAE,qBAAqB,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,GAAG,CAAC,YAAY,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,6EAA6E;IAC7E,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACnB,GAAG,CAAC,WAAW,EAAE,2BAA2B,EAAE,MAAM,EAAE;YACpD,KAAK;YACL,wDAAwD;SACzD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE;YACzC,KAAK;YACL,iDAAiD;SAClD,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,IAAI,GAAG,CAAC,SAAS,CAAC;QAAE,GAAG,CAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,IAAI,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,WAAW,EAAE,2BAA2B,EAAE,MAAM,EAAE;YACpD,KAAK;YACL,uCAAuC;SACxC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,CAAC;QAAE,GAAG,CAAC,YAAY,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;SAC7E,IAAI,QAAQ,CAAC,UAAU,CAAC;QAAE,GAAG,CAAC,YAAY,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1F,IAAI,GAAG,CAAC,WAAW,CAAC;QAAE,GAAG,CAAC,UAAU,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1F,6EAA6E;IAC7E,0EAA0E;IAC1E,+EAA+E;IAC/E,+EAA+E;IAC/E,2DAA2D;IAC3D,MAAM,UAAU,GACd,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC;QAC5D,GAAG,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9D,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;YAC5B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,OAAO;YAClB,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,WAAmB,EAAE,YAAoB,kBAAkB;IAC3F,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,CAAC,CAAS,EAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IAErE,wEAAwE;IACxE,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM,GAAG,MAAM,CAAC;iBACxC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM,GAAG,OAAO,CAAC;iBAC/C,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM,GAAG,IAAI,CAAC,CAAC,eAAe;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;QACvD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,SAAS,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG;YACpD,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YAC5B,QAAQ,EAAE,IAAI;YACd,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,IAAI,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;IACH,CAAC;IACD,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;YAC5B,QAAQ,EAAE,IAAI;YACd,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvG,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,gBAAgB,MAAM,GAAG;gBAC/B,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,MAAM,CAAC;gBACd,QAAQ,EAAE,IAAI;gBACd,SAAS;aACV,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,QAAgB;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,OAAO,CAAC;IAC/C,OAAO,kBAAkB,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,OAAO,CACrB,IAAc,EACd,WAAmB,EACnB,YAAoB,kBAAkB,EACtC,eAAe,GAAG,KAAK;IAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE;QAC7C,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,IAAI,CAAC,SAAS;QACvB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC3B,GAAG,EAAE,YAAY,EAAE;KACpB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;IAC5B,yEAAyE;IACzE,4BAA4B;IAC5B,IAAI,MAAM,GAAG,QAAQ,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEjF,0EAA0E;IAC1E,sEAAsE;IACtE,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,yEAAyE;IACzE,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;IACpE,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,MAAM,SAAS,GAAG,GAAG,KAAK,KAAK,CAAC;IAChC,IAAI,SAAS,IAAI,eAAe;QAAE,MAAM,GAAG,KAAK,CAAC;IAEjD,4EAA4E;IAC5E,yEAAyE;IACzE,oEAAoE;IACpE,IAAI,aAA4C,CAAC;IACjD,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,OAAO,GAAI,GAAG,CAAC,KAA2C,EAAE,IAAI,CAAC;QACvE,IAAI,OAAO,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;YACvE,aAAa,GAAG,SAAS,CAAC;YAC1B,UAAU,GAAG,wBAAwB,IAAI,CAAC,SAAS,KAAK,CAAC;QAC3D,CAAC;aAAM,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACrB,aAAa,GAAG,aAAa,CAAC;YAC9B,UAAU,GAAG,uBAAuB,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC1D,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACtB,aAAa,GAAG,QAAQ,CAAC;YACzB,UAAU,GAAG,6BAA6B,GAAG,CAAC,MAAM,GAAG,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,MAAM,CAAC;QACzB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,UAAU,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;IAE3E,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM;QACN,OAAO,EAAE,KAAK;QACd,QAAQ;QACR,aAAa;QACb,UAAU;QACV,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC;QAC3D,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAqB,EAAE,KAAiB;IACrE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAa,CAAC,eAAe,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACxF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACxD,CAAC;IACF,IAAI,oBAAoB,IAAI,oBAAoB,CAAC,UAAU,EAAE,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,yBAAyB,oBAAoB,CAAC,IAAI,UAAU,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,2EAA2E;QAC3E,4EAA4E;QAC5E,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,yBAAyB;QACzB,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,oBAAoB,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CACR,SAAS,oBAAoB,CAAC,IAAI,kDAAkD;gBAClF,sDAAsD,CACzD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,kEAAkE;AAElE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,MAAc;IAC7D,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEjC,+EAA+E;IAC/E,kFAAkF;IAClF,IAAI,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QAC/D,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,0DAA0D,CAAC,CAAC,CAAC;QAC9F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS;IACT,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,IAAI,gCAAgC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7D,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sEAAsE;IACtE,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,IAAI,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB;IACxB,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9E,IAAI,iDAAiD,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9E,IAAI,6CAA6C,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;IACP,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC1D,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;IACR,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAClD,IAAI,gCAAgC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,0CAA0C;AACzD,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,KAAiB,EACjB,WAAmB,EACnB,UAAyB,EAAE;IAE3B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,IAAI,kBAAkB,CAAC;IAEhE,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,IAAI,IAAI,GAAG,KAAK,CAAC;IAEjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC,CAAC;QACvF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErB,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChD,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE,sEAAsE;IACtE,wCAAwC;IACxC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAClE,CAAC,MAAM,CAAC;IACT,MAAM,MAAM,GAAG,cAAc,KAAK,aAAa,CAAC,MAAM,CAAC;IAEvD,OAAO;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ,EAAE,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAmB,EACnB,QAAoB,EACpB,KAAgC;IAEhC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAC5F,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7D,CAAC;AAmCD,MAAM,WAAW,GAAG,CAAC,IAAc,EAAc,EAAE,CAAC,CAAC;IACnD,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,EAAE;CACf,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAiB,EACjB,WAAmB,EACnB,UAA+B,EAAE;IAEjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC;IAChD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAgB,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,IAAI,kBAAkB,CAAC;IAChE,MAAM,YAAY,GAAkB;QAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,eAAe,EAAE,SAAS;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,4EAA4E;QAC5E,2EAA2E;QAC3E,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC;IAEF,iEAAiE;IACjE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,+EAA+E;IAC/E,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEnD,iEAAiE;QACjE,wEAAwE;QACxE,oEAAoE;QACpE,yEAAyE;QACzE,MAAM,QAAQ,GAAG,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;QACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,wDAAwD;YACxD,KAAK,MAAM,IAAI,IAAI,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAE3B,IAAI,gBAAgB,EAAE,CAAC;YACrB,mDAAmD;YACnD,KAAK,MAAM,IAAI,IAAI,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GACb,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe;YAC1E,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB;gBACjF,CAAC,CAAC,MAAM,CAAC;QACX,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAEpC,IAAI,CAAC,UAAU,CAAC,MAAM;YAAE,gBAAgB,GAAG,IAAI,CAAC;IAClD,CAAC;IAED,4EAA4E;IAC5E,wEAAwE;IACxE,6EAA6E;IAC7E,2CAA2C;IAC3C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAClE,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAClD,CAAC,MAAM,CAAC;IACT,MAAM,MAAM,GAAG,cAAc,KAAK,eAAe,CAAC,MAAM,CAAC;IAEzD,OAAO;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;KACxE,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"verifier-ladder.js","sourceRoot":"","sources":["../../src/delivery/verifier-ladder.ts"],"names":[],"mappings":"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"}
|
package/docs/guides/DELIVER.md
CHANGED
|
@@ -95,6 +95,10 @@ fast → integration → deploy-dev → │ commit │ → ci → deploy-staging
|
|
|
95
95
|
|
|
96
96
|
Because promotion is cheap-first, a turn that fails the build never pays for integration or deploy — the expensive tiers run only once the cheap ones pass.
|
|
97
97
|
|
|
98
|
+
**Synthetic rungs don't stop promotion.** The self-gate is authored by the model and lands in `fast`, and it is *supposed* to stay red until the mission is done. If it stopped promotion, the execution gate, the user-path validator and the vision review would all be starved for the whole run — which is the steady state on a mature repo, since the self-gate is raised precisely when the project's own gates are green. So it is marked non-promotion-blocking: it still fails the ladder (it cannot be passed by ignoring it), it just no longer hides every real gate behind one script.
|
|
99
|
+
|
|
100
|
+
While a synthetic rung is red, the **infrastructure** tiers (`integration`, `deploy-dev`) are *deferred* rather than run every turn — a compose cycle and an ephemeral Postgres per turn buys a verdict that cannot change until the self-gate goes green. They are reported as `DEFERRED`, not as failures, and they run normally on the turn the self-gate passes. `runtime` and `final` are never deferred: they carry the "does it execute" and "does it behave" signals the unblocking exists to deliver. Set `UAP_LADDER_NO_COST_CEILING=1` to run the full ladder every turn regardless.
|
|
101
|
+
|
|
98
102
|
### CI / deploy feedback loop
|
|
99
103
|
|
|
100
104
|
The `ci`, `deploy-staging`, and `deploy-prod` tiers are **never run locally** — they are verified by CI after commit. With `--watch-ci`, once the local tiers are green `deliver`:
|
package/package.json
CHANGED
|
Binary file
|
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import argparse
|
|
4
4
|
import json
|
|
5
5
|
import os
|
|
6
|
+
import re
|
|
6
7
|
import subprocess
|
|
7
8
|
import sys
|
|
8
9
|
from pathlib import Path
|
|
@@ -104,3 +105,108 @@ def arg_str(args: dict[str, Any]) -> str:
|
|
|
104
105
|
return json.dumps(args, default=str).lower()
|
|
105
106
|
except Exception: # noqa: BLE001
|
|
106
107
|
return str(args).lower()
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
# ---------------------------------------------------------------------------
|
|
111
|
+
# Command-text scanning
|
|
112
|
+
# ---------------------------------------------------------------------------
|
|
113
|
+
# Gates match markers ("terraform apply", "gh pr merge") as substrings of a
|
|
114
|
+
# Bash command. That also matches those words when they sit inside a DATA
|
|
115
|
+
# payload — a quoted prose argument or a heredoc body — so a command that
|
|
116
|
+
# merely *mentions* another command gets blocked as if it were one. Observed:
|
|
117
|
+
# `uap memory store "...gh pr merge..."` blocked by the IaC merge gate, and a
|
|
118
|
+
# `python3 - <<PY` heredoc whose body contained a path-shaped string blocked by
|
|
119
|
+
# workdir-scope.
|
|
120
|
+
#
|
|
121
|
+
# SAFETY: text handed to a shell IS a command, not data. If the command
|
|
122
|
+
# contains any shell-exec construct, nothing is stripped — stripping it would
|
|
123
|
+
# turn `bash -c "terraform apply"` into a bypass. Likewise a payload
|
|
124
|
+
# containing command substitution is left intact.
|
|
125
|
+
|
|
126
|
+
# `sh -c` / `bash -c` (any -flags form), plus the other ways text becomes code.
|
|
127
|
+
_SHELL_EXEC_RE = re.compile(
|
|
128
|
+
r"(?:^|[\s;|&(<])(?:ba|z|k|da|a)?sh\s+(?:-\w+\s+)*-\w*c\b"
|
|
129
|
+
r"|(?:^|[\s;|&(])(?:eval|source|exec|xargs|env)\b"
|
|
130
|
+
r"|(?:^|[\s;|&(])(?:ba|z|k|da|a)?sh\s*(?:<|$)",
|
|
131
|
+
re.I,
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
# Command substitution anywhere in a payload means it can execute.
|
|
135
|
+
_SUBST_RE = re.compile(r"\$\(|`|\$\{")
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
def hands_text_to_shell(cmd: str) -> bool:
|
|
139
|
+
"""True if `cmd` can turn argument/heredoc text into executed code.
|
|
140
|
+
|
|
141
|
+
When this holds, callers must scan the command verbatim: the payload is
|
|
142
|
+
itself a command.
|
|
143
|
+
"""
|
|
144
|
+
return bool(_SHELL_EXEC_RE.search(cmd or ""))
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def strip_heredoc_bodies(cmd: str) -> str:
|
|
148
|
+
"""`cmd` with heredoc BODIES removed, delimiters kept.
|
|
149
|
+
|
|
150
|
+
A heredoc body is data being fed to a program's stdin (a Python script, a
|
|
151
|
+
commit message, a JSON blob). Scanning it line-by-line as if each line were
|
|
152
|
+
a shell command produces false positives. Returns `cmd` unchanged when the
|
|
153
|
+
heredoc could be executed (`bash <<EOF`, or any shell-exec in the command).
|
|
154
|
+
"""
|
|
155
|
+
if not cmd or "<<" not in cmd:
|
|
156
|
+
return cmd
|
|
157
|
+
if hands_text_to_shell(cmd):
|
|
158
|
+
return cmd
|
|
159
|
+
|
|
160
|
+
out: list[str] = []
|
|
161
|
+
lines = cmd.split("\n")
|
|
162
|
+
i = 0
|
|
163
|
+
while i < len(lines):
|
|
164
|
+
line = lines[i]
|
|
165
|
+
out.append(line)
|
|
166
|
+
# <<EOF | <<-EOF | <<'EOF' | <<"EOF"
|
|
167
|
+
m = re.search(r"<<-?\s*(['\"]?)([A-Za-z_][A-Za-z0-9_]*)\1", line)
|
|
168
|
+
i += 1
|
|
169
|
+
if not m:
|
|
170
|
+
continue
|
|
171
|
+
delim = m.group(2)
|
|
172
|
+
# Drop everything up to (and including) the terminator.
|
|
173
|
+
while i < len(lines) and lines[i].strip() != delim:
|
|
174
|
+
i += 1
|
|
175
|
+
if i < len(lines):
|
|
176
|
+
out.append(lines[i]) # keep the terminator so structure survives
|
|
177
|
+
i += 1
|
|
178
|
+
return "\n".join(out)
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def scannable_command(cmd: str) -> str:
|
|
182
|
+
"""`cmd` reduced to the parts that are actually COMMANDS.
|
|
183
|
+
|
|
184
|
+
Removes data payloads — heredoc bodies, and quoted multi-word blobs — so a
|
|
185
|
+
marker match means the command really does what the marker names. Use for
|
|
186
|
+
marker/substring gates.
|
|
187
|
+
|
|
188
|
+
NOT for gates that must inspect quoted arguments (a write destination is
|
|
189
|
+
routinely quoted: `cp x "/etc/passwd"`). Those want
|
|
190
|
+
strip_heredoc_bodies() only.
|
|
191
|
+
|
|
192
|
+
Nothing is stripped when the command hands text to a shell, or from a blob
|
|
193
|
+
containing command substitution.
|
|
194
|
+
"""
|
|
195
|
+
if not cmd:
|
|
196
|
+
return cmd
|
|
197
|
+
if hands_text_to_shell(cmd):
|
|
198
|
+
return cmd
|
|
199
|
+
|
|
200
|
+
cmd = strip_heredoc_bodies(cmd)
|
|
201
|
+
|
|
202
|
+
def _blank(m: re.Match[str]) -> str:
|
|
203
|
+
body = m.group(2)
|
|
204
|
+
# Single-word quoted values are ordinary arguments ("--repo", a path,
|
|
205
|
+
# a branch); keep them. Multi-word blobs are prose/data.
|
|
206
|
+
if " " not in body and "\t" not in body:
|
|
207
|
+
return m.group(0)
|
|
208
|
+
if _SUBST_RE.search(body):
|
|
209
|
+
return m.group(0) # could execute — leave it visible
|
|
210
|
+
return f"{m.group(1)}{m.group(1)}" # empty quotes, structure preserved
|
|
211
|
+
|
|
212
|
+
return re.sub(r"(['\"])(.*?)\1", _blank, cmd, flags=re.S)
|
|
@@ -26,7 +26,14 @@ from pathlib import Path
|
|
|
26
26
|
import sys
|
|
27
27
|
|
|
28
28
|
sys.path.insert(0, str(Path(__file__).parent))
|
|
29
|
-
from _common import
|
|
29
|
+
from _common import ( # noqa: E402
|
|
30
|
+
emit,
|
|
31
|
+
parse_cli,
|
|
32
|
+
arg_str,
|
|
33
|
+
repo_root,
|
|
34
|
+
run,
|
|
35
|
+
scannable_command,
|
|
36
|
+
)
|
|
30
37
|
|
|
31
38
|
ACK = Path(os.environ.get("UAP_STATE_DIR", ".uap")) / "iac_plan_reviewed.json"
|
|
32
39
|
ACK_TTL = 2 * 60 * 60 # 2 hours
|
|
@@ -117,9 +124,13 @@ def main() -> None:
|
|
|
117
124
|
if op not in ("Bash", "bash"):
|
|
118
125
|
emit(True, "not a bash op")
|
|
119
126
|
raw_cmd = args.get("command") or ""
|
|
120
|
-
# Markers are matched
|
|
121
|
-
#
|
|
122
|
-
|
|
127
|
+
# Markers are matched against the COMMAND text only — scannable_command()
|
|
128
|
+
# drops quoted prose and heredoc bodies, so a call that merely mentions a
|
|
129
|
+
# merge (e.g. `uap memory store "...gh pr merge..."`) is not treated as
|
|
130
|
+
# one. Text handed to a shell is left intact, so `sh -c "terraform apply"`
|
|
131
|
+
# still trips the gate. repo_selector() gets the raw command because it
|
|
132
|
+
# needs the original case of an owner/name argument.
|
|
133
|
+
cmd = scannable_command(raw_cmd).lower()
|
|
123
134
|
|
|
124
135
|
is_tf_apply = any(m in cmd for m in APPLY_MARKERS)
|
|
125
136
|
is_wf_apply = any(m in cmd for m in WORKFLOW_APPLY) and "iac-terraform" in cmd and "apply" in cmd
|
|
@@ -29,6 +29,7 @@ from pathlib import Path
|
|
|
29
29
|
|
|
30
30
|
sys.path.insert(0, str(Path(__file__).parent))
|
|
31
31
|
from _common import emit, parse_cli, repo_root, worktree_root # noqa: E402
|
|
32
|
+
from _common import strip_heredoc_bodies # noqa: E402
|
|
32
33
|
|
|
33
34
|
# Tools that create/modify a file at an explicit path argument.
|
|
34
35
|
PATH_WRITE_OPS = {
|
|
@@ -119,6 +120,11 @@ def _scan_bash(cmd: str, roots: list[Path]) -> str:
|
|
|
119
120
|
create/move verbs and output redirections, and ignores read sources."""
|
|
120
121
|
if not cmd:
|
|
121
122
|
return ""
|
|
123
|
+
# A heredoc body is stdin data for the program being run (a Python script,
|
|
124
|
+
# a commit message), not a sequence of shell commands. Scanning it split on
|
|
125
|
+
# newlines flags any path-shaped string inside it. Bodies that could be
|
|
126
|
+
# executed are left in place by the helper.
|
|
127
|
+
cmd = strip_heredoc_bodies(cmd)
|
|
122
128
|
try:
|
|
123
129
|
tokens = shlex.split(cmd, comments=True)
|
|
124
130
|
except ValueError:
|
|
Binary file
|