@aipt/platform-kernel 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +25 -0
  2. package/dist/adoption-contracts.d.ts +140 -0
  3. package/dist/adoption-contracts.d.ts.map +1 -0
  4. package/dist/adoption-contracts.js +2 -0
  5. package/dist/adoption-contracts.js.map +1 -0
  6. package/dist/adoption-metadata.d.ts +72 -0
  7. package/dist/adoption-metadata.d.ts.map +1 -0
  8. package/dist/adoption-metadata.js +408 -0
  9. package/dist/adoption-metadata.js.map +1 -0
  10. package/dist/adoption-schemas.d.ts +1608 -0
  11. package/dist/adoption-schemas.d.ts.map +1 -0
  12. package/dist/adoption-schemas.js +319 -0
  13. package/dist/adoption-schemas.js.map +1 -0
  14. package/dist/application-config-binding.d.ts +54 -0
  15. package/dist/application-config-binding.d.ts.map +1 -0
  16. package/dist/application-config-binding.js +139 -0
  17. package/dist/application-config-binding.js.map +1 -0
  18. package/dist/application-config-contract.d.ts +159 -0
  19. package/dist/application-config-contract.d.ts.map +1 -0
  20. package/dist/application-config-contract.js +142 -0
  21. package/dist/application-config-contract.js.map +1 -0
  22. package/dist/blank-profile.d.ts +60 -0
  23. package/dist/blank-profile.d.ts.map +1 -0
  24. package/dist/blank-profile.js +182 -0
  25. package/dist/blank-profile.js.map +1 -0
  26. package/dist/catalog-source.d.ts +167 -0
  27. package/dist/catalog-source.d.ts.map +1 -0
  28. package/dist/catalog-source.js +252 -0
  29. package/dist/catalog-source.js.map +1 -0
  30. package/dist/code-module-publication.d.ts +113 -0
  31. package/dist/code-module-publication.d.ts.map +1 -0
  32. package/dist/code-module-publication.js +71 -0
  33. package/dist/code-module-publication.js.map +1 -0
  34. package/dist/contracts.d.ts +150 -0
  35. package/dist/contracts.d.ts.map +1 -0
  36. package/dist/contracts.js +3 -0
  37. package/dist/contracts.js.map +1 -0
  38. package/dist/delivery.d.ts +201 -0
  39. package/dist/delivery.d.ts.map +1 -0
  40. package/dist/delivery.js +364 -0
  41. package/dist/delivery.js.map +1 -0
  42. package/dist/dependency-resolution.d.ts +46 -0
  43. package/dist/dependency-resolution.d.ts.map +1 -0
  44. package/dist/dependency-resolution.js +35 -0
  45. package/dist/dependency-resolution.js.map +1 -0
  46. package/dist/doctor.d.ts +50 -0
  47. package/dist/doctor.d.ts.map +1 -0
  48. package/dist/doctor.js +62 -0
  49. package/dist/doctor.js.map +1 -0
  50. package/dist/durability-trace.d.ts +31 -0
  51. package/dist/durability-trace.d.ts.map +1 -0
  52. package/dist/durability-trace.js +45 -0
  53. package/dist/durability-trace.js.map +1 -0
  54. package/dist/engineering-operations.d.ts +43 -0
  55. package/dist/engineering-operations.d.ts.map +1 -0
  56. package/dist/engineering-operations.js +19 -0
  57. package/dist/engineering-operations.js.map +1 -0
  58. package/dist/engineering-product.d.ts +261 -0
  59. package/dist/engineering-product.d.ts.map +1 -0
  60. package/dist/engineering-product.js +61 -0
  61. package/dist/engineering-product.js.map +1 -0
  62. package/dist/example-recipe.d.ts +147 -0
  63. package/dist/example-recipe.d.ts.map +1 -0
  64. package/dist/example-recipe.js +58 -0
  65. package/dist/example-recipe.js.map +1 -0
  66. package/dist/feature-planner.d.ts +59 -0
  67. package/dist/feature-planner.d.ts.map +1 -0
  68. package/dist/feature-planner.js +160 -0
  69. package/dist/feature-planner.js.map +1 -0
  70. package/dist/filesystem-contracts.d.ts +77 -0
  71. package/dist/filesystem-contracts.d.ts.map +1 -0
  72. package/dist/filesystem-contracts.js +2 -0
  73. package/dist/filesystem-contracts.js.map +1 -0
  74. package/dist/filesystem-transaction.d.ts +52 -0
  75. package/dist/filesystem-transaction.d.ts.map +1 -0
  76. package/dist/filesystem-transaction.js +749 -0
  77. package/dist/filesystem-transaction.js.map +1 -0
  78. package/dist/index.d.ts +44 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +42 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/integrity.d.ts +3 -0
  83. package/dist/integrity.d.ts.map +1 -0
  84. package/dist/integrity.js +17 -0
  85. package/dist/integrity.js.map +1 -0
  86. package/dist/local-artifact-registry.d.ts +55 -0
  87. package/dist/local-artifact-registry.d.ts.map +1 -0
  88. package/dist/local-artifact-registry.js +87 -0
  89. package/dist/local-artifact-registry.js.map +1 -0
  90. package/dist/locked-repository-state.d.ts +21 -0
  91. package/dist/locked-repository-state.d.ts.map +1 -0
  92. package/dist/locked-repository-state.js +62 -0
  93. package/dist/locked-repository-state.js.map +1 -0
  94. package/dist/managed-region.d.ts +11 -0
  95. package/dist/managed-region.d.ts.map +1 -0
  96. package/dist/managed-region.js +45 -0
  97. package/dist/managed-region.js.map +1 -0
  98. package/dist/package-adoption.d.ts +179 -0
  99. package/dist/package-adoption.d.ts.map +1 -0
  100. package/dist/package-adoption.js +332 -0
  101. package/dist/package-adoption.js.map +1 -0
  102. package/dist/package-release.d.ts +42 -0
  103. package/dist/package-release.d.ts.map +1 -0
  104. package/dist/package-release.js +85 -0
  105. package/dist/package-release.js.map +1 -0
  106. package/dist/plan-state.d.ts +10 -0
  107. package/dist/plan-state.d.ts.map +1 -0
  108. package/dist/plan-state.js +33 -0
  109. package/dist/plan-state.js.map +1 -0
  110. package/dist/planner.d.ts +19 -0
  111. package/dist/planner.d.ts.map +1 -0
  112. package/dist/planner.js +111 -0
  113. package/dist/planner.js.map +1 -0
  114. package/dist/platform-package-sources.d.ts +49 -0
  115. package/dist/platform-package-sources.d.ts.map +1 -0
  116. package/dist/platform-package-sources.js +98 -0
  117. package/dist/platform-package-sources.js.map +1 -0
  118. package/dist/project-bootstrap.d.ts +42 -0
  119. package/dist/project-bootstrap.d.ts.map +1 -0
  120. package/dist/project-bootstrap.js +270 -0
  121. package/dist/project-bootstrap.js.map +1 -0
  122. package/dist/project-control.d.ts +149 -0
  123. package/dist/project-control.d.ts.map +1 -0
  124. package/dist/project-control.js +46 -0
  125. package/dist/project-control.js.map +1 -0
  126. package/dist/project-maintenance.d.ts +30 -0
  127. package/dist/project-maintenance.d.ts.map +1 -0
  128. package/dist/project-maintenance.js +29 -0
  129. package/dist/project-maintenance.js.map +1 -0
  130. package/dist/project-recovery.d.ts +31 -0
  131. package/dist/project-recovery.d.ts.map +1 -0
  132. package/dist/project-recovery.js +80 -0
  133. package/dist/project-recovery.js.map +1 -0
  134. package/dist/recovery-override.d.ts +20 -0
  135. package/dist/recovery-override.d.ts.map +1 -0
  136. package/dist/recovery-override.js +27 -0
  137. package/dist/recovery-override.js.map +1 -0
  138. package/dist/release-loader.d.ts +9 -0
  139. package/dist/release-loader.d.ts.map +1 -0
  140. package/dist/release-loader.js +86 -0
  141. package/dist/release-loader.js.map +1 -0
  142. package/dist/resolution-evidence.d.ts +67 -0
  143. package/dist/resolution-evidence.d.ts.map +1 -0
  144. package/dist/resolution-evidence.js +98 -0
  145. package/dist/resolution-evidence.js.map +1 -0
  146. package/dist/resolution-worker-build.d.ts +33 -0
  147. package/dist/resolution-worker-build.d.ts.map +1 -0
  148. package/dist/resolution-worker-build.js +42 -0
  149. package/dist/resolution-worker-build.js.map +1 -0
  150. package/dist/runtime-observability.d.ts +147 -0
  151. package/dist/runtime-observability.d.ts.map +1 -0
  152. package/dist/runtime-observability.js +264 -0
  153. package/dist/runtime-observability.js.map +1 -0
  154. package/dist/schemas.d.ts +740 -0
  155. package/dist/schemas.d.ts.map +1 -0
  156. package/dist/schemas.js +348 -0
  157. package/dist/schemas.js.map +1 -0
  158. package/dist/solution-catalog.d.ts +169 -0
  159. package/dist/solution-catalog.d.ts.map +1 -0
  160. package/dist/solution-catalog.js +60 -0
  161. package/dist/solution-catalog.js.map +1 -0
  162. package/dist/standalone-npm-profile.d.ts +146 -0
  163. package/dist/standalone-npm-profile.d.ts.map +1 -0
  164. package/dist/standalone-npm-profile.js +425 -0
  165. package/dist/standalone-npm-profile.js.map +1 -0
  166. package/dist/testing.d.ts +5 -0
  167. package/dist/testing.d.ts.map +1 -0
  168. package/dist/testing.js +3 -0
  169. package/dist/testing.js.map +1 -0
  170. package/dist/upgrade-planner.d.ts +45 -0
  171. package/dist/upgrade-planner.d.ts.map +1 -0
  172. package/dist/upgrade-planner.js +207 -0
  173. package/dist/upgrade-planner.js.map +1 -0
  174. package/dist/workspace-publication.d.ts +18 -0
  175. package/dist/workspace-publication.d.ts.map +1 -0
  176. package/dist/workspace-publication.js +33 -0
  177. package/dist/workspace-publication.js.map +1 -0
  178. package/dist/workspace-topology.d.ts +22 -0
  179. package/dist/workspace-topology.d.ts.map +1 -0
  180. package/dist/workspace-topology.js +117 -0
  181. package/dist/workspace-topology.js.map +1 -0
  182. package/package.json +46 -0
