@osolmaz/pi-workflows 0.12.1 → 0.13.1

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 (233) hide show
  1. package/README.md +59 -33
  2. package/dist/builtins/autodoc.workflow.d.ts +194 -7
  3. package/dist/builtins/autodoc.workflow.js +156 -30
  4. package/dist/builtins/autodoc.workflow.js.map +1 -1
  5. package/dist/builtins/autoimplement-command-batches.d.ts +1 -0
  6. package/dist/builtins/autoimplement-command-batches.js +29 -31
  7. package/dist/builtins/autoimplement-command-batches.js.map +1 -1
  8. package/dist/builtins/autoimplement.workflow.d.ts +1619 -97
  9. package/dist/builtins/autoimplement.workflow.js +416 -153
  10. package/dist/builtins/autoimplement.workflow.js.map +1 -1
  11. package/dist/builtins/autoplan.workflow.d.ts +126 -13
  12. package/dist/builtins/autoplan.workflow.js +200 -29
  13. package/dist/builtins/autoplan.workflow.js.map +1 -1
  14. package/dist/builtins/catalog.js +7 -5
  15. package/dist/builtins/catalog.js.map +1 -1
  16. package/dist/builtins/change-verification.workflow.d.ts +110 -0
  17. package/dist/builtins/change-verification.workflow.js +860 -0
  18. package/dist/builtins/change-verification.workflow.js.map +1 -0
  19. package/dist/builtins/index.d.ts +2 -1
  20. package/dist/builtins/index.js +1 -0
  21. package/dist/builtins/index.js.map +1 -1
  22. package/dist/builtins/monitor.workflow.d.ts +56 -21
  23. package/dist/builtins/monitor.workflow.js +499 -217
  24. package/dist/builtins/monitor.workflow.js.map +1 -1
  25. package/dist/builtins/plain-summary.workflow.d.ts +32 -0
  26. package/dist/builtins/plain-summary.workflow.js +134 -0
  27. package/dist/builtins/plain-summary.workflow.js.map +1 -0
  28. package/dist/builtins/plan-change.workflow.d.ts +527 -26
  29. package/dist/builtins/plan-change.workflow.js +26 -0
  30. package/dist/builtins/plan-change.workflow.js.map +1 -1
  31. package/dist/builtins/sanity-check.workflow.d.ts +45 -3
  32. package/dist/builtins/sanity-check.workflow.js +45 -7
  33. package/dist/builtins/sanity-check.workflow.js.map +1 -1
  34. package/dist/builtins/workspace-preparation.workflow.d.ts +75 -0
  35. package/dist/builtins/workspace-preparation.workflow.js +498 -0
  36. package/dist/builtins/workspace-preparation.workflow.js.map +1 -0
  37. package/dist/controllers/effects.d.ts +3 -2
  38. package/dist/controllers/effects.js +8 -1
  39. package/dist/controllers/effects.js.map +1 -1
  40. package/dist/controllers/index.d.ts +1 -1
  41. package/dist/controllers/index.js +1 -1
  42. package/dist/controllers/index.js.map +1 -1
  43. package/dist/controllers/manager.d.ts +1 -0
  44. package/dist/controllers/manager.js +41 -17
  45. package/dist/controllers/manager.js.map +1 -1
  46. package/dist/controllers/sqlite.d.ts +107 -85
  47. package/dist/controllers/sqlite.js +1611 -1486
  48. package/dist/controllers/sqlite.js.map +1 -1
  49. package/dist/controllers/store.d.ts +9 -8
  50. package/dist/controllers/store.js +1 -31
  51. package/dist/controllers/store.js.map +1 -1
  52. package/dist/controllers/types.d.ts +3 -0
  53. package/dist/controllers/workflow-engine-scheduler.d.ts +1 -1
  54. package/dist/controllers/workflow-engine-scheduler.js +3 -5
  55. package/dist/controllers/workflow-engine-scheduler.js.map +1 -1
  56. package/dist/controllers/workflows.d.ts +2 -2
  57. package/dist/controllers/workflows.js +11 -10
  58. package/dist/controllers/workflows.js.map +1 -1
  59. package/dist/extension/controller-host.js +2 -2
  60. package/dist/extension/controller-host.js.map +1 -1
  61. package/dist/extension/decision-channels.d.ts +2 -0
  62. package/dist/extension/decision-channels.js +311 -118
  63. package/dist/extension/decision-channels.js.map +1 -1
  64. package/dist/extension/executor.d.ts +9 -2
  65. package/dist/extension/executor.js +90 -6
  66. package/dist/extension/executor.js.map +1 -1
  67. package/dist/extension/herdr-viewer.d.ts +0 -1
  68. package/dist/extension/herdr-viewer.js +0 -4
  69. package/dist/extension/herdr-viewer.js.map +1 -1
  70. package/dist/extension/index.js +156 -117
  71. package/dist/extension/index.js.map +1 -1
  72. package/dist/extension/recorder.d.ts +3 -10
  73. package/dist/extension/recorder.js +13 -22
  74. package/dist/extension/recorder.js.map +1 -1
  75. package/dist/extension/step-message.d.ts +7 -2
  76. package/dist/extension/step-message.js +94 -2
  77. package/dist/extension/step-message.js.map +1 -1
  78. package/dist/extension/widget.js +6 -0
  79. package/dist/extension/widget.js.map +1 -1
  80. package/dist/host/rpc-executor.d.ts +3 -0
  81. package/dist/host/rpc-executor.js +2 -0
  82. package/dist/host/rpc-executor.js.map +1 -1
  83. package/dist/host/runner.d.ts +3 -6
  84. package/dist/host/runner.js +83 -32
  85. package/dist/host/runner.js.map +1 -1
  86. package/dist/render/graph-render.js +14 -8
  87. package/dist/render/graph-render.js.map +1 -1
  88. package/dist/state/database.d.ts +35 -0
  89. package/dist/state/database.js +287 -0
  90. package/dist/state/database.js.map +1 -0
  91. package/dist/state/index.d.ts +4 -0
  92. package/dist/state/index.js +5 -0
  93. package/dist/state/index.js.map +1 -0
  94. package/dist/state/json.d.ts +6 -0
  95. package/dist/state/json.js +38 -0
  96. package/dist/state/json.js.map +1 -0
  97. package/dist/state/mutation.d.ts +57 -0
  98. package/dist/state/mutation.js +255 -0
  99. package/dist/state/mutation.js.map +1 -0
  100. package/dist/state/schema.d.ts +6 -0
  101. package/dist/state/schema.js +473 -0
  102. package/dist/state/schema.js.map +1 -0
  103. package/dist/viewer/cli.d.ts +2 -2
  104. package/dist/viewer/cli.js +142 -122
  105. package/dist/viewer/cli.js.map +1 -1
  106. package/dist/viewer/render.d.ts +4 -4
  107. package/dist/viewer/render.js +2 -17
  108. package/dist/viewer/render.js.map +1 -1
  109. package/dist/viewer/session-reducer.d.ts +1 -1
  110. package/dist/viewer/session-reducer.js +1 -1
  111. package/dist/viewer/tui.d.ts +3 -3
  112. package/dist/viewer/tui.js +15 -13
  113. package/dist/viewer/tui.js.map +1 -1
  114. package/dist/viewer/watch.d.ts +2 -5
  115. package/dist/viewer/watch.js +13 -13
  116. package/dist/viewer/watch.js.map +1 -1
  117. package/dist/workflows/composition.js +12 -2
  118. package/dist/workflows/composition.js.map +1 -1
  119. package/dist/workflows/definition.d.ts +6 -2
  120. package/dist/workflows/definition.js +17 -0
  121. package/dist/workflows/definition.js.map +1 -1
  122. package/dist/workflows/engine.d.ts +6 -6
  123. package/dist/workflows/engine.js +183 -103
  124. package/dist/workflows/engine.js.map +1 -1
  125. package/dist/workflows/errors.d.ts +3 -3
  126. package/dist/workflows/errors.js +3 -3
  127. package/dist/workflows/human-decision.d.ts +29 -4
  128. package/dist/workflows/human-decision.js +547 -283
  129. package/dist/workflows/human-decision.js.map +1 -1
  130. package/dist/workflows/index.d.ts +4 -5
  131. package/dist/workflows/index.js +3 -4
  132. package/dist/workflows/index.js.map +1 -1
  133. package/dist/workflows/schema.js +17 -1
  134. package/dist/workflows/schema.js.map +1 -1
  135. package/dist/workflows/store.d.ts +83 -103
  136. package/dist/workflows/store.js +902 -951
  137. package/dist/workflows/store.js.map +1 -1
  138. package/dist/workflows/types.d.ts +55 -81
  139. package/docs/CONTROLLERS.md +10 -8
  140. package/docs/DEFERRED_TURNS.md +2 -2
  141. package/docs/DESIGN_PHILOSOPHY.md +4 -2
  142. package/docs/HUMAN_DECISIONS.md +13 -14
  143. package/docs/MONITOR.md +179 -231
  144. package/docs/SQLITE_STATE.md +219 -0
  145. package/docs/WORKFLOW_COMPOSITION.md +27 -19
  146. package/docs/WORKFLOW_STEP_MESSAGES.md +20 -18
  147. package/docs/WORKFLOW_UPDATES.md +10 -9
  148. package/docs/development.md +9 -9
  149. package/docs/live-replay-protocol.md +28 -37
  150. package/docs/plans/2026-08-16-workflow-updates-plan.md +1 -1
  151. package/docs/plans/2026-08-19-human-decision-gates-plan.md +1 -1
  152. package/docs/plans/2026-08-21-autoimplement-timeout-fallback-plan.md +1 -1
  153. package/docs/plans/2026-08-21-plan-change-approval-policy-plan.md +1 -1
  154. package/docs/plans/2026-08-21-sanity-check-plan.md +30 -16
  155. package/docs/plans/2026-08-22-goal-finishing-monitor-plan.md +200 -0
  156. package/docs/plans/2026-08-23-assistant-agent-completion-plan.md +701 -0
  157. package/docs/plans/2026-08-23-sqlite-state-plan.md +970 -0
  158. package/docs/plans/2026-08-24-change-scoped-verification-plan.md +419 -0
  159. package/docs/plans/replayable-run-bundles-implementation-plan.md +2 -2
  160. package/docs/plans/session-event-replay-implementation-plan.md +1 -1
  161. package/docs/plans/tui-viewer-implementation-plan.md +1 -1
  162. package/docs/session-event-journal.md +63 -434
  163. package/docs/tui-viewer.md +13 -15
  164. package/docs/workflows.md +111 -62
  165. package/examples/workflows/plain-summary.workflow.ts +1 -0
  166. package/herdr-plugin.toml +1 -1
  167. package/package.json +1 -1
  168. package/plugins/herdr/viewer.mjs +1 -11
  169. package/skills/autodoc/SKILL.md +7 -0
  170. package/skills/autoimplement/SKILL.md +4 -0
  171. package/skills/autoplan/SKILL.md +5 -4
  172. package/skills/monitor/SKILL.md +91 -163
  173. package/skills/pi-workflows/SKILL.md +7 -7
  174. package/skills/sanity-check/SKILL.md +1 -1
  175. package/src/builtins/autodoc.workflow.ts +184 -33
  176. package/src/builtins/autoimplement-command-batches.ts +39 -33
  177. package/src/builtins/autoimplement.workflow.ts +483 -175
  178. package/src/builtins/autoplan.workflow.ts +290 -40
  179. package/src/builtins/catalog.ts +7 -5
  180. package/src/builtins/change-verification.workflow.ts +1143 -0
  181. package/src/builtins/index.ts +7 -1
  182. package/src/builtins/monitor.workflow.ts +667 -250
  183. package/src/builtins/plain-summary.workflow.ts +185 -0
  184. package/src/builtins/plan-change.workflow.ts +35 -0
  185. package/src/builtins/sanity-check.workflow.ts +62 -7
  186. package/src/builtins/workspace-preparation.workflow.ts +668 -0
  187. package/src/controllers/effects.ts +7 -0
  188. package/src/controllers/index.ts +0 -6
  189. package/src/controllers/manager.ts +72 -32
  190. package/src/controllers/sqlite.ts +2420 -1948
  191. package/src/controllers/store.ts +17 -38
  192. package/src/controllers/types.ts +3 -0
  193. package/src/controllers/workflow-engine-scheduler.ts +4 -8
  194. package/src/controllers/workflows.ts +45 -21
  195. package/src/extension/controller-host.ts +1 -2
  196. package/src/extension/decision-channels.ts +427 -144
  197. package/src/extension/executor.ts +106 -6
  198. package/src/extension/herdr-viewer.ts +0 -5
  199. package/src/extension/index.ts +180 -132
  200. package/src/extension/recorder.ts +13 -22
  201. package/src/extension/step-message.ts +106 -4
  202. package/src/extension/widget.ts +8 -0
  203. package/src/host/rpc-executor.ts +4 -0
  204. package/src/host/runner.ts +93 -41
  205. package/src/render/graph-render.ts +11 -4
  206. package/src/state/database.ts +375 -0
  207. package/src/state/index.ts +29 -0
  208. package/src/state/json.ts +42 -0
  209. package/src/state/mutation.ts +435 -0
  210. package/src/state/schema.ts +475 -0
  211. package/src/viewer/cli.ts +151 -144
  212. package/src/viewer/render.ts +12 -24
  213. package/src/viewer/session-reducer.ts +1 -1
  214. package/src/viewer/tui.ts +18 -17
  215. package/src/viewer/watch.ts +13 -17
  216. package/src/workflows/composition.ts +12 -3
  217. package/src/workflows/definition.ts +36 -3
  218. package/src/workflows/engine.ts +212 -116
  219. package/src/workflows/errors.ts +3 -3
  220. package/src/workflows/human-decision.ts +795 -340
  221. package/src/workflows/index.ts +15 -19
  222. package/src/workflows/schema.ts +19 -1
  223. package/src/workflows/store.ts +1295 -1163
  224. package/src/workflows/types.ts +61 -81
  225. package/dist/workflows/artifacts.d.ts +0 -40
  226. package/dist/workflows/artifacts.js +0 -155
  227. package/dist/workflows/artifacts.js.map +0 -1
  228. package/dist/workflows/migrate-sources.d.ts +0 -42
  229. package/dist/workflows/migrate-sources.js +0 -133
  230. package/dist/workflows/migrate-sources.js.map +0 -1
  231. package/docs/run-bundles.md +0 -481
  232. package/src/workflows/artifacts.ts +0 -188
  233. package/src/workflows/migrate-sources.ts +0 -178
