@codemation/host 0.1.0 → 0.1.2

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 (70) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/{AppConfigFactory-Ciz9YKWx.js → AppConfigFactory-ByT1D8dM.js} +253 -15
  3. package/dist/{AppConfigFactory-Ciz9YKWx.js.map → AppConfigFactory-ByT1D8dM.js.map} +1 -1
  4. package/dist/{AppConfigFactory-CiBPHleh.d.ts → AppConfigFactory-_fqSok1J.d.ts} +6565 -177
  5. package/dist/{AppContainerFactory-DH88oxpg.js → AppContainerFactory-BRU02PTm.js} +838 -145
  6. package/dist/AppContainerFactory-BRU02PTm.js.map +1 -0
  7. package/dist/{CodemationConfig-DfK1KLvO.d.ts → CodemationConfig-CNfytKR6.d.ts} +2 -2
  8. package/dist/{CodemationConfigNormalizer-BKgIOeLm.d.ts → CodemationConfigNormalizer-BuKWVNEq.d.ts} +2 -2
  9. package/dist/{CodemationConsumerConfigLoader-bdhJsBKt.d.ts → CodemationConsumerConfigLoader-Mv4cywWu.d.ts} +2 -2
  10. package/dist/{CodemationPluginListMerger-BFZeO0WG.d.ts → CodemationPluginListMerger-BD5mR6gK.d.ts} +11 -5
  11. package/dist/{CredentialServices-aKIwHEhf.d.ts → CredentialServices-BQsEtctT.d.ts} +8 -7
  12. package/dist/{CredentialServices-DNb3CZwW.js → CredentialServices-xVxVA9Tq.js} +60 -114
  13. package/dist/CredentialServices-xVxVA9Tq.js.map +1 -0
  14. package/dist/{PublicFrontendBootstrapFactory-6ahaU0XM.d.ts → PublicFrontendBootstrapFactory-kTyAJdHI.d.ts} +2 -2
  15. package/dist/consumer.d.ts +4 -4
  16. package/dist/credentials.d.ts +3 -3
  17. package/dist/credentials.js +1 -1
  18. package/dist/devServerSidecar.d.ts +1 -1
  19. package/dist/{index-BYbzmUwS.d.ts → index-CX752QE9.d.ts} +68 -4
  20. package/dist/index.d.ts +10 -10
  21. package/dist/index.js +5 -5
  22. package/dist/nextServer.d.ts +20 -15
  23. package/dist/nextServer.js +35 -58
  24. package/dist/nextServer.js.map +1 -1
  25. package/dist/{persistenceServer-DL8yBGDU.d.ts → persistenceServer-CLY4qtMo.d.ts} +2 -2
  26. package/dist/{persistenceServer-CuAqL_fF.js → persistenceServer-DMvIOGW8.js} +2 -2
  27. package/dist/{persistenceServer-CuAqL_fF.js.map → persistenceServer-DMvIOGW8.js.map} +1 -1
  28. package/dist/persistenceServer.d.ts +5 -5
  29. package/dist/persistenceServer.js +2 -2
  30. package/dist/{server-EbxQft_X.js → server-ChTCEc6R.js} +4 -4
  31. package/dist/{server-EbxQft_X.js.map → server-ChTCEc6R.js.map} +1 -1
  32. package/dist/{server-BceIfIJf.d.ts → server-DwpcwzFb.d.ts} +6 -5
  33. package/dist/server.d.ts +8 -8
  34. package/dist/server.js +5 -5
  35. package/package.json +5 -5
  36. package/prisma/migrations/20260407140000_run_normalized_persistence/migration.sql +327 -0
  37. package/prisma/migrations/20260407193000_rename_run_projection_to_run_slot_projection/migration.sql +10 -0
  38. package/prisma/migrations.sqlite/20260407140000_run_normalized_persistence/migration.sql +326 -0
  39. package/prisma/migrations.sqlite/20260407193000_rename_run_projection_to_run_slot_projection/migration.sql +38 -0
  40. package/prisma/schema.postgresql.prisma +100 -1
  41. package/prisma/schema.sqlite.prisma +101 -1
  42. package/scripts/integration-database-global-setup.mjs +0 -3
  43. package/src/application/mapping/WorkflowDefinitionMapper.ts +95 -56
  44. package/src/application/mapping/WorkflowPolicyUiPresentationFactory.ts +1 -1
  45. package/src/application/queries/GetWorkflowRunDetailQuery.ts +8 -0
  46. package/src/application/queries/GetWorkflowRunDetailQueryHandler.ts +24 -0
  47. package/src/application/queries/WorkflowQueryHandlers.ts +1 -0
  48. package/src/application/runs/WorkflowRunRetentionPruneScheduler.ts +52 -27
  49. package/src/domain/credentials/WorkflowCredentialNodeResolver.ts +113 -158
  50. package/src/domain/runs/WorkflowRunRepository.ts +7 -1
  51. package/src/infrastructure/persistence/InMemoryWorkflowRunRepository.ts +123 -1
  52. package/src/infrastructure/persistence/PrismaMigrationDeployer.ts +226 -6
  53. package/src/infrastructure/persistence/PrismaWorkflowRunRepository.ts +796 -109
  54. package/src/infrastructure/persistence/generated/prisma-postgresql-client/edge.js +85 -5
  55. package/src/infrastructure/persistence/generated/prisma-postgresql-client/index-browser.js +81 -1
  56. package/src/infrastructure/persistence/generated/prisma-postgresql-client/index.d.ts +7107 -237
  57. package/src/infrastructure/persistence/generated/prisma-postgresql-client/index.js +85 -5
  58. package/src/infrastructure/persistence/generated/prisma-postgresql-client/package.json +1 -1
  59. package/src/infrastructure/persistence/generated/prisma-postgresql-client/schema.prisma +101 -1
  60. package/src/infrastructure/persistence/generated/prisma-sqlite-client/edge.js +85 -5
  61. package/src/infrastructure/persistence/generated/prisma-sqlite-client/index-browser.js +81 -1
  62. package/src/infrastructure/persistence/generated/prisma-sqlite-client/index.d.ts +7104 -242
  63. package/src/infrastructure/persistence/generated/prisma-sqlite-client/index.js +85 -5
  64. package/src/infrastructure/persistence/generated/prisma-sqlite-client/package.json +1 -1
  65. package/src/infrastructure/persistence/generated/prisma-sqlite-client/schema.prisma +101 -1
  66. package/src/presentation/http/ApiPaths.ts +4 -0
  67. package/src/presentation/http/hono/registrars/RunHonoApiRouteRegistrar.ts +1 -0
  68. package/src/presentation/http/routeHandlers/RunHttpRouteHandler.ts +13 -0
  69. package/dist/AppContainerFactory-DH88oxpg.js.map +0 -1
  70. package/dist/CredentialServices-DNb3CZwW.js.map +0 -1
@@ -2,12 +2,12 @@ import { i as __toESM, r as __require, t as __commonJS } from "./chunk-7V6ThxGB.
2
2
  import { o as LogLevelPolicyFactory, s as logLevelPolicyFactory, t as ServerLoggerFactory } from "./ServerLoggerFactory-BltIIDfQ.js";
3
3
  import { n as __decorateMetadata, t as __decorateParam } from "./decorateParam-DrsXNPuw.js";
4
4
  import { t as __decorate } from "./decorate-B0PP651O.js";
5
- import { a as CredentialInstanceService, c as CredentialFieldEnvOverlayService, d as ApplicationRequestError, f as CredentialTypeRegistryImpl, i as CredentialBindingService, l as WorkflowCredentialNodeResolver, m as OpenAiApiKeyCredentialHealthTester, n as CredentialSessionServiceImpl, o as CredentialMaterialResolver, p as OpenAiApiKeyCredentialTypeFactory, r as CredentialRuntimeMaterialService, s as CredentialSecretCipher, t as CredentialTestService, u as ApplicationTokens } from "./CredentialServices-DNb3CZwW.js";
6
- import { i as require_client$2, r as PrismaMigrationDeployer } from "./AppConfigFactory-Ciz9YKWx.js";
5
+ import { a as CredentialInstanceService, c as CredentialFieldEnvOverlayService, d as ApplicationRequestError, f as CredentialTypeRegistryImpl, i as CredentialBindingService, l as WorkflowCredentialNodeResolver, m as OpenAiApiKeyCredentialHealthTester, n as CredentialSessionServiceImpl, o as CredentialMaterialResolver, p as OpenAiApiKeyCredentialTypeFactory, r as CredentialRuntimeMaterialService, s as CredentialSecretCipher, t as CredentialTestService, u as ApplicationTokens } from "./CredentialServices-xVxVA9Tq.js";
6
+ import { i as require_client$2, r as PrismaMigrationDeployer } from "./AppConfigFactory-ByT1D8dM.js";
7
7
  import { mkdir, rm, stat } from "node:fs/promises";
8
8
  import path from "node:path";
9
9
  import { pathToFileURL } from "node:url";
10
- import { AgentConfigInspector, ConnectionNodeIdFactory, CoreTokens, DefaultExecutionBinaryService, EventPublishingWorkflowExecutionRepository, InMemoryLiveWorkflowRepository, InMemoryRunEventBus, ItemsInputNormalizer, RunFinishedAtFactory, SystemClock, container, getPersistedRuntimeTypeMetadata, inject, injectAll, injectable, instanceCachingFactory, registry } from "@codemation/core";
10
+ import { AgentConfigInspector, AgentConnectionNodeCollector, CoreTokens, DefaultExecutionBinaryService, EventPublishingWorkflowExecutionRepository, InMemoryLiveWorkflowRepository, InMemoryRunEventBus, ItemsInputNormalizer, RunFinishedAtFactory, SystemClock, container, getPersistedRuntimeTypeMetadata, inject, injectAll, injectable, instanceCachingFactory, registry } from "@codemation/core";
11
11
  import { createHash, randomBytes } from "node:crypto";
12
12
  import "reflect-metadata";
13
13
  import { ConfigDrivenOffloadPolicy, DefaultDrivingScheduler, DefaultExecutionContextFactory, Engine, EngineRuntimeRegistrar, InMemoryBinaryStorage, InMemoryRunDataFactory, InlineDrivingScheduler, MissingRuntimeTriggerToken, PersistedWorkflowTokenRegistry, RunIntentService, RunSummaryMapper, WorkflowRepositoryWebhookTriggerMatcher } from "@codemation/core/bootstrap";
@@ -1816,6 +1816,32 @@ GetRunStateQueryHandler = __decorate([
1816
1816
  __decorateMetadata("design:paramtypes", [Object])
1817
1817
  ], GetRunStateQueryHandler);
1818
1818
 
1819
+ //#endregion
1820
+ //#region src/application/queries/GetWorkflowRunDetailQuery.ts
1821
+ var GetWorkflowRunDetailQuery = class extends Query {
1822
+ constructor(runId) {
1823
+ super();
1824
+ this.runId = runId;
1825
+ }
1826
+ };
1827
+
1828
+ //#endregion
1829
+ //#region src/application/queries/GetWorkflowRunDetailQueryHandler.ts
1830
+ let GetWorkflowRunDetailQueryHandler = class GetWorkflowRunDetailQueryHandler$1 extends QueryHandler {
1831
+ constructor(workflowRunRepository) {
1832
+ super();
1833
+ this.workflowRunRepository = workflowRunRepository;
1834
+ }
1835
+ async execute(query) {
1836
+ return await this.workflowRunRepository.loadRunDetail?.(query.runId);
1837
+ }
1838
+ };
1839
+ GetWorkflowRunDetailQueryHandler = __decorate([
1840
+ HandlesQuery.for(GetWorkflowRunDetailQuery),
1841
+ __decorateParam(0, inject(ApplicationTokens.WorkflowRunRepository)),
1842
+ __decorateMetadata("design:paramtypes", [Object])
1843
+ ], GetWorkflowRunDetailQueryHandler);
1844
+
1819
1845
  //#endregion
1820
1846
  //#region src/application/queries/GetWorkflowDebuggerOverlayQuery.ts
1821
1847
  var GetWorkflowDebuggerOverlayQuery = class extends Query {
@@ -2493,16 +2519,19 @@ let WorkflowDefinitionMapper = class WorkflowDefinitionMapper$1 {
2493
2519
  });
2494
2520
  return map;
2495
2521
  }