@@ -0,0 +1,179 @@
1
+ import type { CapabilityBundleReleaseV2, PackageSourceRef, ProjectAdoptionLock } from "./adoption-contracts.js";
2
+ import { type PackageDeliveryReceipt, type RegistryConfigRelease, type RegistryEndpointBinding } from "./catalog-source.js";
3
+ import type { PackageAdoptionPlanFacts, PackageAdoptionTopologyFacts, PreservedPackageDependency } from "./contracts.js";
4
+ import type { ChangePlan } from "./contracts.js";
5
+ import type { ObservedAsset } from "./contracts.js";
6
+ import type { TransactionSnapshot } from "./filesystem-contracts.js";
7
+ import { type ResolutionJobEvidence } from "./resolution-evidence.js";
8
+ export type PackageAdoptionErrorCode = "PACKAGE_SOURCE_NOT_FOUND" | "PACKAGE_SOURCE_INTEGRITY_MISMATCH" | "PACKAGE_SOURCE_POLICY_VIOLATION" | "PACKAGE_SOURCE_AUTH_REQUIRED" | "PACKAGE_SOURCE_DENIED" | "PACKAGE_SOURCE_OUTCOME_UNKNOWN" | "PACKAGE_INSTALL_FAILED" | "PACKAGE_INSTALL_RECOVERY_REQUIRED";
9
+ export declare class PackageAdoptionError extends Error {
10
+ readonly code: PackageAdoptionErrorCode;
11
+ constructor(code: PackageAdoptionErrorCode, options?: ErrorOptions);
12
+ }
13
+ export type PackageArtifactInspection = Readonly<PackageSourceRef & {
14
+ dependencies: Readonly<Record<string, string>>;
15
+ lifecycleScripts: readonly string[];
16
+ }>;
17
+ export type PackageLockResolution = Readonly<{
18
+ lockfile: Uint8Array;
19
+ packages: readonly Readonly<Pick<PackageSourceRef, "registryId" | "packageName" | "version" | "integrity">>[];
20
+ }>;
21
+ export type PackageAdoptionPlan = Readonly<{
22
+ schemaVersion: 1 | 2;
23
+ sourceChannel: "production" | "development";
24
+ planId: string;
25
+ capabilityId: string;
26
+ capabilityVersion: string;
27
+ capabilityIntegrity: string;
28
+ consumerProfile: string;
29
+ generatedAt: string;
30
+ expiresAt: string;
31
+ packageJsonPreimageDigest: string;
32
+ desiredPackageJsonDigest: string;
33
+ desiredPackageJson: Uint8Array;
34
+ lockfilePreimage: Readonly<{
35
+ kind: "absent";
36
+ } | {
37
+ kind: "present";
38
+ digest: string;
39
+ }>;
40
+ desiredLockfileDigest: string;
41
+ desiredLockfile: Uint8Array;
42
+ registryRevisions: readonly Readonly<{
43
+ registryId: string;
44
+ revision: string;
45
+ }>[];
46
+ endpointBindings: readonly Readonly<Pick<RegistryEndpointBinding, "registryId" | "registryConfigRevision" | "bindingDigest" | "expiresAt">>[];
47
+ sources: readonly Readonly<PackageSourceRef>[];
48
+ installPolicy: Readonly<{
49
+ ignoreScripts: true;
50
+ allowWorkspaceProtocol: false;
51
+ allowPublicRegistryFallback: false;
52
+ }>;
53
+ topology?: Readonly<PackageAdoptionTopologyFacts>;
54
+ preservedDependencies?: readonly Readonly<PreservedPackageDependency>[];
55
+ preservedImporterDigests?: readonly Readonly<{
56
+ importerId: string;
57
+ preimageDigest: string;
58
+ desiredDigest: string;
59
+ }>[];
60
+ }>;
61
+ export declare function packageAdoptionFacts(plan: PackageAdoptionPlan): PackageAdoptionPlanFacts;
62
+ export declare function projectPackageManifest(input: {
63
+ release: CapabilityBundleReleaseV2;
64
+ packageJson: Uint8Array;
65
+ }): Uint8Array;
66
+ export declare function projectWorkspacePackageManifest(input: {
67
+ release: CapabilityBundleReleaseV2;
68
+ packageJson: Uint8Array;
69
+ }): Uint8Array;
70
+ export declare function projectPackageRemovalManifest(input: {
71
+ packageJson: Uint8Array;
72
+ remove: readonly Pick<PackageSourceRef, "packageName" | "usage">[];
73
+ }): Uint8Array;
74
+ export declare function projectWorkspacePackageRemovalManifest(input: {
75
+ packageJson: Uint8Array;
76
+ remove: readonly Pick<PackageSourceRef, "packageName" | "usage">[];
77
+ }): Uint8Array;
78
+ export declare function buildPackageRemovalPlan(input: {
79
+ release: CapabilityBundleReleaseV2;
80
+ currentLock: ProjectAdoptionLock;
81
+ projectManifest: Uint8Array;
82
+ packageJson: Uint8Array;
83
+ currentLockfile: Uint8Array;
84
+ desiredLockfile: Uint8Array;
85
+ endpointBindings: readonly RegistryEndpointBinding[];
86
+ observedAssets: readonly ObservedAsset[];
87
+ generatedAt: string;
88
+ expiresAt: string;
89
+ }): Readonly<{
90
+ plan: ChangePlan;
91
+ desiredContents: ReadonlyMap<string, Uint8Array>;
92
+ removedSources: readonly PackageSourceRef[];
93
+ }>;
94
+ export declare function buildWorkspacePackageRemovalPlan(input: {
95
+ release: CapabilityBundleReleaseV2;
96
+ currentLock: ProjectAdoptionLock;
97
+ projectManifest: Uint8Array;
98
+ packageJson: Uint8Array;
99
+ currentLockfile: Uint8Array;
100
+ endpointBindings: readonly RegistryEndpointBinding[];
101
+ observedAssets: readonly ObservedAsset[];
102
+ topology: PackageAdoptionTopologyFacts;
103
+ transactionRoot: string;
104
+ preservedImporterDigests: readonly Readonly<{
105
+ importerId: string;
106
+ preimageDigest: string;
107
+ desiredDigest: string;
108
+ }>[];
109
+ resolutionEvidence: ResolutionJobEvidence;
110
+ resolutionWorkerReleaseId: string;
111
+ remainingSources: readonly PackageSourceRef[];
112
+ generatedAt: string;
113
+ expiresAt: string;
114
+ }): Readonly<{
115
+ plan: ChangePlan;
116
+ desiredContents: ReadonlyMap<string, Uint8Array>;
117
+ removedSources: readonly PackageSourceRef[];
118
+ transactionRoot: string;
119
+ }>;
120
+ type PackageAdoptionPlanInput = {
121
+ release: CapabilityBundleReleaseV2;
122
+ registryConfigs: readonly RegistryConfigRelease[];
123
+ endpointBindings: readonly RegistryEndpointBinding[];
124
+ receipts: readonly PackageDeliveryReceipt[];
125
+ inspections: readonly PackageArtifactInspection[];
126
+ consumerProfile: string;
127
+ packageJson: Uint8Array;
128
+ desiredBasePackageJson?: Uint8Array;
129
+ currentLockfile?: Uint8Array;
130
+ lockResolution: PackageLockResolution;
131
+ generatedAt: string;
132
+ expiresAt: string;
133
+ };
134
+ type WorkspacePackageAdoptionPlanInput = Omit<PackageAdoptionPlanInput, "lockResolution"> & {
135
+ topology: PackageAdoptionTopologyFacts;
136
+ preservedImporterDigests: readonly Readonly<{
137
+ importerId: string;
138
+ preimageDigest: string;
139
+ desiredDigest: string;
140
+ }>[];
141
+ resolutionEvidence: ResolutionJobEvidence;
142
+ resolutionWorkerReleaseId: string;
143
+ };
144
+ export declare function buildPackageAdoptionPlan(input: PackageAdoptionPlanInput): PackageAdoptionPlan;
145
+ export declare function buildDevelopmentPackageAdoptionPlan(input: PackageAdoptionPlanInput): PackageAdoptionPlan;
146
+ export declare function buildWorkspacePackageAdoptionPlan(input: WorkspacePackageAdoptionPlanInput): PackageAdoptionPlan;
147
+ export declare function buildWorkspaceDevelopmentPackageAdoptionPlan(input: WorkspacePackageAdoptionPlanInput): PackageAdoptionPlan;
148
+ export type PackageManagerExecutionPort = Readonly<{
149
+ prepare(input: Readonly<{
150
+ projectRoot: string;
151
+ plan: ChangePlan;
152
+ }>): Promise<void>;
153
+ install(input: Readonly<{
154
+ projectRoot: string;
155
+ plan: ChangePlan;
156
+ }>): Promise<void>;
157
+ verify(input: Readonly<{
158
+ projectRoot: string;
159
+ plan: ChangePlan;
160
+ }>): Promise<void>;
161
+ restore(input: Readonly<{
162
+ projectRoot: string;
163
+ plan: ChangePlan;
164
+ }>): Promise<void>;
165
+ cleanup(input: Readonly<{
166
+ projectRoot: string;
167
+ plan: ChangePlan;
168
+ }>): Promise<void>;
169
+ }>;
170
+ export declare function executePackageAdoptionTransaction(input: {
171
+ projectRoot: string;
172
+ plan: ChangePlan;
173
+ approvedPlanId: string;
174
+ desiredContents: ReadonlyMap<string, Uint8Array>;
175
+ now: string;
176
+ packageManager: PackageManagerExecutionPort;
177
+ }): Promise<TransactionSnapshot>;
178
+ export {};
179
+ //# sourceMappingURL=package-adoption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-adoption.d.ts","sourceRoot":"","sources":["../src/package-adoption.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAChH,OAAO,EAAyF,KAAK,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEnN,OAAO,KAAK,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AACzH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAiE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAErI,MAAM,MAAM,wBAAwB,GAChC,0BAA0B,GAC1B,mCAAmC,GACnC,iCAAiC,GACjC,8BAA8B,GAC9B,uBAAuB,GACvB,gCAAgC,GAChC,wBAAwB,GACxB,mCAAmC,CAAC;AAExC,qBAAa,oBAAqB,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,wBAAwB;gBAA9B,IAAI,EAAE,wBAAwB,EAAE,OAAO,CAAC,EAAE,YAAY;CAC5E;AAED,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC,gBAAgB,GAAG;IAClE,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,SAAS,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC;CAC/G,CAAC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC;IACrB,aAAa,EAAE,YAAY,GAAG,aAAa,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB,EAAE,MAAM,CAAC;IAClC,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,UAAU,CAAC;IAC/B,gBAAgB,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrF,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,UAAU,CAAC;IAC5B,iBAAiB,EAAE,SAAS,QAAQ,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IACjF,gBAAgB,EAAE,SAAS,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,YAAY,GAAG,wBAAwB,GAAG,eAAe,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC;IAC9I,OAAO,EAAE,SAAS,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC/C,aAAa,EAAE,QAAQ,CAAC;QAAE,aAAa,EAAE,IAAI,CAAC;QAAC,sBAAsB,EAAE,KAAK,CAAC;QAAC,2BAA2B,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IACpH,QAAQ,CAAC,EAAE,QAAQ,CAAC,4BAA4B,CAAC,CAAC;IAClD,qBAAqB,CAAC,EAAE,SAAS,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;IACxE,wBAAwB,CAAC,EAAE,SAAS,QAAQ,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;CACvH,CAAC,CAAC;AAEH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,wBAAwB,CAexF;AAgDD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,yBAAyB,CAAC;IAAC,WAAW,EAAE,UAAU,CAAA;CAAE,GAAG,UAAU,CAOzH;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,yBAAyB,CAAC;IAAC,WAAW,EAAE,UAAU,CAAA;CAAE,GAAG,UAAU,CAMlI;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IAAE,WAAW,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,SAAS,IAAI,CAAC,gBAAgB,EAAE,aAAa,GAAG,OAAO,CAAC,EAAE,CAAA;CAAE,GAAG,UAAU,CAUhK;AAED,wBAAgB,sCAAsC,CAAC,KAAK,EAAE;IAAE,WAAW,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,SAAS,IAAI,CAAC,gBAAgB,EAAE,aAAa,GAAG,OAAO,CAAC,EAAE,CAAA;CAAE,GAAG,UAAU,CASzK;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,OAAO,EAAE,yBAAyB,CAAC;IACnC,WAAW,EAAE,mBAAmB,CAAC;IACjC,eAAe,EAAE,UAAU,CAAC;IAC5B,WAAW,EAAE,UAAU,CAAC;IACxB,eAAe,EAAE,UAAU,CAAC;IAC5B,eAAe,EAAE,UAAU,CAAC;IAC5B,gBAAgB,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACrD,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAAC,cAAc,EAAE,SAAS,gBAAgB,EAAE,CAAA;CAAE,CAAC,CAkBhI;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,OAAO,EAAE,yBAAyB,CAAC;IAAC,WAAW,EAAE,mBAAmB,CAAC;IAAC,eAAe,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,UAAU,CAAC;IAAC,eAAe,EAAE,UAAU,CAAC;IACxJ,gBAAgB,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IAAC,QAAQ,EAAE,4BAA4B,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAChK,wBAAwB,EAAE,SAAS,QAAQ,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IACrH,kBAAkB,EAAE,qBAAqB,CAAC;IAAC,yBAAyB,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;CACrK,GAAG,QAAQ,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAAC,cAAc,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,CAyBzJ;AAED,KAAK,wBAAwB,GAAG;IAC9B,OAAO,EAAE,yBAAyB,CAAC;IACnC,eAAe,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAClD,gBAAgB,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACrD,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC5C,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAClD,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,UAAU,CAAC;IACxB,sBAAsB,CAAC,EAAE,UAAU,CAAC;IACpC,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,cAAc,EAAE,qBAAqB,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,iCAAiC,GAAG,IAAI,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,GAAG;IAC1F,QAAQ,EAAE,4BAA4B,CAAC;IACvC,wBAAwB,EAAE,SAAS,QAAQ,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IACrH,kBAAkB,EAAE,qBAAqB,CAAC;IAC1C,yBAAyB,EAAE,MAAM,CAAC;CACnC,CAAC;AAsFF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,CAAoE;AAClK,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,CAAqE;AAC9K,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,iCAAiC,GAAG,mBAAmB,CAAoE;AACpL,wBAAgB,4CAA4C,CAAC,KAAK,EAAE,iCAAiC,GAAG,mBAAmB,CAAqE;AAEhM,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC;IACjD,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpF,CAAC,CAAC;AAuBH,wBAAsB,iCAAiC,CAAC,KAAK,EAAE;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,2BAA2B,CAAC;CAC7C,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAqB/B"}
@@ -0,0 +1,332 @@
1
+ import { parsePackageDeliveryReceipt, parseRegistryConfigRelease, parseRegistryEndpointBinding } from "./catalog-source.js";
2
+ import { sha256Digest } from "./integrity.js";
3
+ import { applyPrepared, prepareApply, rollbackAppliedTransaction } from "./filesystem-transaction.js";
4
+ import { buildChangePlan } from "./planner.js";
5
+ import { calculateResolutionRequestDigest, verifyResolutionJobEvidence } from "./resolution-evidence.js";
6
+ export class PackageAdoptionError extends Error {
7
+ code;
8
+ constructor(code, options) {
9
+ super(code, options);
10
+ this.code = code;
11
+ this.name = "PackageAdoptionError";
12
+ }
13
+ }
14
+ export function packageAdoptionFacts(plan) {
15
+ const common = {
16
+ sourceChannel: plan.sourceChannel,
17
+ packageJsonPreimageDigest: plan.packageJsonPreimageDigest,
18
+ desiredPackageJsonDigest: plan.desiredPackageJsonDigest,
19
+ lockfilePreimage: { ...plan.lockfilePreimage },
20
+ desiredLockfileDigest: plan.desiredLockfileDigest,
21
+ registryRevisions: plan.registryRevisions.map((item) => ({ ...item })),
22
+ endpointBindings: plan.endpointBindings.map(({ registryId, registryConfigRevision, bindingDigest, expiresAt }) => ({ registryId, registryConfigRevision, bindingDigest, expiresAt })),
23
+ sources: plan.sources.map((item) => ({ ...item })),
24
+ installPolicy: { ...plan.installPolicy },
25
+ };
26
+ if (plan.schemaVersion === 1)
27
+ return { schemaVersion: 1, ...common };
28
+ if (!plan.topology || !plan.preservedDependencies || !plan.preservedImporterDigests)
29
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
30
+ return { schemaVersion: 2, ...common, topology: { ...plan.topology }, preservedDependencies: plan.preservedDependencies.map((item) => ({ ...item })), preservedImporterDigests: plan.preservedImporterDigests.map((item) => ({ ...item })) };
31
+ }
32
+ const exactVersionPattern = /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u;
33
+ const forbiddenSpecifierPattern = /^(?:workspace:|file:|link:|git(?:\+|:)|https?:|npm:)|[~^*<>=|]/u;
34
+ function canonical(value) {
35
+ if (Array.isArray(value))
36
+ return `[${value.map(canonical).join(",")}]`;
37
+ if (value !== null && typeof value === "object")
38
+ return `{${Object.entries(value).filter(([, item]) => item !== undefined).sort(([left], [right]) => left.localeCompare(right)).map(([key, item]) => `${JSON.stringify(key)}:${canonical(item)}`).join(",")}}`;
39
+ return JSON.stringify(value);
40
+ }
41
+ function parsePackageJson(bytes) {
42
+ let value;
43
+ try {
44
+ value = JSON.parse(Buffer.from(bytes).toString("utf8"));
45
+ }
46
+ catch {
47
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
48
+ }
49
+ if (!value || typeof value !== "object" || Array.isArray(value))
50
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
51
+ return value;
52
+ }
53
+ function dependencyMap(value) {
54
+ if (value === undefined)
55
+ return {};
56
+ if (!value || typeof value !== "object" || Array.isArray(value))
57
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
58
+ const entries = Object.entries(value);
59
+ if (entries.some(([, specifier]) => typeof specifier !== "string"))
60
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
61
+ return Object.fromEntries(entries);
62
+ }
63
+ function assertExistingDependenciesSafe(packageJson) {
64
+ for (const section of [dependencyMap(packageJson.dependencies), dependencyMap(packageJson.devDependencies), dependencyMap(packageJson.optionalDependencies)]) {
65
+ for (const [name, specifier] of Object.entries(section)) {
66
+ if (name.startsWith("@aipt/") && (!exactVersionPattern.test(specifier) || forbiddenSpecifierPattern.test(specifier)))
67
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
68
+ }
69
+ }
70
+ }
71
+ const dependencySections = ["dependencies", "devDependencies", "optionalDependencies"];
72
+ function workspaceDependencyFacts(packageJson, managedNames) {
73
+ const preserved = [];
74
+ for (const section of dependencySections)
75
+ for (const [packageName, specifier] of Object.entries(dependencyMap(packageJson[section]))) {
76
+ if (managedNames.has(packageName)) {
77
+ if (!exactVersionPattern.test(specifier))
78
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
79
+ continue;
80
+ }
81
+ if (/^(?:file:|link:|git(?:\+|:)|https?:|npm:)/u.test(specifier))
82
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
83
+ preserved.push({ section, packageName, specifier });
84
+ }
85
+ return preserved.sort((left, right) => `${left.section}:${left.packageName}`.localeCompare(`${right.section}:${right.packageName}`));
86
+ }
87
+ export function projectPackageManifest(input) {
88
+ const packageJson = parsePackageJson(input.packageJson);
89
+ assertExistingDependenciesSafe(packageJson);
90
+ const runtime = Object.fromEntries(input.release.packageSources.filter(({ usage }) => usage === "runtime").map(({ packageName, version }) => [packageName, version]));
91
+ const development = Object.fromEntries(input.release.packageSources.filter(({ usage }) => usage === "development").map(({ packageName, version }) => [packageName, version]));
92
+ const desired = { ...packageJson, ...(Object.keys(runtime).length ? { dependencies: { ...dependencyMap(packageJson.dependencies), ...runtime } } : {}), ...(Object.keys(development).length ? { devDependencies: { ...dependencyMap(packageJson.devDependencies), ...development } } : {}) };
93
+ return Buffer.from(`${JSON.stringify(desired, null, 2)}\n`);
94
+ }
95
+ export function projectWorkspacePackageManifest(input) {
96
+ const packageJson = parsePackageJson(input.packageJson);
97
+ workspaceDependencyFacts(packageJson, new Set(input.release.packageSources.map((source) => source.packageName)));
98
+ const runtime = Object.fromEntries(input.release.packageSources.filter(({ usage }) => usage === "runtime").map(({ packageName, version }) => [packageName, version]));
99
+ const development = Object.fromEntries(input.release.packageSources.filter(({ usage }) => usage === "development").map(({ packageName, version }) => [packageName, version]));
100
+ return Buffer.from(`${JSON.stringify({ ...packageJson, ...(Object.keys(runtime).length ? { dependencies: { ...dependencyMap(packageJson.dependencies), ...runtime } } : {}), ...(Object.keys(development).length ? { devDependencies: { ...dependencyMap(packageJson.devDependencies), ...development } } : {}) }, null, 2)}\n`);
101
+ }
102
+ export function projectPackageRemovalManifest(input) {
103
+ const packageJson = parsePackageJson(input.packageJson);
104
+ assertExistingDependenciesSafe(packageJson);
105
+ const runtime = dependencyMap(packageJson.dependencies);
106
+ const development = dependencyMap(packageJson.devDependencies);
107
+ for (const source of input.remove)
108
+ delete (source.usage === "runtime" ? runtime : development)[source.packageName];
109
+ const desired = { ...packageJson };
110
+ if (Object.keys(runtime).length === 0)
111
+ delete desired.dependencies;
112
+ else
113
+ desired.dependencies = runtime;
114
+ if (Object.keys(development).length === 0)
115
+ delete desired.devDependencies;
116
+ else
117
+ desired.devDependencies = development;
118
+ return Buffer.from(`${JSON.stringify(desired, null, 2)}\n`);
119
+ }
120
+ export function projectWorkspacePackageRemovalManifest(input) {
121
+ const packageJson = parsePackageJson(input.packageJson);
122
+ workspaceDependencyFacts(packageJson, new Set(input.remove.map((source) => source.packageName)));
123
+ const runtime = dependencyMap(packageJson.dependencies);
124
+ const development = dependencyMap(packageJson.devDependencies);
125
+ for (const source of input.remove)
126
+ delete (source.usage === "runtime" ? runtime : development)[source.packageName];
127
+ const desired = { ...packageJson };
128
+ if (Object.keys(runtime).length === 0)
129
+ delete desired.dependencies;
130
+ else
131
+ desired.dependencies = runtime;
132
+ if (Object.keys(development).length === 0)
133
+ delete desired.devDependencies;
134
+ else
135
+ desired.devDependencies = development;
136
+ return Buffer.from(`${JSON.stringify(desired, null, 2)}\n`);
137
+ }
138
+ export function buildPackageRemovalPlan(input) {
139
+ const target = input.currentLock.capabilities.find((capability) => capability.capabilityId === input.release.capabilityId && capability.version === input.release.version);
140
+ if (!target?.packageAdoption)
141
+ throw new PackageAdoptionError("PACKAGE_SOURCE_NOT_FOUND");
142
+ const shared = new Set(input.currentLock.capabilities.filter((capability) => capability !== target).flatMap((capability) => capability.packageAdoption?.sources.map((source) => source.packageName) ?? []));
143
+ const removedSources = target.packageAdoption.sources.filter((source) => !shared.has(source.packageName));
144
+ const desiredPackageJson = projectPackageRemovalManifest({ packageJson: input.packageJson, remove: removedSources });
145
+ const manifest = parsePackageJson(input.projectManifest);
146
+ const selected = Array.isArray(manifest.capabilities) ? manifest.capabilities : [];
147
+ const desiredProjectManifest = Buffer.from(`${JSON.stringify({ ...manifest, capabilities: selected.filter((capability) => capability.capabilityId !== input.release.capabilityId || capability.version !== input.release.version) }, null, 2)}\n`);
148
+ const bindings = input.endpointBindings.filter((binding) => removedSources.some((source) => source.registryId === binding.registryId));
149
+ const changes = [
150
+ { path: "project-capabilities.json", kind: "replace", ownership: "owned-file", baseDigest: sha256Digest(input.projectManifest), desiredDigest: sha256Digest(desiredProjectManifest) },
151
+ { path: "package.json", kind: "replace", ownership: "owned-file", baseDigest: sha256Digest(input.packageJson), desiredDigest: sha256Digest(desiredPackageJson) },
152
+ { path: "pnpm-lock.yaml", kind: "replace", ownership: "owned-file", baseDigest: sha256Digest(input.currentLockfile), desiredDigest: sha256Digest(input.desiredLockfile) },
153
+ ...target.assets.map((asset) => ({ path: asset.path, kind: "remove", ownership: asset.ownership ?? "owned-file", baseDigest: asset.digest })),
154
+ ];
155
+ const plan = buildChangePlan({ action: "remove", capability: { schemaVersion: 1, capabilityId: input.release.capabilityId, version: input.release.version, integrity: input.release.integrity, assets: target.assets.map((asset) => ({ path: asset.path, ownership: asset.ownership ?? "owned-file", desiredDigest: asset.digest })), verifiers: input.release.verifiers.map((verifier) => ({ id: verifier.id, kind: "file-digest" })) }, changes, observedAssets: [...input.observedAssets], generatedAt: input.generatedAt, expiresAt: input.expiresAt, packageAdoption: { schemaVersion: 1, sourceChannel: target.packageAdoption.sourceChannel ?? "production", packageJsonPreimageDigest: sha256Digest(input.packageJson), desiredPackageJsonDigest: sha256Digest(desiredPackageJson), lockfilePreimage: { kind: "present", digest: sha256Digest(input.currentLockfile) }, desiredLockfileDigest: sha256Digest(input.desiredLockfile), registryRevisions: target.packageAdoption.registryRevisions.map((item) => ({ ...item })), endpointBindings: bindings.map(({ registryId, registryConfigRevision, bindingDigest, expiresAt }) => ({ registryId, registryConfigRevision, bindingDigest, expiresAt })), sources: removedSources.map((source) => ({ ...source })), installPolicy: { ignoreScripts: true, allowWorkspaceProtocol: false, allowPublicRegistryFallback: false } } });
156
+ return { plan, desiredContents: new Map([["project-capabilities.json", desiredProjectManifest], ["package.json", desiredPackageJson], ["pnpm-lock.yaml", input.desiredLockfile]]), removedSources };
157
+ }
158
+ export function buildWorkspacePackageRemovalPlan(input) {
159
+ const target = input.currentLock.capabilities.find((capability) => capability.capabilityId === input.release.capabilityId && capability.version === input.release.version);
160
+ if (!target?.packageAdoption || input.topology.mode !== "pnpm-shared-lockfile")
161
+ throw new PackageAdoptionError("PACKAGE_SOURCE_NOT_FOUND");
162
+ const shared = new Set(input.currentLock.capabilities.filter((capability) => capability !== target).flatMap((capability) => capability.packageAdoption?.sources.map((source) => source.packageName) ?? []));
163
+ const removedSources = target.packageAdoption.sources.filter((source) => !shared.has(source.packageName));
164
+ const desiredPackageJson = projectWorkspacePackageRemovalManifest({ packageJson: input.packageJson, remove: removedSources });
165
+ const managedSources = input.remainingSources.map(({ registryId, packageName, version, integrity }) => ({ registryId, packageName, version, integrity }));
166
+ const topology = { mode: input.topology.mode, unitRelativeRoot: input.topology.unitRelativeRoot, unitImporterId: input.topology.unitImporterId, lockfilePath: input.topology.lockfilePath, ...(input.topology.workspaceManifestPath ? { workspaceManifestPath: input.topology.workspaceManifestPath, workspaceManifestDigest: input.topology.workspaceManifestDigest } : {}) };
167
+ const verified = verifyResolutionJobEvidence(input.resolutionEvidence, {
168
+ requestDigest: calculateResolutionRequestDigest({ schemaVersion: 1, pnpmVersion: "11.21.0", topology, currentLockfileDigest: sha256Digest(input.currentLockfile), desiredPackageJsonDigest: sha256Digest(desiredPackageJson), sources: managedSources, preservedImporterDigests: input.preservedImporterDigests.map(({ importerId, preimageDigest }) => ({ importerId, preimageDigest })) }),
169
+ pnpmVersion: "11.21.0", workerReleaseId: input.resolutionWorkerReleaseId, targetImporterId: input.topology.unitImporterId, targetManifestDigest: sha256Digest(desiredPackageJson), preservedImporterDigests: input.preservedImporterDigests.map(({ importerId, preimageDigest }) => ({ importerId, preimageDigest })), managedSources, now: input.generatedAt,
170
+ });
171
+ const manifest = parsePackageJson(input.projectManifest);
172
+ const selected = Array.isArray(manifest.capabilities) ? manifest.capabilities : [];
173
+ const desiredProjectManifest = Buffer.from(`${JSON.stringify({ ...manifest, capabilities: selected.filter((capability) => capability.capabilityId !== input.release.capabilityId || capability.version !== input.release.version) }, null, 2)}\n`);
174
+ const unitPath = (value) => `${input.topology.unitRelativeRoot}/${value}`;
175
+ const bindings = input.endpointBindings.filter((binding) => removedSources.some((source) => source.registryId === binding.registryId));
176
+ const changes = [
177
+ { path: unitPath("project-capabilities.json"), kind: "replace", ownership: "owned-file", baseDigest: sha256Digest(input.projectManifest), desiredDigest: sha256Digest(desiredProjectManifest) },
178
+ { path: unitPath("package.json"), kind: "replace", ownership: "owned-file", baseDigest: sha256Digest(input.packageJson), desiredDigest: sha256Digest(desiredPackageJson) },
179
+ { path: input.topology.lockfilePath, kind: "replace", ownership: "owned-file", baseDigest: sha256Digest(input.currentLockfile), desiredDigest: verified.desiredLockDigest },
180
+ ...target.assets.map((asset) => ({ path: unitPath(asset.path), kind: "remove", ownership: asset.ownership ?? "owned-file", baseDigest: asset.digest })),
181
+ ];
182
+ const plan = buildChangePlan({ action: "remove", capability: { schemaVersion: 1, capabilityId: input.release.capabilityId, version: input.release.version, integrity: input.release.integrity, assets: target.assets.map((asset) => ({ path: asset.path, ownership: asset.ownership ?? "owned-file", desiredDigest: asset.digest })), verifiers: input.release.verifiers.map((verifier) => ({ id: verifier.id, kind: "file-digest" })) }, changes, observedAssets: [...input.observedAssets], generatedAt: input.generatedAt, expiresAt: input.expiresAt, packageAdoption: { schemaVersion: 2, sourceChannel: target.packageAdoption.sourceChannel ?? "production", packageJsonPreimageDigest: sha256Digest(input.packageJson), desiredPackageJsonDigest: sha256Digest(desiredPackageJson), lockfilePreimage: { kind: "present", digest: sha256Digest(input.currentLockfile) }, desiredLockfileDigest: verified.desiredLockDigest, registryRevisions: target.packageAdoption.registryRevisions.map((item) => ({ ...item })), endpointBindings: bindings.map(({ registryId, registryConfigRevision, bindingDigest, expiresAt }) => ({ registryId, registryConfigRevision, bindingDigest, expiresAt })), sources: removedSources.map((source) => ({ ...source })), installPolicy: { ignoreScripts: true, allowWorkspaceProtocol: false, allowPublicRegistryFallback: false }, topology, preservedDependencies: workspaceDependencyFacts(parsePackageJson(desiredPackageJson), new Set(input.remainingSources.map((source) => source.packageName))), preservedImporterDigests: input.preservedImporterDigests.map((item) => ({ ...item })) } });
183
+ return { plan, desiredContents: new Map([[unitPath("project-capabilities.json"), desiredProjectManifest], [unitPath("package.json"), desiredPackageJson], [input.topology.lockfilePath, verified.desiredLockfile]]), removedSources, transactionRoot: input.transactionRoot };
184
+ }
185
+ function buildPackageAdoptionPlanForChannel(input, channel) {
186
+ const availability = input.release.availability;
187
+ const production = availability.maturity === "available" && availability.visibility === "catalog-consumers" && availability.sourceState === "registry-verified";
188
+ const development = availability.maturity === "candidate" && availability.visibility === "maintainers-only" && availability.sourceState === "development-registry";
189
+ if ((channel === "production" ? !production : !development) || input.release.packageSources.length === 0)
190
+ throw new PackageAdoptionError("PACKAGE_SOURCE_NOT_FOUND");
191
+ const packageJson = parsePackageJson(input.packageJson);
192
+ const desiredBasePackageJson = input.desiredBasePackageJson ?? input.packageJson;
193
+ const desiredBase = parsePackageJson(desiredBasePackageJson);
194
+ const workspace = "topology" in input;
195
+ const preservedDependencies = workspace ? workspaceDependencyFacts(desiredBase, new Set(input.release.packageSources.map((source) => source.packageName))) : undefined;
196
+ if (!workspace)
197
+ assertExistingDependenciesSafe(packageJson);
198
+ if (!workspace)
199
+ assertExistingDependenciesSafe(desiredBase);
200
+ const registries = new Map(input.registryConfigs.map((value) => { const parsed = parseRegistryConfigRelease(value); return [parsed.registryId, parsed]; }));
201
+ const bindings = new Map(input.endpointBindings.map((value) => { const registry = registries.get(value.registryId); if (registry === undefined)
202
+ throw new PackageAdoptionError("PACKAGE_SOURCE_NOT_FOUND"); const parsed = parseRegistryEndpointBinding(value, registry); return [parsed.registryId, parsed]; }));
203
+ const receipts = new Map(input.receipts.map((value) => { const parsed = parsePackageDeliveryReceipt(value); return [parsed.receiptId, parsed]; }));
204
+ const inspections = new Map(input.inspections.map((value) => [`${value.registryId}:${value.packageName}@${value.version}`, value]));
205
+ const declared = new Map(input.release.packageSources.map((source) => [source.packageName, source]));
206
+ const workspaceResolution = workspace ? verifyResolutionJobEvidence(input.resolutionEvidence, {
207
+ requestDigest: calculateResolutionRequestDigest({
208
+ schemaVersion: 1,
209
+ pnpmVersion: "11.21.0",
210
+ topology: input.topology,
211
+ currentLockfileDigest: input.currentLockfile === undefined ? null : sha256Digest(input.currentLockfile),
212
+ desiredPackageJsonDigest: sha256Digest(projectWorkspacePackageManifest({ release: input.release, packageJson: desiredBasePackageJson })),
213
+ sources: input.release.packageSources.map(({ registryId, packageName, version, integrity }) => ({ registryId, packageName, version, integrity })),
214
+ preservedImporterDigests: input.preservedImporterDigests.map(({ importerId, preimageDigest }) => ({ importerId, preimageDigest })),
215
+ }),
216
+ pnpmVersion: "11.21.0",
217
+ workerReleaseId: input.resolutionWorkerReleaseId,
218
+ targetImporterId: input.topology.unitImporterId,
219
+ targetManifestDigest: sha256Digest(projectWorkspacePackageManifest({ release: input.release, packageJson: desiredBasePackageJson })),
220
+ preservedImporterDigests: input.preservedImporterDigests.map(({ importerId, preimageDigest }) => ({ importerId, preimageDigest })),
221
+ managedSources: input.release.packageSources.map(({ registryId, packageName, version, integrity }) => ({ registryId, packageName, version, integrity })),
222
+ now: input.generatedAt,
223
+ }) : undefined;
224
+ const effectiveResolution = workspace
225
+ ? { lockfile: workspaceResolution.desiredLockfile, packages: workspaceResolution.packageFacts.filter((fact) => fact.managed).map(({ registryId, packageName, version, integrity }) => ({ registryId, packageName, version, integrity })) }
226
+ : input.lockResolution;
227
+ if (effectiveResolution.lockfile.byteLength === 0 || effectiveResolution.packages.length !== input.release.packageSources.length)
228
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION", { cause: new Error(`managed resolution count ${effectiveResolution.packages.length}/${input.release.packageSources.length}`) });
229
+ const locked = new Map(effectiveResolution.packages.map((item) => [item.packageName, item]));
230
+ for (const source of input.release.packageSources) {
231
+ const registry = registries.get(source.registryId);
232
+ const binding = bindings.get(source.registryId);
233
+ const receipt = receipts.get(source.deliveryReceiptId);
234
+ const inspection = inspections.get(`${source.registryId}:${source.packageName}@${source.version}`);
235
+ const lock = locked.get(source.packageName);
236
+ if (receipt !== undefined && ((channel === "production" && receipt.provenance === "development-readback-verified") || (channel === "development" && receipt.provenance !== "development-readback-verified")))
237
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
238
+ if (!registry || !binding || Date.parse(binding.expiresAt) <= Date.parse(input.expiresAt) || registry.status !== "enabled" || !registry.scopes.some((scope) => source.packageName.startsWith(`${scope}/`)) || !receipt || !inspection || !lock)
239
+ throw new PackageAdoptionError("PACKAGE_SOURCE_NOT_FOUND");
240
+ if (receipt.registryId !== source.registryId || receipt.registryConfigRevision !== registry.revision || receipt.packageName !== source.packageName || receipt.version !== source.version || receipt.integrity !== source.integrity || receipt.tarballDigest !== source.tarballDigest
241
+ || inspection.integrity !== source.integrity || inspection.tarballDigest !== source.tarballDigest || inspection.deliveryReceiptId !== source.deliveryReceiptId
242
+ || lock.registryId !== source.registryId || lock.version !== source.version || lock.integrity !== source.integrity)
243
+ throw new PackageAdoptionError("PACKAGE_SOURCE_INTEGRITY_MISMATCH");
244
+ if (!exactVersionPattern.test(source.version) || inspection.lifecycleScripts.length > 0)
245
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
246
+ for (const [dependency, specifier] of Object.entries(inspection.dependencies)) {
247
+ const dependencySource = declared.get(dependency);
248
+ if (dependency.startsWith("@aipt/") && (!dependencySource || dependencySource.version !== specifier || !exactVersionPattern.test(specifier)))
249
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION", { cause: new Error(`undeclared internal dependency ${source.packageName}->${dependency}@${specifier}`) });
250
+ if (forbiddenSpecifierPattern.test(specifier))
251
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
252
+ }
253
+ }
254
+ const desiredPackageJson = workspace ? projectWorkspacePackageManifest({ release: input.release, packageJson: desiredBasePackageJson }) : projectPackageManifest({ release: input.release, packageJson: desiredBasePackageJson });
255
+ const facts = {
256
+ schemaVersion: workspace ? 2 : 1,
257
+ sourceChannel: channel,
258
+ capabilityId: input.release.capabilityId,
259
+ capabilityVersion: input.release.version,
260
+ capabilityIntegrity: input.release.integrity,
261
+ consumerProfile: input.consumerProfile,
262
+ generatedAt: input.generatedAt,
263
+ expiresAt: input.expiresAt,
264
+ packageJsonPreimageDigest: sha256Digest(input.packageJson),
265
+ desiredPackageJsonDigest: sha256Digest(desiredPackageJson),
266
+ lockfilePreimage: Object.freeze(input.currentLockfile === undefined ? { kind: "absent" } : { kind: "present", digest: sha256Digest(input.currentLockfile) }),
267
+ desiredLockfileDigest: sha256Digest(effectiveResolution.lockfile),
268
+ registryRevisions: Object.freeze([...registries.values()].filter((registry) => input.release.packageSources.some((source) => source.registryId === registry.registryId)).map(({ registryId, revision }) => Object.freeze({ registryId, revision })).sort((left, right) => left.registryId.localeCompare(right.registryId))),
269
+ endpointBindings: Object.freeze([...bindings.values()].filter((binding) => input.release.packageSources.some((source) => source.registryId === binding.registryId)).map(({ registryId, registryConfigRevision, bindingDigest, expiresAt }) => Object.freeze({ registryId, registryConfigRevision, bindingDigest, expiresAt })).sort((left, right) => left.registryId.localeCompare(right.registryId))),
270
+ sources: Object.freeze(input.release.packageSources.map((source) => Object.freeze({ ...source }))),
271
+ installPolicy: Object.freeze({ ignoreScripts: true, allowWorkspaceProtocol: false, allowPublicRegistryFallback: false }),
272
+ ...(workspace ? { topology: Object.freeze({ ...input.topology }), preservedDependencies: Object.freeze(preservedDependencies.map((item) => Object.freeze({ ...item }))), preservedImporterDigests: Object.freeze(input.preservedImporterDigests.map((item) => Object.freeze({ ...item }))) } : {}),
273
+ };
274
+ const planId = sha256Digest(canonical(facts));
275
+ return Object.freeze({ ...facts, planId, desiredPackageJson, desiredLockfile: effectiveResolution.lockfile });
276
+ }
277
+ export function buildPackageAdoptionPlan(input) { return buildPackageAdoptionPlanForChannel(input, "production"); }
278
+ export function buildDevelopmentPackageAdoptionPlan(input) { return buildPackageAdoptionPlanForChannel(input, "development"); }
279
+ export function buildWorkspacePackageAdoptionPlan(input) { return buildPackageAdoptionPlanForChannel(input, "production"); }
280
+ export function buildWorkspaceDevelopmentPackageAdoptionPlan(input) { return buildPackageAdoptionPlanForChannel(input, "development"); }
281
+ function assertPackageOperationsMatchFacts(plan) {
282
+ const facts = plan.packageAdoption;
283
+ if (facts === undefined)
284
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
285
+ const manifestPath = facts.schemaVersion === 2 && facts.topology.mode === "pnpm-shared-lockfile" ? `${facts.topology.unitRelativeRoot}/package.json` : "package.json";
286
+ const lockfilePath = facts.schemaVersion === 2 ? facts.topology.lockfilePath : "pnpm-lock.yaml";
287
+ const manifest = plan.operations.filter(({ path }) => path === manifestPath);
288
+ const lockfile = plan.operations.filter(({ path }) => path === lockfilePath);
289
+ if (manifest.length !== 1 || lockfile.length !== 1)
290
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
291
+ const manifestOperation = manifest[0];
292
+ const lockfileOperation = lockfile[0];
293
+ const manifestMatches = manifestOperation.kind === "replace"
294
+ && manifestOperation.baseDigest === facts.packageJsonPreimageDigest
295
+ && manifestOperation.desiredDigest === facts.desiredPackageJsonDigest
296
+ && manifestOperation.disposition === "ready";
297
+ const lockfileMatches = lockfileOperation.kind === (facts.lockfilePreimage.kind === "absent" ? "create" : "replace")
298
+ && (facts.lockfilePreimage.kind === "absent" ? lockfileOperation.baseDigest === undefined : lockfileOperation.baseDigest === facts.lockfilePreimage.digest)
299
+ && lockfileOperation.desiredDigest === facts.desiredLockfileDigest
300
+ && lockfileOperation.disposition === "ready";
301
+ if (!manifestMatches || !lockfileMatches)
302
+ throw new PackageAdoptionError("PACKAGE_SOURCE_POLICY_VIOLATION");
303
+ }
304
+ export async function executePackageAdoptionTransaction(input) {
305
+ assertPackageOperationsMatchFacts(input.plan);
306
+ let applied = false;
307
+ try {
308
+ await input.packageManager.prepare({ projectRoot: input.projectRoot, plan: input.plan });
309
+ const prepared = await prepareApply({ projectRoot: input.projectRoot, plan: input.plan, approvedPlanId: input.approvedPlanId, desiredContents: input.desiredContents, now: input.now });
310
+ const snapshot = await applyPrepared(prepared);
311
+ applied = true;
312
+ await input.packageManager.install({ projectRoot: input.projectRoot, plan: input.plan });
313
+ await input.packageManager.verify({ projectRoot: input.projectRoot, plan: input.plan });
314
+ return snapshot;
315
+ }
316
+ catch (error) {
317
+ if (applied) {
318
+ await rollbackAppliedTransaction({ projectRoot: input.projectRoot, planId: input.plan.planId, now: new Date().toISOString(), failureCode: "PACKAGE_INSTALL_FAILED" });
319
+ try {
320
+ await input.packageManager.restore({ projectRoot: input.projectRoot, plan: input.plan });
321
+ }
322
+ catch (restoreError) {
323
+ throw new PackageAdoptionError("PACKAGE_INSTALL_RECOVERY_REQUIRED", { cause: restoreError });
324
+ }
325
+ }
326
+ throw error;
327
+ }
328
+ finally {
329
+ await input.packageManager.cleanup({ projectRoot: input.projectRoot, plan: input.plan });
330
+ }
331
+ }
332
+ //# sourceMappingURL=package-adoption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-adoption.js","sourceRoot":"","sources":["../src/package-adoption.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,4BAA4B,EAAyF,MAAM,qBAAqB,CAAC;AACnN,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAEtG,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gCAAgC,EAAE,2BAA2B,EAA8B,MAAM,0BAA0B,CAAC;AAYrI,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACxB;IAArB,YAAqB,IAA8B,EAAE,OAAsB;QAAI,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAA/E,SAAI,GAAJ,IAAI,CAA0B;QAAkD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IAAC,CAAC;CAC3I;AAqCD,MAAM,UAAU,oBAAoB,CAAC,IAAyB;IAC5D,MAAM,MAAM,GAAG;QACb,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;QACzD,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;QACvD,gBAAgB,EAAE,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAC9C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACtE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;QACrL,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAClD,aAAa,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE;KACzC,CAAC;IACF,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC;QAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;IACrE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,wBAAwB;QAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;IACvJ,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AAC/O,CAAC;AAED,MAAM,mBAAmB,GAAG,mDAAmD,CAAC;AAChF,MAAM,yBAAyB,GAAG,iEAAiE,CAAC;AAEpG,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACvE,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC1R,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAiB;IACzC,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;IAAC,CAAC;IAC7I,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;IACnI,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;IACnI,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC;IACjE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;IACtI,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAA2B,CAAC;AAC/D,CAAC;AAED,SAAS,8BAA8B,CAAC,WAAoC;IAC1E,KAAK,MAAM,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;QAC7J,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;QAC1L,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,iBAAiB,EAAE,sBAAsB,CAAU,CAAC;AAChG,SAAS,wBAAwB,CAAC,WAAoC,EAAE,YAAiC;IACvG,MAAM,SAAS,GAAiC,EAAE,CAAC;IACnD,KAAK,MAAM,OAAO,IAAI,kBAAkB;QAAE,KAAK,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACrI,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC;oBAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;gBAC5G,SAAS;YACX,CAAC;YACD,IAAI,4CAA4C,CAAC,IAAI,CAAC,SAAS,CAAC;gBAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;YACpI,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;QACtD,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACvI,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAsE;IAC3G,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACxD,8BAA8B,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACtK,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9K,MAAM,OAAO,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7R,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,KAAsE;IACpH,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACxD,wBAAwB,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjH,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACtK,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9K,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,GAAG,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACnU,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAsG;IAClJ,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACxD,8BAA8B,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAC/D,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACnH,MAAM,OAAO,GAA4B,EAAE,GAAG,WAAW,EAAE,CAAC;IAC5D,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,YAAY,CAAC;;QAAM,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC;IACxG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,eAAe,CAAC;;QAAM,OAAO,CAAC,eAAe,GAAG,WAAW,CAAC;IACtH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,KAAsG;IAC3J,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACxD,wBAAwB,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjG,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAAC,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IACxH,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACnH,MAAM,OAAO,GAA4B,EAAE,GAAG,WAAW,EAAE,CAAC;IAC5D,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,YAAY,CAAC;;QAAM,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC;IACxG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,eAAe,CAAC;;QAAM,OAAO,CAAC,eAAe,GAAG,WAAW,CAAC;IACtH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAWvC;IACC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,KAAK,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3K,IAAI,CAAC,MAAM,EAAE,eAAe;QAAE,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5M,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1G,MAAM,kBAAkB,GAAG,6BAA6B,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IACrH,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAoE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3I,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,KAAK,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACnP,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACvI,MAAM,OAAO,GAAG;QACd,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,SAAkB,EAAE,SAAS,EAAE,YAAqB,EAAE,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC,sBAAsB,CAAC,EAAE;QACvM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAkB,EAAE,SAAS,EAAE,YAAqB,EAAE,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC,kBAAkB,CAAC,EAAE;QAClL,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAkB,EAAE,SAAS,EAAE,YAAqB,EAAE,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;QAC3L,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,QAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,YAAqB,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;KAChK,CAAC;IACF,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC,aAAa,IAAI,YAAY,EAAE,yBAAyB,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,EAAE,qBAAqB,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACzzC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,2BAA2B,EAAE,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;AACtM,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAKhD;IACC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,KAAK,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3K,IAAI,CAAC,MAAM,EAAE,eAAe,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,sBAAsB;QAAE,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;IAC3I,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5M,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1G,MAAM,kBAAkB,GAAG,sCAAsC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAC9H,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC1J,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,KAAK,CAAC,QAAQ,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,KAAK,CAAC,QAAQ,CAAC,uBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChX,MAAM,QAAQ,GAAG,2BAA2B,CAAC,KAAK,CAAC,kBAAkB,EAAE;QACrE,aAAa,EAAE,gCAAgC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,qBAAqB,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC;QAC5X,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,yBAAyB,EAAE,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,EAAE,YAAY,CAAC,kBAAkB,CAAC,EAAE,wBAAwB,EAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,CAAC,WAAW;KAC9V,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAoE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3I,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,KAAK,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACnP,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,gBAAgB,IAAI,KAAK,EAAE,CAAC;IAClF,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACvI,MAAM,OAAO,GAAG;QACd,EAAE,IAAI,EAAE,QAAQ,CAAC,2BAA2B,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,SAAS,EAAE,YAAqB,EAAE,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC,sBAAsB,CAAC,EAAE;QACjN,EAAE,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,SAAS,EAAE,YAAqB,EAAE,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC,kBAAkB,CAAC,EAAE;QAC5L,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,SAAkB,EAAE,SAAS,EAAE,YAAqB,EAAE,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,iBAAiB,EAAE;QAC7L,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,YAAqB,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;KAC1K,CAAC;IACF,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC,aAAa,IAAI,YAAY,EAAE,yBAAyB,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,EAAE,qBAAqB,EAAE,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,qBAAqB,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7iD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,sBAAsB,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;AAChR,CAAC;AAwBD,SAAS,kCAAkC,CAAC,KAAmE,EAAE,OAAqC;IACpJ,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;IAChD,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,KAAK,WAAW,IAAI,YAAY,CAAC,UAAU,KAAK,mBAAmB,IAAI,YAAY,CAAC,WAAW,KAAK,mBAAmB,CAAC;IAChK,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,KAAK,WAAW,IAAI,YAAY,CAAC,UAAU,KAAK,kBAAkB,IAAI,YAAY,CAAC,WAAW,KAAK,sBAAsB,CAAC;IACnK,IAAI,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;IACrK,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,sBAAsB,GAAG,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,WAAW,CAAC;IACjF,MAAM,WAAW,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,UAAU,IAAI,KAAK,CAAC;IACtC,MAAM,qBAAqB,GAAG,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvK,IAAI,CAAC,SAAS;QAAE,8BAA8B,CAAC,WAAW,CAAC,CAAC;IAC5D,IAAI,CAAC,SAAS;QAAE,8BAA8B,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrK,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,QAAQ,KAAK,SAAS;QAAE,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,4BAA4B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3T,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,MAAM,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5J,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAU,CAAC,CAAC,CAAC;IAC7I,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAU,CAAC,CAAC,CAAC;IAC9G,MAAM,mBAAmB,GAAG,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,KAAK,CAAC,kBAAkB,EAAE;QAC5F,aAAa,EAAE,gCAAgC,CAAC;YAC9C,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,SAAS;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,qBAAqB,EAAE,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC;YACvG,wBAAwB,EAAE,YAAY,CAAC,+BAA+B,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACxI,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YACjJ,wBAAwB,EAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;SACnI,CAAC;QACF,WAAW,EAAE,SAAS;QACtB,eAAe,EAAE,KAAK,CAAC,yBAAyB;QAChD,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc;QAC/C,oBAAoB,EAAE,YAAY,CAAC,+BAA+B,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACpI,wBAAwB,EAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;QAClI,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QACxJ,GAAG,EAAE,KAAK,CAAC,WAAW;KACvB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACf,MAAM,mBAAmB,GAAG,SAAS;QACnC,CAAC,CAAC,EAAE,QAAQ,EAAE,mBAAoB,CAAC,eAAe,EAAE,QAAQ,EAAE,mBAAoB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;QAC5O,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;IACzB,IAAI,mBAAmB,CAAC,QAAQ,CAAC,UAAU,KAAK,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM;QAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,4BAA4B,mBAAmB,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACpU,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAU,CAAC,CAAC,CAAC;IAEtG,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,IAAI,OAAO,CAAC,UAAU,KAAK,+BAA+B,CAAC,IAAI,CAAC,OAAO,KAAK,aAAa,IAAI,OAAO,CAAC,UAAU,KAAK,+BAA+B,CAAC,CAAC;YAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;QAChR,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;QAC3S,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,sBAAsB,KAAK,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa;eAC/Q,UAAU,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,IAAI,UAAU,CAAC,iBAAiB,KAAK,MAAM,CAAC,iBAAiB;eAC3J,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;YAAE,MAAM,IAAI,oBAAoB,CAAC,mCAAmC,CAAC,CAAC;QAC1L,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;QAC3J,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,WAAW,KAAK,UAAU,IAAI,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1T,IAAI,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC;gBAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;QACnH,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,SAAS,CAAC,CAAC,CAAC,+BAA+B,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC;IAClO,MAAM,KAAK,GAAG;QACZ,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,CAAU,CAAC,CAAC,CAAC,CAAU;QAClD,aAAa,EAAE,OAAO;QACtB,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;QACxC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;QACxC,mBAAmB,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;QAC5C,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,yBAAyB,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC;QAC1D,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAAC;QAC1D,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9K,qBAAqB,EAAE,YAAY,CAAC,mBAAmB,CAAC,QAAQ,CAAC;QACjE,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3T,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,sBAAsB,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACtY,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;QAClG,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,IAAa,EAAE,sBAAsB,EAAE,KAAc,EAAE,2BAA2B,EAAE,KAAc,EAAE,CAAC;QACnJ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpS,CAAC;IACF,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAA+B,IAAyB,OAAO,kCAAkC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AAClK,MAAM,UAAU,mCAAmC,CAAC,KAA+B,IAAyB,OAAO,kCAAkC,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AAC9K,MAAM,UAAU,iCAAiC,CAAC,KAAwC,IAAyB,OAAO,kCAAkC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AACpL,MAAM,UAAU,4CAA4C,CAAC,KAAwC,IAAyB,OAAO,kCAAkC,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AAUhM,SAAS,iCAAiC,CAAC,IAAgB;IACzD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;IACnC,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;IAC3F,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,gBAAgB,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;IACtK,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAChG,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;IACtH,MAAM,iBAAiB,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;IACvC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;IACvC,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,KAAK,SAAS;WACvD,iBAAiB,CAAC,UAAU,KAAK,KAAK,CAAC,yBAAyB;WAChE,iBAAiB,CAAC,aAAa,KAAK,KAAK,CAAC,wBAAwB;WAClE,iBAAiB,CAAC,WAAW,KAAK,OAAO,CAAC;IAC/C,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;WAC/G,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,KAAK,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC;WACxJ,iBAAiB,CAAC,aAAa,KAAK,KAAK,CAAC,qBAAqB;WAC/D,iBAAiB,CAAC,WAAW,KAAK,OAAO,CAAC;IAC/C,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe;QAAE,MAAM,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,CAAC;AAC9G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,KAOvD;IACC,iCAAiC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACxL,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,MAAM,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACxF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,0BAA0B,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,CAAC;YACtK,IAAI,CAAC;gBAAC,MAAM,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAAC,CAAC;YACjG,OAAO,YAAY,EAAE,CAAC;gBAAC,MAAM,IAAI,oBAAoB,CAAC,mCAAmC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YAAC,CAAC;QACxH,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC"}