@@ -18,6 +18,7 @@ export type ControllerManagerOptions = {
18
18
  };
19
19
  export declare class ControllerManager {
20
20
  readonly store: ControllerStore;
21
+ private readonly ownerId;
21
22
  private readonly definitions;
22
23
  private readonly workflowCoordinator;
23
24
  private readonly maxConcurrent;
@@ -15,6 +15,7 @@ const DEFAULT_JITTER_RATIO = 0.2;
15
15
  const MIN_LEASE_MS = 300;
16
16
  export class ControllerManager {
17
17
  store;
18
+ ownerId = `controller-manager-${randomUUID()}`;
18
19
  definitions = new Map();
19
20
  workflowCoordinator;
20
21
  maxConcurrent;
@@ -80,7 +81,13 @@ export class ControllerManager {
80
81
  now: this.now().toISOString(),
81
82
  });
82
83
  this.recordEvent({ controller: definition.name, key }, resource.metadata.generation === 1 ? "resource_applied" : "resource_updated", { generation: resource.metadata.generation });
83
- return resource;
84
+ const current = this.store.getResource({
85
+ controller: definition.name,
86
+ key,
87
+ });
88
+ if (current === undefined)
89
+ throw new Error("Controller resource disappeared after its event");
90
+ return current;
84
91
  }