2496
- agentHasConnectionMetadata(workflow, agentNodeId) {
2497
- return (workflow.connections ?? []).some((c) => c.parentNodeId === agentNodeId);
2498
- }
2499
2522
  toNodes(workflow) {
2500
2523
  const connectionChildMeta = this.buildConnectionChildMeta(workflow);
2524
+ const materializedConnectionNodeIds = new Set(connectionChildMeta.keys());
2501
2525
  const nodes = [];
2502
2526
  for (const node of workflow.nodes) {
2503
2527
  const conn = connectionChildMeta.get(node.id);
2504
2528
  if (conn) {
2505
- const role = conn.connectionName === "llm" ? "languageModel" : "tool";
2529
+ const parentNode = workflow.nodes.find((n) => n.id === conn.parentNodeId);
2530
+ let role = conn.connectionName === "llm" ? "languageModel" : "tool";
2531
+ if (parentNode && AgentConfigInspector.isAgentNodeConfig(parentNode.config)) {
2532
+ const descriptor = AgentConnectionNodeCollector.collect(conn.parentNodeId, parentNode.config).find((d) => d.nodeId === node.id);
2533
+ if (descriptor) role = descriptor.role;
2534
+ }
2506
2535
  nodes.push({
2507
2536
  id: node.id,
2508
2537
  kind: node.kind,
@@ -2526,76 +2555,75 @@ let WorkflowDefinitionMapper = class WorkflowDefinitionMapper$1 {
2526
2555
  retryPolicySummary: this.policyUi.nodeRetrySummary(node.config),
2527
2556
  hasNodeErrorHandler: this.policyUi.nodeHasErrorHandler(node.config)
2528
2557
  });
2529
- if (AgentConfigInspector.isAgentNodeConfig(node.config) && !this.agentHasConnectionMetadata(workflow, node.id)) {
2530
- nodes.push(this.createLanguageModelNode(node, node.config.chatModel));
2531
- for (const toolConfig of node.config.tools ?? []) nodes.push(this.createToolNode(node, toolConfig));
2532
- }
2558
+ if (AgentConfigInspector.isAgentNodeConfig(node.config)) this.appendVirtualConnectionNodes(node.id, node.config, materializedConnectionNodeIds, nodes);
2533
2559
  }
2534
2560
  return nodes;
2535
2561
  }
2536
2562
  toEdges(workflow) {
2563
+ const connectionChildMeta = this.buildConnectionChildMeta(workflow);
2564
+ const materializedConnectionNodeIds = new Set(connectionChildMeta.keys());
2537
2565
  const edges = [...workflow.edges];
2566
+ const edgeKeys = new Set(edges.map((edge) => this.edgeKey(edge.from.nodeId, edge.to.nodeId, edge.to.input)));
2567
+ this.appendMaterializedConnectionEdges(workflow, edgeKeys, edges);
2538
2568
  for (const node of workflow.nodes) {
2539
2569
  if (!AgentConfigInspector.isAgentNodeConfig(node.config)) continue;
2540
- if (this.agentHasConnectionMetadata(workflow, node.id)) {
2541
- for (const c of workflow.connections ?? []) {
2542
- if (c.parentNodeId !== node.id) continue;
2543
- for (const childId of c.childNodeIds) edges.push({
2544
- from: {
2545
- nodeId: node.id,
2546
- output: "main"
2547
- },
2548
- to: {
2549
- nodeId: childId,
2550
- input: "in"
2551
- }
2552
- });
2553
- }
2554
- continue;
2555
- }
2570
+ this.appendVirtualConnectionEdges(node.id, node.config, materializedConnectionNodeIds, edgeKeys, edges);
2571
+ }
2572
+ return edges;
2573
+ }
2574
+ appendMaterializedConnectionEdges(workflow, edgeKeys, edges) {
2575
+ for (const connection of workflow.connections ?? []) for (const childNodeId of connection.childNodeIds) {
2576
+ const key = this.edgeKey(connection.parentNodeId, childNodeId, "in");
2577
+ if (edgeKeys.has(key)) continue;
2556
2578
  edges.push({
2557
2579
  from: {
2558
- nodeId: node.id,
2580
+ nodeId: connection.parentNodeId,
2559
2581
  output: "main"
2560
2582
  },
2561
2583
  to: {
2562
- nodeId: ConnectionNodeIdFactory.languageModelConnectionNodeId(node.id),
2584
+ nodeId: childNodeId,
2563
2585
  input: "in"
2564
2586
  }
2565
2587
  });
2566
- for (const toolConfig of node.config.tools ?? []) edges.push({
2588
+ edgeKeys.add(key);
2589
+ }
2590
+ }
2591
+ appendVirtualConnectionNodes(rootAgentNodeId, agentConfig, materializedConnectionNodeIds, nodes) {
2592
+ for (const connectionNode of AgentConnectionNodeCollector.collect(rootAgentNodeId, agentConfig)) {
2593
+ if (materializedConnectionNodeIds.has(connectionNode.nodeId)) continue;
2594
+ nodes.push(this.createConnectionNode(connectionNode));
2595
+ }
2596
+ }
2597
+ appendVirtualConnectionEdges(rootAgentNodeId, agentConfig, materializedConnectionNodeIds, edgeKeys, edges) {
2598
+ for (const connectionNode of AgentConnectionNodeCollector.collect(rootAgentNodeId, agentConfig)) {
2599
+ if (materializedConnectionNodeIds.has(connectionNode.nodeId)) continue;
2600
+ const key = this.edgeKey(connectionNode.parentNodeId, connectionNode.nodeId, "in");
2601
+ if (edgeKeys.has(key)) continue;
2602
+ edges.push({
2567
2603
  from: {
2568
- nodeId: node.id,
2604
+ nodeId: connectionNode.parentNodeId,
2569
2605
  output: "main"
2570
2606
  },
2571
2607
  to: {
2572
- nodeId: ConnectionNodeIdFactory.toolConnectionNodeId(node.id, toolConfig.name),
2608
+ nodeId: connectionNode.nodeId,
2573
2609
  input: "in"
2574
2610
  }
2575
2611
  });
2612
+ edgeKeys.add(key);
2576
2613
  }
2577
- return edges;
2578
2614
  }
2579
- createLanguageModelNode(node, chatModel) {
2580
- return {
2581
- id: ConnectionNodeIdFactory.languageModelConnectionNodeId(node.id),
2582
- kind: "node",
2583
- name: chatModel.presentation?.label ?? chatModel.name,
2584
- type: chatModel.name,
2585
- role: "languageModel",
2586
- icon: chatModel.presentation?.icon,
2587
- parentNodeId: node.id
2588
- };
2615
+ edgeKey(fromNodeId, toNodeId, toInput) {
2616
+ return `${fromNodeId}\0${toNodeId}\0${toInput}`;
2589
2617
  }
2590
- createToolNode(node, toolConfig) {
2618
+ createConnectionNode(connectionNode) {
2591
2619
  return {
2592
- id: ConnectionNodeIdFactory.toolConnectionNodeId(node.id, toolConfig.name),
2620
+ id: connectionNode.nodeId,
2593
2621
  kind: "node",
2594
- name: toolConfig.presentation?.label ?? toolConfig.name,
2595
- type: toolConfig.name,
2596
- role: "tool",
2597
- icon: toolConfig.presentation?.icon,
2598
- parentNodeId: node.id
2622
+ name: connectionNode.name,
2623
+ type: connectionNode.typeName,
2624
+ role: connectionNode.role,
2625
+ icon: connectionNode.icon,
2626
+ parentNodeId: connectionNode.parentNodeId
2599
2627
  };
2600
2628
  }
2601
2629
  nodeTypeName(node) {
@@ -2739,6 +2767,9 @@ var ApiPaths = class {
2739
2767
  static runState(runId) {
2740
2768
  return `${this.runsBasePath}/${encodeURIComponent(runId)}`;
2741
2769
  }
2770
+ static runDetail(runId) {
2771
+ return `${this.runState(runId)}/detail`;
2772
+ }
2742
2773
  static runWorkflowSnapshot(runId) {
2743
2774
  return `${this.runState(runId)}/workflow-snapshot`;
2744
2775
  }
@@ -4203,6 +4234,15 @@ let RunHttpRouteHandler = class RunHttpRouteHandler$1 {
4203
4234
  return ServerHttpErrorResponseFactory.fromUnknown(error);
4204
4235
  }
4205
4236
  }
4237
+ async getRunDetail(_$1, params) {
4238
+ try {
4239
+ const detail = await this.queryBus.execute(new GetWorkflowRunDetailQuery(params.runId));
4240
+ if (!detail) return Response.json({ error: "Unknown runId" }, { status: 404 });
4241
+ return Response.json(detail);
4242
+ } catch (error) {
4243
+ return ServerHttpErrorResponseFactory.fromUnknown(error);
4244
+ }
4245
+ }
4206
4246
  async postRuns(request, _$1) {
4207
4247
  try {
4208
4248
  const body = await HttpRequestJsonBodyReader.readJsonBody(request);
@@ -4252,6 +4292,7 @@ let RunHonoApiRouteRegistrar = class RunHonoApiRouteRegistrar$1 {
4252
4292
  }
4253
4293
  register(app) {
4254
4294
  app.get("/runs/:runId", (c) => this.handler.getRun(c.req.raw, { runId: c.req.param("runId") }));
4295
+ app.get("/runs/:runId/detail", (c) => this.handler.getRunDetail(c.req.raw, { runId: c.req.param("runId") }));
4255
4296
  app.post("/runs", (c) => this.handler.postRuns(c.req.raw, {}));
4256
4297
  app.patch("/runs/:runId/workflow-snapshot", (c) => this.handler.patchRunWorkflowSnapshot(c.req.raw, { runId: c.req.param("runId") }));
4257
4298
  app.patch("/runs/:runId/nodes/:nodeId/pin", (c) => this.handler.patchRunNodePin(c.req.raw, {
@@ -5437,6 +5478,7 @@ let InMemoryWorkflowRunRepository = class InMemoryWorkflowRunRepository$1 {
5437
5478
  runId: args.runId,
5438
5479
  workflowId: args.workflowId,
5439
5480
  startedAt: args.startedAt,
5481
+ revision: 0,
5440
5482
  parent: args.parent,
5441
5483
  executionOptions: args.executionOptions,
5442
5484
  control: args.control,
@@ -5454,8 +5496,67 @@ let InMemoryWorkflowRunRepository = class InMemoryWorkflowRunRepository$1 {
5454
5496
  async load(runId) {
5455
5497
  return this.runs.get(decodeURIComponent(runId));
5456
5498
  }
5499
+ async loadSchedulingState(runId) {
5500
+ const state = await this.load(runId);
5501
+ if (!state) return;
5502
+ return {
5503
+ pending: state.pending ? { ...state.pending } : void 0,
5504
+ queue: state.queue.map((entry) => ({ ...entry }))
5505
+ };
5506
+ }
5457
5507
  async save(state) {
5458
- this.runs.set(state.runId, state);
5508
+ this.runs.set(state.runId, {
5509
+ ...state,
5510
+ revision: (state.revision ?? 0) + 1
5511
+ });
5512
+ }
5513
+ async loadRunDetail(runId) {
5514
+ const state = await this.load(runId);
5515
+ if (!state) return;
5516
+ const slotStates = Object.entries(state.nodeSnapshotsByNodeId).map(([slotNodeId, snapshot]) => ({
5517
+ slotNodeId,
5518
+ latestInstanceId: snapshot.activationId ? `${state.runId}:node:${slotNodeId}:${snapshot.activationId}` : void 0,
5519
+ latestTerminalInstanceId: snapshot.status === "completed" || snapshot.status === "failed" ? snapshot.activationId ? `${state.runId}:node:${slotNodeId}:${snapshot.activationId}` : void 0 : void 0,
5520
+ latestRunningInstanceId: snapshot.status === "queued" || snapshot.status === "running" ? snapshot.activationId ? `${state.runId}:node:${slotNodeId}:${snapshot.activationId}` : void 0 : void 0,
5521
+ status: snapshot.status,
5522
+ invocationCount: (state.connectionInvocations ?? []).filter((inv) => inv.connectionNodeId === slotNodeId).length,
5523
+ runCount: 1
5524
+ }));
5525
+ const executionInstances = Object.entries(state.nodeSnapshotsByNodeId).map(([slotNodeId, snapshot]) => ({
5526
+ instanceId: `${state.runId}:node:${slotNodeId}:${snapshot.activationId ?? "na"}`,
5527
+ slotNodeId,
5528
+ workflowNodeId: slotNodeId,
5529
+ kind: "workflowNodeActivation",
5530
+ runIndex: 1,
5531
+ batchId: state.pending?.batchId ?? "batch_1",
5532
+ activationId: snapshot.activationId,
5533
+ status: snapshot.status,
5534
+ queuedAt: snapshot.queuedAt,
5535
+ startedAt: snapshot.startedAt,
5536
+ finishedAt: snapshot.finishedAt,
5537
+ itemCount: Object.values(snapshot.inputsByPort ?? {}).reduce((count, items) => count + items.length, 0),
5538
+ inputJson: snapshot.inputsByPort,
5539
+ outputJson: snapshot.outputs,
5540
+ error: snapshot.error
5541
+ }));
5542
+ return {
5543
+ runId: state.runId,
5544
+ workflowId: state.workflowId,
5545
+ startedAt: state.startedAt,
5546
+ finishedAt: state.finishedAt,
5547
+ status: state.status,
5548
+ workflowSnapshot: state.workflowSnapshot,
5549
+ mutableState: state.mutableState,
5550
+ slotStates,
5551
+ executionInstances
5552
+ };
5553
+ }
5554
+ async listBinaryStorageKeys(runId) {
5555
+ const state = await this.load(runId);
5556
+ if (!state) return [];
5557
+ const keys = /* @__PURE__ */ new Set();
5558
+ this.collectBinaryKeysFromRunState(state, keys);
5559
+ return [...keys].sort((left, right) => left.localeCompare(right));
5459
5560
  }
5460
5561
  async deleteRun(runId) {
5461
5562
  this.runs.delete(runId);
@@ -5482,6 +5583,20 @@ let InMemoryWorkflowRunRepository = class InMemoryWorkflowRunRepository$1 {
5482
5583
  out.sort((a$1, b$2) => a$1.finishedAt.localeCompare(b$2.finishedAt));
5483
5584
  return out.slice(0, limit);
5484
5585
  }
5586
+ collectBinaryKeysFromRunState(state, keys) {
5587
+ for (const outputs of Object.values(state.outputsByNode)) for (const items of Object.values(outputs)) this.collectBinaryKeysFromItems(items, keys);
5588
+ for (const snapshot of Object.values(state.nodeSnapshotsByNodeId)) {
5589
+ for (const items of Object.values(snapshot.inputsByPort ?? {})) this.collectBinaryKeysFromItems(items, keys);
5590
+ for (const items of Object.values(snapshot.outputs ?? {})) this.collectBinaryKeysFromItems(items, keys);
5591
+ }
5592
+ for (const nodeState of Object.values(state.mutableState?.nodesById ?? {})) {
5593
+ for (const items of Object.values(nodeState.pinnedOutputsByPort ?? {})) this.collectBinaryKeysFromItems(items, keys);
5594
+ this.collectBinaryKeysFromItems(nodeState.lastDebugInput, keys);
5595
+ }
5596
+ }
5597
+ collectBinaryKeysFromItems(items, keys) {
5598
+ for (const item of items ?? []) for (const attachment of Object.values(item.binary ?? {})) if (attachment.storageKey.length > 0) keys.add(attachment.storageKey);
5599
+ }
5485
5600
  };
5486
5601
  InMemoryWorkflowRunRepository = __decorate([injectable()], InMemoryWorkflowRunRepository);
5487
5602
 
@@ -13299,11 +13414,85 @@ var require_prisma_sqlite_client = /* @__PURE__ */ __commonJS({ "src/infrastruct
13299
13414
  runId: "runId",
13300
13415
  workflowId: "workflowId",
13301
13416
  startedAt: "startedAt",
13417
+ finishedAt: "finishedAt",
13302
13418
  status: "status",
13419
+ revision: "revision",
13303
13420
  parentJson: "parentJson",
13304
13421
  executionOptionsJson: "executionOptionsJson",
13422
+ controlJson: "controlJson",
13423
+ workflowSnapshotJson: "workflowSnapshotJson",
13424
+ policySnapshotJson: "policySnapshotJson",
13425
+ engineCountersJson: "engineCountersJson",
13426
+ mutableStateJson: "mutableStateJson",
13427
+ outputsByNodeJson: "outputsByNodeJson",
13428
+ updatedAt: "updatedAt"
13429
+ };
13430
+ exports.Prisma.RunWorkItemScalarFieldEnum = {
13431
+ workItemId: "workItemId",
13432
+ runId: "runId",
13433
+ workflowId: "workflowId",
13434
+ status: "status",
13435
+ targetNodeId: "targetNodeId",
13436
+ batchId: "batchId",
13437
+ queueName: "queueName",
13438
+ claimToken: "claimToken",
13439
+ claimedBy: "claimedBy",
13440
+ claimedAt: "claimedAt",
13441
+ availableAt: "availableAt",
13442
+ enqueuedAt: "enqueuedAt",
13443
+ completedAt: "completedAt",
13444
+ failedAt: "failedAt",
13445
+ sourceInstanceId: "sourceInstanceId",
13446
+ parentInstanceId: "parentInstanceId",
13447
+ itemsIn: "itemsIn",
13448
+ inputsByPortJson: "inputsByPortJson",
13449
+ errorJson: "errorJson"
13450
+ };
13451
+ exports.Prisma.ExecutionInstanceScalarFieldEnum = {
13452
+ instanceId: "instanceId",
13453
+ runId: "runId",
13454
+ workflowId: "workflowId",
13455
+ slotNodeId: "slotNodeId",
13456
+ workflowNodeId: "workflowNodeId",
13457
+ kind: "kind",
13458
+ connectionKind: "connectionKind",
13459
+ activationId: "activationId",
13460
+ batchId: "batchId",
13461
+ runIndex: "runIndex",
13462
+ parentInstanceId: "parentInstanceId",
13463
+ parentRunId: "parentRunId",
13464
+ workerClaimToken: "workerClaimToken",
13465
+ status: "status",
13466
+ queuedAt: "queuedAt",
13467
+ startedAt: "startedAt",
13468
+ finishedAt: "finishedAt",
13305
13469
  updatedAt: "updatedAt",
13306
- stateJson: "stateJson"
13470
+ itemCount: "itemCount",
13471
+ inputJson: "inputJson",
13472
+ outputJson: "outputJson",
13473
+ errorJson: "errorJson",
13474
+ inputItemIndicesJson: "inputItemIndicesJson",
13475
+ outputItemCount: "outputItemCount",
13476
+ successfulItemCount: "successfulItemCount",
13477
+ failedItemCount: "failedItemCount",
13478
+ inputStorageKind: "inputStorageKind",
13479
+ outputStorageKind: "outputStorageKind",
13480
+ inputBytes: "inputBytes",
13481
+ outputBytes: "outputBytes",
13482
+ inputPreviewJson: "inputPreviewJson",
13483
+ outputPreviewJson: "outputPreviewJson",
13484
+ inputPayloadRef: "inputPayloadRef",
13485
+ outputPayloadRef: "outputPayloadRef",
13486
+ inputTruncated: "inputTruncated",
13487
+ outputTruncated: "outputTruncated",
13488
+ usedPinnedOutput: "usedPinnedOutput"
13489
+ };
13490
+ exports.Prisma.RunSlotProjectionScalarFieldEnum = {
13491
+ runId: "runId",
13492
+ workflowId: "workflowId",
13493
+ revision: "revision",
13494
+ updatedAt: "updatedAt",
13495
+ slotStatesJson: "slotStatesJson"
13307
13496
  };
13308
13497
  exports.Prisma.WorkflowDebuggerOverlayScalarFieldEnum = {
13309
13498
  workflowId: "workflowId",
@@ -13443,6 +13632,9 @@ var require_prisma_sqlite_client = /* @__PURE__ */ __commonJS({ "src/infrastruct
13443
13632
  };
13444
13633
  exports.Prisma.ModelName = {
13445
13634
  Run: "Run",
13635
+ RunWorkItem: "RunWorkItem",
13636
+ ExecutionInstance: "ExecutionInstance",
13637
+ RunSlotProjection: "RunSlotProjection",
13446
13638
  WorkflowDebuggerOverlay: "WorkflowDebuggerOverlay",
13447
13639
  WorkflowActivation: "WorkflowActivation",
13448
13640
  TriggerSetupState: "TriggerSetupState",
@@ -13466,13 +13658,13 @@ var require_prisma_sqlite_client = /* @__PURE__ */ __commonJS({ "src/infrastruct
13466
13658
  "clientVersion": "7.5.0",
13467
13659
  "engineVersion": "280c870be64f457428992c43c1f6d557fab6e29e",
13468
13660
  "activeProvider": "sqlite",
13469
- "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"../src/infrastructure/persistence/generated/prisma-sqlite-client\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\nmodel Run {\n runId String @id @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n startedAt String @map(\"started_at\")\n status String\n parentJson String? @map(\"parent_json\")\n executionOptionsJson String? @map(\"execution_options_json\")\n updatedAt String @map(\"updated_at\")\n stateJson String @map(\"state_json\")\n}\n\nmodel WorkflowDebuggerOverlay {\n workflowId String @id @map(\"workflow_id\")\n updatedAt String @map(\"updated_at\")\n copiedFromRunId String? @map(\"copied_from_run_id\")\n stateJson String @map(\"state_json\")\n}\n\nmodel WorkflowActivation {\n workflowId String @id @map(\"workflow_id\")\n isActive Boolean @default(false) @map(\"is_active\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel TriggerSetupState {\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n updatedAt String @map(\"updated_at\")\n stateJson String @map(\"state_json\")\n\n @@id([workflowId, nodeId])\n}\n\nmodel CredentialInstance {\n instanceId String @id @map(\"instance_id\")\n typeId String @map(\"type_id\")\n displayName String @map(\"display_name\")\n sourceKind String @map(\"source_kind\")\n publicConfigJson String @map(\"public_config_json\")\n secretRefJson String @map(\"secret_ref_json\")\n tagsJson String @map(\"tags_json\")\n setupStatus String @map(\"setup_status\")\n createdAt String @map(\"created_at\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialSecretMaterial {\n instanceId String @id @map(\"instance_id\")\n encryptedJson String @map(\"encrypted_json\")\n encryptionKeyId String @map(\"encryption_key_id\")\n schemaVersion Int @map(\"schema_version\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialOAuth2Material {\n instanceId String @id @map(\"instance_id\")\n encryptedJson String @map(\"encrypted_json\")\n encryptionKeyId String @map(\"encryption_key_id\")\n schemaVersion Int @map(\"schema_version\")\n providerId String @map(\"provider_id\")\n connectedEmail String? @map(\"connected_email\")\n connectedAt String? @map(\"connected_at\")\n scopesJson String @map(\"scopes_json\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialOAuth2State {\n state String @id\n instanceId String @map(\"instance_id\")\n codeVerifier String? @map(\"code_verifier\")\n providerId String? @map(\"provider_id\")\n requestedScopesJson String @map(\"requested_scopes_json\")\n createdAt String @map(\"created_at\")\n expiresAt String @map(\"expires_at\")\n\n @@index([instanceId])\n @@index([expiresAt])\n}\n\nmodel CredentialBinding {\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n slotKey String @map(\"slot_key\")\n instanceId String @map(\"instance_id\")\n updatedAt String @map(\"updated_at\")\n\n @@id([workflowId, nodeId, slotKey])\n @@index([instanceId])\n}\n\nmodel CredentialTestResult {\n testId String @id @map(\"test_id\")\n instanceId String @map(\"instance_id\")\n status String\n message String?\n detailsJson String @map(\"details_json\")\n testedAt String @map(\"tested_at\")\n expiresAt String? @map(\"expires_at\")\n\n @@index([instanceId, testedAt])\n}\n\n/// Better Auth user directory (DB sessions + optional OAuth linking)\nmodel User {\n id String @id @default(cuid())\n name String?\n email String? @unique\n emailVerified Boolean @default(false) @map(\"email_verified\")\n image String?\n passwordHash String? @map(\"password_hash\")\n /// invited | active | inactive (local directory / invite flow)\n accountStatus String @default(\"active\") @map(\"account_status\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n accounts Account[]\n sessions Session[]\n invites UserInvite[]\n\n @@map(\"codemation_auth_user\")\n}\n\nmodel UserInvite {\n id String @id @default(cuid())\n userId String @map(\"user_id\")\n tokenHash String @unique @map(\"token_hash\")\n expiresAt DateTime @map(\"expires_at\")\n createdAt DateTime @map(\"created_at\")\n revokedAt DateTime? @map(\"revoked_at\")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@map(\"codemation_auth_user_invite\")\n}\n\nmodel Account {\n id String @id @default(cuid())\n userId String @map(\"user_id\")\n /// Legacy Auth.js discriminator; Better Auth omits it on create — default keeps OAuth/credential rows valid.\n type String @default(\"oauth\")\n provider String\n providerAccountId String @map(\"provider_account_id\")\n /// Better Auth email/password (credential provider) hash; kept in sync with `User.passwordHash` for local flows.\n password String? @map(\"password\")\n refresh_token String?\n access_token String?\n expires_at Int?\n accessTokenExpiresAt DateTime? @map(\"access_token_expires_at\")\n refreshTokenExpiresAt DateTime? @map(\"refresh_token_expires_at\")\n token_type String?\n scope String?\n id_token String?\n session_state String?\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([provider, providerAccountId])\n @@map(\"codemation_auth_account\")\n}\n\nmodel Session {\n id String @id @default(cuid())\n sessionToken String @unique @map(\"session_token\")\n userId String @map(\"user_id\")\n expires DateTime\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n ipAddress String? @map(\"ip_address\")\n userAgent String? @map(\"user_agent\")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"codemation_auth_session\")\n}\n\nmodel VerificationToken {\n id String @id @default(cuid())\n identifier String\n token String\n expires DateTime\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n @@unique([identifier, token])\n @@map(\"codemation_auth_verification_token\")\n}\n"
13661
+ "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"../src/infrastructure/persistence/generated/prisma-sqlite-client\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\nmodel Run {\n runId String @id @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n startedAt String @map(\"started_at\")\n finishedAt String? @map(\"finished_at\")\n status String\n revision Int @default(0)\n parentJson String? @map(\"parent_json\")\n executionOptionsJson String? @map(\"execution_options_json\")\n controlJson String? @map(\"control_json\")\n workflowSnapshotJson String? @map(\"workflow_snapshot_json\")\n policySnapshotJson String? @map(\"policy_snapshot_json\")\n engineCountersJson String? @map(\"engine_counters_json\")\n mutableStateJson String? @map(\"mutable_state_json\")\n outputsByNodeJson String @map(\"outputs_by_node_json\")\n updatedAt String @map(\"updated_at\")\n\n workItems RunWorkItem[]\n executionInstances ExecutionInstance[]\n slotProjection RunSlotProjection?\n\n @@index([workflowId, startedAt])\n @@index([workflowId, status, finishedAt])\n}\n\nmodel RunWorkItem {\n workItemId String @id @map(\"work_item_id\")\n runId String @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n status String\n targetNodeId String @map(\"target_node_id\")\n batchId String @map(\"batch_id\")\n queueName String? @map(\"queue_name\")\n claimToken String? @map(\"claim_token\")\n claimedBy String? @map(\"claimed_by\")\n claimedAt String? @map(\"claimed_at\")\n availableAt String @map(\"available_at\")\n enqueuedAt String @map(\"enqueued_at\")\n completedAt String? @map(\"completed_at\")\n failedAt String? @map(\"failed_at\")\n sourceInstanceId String? @map(\"source_instance_id\")\n parentInstanceId String? @map(\"parent_instance_id\")\n itemsIn Int @map(\"items_in\")\n inputsByPortJson String @map(\"inputs_by_port_json\")\n errorJson String? @map(\"error_json\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n\n @@index([runId, status, availableAt])\n @@index([runId, targetNodeId, batchId])\n}\n\nmodel ExecutionInstance {\n instanceId String @id @map(\"instance_id\")\n runId String @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n slotNodeId String @map(\"slot_node_id\")\n workflowNodeId String @map(\"workflow_node_id\")\n kind String\n connectionKind String? @map(\"connection_kind\")\n activationId String? @map(\"activation_id\")\n batchId String @map(\"batch_id\")\n runIndex Int @map(\"run_index\")\n parentInstanceId String? @map(\"parent_instance_id\")\n parentRunId String? @map(\"parent_run_id\")\n workerClaimToken String? @map(\"worker_claim_token\")\n status String\n queuedAt String? @map(\"queued_at\")\n startedAt String? @map(\"started_at\")\n finishedAt String? @map(\"finished_at\")\n updatedAt String @map(\"updated_at\")\n itemCount Int @map(\"item_count\")\n inputJson String? @map(\"input_json\")\n outputJson String? @map(\"output_json\")\n errorJson String? @map(\"error_json\")\n inputItemIndicesJson String? @map(\"input_item_indices_json\")\n outputItemCount Int? @map(\"output_item_count\")\n successfulItemCount Int? @map(\"successful_item_count\")\n failedItemCount Int? @map(\"failed_item_count\")\n inputStorageKind String? @map(\"input_storage_kind\")\n outputStorageKind String? @map(\"output_storage_kind\")\n inputBytes Int? @map(\"input_bytes\")\n outputBytes Int? @map(\"output_bytes\")\n inputPreviewJson String? @map(\"input_preview_json\")\n outputPreviewJson String? @map(\"output_preview_json\")\n inputPayloadRef String? @map(\"input_payload_ref\")\n outputPayloadRef String? @map(\"output_payload_ref\")\n inputTruncated Boolean? @map(\"input_truncated\")\n outputTruncated Boolean? @map(\"output_truncated\")\n usedPinnedOutput Boolean? @map(\"used_pinned_output\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n\n @@unique([runId, slotNodeId, runIndex])\n @@index([runId, slotNodeId, updatedAt])\n @@index([runId, parentInstanceId, updatedAt])\n @@index([runId, kind, updatedAt])\n}\n\nmodel RunSlotProjection {\n runId String @id @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n revision Int\n updatedAt String @map(\"updated_at\")\n slotStatesJson String @map(\"slot_states_json\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n\n @@index([workflowId, updatedAt])\n}\n\nmodel WorkflowDebuggerOverlay {\n workflowId String @id @map(\"workflow_id\")\n updatedAt String @map(\"updated_at\")\n copiedFromRunId String? @map(\"copied_from_run_id\")\n stateJson String @map(\"state_json\")\n}\n\nmodel WorkflowActivation {\n workflowId String @id @map(\"workflow_id\")\n isActive Boolean @default(false) @map(\"is_active\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel TriggerSetupState {\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n updatedAt String @map(\"updated_at\")\n stateJson String @map(\"state_json\")\n\n @@id([workflowId, nodeId])\n}\n\nmodel CredentialInstance {\n instanceId String @id @map(\"instance_id\")\n typeId String @map(\"type_id\")\n displayName String @map(\"display_name\")\n sourceKind String @map(\"source_kind\")\n publicConfigJson String @map(\"public_config_json\")\n secretRefJson String @map(\"secret_ref_json\")\n tagsJson String @map(\"tags_json\")\n setupStatus String @map(\"setup_status\")\n createdAt String @map(\"created_at\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialSecretMaterial {\n instanceId String @id @map(\"instance_id\")\n encryptedJson String @map(\"encrypted_json\")\n encryptionKeyId String @map(\"encryption_key_id\")\n schemaVersion Int @map(\"schema_version\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialOAuth2Material {\n instanceId String @id @map(\"instance_id\")\n encryptedJson String @map(\"encrypted_json\")\n encryptionKeyId String @map(\"encryption_key_id\")\n schemaVersion Int @map(\"schema_version\")\n providerId String @map(\"provider_id\")\n connectedEmail String? @map(\"connected_email\")\n connectedAt String? @map(\"connected_at\")\n scopesJson String @map(\"scopes_json\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialOAuth2State {\n state String @id\n instanceId String @map(\"instance_id\")\n codeVerifier String? @map(\"code_verifier\")\n providerId String? @map(\"provider_id\")\n requestedScopesJson String @map(\"requested_scopes_json\")\n createdAt String @map(\"created_at\")\n expiresAt String @map(\"expires_at\")\n\n @@index([instanceId])\n @@index([expiresAt])\n}\n\nmodel CredentialBinding {\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n slotKey String @map(\"slot_key\")\n instanceId String @map(\"instance_id\")\n updatedAt String @map(\"updated_at\")\n\n @@id([workflowId, nodeId, slotKey])\n @@index([instanceId])\n}\n\nmodel CredentialTestResult {\n testId String @id @map(\"test_id\")\n instanceId String @map(\"instance_id\")\n status String\n message String?\n detailsJson String @map(\"details_json\")\n testedAt String @map(\"tested_at\")\n expiresAt String? @map(\"expires_at\")\n\n @@index([instanceId, testedAt])\n}\n\n/// Better Auth user directory (DB sessions + optional OAuth linking)\nmodel User {\n id String @id @default(cuid())\n name String?\n email String? @unique\n emailVerified Boolean @default(false) @map(\"email_verified\")\n image String?\n passwordHash String? @map(\"password_hash\")\n /// invited | active | inactive (local directory / invite flow)\n accountStatus String @default(\"active\") @map(\"account_status\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n accounts Account[]\n sessions Session[]\n invites UserInvite[]\n\n @@map(\"codemation_auth_user\")\n}\n\nmodel UserInvite {\n id String @id @default(cuid())\n userId String @map(\"user_id\")\n tokenHash String @unique @map(\"token_hash\")\n expiresAt DateTime @map(\"expires_at\")\n createdAt DateTime @map(\"created_at\")\n revokedAt DateTime? @map(\"revoked_at\")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@map(\"codemation_auth_user_invite\")\n}\n\nmodel Account {\n id String @id @default(cuid())\n userId String @map(\"user_id\")\n /// Legacy Auth.js discriminator; Better Auth omits it on create — default keeps OAuth/credential rows valid.\n type String @default(\"oauth\")\n provider String\n providerAccountId String @map(\"provider_account_id\")\n /// Better Auth email/password (credential provider) hash; kept in sync with `User.passwordHash` for local flows.\n password String? @map(\"password\")\n refresh_token String?\n access_token String?\n expires_at Int?\n accessTokenExpiresAt DateTime? @map(\"access_token_expires_at\")\n refreshTokenExpiresAt DateTime? @map(\"refresh_token_expires_at\")\n token_type String?\n scope String?\n id_token String?\n session_state String?\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([provider, providerAccountId])\n @@map(\"codemation_auth_account\")\n}\n\nmodel Session {\n id String @id @default(cuid())\n sessionToken String @unique @map(\"session_token\")\n userId String @map(\"user_id\")\n expires DateTime\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n ipAddress String? @map(\"ip_address\")\n userAgent String? @map(\"user_agent\")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"codemation_auth_session\")\n}\n\nmodel VerificationToken {\n id String @id @default(cuid())\n identifier String\n token String\n expires DateTime\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n @@unique([identifier, token])\n @@map(\"codemation_auth_verification_token\")\n}\n"
13470
13662
  };
13471
- config.runtimeDataModel = JSON.parse("{\"models\":{\"Run\":{\"fields\":[{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"started_at\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"parentJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_json\"},{\"name\":\"executionOptionsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"execution_options_json\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"WorkflowDebuggerOverlay\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"copiedFromRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"copied_from_run_id\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"WorkflowActivation\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"is_active\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"TriggerSetupState\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"CredentialInstance\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"typeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"type_id\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"display_name\"},{\"name\":\"sourceKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"source_kind\"},{\"name\":\"publicConfigJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"public_config_json\"},{\"name\":\"secretRefJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"secret_ref_json\"},{\"name\":\"tagsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tags_json\"},{\"name\":\"setupStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"setup_status\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialSecretMaterial\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"encryptedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encrypted_json\"},{\"name\":\"encryptionKeyId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encryption_key_id\"},{\"name\":\"schemaVersion\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"schema_version\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialOAuth2Material\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"encryptedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encrypted_json\"},{\"name\":\"encryptionKeyId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encryption_key_id\"},{\"name\":\"schemaVersion\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"schema_version\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_id\"},{\"name\":\"connectedEmail\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connected_email\"},{\"name\":\"connectedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connected_at\"},{\"name\":\"scopesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"scopes_json\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialOAuth2State\":{\"fields\":[{\"name\":\"state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"codeVerifier\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"code_verifier\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_id\"},{\"name\":\"requestedScopesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"requested_scopes_json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"CredentialBinding\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"slotKey\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_key\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialTestResult\":{\"fields\":[{\"name\":\"testId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_id\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"detailsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"details_json\"},{\"name\":\"testedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tested_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"email_verified\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"password_hash\"},{\"name\":\"accountStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"account_status\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToUser\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"},{\"name\":\"invites\",\"kind\":\"object\",\"type\":\"UserInvite\",\"relationName\":\"UserToUserInvite\"}],\"dbName\":\"codemation_auth_user\"},\"UserInvite\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"tokenHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"token_hash\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"expires_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"revokedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"revoked_at\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserInvite\"}],\"dbName\":\"codemation_auth_user_invite\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerAccountId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_account_id\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"password\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accessTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"access_token_expires_at\"},{\"name\":\"refreshTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"refresh_token_expires_at\"},{\"name\":\"token_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"id_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"session_state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AccountToUser\"}],\"dbName\":\"codemation_auth_account\"},\"Session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sessionToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"session_token\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"ipAddress\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"ip_address\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_agent\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"}],\"dbName\":\"codemation_auth_session\"},\"VerificationToken\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"}],\"dbName\":\"codemation_auth_verification_token\"}},\"enums\":{},\"types\":{}}");
13663
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"Run\":{\"fields\":[{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"started_at\"},{\"name\":\"finishedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"finished_at\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"revision\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"parentJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_json\"},{\"name\":\"executionOptionsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"execution_options_json\"},{\"name\":\"controlJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"control_json\"},{\"name\":\"workflowSnapshotJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_snapshot_json\"},{\"name\":\"policySnapshotJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"policy_snapshot_json\"},{\"name\":\"engineCountersJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"engine_counters_json\"},{\"name\":\"mutableStateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"mutable_state_json\"},{\"name\":\"outputsByNodeJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"outputs_by_node_json\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"workItems\",\"kind\":\"object\",\"type\":\"RunWorkItem\",\"relationName\":\"RunToRunWorkItem\"},{\"name\":\"executionInstances\",\"kind\":\"object\",\"type\":\"ExecutionInstance\",\"relationName\":\"ExecutionInstanceToRun\"},{\"name\":\"slotProjection\",\"kind\":\"object\",\"type\":\"RunSlotProjection\",\"relationName\":\"RunToRunSlotProjection\"}],\"dbName\":null},\"RunWorkItem\":{\"fields\":[{\"name\":\"workItemId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"work_item_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"targetNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"target_node_id\"},{\"name\":\"batchId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"batch_id\"},{\"name\":\"queueName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"queue_name\"},{\"name\":\"claimToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"claim_token\"},{\"name\":\"claimedBy\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"claimed_by\"},{\"name\":\"claimedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"claimed_at\"},{\"name\":\"availableAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"available_at\"},{\"name\":\"enqueuedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"enqueued_at\"},{\"name\":\"completedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"completed_at\"},{\"name\":\"failedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"failed_at\"},{\"name\":\"sourceInstanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"source_instance_id\"},{\"name\":\"parentInstanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_instance_id\"},{\"name\":\"itemsIn\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"items_in\"},{\"name\":\"inputsByPortJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"inputs_by_port_json\"},{\"name\":\"errorJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"error_json\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToRunWorkItem\"}],\"dbName\":null},\"ExecutionInstance\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"slotNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_node_id\"},{\"name\":\"workflowNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_node_id\"},{\"name\":\"kind\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"connectionKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connection_kind\"},{\"name\":\"activationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"activation_id\"},{\"name\":\"batchId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"batch_id\"},{\"name\":\"runIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"run_index\"},{\"name\":\"parentInstanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_instance_id\"},{\"name\":\"parentRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_run_id\"},{\"name\":\"workerClaimToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"worker_claim_token\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"queuedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"queued_at\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"started_at\"},{\"name\":\"finishedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"finished_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"itemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"item_count\"},{\"name\":\"inputJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_json\"},{\"name\":\"outputJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_json\"},{\"name\":\"errorJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"error_json\"},{\"name\":\"inputItemIndicesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_item_indices_json\"},{\"name\":\"outputItemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"output_item_count\"},{\"name\":\"successfulItemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"successful_item_count\"},{\"name\":\"failedItemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"failed_item_count\"},{\"name\":\"inputStorageKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_storage_kind\"},{\"name\":\"outputStorageKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_storage_kind\"},{\"name\":\"inputBytes\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"input_bytes\"},{\"name\":\"outputBytes\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"output_bytes\"},{\"name\":\"inputPreviewJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_preview_json\"},{\"name\":\"outputPreviewJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_preview_json\"},{\"name\":\"inputPayloadRef\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_payload_ref\"},{\"name\":\"outputPayloadRef\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_payload_ref\"},{\"name\":\"inputTruncated\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"input_truncated\"},{\"name\":\"outputTruncated\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"output_truncated\"},{\"name\":\"usedPinnedOutput\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"used_pinned_output\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"ExecutionInstanceToRun\"}],\"dbName\":null},\"RunSlotProjection\":{\"fields\":[{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"revision\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"slotStatesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_states_json\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToRunSlotProjection\"}],\"dbName\":null},\"WorkflowDebuggerOverlay\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"copiedFromRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"copied_from_run_id\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"WorkflowActivation\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"is_active\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"TriggerSetupState\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"CredentialInstance\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"typeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"type_id\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"display_name\"},{\"name\":\"sourceKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"source_kind\"},{\"name\":\"publicConfigJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"public_config_json\"},{\"name\":\"secretRefJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"secret_ref_json\"},{\"name\":\"tagsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tags_json\"},{\"name\":\"setupStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"setup_status\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialSecretMaterial\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"encryptedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encrypted_json\"},{\"name\":\"encryptionKeyId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encryption_key_id\"},{\"name\":\"schemaVersion\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"schema_version\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialOAuth2Material\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"encryptedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encrypted_json\"},{\"name\":\"encryptionKeyId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encryption_key_id\"},{\"name\":\"schemaVersion\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"schema_version\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_id\"},{\"name\":\"connectedEmail\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connected_email\"},{\"name\":\"connectedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connected_at\"},{\"name\":\"scopesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"scopes_json\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialOAuth2State\":{\"fields\":[{\"name\":\"state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"codeVerifier\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"code_verifier\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_id\"},{\"name\":\"requestedScopesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"requested_scopes_json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"CredentialBinding\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"slotKey\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_key\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialTestResult\":{\"fields\":[{\"name\":\"testId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_id\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"detailsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"details_json\"},{\"name\":\"testedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tested_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"email_verified\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"password_hash\"},{\"name\":\"accountStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"account_status\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToUser\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"},{\"name\":\"invites\",\"kind\":\"object\",\"type\":\"UserInvite\",\"relationName\":\"UserToUserInvite\"}],\"dbName\":\"codemation_auth_user\"},\"UserInvite\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"tokenHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"token_hash\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"expires_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"revokedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"revoked_at\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserInvite\"}],\"dbName\":\"codemation_auth_user_invite\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerAccountId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_account_id\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"password\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accessTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"access_token_expires_at\"},{\"name\":\"refreshTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"refresh_token_expires_at\"},{\"name\":\"token_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"id_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"session_state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AccountToUser\"}],\"dbName\":\"codemation_auth_account\"},\"Session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sessionToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"session_token\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"ipAddress\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"ip_address\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_agent\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"}],\"dbName\":\"codemation_auth_session\"},\"VerificationToken\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"}],\"dbName\":\"codemation_auth_verification_token\"}},\"enums\":{},\"types\":{}}");
13472
13664
  defineDmmfProperty(exports.Prisma, config.runtimeDataModel);
13473
13665
  config.parameterizationSchema = {
13474
- strings: JSON.parse("[\"where\",\"Run.findUnique\",\"Run.findUniqueOrThrow\",\"orderBy\",\"cursor\",\"Run.findFirst\",\"Run.findFirstOrThrow\",\"Run.findMany\",\"data\",\"Run.createOne\",\"Run.createMany\",\"Run.createManyAndReturn\",\"Run.updateOne\",\"Run.updateMany\",\"Run.updateManyAndReturn\",\"create\",\"update\",\"Run.upsertOne\",\"Run.deleteOne\",\"Run.deleteMany\",\"having\",\"_count\",\"_min\",\"_max\",\"Run.groupBy\",\"Run.aggregate\",\"WorkflowDebuggerOverlay.findUnique\",\"WorkflowDebuggerOverlay.findUniqueOrThrow\",\"WorkflowDebuggerOverlay.findFirst\",\"WorkflowDebuggerOverlay.findFirstOrThrow\",\"WorkflowDebuggerOverlay.findMany\",\"WorkflowDebuggerOverlay.createOne\",\"WorkflowDebuggerOverlay.createMany\",\"WorkflowDebuggerOverlay.createManyAndReturn\",\"WorkflowDebuggerOverlay.updateOne\",\"WorkflowDebuggerOverlay.updateMany\",\"WorkflowDebuggerOverlay.updateManyAndReturn\",\"WorkflowDebuggerOverlay.upsertOne\",\"WorkflowDebuggerOverlay.deleteOne\",\"WorkflowDebuggerOverlay.deleteMany\",\"WorkflowDebuggerOverlay.groupBy\",\"WorkflowDebuggerOverlay.aggregate\",\"WorkflowActivation.findUnique\",\"WorkflowActivation.findUniqueOrThrow\",\"WorkflowActivation.findFirst\",\"WorkflowActivation.findFirstOrThrow\",\"WorkflowActivation.findMany\",\"WorkflowActivation.createOne\",\"WorkflowActivation.createMany\",\"WorkflowActivation.createManyAndReturn\",\"WorkflowActivation.updateOne\",\"WorkflowActivation.updateMany\",\"WorkflowActivation.updateManyAndReturn\",\"WorkflowActivation.upsertOne\",\"WorkflowActivation.deleteOne\",\"WorkflowActivation.deleteMany\",\"WorkflowActivation.groupBy\",\"WorkflowActivation.aggregate\",\"TriggerSetupState.findUnique\",\"TriggerSetupState.findUniqueOrThrow\",\"TriggerSetupState.findFirst\",\"TriggerSetupState.findFirstOrThrow\",\"TriggerSetupState.findMany\",\"TriggerSetupState.createOne\",\"TriggerSetupState.createMany\",\"TriggerSetupState.createManyAndReturn\",\"TriggerSetupState.updateOne\",\"TriggerSetupState.updateMany\",\"TriggerSetupState.updateManyAndReturn\",\"TriggerSetupState.upsertOne\",\"TriggerSetupState.deleteOne\",\"TriggerSetupState.deleteMany\",\"TriggerSetupState.groupBy\",\"TriggerSetupState.aggregate\",\"CredentialInstance.findUnique\",\"CredentialInstance.findUniqueOrThrow\",\"CredentialInstance.findFirst\",\"CredentialInstance.findFirstOrThrow\",\"CredentialInstance.findMany\",\"CredentialInstance.createOne\",\"CredentialInstance.createMany\",\"CredentialInstance.createManyAndReturn\",\"CredentialInstance.updateOne\",\"CredentialInstance.updateMany\",\"CredentialInstance.updateManyAndReturn\",\"CredentialInstance.upsertOne\",\"CredentialInstance.deleteOne\",\"CredentialInstance.deleteMany\",\"CredentialInstance.groupBy\",\"CredentialInstance.aggregate\",\"CredentialSecretMaterial.findUnique\",\"CredentialSecretMaterial.findUniqueOrThrow\",\"CredentialSecretMaterial.findFirst\",\"CredentialSecretMaterial.findFirstOrThrow\",\"CredentialSecretMaterial.findMany\",\"CredentialSecretMaterial.createOne\",\"CredentialSecretMaterial.createMany\",\"CredentialSecretMaterial.createManyAndReturn\",\"CredentialSecretMaterial.updateOne\",\"CredentialSecretMaterial.updateMany\",\"CredentialSecretMaterial.updateManyAndReturn\",\"CredentialSecretMaterial.upsertOne\",\"CredentialSecretMaterial.deleteOne\",\"CredentialSecretMaterial.deleteMany\",\"_avg\",\"_sum\",\"CredentialSecretMaterial.groupBy\",\"CredentialSecretMaterial.aggregate\",\"CredentialOAuth2Material.findUnique\",\"CredentialOAuth2Material.findUniqueOrThrow\",\"CredentialOAuth2Material.findFirst\",\"CredentialOAuth2Material.findFirstOrThrow\",\"CredentialOAuth2Material.findMany\",\"CredentialOAuth2Material.createOne\",\"CredentialOAuth2Material.createMany\",\"CredentialOAuth2Material.createManyAndReturn\",\"CredentialOAuth2Material.updateOne\",\"CredentialOAuth2Material.updateMany\",\"CredentialOAuth2Material.updateManyAndReturn\",\"CredentialOAuth2Material.upsertOne\",\"CredentialOAuth2Material.deleteOne\",\"CredentialOAuth2Material.deleteMany\",\"CredentialOAuth2Material.groupBy\",\"CredentialOAuth2Material.aggregate\",\"CredentialOAuth2State.findUnique\",\"CredentialOAuth2State.findUniqueOrThrow\",\"CredentialOAuth2State.findFirst\",\"CredentialOAuth2State.findFirstOrThrow\",\"CredentialOAuth2State.findMany\",\"CredentialOAuth2State.createOne\",\"CredentialOAuth2State.createMany\",\"CredentialOAuth2State.createManyAndReturn\",\"CredentialOAuth2State.updateOne\",\"CredentialOAuth2State.updateMany\",\"CredentialOAuth2State.updateManyAndReturn\",\"CredentialOAuth2State.upsertOne\",\"CredentialOAuth2State.deleteOne\",\"CredentialOAuth2State.deleteMany\",\"CredentialOAuth2State.groupBy\",\"CredentialOAuth2State.aggregate\",\"CredentialBinding.findUnique\",\"CredentialBinding.findUniqueOrThrow\",\"CredentialBinding.findFirst\",\"CredentialBinding.findFirstOrThrow\",\"CredentialBinding.findMany\",\"CredentialBinding.createOne\",\"CredentialBinding.createMany\",\"CredentialBinding.createManyAndReturn\",\"CredentialBinding.updateOne\",\"CredentialBinding.updateMany\",\"CredentialBinding.updateManyAndReturn\",\"CredentialBinding.upsertOne\",\"CredentialBinding.deleteOne\",\"CredentialBinding.deleteMany\",\"CredentialBinding.groupBy\",\"CredentialBinding.aggregate\",\"CredentialTestResult.findUnique\",\"CredentialTestResult.findUniqueOrThrow\",\"CredentialTestResult.findFirst\",\"CredentialTestResult.findFirstOrThrow\",\"CredentialTestResult.findMany\",\"CredentialTestResult.createOne\",\"CredentialTestResult.createMany\",\"CredentialTestResult.createManyAndReturn\",\"CredentialTestResult.updateOne\",\"CredentialTestResult.updateMany\",\"CredentialTestResult.updateManyAndReturn\",\"CredentialTestResult.upsertOne\",\"CredentialTestResult.deleteOne\",\"CredentialTestResult.deleteMany\",\"CredentialTestResult.groupBy\",\"CredentialTestResult.aggregate\",\"user\",\"accounts\",\"sessions\",\"invites\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"User.groupBy\",\"User.aggregate\",\"UserInvite.findUnique\",\"UserInvite.findUniqueOrThrow\",\"UserInvite.findFirst\",\"UserInvite.findFirstOrThrow\",\"UserInvite.findMany\",\"UserInvite.createOne\",\"UserInvite.createMany\",\"UserInvite.createManyAndReturn\",\"UserInvite.updateOne\",\"UserInvite.updateMany\",\"UserInvite.updateManyAndReturn\",\"UserInvite.upsertOne\",\"UserInvite.deleteOne\",\"UserInvite.deleteMany\",\"UserInvite.groupBy\",\"UserInvite.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"Account.groupBy\",\"Account.aggregate\",\"Session.findUnique\",\"Session.findUniqueOrThrow\",\"Session.findFirst\",\"Session.findFirstOrThrow\",\"Session.findMany\",\"Session.createOne\",\"Session.createMany\",\"Session.createManyAndReturn\",\"Session.updateOne\",\"Session.updateMany\",\"Session.updateManyAndReturn\",\"Session.upsertOne\",\"Session.deleteOne\",\"Session.deleteMany\",\"Session.groupBy\",\"Session.aggregate\",\"VerificationToken.findUnique\",\"VerificationToken.findUniqueOrThrow\",\"VerificationToken.findFirst\",\"VerificationToken.findFirstOrThrow\",\"VerificationToken.findMany\",\"VerificationToken.createOne\",\"VerificationToken.createMany\",\"VerificationToken.createManyAndReturn\",\"VerificationToken.updateOne\",\"VerificationToken.updateMany\",\"VerificationToken.updateManyAndReturn\",\"VerificationToken.upsertOne\",\"VerificationToken.deleteOne\",\"VerificationToken.deleteMany\",\"VerificationToken.groupBy\",\"VerificationToken.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"identifier\",\"token\",\"expires\",\"createdAt\",\"updatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"identifier_token\",\"sessionToken\",\"userId\",\"ipAddress\",\"userAgent\",\"type\",\"provider\",\"providerAccountId\",\"password\",\"refresh_token\",\"access_token\",\"expires_at\",\"accessTokenExpiresAt\",\"refreshTokenExpiresAt\",\"token_type\",\"scope\",\"id_token\",\"session_state\",\"tokenHash\",\"expiresAt\",\"revokedAt\",\"name\",\"email\",\"emailVerified\",\"image\",\"passwordHash\",\"accountStatus\",\"every\",\"some\",\"none\",\"provider_providerAccountId\",\"testId\",\"instanceId\",\"status\",\"message\",\"detailsJson\",\"testedAt\",\"workflowId\",\"nodeId\",\"slotKey\",\"workflowId_nodeId_slotKey\",\"state\",\"codeVerifier\",\"providerId\",\"requestedScopesJson\",\"encryptedJson\",\"encryptionKeyId\",\"schemaVersion\",\"connectedEmail\",\"connectedAt\",\"scopesJson\",\"typeId\",\"displayName\",\"sourceKind\",\"publicConfigJson\",\"secretRefJson\",\"tagsJson\",\"setupStatus\",\"stateJson\",\"workflowId_nodeId\",\"isActive\",\"copiedFromRunId\",\"runId\",\"startedAt\",\"parentJson\",\"executionOptionsJson\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
13475
- graph: "wgSAAfABC4ACAADBAwAwgQIAAAQAEIICAADBAwAwiAIBAIcDACG1AgEAhwMAIbkCAQCHAwAhzgIBAIcDACHSAgEAAAAB0wIBAIcDACHUAgEAnAMAIdUCAQCcAwAhAQAAAAEAIAEAAAABACALgAIAAMEDADCBAgAABAAQggIAAMEDADCIAgEAhwMAIbUCAQCHAwAhuQIBAIcDACHOAgEAhwMAIdICAQCHAwAh0wIBAIcDACHUAgEAnAMAIdUCAQCcAwAhAtQCAADHAwAg1QIAAMcDACADAAAABAAgAwAABQAwBAAAAQAgAwAAAAQAIAMAAAUAMAQAAAEAIAMAAAAEACADAAAFADAEAAABACAIiAIBAAAAAbUCAQAAAAG5AgEAAAABzgIBAAAAAdICAQAAAAHTAgEAAAAB1AIBAAAAAdUCAQAAAAEBCAAACQAgCIgCAQAAAAG1AgEAAAABuQIBAAAAAc4CAQAAAAHSAgEAAAAB0wIBAAAAAdQCAQAAAAHVAgEAAAABAQgAAAsAMAEIAAALADAIiAIBAMUDACG1AgEAxQMAIbkCAQDFAwAhzgIBAMUDACHSAgEAxQMAIdMCAQDFAwAh1AIBAMsDACHVAgEAywMAIQIAAAABACAIAAAOACAIiAIBAMUDACG1AgEAxQMAIbkCAQDFAwAhzgIBAMUDACHSAgEAxQMAIdMCAQDFAwAh1AIBAMsDACHVAgEAywMAIQIAAAAEACAIAAAQACACAAAABAAgCAAAEAAgAwAAAAEAIA8AAAkAIBAAAA4AIAEAAAABACABAAAABAAgBRUAAK4EACAWAACwBAAgFwAArwQAINQCAADHAwAg1QIAAMcDACALgAIAAMADADCBAgAAFwAQggIAAMADADCIAgEA_wIAIbUCAQD_AgAhuQIBAP8CACHOAgEA_wIAIdICAQD_AgAh0wIBAP8CACHUAgEAiwMAIdUCAQCLAwAhAwAAAAQAIAMAABYAMBQAABcAIAMAAAAEACADAAAFADAEAAABACAHgAIAAL8DADCBAgAAHQAQggIAAL8DADCIAgEAhwMAIbkCAQAAAAHOAgEAhwMAIdECAQCcAwAhAQAAABoAIAEAAAAaACAHgAIAAL8DADCBAgAAHQAQggIAAL8DADCIAgEAhwMAIbkCAQCHAwAhzgIBAIcDACHRAgEAnAMAIQHRAgAAxwMAIAMAAAAdACADAAAeADAEAAAaACADAAAAHQAgAwAAHgAwBAAAGgAgAwAAAB0AIAMAAB4AMAQAABoAIASIAgEAAAABuQIBAAAAAc4CAQAAAAHRAgEAAAABAQgAACIAIASIAgEAAAABuQIBAAAAAc4CAQAAAAHRAgEAAAABAQgAACQAMAEIAAAkADAEiAIBAMUDACG5AgEAxQMAIc4CAQDFAwAh0QIBAMsDACECAAAAGgAgCAAAJwAgBIgCAQDFAwAhuQIBAMUDACHOAgEAxQMAIdECAQDLAwAhAgAAAB0AIAgAACkAIAIAAAAdACAIAAApACADAAAAGgAgDwAAIgAgEAAAJwAgAQAAABoAIAEAAAAdACAEFQAAqwQAIBYAAK0EACAXAACsBAAg0QIAAMcDACAHgAIAAL4DADCBAgAAMAAQggIAAL4DADCIAgEA_wIAIbkCAQD_AgAhzgIBAP8CACHRAgEAiwMAIQMAAAAdACADAAAvADAUAAAwACADAAAAHQAgAwAAHgAwBAAAGgAgBoACAAC9AwAwgQIAADYAEIICAAC9AwAwiAIBAIcDACG5AgEAAAAB0AIgAJ0DACEBAAAAMwAgAQAAADMAIAaAAgAAvQMAMIECAAA2ABCCAgAAvQMAMIgCAQCHAwAhuQIBAIcDACHQAiAAnQMAIQADAAAANgAgAwAANwAwBAAAMwAgAwAAADYAIAMAADcAMAQAADMAIAMAAAA2ACADAAA3ADAEAAAzACADiAIBAAAAAbkCAQAAAAHQAiAAAAABAQgAADsAIAOIAgEAAAABuQIBAAAAAdACIAAAAAEBCAAAPQAwAQgAAD0AMAOIAgEAxQMAIbkCAQDFAwAh0AIgAN8DACECAAAAMwAgCAAAQAAgA4gCAQDFAwAhuQIBAMUDACHQAiAA3wMAIQIAAAA2ACAIAABCACACAAAANgAgCAAAQgAgAwAAADMAIA8AADsAIBAAAEAAIAEAAAAzACABAAAANgAgAxUAAKgEACAWAACqBAAgFwAAqQQAIAaAAgAAvAMAMIECAABJABCCAgAAvAMAMIgCAQD_AgAhuQIBAP8CACHQAiAAmAMAIQMAAAA2ACADAABIADAUAABJACADAAAANgAgAwAANwAwBAAAMwAgCIACAAC6AwAwgQIAAE8AEIICAAC6AwAwiAIBAIcDACG5AgEAhwMAIboCAQCHAwAhzgIBAIcDACHPAgAAuwMAIAEAAABMACABAAAATAAgB4ACAAC6AwAwgQIAAE8AEIICAAC6AwAwiAIBAIcDACG5AgEAhwMAIboCAQCHAwAhzgIBAIcDACEAAwAAAE8AIAMAAFAAMAQAAEwAIAMAAABPACADAABQADAEAABMACADAAAATwAgAwAAUAAwBAAATAAgBIgCAQAAAAG5AgEAAAABugIBAAAAAc4CAQAAAAEBCAAAVAAgBIgCAQAAAAG5AgEAAAABugIBAAAAAc4CAQAAAAEBCAAAVgAwAQgAAFYAMASIAgEAxQMAIbkCAQDFAwAhugIBAMUDACHOAgEAxQMAIQIAAABMACAIAABZACAEiAIBAMUDACG5AgEAxQMAIboCAQDFAwAhzgIBAMUDACECAAAATwAgCAAAWwAgAgAAAE8AIAgAAFsAIAMAAABMACAPAABUACAQAABZACABAAAATAAgAQAAAE8AIAMVAAClBAAgFgAApwQAIBcAAKYEACAHgAIAALkDADCBAgAAYgAQggIAALkDADCIAgEA_wIAIbkCAQD_AgAhugIBAP8CACHOAgEA_wIAIQMAAABPACADAABhADAUAABiACADAAAATwAgAwAAUAAwBAAATAAgDYACAAC4AwAwgQIAAGgAEIICAAC4AwAwhwIBAIcDACGIAgEAhwMAIbQCAQAAAAHHAgEAhwMAIcgCAQCHAwAhyQIBAIcDACHKAgEAhwMAIcsCAQCHAwAhzAIBAIcDACHNAgEAhwMAIQEAAABlACABAAAAZQAgDYACAAC4AwAwgQIAAGgAEIICAAC4AwAwhwIBAIcDACGIAgEAhwMAIbQCAQCHAwAhxwIBAIcDACHIAgEAhwMAIckCAQCHAwAhygIBAIcDACHLAgEAhwMAIcwCAQCHAwAhzQIBAIcDACEAAwAAAGgAIAMAAGkAMAQAAGUAIAMAAABoACADAABpADAEAABlACADAAAAaAAgAwAAaQAwBAAAZQAgCocCAQAAAAGIAgEAAAABtAIBAAAAAccCAQAAAAHIAgEAAAAByQIBAAAAAcoCAQAAAAHLAgEAAAABzAIBAAAAAc0CAQAAAAEBCAAAbQAgCocCAQAAAAGIAgEAAAABtAIBAAAAAccCAQAAAAHIAgEAAAAByQIBAAAAAcoCAQAAAAHLAgEAAAABzAIBAAAAAc0CAQAAAAEBCAAAbwAwAQgAAG8AMAqHAgEAxQMAIYgCAQDFAwAhtAIBAMUDACHHAgEAxQMAIcgCAQDFAwAhyQIBAMUDACHKAgEAxQMAIcsCAQDFAwAhzAIBAMUDACHNAgEAxQMAIQIAAABlACAIAAByACAKhwIBAMUDACGIAgEAxQMAIbQCAQDFAwAhxwIBAMUDACHIAgEAxQMAIckCAQDFAwAhygIBAMUDACHLAgEAxQMAIcwCAQDFAwAhzQIBAMUDACECAAAAaAAgCAAAdAAgAgAAAGgAIAgAAHQAIAMAAABlACAPAABtACAQAAByACABAAAAZQAgAQAAAGgAIAMVAACiBAAgFgAApAQAIBcAAKMEACANgAIAALcDADCBAgAAewAQggIAALcDADCHAgEA_wIAIYgCAQD_AgAhtAIBAP8CACHHAgEA_wIAIcgCAQD_AgAhyQIBAP8CACHKAgEA_wIAIcsCAQD_AgAhzAIBAP8CACHNAgEA_wIAIQMAAABoACADAAB6ADAUAAB7ACADAAAAaAAgAwAAaQAwBAAAZQAgCIACAAC2AwAwgQIAAIEBABCCAgAAtgMAMIgCAQCHAwAhtAIBAAAAAcECAQCHAwAhwgIBAIcDACHDAgIAtAMAIQEAAAB-ACABAAAAfgAgCIACAAC2AwAwgQIAAIEBABCCAgAAtgMAMIgCAQCHAwAhtAIBAIcDACHBAgEAhwMAIcICAQCHAwAhwwICALQDACEAAwAAAIEBACADAACCAQAwBAAAfgAgAwAAAIEBACADAACCAQAwBAAAfgAgAwAAAIEBACADAACCAQAwBAAAfgAgBYgCAQAAAAG0AgEAAAABwQIBAAAAAcICAQAAAAHDAgIAAAABAQgAAIYBACAFiAIBAAAAAbQCAQAAAAHBAgEAAAABwgIBAAAAAcMCAgAAAAEBCAAAiAEAMAEIAACIAQAwBYgCAQDFAwAhtAIBAMUDACHBAgEAxQMAIcICAQDFAwAhwwICAJwEACECAAAAfgAgCAAAiwEAIAWIAgEAxQMAIbQCAQDFAwAhwQIBAMUDACHCAgEAxQMAIcMCAgCcBAAhAgAAAIEBACAIAACNAQAgAgAAAIEBACAIAACNAQAgAwAAAH4AIA8AAIYBACAQAACLAQAgAQAAAH4AIAEAAACBAQAgBRUAAJ0EACAWAACgBAAgFwAAnwQAIGgAAJ4EACBpAAChBAAgCIACAAC1AwAwgQIAAJQBABCCAgAAtQMAMIgCAQD_AgAhtAIBAP8CACHBAgEA_wIAIcICAQD_AgAhwwICALADACEDAAAAgQEAIAMAAJMBADAUAACUAQAgAwAAAIEBACADAACCAQAwBAAAfgAgDIACAACzAwAwgQIAAJoBABCCAgAAswMAMIgCAQCHAwAhtAIBAAAAAb8CAQCHAwAhwQIBAIcDACHCAgEAhwMAIcMCAgC0AwAhxAIBAJwDACHFAgEAnAMAIcYCAQCHAwAhAQAAAJcBACABAAAAlwEAIAyAAgAAswMAMIECAACaAQAQggIAALMDADCIAgEAhwMAIbQCAQCHAwAhvwIBAIcDACHBAgEAhwMAIcICAQCHAwAhwwICALQDACHEAgEAnAMAIcUCAQCcAwAhxgIBAIcDACECxAIAAMcDACDFAgAAxwMAIAMAAACaAQAgAwAAmwEAMAQAAJcBACADAAAAmgEAIAMAAJsBADAEAACXAQAgAwAAAJoBACADAACbAQAwBAAAlwEAIAmIAgEAAAABtAIBAAAAAb8CAQAAAAHBAgEAAAABwgIBAAAAAcMCAgAAAAHEAgEAAAABxQIBAAAAAcYCAQAAAAEBCAAAnwEAIAmIAgEAAAABtAIBAAAAAb8CAQAAAAHBAgEAAAABwgIBAAAAAcMCAgAAAAHEAgEAAAABxQIBAAAAAcYCAQAAAAEBCAAAoQEAMAEIAAChAQAwCYgCAQDFAwAhtAIBAMUDACG_AgEAxQMAIcECAQDFAwAhwgIBAMUDACHDAgIAnAQAIcQCAQDLAwAhxQIBAMsDACHGAgEAxQMAIQIAAACXAQAgCAAApAEAIAmIAgEAxQMAIbQCAQDFAwAhvwIBAMUDACHBAgEAxQMAIcICAQDFAwAhwwICAJwEACHEAgEAywMAIcUCAQDLAwAhxgIBAMUDACECAAAAmgEAIAgAAKYBACACAAAAmgEAIAgAAKYBACADAAAAlwEAIA8AAJ8BACAQAACkAQAgAQAAAJcBACABAAAAmgEAIAcVAACXBAAgFgAAmgQAIBcAAJkEACBoAACYBAAgaQAAmwQAIMQCAADHAwAgxQIAAMcDACAMgAIAAK8DADCBAgAArQEAEIICAACvAwAwiAIBAP8CACG0AgEA_wIAIb8CAQD_AgAhwQIBAP8CACHCAgEA_wIAIcMCAgCwAwAhxAIBAIsDACHFAgEAiwMAIcYCAQD_AgAhAwAAAJoBACADAACsAQAwFAAArQEAIAMAAACaAQAgAwAAmwEAMAQAAJcBACAKgAIAAK4DADCBAgAAswEAEIICAACuAwAwhwIBAIcDACGnAgEAhwMAIbQCAQCHAwAhvQIBAAAAAb4CAQCcAwAhvwIBAJwDACHAAgEAhwMAIQEAAACwAQAgAQAAALABACAKgAIAAK4DADCBAgAAswEAEIICAACuAwAwhwIBAIcDACGnAgEAhwMAIbQCAQCHAwAhvQIBAIcDACG-AgEAnAMAIb8CAQCcAwAhwAIBAIcDACECvgIAAMcDACC_AgAAxwMAIAMAAACzAQAgAwAAtAEAMAQAALABACADAAAAswEAIAMAALQBADAEAACwAQAgAwAAALMBACADAAC0AQAwBAAAsAEAIAeHAgEAAAABpwIBAAAAAbQCAQAAAAG9AgEAAAABvgIBAAAAAb8CAQAAAAHAAgEAAAABAQgAALgBACAHhwIBAAAAAacCAQAAAAG0AgEAAAABvQIBAAAAAb4CAQAAAAG_AgEAAAABwAIBAAAAAQEIAAC6AQAwAQgAALoBADAHhwIBAMUDACGnAgEAxQMAIbQCAQDFAwAhvQIBAMUDACG-AgEAywMAIb8CAQDLAwAhwAIBAMUDACECAAAAsAEAIAgAAL0BACAHhwIBAMUDACGnAgEAxQMAIbQCAQDFAwAhvQIBAMUDACG-AgEAywMAIb8CAQDLAwAhwAIBAMUDACECAAAAswEAIAgAAL8BACACAAAAswEAIAgAAL8BACADAAAAsAEAIA8AALgBACAQAAC9AQAgAQAAALABACABAAAAswEAIAUVAACUBAAgFgAAlgQAIBcAAJUEACC-AgAAxwMAIL8CAADHAwAgCoACAACtAwAwgQIAAMYBABCCAgAArQMAMIcCAQD_AgAhpwIBAP8CACG0AgEA_wIAIb0CAQD_AgAhvgIBAIsDACG_AgEAiwMAIcACAQD_AgAhAwAAALMBACADAADFAQAwFAAAxgEAIAMAAACzAQAgAwAAtAEAMAQAALABACAJgAIAAKsDADCBAgAAzAEAEIICAACrAwAwiAIBAIcDACG0AgEAhwMAIbkCAQCHAwAhugIBAIcDACG7AgEAhwMAIbwCAACsAwAgAQAAAMkBACABAAAAyQEAIAiAAgAAqwMAMIECAADMAQAQggIAAKsDADCIAgEAhwMAIbQCAQCHAwAhuQIBAIcDACG6AgEAhwMAIbsCAQCHAwAhAAMAAADMAQAgAwAAzQEAMAQAAMkBACADAAAAzAEAIAMAAM0BADAEAADJAQAgAwAAAMwBACADAADNAQAwBAAAyQEAIAWIAgEAAAABtAIBAAAAAbkCAQAAAAG6AgEAAAABuwIBAAAAAQEIAADRAQAgBYgCAQAAAAG0AgEAAAABuQIBAAAAAboCAQAAAAG7AgEAAAABAQgAANMBADABCAAA0wEAMAWIAgEAxQMAIbQCAQDFAwAhuQIBAMUDACG6AgEAxQMAIbsCAQDFAwAhAgAAAMkBACAIAADWAQAgBYgCAQDFAwAhtAIBAMUDACG5AgEAxQMAIboCAQDFAwAhuwIBAMUDACECAAAAzAEAIAgAANgBACACAAAAzAEAIAgAANgBACADAAAAyQEAIA8AANEBACAQAADWAQAgAQAAAMkBACABAAAAzAEAIAMVAACRBAAgFgAAkwQAIBcAAJIEACAIgAIAAKoDADCBAgAA3wEAEIICAACqAwAwiAIBAP8CACG0AgEA_wIAIbkCAQD_AgAhugIBAP8CACG7AgEA_wIAIQMAAADMAQAgAwAA3gEAMBQAAN8BACADAAAAzAEAIAMAAM0BADAEAADJAQAgCoACAACpAwAwgQIAAOUBABCCAgAAqQMAMKcCAQCcAwAhswIBAAAAAbQCAQCHAwAhtQIBAIcDACG2AgEAnAMAIbcCAQCHAwAhuAIBAIcDACEBAAAA4gEAIAEAAADiAQAgCoACAACpAwAwgQIAAOUBABCCAgAAqQMAMKcCAQCcAwAhswIBAIcDACG0AgEAhwMAIbUCAQCHAwAhtgIBAJwDACG3AgEAhwMAIbgCAQCHAwAhAqcCAADHAwAgtgIAAMcDACADAAAA5QEAIAMAAOYBADAEAADiAQAgAwAAAOUBACADAADmAQAwBAAA4gEAIAMAAADlAQAgAwAA5gEAMAQAAOIBACAHpwIBAAAAAbMCAQAAAAG0AgEAAAABtQIBAAAAAbYCAQAAAAG3AgEAAAABuAIBAAAAAQEIAADqAQAgB6cCAQAAAAGzAgEAAAABtAIBAAAAAbUCAQAAAAG2AgEAAAABtwIBAAAAAbgCAQAAAAEBCAAA7AEAMAEIAADsAQAwB6cCAQDLAwAhswIBAMUDACG0AgEAxQMAIbUCAQDFAwAhtgIBAMsDACG3AgEAxQMAIbgCAQDFAwAhAgAAAOIBACAIAADvAQAgB6cCAQDLAwAhswIBAMUDACG0AgEAxQMAIbUCAQDFAwAhtgIBAMsDACG3AgEAxQMAIbgCAQDFAwAhAgAAAOUBACAIAADxAQAgAgAAAOUBACAIAADxAQAgAwAAAOIBACAPAADqAQAgEAAA7wEAIAEAAADiAQAgAQAAAOUBACAFFQAAjgQAIBYAAJAEACAXAACPBAAgpwIAAMcDACC2AgAAxwMAIAqAAgAAqAMAMIECAAD4AQAQggIAAKgDADCnAgEAiwMAIbMCAQD_AgAhtAIBAP8CACG1AgEA_wIAIbYCAQCLAwAhtwIBAP8CACG4AgEA_wIAIQMAAADlAQAgAwAA9wEAMBQAAPgBACADAAAA5QEAIAMAAOYBADAEAADiAQAgD60BAACeAwAgrgEAAJ8DACCvAQAAoAMAIIACAACbAwAwgQIAAI0CABCCAgAAmwMAMIMCAQAAAAGHAkAAiAMAIYgCQACIAwAhqQIBAJwDACGqAgEAAAABqwIgAJ0DACGsAgEAnAMAIa0CAQCcAwAhrgIBAIcDACEBAAAA-wEAIBWsAQAAowMAIIACAACmAwAwgQIAAP0BABCCAgAApgMAMIMCAQCHAwAhhwJAAIgDACGIAkAAiAMAIZYCAQCHAwAhmQIBAIcDACGaAgEAhwMAIZsCAQCHAwAhnAIBAJwDACGdAgEAnAMAIZ4CAQCcAwAhnwICAKcDACGgAkAAogMAIaECQACiAwAhogIBAJwDACGjAgEAnAMAIaQCAQCcAwAhpQIBAJwDACELrAEAAI0EACCcAgAAxwMAIJ0CAADHAwAgngIAAMcDACCfAgAAxwMAIKACAADHAwAgoQIAAMcDACCiAgAAxwMAIKMCAADHAwAgpAIAAMcDACClAgAAxwMAIBasAQAAowMAIIACAACmAwAwgQIAAP0BABCCAgAApgMAMIMCAQAAAAGHAkAAiAMAIYgCQACIAwAhlgIBAIcDACGZAgEAhwMAIZoCAQCHAwAhmwIBAIcDACGcAgEAnAMAIZ0CAQCcAwAhngIBAJwDACGfAgIApwMAIaACQACiAwAhoQJAAKIDACGiAgEAnAMAIaMCAQCcAwAhpAIBAJwDACGlAgEAnAMAIbICAAClAwAgAwAAAP0BACADAAD-AQAwBAAA_wEAIAysAQAAowMAIIACAACkAwAwgQIAAIECABCCAgAApAMAMIMCAQCHAwAhhgJAAIgDACGHAkAAiAMAIYgCQACIAwAhlQIBAIcDACGWAgEAhwMAIZcCAQCcAwAhmAIBAJwDACEDrAEAAI0EACCXAgAAxwMAIJgCAADHAwAgDKwBAACjAwAggAIAAKQDADCBAgAAgQIAEIICAACkAwAwgwIBAAAAAYYCQACIAwAhhwJAAIgDACGIAkAAiAMAIZUCAQAAAAGWAgEAhwMAIZcCAQCcAwAhmAIBAJwDACEDAAAAgQIAIAMAAIICADAEAACDAgAgCqwBAACjAwAggAIAAKEDADCBAgAAhQIAEIICAAChAwAwgwIBAIcDACGHAkAAiAMAIZYCAQCHAwAhpgIBAIcDACGnAkAAiAMAIagCQACiAwAhAqwBAACNBAAgqAIAAMcDACAKrAEAAKMDACCAAgAAoQMAMIECAACFAgAQggIAAKEDADCDAgEAAAABhwJAAIgDACGWAgEAhwMAIaYCAQAAAAGnAkAAiAMAIagCQACiAwAhAwAAAIUCACADAACGAgAwBAAAhwIAIAEAAAD9AQAgAQAAAIECACABAAAAhQIAIAEAAAD7AQAgD60BAACeAwAgrgEAAJ8DACCvAQAAoAMAIIACAACbAwAwgQIAAI0CABCCAgAAmwMAMIMCAQCHAwAhhwJAAIgDACGIAkAAiAMAIakCAQCcAwAhqgIBAJwDACGrAiAAnQMAIawCAQCcAwAhrQIBAJwDACGuAgEAhwMAIQetAQAAigQAIK4BAACLBAAgrwEAAIwEACCpAgAAxwMAIKoCAADHAwAgrAIAAMcDACCtAgAAxwMAIAMAAACNAgAgAwAAjgIAMAQAAPsBACADAAAAjQIAIAMAAI4CADAEAAD7AQAgAwAAAI0CACADAACOAgAwBAAA-wEAIAytAQAAhwQAIK4BAACIBAAgrwEAAIkEACCDAgEAAAABhwJAAAAAAYgCQAAAAAGpAgEAAAABqgIBAAAAAasCIAAAAAGsAgEAAAABrQIBAAAAAa4CAQAAAAEBCAAAkgIAIAmDAgEAAAABhwJAAAAAAYgCQAAAAAGpAgEAAAABqgIBAAAAAasCIAAAAAGsAgEAAAABrQIBAAAAAa4CAQAAAAEBCAAAlAIAMAEIAACUAgAwDK0BAADgAwAgrgEAAOEDACCvAQAA4gMAIIMCAQDFAwAhhwJAAMYDACGIAkAAxgMAIakCAQDLAwAhqgIBAMsDACGrAiAA3wMAIawCAQDLAwAhrQIBAMsDACGuAgEAxQMAIQIAAAD7AQAgCAAAlwIAIAmDAgEAxQMAIYcCQADGAwAhiAJAAMYDACGpAgEAywMAIaoCAQDLAwAhqwIgAN8DACGsAgEAywMAIa0CAQDLAwAhrgIBAMUDACECAAAAjQIAIAgAAJkCACACAAAAjQIAIAgAAJkCACADAAAA-wEAIA8AAJICACAQAACXAgAgAQAAAPsBACABAAAAjQIAIAcVAADcAwAgFgAA3gMAIBcAAN0DACCpAgAAxwMAIKoCAADHAwAgrAIAAMcDACCtAgAAxwMAIAyAAgAAlwMAMIECAACgAgAQggIAAJcDADCDAgEA_wIAIYcCQACAAwAhiAJAAIADACGpAgEAiwMAIaoCAQCLAwAhqwIgAJgDACGsAgEAiwMAIa0CAQCLAwAhrgIBAP8CACEDAAAAjQIAIAMAAJ8CADAUAACgAgAgAwAAAI0CACADAACOAgAwBAAA-wEAIAEAAACHAgAgAQAAAIcCACADAAAAhQIAIAMAAIYCADAEAACHAgAgAwAAAIUCACADAACGAgAwBAAAhwIAIAMAAACFAgAgAwAAhgIAMAQAAIcCACAHrAEAANsDACCDAgEAAAABhwJAAAAAAZYCAQAAAAGmAgEAAAABpwJAAAAAAagCQAAAAAEBCAAAqAIAIAaDAgEAAAABhwJAAAAAAZYCAQAAAAGmAgEAAAABpwJAAAAAAagCQAAAAAEBCAAAqgIAMAEIAACqAgAwB6wBAADaAwAggwIBAMUDACGHAkAAxgMAIZYCAQDFAwAhpgIBAMUDACGnAkAAxgMAIagCQADUAwAhAgAAAIcCACAIAACtAgAgBoMCAQDFAwAhhwJAAMYDACGWAgEAxQMAIaYCAQDFAwAhpwJAAMYDACGoAkAA1AMAIQIAAACFAgAgCAAArwIAIAIAAACFAgAgCAAArwIAIAMAAACHAgAgDwAAqAIAIBAAAK0CACABAAAAhwIAIAEAAACFAgAgBBUAANcDACAWAADZAwAgFwAA2AMAIKgCAADHAwAgCYACAACWAwAwgQIAALYCABCCAgAAlgMAMIMCAQD_AgAhhwJAAIADACGWAgEA_wIAIaYCAQD_AgAhpwJAAIADACGoAkAAkQMAIQMAAACFAgAgAwAAtQIAMBQAALYCACADAAAAhQIAIAMAAIYCADAEAACHAgAgAQAAAP8BACABAAAA_wEAIAMAAAD9AQAgAwAA_gEAMAQAAP8BACADAAAA_QEAIAMAAP4BADAEAAD_AQAgAwAAAP0BACADAAD-AQAwBAAA_wEAIBKsAQAA1gMAIIMCAQAAAAGHAkAAAAABiAJAAAAAAZYCAQAAAAGZAgEAAAABmgIBAAAAAZsCAQAAAAGcAgEAAAABnQIBAAAAAZ4CAQAAAAGfAgIAAAABoAJAAAAAAaECQAAAAAGiAgEAAAABowIBAAAAAaQCAQAAAAGlAgEAAAABAQgAAL4CACARgwIBAAAAAYcCQAAAAAGIAkAAAAABlgIBAAAAAZkCAQAAAAGaAgEAAAABmwIBAAAAAZwCAQAAAAGdAgEAAAABngIBAAAAAZ8CAgAAAAGgAkAAAAABoQJAAAAAAaICAQAAAAGjAgEAAAABpAIBAAAAAaUCAQAAAAEBCAAAwAIAMAEIAADAAgAwEqwBAADVAwAggwIBAMUDACGHAkAAxgMAIYgCQADGAwAhlgIBAMUDACGZAgEAxQMAIZoCAQDFAwAhmwIBAMUDACGcAgEAywMAIZ0CAQDLAwAhngIBAMsDACGfAgIA0wMAIaACQADUAwAhoQJAANQDACGiAgEAywMAIaMCAQDLAwAhpAIBAMsDACGlAgEAywMAIQIAAAD_AQAgCAAAwwIAIBGDAgEAxQMAIYcCQADGAwAhiAJAAMYDACGWAgEAxQMAIZkCAQDFAwAhmgIBAMUDACGbAgEAxQMAIZwCAQDLAwAhnQIBAMsDACGeAgEAywMAIZ8CAgDTAwAhoAJAANQDACGhAkAA1AMAIaICAQDLAwAhowIBAMsDACGkAgEAywMAIaUCAQDLAwAhAgAAAP0BACAIAADFAgAgAgAAAP0BACAIAADFAgAgAwAAAP8BACAPAAC-AgAgEAAAwwIAIAEAAAD_AQAgAQAAAP0BACAPFQAAzgMAIBYAANEDACAXAADQAwAgaAAAzwMAIGkAANIDACCcAgAAxwMAIJ0CAADHAwAgngIAAMcDACCfAgAAxwMAIKACAADHAwAgoQIAAMcDACCiAgAAxwMAIKMCAADHAwAgpAIAAMcDACClAgAAxwMAIBSAAgAAjwMAMIECAADMAgAQggIAAI8DADCDAgEA_wIAIYcCQACAAwAhiAJAAIADACGWAgEA_wIAIZkCAQD_AgAhmgIBAP8CACGbAgEA_wIAIZwCAQCLAwAhnQIBAIsDACGeAgEAiwMAIZ8CAgCQAwAhoAJAAJEDACGhAkAAkQMAIaICAQCLAwAhowIBAIsDACGkAgEAiwMAIaUCAQCLAwAhAwAAAP0BACADAADLAgAwFAAAzAIAIAMAAAD9AQAgAwAA_gEAMAQAAP8BACABAAAAgwIAIAEAAACDAgAgAwAAAIECACADAACCAgAwBAAAgwIAIAMAAACBAgAgAwAAggIAMAQAAIMCACADAAAAgQIAIAMAAIICADAEAACDAgAgCawBAADNAwAggwIBAAAAAYYCQAAAAAGHAkAAAAABiAJAAAAAAZUCAQAAAAGWAgEAAAABlwIBAAAAAZgCAQAAAAEBCAAA1AIAIAiDAgEAAAABhgJAAAAAAYcCQAAAAAGIAkAAAAABlQIBAAAAAZYCAQAAAAGXAgEAAAABmAIBAAAAAQEIAADWAgAwAQgAANYCADAJrAEAAMwDACCDAgEAxQMAIYYCQADGAwAhhwJAAMYDACGIAkAAxgMAIZUCAQDFAwAhlgIBAMUDACGXAgEAywMAIZgCAQDLAwAhAgAAAIMCACAIAADZAgAgCIMCAQDFAwAhhgJAAMYDACGHAkAAxgMAIYgCQADGAwAhlQIBAMUDACGWAgEAxQMAIZcCAQDLAwAhmAIBAMsDACECAAAAgQIAIAgAANsCACACAAAAgQIAIAgAANsCACADAAAAgwIAIA8AANQCACAQAADZAgAgAQAAAIMCACABAAAAgQIAIAUVAADIAwAgFgAAygMAIBcAAMkDACCXAgAAxwMAIJgCAADHAwAgC4ACAACKAwAwgQIAAOICABCCAgAAigMAMIMCAQD_AgAhhgJAAIADACGHAkAAgAMAIYgCQACAAwAhlQIBAP8CACGWAgEA_wIAIZcCAQCLAwAhmAIBAIsDACEDAAAAgQIAIAMAAOECADAUAADiAgAgAwAAAIECACADAACCAgAwBAAAgwIAIAqAAgAAhgMAMIECAADoAgAQggIAAIYDADCDAgEAAAABhAIBAIcDACGFAgEAhwMAIYYCQACIAwAhhwJAAIgDACGIAkAAiAMAIZQCAACJAwAgAQAAAOUCACABAAAA5QIAIAmAAgAAhgMAMIECAADoAgAQggIAAIYDADCDAgEAhwMAIYQCAQCHAwAhhQIBAIcDACGGAkAAiAMAIYcCQACIAwAhiAJAAIgDACEAAwAAAOgCACADAADpAgAwBAAA5QIAIAMAAADoAgAgAwAA6QIAMAQAAOUCACADAAAA6AIAIAMAAOkCADAEAADlAgAgBoMCAQAAAAGEAgEAAAABhQIBAAAAAYYCQAAAAAGHAkAAAAABiAJAAAAAAQEIAADtAgAgBoMCAQAAAAGEAgEAAAABhQIBAAAAAYYCQAAAAAGHAkAAAAABiAJAAAAAAQEIAADvAgAwAQgAAO8CADAGgwIBAMUDACGEAgEAxQMAIYUCAQDFAwAhhgJAAMYDACGHAkAAxgMAIYgCQADGAwAhAgAAAOUCACAIAADyAgAgBoMCAQDFAwAhhAIBAMUDACGFAgEAxQMAIYYCQADGAwAhhwJAAMYDACGIAkAAxgMAIQIAAADoAgAgCAAA9AIAIAIAAADoAgAgCAAA9AIAIAMAAADlAgAgDwAA7QIAIBAAAPICACABAAAA5QIAIAEAAADoAgAgAxUAAMIDACAWAADEAwAgFwAAwwMAIAmAAgAA_gIAMIECAAD7AgAQggIAAP4CADCDAgEA_wIAIYQCAQD_AgAhhQIBAP8CACGGAkAAgAMAIYcCQACAAwAhiAJAAIADACEDAAAA6AIAIAMAAPoCADAUAAD7AgAgAwAAAOgCACADAADpAgAwBAAA5QIAIAmAAgAA_gIAMIECAAD7AgAQggIAAP4CADCDAgEA_wIAIYQCAQD_AgAhhQIBAP8CACGGAkAAgAMAIYcCQACAAwAhiAJAAIADACEOFQAAggMAIBYAAIUDACAXAACFAwAgiQIBAAAAAYoCAQAAAASLAgEAAAAEjAIBAAAAAY0CAQAAAAGOAgEAAAABjwIBAAAAAZACAQCEAwAhkQIBAAAAAZICAQAAAAGTAgEAAAABCxUAAIIDACAWAACDAwAgFwAAgwMAIIkCQAAAAAGKAkAAAAAEiwJAAAAABIwCQAAAAAGNAkAAAAABjgJAAAAAAY8CQAAAAAGQAkAAgQMAIQsVAACCAwAgFgAAgwMAIBcAAIMDACCJAkAAAAABigJAAAAABIsCQAAAAASMAkAAAAABjQJAAAAAAY4CQAAAAAGPAkAAAAABkAJAAIEDACEIiQICAAAAAYoCAgAAAASLAgIAAAAEjAICAAAAAY0CAgAAAAGOAgIAAAABjwICAAAAAZACAgCCAwAhCIkCQAAAAAGKAkAAAAAEiwJAAAAABIwCQAAAAAGNAkAAAAABjgJAAAAAAY8CQAAAAAGQAkAAgwMAIQ4VAACCAwAgFgAAhQMAIBcAAIUDACCJAgEAAAABigIBAAAABIsCAQAAAASMAgEAAAABjQIBAAAAAY4CAQAAAAGPAgEAAAABkAIBAIQDACGRAgEAAAABkgIBAAAAAZMCAQAAAAELiQIBAAAAAYoCAQAAAASLAgEAAAAEjAIBAAAAAY0CAQAAAAGOAgEAAAABjwIBAAAAAZACAQCFAwAhkQIBAAAAAZICAQAAAAGTAgEAAAABCYACAACGAwAwgQIAAOgCABCCAgAAhgMAMIMCAQCHAwAhhAIBAIcDACGFAgEAhwMAIYYCQACIAwAhhwJAAIgDACGIAkAAiAMAIQuJAgEAAAABigIBAAAABIsCAQAAAASMAgEAAAABjQIBAAAAAY4CAQAAAAGPAgEAAAABkAIBAIUDACGRAgEAAAABkgIBAAAAAZMCAQAAAAEIiQJAAAAAAYoCQAAAAASLAkAAAAAEjAJAAAAAAY0CQAAAAAGOAkAAAAABjwJAAAAAAZACQACDAwAhAoQCAQAAAAGFAgEAAAABC4ACAACKAwAwgQIAAOICABCCAgAAigMAMIMCAQD_AgAhhgJAAIADACGHAkAAgAMAIYgCQACAAwAhlQIBAP8CACGWAgEA_wIAIZcCAQCLAwAhmAIBAIsDACEOFQAAjQMAIBYAAI4DACAXAACOAwAgiQIBAAAAAYoCAQAAAAWLAgEAAAAFjAIBAAAAAY0CAQAAAAGOAgEAAAABjwIBAAAAAZACAQCMAwAhkQIBAAAAAZICAQAAAAGTAgEAAAABDhUAAI0DACAWAACOAwAgFwAAjgMAIIkCAQAAAAGKAgEAAAAFiwIBAAAABYwCAQAAAAGNAgEAAAABjgIBAAAAAY8CAQAAAAGQAgEAjAMAIZECAQAAAAGSAgEAAAABkwIBAAAAAQiJAgIAAAABigICAAAABYsCAgAAAAWMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICAI0DACELiQIBAAAAAYoCAQAAAAWLAgEAAAAFjAIBAAAAAY0CAQAAAAGOAgEAAAABjwIBAAAAAZACAQCOAwAhkQIBAAAAAZICAQAAAAGTAgEAAAABFIACAACPAwAwgQIAAMwCABCCAgAAjwMAMIMCAQD_AgAhhwJAAIADACGIAkAAgAMAIZYCAQD_AgAhmQIBAP8CACGaAgEA_wIAIZsCAQD_AgAhnAIBAIsDACGdAgEAiwMAIZ4CAQCLAwAhnwICAJADACGgAkAAkQMAIaECQACRAwAhogIBAIsDACGjAgEAiwMAIaQCAQCLAwAhpQIBAIsDACENFQAAjQMAIBYAAI0DACAXAACNAwAgaAAAlQMAIGkAAI0DACCJAgIAAAABigICAAAABYsCAgAAAAWMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICAJQDACELFQAAjQMAIBYAAJMDACAXAACTAwAgiQJAAAAAAYoCQAAAAAWLAkAAAAAFjAJAAAAAAY0CQAAAAAGOAkAAAAABjwJAAAAAAZACQACSAwAhCxUAAI0DACAWAACTAwAgFwAAkwMAIIkCQAAAAAGKAkAAAAAFiwJAAAAABYwCQAAAAAGNAkAAAAABjgJAAAAAAY8CQAAAAAGQAkAAkgMAIQiJAkAAAAABigJAAAAABYsCQAAAAAWMAkAAAAABjQJAAAAAAY4CQAAAAAGPAkAAAAABkAJAAJMDACENFQAAjQMAIBYAAI0DACAXAACNAwAgaAAAlQMAIGkAAI0DACCJAgIAAAABigICAAAABYsCAgAAAAWMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICAJQDACEIiQIIAAAAAYoCCAAAAAWLAggAAAAFjAIIAAAAAY0CCAAAAAGOAggAAAABjwIIAAAAAZACCACVAwAhCYACAACWAwAwgQIAALYCABCCAgAAlgMAMIMCAQD_AgAhhwJAAIADACGWAgEA_wIAIaYCAQD_AgAhpwJAAIADACGoAkAAkQMAIQyAAgAAlwMAMIECAACgAgAQggIAAJcDADCDAgEA_wIAIYcCQACAAwAhiAJAAIADACGpAgEAiwMAIaoCAQCLAwAhqwIgAJgDACGsAgEAiwMAIa0CAQCLAwAhrgIBAP8CACEFFQAAggMAIBYAAJoDACAXAACaAwAgiQIgAAAAAZACIACZAwAhBRUAAIIDACAWAACaAwAgFwAAmgMAIIkCIAAAAAGQAiAAmQMAIQKJAiAAAAABkAIgAJoDACEPrQEAAJ4DACCuAQAAnwMAIK8BAACgAwAggAIAAJsDADCBAgAAjQIAEIICAACbAwAwgwIBAIcDACGHAkAAiAMAIYgCQACIAwAhqQIBAJwDACGqAgEAnAMAIasCIACdAwAhrAIBAJwDACGtAgEAnAMAIa4CAQCHAwAhC4kCAQAAAAGKAgEAAAAFiwIBAAAABYwCAQAAAAGNAgEAAAABjgIBAAAAAY8CAQAAAAGQAgEAjgMAIZECAQAAAAGSAgEAAAABkwIBAAAAAQKJAiAAAAABkAIgAJoDACEDrwIAAP0BACCwAgAA_QEAILECAAD9AQAgA68CAACBAgAgsAIAAIECACCxAgAAgQIAIAOvAgAAhQIAILACAACFAgAgsQIAAIUCACAKrAEAAKMDACCAAgAAoQMAMIECAACFAgAQggIAAKEDADCDAgEAhwMAIYcCQACIAwAhlgIBAIcDACGmAgEAhwMAIacCQACIAwAhqAJAAKIDACEIiQJAAAAAAYoCQAAAAAWLAkAAAAAFjAJAAAAAAY0CQAAAAAGOAkAAAAABjwJAAAAAAZACQACTAwAhEa0BAACeAwAgrgEAAJ8DACCvAQAAoAMAIIACAACbAwAwgQIAAI0CABCCAgAAmwMAMIMCAQCHAwAhhwJAAIgDACGIAkAAiAMAIakCAQCcAwAhqgIBAJwDACGrAiAAnQMAIawCAQCcAwAhrQIBAJwDACGuAgEAhwMAIdYCAACNAgAg1wIAAI0CACAMrAEAAKMDACCAAgAApAMAMIECAACBAgAQggIAAKQDADCDAgEAhwMAIYYCQACIAwAhhwJAAIgDACGIAkAAiAMAIZUCAQCHAwAhlgIBAIcDACGXAgEAnAMAIZgCAQCcAwAhApoCAQAAAAGbAgEAAAABFawBAACjAwAggAIAAKYDADCBAgAA_QEAEIICAACmAwAwgwIBAIcDACGHAkAAiAMAIYgCQACIAwAhlgIBAIcDACGZAgEAhwMAIZoCAQCHAwAhmwIBAIcDACGcAgEAnAMAIZ0CAQCcAwAhngIBAJwDACGfAgIApwMAIaACQACiAwAhoQJAAKIDACGiAgEAnAMAIaMCAQCcAwAhpAIBAJwDACGlAgEAnAMAIQiJAgIAAAABigICAAAABYsCAgAAAAWMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICAI0DACEKgAIAAKgDADCBAgAA-AEAEIICAACoAwAwpwIBAIsDACGzAgEA_wIAIbQCAQD_AgAhtQIBAP8CACG2AgEAiwMAIbcCAQD_AgAhuAIBAP8CACEKgAIAAKkDADCBAgAA5QEAEIICAACpAwAwpwIBAJwDACGzAgEAhwMAIbQCAQCHAwAhtQIBAIcDACG2AgEAnAMAIbcCAQCHAwAhuAIBAIcDACEIgAIAAKoDADCBAgAA3wEAEIICAACqAwAwiAIBAP8CACG0AgEA_wIAIbkCAQD_AgAhugIBAP8CACG7AgEA_wIAIQiAAgAAqwMAMIECAADMAQAQggIAAKsDADCIAgEAhwMAIbQCAQCHAwAhuQIBAIcDACG6AgEAhwMAIbsCAQCHAwAhA7kCAQAAAAG6AgEAAAABuwIBAAAAAQqAAgAArQMAMIECAADGAQAQggIAAK0DADCHAgEA_wIAIacCAQD_AgAhtAIBAP8CACG9AgEA_wIAIb4CAQCLAwAhvwIBAIsDACHAAgEA_wIAIQqAAgAArgMAMIECAACzAQAQggIAAK4DADCHAgEAhwMAIacCAQCHAwAhtAIBAIcDACG9AgEAhwMAIb4CAQCcAwAhvwIBAJwDACHAAgEAhwMAIQyAAgAArwMAMIECAACtAQAQggIAAK8DADCIAgEA_wIAIbQCAQD_AgAhvwIBAP8CACHBAgEA_wIAIcICAQD_AgAhwwICALADACHEAgEAiwMAIcUCAQCLAwAhxgIBAP8CACENFQAAggMAIBYAAIIDACAXAACCAwAgaAAAsgMAIGkAAIIDACCJAgIAAAABigICAAAABIsCAgAAAASMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICALEDACENFQAAggMAIBYAAIIDACAXAACCAwAgaAAAsgMAIGkAAIIDACCJAgIAAAABigICAAAABIsCAgAAAASMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICALEDACEIiQIIAAAAAYoCCAAAAASLAggAAAAEjAIIAAAAAY0CCAAAAAGOAggAAAABjwIIAAAAAZACCACyAwAhDIACAACzAwAwgQIAAJoBABCCAgAAswMAMIgCAQCHAwAhtAIBAIcDACG_AgEAhwMAIcECAQCHAwAhwgIBAIcDACHDAgIAtAMAIcQCAQCcAwAhxQIBAJwDACHGAgEAhwMAIQiJAgIAAAABigICAAAABIsCAgAAAASMAgIAAAABjQICAAAAAY4CAgAAAAGPAgIAAAABkAICAIIDACEIgAIAALUDADCBAgAAlAEAEIICAAC1AwAwiAIBAP8CACG0AgEA_wIAIcECAQD_AgAhwgIBAP8CACHDAgIAsAMAIQiAAgAAtgMAMIECAACBAQAQggIAALYDADCIAgEAhwMAIbQCAQCHAwAhwQIBAIcDACHCAgEAhwMAIcMCAgC0AwAhDYACAAC3AwAwgQIAAHsAEIICAAC3AwAwhwIBAP8CACGIAgEA_wIAIbQCAQD_AgAhxwIBAP8CACHIAgEA_wIAIckCAQD_AgAhygIBAP8CACHLAgEA_wIAIcwCAQD_AgAhzQIBAP8CACENgAIAALgDADCBAgAAaAAQggIAALgDADCHAgEAhwMAIYgCAQCHAwAhtAIBAIcDACHHAgEAhwMAIcgCAQCHAwAhyQIBAIcDACHKAgEAhwMAIcsCAQCHAwAhzAIBAIcDACHNAgEAhwMAIQeAAgAAuQMAMIECAABiABCCAgAAuQMAMIgCAQD_AgAhuQIBAP8CACG6AgEA_wIAIc4CAQD_AgAhB4ACAAC6AwAwgQIAAE8AEIICAAC6AwAwiAIBAIcDACG5AgEAhwMAIboCAQCHAwAhzgIBAIcDACECuQIBAAAAAboCAQAAAAEGgAIAALwDADCBAgAASQAQggIAALwDADCIAgEA_wIAIbkCAQD_AgAh0AIgAJgDACEGgAIAAL0DADCBAgAANgAQggIAAL0DADCIAgEAhwMAIbkCAQCHAwAh0AIgAJ0DACEHgAIAAL4DADCBAgAAMAAQggIAAL4DADCIAgEA_wIAIbkCAQD_AgAhzgIBAP8CACHRAgEAiwMAIQeAAgAAvwMAMIECAAAdABCCAgAAvwMAMIgCAQCHAwAhuQIBAIcDACHOAgEAhwMAIdECAQCcAwAhC4ACAADAAwAwgQIAABcAEIICAADAAwAwiAIBAP8CACG1AgEA_wIAIbkCAQD_AgAhzgIBAP8CACHSAgEA_wIAIdMCAQD_AgAh1AIBAIsDACHVAgEAiwMAIQuAAgAAwQMAMIECAAAEABCCAgAAwQMAMIgCAQCHAwAhtQIBAIcDACG5AgEAhwMAIc4CAQCHAwAh0gIBAIcDACHTAgEAhwMAIdQCAQCcAwAh1QIBAJwDACEAAAAB2wIBAAAAAQHbAkAAAAABAAAAAAHbAgEAAAABBQ8AAL4EACAQAADBBAAg2AIAAL8EACDZAgAAwAQAIN4CAAD7AQAgAw8AAL4EACDYAgAAvwQAIN4CAAD7AQAgAAAAAAAF2wICAAAAAeECAgAAAAHiAgIAAAAB4wICAAAAAeQCAgAAAAEB2wJAAAAAAQUPAAC5BAAgEAAAvAQAINgCAAC6BAAg2QIAALsEACDeAgAA-wEAIAMPAAC5BAAg2AIAALoEACDeAgAA-wEAIAAAAAUPAAC0BAAgEAAAtwQAINgCAAC1BAAg2QIAALYEACDeAgAA-wEAIAMPAAC0BAAg2AIAALUEACDeAgAA-wEAIAAAAAHbAiAAAAABCw8AAPsDADAQAACABAAw2AIAAPwDADDZAgAA_QMAMNoCAAD-AwAg2wIAAP8DADDcAgAA_wMAMN0CAAD_AwAw3gIAAP8DADDfAgAAgQQAMOACAACCBAAwCw8AAO8DADAQAAD0AwAw2AIAAPADADDZAgAA8QMAMNoCAADyAwAg2wIAAPMDADDcAgAA8wMAMN0CAADzAwAw3gIAAPMDADDfAgAA9QMAMOACAAD2AwAwCw8AAOMDADAQAADoAwAw2AIAAOQDADDZAgAA5QMAMNoCAADmAwAg2wIAAOcDADDcAgAA5wMAMN0CAADnAwAw3gIAAOcDADDfAgAA6QMAMOACAADqAwAwBYMCAQAAAAGHAkAAAAABpgIBAAAAAacCQAAAAAGoAkAAAAABAgAAAIcCACAPAADuAwAgAwAAAIcCACAPAADuAwAgEAAA7QMAIAEIAACzBAAwCqwBAACjAwAggAIAAKEDADCBAgAAhQIAEIICAAChAwAwgwIBAAAAAYcCQACIAwAhlgIBAIcDACGmAgEAAAABpwJAAIgDACGoAkAAogMAIQIAAACHAgAgCAAA7QMAIAIAAADrAwAgCAAA7AMAIAmAAgAA6gMAMIECAADrAwAQggIAAOoDADCDAgEAhwMAIYcCQACIAwAhlgIBAIcDACGmAgEAhwMAIacCQACIAwAhqAJAAKIDACEJgAIAAOoDADCBAgAA6wMAEIICAADqAwAwgwIBAIcDACGHAkAAiAMAIZYCAQCHAwAhpgIBAIcDACGnAkAAiAMAIagCQACiAwAhBYMCAQDFAwAhhwJAAMYDACGmAgEAxQMAIacCQADGAwAhqAJAANQDACEFgwIBAMUDACGHAkAAxgMAIaYCAQDFAwAhpwJAAMYDACGoAkAA1AMAIQWDAgEAAAABhwJAAAAAAaYCAQAAAAGnAkAAAAABqAJAAAAAAQeDAgEAAAABhgJAAAAAAYcCQAAAAAGIAkAAAAABlQIBAAAAAZcCAQAAAAGYAgEAAAABAgAAAIMCACAPAAD6AwAgAwAAAIMCACAPAAD6AwAgEAAA-QMAIAEIAACyBAAwDKwBAACjAwAggAIAAKQDADCBAgAAgQIAEIICAACkAwAwgwIBAAAAAYYCQACIAwAhhwJAAIgDACGIAkAAiAMAIZUCAQAAAAGWAgEAhwMAIZcCAQCcAwAhmAIBAJwDACECAAAAgwIAIAgAAPkDACACAAAA9wMAIAgAAPgDACALgAIAAPYDADCBAgAA9wMAEIICAAD2AwAwgwIBAIcDACGGAkAAiAMAIYcCQACIAwAhiAJAAIgDACGVAgEAhwMAIZYCAQCHAwAhlwIBAJwDACGYAgEAnAMAIQuAAgAA9gMAMIECAAD3AwAQggIAAPYDADCDAgEAhwMAIYYCQACIAwAhhwJAAIgDACGIAkAAiAMAIZUCAQCHAwAhlgIBAIcDACGXAgEAnAMAIZgCAQCcAwAhB4MCAQDFAwAhhgJAAMYDACGHAkAAxgMAIYgCQADGAwAhlQIBAMUDACGXAgEAywMAIZgCAQDLAwAhB4MCAQDFAwAhhgJAAMYDACGHAkAAxgMAIYgCQADGAwAhlQIBAMUDACGXAgEAywMAIZgCAQDLAwAhB4MCAQAAAAGGAkAAAAABhwJAAAAAAYgCQAAAAAGVAgEAAAABlwIBAAAAAZgCAQAAAAEQgwIBAAAAAYcCQAAAAAGIAkAAAAABmQIBAAAAAZoCAQAAAAGbAgEAAAABnAIBAAAAAZ0CAQAAAAGeAgEAAAABnwICAAAAAaACQAAAAAGhAkAAAAABogIBAAAAAaMCAQAAAAGkAgEAAAABpQIBAAAAAQIAAAD_AQAgDwAAhgQAIAMAAAD_AQAgDwAAhgQAIBAAAIUEACABCAAAsQQAMBasAQAAowMAIIACAACmAwAwgQIAAP0BABCCAgAApgMAMIMCAQAAAAGHAkAAiAMAIYgCQACIAwAhlgIBAIcDACGZAgEAhwMAIZoCAQCHAwAhmwIBAIcDACGcAgEAnAMAIZ0CAQCcAwAhngIBAJwDACGfAgIApwMAIaACQACiAwAhoQJAAKIDACGiAgEAnAMAIaMCAQCcAwAhpAIBAJwDACGlAgEAnAMAIbICAAClAwAgAgAAAP8BACAIAACFBAAgAgAAAIMEACAIAACEBAAgFIACAACCBAAwgQIAAIMEABCCAgAAggQAMIMCAQCHAwAhhwJAAIgDACGIAkAAiAMAIZYCAQCHAwAhmQIBAIcDACGaAgEAhwMAIZsCAQCHAwAhnAIBAJwDACGdAgEAnAMAIZ4CAQCcAwAhnwICAKcDACGgAkAAogMAIaECQACiAwAhogIBAJwDACGjAgEAnAMAIaQCAQCcAwAhpQIBAJwDACEUgAIAAIIEADCBAgAAgwQAEIICAACCBAAwgwIBAIcDACGHAkAAiAMAIYgCQACIAwAhlgIBAIcDACGZAgEAhwMAIZoCAQCHAwAhmwIBAIcDACGcAgEAnAMAIZ0CAQCcAwAhngIBAJwDACGfAgIApwMAIaACQACiAwAhoQJAAKIDACGiAgEAnAMAIaMCAQCcAwAhpAIBAJwDACGlAgEAnAMAIRCDAgEAxQMAIYcCQADGAwAhiAJAAMYDACGZAgEAxQMAIZoCAQDFAwAhmwIBAMUDACGcAgEAywMAIZ0CAQDLAwAhngIBAMsDACGfAgIA0wMAIaACQADUAwAhoQJAANQDACGiAgEAywMAIaMCAQDLAwAhpAIBAMsDACGlAgEAywMAIRCDAgEAxQMAIYcCQADGAwAhiAJAAMYDACGZAgEAxQMAIZoCAQDFAwAhmwIBAMUDACGcAgEAywMAIZ0CAQDLAwAhngIBAMsDACGfAgIA0wMAIaACQADUAwAhoQJAANQDACGiAgEAywMAIaMCAQDLAwAhpAIBAMsDACGlAgEAywMAIRCDAgEAAAABhwJAAAAAAYgCQAAAAAGZAgEAAAABmgIBAAAAAZsCAQAAAAGcAgEAAAABnQIBAAAAAZ4CAQAAAAGfAgIAAAABoAJAAAAAAaECQAAAAAGiAgEAAAABowIBAAAAAaQCAQAAAAGlAgEAAAABBA8AAPsDADDYAgAA_AMAMNoCAAD-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-FwB_AAAAAxUAfRYAfhcAfwECAQIDAQUGAQYHAQcIAQkKAQoMAgsNAwwPAQ0RAg4SBBETARIUARMVAhgYBRkZCRobChscChwfCh0gCh4hCh8jCiAlAiEmCyIoCiMqAiQrDCUsCiYtCicuAigxDSkyESo0Eis1Eiw4Ei05Ei46Ei88EjA-AjE_EzJBEjNDAjREFDVFEjZGEjdHAjhKFTlLGTpNGjtOGjxRGj1SGj5TGj9VGkBXAkFYG0JaGkNcAkRdHEVeGkZfGkdgAkhjHUlkIUpmIktnIkxqIk1rIk5sIk9uIlBwAlFxI1JzIlN1AlR2JFV3IlZ4Ild5Alh8JVl9KVp_KluAASpcgwEqXYQBKl6FASpfhwEqYIkBAmGKAStijAEqY44BAmSPASxlkAEqZpEBKmeSAQJqlQEta5YBM2yYATRtmQE0bpwBNG-dATRwngE0caABNHKiAQJzowE1dKUBNHWnAQJ2qAE2d6kBNHiqATR5qwECeq4BN3uvAT18sQE-fbIBPn61AT5_tgE-gAG3AT6BAbkBPoIBuwECgwG8AT-EAb4BPoUBwAEChgHBAUCHAcIBPogBwwE-iQHEAQKKAccBQYsByAFFjAHKAUaNAcsBRo4BzgFGjwHPAUaQAdABRpEB0gFGkgHUAQKTAdUBR5QB1wFGlQHZAQKWAdoBSJcB2wFGmAHcAUaZAd0BApoB4AFJmwHhAU2cAeMBTp0B5AFOngHnAU6fAegBTqAB6QFOoQHrAU6iAe0BAqMB7gFPpAHwAU6lAfIBAqYB8wFQpwH0AU6oAfUBTqkB9gECqgH5AVGrAfoBVbAB_AFWsQGMAlayAY8CVrMBkAJWtAGRAla1AZMCVrYBlQICtwGWAlu4AZgCVrkBmgICugGbAly7AZwCVrwBnQJWvQGeAgK-AaECXb8BogJhwAGjAlnBAaQCWcIBpQJZwwGmAlnEAacCWcUBqQJZxgGrAgLHAawCYsgBrgJZyQGwAgLKAbECY8sBsgJZzAGzAlnNAbQCAs4BtwJkzwG4AmjQAbkCV9EBugJX0gG7AlfTAbwCV9QBvQJX1QG_AlfWAcECAtcBwgJp2AHEAlfZAcYCAtoBxwJq2wHIAlfcAckCV90BygIC3gHNAmvfAc4CceABzwJY4QHQAljiAdECWOMB0gJY5AHTAljlAdUCWOYB1wIC5wHYAnLoAdoCWOkB3AIC6gHdAnPrAd4CWOwB3wJY7QHgAgLuAeMCdO8B5AJ48AHmAnnxAecCefIB6gJ58wHrAnn0AewCefUB7gJ59gHwAgL3AfECevgB8wJ5-QH1AgL6AfYCe_sB9wJ5_AH4Ann9AfkCAv4B_AJ8_wH9AoAB"
13666
+ strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"run\",\"workItems\",\"executionInstances\",\"slotProjection\",\"_count\",\"Run.findUnique\",\"Run.findUniqueOrThrow\",\"Run.findFirst\",\"Run.findFirstOrThrow\",\"Run.findMany\",\"data\",\"Run.createOne\",\"Run.createMany\",\"Run.createManyAndReturn\",\"Run.updateOne\",\"Run.updateMany\",\"Run.updateManyAndReturn\",\"create\",\"update\",\"Run.upsertOne\",\"Run.deleteOne\",\"Run.deleteMany\",\"having\",\"_avg\",\"_sum\",\"_min\",\"_max\",\"Run.groupBy\",\"Run.aggregate\",\"RunWorkItem.findUnique\",\"RunWorkItem.findUniqueOrThrow\",\"RunWorkItem.findFirst\",\"RunWorkItem.findFirstOrThrow\",\"RunWorkItem.findMany\",\"RunWorkItem.createOne\",\"RunWorkItem.createMany\",\"RunWorkItem.createManyAndReturn\",\"RunWorkItem.updateOne\",\"RunWorkItem.updateMany\",\"RunWorkItem.updateManyAndReturn\",\"RunWorkItem.upsertOne\",\"RunWorkItem.deleteOne\",\"RunWorkItem.deleteMany\",\"RunWorkItem.groupBy\",\"RunWorkItem.aggregate\",\"ExecutionInstance.findUnique\",\"ExecutionInstance.findUniqueOrThrow\",\"ExecutionInstance.findFirst\",\"ExecutionInstance.findFirstOrThrow\",\"ExecutionInstance.findMany\",\"ExecutionInstance.createOne\",\"ExecutionInstance.createMany\",\"ExecutionInstance.createManyAndReturn\",\"ExecutionInstance.updateOne\",\"ExecutionInstance.updateMany\",\"ExecutionInstance.updateManyAndReturn\",\"ExecutionInstance.upsertOne\",\"ExecutionInstance.deleteOne\",\"ExecutionInstance.deleteMany\",\"ExecutionInstance.groupBy\",\"ExecutionInstance.aggregate\",\"RunSlotProjection.findUnique\",\"RunSlotProjection.findUniqueOrThrow\",\"RunSlotProjection.findFirst\",\"RunSlotProjection.findFirstOrThrow\",\"RunSlotProjection.findMany\",\"RunSlotProjection.createOne\",\"RunSlotProjection.createMany\",\"RunSlotProjection.createManyAndReturn\",\"RunSlotProjection.updateOne\",\"RunSlotProjection.updateMany\",\"RunSlotProjection.updateManyAndReturn\",\"RunSlotProjection.upsertOne\",\"RunSlotProjection.deleteOne\",\"RunSlotProjection.deleteMany\",\"RunSlotProjection.groupBy\",\"RunSlotProjection.aggregate\",\"WorkflowDebuggerOverlay.findUnique\",\"WorkflowDebuggerOverlay.findUniqueOrThrow\",\"WorkflowDebuggerOverlay.findFirst\",\"WorkflowDebuggerOverlay.findFirstOrThrow\",\"WorkflowDebuggerOverlay.findMany\",\"WorkflowDebuggerOverlay.createOne\",\"WorkflowDebuggerOverlay.createMany\",\"WorkflowDebuggerOverlay.createManyAndReturn\",\"WorkflowDebuggerOverlay.updateOne\",\"WorkflowDebuggerOverlay.updateMany\",\"WorkflowDebuggerOverlay.updateManyAndReturn\",\"WorkflowDebuggerOverlay.upsertOne\",\"WorkflowDebuggerOverlay.deleteOne\",\"WorkflowDebuggerOverlay.deleteMany\",\"WorkflowDebuggerOverlay.groupBy\",\"WorkflowDebuggerOverlay.aggregate\",\"WorkflowActivation.findUnique\",\"WorkflowActivation.findUniqueOrThrow\",\"WorkflowActivation.findFirst\",\"WorkflowActivation.findFirstOrThrow\",\"WorkflowActivation.findMany\",\"WorkflowActivation.createOne\",\"WorkflowActivation.createMany\",\"WorkflowActivation.createManyAndReturn\",\"WorkflowActivation.updateOne\",\"WorkflowActivation.updateMany\",\"WorkflowActivation.updateManyAndReturn\",\"WorkflowActivation.upsertOne\",\"WorkflowActivation.deleteOne\",\"WorkflowActivation.deleteMany\",\"WorkflowActivation.groupBy\",\"WorkflowActivation.aggregate\",\"TriggerSetupState.findUnique\",\"TriggerSetupState.findUniqueOrThrow\",\"TriggerSetupState.findFirst\",\"TriggerSetupState.findFirstOrThrow\",\"TriggerSetupState.findMany\",\"TriggerSetupState.createOne\",\"TriggerSetupState.createMany\",\"TriggerSetupState.createManyAndReturn\",\"TriggerSetupState.updateOne\",\"TriggerSetupState.updateMany\",\"TriggerSetupState.updateManyAndReturn\",\"TriggerSetupState.upsertOne\",\"TriggerSetupState.deleteOne\",\"TriggerSetupState.deleteMany\",\"TriggerSetupState.groupBy\",\"TriggerSetupState.aggregate\",\"CredentialInstance.findUnique\",\"CredentialInstance.findUniqueOrThrow\",\"CredentialInstance.findFirst\",\"CredentialInstance.findFirstOrThrow\",\"CredentialInstance.findMany\",\"CredentialInstance.createOne\",\"CredentialInstance.createMany\",\"CredentialInstance.createManyAndReturn\",\"CredentialInstance.updateOne\",\"CredentialInstance.updateMany\",\"CredentialInstance.updateManyAndReturn\",\"CredentialInstance.upsertOne\",\"CredentialInstance.deleteOne\",\"CredentialInstance.deleteMany\",\"CredentialInstance.groupBy\",\"CredentialInstance.aggregate\",\"CredentialSecretMaterial.findUnique\",\"CredentialSecretMaterial.findUniqueOrThrow\",\"CredentialSecretMaterial.findFirst\",\"CredentialSecretMaterial.findFirstOrThrow\",\"CredentialSecretMaterial.findMany\",\"CredentialSecretMaterial.createOne\",\"CredentialSecretMaterial.createMany\",\"CredentialSecretMaterial.createManyAndReturn\",\"CredentialSecretMaterial.updateOne\",\"CredentialSecretMaterial.updateMany\",\"CredentialSecretMaterial.updateManyAndReturn\",\"CredentialSecretMaterial.upsertOne\",\"CredentialSecretMaterial.deleteOne\",\"CredentialSecretMaterial.deleteMany\",\"CredentialSecretMaterial.groupBy\",\"CredentialSecretMaterial.aggregate\",\"CredentialOAuth2Material.findUnique\",\"CredentialOAuth2Material.findUniqueOrThrow\",\"CredentialOAuth2Material.findFirst\",\"CredentialOAuth2Material.findFirstOrThrow\",\"CredentialOAuth2Material.findMany\",\"CredentialOAuth2Material.createOne\",\"CredentialOAuth2Material.createMany\",\"CredentialOAuth2Material.createManyAndReturn\",\"CredentialOAuth2Material.updateOne\",\"CredentialOAuth2Material.updateMany\",\"CredentialOAuth2Material.updateManyAndReturn\",\"CredentialOAuth2Material.upsertOne\",\"CredentialOAuth2Material.deleteOne\",\"CredentialOAuth2Material.deleteMany\",\"CredentialOAuth2Material.groupBy\",\"CredentialOAuth2Material.aggregate\",\"CredentialOAuth2State.findUnique\",\"CredentialOAuth2State.findUniqueOrThrow\",\"CredentialOAuth2State.findFirst\",\"CredentialOAuth2State.findFirstOrThrow\",\"CredentialOAuth2State.findMany\",\"CredentialOAuth2State.createOne\",\"CredentialOAuth2State.createMany\",\"CredentialOAuth2State.createManyAndReturn\",\"CredentialOAuth2State.updateOne\",\"CredentialOAuth2State.updateMany\",\"CredentialOAuth2State.updateManyAndReturn\",\"CredentialOAuth2State.upsertOne\",\"CredentialOAuth2State.deleteOne\",\"CredentialOAuth2State.deleteMany\",\"CredentialOAuth2State.groupBy\",\"CredentialOAuth2State.aggregate\",\"CredentialBinding.findUnique\",\"CredentialBinding.findUniqueOrThrow\",\"CredentialBinding.findFirst\",\"CredentialBinding.findFirstOrThrow\",\"CredentialBinding.findMany\",\"CredentialBinding.createOne\",\"CredentialBinding.createMany\",\"CredentialBinding.createManyAndReturn\",\"CredentialBinding.updateOne\",\"CredentialBinding.updateMany\",\"CredentialBinding.updateManyAndReturn\",\"CredentialBinding.upsertOne\",\"CredentialBinding.deleteOne\",\"CredentialBinding.deleteMany\",\"CredentialBinding.groupBy\",\"CredentialBinding.aggregate\",\"CredentialTestResult.findUnique\",\"CredentialTestResult.findUniqueOrThrow\",\"CredentialTestResult.findFirst\",\"CredentialTestResult.findFirstOrThrow\",\"CredentialTestResult.findMany\",\"CredentialTestResult.createOne\",\"CredentialTestResult.createMany\",\"CredentialTestResult.createManyAndReturn\",\"CredentialTestResult.updateOne\",\"CredentialTestResult.updateMany\",\"CredentialTestResult.updateManyAndReturn\",\"CredentialTestResult.upsertOne\",\"CredentialTestResult.deleteOne\",\"CredentialTestResult.deleteMany\",\"CredentialTestResult.groupBy\",\"CredentialTestResult.aggregate\",\"user\",\"accounts\",\"sessions\",\"invites\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"User.groupBy\",\"User.aggregate\",\"UserInvite.findUnique\",\"UserInvite.findUniqueOrThrow\",\"UserInvite.findFirst\",\"UserInvite.findFirstOrThrow\",\"UserInvite.findMany\",\"UserInvite.createOne\",\"UserInvite.createMany\",\"UserInvite.createManyAndReturn\",\"UserInvite.updateOne\",\"UserInvite.updateMany\",\"UserInvite.updateManyAndReturn\",\"UserInvite.upsertOne\",\"UserInvite.deleteOne\",\"UserInvite.deleteMany\",\"UserInvite.groupBy\",\"UserInvite.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"Account.groupBy\",\"Account.aggregate\",\"Session.findUnique\",\"Session.findUniqueOrThrow\",\"Session.findFirst\",\"Session.findFirstOrThrow\",\"Session.findMany\",\"Session.createOne\",\"Session.createMany\",\"Session.createManyAndReturn\",\"Session.updateOne\",\"Session.updateMany\",\"Session.updateManyAndReturn\",\"Session.upsertOne\",\"Session.deleteOne\",\"Session.deleteMany\",\"Session.groupBy\",\"Session.aggregate\",\"VerificationToken.findUnique\",\"VerificationToken.findUniqueOrThrow\",\"VerificationToken.findFirst\",\"VerificationToken.findFirstOrThrow\",\"VerificationToken.findMany\",\"VerificationToken.createOne\",\"VerificationToken.createMany\",\"VerificationToken.createManyAndReturn\",\"VerificationToken.updateOne\",\"VerificationToken.updateMany\",\"VerificationToken.updateManyAndReturn\",\"VerificationToken.upsertOne\",\"VerificationToken.deleteOne\",\"VerificationToken.deleteMany\",\"VerificationToken.groupBy\",\"VerificationToken.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"identifier\",\"token\",\"expires\",\"createdAt\",\"updatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"identifier_token\",\"sessionToken\",\"userId\",\"ipAddress\",\"userAgent\",\"type\",\"provider\",\"providerAccountId\",\"password\",\"refresh_token\",\"access_token\",\"expires_at\",\"accessTokenExpiresAt\",\"refreshTokenExpiresAt\",\"token_type\",\"scope\",\"id_token\",\"session_state\",\"tokenHash\",\"expiresAt\",\"revokedAt\",\"name\",\"email\",\"emailVerified\",\"image\",\"passwordHash\",\"accountStatus\",\"every\",\"some\",\"none\",\"provider_providerAccountId\",\"testId\",\"instanceId\",\"status\",\"message\",\"detailsJson\",\"testedAt\",\"workflowId\",\"nodeId\",\"slotKey\",\"workflowId_nodeId_slotKey\",\"state\",\"codeVerifier\",\"providerId\",\"requestedScopesJson\",\"encryptedJson\",\"encryptionKeyId\",\"schemaVersion\",\"connectedEmail\",\"connectedAt\",\"scopesJson\",\"typeId\",\"displayName\",\"sourceKind\",\"publicConfigJson\",\"secretRefJson\",\"tagsJson\",\"setupStatus\",\"stateJson\",\"workflowId_nodeId\",\"isActive\",\"copiedFromRunId\",\"runId\",\"revision\",\"slotStatesJson\",\"slotNodeId\",\"workflowNodeId\",\"kind\",\"connectionKind\",\"activationId\",\"batchId\",\"runIndex\",\"parentInstanceId\",\"parentRunId\",\"workerClaimToken\",\"queuedAt\",\"startedAt\",\"finishedAt\",\"itemCount\",\"inputJson\",\"outputJson\",\"errorJson\",\"inputItemIndicesJson\",\"outputItemCount\",\"successfulItemCount\",\"failedItemCount\",\"inputStorageKind\",\"outputStorageKind\",\"inputBytes\",\"outputBytes\",\"inputPreviewJson\",\"outputPreviewJson\",\"inputPayloadRef\",\"outputPayloadRef\",\"inputTruncated\",\"outputTruncated\",\"usedPinnedOutput\",\"workItemId\",\"targetNodeId\",\"queueName\",\"claimToken\",\"claimedBy\",\"claimedAt\",\"availableAt\",\"enqueuedAt\",\"completedAt\",\"failedAt\",\"sourceInstanceId\",\"itemsIn\",\"inputsByPortJson\",\"parentJson\",\"executionOptionsJson\",\"controlJson\",\"workflowSnapshotJson\",\"policySnapshotJson\",\"engineCountersJson\",\"mutableStateJson\",\"outputsByNodeJson\",\"runId_slotNodeId_runIndex\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
13667
+ graph: "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_ADAZAACAAQAgAwAAAG0AIAEAAG4AMAIAAGoAIAa0AgAAjQQAMLUCAACGAQAQtgIAAI0EADC8AgEA1wMAIe0CAQAAAAGEAyAA7QMAIQEAAACDAQAgAQAAAIMBACAGtAIAAI0EADC1AgAAhgEAELYCAACNBAAwvAIBANcDACHtAgEA1wMAIYQDIADtAwAhAAMAAACGAQAgAQAAhwEAMAIAAIMBACADAAAAhgEAIAEAAIcBADACAACDAQAgAwAAAIYBACABAACHAQAwAgAAgwEAIAO8AgEAAAAB7QIBAAAAAYQDIAAAAAEBDQAAiwEAIAO8AgEAAAAB7QIBAAAAAYQDIAAAAAEBDQAAjQEAMAENAACNAQAwA7wCAQCkBAAh7QIBAKQEACGEAyAAvgQAIQIAAACDAQAgDQAAkAEAIAO8AgEApAQAIe0CAQCkBAAhhAMgAL4EACECAAAAhgEAIA0AAJIBACACAAAAhgEAIA0AAJIBACADAAAAgwEAIBQAAIsBACAVAACQAQAgAQAAAIMBACABAAAAhgEAIAMHAACHBQAgHAAAiQUAIB0AAIgFACAGtAIAAIwEADC1AgAAmQEAELYCAACMBAAwvAIBAM8DACHtAgEAzwMAIYQDIADoAwAhAwAAAIYBACABAACYAQAwGQAAmQEAIAMAAACGAQAgAQAAhwEAMAIAAIMBACAItAIAAIoEADC1AgAAnwEAELYCAACKBAAwvAIBANcDACHtAgEA1wMAIe4CAQDXAwAhggMBANcDACGDAwAAiwQAIAEAAACcAQAgAQAAAJwBACAHtAIAAIoEADC1AgAAnwEAELYCAACKBAAwvAIBANcDACHtAgEA1wMAIe4CAQDXAwAhggMBANcDACEAAwAAAJ8BACABAACgAQAwAgAAnAEAIAMAAACfAQAgAQAAoAEAMAIAAJwBACADAAAAnwEAIAEAAKABADACAACcAQAgBLwCAQAAAAHtAgEAAAAB7gIBAAAAAYIDAQAAAAEBDQAApAEAIAS8AgEAAAAB7QIBAAAAAe4CAQAAAAGCAwEAAAABAQ0AAKYBADABDQAApgEAMAS8AgEApAQAIe0CAQCkBAAh7gIBAKQEACGCAwEApAQAIQIAAACcAQAgDQAAqQEAIAS8AgEApAQAIe0CAQCkBAAh7gIBAKQEACGCAwEApAQAIQIAAACfAQAgDQAAqwEAIAIAAACfAQAgDQAAqwEAIAMAAACcAQAgFAAApAEAIBUAAKkBACABAAAAnAEAIAEAAACfAQAgAwcAAIQFACAcAACGBQAgHQAAhQUAIAe0AgAAiQQAMLUCAACyAQAQtgIAAIkEADC8AgEAzwMAIe0CAQDPAwAh7gIBAM8DACGCAwEAzwMAIQMAAACfAQAgAQAAsQEAMBkAALIBACADAAAAnwEAIAEAAKABADACAACcAQAgDbQCAACIBAAwtQIAALgBABC2AgAAiAQAMLsCAQDXAwAhvAIBANcDACHoAgEAAAAB-wIBANcDACH8AgEA1wMAIf0CAQDXAwAh_gIBANcDACH_AgEA1wMAIYADAQDXAwAhgQMBANcDACEBAAAAtQEAIAEAAAC1AQAgDbQCAACIBAAwtQIAALgBABC2AgAAiAQAMLsCAQDXAwAhvAIBANcDACHoAgEA1wMAIfsCAQDXAwAh_AIBANcDACH9AgEA1wMAIf4CAQDXAwAh_wIBANcDACGAAwEA1wMAIYEDAQDXAwAhAAMAAAC4AQAgAQAAuQEAMAIAALUBACADAAAAuAEAIAEAALkBADACAAC1AQAgAwAAALgBACABAAC5AQAwAgAAtQEAIAq7AgEAAAABvAIBAAAAAegCAQAAAAH7AgEAAAAB_AIBAAAAAf0CAQAAAAH-AgEAAAAB_wIBAAAAAYADAQAAAAGBAwEAAAABAQ0AAL0BACAKuwIBAAAAAbwCAQAAAAHoAgEAAAAB-wIBAAAAAfwCAQAAAAH9AgEAAAAB_gIBAAAAAf8CAQAAAAGAAwEAAAABgQMBAAAAAQENAAC_AQAwAQ0AAL8BADAKuwIBAKQEACG8AgEApAQAIegCAQCkBAAh-wIBAKQEACH8AgEApAQAIf0CAQCkBAAh_gIBAKQEACH_AgEApAQAIYADAQCkBAAhgQMBAKQEACECAAAAtQEAIA0AAMIBACAKuwIBAKQEACG8AgEApAQAIegCAQCkBAAh-wIBAKQEACH8AgEApAQAIf0CAQCkBAAh_gIBAKQEACH_AgEApAQAIYADAQCkBAAhgQMBAKQEACECAAAAuAEAIA0AAMQBACACAAAAuAEAIA0AAMQBACADAAAAtQEAIBQAAL0BACAVAADCAQAgAQAAALUBACABAAAAuAEAIAMHAACBBQAgHAAAgwUAIB0AAIIFACANtAIAAIcEADC1AgAAywEAELYCAACHBAAwuwIBAM8DACG8AgEAzwMAIegCAQDPAwAh-wIBAM8DACH8AgEAzwMAIf0CAQDPAwAh_gIBAM8DACH_AgEAzwMAIYADAQDPAwAhgQMBAM8DACEDAAAAuAEAIAEAAMoBADAZAADLAQAgAwAAALgBACABAAC5AQAwAgAAtQEAIAi0AgAAhgQAMLUCAADRAQAQtgIAAIYEADC8AgEA1wMAIegCAQAAAAH1AgEA1wMAIfYCAQDXAwAh9wICAIQEACEBAAAAzgEAIAEAAADOAQAgCLQCAACGBAAwtQIAANEBABC2AgAAhgQAMLwCAQDXAwAh6AIBANcDACH1AgEA1wMAIfYCAQDXAwAh9wICAIQEACEAAwAAANEBACABAADSAQAwAgAAzgEAIAMAAADRAQAgAQAA0gEAMAIAAM4BACADAAAA0QEAIAEAANIBADACAADOAQAgBbwCAQAAAAHoAgEAAAAB9QIBAAAAAfYCAQAAAAH3AgIAAAABAQ0AANYBACAFvAIBAAAAAegCAQAAAAH1AgEAAAAB9gIBAAAAAfcCAgAAAAEBDQAA2AEAMAENAADYAQAwBbwCAQCkBAAh6AIBAKQEACH1AgEApAQAIfYCAQCkBAAh9wICAPsEACECAAAAzgEAIA0AANsBACAFvAIBAKQEACHoAgEApAQAIfUCAQCkBAAh9gIBAKQEACH3AgIA-wQAIQIAAADRAQAgDQAA3QEAIAIAAADRAQAgDQAA3QEAIAMAAADOAQAgFAAA1gEAIBUAANsBACABAAAAzgEAIAEAAADRAQAgBQcAAPwEACAaAAD9BAAgGwAAgAUAIBwAAP8EACAdAAD-BAAgCLQCAACFBAAwtQIAAOQBABC2AgAAhQQAMLwCAQDPAwAh6AIBAM8DACH1AgEAzwMAIfYCAQDPAwAh9wICAIAEACEDAAAA0QEAIAEAAOMBADAZAADkAQAgAwAAANEBACABAADSAQAwAgAAzgEAIAy0AgAAgwQAMLUCAADqAQAQtgIAAIMEADC8AgEA1wMAIegCAQAAAAHzAgEA1wMAIfUCAQDXAwAh9gIBANcDACH3AgIAhAQAIfgCAQDsAwAh-QIBAOwDACH6AgEA1wMAIQEAAADnAQAgAQAAAOcBACAMtAIAAIMEADC1AgAA6gEAELYCAACDBAAwvAIBANcDACHoAgEA1wMAIfMCAQDXAwAh9QIBANcDACH2AgEA1wMAIfcCAgCEBAAh-AIBAOwDACH5AgEA7AMAIfoCAQDXAwAhAvgCAACmBAAg-QIAAKYEACADAAAA6gEAIAEAAOsBADACAADnAQAgAwAAAOoBACABAADrAQAwAgAA5wEAIAMAAADqAQAgAQAA6wEAMAIAAOcBACAJvAIBAAAAAegCAQAAAAHzAgEAAAAB9QIBAAAAAfYCAQAAAAH3AgIAAAAB-AIBAAAAAfkCAQAAAAH6AgEAAAABAQ0AAO8BACAJvAIBAAAAAegCAQAAAAHzAgEAAAAB9QIBAAAAAfYCAQAAAAH3AgIAAAAB-AIBAAAAAfkCAQAAAAH6AgEAAAABAQ0AAPEBADABDQAA8QEAMAm8AgEApAQAIegCAQCkBAAh8wIBAKQEACH1AgEApAQAIfYCAQCkBAAh9wICAPsEACH4AgEAqgQAIfkCAQCqBAAh-gIBAKQEACECAAAA5wEAIA0AAPQBACAJvAIBAKQEACHoAgEApAQAIfMCAQCkBAAh9QIBAKQEACH2AgEApAQAIfcCAgD7BAAh-AIBAKoEACH5AgEAqgQAIfoCAQCkBAAhAgAAAOoBACANAAD2AQAgAgAAAOoBACANAAD2AQAgAwAAAOcBACAUAADvAQAgFQAA9AEAIAEAAADnAQAgAQAAAOoBACAHBwAA9gQAIBoAAPcEACAbAAD6BAAgHAAA-QQAIB0AAPgEACD4AgAApgQAIPkCAACmBAAgDLQCAAD_AwAwtQIAAP0BABC2AgAA_wMAMLwCAQDPAwAh6AIBAM8DACHzAgEAzwMAIfUCAQDPAwAh9gIBAM8DACH3AgIAgAQAIfgCAQDbAwAh-QIBANsDACH6AgEAzwMAIQMAAADqAQAgAQAA_AEAMBkAAP0BACADAAAA6gEAIAEAAOsBADACAADnAQAgCrQCAAD-AwAwtQIAAIMCABC2AgAA_gMAMLsCAQDXAwAh2wIBANcDACHoAgEA1wMAIfECAQAAAAHyAgEA7AMAIfMCAQDsAwAh9AIBANcDACEBAAAAgAIAIAEAAACAAgAgCrQCAAD-AwAwtQIAAIMCABC2AgAA_gMAMLsCAQDXAwAh2wIBANcDACHoAgEA1wMAIfECAQDXAwAh8gIBAOwDACHzAgEA7AMAIfQCAQDXAwAhAvICAACmBAAg8wIAAKYEACADAAAAgwIAIAEAAIQCADACAACAAgAgAwAAAIMCACABAACEAgAwAgAAgAIAIAMAAACDAgAgAQAAhAIAMAIAAIACACAHuwIBAAAAAdsCAQAAAAHoAgEAAAAB8QIBAAAAAfICAQAAAAHzAgEAAAAB9AIBAAAAAQENAACIAgAgB7sCAQAAAAHbAgEAAAAB6AIBAAAAAfECAQAAAAHyAgEAAAAB8wIBAAAAAfQCAQAAAAEBDQAAigIAMAENAACKAgAwB7sCAQCkBAAh2wIBAKQEACHoAgEApAQAIfECAQCkBAAh8gIBAKoEACHzAgEAqgQAIfQCAQCkBAAhAgAAAIACACANAACNAgAgB7sCAQCkBAAh2wIBAKQEACHoAgEApAQAIfECAQCkBAAh8gIBAKoEACHzAgEAqgQAIfQCAQCkBAAhAgAAAIMCACANAACPAgAgAgAAAIMCACANAACPAgAgAwAAAIACACAUAACIAgAgFQAAjQIAIAEAAACAAgAgAQAAAIMCACAFBwAA8wQAIBwAAPUEACAdAAD0BAAg8gIAAKYEACDzAgAApgQAIAq0AgAA_QMAMLUCAACWAgAQtgIAAP0DADC7AgEAzwMAIdsCAQDPAwAh6AIBAM8DACHxAgEAzwMAIfICAQDbAwAh8wIBANsDACH0AgEAzwMAIQMAAACDAgAgAQAAlQIAMBkAAJYCACADAAAAgwIAIAEAAIQCADACAACAAgAgCbQCAAD7AwAwtQIAAJwCABC2AgAA-wMAMLwCAQDXAwAh6AIBANcDACHtAgEA1wMAIe4CAQDXAwAh7wIBANcDACHwAgAA_AMAIAEAAACZAgAgAQAAAJkCACAItAIAAPsDADC1AgAAnAIAELYCAAD7AwAwvAIBANcDACHoAgEA1wMAIe0CAQDXAwAh7gIBANcDACHvAgEA1wMAIQADAAAAnAIAIAEAAJ0CADACAACZAgAgAwAAAJwCACABAACdAgAwAgAAmQIAIAMAAACcAgAgAQAAnQIAMAIAAJkCACAFvAIBAAAAAegCAQAAAAHtAgEAAAAB7gIBAAAAAe8CAQAAAAEBDQAAoQIAIAW8AgEAAAAB6AIBAAAAAe0CAQAAAAHuAgEAAAAB7wIBAAAAAQENAACjAgAwAQ0AAKMCADAFvAIBAKQEACHoAgEApAQAIe0CAQCkBAAh7gIBAKQEACHvAgEApAQAIQIAAACZAgAgDQAApgIAIAW8AgEApAQAIegCAQCkBAAh7QIBAKQEACHuAgEApAQAIe8CAQCkBAAhAgAAAJwCACANAACoAgAgAgAAAJwCACANAACoAgAgAwAAAJkCACAUAAChAgAgFQAApgIAIAEAAACZAgAgAQAAAJwCACADBwAA8AQAIBwAAPIEACAdAADxBAAgCLQCAAD6AwAwtQIAAK8CABC2AgAA-gMAMLwCAQDPAwAh6AIBAM8DACHtAgEAzwMAIe4CAQDPAwAh7wIBAM8DACEDAAAAnAIAIAEAAK4CADAZAACvAgAgAwAAAJwCACABAACdAgAwAgAAmQIAIAq0AgAA-QMAMLUCAAC1AgAQtgIAAPkDADDbAgEA7AMAIecCAQAAAAHoAgEA1wMAIekCAQDXAwAh6gIBAOwDACHrAgEA1wMAIewCAQDXAwAhAQAAALICACABAAAAsgIAIAq0AgAA-QMAMLUCAAC1AgAQtgIAAPkDADDbAgEA7AMAIecCAQDXAwAh6AIBANcDACHpAgEA1wMAIeoCAQDsAwAh6wIBANcDACHsAgEA1wMAIQLbAgAApgQAIOoCAACmBAAgAwAAALUCACABAAC2AgAwAgAAsgIAIAMAAAC1AgAgAQAAtgIAMAIAALICACADAAAAtQIAIAEAALYCADACAACyAgAgB9sCAQAAAAHnAgEAAAAB6AIBAAAAAekCAQAAAAHqAgEAAAAB6wIBAAAAAewCAQAAAAEBDQAAugIAIAfbAgEAAAAB5wIBAAAAAegCAQAAAAHpAgEAAAAB6gIBAAAAAesCAQAAAAHsAgEAAAABAQ0AALwCADABDQAAvAIAMAfbAgEAqgQAIecCAQCkBAAh6AIBAKQEACHpAgEApAQAIeoCAQCqBAAh6wIBAKQEACHsAgEApAQAIQIAAACyAgAgDQAAvwIAIAfbAgEAqgQAIecCAQCkBAAh6AIBAKQEACHpAgEApAQAIeoCAQCqBAAh6wIBAKQEACHsAgEApAQAIQIAAAC1AgAgDQAAwQIAIAIAAAC1AgAgDQAAwQIAIAMAAACyAgAgFAAAugIAIBUAAL8CACABAAAAsgIAIAEAAAC1AgAgBQcAAO0EACAcAADvBAAgHQAA7gQAINsCAACmBAAg6gIAAKYEACAKtAIAAPgDADC1AgAAyAIAELYCAAD4AwAw2wIBANsDACHnAgEAzwMAIegCAQDPAwAh6QIBAM8DACHqAgEA2wMAIesCAQDPAwAh7AIBAM8DACEDAAAAtQIAIAEAAMcCADAZAADIAgAgAwAAALUCACABAAC2AgAwAgAAsgIAIA_hAQAA7gMAIOIBAADvAwAg4wEAAPADACC0AgAA6wMAMLUCAADdAgAQtgIAAOsDADC3AgEAAAABuwJAANgDACG8AkAA2AMAId0CAQDsAwAh3gIBAAAAAd8CIADtAwAh4AIBAOwDACHhAgEA7AMAIeICAQDXAwAhAQAAAMsCACAV4AEAAPMDACC0AgAA9gMAMLUCAADNAgAQtgIAAPYDADC3AgEA1wMAIbsCQADYAwAhvAJAANgDACHKAgEA1wMAIc0CAQDXAwAhzgIBANcDACHPAgEA1wMAIdACAQDsAwAh0QIBAOwDACHSAgEA7AMAIdMCAgD3AwAh1AJAAPIDACHVAkAA8gMAIdYCAQDsAwAh1wIBAOwDACHYAgEA7AMAIdkCAQDsAwAhC-ABAADsBAAg0AIAAKYEACDRAgAApgQAINICAACmBAAg0wIAAKYEACDUAgAApgQAINUCAACmBAAg1gIAAKYEACDXAgAApgQAINgCAACmBAAg2QIAAKYEACAW4AEAAPMDACC0AgAA9gMAMLUCAADNAgAQtgIAAPYDADC3AgEAAAABuwJAANgDACG8AkAA2AMAIcoCAQDXAwAhzQIBANcDACHOAgEA1wMAIc8CAQDXAwAh0AIBAOwDACHRAgEA7AMAIdICAQDsAwAh0wICAPcDACHUAkAA8gMAIdUCQADyAwAh1gIBAOwDACHXAgEA7AMAIdgCAQDsAwAh2QIBAOwDACHmAgAA9QMAIAMAAADNAgAgAQAAzgIAMAIAAM8CACAM4AEAAPMDACC0AgAA9AMAMLUCAADRAgAQtgIAAPQDADC3AgEA1wMAIboCQADYAwAhuwJAANgDACG8AkAA2AMAIckCAQDXAwAhygIBANcDACHLAgEA7AMAIcwCAQDsAwAhA-ABAADsBAAgywIAAKYEACDMAgAApgQAIAzgAQAA8wMAILQCAAD0AwAwtQIAANECABC2AgAA9AMAMLcCAQAAAAG6AkAA2AMAIbsCQADYAwAhvAJAANgDACHJAgEAAAABygIBANcDACHLAgEA7AMAIcwCAQDsAwAhAwAAANECACABAADSAgAwAgAA0wIAIArgAQAA8wMAILQCAADxAwAwtQIAANUCABC2AgAA8QMAMLcCAQDXAwAhuwJAANgDACHKAgEA1wMAIdoCAQDXAwAh2wJAANgDACHcAkAA8gMAIQLgAQAA7AQAINwCAACmBAAgCuABAADzAwAgtAIAAPEDADC1AgAA1QIAELYCAADxAwAwtwIBAAAAAbsCQADYAwAhygIBANcDACHaAgEAAAAB2wJAANgDACHcAkAA8gMAIQMAAADVAgAgAQAA1gIAMAIAANcCACABAAAAzQIAIAEAAADRAgAgAQAAANUCACABAAAAywIAIA_hAQAA7gMAIOIBAADvAwAg4wEAAPADACC0AgAA6wMAMLUCAADdAgAQtgIAAOsDADC3AgEA1wMAIbsCQADYAwAhvAJAANgDACHdAgEA7AMAId4CAQDsAwAh3wIgAO0DACHgAgEA7AMAIeECAQDsAwAh4gIBANcDACEH4QEAAOkEACDiAQAA6gQAIOMBAADrBAAg3QIAAKYEACDeAgAApgQAIOACAACmBAAg4QIAAKYEACADAAAA3QIAIAEAAN4CADACAADLAgAgAwAAAN0CACABAADeAgAwAgAAywIAIAMAAADdAgAgAQAA3gIAMAIAAMsCACAM4QEAAOYEACDiAQAA5wQAIOMBAADoBAAgtwIBAAAAAbsCQAAAAAG8AkAAAAAB3QIBAAAAAd4CAQAAAAHfAiAAAAAB4AIBAAAAAeECAQAAAAHiAgEAAAABAQ0AAOICACAJtwIBAAAAAbsCQAAAAAG8AkAAAAAB3QIBAAAAAd4CAQAAAAHfAiAAAAAB4AIBAAAAAeECAQAAAAHiAgEAAAABAQ0AAOQCADABDQAA5AIAMAzhAQAAvwQAIOIBAADABAAg4wEAAMEEACC3AgEApAQAIbsCQAClBAAhvAJAAKUEACHdAgEAqgQAId4CAQCqBAAh3wIgAL4EACHgAgEAqgQAIeECAQCqBAAh4gIBAKQEACECAAAAywIAIA0AAOcCACAJtwIBAKQEACG7AkAApQQAIbwCQAClBAAh3QIBAKoEACHeAgEAqgQAId8CIAC-BAAh4AIBAKoEACHhAgEAqgQAIeICAQCkBAAhAgAAAN0CACANAADpAgAgAgAAAN0CACANAADpAgAgAwAAAMsCACAUAADiAgAgFQAA5wIAIAEAAADLAgAgAQAAAN0CACAHBwAAuwQAIBwAAL0EACAdAAC8BAAg3QIAAKYEACDeAgAApgQAIOACAACmBAAg4QIAAKYEACAMtAIAAOcDADC1AgAA8AIAELYCAADnAwAwtwIBAM8DACG7AkAA0AMAIbwCQADQAwAh3QIBANsDACHeAgEA2wMAId8CIADoAwAh4AIBANsDACHhAgEA2wMAIeICAQDPAwAhAwAAAN0CACABAADvAgAwGQAA8AIAIAMAAADdAgAgAQAA3gIAMAIAAMsCACABAAAA1wIAIAEAAADXAgAgAwAAANUCACABAADWAgAwAgAA1wIAIAMAAADVAgAgAQAA1gIAMAIAANcCACADAAAA1QIAIAEAANYCADACAADXAgAgB-ABAAC6BAAgtwIBAAAAAbsCQAAAAAHKAgEAAAAB2gIBAAAAAdsCQAAAAAHcAkAAAAABAQ0AAPgCACAGtwIBAAAAAbsCQAAAAAHKAgEAAAAB2gIBAAAAAdsCQAAAAAHcAkAAAAABAQ0AAPoCADABDQAA-gIAMAfgAQAAuQQAILcCAQCkBAAhuwJAAKUEACHKAgEApAQAIdoCAQCkBAAh2wJAAKUEACHcAkAAswQAIQIAAADXAgAgDQAA_QIAIAa3AgEApAQAIbsCQAClBAAhygIBAKQEACHaAgEApAQAIdsCQAClBAAh3AJAALMEACECAAAA1QIAIA0AAP8CACACAAAA1QIAIA0AAP8CACADAAAA1wIAIBQAAPgCACAVAAD9AgAgAQAAANcCACABAAAA1QIAIAQHAAC2BAAgHAAAuAQAIB0AALcEACDcAgAApgQAIAm0AgAA5gMAMLUCAACGAwAQtgIAAOYDADC3AgEAzwMAIbsCQADQAwAhygIBAM8DACHaAgEAzwMAIdsCQADQAwAh3AJAAOEDACEDAAAA1QIAIAEAAIUDADAZAACGAwAgAwAAANUCACABAADWAgAwAgAA1wIAIAEAAADPAgAgAQAAAM8CACADAAAAzQIAIAEAAM4CADACAADPAgAgAwAAAM0CACABAADOAgAwAgAAzwIAIAMAAADNAgAgAQAAzgIAMAIAAM8CACAS4AEAALUEACC3AgEAAAABuwJAAAAAAbwCQAAAAAHKAgEAAAABzQIBAAAAAc4CAQAAAAHPAgEAAAAB0AIBAAAAAdECAQAAAAHSAgEAAAAB0wICAAAAAdQCQAAAAAHVAkAAAAAB1gIBAAAAAdcCAQAAAAHYAgEAAAAB2QIBAAAAAQENAACOAwAgEbcCAQAAAAG7AkAAAAABvAJAAAAAAcoCAQAAAAHNAgEAAAABzgIBAAAAAc8CAQAAAAHQAgEAAAAB0QIBAAAAAdICAQAAAAHTAgIAAAAB1AJAAAAAAdUCQAAAAAHWAgEAAAAB1wIBAAAAAdgCAQAAAAHZAgEAAAABAQ0AAJADADABDQAAkAMAMBLgAQAAtAQAILcCAQCkBAAhuwJAAKUEACG8AkAApQQAIcoCAQCkBAAhzQIBAKQEACHOAgEApAQAIc8CAQCkBAAh0AIBAKoEACHRAgEAqgQAIdICAQCqBAAh0wICALIEACHUAkAAswQAIdUCQACzBAAh1gIBAKoEACHXAgEAqgQAIdgCAQCqBAAh2QIBAKoEACECAAAAzwIAIA0AAJMDACARtwIBAKQEACG7AkAApQQAIbwCQAClBAAhygIBAKQEACHNAgEApAQAIc4CAQCkBAAhzwIBAKQEACHQAgEAqgQAIdECAQCqBAAh0gIBAKoEACHTAgIAsgQAIdQCQACzBAAh1QJAALMEACHWAgEAqgQAIdcCAQCqBAAh2AIBAKoEACHZAgEAqgQAIQIAAADNAgAgDQAAlQMAIAIAAADNAgAgDQAAlQMAIAMAAADPAgAgFAAAjgMAIBUAAJMDACABAAAAzwIAIAEAAADNAgAgDwcAAK0EACAaAACuBAAgGwAAsQQAIBwAALAEACAdAACvBAAg0AIAAKYEACDRAgAApgQAINICAACmBAAg0wIAAKYEACDUAgAApgQAINUCAACmBAAg1gIAAKYEACDXAgAApgQAINgCAACmBAAg2QIAAKYEACAUtAIAAN8DADC1AgAAnAMAELYCAADfAwAwtwIBAM8DACG7AkAA0AMAIbwCQADQAwAhygIBAM8DACHNAgEAzwMAIc4CAQDPAwAhzwIBAM8DACHQAgEA2wMAIdECAQDbAwAh0gIBANsDACHTAgIA4AMAIdQCQADhAwAh1QJAAOEDACHWAgEA2wMAIdcCAQDbAwAh2AIBANsDACHZAgEA2wMAIQMAAADNAgAgAQAAmwMAMBkAAJwDACADAAAAzQIAIAEAAM4CADACAADPAgAgAQAAANMCACABAAAA0wIAIAMAAADRAgAgAQAA0gIAMAIAANMCACADAAAA0QIAIAEAANICADACAADTAgAgAwAAANECACABAADSAgAwAgAA0wIAIAngAQAArAQAILcCAQAAAAG6AkAAAAABuwJAAAAAAbwCQAAAAAHJAgEAAAABygIBAAAAAcsCAQAAAAHMAgEAAAABAQ0AAKQDACAItwIBAAAAAboCQAAAAAG7AkAAAAABvAJAAAAAAckCAQAAAAHKAgEAAAABywIBAAAAAcwCAQAAAAEBDQAApgMAMAENAACmAwAwCeABAACrBAAgtwIBAKQEACG6AkAApQQAIbsCQAClBAAhvAJAAKUEACHJAgEApAQAIcoCAQCkBAAhywIBAKoEACHMAgEAqgQAIQIAAADTAgAgDQAAqQMAIAi3AgEApAQAIboCQAClBAAhuwJAAKUEACG8AkAApQQAIckCAQCkBAAhygIBAKQEACHLAgEAqgQAIcwCAQCqBAAhAgAAANECACANAACrAwAgAgAAANECACANAACrAwAgAwAAANMCACAUAACkAwAgFQAAqQMAIAEAAADTAgAgAQAAANECACAFBwAApwQAIBwAAKkEACAdAACoBAAgywIAAKYEACDMAgAApgQAIAu0AgAA2gMAMLUCAACyAwAQtgIAANoDADC3AgEAzwMAIboCQADQAwAhuwJAANADACG8AkAA0AMAIckCAQDPAwAhygIBAM8DACHLAgEA2wMAIcwCAQDbAwAhAwAAANECACABAACxAwAwGQAAsgMAIAMAAADRAgAgAQAA0gIAMAIAANMCACAKtAIAANYDADC1AgAAuAMAELYCAADWAwAwtwIBAAAAAbgCAQDXAwAhuQIBANcDACG6AkAA2AMAIbsCQADYAwAhvAJAANgDACHIAgAA2QMAIAEAAAC1AwAgAQAAALUDACAJtAIAANYDADC1AgAAuAMAELYCAADWAwAwtwIBANcDACG4AgEA1wMAIbkCAQDXAwAhugJAANgDACG7AkAA2AMAIbwCQADYAwAhAAMAAAC4AwAgAQAAuQMAMAIAALUDACADAAAAuAMAIAEAALkDADACAAC1AwAgAwAAALgDACABAAC5AwAwAgAAtQMAIAa3AgEAAAABuAIBAAAAAbkCAQAAAAG6AkAAAAABuwJAAAAAAbwCQAAAAAEBDQAAvQMAIAa3AgEAAAABuAIBAAAAAbkCAQAAAAG6AkAAAAABuwJAAAAAAbwCQAAAAAEBDQAAvwMAMAENAAC_AwAwBrcCAQCkBAAhuAIBAKQEACG5AgEApAQAIboCQAClBAAhuwJAAKUEACG8AkAApQQAIQIAAAC1AwAgDQAAwgMAIAa3AgEApAQAIbgCAQCkBAAhuQIBAKQEACG6AkAApQQAIbsCQAClBAAhvAJAAKUEACECAAAAuAMAIA0AAMQDACACAAAAuAMAIA0AAMQDACADAAAAtQMAIBQAAL0DACAVAADCAwAgAQAAALUDACABAAAAuAMAIAMHAAChBAAgHAAAowQAIB0AAKIEACAJtAIAAM4DADC1AgAAywMAELYCAADOAwAwtwIBAM8DACG4AgEAzwMAIbkCAQDPAwAhugJAANADACG7AkAA0AMAIbwCQADQAwAhAwAAALgDACABAADKAwAwGQAAywMAIAMAAAC4AwAgAQAAuQMAMAIAALUDACAJtAIAAM4DADC1AgAAywMAELYCAADOAwAwtwIBAM8DACG4AgEAzwMAIbkCAQDPAwAhugJAANADACG7AkAA0AMAIbwCQADQAwAhDgcAANIDACAcAADVAwAgHQAA1QMAIL0CAQAAAAG-AgEAAAAEvwIBAAAABMACAQAAAAHBAgEAAAABwgIBAAAAAcMCAQAAAAHEAgEA1AMAIcUCAQAAAAHGAgEAAAABxwIBAAAAAQsHAADSAwAgHAAA0wMAIB0AANMDACC9AkAAAAABvgJAAAAABL8CQAAAAATAAkAAAAABwQJAAAAAAcICQAAAAAHDAkAAAAABxAJAANEDACELBwAA0gMAIBwAANMDACAdAADTAwAgvQJAAAAAAb4CQAAAAAS_AkAAAAAEwAJAAAAAAcECQAAAAAHCAkAAAAABwwJAAAAAAcQCQADRAwAhCL0CAgAAAAG-AgIAAAAEvwICAAAABMACAgAAAAHBAgIAAAABwgICAAAAAcMCAgAAAAHEAgIA0gMAIQi9AkAAAAABvgJAAAAABL8CQAAAAATAAkAAAAABwQJAAAAAAcICQAAAAAHDAkAAAAABxAJAANMDACEOBwAA0gMAIBwAANUDACAdAADVAwAgvQIBAAAAAb4CAQAAAAS_AgEAAAAEwAIBAAAAAcECAQAAAAHCAgEAAAABwwIBAAAAAcQCAQDUAwAhxQIBAAAAAcYCAQAAAAHHAgEAAAABC70CAQAAAAG-AgEAAAAEvwIBAAAABMACAQAAAAHBAgEAAAABwgIBAAAAAcMCAQAAAAHEAgEA1QMAIcUCAQAAAAHGAgEAAAABxwIBAAAAAQm0AgAA1gMAMLUCAAC4AwAQtgIAANYDADC3AgEA1wMAIbgCAQDXAwAhuQIBANcDACG6AkAA2AMAIbsCQADYAwAhvAJAANgDACELvQIBAAAAAb4CAQAAAAS_AgEAAAAEwAIBAAAAAcECAQAAAAHCAgEAAAABwwIBAAAAAcQCAQDVAwAhxQIBAAAAAcYCAQAAAAHHAgEAAAABCL0CQAAAAAG-AkAAAAAEvwJAAAAABMACQAAAAAHBAkAAAAABwgJAAAAAAcMCQAAAAAHEAkAA0wMAIQK4AgEAAAABuQIBAAAAAQu0AgAA2gMAMLUCAACyAwAQtgIAANoDADC3AgEAzwMAIboCQADQAwAhuwJAANADACG8AkAA0AMAIckCAQDPAwAhygIBAM8DACHLAgEA2wMAIcwCAQDbAwAhDgcAAN0DACAcAADeAwAgHQAA3gMAIL0CAQAAAAG-AgEAAAAFvwIBAAAABcACAQAAAAHBAgEAAAABwgIBAAAAAcMCAQAAAAHEAgEA3AMAIcUCAQAAAAHGAgEAAAABxwIBAAAAAQ4HAADdAwAgHAAA3gMAIB0AAN4DACC9AgEAAAABvgIBAAAABb8CAQAAAAXAAgEAAAABwQIBAAAAAcICAQAAAAHDAgEAAAABxAIBANwDACHFAgEAAAABxgIBAAAAAccCAQAAAAEIvQICAAAAAb4CAgAAAAW_AgIAAAAFwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgDdAwAhC70CAQAAAAG-AgEAAAAFvwIBAAAABcACAQAAAAHBAgEAAAABwgIBAAAAAcMCAQAAAAHEAgEA3gMAIcUCAQAAAAHGAgEAAAABxwIBAAAAARS0AgAA3wMAMLUCAACcAwAQtgIAAN8DADC3AgEAzwMAIbsCQADQAwAhvAJAANADACHKAgEAzwMAIc0CAQDPAwAhzgIBAM8DACHPAgEAzwMAIdACAQDbAwAh0QIBANsDACHSAgEA2wMAIdMCAgDgAwAh1AJAAOEDACHVAkAA4QMAIdYCAQDbAwAh1wIBANsDACHYAgEA2wMAIdkCAQDbAwAhDQcAAN0DACAaAADlAwAgGwAA3QMAIBwAAN0DACAdAADdAwAgvQICAAAAAb4CAgAAAAW_AgIAAAAFwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgDkAwAhCwcAAN0DACAcAADjAwAgHQAA4wMAIL0CQAAAAAG-AkAAAAAFvwJAAAAABcACQAAAAAHBAkAAAAABwgJAAAAAAcMCQAAAAAHEAkAA4gMAIQsHAADdAwAgHAAA4wMAIB0AAOMDACC9AkAAAAABvgJAAAAABb8CQAAAAAXAAkAAAAABwQJAAAAAAcICQAAAAAHDAkAAAAABxAJAAOIDACEIvQJAAAAAAb4CQAAAAAW_AkAAAAAFwAJAAAAAAcECQAAAAAHCAkAAAAABwwJAAAAAAcQCQADjAwAhDQcAAN0DACAaAADlAwAgGwAA3QMAIBwAAN0DACAdAADdAwAgvQICAAAAAb4CAgAAAAW_AgIAAAAFwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgDkAwAhCL0CCAAAAAG-AggAAAAFvwIIAAAABcACCAAAAAHBAggAAAABwgIIAAAAAcMCCAAAAAHEAggA5QMAIQm0AgAA5gMAMLUCAACGAwAQtgIAAOYDADC3AgEAzwMAIbsCQADQAwAhygIBAM8DACHaAgEAzwMAIdsCQADQAwAh3AJAAOEDACEMtAIAAOcDADC1AgAA8AIAELYCAADnAwAwtwIBAM8DACG7AkAA0AMAIbwCQADQAwAh3QIBANsDACHeAgEA2wMAId8CIADoAwAh4AIBANsDACHhAgEA2wMAIeICAQDPAwAhBQcAANIDACAcAADqAwAgHQAA6gMAIL0CIAAAAAHEAiAA6QMAIQUHAADSAwAgHAAA6gMAIB0AAOoDACC9AiAAAAABxAIgAOkDACECvQIgAAAAAcQCIADqAwAhD-EBAADuAwAg4gEAAO8DACDjAQAA8AMAILQCAADrAwAwtQIAAN0CABC2AgAA6wMAMLcCAQDXAwAhuwJAANgDACG8AkAA2AMAId0CAQDsAwAh3gIBAOwDACHfAiAA7QMAIeACAQDsAwAh4QIBAOwDACHiAgEA1wMAIQu9AgEAAAABvgIBAAAABb8CAQAAAAXAAgEAAAABwQIBAAAAAcICAQAAAAHDAgEAAAABxAIBAN4DACHFAgEAAAABxgIBAAAAAccCAQAAAAECvQIgAAAAAcQCIADqAwAhA-MCAADNAgAg5AIAAM0CACDlAgAAzQIAIAPjAgAA0QIAIOQCAADRAgAg5QIAANECACAD4wIAANUCACDkAgAA1QIAIOUCAADVAgAgCuABAADzAwAgtAIAAPEDADC1AgAA1QIAELYCAADxAwAwtwIBANcDACG7AkAA2AMAIcoCAQDXAwAh2gIBANcDACHbAkAA2AMAIdwCQADyAwAhCL0CQAAAAAG-AkAAAAAFvwJAAAAABcACQAAAAAHBAkAAAAABwgJAAAAAAcMCQAAAAAHEAkAA4wMAIRHhAQAA7gMAIOIBAADvAwAg4wEAAPADACC0AgAA6wMAMLUCAADdAgAQtgIAAOsDADC3AgEA1wMAIbsCQADYAwAhvAJAANgDACHdAgEA7AMAId4CAQDsAwAh3wIgAO0DACHgAgEA7AMAIeECAQDsAwAh4gIBANcDACG_AwAA3QIAIMADAADdAgAgDOABAADzAwAgtAIAAPQDADC1AgAA0QIAELYCAAD0AwAwtwIBANcDACG6AkAA2AMAIbsCQADYAwAhvAJAANgDACHJAgEA1wMAIcoCAQDXAwAhywIBAOwDACHMAgEA7AMAIQLOAgEAAAABzwIBAAAAARXgAQAA8wMAILQCAAD2AwAwtQIAAM0CABC2AgAA9gMAMLcCAQDXAwAhuwJAANgDACG8AkAA2AMAIcoCAQDXAwAhzQIBANcDACHOAgEA1wMAIc8CAQDXAwAh0AIBAOwDACHRAgEA7AMAIdICAQDsAwAh0wICAPcDACHUAkAA8gMAIdUCQADyAwAh1gIBAOwDACHXAgEA7AMAIdgCAQDsAwAh2QIBAOwDACEIvQICAAAAAb4CAgAAAAW_AgIAAAAFwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgDdAwAhCrQCAAD4AwAwtQIAAMgCABC2AgAA-AMAMNsCAQDbAwAh5wIBAM8DACHoAgEAzwMAIekCAQDPAwAh6gIBANsDACHrAgEAzwMAIewCAQDPAwAhCrQCAAD5AwAwtQIAALUCABC2AgAA-QMAMNsCAQDsAwAh5wIBANcDACHoAgEA1wMAIekCAQDXAwAh6gIBAOwDACHrAgEA1wMAIewCAQDXAwAhCLQCAAD6AwAwtQIAAK8CABC2AgAA-gMAMLwCAQDPAwAh6AIBAM8DACHtAgEAzwMAIe4CAQDPAwAh7wIBAM8DACEItAIAAPsDADC1AgAAnAIAELYCAAD7AwAwvAIBANcDACHoAgEA1wMAIe0CAQDXAwAh7gIBANcDACHvAgEA1wMAIQPtAgEAAAAB7gIBAAAAAe8CAQAAAAEKtAIAAP0DADC1AgAAlgIAELYCAAD9AwAwuwIBAM8DACHbAgEAzwMAIegCAQDPAwAh8QIBAM8DACHyAgEA2wMAIfMCAQDbAwAh9AIBAM8DACEKtAIAAP4DADC1AgAAgwIAELYCAAD-AwAwuwIBANcDACHbAgEA1wMAIegCAQDXAwAh8QIBANcDACHyAgEA7AMAIfMCAQDsAwAh9AIBANcDACEMtAIAAP8DADC1AgAA_QEAELYCAAD_AwAwvAIBAM8DACHoAgEAzwMAIfMCAQDPAwAh9QIBAM8DACH2AgEAzwMAIfcCAgCABAAh-AIBANsDACH5AgEA2wMAIfoCAQDPAwAhDQcAANIDACAaAACCBAAgGwAA0gMAIBwAANIDACAdAADSAwAgvQICAAAAAb4CAgAAAAS_AgIAAAAEwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgCBBAAhDQcAANIDACAaAACCBAAgGwAA0gMAIBwAANIDACAdAADSAwAgvQICAAAAAb4CAgAAAAS_AgIAAAAEwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgCBBAAhCL0CCAAAAAG-AggAAAAEvwIIAAAABMACCAAAAAHBAggAAAABwgIIAAAAAcMCCAAAAAHEAggAggQAIQy0AgAAgwQAMLUCAADqAQAQtgIAAIMEADC8AgEA1wMAIegCAQDXAwAh8wIBANcDACH1AgEA1wMAIfYCAQDXAwAh9wICAIQEACH4AgEA7AMAIfkCAQDsAwAh-gIBANcDACEIvQICAAAAAb4CAgAAAAS_AgIAAAAEwAICAAAAAcECAgAAAAHCAgIAAAABwwICAAAAAcQCAgDSAwAhCLQCAACFBAAwtQIAAOQBABC2AgAAhQQAMLwCAQDPAwAh6AIBAM8DACH1AgEAzwMAIfYCAQDPAwAh9wICAIAEACEItAIAAIYEADC1AgAA0QEAELYCAACGBAAwvAIBANcDACHoAgEA1wMAIfUCAQDXAwAh9gIBANcDACH3AgIAhAQAIQ20AgAAhwQAMLUCAADLAQAQtgIAAIcEADC7AgEAzwMAIbwCAQDPAwAh6AIBAM8DACH7AgEAzwMAIfwCAQDPAwAh_QIBAM8DACH-AgEAzwMAIf8CAQDPAwAhgAMBAM8DACGBAwEAzwMAIQ20AgAAiAQAMLUCAAC4AQAQtgIAAIgEADC7AgEA1wMAIbwCAQDXAwAh6AIBANcDACH7AgEA1wMAIfwCAQDXAwAh_QIBANcDACH-AgEA1wMAIf8CAQDXAwAhgAMBANcDACGBAwEA1wMAIQe0AgAAiQQAMLUCAACyAQAQtgIAAIkEADC8AgEAzwMAIe0CAQDPAwAh7gIBAM8DACGCAwEAzwMAIQe0AgAAigQAMLUCAACfAQAQtgIAAIoEADC8AgEA1wMAIe0CAQDXAwAh7gIBANcDACGCAwEA1wMAIQLtAgEAAAAB7gIBAAAAAQa0AgAAjAQAMLUCAACZAQAQtgIAAIwEADC8AgEAzwMAIe0CAQDPAwAhhAMgAOgDACEGtAIAAI0EADC1AgAAhgEAELYCAACNBAAwvAIBANcDACHtAgEA1wMAIYQDIADtAwAhB7QCAACOBAAwtQIAAIABABC2AgAAjgQAMLwCAQDPAwAh7QIBAM8DACGCAwEAzwMAIYUDAQDbAwAhB7QCAACPBAAwtQIAAG0AELYCAACPBAAwvAIBANcDACHtAgEA1wMAIYIDAQDXAwAhhQMBAOwDACEItAIAAJAEADC1AgAAZwAQtgIAAJAEADC8AgEAzwMAIe0CAQDPAwAhhgMBAM8DACGHAwIAgAQAIYgDAQDPAwAhCQMAAJIEACC0AgAAkQQAMLUCAAALABC2AgAAkQQAMLwCAQDXAwAh7QIBANcDACGGAwEA1wMAIYcDAgCEBAAhiAMBANcDACEXBAAAmgQAIAUAAJsEACAGAACcBAAgtAIAAJkEADC1AgAAEAAQtgIAAJkEADC8AgEA1wMAIekCAQDXAwAh7QIBANcDACGGAwEA1wMAIYcDAgCEBAAhlAMBANcDACGVAwEA7AMAIbYDAQDsAwAhtwMBAOwDACG4AwEA7AMAIbkDAQDsAwAhugMBAOwDACG7AwEA7AMAIbwDAQDsAwAhvQMBANcDACG_AwAAEAAgwAMAABAAICi0AgAAkwQAMLUCAABPABC2AgAAkwQAMLwCAQDPAwAh6AIBAM8DACHpAgEAzwMAIe0CAQDPAwAhhgMBAM8DACGJAwEAzwMAIYoDAQDPAwAhiwMBAM8DACGMAwEA2wMAIY0DAQDbAwAhjgMBAM8DACGPAwIAgAQAIZADAQDbAwAhkQMBANsDACGSAwEA2wMAIZMDAQDbAwAhlAMBANsDACGVAwEA2wMAIZYDAgCABAAhlwMBANsDACGYAwEA2wMAIZkDAQDbAwAhmgMBANsDACGbAwIA4AMAIZwDAgDgAwAhnQMCAOADACGeAwEA2wMAIZ8DAQDbAwAhoAMCAOADACGhAwIA4AMAIaIDAQDbAwAhowMBANsDACGkAwEA2wMAIaUDAQDbAwAhpgMgAJQEACGnAyAAlAQAIagDIACUBAAhBQcAAN0DACAcAACWBAAgHQAAlgQAIL0CIAAAAAHEAiAAlQQAIQUHAADdAwAgHAAAlgQAIB0AAJYEACC9AiAAAAABxAIgAJUEACECvQIgAAAAAcQCIACWBAAhFrQCAACXBAAwtQIAADkAELYCAACXBAAw6QIBAM8DACHtAgEAzwMAIYYDAQDPAwAhjgMBAM8DACGQAwEA2wMAIZkDAQDbAwAhqQMBAM8DACGqAwEAzwMAIasDAQDbAwAhrAMBANsDACGtAwEA2wMAIa4DAQDbAwAhrwMBAM8DACGwAwEAzwMAIbEDAQDbAwAhsgMBANsDACGzAwEA2wMAIbQDAgCABAAhtQMBAM8DACEStAIAAJgEADC1AgAAIwAQtgIAAJgEADC8AgEAzwMAIekCAQDPAwAh7QIBAM8DACGGAwEAzwMAIYcDAgCABAAhlAMBAM8DACGVAwEA2wMAIbYDAQDbAwAhtwMBANsDACG4AwEA2wMAIbkDAQDbAwAhugMBANsDACG7AwEA2wMAIbwDAQDbAwAhvQMBAM8DACEVBAAAmgQAIAUAAJsEACAGAACcBAAgtAIAAJkEADC1AgAAEAAQtgIAAJkEADC8AgEA1wMAIekCAQDXAwAh7QIBANcDACGGAwEA1wMAIYcDAgCEBAAhlAMBANcDACGVAwEA7AMAIbYDAQDsAwAhtwMBAOwDACG4AwEA7AMAIbkDAQDsAwAhugMBAOwDACG7AwEA7AMAIbwDAQDsAwAhvQMBANcDACED4wIAAAMAIOQCAAADACDlAgAAAwAgA-MCAAAHACDkAgAABwAg5QIAAAcAIAsDAACSBAAgtAIAAJEEADC1AgAACwAQtgIAAJEEADC8AgEA1wMAIe0CAQDXAwAhhgMBANcDACGHAwIAhAQAIYgDAQDXAwAhvwMAAAsAIMADAAALACADhgMBAAAAAYkDAQAAAAGPAwIAAAABKQMAAJIEACC0AgAAngQAMLUCAAAHABC2AgAAngQAMLwCAQDXAwAh6AIBANcDACHpAgEA1wMAIe0CAQDXAwAhhgMBANcDACGJAwEA1wMAIYoDAQDXAwAhiwMBANcDACGMAwEA7AMAIY0DAQDsAwAhjgMBANcDACGPAwIAhAQAIZADAQDsAwAhkQMBAOwDACGSAwEA7AMAIZMDAQDsAwAhlAMBAOwDACGVAwEA7AMAIZYDAgCEBAAhlwMBAOwDACGYAwEA7AMAIZkDAQDsAwAhmgMBAOwDACGbAwIA9wMAIZwDAgD3AwAhnQMCAPcDACGeAwEA7AMAIZ8DAQDsAwAhoAMCAPcDACGhAwIA9wMAIaIDAQDsAwAhowMBAOwDACGkAwEA7AMAIaUDAQDsAwAhpgMgAJ8EACGnAyAAnwQAIagDIACfBAAhAr0CIAAAAAHEAiAAlgQAIRcDAACSBAAgtAIAAKAEADC1AgAAAwAQtgIAAKAEADDpAgEA1wMAIe0CAQDXAwAhhgMBANcDACGOAwEA1wMAIZADAQDsAwAhmQMBAOwDACGpAwEA1wMAIaoDAQDXAwAhqwMBAOwDACGsAwEA7AMAIa0DAQDsAwAhrgMBAOwDACGvAwEA1wMAIbADAQDXAwAhsQMBAOwDACGyAwEA7AMAIbMDAQDsAwAhtAMCAIQEACG1AwEA1wMAIQAAAAHEAwEAAAABAcQDQAAAAAEAAAAAAcQDAQAAAAEFFAAA7QUAIBUAAPAFACDBAwAA7gUAIMIDAADvBQAgxwMAAMsCACADFAAA7QUAIMEDAADuBQAgxwMAAMsCACAAAAAAAAXEAwIAAAABygMCAAAAAcsDAgAAAAHMAwIAAAABzQMCAAAAAQHEA0AAAAABBRQAAOgFACAVAADrBQAgwQMAAOkFACDCAwAA6gUAIMcDAADLAgAgAxQAAOgFACDBAwAA6QUAIMcDAADLAgAgAAAABRQAAOMFACAVAADmBQAgwQMAAOQFACDCAwAA5QUAIMcDAADLAgAgAxQAAOMFACDBAwAA5AUAIMcDAADLAgAgAAAAAcQDIAAAAAELFAAA2gQAMBUAAN8EADDBAwAA2wQAMMIDAADcBAAwwwMAAN0EACDEAwAA3gQAMMUDAADeBAAwxgMAAN4EADDHAwAA3gQAMMgDAADgBAAwyQMAAOEEADALFAAAzgQAMBUAANMEADDBAwAAzwQAMMIDAADQBAAwwwMAANEEACDEAwAA0gQAMMUDAADSBAAwxgMAANIEADDHAwAA0gQAMMgDAADUBAAwyQMAANUEADALFAAAwgQAMBUAAMcEADDBAwAAwwQAMMIDAADEBAAwwwMAAMUEACDEAwAAxgQAMMUDAADGBAAwxgMAAMYEADDHAwAAxgQAMMgDAADIBAAwyQMAAMkEADAFtwIBAAAAAbsCQAAAAAHaAgEAAAAB2wJAAAAAAdwCQAAAAAECAAAA1wIAIBQAAM0EACADAAAA1wIAIBQAAM0EACAVAADMBAAgAQ0AAOIFADAK4AEAAPMDACC0AgAA8QMAMLUCAADVAgAQtgIAAPEDADC3AgEAAAABuwJAANgDACHKAgEA1wMAIdoCAQAAAAHbAkAA2AMAIdwCQADyAwAhAgAAANcCACANAADMBAAgAgAAAMoEACANAADLBAAgCbQCAADJBAAwtQIAAMoEABC2AgAAyQQAMLcCAQDXAwAhuwJAANgDACHKAgEA1wMAIdoCAQDXAwAh2wJAANgDACHcAkAA8gMAIQm0AgAAyQQAMLUCAADKBAAQtgIAAMkEADC3AgEA1wMAIbsCQADYAwAhygIBANcDACHaAgEA1wMAIdsCQADYAwAh3AJAAPIDACEFtwIBAKQEACG7AkAApQQAIdoCAQCkBAAh2wJAAKUEACHcAkAAswQAIQW3AgEApAQAIbsCQAClBAAh2gIBAKQEACHbAkAApQQAIdwCQACzBAAhBbcCAQAAAAG7AkAAAAAB2gIBAAAAAdsCQAAAAAHcAkAAAAABB7cCAQAAAAG6AkAAAAABuwJAAAAAAbwCQAAAAAHJAgEAAAABywIBAAAAAcwCAQAAAAECAAAA0wIAIBQAANkEACADAAAA0wIAIBQAANkEACAVAADYBAAgAQ0AAOEFADAM4AEAAPMDACC0AgAA9AMAMLUCAADRAgAQtgIAAPQDADC3AgEAAAABugJAANgDACG7AkAA2AMAIbwCQADYAwAhyQIBAAAAAcoCAQDXAwAhywIBAOwDACHMAgEA7AMAIQIAAADTAgAgDQAA2AQAIAIAAADWBAAgDQAA1wQAIAu0AgAA1QQAMLUCAADWBAAQtgIAANUEADC3AgEA1wMAIboCQADYAwAhuwJAANgDACG8AkAA2AMAIckCAQDXAwAhygIBANcDACHLAgEA7AMAIcwCAQDsAwAhC7QCAADVBAAwtQIAANYEABC2AgAA1QQAMLcCAQDXAwAhugJAANgDACG7AkAA2AMAIbwCQADYAwAhyQIBANcDACHKAgEA1wMAIcsCAQDsAwAhzAIBAOwDACEHtwIBAKQEACG6AkAApQQAIbsCQAClBAAhvAJAAKUEACHJAgEApAQAIcsCAQCqBAAhzAIBAKoEACEHtwIBAKQEACG6AkAApQQAIbsCQAClBAAhvAJAAKUEACHJAgEApAQAIcsCAQCqBAAhzAIBAKoEACEHtwIBAAAAAboCQAAAAAG7AkAAAAABvAJAAAAAAckCAQAAAAHLAgEAAAABzAIBAAAAARC3AgEAAAABuwJAAAAAAbwCQAAAAAHNAgEAAAABzgIBAAAAAc8CAQAAAAHQAgEAAAAB0QIBAAAAAdICAQAAAAHTAgIAAAAB1AJAAAAAAdUCQAAAAAHWAgEAAAAB1wIBAAAAAdgCAQAAAAHZAgEAAAABAgAAAM8CACAUAADlBAAgAwAAAM8CACAUAADlBAAgFQAA5AQAIAENAADgBQAwFuABAADzAwAgtAIAAPYDADC1AgAAzQIAELYCAAD2AwAwtwIBAAAAAbsCQADYAwAhvAJAANgDACHKAgEA1wMAIc0CAQDXAwAhzgIBANcDACHPAgEA1wMAIdACAQDsAwAh0QIBAOwDACHSAgEA7AMAIdMCAgD3AwAh1AJAAPIDACHVAkAA8gMAIdYCAQDsAwAh1wIBAOwDACHYAgEA7AMAIdkCAQDsAwAh5gIAAPUDACACAAAAzwIAIA0AAOQEACACAAAA4gQAIA0AAOMEACAUtAIAAOEEADC1AgAA4gQAELYCAADhBAAwtwIBANcDACG7AkAA2AMAIbwCQADYAwAhygIBANcDACHNAgEA1wMAIc4CAQDXAwAhzwIBANcDACHQAgEA7AMAIdECAQDsAwAh0gIBAOwDACHTAgIA9wMAIdQCQADyAwAh1QJAAPIDACHWAgEA7AMAIdcCAQDsAwAh2AIBAOwDACHZAgEA7AMAIRS0AgAA4QQAMLUCAADiBAAQtgIAAOEEADC3AgEA1wMAIbsCQADYAwAhvAJAANgDACHKAgEA1wMAIc0CAQDXAwAhzgIBANcDACHPAgEA1wMAIdACAQDsAwAh0QIBAOwDACHSAgEA7AMAIdMCAgD3AwAh1AJAAPIDACHVAkAA8gMAIdYCAQDsAwAh1wIBAOwDACHYAgEA7AMAIdkCAQDsAwAhELcCAQCkBAAhuwJAAKUEACG8AkAApQQAIc0CAQCkBAAhzgIBAKQEACHPAgEApAQAIdACAQCqBAAh0QIBAKoEACHSAgEAqgQAIdMCAgCyBAAh1AJAALMEACHVAkAAswQAIdYCAQCqBAAh1wIBAKoEACHYAgEAqgQAIdkCAQCqBAAhELcCAQCkBAAhuwJAAKUEACG8AkAApQQAIc0CAQCkBAAhzgIBAKQEACHPAgEApAQAIdACAQCqBAAh0QIBAKoEACHSAgEAqgQAIdMCAgCyBAAh1AJAALMEACHVAkAAswQAIdYCAQCqBAAh1wIBAKoEACHYAgEAqgQAIdkCAQCqBAAhELcCAQAAAAG7AkAAAAABvAJAAAAAAc0CAQAAAAHOAgEAAAABzwIBAAAAAdACAQAAAAHRAgEAAAAB0gIBAAAAAdMCAgAAAAHUAkAAAAAB1QJAAAAAAdYCAQAAAAHXAgEAAAAB2AIBAAAAAdkCAQAAAAEEFAAA2gQAMMEDAADbBAAwwwMAAN0EACDHAwAA3gQAMAQUAADOBAAwwQMAAM8EADDDAwAA0QQAIMcDAADSBAAwBBQAAMIEADDBAwAAwwQAMMMDAADFBAAgxwMAAMYEADAAAAAH4QEAAOkEACDiAQAA6gQAIOMBAADrBAAg3QIAAKYEACDeAgAApgQAIOACAACmBAAg4QIAAKYEACAAAAAAAAAAAAAAAAAAAAXEAwIAAAABygMCAAAAAcsDAgAAAAHMAwIAAAABzQMCAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFAAA2wUAIBUAAN4FACDBAwAA3AUAIMIDAADdBQAgxwMAAAEAIAMUAADbBQAgwQMAANwFACDHAwAAAQAgCwQAAMwFACAFAADNBQAgBgAAzgUAIJUDAACmBAAgtgMAAKYEACC3AwAApgQAILgDAACmBAAguQMAAKYEACC6AwAApgQAILsDAACmBAAgvAMAAKYEACAAAAAAAAHEAyAAAAABBRQAANYFACAVAADZBQAgwQMAANcFACDCAwAA2AUAIMcDAAABACADFAAA1gUAIMEDAADXBQAgxwMAAAEAIAAAAAAABRQAANEFACAVAADUBQAgwQMAANIFACDCAwAA0wUAIMcDAAABACADFAAA0QUAIMEDAADSBQAgxwMAAAEAIAAAAAAACxQAAL0FADAVAADCBQAwwQMAAL4FADDCAwAAvwUAMMMDAADABQAgxAMAAMEFADDFAwAAwQUAMMYDAADBBQAwxwMAAMEFADDIAwAAwwUAMMkDAADEBQAwCxQAALEFADAVAAC2BQAwwQMAALIFADDCAwAAswUAMMMDAAC0BQAgxAMAALUFADDFAwAAtQUAMMYDAAC1BQAwxwMAALUFADDIAwAAtwUAMMkDAAC4BQAwBxQAAKwFACAVAACvBQAgwQMAAK0FACDCAwAArgUAIMUDAAALACDGAwAACwAgxwMAAFIAIAS8AgEAAAAB7QIBAAAAAYcDAgAAAAGIAwEAAAABAgAAAFIAIBQAAKwFACADAAAACwAgFAAArAUAIBUAALAFACAGAAAACwAgDQAAsAUAILwCAQCkBAAh7QIBAKQEACGHAwIA-wQAIYgDAQCkBAAhBLwCAQCkBAAh7QIBAKQEACGHAwIA-wQAIYgDAQCkBAAhJLwCAQAAAAHoAgEAAAAB6QIBAAAAAe0CAQAAAAGJAwEAAAABigMBAAAAAYsDAQAAAAGMAwEAAAABjQMBAAAAAY4DAQAAAAGPAwIAAAABkAMBAAAAAZEDAQAAAAGSAwEAAAABkwMBAAAAAZQDAQAAAAGVAwEAAAABlgMCAAAAAZcDAQAAAAGYAwEAAAABmQMBAAAAAZoDAQAAAAGbAwIAAAABnAMCAAAAAZ0DAgAAAAGeAwEAAAABnwMBAAAAAaADAgAAAAGhAwIAAAABogMBAAAAAaMDAQAAAAGkAwEAAAABpQMBAAAAAaYDIAAAAAGnAyAAAAABqAMgAAAAAQIAAAAJACAUAAC8BQAgAwAAAAkAIBQAALwFACAVAAC7BQAgAQ0AANAFADAqAwAAkgQAILQCAACeBAAwtQIAAAcAELYCAACeBAAwvAIBANcDACHoAgEAAAAB6QIBANcDACHtAgEA1wMAIYYDAQDXAwAhiQMBANcDACGKAwEA1wMAIYsDAQDXAwAhjAMBAOwDACGNAwEA7AMAIY4DAQDXAwAhjwMCAIQEACGQAwEA7AMAIZEDAQDsAwAhkgMBAOwDACGTAwEA7AMAIZQDAQDsAwAhlQMBAOwDACGWAwIAhAQAIZcDAQDsAwAhmAMBAOwDACGZAwEA7AMAIZoDAQDsAwAhmwMCAPcDACGcAwIA9wMAIZ0DAgD3AwAhngMBAOwDACGfAwEA7AMAIaADAgD3AwAhoQMCAPcDACGiAwEA7AMAIaMDAQDsAwAhpAMBAOwDACGlAwEA7AMAIaYDIACfBAAhpwMgAJ8EACGoAyAAnwQAIb4DAACdBAAgAgAAAAkAIA0AALsFACACAAAAuQUAIA0AALoFACAotAIAALgFADC1AgAAuQUAELYCAAC4BQAwvAIBANcDACHoAgEA1wMAIekCAQDXAwAh7QIBANcDACGGAwEA1wMAIYkDAQDXAwAhigMBANcDACGLAwEA1wMAIYwDAQDsAwAhjQMBAOwDACGOAwEA1wMAIY8DAgCEBAAhkAMBAOwDACGRAwEA7AMAIZIDAQDsAwAhkwMBAOwDACGUAwEA7AMAIZUDAQDsAwAhlgMCAIQEACGXAwEA7AMAIZgDAQDsAwAhmQMBAOwDACGaAwEA7AMAIZsDAgD3AwAhnAMCAPcDACGdAwIA9wMAIZ4DAQDsAwAhnwMBAOwDACGgAwIA9wMAIaEDAgD3AwAhogMBAOwDACGjAwEA7AMAIaQDAQDsAwAhpQMBAOwDACGmAyAAnwQAIacDIACfBAAhqAMgAJ8EACEotAIAALgFADC1AgAAuQUAELYCAAC4BQAwvAIBANcDACHoAgEA1wMAIekCAQDXAwAh7QIBANcDACGGAwEA1wMAIYkDAQDXAwAhigMBANcDACGLAwEA1wMAIYwDAQDsAwAhjQMBAOwDACGOAwEA1wMAIY8DAgCEBAAhkAMBAOwDACGRAwEA7AMAIZIDAQDsAwAhkwMBAOwDACGUAwEA7AMAIZUDAQDsAwAhlgMCAIQEACGXAwEA7AMAIZgDAQDsAwAhmQMBAOwDACGaAwEA7AMAIZsDAgD3AwAhnAMCAPcDACGdAwIA9wMAIZ4DAQDsAwAhnwMBAOwDACGgAwIA9wMAIaEDAgD3AwAhogMBAOwDACGjAwEA7AMAIaQDAQDsAwAhpQMBAOwDACGmAyAAnwQAIacDIACfBAAhqAMgAJ8EACEkvAIBAKQEACHoAgEApAQAIekCAQCkBAAh7QIBAKQEACGJAwEApAQAIYoDAQCkBAAhiwMBAKQEACGMAwEAqgQAIY0DAQCqBAAhjgMBAKQEACGPAwIA-wQAIZADAQCqBAAhkQMBAKoEACGSAwEAqgQAIZMDAQCqBAAhlAMBAKoEACGVAwEAqgQAIZYDAgD7BAAhlwMBAKoEACGYAwEAqgQAIZkDAQCqBAAhmgMBAKoEACGbAwIAsgQAIZwDAgCyBAAhnQMCALIEACGeAwEAqgQAIZ8DAQCqBAAhoAMCALIEACGhAwIAsgQAIaIDAQCqBAAhowMBAKoEACGkAwEAqgQAIaUDAQCqBAAhpgMgAJoFACGnAyAAmgUAIagDIACaBQAhJLwCAQCkBAAh6AIBAKQEACHpAgEApAQAIe0CAQCkBAAhiQMBAKQEACGKAwEApAQAIYsDAQCkBAAhjAMBAKoEACGNAwEAqgQAIY4DAQCkBAAhjwMCAPsEACGQAwEAqgQAIZEDAQCqBAAhkgMBAKoEACGTAwEAqgQAIZQDAQCqBAAhlQMBAKoEACGWAwIA-wQAIZcDAQCqBAAhmAMBAKoEACGZAwEAqgQAIZoDAQCqBAAhmwMCALIEACGcAwIAsgQAIZ0DAgCyBAAhngMBAKoEACGfAwEAqgQAIaADAgCyBAAhoQMCALIEACGiAwEAqgQAIaMDAQCqBAAhpAMBAKoEACGlAwEAqgQAIaYDIACaBQAhpwMgAJoFACGoAyAAmgUAISS8AgEAAAAB6AIBAAAAAekCAQAAAAHtAgEAAAABiQMBAAAAAYoDAQAAAAGLAwEAAAABjAMBAAAAAY0DAQAAAAGOAwEAAAABjwMCAAAAAZADAQAAAAGRAwEAAAABkgMBAAAAAZMDAQAAAAGUAwEAAAABlQMBAAAAAZYDAgAAAAGXAwEAAAABmAMBAAAAAZkDAQAAAAGaAwEAAAABmwMCAAAAAZwDAgAAAAGdAwIAAAABngMBAAAAAZ8DAQAAAAGgAwIAAAABoQMCAAAAAaIDAQAAAAGjAwEAAAABpAMBAAAAAaUDAQAAAAGmAyAAAAABpwMgAAAAAagDIAAAAAES6QIBAAAAAe0CAQAAAAGOAwEAAAABkAMBAAAAAZkDAQAAAAGpAwEAAAABqgMBAAAAAasDAQAAAAGsAwEAAAABrQMBAAAAAa4DAQAAAAGvAwEAAAABsAMBAAAAAbEDAQAAAAGyAwEAAAABswMBAAAAAbQDAgAAAAG1AwEAAAABAgAAAAUAIBQAAMgFACADAAAABQAgFAAAyAUAIBUAAMcFACABDQAAzwUAMBcDAACSBAAgtAIAAKAEADC1AgAAAwAQtgIAAKAEADDpAgEA1wMAIe0CAQDXAwAhhgMBANcDACGOAwEA1wMAIZADAQDsAwAhmQMBAOwDACGpAwEAAAABqgMBANcDACGrAwEA7AMAIawDAQDsAwAhrQMBAOwDACGuAwEA7AMAIa8DAQDXAwAhsAMBANcDACGxAwEA7AMAIbIDAQDsAwAhswMBAOwDACG0AwIAhAQAIbUDAQDXAwAhAgAAAAUAIA0AAMcFACACAAAAxQUAIA0AAMYFACAWtAIAAMQFADC1AgAAxQUAELYCAADEBQAw6QIBANcDACHtAgEA1wMAIYYDAQDXAwAhjgMBANcDACGQAwEA7AMAIZkDAQDsAwAhqQMBANcDACGqAwEA1wMAIasDAQDsAwAhrAMBAOwDACGtAwEA7AMAIa4DAQDsAwAhrwMBANcDACGwAwEA1wMAIbEDAQDsAwAhsgMBAOwDACGzAwEA7AMAIbQDAgCEBAAhtQMBANcDACEWtAIAAMQFADC1AgAAxQUAELYCAADEBQAw6QIBANcDACHtAgEA1wMAIYYDAQDXAwAhjgMBANcDACGQAwEA7AMAIZkDAQDsAwAhqQMBANcDACGqAwEA1wMAIasDAQDsAwAhrAMBAOwDACGtAwEA7AMAIa4DAQDsAwAhrwMBANcDACGwAwEA1wMAIbEDAQDsAwAhsgMBAOwDACGzAwEA7AMAIbQDAgCEBAAhtQMBANcDACES6QIBAKQEACHtAgEApAQAIY4DAQCkBAAhkAMBAKoEACGZAwEAqgQAIakDAQCkBAAhqgMBAKQEACGrAwEAqgQAIawDAQCqBAAhrQMBAKoEACGuAwEAqgQAIa8DAQCkBAAhsAMBAKQEACGxAwEAqgQAIbIDAQCqBAAhswMBAKoEACG0AwIA-wQAIbUDAQCkBAAhEukCAQCkBAAh7QIBAKQEACGOAwEApAQAIZADAQCqBAAhmQMBAKoEACGpAwEApAQAIaoDAQCkBAAhqwMBAKoEACGsAwEAqgQAIa0DAQCqBAAhrgMBAKoEACGvAwEApAQAIbADAQCkBAAhsQMBAKoEACGyAwEAqgQAIbMDAQCqBAAhtAMCAPsEACG1AwEApAQAIRLpAgEAAAAB7QIBAAAAAY4DAQAAAAGQAwEAAAABmQMBAAAAAakDAQAAAAGqAwEAAAABqwMBAAAAAawDAQAAAAGtAwEAAAABrgMBAAAAAa8DAQAAAAGwAwEAAAABsQMBAAAAAbIDAQAAAAGzAwEAAAABtAMCAAAAAbUDAQAAAAEEFAAAvQUAMMEDAAC-BQAwwwMAAMAFACDHAwAAwQUAMAQUAACxBQAwwQMAALIFADDDAwAAtAUAIMcDAAC1BQAwAxQAAKwFACDBAwAArQUAIMcDAABSACAAAAEDAACUBQAgEukCAQAAAAHtAgEAAAABjgMBAAAAAZADAQAAAAGZAwEAAAABqQMBAAAAAaoDAQAAAAGrAwEAAAABrAMBAAAAAa0DAQAAAAGuAwEAAAABrwMBAAAAAbADAQAAAAGxAwEAAAABsgMBAAAAAbMDAQAAAAG0AwIAAAABtQMBAAAAASS8AgEAAAAB6AIBAAAAAekCAQAAAAHtAgEAAAABiQMBAAAAAYoDAQAAAAGLAwEAAAABjAMBAAAAAY0DAQAAAAGOAwEAAAABjwMCAAAAAZADAQAAAAGRAwEAAAABkgMBAAAAAZMDAQAAAAGUAwEAAAABlQMBAAAAAZYDAgAAAAGXAwEAAAABmAMBAAAAAZkDAQAAAAGaAwEAAAABmwMCAAAAAZwDAgAAAAGdAwIAAAABngMBAAAAAZ8DAQAAAAGgAwIAAAABoQMCAAAAAaIDAQAAAAGjAwEAAAABpAMBAAAAAaUDAQAAAAGmAyAAAAABpwMgAAAAAagDIAAAAAERBQAAygUAIAYAAMsFACC8AgEAAAAB6QIBAAAAAe0CAQAAAAGGAwEAAAABhwMCAAAAAZQDAQAAAAGVAwEAAAABtgMBAAAAAbcDAQAAAAG4AwEAAAABuQMBAAAAAboDAQAAAAG7AwEAAAABvAMBAAAAAb0DAQAAAAECAAAAAQAgFAAA0QUAIAMAAAAQACAUAADRBQAgFQAA1QUAIBMAAAAQACAFAACqBQAgBgAAqwUAIA0AANUFACC8AgEApAQAIekCAQCkBAAh7QIBAKQEACGGAwEApAQAIYcDAgD7BAAhlAMBAKQEACGVAwEAqgQAIbYDAQCqBAAhtwMBAKoEACG4AwEAqgQAIbkDAQCqBAAhugMBAKoEACG7AwEAqgQAIbwDAQCqBAAhvQMBAKQEACERBQAAqgUAIAYAAKsFACC8AgEApAQAIekCAQCkBAAh7QIBAKQEACGGAwEApAQAIYcDAgD7BAAhlAMBAKQEACGVAwEAqgQAIbYDAQCqBAAhtwMBAKoEACG4AwEAqgQAIbkDAQCqBAAhugMBAKoEACG7AwEAqgQAIbwDAQCqBAAhvQMBAKQEACERBAAAyQUAIAYAAMsFACC8AgEAAAAB6QIBAAAAAe0CAQAAAAGGAwEAAAABhwMCAAAAAZQDAQAAAAGVAwEAAAABtgMBAAAAAbcDAQAAAAG4AwEAAAABuQMBAAAAAboDAQAAAAG7AwEAAAABvAMBAAAAAb0DAQAAAAECAAAAAQAgFAAA1gUAIAMAAAAQACAUAADWBQAgFQAA2gUAIBMAAAAQACAEAACpBQAgBgAAqwUAIA0AANoFACC8AgEApAQAIekCAQCkBAAh7QIBAKQEACGGAwEApAQAIYcDAgD7BAAhlAMBAKQEACGVAwEAqgQAIbYDAQCqBAAhtwMBAKoEACG4AwEAqgQAIbkDAQCqBAAhugMBAKoEACG7AwEAqgQAIbwDAQCqBAAhvQMBAKQEACERBAAAqQUAIAYAAKsFACC8AgEApAQAIekCAQCkBAAh7QIBAKQEACGGAwEApAQAIYcDAgD7BAAhlAMBAKQEACGVAwEAqgQAIbYDAQCqBAAhtwMBAKoEACG4AwEAqgQAIbkDAQCqBAAhugMBAKoEACG7AwEAqgQAIbwDAQCqBAAhvQMBAKQEACERBAAAyQUAIAUAAMoFACC8AgEAAAAB6QIBAAAAAe0CAQAAAAGGAwEAAAABhwMCAAAAAZQDAQAAAAGVAwEAAAABtgMBAAAAAbcDAQAAAAG4AwEAAAABuQMBAAAAAboDAQAAAAG7AwEAAAABvAMBAAAAAb0DAQAAAAECAAAAAQAgFAAA2wUAIAMAAAAQACAUAADbBQAgFQAA3wUAIBMAAAAQACAEAACpBQAgBQAAqgUAIA0AAN8FACC8AgEApAQAIekCAQCkBAAh7QIBAKQEACGGAwEApAQAIYcDAgD7BAAhlAMBAKQEACGVAwEAqgQAIbYDAQCqBAAhtwMBAKoEACG4AwEAqgQAIbkDAQCqBAAhugMBAKoEACG7AwEAqgQAIbwDAQCqBAAhvQMBAKQEACERBAAAqQUAIAUAAKoFACC8AgEApAQAIekCAQCkBAAh7QIBAKQEACGGAwEApAQAIYcDAgD7BAAhlAMBAKQEACGVAwEAqgQAIbYDAQCqBAAhtwMBAKoEACG4AwEAqgQAIbkDAQCqBAAhugMBAKoEACG7AwEAqgQAIbwDAQCqBAAhvQMBAKQEACEQtwIBAAAAAbsCQAAAAAG8AkAAAAABzQIBAAAAAc4CAQAAAAHPAgEAAAAB0AIBAAAAAdECAQAAAAHSAgEAAAAB0wICAAAAAdQCQAAAAAHVAkAAAAAB1gIBAAAAAdcCAQAAAAHYAgEAAAAB2QIBAAAAAQe3AgEAAAABugJAAAAAAbsCQAAAAAG8AkAAAAAByQIBAAAAAcsCAQAAAAHMAgEAAAABBbcCAQAAAAG7AkAAAAAB2gIBAAAAAdsCQAAAAAHcAkAAAAABC-EBAADmBAAg4gEAAOcEACC3AgEAAAABuwJAAAAAAbwCQAAAAAHdAgEAAAAB3gIBAAAAAd8CIAAAAAHgAgEAAAAB4QIBAAAAAeICAQAAAAECAAAAywIAIBQAAOMFACADAAAA3QIAIBQAAOMFACAVAADnBQAgDQAAAN0CACANAADnBQAg4QEAAL8EACDiAQAAwAQAILcCAQCkBAAhuwJAAKUEACG8AkAApQQAId0CAQCqBAAh3gIBAKoEACHfAiAAvgQAIeACAQCqBAAh4QIBAKoEACHiAgEApAQAIQvhAQAAvwQAIOIBAADABAAgtwIBAKQEACG7AkAApQQAIbwCQAClBAAh3QIBAKoEACHeAgEAqgQAId8CIAC-BAAh4AIBAKoEACHhAgEAqgQAIeICAQCkBAAhC-IBAADnBAAg4wEAAOgEACC3AgEAAAABuwJAAAAAAbwCQAAAAAHdAgEAAAAB3gIBAAAAAd8CIAAAAAHgAgEAAAAB4QIBAAAAAeICAQAAAAECAAAAywIAIBQAAOgFACADAAAA3QIAIBQAAOgFACAVAADsBQAgDQAAAN0CACANAADsBQAg4gEAAMAEACDjAQAAwQQAILcCAQCkBAAhuwJAAKUEACG8AkAApQQAId0CAQCqBAAh3gIBAKoEACHfAiAAvgQAIeACAQCqBAAh4QIBAKoEACHiAgEApAQAIQviAQAAwAQAIOMBAADBBAAgtwIBAKQEACG7AkAApQQAIbwCQAClBAAh3QIBAKoEACHeAgEAqgQAId8CIAC-BAAh4AIBAKoEACHhAgEAqgQAIeICAQCkBAAhC-EBAADmBAAg4wEAAOgEACC3AgEAAAABuwJAAAAAAbwCQAAAAAHdAgEAAAAB3gIBAAAAAd8CIAAAAAHgAgEAAAAB4QIBAAAAAeICAQAAAAECAAAAywIAIBQAAO0FACADAAAA3QIAIBQAAO0FACAVAADxBQAgDQAAAN0CACANAADxBQAg4QEAAL8EACDjAQAAwQQAILcCAQCkBAAhuwJAAKUEACG8AkAApQQAId0CAQCqBAAh3gIBAKoEACHfAiAAvgQAIeACAQCqBAAh4QIBAKoEACHiAgEApAQAIQvhAQAAvwQAIOMBAADBBAAgtwIBAKQEACG7AkAApQQAIbwCQAClBAAh3QIBAKoEACHeAgEAqgQAId8CIAC-BAAh4AIBAKoEACHhAgEAqgQAIeICAQCkBAAhBAQGAgUKAwYMBAcABQEDAAEBAwABAQMAAQIEDQAFDgAAAAAFBwAKGgALGwAMHAANHQAOAAAAAAAFBwAKGgALGwAMHAANHQAOAQMAAQEDAAEFBwATGgAUGwAVHAAWHQAXAAAAAAAFBwATGgAUGwAVHAAWHQAXAQMAAQEDAAEFBwAcGgAdGwAeHAAfHQAgAAAAAAAFBwAcGgAdGwAeHAAfHQAgAQMAAQEDAAEFBwAlGgAmGwAnHAAoHQApAAAAAAAFBwAlGgAmGwAnHAAoHQApAAAAAwcALxwAMB0AMQAAAAMHAC8cADAdADEAAAADBwA3HAA4HQA5AAAAAwcANxwAOB0AOQAAAAMHAD8cAEAdAEEAAAADBwA_HABAHQBBAAAAAwcARxwASB0ASQAAAAMHAEccAEgdAEkAAAAFBwBPGgBQGwBRHABSHQBTAAAAAAAFBwBPGgBQGwBRHABSHQBTAAAABQcAWRoAWhsAWxwAXB0AXQAAAAAABQcAWRoAWhsAWxwAXB0AXQAAAAMHAGMcAGQdAGUAAAADBwBjHABkHQBlAAAAAwcAaxwAbB0AbQAAAAMHAGscAGwdAG0AAAADBwBzHAB0HQB1AAAAAwcAcxwAdB0AdQQHAHvhAdACeOIB1AJ54wHYAnoB4AEAdwHgAQB3AeABAHcD4QHZAgDiAdoCAOMB2wIAAAADBwB_HACAAR0AgQEAAAADBwB_HACAAR0AgQEB4AEAdwHgAQB3AwcAhgEcAIcBHQCIAQAAAAMHAIYBHACHAR0AiAEB4AEAdwHgAQB3BQcAjQEaAI4BGwCPARwAkAEdAJEBAAAAAAAFBwCNARoAjgEbAI8BHACQAR0AkQEB4AEAdwHgAQB3AwcAlgEcAJcBHQCYAQAAAAMHAJYBHACXAR0AmAEAAAADBwCeARwAnwEdAKABAAAAAwcAngEcAJ8BHQCgAQgCAQkPAQoSAQsTAQwUAQ4WAQ8YBhAZBxEbARIdBhMeCBYfARcgARghBh4kCR8lDyAmAiEnAiIoAiMpAiQqAiUsAiYuBicvECgxAikzBio0ESs1Aiw2Ai03Bi46Ei87GDA8AzE9AzI-AzM_AzRAAzVCAzZEBjdFGThHAzlJBjpKGjtLAzxMAz1NBj5QGz9RIUBTBEFUBEJWBENXBERYBEVaBEZcBkddIkhfBElhBkpiI0tjBExkBE1lBk5oJE9pKlBrK1FsK1JvK1NwK1RxK1VzK1Z1Bld2LFh4K1l6Blp7LVt8K1x9K11-Bl6BAS5fggEyYIQBM2GFATNiiAEzY4kBM2SKATNljAEzZo4BBmePATRokQEzaZMBBmqUATVrlQEzbJYBM22XAQZumgE2b5sBOnCdATtxngE7cqEBO3OiATt0owE7daUBO3anAQZ3qAE8eKoBO3msAQZ6rQE9e64BO3yvATt9sAEGfrMBPn-0AUKAAbYBQ4EBtwFDggG6AUODAbsBQ4QBvAFDhQG-AUOGAcABBocBwQFEiAHDAUOJAcUBBooBxgFFiwHHAUOMAcgBQ40ByQEGjgHMAUaPAc0BSpABzwFLkQHQAUuSAdMBS5MB1AFLlAHVAUuVAdcBS5YB2QEGlwHaAUyYAdwBS5kB3gEGmgHfAU2bAeABS5wB4QFLnQHiAQaeAeUBTp8B5gFUoAHoAVWhAekBVaIB7AFVowHtAVWkAe4BVaUB8AFVpgHyAQanAfMBVqgB9QFVqQH3AQaqAfgBV6sB-QFVrAH6AVWtAfsBBq4B_gFYrwH_AV6wAYECX7EBggJfsgGFAl-zAYYCX7QBhwJftQGJAl-2AYsCBrcBjAJguAGOAl-5AZACBroBkQJhuwGSAl-8AZMCX70BlAIGvgGXAmK_AZgCZsABmgJnwQGbAmfCAZ4CZ8MBnwJnxAGgAmfFAaICZ8YBpAIGxwGlAmjIAacCZ8kBqQIGygGqAmnLAasCZ8wBrAJnzQGtAgbOAbACas8BsQJu0AGzAm_RAbQCb9IBtwJv0wG4Am_UAbkCb9UBuwJv1gG9AgbXAb4CcNgBwAJv2QHCAgbaAcMCcdsBxAJv3AHFAm_dAcYCBt4ByQJy3wHKAnbkAcwCd-UB3AJ35gHfAnfnAeACd-gB4QJ36QHjAnfqAeUCBusB5gJ87AHoAnftAeoCBu4B6wJ97wHsAnfwAe0Cd_EB7gIG8gHxAn7zAfICggH0AfMCevUB9AJ69gH1Anr3AfYCevgB9wJ6-QH5Anr6AfsCBvsB_AKDAfwB_gJ6_QGAAwb-AYEDhAH_AYIDeoACgwN6gQKEAwaCAocDhQGDAogDiQGEAokDeIUCigN4hgKLA3iHAowDeIgCjQN4iQKPA3iKApEDBosCkgOKAYwClAN4jQKWAwaOApcDiwGPApgDeJACmQN4kQKaAwaSAp0DjAGTAp4DkgGUAp8DeZUCoAN5lgKhA3mXAqIDeZgCowN5mQKlA3maAqcDBpsCqAOTAZwCqgN5nQKsAwaeAq0DlAGfAq4DeaACrwN5oQKwAwaiArMDlQGjArQDmQGkArYDmgGlArcDmgGmAroDmgGnArsDmgGoArwDmgGpAr4DmgGqAsADBqsCwQObAawCwwOaAa0CxQMGrgLGA5wBrwLHA5oBsALIA5oBsQLJAwayAswDnQGzAs0DoQE"
13476
13668
  };
13477
13669
  config.compilerWasm = {
13478
13670
  getRuntime: async () => require_query_compiler_fast_bg(),
@@ -13651,24 +13843,6 @@ let PrismaWorkflowRunRepository = class PrismaWorkflowRunRepository$1 {
13651
13843
  }
13652
13844
  async createRun(args) {
13653
13845
  const now = (/* @__PURE__ */ new Date()).toISOString();
13654
- const state = {
13655
- runId: args.runId,
13656
- workflowId: args.workflowId,
13657
- startedAt: args.startedAt,
13658
- parent: args.parent,
13659
- executionOptions: args.executionOptions,
13660
- control: args.control,
13661
- workflowSnapshot: args.workflowSnapshot,
13662
- mutableState: args.mutableState,
13663
- policySnapshot: args.policySnapshot,
13664
- engineCounters: args.engineCounters,
13665
- status: "running",
13666
- queue: [],
13667
- outputsByNode: {},
13668
- nodeSnapshotsByNodeId: {},
13669
- connectionInvocations: []
13670
- };
13671
- const stateJson = this.serializeStateBlob(state);
13672
13846
  await this.prisma.run.create({ data: {
13673
13847
  runId: args.runId,
13674
13848
  workflowId: args.workflowId,
@@ -13677,37 +13851,262 @@ let PrismaWorkflowRunRepository = class PrismaWorkflowRunRepository$1 {
13677
13851
  parentJson: args.parent ? JSON.stringify(args.parent) : null,
13678
13852
  executionOptionsJson: args.executionOptions ? JSON.stringify(args.executionOptions) : null,
13679
13853
  updatedAt: now,
13680
- stateJson
13854
+ revision: 0,
13855
+ outputsByNodeJson: JSON.stringify({}),
13856
+ controlJson: args.control ? JSON.stringify(args.control) : null,
13857
+ workflowSnapshotJson: args.workflowSnapshot ? JSON.stringify(args.workflowSnapshot) : null,
13858
+ policySnapshotJson: args.policySnapshot ? JSON.stringify(args.policySnapshot) : null,
13859
+ engineCountersJson: args.engineCounters ? JSON.stringify(args.engineCounters) : null,
13860
+ mutableStateJson: args.mutableState ? JSON.stringify(args.mutableState) : null
13681
13861
  } });
13682
13862
  }
13683
13863
  async load(runId) {
13684
13864
  const id = decodeURIComponent(runId);
13685
13865
  const row = await this.prisma.run.findUnique({ where: { runId: id } });
13686
13866
  if (!row) return void 0;
13687
- return this.rowToPersistedRunState(row);
13867
+ const [schedulingState, instances] = await Promise.all([this.loadSchedulingState(id), this.prisma.executionInstance.findMany({
13868
+ where: { runId: id },
13869
+ orderBy: [{ slotNodeId: "asc" }, { runIndex: "asc" }]
13870
+ })]);
13871
+ const { nodeSnapshotsByNodeId, connectionInvocations } = this.instancesToDomain(row.runId, row.workflowId, instances);
13872
+ const parent = this.parseJson(row.parentJson);
13873
+ const persistedOutputsByNode = this.parseJson(row.outputsByNodeJson) ?? {};
13874
+ const merged = {
13875
+ runId: row.runId,
13876
+ workflowId: row.workflowId,
13877
+ startedAt: row.startedAt,
13878
+ finishedAt: row.finishedAt ?? void 0,
13879
+ revision: row.revision,
13880
+ parent,
13881
+ executionOptions: this.parseJson(row.executionOptionsJson),
13882
+ control: this.parseJson(row.controlJson),
13883
+ workflowSnapshot: this.parseJson(row.workflowSnapshotJson),
13884
+ mutableState: this.parseJson(row.mutableStateJson),
13885
+ policySnapshot: this.parseJson(row.policySnapshotJson),
13886
+ engineCounters: this.parseJson(row.engineCountersJson),
13887
+ status: row.status,
13888
+ pending: schedulingState?.pending,
13889
+ queue: schedulingState?.queue ?? [],
13890
+ outputsByNode: this.mergePersistedOutputsByNode({
13891
+ persistedOutputsByNode,
13892
+ nodeSnapshotsByNodeId
13893
+ }),
13894
+ nodeSnapshotsByNodeId,
13895
+ connectionInvocations: connectionInvocations.length > 0 ? connectionInvocations : void 0
13896
+ };
13897
+ return this.applyParentToSnapshots(merged);
13898
+ }
13899
+ async loadSchedulingState(runId) {
13900
+ const id = decodeURIComponent(runId);
13901
+ if (!await this.prisma.run.findUnique({
13902
+ where: { runId: id },
13903
+ select: { runId: true }
13904
+ })) return;
13905
+ const workItems = await this.prisma.runWorkItem.findMany({
13906
+ where: { runId: id },
13907
+ orderBy: [
13908
+ { status: "desc" },
13909
+ { enqueuedAt: "asc" },
13910
+ { workItemId: "asc" }
13911
+ ]
13912
+ });
13913
+ const queue = [];
13914
+ let pending;
13915
+ for (const workItem of workItems) {
13916
+ if (workItem.status === "claimed") {
13917
+ pending = this.toPendingNodeExecution(workItem);
13918
+ continue;
13919
+ }
13920
+ if (workItem.status === "queued") queue.push(this.toQueueEntry(workItem));
13921
+ }
13922
+ return {
13923
+ pending,
13924
+ queue
13925
+ };
13926
+ }
13927
+ async loadRunDetail(runId) {
13928
+ const id = decodeURIComponent(runId);
13929
+ const [row, projection, instances] = await Promise.all([
13930
+ this.prisma.run.findUnique({ where: { runId: id } }),
13931
+ this.prisma.runSlotProjection.findUnique({ where: { runId: id } }),
13932
+ this.prisma.executionInstance.findMany({
13933
+ where: { runId: id },
13934
+ orderBy: [{ updatedAt: "asc" }, { runIndex: "asc" }]
13935
+ })
13936
+ ]);
13937
+ if (!row) return;
13938
+ const slotStates = this.toSlotStateDtos(projection);
13939
+ const executionInstances = instances.map((instance) => this.toExecutionInstanceDto(instance));
13940
+ return {
13941
+ runId: row.runId,
13942
+ workflowId: row.workflowId,
13943
+ startedAt: row.startedAt,
13944
+ finishedAt: row.finishedAt ?? void 0,
13945
+ status: row.status,
13946
+ workflowSnapshot: this.parseJson(row.workflowSnapshotJson),
13947
+ mutableState: this.parseJson(row.mutableStateJson),
13948
+ slotStates,
13949
+ executionInstances
13950
+ };
13951
+ }
13952
+ async listBinaryStorageKeys(runId) {
13953
+ const id = decodeURIComponent(runId);
13954
+ const row = await this.prisma.run.findUnique({
13955
+ where: { runId: id },
13956
+ select: {
13957
+ outputsByNodeJson: true,
13958
+ mutableStateJson: true
13959
+ }
13960
+ });
13961
+ if (!row) return [];
13962
+ const instances = await this.prisma.executionInstance.findMany({
13963
+ where: { runId: id },
13964
+ select: {
13965
+ inputJson: true,
13966
+ outputJson: true
13967
+ }
13968
+ });
13969
+ const keys = /* @__PURE__ */ new Set();
13970
+ this.collectBinaryKeysFromJsonText(row.outputsByNodeJson, keys);
13971
+ this.collectBinaryKeysFromJsonText(row.mutableStateJson, keys);
13972
+ for (const instance of instances) {
13973
+ this.collectBinaryKeysFromJsonText(instance.inputJson, keys);
13974
+ this.collectBinaryKeysFromJsonText(instance.outputJson, keys);
13975
+ }
13976
+ return [...keys].sort((left, right) => left.localeCompare(right));
13977
+ }
13978
+ applyParentToSnapshots(state) {
13979
+ if (!state.parent) return state;
13980
+ const next = {};
13981
+ for (const [id, snap] of Object.entries(state.nodeSnapshotsByNodeId ?? {})) next[id] = {
13982
+ ...snap,
13983
+ parent: state.parent
13984
+ };
13985
+ return {
13986
+ ...state,
13987
+ nodeSnapshotsByNodeId: next
13988
+ };
13688
13989
  }
13689
13990
  async save(state) {
13991
+ let candidate = state;
13992
+ for (let attempt = 0; attempt < 3; attempt += 1) try {
13993
+ await this.saveOnce(candidate);
13994
+ return;
13995
+ } catch (error) {
13996
+ if (!this.isConcurrentRunUpdateError(error) || attempt === 2) throw error;
13997
+ const latest = await this.load(candidate.runId);
13998
+ if (!latest) throw error;
13999
+ candidate = this.mergeConcurrentState(latest, candidate);
14000
+ }
14001
+ }
14002
+ async saveOnce(state) {
13690
14003
  const now = (/* @__PURE__ */ new Date()).toISOString();
13691
- const stateJson = this.serializeStateBlob(state);
13692
- await this.prisma.run.upsert({
13693
- where: { runId: state.runId },
13694
- create: {
13695
- runId: state.runId,
13696
- workflowId: state.workflowId,
13697
- startedAt: state.startedAt,
13698
- status: state.status,
13699
- parentJson: state.parent ? JSON.stringify(state.parent) : null,
13700
- executionOptionsJson: state.executionOptions ? JSON.stringify(state.executionOptions) : null,
13701
- updatedAt: now,
13702
- stateJson
13703
- },
13704
- update: {
13705
- status: state.status,
13706
- parentJson: state.parent ? JSON.stringify(state.parent) : null,
13707
- executionOptionsJson: state.executionOptions ? JSON.stringify(state.executionOptions) : null,
13708
- updatedAt: now,
13709
- stateJson
14004
+ const nextRevision = (state.revision ?? 0) + 1;
14005
+ const workItems = this.buildWorkItems(state, now);
14006
+ const instances = this.buildExecutionInstances(state);
14007
+ const projectionJson = this.buildProjectionSlotStatesJson(state);
14008
+ await this.prisma.$transaction(async (tx) => {
14009
+ await tx.runWorkItem.deleteMany({ where: { runId: state.runId } });
14010
+ if (workItems.length > 0) await tx.runWorkItem.createMany({ data: workItems });
14011
+ const existingInstances = await tx.executionInstance.findMany({
14012
+ where: { runId: state.runId },
14013
+ select: {
14014
+ instanceId: true,
14015
+ slotNodeId: true,
14016
+ runIndex: true
14017
+ }
14018
+ });
14019
+ const existingById = new Map(existingInstances.map((row) => [row.instanceId, row]));
14020
+ const maxRunIndexBySlot = /* @__PURE__ */ new Map();
14021
+ for (const row of existingInstances) maxRunIndexBySlot.set(row.slotNodeId, Math.max(maxRunIndexBySlot.get(row.slotNodeId) ?? 0, row.runIndex));
14022
+ for (const instance of instances) {
14023
+ const existing = existingById.get(instance.instanceId);
14024
+ const runIndex = existing?.runIndex ?? this.nextRunIndexForSlot(maxRunIndexBySlot, instance.slotNodeId);
14025
+ if (existing) {
14026
+ await tx.executionInstance.update({
14027
+ where: { instanceId: instance.instanceId },
14028
+ data: {
14029
+ workflowId: instance.workflowId,
14030
+ slotNodeId: instance.slotNodeId,
14031
+ workflowNodeId: instance.workflowNodeId,
14032
+ kind: instance.kind,
14033
+ connectionKind: instance.connectionKind,
14034
+ activationId: instance.activationId,
14035
+ batchId: instance.batchId,
14036
+ parentInstanceId: instance.parentInstanceId,
14037
+ parentRunId: instance.parentRunId,
14038
+ workerClaimToken: instance.workerClaimToken,
14039
+ status: instance.status,
14040
+ queuedAt: instance.queuedAt,
14041
+ startedAt: instance.startedAt,
14042
+ finishedAt: instance.finishedAt,
14043
+ updatedAt: instance.updatedAt,
14044
+ itemCount: instance.itemCount,
14045
+ inputJson: instance.inputJson,
14046
+ outputJson: instance.outputJson,
14047
+ errorJson: instance.errorJson,
14048
+ inputItemIndicesJson: instance.inputItemIndicesJson,
14049
+ outputItemCount: instance.outputItemCount,
14050
+ successfulItemCount: instance.successfulItemCount,
14051
+ failedItemCount: instance.failedItemCount,
14052
+ inputStorageKind: instance.inputStorageKind,
14053
+ outputStorageKind: instance.outputStorageKind,
14054
+ inputBytes: instance.inputBytes,
14055
+ outputBytes: instance.outputBytes,
14056
+ inputPreviewJson: instance.inputPreviewJson,
14057
+ outputPreviewJson: instance.outputPreviewJson,
14058
+ inputPayloadRef: instance.inputPayloadRef,
14059
+ outputPayloadRef: instance.outputPayloadRef,
14060
+ inputTruncated: instance.inputTruncated,
14061
+ outputTruncated: instance.outputTruncated,
14062
+ usedPinnedOutput: instance.usedPinnedOutput
14063
+ }
14064
+ });
14065
+ continue;
14066
+ }
14067
+ await tx.executionInstance.create({ data: {
14068
+ ...instance,
14069
+ runIndex
14070
+ } });
13710
14071
  }
14072
+ await tx.runSlotProjection.upsert({
14073
+ where: { runId: state.runId },
14074
+ create: {
14075
+ runId: state.runId,
14076
+ workflowId: state.workflowId,
14077
+ revision: nextRevision,
14078
+ updatedAt: now,
14079
+ slotStatesJson: projectionJson
14080
+ },
14081
+ update: {
14082
+ workflowId: state.workflowId,
14083
+ revision: nextRevision,
14084
+ updatedAt: now,
14085
+ slotStatesJson: projectionJson
14086
+ }
14087
+ });
14088
+ if ((await tx.run.updateMany({
14089
+ where: {
14090
+ runId: state.runId,
14091
+ revision: state.revision ?? 0
14092
+ },
14093
+ data: {
14094
+ workflowId: state.workflowId,
14095
+ startedAt: state.startedAt,
14096
+ status: state.status,
14097
+ finishedAt: state.finishedAt ?? null,
14098
+ updatedAt: now,
14099
+ revision: nextRevision,
14100
+ parentJson: state.parent ? JSON.stringify(state.parent) : null,
14101
+ executionOptionsJson: state.executionOptions ? JSON.stringify(state.executionOptions) : null,
14102
+ controlJson: state.control ? JSON.stringify(state.control) : null,
14103
+ workflowSnapshotJson: state.workflowSnapshot ? JSON.stringify(state.workflowSnapshot) : null,
14104
+ policySnapshotJson: state.policySnapshot ? JSON.stringify(state.policySnapshot) : null,
14105
+ engineCountersJson: state.engineCounters ? JSON.stringify(state.engineCounters) : null,
14106
+ mutableStateJson: state.mutableState ? JSON.stringify(state.mutableState) : null,
14107
+ outputsByNodeJson: JSON.stringify(this.buildPersistedOutputsByNode(state))
14108
+ }
14109
+ })).count !== 1) throw new Error(`Concurrent run update detected for run ${state.runId}.`);
13711
14110
  });
13712
14111
  }
13713
14112
  async listRuns(args) {
@@ -13728,74 +14127,202 @@ let PrismaWorkflowRunRepository = class PrismaWorkflowRunRepository$1 {
13728
14127
  return (await this.prisma.run.findMany({
13729
14128
  where: {
13730
14129
  status: { in: ["completed", "failed"] },
13731
- updatedAt: { lt: args.beforeIso }
14130
+ OR: [{ AND: [{ finishedAt: { not: null } }, { finishedAt: { lt: args.beforeIso } }] }, { AND: [{ finishedAt: null }, { updatedAt: { lt: args.beforeIso } }] }]
13732
14131
  },
13733
14132
  orderBy: { updatedAt: "asc" },
13734
14133
  take: limit
13735
14134
  })).map((r) => this.rowToPruneCandidate(r));
13736
14135
  }
13737
- serializeStateBlob(state) {
13738
- const blob = {
13739
- control: state.control,
13740
- workflowSnapshot: state.workflowSnapshot,
13741
- mutableState: state.mutableState,
13742
- policySnapshot: state.policySnapshot,
13743
- engineCounters: state.engineCounters,
13744
- pending: state.pending,
13745
- queue: state.queue,
13746
- outputsByNode: state.outputsByNode,
13747
- nodeSnapshotsByNodeId: state.nodeSnapshotsByNodeId,
13748
- connectionInvocations: state.connectionInvocations
13749
- };
13750
- return JSON.stringify(blob);
13751
- }
13752
- parseStateBlob(json) {
13753
- const parsed = JSON.parse(json);
14136
+ instancesToDomain(runId, workflowId, instances) {
14137
+ const nodeSnapshotsByNodeId = {};
14138
+ const connectionInvocations = [];
14139
+ const workflowRows = instances.filter((i) => i.kind === "workflowNodeActivation");
14140
+ const byNode = /* @__PURE__ */ new Map();
14141
+ for (const row of workflowRows) {
14142
+ const prev = byNode.get(row.slotNodeId);
14143
+ if (!prev || row.updatedAt > prev.updatedAt) byNode.set(row.slotNodeId, row);
14144
+ }
14145
+ for (const [nodeId, row] of byNode.entries()) nodeSnapshotsByNodeId[nodeId] = this.rowToNodeSnapshot(runId, workflowId, nodeId, row);
14146
+ const connRows = instances.filter((i) => i.kind === "connectionInvocation").sort((a$1, b$2) => a$1.runIndex - b$2.runIndex);
14147
+ for (const row of connRows) connectionInvocations.push(this.rowToConnectionInvocation(runId, workflowId, row));
13754
14148
  return {
13755
- control: parsed.control,
13756
- workflowSnapshot: parsed.workflowSnapshot,
13757
- mutableState: parsed.mutableState,
13758
- policySnapshot: parsed.policySnapshot,
13759
- engineCounters: parsed.engineCounters,
13760
- pending: parsed.pending,
13761
- queue: parsed.queue ?? [],
13762
- outputsByNode: parsed.outputsByNode ?? {},
13763
- nodeSnapshotsByNodeId: parsed.nodeSnapshotsByNodeId ?? {},
13764
- connectionInvocations: parsed.connectionInvocations
13765
- };
13766
- }
13767
- rowToPersistedRunState(row) {
13768
- const blob = this.parseStateBlob(row.stateJson);
14149
+ nodeSnapshotsByNodeId,
14150
+ connectionInvocations
14151
+ };
14152
+ }
14153
+ rowToNodeSnapshot(runId, workflowId, nodeId, row) {
14154
+ const inputsByPort = row.inputJson ? JSON.parse(row.inputJson) : void 0;
14155
+ const outputs = row.outputJson ? JSON.parse(row.outputJson) : void 0;
14156
+ const error = row.errorJson ? JSON.parse(row.errorJson) : void 0;
13769
14157
  return {
13770
- runId: row.runId,
13771
- workflowId: row.workflowId,
13772
- startedAt: row.startedAt,
14158
+ runId,
14159
+ workflowId,
14160
+ nodeId,
14161
+ activationId: row.activationId ?? void 0,
13773
14162
  status: row.status,
13774
- parent: row.parentJson ? JSON.parse(row.parentJson) : void 0,
13775
- executionOptions: row.executionOptionsJson ? JSON.parse(row.executionOptionsJson) : void 0,
13776
- control: blob.control,
13777
- workflowSnapshot: blob.workflowSnapshot,
13778
- mutableState: blob.mutableState,
13779
- policySnapshot: blob.policySnapshot,
13780
- engineCounters: blob.engineCounters,
13781
- pending: blob.pending,
13782
- queue: blob.queue,
13783
- outputsByNode: blob.outputsByNode,
13784
- nodeSnapshotsByNodeId: blob.nodeSnapshotsByNodeId,
13785
- connectionInvocations: blob.connectionInvocations
14163
+ usedPinnedOutput: row.usedPinnedOutput ?? void 0,
14164
+ queuedAt: row.queuedAt ?? void 0,
14165
+ startedAt: row.startedAt ?? void 0,
14166
+ finishedAt: row.finishedAt ?? void 0,
14167
+ updatedAt: row.updatedAt,
14168
+ inputsByPort,
14169
+ outputs,
14170
+ error
13786
14171
  };
13787
14172
  }
14173
+ rowToConnectionInvocation(runId, workflowId, row) {
14174
+ const err = row.errorJson ? JSON.parse(row.errorJson) : void 0;
14175
+ return {
14176
+ invocationId: row.instanceId,
14177
+ runId,
14178
+ workflowId,
14179
+ connectionNodeId: row.slotNodeId,
14180
+ parentAgentNodeId: row.workflowNodeId,
14181
+ parentAgentActivationId: row.activationId ?? `synthetic_${row.workflowNodeId}`,
14182
+ status: row.status,
14183
+ managedInput: row.inputJson ? JSON.parse(row.inputJson) : void 0,
14184
+ managedOutput: row.outputJson ? JSON.parse(row.outputJson) : void 0,
14185
+ error: err,
14186
+ queuedAt: row.queuedAt ?? void 0,
14187
+ startedAt: row.startedAt ?? void 0,
14188
+ finishedAt: row.finishedAt ?? void 0,
14189
+ updatedAt: row.updatedAt
14190
+ };
14191
+ }
14192
+ toExecutionInstanceDto(row) {
14193
+ return {
14194
+ instanceId: row.instanceId,
14195
+ slotNodeId: row.slotNodeId,
14196
+ workflowNodeId: row.workflowNodeId,
14197
+ parentInstanceId: row.parentInstanceId ?? void 0,
14198
+ kind: row.kind,
14199
+ connectionKind: row.connectionKind,
14200
+ runIndex: row.runIndex,
14201
+ batchId: row.batchId,
14202
+ activationId: row.activationId ?? void 0,
14203
+ status: row.status,
14204
+ queuedAt: row.queuedAt ?? void 0,
14205
+ startedAt: row.startedAt ?? void 0,
14206
+ finishedAt: row.finishedAt ?? void 0,
14207
+ itemCount: row.itemCount,
14208
+ inputJson: row.inputJson ? JSON.parse(row.inputJson) : void 0,
14209
+ outputJson: row.outputJson ? JSON.parse(row.outputJson) : void 0,
14210
+ error: row.errorJson ? JSON.parse(row.errorJson) : void 0
14211
+ };
14212
+ }
14213
+ buildWorkItems(state, nowIso) {
14214
+ const rows = [];
14215
+ for (const [index, entry] of (state.queue ?? []).entries()) {
14216
+ const inputsByPort = this.inputsByPortFromQueueEntry(entry);
14217
+ rows.push({
14218
+ workItemId: `${state.runId}:queued:${index}:${entry.nodeId}:${entry.batchId ?? "batch_1"}`,
14219
+ runId: state.runId,
14220
+ workflowId: state.workflowId,
14221
+ status: "queued",
14222
+ targetNodeId: entry.nodeId,
14223
+ batchId: entry.batchId ?? "batch_1",
14224
+ availableAt: nowIso,
14225
+ enqueuedAt: nowIso,
14226
+ itemsIn: this.countItemsByPort(inputsByPort),
14227
+ inputsByPortJson: JSON.stringify(inputsByPort)
14228
+ });
14229
+ }
14230
+ if (state.pending) rows.push({
14231
+ workItemId: state.pending.activationId,
14232
+ runId: state.runId,
14233
+ workflowId: state.workflowId,
14234
+ status: "claimed",
14235
+ targetNodeId: state.pending.nodeId,
14236
+ batchId: state.pending.batchId ?? "batch_1",
14237
+ queueName: state.pending.queue,
14238
+ claimToken: state.pending.activationId,
14239
+ claimedAt: nowIso,
14240
+ availableAt: state.pending.enqueuedAt,
14241
+ enqueuedAt: state.pending.enqueuedAt,
14242
+ itemsIn: state.pending.itemsIn,
14243
+ inputsByPortJson: JSON.stringify(state.pending.inputsByPort)
14244
+ });
14245
+ return rows;
14246
+ }
14247
+ buildExecutionInstances(state) {
14248
+ const rows = [];
14249
+ for (const [nodeId, snap] of Object.entries(state.nodeSnapshotsByNodeId ?? {})) {
14250
+ const instanceId = `${state.runId}:node:${nodeId}:${snap.activationId ?? "na"}`;
14251
+ const itemCount = this.countItemsByPort(snap.inputsByPort) || this.countItemsInOutputs(snap.outputs);
14252
+ rows.push({
14253
+ instanceId,
14254
+ runId: state.runId,
14255
+ workflowId: state.workflowId,
14256
+ slotNodeId: nodeId,
14257
+ workflowNodeId: nodeId,
14258
+ kind: "workflowNodeActivation",
14259
+ connectionKind: null,
14260
+ activationId: snap.activationId ?? null,
14261
+ batchId: state.pending?.batchId ?? "batch_1",
14262
+ runIndex: 1,
14263
+ status: snap.status,
14264
+ queuedAt: snap.queuedAt ?? null,
14265
+ startedAt: snap.startedAt ?? null,
14266
+ finishedAt: snap.finishedAt ?? null,
14267
+ updatedAt: snap.updatedAt,
14268
+ itemCount,
14269
+ inputJson: snap.inputsByPort ? JSON.stringify(snap.inputsByPort) : null,
14270
+ outputJson: snap.outputs ? JSON.stringify(snap.outputs) : null,
14271
+ errorJson: snap.error ? JSON.stringify(snap.error) : null,
14272
+ inputItemIndicesJson: null,
14273
+ outputItemCount: snap.outputs ? this.countItemsInOutputs(snap.outputs) : null,
14274
+ successfulItemCount: null,
14275
+ failedItemCount: snap.status === "failed" ? itemCount : null,
14276
+ inputStorageKind: "inline",
14277
+ outputStorageKind: "inline",
14278
+ usedPinnedOutput: snap.usedPinnedOutput ?? null
14279
+ });
14280
+ }
14281
+ let cIdx = 0;
14282
+ for (const inv of state.connectionInvocations ?? []) {
14283
+ rows.push({
14284
+ instanceId: inv.invocationId,
14285
+ runId: state.runId,
14286
+ workflowId: state.workflowId,
14287
+ slotNodeId: inv.connectionNodeId,
14288
+ workflowNodeId: inv.parentAgentNodeId,
14289
+ kind: "connectionInvocation",
14290
+ connectionKind: "languageModel",
14291
+ activationId: inv.parentAgentActivationId,
14292
+ batchId: state.pending?.batchId ?? "batch_1",
14293
+ runIndex: cIdx,
14294
+ status: inv.status,
14295
+ queuedAt: inv.queuedAt ?? null,
14296
+ startedAt: inv.startedAt ?? null,
14297
+ finishedAt: inv.finishedAt ?? null,
14298
+ updatedAt: inv.updatedAt,
14299
+ itemCount: 0,
14300
+ inputJson: inv.managedInput !== void 0 ? JSON.stringify(inv.managedInput) : null,
14301
+ outputJson: inv.managedOutput !== void 0 ? JSON.stringify(inv.managedOutput) : null,
14302
+ errorJson: inv.error ? JSON.stringify(inv.error) : null,
14303
+ inputItemIndicesJson: null,
14304
+ outputItemCount: null,
14305
+ successfulItemCount: null,
14306
+ failedItemCount: null,
14307
+ inputStorageKind: "inline",
14308
+ outputStorageKind: "inline"
14309
+ });
14310
+ cIdx += 1;
14311
+ }
14312
+ return rows;
14313
+ }
13788
14314
  rowToPruneCandidate(row) {
14315
+ const finishedAt = row.finishedAt ?? row.updatedAt;
13789
14316
  return {
13790
14317
  runId: row.runId,
13791
14318
  workflowId: row.workflowId,
13792
14319
  startedAt: row.startedAt,
13793
- finishedAt: row.updatedAt
14320
+ finishedAt
13794
14321
  };
13795
14322
  }
13796
14323
  rowToRunSummary(row) {
13797
14324
  const status = row.status;
13798
- const finishedAt = status === "completed" || status === "failed" ? row.updatedAt : void 0;
14325
+ const finishedAt = status === "completed" || status === "failed" ? row.finishedAt ?? row.updatedAt : void 0;
13799
14326
  return {
13800
14327
  runId: row.runId,
13801
14328
  workflowId: row.workflowId,
@@ -13806,6 +14333,172 @@ let PrismaWorkflowRunRepository = class PrismaWorkflowRunRepository$1 {
13806
14333
  executionOptions: row.executionOptionsJson ? JSON.parse(row.executionOptionsJson) : void 0
13807
14334
  };
13808
14335
  }
14336
+ parseJson(value) {
14337
+ if (!value) return;
14338
+ return JSON.parse(value);
14339
+ }
14340
+ toPendingNodeExecution(row) {
14341
+ return {
14342
+ runId: row.runId,
14343
+ activationId: row.claimToken ?? row.workItemId,
14344
+ workflowId: row.workflowId,
14345
+ nodeId: row.targetNodeId,
14346
+ itemsIn: row.itemsIn,
14347
+ inputsByPort: JSON.parse(row.inputsByPortJson),
14348
+ receiptId: row.claimToken ?? row.workItemId,
14349
+ queue: row.queueName ?? void 0,
14350
+ batchId: row.batchId,
14351
+ enqueuedAt: row.enqueuedAt
14352
+ };
14353
+ }
14354
+ toQueueEntry(row) {
14355
+ const inputsByPort = JSON.parse(row.inputsByPortJson);
14356
+ const portEntries = Object.entries(inputsByPort);
14357
+ if (portEntries.length <= 1) {
14358
+ const [portKey, items] = portEntries[0] ?? ["in", []];
14359
+ return {
14360
+ nodeId: row.targetNodeId,
14361
+ input: items,
14362
+ toInput: portKey === "in" ? void 0 : portKey,
14363
+ batchId: row.batchId
14364
+ };
14365
+ }
14366
+ return {
14367
+ nodeId: row.targetNodeId,
14368
+ input: [],
14369
+ batchId: row.batchId,
14370
+ collect: {
14371
+ expectedInputs: portEntries.map(([portKey]) => portKey),
14372
+ received: inputsByPort
14373
+ }
14374
+ };
14375
+ }
14376
+ inputsByPortFromQueueEntry(entry) {
14377
+ if (entry.collect) return entry.collect.received;
14378
+ return { [entry.toInput ?? "in"]: entry.input };
14379
+ }
14380
+ countItemsByPort(inputsByPort) {
14381
+ let count = 0;
14382
+ for (const items of Object.values(inputsByPort ?? {})) count += items.length;
14383
+ return count;
14384
+ }
14385
+ countItemsInOutputs(outputs) {
14386
+ let count = 0;
14387
+ for (const items of Object.values(outputs ?? {})) count += items?.length ?? 0;
14388
+ return count;
14389
+ }
14390
+ buildProjectionSlotStatesJson(state) {
14391
+ const slotStatesByNodeId = {};
14392
+ for (const [nodeId, snapshot] of Object.entries(state.nodeSnapshotsByNodeId ?? {})) {
14393
+ const latestInstanceId = `${state.runId}:node:${nodeId}:${snapshot.activationId ?? "na"}`;
14394
+ slotStatesByNodeId[nodeId] = {
14395
+ latestInstanceId,
14396
+ latestTerminalInstanceId: snapshot.status === "completed" || snapshot.status === "failed" ? latestInstanceId : void 0,
14397
+ latestRunningInstanceId: snapshot.status === "queued" || snapshot.status === "running" ? latestInstanceId : void 0,
14398
+ latestStatus: snapshot.status,
14399
+ invocationCount: 0,
14400
+ runCount: snapshot.status === "completed" || snapshot.status === "failed" ? 1 : 0
14401
+ };
14402
+ }
14403
+ for (const invocation of state.connectionInvocations ?? []) {
14404
+ const existing = slotStatesByNodeId[invocation.connectionNodeId] ?? {
14405
+ invocationCount: 0,
14406
+ runCount: 0
14407
+ };
14408
+ existing.invocationCount += 1;
14409
+ slotStatesByNodeId[invocation.connectionNodeId] = existing;
14410
+ }
14411
+ return JSON.stringify({ slotStatesByNodeId });
14412
+ }
14413
+ toSlotStateDtos(projection) {
14414
+ const state = this.parseJson(projection?.slotStatesJson ?? null);
14415
+ return Object.entries(state?.slotStatesByNodeId ?? {}).map(([slotNodeId, slotState]) => ({
14416
+ slotNodeId,
14417
+ latestInstanceId: slotState.latestInstanceId,
14418
+ latestTerminalInstanceId: slotState.latestTerminalInstanceId,
14419
+ latestRunningInstanceId: slotState.latestRunningInstanceId,
14420
+ status: slotState.status ?? slotState.latestStatus,
14421
+ invocationCount: slotState.invocationCount,
14422
+ runCount: slotState.runCount
14423
+ }));
14424
+ }
14425
+ buildPersistedOutputsByNode(state) {
14426
+ const persistedOutputsByNode = {};
14427
+ for (const [nodeId, outputs] of Object.entries(state.outputsByNode ?? {})) {
14428
+ if (state.nodeSnapshotsByNodeId[nodeId]) continue;
14429
+ persistedOutputsByNode[nodeId] = outputs;
14430
+ }
14431
+ return persistedOutputsByNode;
14432
+ }
14433
+ mergePersistedOutputsByNode(args) {
14434
+ const mergedOutputsByNode = { ...args.persistedOutputsByNode };
14435
+ for (const [nodeId, snapshot] of Object.entries(args.nodeSnapshotsByNodeId)) if (snapshot.outputs) mergedOutputsByNode[nodeId] = snapshot.outputs;
14436
+ return mergedOutputsByNode;
14437
+ }
14438
+ nextRunIndexForSlot(maxRunIndexBySlot, slotNodeId) {
14439
+ const next = (maxRunIndexBySlot.get(slotNodeId) ?? 0) + 1;
14440
+ maxRunIndexBySlot.set(slotNodeId, next);
14441
+ return next;
14442
+ }
14443
+ mergeConcurrentState(latest, desired) {
14444
+ return {
14445
+ ...latest,
14446
+ ...desired,
14447
+ revision: latest.revision,
14448
+ parent: desired.parent ?? latest.parent,
14449
+ executionOptions: desired.executionOptions ?? latest.executionOptions,
14450
+ control: desired.control ?? latest.control,
14451
+ workflowSnapshot: desired.workflowSnapshot ?? latest.workflowSnapshot,
14452
+ mutableState: desired.mutableState ?? latest.mutableState,
14453
+ policySnapshot: desired.policySnapshot ?? latest.policySnapshot,
14454
+ engineCounters: desired.engineCounters ?? latest.engineCounters,
14455
+ pending: desired.pending,
14456
+ queue: desired.queue,
14457
+ outputsByNode: {
14458
+ ...latest.outputsByNode ?? {},
14459
+ ...desired.outputsByNode ?? {}
14460
+ },
14461
+ nodeSnapshotsByNodeId: this.mergeNodeSnapshots(latest.nodeSnapshotsByNodeId, desired.nodeSnapshotsByNodeId),
14462
+ connectionInvocations: this.mergeConnectionInvocations(latest.connectionInvocations, desired.connectionInvocations)
14463
+ };
14464
+ }
14465
+ mergeNodeSnapshots(latest, desired) {
14466
+ const merged = { ...latest ?? {} };
14467
+ for (const [nodeId, snapshot] of Object.entries(desired ?? {})) {
14468
+ const current = merged[nodeId];
14469
+ if (!current || (snapshot.updatedAt ?? "") >= (current.updatedAt ?? "")) merged[nodeId] = snapshot;
14470
+ }
14471
+ return merged;
14472
+ }
14473
+ mergeConnectionInvocations(latest, desired) {
14474
+ const byId = /* @__PURE__ */ new Map();
14475
+ for (const record of latest ?? []) byId.set(record.invocationId, record);
14476
+ for (const record of desired ?? []) {
14477
+ const current = byId.get(record.invocationId);
14478
+ if (!current || record.updatedAt >= current.updatedAt) byId.set(record.invocationId, record);
14479
+ }
14480
+ return [...byId.values()].sort((left, right) => left.updatedAt.localeCompare(right.updatedAt) || left.invocationId.localeCompare(right.invocationId));
14481
+ }
14482
+ isConcurrentRunUpdateError(error) {
14483
+ return error instanceof Error && error.message.includes("Concurrent run update detected");
14484
+ }
14485
+ collectBinaryKeysFromJsonText(value, keys) {
14486
+ if (!value) return;
14487
+ this.collectBinaryKeysFromValue(JSON.parse(value), keys);
14488
+ }
14489
+ collectBinaryKeysFromValue(value, keys) {
14490
+ if (Array.isArray(value)) {
14491
+ for (const entry of value) this.collectBinaryKeysFromValue(entry, keys);
14492
+ return;
14493
+ }
14494
+ if (!value || typeof value !== "object") return;
14495
+ const record = value;
14496
+ if (typeof record.id === "string" && typeof record.storageKey === "string" && typeof record.mimeType === "string" && typeof record.size === "number") {
14497
+ if (record.storageKey.length > 0) keys.add(record.storageKey);
14498
+ return;
14499
+ }
14500
+ for (const child of Object.values(record)) this.collectBinaryKeysFromValue(child, keys);
14501
+ }
13809
14502
  };
13810
14503
  PrismaWorkflowRunRepository = __decorate([
13811
14504
  injectable(),
@@ -14580,4 +15273,4 @@ var AppContainerFactory = class AppContainerFactory {
14580
15273
 
14581
15274
  //#endregion
14582
15275
  export { GetWorkflowDetailQuery as C, ListUserAccountsQuery as E, GetWorkflowSummariesQuery as S, UpsertLocalBootstrapUserCommand as T, CodemationFrontendAuthSnapshotFactory as _, AppContainerLifecycle as a, WorkflowDefinitionMapper as b, RequestToWebhookItemMapper as c, CredentialHttpRouteHandler as d, CodemationHonoApiApp as f, FrontendAppConfigFactory as g, InternalAuthBootstrapFactory as h, DatabaseMigrations as i, RunHttpRouteHandler as l, PublicFrontendBootstrapFactory as m, WorkerRuntime as n, WorkflowHttpRouteHandler as o, BinaryHttpRouteHandler as p, FrontendRuntime as r, WebhookHttpRouteHandler as s, AppContainerFactory as t, OAuth2HttpRouteHandler as u, WorkflowWebsocketServer as v, RunBinaryAttachmentLookupService as w, WorkflowPolicyUiPresentationFactory as x, ApiPaths as y };
14583
- //# sourceMappingURL=AppContainerFactory-DH88oxpg.js.map
15276
+ //# sourceMappingURL=AppContainerFactory-BRU02PTm.js.map