@empire-builder-kit/nx 1.0.0-rc.32 → 1.0.0-rc.34
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/package.json +3 -3
- package/src/aws-authority/stage-authority.js +4 -0
- package/src/aws-authority/stage-authority.js.map +1 -1
- package/src/developer-agent/model.d.ts +1 -1
- package/src/developer-agent/operation-registry.js +25 -3
- package/src/developer-agent/operation-registry.js.map +1 -1
- package/src/developer-agent/planning.js +9 -4
- package/src/developer-agent/planning.js.map +1 -1
- package/src/developer-agent/validation.js +5 -1
- package/src/developer-agent/validation.js.map +1 -1
- package/src/executors/deployment-plan/deployment-plan.js +3 -0
- package/src/executors/deployment-plan/deployment-plan.js.map +1 -1
- package/src/executors/foundation-profile-preflight/production-database-safeguard.d.ts +1 -0
- package/src/executors/foundation-profile-preflight/production-database-safeguard.js +4 -2
- package/src/executors/foundation-profile-preflight/production-database-safeguard.js.map +1 -1
- package/src/executors/github-bootstrap/github-bootstrap.js +1 -0
- package/src/executors/github-bootstrap/github-bootstrap.js.map +1 -1
- package/src/executors/local-deploy/local-deploy.d.ts +21 -3
- package/src/executors/local-deploy/local-deploy.js +201 -1
- package/src/executors/local-deploy/local-deploy.js.map +1 -1
- package/src/executors/local-deploy/schema.json +21 -0
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.d.ts +13 -0
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js +323 -137
- package/src/executors/router-waf-rehearsal/router-waf-rehearsal.js.map +1 -1
- package/src/executors/router-waf-rehearsal/schema.json +5 -0
- package/src/executors/secret-initialize/secret-initialize.d.ts +2 -0
- package/src/executors/secret-initialize/secret-initialize.js +57 -3
- package/src/executors/secret-initialize/secret-initialize.js.map +1 -1
- package/src/executors/sst-lifecycle/run-sst-command.d.ts +2 -0
- package/src/executors/sst-lifecycle/run-sst-command.js +4 -0
- package/src/executors/sst-lifecycle/run-sst-command.js.map +1 -1
- package/src/foundation/index.d.ts +1 -0
- package/src/foundation/index.js +8 -0
- package/src/foundation/index.js.map +1 -1
- package/src/foundation/private-smoke-access.d.ts +23 -0
- package/src/foundation/private-smoke-access.js +127 -0
- package/src/foundation/private-smoke-access.js.map +1 -0
- package/src/foundation/private-smoke-admission.d.ts +43 -0
- package/src/foundation/private-smoke-admission.js +158 -0
- package/src/foundation/private-smoke-admission.js.map +1 -0
- package/src/foundation/private-smoke-control-plane.d.ts +18 -0
- package/src/foundation/private-smoke-control-plane.js +173 -0
- package/src/foundation/private-smoke-control-plane.js.map +1 -0
- package/src/generators/preset/dependency-overrides.d.ts +8 -0
- package/src/generators/preset/dependency-overrides.js +55 -0
- package/src/generators/preset/dependency-overrides.js.map +1 -0
- package/src/generators/preset/tool-versions.d.ts +2 -0
- package/src/generators/preset/tool-versions.js +3 -1
- package/src/generators/preset/tool-versions.js.map +1 -1
- package/src/generators/preset/workspace-files-developer-agent.js +19 -6
- package/src/generators/preset/workspace-files-developer-agent.js.map +1 -1
- package/src/generators/preset/workspace-files-thin-deploy.d.ts +16 -1
- package/src/generators/preset/workspace-files-thin-deploy.js +946 -26
- package/src/generators/preset/workspace-files-thin-deploy.js.map +1 -1
- package/src/generators/preset/workspace-files-thin-docs.d.ts +2 -0
- package/src/generators/preset/workspace-files-thin-docs.js +66 -6
- package/src/generators/preset/workspace-files-thin-docs.js.map +1 -1
- package/src/generators/preset/workspace-files.d.ts +8 -1
- package/src/generators/preset/workspace-files.js +97 -21
- package/src/generators/preset/workspace-files.js.map +1 -1
- package/src/generators/repository-policy/repository-policy.js +1 -0
- package/src/generators/repository-policy/repository-policy.js.map +1 -1
- package/src/generators/repository-policy/schema.d.ts +2 -0
- package/src/generators/repository-policy/schema.json +27 -7
- package/src/generators/slice/built-in-plan-background-work-files.d.ts +2 -0
- package/src/generators/slice/built-in-plan-background-work-files.js +89 -0
- package/src/generators/slice/built-in-plan-background-work-files.js.map +1 -0
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js +20 -4
- package/src/generators/slice/built-in-plan-database-lifecycle-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-infrastructure-files.js +22 -9
- package/src/generators/slice/built-in-plan-infrastructure-files.js.map +1 -1
- package/src/generators/slice/built-in-plan-operations-files.js +8 -10
- package/src/generators/slice/built-in-plan-operations-files.js.map +1 -1
- package/src/generators/slice/built-in-plan.js +3 -0
- package/src/generators/slice/built-in-plan.js.map +1 -1
- package/src/generators/upgrade/upgrade.d.ts +12 -0
- package/src/generators/upgrade/upgrade.js +84 -9
- package/src/generators/upgrade/upgrade.js.map +1 -1
- package/src/generators/workload/workload.js +1 -1
- package/src/git-policy/action-pins.d.ts +5 -0
- package/src/git-policy/action-pins.js +5 -0
- package/src/git-policy/action-pins.js.map +1 -1
- package/src/git-policy/github-bootstrap.d.ts +10 -2
- package/src/git-policy/github-bootstrap.js +129 -34
- package/src/git-policy/github-bootstrap.js.map +1 -1
- package/src/git-policy/routing.d.ts +5 -1
- package/src/git-policy/routing.js +50 -0
- package/src/git-policy/routing.js.map +1 -1
- package/src/performance/model.d.ts +1 -1
- package/src/repository-policy/capacity-migration.d.ts +3 -0
- package/src/repository-policy/capacity-migration.js +21 -0
- package/src/repository-policy/capacity-migration.js.map +1 -0
- package/src/repository-policy/foundation-profile.js +10 -0
- package/src/repository-policy/foundation-profile.js.map +1 -1
- package/src/repository-policy/policy.d.ts +13 -2
- package/src/repository-policy/policy.js +47 -2
- package/src/repository-policy/policy.js.map +1 -1
- package/src/schemas/repository-policy-v1.json +56 -17
- package/src/supply-chain/generated-container-release-command.js +281 -74
- package/src/supply-chain/generated-container-release-command.js.map +1 -1
- package/src/supply-chain/generated-files.js +21 -11
- package/src/supply-chain/generated-files.js.map +1 -1
- package/src/supply-chain/generated-scanner-command.js +1 -1
- package/src/supply-chain/scanner.js +3 -0
- package/src/supply-chain/scanner.js.map +1 -1
- package/src/workspace-deployment/affected-lifecycle.d.ts +53 -0
- package/src/workspace-deployment/affected-lifecycle.js +84 -0
- package/src/workspace-deployment/affected-lifecycle.js.map +1 -0
- package/src/workspace-deployment/index.d.ts +1 -0
- package/src/workspace-deployment/index.js +1 -0
- package/src/workspace-deployment/index.js.map +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EBK_CODE_OWNER_PLACEHOLDER = exports.EBK_PROTECTED_ENVIRONMENT_VARIABLES = exports.EBK_PROTECTED_ENVIRONMENT_SECRETS = exports.EBK_STAGING_PROMOTION_PULL_ROLE_SECRET = exports.EBK_PERFORMANCE_ORIGINS_VARIABLE = exports.EBK_PERFORMANCE_LOAD_ROLE_SECRET = exports.EBK_PERFORMANCE_COST_ROLE_SECRET = exports.EBK_PERFORMANCE_AGGREGATE_ROLE_SECRET = exports.EBK_ASYNC_RECOVERY_ROLE_SECRET = exports.EBK_ECR_INSPECTOR_EVIDENCE_ROLE_SECRET = exports.EBK_RETIRED_DEPLOYMENT_ROLE_SECRET = exports.EBK_REQUIRED_CHECKS = exports.EBK_PROTECTED_BRANCH_RULESET_NAME = void 0;
|
|
3
|
+
exports.EBK_CODE_OWNER_PLACEHOLDER = exports.EBK_PROTECTED_ENVIRONMENT_VARIABLES = exports.EBK_PROTECTED_ENVIRONMENT_SECRETS = exports.EBK_STAGING_PROMOTION_PULL_ROLE_SECRET = exports.EBK_PROTECTED_MAIN_RULESET_NAME = exports.EBK_RECORD_MAIN_TOKEN_SECRET = exports.EBK_PERFORMANCE_ORIGINS_VARIABLE = exports.EBK_PERFORMANCE_LOAD_ROLE_SECRET = exports.EBK_PERFORMANCE_COST_ROLE_SECRET = exports.EBK_PERFORMANCE_AGGREGATE_ROLE_SECRET = exports.EBK_ASYNC_RECOVERY_ROLE_SECRET = exports.EBK_ECR_INSPECTOR_EVIDENCE_ROLE_SECRET = exports.EBK_RETIRED_DEPLOYMENT_ROLE_SECRET = exports.EBK_REQUIRED_CHECKS = exports.EBK_PROTECTED_BRANCH_RULESET_NAME = void 0;
|
|
4
4
|
exports.githubEnvironmentTopology = githubEnvironmentTopology;
|
|
5
5
|
exports.runGitHubBootstrap = runGitHubBootstrap;
|
|
6
6
|
const index_js_1 = require("../repository-policy/index.js");
|
|
@@ -14,6 +14,10 @@ exports.EBK_PERFORMANCE_AGGREGATE_ROLE_SECRET = 'AWS_PERFORMANCE_AGGREGATE_ROLE_
|
|
|
14
14
|
exports.EBK_PERFORMANCE_COST_ROLE_SECRET = 'AWS_PERFORMANCE_COST_ROLE_ARN';
|
|
15
15
|
exports.EBK_PERFORMANCE_LOAD_ROLE_SECRET = 'AWS_PERFORMANCE_LOAD_ROLE_ARN';
|
|
16
16
|
exports.EBK_PERFORMANCE_ORIGINS_VARIABLE = 'EBK_PERFORMANCE_ORIGINS_JSON';
|
|
17
|
+
/** Production environment secret that lets trunk promotion fast-forward main. */
|
|
18
|
+
exports.EBK_RECORD_MAIN_TOKEN_SECRET = 'EBK_RECORD_MAIN_TOKEN';
|
|
19
|
+
/** Trunk promotion keeps main behind status checks and fast-forward pushes only. */
|
|
20
|
+
exports.EBK_PROTECTED_MAIN_RULESET_NAME = 'EBK protected main (trunk promotion)';
|
|
17
21
|
exports.EBK_STAGING_PROMOTION_PULL_ROLE_SECRET = 'AWS_STAGING_PROMOTION_PULL_ROLE_ARN';
|
|
18
22
|
exports.EBK_PROTECTED_ENVIRONMENT_SECRETS = [
|
|
19
23
|
exports.EBK_ASYNC_RECOVERY_ROLE_SECRET,
|
|
@@ -39,6 +43,10 @@ const GITHUB_API_VERSION = '2026-03-10';
|
|
|
39
43
|
const GITHUB_IMMUTABLE_OIDC_CHANGE = 'Use the default immutable GitHub OIDC repository subject.';
|
|
40
44
|
const GITHUB_IMMUTABLE_OIDC_TRUST_ACKNOWLEDGEMENT_PREFIX = 'aws-trust-ready:';
|
|
41
45
|
const PROTECTED_BRANCHES = ['develop', 'main'];
|
|
46
|
+
/** The trunk lane protects main alone; the protected pair protects both. */
|
|
47
|
+
function protectedBranchesFor(deliveryLane = 'protected-pair') {
|
|
48
|
+
return deliveryLane === 'trunk' ? ['main'] : PROTECTED_BRANCHES;
|
|
49
|
+
}
|
|
42
50
|
const BASE_STAGE_VARIABLES = exports.EBK_PROTECTED_ENVIRONMENT_VARIABLES.filter((variable) => variable !== 'EBK_ALLOW_PRODUCTION_REMOVE' &&
|
|
43
51
|
!variable.startsWith('AWS_STAGING_PROMOTION_'));
|
|
44
52
|
const PRODUCTION_STAGE_VARIABLES = exports.EBK_PROTECTED_ENVIRONMENT_VARIABLES;
|
|
@@ -72,7 +80,26 @@ function stageEnvironmentTopology(stage, deploymentProfile) {
|
|
|
72
80
|
* Starter uses development as its rehearsal stage; isolated profiles use
|
|
73
81
|
* staging. Production and npm publication remain present for every profile.
|
|
74
82
|
*/
|
|
75
|
-
function githubEnvironmentTopology(deploymentProfile) {
|
|
83
|
+
function githubEnvironmentTopology(deploymentProfile, deliveryLane = 'protected-pair', productionApprovalMode = 'promotion-pr') {
|
|
84
|
+
if (deliveryLane === 'trunk') {
|
|
85
|
+
// Trunk lane: development stays local; only production-stage
|
|
86
|
+
// environments exist and every one of them binds to main.
|
|
87
|
+
return githubEnvironmentTopology(deploymentProfile).filter(({ stage }) => stage === 'production');
|
|
88
|
+
}
|
|
89
|
+
if (productionApprovalMode === 'trunk-promotion') {
|
|
90
|
+
// Trunk promotion: the develop run itself promotes and deploys
|
|
91
|
+
// production, so every production-stage environment also admits
|
|
92
|
+
// develop, and the production stage holds the record-main token.
|
|
93
|
+
return githubEnvironmentTopology(deploymentProfile).map((entry) => entry.stage === 'production'
|
|
94
|
+
? Object.freeze({
|
|
95
|
+
...entry,
|
|
96
|
+
additionalBranches: Object.freeze(['develop']),
|
|
97
|
+
requiredSecrets: Object.freeze(entry.name === 'production'
|
|
98
|
+
? [...entry.requiredSecrets, exports.EBK_RECORD_MAIN_TOKEN_SECRET]
|
|
99
|
+
: [...entry.requiredSecrets]),
|
|
100
|
+
})
|
|
101
|
+
: entry);
|
|
102
|
+
}
|
|
76
103
|
const rehearsalStage = deploymentProfile === 'starter' ? 'development' : 'staging';
|
|
77
104
|
const stages = [
|
|
78
105
|
'production',
|
|
@@ -334,7 +361,7 @@ function refPatternMatches(pattern, ref) {
|
|
|
334
361
|
.replace(/\?/g, '.');
|
|
335
362
|
return new RegExp(`^${expression}$`).test(ref);
|
|
336
363
|
}
|
|
337
|
-
function rulesetTouchesProtectedBranches(ruleset) {
|
|
364
|
+
function rulesetTouchesProtectedBranches(ruleset, deliveryLane = 'protected-pair') {
|
|
338
365
|
const conditions = typeof ruleset.conditions === 'object' && ruleset.conditions !== null
|
|
339
366
|
? ruleset.conditions
|
|
340
367
|
: {};
|
|
@@ -345,7 +372,7 @@ function rulesetTouchesProtectedBranches(ruleset) {
|
|
|
345
372
|
return true;
|
|
346
373
|
const include = asStrings(refName.include);
|
|
347
374
|
const exclude = asStrings(refName.exclude);
|
|
348
|
-
return
|
|
375
|
+
return protectedBranchesFor(deliveryLane).some((branch) => {
|
|
349
376
|
const ref = `refs/heads/${branch}`;
|
|
350
377
|
const included = include.length === 0 ||
|
|
351
378
|
include.some((pattern) => refPatternMatches(pattern, ref));
|
|
@@ -353,9 +380,9 @@ function rulesetTouchesProtectedBranches(ruleset) {
|
|
|
353
380
|
return included && !excluded;
|
|
354
381
|
});
|
|
355
382
|
}
|
|
356
|
-
function conflictsWithMergeCommitContract(ruleset) {
|
|
383
|
+
function conflictsWithMergeCommitContract(ruleset, deliveryLane = 'protected-pair') {
|
|
357
384
|
if (!activeBranchRuleset(ruleset) ||
|
|
358
|
-
!rulesetTouchesProtectedBranches(ruleset)) {
|
|
385
|
+
!rulesetTouchesProtectedBranches(ruleset, deliveryLane)) {
|
|
359
386
|
return [];
|
|
360
387
|
}
|
|
361
388
|
const conflicts = [];
|
|
@@ -417,13 +444,19 @@ function hasValidCatchAllCodeOwner(contents) {
|
|
|
417
444
|
effectiveOwners.length > 0 &&
|
|
418
445
|
effectiveOwners.every((owner) => owner.startsWith('@') && owner !== exports.EBK_CODE_OWNER_PLACEHOLDER));
|
|
419
446
|
}
|
|
420
|
-
function desiredRuleset() {
|
|
447
|
+
function desiredRuleset(deliveryLane = 'protected-pair', productionApprovalMode = 'promotion-pr') {
|
|
448
|
+
// Trunk promotion records main by fast-forward from the deploy run, so
|
|
449
|
+
// the pull-request rule applies to develop alone and main keeps its own
|
|
450
|
+
// status-check and fast-forward-only ruleset.
|
|
451
|
+
const branches = productionApprovalMode === 'trunk-promotion' && deliveryLane !== 'trunk'
|
|
452
|
+
? ['develop']
|
|
453
|
+
: protectedBranchesFor(deliveryLane);
|
|
421
454
|
return {
|
|
422
455
|
bypass_actors: [],
|
|
423
456
|
conditions: {
|
|
424
457
|
ref_name: {
|
|
425
458
|
exclude: [],
|
|
426
|
-
include:
|
|
459
|
+
include: branches.map((branch) => `refs/heads/${branch}`),
|
|
427
460
|
},
|
|
428
461
|
},
|
|
429
462
|
enforcement: 'active',
|
|
@@ -455,6 +488,30 @@ function desiredRuleset() {
|
|
|
455
488
|
target: 'branch',
|
|
456
489
|
};
|
|
457
490
|
}
|
|
491
|
+
function desiredMainRuleset() {
|
|
492
|
+
return {
|
|
493
|
+
bypass_actors: [],
|
|
494
|
+
conditions: {
|
|
495
|
+
ref_name: { exclude: [], include: ['refs/heads/main'] },
|
|
496
|
+
},
|
|
497
|
+
enforcement: 'active',
|
|
498
|
+
name: exports.EBK_PROTECTED_MAIN_RULESET_NAME,
|
|
499
|
+
rules: [
|
|
500
|
+
{ type: 'deletion' },
|
|
501
|
+
{ type: 'non_fast_forward' },
|
|
502
|
+
{
|
|
503
|
+
parameters: {
|
|
504
|
+
required_status_checks: exports.EBK_REQUIRED_CHECKS.map((context) => ({
|
|
505
|
+
context,
|
|
506
|
+
})),
|
|
507
|
+
strict_required_status_checks_policy: true,
|
|
508
|
+
},
|
|
509
|
+
type: 'required_status_checks',
|
|
510
|
+
},
|
|
511
|
+
],
|
|
512
|
+
target: 'branch',
|
|
513
|
+
};
|
|
514
|
+
}
|
|
458
515
|
async function inspectEnvironment(api, repositoryPath, name) {
|
|
459
516
|
const encoded = encodeURIComponent(name);
|
|
460
517
|
let environment;
|
|
@@ -514,7 +571,7 @@ async function inspectEnvironment(api, repositoryPath, name) {
|
|
|
514
571
|
waitTimer: environmentWaitTimer(environment),
|
|
515
572
|
};
|
|
516
573
|
}
|
|
517
|
-
async function inspect(api, repositoryPath, productionApprovalMode, deploymentProfile) {
|
|
574
|
+
async function inspect(api, repositoryPath, productionApprovalMode, deploymentProfile, deliveryLane = 'protected-pair') {
|
|
518
575
|
const blockers = [];
|
|
519
576
|
const repo = await api.request('GET', repositoryPath);
|
|
520
577
|
const repositoryIdentity = inspectRepositoryIdentity(repo);
|
|
@@ -561,7 +618,7 @@ async function inspect(api, repositoryPath, productionApprovalMode, deploymentPr
|
|
|
561
618
|
}
|
|
562
619
|
}
|
|
563
620
|
}
|
|
564
|
-
for (const branch of
|
|
621
|
+
for (const branch of protectedBranchesFor(deliveryLane)) {
|
|
565
622
|
try {
|
|
566
623
|
const codeOwners = await api.request('GET', `${repositoryPath}/contents/.github/CODEOWNERS?ref=${branch}`);
|
|
567
624
|
const content = codeOwners.content;
|
|
@@ -594,7 +651,7 @@ async function inspect(api, repositoryPath, productionApprovalMode, deploymentPr
|
|
|
594
651
|
catch (error) {
|
|
595
652
|
blockers.push(`Ruleset enforcement could not be inspected: ${error instanceof Error ? error.message : String(error)}`);
|
|
596
653
|
}
|
|
597
|
-
for (const branch of
|
|
654
|
+
for (const branch of protectedBranchesFor(deliveryLane)) {
|
|
598
655
|
try {
|
|
599
656
|
const branchState = await api.request('GET', `${repositoryPath}/branches/${branch}`);
|
|
600
657
|
const commit = typeof branchState.commit === 'object' && branchState.commit !== null
|
|
@@ -686,7 +743,7 @@ async function inspect(api, repositoryPath, productionApprovalMode, deploymentPr
|
|
|
686
743
|
};
|
|
687
744
|
}
|
|
688
745
|
};
|
|
689
|
-
const environments = Object.fromEntries(await Promise.all(githubEnvironmentTopology(deploymentProfile).map(async ({ name }) => [name, await inspectNamedEnvironment(name)])));
|
|
746
|
+
const environments = Object.fromEntries(await Promise.all(githubEnvironmentTopology(deploymentProfile, deliveryLane, productionApprovalMode).map(async ({ name }) => [name, await inspectNamedEnvironment(name)])));
|
|
690
747
|
return {
|
|
691
748
|
blockers,
|
|
692
749
|
state: {
|
|
@@ -697,6 +754,8 @@ async function inspect(api, repositoryPath, productionApprovalMode, deploymentPr
|
|
|
697
754
|
orgVariableNames,
|
|
698
755
|
oidcSubjectCustomization,
|
|
699
756
|
ownerPlanName,
|
|
757
|
+
ownedMainRuleset: rulesets.find((ruleset) => ruleset.name === exports.EBK_PROTECTED_MAIN_RULESET_NAME &&
|
|
758
|
+
ruleset.source_type !== 'Organization'),
|
|
700
759
|
ownedRuleset: rulesets.find((ruleset) => ruleset.name === exports.EBK_PROTECTED_BRANCH_RULESET_NAME &&
|
|
701
760
|
ruleset.source_type !== 'Organization'),
|
|
702
761
|
repo,
|
|
@@ -707,7 +766,7 @@ async function inspect(api, repositoryPath, productionApprovalMode, deploymentPr
|
|
|
707
766
|
},
|
|
708
767
|
};
|
|
709
768
|
}
|
|
710
|
-
function evaluate(repository, state, inspectionBlockers, productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile = 'fully-isolated') {
|
|
769
|
+
function evaluate(repository, state, inspectionBlockers, productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile = 'fully-isolated', deliveryLane = 'protected-pair') {
|
|
711
770
|
const blockers = [...inspectionBlockers];
|
|
712
771
|
const changes = [];
|
|
713
772
|
const warnings = [];
|
|
@@ -759,7 +818,7 @@ function evaluate(repository, state, inspectionBlockers, productionApprovalMode,
|
|
|
759
818
|
}
|
|
760
819
|
}
|
|
761
820
|
for (const ruleset of state.rulesets) {
|
|
762
|
-
const conflicts = conflictsWithMergeCommitContract(ruleset);
|
|
821
|
+
const conflicts = conflictsWithMergeCommitContract(ruleset, deliveryLane);
|
|
763
822
|
if (conflicts.length > 0) {
|
|
764
823
|
blockers.push(`Active ruleset ${String(ruleset.name ?? ruleset.id ?? 'unknown')} ${conflicts.join(' and ')}.`);
|
|
765
824
|
}
|
|
@@ -767,26 +826,42 @@ function evaluate(repository, state, inspectionBlockers, productionApprovalMode,
|
|
|
767
826
|
if (!state.ownedRuleset) {
|
|
768
827
|
changes.push(`Create ruleset ${exports.EBK_PROTECTED_BRANCH_RULESET_NAME}.`);
|
|
769
828
|
}
|
|
770
|
-
else if (
|
|
771
|
-
JSON.stringify(normalizeRuleset(desiredRuleset()))) {
|
|
829
|
+
else if (!rulesetMatchesDesired(state.ownedRuleset, deliveryLane, productionApprovalMode)) {
|
|
772
830
|
changes.push(`Update ruleset ${exports.EBK_PROTECTED_BRANCH_RULESET_NAME}.`);
|
|
773
831
|
}
|
|
774
|
-
|
|
832
|
+
if (productionApprovalMode === 'trunk-promotion') {
|
|
833
|
+
if (!state.ownedMainRuleset) {
|
|
834
|
+
changes.push(`Create ruleset ${exports.EBK_PROTECTED_MAIN_RULESET_NAME}.`);
|
|
835
|
+
}
|
|
836
|
+
else if (JSON.stringify(normalizeRuleset(state.ownedMainRuleset)) !==
|
|
837
|
+
JSON.stringify(normalizeRuleset(desiredMainRuleset()))) {
|
|
838
|
+
changes.push(`Update ruleset ${exports.EBK_PROTECTED_MAIN_RULESET_NAME}.`);
|
|
839
|
+
}
|
|
840
|
+
warnings.push('Trunk promotion keeps main behind required status checks and fast-forward-only updates without a pull-request rule; the production environment secret EBK_RECORD_MAIN_TOKEN is the intended writer, and any other contents-write actor could push an already verified commit.');
|
|
841
|
+
}
|
|
842
|
+
else if (state.ownedMainRuleset) {
|
|
843
|
+
changes.push(`Delete ruleset ${exports.EBK_PROTECTED_MAIN_RULESET_NAME}.`);
|
|
844
|
+
}
|
|
845
|
+
for (const topology of githubEnvironmentTopology(deploymentProfile, deliveryLane, productionApprovalMode)) {
|
|
775
846
|
const { branch, name: environment, stage } = topology;
|
|
847
|
+
const allowedBranches = [branch, ...(topology.additionalBranches ?? [])];
|
|
776
848
|
const current = state.environments[environment];
|
|
777
849
|
if (!current.exists)
|
|
778
850
|
changes.push(`Create ${environment} environment.`);
|
|
779
851
|
if (!current.customBranchPolicies) {
|
|
780
852
|
changes.push(`Enable custom deployment branch policy for ${environment}.`);
|
|
781
853
|
}
|
|
782
|
-
const extras = current.branchPolicies.filter(({ name, type }) =>
|
|
854
|
+
const extras = current.branchPolicies.filter(({ name, type }) => type !== 'branch' ||
|
|
855
|
+
!allowedBranches.includes(name));
|
|
783
856
|
if (extras.length > 0) {
|
|
784
857
|
blockers.push(`${environment} permits unexpected deployment refs: ${extras
|
|
785
858
|
.map(({ name, type }) => `${type}:${name}`)
|
|
786
859
|
.join(', ')}.`);
|
|
787
860
|
}
|
|
788
|
-
|
|
789
|
-
|
|
861
|
+
for (const allowed of allowedBranches) {
|
|
862
|
+
if (!current.branchPolicies.some(({ name, type }) => name === allowed && type === 'branch')) {
|
|
863
|
+
changes.push(`Restrict ${environment} deployment to ${allowed}.`);
|
|
864
|
+
}
|
|
790
865
|
}
|
|
791
866
|
const requiredSecrets = topology.requiredSecrets;
|
|
792
867
|
for (const secret of requiredSecrets) {
|
|
@@ -927,11 +1002,11 @@ function normalizeRuleset(ruleset) {
|
|
|
927
1002
|
function existingReviewerPayload(ids) {
|
|
928
1003
|
return ids.map((id) => ({ id, type: 'User' }));
|
|
929
1004
|
}
|
|
930
|
-
function rulesetMatchesDesired(ruleset) {
|
|
1005
|
+
function rulesetMatchesDesired(ruleset, deliveryLane = 'protected-pair', productionApprovalMode = 'promotion-pr') {
|
|
931
1006
|
return (JSON.stringify(normalizeRuleset(ruleset)) ===
|
|
932
|
-
JSON.stringify(normalizeRuleset(desiredRuleset())));
|
|
1007
|
+
JSON.stringify(normalizeRuleset(desiredRuleset(deliveryLane, productionApprovalMode))));
|
|
933
1008
|
}
|
|
934
|
-
async function applyChanges(api, repositoryPath, state, productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile) {
|
|
1009
|
+
async function applyChanges(api, repositoryPath, state, productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile, deliveryLane = 'protected-pair') {
|
|
935
1010
|
if (requiresImmutableOidcSubjectCutover(state)) {
|
|
936
1011
|
await api.request('PUT', `${repositoryPath}/actions/oidc/customization/sub`, { use_default: true, use_immutable_subject: true });
|
|
937
1012
|
}
|
|
@@ -944,17 +1019,34 @@ async function applyChanges(api, repositoryPath, state, productionApprovalMode,
|
|
|
944
1019
|
allow_squash_merge: false,
|
|
945
1020
|
});
|
|
946
1021
|
}
|
|
947
|
-
const desired = desiredRuleset();
|
|
1022
|
+
const desired = desiredRuleset(deliveryLane, productionApprovalMode);
|
|
948
1023
|
if (state.ownedRuleset &&
|
|
949
1024
|
typeof state.ownedRuleset.id === 'number' &&
|
|
950
|
-
!rulesetMatchesDesired(state.ownedRuleset)) {
|
|
1025
|
+
!rulesetMatchesDesired(state.ownedRuleset, deliveryLane, productionApprovalMode)) {
|
|
951
1026
|
await api.request('PUT', `${repositoryPath}/rulesets/${state.ownedRuleset.id}`, desired);
|
|
952
1027
|
}
|
|
953
1028
|
else if (!state.ownedRuleset) {
|
|
954
1029
|
await api.request('POST', `${repositoryPath}/rulesets`, desired);
|
|
955
1030
|
}
|
|
956
|
-
|
|
1031
|
+
if (productionApprovalMode === 'trunk-promotion') {
|
|
1032
|
+
const desiredMain = desiredMainRuleset();
|
|
1033
|
+
if (state.ownedMainRuleset &&
|
|
1034
|
+
typeof state.ownedMainRuleset.id === 'number' &&
|
|
1035
|
+
JSON.stringify(normalizeRuleset(state.ownedMainRuleset)) !==
|
|
1036
|
+
JSON.stringify(normalizeRuleset(desiredMain))) {
|
|
1037
|
+
await api.request('PUT', `${repositoryPath}/rulesets/${state.ownedMainRuleset.id}`, desiredMain);
|
|
1038
|
+
}
|
|
1039
|
+
else if (!state.ownedMainRuleset) {
|
|
1040
|
+
await api.request('POST', `${repositoryPath}/rulesets`, desiredMain);
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
else if (state.ownedMainRuleset &&
|
|
1044
|
+
typeof state.ownedMainRuleset.id === 'number') {
|
|
1045
|
+
await api.request('DELETE', `${repositoryPath}/rulesets/${state.ownedMainRuleset.id}`);
|
|
1046
|
+
}
|
|
1047
|
+
for (const topology of githubEnvironmentTopology(deploymentProfile, deliveryLane, productionApprovalMode)) {
|
|
957
1048
|
const { branch, name: environment, stage } = topology;
|
|
1049
|
+
const allowedBranches = [branch, ...(topology.additionalBranches ?? [])];
|
|
958
1050
|
const current = state.environments[environment];
|
|
959
1051
|
const desiredProtection = desiredEnvironmentProtection(topology, state, productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds);
|
|
960
1052
|
const reviewers = desiredProtection.reviewers;
|
|
@@ -986,8 +1078,10 @@ async function applyChanges(api, repositoryPath, state, productionApprovalMode,
|
|
|
986
1078
|
: {}),
|
|
987
1079
|
});
|
|
988
1080
|
}
|
|
989
|
-
|
|
990
|
-
|
|
1081
|
+
for (const allowed of allowedBranches) {
|
|
1082
|
+
if (!current.branchPolicies.some(({ name, type }) => name === allowed && type === 'branch')) {
|
|
1083
|
+
await api.request('POST', `${repositoryPath}/environments/${encodeURIComponent(environment)}/deployment-branch-policies`, { name: allowed, type: 'branch' });
|
|
1084
|
+
}
|
|
991
1085
|
}
|
|
992
1086
|
}
|
|
993
1087
|
}
|
|
@@ -999,7 +1093,7 @@ async function runGitHubBootstrap(options) {
|
|
|
999
1093
|
throw new Error('GH_TOKEN or GITHUB_TOKEN is required for GitHub bootstrap.');
|
|
1000
1094
|
}
|
|
1001
1095
|
if (!index_js_1.PRODUCTION_APPROVAL_MODES.includes(options.productionApprovalMode)) {
|
|
1002
|
-
throw new Error('Production approval mode must be the explicit committed value promotion-pr or
|
|
1096
|
+
throw new Error('Production approval mode must be the explicit committed value promotion-pr, environment-reviewer, or trunk-promotion.');
|
|
1003
1097
|
}
|
|
1004
1098
|
if (!index_js_1.DEPLOYMENT_PROFILES.includes(deploymentProfile)) {
|
|
1005
1099
|
throw new Error('Deployment profile must be starter, production-isolated, or fully-isolated.');
|
|
@@ -1022,8 +1116,9 @@ async function runGitHubBootstrap(options) {
|
|
|
1022
1116
|
}
|
|
1023
1117
|
const api = new GitHubApi(options.apiBaseUrl?.trim() || 'https://api.github.com', options.token);
|
|
1024
1118
|
const repositoryPath = `/repos/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}`;
|
|
1025
|
-
const
|
|
1026
|
-
const
|
|
1119
|
+
const deliveryLane = options.deliveryLane ?? 'protected-pair';
|
|
1120
|
+
const initial = await inspect(api, repositoryPath, options.productionApprovalMode, deploymentProfile, deliveryLane);
|
|
1121
|
+
const report = evaluate(repository, initial.state, initial.blockers, options.productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile, deliveryLane);
|
|
1027
1122
|
if (!options.apply)
|
|
1028
1123
|
return report;
|
|
1029
1124
|
if (report.blockers.length > 0) {
|
|
@@ -1039,8 +1134,8 @@ async function runGitHubBootstrap(options) {
|
|
|
1039
1134
|
throw new Error(`GitHub bootstrap immutable OIDC subject cutover requires the exact AWS-trust readiness acknowledgement ${JSON.stringify(expectedAcknowledgement)}. Apply the matching immutable repository-subject AWS trusts, read them back, and rerun with --immutableOidcTrustAcknowledgement=${JSON.stringify(expectedAcknowledgement)}. No GitHub settings were changed.`);
|
|
1040
1135
|
}
|
|
1041
1136
|
}
|
|
1042
|
-
await applyChanges(api, repositoryPath, initial.state, options.productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile);
|
|
1043
|
-
const completed = await inspect(api, repositoryPath, options.productionApprovalMode, deploymentProfile);
|
|
1044
|
-
return evaluate(repository, completed.state, completed.blockers, options.productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile);
|
|
1137
|
+
await applyChanges(api, repositoryPath, initial.state, options.productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile, deliveryLane);
|
|
1138
|
+
const completed = await inspect(api, repositoryPath, options.productionApprovalMode, deploymentProfile, deliveryLane);
|
|
1139
|
+
return evaluate(repository, completed.state, completed.blockers, options.productionApprovalMode, productionReviewerIds, npmPrereleaseReviewerIds, deploymentProfile, deliveryLane);
|
|
1045
1140
|
}
|
|
1046
1141
|
//# sourceMappingURL=github-bootstrap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-bootstrap.js","sourceRoot":"","sources":["../../../../../packages/nx/src/git-policy/github-bootstrap.ts"],"names":[],"mappings":";;;AAoHA,8DAuDC;AAqyCD,gDA8GC;AA9jDD,4DAKuC;AACvC,sEAAyD;AAE5C,QAAA,iCAAiC,GAC5C,uCAAuC,CAAC;AAC7B,QAAA,mBAAmB,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC;AACpD,QAAA,kCAAkC,GAAG,qBAAqB,CAAC;AAC3D,QAAA,sCAAsC,GACjD,qCAAqC,CAAC;AAC3B,QAAA,8BAA8B,GAAG,6BAA6B,CAAC;AAC/D,QAAA,qCAAqC,GAChD,oCAAoC,CAAC;AAC1B,QAAA,gCAAgC,GAAG,+BAA+B,CAAC;AACnE,QAAA,gCAAgC,GAAG,+BAA+B,CAAC;AACnE,QAAA,gCAAgC,GAC3C,8BAAuC,CAAC;AAC7B,QAAA,sCAAsC,GACjD,qCAAqC,CAAC;AAC3B,QAAA,iCAAiC,GAAG;IAC/C,sCAA8B;IAC9B,8CAAsC;IACtC,0CAAkC;IAClC,8CAAsC;CAC9B,CAAC;AACE,QAAA,mCAAmC,GAAG;IACjD,yBAAyB;IACzB,YAAY;IACZ,2CAA2C;IAC3C,8BAA8B;IAC9B,6BAA6B;IAC7B,kBAAkB;CACV,CAAC;AACX,MAAM,yBAAyB,GAAG;IAChC,iBAAiB;IACjB,kBAAkB;IAClB,WAAW;CACH,CAAC;AACE,QAAA,0BAA0B,GACrC,iCAA0C,CAAC;AAE7C,MAAM,kBAAkB,GAAG,YAAY,CAAC;AACxC,MAAM,4BAA4B,GAChC,2DAA2D,CAAC;AAC9D,MAAM,kDAAkD,GAAG,kBAAkB,CAAC;AAC9E,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAU,CAAC;AAgBxD,MAAM,oBAAoB,GAAG,2CAAmC,CAAC,MAAM,CACrE,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,KAAK,6BAA6B;IAC1C,CAAC,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC,CACjD,CAAC;AACF,MAAM,0BAA0B,GAAG,2CAAmC,CAAC;AACvE,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C;QACE,IAAI,EAAE,gBAAgB;QACtB,eAAe,EAAE,CAAC,sCAA8B,CAAC;QACjD,iBAAiB,EAAE,CAAC,yBAAyB,EAAE,YAAY,CAAC;KAC7D;CAKA,CAAC,CAAC;AAEL,SAAS,wBAAwB,CAC/B,KAA6B,EAC7B,iBAAoC;IAEpC,MAAM,UAAU,GAAG,KAAK,KAAK,YAAY,CAAC;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACvC,IAAI,EAAE,KAAK;QACX,eAAe,EAAE,MAAM,CAAC,MAAM,CAC5B,UAAU;YACR,CAAC,CAAC,iBAAiB,KAAK,SAAS;gBAC/B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,8CAAsC,CAAC;YAC5C,CAAC,CAAC,EAAE,CACP;QACD,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAC9B,UAAU;YACR,CAAC,CAAC,iBAAiB,KAAK,SAAS;gBAC/B,CAAC,CAAC,0BAA0B,CAAC,MAAM,CAC/B,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAC7D;gBACH,CAAC,CAAC,0BAA0B;YAC9B,CAAC,CAAC,oBAAoB,CACzB;QACD,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CACvC,iBAAoC;IAEpC,MAAM,cAAc,GAClB,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,MAAM,MAAM,GAAG;QACb,YAAqB;QACrB,cAAc;KAC6B,CAAC;IAC9C,MAAM,QAAQ,GAAqC,EAAE,CAAC;IACtD,KAAK,MAAM,SAAS,IAAI,sBAAsB,EAAE,CAAC;QAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CACX,MAAM,CAAC,MAAM,CAAC;gBACZ,MAAM,EAAE,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACnD,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,IAAI,KAAK,EAAE;gBAClC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;gBAC9D,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;gBAClE,KAAK;aACN,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GACb,iBAAiB,KAAK,SAAS;QAC7B,CAAC,CAAC,CAAC,YAAY,CAAC;QAChB,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CACX,MAAM,CAAC,MAAM,CAAC;YACZ,MAAM,EAAE,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACnD,IAAI,EAAE,iBAAiB,KAAK,EAAE;YAC9B,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC;gBAC7B,8CAAsC;aACvC,CAAC;YACF,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC;gBAC/B,yBAAyB;gBACzB,YAAY;aACb,CAAC;YACF,KAAK;SACN,CAAC,CACH,CAAC;IACJ,CAAC;IACD,QAAQ,CAAC,IAAI,CACX,MAAM,CAAC,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,gBAAgB;QACtB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,KAAK,EAAE,YAAY;KACpB,CAAC,EACF,wBAAwB,CAAC,YAAY,EAAE,iBAAiB,CAAC,EACzD,wBAAwB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAC5D,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,4BAA4B,CACnC,WAA2C,EAC3C,KAAsB,EACtB,sBAA8C,EAC9C,qBAA+B,EAC/B,wBAAkC;IAMlC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;IAChC,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,WAAW,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC1C,IAAI,sBAAsB,KAAK,cAAc,EAAE,CAAC;YAC9C,OAAO;gBACL,iBAAiB,EAAE,KAAK;gBACxB,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,CAAC;aACb,CAAC;QACJ,CAAC;QACD,OAAO;YACL,iBAAiB,EAAE,IAAI;YACvB,SAAS,EACP,wBAAwB,CAAC,MAAM,GAAG,CAAC;gBACjC,CAAC,CAAC,uBAAuB,CAAC,wBAAwB,CAAC;gBACnD,CAAC,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC;oBAChC,CAAC,CAAC,uBAAuB,CAAC,qBAAqB,CAAC;oBAChD,CAAC,CAAC,gBAAgB,CAAC,SAAS;YAClC,SAAS,EAAE,gBAAgB,CAAC,SAAS;SACtC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,iBAAiB,EACf,KAAK,KAAK,YAAY;YACtB,sBAAsB,KAAK,sBAAsB;YAC/C,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,KAAK;gBAC1B,CAAC,CAAC,OAAO,CAAC,iBAAiB;gBAC3B,CAAC,CAAC,gBAAgB,CAAC,iBAAiB;QAC1C,SAAS,EACP,KAAK,KAAK,YAAY;YACtB,sBAAsB,KAAK,sBAAsB;YACjD,qBAAqB,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC,uBAAuB,CAAC,qBAAqB,CAAC;YAChD,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,KAAK;gBAC1B,CAAC,CAAC,OAAO,CAAC,SAAS;gBACnB,CAAC,CAAC,gBAAgB,CAAC,SAAS;QAClC,SAAS,EACP,WAAW,CAAC,IAAI,KAAK,KAAK;YACxB,CAAC,CAAC,OAAO,CAAC,SAAS;YACnB,CAAC,CAAC,gBAAgB,CAAC,SAAS;KACjC,CAAC;AACJ,CAAC;AA6ED,SAAS,mCAAmC,CAAC,KAAsB;IACjE,OAAO,OAAO,CACZ,KAAK,CAAC,wBAAwB;QAC9B,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,UAAU;YACzC,CAAC,KAAK,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CACvD,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC,CACxC,QAAkC;IAElC,OAAO,GAAG,kDAAkD,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;AAC1F,CAAC;AAED,MAAM,kCAAkC,GAAG,IAAI,GAAG,CAAC;IACjD,eAAe;IACf,YAAY;IACZ,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,cAAe,SAAQ,KAAK;IAErB;IADX,YACW,MAAc,EACvB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,WAAM,GAAN,MAAM,CAAQ;IAIzB,CAAC;CACF;AAED,MAAM,SAAS;IAKM;IAJF,OAAO,CAAS;IAEjC,YACE,OAAe,EACE,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAE9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAwC,EACxC,IAAY,EACZ,IAAc;QAEd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;YACrD,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC3D,OAAO,EAAE;gBACP,MAAM,EAAE,6BAA6B;gBACrC,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;gBACrC,sBAAsB,EAAE,kBAAkB;gBAC1C,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;aACtE;YACD,MAAM;SACP,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;gBAChE,MAAM,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,gEAAgE;YAClE,CAAC;YACD,MAAM,IAAI,cAAc,CACtB,QAAQ,CAAC,MAAM,EACf,UAAU,MAAM,IAAI,IAAI,YAAY,QAAQ,CAAC,MAAM,MAAM,MAAM,EAAE,CAClE,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY;YAAE,OAAO,SAAc,CAAC;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAM,CAAC;IACvC,CAAC;CACF;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,MAAM,KAAK,GAAG,wCAAwC,CAAC,IAAI,CACzD,UAAU,CAAC,IAAI,EAAE,CAClB,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,yBAAyB,CAChC,IAAgB;IAEhB,MAAM,KAAK,GACT,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;QACnD,CAAC,CAAE,IAAI,CAAC,KAAoB;QAC5B,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,UAAU,GAAG,KAAK,EAAE,KAAK,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,EAAE,EAAE,CAAC;IAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;IACjC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;IAChC,IACE,OAAO,UAAU,KAAK,QAAQ;QAC9B,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;QACtC,OAAO,OAAO,KAAK,QAAQ;QAC3B,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;QAC9B,OAAO,IAAI,CAAC;QACZ,OAAO,cAAc,KAAK,QAAQ;QAClC,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC;QAC1C,OAAO,YAAY,KAAK,QAAQ;QAChC,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC;QACnC,YAAY,IAAI,CAAC;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,QAAQ,KAAK,GAAG,UAAU,IAAI,cAAc,EAAE,EAC9C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,kBAAkB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAChD,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,aAAa;QACtB,YAAY,EAAE,kBAAkB;QAChC,aAAa,EAAE,QAAQ,UAAU,IAAI,aAAa,IAAI,cAAc,IAAI,kBAAkB,EAAE;KAC7F,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CACtC,KAAiB;IAEjB,MAAM,gBAAgB,GAAG,KAAK,CAAC,kBAAkB,CAAC;IAClD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC;IACrC,MAAM,mBAAmB,GAAG,KAAK,CAAC,qBAAqB,CAAC;IACxD,IACE,OAAO,UAAU,KAAK,SAAS;QAC/B,CAAC,mBAAmB,KAAK,SAAS;YAChC,OAAO,mBAAmB,KAAK,SAAS,CAAC;QAC3C,CAAC,gBAAgB,KAAK,SAAS;YAC7B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBAC/B,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,EAC7D,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC/C,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,qCAAY,CAAC;YACnD,CAAC,CAAC,EAAE;QACN,UAAU;QACV,mBAAmB,EAAE,mBAAmB,KAAK,IAAI;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,MAAM,CACV,CAAC,IAAI,EAAsB,EAAE,CAC3B,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CACpE;QACH,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAClE,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,sCAAsC,CAAC,IAAgB;IAC9D,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,QAAQ,GAAG,MAAM;IACpD,OAAO,SAAS,CAAC,KAAK,CAAC;SACpB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;SAC1D,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,GAAc,EACd,IAAY,EACZ,kBAA2B;IAE3B,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAC/B,KAAK,EACL,GAAG,IAAI,GAAG,SAAS,qBAAqB,IAAI,EAAE,CAC/C,CAAC;QACF,MAAM,UAAU,GAAG,kBAAkB;YACnC,CAAC,CAAC,SAAS,CACP,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;gBAC7C,CAAC,CAAE,OAAsB,CAAC,kBAAkB,CAAC;gBAC7C,CAAC,CAAC,SAAS,CACd;YACH,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QAC3B,IAAI,UAAU,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,MAAM,CAAC;IAC7C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,IAAI,GAAG,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,YAAY,CAAC,OAAmB;IACvC,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,cAAc,CAAC,IAAgB;IACtC,OAAO,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;QACpE,CAAC,CAAE,IAAI,CAAC,UAAyB;QACjC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAmB;IAC9C,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW,KAAK,QAAQ,CAAC;AACzE,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,GAAW;IACrD,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,OAAO,KAAK,iBAAiB;QAAE,OAAO,GAAG,KAAK,iBAAiB,CAAC;IACpE,MAAM,UAAU,GAAG,OAAO;SACvB,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC;SACpC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvB,OAAO,IAAI,MAAM,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,+BAA+B,CAAC,OAAmB;IAC1D,MAAM,UAAU,GACd,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI;QACnE,CAAC,CAAE,OAAO,CAAC,UAAyB;QACpC,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,OAAO,GACX,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI;QACrE,CAAC,CAAE,UAAU,CAAC,QAAuB;QACrC,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,cAAc,MAAM,EAAE,CAAC;QACnC,MAAM,QAAQ,GACZ,OAAO,CAAC,MAAM,KAAK,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5E,OAAO,QAAQ,IAAI,CAAC,QAAQ,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gCAAgC,CAAC,OAAmB;IAC3D,IACE,CAAC,mBAAmB,CAAC,OAAO,CAAC;QAC7B,CAAC,+BAA+B,CAAC,OAAO,CAAC,EACzC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;YAC5C,SAAS,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC;YACtE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrD,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,WAAuB;IAI5C,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACvD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,oBAAoB,CACvD,CAAC;IACF,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC9D,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5D,MAAM,QAAQ,GACZ,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;YAC3D,CAAC,CAAE,KAAK,CAAC,QAAuB;YAChC,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;QAClD,IACE,OAAO,EAAE,KAAK,QAAQ;YACtB,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YACzB,CAAC,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,MAAM,CAAC,EACtD,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,aAA4C,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC7B,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;QACtB,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;QACpB,CAAC,CAAC,IAAA,qCAAY,EAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CACxC,CAAC;IACF,OAAO;QACL,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,KAAK,IAAI;QACpD,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAuB;IACnD,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACvD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,YAAY,CAC/C,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,EAAE,UAAU,CAAC;IACnC,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;QACrE,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAgB;IACjD,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,CACL,eAAe,KAAK,SAAS;QAC7B,eAAe,CAAC,MAAM,GAAG,CAAC;QAC1B,eAAe,CAAC,KAAK,CACnB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,kCAA0B,CACzE,CACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc;IACrB,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,MAAM,EAAE,CAAC;aACpE;SACF;QACD,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,yCAAiC;QACvC,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,UAAU,EAAE;YACpB,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC5B;gBACE,UAAU,EAAE;oBACV,qBAAqB,EAAE,CAAC,OAAO,CAAC;oBAChC,6BAA6B,EAAE,IAAI;oBACnC,yBAAyB,EAAE,IAAI;oBAC/B,0BAA0B,EAAE,IAAI;oBAChC,+BAA+B,EAAE,CAAC;oBAClC,iCAAiC,EAAE,IAAI;iBACxC;gBACD,IAAI,EAAE,cAAc;aACrB;YACD;gBACE,UAAU,EAAE;oBACV,sBAAsB,EAAE,2BAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;wBAC5D,OAAO;qBACR,CAAC,CAAC;oBACH,oCAAoC,EAAE,IAAI;iBAC3C;gBACD,IAAI,EAAE,wBAAwB;aAC/B;SACF;QACD,MAAM,EAAE,QAAQ;KACjB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,GAAc,EACd,cAAsB,EACtB,IAA2B;IAE3B,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,WAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,GAAG,CAAC,OAAO,CAC7B,KAAK,EACL,GAAG,cAAc,iBAAiB,OAAO,EAAE,CAC5C,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,cAAc,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5D,OAAO;gBACL,cAAc,EAAE,EAAE;gBAClB,oBAAoB,EAAE,KAAK;gBAC3B,MAAM,EAAE,KAAK;gBACb,iBAAiB,EAAE,KAAK;gBACxB,SAAS,EAAE,EAAE;gBACb,WAAW,EAAE,EAAE;gBACf,aAAa,EAAE,EAAE;gBACjB,SAAS,EAAE,CAAC;aACb,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,oBAAoB,GACxB,OAAO,WAAW,CAAC,wBAAwB,KAAK,QAAQ;QACxD,WAAW,CAAC,wBAAwB,KAAK,IAAI;QAC5C,WAAW,CAAC,wBAAuC;aACjD,sBAAsB,KAAK,IAAI,CAAC;IACrC,IAAI,kBAAkB,GAA8B,EAAE,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAC3C,GAAG,EACH,GAAG,cAAc,iBAAiB,OAAO,6BAA6B,EACtE,iBAAiB,CAClB,CAAC;QACF,kBAAkB,GAAG,cAAc;aAChC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChB,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACxD,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;SACzD,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAA,qCAAY,EACV,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAC5B,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAC/B,CACF,CAAC;QACJ,IACE,kBAAkB,CAAC,IAAI,CACrB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC/D,EACD,CAAC;YACD,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,mEAAmE,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CACH,KAAK,YAAY,cAAc;YAC/B,KAAK,CAAC,MAAM,KAAK,GAAG;YACpB,CAAC,oBAAoB,CACtB,EAAE,CAAC;YACF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CACpC,GAAG,EACH,GAAG,cAAc,iBAAiB,OAAO,UAAU,EACnD,SAAS,CACV,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,gBAAgB,CACtC,GAAG,EACH,GAAG,cAAc,iBAAiB,OAAO,YAAY,EACrD,WAAW,CACZ,CAAC;IACF,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,OAAO;QACL,cAAc,EAAE,kBAAkB;QAClC,oBAAoB;QACpB,MAAM,EAAE,IAAI;QACZ,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;QAC9C,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;QACjC,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC;QACrC,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,GAAc,EACd,cAAsB,EACtB,sBAA8C,EAC9C,iBAAoC;IAEpC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAa,KAAK,EAAE,cAAc,CAAC,CAAC;IAClE,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CACX,iHAAiH,CAClH,CAAC;IACJ,CAAC;IACD,IAAI,wBAAoE,CAAC;IACzE,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,OAAO,CACjC,KAAK,EACL,GAAG,cAAc,iCAAiC,CACnD,CAAC;QACF,wBAAwB,GAAG,+BAA+B,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CACX,4EAA4E,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CACX,wEAAwE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjI,CAAC;IACJ,CAAC;IACD,IAAI,aAAiC,CAAC;IACtC,IACE,sBAAsB,KAAK,sBAAsB;QACjD,sCAAsC,CAAC,IAAI,CAAC,EAC5C,CAAC;QACD,MAAM,KAAK,GACT,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YACnD,CAAC,CAAE,IAAI,CAAC,KAAoB;YAC5B,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,KAAK,cAAc,IAAI,SAAS,KAAK,MAAM,CAAC,EAAE,CAAC;YACrE,QAAQ,CAAC,IAAI,CACX,4FAA4F,CAC7F,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,GAAG,SAAS,KAAK,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtG,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,OAAO,CAAa,KAAK,EAAE,SAAS,CAAC,CAAC;gBACnE,MAAM,IAAI,GACR,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI;oBAC7D,CAAC,CAAE,UAAU,CAAC,IAAmB;oBACjC,CAAC,CAAC,EAAE,CAAC;gBACT,aAAa;oBACX,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtE,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,QAAQ,CAAC,IAAI,CACX,0GAA0G,CAC3G,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,IAAI,CACX,qEAAqE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9H,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,OAAO,CAClC,KAAK,EACL,GAAG,cAAc,oCAAoC,MAAM,EAAE,CAC9D,CAAC;YACF,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;YACrC,IACE,OAAO,OAAO,KAAK,QAAQ;gBAC3B,QAAQ,KAAK,QAAQ;gBACrB,CAAC,yBAAyB,CACxB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAChD,EACD,CAAC;gBACD,QAAQ,CAAC,IAAI,CACX,mCAAmC,MAAM,iHAAiH,CAC3J,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAC9B,KAAK,EACL,GAAG,cAAc,0BAA0B,MAAM,EAAE,CACpD,CAAC;YACF,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CACX,kBAAkB,eAAe,CAAC,MAAM,oBAAoB,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM,GAAG,CACpH,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CACX,6BAA6B,MAAM,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACvH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,GAAiB,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,gBAAgB,CACtC,GAAG,EACH,GAAG,cAAc,iCAAiC,CACnD,CAAC;QACF,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC9B,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACtB,OAAO,OAAO,EAAE,KAAK,QAAQ;gBAC3B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAa,KAAK,EAAE,GAAG,cAAc,aAAa,EAAE,EAAE,CAAC;gBACpE,CAAC,CAAC,OAAO,CAAC;QACd,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CACX,+CAA+C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxG,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,OAAO,CACnC,KAAK,EACL,GAAG,cAAc,aAAa,MAAM,EAAE,CACvC,CAAC;YACF,MAAM,MAAM,GACV,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI;gBACnE,CAAC,CAAE,WAAW,CAAC,MAAqB;gBACpC,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,GAAG,EACH,GAAG,cAAc,YAAY,kBAAkB,CAAC,GAAG,CAAC,aAAa,EACjE,YAAY,CACb,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3C,KAAK,MAAM,QAAQ,IAAI,2BAAmB,EAAE,CAAC;gBAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,QAAQ,CAAC,IAAI,CACX,GAAG,MAAM,iCAAiC,QAAQ,iBAAiB,CACpE,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CACX,GAAG,MAAM,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACrG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,qBAAqB,GAAa,EAAE,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CACpC,GAAG,EACH,GAAG,cAAc,kBAAkB,EACnC,SAAS,CACV,CAAC;QACF,qBAAqB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CACX,uDAAuD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAChH,CAAC;IACJ,CAAC;IAED,IAAI,uBAAuB,GAAa,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,gBAAgB,CACtC,GAAG,EACH,GAAG,cAAc,oBAAoB,EACrC,WAAW,CACZ,CAAC;QACF,uBAAuB,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CACX,yDAAyD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClH,CAAC;IACJ,CAAC;IAED,IAAI,cAAoC,CAAC;IACzC,IAAI,gBAAsC,CAAC;IAC3C,MAAM,KAAK,GACT,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;QACnD,CAAC,CAAE,IAAI,CAAC,KAAoB;QAC5B,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,KAAK,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,cAAc,GAAG,EAAE,CAAC;QACpB,gBAAgB,GAAG,EAAE,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CACpC,GAAG,EACH,GAAG,cAAc,+BAA+B,EAChD,SAAS,CACV,CAAC;YACF,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CACX,gGAAgG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzJ,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,gBAAgB,CACtC,GAAG,EACH,GAAG,cAAc,iCAAiC,EAClD,WAAW,CACZ,CAAC;YACF,gBAAgB,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CACX,kGAAkG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC3J,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,6BAAkD,CAAC;IACvD,IAAI,iCAAqD,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,OAAO,CACnC,KAAK,EACL,GAAG,cAAc,+BAA+B,CACjD,CAAC;QACF,6BAA6B;YAC3B,WAAW,CAAC,gCAAgC,KAAK,IAAI,CAAC;QACxD,iCAAiC;YAC/B,OAAO,WAAW,CAAC,4BAA4B,KAAK,QAAQ;gBAC1D,CAAC,CAAC,WAAW,CAAC,4BAA4B;gBAC1C,CAAC,CAAC,SAAS,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CACX,4DAA4D,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACrH,CAAC;IACJ,CAAC;IAED,MAAM,uBAAuB,GAAG,KAAK,EACnC,IAA2B,EACA,EAAE;QAC7B,IAAI,CAAC;YACH,OAAO,MAAM,kBAAkB,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CACX,GAAG,IAAI,kDAAkD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClH,CAAC;YACF,OAAO;gBACL,cAAc,EAAE,EAAE;gBAClB,oBAAoB,EAAE,KAAK;gBAC3B,MAAM,EAAE,KAAK;gBACb,iBAAiB,EAAE,KAAK;gBACxB,SAAS,EAAE,EAAE;gBACb,WAAW,EAAE,EAAE;gBACf,aAAa,EAAE,EAAE;gBACjB,SAAS,EAAE,CAAC;aACb,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CACrC,MAAM,OAAO,CAAC,GAAG,CACf,yBAAyB,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAC9C,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACjB,CAAC,IAAI,EAAE,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAU,CACvD,CACF,CACiD,CAAC;IAErD,OAAO;QACL,QAAQ;QACR,KAAK,EAAE;YACL,6BAA6B;YAC7B,iCAAiC;YACjC,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,wBAAwB;YACxB,aAAa;YACb,YAAY,EAAE,QAAQ,CAAC,IAAI,CACzB,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,IAAI,KAAK,yCAAiC;gBAClD,OAAO,CAAC,WAAW,KAAK,cAAc,CACzC;YACD,IAAI;YACJ,kBAAkB;YAClB,qBAAqB;YACrB,uBAAuB;YACvB,QAAQ;SACT;KACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CACf,UAAkB,EAClB,KAAsB,EACtB,kBAA4B,EAC5B,sBAA8C,EAC9C,qBAA+B,EAC/B,wBAAkC,EAClC,oBAAuC,gBAAgB;IAEvD,MAAM,QAAQ,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC;IACzC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,iBAAiB,GAAG,sCAAsC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7E,IACE,sBAAsB,KAAK,sBAAsB;QACjD,iBAAiB;QACjB,KAAK,CAAC,aAAa,KAAK,SAAS;QACjC,CAAC,kCAAkC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,EAC5D,CAAC;QACD,QAAQ,CAAC,IAAI,CACX,gIAAgI,KAAK,CAAC,aAAa,GAAG,CACvJ,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,mCAAmC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,KAAK,CAAC,6BAA6B,KAAK,IAAI,EAAE,CAAC;QACjD,QAAQ,CAAC,IAAI,CACX,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,iCAAiC,KAAK,MAAM,EAAE,CAAC;QACvD,QAAQ,CAAC,IAAI,CACX,qGAAqG,CACtG,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,MAAM,IAAI;QACnB,GAAG,yCAAiC;QACpC,GAAG,yBAAyB;KAC7B,EAAE,CAAC;QACF,IAAI,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CACX,GAAG,MAAM,sEAAsE,CAChF,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,QAAQ,CAAC,IAAI,CACX,GAAG,MAAM,8EAA8E,CACxF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI;QACrB,GAAG,2CAAmC;QACtC,GAAG,yBAAyB;KAC7B,EAAE,CAAC;QACF,IAAI,KAAK,CAAC,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,IAAI,CACX,GAAG,QAAQ,4EAA4E,CACxF,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,IAAI,CACX,GAAG,QAAQ,oFAAoF,CAChG,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CACX,kBAAkB,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,IAAI,SAAS,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAChG,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,kBAAkB,yCAAiC,GAAG,CAAC,CAAC;IACvE,CAAC;SAAM,IACL,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,EAClD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,kBAAkB,yCAAiC,GAAG,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,WAAW,eAAe,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CACV,8CAA8C,WAAW,GAAG,CAC7D,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAC1C,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,CACzD,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CACX,GAAG,WAAW,wCAAwC,MAAM;iBACzD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;iBAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CACjB,CAAC;QACJ,CAAC;QACD,IACE,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAC1B,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,CACzD,EACD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,YAAY,WAAW,kBAAkB,MAAM,GAAG,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;QACjD,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,IAAI,CACX,GAAG,WAAW,2BAA2B,MAAM,0CAA0C,CAC1F,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,QAAQ,CAAC,IAAI,CACX,GAAG,WAAW,wBAAwB,MAAM,yCAAyC,CACtF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;QACrD,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9C,QAAQ,CAAC,IAAI,CACX,GAAG,WAAW,6CAA6C,QAAQ,4CAA4C,CAChH,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,IAAI,CACX,GAAG,WAAW,wBAAwB,QAAQ,yCAAyC,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,4BAA4B,CAC1C,QAAQ,EACR,KAAK,EACL,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,CACzB,CAAC;YACF,IACE,WAAW,KAAK,gBAAgB;gBAChC,sBAAsB,KAAK,sBAAsB;gBACjD,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAC9B,CAAC;gBACD,QAAQ,CAAC,IAAI,CACX,2GAA2G,CAC5G,CAAC;YACJ,CAAC;YACD,IACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;gBACnC,OAAO,CAAC,iBAAiB,KAAK,OAAO,CAAC,iBAAiB;gBACvD,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EACvC,CAAC;gBACD,OAAO,CAAC,IAAI,CACV,SAAS,WAAW,sCAAsC,KAAK,GAAG,CACnE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC;IACjD,IAAI,sBAAsB,KAAK,cAAc,EAAE,CAAC;QAC9C,QAAQ,CAAC,IAAI,CACX,gMAAgM,CACjM,CAAC;QACF,QAAQ,CAAC,IAAI,CACX,uIAAuI,CACxI,CAAC;QACF,QAAQ,CAAC,IAAI,CACX,mMAAmM,CACpM,CAAC;QACF,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAChE,QAAQ,CAAC,IAAI,CACX,mJAAmJ,CACpJ,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,4BAA4B,GAAG,uBAAuB,CAC1D,qBAAqB,CACtB,CAAC;QACF,MAAM,kBAAkB,GACtB,qBAAqB,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC,4BAA4B;YAC9B,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QAC3B,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CACX,yGAAyG,CAC1G,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IACE,qBAAqB,CAAC,MAAM,GAAG,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC;oBAC1C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EACtC,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAClB,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,IAAI,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,QAAQ,CAAC,IAAI,CACX,GAAG,cAAc,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,kEAAkE,CAClI,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;QACvC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;QACrC,iBAAiB;QACjB,KAAK,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QACpD,UAAU;QACV,GAAG,CAAC,KAAK,CAAC,kBAAkB;YAC1B,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QACP,sBAAsB;QACtB,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAmB;IAC3C,MAAM,UAAU,GACd,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI;QACnE,CAAC,CAAE,OAAO,CAAC,UAAyB;QACpC,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,OAAO,GACX,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI;QACrE,CAAC,CAAE,UAAU,CAAC,QAAuB;QACrC,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC;SAChC,GAAG,CAAC,CAAC,IAAI,EAAc,EAAE;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5B,OAAO;gBACL,UAAU,EAAE;oBACV,qBAAqB,EAAE,SAAS,CAC9B,UAAU,CAAC,qBAAqB,CACjC,CAAC,IAAI,EAAE;oBACR,6BAA6B,EAC3B,UAAU,CAAC,6BAA6B,KAAK,IAAI;oBACnD,yBAAyB,EACvB,UAAU,CAAC,yBAAyB,KAAK,IAAI;oBAC/C,0BAA0B,EACxB,UAAU,CAAC,0BAA0B,KAAK,IAAI;oBAChD,+BAA+B,EAC7B,UAAU,CAAC,+BAA+B;oBAC5C,iCAAiC,EAC/B,UAAU,CAAC,iCAAiC,KAAK,IAAI;iBACxD;gBACD,IAAI;aACL,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,KAAK,wBAAwB,EAAE,CAAC;YACtC,OAAO;gBACL,UAAU,EAAE;oBACV,sBAAsB,EAAE,SAAS,CAAC,UAAU,CAAC,sBAAsB,CAAC;yBACjE,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;yBACnC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,IAAA,qCAAY,EAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAC1D;oBACH,oCAAoC,EAClC,UAAU,CAAC,oCAAoC,KAAK,IAAI;iBAC3D;gBACD,IAAI;aACL,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAA,qCAAY,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9E,OAAO;QACL,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;YACjD,CAAC,CAAC,OAAO,CAAC,aAAa;YACvB,CAAC,CAAC,EAAE;QACN,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE;gBAC1C,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE;aAC3C;SACF;QACD,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAa;IAC5C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAmB;IAChD,OAAO,CACL,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,CACnD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,GAAc,EACd,cAAsB,EACtB,KAAsB,EACtB,sBAA8C,EAC9C,qBAA+B,EAC/B,wBAAkC,EAClC,iBAAoC;IAEpC,IAAI,mCAAmC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,GAAG,CAAC,OAAO,CACf,KAAK,EACL,GAAG,cAAc,iCAAiC,EAClD,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CACnD,CAAC;IACJ,CAAC;IAED,IACE,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI;QACtC,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,KAAK;QACvC,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,KAAK,EACvC,CAAC;QACD,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE;YACzC,kBAAkB,EAAE,IAAI;YACxB,kBAAkB,EAAE,KAAK;YACzB,kBAAkB,EAAE,KAAK;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,IACE,KAAK,CAAC,YAAY;QAClB,OAAO,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,QAAQ;QACzC,CAAC,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC,EAC1C,CAAC;QACD,MAAM,GAAG,CAAC,OAAO,CACf,KAAK,EACL,GAAG,cAAc,aAAa,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,EACrD,OAAO,CACR,CAAC;IACJ,CAAC;SAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,cAAc,WAAW,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,iBAAiB,GAAG,4BAA4B,CACpD,QAAQ,EACR,KAAK,EACL,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,CACzB,CAAC;QACF,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;QAC9C,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC;QACrE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,SAAS,CAAC;QACrD,MAAM,gBAAgB,GACpB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAClE,IACE,CAAC,OAAO,CAAC,MAAM;YACf,CAAC,OAAO,CAAC,oBAAoB;YAC7B,gBAAgB;YAChB,wBAAwB,KAAK,OAAO,CAAC,iBAAiB;YACtD,gBAAgB,KAAK,OAAO,CAAC,SAAS,EACtC,CAAC;YACD,MAAM,4BAA4B,GAChC,KAAK,KAAK,YAAY;gBACtB,sBAAsB,KAAK,sBAAsB,CAAC;YACpD,MAAM,6BAA6B,GACjC,WAAW,KAAK,KAAK;gBACrB,4BAA4B;gBAC5B,SAAS,CAAC,MAAM,GAAG,CAAC;gBACpB,gBAAgB,GAAG,CAAC,CAAC;YACvB,MAAM,GAAG,CAAC,OAAO,CACf,KAAK,EACL,GAAG,cAAc,iBAAiB,kBAAkB,CAAC,WAAW,CAAC,EAAE,EACnE;gBACE,wBAAwB,EAAE;oBACxB,sBAAsB,EAAE,IAAI;oBAC5B,kBAAkB,EAAE,KAAK;iBAC1B;gBACD,GAAG,CAAC,6BAA6B;oBAC/B,CAAC,CAAC;wBACE,mBAAmB,EAAE,wBAAwB;wBAC7C,SAAS;wBACT,UAAU,EAAE,gBAAgB;qBAC7B;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CACF,CAAC;QACJ,CAAC;QACD,IACE,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAC1B,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,CACzD,EACD,CAAC;YACD,MAAM,GAAG,CAAC,OAAO,CACf,MAAM,EACN,GAAG,cAAc,iBAAiB,kBAAkB,CAAC,WAAW,CAAC,6BAA6B,EAC9F,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CACjC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,OAA+B;IAE/B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,gBAAgB,CAAC;IACxE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,oCAAyB,CAAC,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CACb,qGAAqG,CACtG,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,8BAAmB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IACD,MAAM,qBAAqB,GAAG;QAC5B,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAC;KAChD,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IACtC,MAAM,wBAAwB,GAAG;QAC/B,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,wBAAwB,IAAI,EAAE,CAAC;KACnD,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IACtC,IACE,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EACxE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,IACE,wBAAwB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAC3E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,IACE,OAAO,CAAC,sBAAsB,KAAK,cAAc;QACjD,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,CAAC,EACzE,CAAC;QACD,MAAM,IAAI,KAAK,CACb,oHAAoH,CACrH,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,SAAS,CACvB,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,wBAAwB,EACtD,OAAO,CAAC,KAAK,CACd,CAAC;IACF,MAAM,cAAc,GAAG,UAAU,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;IACzF,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,GAAG,EACH,cAAc,EACd,OAAO,CAAC,sBAAsB,EAC9B,iBAAiB,CAClB,CAAC;IACF,MAAM,MAAM,GAAG,QAAQ,CACrB,UAAU,EACV,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,sBAAsB,EAC9B,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,CAClB,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,yCAAyC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CACxE,CAAC;IACJ,CAAC;IACD,IAAI,mCAAmC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,qGAAqG,CACtG,CAAC;QACJ,CAAC;QACD,MAAM,uBAAuB,GAAG,iCAAiC,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,OAAO,CAAC,iCAAiC,KAAK,uBAAuB,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CACb,0GAA0G,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,oIAAoI,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,oCAAoC,CACjW,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,YAAY,CAChB,GAAG,EACH,cAAc,EACd,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,sBAAsB,EAC9B,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,CAClB,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,OAAO,CAC7B,GAAG,EACH,cAAc,EACd,OAAO,CAAC,sBAAsB,EAC9B,iBAAiB,CAClB,CAAC;IACF,OAAO,QAAQ,CACb,UAAU,EACV,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,QAAQ,EAClB,OAAO,CAAC,sBAAsB,EAC9B,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,CAClB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"github-bootstrap.js","sourceRoot":"","sources":["../../../../../packages/nx/src/git-policy/github-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
export type GitPolicyEventName = 'pull_request' | 'push' | 'workflow_dispatch';
|
|
2
|
+
export type GitPolicyDeliveryLane = 'protected-pair' | 'trunk';
|
|
2
3
|
export interface GitPolicyRequest {
|
|
3
4
|
baseIsAncestorOfHead?: boolean;
|
|
4
5
|
baseRef?: string;
|
|
6
|
+
/** trunk protects main alone: feature pull requests target main and every
|
|
7
|
+
* main push is a production delivery. Defaults to the protected pair. */
|
|
8
|
+
deliveryLane?: GitPolicyDeliveryLane;
|
|
5
9
|
eventName: GitPolicyEventName;
|
|
6
10
|
headRepository?: string;
|
|
7
11
|
headRef?: string;
|
|
@@ -12,6 +16,6 @@ export interface GitPolicyRequest {
|
|
|
12
16
|
export interface GitPolicyDecision {
|
|
13
17
|
allowed: boolean;
|
|
14
18
|
reasons: string[];
|
|
15
|
-
route?: 'feature-to-develop' | 'develop-to-main' | 'main-to-develop' | 'protected-push' | 'protected-verification';
|
|
19
|
+
route?: 'feature-to-develop' | 'feature-to-main' | 'develop-to-main' | 'main-to-develop' | 'protected-push' | 'protected-verification';
|
|
16
20
|
}
|
|
17
21
|
export declare function evaluateGitPolicy(request: GitPolicyRequest): GitPolicyDecision;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.evaluateGitPolicy = evaluateGitPolicy;
|
|
4
4
|
function evaluateGitPolicy(request) {
|
|
5
|
+
if (request.deliveryLane === 'trunk') {
|
|
6
|
+
return evaluateTrunkGitPolicy(request);
|
|
7
|
+
}
|
|
5
8
|
const reasons = [];
|
|
6
9
|
let route;
|
|
7
10
|
if (request.eventName === 'push') {
|
|
@@ -85,4 +88,51 @@ function evaluateGitPolicy(request) {
|
|
|
85
88
|
...(route ? { route } : {}),
|
|
86
89
|
};
|
|
87
90
|
}
|
|
91
|
+
/** Trunk lane: main is the only protected branch. Feature pull requests
|
|
92
|
+
* target main from an up-to-date branch; a main push is a production
|
|
93
|
+
* delivery; develop is not a protected route. */
|
|
94
|
+
function evaluateTrunkGitPolicy(request) {
|
|
95
|
+
const reasons = [];
|
|
96
|
+
let route;
|
|
97
|
+
if (request.eventName === 'push') {
|
|
98
|
+
if (request.ref !== 'refs/heads/main') {
|
|
99
|
+
reasons.push('Trunk delivery pushes must target main.');
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
route = 'protected-push';
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else if (request.eventName === 'workflow_dispatch') {
|
|
106
|
+
if (request.ref !== 'refs/heads/main') {
|
|
107
|
+
reasons.push('Trunk delivery manual verification must run from main.');
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
route = 'protected-verification';
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else if (request.eventName === 'pull_request') {
|
|
114
|
+
const base = request.baseRef;
|
|
115
|
+
const head = request.headRef;
|
|
116
|
+
if (!base || !head) {
|
|
117
|
+
reasons.push('Pull-request base and head metadata are required.');
|
|
118
|
+
}
|
|
119
|
+
else if (base !== 'main') {
|
|
120
|
+
reasons.push('Trunk delivery pull requests must target main.');
|
|
121
|
+
}
|
|
122
|
+
else if (head === 'main') {
|
|
123
|
+
reasons.push('A protected branch cannot open a pull request to itself.');
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
route = 'feature-to-main';
|
|
127
|
+
}
|
|
128
|
+
if (route && request.baseIsAncestorOfHead !== true) {
|
|
129
|
+
reasons.push(`The ${base ?? 'base'} branch is not an ancestor of the proposed ${head ?? 'head'} commit. Refresh the branch without rewriting main.`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
allowed: reasons.length === 0,
|
|
134
|
+
reasons,
|
|
135
|
+
...(route ? { route } : {}),
|
|
136
|
+
};
|
|
137
|
+
}
|
|
88
138
|
//# sourceMappingURL=routing.js.map
|