85
92
  putResourceByName(controller, key, spec) {
86
93
  const definition = this.definitions.get(controller);
@@ -96,12 +103,18 @@ export class ControllerManager {
96
103
  now: this.now().toISOString(),
97
104
  });
98
105
  this.recordEvent({ controller, key }, resource.metadata.generation === 1 ? "resource_applied" : "resource_updated", { generation: resource.metadata.generation });
99
- return resource;
106
+ const current = this.store.getResource({ controller, key });
107
+ if (current === undefined)
108
+ throw new Error("Controller resource disappeared after its event");
109
+ return current;
100
110
  }
101
111
  requestDeletion(ref) {
102
- const resource = this.store.requestDeletion(ref, this.now().toISOString());
112
+ this.store.requestDeletion(ref, this.now().toISOString());
103
113
  this.recordEvent(ref, "deletion_requested");
104
- return resource;
114
+ const current = this.store.getResource(ref);
115
+ if (current === undefined)
116
+ throw new Error("Controller resource disappeared after its event");
117
+ return current;
105
118
  }
106
119
  enqueue(ref, afterMs = 0) {
107
120
  if (!Number.isSafeInteger(afterMs) || afterMs < 0) {
@@ -158,12 +171,21 @@ export class ControllerManager {
158
171
  await sleep(this.pollIntervalMs, signal);
159
172
  continue;
160
173
  }
161
- await this.processClaim(claim);
174
+ try {
175
+ await this.processClaim(claim);
176
+ }
177
+ catch {
178
+ if (signal.aborted)
179
+ return;
180
+ // A stale claim means another owner now controls that resource. Keep
181
+ // this worker alive so it can reconcile other queued resources.
182
+ }
162
183
  }
163
184
  }
164
185
  claimNext() {
165
186
  return this.store.claimNext({
166
187
  controllers: this.eligibleControllers(),
188
+ ownerId: this.ownerId,
167
189
  leaseMs: this.leaseMs,
168
190
  now: this.now().toISOString(),
169
191
  });
@@ -220,9 +242,9 @@ export class ControllerManager {
220
242
  this.recordEvent(ref, "reconcile_started", {
221
243
  reconcileId,
222
244
  generation: resource.metadata.generation,
223
- });
245
+ }, claim);
224
246
  try {
225
- const result = await raceWithAbort(this.callReconciler(definition, resource, abort.signal), abort.signal);
247
+ const result = await raceWithAbort(this.callReconciler(definition, resource, claim, abort.signal), abort.signal);
226
248
  if (abort.signal.aborted) {
227
249
  throw abort.signal.reason ?? new Error("Reconciliation aborted");
228
250
  }
@@ -238,11 +260,11 @@ export class ControllerManager {
238
260
  this.activeReconciles.delete(reconcileId);
239
261
  }
240
262
  }
241
- async callReconciler(definition, resource, signal) {
263
+ async callReconciler(definition, resource, claim, signal) {
242
264
  const context = {
243
265
  signal,
244
- effects: new ControllerEffectService(this.store, resource, signal),
245
- workflows: this.workflowCoordinator.forResource(resource, signal),
266
+ effects: new ControllerEffectService(this.store, resource, claim, signal),
267
+ workflows: this.workflowCoordinator.forResource(resource, claim, signal),
246
268
  ...createResultHelpers(),
247
269
  };
248
270
  const result = await definition.reconcile(context, asTypedResource(resource));
@@ -256,7 +278,8 @@ export class ControllerManager {
256
278
  try {
257
279
  const updated = this.store.updateStatus({
258
280
  ref,
259
- expectedResourceVersion: resource.metadata.resourceVersion,
281
+ expectedResourceVersion: claim.resourceVersion,
282
+ claim,
260
283
  status,
261
284
  ...(result.status?.finalizers !== undefined
262
285
  ? { finalizers: result.status.finalizers }
@@ -271,18 +294,18 @@ export class ControllerManager {
271
294
  ...(result.kind === "requeue" && result.afterMs !== undefined
272
295
  ? { requeueAfterMs: result.afterMs }
273
296
  : {}),
274
- });
297
+ }, claim);
275
298
  if (result.kind === "settled" &&
276
299
  updated.metadata.deletionTimestamp !== undefined &&
277
300
  updated.metadata.finalizers.length === 0) {
278
- this.recordEvent(ref, "resource_deleted", { reconcileId });
279
- this.store.deleteResource(ref, updated.metadata.resourceVersion);
301
+ this.recordEvent(ref, "resource_deleted", { reconcileId }, claim);
302
+ this.store.deleteResource(ref, claim.resourceVersion, claim);
280
303
  return;
281
304
  }
282
305
  }
283
306
  catch (error) {
284
307
  if (error instanceof ResourceConflictError) {
285
- this.recordEvent(ref, "reconcile_conflict", { reconcileId });
308
+ this.recordEvent(ref, "reconcile_conflict", { reconcileId }, claim);
286
309
  this.store.requeueClaim(claim, { availableAt: now.toISOString() }, now.toISOString());
287
310
  return;
288
311
  }
@@ -304,7 +327,7 @@ export class ControllerManager {
304
327
  error: message,
305
328
  durationMs: Math.max(0, now.getTime() - startedAtMs),
306
329
  requeueAfterMs: delay,
307
- });
330
+ }, claim);
308
331
  this.store.requeueClaim(claim, {
309
332
  availableAt: new Date(now.getTime() + delay).toISOString(),
310
333
  error: message,
@@ -320,10 +343,11 @@ export class ControllerManager {
320
343
  const now = this.now().getTime();
321
344
  return this.store.listQueue().some((item) => Date.parse(item.availableAt) <= now);
322
345
  }
323
- recordEvent(ref, type, payload = {}) {
346
+ recordEvent(ref, type, payload = {}, claim) {
324
347
  this.store.recordEvent({
325
348
  controller: ref.controller,
326
349
  key: ref.key,
350
+ ...(claim === undefined ? {} : { claim }),
327
351
  type,
328
352
  payload,
329
353
  now: this.now().toISOString(),
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/controllers/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAYnD,OAAO,EAAE,6BAA6B,EAAoC,MAAM,gBAAgB,CAAC;AAEjG,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACjC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AACtC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACtC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,YAAY,GAAG,GAAG,CAAC;AAkBzB,MAAM,OAAO,iBAAiB;IACnB,KAAK,CAAkB;IACf,WAAW,GAAG,IAAI,GAAG,EAAmC,CAAC;IACzD,mBAAmB,CAAgC;IACnD,aAAa,CAAS;IACtB,qBAAqB,CAAyB;IAC9C,gBAAgB,CAAS;IACzB,OAAO,CAAS;IAChB,cAAc,CAAS;IACvB,aAAa,CAAS;IACtB,YAAY,CAAS;IACrB,WAAW,CAAS;IACpB,GAAG,CAAa;IAChB,MAAM,CAAe;IACrB,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,gBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC/D,QAAQ,GAA2B,IAAI,CAAC;IACxC,WAAW,GAAoB,EAAE,CAAC;IAE1C,YAAY,OAAiC;QAC3C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,oCAAoC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,6BAA6B,CAC1D,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,iBAAiB,CAC1B,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,eAAe,CAClC,OAAO,CAAC,aAAa,IAAI,sBAAsB,EAC/C,eAAe,CAChB,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAC;QACjE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,eAAe,CAAC,KAAK,EAAE,yBAAyB,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,eAAe,CACrC,OAAO,CAAC,gBAAgB,IAAI,kBAAkB,EAC9C,kBAAkB,CACnB,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,IAAI,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,OAAO,GAAG,YAAY,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,eAAe,CACnC,OAAO,CAAC,cAAc,IAAI,wBAAwB,EAClD,gBAAgB,CACjB,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,eAAe,CAClC,OAAO,CAAC,aAAa,IAAI,uBAAuB,EAChD,eAAe,CAChB,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,eAAe,CACjC,OAAO,CAAC,YAAY,IAAI,sBAAsB,EAC9C,cAAc,CACf,CAAC;QACF,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,oBAAoB,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACvF,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;IAC9C,CAAC;IAED,WAAW,CACT,UAAgD,EAChD,GAAW,EACX,IAAW;QAEX,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,UAAU,KAAK,yBAAyB,CAAC,UAAU,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,4CAA4C,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YACtC,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,GAAG;YACH,IAAI;YACJ,aAAa;YACb,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CACd,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,EACpC,QAAQ,CAAC,QAAQ,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,EAC5E,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,CAC7C,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iBAAiB,CAAC,UAAkB,EAAE,GAAW,EAAE,IAAa;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YACtC,UAAU;YACV,GAAG;YACH,IAAI;YACJ,aAAa;YACb,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CACd,EAAE,UAAU,EAAE,GAAG,EAAE,EACnB,QAAQ,CAAC,QAAQ,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,EAC5E,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,CAC7C,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,eAAe,CAAC,GAA0B;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAA0B,EAAE,OAAO,GAAG,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,CACjE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAqB,CAAC,CACtD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC5B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACrD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;YACxD,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,aAAa,GAAG,KAAK;QACtC,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAChD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,KAAK,GAAG,aAAa,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACtD,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QACD,IAAI,KAAK,KAAK,aAAa,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,+BAA+B,aAAa,kBAAkB,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAmB;QAC1C,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;gBACzC,SAAS;YACX,CAAC;YACD,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,SAAS;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC1B,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE;YACvC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;SAC9B,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB;QACzB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;YACrE,OAAO,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAA2B;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CACzB,KAAK,CAAC,UAAU,EAChB,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CACzD,CAAC;QACF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACxE,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,UAAmC,EACnC,KAA2B;QAE3B,MAAM,GAAG,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1C,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/D,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAChE,MAAM,OAAO,GAAG,UAAU,CACxB,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,kCAAkC,SAAS,IAAI,CAAC,CAAC,EAC7E,SAAS,CACV,CAAC;QACF,MAAM,KAAK,GAAG,WAAW,CACvB,GAAG,EAAE;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAC5C,CAAC;QACF,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,mBAAmB,EAAE;YACzC,WAAW;YACX,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU;SACzC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,EACvD,KAAK,CAAC,MAAM,CACb,CAAC;YACF,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5E,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,WAAW,EAAE,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAC3D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,UAAmC,EACnC,QAA4B,EAC5B,MAAmB;QAEnB,MAAM,OAAO,GAA8B;YACzC,MAAM;YACN,OAAO,EAAE,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;YAClE,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC;YACjE,GAAG,mBAAmB,EAAW;SAClC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9E,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,KAA2B,EAC3B,QAA4B,EAC5B,MAAgC,EAChC,WAAmB,EACnB,WAAmB;QAEnB,MAAM,GAAG,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,gBAAgB,CAC7B,QAAQ,CAAC,MAAM,EACf,MAAM,CAAC,MAAM,EACb,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAC5B,GAAG,CAAC,WAAW,EAAE,CAClB,CAAC;QACF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtC,GAAG;gBACH,uBAAuB,EAAE,QAAQ,CAAC,QAAQ,CAAC,eAAe;gBAC1D,MAAM;gBACN,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,KAAK,SAAS;oBACzC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;oBAC1C,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,oBAAoB,EAAE;gBAC1C,WAAW;gBACX,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU;gBACxC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC;gBACpD,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;oBAC3D,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE;oBACpC,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACH,IACE,MAAM,CAAC,IAAI,KAAK,SAAS;gBACzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,KAAK,SAAS;gBAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EACxC,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC3D,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBACjE,OAAO;YACT,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;gBAC3C,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC7D,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;gBACtF,OAAO;YACT,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,YAAY,CACrB,KAAK,EACL,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,EAChE,GAAG,CAAC,WAAW,EAAE,CAClB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,KAA2B,EAC3B,GAA0B,EAC1B,WAAmB,EACnB,KAAc,EACd,WAAmB;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE;YACxC,WAAW;YACX,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC;YACpD,cAAc,EAAE,KAAK;SACtB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,YAAY,CACrB,KAAK,EACL;YACE,WAAW,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE;YAC1D,KAAK,EAAE,OAAO;SACf,EACD,GAAG,CAAC,WAAW,EAAE,CAClB,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,iBAAyB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,gBAAgB;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;IACpF,CAAC;IAEO,WAAW,CAAC,GAA0B,EAAE,IAAY,EAAE,OAAO,GAAe,EAAE;QACpF,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YACrB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,IAAI;YACJ,OAAO;YACP,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;SAC9B,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,aAAa,CAAI,SAAqB,EAAE,MAAmB;IAClE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,MAAM,GAAG,CAAC,QAAoB,EAAE,EAAE;YACtC,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,SAAS,CAAC,IAAI,CACZ,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EACvC,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAChD,CAAC;QACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,MAAgC;IACtD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,IACE,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,MAAM,CAAC,OAAO,KAAK,SAAS;QAC5B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,EAC9D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,IAAY;IAClD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,EAAU,EAAE,MAAmB;IAClD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,IAAI,KAAiC,CAAC;QACtC,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YACD,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/B,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/controllers/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAYnD,OAAO,EAAE,6BAA6B,EAAoC,MAAM,gBAAgB,CAAC;AAEjG,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACjC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AACtC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACtC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,YAAY,GAAG,GAAG,CAAC;AAkBzB,MAAM,OAAO,iBAAiB;IACnB,KAAK,CAAkB;IACf,OAAO,GAAG,sBAAsB,UAAU,EAAE,EAAE,CAAC;IAC/C,WAAW,GAAG,IAAI,GAAG,EAAmC,CAAC;IACzD,mBAAmB,CAAgC;IACnD,aAAa,CAAS;IACtB,qBAAqB,CAAyB;IAC9C,gBAAgB,CAAS;IACzB,OAAO,CAAS;IAChB,cAAc,CAAS;IACvB,aAAa,CAAS;IACtB,YAAY,CAAS;IACrB,WAAW,CAAS;IACpB,GAAG,CAAa;IAChB,MAAM,CAAe;IACrB,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,gBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC/D,QAAQ,GAA2B,IAAI,CAAC;IACxC,WAAW,GAAoB,EAAE,CAAC;IAE1C,YAAY,OAAiC;QAC3C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,oCAAoC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,6BAA6B,CAC1D,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,iBAAiB,CAC1B,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,eAAe,CAClC,OAAO,CAAC,aAAa,IAAI,sBAAsB,EAC/C,eAAe,CAChB,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,EAAE,CAAC;QACjE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,eAAe,CAAC,KAAK,EAAE,yBAAyB,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,eAAe,CACrC,OAAO,CAAC,gBAAgB,IAAI,kBAAkB,EAC9C,kBAAkB,CACnB,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,IAAI,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,OAAO,GAAG,YAAY,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,eAAe,CACnC,OAAO,CAAC,cAAc,IAAI,wBAAwB,EAClD,gBAAgB,CACjB,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,eAAe,CAClC,OAAO,CAAC,aAAa,IAAI,uBAAuB,EAChD,eAAe,CAChB,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,eAAe,CACjC,OAAO,CAAC,YAAY,IAAI,sBAAsB,EAC9C,cAAc,CACf,CAAC;QACF,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,oBAAoB,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACvF,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;IAC9C,CAAC;IAED,WAAW,CACT,UAAgD,EAChD,GAAW,EACX,IAAW;QAEX,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,UAAU,KAAK,yBAAyB,CAAC,UAAU,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,4CAA4C,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YACtC,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,GAAG;YACH,IAAI;YACJ,aAAa;YACb,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CACd,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,EACpC,QAAQ,CAAC,QAAQ,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,EAC5E,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,CAC7C,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAiB;YACrD,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,GAAG;SACJ,CAAC,CAAC;QACH,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC9F,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iBAAiB,CAAC,UAAkB,EAAE,GAAW,EAAE,IAAa;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YACtC,UAAU;YACV,GAAG;YACH,IAAI;YACJ,aAAa;YACb,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CACd,EAAE,UAAU,EAAE,GAAG,EAAE,EACnB,QAAQ,CAAC,QAAQ,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,EAC5E,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,CAC7C,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5D,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC9F,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,eAAe,CAAC,GAA0B;QACxC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC9F,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,GAA0B,EAAE,OAAO,GAAG,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,CACjE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAqB,CAAC,CACtD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC5B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACrD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;YACxD,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,aAAa,GAAG,KAAK;QACtC,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAChD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,KAAK,GAAG,aAAa,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACtD,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QACD,IAAI,KAAK,KAAK,aAAa,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,+BAA+B,aAAa,kBAAkB,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAmB;QAC1C,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;gBACzC,SAAS;YACX,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,MAAM,CAAC,OAAO;oBAAE,OAAO;gBAC3B,qEAAqE;gBACrE,gEAAgE;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC1B,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE;YACvC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;SAC9B,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB;QACzB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;YACrE,OAAO,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAA2B;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CACzB,KAAK,CAAC,UAAU,EAChB,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CACzD,CAAC;QACF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACxE,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,UAAmC,EACnC,KAA2B;QAE3B,MAAM,GAAG,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1C,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/D,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAChE,MAAM,OAAO,GAAG,UAAU,CACxB,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,kCAAkC,SAAS,IAAI,CAAC,CAAC,EAC7E,SAAS,CACV,CAAC;QACF,MAAM,KAAK,GAAG,WAAW,CACvB,GAAG,EAAE;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAC5C,CAAC;QACF,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,CACd,GAAG,EACH,mBAAmB,EACnB;YACE,WAAW;YACX,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU;SACzC,EACD,KAAK,CACN,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAC9D,KAAK,CAAC,MAAM,CACb,CAAC;YACF,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5E,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,WAAW,EAAE,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAC3D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,UAAmC,EACnC,QAA4B,EAC5B,KAA2B,EAC3B,MAAmB;QAEnB,MAAM,OAAO,GAA8B;YACzC,MAAM;YACN,OAAO,EAAE,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;YACzE,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;YACxE,GAAG,mBAAmB,EAAW;SAClC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9E,cAAc,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,KAA2B,EAC3B,QAA4B,EAC5B,MAAgC,EAChC,WAAmB,EACnB,WAAmB;QAEnB,MAAM,GAAG,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,gBAAgB,CAC7B,QAAQ,CAAC,MAAM,EACf,MAAM,CAAC,MAAM,EACb,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAC5B,GAAG,CAAC,WAAW,EAAE,CAClB,CAAC;QACF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtC,GAAG;gBACH,uBAAuB,EAAE,KAAK,CAAC,eAAe;gBAC9C,KAAK;gBACL,MAAM;gBACN,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,KAAK,SAAS;oBACzC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;oBAC1C,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CACd,GAAG,EACH,oBAAoB,EACpB;gBACE,WAAW;gBACX,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU;gBACxC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC;gBACpD,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;oBAC3D,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE;oBACpC,CAAC,CAAC,EAAE,CAAC;aACR,EACD,KAAK,CACN,CAAC;YACF,IACE,MAAM,CAAC,IAAI,KAAK,SAAS;gBACzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,KAAK,SAAS;gBAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EACxC,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;gBAClE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;gBAC7D,OAAO;YACT,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;gBAC3C,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,oBAAoB,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;gBACtF,OAAO;YACT,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,YAAY,CACrB,KAAK,EACL,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,EAChE,GAAG,CAAC,WAAW,EAAE,CAClB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,KAA2B,EAC3B,GAA0B,EAC1B,WAAmB,EACnB,KAAc,EACd,WAAmB;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,CACd,GAAG,EACH,kBAAkB,EAClB;YACE,WAAW;YACX,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC;YACpD,cAAc,EAAE,KAAK;SACtB,EACD,KAAK,CACN,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,YAAY,CACrB,KAAK,EACL;YACE,WAAW,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE;YAC1D,KAAK,EAAE,OAAO;SACf,EACD,GAAG,CAAC,WAAW,EAAE,CAClB,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,iBAAyB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,gBAAgB;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;IACpF,CAAC;IAEO,WAAW,CACjB,GAA0B,EAC1B,IAAY,EACZ,OAAO,GAAe,EAAE,EACxB,KAA4B;QAE5B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YACrB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YACzC,IAAI;YACJ,OAAO;YACP,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;SAC9B,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,aAAa,CAAI,SAAqB,EAAE,MAAmB;IAClE,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,MAAM,GAAG,CAAC,QAAoB,EAAE,EAAE;YACtC,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,SAAS,CAAC,IAAI,CACZ,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EACvC,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAChD,CAAC;QACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,MAAgC;IACtD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,IACE,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,MAAM,CAAC,OAAO,KAAK,SAAS;QAC5B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,EAC9D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,IAAY;IAClD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,EAAU,EAAE,MAAmB;IAClD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,IAAI,KAAiC,CAAC;QACtC,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YACD,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/B,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,24 +1,23 @@
1
- import { type ControllerStore, type EffectReservation, type QueueItem, type QueueRequeueOptions, type WorkflowRecordUpdate, type WorkflowReservation } from "./store.js";
1
+ import { StateDatabase } from "../state/database.js";
2
+ import type { ControllerStore, EffectReservation, QueueItem, QueueRequeueOptions, WorkflowRecordUpdate, WorkflowReservation } from "./store.js";
2
3
  import type { ChildWorkflowRecord, ControllerEvent, ControllerQueueClaim, ControllerResource, ControllerResourceRef, ControllerResourceStatus, EffectRecord, JsonObject } from "./types.js";
3
4
  declare const TURN_INTENT_FACTS_SCHEMA = "pi-workflows.deferred-turn-facts.v1";
4
5
  export type WorkflowRunLaunchStatus = "queued" | "starting" | "running" | "parked" | "done" | "failed" | "cancelled";
5
- /** A user-started workflow run tracked by the durable run queue. */
6
6
  export type WorkflowRunQueueRecord = {
7
7
  runId: string;
8
- /** Human-readable workflow name used in status and event output. */
9
8
  workflowName: string;
10
- /** Canonical source reference used to reopen the run. */
11
9
  workflowSourceRef: string;
12
10
  workflowSource: unknown;
11
+ initialized: boolean;
13
12
  definitionDigest: string;
14
13
  input: unknown;
15
14
  launchOptions: unknown;
16
15
  status: WorkflowRunLaunchStatus;
17
16
  runnerId: string | null;
18
17
  claimToken: string | null;
18
+ claimGeneration: number | null;
19
19
  claimExpiresAt: string | null;
20
20
  affinityRunnerId: string | null;
21
- /** Pi session that owns delivery and interactive execution, or null for detached runs. */
22
21
  originSessionId: string | null;
23
22
  parentRunId: string | null;
24
23
  errorCode: string | null;
@@ -71,7 +70,6 @@ export type WorkflowTurnIntentRecord = {
71
70
  resolutionMessageId: string | null;
72
71
  deliveryClaimExpiresAt: string | null;
73
72
  };
74
- /** One run lifecycle transition in the cross-session event feed. */
75
73
  export type RunEventRecord = {
76
74
  seq: number;
77
75
  recordedAt: string;
@@ -83,10 +81,14 @@ export type RunEventRecord = {
83
81
  };
84
82
  export declare class SqliteControllerStore implements ControllerStore {
85
83
  readonly filePath: string;
86
- private readonly database;
84
+ readonly state: StateDatabase;
85
+ private readonly ownsState;
86
+ private readonly projectId;
87
87
  private closed;
88
88
  constructor(filePath?: string, options?: {
89
89
  readOnly?: boolean;
90
+ projectPath?: string;
91
+ state?: StateDatabase;
90
92
  });
91
93
  close(): void;
92
94
  putResource<TSpec, TStatus>(options: {
@@ -104,31 +106,34 @@ export declare class SqliteControllerStore implements ControllerStore {
104
106
  updateStatus<TStatus>(options: {
105
107
  ref: ControllerResourceRef;
106
108
  expectedResourceVersion: number;
109
+ claim: ControllerQueueClaim;
107
110
  status: ControllerResourceStatus<TStatus>;
108
111
  finalizers?: string[];
109
112
  now?: string;
110
113
  }): ControllerResource<unknown, TStatus>;
111
- requestDeletion(ref: ControllerResourceRef, now?: string): ControllerResource;
114
+ requestDeletion(ref: ControllerResourceRef, nowValue?: string): ControllerResource;
112
115
  updateFinalizers(options: {
113
116
  ref: ControllerResourceRef;
114
117
  expectedResourceVersion: number;
115
118
  finalizers: string[];
116
119
  now?: string;
117
120
  }): ControllerResource;
118
- deleteResource(ref: ControllerResourceRef, expectedResourceVersion: number): boolean;
121
+ deleteResource(ref: ControllerResourceRef, expectedResourceVersion: number, claim: ControllerQueueClaim): boolean;
119
122
  enqueue(ref: ControllerResourceRef, availableAt?: string): void;
120
123
  claimNext(options: {
121
124
  controllers: string[];
125
+ ownerId: string;
122
126
  leaseMs: number;
123
127
  now?: string;
124
128
  }): ControllerQueueClaim | undefined;
125
- renewClaim(claim: ControllerQueueClaim, leaseMs: number, now?: string): boolean;
126
- settleClaim(claim: ControllerQueueClaim, now?: string): boolean;
127
- requeueClaim(claim: ControllerQueueClaim, options: QueueRequeueOptions, _now?: string): boolean;
129
+ renewClaim(claim: ControllerQueueClaim, leaseMs: number, nowValue?: string): boolean;
130
+ settleClaim(claim: ControllerQueueClaim, nowValue?: string): boolean;
131
+ requeueClaim(claim: ControllerQueueClaim, options: QueueRequeueOptions, nowValue?: string): boolean;
128
132
  listQueue(): QueueItem[];
129
133
  reserveEffect(options: {
130
134
  key: string;
131
135
  resourceUid: string;
136
+ claim: ControllerQueueClaim;
132
137
  generation: number;
133
138
  kind: string;
134
139
  requestFingerprint: string;
@@ -138,6 +143,7 @@ export declare class SqliteControllerStore implements ControllerStore {
138
143
  updateEffect(options: {
139
144
  resourceUid: string;
140
145
  key: string;
146
+ claim: ControllerQueueClaim;
141
147
  state: EffectRecord["state"];
142
148
  externalRef?: string;
143
149
  error?: string;
@@ -146,17 +152,20 @@ export declare class SqliteControllerStore implements ControllerStore {
146
152
  listEffects(resourceUid: string): EffectRecord[];
147
153
  reserveWorkflow(options: {
148
154
  resourceUid: string;
155
+ claim: ControllerQueueClaim;
149
156
  requestKey: string;
150
157
  workflow: string;
151
158
  inputFingerprint: string;
152
159
  }): WorkflowReservation;
153
160
  getWorkflow(resourceUid: string, requestKey: string): ChildWorkflowRecord | undefined;
154
161
  getWorkflowByRequestId(requestId: string): ChildWorkflowRecord | undefined;
155
- updateWorkflow(requestId: string, update: WorkflowRecordUpdate): ChildWorkflowRecord;
162
+ updateWorkflow(requestId: string, update: WorkflowRecordUpdate, claim: ControllerQueueClaim): ChildWorkflowRecord;
163
+ completeWorkflow(requestId: string, update: WorkflowRecordUpdate): ChildWorkflowRecord;
156
164
  listWorkflows(resourceUid: string): ChildWorkflowRecord[];
157
165
  recordEvent(options: {
158
166
  controller: string;
159
167
  key: string;
168
+ claim?: ControllerQueueClaim;
160
169
  type: string;
161
170
  payload?: JsonObject;
162
171
  now?: string;
@@ -166,27 +175,13 @@ export declare class SqliteControllerStore implements ControllerStore {
166
175
  key?: string;
167
176
  limit?: number;
168
177
  }): ControllerEvent[];
169
- private configure;
170
- private initializeSchema;
171
- private assertAlphaSchemaLayout;
172
- private assertNoLegacyPendingLaunchNotifications;
173
- private transaction;
174
- private resourceRow;
175
- private requireResource;
176
- private throwMissingOrConflict;
177
- private enqueueRow;
178
- private claimedRow;
179
- private effectRow;
180
- private requireEffect;
181
- private workflowRow;
182
- private requireWorkflow;
183
- /** Reserve a user-started run before the initiating agent turn settles. */
184
178
  reserveWorkflowRun(options: {
185
179
  runId: string;
186
180
  workflowName: string;
187
181
  workflowSourceRef: string;
188
182
  workflowSource: unknown;
189
183
  definitionDigest: string;
184
+ definitionSnapshot: unknown;
190
185
  input: unknown;
191
186
  launchOptions?: unknown;
192
187
  runnerId: string;
@@ -194,26 +189,27 @@ export declare class SqliteControllerStore implements ControllerStore {
194
189
  parentRunId?: string;
195
190
  now?: string;
196
191
  }): WorkflowRunQueueRecord;
197
- /** Insert a run that will start immediately outside a live model turn. */
198
192
  enqueueWorkflowRun(options: {
199
193
  runId: string;
200
194
  workflowName: string;
201
195
  workflowSourceRef: string;
202
- workflowSource?: unknown;
203
- definitionDigest?: string;
196
+ workflowSource: unknown;
197
+ definitionDigest: string;
198
+ definitionSnapshot: unknown;
204
199
  input: unknown;
205
200
  launchOptions?: unknown;
206
201
  runnerId: string;
207
202
  claimToken: string;
208
203
  leaseMs: number;
209
- affinityRunnerId?: string;
210
- originSessionId?: string;
204
+ originSessionId: string;
211
205
  parentRunId?: string;
212
206
  now?: string;
213
207
  }): WorkflowRunQueueRecord;
214
208
  getWorkflowRun(runId: string): WorkflowRunQueueRecord | undefined;
215
209
  listWorkflowRuns(options?: {
216
- status?: WorkflowRunQueueRecord["status"];
210
+ statuses?: WorkflowRunLaunchStatus[];
211
+ excludeRunIds?: string[];
212
+ limit?: number;
217
213
  }): WorkflowRunQueueRecord[];
218
214
  findSessionReservation(sessionId: string): WorkflowRunQueueRecord | undefined;
219
215
  claimWorkflowRun(options: {
@@ -228,35 +224,35 @@ export declare class SqliteControllerStore implements ControllerStore {
228
224
  claimToken: string;
229
225
  now?: string;
230
226
  }): boolean;
231
- /**
232
- * Claim the oldest claimable run, preferring runs with affinity to this
233
- * runner. Parked rows are claimable immediately; claimed rows become
234
- * claimable once their lease expires, so a dead or stalled runner never
235
- * strands a run. Returns undefined when nothing is claimable.
236
- */
237
227
  claimNextWorkflowRun(options: {
238
228
  runnerId: string;
229
+ sessionId?: string;
239
230
  claimToken: string;
240
231
  leaseMs: number;
241
- excludeRunIds?: string[];
242
- /** Interactive sessions provide their id; detached hosts omit it. */
243
- sessionId?: string;
244
232
  now?: string;
233
+ excludeRunIds?: string[];
245
234
  }): WorkflowRunQueueRecord | undefined;
246
- /** Extend a live claim. Rejects expired or foreign claims. */
247
235
  renewWorkflowRunClaim(options: {
248
236
  runId: string;
249
237
  claimToken: string;
250
238
  leaseMs: number;
251
239
  now?: string;
252
240
  }): boolean;
253
- /** The fence check: true only while this exact claim is live. */
254
241
  verifyWorkflowRunClaim(options: {
255
242
  runId: string;
256
243
  claimToken: string;
257
244
  now?: string;
258
245
  }): boolean;
259
- /** Release a claim and park the run so another runner can resume it. */
246
+ workflowRunAuthority(runId: string, claimToken: string): {
247
+ actor: {
248
+ type: "session" | "host";
249
+ id: string;
250
+ };
251
+ ownerType: "session" | "host";
252
+ ownerId: string;
253
+ token: string;
254
+ generation: number;
255
+ } | undefined;
260
256
  parkWorkflowRun(options: {
261
257
  runId: string;
262
258
  claimToken: string;
@@ -274,52 +270,25 @@ export declare class SqliteControllerStore implements ControllerStore {
274
270
  claimToken?: string;
275
271
  now?: string;
276
272
  }): boolean;
277
- /**
278
- * Delete a claimed row. Used when a continuation fails before its bundle
279
- * exists, so the parent's one-continuation slot is not consumed by a run
280
- * that never happened.
281
- */
282
273
  deleteWorkflowRun(options: {
283
274
  runId: string;
284
275
  claimToken: string;
285
276
  }): boolean;
286
- /** Release a claim and mark the run terminal in the queue. */
287
277
  completeWorkflowRun(options: {
288
278
  runId: string;
289
279
  claimToken: string;
290
280
  now?: string;
291
281
  }): boolean;
292
- /** Repair a canonical bundle's queue source and claim it only when needed. */
293
- repairCanonicalWorkflowSourceRun(options: {
294
- runId: string;
295
- workflowName: string;
296
- workflowSourceRef: string;
297
- runnerId: string;
298
- claimToken: string;
299
- leaseMs: number;
300
- now?: string;
301
- }): "unchanged" | "claimed" | false;
302
- /** Claim and rewrite one proved legacy workflow source queue row atomically. */
303
- claimLegacyWorkflowSourceRun(options: {
304
- runId: string;
305
- workflowName: string;
306
- oldWorkflowPath: string;
307
- workflowSourceRef: string;
308
- runnerId: string;
309
- claimToken: string;
310
- leaseMs: number;
311
- now?: string;
312
- }): boolean;
313
- /** Append a run lifecycle transition to the event feed. */
282
+ repairCanonicalWorkflowSourceRun(): never;
283
+ claimLegacyWorkflowSourceRun(): never;
314
284
  recordRunEvent(options: {
315
285
  runId: string;
316
286
  workflowRef: string;
317
287
  type: string;
318
- runnerId?: string;
319
288
  payload?: JsonObject;
289
+ runnerId?: string;
320
290
  now?: string;
321
- }): number;
322
- /** List run events after a watermark, oldest first. */
291
+ }): RunEventRecord;
323
292
  listRunEventsAfter(seq: number, options?: {
324
293
  limit?: number;
325
294
  }): RunEventRecord[];
@@ -333,8 +302,8 @@ export declare class SqliteControllerStore implements ControllerStore {
333
302
  nodeId?: string | null;
334
303
  attemptId?: string | null;
335
304
  fallbackFacts: WorkflowTurnIntentFacts;
336
- eligible?: boolean;
337
- now?: string;
305
+ eligible: boolean;
306
+ requestedAt?: string;
338
307
  }): WorkflowTurnIntentRecord;
339
308
  getWorkflowTurnIntent(intentId: string): WorkflowTurnIntentRecord | undefined;
340
309
  findPendingWorkflowTurnIntent(options: {
@@ -352,12 +321,13 @@ export declare class SqliteControllerStore implements ControllerStore {
352
321
  targetSessionId: string;
353
322
  claimToken: string;
354
323
  leaseMs: number;
355
- limit?: number;
356
324
  now?: string;
325
+ limit?: number;
357
326
  }): WorkflowTurnIntentRecord[];
358
327
  makeWorkflowTurnIntentEligible(options: {
359
328
  intentId: string;
360
329
  fallbackFacts: WorkflowTurnIntentFacts;
330
+ eligibleAt?: string;
361
331
  now?: string;
362
332
  }): boolean;
363
333
  resolveWorkflowTurnIntent(options: {
@@ -365,7 +335,7 @@ export declare class SqliteControllerStore implements ControllerStore {
365
335
  targetSessionId: string;
366
336
  claimToken: string;
367
337
  resolution: WorkflowTurnIntentResolution;
368
- messageId: string;
338
+ messageId?: string;
369
339
  now?: string;
370
340
  }): boolean;
371
341
  releaseWorkflowTurnIntentClaim(options: {
@@ -374,8 +344,9 @@ export declare class SqliteControllerStore implements ControllerStore {
374
344
  claimToken: string;
375
345
  }): boolean;
376
346
  listWorkflowTurnIntents(options?: {
377
- targetSessionId?: string;
378
347
  runId?: string;
348
+ targetSessionId?: string;
349
+ unresolvedOnly?: boolean;
379
350
  limit?: number;
380
351
  }): WorkflowTurnIntentRecord[];
381
352
  enqueueWorkflowNotification(options: {
@@ -386,15 +357,14 @@ export declare class SqliteControllerStore implements ControllerStore {
386
357
  targetSessionId: string;
387
358
  kind: "progress" | "final";
388
359
  content: string;
389
- notificationId?: string;
390
360
  now?: string;
391
361
  }): WorkflowNotificationRecord;
392
362
  claimPendingWorkflowNotifications(options: {
393
363
  targetSessionId: string;
394
364
  claimToken: string;
395
365
  leaseMs: number;
396
- limit?: number;
397
366
  now?: string;
367
+ limit?: number;
398
368
  }): WorkflowNotificationRecord[];
399
369
  markWorkflowNotificationDelivered(options: {
400
370
  notificationId: string;
@@ -402,8 +372,60 @@ export declare class SqliteControllerStore implements ControllerStore {
402
372
  claimToken: string;
403
373
  now?: string;
404
374
  }): boolean;
375
+ settleRunEffect(runId: string, effectType: "run.park_queue" | "run.settle_queue"): void;
405
376
  setWorkflowRunOriginSession(runId: string, originSessionId: string): boolean;
377
+ private ensureProject;
378
+ private findProject;
379
+ private requireProjectId;
380
+ private controllerRow;
381
+ private requireControllerRow;
382
+ private requireControllerRowByUid;
383
+ private requireResource;
384
+ private mapControllerResource;
385
+ private finalizers;
386
+ private replaceFinalizers;
387
+ private enqueueControllerRow;
388
+ private queueErrors;
389
+ private queueVersion;
390
+ private settleControllerClaim;
391
+ private assertControllerClaim;
392
+ private requireLease;
393
+ private releaseLease;
394
+ private resourceRevision;
395
+ private bumpResource;
396
+ private insertEvent;
397
+ private effectRow;
398
+ private requireEffectRow;
399
+ private mapEffect;
400
+ private effectKey;
401
+ private workflowRow;
402
+ private workflowRowById;
403
+ private requireWorkflowRow;
404
+ private mapWorkflow;
405
+ private workflowRunRow;
406
+ private requireWorkflowRunRow;
406
407
  private requireWorkflowRun;
407
- private requireEvent;
408
+ private mapWorkflowRun;
409
+ private claimRun;
410
+ private updateClaimedRunStatus;
411
+ private releaseRunClaim;
412
+ private terminalRun;
413
+ private turnIntent;
414
+ private requireTurnIntent;
415
+ private turnIntentRow;
416
+ private turnIntentBySource;
417
+ private mapTurnIntent;
418
+ private claimEffectForTurn;
419
+ private claimEffect;
420
+ private verifyEffectToken;
421
+ private releaseEffectLease;
422
+ private completeEffect;
423
+ private insertEffectResource;
424
+ private notification;
425
+ private requireNotification;
426
+ private notificationRows;
427
+ private notificationRowById;
428
+ private mapNotification;
429
+ private assertWritable;
408
430
  }
409
431
  export {};