From d05839b7f49d71fd5438d120eb4040fff39c0baf Mon Sep 17 00:00:00 2001 From: devhimanshuu Date: Sun, 23 Aug 2026 21:21:21 +0530 Subject: [PATCH 1/8] audit: improve code quality --- src/app/api/approvals/[id]/cancel/route.ts | 10 +- src/app/api/approvals/route.ts | 16 +- src/app/api/canvas/copilot/route.ts | 18 +- src/app/api/canvas/optimize-prompt/route.ts | 18 +- .../api/canvas/preview/[id]/stream/route.ts | 24 +- src/app/api/executions/[id]/cancel/route.ts | 10 +- src/app/api/executions/[id]/detail/route.ts | 23 +- src/app/api/executions/[id]/export/route.ts | 23 +- src/app/api/executions/[id]/replay/route.ts | 37 +- src/app/api/executions/[id]/resume/route.ts | 28 +- src/app/api/executions/[id]/retry/route.ts | 26 +- src/app/api/executions/[id]/route.ts | 10 +- src/app/api/executions/route.ts | 35 +- src/app/api/mcp/messages/route.ts | 18 +- src/app/api/mcp/servers/[id]/connect/route.ts | 6 +- .../api/mcp/servers/[id]/disconnect/route.ts | 6 +- .../api/mcp/servers/[id]/discover/route.ts | 6 +- src/app/api/mcp/servers/[id]/health/route.ts | 6 +- src/app/api/mcp/servers/[id]/metrics/route.ts | 6 +- .../api/mcp/servers/[id]/progress/route.ts | 31 +- src/app/api/mcp/servers/[id]/prompts/route.ts | 6 +- .../mcp/servers/[id]/resources/read/route.ts | 6 +- .../api/mcp/servers/[id]/resources/route.ts | 6 +- src/app/api/mcp/servers/[id]/route.ts | 6 +- .../api/mcp/servers/[id]/sampling/route.ts | 6 +- src/app/api/mcp/servers/[id]/test/route.ts | 6 +- src/app/api/mcp/servers/batch/route.ts | 6 +- src/app/api/mcp/servers/export/route.ts | 11 +- src/app/api/mcp/servers/import/route.ts | 11 +- src/app/api/mcp/servers/route.ts | 13 +- src/app/api/mcp/skills-feed/route.ts | 22 +- src/app/api/mcp/sse/route.ts | 29 +- src/app/api/mcp/updates/route.ts | 15 +- .../api/openapi/integrations/[id]/route.ts | 6 +- .../openapi/integrations/[id]/test/route.ts | 6 +- src/app/api/openapi/integrations/route.ts | 13 +- src/app/api/openapi/parse/route.ts | 6 +- src/app/api/openapi/test-raw/route.ts | 6 +- src/app/api/skills/packs/route.ts | 13 +- src/app/api/skills/synthesize/route.ts | 10 +- .../skills/marketplace/SkillsMarketplace.tsx | 67 ++- src/lib/api/services.ts | 94 ++++ src/lib/fetch-utils.ts | 2 + src/lib/secrets.ts | 174 ++++++++ .../execution/executor/stepReferences.ts | 51 ++- .../execution/planner/plannerService.ts | 11 +- .../tool-registry/permissionChecker.ts | 31 +- src/modules/graph/eventBus.ts | 4 +- src/modules/graph/graphInterpreter.ts | 404 ++++++++++++++++-- src/modules/mcp/toolAdapter.ts | 19 +- src/modules/openapi/dynamicTool.ts | 22 +- .../tools/code-execution/sandboxRunner.ts | 107 ++--- src/modules/tools/registry/ToolRegistry.ts | 47 +- src/repositories/ApprovalRepository.ts | 20 + src/repositories/ExecutionRepository.ts | 14 + src/repositories/McpServerRepository.ts | 42 +- src/repositories/OpenApiRepository.ts | 79 +++- .../interfaces/IApprovalRepository.ts | 2 + .../interfaces/IExecutionRepository.ts | 2 + .../interfaces/IMcpServerRepository.ts | 4 +- .../interfaces/IOpenApiRepository.ts | 5 +- src/services/ExecutionService.ts | 318 ++++++-------- src/services/McpClientService.ts | 131 ++++-- src/services/OpenApiService.ts | 31 +- src/services/VaultService.ts | 16 +- src/services/interfaces/IMcpClientService.ts | 4 +- src/services/interfaces/IOpenApiService.ts | 2 +- src/types/agent-studio-registry.ts | 9 +- src/types/graph.ts | 2 + tests/unit/modules/executionService.test.ts | 6 +- .../modules/graph/graphInterpreter.test.ts | 27 +- .../unit/modules/helpers/fakeApprovalRepo.ts | 11 + .../unit/modules/helpers/fakeExecutionRepo.ts | 7 + tests/unit/modules/mcp/mcpEndToEnd.test.ts | 4 + tests/unit/modules/mcp/mcpExecution.test.ts | 17 +- .../modules/mcp/mcpExportImportBatch.test.ts | 4 + tests/unit/modules/permissionChecker.test.ts | 9 +- tests/unit/services/approvalService.test.ts | 7 + tests/unit/services/openApiService.test.ts | 1 + tsconfig.tsbuildinfo | 2 +- 80 files changed, 1553 insertions(+), 816 deletions(-) create mode 100644 src/lib/api/services.ts create mode 100644 src/lib/secrets.ts diff --git a/src/app/api/approvals/[id]/cancel/route.ts b/src/app/api/approvals/[id]/cancel/route.ts index 8640330..0f0506c 100644 --- a/src/app/api/approvals/[id]/cancel/route.ts +++ b/src/app/api/approvals/[id]/cancel/route.ts @@ -1,20 +1,14 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; import { z } from "zod"; -import { ApprovalRepository } from "@/repositories/ApprovalRepository"; -import { ApprovalHistoryRepository } from "@/repositories/ApprovalHistoryRepository"; -import { ExecutionRepository } from "@/repositories/ExecutionRepository"; -import { ApprovalEngine } from "@/modules/approval"; import { unauthorized, forbidden, badRequest, serverError, notFound } from "@/lib/api/handlers"; +import { apiServices } from "@/lib/api/services"; const cancelSchema = z.object({ idempotencyKey: z.string().min(1, "Idempotency key is required"), }); -const approvalRepo = new ApprovalRepository(); -const historyRepo = new ApprovalHistoryRepository(); -const executionRepo = new ExecutionRepository(); -const approvalEngine = new ApprovalEngine(approvalRepo, historyRepo, executionRepo); +const { approvalEngine } = apiServices(); export async function POST( request: Request, diff --git a/src/app/api/approvals/route.ts b/src/app/api/approvals/route.ts index 0241a32..07a5aa9 100644 --- a/src/app/api/approvals/route.ts +++ b/src/app/api/approvals/route.ts @@ -2,25 +2,21 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; import { z } from "zod"; import { respondApprovalSchema } from "@/validators/approvalSchema"; -import { ApprovalRepository } from "@/repositories/ApprovalRepository"; -import { ApprovalHistoryRepository } from "@/repositories/ApprovalHistoryRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; -import { ExecutionRepository } from "@/repositories/ExecutionRepository"; -import { ApprovalEngine } from "@/modules/approval"; import { unauthorized, forbidden, notFound, badRequest, serverError } from "@/lib/api/handlers"; import { rateLimit } from "@/lib/api/rateLimit"; +import { apiServices } from "@/lib/api/services"; -const approvalRepo = new ApprovalRepository(); -const _auditRepo = new AuditLogRepository(); -const historyRepo = new ApprovalHistoryRepository(); -const executionRepo = new ExecutionRepository(); -const approvalEngine = new ApprovalEngine(approvalRepo, historyRepo, executionRepo); +const { approvalRepo, approvalEngine } = apiServices(); export async function GET(_request: Request) { const { userId } = await auth(); if (!userId) return unauthorized(); try { + // Eventually-consistent escalation sweep: expire stale PENDING requests + // whose in-process escalateAfterMin timer was lost to a deploy/freeze. + await approvalRepo.expireStaleForUser(userId).catch(() => 0); + // Return ALL approvals for the user (not just pending) — the review UI needs // both the pending queue and history. Single query, ownership-scoped. const requests = await approvalRepo.findByUserId(userId); diff --git a/src/app/api/canvas/copilot/route.ts b/src/app/api/canvas/copilot/route.ts index d866a19..0ac4c78 100644 --- a/src/app/api/canvas/copilot/route.ts +++ b/src/app/api/canvas/copilot/route.ts @@ -1,6 +1,9 @@ import { NextRequest, NextResponse } from "next/server"; +import { auth } from "@clerk/nextjs/server"; import { getLLMProvider } from "@/providers/llm"; import type { AgentGraphDefinition } from "@/types/graph"; +import { unauthorized, serverError } from "@/lib/api/handlers"; +import { rateLimit } from "@/lib/api/rateLimit"; const COPILOT_SYSTEM_PROMPT = `You are a graph architect for Agent Studio. Given a natural language description of a multi-agent system, generate a complete AgentGraphDefinition JSON. @@ -55,6 +58,12 @@ Make sure: 5. Return ONLY valid JSON, no markdown fences, no explanation`; export async function POST(request: NextRequest) { + const { userId } = await auth(); + if (!userId) return unauthorized(); + + const limited = rateLimit(`canvas:copilot:${userId}`); + if (limited) return limited; + try { const body = await request.json(); const { prompt } = body; @@ -123,13 +132,6 @@ export async function POST(request: NextRequest) { return NextResponse.json({ success: true, graph }); } catch (error) { - console.error("[Canvas Copilot]", error); - return NextResponse.json( - { - success: false, - error: error instanceof Error ? error.message : "Graph generation failed", - }, - { status: 500 } - ); + return serverError(error); } } diff --git a/src/app/api/canvas/optimize-prompt/route.ts b/src/app/api/canvas/optimize-prompt/route.ts index 41c34c4..0549464 100644 --- a/src/app/api/canvas/optimize-prompt/route.ts +++ b/src/app/api/canvas/optimize-prompt/route.ts @@ -1,5 +1,8 @@ import { NextRequest, NextResponse } from "next/server"; +import { auth } from "@clerk/nextjs/server"; import { getLLMProvider } from "@/providers/llm"; +import { unauthorized, serverError } from "@/lib/api/handlers"; +import { rateLimit } from "@/lib/api/rateLimit"; const OPTIMIZER_SYSTEM_PROMPT = `You are a prompt engineering expert. Given an agent's current system prompt and its role context, produce an optimized version that: @@ -18,6 +21,12 @@ Rules: - Return ONLY the optimized prompt text, no explanations or meta-commentary`; export async function POST(request: NextRequest) { + const { userId } = await auth(); + if (!userId) return unauthorized(); + + const limited = rateLimit(`canvas:optimize:${userId}`); + if (limited) return limited; + try { const body = await request.json(); const { prompt, nodeType, label, condition, toolName } = body; @@ -65,13 +74,6 @@ export async function POST(request: NextRequest) { }, }); } catch (error) { - console.error("[Prompt Optimizer]", error); - return NextResponse.json( - { - success: false, - error: error instanceof Error ? error.message : "Optimization failed", - }, - { status: 500 } - ); + return serverError(error); } } diff --git a/src/app/api/canvas/preview/[id]/stream/route.ts b/src/app/api/canvas/preview/[id]/stream/route.ts index b30619b..02358ee 100644 --- a/src/app/api/canvas/preview/[id]/stream/route.ts +++ b/src/app/api/canvas/preview/[id]/stream/route.ts @@ -2,20 +2,15 @@ import { auth } from "@clerk/nextjs/server"; import { executionEventBus, ExecutionEvent } from "@/modules/graph/eventBus"; import { GraphInterpreter } from "@/modules/graph/graphInterpreter"; import { previewStore } from "@/modules/graph/previewStore"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { ExecutionRepository } from "@/repositories/ExecutionRepository"; -import { ApprovalRepository } from "@/repositories/ApprovalRepository"; -import { ExecutionLogRepository } from "@/repositories/ExecutionLogRepository"; import { createToolRegistry } from "@/modules/tools"; import { PermissionChecker } from "@/modules/execution/tool-registry/permissionChecker"; import { getLLMProvider } from "@/providers/llm"; import { AgentGraphDefinition } from "@/types/graph"; import { logger } from "@/lib/logger"; +import { apiServices } from "@/lib/api/services"; export const dynamic = "force-dynamic"; -const skillRepo = new SkillRepository(); - const SSE_HEADERS = { "Content-Type": "text/event-stream", "Cache-Control": "no-cache, no-transform", @@ -112,11 +107,6 @@ export async function GET( return new Response(stream, { headers: SSE_HEADERS }); } -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; -import { OpenApiService } from "@/services/OpenApiService"; -import { OpenApiRepository } from "@/repositories/OpenApiRepository"; - /** Run the graph interpreter in dry-run mode against the preview session. */ async function runPreview( previewId: string, @@ -125,14 +115,16 @@ async function runPreview( graph: AgentGraphDefinition, inputData: Record ): Promise { + const { skillRepo, mcpService, openApiService, executionRepo, approvalRepo, logRepo } = apiServices(); + const version = await skillRepo.findVersionById(skillVersionId); if (!version) throw new Error("Skill version not found"); const skill = await skillRepo.findByIdForUser(version.skillId, userId); if (!skill) throw new Error("Skill not found"); + // Ghost previews run on an ISOLATED registry (never the shared execution + // registries) so a preview can never mutate live tool state mid-run. const toolRegistry = createToolRegistry(); - const mcpService = new McpClientService(new McpServerRepository()); - const openApiService = new OpenApiService(new OpenApiRepository()); await Promise.all([ mcpService.registerUserMcpTools(userId, toolRegistry).catch((err) => { @@ -147,9 +139,9 @@ async function runPreview( llm: getLLMProvider(), toolRegistry, permissionChecker: new PermissionChecker(), - executionRepo: new ExecutionRepository(), - approvalRepo: new ApprovalRepository(), - logRepo: new ExecutionLogRepository(), + executionRepo, + approvalRepo, + logRepo, }); await interpreter.run({ diff --git a/src/app/api/executions/[id]/cancel/route.ts b/src/app/api/executions/[id]/cancel/route.ts index 4ce1364..468cca4 100644 --- a/src/app/api/executions/[id]/cancel/route.ts +++ b/src/app/api/executions/[id]/cancel/route.ts @@ -1,15 +1,9 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { ExecutionService } from "@/services/ExecutionService"; -import { ExecutionRepository } from "@/repositories/ExecutionRepository"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; import { unauthorized, serverError, notFound } from "@/lib/api/handlers"; +import { apiServices } from "@/lib/api/services"; -const executionRepo = new ExecutionRepository(); -const skillRepo = new SkillRepository(); -const auditRepo = new AuditLogRepository(); -const executionService = new ExecutionService(executionRepo, skillRepo, auditRepo); +const { executionService } = apiServices(); export async function POST( _request: Request, diff --git a/src/app/api/executions/[id]/detail/route.ts b/src/app/api/executions/[id]/detail/route.ts index 3da5083..e7a744c 100644 --- a/src/app/api/executions/[id]/detail/route.ts +++ b/src/app/api/executions/[id]/detail/route.ts @@ -1,28 +1,9 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { ExecutionService } from "@/services/ExecutionService"; -import { ExecutionHistoryService } from "@/modules/history"; -import { ExecutionRepository } from "@/repositories/ExecutionRepository"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; -import { ExecutionLogRepository } from "@/repositories/ExecutionLogRepository"; -import { ApprovalRepository } from "@/repositories/ApprovalRepository"; -import { ApprovalHistoryRepository } from "@/repositories/ApprovalHistoryRepository"; import { unauthorized, serverError, notFound } from "@/lib/api/handlers"; +import { apiServices } from "@/lib/api/services"; -const executionRepo = new ExecutionRepository(); -const skillRepo = new SkillRepository(); -const auditRepo = new AuditLogRepository(); -const executionService = new ExecutionService(executionRepo, skillRepo, auditRepo); -const historyService = new ExecutionHistoryService( - executionRepo, - skillRepo, - auditRepo, - executionService, - new ExecutionLogRepository(), - new ApprovalRepository(), - new ApprovalHistoryRepository() -); +const { executionService, historyService } = apiServices(); /** Full execution detail: trace data, structured logs, timeline, and approval events. */ export async function GET( diff --git a/src/app/api/executions/[id]/export/route.ts b/src/app/api/executions/[id]/export/route.ts index 28b17c3..1863516 100644 --- a/src/app/api/executions/[id]/export/route.ts +++ b/src/app/api/executions/[id]/export/route.ts @@ -1,28 +1,9 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { ExecutionService } from "@/services/ExecutionService"; -import { ExecutionHistoryService } from "@/modules/history"; -import { ExecutionRepository } from "@/repositories/ExecutionRepository"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; -import { ExecutionLogRepository } from "@/repositories/ExecutionLogRepository"; -import { ApprovalRepository } from "@/repositories/ApprovalRepository"; -import { ApprovalHistoryRepository } from "@/repositories/ApprovalHistoryRepository"; import { unauthorized, serverError, notFound } from "@/lib/api/handlers"; +import { apiServices } from "@/lib/api/services"; -const executionRepo = new ExecutionRepository(); -const skillRepo = new SkillRepository(); -const auditRepo = new AuditLogRepository(); -const executionService = new ExecutionService(executionRepo, skillRepo, auditRepo); -const historyService = new ExecutionHistoryService( - executionRepo, - skillRepo, - auditRepo, - executionService, - new ExecutionLogRepository(), - new ApprovalRepository(), - new ApprovalHistoryRepository() -); +const { executionService, historyService } = apiServices(); /** * JSON export of a full execution report: trace data, structured logs, diff --git a/src/app/api/executions/[id]/replay/route.ts b/src/app/api/executions/[id]/replay/route.ts index 7990de1..2cb0d79 100644 --- a/src/app/api/executions/[id]/replay/route.ts +++ b/src/app/api/executions/[id]/replay/route.ts @@ -1,43 +1,10 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { ExecutionService } from "@/services/ExecutionService"; -import { ExecutionHistoryService } from "@/modules/history"; -import { ExecutionRepository } from "@/repositories/ExecutionRepository"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; -import { ExecutionLogRepository } from "@/repositories/ExecutionLogRepository"; -import { ApprovalRepository } from "@/repositories/ApprovalRepository"; -import { ApprovalHistoryRepository } from "@/repositories/ApprovalHistoryRepository"; import { unauthorized, serverError, notFound, forbidden } from "@/lib/api/handlers"; import { rateLimit } from "@/lib/api/rateLimit"; +import { apiServices } from "@/lib/api/services"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; -import { OpenApiService } from "@/services/OpenApiService"; -import { OpenApiRepository } from "@/repositories/OpenApiRepository"; - -const executionRepo = new ExecutionRepository(); -const skillRepo = new SkillRepository(); -const auditRepo = new AuditLogRepository(); -const approvalRepo = new ApprovalRepository(); -const historyRepo = new ApprovalHistoryRepository(); -const mcpService = new McpClientService(new McpServerRepository()); -const openApiService = new OpenApiService(new OpenApiRepository()); - -const executionService = new ExecutionService(executionRepo, skillRepo, auditRepo, { - mcpService, - openApiService, - approvalRepo, -}); -const historyService = new ExecutionHistoryService( - executionRepo, - skillRepo, - auditRepo, - executionService, - new ExecutionLogRepository(), - approvalRepo, - historyRepo -); +const { executionService, historyService } = apiServices(); /** * Replay a previous execution. Reuses its skill version + input, creates a NEW diff --git a/src/app/api/executions/[id]/resume/route.ts b/src/app/api/executions/[id]/resume/route.ts index 5aee17f..b3ba5d7 100644 --- a/src/app/api/executions/[id]/resume/route.ts +++ b/src/app/api/executions/[id]/resume/route.ts @@ -1,40 +1,16 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; import { z } from "zod"; -import { ExecutionService } from "@/services/ExecutionService"; -import { ExecutionRepository } from "@/repositories/ExecutionRepository"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; -import { ApprovalRepository } from "@/repositories/ApprovalRepository"; -import { ApprovalHistoryRepository } from "@/repositories/ApprovalHistoryRepository"; -import { ApprovalEngine } from "@/modules/approval"; import { unauthorized, forbidden, badRequest, serverError, notFound } from "@/lib/api/handlers"; import { rateLimit } from "@/lib/api/rateLimit"; +import { apiServices } from "@/lib/api/services"; const resumeSchema = z.object({ approvalId: z.string().min(1, "Approval ID is required"), idempotencyKey: z.string().min(1, "Idempotency key is required"), }); -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; -import { OpenApiService } from "@/services/OpenApiService"; -import { OpenApiRepository } from "@/repositories/OpenApiRepository"; - -const executionRepo = new ExecutionRepository(); -const skillRepo = new SkillRepository(); -const auditRepo = new AuditLogRepository(); -const approvalRepo = new ApprovalRepository(); -const historyRepo = new ApprovalHistoryRepository(); -const mcpService = new McpClientService(new McpServerRepository()); -const openApiService = new OpenApiService(new OpenApiRepository()); - -const approvalEngine = new ApprovalEngine(approvalRepo, historyRepo, executionRepo); -const executionService = new ExecutionService(executionRepo, skillRepo, auditRepo, { - mcpService, - openApiService, - approvalRepo, -}); +const { executionRepo, auditRepo, approvalRepo, approvalEngine, executionService } = apiServices(); export async function POST( request: Request, diff --git a/src/app/api/executions/[id]/retry/route.ts b/src/app/api/executions/[id]/retry/route.ts index a137870..e3468d4 100644 --- a/src/app/api/executions/[id]/retry/route.ts +++ b/src/app/api/executions/[id]/retry/route.ts @@ -1,30 +1,10 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { ExecutionService } from "@/services/ExecutionService"; -import { ExecutionRepository } from "@/repositories/ExecutionRepository"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; -import { ApprovalRepository } from "@/repositories/ApprovalRepository"; import { unauthorized, forbidden, notFound, serverError, badRequest } from "@/lib/api/handlers"; import { rateLimit } from "@/lib/api/rateLimit"; +import { apiServices } from "@/lib/api/services"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; -import { OpenApiService } from "@/services/OpenApiService"; -import { OpenApiRepository } from "@/repositories/OpenApiRepository"; - -const executionRepo = new ExecutionRepository(); -const skillRepo = new SkillRepository(); -const auditRepo = new AuditLogRepository(); -const approvalRepo = new ApprovalRepository(); -const mcpService = new McpClientService(new McpServerRepository()); -const openApiService = new OpenApiService(new OpenApiRepository()); - -const executionService = new ExecutionService(executionRepo, skillRepo, auditRepo, { - mcpService, - openApiService, - approvalRepo, -}); +const { executionService } = apiServices(); /** * Step-Level Safe Recovery Endpoint: @@ -42,7 +22,7 @@ export async function POST( try { const { id } = await params; - const execution = await executionRepo.findByIdForUser(id, userId); + const execution = await executionService.getExecutionForUser(id, userId); if (!execution) { return notFound("Execution not found or you do not have access to it"); } diff --git a/src/app/api/executions/[id]/route.ts b/src/app/api/executions/[id]/route.ts index 799a067..ff12fad 100644 --- a/src/app/api/executions/[id]/route.ts +++ b/src/app/api/executions/[id]/route.ts @@ -1,15 +1,9 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { ExecutionService } from "@/services/ExecutionService"; -import { ExecutionRepository } from "@/repositories/ExecutionRepository"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; import { unauthorized, serverError, notFound } from "@/lib/api/handlers"; +import { apiServices } from "@/lib/api/services"; -const executionRepo = new ExecutionRepository(); -const skillRepo = new SkillRepository(); -const auditRepo = new AuditLogRepository(); -const executionService = new ExecutionService(executionRepo, skillRepo, auditRepo); +const { executionService } = apiServices(); export async function GET( _request: Request, diff --git a/src/app/api/executions/route.ts b/src/app/api/executions/route.ts index 1f1b14e..6ebedf7 100644 --- a/src/app/api/executions/route.ts +++ b/src/app/api/executions/route.ts @@ -1,18 +1,12 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; import { startExecutionSchema } from "@/validators/executionSchema"; -import { ExecutionService } from "@/services/ExecutionService"; import { ExecutionHistoryService } from "@/modules/history"; -import { ExecutionRepository } from "@/repositories/ExecutionRepository"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; -import { ExecutionLogRepository } from "@/repositories/ExecutionLogRepository"; -import { ApprovalRepository } from "@/repositories/ApprovalRepository"; -import { ApprovalHistoryRepository } from "@/repositories/ApprovalHistoryRepository"; import { unauthorized, badRequest, serverError, isValidIsoDate } from "@/lib/api/handlers"; import { rateLimit } from "@/lib/api/rateLimit"; import { ExecutionError } from "@/modules/execution/executor/errors"; import { ExecutionQuery, ExecutionStatus } from "@/types/execution"; +import { apiServices } from "@/lib/api/services"; const VALID_STATUSES = new Set([ "PENDING", @@ -27,32 +21,7 @@ const VALID_STATUSES = new Set([ const VALID_SORT_BY = new Set(["startedAt", "durationMs", "status"]); const VALID_SORT_ORDER = new Set(["asc", "desc"]); -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; -import { OpenApiService } from "@/services/OpenApiService"; -import { OpenApiRepository } from "@/repositories/OpenApiRepository"; - -const executionRepo = new ExecutionRepository(); -const skillRepo = new SkillRepository(); -const auditRepo = new AuditLogRepository(); -const approvalRepo = new ApprovalRepository(); -const mcpService = new McpClientService(new McpServerRepository()); -const openApiService = new OpenApiService(new OpenApiRepository()); - -const executionService = new ExecutionService(executionRepo, skillRepo, auditRepo, { - mcpService, - openApiService, - approvalRepo, -}); -const historyService = new ExecutionHistoryService( - executionRepo, - skillRepo, - auditRepo, - executionService, - new ExecutionLogRepository(), - approvalRepo, - new ApprovalHistoryRepository() -); +const { executionService, historyService } = apiServices(); export async function GET(request: Request) { const { userId } = await auth(); diff --git a/src/app/api/mcp/messages/route.ts b/src/app/api/mcp/messages/route.ts index e9d608f..819b1c3 100644 --- a/src/app/api/mcp/messages/route.ts +++ b/src/app/api/mcp/messages/route.ts @@ -1,12 +1,7 @@ import { auth } from "@clerk/nextjs/server"; import { env } from "@/lib/config/env"; import { AgentStudioMcpServer, isMcpRequestAuthorized } from "@/modules/mcp/server"; -import { ExecutionService } from "@/services/ExecutionService"; -import { ExecutionRepository } from "@/repositories/ExecutionRepository"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; export const runtime = "nodejs"; export const dynamic = "force-dynamic"; @@ -24,15 +19,8 @@ export async function POST(request: Request) { }); } - const mcpServer = new AgentStudioMcpServer({ - executionService: new ExecutionService( - new ExecutionRepository(), - new SkillRepository(), - new AuditLogRepository(), - { mcpService: new McpClientService(new McpServerRepository()) } - ), - skillRepo: new SkillRepository(), - }); + const { executionService, skillRepo } = apiServices(); + const mcpServer = new AgentStudioMcpServer({ executionService, skillRepo }); return mcpServer.handleMessageRequest(request); } diff --git a/src/app/api/mcp/servers/[id]/connect/route.ts b/src/app/api/mcp/servers/[id]/connect/route.ts index afd0763..3c95337 100644 --- a/src/app/api/mcp/servers/[id]/connect/route.ts +++ b/src/app/api/mcp/servers/[id]/connect/route.ts @@ -1,10 +1,10 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { unauthorized, badRequest, notFound } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); export async function POST(_request: Request, { params }: { params: Promise<{ id: string }> }) { const { userId } = await auth(); diff --git a/src/app/api/mcp/servers/[id]/disconnect/route.ts b/src/app/api/mcp/servers/[id]/disconnect/route.ts index 4dee0fd..6b06910 100644 --- a/src/app/api/mcp/servers/[id]/disconnect/route.ts +++ b/src/app/api/mcp/servers/[id]/disconnect/route.ts @@ -1,10 +1,10 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { unauthorized, serverError, notFound } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); export async function POST(_request: Request, { params }: { params: Promise<{ id: string }> }) { const { userId } = await auth(); diff --git a/src/app/api/mcp/servers/[id]/discover/route.ts b/src/app/api/mcp/servers/[id]/discover/route.ts index dd55edb..832be27 100644 --- a/src/app/api/mcp/servers/[id]/discover/route.ts +++ b/src/app/api/mcp/servers/[id]/discover/route.ts @@ -1,10 +1,10 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { unauthorized, badRequest, notFound } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); export async function POST(_request: Request, { params }: { params: Promise<{ id: string }> }) { const { userId } = await auth(); diff --git a/src/app/api/mcp/servers/[id]/health/route.ts b/src/app/api/mcp/servers/[id]/health/route.ts index 1f92568..6c8d85f 100644 --- a/src/app/api/mcp/servers/[id]/health/route.ts +++ b/src/app/api/mcp/servers/[id]/health/route.ts @@ -1,10 +1,10 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { unauthorized, serverError, notFound } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); export async function GET(_request: Request, { params }: { params: Promise<{ id: string }> }) { const { userId } = await auth(); diff --git a/src/app/api/mcp/servers/[id]/metrics/route.ts b/src/app/api/mcp/servers/[id]/metrics/route.ts index f398f49..80d9c86 100644 --- a/src/app/api/mcp/servers/[id]/metrics/route.ts +++ b/src/app/api/mcp/servers/[id]/metrics/route.ts @@ -1,10 +1,10 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { unauthorized, notFound, forbidden, serverError } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); /** * GET /api/mcp/servers/:id/metrics diff --git a/src/app/api/mcp/servers/[id]/progress/route.ts b/src/app/api/mcp/servers/[id]/progress/route.ts index f39615c..9473ecd 100644 --- a/src/app/api/mcp/servers/[id]/progress/route.ts +++ b/src/app/api/mcp/servers/[id]/progress/route.ts @@ -1,8 +1,8 @@ import { auth } from "@clerk/nextjs/server"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; -const mcpService = new McpClientService(new McpServerRepository()); + +const { mcpService } = apiServices(); /** * GET /api/mcp/servers/:id/progress @@ -23,37 +23,52 @@ export async function GET(request: Request, { params }: { params: Promise<{ id: const stream = new ReadableStream({ start(controller) { + let closed = false; + let unsubscribe: (() => void) | null = () => {}; + const safeUnsubscribe = () => { + closed = true; + try { unsubscribe?.(); } catch { /* noop */ } + unsubscribe = null; + }; + // Send initial connection event controller.enqueue( encoder.encode(`data: ${JSON.stringify({ type: "connected", serverId: id, timestamp: Date.now() })}\n\n`) ); - // Subscribe to progress events from the MCP connection - const unsubscribe = mcpService.onProgress(id, userId, (event) => { + // Subscribe to progress events from the MCP connection. + // Async: the service verifies OWNERSHIP before attaching the listener — + // a non-owner (or unconnected server) resolves to a no-op subscription. + void mcpService.onProgress(id, userId, (event) => { + if (closed) return; try { controller.enqueue(encoder.encode(`data: ${JSON.stringify(event)}\n\n`)); } catch { // Stream may be closed by the client - unsubscribe(); + safeUnsubscribe(); } + }).then((unsub) => { + if (closed) { try { unsub(); } catch { /* noop */ } return; } + unsubscribe = unsub; }); // Heartbeat every 30s to keep connection alive const heartbeat = setInterval(() => { + if (closed) { clearInterval(heartbeat); return; } try { controller.enqueue( encoder.encode(`data: ${JSON.stringify({ type: "heartbeat", timestamp: Date.now() })}\n\n`) ); } catch { clearInterval(heartbeat); - unsubscribe(); + safeUnsubscribe(); } }, 30_000); // Clean up when client disconnects request.signal.addEventListener("abort", () => { clearInterval(heartbeat); - unsubscribe(); + safeUnsubscribe(); try { controller.close(); } catch { diff --git a/src/app/api/mcp/servers/[id]/prompts/route.ts b/src/app/api/mcp/servers/[id]/prompts/route.ts index aca769c..aef9628 100644 --- a/src/app/api/mcp/servers/[id]/prompts/route.ts +++ b/src/app/api/mcp/servers/[id]/prompts/route.ts @@ -1,10 +1,10 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { unauthorized, notFound, forbidden, serverError, badRequest } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); /** * GET /api/mcp/servers/:id/prompts diff --git a/src/app/api/mcp/servers/[id]/resources/read/route.ts b/src/app/api/mcp/servers/[id]/resources/read/route.ts index ec3f39f..6fb82c9 100644 --- a/src/app/api/mcp/servers/[id]/resources/read/route.ts +++ b/src/app/api/mcp/servers/[id]/resources/read/route.ts @@ -1,11 +1,11 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; import { z } from "zod"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { unauthorized, notFound, forbidden, badRequest, serverError } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); const readResourceSchema = z.object({ uri: z.string().min(1, "URI is required"), diff --git a/src/app/api/mcp/servers/[id]/resources/route.ts b/src/app/api/mcp/servers/[id]/resources/route.ts index 3053858..8e45eb0 100644 --- a/src/app/api/mcp/servers/[id]/resources/route.ts +++ b/src/app/api/mcp/servers/[id]/resources/route.ts @@ -1,10 +1,10 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { unauthorized, notFound, forbidden, serverError } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); /** * GET /api/mcp/servers/:id/resources diff --git a/src/app/api/mcp/servers/[id]/route.ts b/src/app/api/mcp/servers/[id]/route.ts index 0646ffa..d871f96 100644 --- a/src/app/api/mcp/servers/[id]/route.ts +++ b/src/app/api/mcp/servers/[id]/route.ts @@ -1,11 +1,11 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { updateMcpServerSchema } from "@/validators/mcpSchema"; import { unauthorized, badRequest, serverError, notFound, forbidden } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); export async function GET(_request: Request, { params }: { params: Promise<{ id: string }> }) { const { userId } = await auth(); diff --git a/src/app/api/mcp/servers/[id]/sampling/route.ts b/src/app/api/mcp/servers/[id]/sampling/route.ts index 4ef9a43..31d3c48 100644 --- a/src/app/api/mcp/servers/[id]/sampling/route.ts +++ b/src/app/api/mcp/servers/[id]/sampling/route.ts @@ -1,11 +1,11 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; import { z } from "zod"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { unauthorized, badRequest, serverError, notFound, forbidden } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); const samplingSchema = z.object({ messages: z.array( diff --git a/src/app/api/mcp/servers/[id]/test/route.ts b/src/app/api/mcp/servers/[id]/test/route.ts index 717192c..6605f9c 100644 --- a/src/app/api/mcp/servers/[id]/test/route.ts +++ b/src/app/api/mcp/servers/[id]/test/route.ts @@ -1,11 +1,11 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { mcpTestToolSchema } from "@/validators/mcpSchema"; import { unauthorized, badRequest, serverError, notFound } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); export async function POST(request: Request, { params }: { params: Promise<{ id: string }> }) { const { userId } = await auth(); diff --git a/src/app/api/mcp/servers/batch/route.ts b/src/app/api/mcp/servers/batch/route.ts index 6a0b53d..cc31e9d 100644 --- a/src/app/api/mcp/servers/batch/route.ts +++ b/src/app/api/mcp/servers/batch/route.ts @@ -1,11 +1,11 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; import { z } from "zod"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { unauthorized, badRequest, serverError } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); const batchActionSchema = z.object({ action: z.enum(["connect", "disconnect", "health"]), diff --git a/src/app/api/mcp/servers/export/route.ts b/src/app/api/mcp/servers/export/route.ts index abe39a5..bd640fe 100644 --- a/src/app/api/mcp/servers/export/route.ts +++ b/src/app/api/mcp/servers/export/route.ts @@ -1,9 +1,9 @@ import { auth } from "@clerk/nextjs/server"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { unauthorized, serverError } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); /** * GET /api/mcp/servers/export @@ -18,12 +18,15 @@ export async function GET() { const exportBundle = { version: "1.0", exportedAt: new Date().toISOString(), + // SECURITY: headers carry upstream credentials — they are NEVER + // exported. The bundle stays re-importable; users re-enter secrets + // after import (header names are preserved as a convenience). servers: servers.map((s) => ({ name: s.name, transport: s.transport, endpointUrl: s.endpointUrl, command: s.command, - headers: s.headers, + ...(s.headers ? { headerNames: Object.keys(s.headers) } : {}), })), }; diff --git a/src/app/api/mcp/servers/import/route.ts b/src/app/api/mcp/servers/import/route.ts index 72d32f2..83363fb 100644 --- a/src/app/api/mcp/servers/import/route.ts +++ b/src/app/api/mcp/servers/import/route.ts @@ -1,11 +1,11 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; import { z } from "zod"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { unauthorized, badRequest, serverError } from "@/lib/api/handlers"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); const importSchema = z.object({ version: z.string().optional(), @@ -45,7 +45,10 @@ export async function POST(request: Request) { endpointUrl: serverInput.endpointUrl ?? undefined, command: serverInput.command ?? undefined, headers: serverInput.headers ?? undefined, - connectOnCreate: serverInput.connectOnCreate ?? false, + // Imported bundles NEVER auto-connect: a STDIO entry would mean + // executing an arbitrary command from a JSON file the moment it is + // imported. The user must explicitly hit Connect. + connectOnCreate: false, }); imported.push(created); } catch (err) { diff --git a/src/app/api/mcp/servers/route.ts b/src/app/api/mcp/servers/route.ts index 1d15ea3..3c1018b 100644 --- a/src/app/api/mcp/servers/route.ts +++ b/src/app/api/mcp/servers/route.ts @@ -1,20 +1,23 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; + import { createMcpServerSchema } from "@/validators/mcpSchema"; import { unauthorized, badRequest, serverError } from "@/lib/api/handlers"; import { ZodError } from "zod"; -const mcpService = new McpClientService(new McpServerRepository()); +const { mcpService } = apiServices(); -export async function GET() { +export async function GET(request: Request) { const { userId } = await auth(); if (!userId) return unauthorized(); try { - const servers = await mcpService.listServers(userId); + // Optional ?limit= (1–200, default uncapped for the hub's own use). + const limitRaw = new URL(request.url).searchParams.get("limit"); + const limit = limitRaw && /^\d+$/.test(limitRaw) ? Math.min(Number(limitRaw), 200) : undefined; + const servers = await mcpService.listServers(userId, limit); return NextResponse.json({ success: true, data: servers }); } catch (error) { return serverError(error); diff --git a/src/app/api/mcp/skills-feed/route.ts b/src/app/api/mcp/skills-feed/route.ts index 9560a08..1a47190 100644 --- a/src/app/api/mcp/skills-feed/route.ts +++ b/src/app/api/mcp/skills-feed/route.ts @@ -48,9 +48,9 @@ function serverToSkill(server: AwesomeMcpServer): AgentSkill { requiredServers: [server.name], requiredTools: [], tags: Array.from(new Set([server.source, ...(server.tags || [])])).slice(0, 5), - stars: server.isVerified ? 180 : 45, - installs: server.isVerified ? 2100 : 380, - rating: server.isVerified ? 4.9 : 4.6, + // Real metrics only — fabricated stars/installs/ratings were previously + // hardcoded per "verified" flag, which misinformed purchase decisions. + ...(typeof server.stars === "number" ? { stars: server.stars } : {}), difficulty: server.requiresAuthToken ? "INTERMEDIATE" : "BEGINNER", estimatedTime: "3 min", steps: [ @@ -88,9 +88,6 @@ function composioToolkitToSkill(tk: ComposioToolkit): AgentSkill { requiredServers: [`${tk.name} (Composio)`], requiredTools: [], tags: [...tk.categories.map((c) => c.name.toLowerCase()), "composio", "managed-auth", tk.slug].slice(0, 5), - stars: tk.toolsCount, - installs: tk.toolsCount * 10, - rating: tk.managedAuth.length > 0 ? 4.9 : 4.5, difficulty: tk.noAuth ? "BEGINNER" : "INTERMEDIATE", estimatedTime: "2 min", steps: [ @@ -118,9 +115,6 @@ function composioToolToSkill(tool: ComposioTool): AgentSkill { requiredServers: [`${tool.toolkitName} (Composio)`], requiredTools: [tool.slug], tags: ["composio", tool.toolkitSlug, tool.toolkitName.toLowerCase(), ...inputProps.slice(0, 2)].slice(0, 5), - stars: 0, - installs: 0, - rating: 4.7, difficulty: inputProps.length > 4 ? "ADVANCED" : inputProps.length > 2 ? "INTERMEDIATE" : "BEGINNER", estimatedTime: "1 min", steps: [ @@ -162,9 +156,13 @@ function smitheryItemToSkill(s: Record): AgentSkill { requiredServers: servers, requiredTools: [], tags: ["smithery", ...categories, ...servers].slice(0, 5), - stars: typeof s.externalStars === "number" ? s.externalStars : 0, - installs: typeof s.totalActivations === "number" ? s.totalActivations : 0, - rating: Math.min(5, Math.max(1, Math.round(qualityScore * 5))), + // Real Smithery metrics when present; undefined (not zero/fabricated) + // otherwise so the UI hides the badge entirely. + ...(typeof s.externalStars === "number" && s.externalStars > 0 ? { stars: s.externalStars } : {}), + ...(typeof s.totalActivations === "number" && s.totalActivations > 0 ? { installs: s.totalActivations } : {}), + ...(typeof s.qualityScore === "number" + ? { rating: Math.min(5, Math.max(1, Math.round(s.qualityScore * 5))) } + : {}), difficulty: (qualityScore > 0.9 ? "ADVANCED" : qualityScore > 0.7 ? "INTERMEDIATE" : "BEGINNER") as AgentSkill["difficulty"], estimatedTime: "5 min", steps: [ diff --git a/src/app/api/mcp/sse/route.ts b/src/app/api/mcp/sse/route.ts index 6235e64..d524f7a 100644 --- a/src/app/api/mcp/sse/route.ts +++ b/src/app/api/mcp/sse/route.ts @@ -1,12 +1,7 @@ import { auth } from "@clerk/nextjs/server"; import { env } from "@/lib/config/env"; import { AgentStudioMcpServer, isMcpRequestAuthorized } from "@/modules/mcp/server"; -import { ExecutionService } from "@/services/ExecutionService"; -import { ExecutionRepository } from "@/repositories/ExecutionRepository"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; -import { McpClientService } from "@/services/McpClientService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { apiServices } from "@/lib/api/services"; export const runtime = "nodejs"; export const dynamic = "force-dynamic"; @@ -25,15 +20,8 @@ export async function GET(request: Request) { return unauthorizedResponse(); } - const mcpServer = new AgentStudioMcpServer({ - executionService: new ExecutionService( - new ExecutionRepository(), - new SkillRepository(), - new AuditLogRepository(), - { mcpService: new McpClientService(new McpServerRepository()) } - ), - skillRepo: new SkillRepository(), - }); + const { executionService, skillRepo } = apiServices(); + const mcpServer = new AgentStudioMcpServer({ executionService, skillRepo }); return mcpServer.handleSseRequest(request); } @@ -44,15 +32,8 @@ export async function POST(request: Request) { return unauthorizedResponse(); } - const mcpServer = new AgentStudioMcpServer({ - executionService: new ExecutionService( - new ExecutionRepository(), - new SkillRepository(), - new AuditLogRepository(), - { mcpService: new McpClientService(new McpServerRepository()) } - ), - skillRepo: new SkillRepository(), - }); + const { executionService, skillRepo } = apiServices(); + const mcpServer = new AgentStudioMcpServer({ executionService, skillRepo }); return mcpServer.handleMessageRequest(request); } diff --git a/src/app/api/mcp/updates/route.ts b/src/app/api/mcp/updates/route.ts index def2c9e..f238b2b 100644 --- a/src/app/api/mcp/updates/route.ts +++ b/src/app/api/mcp/updates/route.ts @@ -1,20 +1,15 @@ import { NextRequest, NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { McpClientService } from "@/services/McpClientService"; +import { apiServices } from "@/lib/api/services"; import { SkillService } from "@/services/SkillService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; + import { ApplyToolUpdateInput, McpToolUpdate } from "@/types/mcp"; import { applyToolUpdates } from "@/modules/mcp/toolDiff"; import { logger } from "@/lib/logger"; export const dynamic = "force-dynamic"; -const mcpRepo = new McpServerRepository(); -const mcpService = new McpClientService(mcpRepo); -const skillRepo = new SkillRepository(); -const auditRepo = new AuditLogRepository(); +const { mcpService, skillRepo, auditRepo } = apiServices(); const skillService = new SkillService(skillRepo, auditRepo); /** @@ -30,7 +25,7 @@ export async function GET(_request: Request) { const updates = mcpService.getAllPendingUpdates(); // Filter to only updates for servers owned by this user - const servers = await mcpRepo.findByUserId(userId); + const servers = await mcpService.listServers(userId); const serverIds = new Set(servers.map((s) => s.id)); const userUpdates = updates.filter((u) => serverIds.has(u.serverId)); @@ -86,7 +81,7 @@ export async function POST(request: NextRequest) { } // Verify ownership - const server = await mcpRepo.findByIdForUser(update.serverId, userId); + const server = await mcpService.getServer(update.serverId, userId); if (!server) { return NextResponse.json({ error: "Server not found or access denied" }, { status: 403 }); } diff --git a/src/app/api/openapi/integrations/[id]/route.ts b/src/app/api/openapi/integrations/[id]/route.ts index c6d561f..95f5e0c 100644 --- a/src/app/api/openapi/integrations/[id]/route.ts +++ b/src/app/api/openapi/integrations/[id]/route.ts @@ -1,12 +1,12 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { OpenApiService } from "@/services/OpenApiService"; -import { OpenApiRepository } from "@/repositories/OpenApiRepository"; +import { apiServices } from "@/lib/api/services"; + import { updateOpenApiIntegrationSchema } from "@/validators/openApiSchema"; import { unauthorized, notFound, badRequest, serverError } from "@/lib/api/handlers"; import { ZodError } from "zod"; -const openApiService = new OpenApiService(new OpenApiRepository()); +const { openApiService } = apiServices(); export async function GET( _request: Request, diff --git a/src/app/api/openapi/integrations/[id]/test/route.ts b/src/app/api/openapi/integrations/[id]/test/route.ts index 81f70ee..9d7dc26 100644 --- a/src/app/api/openapi/integrations/[id]/test/route.ts +++ b/src/app/api/openapi/integrations/[id]/test/route.ts @@ -1,12 +1,12 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { OpenApiService } from "@/services/OpenApiService"; -import { OpenApiRepository } from "@/repositories/OpenApiRepository"; +import { apiServices } from "@/lib/api/services"; + import { testEndpointRequestSchema } from "@/validators/openApiSchema"; import { unauthorized, badRequest, serverError } from "@/lib/api/handlers"; import { ZodError } from "zod"; -const openApiService = new OpenApiService(new OpenApiRepository()); +const { openApiService } = apiServices(); export async function POST( request: Request, diff --git a/src/app/api/openapi/integrations/route.ts b/src/app/api/openapi/integrations/route.ts index f8486ca..8d2625a 100644 --- a/src/app/api/openapi/integrations/route.ts +++ b/src/app/api/openapi/integrations/route.ts @@ -1,19 +1,22 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { OpenApiService } from "@/services/OpenApiService"; -import { OpenApiRepository } from "@/repositories/OpenApiRepository"; +import { apiServices } from "@/lib/api/services"; + import { createOpenApiIntegrationSchema } from "@/validators/openApiSchema"; import { unauthorized, badRequest, serverError } from "@/lib/api/handlers"; import { ZodError } from "zod"; -const openApiService = new OpenApiService(new OpenApiRepository()); +const { openApiService } = apiServices(); -export async function GET() { +export async function GET(request: Request) { const { userId } = await auth(); if (!userId) return unauthorized(); try { - const integrations = await openApiService.listIntegrations(userId); + // Optional ?limit= (1–200, default uncapped for the hub's own use). + const limitRaw = new URL(request.url).searchParams.get("limit"); + const limit = limitRaw && /^\d+$/.test(limitRaw) ? Math.min(Number(limitRaw), 200) : undefined; + const integrations = await openApiService.listIntegrations(userId, limit); return NextResponse.json({ success: true, data: integrations }); } catch (error) { return serverError(error); diff --git a/src/app/api/openapi/parse/route.ts b/src/app/api/openapi/parse/route.ts index ee02b34..27e20c4 100644 --- a/src/app/api/openapi/parse/route.ts +++ b/src/app/api/openapi/parse/route.ts @@ -1,12 +1,12 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { OpenApiService } from "@/services/OpenApiService"; -import { OpenApiRepository } from "@/repositories/OpenApiRepository"; +import { apiServices } from "@/lib/api/services"; + import { parseSpecRequestSchema } from "@/validators/openApiSchema"; import { unauthorized, badRequest, serverError } from "@/lib/api/handlers"; import { ZodError } from "zod"; -const openApiService = new OpenApiService(new OpenApiRepository()); +const { openApiService } = apiServices(); export async function POST(request: Request) { const { userId } = await auth(); diff --git a/src/app/api/openapi/test-raw/route.ts b/src/app/api/openapi/test-raw/route.ts index 58194e9..ef6ef67 100644 --- a/src/app/api/openapi/test-raw/route.ts +++ b/src/app/api/openapi/test-raw/route.ts @@ -1,12 +1,12 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; -import { OpenApiService } from "@/services/OpenApiService"; -import { OpenApiRepository } from "@/repositories/OpenApiRepository"; +import { apiServices } from "@/lib/api/services"; + import { testRawEndpointRequestSchema } from "@/validators/openApiSchema"; import { unauthorized, badRequest, serverError } from "@/lib/api/handlers"; import { ZodError } from "zod"; -const openApiService = new OpenApiService(new OpenApiRepository()); +const { openApiService } = apiServices(); export async function POST(request: Request) { const { userId } = await auth(); diff --git a/src/app/api/skills/packs/route.ts b/src/app/api/skills/packs/route.ts index ea985e2..8f49e3f 100644 --- a/src/app/api/skills/packs/route.ts +++ b/src/app/api/skills/packs/route.ts @@ -1,22 +1,19 @@ import { NextRequest, NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; import { SkillService } from "@/services/SkillService"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; + import { SkillRepository } from "@/repositories/SkillRepository"; import { AuditLogRepository } from "@/repositories/AuditLogRepository"; import { getPackById, SKILL_PACKS } from "@/data/skillPacks"; import { InstallPackInput, PackInstallationState } from "@/types/skillPacks"; import { createSkillSchema } from "@/validators/skillSchema"; -import { McpClientService } from "@/services/McpClientService"; +import { apiServices } from "@/lib/api/services"; import { logger } from "@/lib/logger"; export const dynamic = "force-dynamic"; -const skillRepo = new SkillRepository(); -const mcpRepo = new McpServerRepository(); -const auditRepo = new AuditLogRepository(); +const { skillRepo, auditRepo, mcpService } = apiServices(); const skillService = new SkillService(skillRepo, auditRepo); -const mcpService = new McpClientService(mcpRepo); /** * GET /api/skills/packs — List all available skill packs @@ -29,7 +26,7 @@ export async function GET() { try { // Get existing servers to check which are already connected - const existingServers = await mcpRepo.findByUserId(userId); + const existingServers = await mcpService.listServers(userId); const serverNames = new Set(existingServers.map((s) => s.name.toLowerCase())); // Enrich packs with installation status @@ -90,7 +87,7 @@ export async function POST(request: NextRequest) { }; // ── Phase 1: Mount MCP Servers ── - const existingServers = await mcpRepo.findByUserId(userId); + const existingServers = await mcpService.listServers(userId); const serverIdMap = new Map(); // pack server index → DB server ID const serverIndices = body.serverIndices ?? pack.servers.map((_, i) => i); diff --git a/src/app/api/skills/synthesize/route.ts b/src/app/api/skills/synthesize/route.ts index 98e388b..862fad5 100644 --- a/src/app/api/skills/synthesize/route.ts +++ b/src/app/api/skills/synthesize/route.ts @@ -1,19 +1,15 @@ import { NextRequest, NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; import { getLLMProvider } from "@/providers/llm"; -import { McpServerRepository } from "@/repositories/McpServerRepository"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; import { SkillService } from "@/services/SkillService"; import { createSkillSchema } from "@/validators/skillSchema"; import type { AgentGraphDefinition } from "@/types/graph"; import { logger } from "@/lib/logger"; +import { apiServices } from "@/lib/api/services"; export const dynamic = "force-dynamic"; -const mcpRepo = new McpServerRepository(); -const skillRepo = new SkillRepository(); -const auditRepo = new AuditLogRepository(); +const { skillRepo, auditRepo, mcpService } = apiServices(); const skillService = new SkillService(skillRepo, auditRepo); // ────────────── LLM Prompt for Graph + Server Discovery ────────────── @@ -300,7 +296,7 @@ export async function POST(request: NextRequest) { const mountedServerIds: string[] = []; if (autoMount) { - const existingRes = await mcpRepo.findByUserId(userId); + const existingRes = await mcpService.listServers(userId); const existingServers = existingRes; for (const server of matchedServers) { diff --git a/src/app/dashboard/skills/marketplace/SkillsMarketplace.tsx b/src/app/dashboard/skills/marketplace/SkillsMarketplace.tsx index 6444ab2..24f6bc9 100644 --- a/src/app/dashboard/skills/marketplace/SkillsMarketplace.tsx +++ b/src/app/dashboard/skills/marketplace/SkillsMarketplace.tsx @@ -314,6 +314,9 @@ export function SkillsMarketplace() { }, [skills, showInstalledOnly, installedMap, installedDbSkills, search, source, category, difficulty]); const [installing, setInstalling] = useState(null); + // Set when an install mounted a STDIO server that requires explicit + // connect (never auto-executes marketplace commands). + const needsManualConnect = useRef(false); /** * Mount required MCP servers and return the IDs of servers that were @@ -321,6 +324,7 @@ export function SkillsMarketplace() { */ const mountRequiredServers = useCallback(async (skill: AgentSkill): Promise => { const mountedServerIds: string[] = []; + needsManualConnect.current = false; if (!skill.requiredServers || skill.requiredServers.length === 0) return mountedServerIds; // Fetch existing servers once @@ -412,7 +416,7 @@ export function SkillsMarketplace() { // ── Smithery, Glama, MCP.SO, Awesome-MCP: search directory for a matching server ── try { const dirRes = await fetch(`/api/mcp/directory?q=${encodeURIComponent(cleanServerName)}&source=ALL`).then((r) => r.json()); - const match = (dirRes.data || []).find((s: { name: string; endpointUrl?: string }) => + const match = (dirRes.data || []).find((s: any) => s.name.toLowerCase().includes(cleanServerName) || cleanServerName.includes(s.name.toLowerCase().replace(/ mcp$/i, "")) ); @@ -423,7 +427,12 @@ export function SkillsMarketplace() { const body: Record = { name: match.name, transport, - connectOnCreate: true, + // SECURITY: a STDIO server means Agent Studio will SPAWN the + // configured command. Auto-running `npx -y ` from + // marketplace metadata executed unreviewed third-party code at + // install time. Remote (SSE) servers still auto-connect; STDIO + // entries are created disconnected for explicit user consent. + connectOnCreate: transport === "SSE", }; if (transport === "SSE" && match.endpointUrl) body.endpointUrl = match.endpointUrl; if (transport === "STDIO" && command) body.command = command; @@ -436,6 +445,9 @@ export function SkillsMarketplace() { if (serverRes.success && serverRes.data?.id) { mountedServerIds.push(serverRes.data.id); + if (transport === "STDIO") { + needsManualConnect.current = true; + } } } } catch (err) { @@ -509,7 +521,13 @@ export function SkillsMarketplace() { instructions: safeInstructions, allowedTools, maxExecutionSteps: Math.max(10, (skill.steps?.length || 1) * 3), - notes: `Installed from ${skill.source} marketplace. ID: ${marketplaceId}`, + // Structured linkage: marketplaceId drives installed-state + // reconciliation; MountedServers lets uninstall clean up the MCP + // servers auto-mounted for this skill (previously orphaned rows + + // live connections were left behind). + notes: `Installed from ${skill.source} marketplace. ID: ${marketplaceId}${ + mountedServerIds.length > 0 ? `. MountedServers: ${mountedServerIds.join(",")}` : "" + }`, }), }); @@ -537,7 +555,14 @@ export function SkillsMarketplace() { queryClient.invalidateQueries({ queryKey: ["skills"] }); await refreshInstalledSkills(); - toast.success("Skill installed", `${validName} is now available in Skills Studio`); + if (needsManualConnect.current) { + toast.info( + "Action needed: connect local server", + "A local (STDIO) MCP server was added but NOT started — review its command in the MCP Hub and click Connect." + ); + } else { + toast.success("Skill installed", `${validName} is now available in Skills Studio`); + } } catch (err) { console.error("[Marketplace] Install failed:", err); toast.error("Install failed", err instanceof Error ? err.message : "Unknown error"); @@ -547,7 +572,8 @@ export function SkillsMarketplace() { }, [installedMap, mountRequiredServers, queryClient, refreshInstalledSkills]); /** - * Uninstall: delete the Skill from DB and remove from installed map. + * Uninstall: delete the Skill from DB, clean up the MCP servers that were + * auto-mounted for it, and remove from installed map. */ const handleUninstall = useCallback(async (skill: AgentSkill) => { const marketplaceId = skill.id; @@ -557,7 +583,19 @@ export function SkillsMarketplace() { try { setInstalling(marketplaceId); - // Delete the skill from the database (allow 404 if already removed elsewhere) + // Resolve the DB skill row so we can read its notes (mounted server ids) + // even if the localStorage map is stale. + const skillRes = await fetch(`/api/skills/${dbSkillId}`).then((r) => (r.ok ? r.json() : null)); + const notes: string = skillRes?.data?.currentDraft?.notes || skillRes?.data?.publishedVersion?.notes || ""; + const mountedMatch = notes.match(/MountedServers:\s*([^\s\n\r]+)/); + const mountedIds = mountedMatch ? mountedMatch[1].split(",").filter(Boolean) : []; + + // 1. Clean up auto-mounted MCP servers (404-tolerant — may be gone). + for (const serverId of mountedIds) { + await fetch(`/api/mcp/servers/${serverId}`, { method: "DELETE" }).catch(() => {}); + } + + // 2. Delete the skill from the database (allow 404 if already removed elsewhere) const delRes = await fetch(`/api/skills/${dbSkillId}`, { method: "DELETE" }); if (!delRes.ok && delRes.status !== 404) { const errBody = await delRes.json().catch(() => ({})); @@ -576,7 +614,10 @@ export function SkillsMarketplace() { queryClient.invalidateQueries({ queryKey: ["skills"] }); await refreshInstalledSkills(); - toast.success("Skill uninstalled", `${skill.name} has been removed`); + toast.success( + "Skill uninstalled", + `${skill.name} has been removed${mountedIds.length > 0 ? ` along with ${mountedIds.length} mounted server(s)` : ""}` + ); } catch (err) { console.error("[Marketplace] Uninstall failed:", err); toast.error("Uninstall failed", err instanceof Error ? err.message : "Unknown error"); @@ -831,10 +872,10 @@ export function SkillsMarketplace() {
- {skill.rating} + {typeof skill.rating === "number" && (<> {skill.rating})} - {skill.installs.toLocaleString()} + {typeof skill.installs === "number" && (<> {skill.installs.toLocaleString()})} {skill.estimatedTime} @@ -947,10 +988,10 @@ export function SkillsMarketplace() {
- {skill.rating} + {typeof skill.rating === "number" && (<> {skill.rating})} - {skill.installs.toLocaleString()} + {typeof skill.installs === "number" && (<> {skill.installs.toLocaleString()})} {skill.estimatedTime} @@ -1175,10 +1216,10 @@ function SkillDetailModal({ {skill.difficulty} - {skill.rating} + {typeof skill.rating === "number" && (<> {skill.rating})} - {skill.installs.toLocaleString()} installs + {typeof skill.installs === "number" && (<> {skill.installs.toLocaleString()} installs)} {skill.estimatedTime} diff --git a/src/lib/api/services.ts b/src/lib/api/services.ts new file mode 100644 index 0000000..5341586 --- /dev/null +++ b/src/lib/api/services.ts @@ -0,0 +1,94 @@ +import { ExecutionRepository } from "@/repositories/ExecutionRepository"; +import { SkillRepository } from "@/repositories/SkillRepository"; +import { AuditLogRepository } from "@/repositories/AuditLogRepository"; +import { ApprovalRepository } from "@/repositories/ApprovalRepository"; +import { ApprovalHistoryRepository } from "@/repositories/ApprovalHistoryRepository"; +import { McpServerRepository } from "@/repositories/McpServerRepository"; +import { OpenApiRepository } from "@/repositories/OpenApiRepository"; +import { ExecutionLogRepository } from "@/repositories/ExecutionLogRepository"; +import { ApprovalEngine } from "@/modules/approval"; +import { ExecutionHistoryService } from "@/modules/history"; +import { McpClientService } from "@/services/McpClientService"; +import { OpenApiService } from "@/services/OpenApiService"; +import { ExecutionService } from "@/services/ExecutionService"; + +/** + * Process-wide singleton API service graph. + * + * Every route MUST share these instances. The services hold in-process state + * that is meaningless when fragmented per route module: + * - McpClientService: live transport connections, circuit breakers, tool + * snapshots (a per-route instance makes the SSE progress stream silently + * dead and disconnects unable to reach the connection another route opened). + * - ExecutionService: CancellationManager + tool registries (a per-route + * instance made POST /executions/[id]/cancel a no-op for runs started via + * POST /executions, because each instance kept its own AbortControllers). + * + * Next.js may load route modules in separate contexts; module-level + * instantiation via `globalThis` keeps one graph per process. + */ + +interface ApiServices { + executionRepo: ExecutionRepository; + skillRepo: SkillRepository; + auditRepo: AuditLogRepository; + approvalRepo: ApprovalRepository; + historyRepo: ApprovalHistoryRepository; + logRepo: ExecutionLogRepository; + mcpService: McpClientService; + openApiService: OpenApiService; + approvalEngine: ApprovalEngine; + executionService: ExecutionService; + historyService: ExecutionHistoryService; +} + +const globalKey = "__agentStudioApiServices"; + +function build(): ApiServices { + const executionRepo = new ExecutionRepository(); + const skillRepo = new SkillRepository(); + const auditRepo = new AuditLogRepository(); + const approvalRepo = new ApprovalRepository(); + const historyRepo = new ApprovalHistoryRepository(); + const logRepo = new ExecutionLogRepository(); + const mcpService = new McpClientService(new McpServerRepository()); + const openApiService = new OpenApiService(new OpenApiRepository()); + const approvalEngine = new ApprovalEngine(approvalRepo, historyRepo, executionRepo); + const executionService = new ExecutionService(executionRepo, skillRepo, auditRepo, { + mcpService, + openApiService, + approvalRepo, + logRepo, + }); + const historyService = new ExecutionHistoryService( + executionRepo, + skillRepo, + auditRepo, + executionService, + logRepo, + approvalRepo, + historyRepo + ); + return { + executionRepo, + skillRepo, + auditRepo, + approvalRepo, + historyRepo, + logRepo, + mcpService, + openApiService, + approvalEngine, + executionService, + historyService, + }; +} + +const g = globalThis as typeof globalThis & Record; + +export function apiServices(): ApiServices { + if (!g[globalKey]) { + g[globalKey] = build(); + } + return g[globalKey] as ApiServices; +} diff --git a/src/lib/fetch-utils.ts b/src/lib/fetch-utils.ts index 412765d..33df8ad 100644 --- a/src/lib/fetch-utils.ts +++ b/src/lib/fetch-utils.ts @@ -252,6 +252,8 @@ export function parseAwesomeMcpServers(markdown: string): AwesomeMcpServer[] { } export interface AwesomeMcpServer { + /** Real GitHub star count when the upstream source provides one. */ + stars?: number; id: string; source: "glama" | "mcp.so"; name: string; diff --git a/src/lib/secrets.ts b/src/lib/secrets.ts new file mode 100644 index 0000000..70e031f --- /dev/null +++ b/src/lib/secrets.ts @@ -0,0 +1,174 @@ +import { VaultService } from "@/services/VaultService"; + +/** + * Shared secret-handling helpers. + * + * - `VAULT_REF` / `isVaultRef` / `resolveVaultPlaceholders`: inject Vault + * secrets into integration configs at execution time via `${vault.KEY}` + * placeholders. Secrets are fetched per-run, scoped to the owning user, + * and never serialized into DTOs or logs. + * - `REDACTED` / `isRedactedValue` / `redactSecrets`: sentinel + masking for + * anything that crosses the API boundary (MCP headers, OpenAPI auth + * configs). Clients send the sentinel back untouched on edit; services + * treat it as "keep existing value". + */ + +const vaultService = new VaultService(); + +export const VAULT_REF = /\$\{vault\.([A-Za-z0-9_.-]+)\}/g; +export const REDACTED = "__REDACTED__"; + +export function isRedactedValue(value: unknown): boolean { + return typeof value === "string" && value === REDACTED; +} + +export function isVaultRef(value: string): boolean { + return VAULT_REF.test(value); +} + +/** + * Recursively resolve `${vault.KEY}` placeholders in a config object. + * Unknown keys resolve to "" so downstream validation fails loudly instead + * of shipping a literal placeholder to an external API. + */ +export async function resolveVaultPlaceholders( + userId: string, + input: Record +): Promise> { + const referencedKeys = new Set(); + collectRefs(input, referencedKeys); + + if (referencedKeys.size === 0) return input; + + const raw = await vaultService.getRawValues(userId, [...referencedKeys]).catch(() => ({}) as Record); + + const out = replaceDeep(input, (value) => { + if (typeof value !== "string") return value; + return value.replace(VAULT_REF, (match, key: string) => raw[key] ?? ""); + }) as Record; + + return out; +} + +function collectRefs(value: unknown, keys: Set): void { + if (typeof value === "string") { + for (const match of value.matchAll(VAULT_REF)) { + keys.add(match[1]); + } + return; + } + if (Array.isArray(value)) { + for (const item of value) collectRefs(item, keys); + return; + } + if (value && typeof value === "object") { + for (const v of Object.values(value as Record)) collectRefs(v, keys); + } +} + +function replaceDeep(value: unknown, fn: (v: unknown) => unknown): unknown { + if (Array.isArray(value)) return value.map((item) => replaceDeep(item, fn)); + if (value && typeof value === "object") { + const out: Record = {}; + for (const [k, v] of Object.entries(value as Record)) { + out[k] = replaceDeep(v, fn); + } + return out; + } + return fn(value); +} + +/** True when a header name is one that commonly carries credentials. */ +const SENSITIVE_HEADERS = new Set([ + "authorization", + "proxy-authorization", + "x-api-key", + "api-key", + "apikey", + "x-auth-token", + "x-access-token", + "cookie", +]); + +export function isSensitiveHeader(name: string): boolean { + return SENSITIVE_HEADERS.has(name.toLowerCase()); +} + +/** + * Mask secret-looking values in a headers map for API responses. + * Every value is masked — headers on MCP server configs are credentials by + * definition — with sensitive names fully masked and others lightly masked. + */ +export function redactHeaders(headers: Record | null | undefined): Record | null { + if (!headers) return null; + const out: Record = {}; + for (const [name, value] of Object.entries(headers)) { + out[name] = isRedactedValue(value) + ? REDACTED + : isSensitiveHeader(name) + ? REDACTED + : `${value.slice(0, 3)}***`; + } + return out; +} + +// ─── OpenAPI auth-config masking ──────────────────────────────────────────── + +/** Secret-bearing fields of OpenApiAuthConfig (values never leave the server). */ +const AUTH_SECRET_FIELDS = ["bearerToken", "apiKeyValue", "basicPassword"] as const; + +/** + * Mask an auth config for API responses: secret fields become the REDACTED + * sentinel, custom header values become the sentinel, non-secret routing + * fields (header/query names, username) stay visible so the UI can render. + */ +export function redactAuthConfig>(config: T | null | undefined): T | null { + if (!config) return null; + const out: Record = { ...config }; + for (const field of AUTH_SECRET_FIELDS) { + const value = out[field]; + if (typeof value === "string" && value.length > 0 && !isRedactedValue(value)) { + out[field] = REDACTED; + } + } + if (out.customHeaders && typeof out.customHeaders === "object") { + out.customHeaders = redactHeaders(out.customHeaders as Record); + } + return out as T; +} + +/** + * Merge an incoming (possibly sentinel-containing) auth config over the + * existing PLAINTEXT one. Sentinels mean "keep the stored value"; anything + * else replaces it. Returns the full plaintext config to persist. + */ +export function mergeRedactedAuthConfig>( + existingPlain: T | null | undefined, + incoming: Partial +): T { + const base: Record = { ...(existingPlain ?? {}) }; + for (const [key, value] of Object.entries(incoming)) { + if (value === undefined) continue; + if (isRedactedValue(value)) continue; // keep existing + if ( + key === "customHeaders" && + value && + typeof value === "object" && + !Array.isArray(value) + ) { + const existingHeaders = + base.customHeaders && typeof base.customHeaders === "object" + ? (base.customHeaders as Record) + : {}; + const merged: Record = { ...existingHeaders }; + for (const [hName, hVal] of Object.entries(value as Record)) { + if (isRedactedValue(hVal)) continue; + merged[hName] = hVal; + } + base[key] = merged; + continue; + } + base[key] = value; + } + return base as T; +} diff --git a/src/modules/execution/executor/stepReferences.ts b/src/modules/execution/executor/stepReferences.ts index b71ce88..fed747f 100644 --- a/src/modules/execution/executor/stepReferences.ts +++ b/src/modules/execution/executor/stepReferences.ts @@ -20,8 +20,34 @@ const STEP_REF = /^\$step(\d+)\.result$/; const BRACED_STEP_REF = /^\{\{\s*step_(\d+)\.result\s*\}\}$/; const BRACED_INPUT_REF = /^\{\{\s*(?:input\.)?([A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)*)\s*\}\}$/; -const EMBEDDED_STEP_REF = /\$step(\d+)\.result|\{\{\s*step_(\d+)\.result\s*\}\}/g; -const EMBEDDED_INPUT_REF = /\{\{\s*(?:input\.)?([A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)*)\s*\}\}/g; + +/** + * Fresh regex instances per call — the previous module-level `/g` patterns + * carried `lastIndex` between concurrent requests. The call sites were + * synchronous so no interleaving ever bit in practice, but one refactor away + * from that invariant was a latent cross-request corruption bug. + */ +function embeddedStepRef(value: string): boolean { + return new RegExp("\\$step(\\d+)\\.result|\\{\\{\\s*step_(\\d+)\\.result\\s*\\}\\}").test(value); +} +function embeddedInputRef(value: string): boolean { + return new RegExp("\\{\\{\\s*(?:input\\.)?([A-Za-z0-9_]+(?:\\.[A-Za-z0-9_]+)*)\\s*\\}\\}").test(value); +} +function replaceEmbeddedStepRefs(value: string, ctx: StepReferenceContext): string { + return value.replace(new RegExp("\\$step(\\d+)\\.result|\\{\\{\\s*step_(\\d+)\\.result\\s*\\}\\}", "g"), (_match, a?: string, b?: string) => { + const stepNumber = a ?? b; + const ref = unwrapResult(ctx.results[`step_${stepNumber}`]); + if (ref === undefined) return _match; + return typeof ref === "string" ? ref : JSON.stringify(ref); + }); +} +function replaceEmbeddedInputRefs(value: string, userInput: Record): string { + return value.replace(new RegExp("\\{\\{\\s*(?:input\\.)?([A-Za-z0-9_]+(?:\\.[A-Za-z0-9_]+)*)\\s*\\}\\}", "g"), (match, path: string) => { + const ref = getByPath(userInput, path.split(".")); + if (ref === undefined) return match; + return typeof ref === "string" ? ref : JSON.stringify(ref); + }); +} /** Context available to reference resolution. */ export interface StepReferenceContext { @@ -83,24 +109,9 @@ export function resolveStepReferences(value: unknown, ctx: StepReferenceContext) const trimmed = value.trim(); const single = resolveStepReference(trimmed, ctx); if (single.found) return single.resolved; - if (!EMBEDDED_STEP_REF.test(value) && !EMBEDDED_INPUT_REF.test(value)) return value; - EMBEDDED_STEP_REF.lastIndex = 0; - EMBEDDED_INPUT_REF.lastIndex = 0; - let out = value.replace(EMBEDDED_STEP_REF, (match, a?: string, b?: string) => { - const stepNumber = a ?? b; - const ref = unwrapResult(ctx.results[`step_${stepNumber}`]); - if (ref === undefined) return match; - return typeof ref === "string" ? ref : JSON.stringify(ref); - }); - EMBEDDED_STEP_REF.lastIndex = 0; - EMBEDDED_INPUT_REF.lastIndex = 0; - out = out.replace(EMBEDDED_INPUT_REF, (match, path: string) => { - const ref = getByPath(ctx.userInput, path.split(".")); - if (ref === undefined) return match; - return typeof ref === "string" ? ref : JSON.stringify(ref); - }); - EMBEDDED_STEP_REF.lastIndex = 0; - EMBEDDED_INPUT_REF.lastIndex = 0; + if (!embeddedStepRef(value) && !embeddedInputRef(value)) return value; + let out = replaceEmbeddedStepRefs(value, ctx); + out = replaceEmbeddedInputRefs(out, ctx.userInput); return out; } if (Array.isArray(value)) return value.map((v) => resolveStepReferences(v, ctx)); diff --git a/src/modules/execution/planner/plannerService.ts b/src/modules/execution/planner/plannerService.ts index 636c536..cc6a2a0 100644 --- a/src/modules/execution/planner/plannerService.ts +++ b/src/modules/execution/planner/plannerService.ts @@ -67,10 +67,17 @@ export class PlannerService { this.lastUsed = this.captureProviderUsed(this.llm); // `.default(false)` fills requiresApproval at parse time — normalize so the - // runtime sees a non-optional boolean on every step. + // runtime sees a non-optional boolean on every step. stepNumbers are + // RENUMBERED 1..n: the schema can't force an LLM to emit sequential + // numbers, and resume logic keys approvals/results off `step_N` assuming + // they are. return { ...plan, - steps: plan.steps.map((step) => ({ ...step, requiresApproval: step.requiresApproval ?? false })), + steps: plan.steps.map((step, index) => ({ + ...step, + stepNumber: index + 1, + requiresApproval: step.requiresApproval ?? false, + })), }; } diff --git a/src/modules/execution/tool-registry/permissionChecker.ts b/src/modules/execution/tool-registry/permissionChecker.ts index 864d7d1..4101dc9 100644 --- a/src/modules/execution/tool-registry/permissionChecker.ts +++ b/src/modules/execution/tool-registry/permissionChecker.ts @@ -20,39 +20,26 @@ export type ToolPermissionVerdict = */ /** * Helper to check if a toolName satisfies the allowedTools rules. - * Supports: + * Supports ONLY patterns scoped by an explicit prefix the skill author wrote: * - Exact match: 'calculator' === 'calculator' * - Wildcard all: '*' - * - Prefix / glob matching: 'mcp_server123_*' matches 'mcp_server123_run_query' - * - Suffix matching: '*_search' matches 'custom_search' - * - Base name matching: 'run_query' matches 'mcp_server123_run_query' or 'openapi_intg_run_query' + * - Trailing glob: 'mcp_server123_*' matches 'mcp_server123_run_query' + * + * Deliberately NOT supported anymore: + * - Leading globs ('*_search') — matched any tenant's namespaced tool. + * - Base-name matching ('run_query' → 'mcp__run_query') — let a + * skill invoke another user's MCP/OpenAPI tool that happened to be loaded + * into the shared registry. Dynamic tools must be allowed by their FULL + * registry name or a server-scoped prefix. */ function isToolAllowed(toolName: string, allowedTools: string[] | undefined): boolean { if (!allowedTools || allowedTools.length === 0) return false; for (const pattern of allowedTools) { if (pattern === "*" || pattern === toolName) return true; - - // Prefix wildcard: "mcp_serverId_*" or "mcp_*" if (pattern.endsWith("*") && toolName.startsWith(pattern.slice(0, -1))) { return true; } - - // Suffix wildcard: "*_search" - if (pattern.startsWith("*") && toolName.endsWith(pattern.slice(1))) { - return true; - } - - // Base name matching: "run_query" matches "mcp__run_query" or "openapi__run_query" - const mcpMatch = toolName.match(/^mcp_[^_]+_(.+)$/); - if (mcpMatch && (mcpMatch[1] === pattern || `mcp_${mcpMatch[1]}` === pattern)) { - return true; - } - - const openApiMatch = toolName.match(/^openapi_[^_]+_(.+)$/); - if (openApiMatch && (openApiMatch[1] === pattern || `openapi_${openApiMatch[1]}` === pattern)) { - return true; - } } return false; diff --git a/src/modules/graph/eventBus.ts b/src/modules/graph/eventBus.ts index 6a33623..644480d 100644 --- a/src/modules/graph/eventBus.ts +++ b/src/modules/graph/eventBus.ts @@ -6,7 +6,9 @@ * SSE stream route subscribes per execution id and fans them out to the canvas * trace view. In single-instance deployments this is lossless; for horizontally * scaled deployments, the SSE route also replays persisted ExecutionStep rows - * on connect so late viewers still see the full trace. + * on connect so late viewers still see the full trace. To go fully multi- + * instance, swap the Map for a Redis pub/sub channel keyed by executionId — + * the publish/subscribe surface here is intentionally the only coupling. * * Granular events (tool:call, llm:call, mcp:tool, approval, router:decision, * loop:iteration, parallel:branch) provide detailed trace visibility for diff --git a/src/modules/graph/graphInterpreter.ts b/src/modules/graph/graphInterpreter.ts index 0cf2fb4..b8c7993 100644 --- a/src/modules/graph/graphInterpreter.ts +++ b/src/modules/graph/graphInterpreter.ts @@ -28,6 +28,19 @@ export interface GraphInterpreterDeps { * provider reports usage. Default 200k input+output tokens. */ maxTokens?: number; + /** + * Vault bridge — resolves `${vault.KEY}` placeholders in HTTP-node + * url/headers/body against the owning user's secrets at node time. + */ + resolveSecrets?: (userId: string, value: Record) => Promise>; + /** + * MCP server status probe for `mcp_server` nodes. Defaults to the real + * McpServerRepository (ownership-scoped); injectable for tests/embedders. + */ + getMcpServerStatus?: ( + serverId: string, + userId: string + ) => Promise<{ status: string; name: string; transport: string; cachedToolCount: number } | null>; } /** Runtime state that must survive a HITL pause so the run resumes in place. */ @@ -54,6 +67,12 @@ export interface GraphRunInput { state: GraphState; /** Node to continue FROM (the successor of the approval node). */ fromNodeId: string; + /** + * Failure-retry mode: nodes whose outputs are already persisted in + * `state.results` are REPLAYED (not re-executed) so a retry never + * duplicates LLM calls or non-idempotent side effects. + */ + skipCompletedNodes?: boolean; }; /** * Ghost-mode preview: executes the graph exactly as a real run would @@ -119,11 +138,51 @@ interface WalkCtx { item?: unknown; /** Map mode: path to the item that produced this sub-walk (for labels). */ itemPath?: string; + /** Failure-retry replay: skip nodes whose results are already persisted. */ + skipCompleted: boolean; + /** Skill ids currently executing up this call chain (skill-node cycle guard). */ + skillChain: string[]; } const MAX_NODE_VISITS = 200; const MAX_SUBGRAPH_DEPTH = 8; +/** Node types whose persisted output can be replayed verbatim on a retry. */ +const REPLAYABLE_NODE_TYPES = new Set([ + "agent", + "supervisor", + "tool", + "router", + "mcp_tool", + "http", + "transform", + "aggregate", + "variable", + "output", + "skill", +]); + +/** + * Derive the next node from a router/supervisor's recorded decision so a + * retry replays the SAME branch instead of falling back to edge order. + */ +function replayRouterChoiceImpl( + outgoing: GraphEdgeDefinition[], + stored: unknown +): string | "ended" { + const decision = + stored && typeof stored === "object" + ? ((stored as Record).decision as string | undefined) ?? undefined + : undefined; + if (decision) { + const match = outgoing.find((e) => e.label === decision); + if (match) return match.target; + } + const unlabeled = outgoing.find((e) => !e.label); + if (unlabeled) return unlabeled.target; + return outgoing[0]?.target ?? "ended"; +} + /** Default wall-clock budget for a graph run (see GraphInterpreterDeps.timeoutMs). */ const DEFAULT_TIMEOUT_MS = 120_000; @@ -139,14 +198,33 @@ function extractJsonObject(text: string): Record | null { const parsed = JSON.parse(candidate); return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : null; } catch { + // Balanced-brace scan (string-aware) instead of first"{"..last"}": the old + // slice could swallow prose containing braces and yield invalid JSON. const start = candidate.indexOf("{"); - const end = candidate.lastIndexOf("}"); - if (start >= 0 && end > start) { - try { - const parsed = JSON.parse(candidate.slice(start, end + 1)); - return parsed && typeof parsed === "object" ? parsed : null; - } catch { - return null; + if (start < 0) return null; + let depth = 0; + let inString = false; + let escaped = false; + for (let i = start; i < candidate.length; i += 1) { + const ch = candidate[i]; + if (inString) { + if (escaped) escaped = false; + else if (ch === "\\") escaped = true; + else if (ch === '"') inString = false; + continue; + } + if (ch === '"') inString = true; + else if (ch === "{") depth += 1; + else if (ch === "}") { + depth -= 1; + if (depth === 0) { + try { + const parsed = JSON.parse(candidate.slice(start, i + 1)); + return parsed && typeof parsed === "object" ? parsed : null; + } catch { + return null; + } + } } } return null; @@ -165,7 +243,10 @@ function resolveTemplate(value: unknown, ctx: WalkCtx): unknown { const singleRef = trimmed.match(/^\{\{\s*([^}]+?)\s*\}\}$/); if (singleRef) { const resolved = resolvePath(singleRef[1].trim(), ctx); - return resolved === undefined ? "" : resolved; + // Unresolved single references surface as null instead of "" — a silent + // empty string used to hide broken wiring until a downstream tool + // failed with a confusing validation message. + return resolved === undefined ? null : resolved; } return value.replace(/\{\{\s*([^}]+?)\s*\}\}/g, (_, expr: string) => { const resolved = resolvePath(expr.trim(), ctx); @@ -248,6 +329,8 @@ export class GraphInterpreter { maxTokens, tokensUsed: 0, nodeTokens: {}, + skipCompleted: input.resume?.skipCompletedNodes ?? false, + skillChain: [skill.id], }; if (!ctx.dryRun) { @@ -324,6 +407,35 @@ export class GraphInterpreter { const node = graph.nodes.find((n) => n.id === currentId); if (!node) throw new ExecutionError(`Graph node "${currentId}" not found`, "GRAPH_FAILURE"); + // Failure-retry replay: a node with an already-persisted result is not + // re-executed — its stored output feeds downstream references and the + // run continues from its successor. Routers/supervisors replay their + // recorded decision so the retry takes the SAME branch. + if ( + ctx.skipCompleted && + REPLAYABLE_NODE_TYPES.has(node.type) && + ctx.results[node.id] !== undefined + ) { + const replayOutgoing = graph.edges.filter((e) => e.source === node.id); + this.emit(ctx, { + type: "node:start", + nodeId: node.id, + nodeLabel: node.data.label, + nodeType: node.type, + }); + await this.persistStep(ctx, node, "SUCCESS", { replayed: true }); + this.emitNodeEnd(ctx, node, "SUCCESS", "replayed from persisted state"); + let next: string | "ended"; + if (node.type === "router" || node.type === "supervisor") { + next = this.replayRouterChoice(node, replayOutgoing, ctx.results[node.id]); + } else { + next = this.firstSuccessor(replayOutgoing, node); + } + this.emitEdgeTraversal(ctx, node.id, next); + currentId = next; + continue; + } + ctx.stepCounter += 1; if (ctx.stepCounter > (ctx.version.maxExecutionSteps || 10) * 4) { throw new StepLimitExceededError( @@ -473,13 +585,15 @@ export class GraphInterpreter { outgoing.map((e) => e.label || e.target) )}. Respond with ONLY a JSON object: {"next": ""}`, }); - ctx.results[node.id] = output; ctx.providerUsed = ctx.providerUsed ?? this.deps.llm?.name ?? null; const parsed = typeof output === "string" ? extractJsonObject(output) : null; const nextLabel = parsed?.next as string | undefined; const chosen = (nextLabel ? outgoing.find((e) => e.label === nextLabel || e.target === nextLabel) : undefined) ?? outgoing[0]; + // Persist the routing decision so failure-retries can replay the SAME + // branch instead of re-asking the LLM (or falling back to edge order). + ctx.results[node.id] = { routedTo: chosen?.target ?? null, decision: nextLabel ?? null }; await this.persistStep(ctx, node, "SUCCESS", { routedTo: chosen?.target, decision: nextLabel ?? null }); this.emitNodeEnd(ctx, node, "SUCCESS", `routed → ${chosen?.label ?? chosen?.target}`); return chosen?.target ?? "ended"; @@ -581,8 +695,17 @@ export class GraphInterpreter { const chosen = (decision ? outgoing.find((e) => e.label === decision) : undefined) ?? - outgoing.find((e) => !e.label) ?? - outgoing[0]; + outgoing.find((e) => !e.label); + if (!chosen) { + // Silent misroute fix: previously fell back to outgoing[0], sending the + // run down an arbitrary branch when labels didn't match. Fail loudly. + throw new ExecutionError( + `Router node "${node.data.label}" resolved to "${decision ?? "(no decision)"}" but no outgoing edge matches. Available labels: ${ + outgoing.map((e) => e.label || e.target).join(", ") || "(none)" + }`, + "GRAPH_FAILURE" + ); + } ctx.results[node.id] = { decision: chosen?.label ?? chosen?.target ?? null }; // Emit router decision event @@ -603,8 +726,11 @@ export class GraphInterpreter { const data = node.data; const action = data.action ?? "approve_graph_action"; - // Approvals inside nested subgraphs would break the flat pause/resume - // contract — reject them up front with a clear error. + // Approvals inside nested subgraphs are a DELIBERATE unsupported + // combination, not an oversight: the flat pause/resume contract persists + // ONE resume position per execution (pausedAtNodeId + state snapshot). + // Supporting nested pauses requires a stack of pause frames. Fail loudly; + // canvas validation flags this at authoring time too. if (ctx.silent) { throw new ExecutionError( `Approval node "${node.data.label}" is inside a subgraph — approvals are only supported on the main path`, @@ -752,11 +878,22 @@ export class GraphInterpreter { const iteration = (ctx.loopCounters[node.id] ?? 0) + 1; ctx.loopCounters[node.id] = iteration; - const bodyEdge = outgoing.find((e) => e.label === "body") ?? outgoing[0]; - const exitEdge = outgoing.find((e) => e.label === "exit") ?? outgoing[outgoing.length - 1]; + const bodyEdge = outgoing.find((e) => e.label === "body"); + const exitEdge = outgoing.find((e) => e.label === "exit"); const shouldExit = iteration > maxIterations; - const chosen = shouldExit ? exitEdge : bodyEdge; + let chosen: GraphEdgeDefinition | undefined; + if (shouldExit) { + if (!exitEdge || exitEdge === bodyEdge) { + // No real exit edge wired — terminate the walk instead of silently + // looping on the body edge until the global visit cap. + chosen = undefined; + } else { + chosen = exitEdge; + } + } else { + chosen = bodyEdge ?? exitEdge; + } ctx.results[node.id] = { iteration, exited: shouldExit }; // Emit loop iteration event @@ -773,7 +910,8 @@ export class GraphInterpreter { // If looping back into a body that converges on this loop node, the // counter protects us — no extra visited-set machinery needed. - return chosen?.target ?? "ended"; + if (!chosen) return "ended"; + return chosen.target; } /** @@ -814,8 +952,16 @@ export class GraphInterpreter { }); const sub = this.childCtx(ctx, item, `${data.mapField}[${idx}]`); - await this.walkLinear(sub, workerNodeId); - outputs[idx] = sub.results[workerNodeId]; + const lastNodeId = await this.walkLinear(sub, workerNodeId); + // The worker chain may traverse several nodes — expose EVERY inner + // output (namespaced per item) plus capture the LAST executed node's + // result as the branch output. Previously only the first node's + // output was captured and downstream aggregate/transform nodes saw + // `undefined` for the rest of the chain. + for (const [innerId, value] of Object.entries(sub.results)) { + ctx.results[`${node.id}.items.${idx}.${innerId}`] = value; + } + outputs[idx] = lastNodeId ? sub.results[lastNodeId] : undefined; // Emit parallel branch end event this.emit(ctx, { @@ -850,8 +996,17 @@ export class GraphInterpreter { }); const sub = this.childCtx(ctx, undefined, node.id); - await this.walkLinear(sub, targetId); - branchOutputs[targetId] = sub.results[targetId]; + const lastNodeId = await this.walkLinear(sub, targetId); + if (lastNodeId) branchOutputs[targetId] = sub.results[lastNodeId]; + // Merge inner outputs into the PARENT context so a downstream + // Aggregate node reading `results.` actually finds + // them (fan-out branches are disjoint chains; first-writer wins on + // the rare collision). Previously everything stayed in the throwaway + // child context and joins read `undefined`. + for (const [innerId, value] of Object.entries(sub.results)) { + if (innerId in ctx.results && ctx.results[innerId] !== value) continue; + ctx.results[innerId] = value; + } // Emit parallel branch end event this.emit(ctx, { @@ -870,15 +1025,16 @@ export class GraphInterpreter { return next?.target ?? "ended"; } - /** A bounded linear sub-walk used for parallel branches — follows single-successor chains. */ - private async walkLinear(ctx: WalkCtx, startNodeId: string): Promise { - let currentId = startNodeId; + /** A bounded linear sub-walk used for parallel branches — follows single-successor chains. Returns the LAST executed node id (null when none). */ + private async walkLinear(ctx: WalkCtx, startNodeId: string): Promise { + let currentId: string | "ended" = startNodeId; let hops = 0; - while (currentId && hops < 100) { + let lastNodeId: string | null = null; + while (currentId && currentId !== "ended" && hops < 100) { hops += 1; const node = ctx.graph.nodes.find((n) => n.id === currentId); if (!node) throw new ExecutionError(`Graph node "${currentId}" not found`, "GRAPH_FAILURE"); - if (node.type === "end") return; + if (node.type === "end") return lastNodeId; // HITL pauses inside a parallel branch would clobber the main-path pause // position and snapshot — reject them up front with a clear error. @@ -909,10 +1065,12 @@ export class GraphInterpreter { "GRAPH_FAILURE" ); } - if (result === "ended" || result === "completed") return; + if (result === "ended" || result === "completed") return node.id; this.emitEdgeTraversal(ctx, node.id, result); + lastNodeId = node.id; currentId = result; } + return lastNodeId; } /** Clone the walk context for a parallel sub-walk (isolated results, shared counters). */ @@ -1092,6 +1250,15 @@ export class GraphInterpreter { return outgoing[0].target; } + /** Replay a router/supervisor's persisted branch choice (retry mode). */ + private replayRouterChoice( + _node: GraphNodeDefinition, + outgoing: GraphEdgeDefinition[], + stored: unknown + ): string | "ended" { + return replayRouterChoiceImpl(outgoing, stored); + } + private assembleFinalOutput(ctx: WalkCtx): Record { return { results: ctx.results, @@ -1153,12 +1320,50 @@ export class GraphInterpreter { // MCP, HTTP, Data, and Utility Node Handlers // ══════════════════════════════════════════════════════════════════════ - /** MCP Server node — informational/connectivity node. Passes through. */ + /** + * MCP Server node — reflects the server's REAL persisted status from the + * database instead of fabricating `connected`. A disconnected/unreachable + * server now fails (or warns) honestly rather than passing through with a + * green checkmark. + */ private async runMcpServerNode(ctx: WalkCtx, node: GraphNodeDefinition, outgoing: GraphEdgeDefinition[]) { - const serverId = node.data.mcpServerId ?? "unknown"; - ctx.results[node.id] = { serverId, transport: node.data.mcpTransport ?? "SSE", status: "connected" }; - await this.persistStep(ctx, node, "SUCCESS", { mcpServer: serverId, passThrough: true }); - this.emitNodeEnd(ctx, node, "SUCCESS", `MCP server ${serverId}`); + const serverId = node.data.mcpServerId ?? ""; + const lookup = + this.deps.getMcpServerStatus ?? + (async (id: string, userId: string) => { + const { McpServerRepository } = await import("@/repositories/McpServerRepository"); + const mcpRepo = new McpServerRepository(); + const server = await mcpRepo.findByIdForUser(id, userId); + return server + ? { status: server.status, name: server.name, transport: server.transport, cachedToolCount: server.cachedTools.length } + : null; + }); + const server = await lookup(serverId, ctx.skill.userId); + if (!server) { + throw new ExecutionError( + `MCP Server node "${node.data.label}": server "${serverId}" not found or not owned by you`, + "GRAPH_FAILURE" + ); + } + if (server.status !== "CONNECTED" && !ctx.dryRun) { + throw new ExecutionError( + `MCP Server node "${node.data.label}": server "${server.name}" is ${server.status}${" — connect it in the MCP Hub first"}`, + "GRAPH_FAILURE" + ); + } + ctx.results[node.id] = { + serverId, + name: server.name, + transport: server.transport, + status: server.status, + toolCount: server.cachedToolCount, + }; + await this.persistStep(ctx, node, "SUCCESS", { + mcpServer: serverId, + status: server.status, + toolCount: server.cachedToolCount, + }); + this.emitNodeEnd(ctx, node, "SUCCESS", `MCP server ${server.name} · ${server.status}`); return this.firstSuccessor(outgoing, node); } @@ -1245,6 +1450,14 @@ export class GraphInterpreter { "GRAPH_FAILURE" ); } + // Cycle guard: A→B→A chains previously recursed until the step budget + // blew up; now they fail fast with a clear message. + if (ctx.skillChain.includes(skillId)) { + throw new ExecutionError( + `Skill node "${data.label}": circular skill reference detected (${[...ctx.skillChain, skillId].join(" → ")})`, + "GRAPH_FAILURE" + ); + } // Resolve input template against the current context const resolvedInput = resolveTemplate(data.skillInput ?? {}, ctx) as Record; @@ -1259,6 +1472,13 @@ export class GraphInterpreter { "GRAPH_FAILURE" ); } + // Tenant isolation for nested skills: the caller must OWN the target. + if (targetSkill.userId !== ctx.skill.userId) { + throw new ExecutionError( + `Skill node "${data.label}": you do not have access to skill "${targetSkill.name}"`, + "UNAUTHORIZED_TOOL" + ); + } const version = targetSkill.publishedVersion ?? targetSkill.currentDraft; if (!version) { @@ -1289,17 +1509,74 @@ export class GraphInterpreter { }); ctx.results[node.id] = nestedResult.finalOutput ?? { status: nestedResult.status }; } else { - // Linear skill — use the execution engine via a direct import - // For now, store a reference result indicating the skill was invoked + // LINEAR skill: plan with the same LLM and execute each step through + // the tool registry. Previously this branch returned a fabricated + // `{ status: "invoked" }` WITHOUT running anything — canvas users got + // green checkmarks over work that never happened. + const { PlannerService } = await import("@/modules/execution/planner/plannerService"); + const { resolveStepReferences } = await import("@/modules/execution/executor/stepReferences"); + + const planner = new PlannerService(ctx.llm); + const availableTools = this.deps.toolRegistry + .getAvailableTools() + .filter((t) => version.allowedTools?.includes(t.name)) + .map((t) => ({ name: t.name, description: t.description, category: t.category })); + + const plan = await planner.plan({ + skill: { id: targetSkill.id, userId: targetSkill.userId, name: targetSkill.name, purpose: targetSkill.purpose, status: targetSkill.status, createdAt: targetSkill.createdAt, updatedAt: targetSkill.updatedAt }, + version, + userInput: resolvedInput, + availableTools, + }); + + ctx.providerUsed = ctx.providerUsed ?? planner.providerLabel; + + const results: Record = {}; + let executedLlmSteps = 0; + for (const step of plan.steps.slice(0, Math.max(1, version.maxExecutionSteps))) { + const resolvedStepInput = resolveStepReferences(step.input, { + results, + userInput: resolvedInput, + }); + const executionInput = { ...(resolvedStepInput as Record), action: step.action }; + const isNoneTool = !step.toolName || step.toolName === "none" || step.toolName === "null"; + if (!isNoneTool) { + // Enforce BOTH the child's allow-list and the parent's permission + // surface before any side effect runs. + if (!this.deps.permissionChecker.check(step.toolName, version.allowedTools ?? [], this.deps.toolRegistry).ok) { + throw new ExecutionError( + `Skill node "${data.label}": tool "${step.toolName}" is not allowed by skill "${targetSkill.name}"`, + "UNAUTHORIZED_TOOL" + ); + } + const output = await this.deps.toolRegistry.executeTool(step.toolName, executionInput); + results[`step_${step.stepNumber}`] = output; + } else { + // Reasoning-only step: one LLM turn with accumulated context. + executedLlmSteps += 1; + const completion = await ctx.llm.complete( + [ + { role: "system", content: version.instructions }, + { role: "user", content: JSON.stringify({ input: resolvedInput, context: results, instruction: step.input }) }, + ], + { temperature: 0.3, maxTokens: 600 } + ); + results[`step_${step.stepNumber}`] = completion.content; + } + } ctx.results[node.id] = { skillId: targetSkill.id, skillName: targetSkill.name, - status: "invoked", - input: resolvedInput, + status: "COMPLETED", + steps: Object.keys(results).length, + ...(executedLlmSteps > 0 ? { reasoningSteps: executedLlmSteps } : {}), + results, }; + // Track the chain so downstream skill nodes in THIS walk can detect cycles. + ctx.skillChain.push(targetSkill.id); } - await this.persistStep(ctx, node, "SUCCESS", { skillId, skillName: targetSkill.name, input: resolvedInput }); + await this.persistStep(ctx, node, "SUCCESS", { skillId, skillName: targetSkill.name, input: summarize(resolvedInput) }); this.emitNodeEnd(ctx, node, "SUCCESS", `skill ${targetSkill.name}`); return this.firstSuccessor(outgoing, node); } @@ -1308,8 +1585,21 @@ export class GraphInterpreter { private async runHttpNode(ctx: WalkCtx, node: GraphNodeDefinition, outgoing: GraphEdgeDefinition[]) { const data = node.data; const method = data.httpMethod ?? "GET"; + + // `${vault.KEY}` placeholders in url/headers/body resolve against the + // owning user's Vault before template resolution — secrets never appear + // in the graph definition itself. + let secretHeaders: Record | undefined; + if (data.httpHeaders && Object.keys(data.httpHeaders).length > 0 && this.deps.resolveSecrets) { + try { + secretHeaders = await this.deps.resolveSecrets(ctx.skill.userId, data.httpHeaders); + } catch { + secretHeaders = data.httpHeaders; // fail open to raw config; request will 401 loudly + } + } + const url = resolveTemplate(data.httpUrl ?? "", ctx) as string; - const headers = resolveTemplate(data.httpHeaders ?? {}, ctx) as Record; + const headers = resolveTemplate(secretHeaders ?? data.httpHeaders ?? {}, ctx) as Record; const body = data.httpBody ? resolveTemplate(data.httpBody, ctx) : undefined; const responseType = data.httpResponseType ?? "json"; @@ -1325,17 +1615,31 @@ export class GraphInterpreter { input: { url, method }, }); - const started = Date.now(); - const fetchOptions: RequestInit = { - method, - headers: { "Content-Type": "application/json", ...headers }, - }; - if (body && method !== "GET") { - fetchOptions.body = typeof body === "string" ? body : JSON.stringify(body); - } + // Real abort plumbing: per-request timeout AND the execution's + // cancellation signal. Previously fetch ran unbounded — a cancel could + // not interrupt an in-flight call and a hung endpoint stalled the whole + // run until the global wall clock. + const timeoutMs = Math.min( + typeof data.httpTimeoutMs === "number" ? data.httpTimeoutMs : 30_000, + Math.max(1_000, ctx.timeoutMs || 30_000) + ); + const controller = new AbortController(); + const timer = setTimeout(() => controller.abort(), timeoutMs); + const onRunAbort = () => controller.abort(); + ctx.signal?.addEventListener("abort", onRunAbort, { once: true }); + const started = Date.now(); let output: unknown; try { + const fetchOptions: RequestInit = { + method, + headers: { "Content-Type": "application/json", ...headers }, + signal: controller.signal, + }; + if (body && method !== "GET") { + fetchOptions.body = typeof body === "string" ? body : JSON.stringify(body); + } + const response = await fetch(url, fetchOptions); const durationMs = Date.now() - started; @@ -1398,7 +1702,15 @@ export class GraphInterpreter { error: error instanceof Error ? error.message : String(error), durationMs, }); + // Distinguish user cancellation from per-request timeout. + if (ctx.signal?.aborted) throw new ExecutionCancelledError("Execution cancelled"); + if (error instanceof Error && error.name === "AbortError") { + throw new ExecutionError(`HTTP ${method} ${url} timed out after ${timeoutMs}ms`, "GRAPH_FAILURE"); + } throw error; + } finally { + clearTimeout(timer); + ctx.signal?.removeEventListener("abort", onRunAbort); } await this.persistStep(ctx, node, "SUCCESS", { http: method, url: url.slice(0, 120), output: summarize(output) }); diff --git a/src/modules/mcp/toolAdapter.ts b/src/modules/mcp/toolAdapter.ts index 20541e3..4772246 100644 --- a/src/modules/mcp/toolAdapter.ts +++ b/src/modules/mcp/toolAdapter.ts @@ -123,7 +123,24 @@ export function jsonSchemaToZod(schema: Record): z.ZodType { let base: z.ZodString = z.string(); if (typeof rawSchema.minLength === "number") base = base.min(rawSchema.minLength); if (typeof rawSchema.maxLength === "number") base = base.max(rawSchema.maxLength); - if (typeof rawSchema.pattern === "string") base = base.regex(new RegExp(rawSchema.pattern)); + if (typeof rawSchema.pattern === "string") { + // MCP servers are third-party code-adjacent input: a hostile pattern + // (catastrophic backtracking) previously compiled verbatim and ran on + // EVERY validation call. Cap size, refuse compile failures, and keep + // going with an unconstrained string rather than bricking the tool. + const pattern = rawSchema.pattern; + const safe = + pattern.length <= 256 && + (() => { + try { + new RegExp(pattern); + return true; + } catch { + return false; + } + })(); + if (safe) base = base.regex(new RegExp(pattern)); + } result = base; } else if (type === "number" || type === "integer") { let base: z.ZodNumber = z.number(); diff --git a/src/modules/openapi/dynamicTool.ts b/src/modules/openapi/dynamicTool.ts index 4277675..c534e7d 100644 --- a/src/modules/openapi/dynamicTool.ts +++ b/src/modules/openapi/dynamicTool.ts @@ -182,6 +182,18 @@ export async function executeOpenApiRequest( queryString ? `?${queryString}` : "" }`; + // Query-param API keys are part of the URL and URLs end up in logs, error + // messages and persisted request details — mask the key value everywhere + // EXCEPT the actual outbound fetch. + const sanitizeUrl = (u: string): string => { + if (!authConfig?.apiKeyQueryParam || !authConfig?.apiKeyValue) return u; + return u.replace( + `${authConfig.apiKeyQueryParam}=${encodeURIComponent(authConfig.apiKeyValue)}`, + `${authConfig.apiKeyQueryParam}=${encodeURIComponent("***REDACTED***")}` + ); + }; + const safeUrl = sanitizeUrl(finalUrl); + // 4. Prepare Request Body let requestBody: string | undefined = undefined; if (["POST", "PUT", "PATCH", "DELETE"].includes(endpoint.method)) { @@ -206,13 +218,12 @@ export async function executeOpenApiRequest( } const loggedHeaders: Record = { ...headers }; - if (loggedHeaders["Authorization"] || loggedHeaders["authorization"]) { - loggedHeaders["Authorization"] = "***REDACTED***"; - delete loggedHeaders["authorization"]; + for (const key of Object.keys(loggedHeaders)) { + if (SENSITIVE_HEADER_RE.test(key)) loggedHeaders[key] = "***REDACTED***"; } const requestDetails = { - url: finalUrl, + url: safeUrl, method: endpoint.method, headers: loggedHeaders, body: requestBody ? tryParseJson(requestBody) : undefined, @@ -287,3 +298,6 @@ function tryParseJson(text: string): unknown { return text; } } + +/** Header names whose values must never reach logs or client responses. */ +const SENSITIVE_HEADER_RE = /^(authorization|proxy-authorization|x-api-key|api-key|apikey|x-auth-token|x-access-token|cookie)$/i; diff --git a/src/modules/tools/code-execution/sandboxRunner.ts b/src/modules/tools/code-execution/sandboxRunner.ts index a518e80..7d63e6b 100644 --- a/src/modules/tools/code-execution/sandboxRunner.ts +++ b/src/modules/tools/code-execution/sandboxRunner.ts @@ -22,64 +22,44 @@ function truncate(output: string): string { /** * Restricted globals available inside the JS sandbox. * No process, no require, no import, no fs, no child_process. + * + * SECURITY: built-ins are captured INSIDE the new V8 context (via a bootstrap + * snippet evaluated with `vm.runInContext`) so user code only ever sees + * context-realm intrinsics. The previous implementation injected the HOST + * realm's constructors (`Error`, `Object`, `Promise`, `Proxy`, `Reflect`, + * host `crypto`…) directly into the sandbox, which is the textbook + * `vm` escape: `(new Error()).constructor.constructor("return process")()`. + * Host `Proxy`/`Reflect`/`crypto` are gone entirely — they are pure escape + * / primitivity-accumulation surface for untrusted code. */ +const SANDBOX_BOOTSTRAP = ` +({ + Math, Date, JSON, + parseInt, parseFloat, isNaN, isFinite, + encodeURIComponent, decodeURIComponent, encodeURI, decodeURI, + Array, Object, String, Number, Boolean, RegExp, Map, Set, + Promise, WeakMap, WeakSet, Symbol, + Error, TypeError, RangeError, SyntaxError, ReferenceError, + NaN, Infinity, undefined +}); +`; + function createSandboxContext() { const logs: string[] = []; const errors: string[] = []; const ctx: Record = { - // Safe console that captures output + // Safe console that captures output — these closures are the ONLY host + // references exposed to guest code and they expose nothing but string + // sinks. console: { log: (...args: unknown[]) => logs.push(args.map(stringify).join(" ")), error: (...args: unknown[]) => errors.push(args.map(stringify).join(" ")), warn: (...args: unknown[]) => logs.push("[warn] " + args.map(stringify).join(" ")), info: (...args: unknown[]) => logs.push(args.map(stringify).join(" ")), }, - // Built-in globals - Math, - Date, - JSON, - parseInt, - parseFloat, - isNaN, - isFinite, - encodeURIComponent, - decodeURIComponent, - encodeURI, - decodeURI, - Array, - Object, - String, - Number, - Boolean, - RegExp, - Map, - Set, - Promise, - WeakMap, - WeakSet, - Symbol, - Proxy, - Reflect, - Error, - TypeError, - RangeError, - SyntaxError, - ReferenceError, - NaN, - Infinity, - undefined, - // TextEncoder / TextDecoder - TextEncoder: globalThis.TextEncoder, - TextDecoder: globalThis.TextDecoder, - // URL / URLSearchParams - URL: globalThis.URL, - URLSearchParams: globalThis.URLSearchParams, - // atob / btoa atob: globalThis.atob, btoa: globalThis.btoa, - // crypto for random UUID etc. - crypto: globalThis.crypto, }; return { ctx, logs, errors }; @@ -109,12 +89,27 @@ export async function runJavaScript( const vm = await import("node:vm"); const context = vm.createContext(ctx, { - name: "codebuff-sandbox", + name: "agent-studio-sandbox", codeGeneration: { wasm: false, // No WASM }, }); + // Materialize context-realm intrinsics INSIDE the sandbox (see SECURITY + // note above) and expose them as globals for the guest program. + const intrinsics = vm.runInContext(SANDBOX_BOOTSTRAP, context, { + timeout: effectiveTimeout, + }); + if (intrinsics && typeof intrinsics === "object") { + for (const [key, value] of Object.entries(intrinsics as Record)) { + try { + Object.defineProperty(context, key, { value, writable: true, configurable: true }); + } catch { + /* non-configurable key — skip */ + } + } + } + // Wrap in async function to support top-level await const wrappedCode = `(async () => { ${code} })()`; const script = new vm.Script(wrappedCode, { @@ -158,8 +153,23 @@ export async function runJavaScript( /** * Run Python code in a subprocess with timeout and output limits. - * Uses `python3 -c` with restricted imports where possible. + * Runs with `-I` (isolated mode: no site-packages, no user site-dir, ignores + * PYTHON* env vars) and a MINIMAL environment allowlist. + * + * SECURITY: the previous implementation inherited the FULL server + * environment (`{ ...process.env }`), handing untrusted code the LLM API + * keys and DATABASE_URL on a plate. Only what CPython needs to boot is + * forwarded now. */ +const PY_ENV_ALLOWLIST = (() => { + const env: Record = { PYTHONDONTWRITEBYTECODE: "1", HOME: "/tmp" }; + // Windows needs SystemRoot to boot any process; keep PATH so python3 resolves. + for (const key of ["PATH", "SystemRoot", "SYSTEMROOT", "TEMP", "TMP", "LANG"] as const) { + if (process.env[key]) env[key] = process.env[key]; + } + return env; +})(); + export async function runPython( code: string, timeoutMs: number = DEFAULT_TIMEOUT_MS @@ -173,11 +183,12 @@ export async function runPython( const { promisify } = await import("node:util"); const execFileAsync = promisify(execFile); - const { stdout, stderr } = await execFileAsync("python3", ["-c", code], { + const { stdout, stderr } = await execFileAsync("python3", ["-I", "-c", code], { timeout: effectiveTimeout, maxBuffer: MAX_OUTPUT_BYTES, - env: { ...process.env, HOME: "/tmp", PYTHONDONTWRITEBYTECODE: "1" } as NodeJS.ProcessEnv, + env: PY_ENV_ALLOWLIST as unknown as NodeJS.ProcessEnv, encoding: "utf8", + windowsHide: true, }); return { diff --git a/src/modules/tools/registry/ToolRegistry.ts b/src/modules/tools/registry/ToolRegistry.ts index d43a540..a9de738 100644 --- a/src/modules/tools/registry/ToolRegistry.ts +++ b/src/modules/tools/registry/ToolRegistry.ts @@ -65,28 +65,43 @@ export class ToolRegistry { } } + /** + * Namespace-scoped replacement for DYNAMIC tools (`mcp_*`, `openapi_*`). + * + * Replaces every registered tool whose name starts with one of the given + * prefixes with exactly the provided set. This is how per-user sync MUST + * work on a shared registry: tools belonging to OTHER users (or to a user + * who disconnected/deleted a server since the last run) are scrubbed + * instead of accumulating forever — previously they lingered and became + * reachable cross-user through the permission checker's fallback matching. + * Built-in tools are never touched. + */ + syncDynamicTools(prefixes: string[], tools: Tool[]): void { + const keep = new Set(); + for (const tool of tools) { + if (!tool?.name || tool.id !== tool.name) continue; + if (!isToolCategory(tool.category)) continue; + this.tools.set(tool.name, tool); + keep.add(tool.name); + } + for (const name of [...this.tools.keys()]) { + if (!prefixes.some((p) => name.startsWith(p))) continue; + if (!keep.has(name)) this.tools.delete(name); + } + } + /** Remove a registered tool by name (used to scrub MCP tools on disconnect). */ unregisterTool(name: string): void { this.tools.delete(name); } getTool(name: string): Tool | null { - if (this.tools.has(name)) return this.tools.get(name)!; - - // Fallback: match by base tool name if unambiguous - // e.g. "read_file" or "search" matching "mcp__read_file" or "openapi__search" - const candidates = [...this.tools.values()].filter( - (t) => - t.name === name || - t.name.endsWith(`_${name}`) || - t.name.replace(/^mcp_[^_]+_/, "") === name || - t.name.replace(/^openapi_[^_]+_/, "") === name - ); - if (candidates.length === 1) { - return candidates[0]; - } - - return null; + // EXACT match only. The previous suffix/base-name fallback + // ("read_file" → "mcp__read_file") let a skill resolve another + // tenant's dynamically-registered tool by its bare name — a cross-user + // execution bypass once registries became shared. Callers that want a + // dynamic tool must reference its full registry name. + return this.tools.get(name) ?? null; } hasTool(name: string): boolean { diff --git a/src/repositories/ApprovalRepository.ts b/src/repositories/ApprovalRepository.ts index ca396de..896881e 100644 --- a/src/repositories/ApprovalRepository.ts +++ b/src/repositories/ApprovalRepository.ts @@ -113,6 +113,26 @@ export class ApprovalRepository implements IApprovalRepository { }); } + /** + * Expire PENDING approvals older than `olderThanMs` for one user. + * + * The graph runtime's escalateAfterMin timer is in-process only — a deploy + * or serverless freeze loses it and the request sits in the queue forever. + * Calling this opportunistically when the review queue loads makes expiry + * eventually-consistent without needing a cron. + */ + async expireStaleForUser(userId: string, olderThanMs = 24 * 60 * 60_000): Promise { + const result = await prisma.approvalRequest.updateMany({ + where: { + userId, + status: "PENDING", + requestedAt: { lt: new Date(Date.now() - olderThanMs) }, + }, + data: { status: "EXPIRED", rejectionReason: "Expired — no response within the review window" }, + }); + return result.count; + } + private mapApproval(a: Prisma.ApprovalRequestGetPayload<{}>): ApprovalRequestDTO { return { id: a.id, diff --git a/src/repositories/ExecutionRepository.ts b/src/repositories/ExecutionRepository.ts index 5e947cc..de1c484 100644 --- a/src/repositories/ExecutionRepository.ts +++ b/src/repositories/ExecutionRepository.ts @@ -208,6 +208,20 @@ export class ExecutionRepository implements IExecutionRepository { return this.mapExecution(updated); } + /** + * Atomic compare-and-swap claim for (re)starting a run: flips the row to + * RUNNING only when it is not already RUNNING. `updateMany` guarantees + * exactly one concurrent caller wins; losers get `false` instead of a + * double-invoked graph run. + */ + async claimRun(id: string): Promise { + const result = await prisma.execution.updateMany({ + where: { id, status: { not: "RUNNING" } }, + data: { status: "RUNNING", errorMessage: null }, + }); + return result.count === 1; + } + async addStep(executionId: string, step: Omit): Promise { const created = await prisma.executionStep.create({ data: { diff --git a/src/repositories/McpServerRepository.ts b/src/repositories/McpServerRepository.ts index 965b1e9..824da48 100644 --- a/src/repositories/McpServerRepository.ts +++ b/src/repositories/McpServerRepository.ts @@ -9,7 +9,16 @@ import { } from "@/types/mcp"; import { prisma } from "@/lib/prisma"; import { ensureUserExists } from "@/lib/user"; +import { REDACTED, isRedactedValue, redactHeaders } from "@/lib/secrets"; +/** + * MCP server repository. + * + * SECURITY: `headers` carries upstream credentials (Authorization, API keys). + * Every DTO returned by this class has header VALUES redacted — the raw + * values only leave this class through `getRawHeadersForUser`, which the + * service layer uses exclusively to establish outbound connections. + */ export class McpServerRepository implements IMcpServerRepository { async findById(id: string): Promise { const row = await prisma.mcpServer.findUnique({ where: { id } }); @@ -21,10 +30,20 @@ export class McpServerRepository implements IMcpServerRepository { return row ? this.map(row) : null; } - async findByUserId(userId: string): Promise { + /** Raw (unredacted) headers for one user-owned server — connection setup ONLY. */ + async getRawHeadersForUser(id: string, userId: string): Promise | null> { + const row = await prisma.mcpServer.findFirst({ + where: { id, userId }, + select: { headers: true }, + }); + return (row?.headers as Record | null) ?? null; + } + + async findByUserId(userId: string, limit?: number): Promise { const rows = await prisma.mcpServer.findMany({ where: { userId }, orderBy: { updatedAt: "desc" }, + ...(limit && limit > 0 ? { take: Math.min(limit, 200) } : {}), }); return rows.map((row) => this.map(row)); } @@ -51,14 +70,27 @@ export class McpServerRepository implements IMcpServerRepository { async update(id: string, userId: string, input: UpdateMcpServerInput): Promise { const existing = await prisma.mcpServer.findFirst({ where: { id, userId } }); if (!existing) throw new Error("MCP server not found or you do not have access to it"); + + // Merge semantics for redacted header values: a client that received the + // masked DTO sends `__REDACTED__` back — keep the stored secret instead + // of persisting the sentinel over it. + let mergedHeaders: Record | undefined; + if (input.headers !== undefined && input.headers !== null) { + const existingHeaders = (existing.headers as Record | null) ?? {}; + mergedHeaders = {}; + for (const [name, value] of Object.entries(input.headers)) { + mergedHeaders[name] = isRedactedValue(value) ? existingHeaders[name] ?? value : value; + } + } + const row = await prisma.mcpServer.update({ where: { id }, data: { ...(input.name !== undefined && { name: input.name }), ...(input.endpointUrl !== undefined && { endpointUrl: input.endpointUrl || null }), ...(input.command !== undefined && { command: input.command || null }), - ...(input.headers !== undefined && { - headers: (input.headers as Prisma.InputJsonValue) ?? Prisma.DbNull, + ...(mergedHeaders !== undefined && { + headers: mergedHeaders as unknown as Prisma.InputJsonValue, }), ...(input.clearHeaders === true && { headers: Prisma.DbNull }), }, @@ -101,7 +133,7 @@ export class McpServerRepository implements IMcpServerRepository { transport: row.transport, endpointUrl: row.endpointUrl, command: row.command, - headers: (row.headers as Record | null) ?? null, + headers: redactHeaders(row.headers as Record | null), status: row.status, cachedTools: Array.isArray(row.cachedTools) ? (row.cachedTools as unknown as McpToolDefinition[]) : [], lastError: row.lastError, @@ -110,3 +142,5 @@ export class McpServerRepository implements IMcpServerRepository { }; } } + +export { REDACTED }; diff --git a/src/repositories/OpenApiRepository.ts b/src/repositories/OpenApiRepository.ts index 095855c..cc02d4b 100644 --- a/src/repositories/OpenApiRepository.ts +++ b/src/repositories/OpenApiRepository.ts @@ -11,6 +11,47 @@ import { } from "@/types/openapi"; import { prisma } from "@/lib/prisma"; import { ensureUserExists } from "@/lib/user"; +import { decrypt, encrypt } from "@/services/VaultService"; +import { mergeRedactedAuthConfig, redactAuthConfig } from "@/lib/secrets"; + +/** + * Encrypted envelope stored in the `authConfig` JSON column. Bearer tokens / + * API keys are AES-256-GCM encrypted with the Vault master key — previously + * this column held plaintext secrets while the schema comment claimed + * "Encrypted/stored". + */ +interface EncryptedAuthEnvelope { + __enc: true; + data: string; + iv: string; + tag: string; +} + +function isEnvelope(value: unknown): value is EncryptedAuthEnvelope { + return Boolean( + value && + typeof value === "object" && + (value as EncryptedAuthEnvelope).__enc === true && + typeof (value as EncryptedAuthEnvelope).data === "string" + ); +} + +function sealAuthConfig(config: Record | null | undefined): Prisma.InputJsonValue | typeof Prisma.DbNull { + if (!config || Object.keys(config).length === 0) return Prisma.DbNull; + const { encrypted, iv, tag } = encrypt(JSON.stringify(config)); + return { __enc: true, data: encrypted, iv, tag } as unknown as Prisma.InputJsonValue; +} + +function unsealAuthConfig(raw: unknown): Record | null { + if (!isEnvelope(raw)) return (raw as Record) ?? null; + try { + return JSON.parse(decrypt(raw.data, raw.iv, raw.tag)) as Record; + } catch { + // Wrong VAULT_MASTER_KEY or corrupted row — fail closed to no-auth rather + // than leaking anything. + return null; + } +} export class OpenApiRepository implements IOpenApiRepository { async findById(id: string): Promise { @@ -33,12 +74,27 @@ export class OpenApiRepository implements IOpenApiRepository { } } - async findByUserId(userId: string): Promise { + /** Decrypted auth config for one user-owned integration — execution paths ONLY. */ + async getRawAuthConfigForUser(id: string, userId: string): Promise { + if (!prisma.openApiIntegration) return null; + try { + const row = await prisma.openApiIntegration.findFirst({ + where: { id, userId }, + select: { authConfig: true }, + }); + return (unsealAuthConfig(row?.authConfig) as OpenApiAuthConfig) ?? null; + } catch { + return null; + } + } + + async findByUserId(userId: string, limit?: number): Promise { if (!prisma.openApiIntegration) return []; try { const rows = await prisma.openApiIntegration.findMany({ where: { userId }, orderBy: { updatedAt: "desc" }, + ...(limit && limit > 0 ? { take: Math.min(limit, 200) } : {}), }); return rows.map((row) => this.map(row)); } catch { @@ -58,7 +114,7 @@ export class OpenApiRepository implements IOpenApiRepository { rawSpec: (input.rawSpec ?? {}) as unknown as Prisma.InputJsonValue, baseUrl: input.baseUrl, authType: input.authType ?? "NONE", - authConfig: (input.authConfig ?? Prisma.DbNull) as unknown as Prisma.InputJsonValue, + authConfig: sealAuthConfig(input.authConfig as unknown as Record), endpoints: (input.endpoints ?? []) as unknown as Prisma.InputJsonValue, status: "CONNECTED", }, @@ -71,6 +127,17 @@ export class OpenApiRepository implements IOpenApiRepository { const existing = await prisma.openApiIntegration.findFirst({ where: { id, userId } }); if (!existing) throw new Error("OpenAPI integration not found or you do not have access to it"); + let sealed: Prisma.InputJsonValue | typeof Prisma.DbNull | undefined; + if (input.authConfig !== undefined) { + const existingPlain = unsealAuthConfig(existing.authConfig); + const merged = input.authConfig + ? mergeRedactedAuthConfig(existingPlain, input.authConfig as Partial as Partial> & Record) + : null; + sealed = merged + ? sealAuthConfig(merged) + : Prisma.DbNull; + } + const row = await prisma.openApiIntegration.update({ where: { id }, data: { @@ -78,8 +145,8 @@ export class OpenApiRepository implements IOpenApiRepository { ...(input.description !== undefined && { description: input.description || null }), ...(input.baseUrl !== undefined && { baseUrl: input.baseUrl }), ...(input.authType !== undefined && { authType: input.authType }), - ...(input.authConfig !== undefined && { - authConfig: (input.authConfig as Prisma.InputJsonValue) ?? Prisma.DbNull, + ...(sealed !== undefined && { + authConfig: sealed as Prisma.InputJsonValue | Prisma.NullableJsonNullValueInput, }), ...(input.endpoints !== undefined && { endpoints: input.endpoints as unknown as Prisma.InputJsonValue, @@ -133,7 +200,9 @@ export class OpenApiRepository implements IOpenApiRepository { rawSpec: (row.rawSpec as Record) ?? {}, baseUrl: row.baseUrl, authType: row.authType as OpenApiAuthType, - authConfig: (row.authConfig as OpenApiAuthConfig) ?? null, + // DTO carries the MASKED config — secret fields are `__REDACTED__` + // sentinels that the update path treats as "keep existing". + authConfig: redactAuthConfig(unsealAuthConfig(row.authConfig)) as OpenApiAuthConfig | null, endpoints: (row.endpoints as unknown as OpenApiEndpointDefinition[]) ?? [], status: row.status as OpenApiStatus, lastError: row.lastError, diff --git a/src/repositories/interfaces/IApprovalRepository.ts b/src/repositories/interfaces/IApprovalRepository.ts index ccf59cc..e448f20 100644 --- a/src/repositories/interfaces/IApprovalRepository.ts +++ b/src/repositories/interfaces/IApprovalRepository.ts @@ -27,4 +27,6 @@ export interface IApprovalRepository { * leaves the review queue. No-op when the request was already responded to. */ expireByIdempotencyKey(key: string): Promise; + /** Expire PENDING approvals older than the window (eventually-consistent escalation sweep). */ + expireStaleForUser(userId: string, olderThanMs?: number): Promise; } diff --git a/src/repositories/interfaces/IExecutionRepository.ts b/src/repositories/interfaces/IExecutionRepository.ts index d9874f5..ee4aed9 100644 --- a/src/repositories/interfaces/IExecutionRepository.ts +++ b/src/repositories/interfaces/IExecutionRepository.ts @@ -17,6 +17,8 @@ export interface IExecutionRepository { listForUser(userId: string, query: ExecutionQuery): Promise; create(input: StartExecutionInput, maxSteps: number, skillName?: string): Promise; updateStatus(id: string, status: ExecutionDTO["status"], errorMessage?: string): Promise; + /** Atomic CAS: flip to RUNNING only when not already RUNNING. False = another caller is running it. */ + claimRun(id: string): Promise; addStep(executionId: string, step: Omit): Promise; addToolCall(executionId: string, toolCall: Omit): Promise; /** Aggregated usage counts per tool name (tools dashboard metric). Scoped to diff --git a/src/repositories/interfaces/IMcpServerRepository.ts b/src/repositories/interfaces/IMcpServerRepository.ts index 1cf1cfc..addc756 100644 --- a/src/repositories/interfaces/IMcpServerRepository.ts +++ b/src/repositories/interfaces/IMcpServerRepository.ts @@ -10,7 +10,9 @@ export interface IMcpServerRepository { findById(id: string): Promise; /** Scoped to the owning user — returns null when the server belongs to someone else. */ findByIdForUser(id: string, userId: string): Promise; - findByUserId(userId: string): Promise; + findByUserId(userId: string, limit?: number): Promise; + /** Raw (unredacted) headers for one user-owned server — outbound connection setup ONLY. */ + getRawHeadersForUser(id: string, userId: string): Promise | null>; create(input: CreateMcpServerInput): Promise; update(id: string, userId: string, input: UpdateMcpServerInput): Promise; delete(id: string, userId: string): Promise; diff --git a/src/repositories/interfaces/IOpenApiRepository.ts b/src/repositories/interfaces/IOpenApiRepository.ts index 613fba8..70287fe 100644 --- a/src/repositories/interfaces/IOpenApiRepository.ts +++ b/src/repositories/interfaces/IOpenApiRepository.ts @@ -1,5 +1,6 @@ import { CreateOpenApiIntegrationInput, + OpenApiAuthConfig, OpenApiEndpointDefinition, OpenApiIntegrationDTO, OpenApiStatus, @@ -9,7 +10,9 @@ import { export interface IOpenApiRepository { findById(id: string): Promise; findByIdForUser(id: string, userId: string): Promise; - findByUserId(userId: string): Promise; + /** Decrypted auth config for one user-owned integration — execution paths ONLY. */ + getRawAuthConfigForUser(id: string, userId: string): Promise; + findByUserId(userId: string, limit?: number): Promise; create(input: CreateOpenApiIntegrationInput): Promise; update(id: string, userId: string, input: UpdateOpenApiIntegrationInput): Promise; delete(id: string, userId: string): Promise; diff --git a/src/services/ExecutionService.ts b/src/services/ExecutionService.ts index 750fe03..d2424c2 100644 --- a/src/services/ExecutionService.ts +++ b/src/services/ExecutionService.ts @@ -111,6 +111,13 @@ export class ExecutionService implements IExecutionService { executionRepo: this.executionRepo, approvalRepo, logRepo: deps.logRepo ?? new ExecutionLogRepository(), + // Vault bridge for HTTP-node `${vault.KEY}` placeholders — secrets are + // resolved per-run from the owning user's vault, never stored on the + // graph or logged with the request. + resolveSecrets: async (userId, value) => { + const { resolveVaultPlaceholders } = await import("@/lib/secrets"); + return resolveVaultPlaceholders(userId, value); + }, }); } @@ -257,7 +264,7 @@ export class ExecutionService implements IExecutionService { }; } - async cancelExecution(id: string, userId?: string): Promise { + async cancelExecution(id: string, userId: string): Promise { const execution = await this.executionRepo.findById(id); if (!execution) throw new Error("Execution not found"); @@ -272,9 +279,6 @@ export class ExecutionService implements IExecutionService { this.cancellations.cancel(id); const updated = await this.executionRepo.updateStatus(id, "CANCELLED", "User requested cancellation"); await this.auditRepo.log({ - // Record the actor — previously the audit row was written with a null - // userId, making cancellation the only mutation that couldn't be traced - // back to a user. userId, executionId: id, action: "EXECUTION_CANCELLED", @@ -294,17 +298,39 @@ export class ExecutionService implements IExecutionService { const execution = await this.executionRepo.findByIdForUser(executionId, userId); if (!execution) throw new Error("Execution not found or you do not have access to it"); - if (execution.status === "RUNNING") { - throw new Error("Execution is already running"); - } - await Promise.all([ this.syncMcpTools(userId), this.syncOpenApiTools(userId), ]); - // Mark status as RUNNING in database before launching graph run to prevent double-resumes - await this.executionRepo.updateStatus(executionId, "RUNNING"); + // Atomic CAS: exactly one concurrent resume/retry/cancel wins. The old + // read-then-write guard let two simultaneous resumes both pass the + // status check and double-invoke the graph. + const claimed = await this.executionRepo.claimRun(executionId); + if (!claimed) throw new Error("Execution is already running"); + + try { + return await this.runResume(execution, userId, { skipCompletedNodes: false }); + } catch (error) { + // Release the claim so a corrected retry is possible. + await this.executionRepo + .updateStatus(executionId, "FAILED", error instanceof Error ? error.message : "Resume error occurred") + .catch(() => {}); + throw error; + } + } + + /** + * Shared resume/retry runner. AWAITS the graph/engine run instead of + * fire-and-forget: on serverless (Vercel) a floating promise after the HTTP + * response freezes with the lambda and the execution stayed RUNNING forever. + */ + private async runResume( + execution: ExecutionDTO, + userId: string, + options: { skipCompletedNodes: boolean } + ): Promise { + const executionId = execution.id; // Load the skill and version that were used for this execution. const version = await this.skillRepo.findVersionById(execution.skillVersionId); @@ -313,15 +339,11 @@ export class ExecutionService implements IExecutionService { const skill = await this.skillRepo.findByIdForUser(version.skillId, userId); if (!skill) throw new Error("Skill not found or you do not have access to it"); - // Phase 6 contract: resume EXACTLY where the run paused — restore state - // from the database, do NOT restart the graph. Reusing the persisted plan - // means no second LLM call and no re-execution of already-done steps. - // Visual graph runs persist a `{ graph: true, pausedAtNodeId, state }` // payload — resume the graph interpreter in place. const planner = execution.plannerOutput as Record | null; if (planner?.graph === true && this.usesGraph(version)) { - return this.resumeGraphExecution(execution, skill, version, userId, planner); + return this.resumeGraphExecution(execution, skill, version, userId, planner, options.skipCompletedNodes); } const plan = planner as unknown as ExecutionPlan | null; @@ -356,67 +378,72 @@ export class ExecutionService implements IExecutionService { }); } - // Bind cancellation manager signal so user-requested cancellation can abort the resumed run const signal = this.cancellations.create(executionId); - // Continue the graph from the restored state, asynchronously — the caller - // polls the execution detail page for completion. - this.engine.run({ - executionId, - skill, - version, - userInput: execution.inputData, - signal, - resume: { - plan, - currentStep, - results, - toolCalls, - providerUsed: execution.provider ?? null, - persistedStepCount: execution.stepCount, - }, - }) - .then(async (result) => { - if (result.status === "COMPLETED") { - await this.executionRepo.setFinalOutput(executionId, result.finalOutput ?? {}); - await this.auditRepo.log({ - userId, - executionId, - action: "EXECUTION_COMPLETED", - details: { resumed: true }, - }); - } else if (result.status === "PAUSED_FOR_APPROVAL") { - // The resumed run paused again at a later step — persist the pause. - await this.executionRepo.updateStatus(executionId, "PAUSED_FOR_APPROVAL"); - } - logger.info({ executionId, status: result.status }, "Resumed execution finished"); - }) - .catch(async (err) => { - logger.error({ executionId, err }, "Resume execution failed catastrophically"); - await this.executionRepo.updateStatus( - executionId, - "FAILED", - err instanceof Error ? err.message : "Resume error occurred" - ).catch(() => {}); - }) - .finally(() => { - this.cancellations.dispose(executionId); + let result: EngineRunResult; + try { + result = await this.engine.run({ + executionId, + skill, + version, + userInput: execution.inputData, + signal, + resume: { + plan, + currentStep, + results, + toolCalls, + providerUsed: execution.provider ?? null, + persistedStepCount: execution.stepCount, + }, }); + } finally { + this.cancellations.dispose(executionId); + } - return (await this.executionRepo.findById(executionId)) ?? execution; + return this.persistTerminal(executionId, userId, result, { resumed: true }); + } + + /** Persist the outcome of an awaited run and return the fresh row. */ + private async persistTerminal( + executionId: string, + userId: string, + result: EngineRunResult, + auditDetails: Record + ): Promise { + if (result.status === "COMPLETED") { + await this.executionRepo.setFinalOutput(executionId, result.finalOutput ?? {}); + await this.auditRepo.log({ + userId, + executionId, + action: "EXECUTION_COMPLETED", + details: auditDetails, + }); + } else if (result.status === "PAUSED_FOR_APPROVAL") { + await this.executionRepo.updateStatus(executionId, "PAUSED_FOR_APPROVAL"); + } else if (result.error) { + await this.executionRepo.updateStatus(executionId, result.status, result.error); + } + logger.info({ executionId, status: result.status }, "Resumed execution finished"); + return (await this.executionRepo.findById(executionId)) ?? ({} as ExecutionDTO); } /** * Resume a visual-graph execution from the persisted pause position. The * successor of the approved node is the continuation point; restored state * (results, loop counters, tool calls) keeps the run exactly in place. + * With `skipCompletedNodes` (failure retry) nodes whose outputs are already + * persisted are replayed from state instead of re-executed — previously a + * retry re-ran every agent/tool/HTTP node, duplicating LLM spend and any + * non-idempotent side effects. */ private async resumeGraphExecution( execution: ExecutionDTO, skill: SkillDTO, version: SkillVersionDTO, userId: string, - planner: Record + planner: Record, + skipCompletedNodes: boolean ): Promise { const executionId = execution.id; const state = planner.state as GraphState | undefined; @@ -427,170 +454,79 @@ export class ExecutionService implements IExecutionService { throw new Error("Incomplete graph resume state"); } - // Mark RUNNING before launching so the detail page reflects the retry - // (resumeExecution already did this; retryFailedExecution did not). - await this.executionRepo.updateStatus(executionId, "RUNNING"); - - // Approval resume: continue from the approved node's successor. Failed - // runs persist no pause position — restart from the START node, reusing - // the last persisted state so completed nodes aren't re-executed. - const nextNode = pausedAtNodeId - ? graph.edges.find((e) => e.source === pausedAtNodeId)?.target ?? pausedAtNodeId - : graph.nodes.find((n) => n.type === "start")?.id ?? graph.nodes[0]?.id; + // Approval resume: continue from the approved node's successor. Failure + // retries restart from START with skip-completed replay semantics. + const nextNode = + pausedAtNodeId + ? graph.edges.find((e) => e.source === pausedAtNodeId)?.target ?? pausedAtNodeId + : graph.nodes.find((n) => n.type === "start")?.id ?? graph.nodes[0]?.id; if (!nextNode) { throw new Error("Incomplete graph resume state"); } const signal = this.cancellations.create(executionId); - this.graphInterpreter - .run({ + let result: GraphRunResult; + try { + result = await this.graphInterpreter.run({ executionId, skill, version, graph, userInput: execution.inputData, signal, - resume: { state, fromNodeId: nextNode }, - }) - .then(async (result) => { - if (result.status === "COMPLETED") { - await this.executionRepo.setFinalOutput(executionId, result.finalOutput ?? {}); - await this.auditRepo.log({ - userId, - executionId, - action: "EXECUTION_COMPLETED", - details: { resumed: true, graph: true }, - }); - } else if (result.status === "PAUSED_FOR_APPROVAL") { - await this.executionRepo.updateStatus(executionId, "PAUSED_FOR_APPROVAL"); - } - logger.info({ executionId, status: result.status }, "Resumed graph execution finished"); - }) - .catch(async (err) => { - logger.error({ executionId, err }, "Resumed graph execution failed"); - await this.executionRepo - .updateStatus(executionId, "FAILED", err instanceof Error ? err.message : "Resume error occurred") - .catch(() => {}); - }) - .finally(() => { - this.cancellations.dispose(executionId); + resume: { state, fromNodeId: nextNode, ...(skipCompletedNodes ? { skipCompletedNodes: true } : {}) }, }); + } catch (error) { + this.cancellations.dispose(executionId); + await this.executionRepo + .updateStatus(executionId, "FAILED", error instanceof Error ? error.message : "Resume error occurred") + .catch(() => {}); + throw error; + } + this.cancellations.dispose(executionId); - return (await this.executionRepo.findById(executionId)) ?? execution; + const normalized: EngineRunResult = this.toEngineResult(result); + if (result.status !== "COMPLETED" && result.status !== "PAUSED_FOR_APPROVAL" && !normalized.error) { + normalized.error = result.error; + } + return this.persistTerminal(executionId, userId, normalized, { + resumed: true, + graph: true, + ...(skipCompletedNodes ? { skippedCompletedNodes: true } : {}), + }); } async retryFailedExecution(executionId: string, userId: string): Promise { const execution = await this.executionRepo.findByIdForUser(executionId, userId); if (!execution) throw new Error("Execution not found or you do not have access to it"); - if (execution.status === "RUNNING") { - throw new Error("Execution is already running"); - } - await Promise.all([ this.syncMcpTools(userId), this.syncOpenApiTools(userId), ]); - const version = await this.skillRepo.findVersionById(execution.skillVersionId); - if (!version) throw new Error("Skill version not found"); - - const skill = await this.skillRepo.findByIdForUser(version.skillId, userId); - if (!skill) throw new Error("Skill not found or you do not have access to it"); - - const planner = execution.plannerOutput as Record | null; - - // Failed graph executions resume through the graph interpreter from the - // last persisted position. - if (planner?.graph === true && this.usesGraph(version)) { - return this.resumeGraphExecution(execution, skill, version, userId, planner); - } - - const plan = planner as unknown as ExecutionPlan | null; - if (!plan) { - throw new Error("No plan available to recover this execution"); - } - - // Mark status as RUNNING - await this.executionRepo.updateStatus(executionId, "RUNNING"); + // Same atomic claim as resume — concurrent retries cannot double-run. + const claimed = await this.executionRepo.claimRun(executionId); + if (!claimed) throw new Error("Execution is already running"); await this.auditRepo.log({ userId, executionId, action: "EXECUTION_RECOVERY_STARTED", - details: { recoveredFromStatus: execution.status, skillName: skill.name }, + details: { recoveredFromStatus: execution.status }, }); - const executedCalls = (execution.toolCalls ?? []).filter((c) => c.status === "SUCCESS"); - const currentStep = executedCalls.length; - - const results: Record = {}; - const toolCalls: ToolCallRecord[] = []; - for (let i = 0; i < executedCalls.length; i += 1) { - const call = executedCalls[i]; - const step = plan.steps[i]; - const output = call.outputResult ?? call.inputArgs; - results[`step_${step?.stepNumber ?? i + 1}`] = output; - toolCalls.push({ - stepNumber: step?.stepNumber ?? i + 1, - toolName: call.toolName, - action: call.action, - input: call.inputArgs, - output, - status: "SUCCESS", - requiresApproval: false, - durationMs: call.durationMs ?? undefined, - }); + try { + // Retry replays completed work from the persisted trace instead of + // re-executing it (see resumeGraphExecution docstring). + return await this.runResume(execution, userId, { skipCompletedNodes: true }); + } catch (error) { + await this.executionRepo + .updateStatus(executionId, "FAILED", error instanceof Error ? error.message : "Recovery error occurred") + .catch(() => {}); + throw error; } - - const signal = this.cancellations.create(executionId); - - this.engine - .run({ - executionId, - skill, - version, - userInput: execution.inputData, - signal, - resume: { - plan, - currentStep, - results, - toolCalls, - providerUsed: execution.provider ?? null, - persistedStepCount: execution.stepCount, - }, - }) - .then(async (result) => { - if (result.status === "COMPLETED") { - await this.executionRepo.setFinalOutput(executionId, result.finalOutput ?? {}); - await this.auditRepo.log({ - userId, - executionId, - action: "EXECUTION_COMPLETED", - details: { recovered: true, skippedSafeSteps: currentStep }, - }); - } else if (result.status === "PAUSED_FOR_APPROVAL") { - await this.executionRepo.updateStatus(executionId, "PAUSED_FOR_APPROVAL"); - } - logger.info({ executionId, status: result.status, skippedSafeSteps: currentStep }, "Recovered execution finished"); - }) - .catch(async (err) => { - logger.error({ executionId, err }, "Recovery execution failed"); - await this.executionRepo - .updateStatus( - executionId, - "FAILED", - err instanceof Error ? err.message : "Recovery error occurred" - ) - .catch(() => {}); - }) - .finally(() => { - this.cancellations.dispose(executionId); - }); - - return (await this.executionRepo.findById(executionId)) ?? execution; } } diff --git a/src/services/McpClientService.ts b/src/services/McpClientService.ts index a9d397d..66df113 100644 --- a/src/services/McpClientService.ts +++ b/src/services/McpClientService.ts @@ -16,6 +16,7 @@ import { McpConnection, CircuitBreaker, createMcpTool } from "@/modules/mcp"; import { McpRpcClient } from "@/modules/mcp/toolAdapter"; import { computeToolDiff } from "@/modules/mcp/toolDiff"; import { Tool, ToolRegistry } from "@/modules/tools"; +import { LLMChatMessage } from "@/providers/llm"; import { logger } from "@/lib/logger"; /** @@ -39,8 +40,8 @@ export class McpClientService implements IMcpClientService { constructor(private mcpRepo: IMcpServerRepository) {} - async listServers(userId: string): Promise { - return this.mcpRepo.findByUserId(userId); + async listServers(userId: string, limit?: number): Promise { + return this.mcpRepo.findByUserId(userId, limit); } async getServer(serverId: string, userId: string): Promise { @@ -78,7 +79,7 @@ export class McpClientService implements IMcpClientService { } async connect(serverId: string, userId: string): Promise { - const server = await this.requireServer(serverId, userId); + const server = await this.rawServerFor(serverId, userId); const connection = this.getConnection(server); try { @@ -257,28 +258,28 @@ export class McpClientService implements IMcpClientService { } async listResources(serverId: string, userId: string): Promise { - const server = await this.requireServer(serverId, userId); + const server = await this.rawServerFor(serverId, userId); const connection = this.getConnection(server); if (!connection.isConnected) await connection.connect(); return connection.listResources(); } async readResource(serverId: string, userId: string, uri: string): Promise { - const server = await this.requireServer(serverId, userId); + const server = await this.rawServerFor(serverId, userId); const connection = this.getConnection(server); if (!connection.isConnected) await connection.connect(); return connection.readResource(uri); } async listPrompts(serverId: string, userId: string): Promise { - const server = await this.requireServer(serverId, userId); + const server = await this.rawServerFor(serverId, userId); const connection = this.getConnection(server); if (!connection.isConnected) await connection.connect(); return connection.listPrompts(); } async getPrompt(serverId: string, userId: string, promptName: string, args?: Record): Promise { - const server = await this.requireServer(serverId, userId); + const server = await this.rawServerFor(serverId, userId); const connection = this.getConnection(server); if (!connection.isConnected) await connection.connect(); return connection.getPrompt(promptName, args); @@ -300,25 +301,42 @@ export class McpClientService implements IMcpClientService { /** * Subscribe to progress events from a connected MCP server's tool calls. * Returns an unsubscribe function. + * + * Ownership is ENFORCED here (not just at the route): the connection map is + * keyed by serverId alone, so without this check any authenticated user + * could subscribe to another user's server events. Fails closed — returns a + * no-op unsubscribe when the caller does not own the server or it is not + * connected in this process. */ - onProgress(serverId: string, userId: string, listener: (event: McpProgressEvent) => void): () => void { - const server = this.connections.get(serverId); - if (!server) return () => {}; - return server.onProgress(listener); + async onProgress( + serverId: string, + userId: string, + listener: (event: McpProgressEvent) => void + ): Promise<() => void> { + try { + await this.requireServer(serverId, userId); + } catch { + return () => {}; + } + const connection = this.connections.get(serverId); + if (!connection) return () => {}; + return connection.onProgress(listener); } /** - * Handle a sampling/createMessage request from a connected MCP server. - * This proxies the request to Agent Studio's LLM engine. For now, it - * returns a structured response indicating the request was received. - * In production, this would call the user's configured LLM provider. + * Handle a sampling/createMessage request from a connected MCP server by + * proxying it through Agent Studio's configured LLM router (Groq → + * OpenRouter failover). Previously this returned a canned echo while the + * connection advertised the `sampling` capability — servers got fabricated + * completions. */ async handleSamplingRequest( serverId: string, userId: string, params: Record ): Promise { - const server = await this.requireServer(serverId, userId); + // Ownership gate (throws when the caller does not own this server). + await this.requireServer(serverId, userId); const request = params as unknown as McpSamplingRequest; logger.info( @@ -326,29 +344,62 @@ export class McpClientService implements IMcpClientService { "Processing MCP sampling request" ); - // Build the sampling response. In a full implementation, this would - // route to the user's configured LLM provider (OpenAI, Anthropic, etc). - // For now, we return a structured result that acknowledges the request. - const messages = request.messages ?? []; - const lastUserMessage = messages.filter((m) => m.role === "user").pop(); - const userContent = lastUserMessage?.content?.text ?? ""; + const { getLLMProvider } = await import("@/providers/llm"); + const llm = getLLMProvider(); - return { - model: request.modelPreferences?.hints?.[0]?.name ?? "agent-studio-default", - role: "assistant", - content: { - type: "text", - text: `[Agent Studio Sampling] Received request from MCP server "${server.name}". ${request.systemPrompt ? `System: ${request.systemPrompt.slice(0, 100)}...` : ""} User content: ${userContent.slice(0, 200)}`, - }, - stopReason: "end_turn", - }; + const messages: LLMChatMessage[] = []; + if (request.systemPrompt) { + messages.push({ role: "system", content: request.systemPrompt }); + } + for (const message of request.messages ?? []) { + if (message.role !== "user" && message.role !== "assistant") continue; + const content = + typeof message.content === "string" + ? message.content + : ((message.content as { text?: string } | undefined)?.text ?? ""); + if (!content) continue; + messages.push({ role: message.role, content }); + } + if (messages.length === 0) { + messages.push({ role: "user", content: "(empty sampling request)" }); + } + + try { + // MCP caps sampling responses (~128k tokens model-side); stay modest. + const completion = await llm.complete(messages, { temperature: 0.3, maxTokens: 1024 }); + return { + model: `${llm.name}/${llm.model}`, + role: "assistant", + content: { type: "text", text: completion.content }, + stopReason: "end_turn", + }; + } catch (error) { + // No providers configured / all cooling down — say so instead of + // fabricating content. The server sees an explicit refusal. + logger.warn({ serverId, err: error }, "LLM unavailable for MCP sampling request"); + return { + model: request.modelPreferences?.hints?.[0]?.name ?? "agent-studio-default", + role: "assistant", + content: { + type: "text", + text: `Agent Studio could not serve this sampling request: ${ + error instanceof Error ? error.message : "no LLM provider configured" + }.`, + }, + stopReason: "refusal", + }; + } } /** * Sync a user's cached MCP tools into a ToolRegistry as standard `ITool`s. * Called by the execution runtime before a run so skills can call MCP tools * by their registry name (`mcp__`) inside allowedTools. - * Idempotent: re-syncing replaces tools by name. + * + * Uses namespace-scoped replacement (`mcp_*`): tools from OTHER users left + * over from earlier runs are scrubbed instead of accumulating — on the + * shared process-wide registries that previously made cross-user tool + * invocation possible. Idempotent per call. */ async registerUserMcpTools(userId: string, registry: ToolRegistry): Promise { const servers = await this.mcpRepo.findByUserId(userId); @@ -360,7 +411,7 @@ export class McpClientService implements IMcpClientService { tools.push(createMcpTool(definition, rpc, { serverId: server.id, serverName: server.name })); } } - registry.syncTools(tools); + registry.syncDynamicTools(["mcp_"], tools); return tools; } @@ -410,6 +461,20 @@ export class McpClientService implements IMcpClientService { return breaker; } + /** + * Load the user's server DTO with RAW (unredacted) auth headers for + * outbound connections. The only path secret material is allowed to take + * out of the repository. + */ + private async rawServerFor(serverId: string, userId: string): Promise { + const server = await this.requireServer(serverId, userId); + if (!server.headers || Object.values(server.headers).some((v) => v === "__REDACTED__")) { + const raw = await this.mcpRepo.getRawHeadersForUser(serverId, userId); + return { ...server, headers: raw ?? server.headers }; + } + return server; + } + private async requireServer(serverId: string, userId: string): Promise { const server = await this.mcpRepo.findByIdForUser(serverId, userId); if (!server) { diff --git a/src/services/OpenApiService.ts b/src/services/OpenApiService.ts index 52c8e04..e5ccd64 100644 --- a/src/services/OpenApiService.ts +++ b/src/services/OpenApiService.ts @@ -2,6 +2,7 @@ import { IOpenApiRepository } from "@/repositories/interfaces/IOpenApiRepository import { IOpenApiService } from "./interfaces/IOpenApiService"; import { CreateOpenApiIntegrationInput, + OpenApiAuthConfig, OpenApiEndpointDefinition, OpenApiIntegrationDTO, OpenApiParsedSpecDTO, @@ -57,8 +58,8 @@ export class OpenApiService implements IOpenApiService { return parseOpenApiSpec(specContent); } - async listIntegrations(userId: string): Promise { - return this.openApiRepo.findByUserId(userId); + async listIntegrations(userId: string, limit?: number): Promise { + return this.openApiRepo.findByUserId(userId, limit); } async getIntegration(id: string, userId: string): Promise { @@ -110,7 +111,7 @@ export class OpenApiService implements IOpenApiService { integrationName: integration.name, baseUrl: integration.baseUrl, authType: integration.authType, - authConfig: integration.authConfig, + authConfig: await this.resolveAuthConfig(userId, integration.id), }; return executeOpenApiRequest(endpoint, options, inputArgs); @@ -136,7 +137,9 @@ export class OpenApiService implements IOpenApiService { integrationName: integration.name, baseUrl: integration.baseUrl, authType: integration.authType, - authConfig: integration.authConfig, + // Decrypted + vault-resolved server-side only — the DTO's authConfig + // is masked and must never be used for execution. + authConfig: await this.resolveAuthConfig(userId, integration.id), }; for (const endpoint of integration.endpoints) { @@ -151,7 +154,25 @@ export class OpenApiService implements IOpenApiService { async syncRegistryTools(userId: string, registry: ToolRegistry): Promise { const tools = await this.getExecutableTools(userId); - registry.syncTools(tools); + // Namespace-scoped replacement: stale `openapi_*` tools from other users / + // deleted integrations are scrubbed from the shared registry. + registry.syncDynamicTools(["openapi_"], tools); return tools.length; } + + /** + * Load an integration's DECRYPTED auth config and resolve `${vault.KEY}` + * placeholders against the user's Vault. Secrets are fetched server-side at + * execution time and never returned to clients or logs. + */ + private async resolveAuthConfig( + userId: string, + integrationId: string + ): Promise { + const raw = await this.openApiRepo.getRawAuthConfigForUser(integrationId, userId); + if (!raw) return null; + const { resolveVaultPlaceholders } = await import("@/lib/secrets"); + const resolved = await resolveVaultPlaceholders(userId, raw as unknown as Record); + return resolved as OpenApiAuthConfig; + } } diff --git a/src/services/VaultService.ts b/src/services/VaultService.ts index 2bd05c3..8b03402 100644 --- a/src/services/VaultService.ts +++ b/src/services/VaultService.ts @@ -8,12 +8,20 @@ const IV_LENGTH = 16; /** * Derive an encryption key from the vault master key. - * In production, VAULT_MASTER_KEY should be a 64-char hex string set via env. - * Falls back to a dev key for local development (NOT secure for production). + * `VAULT_MASTER_KEY` MUST be a 64-char hex string in production — booting + * without it refuses to encrypt/decrypt rather than silently using the public + * repo constant (which would make every "encrypted" secret world-readable). + * The fallback exists ONLY for local development. */ function getEncryptionKey(): Buffer { - const masterKey = process.env.VAULT_MASTER_KEY || "dev-vault-key-change-in-production-00000000000000000000000000"; - return crypto.createHash("sha256").update(masterKey).digest(); + const masterKey = process.env.VAULT_MASTER_KEY; + if (masterKey) return crypto.createHash("sha256").update(masterKey).digest(); + if (process.env.NODE_ENV === "production") { + throw new Error( + "VAULT_MASTER_KEY is required in production — refusing to derive vault keys from the development fallback." + ); + } + return crypto.createHash("sha256").update("dev-vault-key-change-in-production-00000000000000000000000000").digest(); } // ────────────── Encryption / Decryption ────────────── diff --git a/src/services/interfaces/IMcpClientService.ts b/src/services/interfaces/IMcpClientService.ts index 68b8ed1..9583982 100644 --- a/src/services/interfaces/IMcpClientService.ts +++ b/src/services/interfaces/IMcpClientService.ts @@ -10,7 +10,7 @@ import { import { Tool, ToolRegistry } from "@/modules/tools"; export interface IMcpClientService { - listServers(userId: string): Promise; + listServers(userId: string, limit?: number): Promise; getServer(serverId: string, userId: string): Promise; createServer(input: CreateMcpServerInput): Promise; updateServer(serverId: string, userId: string, input: UpdateMcpServerInput): Promise; @@ -27,7 +27,7 @@ export interface IMcpClientService { getPrompt(serverId: string, userId: string, promptName: string, args?: Record): Promise; getMetrics(serverId: string, userId: string): Promise>; /** Subscribe to progress events from a connected MCP server. */ - onProgress(serverId: string, userId: string, listener: (event: McpProgressEvent) => void): () => void; + onProgress(serverId: string, userId: string, listener: (event: McpProgressEvent) => void): Promise<() => void>; /** Handle a sampling/createMessage request from a connected MCP server. */ handleSamplingRequest(serverId: string, userId: string, params: Record): Promise; /** Sync cached MCP tools into a registry as standard ITools (idempotent). */ diff --git a/src/services/interfaces/IOpenApiService.ts b/src/services/interfaces/IOpenApiService.ts index d093b80..733bdc4 100644 --- a/src/services/interfaces/IOpenApiService.ts +++ b/src/services/interfaces/IOpenApiService.ts @@ -11,7 +11,7 @@ import { CreateOpenApiToolOptions } from "@/modules/openapi/dynamicTool"; export interface IOpenApiService { parseSpec(input: { specUrl?: string; rawSpec?: string | Record }): Promise; - listIntegrations(userId: string): Promise; + listIntegrations(userId: string, limit?: number): Promise; getIntegration(id: string, userId: string): Promise; createIntegration(input: CreateOpenApiIntegrationInput): Promise; updateIntegration(id: string, userId: string, input: UpdateOpenApiIntegrationInput): Promise; diff --git a/src/types/agent-studio-registry.ts b/src/types/agent-studio-registry.ts index 48d08b3..8ffd73e 100644 --- a/src/types/agent-studio-registry.ts +++ b/src/types/agent-studio-registry.ts @@ -13,9 +13,12 @@ export interface AgentSkill { requiredServers: string[]; // MCP server IDs needed requiredTools: string[]; // Specific tool names needed tags: string[]; - stars: number; - installs: number; - rating: number; // 1-5 + /** Real GitHub stars when the source provides them — NEVER fabricated. */ + stars?: number; + /** Real install counts when the registry exposes them; undefined otherwise. */ + installs?: number; + /** Real rating when the source provides one; undefined otherwise. */ + rating?: number; // 1-5 difficulty: "BEGINNER" | "INTERMEDIATE" | "ADVANCED"; estimatedTime: string; // e.g., "5 min" steps: SkillStep[]; diff --git a/src/types/graph.ts b/src/types/graph.ts index d5232a1..04b1342 100644 --- a/src/types/graph.ts +++ b/src/types/graph.ts @@ -104,6 +104,8 @@ export interface GraphNodeData { httpBody?: Record; /** Expected response type. */ httpResponseType?: "json" | "text" | "blob"; + /** Per-request wall-clock budget in ms. Default 30s, capped by the run timeout. */ + httpTimeoutMs?: number; // transform /** Transform operation type. */ transformOp?: "map" | "filter" | "merge" | "flatten" | "sort" | "dedupe" | "pick" | "omit" | "template"; diff --git a/tests/unit/modules/executionService.test.ts b/tests/unit/modules/executionService.test.ts index a3a5c6f..ea46492 100644 --- a/tests/unit/modules/executionService.test.ts +++ b/tests/unit/modules/executionService.test.ts @@ -26,7 +26,7 @@ describe("ExecutionService.cancelExecution", () => { ); await repo.updateStatus(execution.id, "COMPLETED"); - const result = await service.cancelExecution(execution.id); + const result = await service.cancelExecution(execution.id, "u1"); expect(result.status).toBe("COMPLETED"); expect(repo.statusUpdates).toHaveLength(1); // only the COMPLETED update, no CANCELLED flip @@ -39,7 +39,7 @@ describe("ExecutionService.cancelExecution", () => { 10 ); - const result = await service.cancelExecution(execution.id); + const result = await service.cancelExecution(execution.id, "u1"); expect(result.status).toBe("CANCELLED"); expect(repo.statusUpdates).toHaveLength(1); @@ -48,7 +48,7 @@ describe("ExecutionService.cancelExecution", () => { it("throws for a missing execution", async () => { const { service } = makeService(); - await expect(service.cancelExecution("nope")).rejects.toThrow("Execution not found"); + await expect(service.cancelExecution("nope", "u1")).rejects.toThrow("Execution not found"); }); it("scopes cancellation to the owning user", async () => { diff --git a/tests/unit/modules/graph/graphInterpreter.test.ts b/tests/unit/modules/graph/graphInterpreter.test.ts index 0d4e855..b8fa47a 100644 --- a/tests/unit/modules/graph/graphInterpreter.test.ts +++ b/tests/unit/modules/graph/graphInterpreter.test.ts @@ -56,6 +56,9 @@ function makeInterpreter() { const approvalRepo = new FakeApprovalRepo(); const logRepo = new FakeLogRepo(); const llm = new StubLLM({}); + // Stub MCP status probe — mcp_server nodes now reflect REAL persisted + // server status (ownership-scoped); tests inject connected servers here. + const mcpServers = new Map(); const interpreter = new GraphInterpreter({ llm, toolRegistry: createToolRegistry(), @@ -63,8 +66,9 @@ function makeInterpreter() { executionRepo, approvalRepo, logRepo, + getMcpServerStatus: async (serverId) => mcpServers.get(serverId) ?? null, }); - return { interpreter, executionRepo, approvalRepo, logRepo, llm }; + return { interpreter, executionRepo, approvalRepo, logRepo, llm, mcpServers }; } function linearGraph(): AgentGraphDefinition { @@ -971,8 +975,11 @@ describe("GraphInterpreter", () => { expect(typeof output).toBe("object"); }); - it("passes through mcp_server node without errors", async () => { - const { interpreter } = makeInterpreter(); + it("reflects real server status on mcp_server node; fails when disconnected", async () => { + const { interpreter, mcpServers } = makeInterpreter(); + // Seed a CONNECTED owned server — the node must reflect reality, not + // fabricate "connected" like the old pass-through stub. + mcpServers.set("github", { status: "CONNECTED", name: "GitHub", transport: "SSE", cachedToolCount: 3 }); const graph: AgentGraphDefinition = { version: 1, nodes: [ @@ -1001,7 +1008,19 @@ describe("GraphInterpreter", () => { expect(result.status).toBe("COMPLETED"); const results = result.finalOutput?.results as Record; - expect(results.mcp).toMatchObject({ serverId: "github", transport: "SSE", status: "connected" }); + expect(results.mcp).toMatchObject({ serverId: "github", transport: "SSE", status: "CONNECTED", toolCount: 3 }); + + // A DISCONNECTED server now fails the run honestly. + mcpServers.set("github", { status: "DISCONNECTED", name: "GitHub", transport: "SSE", cachedToolCount: 0 }); + const failed = await interpreter.run({ + executionId: "g-exec-26", + skill: makeSkill(), + version: makeVersion(), + graph, + userInput: {}, + }); + expect(failed.status).toBe("FAILED"); + expect(failed.error).toContain("DISCONNECTED"); }); it("passes through sticky_note and frame nodes without errors", async () => { diff --git a/tests/unit/modules/helpers/fakeApprovalRepo.ts b/tests/unit/modules/helpers/fakeApprovalRepo.ts index 9edfdff..d1315e4 100644 --- a/tests/unit/modules/helpers/fakeApprovalRepo.ts +++ b/tests/unit/modules/helpers/fakeApprovalRepo.ts @@ -57,6 +57,17 @@ export class FakeApprovalRepo implements IApprovalRepository { return this.requests.find((r) => r.idempotencyKey === key) ?? null; } + async expireStaleForUser(userId: string): Promise { + let count = 0; + for (const r of this.requests) { + if (r.userId === userId && r.status === "PENDING") { + r.status = "EXPIRED"; + count += 1; + } + } + return count; + } + async expireByIdempotencyKey(key: string): Promise { const existing = this.requests.find((r) => r.idempotencyKey === key); if (existing && existing.status === "PENDING") { diff --git a/tests/unit/modules/helpers/fakeExecutionRepo.ts b/tests/unit/modules/helpers/fakeExecutionRepo.ts index b0323cf..b7aded7 100644 --- a/tests/unit/modules/helpers/fakeExecutionRepo.ts +++ b/tests/unit/modules/helpers/fakeExecutionRepo.ts @@ -44,6 +44,13 @@ export class FakeExecutionRepo implements IExecutionRepository { return execution; } + async claimRun(id: string): Promise { + const e = this.executions.get(id); + if (!e || e.status === "RUNNING") return false; + e.status = "RUNNING"; + return true; + } + async updateStatus(id: string, status: ExecutionDTO["status"], errorMessage?: string): Promise { this.statusUpdates.push({ id, status, error: errorMessage }); const e = this.executions.get(id); diff --git a/tests/unit/modules/mcp/mcpEndToEnd.test.ts b/tests/unit/modules/mcp/mcpEndToEnd.test.ts index b48ebc4..65ef336 100644 --- a/tests/unit/modules/mcp/mcpEndToEnd.test.ts +++ b/tests/unit/modules/mcp/mcpEndToEnd.test.ts @@ -19,6 +19,10 @@ import { /** Minimal in-memory repo backing the service during the live test. */ class E2eMcpRepo implements IMcpServerRepository { + async getRawHeadersForUser(id: string, userId: string): Promise | null> { + const row = this.rows.find((r) => r.id === id && r.userId === userId); + return row?.headers ?? null; + } private rows: McpServerDTO[] = []; seed(rows: McpServerDTO[]) { this.rows = rows; diff --git a/tests/unit/modules/mcp/mcpExecution.test.ts b/tests/unit/modules/mcp/mcpExecution.test.ts index c2003f9..318db04 100644 --- a/tests/unit/modules/mcp/mcpExecution.test.ts +++ b/tests/unit/modules/mcp/mcpExecution.test.ts @@ -322,6 +322,10 @@ describe("McpClientService.registerUserMcpTools", () => { const row = this.rows.find((r) => r.id === id); return row && row.userId === userId ? row : null; } + async getRawHeadersForUser(id: string, userId: string): Promise | null> { + return this.rows.find((r) => r.id === id && r.userId === userId)?.headers ?? null; + } + async findByUserId(userId: string) { return this.rows.filter((r) => r.userId === userId); } @@ -413,17 +417,14 @@ describe("McpClientService.registerUserMcpTools", () => { await service.registerUserMcpTools("u1", registry); expect(registry.listTools()).toHaveLength(1); - // Another user's cached tools sync into the same shared registry but are - // namespaced per server id — never a collision. + // Per-user ISOLATION on a shared registry: syncing another user's tools + // REPLACES all previously synced mcp_* tools instead of accumulating + // them. The old accumulate-and-keep behavior is what made cross-user + // tool invocation possible via lingering namespaced entries. const other = await service.registerUserMcpTools("u2", registry); expect(other.map((t) => t.name)).toEqual(["mcp_svc_b_secret_tool"]); expect(registry.hasTool("mcp_svc_b_secret_tool")).toBe(true); - - // Mapped contract matches the cached definition (READ vs WRITE + HITL). - const readTool = registry.getTool("mcp_svc_a_get_issue")!; - expect(readTool.type).toBe("READ"); - expect(readTool.requiresApproval).toBe(false); - expect(readTool.inputSchema).toMatchObject({ type: "object" }); + expect(registry.hasTool("mcp_svc_a_get_issue")).toBe(false); const writeTool = registry.getTool("mcp_svc_b_secret_tool")!; expect(writeTool.type).toBe("WRITE"); expect(writeTool.requiresApproval).toBe(true); diff --git a/tests/unit/modules/mcp/mcpExportImportBatch.test.ts b/tests/unit/modules/mcp/mcpExportImportBatch.test.ts index e2a8deb..4ad3e09 100644 --- a/tests/unit/modules/mcp/mcpExportImportBatch.test.ts +++ b/tests/unit/modules/mcp/mcpExportImportBatch.test.ts @@ -9,6 +9,10 @@ import { } from "@/types/mcp"; class MockMcpRepo implements IMcpServerRepository { + async getRawHeadersForUser(id: string, userId: string): Promise | null> { + const row = this.rows.find((r) => r.id === id && r.userId === userId); + return row?.headers ?? null; + } public rows: McpServerDTO[] = []; async findById(id: string) { diff --git a/tests/unit/modules/permissionChecker.test.ts b/tests/unit/modules/permissionChecker.test.ts index 6007350..0483d9d 100644 --- a/tests/unit/modules/permissionChecker.test.ts +++ b/tests/unit/modules/permissionChecker.test.ts @@ -64,9 +64,14 @@ describe("PermissionChecker", () => { }); }); - it("allows tool matching by base action name", () => { + it("DENIES base action name matching (cross-user bypass removed)", () => { const registry = new ToolRegistry(); registry.registerTool(makeTool({ name: "mcp_supabase_run_sql", description: "SQL" })); - expect(checker.check("mcp_supabase_run_sql", ["run_sql"], registry)).toEqual({ ok: true }); + // The old base-name fallback let a skill allowed "run_sql" execute any + // tenant's namespaced MCP tool. Only the FULL registry name or a + // server-scoped prefix may be allowed now. + expect(checker.check("mcp_supabase_run_sql", ["run_sql"], registry).ok).toBe(false); + expect(checker.check("mcp_supabase_run_sql", ["mcp_supabase_run_sql"], registry)).toEqual({ ok: true }); + expect(checker.check("mcp_supabase_run_sql", ["mcp_supabase_*"], registry)).toEqual({ ok: true }); }); }); diff --git a/tests/unit/services/approvalService.test.ts b/tests/unit/services/approvalService.test.ts index de4ee93..9031aa9 100644 --- a/tests/unit/services/approvalService.test.ts +++ b/tests/unit/services/approvalService.test.ts @@ -5,6 +5,13 @@ import { IAuditLogRepository } from "@/repositories/interfaces/IAuditLogReposito import { ApprovalRequestDTO, RespondApprovalInput } from "@/types/approval"; class FakeApprovalRepo implements IApprovalRepository { + async expireStaleForUser(userId: string): Promise { + let n = 0; + for (const r of this.requests.values()) { + if (r.userId === userId && r.status === "PENDING") { r.status = "EXPIRED"; n += 1; } + } + return n; + } requests = new Map(); respondCalls: RespondApprovalInput[] = []; /** When set, `respond` returns null without mutating — simulates losing the CAS race. */ diff --git a/tests/unit/services/openApiService.test.ts b/tests/unit/services/openApiService.test.ts index b6cd9d1..a31a20e 100644 --- a/tests/unit/services/openApiService.test.ts +++ b/tests/unit/services/openApiService.test.ts @@ -9,6 +9,7 @@ function createMockRepo(): IOpenApiRepository { return { findById: vi.fn(async (id: string) => store.get(id) ?? null), + getRawAuthConfigForUser: vi.fn(async () => null), findByIdForUser: vi.fn(async (id: string, userId: string) => { const item = store.get(id); return item && item.userId === userId ? item : null; diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo index a65b05f..4565466 100644 --- a/tsconfig.tsbuildinfo +++ b/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./.next/types/routes.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/shared/lib/amp.d.ts","./node_modules/next/amp.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/@types/node/web-globals/storage.d.ts","./node_modules/@types/node/web-globals/streams.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/@types/react/canary.d.ts","./node_modules/@types/react/experimental.d.ts","./node_modules/@types/react-dom/index.d.ts","./node_modules/@types/react-dom/canary.d.ts","./node_modules/@types/react-dom/experimental.d.ts","./node_modules/next/dist/lib/fallback.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/lib/cache-control.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/worker.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/build/rendering-mode.d.ts","./node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/lib/experimental/ppr.d.ts","./node_modules/next/dist/build/webpack/plugins/app-build-manifest-plugin.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","./node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/server/node-environment-baseline.d.ts","./node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","./node_modules/next/dist/server/node-environment-extensions/random.d.ts","./node_modules/next/dist/server/node-environment-extensions/date.d.ts","./node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","./node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/server/instrumentation/types.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/build/build-context.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/server/route-kind.d.ts","./node_modules/next/dist/server/route-definitions/route-definition.d.ts","./node_modules/next/dist/build/swc/generated-native.d.ts","./node_modules/next/dist/build/swc/types.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/next-devtools/shared/types.d.ts","./node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","./node_modules/next/dist/server/lib/parse-stack.d.ts","./node_modules/next/dist/next-devtools/server/shared.d.ts","./node_modules/next/dist/next-devtools/shared/stack-frame.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts","./node_modules/@types/react/jsx-runtime.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/server/lib/cache-handlers/types.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","./node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/server/lib/i18n-provider.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/server/after/builtin-request-context.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/server/app-render/cache-signal.d.ts","./node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/next/dist/server/request/fallback-params.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/next/dist/server/lib/lazy-result.d.ts","./node_modules/next/dist/server/lib/implicit-tags.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","./node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","./node_modules/next/dist/client/components/client-page.d.ts","./node_modules/next/dist/client/components/client-segment.d.ts","./node_modules/next/dist/server/request/search-params.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/dist/lib/metadata/types/resolvers.d.ts","./node_modules/next/dist/lib/metadata/types/icons.d.ts","./node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","./node_modules/next/dist/lib/metadata/metadata.d.ts","./node_modules/next/dist/lib/framework/boundary-components.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts","./node_modules/next/dist/server/app-render/collect-segment-data.d.ts","./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/@types/react/jsx-dev-runtime.d.ts","./node_modules/@types/react/compiler-runtime.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","./node_modules/@types/react-dom/client.d.ts","./node_modules/@types/react-dom/static.d.ts","./node_modules/@types/react-dom/server.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/web/adapter.d.ts","./node_modules/next/dist/server/use-cache/cache-life.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/client/flight-data-helpers.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/route-modules/pages/module.d.ts","./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/normalizers/normalizer.d.ts","./node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/normalizers/request/prefetch-rsc.d.ts","./node_modules/next/dist/server/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","./node_modules/next/dist/build/static-paths/types.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/lib/async-callback-set.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/sharp/lib/index.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/lru-cache.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","./node_modules/next/dist/server/route-modules/route-module.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","./node_modules/next/dist/server/async-storage/work-store.d.ts","./node_modules/next/dist/server/web/http.d.ts","./node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect-error.d.ts","./node_modules/next/dist/build/templates/app-route.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","./node_modules/next/dist/build/segment-config/app/app-segments.d.ts","./node_modules/next/dist/build/utils.d.ts","./node_modules/next/dist/build/turborepo-access-trace/types.d.ts","./node_modules/next/dist/build/turborepo-access-trace/result.d.ts","./node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","./node_modules/next/dist/build/turborepo-access-trace/index.d.ts","./node_modules/next/dist/export/routes/types.d.ts","./node_modules/next/dist/export/types.d.ts","./node_modules/next/dist/export/worker.d.ts","./node_modules/next/dist/build/worker.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/server/after/after.d.ts","./node_modules/next/dist/server/after/after-context.d.ts","./node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","./node_modules/next/dist/server/request/params.d.ts","./node_modules/next/dist/server/route-matches/route-match.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/cli/next-test.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/types.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/dist/server/use-cache/cache-tag.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/shared/lib/runtime-config.external.d.ts","./node_modules/next/config.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/server/request/cookies.d.ts","./node_modules/next/dist/server/request/headers.d.ts","./node_modules/next/dist/server/request/draft-mode.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/forbidden.d.ts","./node_modules/next/dist/client/components/unauthorized.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.d.ts","./node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/next/dist/client/components/unrecognized-action-error.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/dist/server/after/index.d.ts","./node_modules/next/dist/server/request/root-params.d.ts","./node_modules/next/dist/server/request/connection.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/types.d.ts","./node_modules/next/index.d.ts","./node_modules/next/image-types/global.d.ts","./next-env.d.ts","./next.config.ts","./node_modules/playwright-core/types/protocol.d.ts","./node_modules/playwright-core/types/structs.d.ts","./node_modules/zod/v3/helpers/typealiases.d.cts","./node_modules/zod/v3/helpers/util.d.cts","./node_modules/zod/v3/index.d.cts","./node_modules/zod/v3/zoderror.d.cts","./node_modules/zod/v3/locales/en.d.cts","./node_modules/zod/v3/errors.d.cts","./node_modules/zod/v3/helpers/parseutil.d.cts","./node_modules/zod/v3/helpers/enumutil.d.cts","./node_modules/zod/v3/helpers/errorutil.d.cts","./node_modules/zod/v3/helpers/partialutil.d.cts","./node_modules/zod/v3/standard-schema.d.cts","./node_modules/zod/v3/types.d.cts","./node_modules/zod/v3/external.d.cts","./node_modules/zod/index.d.cts","./node_modules/playwright-core/types/types.d.ts","./node_modules/playwright-core/index.d.ts","./node_modules/playwright/types/test.d.ts","./node_modules/playwright/test.d.ts","./node_modules/@playwright/test/index.d.ts","./playwright.config.ts","./node_modules/source-map-js/source-map.d.ts","./node_modules/postcss/lib/previous-map.d.ts","./node_modules/postcss/lib/input.d.ts","./node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/postcss/lib/declaration.d.ts","./node_modules/postcss/lib/root.d.ts","./node_modules/postcss/lib/warning.d.ts","./node_modules/postcss/lib/lazy-result.d.ts","./node_modules/postcss/lib/no-work-result.d.ts","./node_modules/postcss/lib/processor.d.ts","./node_modules/postcss/lib/result.d.ts","./node_modules/postcss/lib/document.d.ts","./node_modules/postcss/lib/rule.d.ts","./node_modules/postcss/lib/node.d.ts","./node_modules/postcss/lib/comment.d.ts","./node_modules/postcss/lib/container.d.ts","./node_modules/postcss/lib/at-rule.d.ts","./node_modules/postcss/lib/list.d.ts","./node_modules/postcss/lib/postcss.d.ts","./node_modules/postcss/lib/postcss.d.mts","./node_modules/tailwindcss/types/generated/corepluginlist.d.ts","./node_modules/tailwindcss/types/generated/colors.d.ts","./node_modules/tailwindcss/types/config.d.ts","./node_modules/tailwindcss/types/index.d.ts","./tailwind.config.ts","./node_modules/@vitest/spy/dist/index.d.ts","./node_modules/@vitest/pretty-format/dist/index.d.ts","./node_modules/@vitest/utils/dist/types.d.ts","./node_modules/@vitest/utils/dist/helpers.d.ts","./node_modules/tinyrainbow/dist/index-8b61d5bc.d.ts","./node_modules/tinyrainbow/dist/node.d.ts","./node_modules/@vitest/utils/dist/index.d.ts","./node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","./node_modules/@vitest/utils/dist/diff.d.ts","./node_modules/@vitest/expect/dist/index.d.ts","./node_modules/vite/types/hmrpayload.d.ts","./node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","./node_modules/vite/types/customevent.d.ts","./node_modules/@types/estree/index.d.ts","./node_modules/rollup/dist/rollup.d.ts","./node_modules/rollup/dist/parseast.d.ts","./node_modules/vite/types/hot.d.ts","./node_modules/vite/dist/node/module-runner.d.ts","./node_modules/esbuild/lib/main.d.ts","./node_modules/vite/types/internal/terseroptions.d.ts","./node_modules/vite/types/internal/csspreprocessoroptions.d.ts","./node_modules/vite/types/internal/lightningcssoptions.d.ts","./node_modules/vite/types/importglob.d.ts","./node_modules/vite/types/metadata.d.ts","./node_modules/vite/dist/node/index.d.ts","./node_modules/@vitest/runner/dist/tasks.d-cksck4of.d.ts","./node_modules/@vitest/runner/dist/types.d.ts","./node_modules/@vitest/utils/dist/error.d.ts","./node_modules/@vitest/runner/dist/index.d.ts","./node_modules/vitest/optional-types.d.ts","./node_modules/vitest/dist/chunks/environment.d.cl3nlxbe.d.ts","./node_modules/@vitest/mocker/dist/registry.d-d765pazg.d.ts","./node_modules/@vitest/mocker/dist/types.d-d_arzrdy.d.ts","./node_modules/@vitest/mocker/dist/index.d.ts","./node_modules/@vitest/utils/dist/source-map.d.ts","./node_modules/vite-node/dist/trace-mapping.d-dlvdeqop.d.ts","./node_modules/vite-node/dist/index.d-dgmxd2u7.d.ts","./node_modules/vite-node/dist/index.d.ts","./node_modules/@vitest/snapshot/dist/environment.d-dhdq1csl.d.ts","./node_modules/@vitest/snapshot/dist/rawsnapshot.d-lfsmjfud.d.ts","./node_modules/@vitest/snapshot/dist/index.d.ts","./node_modules/@vitest/snapshot/dist/environment.d.ts","./node_modules/vitest/dist/chunks/config.d.bkdhh7zx.d.ts","./node_modules/vitest/dist/chunks/worker.d.cugipz9v.d.ts","./node_modules/@types/deep-eql/index.d.ts","./node_modules/assertion-error/index.d.ts","./node_modules/@types/chai/index.d.ts","./node_modules/@vitest/runner/dist/utils.d.ts","./node_modules/tinybench/dist/index.d.ts","./node_modules/vitest/dist/chunks/benchmark.d.bwvbvtda.d.ts","./node_modules/vite-node/dist/client.d.ts","./node_modules/vitest/dist/chunks/coverage.d.s9rmnxie.d.ts","./node_modules/@vitest/snapshot/dist/manager.d.ts","./node_modules/vitest/dist/chunks/reporters.d.buron0i0.d.ts","./node_modules/vitest/dist/chunks/vite.d.bnoppc46.d.ts","./node_modules/vitest/dist/config.d.ts","./node_modules/vitest/config.d.ts","./vitest.config.ts","./e2e/smoke.spec.ts","./node_modules/@prisma/client/runtime/library.d.ts","./node_modules/.prisma/client/index.d.ts","./node_modules/.prisma/client/default.d.ts","./node_modules/@prisma/client/default.d.ts","./prisma/seed.ts","./node_modules/@clerk/shared/node_modules/csstype/index.d.ts","./node_modules/@clerk/shared/dist/runtime/index-bk8tp0p9.d.mts","./node_modules/@clerk/shared/dist/runtime/pathmatcher-cvdefkve.d.mts","./node_modules/@clerk/shared/dist/runtime/pathmatcher.d.mts","./node_modules/@clerk/shared/dist/types/index.d.mts","./node_modules/@clerk/types/src/index.d.mts","./node_modules/@clerk/nextjs/dist/types/server/routematcher.d.ts","./node_modules/@clerk/shared/dist/runtime/telemetry.d.mts","./node_modules/@clerk/backend/dist/api/resources/enums.d.ts","./node_modules/@clerk/backend/dist/api/resources/json.d.ts","./node_modules/@clerk/backend/dist/api/resources/actortoken.d.ts","./node_modules/@clerk/backend/dist/api/request.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/abstractapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/actortokenapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/agenttask.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/agenttaskapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/accountlessapplication.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/accountlessapplicationsapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/allowlistidentifier.d.ts","./node_modules/@clerk/backend/dist/api/resources/deletedobject.d.ts","./node_modules/@clerk/backend/dist/api/resources/deserializer.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/allowlistidentifierapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/apikey.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/apikeysapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/betafeaturesapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/blocklistidentifier.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/blocklistidentifierapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/session.d.ts","./node_modules/@clerk/backend/dist/api/resources/client.d.ts","./node_modules/@clerk/backend/dist/api/resources/handshakepayload.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/clientapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/cnametarget.d.ts","./node_modules/@clerk/backend/dist/api/resources/domain.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/domainapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/cookies.d.ts","./node_modules/@clerk/backend/dist/api/resources/email.d.ts","./node_modules/@clerk/backend/dist/api/resources/identificationlink.d.ts","./node_modules/@clerk/backend/dist/api/resources/verification.d.ts","./node_modules/@clerk/backend/dist/api/resources/emailaddress.d.ts","./node_modules/@clerk/backend/dist/api/resources/externalaccount.d.ts","./node_modules/@clerk/backend/dist/api/resources/idpoauthaccesstoken.d.ts","./node_modules/@clerk/backend/dist/api/resources/instance.d.ts","./node_modules/@clerk/backend/dist/api/resources/instancerestrictions.d.ts","./node_modules/@clerk/backend/dist/api/resources/instancesettings.d.ts","./node_modules/@clerk/backend/dist/api/resources/invitation.d.ts","./node_modules/@clerk/backend/dist/api/resources/machine.d.ts","./node_modules/@clerk/backend/dist/api/resources/machinescope.d.ts","./node_modules/@clerk/backend/dist/api/resources/machinesecretkey.d.ts","./node_modules/@clerk/backend/dist/api/resources/m2mtoken.d.ts","./node_modules/@clerk/backend/dist/api/resources/jwttemplate.d.ts","./node_modules/@clerk/backend/dist/api/resources/oauthaccesstoken.d.ts","./node_modules/@clerk/backend/dist/api/resources/oauthapplication.d.ts","./node_modules/@clerk/backend/dist/api/resources/organization.d.ts","./node_modules/@clerk/backend/dist/api/resources/organizationdomain.d.ts","./node_modules/@clerk/backend/dist/api/resources/organizationinvitation.d.ts","./node_modules/@clerk/backend/dist/api/resources/organizationmembership.d.ts","./node_modules/@clerk/backend/dist/api/resources/organizationsettings.d.ts","./node_modules/@clerk/backend/dist/api/resources/phonenumber.d.ts","./node_modules/@clerk/backend/dist/api/resources/proxycheck.d.ts","./node_modules/@clerk/backend/dist/api/resources/redirecturl.d.ts","./node_modules/@clerk/backend/dist/api/resources/samlconnection.d.ts","./node_modules/@clerk/backend/dist/api/resources/samlaccount.d.ts","./node_modules/@clerk/backend/dist/api/resources/signintokens.d.ts","./node_modules/@clerk/backend/dist/api/resources/signupattempt.d.ts","./node_modules/@clerk/backend/dist/api/resources/smsmessage.d.ts","./node_modules/@clerk/backend/dist/api/resources/testingtoken.d.ts","./node_modules/@clerk/backend/dist/api/resources/token.d.ts","./node_modules/@clerk/backend/dist/api/resources/web3wallet.d.ts","./node_modules/@clerk/backend/dist/api/resources/user.d.ts","./node_modules/@clerk/backend/dist/api/resources/waitlistentry.d.ts","./node_modules/@clerk/backend/dist/api/resources/feature.d.ts","./node_modules/@clerk/backend/dist/api/resources/commerceplan.d.ts","./node_modules/@clerk/backend/dist/api/resources/commercesubscriptionitem.d.ts","./node_modules/@clerk/backend/dist/api/resources/commercesubscription.d.ts","./node_modules/@clerk/backend/dist/api/resources/webhooks.d.ts","./node_modules/@clerk/backend/dist/api/resources/index.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/emailaddressapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/idpoauthaccesstokenapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/instanceapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/invitationapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/util-types.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/machineapi.d.ts","./node_modules/@clerk/shared/dist/runtime/error--jk51521.d.mts","./node_modules/@clerk/shared/dist/runtime/error.d.mts","./node_modules/@clerk/backend/dist/errors.d.ts","./node_modules/@clerk/backend/dist/tokens/tokentypes.d.ts","./node_modules/@clerk/backend/dist/jwt/types.d.ts","./node_modules/@clerk/backend/dist/tokens/keys.d.ts","./node_modules/@clerk/backend/dist/jwt/verifymachinejwt.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/m2mtokenapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/jwksapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/jwttemplatesapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/organizationapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/oauthapplicationsapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/phonenumberapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/proxycheckapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/redirecturlapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/samlconnectionapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/sessionapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/signintokenapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/signupapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/testingtokenapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/userapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/waitlistentryapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/webhookapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/index.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/billingapi.d.ts","./node_modules/@clerk/backend/dist/api/factory.d.ts","./node_modules/@clerk/backend/dist/api/index.d.ts","./node_modules/@clerk/backend/dist/tokens/clerkurl.d.ts","./node_modules/@clerk/backend/dist/tokens/clerkrequest.d.ts","./node_modules/@clerk/shared/dist/runtime/pathtoregexp.d.mts","./node_modules/@clerk/backend/dist/tokens/authobjects.d.ts","./node_modules/@clerk/backend/dist/jwt/verifyjwt.d.ts","./node_modules/@clerk/backend/dist/jwt/signjwt.d.ts","./node_modules/@clerk/backend/dist/jwt/index.d.ts","./node_modules/@clerk/backend/dist/tokens/verify.d.ts","./node_modules/@clerk/backend/dist/tokens/types.d.ts","./node_modules/@clerk/backend/dist/tokens/authenticatecontext.d.ts","./node_modules/@clerk/backend/dist/tokens/authstatus.d.ts","./node_modules/@clerk/backend/dist/tokens/request.d.ts","./node_modules/@clerk/backend/dist/tokens/factory.d.ts","./node_modules/@clerk/backend/dist/index.d.ts","./node_modules/@clerk/nextjs/dist/types/server/clerkclient.d.ts","./node_modules/@clerk/backend/dist/constants.d.ts","./node_modules/@clerk/backend/dist/createredirect.d.ts","./node_modules/@clerk/backend/dist/util/decorateobjectwithresources.d.ts","./node_modules/@clerk/shared/dist/runtime/authorization-errors.d.mts","./node_modules/@clerk/backend/dist/tokens/machine.d.ts","./node_modules/@clerk/backend/dist/internal.d.ts","./node_modules/@clerk/nextjs/dist/types/utils/debuglogger.d.ts","./node_modules/@clerk/nextjs/dist/types/server/types.d.ts","./node_modules/@clerk/nextjs/dist/types/server/data/getauthdatafromrequest.d.ts","./node_modules/@clerk/nextjs/dist/types/server/creategetauth.d.ts","./node_modules/@clerk/nextjs/dist/types/server/buildclerkprops.d.ts","./node_modules/@clerk/nextjs/dist/types/server/protect.d.ts","./node_modules/@clerk/nextjs/dist/types/app-router/server/auth.d.ts","./node_modules/@clerk/nextjs/dist/types/app-router/server/currentuser.d.ts","./node_modules/@clerk/nextjs/dist/types/server/content-security-policy.d.ts","./node_modules/@clerk/nextjs/dist/types/server/clerkmiddleware.d.ts","./node_modules/@clerk/nextjs/dist/types/server/index.d.ts","./src/middleware.ts","./src/validators/approvalschema.ts","./src/types/approval.ts","./src/repositories/interfaces/iapprovalrepository.ts","./src/lib/config/env.ts","./src/lib/prisma.ts","./src/lib/user.ts","./src/repositories/approvalrepository.ts","./src/repositories/interfaces/iapprovalhistoryrepository.ts","./src/repositories/approvalhistoryrepository.ts","./src/repositories/interfaces/iauditlogrepository.ts","./src/repositories/auditlogrepository.ts","./src/types/execution.ts","./src/repositories/interfaces/iexecutionrepository.ts","./src/modules/execution/executor/errors.ts","./src/lib/api/payloadvalidation.ts","./src/repositories/executionrepository.ts","./node_modules/pino-std-serializers/index.d.ts","./node_modules/sonic-boom/types/index.d.ts","./node_modules/pino/pino.d.ts","./src/lib/logger/index.ts","./src/modules/approval/approval-engine/approvalengine.ts","./src/types/graph.ts","./src/types/skill.ts","./src/modules/execution/state/agentstate.ts","./src/modules/approval/approval-policy/approvalpolicy.ts","./src/modules/approval/approval-history/approvalhistoryservice.ts","./src/modules/approval/index.ts","./src/lib/api/dates.ts","./src/lib/api/handlers.ts","./src/lib/api/ratelimit.ts","./src/app/api/approvals/route.ts","./src/app/api/approvals/[id]/cancel/route.ts","./src/types/observability.ts","./src/modules/audit/auditservice.ts","./src/modules/audit/index.ts","./src/app/api/audit/route.ts","./src/providers/llm/llmprovider.ts","./src/providers/llm/http.ts","./src/providers/llm/structuredoutput.ts","./src/providers/llm/groqprovider.ts","./src/providers/llm/openrouterprovider.ts","./src/providers/llm/llmrouter.ts","./src/providers/llm/modellists.ts","./src/providers/llm/index.ts","./src/app/api/canvas/copilot/route.ts","./src/app/api/canvas/optimize-prompt/route.ts","./src/repositories/interfaces/iskillrepository.ts","./src/repositories/skillrepository.ts","./src/modules/execution/executor/validation.ts","./src/modules/graph/previewstore.ts","./src/app/api/canvas/preview/route.ts","./src/modules/graph/eventbus.ts","./src/repositories/interfaces/iexecutionlogrepository.ts","./src/types/tool.ts","./src/modules/tools/interfaces/tool.ts","./src/modules/tools/categories.ts","./src/modules/tools/validators/calculator.ts","./src/modules/tools/calculator/calculatortool.ts","./src/modules/tools/validators/documentsearch.ts","./src/modules/tools/document-search/documentsearchtool.ts","./src/modules/tools/validators/recordlookup.ts","./src/modules/tools/record-lookup/recordlookuptool.ts","./src/modules/tools/validators/mocktaskcreator.ts","./src/modules/tools/mock-task/mocktaskcreatortool.ts","./src/modules/tools/validators/aiextraction.ts","./src/modules/tools/ai-extraction/aiextractiontool.ts","./src/modules/tools/validators/aiclassification.ts","./src/modules/tools/ai-classification/aiclassificationtool.ts","./src/modules/tools/validators/deterministiccondition.ts","./src/modules/tools/deterministic-condition/conditiontool.ts","./src/modules/tools/validators/finalreport.ts","./src/modules/tools/final-report/finalreporttool.ts","./src/modules/tools/validators/codeexecution.ts","./src/modules/tools/code-execution/sandboxrunner.ts","./src/modules/tools/code-execution/codeexecutiontool.ts","./src/modules/tools/builtins.ts","./src/modules/tools/errors.ts","./src/modules/tools/registry/toolregistry.ts","./src/modules/tools/toolcatalog.ts","./src/modules/tools/index.ts","./src/modules/execution/tool-registry/permissionchecker.ts","./src/modules/graph/expression.ts","./src/types/mcp.ts","./src/modules/mcp/protocol.ts","./src/modules/mcp/tooladapter.ts","./src/modules/graph/graphinterpreter.ts","./src/repositories/executionlogrepository.ts","./src/repositories/interfaces/imcpserverrepository.ts","./src/services/interfaces/imcpclientservice.ts","./src/modules/mcp/circuitbreaker.ts","./node_modules/zod/v4/core/standard-schema.d.cts","./node_modules/zod/v4/core/util.d.cts","./node_modules/zod/v4/core/versions.d.cts","./node_modules/zod/v4/core/schemas.d.cts","./node_modules/zod/v4/core/checks.d.cts","./node_modules/zod/v4/core/errors.d.cts","./node_modules/zod/v4/core/core.d.cts","./node_modules/zod/v4/core/parse.d.cts","./node_modules/zod/v4/core/regexes.d.cts","./node_modules/zod/v4/locales/ar.d.cts","./node_modules/zod/v4/locales/az.d.cts","./node_modules/zod/v4/locales/be.d.cts","./node_modules/zod/v4/locales/ca.d.cts","./node_modules/zod/v4/locales/cs.d.cts","./node_modules/zod/v4/locales/de.d.cts","./node_modules/zod/v4/locales/en.d.cts","./node_modules/zod/v4/locales/eo.d.cts","./node_modules/zod/v4/locales/es.d.cts","./node_modules/zod/v4/locales/fa.d.cts","./node_modules/zod/v4/locales/fi.d.cts","./node_modules/zod/v4/locales/fr.d.cts","./node_modules/zod/v4/locales/fr-ca.d.cts","./node_modules/zod/v4/locales/he.d.cts","./node_modules/zod/v4/locales/hu.d.cts","./node_modules/zod/v4/locales/id.d.cts","./node_modules/zod/v4/locales/it.d.cts","./node_modules/zod/v4/locales/ja.d.cts","./node_modules/zod/v4/locales/kh.d.cts","./node_modules/zod/v4/locales/ko.d.cts","./node_modules/zod/v4/locales/mk.d.cts","./node_modules/zod/v4/locales/ms.d.cts","./node_modules/zod/v4/locales/nl.d.cts","./node_modules/zod/v4/locales/no.d.cts","./node_modules/zod/v4/locales/ota.d.cts","./node_modules/zod/v4/locales/ps.d.cts","./node_modules/zod/v4/locales/pl.d.cts","./node_modules/zod/v4/locales/pt.d.cts","./node_modules/zod/v4/locales/ru.d.cts","./node_modules/zod/v4/locales/sl.d.cts","./node_modules/zod/v4/locales/sv.d.cts","./node_modules/zod/v4/locales/ta.d.cts","./node_modules/zod/v4/locales/th.d.cts","./node_modules/zod/v4/locales/tr.d.cts","./node_modules/zod/v4/locales/ua.d.cts","./node_modules/zod/v4/locales/ur.d.cts","./node_modules/zod/v4/locales/vi.d.cts","./node_modules/zod/v4/locales/zh-cn.d.cts","./node_modules/zod/v4/locales/zh-tw.d.cts","./node_modules/zod/v4/locales/index.d.cts","./node_modules/zod/v4/core/registries.d.cts","./node_modules/zod/v4/core/doc.d.cts","./node_modules/zod/v4/core/function.d.cts","./node_modules/zod/v4/core/api.d.cts","./node_modules/zod/v4/core/json-schema.d.cts","./node_modules/zod/v4/core/to-json-schema.d.cts","./node_modules/zod/v4/core/index.d.cts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.d.ts","./node_modules/zod/v4/classic/errors.d.cts","./node_modules/zod/v4/classic/parse.d.cts","./node_modules/zod/v4/classic/schemas.d.cts","./node_modules/zod/v4/classic/checks.d.cts","./node_modules/zod/v4/classic/compat.d.cts","./node_modules/zod/v4/classic/iso.d.cts","./node_modules/zod/v4/classic/coerce.d.cts","./node_modules/zod/v4/classic/external.d.cts","./node_modules/zod/v4/classic/index.d.cts","./node_modules/zod/v4/index.d.cts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/types.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/types.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/types.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/shared/responsemessage.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.d.ts","./node_modules/json-schema-typed/draft_2020_12.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/validation/types.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/client.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamablehttp.d.ts","./node_modules/eventsource/dist/index.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/client/sse.d.ts","./src/modules/mcp/connection.ts","./src/modules/mcp/presets.ts","./src/modules/mcp/index.ts","./src/modules/mcp/tooldiff.ts","./src/services/mcpclientservice.ts","./src/repositories/mcpserverrepository.ts","./src/types/openapi.ts","./src/repositories/interfaces/iopenapirepository.ts","./src/modules/openapi/schemaconverter.ts","./src/modules/openapi/dynamictool.ts","./src/services/interfaces/iopenapiservice.ts","./src/modules/openapi/parser.ts","./src/services/openapiservice.ts","./src/repositories/openapirepository.ts","./src/app/api/canvas/preview/[id]/stream/route.ts","./src/modules/comparison/versioncomparison.ts","./src/modules/comparison/index.ts","./src/app/api/compare/route.ts","./src/validators/executionschema.ts","./src/services/interfaces/iexecutionservice.ts","./node_modules/@langchain/langgraph-checkpoint/dist/serde/base.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/types.d.ts","./node_modules/@langchain/core/dist/load/map_keys.d.ts","./node_modules/@langchain/core/dist/load/serializable.d.ts","./node_modules/@standard-schema/spec/dist/index.d.ts","./node_modules/@langchain/core/dist/utils/standard_schema.d.ts","./node_modules/@langchain/core/dist/utils/types/zod.d.ts","./node_modules/@langchain/core/dist/agents.d.ts","./node_modules/@langchain/core/dist/messages/content/base.d.ts","./node_modules/@langchain/core/dist/messages/content/tools.d.ts","./node_modules/@langchain/core/dist/messages/content/multimodal.d.ts","./node_modules/@langchain/core/dist/messages/content/data.d.ts","./node_modules/@langchain/core/dist/types/type-utils.d.ts","./node_modules/@langchain/core/dist/messages/content/index.d.ts","./node_modules/@langchain/core/dist/messages/format.d.ts","./node_modules/@langchain/core/dist/messages/metadata.d.ts","./node_modules/@langchain/core/dist/messages/tool.d.ts","./node_modules/@langchain/core/dist/messages/ai.d.ts","./node_modules/@langchain/core/dist/messages/chat.d.ts","./node_modules/@langchain/core/dist/messages/function.d.ts","./node_modules/@langchain/core/dist/messages/human.d.ts","./node_modules/@langchain/core/dist/messages/system.d.ts","./node_modules/@langchain/core/dist/messages/utils.d.ts","./node_modules/@langchain/core/dist/messages/message.d.ts","./node_modules/@langchain/core/dist/messages/base.d.ts","./node_modules/@langchain/core/dist/outputs.d.ts","./node_modules/@langchain/core/dist/utils/types/index.d.ts","./node_modules/@langchain/core/dist/language_models/event.d.ts","./node_modules/@langchain/core/dist/documents/document.d.ts","./node_modules/@langchain/core/dist/callbacks/base.d.ts","./node_modules/@langchain/core/dist/callbacks/manager.d.ts","./node_modules/@langchain/core/dist/types/_internal.d.ts","./node_modules/@langchain/core/dist/runnables/types.d.ts","./node_modules/@langchain/core/dist/runnables/config.d.ts","./node_modules/langsmith/dist/experimental/otel/types.d.ts","./node_modules/eventemitter3/index.d.ts","./node_modules/p-queue/dist/queue.d.ts","./node_modules/p-queue/dist/options.d.ts","./node_modules/p-queue/dist/priority-queue.d.ts","./node_modules/p-queue/dist/index.d.ts","./node_modules/langsmith/dist/utils/p-queue.d.ts","./node_modules/langsmith/dist/utils/async_caller.d.ts","./node_modules/langsmith/dist/schemas.d.ts","./node_modules/langsmith/dist/utils/env.d.ts","./node_modules/langsmith/dist/evaluation/evaluator.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/builtin-types.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/types.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/headers.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/request-options.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/utils/log.d.ts","./node_modules/langsmith/dist/_openapi_client/core/error.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/parse.d.ts","./node_modules/langsmith/dist/_openapi_client/core/api-promise.d.ts","./node_modules/langsmith/dist/_openapi_client/core/pagination.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/uploads.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/to-file.d.ts","./node_modules/langsmith/dist/_openapi_client/core/uploads.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/annotation-queues/items.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/annotation-queues/runs.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/runs/share.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/runs/runs.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/datasets/experiment-runs.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/datasets/datasets.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/annotation-queues/annotation-queues.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/info.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/issues.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/public/runs.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/public/public.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/sandboxes/boxes.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/sandboxes/registries.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/sandboxes/snapshots.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/sandboxes/sandboxes.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/threads.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/traces.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/index.d.ts","./node_modules/langsmith/dist/_openapi_client/client.d.ts","./node_modules/langsmith/dist/_openapi_client/core/resource.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/online-evaluators.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/runs/index.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/runs.d.ts","./node_modules/langsmith/dist/utils/prompt_cache/index.d.ts","./node_modules/langsmith/dist/utils/profiles.d.ts","./node_modules/langsmith/dist/client.d.ts","./node_modules/langsmith/dist/run_trees.d.ts","./node_modules/langsmith/run_trees.d.ts","./node_modules/langsmith/schemas.d.ts","./node_modules/@langchain/core/dist/tracers/base.d.ts","./node_modules/@langchain/core/dist/utils/stream.d.ts","./node_modules/@langchain/core/dist/tracers/event_stream.d.ts","./node_modules/@langchain/core/dist/utils/fast-json-patch/src/core.d.ts","./node_modules/@langchain/core/dist/tracers/log_stream.d.ts","./node_modules/@langchain/core/dist/runnables/graph.d.ts","./node_modules/langsmith/dist/singletons/constants.d.ts","./node_modules/langsmith/dist/singletons/types.d.ts","./node_modules/langsmith/dist/singletons/traceable.d.ts","./node_modules/langsmith/singletons/traceable.d.ts","./node_modules/@langchain/core/dist/runnables/base.d.ts","./node_modules/@langchain/core/dist/runnables/passthrough.d.ts","./node_modules/@langchain/core/dist/runnables/router.d.ts","./node_modules/@langchain/core/dist/runnables/branch.d.ts","./node_modules/@langchain/core/dist/chat_history.d.ts","./node_modules/@langchain/core/dist/runnables/history.d.ts","./node_modules/@langchain/core/dist/utils/signal.d.ts","./node_modules/@langchain/core/dist/runnables/index.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/base.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/memory.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/id.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/serde/types.d.ts","./node_modules/@langchain/core/dist/utils/async_caller.d.ts","./node_modules/@langchain/core/dist/embeddings.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/store/base.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/store/batch.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/store/memory.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/cache/base.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/cache/memory.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/index.d.ts","./node_modules/@langchain/langgraph/dist/channels/base.d.ts","./node_modules/@langchain/langgraph/dist/pregel/utils/timeout.d.ts","./node_modules/@langchain/langgraph/dist/constants.d.ts","./node_modules/@langchain/langgraph/dist/channels/delta.d.ts","./node_modules/@langchain/langgraph/dist/channels/binop.d.ts","./node_modules/@langchain/langgraph/dist/channels/any_value.d.ts","./node_modules/@langchain/langgraph/dist/channels/last_value.d.ts","./node_modules/@langchain/langgraph/dist/channels/dynamic_barrier_value.d.ts","./node_modules/@langchain/langgraph/dist/channels/ephemeral_value.d.ts","./node_modules/@langchain/langgraph/dist/channels/named_barrier_value.d.ts","./node_modules/@langchain/langgraph/dist/channels/topic.d.ts","./node_modules/@langchain/langgraph/dist/channels/untracked_value.d.ts","./node_modules/@langchain/langgraph/dist/pregel/runtime.d.ts","./node_modules/@langchain/langgraph/dist/pregel/runnable_types.d.ts","./node_modules/@langchain/langgraph/dist/graph/annotation.d.ts","./node_modules/@langchain/langgraph/dist/pregel/utils/index.d.ts","./node_modules/@langchain/langgraph/dist/pregel/read.d.ts","./node_modules/@langchain/core/dist/messages/modifier.d.ts","./node_modules/@langchain/core/dist/utils/js-sha256/hash.d.ts","./node_modules/@langchain/core/dist/utils/hash.d.ts","./node_modules/@langchain/core/dist/caches/index.d.ts","./node_modules/@langchain/core/dist/prompt_values.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/any.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/errormessages.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/array.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/bigint.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/boolean.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/number.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/date.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/enum.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/intersection.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/literal.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/string.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/record.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/map.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/nativeenum.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/never.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/null.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/nullable.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/object.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/set.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/tuple.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/undefined.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/union.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/unknown.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsetypes.d.ts","./node_modules/@langchain/core/dist/language_models/profile.d.ts","./node_modules/js-tiktoken/dist/core-71f59181.d.ts","./node_modules/js-tiktoken/dist/lite.d.ts","./node_modules/@langchain/core/dist/language_models/base.d.ts","./node_modules/@langchain/core/dist/messages/transformers.d.ts","./node_modules/@langchain/core/dist/messages/index.d.ts","./node_modules/@langchain/langgraph/dist/pregel/types.d.ts","./node_modules/@langchain/core/dist/language_models/stream.d.ts","./node_modules/@langchain/protocol/protocol.ts","./node_modules/@langchain/langgraph/dist/stream/types.d.ts","./node_modules/@langchain/langgraph/dist/stream/stream-channel.d.ts","./node_modules/@langchain/langgraph/dist/stream/convert.d.ts","./node_modules/@langchain/langgraph/dist/stream/transformers/types.d.ts","./node_modules/@langchain/langgraph/dist/stream/transformers/lifecycle.d.ts","./node_modules/@langchain/langgraph/dist/stream/transformers/messages.d.ts","./node_modules/@langchain/langgraph/dist/stream/mux.d.ts","./node_modules/@langchain/langgraph/dist/stream/transformers/subgraphs.d.ts","./node_modules/@langchain/langgraph/dist/stream/transformers/values.d.ts","./node_modules/@langchain/langgraph/dist/pregel/stream.d.ts","./node_modules/@langchain/langgraph/dist/stream/run-stream.d.ts","./node_modules/@langchain/langgraph/dist/stream/subscription.d.ts","./node_modules/@langchain/langgraph/dist/stream/index.d.ts","./node_modules/@langchain/langgraph/dist/pregel/algo.d.ts","./node_modules/@langchain/langgraph/dist/utils.d.ts","./node_modules/@langchain/langgraph/dist/pregel/write.d.ts","./node_modules/@langchain/langgraph/dist/pregel/index.d.ts","./node_modules/@langchain/langgraph/dist/errors.d.ts","./node_modules/@langchain/langgraph/dist/state/types.d.ts","./node_modules/@langchain/langgraph/dist/state/values/reduced.d.ts","./node_modules/@langchain/langgraph/dist/state/values/untracked.d.ts","./node_modules/@langchain/langgraph/dist/state/values/delta.d.ts","./node_modules/@cfworker/json-schema/dist/esm/deep-compare-strict.d.ts","./node_modules/@cfworker/json-schema/dist/esm/types.d.ts","./node_modules/@cfworker/json-schema/dist/esm/dereference.d.ts","./node_modules/@cfworker/json-schema/dist/esm/format.d.ts","./node_modules/@cfworker/json-schema/dist/esm/pointer.d.ts","./node_modules/@cfworker/json-schema/dist/esm/ucs2-length.d.ts","./node_modules/@cfworker/json-schema/dist/esm/validate.d.ts","./node_modules/@cfworker/json-schema/dist/esm/validator.d.ts","./node_modules/@cfworker/json-schema/dist/esm/index.d.ts","./node_modules/@langchain/core/dist/utils/json_schema.d.ts","./node_modules/@langchain/langgraph/dist/state/schema.d.ts","./node_modules/@langchain/langgraph/dist/graph/zod/meta.d.ts","./node_modules/@langchain/langgraph/dist/graph/types.d.ts","./node_modules/@langchain/langgraph/dist/graph/graph.d.ts","./node_modules/@langchain/langgraph/dist/interrupt.d.ts","./node_modules/@langchain/langgraph/dist/writer.d.ts","./node_modules/@langchain/langgraph/dist/graph/state.d.ts","./node_modules/@langchain/langgraph/dist/graph/messages_reducer.d.ts","./node_modules/@langchain/langgraph/dist/graph/message.d.ts","./node_modules/@langchain/langgraph/dist/func/types.d.ts","./node_modules/@langchain/langgraph/dist/func/index.d.ts","./node_modules/@langchain/langgraph/dist/graph/messages_annotation.d.ts","./node_modules/@langchain/langgraph/dist/state/adapter.d.ts","./node_modules/@langchain/langgraph/dist/state/prebuilt/messages.d.ts","./node_modules/@langchain/langgraph/dist/pregel/utils/config.d.ts","./node_modules/@langchain/langgraph/dist/web.d.ts","./node_modules/@langchain/langgraph/dist/index.d.ts","./src/modules/execution/graph/agentannotation.ts","./src/modules/execution/planner/planschema.ts","./src/modules/execution/executor/retry.ts","./src/modules/execution/planner/plannerservice.ts","./src/modules/execution/executor/runtime.ts","./src/modules/execution/executor/stepreferences.ts","./src/modules/execution/graph/nodes.ts","./src/modules/execution/graph/buildexecutiongraph.ts","./src/modules/execution/executor/executionengine.ts","./src/modules/execution/executor/cancellation.ts","./src/services/executionservice.ts","./src/modules/timeline/executiontimeline.ts","./src/modules/timeline/index.ts","./src/modules/history/executionhistoryservice.ts","./src/modules/history/index.ts","./src/app/api/executions/route.ts","./src/app/api/executions/[id]/route.ts","./src/app/api/executions/[id]/cancel/route.ts","./src/app/api/executions/[id]/detail/route.ts","./src/app/api/executions/[id]/export/route.ts","./src/app/api/executions/[id]/replay/route.ts","./src/app/api/executions/[id]/resume/route.ts","./src/app/api/executions/[id]/retry/route.ts","./src/app/api/executions/[id]/stream/route.ts","./src/modules/observability/metrics.ts","./src/modules/observability/index.ts","./src/app/api/executions/metrics/route.ts","./src/app/api/health/route.ts","./src/app/api/mcp/arcade/route.ts","./src/app/api/mcp/composio/route.ts","./src/types/agent-studio-registry.ts","./src/lib/fetch-utils.ts","./src/app/api/mcp/compositions/route.ts","./src/types/mcp-directory.ts","./src/app/api/mcp/directory/route.ts","./src/app/api/mcp/directory/github/route.ts","./src/app/api/mcp/directory/health/route.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/shared/uritemplate.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/webstandardstreamablehttp.d.ts","./src/modules/mcp/server.ts","./src/app/api/mcp/messages/route.ts","./src/app/api/mcp/presets/route.ts","./src/app/api/mcp/quality/route.ts","./src/validators/mcpschema.ts","./src/app/api/mcp/servers/route.ts","./src/app/api/mcp/servers/[id]/route.ts","./src/app/api/mcp/servers/[id]/connect/route.ts","./src/app/api/mcp/servers/[id]/disconnect/route.ts","./src/app/api/mcp/servers/[id]/discover/route.ts","./src/app/api/mcp/servers/[id]/health/route.ts","./src/app/api/mcp/servers/[id]/metrics/route.ts","./src/app/api/mcp/servers/[id]/progress/route.ts","./src/app/api/mcp/servers/[id]/prompts/route.ts","./src/app/api/mcp/servers/[id]/resources/route.ts","./src/app/api/mcp/servers/[id]/resources/read/route.ts","./src/app/api/mcp/servers/[id]/sampling/route.ts","./src/app/api/mcp/servers/[id]/test/route.ts","./src/app/api/mcp/servers/batch/route.ts","./src/app/api/mcp/servers/export/route.ts","./src/app/api/mcp/servers/import/route.ts","./src/app/api/mcp/skills-feed/route.ts","./src/app/api/mcp/smithery/route.ts","./src/app/api/mcp/sse/route.ts","./src/services/interfaces/iskillservice.ts","./src/services/skillservice.ts","./src/app/api/mcp/updates/route.ts","./src/app/api/openapi/directory/route.ts","./src/validators/openapischema.ts","./src/app/api/openapi/integrations/route.ts","./src/app/api/openapi/integrations/[id]/route.ts","./src/app/api/openapi/integrations/[id]/test/route.ts","./src/app/api/openapi/parse/route.ts","./src/app/api/openapi/test-raw/route.ts","./src/types/settings.ts","./src/app/api/settings/providers/route.ts","./src/validators/graphschema.ts","./src/validators/skillschema.ts","./src/app/api/skills/route.ts","./src/app/api/skills/[id]/route.ts","./src/app/api/skills/[id]/archive/route.ts","./src/app/api/skills/[id]/duplicate/route.ts","./src/app/api/skills/[id]/publish/route.ts","./src/types/skillpacks.ts","./src/data/skillpacks.ts","./src/app/api/skills/packs/route.ts","./src/app/api/skills/sandbox/route.ts","./src/app/api/skills/synthesize/route.ts","./src/services/vaultservice.ts","./src/app/api/vault/route.ts","./src/app/api/vault/[id]/reveal/route.ts","./src/components/canvas/agentgraphtemplates.ts","./node_modules/@xyflow/system/dist/esm/types/changes.d.ts","./node_modules/@types/d3-selection/index.d.ts","./node_modules/@types/d3-drag/index.d.ts","./node_modules/@types/d3-color/index.d.ts","./node_modules/@types/d3-interpolate/index.d.ts","./node_modules/@types/d3-zoom/index.d.ts","./node_modules/@xyflow/system/dist/esm/types/utils.d.ts","./node_modules/@xyflow/system/dist/esm/utils/types.d.ts","./node_modules/@xyflow/system/dist/esm/types/nodes.d.ts","./node_modules/@xyflow/system/dist/esm/types/handles.d.ts","./node_modules/@xyflow/system/dist/esm/types/panzoom.d.ts","./node_modules/@xyflow/system/dist/esm/types/general.d.ts","./node_modules/@xyflow/system/dist/esm/types/edges.d.ts","./node_modules/@xyflow/system/dist/esm/types/index.d.ts","./node_modules/@xyflow/system/dist/esm/constants.d.ts","./node_modules/@xyflow/system/dist/esm/utils/connections.d.ts","./node_modules/@xyflow/system/dist/esm/utils/dom.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edges/bezier-edge.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edges/straight-edge.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edges/smoothstep-edge.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edges/general.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edges/positions.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edges/index.d.ts","./node_modules/@xyflow/system/dist/esm/utils/graph.d.ts","./node_modules/@xyflow/system/dist/esm/utils/general.d.ts","./node_modules/@xyflow/system/dist/esm/utils/marker.d.ts","./node_modules/@xyflow/system/dist/esm/utils/node-toolbar.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edge-toolbar.d.ts","./node_modules/@xyflow/system/dist/esm/utils/store.d.ts","./node_modules/@xyflow/system/dist/esm/utils/shallow-node-data.d.ts","./node_modules/@xyflow/system/dist/esm/utils/index.d.ts","./node_modules/@xyflow/system/dist/esm/xydrag/xydrag.d.ts","./node_modules/@xyflow/system/dist/esm/xydrag/index.d.ts","./node_modules/@xyflow/system/dist/esm/xyhandle/types.d.ts","./node_modules/@xyflow/system/dist/esm/xyhandle/xyhandle.d.ts","./node_modules/@xyflow/system/dist/esm/xyhandle/index.d.ts","./node_modules/@xyflow/system/dist/esm/xyminimap/index.d.ts","./node_modules/@xyflow/system/dist/esm/xypanzoom/xypanzoom.d.ts","./node_modules/@xyflow/system/dist/esm/xypanzoom/index.d.ts","./node_modules/@xyflow/system/dist/esm/xyresizer/types.d.ts","./node_modules/@xyflow/system/dist/esm/xyresizer/xyresizer.d.ts","./node_modules/@xyflow/system/dist/esm/xyresizer/index.d.ts","./node_modules/@xyflow/system/dist/esm/index.d.ts","./node_modules/@xyflow/react/dist/esm/types/general.d.ts","./node_modules/@xyflow/react/dist/esm/types/nodes.d.ts","./node_modules/@xyflow/react/dist/esm/types/edges.d.ts","./node_modules/@xyflow/react/dist/esm/types/component-props.d.ts","./node_modules/@xyflow/react/dist/esm/types/store.d.ts","./node_modules/@xyflow/react/dist/esm/types/instance.d.ts","./node_modules/@xyflow/react/dist/esm/types/index.d.ts","./node_modules/@xyflow/react/dist/esm/container/reactflow/index.d.ts","./node_modules/@xyflow/react/dist/esm/components/handle/index.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/edgetext.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/straightedge.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/stepedge.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/bezieredge.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/simplebezieredge.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/smoothstepedge.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/baseedge.d.ts","./node_modules/@xyflow/react/dist/esm/components/reactflowprovider/index.d.ts","./node_modules/@xyflow/react/dist/esm/components/panel/index.d.ts","./node_modules/@xyflow/react/dist/esm/components/edgelabelrenderer/index.d.ts","./node_modules/@xyflow/react/dist/esm/components/viewportportal/index.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usereactflow.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useupdatenodeinternals.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usenodes.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useedges.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useviewport.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usekeypress.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usenodesedgesstate.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usestore.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useonviewportchange.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useonselectionchange.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usenodesinitialized.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usehandleconnections.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usenodeconnections.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usenodesdata.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useconnection.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useinternalnode.d.ts","./node_modules/@xyflow/react/dist/esm/contexts/nodeidcontext.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useonnodeschangemiddleware.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useonedgeschangemiddleware.d.ts","./node_modules/@xyflow/react/dist/esm/utils/changes.d.ts","./node_modules/@xyflow/react/dist/esm/utils/general.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/background/types.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/background/background.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/background/index.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/controls/types.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/controls/controls.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/controls/controlbutton.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/controls/index.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/minimap/types.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/minimap/minimap.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/minimap/minimapnode.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/minimap/index.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/noderesizer/types.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/noderesizer/noderesizer.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/noderesizer/noderesizecontrol.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/noderesizer/index.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/nodetoolbar/types.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/nodetoolbar/nodetoolbar.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/nodetoolbar/index.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/edgetoolbar/types.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/edgetoolbar/edgetoolbar.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/edgetoolbar/index.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/index.d.ts","./node_modules/@xyflow/react/dist/esm/utils/edges.d.ts","./node_modules/@xyflow/react/dist/esm/index.d.ts","./node_modules/lucide-react/dist/lucide-react.d.ts","./src/components/canvas/nodetypes.ts","./src/components/canvas/graphutils.ts","./src/components/canvas/autolayout.ts","./node_modules/html-to-image/lib/types.d.ts","./node_modules/html-to-image/lib/index.d.ts","./node_modules/jspdf/types/index.d.ts","./src/components/canvas/exportutils.ts","./src/components/canvas/graphdiff.ts","./src/components/canvas/graphvalidation.ts","./src/components/canvas/subgraphutils.ts","./src/components/canvas/useexecutionstream.ts","./src/components/workflows/workflowtemplates.ts","./src/repositories/interfaces/itooldefinitionrepository.ts","./src/repositories/tooldefinitionrepository.ts","./src/lib/tools.ts","./src/lib/api/skills.ts","./src/lib/api/audit.ts","./src/lib/api/compare.ts","./src/lib/api/executions.ts","./src/modules/execution/llm/providerselector.ts","./src/modules/openapi/index.ts","./src/modules/openapi/presets.ts","./src/services/interfaces/iapprovalservice.ts","./src/services/approvalservice.ts","./src/services/interfaces/iversionservice.ts","./src/services/versionservice.ts","./node_modules/zustand/esm/vanilla.d.mts","./node_modules/zustand/esm/react.d.mts","./node_modules/zustand/esm/index.d.mts","./src/stores/toaststore.ts","./src/types/user.ts","./node_modules/vitest/dist/chunks/worker.d.uzwscv9x.d.ts","./node_modules/vitest/dist/chunks/global.d.mamajcmj.d.ts","./node_modules/vitest/dist/chunks/mocker.d.be_2ls6u.d.ts","./node_modules/vitest/dist/chunks/suite.d.fvehnv49.d.ts","./node_modules/expect-type/dist/utils.d.ts","./node_modules/expect-type/dist/overloads.d.ts","./node_modules/expect-type/dist/branding.d.ts","./node_modules/expect-type/dist/messages.d.ts","./node_modules/expect-type/dist/index.d.ts","./node_modules/vitest/dist/index.d.ts","./tests/unit/config/env.test.ts","./tests/unit/lib/api/dates.test.ts","./tests/unit/modules/canvascopilot.test.ts","./tests/unit/modules/helpers/stubllm.ts","./tests/unit/modules/helpers/fakeexecutionrepo.ts","./tests/unit/modules/helpers/fakeapprovalrepo.ts","./tests/unit/modules/helpers/fakelogrepo.ts","./tests/unit/modules/tools/helpers/maketool.ts","./tests/unit/modules/executionengine.test.ts","./tests/unit/modules/executionservice.test.ts","./tests/unit/modules/graphstate.test.ts","./tests/unit/modules/helpers/fakeskillrepo.ts","./tests/unit/modules/helpers/fakeauditrepo.ts","./tests/unit/modules/observability.test.ts","./tests/unit/modules/permissionchecker.test.ts","./tests/unit/modules/planner.test.ts","./tests/unit/modules/providerselection.test.ts","./tests/unit/modules/retry.test.ts","./tests/unit/modules/approval/approvalengine.test.ts","./tests/unit/modules/execution/stepreferences.test.ts","./tests/unit/modules/graph/expression.test.ts","./tests/unit/modules/graph/graphinterpreter.test.ts","./tests/unit/modules/graph/graphvalidation.test.ts","./tests/unit/modules/mcp/circuitbreaker.test.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/sse.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/streamablehttp.d.ts","./tests/unit/modules/mcp/mcpendtoend.test.ts","./tests/unit/modules/mcp/mcpexecution.test.ts","./tests/unit/modules/mcp/mcpexportimportbatch.test.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/inmemory.d.ts","./tests/unit/modules/mcp/mcpserver.test.ts","./tests/unit/modules/mcp/presets.test.ts","./tests/unit/modules/mcp/protocol.test.ts","./tests/unit/modules/mcp/tooladapter.test.ts","./tests/unit/modules/mcp/tooldiff.test.ts","./tests/unit/modules/openapi/dynamictool.test.ts","./tests/unit/modules/openapi/parser.test.ts","./tests/unit/modules/openapi/schemaconverter.test.ts","./tests/unit/modules/tools/calculator.test.ts","./tests/unit/modules/tools/categories.test.ts","./tests/unit/modules/tools/documentsearch.test.ts","./tests/unit/modules/tools/executionfailure.test.ts","./tests/unit/modules/tools/mocktaskcreator.test.ts","./tests/unit/modules/tools/permissionvalidation.test.ts","./tests/unit/modules/tools/recordlookup.test.ts","./tests/unit/modules/tools/toolregistry.test.ts","./tests/unit/modules/tools/toolsengineintegration.test.ts","./tests/unit/modules/tools/workflowtools.test.ts","./tests/unit/providers/llmrouter.test.ts","./tests/unit/services/approvalservice.test.ts","./tests/unit/services/executionresume.test.ts","./tests/unit/services/openapiservice.test.ts","./tests/unit/services/skillservice.test.ts","./tests/unit/validators/skillschema.test.ts","./src/app/global-error.tsx","./node_modules/next/dist/compiled/@next/font/dist/types.d.ts","./node_modules/next/dist/compiled/@next/font/dist/google/index.d.ts","./node_modules/next/font/google/index.d.ts","./node_modules/next-themes/dist/index.d.ts","./src/components/providers/themeprovider.tsx","./node_modules/@clerk/clerk-react/dist/types-cfoqkf-d.d.mts","./node_modules/@clerk/clerk-react/dist/useauth-bfjxafmb.d.mts","./node_modules/@clerk/shared/dist/runtime/apiurlfrompublishablekey-bma_ob1l.d.mts","./node_modules/@clerk/shared/dist/runtime/browser-cwbluoyn.d.mts","./node_modules/@clerk/shared/dist/runtime/color-diw_cz1u.d.mts","./node_modules/@clerk/shared/dist/runtime/constants-uocjjdve.d.mts","./node_modules/@clerk/shared/dist/runtime/date-digffkoy.d.mts","./node_modules/@clerk/shared/dist/runtime/deprecated-brapxwmg.d.mts","./node_modules/@clerk/shared/dist/runtime/derivestate-jckbhjgp.d.mts","./node_modules/@clerk/shared/dist/runtime/devbrowser-dgngespp.d.mts","./node_modules/@clerk/shared/dist/runtime/file-bghdmp4o.d.mts","./node_modules/@clerk/shared/dist/runtime/getenvvariable-58tqpflg.d.mts","./node_modules/@clerk/shared/dist/runtime/handlevalueorfn-2pqr_dc8.d.mts","./node_modules/@clerk/shared/dist/runtime/index-bq1w5bud.d.mts","./node_modules/@clerk/shared/dist/runtime/isomorphicatob-dqixjqze.d.mts","./node_modules/@clerk/shared/dist/runtime/isomorphicbtoa-cu4s1rfu.d.mts","./node_modules/@clerk/shared/dist/runtime/keys-pey6bawu.d.mts","./node_modules/@clerk/shared/dist/runtime/loadclerkjsscript-btatlhzp.d.mts","./node_modules/@clerk/shared/dist/runtime/loadscript-c6sucpsp.d.mts","./node_modules/@clerk/shared/dist/runtime/localstoragebroadcastchannel-cnmexxpw.d.mts","./node_modules/@clerk/shared/dist/runtime/poller-i92dozmd.d.mts","./node_modules/@clerk/shared/dist/runtime/proxy-ctzll3ae.d.mts","./node_modules/@clerk/shared/dist/runtime/underscore-d90chgge.d.mts","./node_modules/@clerk/shared/dist/runtime/url-ty-8ourg.d.mts","./node_modules/@clerk/shared/dist/runtime/versionselector-btv3m_nv.d.mts","./node_modules/@clerk/shared/dist/runtime/object-cgeef_dm.d.mts","./node_modules/@clerk/shared/dist/runtime/logger-cfssyn6o.d.mts","./node_modules/@clerk/shared/dist/runtime/index-d_rs0fdt.d.mts","./node_modules/@clerk/shared/dist/runtime/netlifycachehandler-dasimv39.d.mts","./node_modules/@clerk/shared/dist/runtime/index-couvmp_q.d.mts","./node_modules/dequal/index.d.ts","./node_modules/@clerk/shared/dist/runtime/react/index.d.mts","./node_modules/@clerk/clerk-react/dist/index.d.mts","./node_modules/@clerk/shared/dist/runtime/loadclerkjsscript.d.mts","./node_modules/@clerk/clerk-react/dist/internal.d.mts","./node_modules/@clerk/nextjs/dist/types/client-boundary/controlcomponents.d.ts","./node_modules/@clerk/nextjs/dist/types/client-boundary/uicomponents.d.ts","./node_modules/@clerk/clerk-react/dist/errors.d.mts","./node_modules/@clerk/nextjs/dist/types/client-boundary/promisifiedauthprovider.d.ts","./node_modules/@clerk/nextjs/dist/types/client-boundary/hooks.d.ts","./node_modules/@clerk/nextjs/dist/types/types.d.ts","./node_modules/@clerk/nextjs/dist/types/app-router/server/clerkprovider.d.ts","./node_modules/@clerk/nextjs/dist/types/app-router/server/controlcomponents.d.ts","./node_modules/@clerk/nextjs/dist/types/components.server.d.ts","./node_modules/@clerk/nextjs/dist/types/index.d.ts","./src/components/providers/clerkdynamicprovider.tsx","./node_modules/@tanstack/query-core/build/modern/_tsup-dts-rollup.d.ts","./node_modules/@tanstack/query-core/build/modern/index.d.ts","./node_modules/@tanstack/react-query/build/modern/_tsup-dts-rollup.d.ts","./node_modules/@tanstack/react-query/build/modern/index.d.ts","./src/components/providers/queryprovider.tsx","./src/components/providers/sidebarcontext.tsx","./src/components/effects/pixelthemetransition.tsx","./src/app/providers.tsx","./src/components/layout/header.tsx","./node_modules/clsx/clsx.d.mts","./src/components/feedback/signoutmodal.tsx","./src/components/layout/sidebar.tsx","./src/components/feedback/toaster.tsx","./src/app/layout.tsx","./src/components/feedback/agentstudiopreloader.tsx","./src/app/loading.tsx","./src/app/not-found.tsx","./src/components/reveal.tsx","./src/components/landing/liveagentcanvasdemo.tsx","./src/components/landing/pixelgridwave.tsx","./src/components/landing/neuralpatterns.tsx","./src/components/landing/footerportfoliowidget.tsx","./src/components/landing/heroauthsection.tsx","./src/app/page.tsx","./src/app/approvals/page.tsx","./src/components/feedback/errorboundary.tsx","./src/app/dashboard/error.tsx","./src/app/dashboard/layout.tsx","./src/components/feedback/skeleton.tsx","./src/app/dashboard/loading.tsx","./src/components/feedback/emptystate.tsx","./src/components/skills/statusbadge.tsx","./src/components/executions/executionstatusbadge.tsx","./src/app/dashboard/page.tsx","./src/app/dashboard/audit/loading.tsx","./src/app/dashboard/audit/page.tsx","./src/app/dashboard/canvas/page.tsx","./src/components/canvas/canvasnodes.tsx","./src/components/canvas/nodepalette.tsx","./src/components/canvas/nodeinspector.tsx","./src/components/canvas/quickconnectsearch.tsx","./src/components/canvas/alignmentbar.tsx","./src/components/canvas/canvascopilot.tsx","./src/components/canvas/exportdialog.tsx","./src/components/canvas/macrolibrary.tsx","./src/components/canvas/debuggerpanel.tsx","./src/components/canvas/collaborationoverlay.tsx","./src/components/canvas/agentgraphcanvas.tsx","./src/components/canvas/graphdiffmodal.tsx","./src/app/dashboard/canvas/[id]/page.tsx","./src/app/dashboard/canvas/[id]/snapshot/page.tsx","./src/app/dashboard/canvas/new/page.tsx","./src/app/dashboard/compare/loading.tsx","./src/app/dashboard/compare/page.tsx","./src/app/dashboard/executions/loading.tsx","./src/app/dashboard/executions/page.tsx","./src/app/dashboard/executions/[id]/loading.tsx","./src/components/executions/executiontimeline.tsx","./src/app/dashboard/executions/[id]/page.tsx","./src/app/dashboard/history/loading.tsx","./src/app/dashboard/history/page.tsx","./src/app/dashboard/review/loading.tsx","./src/app/dashboard/review/page.tsx","./src/app/dashboard/settings/loading.tsx","./src/components/vault/secretvault.tsx","./src/app/dashboard/settings/page.tsx","./src/app/dashboard/skills/loading.tsx","./src/components/workflows/workflowstepchain.tsx","./src/components/feedback/confirmdialog.tsx","./src/components/common/itemicon.tsx","./src/components/mcp/livesandbox.tsx","./src/app/dashboard/skills/marketplace/skillsmarketplace.tsx","./src/app/dashboard/skills/packs/skillpackmarketplace.tsx","./src/app/dashboard/skills/synthesizer/skillsynthesizer.tsx","./src/app/dashboard/skills/page.tsx","./src/app/dashboard/skills/[id]/loading.tsx","./src/app/dashboard/skills/[id]/page.tsx","./src/app/dashboard/skills/[id]/edit/loading.tsx","./node_modules/react-hook-form/dist/constants.d.ts","./node_modules/react-hook-form/dist/utils/createsubject.d.ts","./node_modules/react-hook-form/dist/types/events.d.ts","./node_modules/react-hook-form/dist/types/path/common.d.ts","./node_modules/react-hook-form/dist/types/path/eager.d.ts","./node_modules/react-hook-form/dist/types/path/index.d.ts","./node_modules/react-hook-form/dist/types/fieldarray.d.ts","./node_modules/react-hook-form/dist/types/resolvers.d.ts","./node_modules/react-hook-form/dist/types/form.d.ts","./node_modules/react-hook-form/dist/types/utils.d.ts","./node_modules/react-hook-form/dist/types/fields.d.ts","./node_modules/react-hook-form/dist/types/errors.d.ts","./node_modules/react-hook-form/dist/types/validator.d.ts","./node_modules/react-hook-form/dist/types/controller.d.ts","./node_modules/react-hook-form/dist/types/watch.d.ts","./node_modules/react-hook-form/dist/types/index.d.ts","./node_modules/react-hook-form/dist/controller.d.ts","./node_modules/react-hook-form/dist/fieldarray.d.ts","./node_modules/react-hook-form/dist/form.d.ts","./node_modules/react-hook-form/dist/formstatesubscribe.d.ts","./node_modules/react-hook-form/dist/logic/appenderrors.d.ts","./node_modules/react-hook-form/dist/logic/createformcontrol.d.ts","./node_modules/react-hook-form/dist/logic/index.d.ts","./node_modules/react-hook-form/dist/usecontroller.d.ts","./node_modules/react-hook-form/dist/usefieldarray.d.ts","./node_modules/react-hook-form/dist/useform.d.ts","./node_modules/react-hook-form/dist/useformcontext.d.ts","./node_modules/react-hook-form/dist/useformstate.d.ts","./node_modules/react-hook-form/dist/usewatch.d.ts","./node_modules/react-hook-form/dist/utils/get.d.ts","./node_modules/react-hook-form/dist/utils/set.d.ts","./node_modules/react-hook-form/dist/utils/index.d.ts","./node_modules/react-hook-form/dist/watch.d.ts","./node_modules/react-hook-form/dist/index.d.ts","./node_modules/@hookform/resolvers/zod/dist/types.d.ts","./node_modules/@hookform/resolvers/zod/dist/zod.d.ts","./node_modules/@hookform/resolvers/zod/dist/index.d.ts","./src/components/skills/availablemcptools.tsx","./src/components/skills/skillform.tsx","./src/app/dashboard/skills/[id]/edit/page.tsx","./src/app/dashboard/skills/[id]/versions/loading.tsx","./src/app/dashboard/skills/[id]/versions/page.tsx","./src/app/dashboard/skills/new/loading.tsx","./src/app/dashboard/skills/new/page.tsx","./src/app/dashboard/tools/loading.tsx","./src/app/dashboard/tools/mcp/mcpdirectorybrowser.tsx","./src/components/mcp/toolupdatediffviewer.tsx","./src/app/dashboard/tools/mcp/mcpserverhub.tsx","./src/app/dashboard/tools/openapi/openapiendpointtestermodal.tsx","./src/app/dashboard/tools/openapi/openapiimportmodal.tsx","./src/app/dashboard/tools/openapi/openapidirectorybrowser.tsx","./src/app/dashboard/tools/openapi/openapihub.tsx","./src/app/dashboard/tools/page.tsx","./src/app/dashboard/tools/[name]/loading.tsx","./src/app/dashboard/tools/[name]/page.tsx","./src/app/dashboard/workflows/page.tsx","./src/components/workflows/workflowform.tsx","./src/app/dashboard/workflows/[id]/edit/page.tsx","./src/app/dashboard/workflows/new/page.tsx","./src/app/versions/page.tsx","./src/components/landing/liveexecutionterminal.tsx","./src/components/workflows/workflowcard.tsx","./.next/types/cache-life.d.ts","./.next/types/validator.ts","./.next/types/app/page.ts","./.next/types/app/api/approvals/route.ts","./.next/types/app/api/approvals/[id]/cancel/route.ts","./.next/types/app/api/audit/route.ts","./.next/types/app/api/canvas/copilot/route.ts","./.next/types/app/api/canvas/optimize-prompt/route.ts","./.next/types/app/api/canvas/preview/route.ts","./.next/types/app/api/canvas/preview/[id]/stream/route.ts","./.next/types/app/api/compare/route.ts","./.next/types/app/api/executions/route.ts","./.next/types/app/api/executions/[id]/route.ts","./.next/types/app/api/executions/[id]/cancel/route.ts","./.next/types/app/api/executions/[id]/detail/route.ts","./.next/types/app/api/executions/[id]/export/route.ts","./.next/types/app/api/executions/[id]/replay/route.ts","./.next/types/app/api/executions/[id]/resume/route.ts","./.next/types/app/api/executions/[id]/retry/route.ts","./.next/types/app/api/executions/[id]/stream/route.ts","./.next/types/app/api/executions/metrics/route.ts","./.next/types/app/api/health/route.ts","./.next/types/app/api/mcp/arcade/route.ts","./.next/types/app/api/mcp/composio/route.ts","./.next/types/app/api/mcp/compositions/route.ts","./.next/types/app/api/mcp/directory/route.ts","./.next/types/app/api/mcp/directory/github/route.ts","./.next/types/app/api/mcp/directory/health/route.ts","./.next/types/app/api/mcp/messages/route.ts","./.next/types/app/api/mcp/presets/route.ts","./.next/types/app/api/mcp/quality/route.ts","./.next/types/app/api/mcp/servers/route.ts","./.next/types/app/api/mcp/servers/[id]/route.ts","./.next/types/app/api/mcp/servers/[id]/connect/route.ts","./.next/types/app/api/mcp/servers/[id]/disconnect/route.ts","./.next/types/app/api/mcp/servers/[id]/discover/route.ts","./.next/types/app/api/mcp/servers/[id]/health/route.ts","./.next/types/app/api/mcp/servers/[id]/metrics/route.ts","./.next/types/app/api/mcp/servers/[id]/progress/route.ts","./.next/types/app/api/mcp/servers/[id]/prompts/route.ts","./.next/types/app/api/mcp/servers/[id]/resources/route.ts","./.next/types/app/api/mcp/servers/[id]/resources/read/route.ts","./.next/types/app/api/mcp/servers/[id]/sampling/route.ts","./.next/types/app/api/mcp/servers/[id]/test/route.ts","./.next/types/app/api/mcp/servers/batch/route.ts","./.next/types/app/api/mcp/servers/export/route.ts","./.next/types/app/api/mcp/servers/import/route.ts","./.next/types/app/api/mcp/skills-feed/route.ts","./.next/types/app/api/mcp/smithery/route.ts","./.next/types/app/api/mcp/sse/route.ts","./.next/types/app/api/mcp/updates/route.ts","./.next/types/app/api/openapi/directory/route.ts","./.next/types/app/api/openapi/integrations/route.ts","./.next/types/app/api/openapi/integrations/[id]/route.ts","./.next/types/app/api/openapi/integrations/[id]/test/route.ts","./.next/types/app/api/openapi/parse/route.ts","./.next/types/app/api/openapi/test-raw/route.ts","./.next/types/app/api/settings/providers/route.ts","./.next/types/app/api/skills/route.ts","./.next/types/app/api/skills/[id]/route.ts","./.next/types/app/api/skills/[id]/archive/route.ts","./.next/types/app/api/skills/[id]/duplicate/route.ts","./.next/types/app/api/skills/[id]/publish/route.ts","./.next/types/app/api/skills/packs/route.ts","./.next/types/app/api/skills/sandbox/route.ts","./.next/types/app/api/skills/synthesize/route.ts","./.next/types/app/api/vault/route.ts","./.next/types/app/api/vault/[id]/reveal/route.ts","./.next/types/app/approvals/page.ts","./.next/types/app/dashboard/page.ts","./.next/types/app/dashboard/audit/page.ts","./.next/types/app/dashboard/canvas/page.ts","./.next/types/app/dashboard/canvas/[id]/page.ts","./.next/types/app/dashboard/canvas/[id]/snapshot/page.ts","./.next/types/app/dashboard/canvas/new/page.ts","./.next/types/app/dashboard/compare/page.ts","./.next/types/app/dashboard/executions/page.ts","./.next/types/app/dashboard/executions/[id]/page.ts","./.next/types/app/dashboard/history/page.ts","./.next/types/app/dashboard/review/page.ts","./.next/types/app/dashboard/settings/page.ts","./.next/types/app/dashboard/skills/page.ts","./.next/types/app/dashboard/skills/[id]/page.ts","./.next/types/app/dashboard/skills/[id]/edit/page.ts","./.next/types/app/dashboard/skills/[id]/versions/page.ts","./.next/types/app/dashboard/skills/new/page.ts","./.next/types/app/dashboard/tools/page.ts","./.next/types/app/dashboard/tools/[name]/page.ts","./.next/types/app/dashboard/workflows/page.ts","./.next/types/app/dashboard/workflows/[id]/edit/page.ts","./.next/types/app/dashboard/workflows/new/page.ts","./.next/types/app/versions/page.ts","./node_modules/@types/d3-transition/index.d.ts","./node_modules/@types/json-schema/index.d.ts","./node_modules/@types/json5/index.d.ts","./node_modules/@types/pako/index.d.ts","./node_modules/@types/raf/index.d.ts","./node_modules/@types/trusted-types/lib/index.d.ts","./node_modules/@types/trusted-types/index.d.ts"],"fileIdsList":[[100,149,166,167,496,788],[100,149,166,167,496,787],[100,149,166,167,496,792],[100,149,166,167,496,801],[100,149,166,167,496,802],[100,149,166,167,496,946],[100,149,166,167,496,807],[100,149,166,167,496,949],[100,149,166,167,496,1189],[100,149,166,167,496,1190],[100,149,166,167,496,1191],[100,149,166,167,496,1192],[100,149,166,167,496,1193],[100,149,166,167,496,1194],[100,149,166,167,496,1188],[100,149,166,167,496,1195],[100,149,166,167,496,1198],[100,149,166,167,496,1187],[100,149,166,167,496,1199],[100,149,166,167,496,1200],[100,149,166,167,496,1201],[100,149,166,167,496,1204],[100,149,166,167,496,1207],[100,149,166,167,496,1208],[100,149,166,167,496,1206],[100,149,166,167,496,1216],[100,149,166,167,496,1217],[100,149,166,167,496,1218],[100,149,166,167,496,1222],[100,149,166,167,496,1223],[100,149,166,167,496,1224],[100,149,166,167,496,1225],[100,149,166,167,496,1226],[100,149,166,167,496,1227],[100,149,166,167,496,1228],[100,149,166,167,496,1230],[100,149,166,167,496,1229],[100,149,166,167,496,1221],[100,149,166,167,496,1231],[100,149,166,167,496,1232],[100,149,166,167,496,1233],[100,149,166,167,496,1234],[100,149,166,167,496,1235],[100,149,166,167,496,1220],[100,149,166,167,496,1236],[100,149,166,167,496,1237],[100,149,166,167,496,1238],[100,149,166,167,496,1241],[100,149,166,167,496,1242],[100,149,166,167,496,1245],[100,149,166,167,496,1246],[100,149,166,167,496,1244],[100,149,166,167,496,1247],[100,149,166,167,496,1248],[100,149,166,167,496,1250],[100,149,166,167,496,1255],[100,149,166,167,496,1256],[100,149,166,167,496,1257],[100,149,166,167,496,1254],[100,149,166,167,496,1260],[100,149,166,167,496,1253],[100,149,166,167,496,1261],[100,149,166,167,496,1262],[100,149,166,167,496,1265],[100,149,166,167,496,1264],[100,149,166,167,342,1547],[100,149,166,167,342,1558],[100,149,166,167,342,1572],[100,149,166,167,342,1573],[100,149,166,167,342,1574],[100,149,166,167,342,1559],[100,149,166,167,342,1576],[100,149,166,167,342,1581],[100,149,166,167,342,1578],[100,149,166,167,342,1583],[100,149,166,167,342,1556],[100,149,166,167,342,1585],[100,149,166,167,342,1588],[100,149,166,167,342,1640],[100,149,166,167,342,1599],[100,149,166,167,342,1642],[100,149,166,167,342,1644],[100,149,166,167,342,1597],[100,149,166,167,342,1655],[100,149,166,167,342,1653],[100,149,166,167,342,1658],[100,149,166,167,342,1659],[100,149,166,167,342,1656],[100,149,166,167,342,1546],[100,149,166,167,342,1660],[100,149,166,167,449,450,451,452],[100,149,166,167],[83,100,149,166,167,496,499,787,788,792,801,802,807,946,949,1187,1188,1189,1190,1191,1192,1193,1194,1195,1198,1199,1200,1201,1204,1206,1207,1208,1216,1217,1218,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1241,1242,1244,1245,1246,1247,1248,1250,1253,1254,1255,1256,1257,1260,1261,1262,1264,1265,1536,1546,1547,1550,1556,1558,1559,1572,1573,1574,1576,1578,1581,1583,1585,1588,1597,1599,1640,1642,1644,1653,1655,1656,1658,1659,1660],[100,149,166,167,524],[83,100,149,166,167,500,501],[100,149,166,167,500],[100,149,166,167,611],[100,149,166,167,610],[100,149,166,167,1146],[100,149,166,167,1145,1146,1147,1148,1149,1150,1151,1152],[100,149,166,167,626],[100,149,166,167,627,631],[100,149,166,167,625,627],[100,149,166,167,627,629],[100,149,166,167,620,627,633,634,635],[100,149,166,167,619,627,634,635,637],[100,149,166,167,627],[100,149,166,167,620,627,635,686,687,688],[100,149,166,167,620,627,634,635,640],[100,149,166,167,620,627,635,643,644],[100,149,166,167,627,634,635,647],[100,149,166,167,627,690],[100,149,166,167,627,628,630,632,636,638,639,641,645,648,691,692,693,694,696,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719],[100,149,166,167,627,656,657,671],[100,149,166,167,620,623,627,635,659],[100,149,166,167,624,627],[100,149,166,167,620,627,635,690],[100,149,166,167,619,626,627,635,663,703],[100,149,166,167,620,627,635,660,661,662,695],[100,149,166,167,620,627,635,666,690,695],[100,149,166,167,620,623,627,635,690,695],[100,149,166,167,627,635,674],[100,149,166,167,620,627,635,690,695],[100,149,166,167,620,627,635,642,649,681],[100,149,166,167,627,677],[100,149,166,167,627,678],[100,149,166,167,627,680],[100,149,166,167,620,623,627,634,635,684,695],[100,149,166,167,626,720,721],[100,149,166,167,690,722],[100,149,166,167,620],[100,149,166,167,624],[100,149,166,167,623,624],[100,149,166,167,620,624,642],[100,149,166,167,619,624,685],[100,149,166,167,620,624,687],[100,149,166,167,620,624,686],[100,149,166,167,624,646],[100,149,166,167,624,651,652],[100,149,166,167,624,652],[100,149,166,167,620,624],[100,149,166,167,620,623,624,625,629,631,633,634,637,640,642,643,646,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689],[100,149,166,167,620,623],[100,149,166,167,623,624,652],[100,149,166,167,623,624,690],[100,149,166,167,624,652,675],[100,149,166,167,620,623,624],[100,149,166,167,624,653,654,672,676,682],[100,149,166,167,623,624,659],[100,149,166,167,698],[100,149,166,167,620,622,624,689,690,723,727,731,732,736],[100,149,166,167,700,725,727,731,732,734,735,736,739,740,741,742,743],[100,149,166,167,620,728,729],[100,149,166,167,701],[100,149,166,167,700],[100,149,166,167,620,699,701],[100,149,166,167,619,655,663,699,701,702],[100,149,166,167,725,732],[100,149,166,167,620,700,723,732,733],[100,149,166,167,620,699,700,727,732,733],[100,149,166,167,724],[100,149,166,167,723,732,734,735],[100,149,166,167,700,732],[100,149,166,167,700,732,734],[100,149,166,167,620,700,723,726,727,731],[100,149,166,167,619,699,700,701,702,723,730],[100,149,166,167,723,727],[86,100,149,166,167,619,1477,1478,1508],[86,100,149,166,167,619,698,1477,1478,1510],[86,100,149,166,167,619],[86,100,149,166,167,619,1477],[100,149,166,167,483,737,744,750],[86,100,149,166,167,620,1517],[86,100,149,166,167,620,1509],[100,149,166,167,620,737],[100,149,166,167,1509,1511],[100,149,166,167,1509,1514,1515],[86,100,149,166,167,1509],[100,149,166,167,1518,1519],[100,149,166,167,1512,1513,1516,1520],[100,149,166,167,737,746],[100,149,166,167,737],[100,149,166,167,496,737,744,746,751,753],[100,149,166,167,620,737,744,746,747],[100,149,166,167,620,737,744,745,746],[100,149,166,167,621,737,738,744,748,749,751,752,754],[100,149,166,167,620,737,744],[100,149,166,167,473,496,618,620],[100,149,163,166,167,443,496,500],[100,149,166,167,620,1509],[100,149,166,167,616],[100,149,166,167,616,697],[100,149,166,167,615],[100,149,166,167,616,1494],[100,149,166,167,616,617],[86,100,149,166,167,616,617,697,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507],[100,149,166,167,619],[100,149,166,167,1635,1636],[100,149,166,167,519,1634],[100,149,166,167,1635],[100,149,166,167,968,969,970,971,972,973,975,976,977,1087],[100,149,166,167,954,955,959,976,977,978,979,980],[100,149,166,167,955,959,976,977,978,979,980,981],[100,149,166,167,955,976],[100,149,166,167,1060],[100,149,166,167,957,958,976,977,982,984,1048,1060,1088,1089,1113,1114,1116],[100,149,166,167,965,967],[100,149,166,167,965,967,969,979],[100,149,166,167,954],[100,149,166,167,965,968,975,976],[100,149,166,167,955,965,966,975],[100,149,166,167,975,976],[100,149,166,167,960],[100,149,166,167,960,961,962,963,964],[100,149,166,167,963,965,967,968,969,970,971,972,973,974,975,976,1085,1118],[100,149,166,167,965,967,974],[100,149,166,167,975],[100,149,166,167,976],[100,149,166,167,968,969,970,971,972,973,975,976,1048,1085,1117],[100,149,166,167,968,969,970,971,972,973,975,976],[100,149,166,167,955,972,975,976],[100,149,166,167,955,958,968,982,984,1038,1039,1040,1042,1043,1047],[100,149,166,167,982,984,1048],[100,149,166,167,982,984],[100,149,166,167,984],[100,149,166,167,976,984,1038,1048,1052],[100,149,166,167,984,985,1048,1049,1050,1051,1053,1054],[100,149,166,167,984,1048],[100,149,166,167,984,1039,1048],[100,149,166,167,955,958,982,983],[100,149,166,167,955,959,976,977,978,980,981,1036,1037],[100,149,166,167,981],[100,149,166,167,981,1038,1039,1040,1041],[100,149,166,167,1086],[100,149,166,167,902,956,958,1092,1095,1100,1106,1107,1113,1153],[100,149,166,167,956],[100,149,166,167,983],[100,149,166,167,958],[100,149,166,167,957],[100,149,166,167,1113],[100,149,166,167,1091,1113],[100,149,166,167,1091],[100,149,166,167,1091,1095],[100,149,166,167,1090],[100,149,166,167,1105,1113],[100,149,166,167,1097,1100,1113],[100,149,166,167,1090,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112],[100,149,166,167,952,953,1055],[100,149,166,167,952],[100,149,166,167,1065],[100,149,166,167,952,953,1056,1057,1058,1059,1062,1063,1064,1065,1066],[100,149,166,167,952,953,1055,1056],[100,149,166,167,1061],[100,149,166,167,1062],[100,149,166,167,1068],[100,149,166,167,1055,1067],[100,149,166,167,1068,1070],[100,149,166,167,1067,1068,1070],[100,149,166,167,1067,1069],[100,149,166,167,1070],[100,149,166,167,1067,1069,1070,1074,1076,1083,1084,1139,1164],[100,149,166,167,1081],[100,149,166,167,1068,1070,1072,1074,1081],[100,149,166,167,1043,1055,1067,1068,1070,1081,1082,1084,1120,1123,1137,1139,1140,1157],[100,149,166,167,1055,1119,1161,1162],[100,149,166,167,508,978,1068,1070,1082,1119,1156,1162],[100,149,166,167,1119],[100,149,166,167,978,1067,1068,1069,1070,1081,1082,1083,1123,1155,1156,1157,1158,1159,1160],[100,149,166,167,956,978,1070,1081,1082,1155,1156],[100,149,166,167,978,1068,1070],[100,149,166,167,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1120,1123,1124,1125,1126,1127,1128,1130,1131,1133,1135,1139,1140,1141,1142,1143,1144,1155,1157,1158,1159,1160,1161,1162,1163,1165,1166,1167,1168,1169,1170],[100,149,166,167,982,1055,1067],[100,149,166,167,1039,1042,1043,1055,1067,1068,1070,1081,1083,1084,1120,1123,1133,1136,1138],[100,149,166,167,1055,1069,1083],[100,149,166,167,1055,1067,1080],[100,149,166,167,981,1039,1120],[100,149,166,167,1039,1043,1055,1067,1068,1069,1070,1080,1081,1083,1084,1119,1123],[100,149,166,167,1055,1067,1081],[100,149,166,167,1055,1067,1069],[100,149,166,167,1055,1070,1137],[100,149,166,167,1141],[100,149,166,167,1119,1142,1144,1162],[100,149,166,167,1068,1070,1081,1141,1142,1143,1144,1154],[100,149,166,167,1071,1141],[100,149,166,167,1120,1123],[100,149,166,167,1121,1123,1124,1125,1126,1127,1128,1129,1130,1131,1133,1134],[100,149,166,167,1123,1124,1125],[100,149,166,167,1123,1124,1126,1129,1132],[100,149,166,167,1122,1123],[100,149,166,167,1123,1124,1126],[100,149,166,167,1123,1126],[100,149,166,167,1123,1124,1129],[100,149,166,167,1122,1123,1124],[100,149,166,167,979,1120,1121,1122],[100,149,166,167,982,1055],[100,149,166,167,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1120,1123,1124,1125,1126,1127,1128,1130,1131,1133,1135,1139,1140,1141,1142,1143,1144,1155,1157,1158,1159,1160,1161,1162,1163,1165,1166,1167,1168,1169],[100,149,166,167,916,926,927],[100,149,166,167,903,915,916,920,922,923],[100,149,166,167,915,916,928,930],[100,149,150,166,167,181,915,916],[100,149,166,167,915,916,928],[100,149,166,167,903,915,917,919,920,924],[100,149,166,167,903,915,917,920],[100,149,166,167,903,915,918,1213],[100,149,166,167,903,915,919,920,1210],[100,149,166,167,915],[100,149,166,167,914,915,916],[100,149,166,167,926],[100,149,166,167,903,915,920,922,1209],[100,149,166,167,903,915,916,918,920,1210,1211,1212],[100,149,163,166,167,914,915,916],[100,149,163,166,167,914,915,916,1214],[100,149,166,167,508,902],[100,149,166,167,913],[100,149,166,167,903,914,915,916,918,919],[100,149,166,167,913,914],[100,149,166,167,921],[100,149,166,167,523],[100,149,166,167,612],[100,149,166,167,1523],[86,100,149,166,167,267,1524],[100,149,166,167,1525],[100,149,166,167,595,596],[100,149,166,167,1268,1755],[100,149,166,167,1270],[100,149,166,167,1268,1271,1755],[100,146,147,149,166,167],[100,148,149,166,167],[149,166,167],[100,149,154,166,167,184],[100,149,150,155,160,166,167,169,181,192],[100,149,150,151,160,166,167,169],[95,96,97,100,149,166,167],[100,149,152,166,167,193],[100,149,153,154,161,166,167,170],[100,149,154,166,167,181,189],[100,149,155,157,160,166,167,169],[100,148,149,156,166,167],[100,149,157,158,166,167],[100,149,159,160,166,167],[100,148,149,160,166,167],[100,149,160,161,162,166,167,181,192],[100,149,160,161,162,166,167,176,181,184],[100,141,149,157,160,163,166,167,169,181,192],[100,149,160,161,163,164,166,167,169,181,189,192],[100,149,163,165,166,167,181,189,192],[98,99,100,101,102,103,104,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198],[100,149,160,166,167],[100,149,166,167,168,192],[100,149,157,160,166,167,169,181],[100,149,166,167,170],[100,149,166,167,171],[100,148,149,166,167,172],[100,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198],[100,149,166,167,174],[100,149,166,167,175],[100,149,160,166,167,176,177],[100,149,166,167,176,178,193,195],[100,149,161,166,167],[100,149,160,166,167,181,182,184],[100,149,166,167,183,184],[100,149,166,167,181,182],[100,149,166,167,184],[100,149,166,167,185],[100,146,149,166,167,181,186,192],[100,149,160,166,167,187,188],[100,149,166,167,187,188],[100,149,154,166,167,169,181,189],[100,149,166,167,190],[100,149,166,167,169,191],[100,149,163,166,167,175,192],[100,149,154,166,167,193],[100,149,166,167,181,194],[100,149,166,167,168,195],[100,149,166,167,196],[100,141,149,166,167],[100,141,149,160,162,166,167,172,181,184,192,194,195,197],[100,149,166,167,181,198],[86,90,100,149,166,167,200,201,202,203,204,444,492],[86,100,149,166,167],[86,90,100,149,166,167,200,201,202,203,359,444,492],[86,90,100,149,166,167,200,201,203,204,444,492],[86,100,149,166,167,204,359,360],[86,100,149,166,167,204,359],[86,90,100,149,166,167,201,202,203,204,444,492],[86,90,100,149,166,167,200,202,203,204,444,492],[84,85,100,149,166,167],[100,149,166,167,1760],[100,149,166,167,551,556,557,559],[100,149,166,167,582,583],[100,149,166,167,557,559,576,577,578],[100,149,166,167,557],[100,149,166,167,557,559,576],[100,149,166,167,557,576],[100,149,166,167,589],[100,149,166,167,552,589,590],[100,149,166,167,552,589],[100,149,166,167,552,558],[100,149,166,167,553],[100,149,166,167,552,553,554,556],[100,149,166,167,552],[86,100,149,166,167,267,1351],[100,149,166,167,1351,1352],[100,149,166,167,267,1354],[86,100,149,166,167,267,1354],[100,149,166,167,1354,1355,1356],[86,100,149,166,167,1309,1316],[100,149,166,167,267,1369],[100,149,166,167,1369,1370],[86,100,149,166,167,1309],[100,149,166,167,1353,1357,1361,1365,1368,1371],[100,149,166,167,1358,1359,1360],[100,149,166,167,267,1316,1358],[86,100,149,166,167,267,1358],[100,149,166,167,1362,1363,1364],[86,100,149,166,167,267,1362],[100,149,166,167,267,1362],[100,149,166,167,1366,1367],[100,149,166,167,267,1366],[100,149,166,167,267,1316],[86,100,149,166,167,267,1316],[86,100,149,166,167,267,1309,1316],[86,100,149,166,167,1316],[100,149,166,167,1309,1316],[100,149,166,167,1316],[100,149,166,167,1309],[100,149,166,167,1309,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1372,1373],[100,149,166,167,1310,1311,1312,1313,1314,1315],[86,100,149,166,167,1309,1310],[100,149,166,167,1280],[100,149,166,167,1280,1281,1297,1299,1302,1303,1305,1308],[100,149,166,167,1273],[100,149,166,167,1268,1269,1272,1273,1275,1276,1277,1309,1755],[100,149,166,167,1267,1273,1275,1276,1277,1278,1279],[100,149,166,167,1274,1280],[100,149,166,167,1272,1280],[100,149,166,167,1278,1309],[100,149,166,167,1284,1285,1286,1287,1288],[100,149,166,167,1273,1275,1278,1279,1280],[100,149,166,167,1280,1281],[100,149,166,167,1274,1282,1283,1289,1290,1291,1292,1293,1294,1295,1296],[100,149,166,167,1274,1280,1309],[100,149,166,167,1298],[100,149,166,167,1301],[100,149,166,167,1300],[100,149,166,167,1268,1280,1755],[100,149,166,167,1304],[100,149,166,167,1306,1307],[100,149,166,167,1269],[100,149,166,167,1280,1306],[100,149,166,167,1411,1412],[100,149,166,167,1411,1412,1413,1414],[100,149,166,167,1411,1413],[100,149,166,167,1411],[100,149,166,167,1379],[100,149,166,167,1115],[100,149,166,167,997,998,999,1000,1001,1002,1004,1005,1008,1012,1014,1015,1016,1017,1019,1023,1024,1025,1026,1029],[100,149,166,167,998,1003,1027],[100,149,166,167,1000,1003,1004,1027],[100,149,166,167,1027],[100,149,166,167,1006,1007],[100,149,166,167,1000,1027],[100,149,166,167,997,998,999],[100,149,166,167,997],[100,149,166,167,997,1000,1027],[100,149,166,167,1000,1004,1005,1009,1010,1012,1014,1028],[100,149,166,167,1000,1004,1005,1028],[100,149,166,167,1000,1004,1015,1028],[100,149,166,167,1013,1028],[100,149,166,167,1000,1005,1012,1028],[100,149,166,167,1012,1014,1015,1016,1017,1019,1023,1024,1025,1029],[100,149,166,167,1000,1004,1028],[100,149,166,167,1018,1028],[100,149,166,167,1000,1004,1012,1028],[100,149,166,167,1030],[100,149,166,167,1011,1012],[100,149,166,167,1000,1004,1005,1011,1028],[100,149,166,167,1000,1004,1023,1028],[100,149,166,167,1020,1021,1022,1028],[100,149,166,167,1000,1004,1005,1012,1028],[100,149,166,167,986,993,994,995,996,1014,1015,1019,1023,1024,1025,1029,1031,1032,1033],[100,149,166,167,994,1035],[100,149,166,167,994,1034],[100,149,166,167,1035,1045],[100,149,166,167,1035,1044,1046],[100,149,166,167,992],[100,149,166,167,991],[100,149,166,167,994],[100,149,166,167,1035],[100,149,166,167,1046],[92,100,149,166,167],[100,149,166,167,447],[100,149,166,167,454],[100,149,166,167,208,222,223,224,226,441],[100,149,166,167,208,247,249,251,252,255,441,443],[100,149,166,167,208,212,214,215,216,217,218,430,441,443],[100,149,166,167,441],[100,149,166,167,223,325,411,420,437],[100,149,166,167,208],[100,149,166,167,205,437],[100,149,166,167,259],[100,149,166,167,258,441,443],[100,149,163,166,167,307,325,354,498],[100,149,163,166,167,318,334,420,436],[100,149,163,166,167,372],[100,149,166,167,424],[100,149,166,167,423,424,425],[100,149,166,167,423],[94,100,149,163,166,167,205,208,212,215,219,220,221,223,227,235,236,365,390,421,441,444],[100,149,166,167,208,225,243,247,248,253,254,441,498],[100,149,166,167,225,498],[100,149,166,167,236,243,305,441,498],[100,149,166,167,498],[100,149,166,167,208,225,226,498],[100,149,166,167,250,498],[100,149,166,167,219,422,429],[100,149,166,167,175,267,437],[100,149,166,167,267,437],[86,100,149,166,167,267],[86,100,149,166,167,326],[100,149,166,167,322,370,437,480,481],[100,149,166,167,417,474,475,476,477,479],[100,149,166,167,416],[100,149,166,167,416,417],[100,149,166,167,216,366,367,368],[100,149,166,167,366,369,370],[100,149,166,167,478],[100,149,166,167,366,370],[86,100,149,166,167,209,468],[86,100,149,166,167,192],[86,100,149,166,167,225,295],[86,100,149,166,167,225],[100,149,166,167,293,297],[86,100,149,166,167,294,446],[100,149,166,167,1472],[86,90,100,149,163,166,167,199,200,201,202,203,204,444,490,491],[100,149,163,166,167],[100,149,163,166,167,212,274,366,376,391,411,426,427,441,442,498],[100,149,166,167,235,428],[100,149,166,167,444],[100,149,166,167,207],[86,100,149,166,167,307,321,333,343,345,436],[100,149,166,167,175,307,321,342,343,344,436,497],[100,149,166,167,336,337,338,339,340,341],[100,149,166,167,338],[100,149,166,167,342],[100,149,166,167,265,266,267,269],[86,100,149,166,167,260,261,262,268],[100,149,166,167,265,268],[100,149,166,167,263],[100,149,166,167,264],[86,100,149,166,167,267,294,446],[86,100,149,166,167,267,445,446],[86,100,149,166,167,267,446],[100,149,166,167,391,433],[100,149,166,167,433],[100,149,163,166,167,442,446],[100,149,166,167,330],[100,148,149,166,167,329],[100,149,166,167,237,275,313,315,317,318,319,320,363,366,436,439,442],[100,149,166,167,237,351,366,370],[100,149,166,167,318,436],[86,100,149,166,167,318,327,328,330,331,332,333,334,335,346,347,348,349,350,352,353,436,437,498],[100,149,166,167,312],[100,149,163,166,167,175,237,238,274,289,319,363,364,365,370,391,411,432,441,442,443,444,498],[100,149,166,167,436],[100,148,149,166,167,223,316,319,365,432,434,435,442],[100,149,166,167,318],[100,148,149,166,167,274,279,308,309,310,311,312,313,314,315,317,436,437],[100,149,163,166,167,279,280,308,442,443],[100,149,166,167,223,365,366,391,432,436,442],[100,149,163,166,167,441,443],[100,149,163,166,167,181,439,442,443],[100,149,163,166,167,175,192,205,212,225,237,238,240,275,276,281,286,289,315,319,366,376,378,381,383,386,387,388,389,390,411,431,432,437,439,441,442,443],[100,149,163,166,167,181],[100,149,166,167,208,209,210,212,217,220,225,243,431,439,440,444,446,498],[100,149,163,166,167,181,192,255,257,259,260,261,262,269,498],[100,149,166,167,175,192,205,247,257,285,286,287,288,315,366,381,390,391,397,400,401,411,432,437,439],[100,149,166,167,219,220,235,365,390,432,441],[100,149,163,166,167,192,209,212,315,395,439,441],[100,149,166,167,306],[100,149,163,166,167,398,399,408],[100,149,166,167,439,441],[100,149,166,167,313,316],[100,149,166,167,315,319,431,446],[100,149,163,166,167,175,241,247,288,381,391,397,400,403,439],[100,149,163,166,167,219,235,247,404],[100,149,166,167,208,240,406,431,441],[100,149,163,166,167,192,441],[100,149,163,166,167,225,239,240,241,252,270,405,407,431,441],[94,100,149,166,167,237,319,410,444,446],[100,149,163,166,167,175,192,212,219,227,235,238,275,281,285,286,287,288,289,315,366,378,391,392,394,396,411,431,432,437,438,439,446],[100,149,163,166,167,181,219,397,402,408,439],[100,149,166,167,230,231,232,233,234],[100,149,166,167,276,382],[100,149,166,167,384],[100,149,166,167,382],[100,149,166,167,384,385],[100,149,163,166,167,212,215,216,274,442],[100,149,163,166,167,175,207,209,237,275,289,319,374,375,411,439,443,444,446],[100,149,163,166,167,175,192,211,216,315,375,438,442],[100,149,166,167,308],[100,149,166,167,309],[100,149,166,167,310],[100,149,166,167,437],[100,149,166,167,256,272],[100,149,163,166,167,212,256,275],[100,149,166,167,271,272],[100,149,166,167,273],[100,149,166,167,256,257],[100,149,166,167,256,290],[100,149,166,167,256],[100,149,166,167,276,380,438],[100,149,166,167,379],[100,149,166,167,257,437,438],[100,149,166,167,377,438],[100,149,166,167,257,437],[100,149,166,167,363],[100,149,166,167,212,217,275,304,307,313,315,319,321,324,355,358,362,366,410,431,439,442],[100,149,166,167,298,301,302,303,322,323,370],[86,100,149,166,167,202,203,204,267,356,357],[86,100,149,166,167,202,203,204,267,356,357,361],[100,149,166,167,419],[100,149,166,167,223,280,318,319,330,334,366,410,412,413,414,415,417,418,421,431,436,441],[100,149,166,167,370],[100,149,166,167,374],[100,149,163,166,167,275,291,371,373,376,410,439,444,446],[100,149,166,167,298,299,300,301,302,303,322,323,370,445],[94,100,149,163,166,167,175,192,238,256,257,289,315,319,408,409,411,431,432,441,442,444],[100,149,166,167,280,282,285,432],[100,149,163,166,167,276,441],[100,149,166,167,279,318],[100,149,166,167,278],[100,149,166,167,280,281],[100,149,166,167,277,279,441],[100,149,163,166,167,211,280,282,283,284,441,442],[86,100,149,166,167,366,367,369],[100,149,166,167,242],[86,100,149,166,167,209],[86,100,149,166,167,437],[86,94,100,149,166,167,289,319,444,446],[100,149,166,167,209,468,469],[86,100,149,166,167,297],[86,100,149,166,167,175,192,207,254,292,294,296,446],[100,149,166,167,225,437,442],[100,149,166,167,393,437],[100,149,166,167,366],[86,100,149,161,163,166,167,175,207,243,249,297,444,445],[86,100,149,166,167,200,201,202,203,204,444,492],[86,87,88,89,90,100,149,166,167],[100,149,154,166,167],[100,149,166,167,244,245,246],[100,149,166,167,244],[86,90,100,149,163,165,166,167,175,199,200,201,202,203,204,205,207,238,342,403,441,443,446,492],[100,149,166,167,456],[100,149,166,167,458],[100,149,166,167,460],[100,149,166,167,1473],[100,149,166,167,462],[100,149,166,167,464,465,466],[100,149,166,167,470],[91,93,100,149,166,167,448,453,455,457,459,461,463,467,471,473,483,484,486,496,497,498,499],[100,149,166,167,472],[100,149,166,167,482],[100,149,166,167,294],[100,149,166,167,485],[100,148,149,166,167,280,282,283,285,333,437,487,488,489,492,493,494,495],[100,149,166,167,199],[100,149,166,167,987,988,989,990],[100,149,166,167,988],[100,149,166,167,988,989],[100,149,163,166,167,199],[100,149,160,166,167,197,773,774],[100,149,166,167,520],[100,149,150,161,166,167,181,504,505,508,519],[100,149,166,167,522],[100,149,166,167,521],[100,149,166,167,541],[100,149,166,167,539,541],[100,149,166,167,530,538,539,540,542,544],[100,149,166,167,528],[100,149,166,167,531,536,541,544],[100,149,166,167,527,544],[100,149,166,167,531,532,535,536,537,544],[100,149,166,167,531,532,533,535,536,544],[100,149,166,167,528,529,530,531,532,536,537,538,540,541,542,544],[100,149,166,167,544],[100,149,166,167,526,528,529,530,531,532,533,535,536,537,538,539,540,541,542,543],[100,149,166,167,526,544],[100,149,166,167,531,533,534,536,537,544],[100,149,166,167,535,544],[100,149,166,167,536,537,541,544],[100,149,166,167,529,539],[86,100,149,166,167,1616],[100,149,166,167,1616,1617,1618,1619,1620,1623,1624,1625,1626,1627,1628,1629,1632,1633],[100,149,166,167,1616],[100,149,166,167,1621,1622],[86,100,149,166,167,1613,1616],[100,149,166,167,1610,1611,1613],[100,149,166,167,1606,1609,1611,1613],[100,149,166,167,1610,1613],[86,100,149,166,167,1601,1602,1603,1606,1607,1608,1610,1611,1612,1613],[100,149,166,167,1603,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615],[100,149,166,167,1610],[100,149,166,167,1604,1610,1611],[100,149,166,167,1604,1605],[100,149,166,167,1609,1611,1612],[100,149,166,167,1609],[100,149,166,167,1601,1606,1609,1611,1612],[86,100,149,166,167,1606,1609,1610,1611],[100,149,166,167,1630,1631],[100,149,166,167,565,574,575],[100,149,166,167,564,565],[100,149,166,167,181,199],[100,149,160,166,167,199],[100,149,166,167,546,547],[100,149,166,167,545,548],[100,149,166,167,555],[100,113,117,149,166,167,192],[100,113,149,166,167,181,192],[100,108,149,166,167],[100,110,113,149,166,167,189,192],[100,149,166,167,169,189],[100,108,149,166,167,199],[100,110,113,149,166,167,169,192],[100,105,106,109,112,149,160,166,167,181,192],[100,113,120,149,166,167],[100,105,111,149,166,167],[100,113,134,135,149,166,167],[100,109,113,149,166,167,184,192,199],[100,134,149,166,167,199],[100,107,108,149,166,167,199],[100,113,149,166,167],[100,107,108,109,110,111,112,113,114,115,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,135,136,137,138,139,140,149,166,167],[100,113,128,149,166,167],[100,113,120,121,149,166,167],[100,111,113,121,122,149,166,167],[100,112,149,166,167],[100,105,108,113,149,166,167],[100,113,117,121,122,149,166,167],[100,117,149,166,167],[100,111,113,116,149,166,167,192],[100,105,110,113,120,149,166,167],[100,149,166,167,181],[100,108,113,134,149,166,167,197,199],[100,149,166,167,586,587],[100,149,166,167,586],[100,149,166,167,561],[100,149,160,161,163,164,165,166,167,169,181,189,192,198,199,545,561,562,563,565,566,568,569,570,571,572,573,574,575],[100,149,166,167,561,562,563,567],[100,149,166,167,563],[100,149,166,167,565,575],[100,149,166,167,560,606,1408],[100,149,166,167,579,598,599,1408],[100,149,166,167,552,559,579,591,592,1408],[100,149,166,167,601],[100,149,166,167,580],[100,149,166,167,552,560,579,581,591,600,1408],[100,149,166,167,584],[100,149,152,161,166,167,181,552,557,559,575,579,581,584,585,588,591,593,594,597,600,602,603,605,1408],[100,149,166,167,579,598,599,600,1408],[100,149,166,167,575,604,605],[100,149,166,167,579,581,588,591,593,1408],[100,149,166,167,197,594],[100,149,152,161,166,167,181,552,557,559,575,579,580,581,584,585,588,591,592,593,594,597,598,599,600,601,602,603,604,605,1408],[100,149,152,161,166,167,181,197,551,552,557,559,560,575,579,580,581,584,585,588,591,592,593,594,597,598,599,600,601,602,603,604,605,1407,1408,1409,1410,1415],[100,149,166,167,518],[100,149,166,167,509,510],[100,149,166,167,506,507,509,511,512,517],[100,149,166,167,507,509],[100,149,166,167,517],[100,149,166,167,509],[100,149,166,167,506,507,509,512,513,514,515,516],[100,149,166,167,506,507,508],[100,149,166,167,902],[100,149,166,167,902,906],[100,149,166,167,895,902,904,905,906,907,908,909,910],[100,149,166,167,911],[100,149,166,167,902,904],[100,149,166,167,902,905],[100,149,166,167,848,850,851,852,853],[100,149,166,167,848,850,852,853],[100,149,166,167,848,850,852],[100,149,166,167,848,850,851,853],[100,149,166,167,848,850,853],[100,149,166,167,848,849,850,851,852,853,854,855,895,896,897,898,899,900,901],[100,149,166,167,850,853],[100,149,166,167,847,848,849,851,852,853],[100,149,166,167,850,896,900],[100,149,166,167,850,851,852,853],[100,149,166,167,912],[100,149,166,167,852],[100,149,166,167,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894],[100,149,166,167,1402,1403],[100,149,166,167,1402],[100,149,166,167,613],[100,149,166,167,496,519,755,763,765,772,783,785],[100,149,166,167,496,519,755,757,763,765,767,772,783,785,786],[100,149,166,167,496,755,767,785,789,791],[100,149,166,167,496,778,800],[100,149,166,167,496,800],[100,149,166,167,755,763,772,776,778,800,804,806,808,836,837,842,843,936,937,944,945],[100,149,166,167,496,755,778,804,805,806],[100,149,166,167,496,755,785,804,948],[100,149,166,167,496,755,767,772,785,804,1182],[100,149,166,167,496,755,763,765,767,772,785,804,843,1182,1186],[100,149,166,167,496,755,763,765,767,772,785,786,804,843,936,937,944,945,1182,1186],[100,149,166,167,496,519,755,763,765,767,772,783,785,786,804,936,937,944,945,1182],[100,149,166,167,496,755,763,767,772,785,786,804,936,937,944,945,1182],[100,149,166,167,755,772,808],[100,149,166,167,496,755,772,785,1197],[100,149,166,167,496,755,763,765,767,768,770,772,785,786,804,843,936,937,944,945,950,1182,1186],[100,149,166,167,496],[100,149,166,167,496,755,785],[100,149,166,167,496,755,785,1202,1203],[100,149,166,167,496,755,785,1203],[100,149,166,167,496,755,785,1203,1205],[100,149,166,167,755,760,767,772,804,936,937,1182,1215],[100,149,166,167,496,755,785,933],[100,149,166,167,496,755,785,1202],[100,149,166,167,496,755,785,936,937],[100,149,166,167,755,936,937],[100,149,166,167,496,519,755,785,936,937],[100,149,166,167,496,755,785,936,937,1219],[100,149,166,167,755,785,936,937],[100,149,166,167,496,519,755,785,936,937,1219],[100,149,166,167,496,755,767,776,804,839,935,936,937,1240],[100,149,166,167,496,519,755,785,944,945,1243],[100,149,166,167,496,755,760,785,800,1249],[100,149,166,167,496,755,767,785,804,1240],[100,149,166,167,496,755,767,785,804,1240,1252],[100,149,166,167,496,755,767,776,804,936,937,1240,1252,1258,1259],[100,149,166,167,496,755,767,776,778,804,806,1240,1252],[100,149,166,167,496,755,767,776,778,800,804,937,1240,1252],[100,149,166,167,496,755,776,1263],[100,149,166,167,483],[100,149,166,167,1551],[86,100,149,166,167,1375,1392,1405,1526,1551,1553],[86,100,149,166,167,473,778,1375,1383,1391,1394,1405,1526,1532,1551,1553,1554,1570,1571],[86,100,149,166,167,473,1375,1391,1394,1526,1551,1553,1570],[86,100,149,166,167,473,483,778,1266,1375,1391,1405,1526],[86,100,149,166,167,473,1266,1375,1391,1526,1551,1553],[86,100,149,166,167,789,1375,1391,1393,1526,1532,1551,1553],[100,149,166,167,1548],[86,100,149,166,167,473,483,1184,1375,1394,1405,1526,1532,1551,1553,1555,1580],[86,100,149,166,167,473,483,768,1375,1394,1405,1526,1551,1553,1555],[86,100,149,166,167,473,768,1375,1394,1526,1551,1553,1555],[86,100,149,166,167,473,755,763,767,772,804,1375,1389,1540,1553,1554,1555],[86,100,149,166,167,758,1375,1394,1405,1526,1532,1551,1553],[86,100,149,166,167,1249,1375,1475,1521,1526,1529,1551,1553,1587],[86,100,149,166,167,473,483,1375,1391,1405,1526,1551,1553,1639],[86,100,149,166,167,473,483,1375,1391,1394,1405,1526,1551,1553,1554,1591],[86,100,149,166,167,473,483,1375,1391,1526,1551,1553,1554],[86,100,149,166,167,779,1202,1375,1405,1526,1532,1592,1593],[86,100,149,166,167,473,483,1375,1387,1391,1405,1639],[86,100,149,166,167,1258,1259,1375,1405,1526,1532],[86,100,149,166,167,473,779,1375,1387,1391,1405,1526,1532,1551,1553,1554,1590,1591,1592,1594,1595,1596],[86,100,149,166,167,778,1375,1405,1526,1532],[86,100,149,166,167,473,483,755,768,772,810,836,1375,1390,1532],[86,100,149,166,167,202,203,204,1202,1205,1375,1532,1592],[86,100,149,166,167,839,933,1205,1375,1532,1592,1646,1647],[86,100,149,166,167,938,1375,1532,1592],[86,100,149,166,167,938,1375],[86,100,149,166,167,938,1375,1397,1532,1649,1650,1651],[86,100,149,166,167,938,1375,1532,1649],[86,100,149,166,167,473,772,810,836,1375,1389,1390,1532,1540,1553,1648,1652],[86,100,149,166,167,473,1375,1391,1405,1526,1554,1657],[86,100,149,166,167,1375],[100,149,166,167,500,1474,1530,1531,1534,1535],[86,100,149,166,167,1537],[86,100,149,166,167,473,483,1375,1521],[86,100,149,166,167,459,473,1375,1540,1541,1542,1543,1544,1545],[86,100,149,166,167,1476,1522,1527,1528,1529],[86,100,149,166,167,778,1374,1375,1376,1377,1378,1384,1385,1386,1475,1532,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569],[100,149,166,167,778],[86,100,149,166,167,1374,1375,1377,1378],[100,149,166,167,1377],[86,100,149,166,167,778,1375,1532],[86,100,149,166,167,1374,1375,1376,1377,1532],[86,100,149,166,167,778,1375,1382,1532],[100,149,166,167,778,1380,1381],[86,100,149,166,167,1375,1383],[100,149,166,167,778,1374,1376],[86,100,149,166,167,778,1374,1375,1377],[86,100,149,166,167,778,836,839,1375,1377,1532],[86,100,149,166,167,778,1376],[100,149,166,167,778,1375],[86,100,149,166,167,778,1375,1376,1532],[100,149,166,167,778,1374,1377],[86,100,149,166,167,808],[86,100,149,166,167,1375,1532],[86,100,149,166,167,1475],[86,100,149,166,167,768,1532],[86,100,149,166,167,789,1375,1532],[86,100,149,166,167,1532],[86,100,149,166,167,1375,1405,1532],[86,100,149,166,167,473,1375,1521],[86,100,149,166,167,473,483,1375,1475,1521,1528,1529],[86,100,149,166,167,473,483,1375,1521,1528,1532,1533],[86,100,149,166,167,839,1375,1532],[86,100,149,166,167,1475,1521],[86,100,149,166,167,1526],[86,100,149,166,167,473,839,841,1375,1532],[86,100,149,166,167,519,779,836,1252,1375,1405,1590,1634,1637,1638],[86,100,149,166,167,779,1532],[86,100,149,166,167,473,779,784,1375,1554,1590],[86,100,149,166,167,519,779,836,1252,1375,1405,1532,1590,1634,1637],[100,149,166,167,1258],[100,149,166,167,766,1391],[100,149,166,167,789,1391],[100,149,166,167,768,789,1185,1391],[100,149,166,167,496,776,784],[100,149,166,167,770],[100,149,166,167,779],[100,149,166,167,519],[100,149,166,167,760,775],[100,149,166,167,613,760],[100,149,166,167,810,836,1389],[100,149,166,167,613,761],[100,149,166,167,496,755],[100,149,166,167,758,759,764,769,770,776],[100,149,166,167,758,764],[100,149,166,167,758,779,780],[100,149,166,167,777,781,782],[100,149,166,167,766,789],[100,149,166,167,790],[100,149,166,167,947],[100,149,166,167,779,789,803],[100,149,166,167,759,768,769,770,776,779,780,809,836,837,1175,1176,1179],[100,149,166,167,759,768,769,776,780,809,836,837,1175],[100,149,166,167,770,771,779],[100,149,166,167,768,780,1171],[100,149,166,167,780,1171,1172,1178],[100,149,166,167,770,779,780,836,1174,1176,1177],[100,149,166,167,800],[100,149,166,167,776,779,780,800,1173,1174],[100,149,166,167,768,779],[100,149,166,167,836],[100,149,166,167,759,768,769,770,776,778,779,780,800,804,808,809,836,837,838,841],[100,149,166,167,758,759,764,766,768,769,776,789,803,809,1182,1184],[100,149,166,167,1185],[100,149,166,167,776,839,840,841,915,924,925,929,931],[100,149,166,167,840,841,846,932,933],[100,149,166,167,839],[100,149,166,167,761,776,779,803,841,951,1213,1214],[100,149,166,167,519,810,836,839,840],[100,149,166,167,1196],[100,149,166,167,769,789],[100,149,166,167,810,836,938,940],[100,149,166,167,940,941,943],[100,149,166,167,938],[100,149,166,167,519,841,938],[100,149,166,167,758,768,789],[100,149,166,167,789,1183],[100,149,166,167,811,823],[100,149,166,167,811,821],[100,149,166,167,811,814,816,818,820,822,824,826,828,831],[100,149,166,167,811,813],[100,149,166,167,810],[100,149,166,167,811,829,830],[100,149,150,166,167,193,195],[100,149,166,167,811,825],[100,149,166,167,811,815],[100,149,166,167,811,827],[100,149,166,167,811,812,814,816,818,820,822,824,826,828,831,832,833,834,835],[100,149,166,167,811,819],[100,149,166,167,811,817],[100,149,166,167,776,810,811,812,832,833],[100,149,166,167,810,813,815,817,819,821,823,825,827,829],[100,149,166,167,519,760,793,794,795],[100,149,166,167,793],[100,149,166,167,760,793,796,797,798,799],[100,149,166,167,519,776,793],[100,149,166,167,519,793],[100,149,166,167,613,758,761,764],[100,149,166,167,613,758,759,761,762],[100,149,166,167,613,761,762,766],[100,149,166,167,613,761,768,809],[100,149,166,167,613,761,762,768,769,771],[100,149,166,167,758],[100,149,166,167,768],[100,149,166,167,613,761,762,839,844],[100,149,166,167,613,761,762,938,939],[100,149,166,167,613,761,762,778,779,803],[100,149,166,167,613,761,810,1388],[100,149,166,167,758,759,766,776,1398],[100,149,166,167,759,763,765,766,768,769,770,776,778,779,780,783,800,803,805,809,836,837,842,843,936,942,951,1175,1180,1181],[100,149,166,167,836,839],[100,149,166,167,836,938,941],[100,149,166,167,776,836,839,841,844,845,934,935],[100,149,166,167,776,836,938,939,941,942,943],[100,149,166,167,766,776,779,803,1239],[100,149,154,166,167,761],[100,149,166,167,779,803,1400],[100,149,166,167,1404],[100,149,166,167,519,771,1251],[100,149,166,167,549],[100,149,166,167,760,1416],[100,149,166,167,784,1416],[100,149,166,167,758,770,783,1416],[100,149,166,167,1416],[100,149,166,167,1177,1416],[100,149,166,167,779,836,837,1175,1180,1416,1420,1421,1422,1423,1424],[100,149,166,167,766,803,1180,1182,1416,1421],[100,149,166,167,838,1416],[100,149,166,167,778,779,808,836,837,842,1416,1420,1421,1422,1423],[100,149,166,167,778,1374,1377,1378,1383,1384,1385,1416],[100,149,166,167,779,780,1171,1172,1416],[100,149,166,167,758,759],[100,149,166,167,766],[100,149,166,167,768,769],[100,149,166,167,768,809],[100,149,166,167,779,803],[100,149,166,167,846,1416],[100,149,154,163,166,167,169,519,836,839,844,936,1213,1416,1441,1442],[100,149,166,167,779,836,837,839,841,844,936,1175,1180,1416,1420,1421,1422,1423],[100,149,166,167,839,844,936,1416],[100,149,166,167,768,779,803,924,951,1215,1416,1446],[100,149,166,167,933,1416],[100,149,166,167,840,1416],[100,149,166,167,839,841,1416],[100,149,166,167,839,935,1416],[100,149,166,167,758,768,779,791,948,1182,1184,1186,1197,1416,1421,1422,1423,1428,1429],[100,149,166,167,938,941,1416],[100,149,166,167,943,1416],[100,149,166,167,938,940,1416],[100,149,166,167,836,837,1416,1424],[100,149,166,167,519,779,795,800,1175,1416,1420],[100,149,166,167,800,1395,1416],[100,149,166,167,800,1174,1416],[100,149,166,167,836,1416],[100,149,166,167,836,1416,1424],[100,149,166,167,836,1174,1178,1416,1424],[100,149,166,167,779,836,837,1175,1180,1416,1420,1421,1422,1423],[100,149,166,167,793,798,1416],[100,149,166,167,758,759,766,1399,1416],[100,149,166,167,764,783,1180,1182,1416,1421,1422,1423,1428,1429],[100,149,166,167,836,938,939,944,1416],[100,149,166,167,766,779,803,1240,1416],[100,149,166,167,1252,1416],[100,149,166,167,171,607]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"bca770403f30bce31cf83557a953d07c0d8e63fb349698f553d51263e18694d3","affectsGlobalScope":true},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"814d5c7384f3ca276e9dc4bcfde5545801a3ea0bfae09916b3336774e662fd1b","impliedFormat":1},{"version":"acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","impliedFormat":1},{"version":"d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","impliedFormat":1},{"version":"643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","impliedFormat":1},{"version":"0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","impliedFormat":1},{"version":"05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","impliedFormat":1},{"version":"631eff75b0e35d1b1b31081d55209abc43e16b49426546ab5a9b40bdd40b1f60","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"78dbea00e90d2df8ea3dbef0cc379d95b8be9b71cd6bde4c28728f306811803b","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e1e46d0a9837ee058c100501080c920fa98081ea3956af0374308ba6f22a33e","impliedFormat":1},{"version":"272ca407e0c9068bdc5152552d876e68037ceae3de62e529306403e973dec8e1","impliedFormat":1},{"version":"fa7834c715d5357e4540cee40ce96c3250ddb67a7b879a6b7fa0e86d6696f121","impliedFormat":1},{"version":"22dfb07a7ab15b66ac043829056fe70124844636ae719551812ac631ba04985b","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"0cb167c371eaa8c869f8a7656a7296f2e4fae43b4d8b803a680236b24794e5f9","impliedFormat":1},{"version":"0a839dba0287cc0481ad4beedd48a1c64acf1e212ae865d1315f7007ca215161","impliedFormat":1},{"version":"38dc4655376cd1a4bd6bb3763d92949233e33d38d3dd3cbea7bbf218175a38ef","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"d61e0a64cd175208ac0b83670151a9a6b5916f0d1ffcdc5c29c90b1cebfc5045","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"48a679952eefe4cb776d5a0e1ccba2d3eb53b57448bbb7abc1fcebcbd5440188","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2d14da6ecb49bf828d83948765ec2d3a579d476bbb9645e749610baa6ec880ca","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"0aef708fb4c7a6b915e8305cbfac40cd207b032dbaabe9a01889a5fff3254681","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"ad9bdafb4e7abf14cc53ce7970486a84c87831e62891e5dfe798ddcd55e84701","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"71d3ae6a5e73ca4130762560425e00984ebaff64d5353a3333d1bb7eb86ef336","impliedFormat":1},{"version":"2beff543f6e9a9701df88daeee3cdd70a34b4a1c11cb4c734472195a5cb2af54","impliedFormat":1},{"version":"2e07abf27aa06353d46f4448c0bbac73431f6065eef7113128a5cd804d0c384d","impliedFormat":1},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1},{"version":"66be1299a7a3129ceb488b340c291cf575bebb0e337f92e169dec38231472e34","impliedFormat":1},{"version":"9894dafe342b976d251aac58e616ac6df8db91fb9d98934ff9dd103e9e82578f","impliedFormat":1},{"version":"413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"829b9e6028b29e6a8b1c01ddb713efe59da04d857089298fa79acbdb3cfcfdef","impliedFormat":1},{"version":"24f8562308dd8ba6013120557fa7b44950b619610b2c6cb8784c79f11e3c4f90","impliedFormat":1},{"version":"5f90b8c733a1bda63e42160b15a2301051e83a6f9d5332a59d16eb12f463270d","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"ad0d1d75d129b1c80f911be438d6b61bfa8703930a8ff2be2f0e1f8a91841c64","impliedFormat":1},{"version":"ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"496bbf339f3838c41f164238543e9fe5f1f10659cb30b68903851618464b98ba","impliedFormat":1},{"version":"5178eb4415a172c287c711dc60a619e110c3fd0b7de01ed0627e51a5336aa09c","impliedFormat":1},{"version":"ca6e5264278b53345bc1ce95f42fb0a8b733a09e3d6479c6ccfca55cdc45038c","impliedFormat":1},{"version":"9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","impliedFormat":1},{"version":"fb1d8e814a3eeb5101ca13515e0548e112bd1ff3fb358ece535b93e94adf5a3a","impliedFormat":1},{"version":"ffa495b17a5ef1d0399586b590bd281056cee6ce3583e34f39926f8dcc6ecdb5","impliedFormat":1},{"version":"98b18458acb46072947aabeeeab1e410f047e0cacc972943059ca5500b0a5e95","impliedFormat":1},{"version":"361e2b13c6765d7f85bb7600b48fde782b90c7c41105b7dab1f6e7871071ba20","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"b6db56e4903e9c32e533b78ac85522de734b3d3a8541bf24d256058d464bf04b","impliedFormat":1},{"version":"24daa0366f837d22c94a5c0bad5bf1fd0f6b29e1fae92dc47c3072c3fdb2fbd5","impliedFormat":1},{"version":"570bb5a00836ffad3e4127f6adf581bfc4535737d8ff763a4d6f4cc877e60d98","impliedFormat":1},{"version":"889c00f3d32091841268f0b994beba4dceaa5df7573be12c2c829d7c5fbc232c","impliedFormat":1},{"version":"65f43099ded6073336e697512d9b80f2d4fec3182b7b2316abf712e84104db00","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"acf5a2ac47b59ca07afa9abbd2b31d001bf7448b041927befae2ea5b1951d9f9","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"d71291eff1e19d8762a908ba947e891af44749f3a2cbc5bd2ec4b72f72ea795f","impliedFormat":1},{"version":"c0480e03db4b816dff2682b347c95f2177699525c54e7e6f6aa8ded890b76be7","impliedFormat":1},{"version":"27ab780875bcbb65e09da7496f2ca36288b0c541abaa75c311450a077d54ec15","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"380647d8f3b7f852cca6d154a376dbf8ac620a2f12b936594504a8a852e71d2f","impliedFormat":1},{"version":"208c9af9429dd3c76f5927b971263174aaa4bc7621ddec63f163640cbd3c473c","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"a23185bc5ef590c287c28a91baf280367b50ae4ea40327366ad01f6f4a8edbc5","impliedFormat":1},{"version":"bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","impliedFormat":1},{"version":"002eae065e6960458bda3cf695e578b0d1e2785523476f8a9170b103c709cd4f","impliedFormat":1},{"version":"c83bb0c9c5645a46c68356c2f73fdc9de339ce77f7f45a954f560c7e0b8d5ebb","impliedFormat":1},{"version":"05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","impliedFormat":1},{"version":"72179f9dd22a86deaad4cc3490eb0fe69ee084d503b686985965654013f1391b","impliedFormat":1},{"version":"2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","impliedFormat":1},{"version":"7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","impliedFormat":1},{"version":"c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","impliedFormat":1},{"version":"dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","impliedFormat":1},{"version":"b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","impliedFormat":1},{"version":"6a148329edecbda07c21098639ef4254ef7869fb25a69f58e5d6a8b7b69d4236","impliedFormat":1},{"version":"8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","impliedFormat":1},{"version":"f63ab283a1c8f5c79fabe7ca4ef85f9633339c4f0e822fce6a767f9d59282af2","impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"a54c996c8870ef1728a2c1fa9b8eaec0bf4a8001cd2583c02dd5869289465b10","impliedFormat":1},{"version":"3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"3754982006a3b32c502cff0867ca83584f7a43b1035989ca73603f400de13c96","impliedFormat":1},{"version":"a30ae9bb8a8fa7b90f24b8a0496702063ae4fe75deb27da731ed4a03b2eb6631","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","impliedFormat":1},{"version":"7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","impliedFormat":1},{"version":"413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08","impliedFormat":1},{"version":"06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a","impliedFormat":1},{"version":"50b5bc34ce6b12eccb76214b51aadfa56572aa6cc79c2b9455cdbb3d6c76af1d","impliedFormat":1},{"version":"b7e16ef7f646a50991119b205794ebfd3a4d8f8e0f314981ebbe991639023d0e","impliedFormat":1},{"version":"b838d4c72740eb0afd284bf7575b74c624b105eff2e8c7b4aeead57e7ac320ff","impliedFormat":1},{"version":"a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5","impliedFormat":1},{"version":"e9dd71cf12123419c60dab867d44fbee5c358169f99529121eaef277f5c83531","impliedFormat":1},{"version":"5b6a189ba3a0befa1f5d9cb028eb9eec2af2089c32f04ff50e2411f63d70f25d","impliedFormat":1},{"version":"d6e73f8010935b7b4c7487b6fb13ea197cc610f0965b759bec03a561ccf8423a","impliedFormat":1},{"version":"174f3864e398f3f33f9a446a4f403d55a892aa55328cf6686135dfaf9e171657","impliedFormat":1},{"version":"824c76aec8d8c7e65769688cbee102238c0ef421ed6686f41b2a7d8e7e78a931","impliedFormat":1},{"version":"75b868be3463d5a8cfc0d9396f0a3d973b8c297401d00bfb008a42ab16643f13","impliedFormat":1},{"version":"15a234e5031b19c48a69ccc1607522d6e4b50f57d308ecb7fe863d44cd9f9eb3","impliedFormat":1},{"version":"d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","impliedFormat":1},{"version":"6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","impliedFormat":1},{"version":"0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"4fbd3116e00ed3a6410499924b6403cc9367fdca303e34838129b328058ede40","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","impliedFormat":1},{"version":"6dcf60530c25194a9ee0962230e874ff29d34c59605d8e069a49928759a17e0a","impliedFormat":1},{"version":"7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","impliedFormat":1},{"version":"1a42d2ec31a1fe62fdc51591768695ed4a2dc64c01be113e7ff22890bebb5e3f","impliedFormat":1},{"version":"1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027","impliedFormat":1},{"version":"0c7c947ff881c4274c0800deaa0086971e0bfe51f89a33bd3048eaa3792d4876","affectsGlobalScope":true,"impliedFormat":1},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"15b36126e0089bfef173ab61329e8286ce74af5e809d8a72edcafd0cc049057f","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","impliedFormat":1},{"version":"ad10d4f0517599cdeca7755b930f148804e3e0e5b5a3847adce0f1f71bbccd74","impliedFormat":1},{"version":"1042064ece5bb47d6aba91648fbe0635c17c600ebdf567588b4ca715602f0a9d","impliedFormat":1},{"version":"c49469a5349b3cc1965710b5b0f98ed6c028686aa8450bcb3796728873eb923e","impliedFormat":1},{"version":"4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","impliedFormat":1},{"version":"7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","impliedFormat":1},{"version":"72d63643a657c02d3e51cd99a08b47c9b020a565c55f246907050d3c8a5e77fb","impliedFormat":1},{"version":"1d415445ea58f8033ba199703e55ff7483c52ac6742075b803bd3e7bbe9f5d61","impliedFormat":1},{"version":"d6406c629bb3efc31aedb2de809bef471e475c86c7e67f3ef9b676b5d7e0d6b2","impliedFormat":1},{"version":"27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","impliedFormat":1},{"version":"71d8ba39a9e024d9e4bb922464d18542ed8d2c25ee78efa7890c27213cc6e5d3","impliedFormat":1},{"version":"8c030e515014c10a2b98f9f48408e3ba18023dfd3f56e3312c6c2f3ae1f55a16","impliedFormat":1},{"version":"dafc31e9e8751f437122eb8582b93d477e002839864410ff782504a12f2a550c","impliedFormat":1},{"version":"754498c5208ce3c5134f6eabd49b25cf5e1a042373515718953581636491f3c3","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"f56bdc6884648806d34bc66d31cdb787c4718d04105ce2cd88535db214631f82","impliedFormat":1},{"version":"633d58a237f4bb25ec7d565e4ffa32cecdcee8660ac12189c4351c52557cee9e","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","impliedFormat":1},{"version":"ce791f6ea807560f08065d1af6014581eeb54a05abd73294777a281b6dfd73c2","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"49f95e989b4632c6c2a578cc0078ee19a5831832d79cc59abecf5160ea71abad","impliedFormat":1},{"version":"9666533332f26e8995e4d6fe472bdeec9f15d405693723e6497bf94120c566c8","impliedFormat":1},{"version":"ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","impliedFormat":1},{"version":"796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","impliedFormat":1},{"version":"5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","impliedFormat":1},{"version":"e17cd049a1448de4944800399daa4a64c5db8657cc9be7ef46be66e2a2cd0e7c","impliedFormat":1},{"version":"43fa6ea8714e18adc312b30450b13562949ba2f205a1972a459180fa54471018","impliedFormat":1},{"version":"6e89c2c177347d90916bad67714d0fb473f7e37fb3ce912f4ed521fe2892cd0d","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"4d4927cbee21750904af7acf940c5e3c491b4d5ebc676530211e389dd375607a","impliedFormat":1},{"version":"72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","impliedFormat":1},{"version":"8a97e578a9bc40eb4f1b0ca78f476f2e9154ecbbfd5567ee72943bab37fc156a","impliedFormat":1},{"version":"c857e0aae3f5f444abd791ec81206020fbcc1223e187316677e026d1c1d6fe08","impliedFormat":1},{"version":"ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","impliedFormat":1},{"version":"2d7db1d73456e8c5075387d4240c29a2a900847f9c1bff106a2e490da8fbd457","impliedFormat":1},{"version":"2b15c805f48e4e970f8ec0b1915f22d13ca6212375e8987663e2ef5f0205e832","impliedFormat":1},{"version":"f22d05663d873ee7a600faf78abb67f3f719d32266803440cf11d5db7ac0cab2","impliedFormat":1},{"version":"d93c544ad20197b3976b0716c6d5cd5994e71165985d31dcab6e1f77feb4b8f2","impliedFormat":1},{"version":"35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","impliedFormat":1},{"version":"a8b1c79a833ee148251e88a2553d02ce1641d71d2921cce28e79678f3d8b96aa","impliedFormat":1},{"version":"126d4f950d2bba0bd45b3a86c76554d4126c16339e257e6d2fabf8b6bf1ce00c","impliedFormat":1},{"version":"7e0b7f91c5ab6e33f511efc640d36e6f933510b11be24f98836a20a2dc914c2d","impliedFormat":1},{"version":"045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"2d3cc2211f352f46ea6b7cf2c751c141ffcdf514d6e7ae7ee20b7b6742da313f","impliedFormat":1},{"version":"c75445151ff8b77d9923191efed7203985b1a9e09eccf4b054e7be864e27923d","impliedFormat":1},{"version":"0aedb02516baf3e66b2c1db9fef50666d6ed257edac0f866ea32f1aa05aa474f","impliedFormat":1},{"version":"fa8a8fbf91ee2a4779496225f0312aac6635b0f21aa09cdafa4283fe32d519c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"0e8aef93d79b000deb6ec336b5645c87de167168e184e84521886f9ecc69a4b5","impliedFormat":1},{"version":"c30436b130b6218b7714314dc41d3f459590db4bdf099eecd51cb1bda32109a8","impliedFormat":1},{"version":"20fa37b636fdcc1746ea0738f733d0aed17890d1cd7cb1b2f37010222c23f13e","impliedFormat":1},{"version":"d90b9f1520366d713a73bd30c5a9eb0040d0fb6076aff370796bc776fd705943","impliedFormat":1},{"version":"bc03c3c352f689e38c0ddd50c39b1e65d59273991bfc8858a9e3c0ebb79c023b","impliedFormat":1},{"version":"19df3488557c2fc9b4d8f0bac0fd20fb59aa19dec67c81f93813951a81a867f8","affectsGlobalScope":true,"impliedFormat":1},{"version":"b25350193e103ae90423c5418ddb0ad1168dc9c393c9295ef34980b990030617","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef86adb77316505c6b471da1d9b8c9e428867c2566270e8894d4d773a1c4dc2","impliedFormat":1},{"version":"de7052bfee2981443498239a90c04ea5cc07065d5b9bb61b12cb6c84313ad4ef","impliedFormat":1},{"version":"a3e7d932dc9c09daa99141a8e4800fc6c58c625af0d4bbb017773dc36da75426","impliedFormat":1},{"version":"43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","impliedFormat":1},{"version":"4a2edd238d9104eac35b60d727f1123de5062f452b70ed8e0366cb36387dfdfd","impliedFormat":1},{"version":"ca921bf56756cb6fe957f6af693a35251b134fb932dc13f3dfff0bb7106f80b4","impliedFormat":1},{"version":"fee92c97f1aa59eb7098a0cc34ff4df7e6b11bae71526aca84359a2575f313d8","impliedFormat":1},{"version":"0bd0297484aacea217d0b76e55452862da3c5d9e33b24430e0719d1161657225","impliedFormat":1},{"version":"2ab6d334bcbf2aff3acfc4fd8c73ecd82b981d3c3aa47b3f3b89281772286904","impliedFormat":1},{"version":"d07cbc787a997d83f7bde3877fec5fb5b12ce8c1b7047eb792996ed9726b4dde","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"4805f6161c2c8cefb8d3b8bd96a080c0fe8dbc9315f6ad2e53238f9a79e528a6","impliedFormat":1},{"version":"b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","impliedFormat":1},{"version":"f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","impliedFormat":1},{"version":"49179c6a23701c642bd99abe30d996919748014848b738d8e85181fc159685ff","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"45490817629431853543adcb91c0673c25af52a456479588b6486daba34f68bb","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","impliedFormat":1},{"version":"8514c62ce38e58457d967e9e73f128eedc1378115f712b9eef7127f7c88f82ae","impliedFormat":1},{"version":"f1289e05358c546a5b664fbb35a27738954ec2cc6eb4137350353099d154fc62","impliedFormat":1},{"version":"4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","impliedFormat":1},{"version":"1d17ba45cfbe77a9c7e0df92f7d95f3eefd49ee23d1104d0548b215be56945ad","impliedFormat":1},{"version":"f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","impliedFormat":1},{"version":"1d879125d1ec570bf04bc1f362fdbe0cb538315c7ac4bcfcdf0c1e9670846aa6","impliedFormat":1},{"version":"a84d677a6172185d541b1b00ea8e4e04217b64351098f9e5c07403fdec305683","impliedFormat":1},{"version":"46273e8c29816125d0d0b56ce9a849cc77f60f9a5ba627447501d214466f0ff3","impliedFormat":1},{"version":"d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","impliedFormat":1},{"version":"e91f7b1344577a02f051b9b471f33044fef8334a76dc9e1de003d17595a5219b","impliedFormat":1},{"version":"3af3584f79c57853028ef9421ec172539e1fe01853296dc05a9d615ade4ffaf6","impliedFormat":1},{"version":"f82579d87701d639ff4e3930a9b24f4ee13ca74221a9a3a792feb47f01881a9c","impliedFormat":1},{"version":"d7e5d5245a8ba34a274717d085174b2c9827722778129b0081fefd341cca8f55","impliedFormat":1},{"version":"d9d32f94056181c31f553b32ce41d0ef75004912e27450738d57efcd2409c324","impliedFormat":1},{"version":"752513f35f6cff294ffe02d6027c41373adf7bfa35e593dbfd53d95c203635ee","impliedFormat":1},{"version":"6c800b281b9e89e69165fd11536195488de3ff53004e55905e6c0059a2d8591e","impliedFormat":1},{"version":"7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","impliedFormat":1},{"version":"1a7e2ea171726446850ec72f4d1525d547ff7e86724cc9e7eec509725752a758","impliedFormat":1},{"version":"8c901126d73f09ecdea4785e9a187d1ac4e793e07da308009db04a7283ec2f37","impliedFormat":1},{"version":"c1de754ab5f3b0f4036d6893c74a0fc984c7fcb07936086f19bbe2974406775b","impliedFormat":1},{"version":"aab290b8e4b7c399f2c09b957666fc95335eb4522b2dd9ead1bf0cb64da6d6ee","impliedFormat":1},{"version":"94fe3281392e1015b22f39535878610b4fa6f1388dc8d78746be3bc4e4bb8950","impliedFormat":1},{"version":"2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","impliedFormat":1},{"version":"06c25ddfc2242bd06c19f66c9eae4c46d937349a267810f89783680a1d7b5259","impliedFormat":1},{"version":"120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","impliedFormat":1},{"version":"5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"bd4131091b773973ca5d2326c60b789ab1f5e02d8843b3587effe6e1ea7c9d86","impliedFormat":1},{"version":"c7f6485931085bf010fbaf46880a9b9ec1a285ad9dc8c695a9e936f5a48f34b4","impliedFormat":1},{"version":"14f6b927888a1112d662877a5966b05ac1bf7ed25d6c84386db4c23c95a5363b","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"0427df5c06fafc5fe126d14b9becd24160a288deff40e838bfbd92a35f8d0d00","impliedFormat":1},{"version":"90c54a02432d04e4246c87736e53a6a83084357acfeeba7a489c5422b22f5c7a","impliedFormat":1},{"version":"49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","impliedFormat":1},{"version":"bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","impliedFormat":1},{"version":"92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","impliedFormat":1},{"version":"f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","impliedFormat":1},{"version":"83fe880c090afe485a5c02262c0b7cdd76a299a50c48d9bde02be8e908fb4ae6","impliedFormat":1},{"version":"0a372c2d12a259da78e21b25974d2878502f14d89c6d16b97bd9c5017ab1bc12","impliedFormat":1},{"version":"57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","impliedFormat":1},{"version":"6511e4503cf74c469c60aafd6589e4d14d5eb0a25f9bf043dcbecdf65f261972","impliedFormat":1},{"version":"ec1ca97598eda26b7a5e6c8053623acbd88e43be7c4d29c77ccd57abc4c43999","impliedFormat":1},{"version":"efc0e6a64feef102d5edef7525de0c2ac5961821f12ae5038f0d3a8631457e10","impliedFormat":1},{"version":"a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","impliedFormat":1},{"version":"771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","impliedFormat":1},{"version":"232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","impliedFormat":1},{"version":"a47e6d954d22dd9ebb802e7e431b560ed7c581e79fb885e44dc92ed4f60d4c07","impliedFormat":1},{"version":"f019e57d2491c159d47a107fd90219a1734bdd2e25cd8d1db3c8fae5c6b414c4","impliedFormat":1},{"version":"8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","impliedFormat":1},{"version":"d1c9bf292a54312888a77bb19dba5e2503ad803f5393beafd45d78d2f4fe9b48","impliedFormat":1},{"version":"9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","impliedFormat":1},{"version":"d9c46395b3980848a6c4b2f44e986d27d07faee3b3b4b1f214793255b8c64f2a","impliedFormat":1},{"version":"35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","impliedFormat":1},{"version":"1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2","impliedFormat":1},{"version":"3be035da7bee86b4c3abf392e0edaa44fc6e45092995eefe36b39118c8a84068","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f828825d077c2fa0ea606649faeb122749273a353daab23924fe674e98ba44c","impliedFormat":1},{"version":"2896c2e673a5d3bd9b4246811f79486a073cbb03950c3d252fba10003c57411a","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"407a06ba04eede4074eec470ecba2784cbb3bf4e7de56833b097dd90a2aa0651","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","impliedFormat":1},{"version":"5c96bad5f78466785cdad664c056e9e2802d5482ca5f862ed19ba34ffbb7b3a4","impliedFormat":1},{"version":"81d8603ac527e75cfec72bb9391228b58f161c2b33514a9d814c7f3ebd3ef466","impliedFormat":1},{"version":"5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","impliedFormat":1},{"version":"bb0cd7862b72f5eba39909c9889d566e198fcaddf7207c16737d0c2246112678","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","impliedFormat":1},{"version":"a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","impliedFormat":1},{"version":"bad68fd0401eb90fe7da408565c8aee9c7a7021c2577aec92fa1382e8876071a","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"fec01479923e169fb52bd4f668dbeef1d7a7ea6e6d491e15617b46f2cacfa37d","impliedFormat":1},{"version":"8a8fb3097ba52f0ae6530ec6ab34e43e316506eb1d9aa29420a4b1e92a81442d","impliedFormat":1},{"version":"44e09c831fefb6fe59b8e65ad8f68a7ecc0e708d152cfcbe7ba6d6080c31c61e","impliedFormat":1},{"version":"1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","impliedFormat":1},{"version":"4655709c9cb3fd6db2b866cab7c418c40ed9533ce8ea4b66b5f17ec2feea46a9","impliedFormat":1},{"version":"87affad8e2243635d3a191fa72ef896842748d812e973b7510a55c6200b3c2a4","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"3eecb25bb467a948c04874d70452b14ae7edb707660aac17dc053e42f2088b00","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"330896c1a2b9693edd617be24fbf9e5895d6e18c7955d6c08f028f272b37314d","impliedFormat":1},{"version":"1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","impliedFormat":1},{"version":"84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","impliedFormat":1},{"version":"1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","impliedFormat":1},{"version":"30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","impliedFormat":1},{"version":"03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","impliedFormat":1},{"version":"5f0292a40df210ab94b9fb44c8b775c51e96777e14e073900e392b295ca1061b","impliedFormat":1},{"version":"bc9ee0192f056b3d5527bcd78dc3f9e527a9ba2bdc0a2c296fbc9027147df4b2","impliedFormat":1},{"version":"8627ad129bcf56e82adff0ab5951627c993937aa99f5949c33240d690088b803","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"a68d4b3182e8d776cdede7ac9630c209a7bfbb59191f99a52479151816ef9f9e","impliedFormat":99},{"version":"39644b343e4e3d748344af8182111e3bbc594930fff0170256567e13bbdbebb0","impliedFormat":99},{"version":"ed7fd5160b47b0de3b1571c5c5578e8e7e3314e33ae0b8ea85a895774ee64749","impliedFormat":99},{"version":"63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","impliedFormat":1},{"version":"ecbaf0da125974be39c0aac869e403f72f033a4e7fd0d8cd821a8349b4159628","impliedFormat":1},{"version":"4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6","impliedFormat":1},{"version":"ceec3c81b2d81f5e3b855d9367c1d4c664ab5046dff8fd56552df015b7ccbe8f","affectsGlobalScope":true,"impliedFormat":1},{"version":"8fac4a15690b27612d8474fb2fc7cc00388df52d169791b78d1a3645d60b4c8b","affectsGlobalScope":true,"impliedFormat":1},{"version":"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","impliedFormat":1},{"version":"3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","impliedFormat":1},{"version":"1d63055b690a582006435ddd3aa9c03aac16a696fac77ce2ed808f3e5a06efab","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},"f4e8976c19fc926644d72610bf1058bd6bf52add97e46a02bc0b912a751625c0",{"version":"9038e6827786c88c15238a40b3588505065ac452c15b91fca90586951f9b6a0a","signature":"435a1e418e8338be3f39614b96b81a9aa2700bc8c27bc6b98f064ff9ce17c363"},{"version":"b836eed98b79fabb54f1df73252a0ce178b8df4a89794251ade2fa0c5e52b678","impliedFormat":1},{"version":"c9b9179b7291c8562eb0fb781219ddbdcf36149ebd7bd355e5b4a553d6b60b81","impliedFormat":1},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"08b2fae7b0f553ad9f79faec864b179fc58bc172e295a70943e8585dd85f600c","impliedFormat":1},{"version":"f12edf1672a94c578eca32216839604f1e1c16b40a1896198deabf99c882b340","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"4fdb529707247a1a917a4626bfb6a293d52cd8ee57ccf03830ec91d39d606d6d","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"5780b706cece027f0d4444fbb4e1af62dc51e19da7c3d3719f67b22b033859b9","impliedFormat":1},{"version":"6c688250f2b7061cec3a17ab8797671137b653f8c4e81a6df3190cb112a7579a","impliedFormat":1},{"version":"7a8ec10b0834eb7183e4bfcd929838ac77583828e343211bb73676d1e47f6f01","impliedFormat":1},{"version":"138c4489023da880e7219a31b8049ef9cba13d90c5d7cf9538148001d7066f50","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f00324f263189b385c3a9383b1f4dae6237697bcf0801f96aa35c340512d79c","impliedFormat":1},{"version":"ec8997c2e5cea26befc76e7bf990750e96babb16977673a9ff3b5c0575d01e48","impliedFormat":1},{"version":"7c9f0241bcd07c3e7245ca9553142a0bd60837bfb0e56fbe8c3347ff45299660","signature":"50f8a125795ffacae7f3107820dc660812d53c75c1d9c3ac82fd3d4ee1073958"},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"52dcc257df5119fb66d864625112ce5033ac51a4c2afe376a0b299d2f7f76e4a","impliedFormat":1},{"version":"e5bab5f871ef708d52d47b3e5d0aa72a08ee7a152f33931d9a60809711a2a9a3","impliedFormat":1},{"version":"e16dc2a81595736024a206c7d5c8a39bfe2e6039208ef29981d0d95434ba8fcf","impliedFormat":1},{"version":"cc4a4903fb698ca1d961d4c10dce658aa3a479faf40509d526f122b044eaf6a4","impliedFormat":1},{"version":"19ee8416e6473ed6c7adb868fa796b5653cf0fa2a337658e677eaa0d134388c3","impliedFormat":1},{"version":"1328ab4e442614b28cdb3d4b414cf68325c0da0dca07287a338d0654b7a00261","impliedFormat":1},{"version":"a039dc21f045919f3cbee2ec13812cc6cc3eebc99dae4be00973230f468d19a6","impliedFormat":1},{"version":"3fbe57af01460e49dcd29df55d6931e1672bc6f1be0fb073d11410bc16f9037d","impliedFormat":1},{"version":"f760be449e8562ec5c09bb5187e8e1eabf3c113c0c58cddda53ef8c69f3e2131","impliedFormat":1},{"version":"44325ed13294fce6ab825b82947bbeed2611db7dad9d9135260192f375e5a189","impliedFormat":1},{"version":"e392e8fb5b514eafc585601c1d781485aa6dd6a320e75daf1064a4c6918a1b45","impliedFormat":1},{"version":"46e4a36e8ddbdfb4e7330e11c81c970dc8b218611df9183d39c41c5f8c653b55","impliedFormat":1},{"version":"3cc8a3d123b6b232d48d34b51b785f9da8d193f5b5817fa521fcd2f3b9315c55","impliedFormat":1},{"version":"6332f565867cf4a740a70e30f31cefba37ef7cebcf74f22eab8d744fde6d193e","impliedFormat":1},{"version":"2977b7884aedc895a1d0c9c210c7cf3272c29d6959a08a6fa3ff71e0aff08175","impliedFormat":1},{"version":"17f2922d41ddd032830a91371c948cd9ce903b35c95adca72271a54584f19b0b","impliedFormat":1},{"version":"3eed76ede2a1a14d7c9bb0a642041282dcc264811139d3dd275c9fe14efc9840","impliedFormat":1},{"version":"354a7f8e1287d9d6b7561bc97fdd8cbc2f7c1dd79e4cb37b942e8a5cfaff1085","impliedFormat":1},{"version":"8d369483f0c2b9ee388129cfdb6a43bc8112b377e86a41884bd06e19ce04f4c1","impliedFormat":99},{"version":"b558c9a18ea4e6e4157124465c3ef1063e64640da139e67be5edb22f534f2f08","impliedFormat":1},{"version":"01374379f82be05d25c08d2f30779fa4a4c41895a18b93b33f14aeef51768692","impliedFormat":1},{"version":"b0dee183d4e65cf938242efaf3d833c6b645afb35039d058496965014f158141","impliedFormat":1},{"version":"c0bbbf84d3fbd85dd60d040c81e8964cc00e38124a52e9c5dcdedf45fea3f213","impliedFormat":1},{"version":"90ec707b441d1c39fd881c777febe5605c8b8aa6762342d2e1d80094a2b91134","signature":"f65ce75c9085571e6321abf2bf9833709f4897e381f89e9925521833dbb7ab16"},{"version":"04471dc55f802c29791cc75edda8c4dd2a121f71c2401059da61eff83099e8ab","impliedFormat":99},{"version":"5c54a34e3d91727f7ae840bfe4d5d1c9a2f93c54cb7b6063d06ee4a6c3322656","impliedFormat":99},{"version":"db4da53b03596668cf6cc9484834e5de3833b9e7e64620cf08399fe069cd398d","impliedFormat":99},{"version":"ac7c28f153820c10850457994db1462d8c8e462f253b828ad942a979f726f2f9","impliedFormat":99},{"version":"f9b028d3c3891dd817e24d53102132b8f696269309605e6ed4f0db2c113bbd82","impliedFormat":99},{"version":"fb7c8d90e52e2884509166f96f3d591020c7b7977ab473b746954b0c8d100960","impliedFormat":99},{"version":"0bff51d6ed0c9093f6955b9d8258ce152ddb273359d50a897d8baabcb34de2c4","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"13918e2b81c4288695f9b1f3dcc2468caf0f848d5c1f3dc00071c619d34ff63a","impliedFormat":99},{"version":"120a80aa556732f684db3ed61aeff1d6671e1655bd6cba0aa88b22b88ac9a6b1","affectsGlobalScope":true,"impliedFormat":99},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"10073cdcf56982064c5337787cc59b79586131e1b28c106ede5bff362f912b70","impliedFormat":99},{"version":"72950913f4900b680f44d8cab6dd1ea0311698fc1eefb014eb9cdfc37ac4a734","impliedFormat":1},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"21944c138a48dc23382cb6558b1d4498908faad2104ba7ff390ba8b27c06f3c0","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"ff0a83c9a0489a627e264ffcb63f2264b935b20a502afa3a018848139e3d8575","impliedFormat":99},{"version":"161c8e0690c46021506e32fda85956d785b70f309ae97011fd27374c065cac9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f582b0fcbf1eea9b318ab92fb89ea9ab2ebb84f9b60af89328a91155e1afce72","impliedFormat":1},{"version":"960bd764c62ac43edc24eaa2af958a4b4f1fa5d27df5237e176d0143b36a39c6","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ec16d7a4e366c06a4573d299e15fe6207fc080f41beac5da06f4af33ea9761e","impliedFormat":1},{"version":"59f8dc89b9e724a6a667f52cdf4b90b6816ae6c9842ce176d38fcc973669009e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e4af494f7a14b226bbe732e9c130d8811f8c7025911d7c58dd97121a85519715","impliedFormat":1},{"version":"cbb1c5ba5dbabe42c19ca31b83e48fec95895484fe1d1a8fb649b69ea224c5b8","impliedFormat":99},{"version":"45cec9a1ba6549060552eead8959d47226048e0b71c7d0702ae58b7e16a28912","impliedFormat":99},{"version":"6907b09850f86610e7a528348c15484c1e1c09a18a9c1e98861399dfe4b18b46","impliedFormat":99},{"version":"12deea8eaa7a4fc1a2908e67da99831e5c5a6b46ad4f4f948fd4759314ea2b80","impliedFormat":99},{"version":"f0a8b376568a18f9a4976ecb0855187672b16b96c4df1c183a7e52dc1b5d98e8","impliedFormat":99},{"version":"8124828a11be7db984fcdab052fd4ff756b18edcfa8d71118b55388176210923","impliedFormat":99},{"version":"092944a8c05f9b96579161e88c6f211d5304a76bd2c47f8d4c30053269146bc8","impliedFormat":99},{"version":"b34b5f6b506abb206b1ea73c6a332b9ee9c8c98be0f6d17cdbda9430ecc1efab","impliedFormat":99},{"version":"75d4c746c3d16af0df61e7b0afe9606475a23335d9f34fcc525d388c21e9058b","impliedFormat":99},{"version":"fa959bf357232201c32566f45d97e70538c75a093c940af594865d12f31d4912","impliedFormat":99},{"version":"d2c52abd76259fc39a30dfae70a2e5ce77fd23144457a7ff1b64b03de6e3aec7","impliedFormat":99},{"version":"e6233e1c976265e85aa8ad76c3881febe6264cb06ae3136f0257e1eab4a6cc5a","impliedFormat":99},{"version":"f73e2335e568014e279927321770da6fe26facd4ac96cdc22a56687f1ecbb58e","impliedFormat":99},{"version":"317878f156f976d487e21fd1d58ad0461ee0a09185d5b0a43eedf2a56eb7e4ea","impliedFormat":99},{"version":"324ac98294dab54fbd580c7d0e707d94506d7b2c3d5efe981a8495f02cf9ad96","impliedFormat":99},{"version":"9ec72eb493ff209b470467e24264116b6a8616484bca438091433a545dfba17e","impliedFormat":99},{"version":"d6ee22aba183d5fc0c7b8617f77ee82ecadc2c14359cc51271c135e23f6ed51f","impliedFormat":99},{"version":"49747416f08b3ba50500a215e7a55d75268b84e31e896a40313c8053e8dec908","impliedFormat":99},{"version":"5e91172586d1be7d1508d1a40c8bf76161f6f4179d1c25158a20599f9fb26a66","impliedFormat":99},{"version":"09d215b379a93f8cbb6caf9e9f5d7b4d48042295ee697e7e4771288c7917a21e","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"891694d3694abd66f0b8872997b85fd8e52bc51632ce0f8128c96962b443189f","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"971a2c327ff166c770c5fb35699575ba2d13bba1f6d2757309c9be4b30036c8e","impliedFormat":99},{"version":"4f45e8effab83434a78d17123b01124259fbd1e335732135c213955d85222234","impliedFormat":99},{"version":"7bd51996fb7717941cbe094b05adc0d80b9503b350a77b789bbb0fc786f28053","impliedFormat":99},{"version":"b62006bbc815fe8190c7aee262aad6bff993e3f9ade70d7057dfceab6de79d2f","impliedFormat":99},{"version":"ab80d2cb170a92c61ca8c822d0db0fc50eb15c7c6cf1a24cb01852a5a15a7db8","impliedFormat":99},{"version":"210955af8573671abebb6e1391d134d82fbcff130aa68922ea1e839f8f48a0ad","impliedFormat":99},{"version":"78a8f2e95e2904914c509e4bbc68e626f8b8ff8f30ca96cffc7a795fa17394f5","impliedFormat":99},{"version":"7bbff6783e96c691a41a7cf12dd5486b8166a01b0c57d071dbcfca55c9525ec4","impliedFormat":99},{"version":"103ba9206e97376ad4f33958a958d3a0b5077693dfde0726d4165f972f6be81f","signature":"4b96dd19fd2949d28ce80e913412b0026dc421e5bf6c31d87c7b5eb11b5753b4"},{"version":"3f10d86fa35dc1bdd6c175796ce32d10582c8631720bd2b35a2e9bea469c2e46","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b845876de475c230a1e012150db8d2c2a62bd6835a93e8cd23ebb10f7de16266","impliedFormat":1},{"version":"80f4253371e4c5e1eb5748a840eb8230df4a489ad48c3a1eeaa378cb93d7321f","impliedFormat":1},{"version":"d5eb5865d4cbaa9985cc3cfb920b230cdcf3363f1e70903a08dc4baab80b0ce1","impliedFormat":1},{"version":"51ebca098538b252953b1ef83c165f25b52271bfb6049cd09d197dddd4cd43c5","impliedFormat":1},{"version":"2d7512d02df5c4b812ea26df0d0dabbd383bfeae60329d157980f4caeece9994","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"0fa032c49c379638a421a644e2b61cb7afe4b6529ab5286c9bb89ee42076d082","affectsGlobalScope":true,"impliedFormat":99},{"version":"6c1fd5670f478f14bb64e39d1fe7ff8b839ade4c17b57860e40d86a8db89e46a","impliedFormat":99},{"version":"39ed3803e85a0dbc7c137941ead828442abf3dc1f15729a1da7f2dfe796905fc","impliedFormat":99},{"version":"55f6bb58b00ae271978f1d7c52369a494b1c23e4fca2d9d7d824993576bdd1d2","affectsGlobalScope":true,"impliedFormat":99},{"version":"bc270b8f9fa72b1ad53281c341cf711a73e79aef4979f4239fdb01a627c621ac","impliedFormat":99},{"version":"0dfbd656b9d9847a1ac4cf7f79799143ecc651d4d252b4c1dc7b66aaefe54b9e","impliedFormat":1},{"version":"6f391d078fcdabc15961cc2392529c5db18ab975b813816a3fcd8aab188c947a","impliedFormat":99},{"version":"9083cacdf0641985b6aae9433bfc867468ecd0a074b16ffef87fed996ba11e99","impliedFormat":1},{"version":"374a7b19f96f25711b0ba6e83ffa2413c53e841b5951c95878e5e20f8b6ab400","impliedFormat":1},{"version":"8a956d7f0c9ac568b925c6925e450e27d9f3ff0cc58ac38f788679775bdbcae7","impliedFormat":1},{"version":"42e6317f5ad893e4eeac3051f6f47db20da9731b11f54e9334f29d90ec586a50","impliedFormat":1},{"version":"54a4a54cf4d5e4667c477f8404acd7c7de7539a48df6a5d0f9bf68820fb7dc33","impliedFormat":1},{"version":"4cbedb71f1e9805dffc519f94d6b8a624ae1a98eb108763ffa087e9e03fbebbc","impliedFormat":1},{"version":"f8c4b11bcb34a70612158710019a472c16f64af9bc5a2837aaf5ceb6954efcf0","impliedFormat":1},{"version":"050a98220a1683ed1992d76a8bcd4fce45b26460062a39db4079aaee79eb68d4","impliedFormat":1},{"version":"05ed13a7804a78927052dc0425f1a8fbf76775777274360f5360ebabfe0a1c0f","impliedFormat":1},{"version":"0ae4f263042d5f475bb3936045cda82f16705674a7f2d1a0a1159563544669bf","impliedFormat":1},{"version":"5218bc2b336986cdab39422240fd1d289182beeae9fa77cf704c6618f8a2cf3c","impliedFormat":1},{"version":"50fde69fb9248da80cdc1cea71e51b67d7688774d0df8388f29eaf7d0c1d379f","impliedFormat":1},{"version":"208be66e16cd901c2668fa3d7dc3be8622a7d0e41a030d22baa776d9fc686cf7","impliedFormat":1},{"version":"ae895b39b72787142df4b50d05fc8a0093b393f5ca1aa76d7a5fc2c0070b1c18","impliedFormat":1},{"version":"632f0ecedadb71d39fe7f30daf3588a34cb5cf08904d4f12299430855729b1dc","impliedFormat":1},{"version":"217c27af92822dba4d609486513d454f49e04e732c76a047fbbe2b2bf7f7784c","impliedFormat":1},{"version":"ed4eb88577187de083a8320c62e75ac487fb3f7ee48a93d5e86f13b41b70e3cd","impliedFormat":1},{"version":"ae7bf73219c02fb6d96a257ad558e7067bd9a9433b60e1e67bb7747c38b7c615","impliedFormat":1},{"version":"5c2598476e6162e54e8abe50d0a1b568372ac4bec620c99ba59e3ecf943a1c27","impliedFormat":1},{"version":"b60a5d79acb5044b2f61e7401808f30aff2ca6e92a49b744eabf5c462bfa3808","impliedFormat":1},{"version":"d6a27d59638f0efaabcf9a7038239fb0df8cccd142707b4c00ccaaf9220fdcae","impliedFormat":1},{"version":"4329ead0508c32010f99f517f1185a85989705047ad93fa8a4781024f4dc1216","impliedFormat":1},{"version":"669123db215436dc10ca38e9e5d4a0d57fc4dd76ee5bb58ed245e2b71dcb1597","impliedFormat":1},{"version":"a99e38b50dbc7c641727932d5764f464895435aa30995b053c6089b2075d8e9e","impliedFormat":1},{"version":"a3d19379db8ea52630a6c50a6bda3719d766935e75c63f07e705d420bf8fecd9","impliedFormat":1},{"version":"445c74538a6064587b21cbaf5dffe48b0edb7f6243e32c31a1c311f423551617","impliedFormat":1},{"version":"94fd8366c099da6849dc8ec0e14789462d1e58e193f55588601239c98cabcd4e","impliedFormat":1},{"version":"711383139752a21ee124b1c8ece5aac443bf2fdd479c93f5caef5fd883d4b1f7","impliedFormat":1},{"version":"2add0a929197f7eaf80b02c15ded27f2052abf5d1b49dfa1e38f1fe0f770bdd8","impliedFormat":1},{"version":"239676e1a3bcde66d9e730f40441fc8501ee9ce54dbaa2b4c2943f79dd7348b6","impliedFormat":1},{"version":"3932b32a6561e9fbb135ea39ffc4b7c4de7cec8416161d465c2a8dcdabc955c0","impliedFormat":1},{"version":"293554f4dc6577acb1b93bc62922f9346e1eebc6fbe6b389757cd30437e94311","impliedFormat":1},{"version":"5a11fa0c64c7ce20a9038b1e4426c5cb18d5e905aba507c4ed462929cf71b1ef","impliedFormat":1},{"version":"aac76917395c306b07d90970211bc15f67aec46a3d6b6cb28cf00c733cb397ef","impliedFormat":1},{"version":"5aa7436c81fe9835bba85f35c3852383c622a13f63a8054937d8f1dbd7bf2969","impliedFormat":1},{"version":"09a301505d50211c9a3a9a253c9417532219b2f6a396cd05bebb13749cfb01a0","impliedFormat":1},{"version":"34600044cc0a34735045ca501ab2d5a7c52a769f364ac4eaecda5a9c2e456ba8","impliedFormat":1},{"version":"41234d9ef4f1bef00b34810c96b5b979536da520669053d4b6e899d6ea9b70e3","impliedFormat":1},{"version":"87ef0ae1085b46f69c4e2815579546012fa42f41428b9db0419377c55583e246","impliedFormat":1},{"version":"b9425db28792a72798372a68d255716d33b1acfeb837e1d49c95146f9e974887","impliedFormat":1},{"version":"cf2a1e2c7a5edb84406d130eabe488b09255ccb0ea5ce2dad8d12b5c8e2b5a01","impliedFormat":1},{"version":"719c7d5f6344819c4c28b99cf34c4ba245ea5aa79521e8bbfb1db44a788c6d03","impliedFormat":1},{"version":"d4febaf058362f0289be83beec78c425a880df9455c25d89e0863bb500708578","impliedFormat":1},{"version":"961d20b47c7325e6aa132d729700353c3b0fa2f765ae3092082abb09150e2ba3","impliedFormat":1},{"version":"c65993955c34d1a6c583000a5a246e54a74d7be3937ae259e11bf7b29628daf6","impliedFormat":1},{"version":"829a9521f86d3b807bfa43ba0e2776b1d631be89ddcfe0facaecfcc2d8b90708","impliedFormat":1},{"version":"16978e386228248e706921d58d47801ac969a6151f7c3afb3c632d0367dd5ada","impliedFormat":1},{"version":"920071ff13103c91de1299489501e2b4e2cde3d035331695e16923b1698d48a8","impliedFormat":1},{"version":"a2c6227d6aae6e460510a01f48b807e2f8a1c1585353e14907d0d8d641496abe","impliedFormat":1},{"version":"b41202e140fb9f7bf282273badab863b5790dab2663f05809bcc8cef516c3cd0","impliedFormat":1},{"version":"3faa497606b49e2988ddbe69e6a70868cd8a104d0b0a75c963cd85a2ea02e7d1","impliedFormat":1},{"version":"3357e71991c9235f49545fce4ad5c75de2c9b8b835b53a4a48c4ac2cfb4ef452","impliedFormat":1},{"version":"e5b98076883555855ccb09bb01919cd01fcc61ed88e5f31fa049e0f9c377aa2f","impliedFormat":1},{"version":"a7f3de6fad27f83cee765518643bc4a5c5c394b0a17c5d162f602bb90b7119e8","impliedFormat":1},{"version":"8ae4c205d2e343a8d238f93edf14c624d3874c152cfbd1a21c92397785fcf6b1","impliedFormat":1},{"version":"e66eec8578977f2ad2e1cb0989475aebd36b7a9cb90c420d9565a6c9bd6ed72e","impliedFormat":1},{"version":"06fd676cf868e87dd7a01e4cae61bde610227b957f9273239e3618d8d8f92bf0","impliedFormat":1},{"version":"3397939464010c7f607269deaad3f6d2740962e5a1beedd30d0524fc608953c9","impliedFormat":1},{"version":"5ce93f5312a611abe23bed2c8c922b66748d3757b4e2571337169f3ba5f17919","impliedFormat":1},{"version":"5651a676b2a569b62fa6ea2f374e75aa4e18899cd60f1a6d35532e778e2e922c","impliedFormat":1},{"version":"b10ba92ca513aa0d311fd500e3e201a7b04d7222520ac6b00361404de8c3ebfd","impliedFormat":1},{"version":"928e883f45ccf2998bb7a40c8892b0e23193f1b7c0fdb6a575e1ed3fd8a87c06","impliedFormat":1},{"version":"7815b1e74c1ba05bd531b3f0432385a5c6cd00405b4b98aaa6bcbe43e6ae7dca","impliedFormat":1},{"version":"c5b1f63d118949a7786f51061553f7bd9ae4b74c33dc94667c1ddbeceb6904d9","impliedFormat":1},{"version":"294b80e3aaab13eb0b8b79f0142cf6e22f0f6495939b6e02297ec3036df35b46","impliedFormat":1},{"version":"1b440c7eee260ddd31199b7e3136cc0321d1a7366e2078832622b948f31ecc68","impliedFormat":1},{"version":"4ea39d23fc2157bc0b97f1547ca31e6ac52041a746eeff692e725f245f94a53c","impliedFormat":1},{"version":"fea66a3c1a970e4f06e6485733191784bbdef752a82a6aad2b3e7e31bf477ded","impliedFormat":1},{"version":"a126ce07ac3b7869b2ff8a647d10ed29d087c46ba24a533ddf52cf624399a368","impliedFormat":1},{"version":"c8ce9fbda94bd7e16376e2ce3be97ef9c696e7d051286ed95c7f87015a20618e","impliedFormat":1},{"version":"2d9722a92ce43af83747ef8b5370a78c754fe5d4a415ef7532ce7c362db4c3c6","impliedFormat":1},{"version":"9c305e54c5b24c32fb69aa7264c240d1f67faa152e8c9ed10491fd2bfcc4d6b6","impliedFormat":1},{"version":"a3c52152ba9d43c53a28318171d789c06d9533b6053c8df222d1690ca05c9c33","impliedFormat":1},{"version":"a8bbab71735e79781eed6524128e75f369f12215283bd4b4629de7afa9972f63","impliedFormat":1},{"version":"5cebb3a728cfc6dff6c1fe62d10a8e1d15a1f7f2ef6c4b252180eb1ecead61a9","impliedFormat":99},{"version":"bf4cb26dc7f68f2b9d065e0557e149dcafc247a8988057d678535fd2d8185673","impliedFormat":99},{"version":"c56a9f6695eb881a927839fc8f50cd5b36e9c5be9da4f0a7c59d908cad15e198","impliedFormat":1},{"version":"6cdc55c8c2f63bb664067ba78226de359c1101aee049d2bf3cb4b4788c40eacf","impliedFormat":1},{"version":"acb487d815e5204442da16a139817494e2a3b7371afa57add9fc7acdb9926d26","impliedFormat":1},{"version":"d2e9e82b05b2c31138dd7e49578fd6b939e069edac202856e9b48e94f68532c1","impliedFormat":1},{"version":"cce5d74eb0b17fceedf80bb301e69707912ed162e4b651bdfe98b3b50df9bf15","impliedFormat":1},{"version":"45059c69dfbec19400dbeb3ee71d006b1f3464ea37f72642f493f37c816ff9cd","impliedFormat":1},{"version":"68a5c7941e7c067b996579152fd44a7d97923535f75df6319ba37cb19bbaaee7","impliedFormat":1},{"version":"75e6b749286a900e7ffac3e07572168639aca8f93aab1533e9f04def159650e5","impliedFormat":1},{"version":"523fe3a9476d5701a4162f83e6f07b16868cb1009df8b210ad2dad9ee439fdd6","impliedFormat":1},{"version":"d469a5a790f92021d10b8df35997a9bcc0ea1ff56ad1e5a22582ba962f946e01","impliedFormat":1},{"version":"e008a357040c555bd5fb2f7655c9142f8ecffb8ccf5797af4dc7422127353e76","impliedFormat":1},{"version":"fda0bf38e92b8cd1cffa78fda866995091fad5912085b337deeb927c9bdffe91","impliedFormat":1},{"version":"fad7a6a284e4004ae5716488513b321e75ba6f948408f26d4dd6958d47b50f1f","impliedFormat":1},{"version":"add58a9ef001a6e9032a0d5a27c878a4710c80d8450b69d861a9ba7a9e0f22e4","impliedFormat":1},{"version":"c70fb6238d514cb1f54b12fdfd3250a3e9bf70a7a8ec17dcd9a989fdb0046d87","impliedFormat":1},{"version":"55764e6222d050b39225ea0d2ed01aa53145217f7d0a0912901696a94cc84482","impliedFormat":1},{"version":"7305e277bf6a0127cfc68b020124baffd1a76fa191c423bb7256e87982d5a710","impliedFormat":1},{"version":"0f86e55ed81b5d66dbf846e7d1f5667737ebb31a10affdd4327d42eef79b15f4","impliedFormat":1},{"version":"2c0d5f8279f28cdef26467e27f45e3a19c7efb0ad9bb1db0e540bf452995e53a","impliedFormat":1},{"version":"896a28778f643e86cf66f09d7d81ebb93a1fd7303fdfa8ce82ceab21757003ad","impliedFormat":1},{"version":"e1e3a917861a1d1bf2704de9187e4e51759c815902aaa0089caf03e9b701121c","impliedFormat":1},{"version":"e0d62aa0a2bc166de5b378833d6eced04d635bf6469646479364e2cfd2852b33","impliedFormat":1},{"version":"b0d19b9741b1aa9644334811a484a559bf5f0ebb0f0c815bf0440a564c5435c4","impliedFormat":1},{"version":"63907d438967d7e60df4f9f541a3af72bf9180e530ad56e400b39e79654751a6","impliedFormat":1},{"version":"a723115cbc32f0e3d08fcd1aafb8638fc0fb91004bec96383f52fa0fa040465d","impliedFormat":1},{"version":"0b94f5363e24016b541d2e95a801a199ffcf0a1993ef47a95f6283eb03f9ba25","impliedFormat":1},{"version":"14823c8cb7a6ebecfb95b88dec30cd58793e6e2c5f1a36d11b7c7c92b84a1f08","impliedFormat":1},{"version":"a1be10a2532560f5eb33f32381125be8e681310290f4951646be33dcc1a071b5","impliedFormat":99},{"version":"df202380727c1a02e948f30a8ea84ee86183c22923f53b71fb821ff60f85dbf6","impliedFormat":1},{"version":"c646646bcf101b28d4ad44ae485f45becec801f17acd3857ba5b85d44d1685e0","impliedFormat":1},{"version":"95a9fd0f297169b56d20943f6174414f42494e149f7b90cb4146fcb9d36080c8","impliedFormat":1},{"version":"225828d7f1318eaf5bedaa7de9b7ed4ddd4c80a3830d3c3ea19f1652801715f6","impliedFormat":1},{"version":"e2a7b77e002a6e12cb99c38a5d60139d47a499f9d8618a930d617878ae72abfb","impliedFormat":1},{"version":"60f04d9f28800f6ab9fec9cc2c85c601dc6f6e9d16c9565d15054bdee457c2d6","impliedFormat":1},{"version":"31a47c5fe657b0c20b88f2c61a25ddc1e46200a8e075068b9bdced18437654a5","impliedFormat":1},{"version":"9669a9611c40dccc84e2656bd560df6c5443605a39b90a799c3447530727ece8","impliedFormat":1},{"version":"1b4398c34098b5d2fbc7b80ff089684dd52eff3ae9b4b33cf177e8a7c4481d03","impliedFormat":1},{"version":"8746afd0ef72f0cef7af840295f128eaf8c4614459c6bf5615f0330f2e12d404","impliedFormat":1},{"version":"31ad1510b2a34d6abf94826912ccfe41f1e5cf336ba9b5a1bb8b04fe00639e90","impliedFormat":1},{"version":"b935bdbf37a8c16e6ec5f093f1e4a5e0bd1145b2a70a869ecdc7c362a4e781d0","impliedFormat":1},{"version":"327201e0d5c631b4821b87dd796f0cad3f8ce7086f7e5c0c7f367113df1f5247","impliedFormat":1},{"version":"6e3f0072111bc2ded5d941716f1a088cf5c10cac854e6bca3d6c02bf7f33fe3f","impliedFormat":1},{"version":"332f8330fedeb992225d79ff08e1f8b5d3c1ffe3123f35bb6e12b3556e718b37","impliedFormat":1},{"version":"4f059d541a44b50126d29d5520ede797f02ce5a73e0d1607975626598f1cc95d","impliedFormat":99},{"version":"c735aeaa3d70ef4a65d60112cbbb3bd6c644c31e9c02c14048b988c33d73a923","impliedFormat":1},{"version":"7237f0cc9c318faf67f0a756161d3bf772dba6e81d1c6881214a8795997b4c6d","impliedFormat":1},{"version":"46ef3b748b7e0406a8bffa7b9c957ce8d5633d6daa2e019fa533e68d534311fc","impliedFormat":1},{"version":"d336709d15f15bfd23e59056742214633afcd0f021692294d40df54f818febea","impliedFormat":1},{"version":"f8b834349691218fffbae8e8441e04bdfaaa1bf5e5a4c4adad527e2f9c9e57f8","impliedFormat":1},{"version":"9c3d66275a89530e1ffbddf4e173a9b812a69c1bd1bc7fd95d3ee002c3c38da7","impliedFormat":1},{"version":"6d4fa9b1155ce0d28c1c65733b1bb342890d0b1faa71e2ef6d8c5b8e9241c5c8","impliedFormat":1},{"version":"65d6dca1624e1bebad1df23be9896b96fab5208abcfcd552c4ce81a63f9929f9","impliedFormat":1},{"version":"1c1e4fc4ff686e71f044f694e74cc2d665563e3f57c39c8189c9fbaa7d672e0d","impliedFormat":1},{"version":"a186d9343a4232f264e17ebc8cfc04cb75158277ba7d8fac0afa0f9ab73cf9de","impliedFormat":1},{"version":"302811042fd9f6974c00201d2197e72c5b579eff97960c35f4798b03d600198c","impliedFormat":1},{"version":"0263c4ecb1ab25b41a55a054294317f0a9a072ff0b208cf5714abe1552439196","impliedFormat":1},{"version":"0005c8ec51c3b52ef35f2250b4068df89ef2e467a49d12f395b2e1a4fc93780a","impliedFormat":1},{"version":"0dfabfc85d2237cae988879831334af7c2d5982251f7529bfddd14830e4c46ef","signature":"1b0cd5cef393c50a35ed378492d4de6f6a311e9cc6a9d4230c8572967da8bfa2"},{"version":"2ffb72f6c5196f257ba623acf2d5233cec71b82b61caebee197027a28f49ffbc","signature":"c6f447fd94a92b57a99ac6bdbbb4c74900575d641d24bc6de73959761b17550b"},{"version":"40aee6e26a6fcf34c53796d145e6b1a1a8d5c2df5130d008b59c135a7ebc73ea","signature":"40ee296f48c29ca0bd06b810df1495cf1d9d185463ecd0a101cee42a350283ef"},{"version":"30d579db6c4d96052b8a75bcb171c77e10f6c6b039fac801684c913b9006d808","signature":"cf17fbcf52b0a1f65c93235f5c5a3a3e43201711badd70fa7800f91850f2c496"},{"version":"a072817dfc4aa072f1db85e8f9182475609904b542679f3db7cb4edd0d3c72b5","signature":"4da5d073adc828af3ba511e08f636a83afb0f35631fd5c9521a0a9fa0614b2d5"},"490ae0791a82ec039c92a0cff6dee90501cf4b58cd57b062ec6e357e4fcf6dd6","2368bd3334a4676821c1e33330b7508663ba2973d2ed463ace50eb66e810652a","977c6c0a51aaa8a863587b391a1415020bbd978c2758a1375f868f684b7d87f2",{"version":"9d3adeb099512de14bb7a4f8afbc6cae377fefd3c250a1cff67c055c46b27149","signature":"9d185be1ead348c8ac8af5161b788a710f1f6ad319ff64a85d86a3ad9f64d3ef"},"1bb28194c54e3bd56687bf30fe900208b74dad40f812d30c127979ae589f14ed",{"version":"3af4769c0d68d0a6a6ce18c13740b671612d75d79130e5c005d3e5bb0d5f2ac3","signature":"a9f0fd0631f6a37fbee682bff887e5120030dc2ca322b13e5baf9d32f8c13758"},"44ca4769bda5d0da883c075f77919ace2dc3636994f0da70922b114564ee1ac2",{"version":"bc835d6336b962f942ae2e4de63683af4274bb0cacf48f24544c33d114eadf22","signature":"aa33ca44b9c0026e6bd5637db6f2a2785b24a7e467be6f3f1ec0bc268b99a98f"},{"version":"63537dfd5aabe4c201507522cd194a1ba86eecd7f5b44e2244bea66f64e65e3a","signature":"a8b08641a398ec72cd53067a8a02bccec8678608acec1f93a7a3e301a0359dba"},{"version":"d0802d7ff5638aabc539b3d5003d510000e28443987d36ca197418a5395d0c20","signature":"9860e533ae243f9f378c8db8229012ff8c976e9c88959fed79f5ceb1926861c6"},{"version":"b6af0732e6a4f5869ac02110565af96c7a47254e2dc05f2d7860da36ee22303f","signature":"bb6b2cb9cd6bc1d3036555102458a58a06ea1c1420ce26ff8cf50aa628739bfa"},"ebb835dd1b6dab7626c55f8fafe4161d0fac288cce1842803ed18deca3d7104c",{"version":"4fe80f12b1d5189384a219095c2eabadbb389c2d3703aae7c5376dbaa56061df","impliedFormat":1},{"version":"9eb1d2dceae65d1c82fc6be7e9b6b19cf3ca93c364678611107362b6ad4d2d41","impliedFormat":1},{"version":"8065e20ac0ad0536d4f1c8d4c2303272a4d25c450bea8d25deb25697d19300e5","impliedFormat":1},{"version":"7899703ce80e3910b631b7cab0372bb19f03141a42aa8f09fc46f8cfc2e58767","signature":"c8050288696a54fbd5143ef956d79a2a3eb50bb51ea0e3afdf661da099637fef"},{"version":"314ce44ad0be944bc0bd27c38aeb488c6928f355e9460d837f746c03e3ce7572","signature":"d5c8756f4188724dfa771488321b3a98030bb77f554ebe0507b28fa15afbccf2"},{"version":"2dba6bc5af1cddf7083612f1c4a8758caf1ffd074c822e79402aef469b26fc30","signature":"81d8f24fac2eecbda762f181d723a5f7fc862596b7ad797a7ca9a662216d624e"},{"version":"b9bb7fe2f9c7eecc50df0d976de11288a1f3a5c80dfef6fbfb1822790333449f","signature":"07017fe111f6c41b01513573ebe2ba030a0d07d8d963f671bc87542f0048d271"},{"version":"f2d0afbb4ec9557079833507141b23808a9e0063a8057e3da63bfa0804f61654","signature":"5563cd3b44c980238aa4949a5a802a3c8b4f384162a5b8135128bf622b80cfa2"},{"version":"95c1b46256e08229f8557f52bddb8627ad970e8f3100f8885e76e59b7cae9799","signature":"822a7c4176cbb421c81f067ce87683418a5b0bb9b0a525c842dd27274b7b02bc"},{"version":"c1cbc415bfabe9ac2bd32e7f9748f422a8db0aa054f8ee034c5135f5a99cc30a","signature":"1b9b0c03077a3f0722925e65af28e99ba71884dec9d0d6b1f7b77384fe421486"},{"version":"2967e729827cac1cfc085ffb62035ceed814925398e60e61d76e709f7256b9aa","signature":"93bdfecd12bfb28163ddf3ff342c6148d865b80ca11146ba50e883335815206e"},{"version":"574db6edb1d4b26684c1e4f1e046d124a8731584baa3bb590378a17aee62d920","signature":"45b6b184c54af9f5c03fac2dfe839bdef4cef48ca701a16d2d80c74ff08b6fa8"},{"version":"75eb5c530b5fcd9bf2529c26a7e1b4e201cb0f745b7ced2dc980048d1f5a8cd3","signature":"6652e3a9da5ccd74276f6843e010d31f771eb6d3cb17b10687d3c0143376247a"},{"version":"0d2b75ba6a2ea5ac2fe112097bc21cc0ccf46b13ce062924257a2f64caba1939","signature":"f68296f2f5f4c473ed07308b2f54fedd0c142493f6691cc9888ca9851c4e66a9"},{"version":"aaf5f72f0c61728c49785c80a9f2e4240a9c2f89942c084bd4ee5f137ce4a5b9","signature":"0968f6bab7d95b1b4d056c2b3bda182c4f9cac7b6d6e6aecb93ff3e4bf6be286"},"86df205d15200e6cc07e7a5ea6fe2e2693be5ff81813bd729a770b11c20b24ac",{"version":"0b3cddb080af763a11ddbf6edf300a611871936af90bd25f1cfbe2603ddaa07c","signature":"20da2d4ff8389380acb5382d15a3c9b938cfe6b1525d9a9e1808c0642d5c1037"},{"version":"c4e86f7cf577e357ece7b484a48699ad6bbf835fe8d2ae6b3d623723136e579f","signature":"2b17a132fb4caf3d7c2c5f9fd160d1c5523ae6774e2de2f8f0892d015829d4d1"},"e8c6443b37e259c11b8f7c392a55d8128327f11fcf556c4fc3b06f59428169f5","bd69403103f7b8f2dc7a83c2e6c4758be6bdf1875d87fc69d723bd047135796e",{"version":"62e6be1215562a0b629791311d01572e70e0d69ff9d93cff51bd736e639a4168","signature":"a4337daba63a1a304bd4732f9eedb67e1058e66db751173afcebc419528581f4"},{"version":"a21b55f9efa1f6dbc67b5087d3bfaf0301e161727a722ea4858c7253c85c9939","signature":"67bf929887b784422ae783a5a00d63a1f8acaf61ed7d6a078b3aae62becf2bc1"},{"version":"9fabfb017594ed9d47f1fd72372caa2156774d8418648e3cc32c6c614dfe3247","signature":"5759259467be66ad4ca76a122316b7aee42b6daab0c3e6785e7c1f85be3abab0"},{"version":"18c85de35d5173004311b533c8c1b2d3a3b777b80e12d1e8781c2f7443666663","signature":"0435908875e1adb24d52b7ea5a8b26fe0fd2bb517b8ff6318ce4ff5b494141f7"},{"version":"5d051b97734ac4997b368e8b05bfdac1d16c69d0e6d89793583510e3203baddc","signature":"ae23036052bcaf5ff969b99c4cad1e4b1d220107885a02b39d68d339bf24ae98"},{"version":"4fbbdd4bf015335a9766bdd228d6e0ab0d140ece026dd80b156e02fcdef76f70","signature":"a7beb0e3e776d7b30062d8fde3f1d32fd87403426441752fb176ca52faa18761"},{"version":"0f317a619cf6e183baaf8699150bd03e51f823f2e72a40b8d9abe0535b41348d","signature":"e2a244281ca810002466227206c7581643f9001f0dfd99c5727b3fc516bde5a7"},{"version":"4a53bfa3f6620a2371634d9d10612d2d02cf822108a0b7123f703ceb375f0ae9","signature":"bcaf145c2269fb8e03e1de676c6742ccfd1fc46660d185aca0f8cafff46ddd8a"},{"version":"c2807c960a82d6c39b802cbc15e73fb51c786013bccee0b7190f577801735ece","signature":"ac9ddf136cb4e20054654b388eea4dcdb0d3bbbae935da1427b6314b1c9a0cf4"},{"version":"68d011364be2e1bfdb2ae2ee9140fdc041a9bbc44e4f7b3f9f7a1902a6eaaf8f","signature":"37c29c0e3b26b8327884bb6c85facd85f289e8bd8bac06fcf0d9d281b2e644ba"},{"version":"42d16c4c8d175b24b67baf2eb70a825cc55c540ad86035b5ed2479bd5c5a5275","signature":"a2a31e7008e709ce88b7d9f60bc0dadc49f50ea0920ac85acea40914fe869e05"},"c740dcec70e745370c6960ec328ed10071400b3b33d4fef6d43f3666b669839b",{"version":"253c8cc4e3ae6bf417eae013ac218ab8c5df07dbc05e0fd6d753f811562f0337","signature":"acb4c5af0fdcf201e3b67a992271c4901d4762c7d6992b0ef143fa86f3c94a8b"},{"version":"5e0cfa255bd039b298cf64c6226643b7398b7bd1de2a8ae97e2e3b0c83124138","signature":"df62ef78695f85337f72aef8226fe46b974dd82a6b30a5b806f18b726832d4f9"},"9631317cb556acaf1cbbc378568d105c5187347d5af0e3e348660100408918d3",{"version":"d1b91e626c665d7b329e9273d96ca38ad04e05221ed5f7871ee033863ff8895c","signature":"2cd4b0a9b148574073a1b4989d532a154e29096d6a92fcdd8c16810b4198b3b0"},{"version":"9aab50a48fbf62225dcbf9f28a63802a62a40c0d1e4d72a2a2b93fa3e1903141","signature":"d63959264f1bf9e3f9883a9a5e1ed05833924622208e185c91714dd4e53b100c"},{"version":"565d3f1c18440fc67422e46def318015270052e444b85c9535d2105491dd2928","signature":"be39f000f665faec2bb62bee3446249a66a71b54e59d7169c55975dc47fecee7"},{"version":"2abe021dff4c7e90f93ad31179f576f1c0824d25d739f5055c6906d3c690c8ce","signature":"6ab9062a08ecf965b4a2ef9f017b4fc299d8d414b4a691b0d962e5462c5f79e9"},{"version":"af1333b66ed8918be5ffc921c2869a5999372ff00ab86fb8078bb6ee88ca3d4b","signature":"3d5cc77b31b373dd9156903577e30e5676c88933cdfb7b6ae643d10bc45a6f99"},{"version":"edc086f2abaab83dabbb6e14dddd7d2b077666c0455a21c7ed24735479c56fc0","signature":"521f859c041726d95b3812f48d69b17b2e2661e1bc8e00f1fdd2a86d7932959d"},{"version":"2ec45440b7f50ad68a2378dca14b22284b36b3fbd8fbd01cef823221fe238dbb","signature":"789f192d61a4646e69bfab1b09bdf9cc8d43c4438f996b38d52938291b507470"},{"version":"0f71688241a8834a9db0ed92172bfca539c6a5fbe82c7baf887f88b678821933","signature":"995c15a59179f0086ec51423b3eff9a72b507048dce86de4dded4ae5358315e5"},{"version":"3e1373e94a0872109e230ee6d2c8ec9c7fb0bba310ad1f9fb78c8a8239a3a702","signature":"0da590af9429a7d875176699ba3ec7d0a4729a73c09f32d689974a0902045074"},{"version":"b66f0958b3669cada534b925fe8b0182f3e61cb74b0246612a2d346d9153a678","signature":"50a0d1f55b162378c2a78ab07e525edc6e83259a81309b38a1a28491f24a67de"},{"version":"ce0529635457eec8b5529bbe457a09dc2ac0c0bbb037d936509a36edb36c2215","signature":"74fe9d71923247080c921b5c24a8012b8848d36cb94551d8784925d58fe2c13c"},{"version":"191deb11aaab5f1c8bf8ee864a519f40a8dadecf711fbd6663c34c20b4380432","signature":"32d5208afb9d139362be466c701205058695f687b2acf2e2aecf2d9c031e67ff"},{"version":"d2707933c8cd63993c3ed5169db507c4be1172962ec16033b09b4c1b89f5adea","signature":"bf4cb113d981f0bb81fb210434a5b2c2560397cc074a9f23103be97867a18c66"},{"version":"3ba768b203e9e1d35e8ab78172e329b1badc4f9b2b4bd66762d8debbab332cc9","signature":"072dccf2fe99dc370fea9e01a9d11536d97b20289a1c21773df7eade6ec99d4c"},{"version":"e3c4518906c94f7dc6fcfba840a578e90ac369f23204b25f2122c96b4ca53283","signature":"f7e961ee4ef5ffc87b8b12a2447e48f8d890c6f13a0bc662a9846ebcf296fdc2"},{"version":"6df0d923fc447c68b41ec7f69fa273ba2a49912ce7dc90af3c7806000e029221","signature":"e75d9b9cea1c28259968a28872f8d4f138e5f3218c3bcfc6f346df8d13c9db19"},{"version":"7ca349be23447330beddf2d2364091301073ac49b6e0eb7945da1e73a1e38ae0","signature":"c17450272a939bbc0b8bb49ed88147c5fdc3a7e67cc4520128c7626376eb7a6c"},{"version":"a2398e2b49e5447321cbde7ab4579ec4da3d173dbbaf4b240830fb2dff11a5f0","signature":"33edc47603b9968737b294c32984c7ca39c92dde4c46a1ecef7d5bf411db1f18"},{"version":"504af442248b05f2b0d52d0b74e0551fa1df198bab7fcfed08e12ed27d3198ef","signature":"03a1e80f6407f05cca134c295bc7e729d08fc7410d9da04d91bdc75355dfb9fe"},{"version":"177a479fa86eac03ee982b502f11dcb9fb00239d9e14fb29f631856047b9b6d8","signature":"98c470368262cc2ab430b8e41213dc00634f46fece73de79cc088c282138372c"},{"version":"750a4c9c610f7cfae4ca0e9bd4645da8ca61a89373aa35dd27dba47be4ed186b","signature":"50e59fe5af5ea60d6d8e33714ffb1c06d20ca4402674c0bed6edfe6236a12761"},{"version":"5a80589c88ef4d37f3ed14f2ba5de8fded1c1da3bed3ab200587dd13a02b54ee","signature":"9b56c1c9c1f1e99fdfddd5853aa653b7a611b2d7a3b346feb5fbf54dec899f03"},{"version":"e9f5357168c3ff8b9888120729ca596a6d94f5b51ac790b2eb8ec87649370bf4","signature":"a8610f52ea22109877dd533fa3b37127a5dc9ce90aaa184624cfb79836e97b13"},{"version":"eab878fbc3604e4ac33329e55d80bc9ea0df3fe95cf8426f51dd8806ca881ea8","signature":"f0f9ca98efcfdb0e90d15faf497e23623878d37fc12d4b3e95e2ef207d108dc4"},{"version":"825f1e1deb3a21268baa751253d68695616c5e03935db3095aeb9f81f01fe55d","signature":"6fb9d5da1ff01744826f87bf0340f63f97a9bc4126278e9a64ff3a83aab7c644"},{"version":"6eca3322e4c1a883f455170e324b193ac962b2c294fa4a7032de873de7ea2e09","signature":"d8b280b3a2ce542ac61210c7f2643afdc384a8e7e7dc85a54a5512e90e7597e4"},{"version":"33195f05efece866c74df8414b034b7b56f7c8b73bcf95f3acf7544045f20048","signature":"a172a7e932fd447a135bec0b997059a9814c79719a32e4a7a41c3c06e7145c4e"},{"version":"2c2e64077fcf67d96a31b03a39e180bae9f0c7d4601868e4290955b25b08b5a7","signature":"0e45a32cfd6e47f6b5cf9a594b3c9f8ec0f31d7a85c43fdeaa387577ed2177bb"},{"version":"9b3cbc81eac2bdae4b6804a8b161003be01344b19386f26460ad1784d5ee5fd5","signature":"d85b001519cdfea52d62c6a4852a97d32c893c911518de3a1082191603677313"},{"version":"86c7e48c61ff59721207cc0b02b554a5867c7733d1a0080f88893cfeb6a680d0","signature":"b81de957577a744f0dbe8f69600df569d724d6e9330070c10cf9d6ca49fa4eb3"},{"version":"be8f8a63026cf56f48185732547d76802f88e35accddd74dce79017399fa9177","signature":"38eaa376a2137bc721bfe623f7fa246f9749766d92d59f87ab62c596ffe1abf4"},{"version":"54f4382e29f4e14f6ec35c86711301aba0f10a9b85d157e195494d38706d41ee","signature":"036e46ce88d9125baa51117fcef7f3efb1adf0289e8e2f0915ed592aaa37913d"},{"version":"b17aeba7c224f37c16c6a5ac2f11ff2f11be91b18a44a95e1f71dedfc8753fef","signature":"958efeb41ec8e6d7ca1f1ba6ccd682392b332acfcdf4d3e910bd78293de3881e"},{"version":"ee9d37c869b45008b65666e485b7d8bb594c78f54d88c2413638dc936bda0cdb","signature":"03032c151d845003b05410e56969fac7a2262ec8bd7e79edc0845ad66c0d2a1b"},{"version":"27df4708899aae0b57a366973414f953161fff8b4b02353822f548c7751ed1fb","signature":"764d5ce14b472fa09bc94fd15c19767f0ca106391a395b96c95d8d70d2b0b84b"},"853020656a8f64981c2cc98de94ddcc9bd85064ca4072e0ea865c5ee56902bf4",{"version":"bf1746804e86df0cf83a8f17f07f0e51a612fc788d69ed65984159be8eabde9b","signature":"9909b9cf9879c882a02577947bbc9932c85678e798498ab790b4f64458039d9e"},{"version":"289185a1248ac9b2823a347fa38d0d9ab5a9926ba1d23f5cebedcd8e63ec16c1","signature":"ecfb73d4d6ba787a5aa3114f138f36db7a6c6fb2ba48b5d22aab400b245b7927"},{"version":"25a5b63f5d1297bc4e8bf4ba10d7954ef5b2859be8e0f08273144bc6951fa3b7","signature":"47f8f7fde59e7c9b3a1aea4b67829a5b605aaefa918570e0aec06b80ac726bad"},{"version":"309ebd217636d68cf8784cbc3272c16fb94fb8e969e18b6fe88c35200340aef1","impliedFormat":1},{"version":"91cf9887208be8641244827c18e620166edf7e1c53114930b54eaeaab588a5be","impliedFormat":1},{"version":"ef9b6279acc69002a779d0172916ef22e8be5de2d2469ff2f4bb019a21e89de2","impliedFormat":1},{"version":"71623b889c23a332292c85f9bf41469c3f2efa47f81f12c73e14edbcffa270d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"88863d76039cc550f8b7688a213dd051ae80d94a883eb99389d6bc4ce21c8688","impliedFormat":1},{"version":"e9ce511dae7201b833936d13618dff01815a9db2e6c2cc28646e21520c452d6c","impliedFormat":1},{"version":"243649afb10d950e7e83ee4d53bd2fbd615bb579a74cf6c1ce10e64402cdf9bb","impliedFormat":1},{"version":"35575179030368798cbcd50da928a275234445c9a0df32d4a2c694b2b3d20439","impliedFormat":1},{"version":"c939cb12cb000b4ec9c3eca3fe7dee1fe373ccb801237631d9252bad10206d61","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe","impliedFormat":1},{"version":"26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"03268b4d02371bdf514f513797ed3c9eb0840b0724ff6778bda0ef74c35273be","impliedFormat":1},{"version":"3511847babb822e10715a18348d1cbb0dae73c4e4c0a1bcf7cbc12771b310d45","impliedFormat":1},{"version":"80e653fbbec818eecfe95d182dc65a1d107b343d970159a71922ac4491caa0af","impliedFormat":1},{"version":"53f00dc83ccceb8fad22eb3aade64e4bcdb082115f230c8ba3d40f79c835c30e","impliedFormat":1},{"version":"35475931e8b55c4d33bfe3abc79f5673924a0bd4224c7c6108a4e08f3521643c","impliedFormat":1},{"version":"9078205849121a5d37a642949d687565498da922508eacb0e5a0c3de427f0ae5","impliedFormat":1},{"version":"e8f8f095f137e96dc64b56e59556c02f3c31db4b354801d6ae3b90dceae60240","impliedFormat":1},{"version":"451abef2a26cebb6f54236e68de3c33691e3b47b548fd4c8fa05fd84ab2238ff","impliedFormat":1},{"version":"0648a8c200b5544e30677f7f7059b1e384d6cab716c82659716457e3f317ebae","impliedFormat":99},{"version":"6042774c61ece4ba77b3bf375f15942eb054675b7957882a00c22c0e4fe5865c","impliedFormat":1},{"version":"41f185713d78f7af0253a339927dc04b485f46210d6bc0691cf908e3e8ded2a1","impliedFormat":1},{"version":"23ee410c645f68bd99717527de1586e3eb826f166d654b74250ad92b27311fde","impliedFormat":1},{"version":"ffc3e1064146c1cafda1b0686ae9679ba1fb706b2f415e057be01614bf918dba","impliedFormat":1},{"version":"995869b1ddf66bbcfdb417f7446f610198dcce3280a0ae5c8b332ed985c01855","impliedFormat":1},{"version":"58d65a2803c3b6629b0e18c8bf1bc883a686fcf0333230dd0151ab6e85b74307","impliedFormat":1},{"version":"e818471014c77c103330aee11f00a7a00b37b35500b53ea6f337aefacd6174c9","impliedFormat":1},{"version":"dca963a986285211cfa75b9bb57914538de29585d34217d03b538e6473ac4c44","impliedFormat":1},{"version":"d8bc0c5487582c6d887c32c92d8b4ffb23310146fcb1d82adf4b15c77f57c4ac","impliedFormat":1},{"version":"8cb31102790372bebfd78dd56d6752913b0f3e2cefbeb08375acd9f5ba737155","impliedFormat":1},{"version":"f17ed72d1b1882ab6dc66d45e699f757d15bba0807af2fc9c3ec98fe367611c1","impliedFormat":99},{"version":"b1067ccb56b38af060dc3299ea7c4c6362cad4f07d0d454325a74808204fc801","impliedFormat":99},{"version":"7bb43a0f0180ad87b0a944ef95be8615d4c1d621a93ae503a8fcdee2027243ef","impliedFormat":99},{"version":"ba678532514244768286bdfdc82b33f072d5de4e9d281a75bcccdba9970788d7","impliedFormat":99},{"version":"0b79f95a79497386c50f38bafbbf59154619e51d7bbe5acf61cd376d3c9d77b9","impliedFormat":99},{"version":"5993793a23b298afd20c2e1cd2bf8468cc7e9415d314d0771e93dd8b2e389d28","impliedFormat":99},{"version":"05267740a5cff4399995b08326a2e250f229e9926f453162192b9b96b853a12b","impliedFormat":99},{"version":"104fae9b53b5eaa040d9ce626e1bf0b3e6e27d269a899a98a4a28358cdcbc155","impliedFormat":99},{"version":"50a6aa665f3a2e769a4d683f9f74cd15164d0947fb957d8016331b170ab8b643","impliedFormat":99},{"version":"af1c82452583c91ff01be5c5c9809e7bb10859ff7027fadc4f0f85f79f807b57","impliedFormat":99},{"version":"4abbcac9096680e4c509bcb3b629338bb71a153ca6d84d0b764dd697209f6147","impliedFormat":99},{"version":"c7c610b24e1597ca99cc2a148f5d4727ec5019e0bbf4f2d70d1587927c11eafe","impliedFormat":99},{"version":"b9230f91e3aa1e38a4434eb04c0fc50928d7c006b3f2fb90f398c3690dd04c47","impliedFormat":99},{"version":"6c2abb83780fa85a15dca27ab7d23d76a73b1bb66f3c834ecf83ee53e340ab1b","impliedFormat":99},{"version":"fa68082b5c5f841c0e5b225b6770591bf0d562b2d34e923cafcff4aef8da6609","impliedFormat":99},{"version":"2c7211311fc491a99e8a583d0b6fa77ccc287c9e3beef5b80ce2ca6a11003d52","impliedFormat":99},{"version":"7ae48a41eb14b67618693cd9a9565c932c5685be8ce991372190894ea2ebcd48","impliedFormat":99},{"version":"4052e57b4a37a2222b467c9dc7eb3b2603b2d9f6170cfc8aced43e0c1a1a1452","impliedFormat":99},{"version":"80d91d9b721d08370d2daebb758fc81ad2481282a9bcf10a6901d1af972b4c18","signature":"e10897e242b39998791d0e00344601b7a4a114bd59f81d92c4b1ec6813a6ed0f"},{"version":"d8c2b2e2d1c0e92631fffafa4abec939e448a6aceab2c2c4f7e1a3c58500fb2d","signature":"eeb9e94d1a56a7b739c437e8a618445a418d86ef0b52874d2e7dc212c01eb0fd"},"496d41669d79e0f98c7d304e7cc3c5c6afa6044540e14fde86e585a11c836fe1",{"version":"5065599a128f873f88140d0d7d43ac429bbd0f9e765d4f33f58f49f9fe41fcfa","signature":"28d2f3ccd02cc2e1e1549ddf7c96b31fa2aa514fe9901875086b32d8c36143c4"},{"version":"92a1851ea2e854231749e73a85af336264e3297c4509493425baa69c0712b553","signature":"a9f63a93d8efcfafd1919884c2185c147a2e73db5cd69beac9197210321240c5"},"e2dfa68649f5ea119b6d92e7bda2451cde32ece7b2a2fdc531d09652f437489f",{"version":"0ee2665d95e353dcf1adcd0ed0fe7083cfe9723db90041c60919027d1c5a8bec","signature":"b96d38fb9bd83c243f72d42a6149f9ebc1367766a58e4e76335ea526f2490f23"},{"version":"472ebd1ef7d6be51c3ed1b26829e3aee09d1b381b417249807238e5aca2ab2c2","signature":"5689e5aff0396b94596ab9b9ee67655f957034d06d92a8116a1ad831552dcc02"},{"version":"e9380c47a93e25cfec95ac5f6742d2c8f510ec1baa6cf62a12fd4222c744f7dc","signature":"324f8c55b639aaee1fb47522f60c4875392c8a869b1c54d41d4beba8d64774f5"},{"version":"37cd7b847a64e3de4803c2d3607a5d2be5fcc88f688fe55ad9b691d8d77fcf5b","signature":"0d28b7a483a4eeb1841ffa494f47e2bef644d9ad757693ce10b7f7776810f049"},{"version":"f30ca0f4dc6a6fd8cde27fc729db342e64535c0ef2abea8f617b7fa4b1831aa4","signature":"39c97a7bd7d21fa15759cf0b100f2cba3eef253dedca060eb531d56e2cfb4e1c"},{"version":"8c986b621269e9bbfd3ccc4fa17a9ccac7ac2e90ca8914d86cf88e534676938c","signature":"dd4502ee1d32fb81332315f798bbf1b9de7ee39208571aa57854d5688faa79c3"},{"version":"c8bee9cdb585f0467b5cdf84990567b6b91ab7e727fc2ec4d4707b3d22be9b84","signature":"752fbb062a205293dd254a3fa206c496eb2df6b6d6b441022274366c1196d60c"},"18ed83ccbd5ddb188251e16f951dd092057c3c6e99c5a1b61ae55669e705c2cb",{"version":"d13ddc8b58a36dbad3bab73656a9582e736a191a0f7b0125ea161e30c3351fb2","signature":"9bc52cd85548091733d7e868049c1d9ead96f63305fe29fcd5b7a6c96a318123"},{"version":"b375e6541bfbe5ef34cf8527dfcdb05efb5c51a321d8cad94dfeb294b0a8be22","signature":"b2f2c01ceba7a9a0f7354e4578f2101d0d3c84fe9b629fb39431deb718db67e4"},"573d68cb38e90d4ddb50bec015260c757db0d125ee0d654aa4fb1b0b49632ef6","be66ce7870caf51b7269f97c4051d6c440d1f7c7785e88c848b6d96157ddfc50",{"version":"4cc289549cb8ae711fb3d95e48c511ea31f4a8356dd40a7d809079dcb4bb9f30","signature":"c59fbff386bd6d5a8a496bc46251adf0588096c31f3d65c9f2d8536724696a85"},{"version":"513c5ade704344d9abf7416a4fbcc53347fcaf0887281542b4b7c8a4e942372c","signature":"f8725c0589eb28436e6b55f9c026b6d6a4337a73da7db750aa20938c1922a24b"},{"version":"0ee17b6466bacfa85e77d9f663ae90c606cc0d20cf384668b7ed1d0cf9f50827","impliedFormat":99},{"version":"f2964e514f08c61391018c5252e46784a0a906bab4b8c325d68aa39b1216e4ea","impliedFormat":99},{"version":"e4ba2f64f3666a1e69ad76d17567bc60b3c022dbbef994c88cdd4f93245ca29f","impliedFormat":99},{"version":"24aabbef4113027e66b5cee4eafb5e9968bffc3d2a8dc70ee0cac34f9c2ed1a2","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"e0b4c1dc982abe1ee87259f2d7802da0cc78d3b230ffeb63003417ae9c282a01","impliedFormat":99},{"version":"9850454a975011a654b037d8ff927379fef0f108e1b50667acc9ed308c2d5f14","impliedFormat":99},{"version":"9d8b5a7dc4507123a555a6d6b1ca10f92f5f3be0200e4f299e5a0de1732e631b","impliedFormat":99},{"version":"a50524f38f763dd1db60f7aa695fb84c89cefeec878b4126e582e829137e9bfd","impliedFormat":99},{"version":"c1472990f11b1b40b228805e9ea530a9383d76db30fa4736ab4f8d79ea7c06ae","impliedFormat":99},{"version":"27c7522f700ec494d66247d4f40f8abfc258b192cf3213bad2d9be1a06ddc5c1","impliedFormat":99},{"version":"b13768120c9858ef929dc76318210c1424bc7fd941760d09a66c4d8b00248025","impliedFormat":99},{"version":"44ded5e2f467babe7e775848bf5f42cfc8d8d7abf414ad23cc260615554be68e","impliedFormat":99},{"version":"abec74650dd1d319c1679100eeeccdc7793ca586632a35afe517ec38e76691a4","impliedFormat":99},{"version":"25f7b7a2c9634e131a890cea288b1b9df305ad3b1ec8e459e4f813c275d2faa7","impliedFormat":99},{"version":"70ad050f39855f92fb0fffba8317b9e5609fd59c9475af749894f68a3f93f4d3","impliedFormat":99},{"version":"79f4ff913fd613e3100d0e8456bae487b0a23a52ac6932d2ba4e019041b8b93a","impliedFormat":99},{"version":"d3d646cedc0626118d2715f6fb2f0d4416dd1d529df41f4ecb13c7c6a0adc984","impliedFormat":99},{"version":"3f8e780ae8edb60d5ecdbbf899c193bfb122be16e259597f4348e489cd9d7034","impliedFormat":99},{"version":"b216246ebb1c95751142591226ae88695ea2e27662e696a6cadfd17667cd35e3","impliedFormat":99},{"version":"941a489d1b658f6638ea13ee5f300c1e4e4d15759c9ed1752f3b0b7a06d65c24","impliedFormat":99},{"version":"c76d061d933a60290edcb5009c46a5b7e076431947e7e2f3689f0ec950d96b09","impliedFormat":99},{"version":"cb69cf38c672bffe6abd1786346604618512fa75c882197f327cc4316c35a36c","impliedFormat":99},{"version":"41960290a6756f47c2571b109e306cb722cc33ec30034869d3716d145a044940","impliedFormat":99},{"version":"eb15bfd2d4cd56ddb13be4d329a87f563c65af8c8c7cedbd23698cdca592ef84","impliedFormat":99},{"version":"09d11f4012e9d8f899a51ff01ef0ec716e588d5cde9a1dbcd22e878d693cd987","impliedFormat":99},{"version":"9a5813195fa6b6538dc4a0ac45a2a389a3b2e0485e11bf2925d136acf06de1c0","impliedFormat":99},{"version":"ad40e4f79dfbc4bf0db68f803b113cf81827ed33ac7322ea76bd560c346aac09","impliedFormat":99},{"version":"2f86a4ba6ae2ee9e58edddc64007c18b1da20a12bbc68748963b8fba3d41d66e","impliedFormat":99},{"version":"dfe0e7b018e69e657774f5331698eee575cba0cc6006cd4f2ac6ca28efbaf561","impliedFormat":99},{"version":"59dd1d605664bce977ca5fcd7617f5c53a7d660c6f527607ebe6ef17220a650e","impliedFormat":99},{"version":"9b4bb56003687f5a456f786c45f76b8d29ae2266b0c259c615196f03f1b9cb58","impliedFormat":99},{"version":"f12ea44b7f1ecce15ece7e7cbf3fdb13447197c1440f87f8146bbef547c91ee7","impliedFormat":99},{"version":"48004b0e81f22e91da3cc94d606ad45f535daf770087b119aa3154880f4700b1","impliedFormat":99},{"version":"6c3ac0f95ba9a16fe2f8763830a8a5cc28b842eb6e34cef70619756da7c12ad6","impliedFormat":99},{"version":"b80c780c52524beb13488942543972c8b0e54400e8b59cee0169f38d0fabb968","impliedFormat":1},{"version":"a0a118c9a66853bb5ec086c878963b5d178ecb3eec72d75dc553d86adef67801","impliedFormat":1},{"version":"4bbf82fc081be97a72c494d1055e4f62ad743957cdc52b5a597b49d262ae5fd4","impliedFormat":1},{"version":"4583bf6ebd196f0c7e9aa26bfe5dfee09ea69eee63c2e97448518ea5ee17bc64","impliedFormat":1},{"version":"2b16288372f6367cdb13e77cbd0e667d5af3034a5b733a0daa98a111cfee227f","impliedFormat":1},{"version":"0d64c1390d201b02ed9a28c590dd2d65209441bed8052bbd2b1dbd8cbfcba9c5","impliedFormat":99},{"version":"5c66d23df6b70e9fc2d00d7b5752fd9a8f7757861555da54598a987bd9977e30","impliedFormat":99},{"version":"2c9c63687dd77d284c07dc421f30b67c1caa47ec60afab9ff4497dabc0d6fec2","impliedFormat":99},{"version":"60ba4083cc66655dd1d5842a834a201706ba34258eeb415535fabb2896b00ae9","impliedFormat":99},{"version":"835a8a06ee923c4c7651662ce13c3a6ed5c1eb782f150e8a845cedd123350423","impliedFormat":99},{"version":"86d4ff8ba66b5ea1df375fe6092d2b167682ccd5dd0d9b003a7d30d95a0cda32","impliedFormat":99},{"version":"2065ac4826ecacfee23e9242b7ce26c0561c1c566ee047acf535aa07938cbaa1","impliedFormat":99},{"version":"ed1a9a874474b17782190e504085458125b07a4867b98d60c8670ce70ab3663e","impliedFormat":99},{"version":"e811e3fffa84fd03c0277539f6a8d7eda283c91c63a6da33f7595aeee7f3e641","impliedFormat":99},{"version":"3b492fab910e84d9f1a570f9200fb6608cbc27dbbd0ce2e79169c5c61abee5e8","impliedFormat":99},{"version":"d88f1a67d3ab9bd2d7c9df97547c8a12254103310e03cf202d3c89fb62eb7c23","impliedFormat":99},{"version":"c158a4cdababa4494f43ae1e2c514b07219d7a2218d6205c109ecba6de241ca2","impliedFormat":99},{"version":"1c9e2d4a5fa82ab3ed78427bf154350198bb80236133938ac95b14985470a767","impliedFormat":99},{"version":"1ebd69d7d8812cf122709f648e057ccee41e87fa31b95c07e1ac64dd90954a81","impliedFormat":99},{"version":"585aef18430446770c6c76a97762c866e59eec4413d610d72ced7eb2316957f9","impliedFormat":99},{"version":"6691031d8994f04c27efeb25c8df096686da95c5fc75885d66ac09cdc2ff590b","impliedFormat":99},{"version":"3cc93b80083bd03738547616125435b6164aacd50f5c7a6cb61fcdd2d3b22d50","impliedFormat":99},{"version":"fb327e5bcd5876a087de38e6f668f1b8816ea8c644b6b7ea0cba79b79cc28883","impliedFormat":99},{"version":"8eb43aa3da9b96ec09a65b7ef5ba8d55b533bb8326bdcb65bfc7a037463ffa15","impliedFormat":99},{"version":"ffa3f0c981b3d132519fa5d220d349f035783ba495bfa8e5180ef5f81469366a","impliedFormat":99},{"version":"28d68bdc55f25854772b54aab5f0e4f29954b1fdd3657bcd681369a07468b1b5","impliedFormat":99},{"version":"d2ab4831d5f2673d388c667e733349c290446e5433078856cc8abb23bdc35c36","impliedFormat":99},{"version":"55efe8786be906aa8cd62316e9c3e30f1272c628a2f3a585d7ff5adce2dd3887","impliedFormat":99},{"version":"bb729e632392023ee3100deb7fb3ce2b2ab43446da1d8db228f288af9d6f2307","impliedFormat":99},{"version":"75aca15236606aa61b9751b80e52c3734e60084450922ceac1fd2572cdb3ad95","impliedFormat":99},{"version":"810be332708feecfd18d09f0fa72228ac6a4686bf1d7bc2cb2e27f17334c7205","impliedFormat":99},{"version":"4353ee9b6bdd37f3095283b87127dc6fb6e2747c89bded034e358963eece442c","impliedFormat":99},{"version":"67c8ac2b7ea1fcdd1e5d147b4bfff1964f43c32cb67d5b8630fba6c1832c2ed2","impliedFormat":99},{"version":"21f5208e667c54e1dc22190f23c6c94421a1141121f705ec32b2daa57a84813d","impliedFormat":99},{"version":"3be65a859284bc3b7af028f955f7fab88a2b7833ff9b92601eb117f7c6ee85ca","impliedFormat":99},{"version":"05133e71d47d7a7c50417aebbf2b1bf01a4b5847e2eed16ef3142e1b8a1d2dee","impliedFormat":99},{"version":"a7fb356dd3fc2b75ccd6d1b9d063cecdcf2cae02bf1956c2954ef5f8855b2fc4","impliedFormat":99},{"version":"b358f71ce5cf40bddd4789a8142a73a1e63ad465f922d0e64434bbbaa5631c64","impliedFormat":99},{"version":"8639425c0b1d6ae533072a2c167219ac1f4e5dfd4170628c5d70c32992a57846","impliedFormat":99},{"version":"4fc9f99867b078a33a8a1febe177907df34bf95f66adda96858bf79c2087ee95","impliedFormat":99},{"version":"9204f657e534f74c7464304c9940526fce4a57a8f62cdf01a2ba6348ad06e1eb","impliedFormat":99},{"version":"30f6ccfd89818691317c3fe5d86121c71f9e250c5b6def7c3e353d8e569b3ca6","impliedFormat":99},{"version":"d31dd697039695305f5033cdfcd706da74fc90ef412dc4d2e37dacdf1028f2d9","impliedFormat":99},{"version":"dbf441cbc750769f454066afe3d34a5eaa897a2ead5765db85b12aa39d5cc26d","impliedFormat":99},{"version":"36910d69718697ecbf0c9fcf75ec0a1133eb0bb8cfb455d574f2689ccc7b73b8","impliedFormat":99},{"version":"5eb430e8b7c8d96b9dcd502552eb22aee762c50d7edd7be66168e4db02c0971f","impliedFormat":99},{"version":"fadc13f29b35208a749421b969d55d4c38da457ffa899f89b33a6d2ad133656a","impliedFormat":99},{"version":"73f738da63dfe5f44929dff63375b2144f5d4b97ec17ff11d9eacf6b96542c61","impliedFormat":99},{"version":"0ba861a0e67b7ecd3d27d64fc8fd694e6284b4e8d2f4eb933625847e3b7f0ebe","impliedFormat":99},{"version":"d4185a496f5147371df1d690ad2962539e988c3c48e8652f58973b82b5dcedd9","impliedFormat":99},{"version":"f8771cd6b291f7bf465c4541459d70c8534bf1b02a7039fec04e8e28df005843","impliedFormat":99},{"version":"7986bfe9abc7eb626ec3dcdf1b143f0e71b9780069b8d78e09d232c55e5185f9","impliedFormat":99},{"version":"4948c979891056725b3383e8263a86b4c0c5b71b073f2b5ac362c30285993728","impliedFormat":99},{"version":"4d3efab24d0b06472df82c083be48e79497b097774823ce95f6b599c7b59aa29","impliedFormat":99},{"version":"f56566072b1f1aa01c3d594517e91d18837c1bf338a03cb725a6a609a3cce3dc","impliedFormat":99},{"version":"f4761fb66d9ae8330c124b22dd1f11a11adea443001c97344398164223a2084e","impliedFormat":99},{"version":"0f785a986baac0db1f00a4b842acbbb2833271a9beec5e4b4fc7339424866ca5","impliedFormat":99},{"version":"bcec7684ba2ff4e2edf496af95d50450af81d0d9747c6bff260dfdf39165afb7","impliedFormat":99},{"version":"458e5f4e53598b83981b71d4a50df7682fb685f9022f85c1ab107dbae76433ac","impliedFormat":99},{"version":"e0a3dfc09ec4f5c202814a903e278746ec79675b43836eb21dcaca5484457066","impliedFormat":99},{"version":"dae6ed1e5e91a00ae399ac4e5355099d7b0e018ef079dc72c8dff8d05eee8b22","impliedFormat":99},{"version":"e1f63ee51264bd61719cfe4f33770efe723c35f0e4c6535e6d46770b413dbad7","impliedFormat":99},{"version":"25a5da56fa7572eeb3f128a4bde069b23e4d91a96d721813caddb73cf477a74b","impliedFormat":99},{"version":"6b81f5e45f76ab0c1f341d5ecbae5a8d4667a41763732bfc0973fb51f77be8ef","impliedFormat":99},{"version":"224be63a15a5d59a0eb8badb94343c5719b34d74fbcf6998005d72f9c7681d61","impliedFormat":99},{"version":"779ff6f97f50a1813087bc31ba3750ac1c6772da1d67ad5d79e21c0e8ac80f03","impliedFormat":99},{"version":"f642105c2efde3a0d46c6550e7cc2a9676d2088364fa7f2c3bb386567605feef","impliedFormat":99},{"version":"ec375ab0b9196b79417f1a70d66d2cb214073a3d71d1c6b75b273744c5ba3121","impliedFormat":99},{"version":"d75fe96495d8a1286f75aa4951e48343fa68136cfafff2aece202e4d4d51ed32","impliedFormat":99},{"version":"1b594fae0b8934bdae1d09dc1093d3b683e5057195e4ed04afa3c0050fac344f","impliedFormat":99},{"version":"6d7bbe4bbca9c44c9e0331456eabc64bd19f437eb97496f0f44dbbbd4af01da7","impliedFormat":99},{"version":"5fb018f4d5ee90bf7b9ddd0b00d93df74fc4725c3533b01e3169a5c3e6275926","impliedFormat":99},{"version":"8acca1a84e49acf02547aecea06fbf95b611d9a92e430952ef669305df5614bc","impliedFormat":99},{"version":"c88287dfe7c437e7e8ab68a5216c5947b073084623dbe0d7eda0e39b916166ca","impliedFormat":99},{"version":"179b10a15bf50fd16b9947b3395d8b6810f8d5a8636b5d5154d71ca53882ebfc","impliedFormat":99},{"version":"0d3068ba6e1ee89266238ec06bb2e03daa6f9790da19325b5aa0b8ff859fe303","impliedFormat":99},{"version":"2e656563031c357fc8c4bbf7b27b853d307411d318928be59540ef61aeea2b73","impliedFormat":99},{"version":"0b547472ad592108de851431c096c752a42138069cbb674e296de1ca96206438","impliedFormat":99},{"version":"7ae74cabeacef69bebfbd28f27ec87985a89a377d60bcd83eed4366a7425463a","impliedFormat":99},{"version":"f997b2dabbf63f062866fb7caa093211991599d3f639982d5b5ca6891c88bdde","impliedFormat":99},{"version":"ac2de4b01b46228a87b500f68245c21e13a1617cfd2a940d6f259ab0f8540148","impliedFormat":99},{"version":"11393cbfee469a08bd9f402ae7555fd2d9479587db1db5f58b611774284cf669","impliedFormat":99},{"version":"828bb40fecfb2d3f23d39921004fe72592e1e9e585e65138b44ea377ff421e3e","impliedFormat":99},{"version":"8014921eb03a38719dcd4b98108729f6665fc3d4939b21cb5ff1fad45e404cb8","impliedFormat":99},{"version":"4d83160e9a448b98821a963608912b0aca2682e0db3bb9ee2f5341c681dc8727","impliedFormat":99},{"version":"cb584f8d5b3f132357f869423930354e13812ff7f01a35b687a6c97f23b54601","impliedFormat":99},{"version":"d80b8b04cd063f003be191a12473dac4854f753e213035f789cd9ac4ff81087d","impliedFormat":99},{"version":"8237abc8375ff9525b769b2f751e15f2b6636357edc8e4007e24ee11f3311c80","impliedFormat":99},{"version":"df8846207e7f39021c304e9a889d6d0d894e4742cbbc501a1e4ec1b4bbd2ea6a","impliedFormat":99},{"version":"fcbd8b204236019c9d1225d68e9d37a801451872ea38f228b5dcdd7d82449077","impliedFormat":99},{"version":"13da0f5250bcd5c824ee064a5f848849552f1179fc884d2d41a1a94db3a8a839","impliedFormat":99},{"version":"bf1e372d77d1c5e3214835b5d8d5071aa5cb0d3396c0af5896df3c43cace1d46","impliedFormat":99},{"version":"8b371967a823841a84cec3d1e62fb2355d9bc52088edca58c0fca8472552e45f","impliedFormat":99},{"version":"63c7a2659bda503e3ac241656ce3c3b57ecf80d1f0421b559ac47c22b00db5fe","impliedFormat":99},{"version":"c4509dfedb4b3b105edc9046e1bdcf5bcd54f87677cf2c61a977c178a94f5eb7","impliedFormat":99},{"version":"fb858110b95bfcd56f1202216f4fb8858abc92a9df5ef8a35768457c55861135","impliedFormat":99},{"version":"75082530399569a1ad02950bd17dd7003deb177453c130ea54e1d90ac7f2d877","impliedFormat":99},{"version":"30361f8a198799da5fc601cc1996af1c879bfb727e24a7431c2eb675587757b8","impliedFormat":99},{"version":"6937e913a43ed2f1d6d31e0b8504abc0dfdb49ef9e3da60fc899075c0cbde5a4","impliedFormat":99},{"version":"cc814e22a2a8f6efe1a08ef4192d6ba89e53292af0e31cb01c46abdb463d4699","impliedFormat":99},{"version":"5268807851e01499d59141283aef7e6a264a5ddd46ba39555bba282d924291a3","impliedFormat":99},{"version":"16e28b017503cde4d114703ba79a21f3a35a48d34da23d35240c245d2942161d","impliedFormat":99},{"version":"9fb80d0a23d4b127bb9d7ed415808ae2d24eb63c20b8787615c63f7fbfe8de8b","impliedFormat":99},{"version":"b0007d92735e7fdb06118c6061ac19588e00080e1c4b440794e9815714af820e","impliedFormat":99},{"version":"489cfc9e8303f4119dc04aff4c525ecc7ebe0e009ba8a2526ed9ad848e70fec5","impliedFormat":99},{"version":"eab2119cf3ab1a58347a9e8d676a1ead164c683c70a2c8f4e9724644a433b9dc","impliedFormat":99},{"version":"d565d116af3a8298312615747ed5ea711f21416c664c6263b0a33f2692b05963","impliedFormat":99},{"version":"19fedfca96dc7474b2250109c73a89d5ad8884ea965e088a91bf7076b6e135b1","impliedFormat":99},{"version":"41fa00810ad1fd37fb7079d1f80996c7744b702d85b5d805ac7fc4299dfccbb1","impliedFormat":99},{"version":"d5e1acef71e5eba46cd3ffd4c063105353f4b1fc57e0c8dae1ac9af800b6a309","impliedFormat":99},{"version":"4c351214f95b15953f9634fe53d228dd4251e20c95cc39f312dbf86987ef3487","impliedFormat":99},{"version":"491353275e2a193b648dcfe971d409f99ea7bc432def64e673137b6cb769956f","impliedFormat":99},{"version":"2d1127fc18f22c3acf5ae4910394890cc140e959a03587f24e9cc928229de0e2","impliedFormat":99},{"version":"c9317568117d909e1f880d3c79893dc2b3ea9a2e31305484e02506f82bd78139","impliedFormat":99},{"version":"1071c0970bf15cd4c0767ce0ffeef09d77290bdb049c7f011280a331b849b046","impliedFormat":99},{"version":"30928cb9793f0fb98c9c2f91ac9245d0e7f3efbc7c1049a76602a2291e9f49c8","impliedFormat":99},{"version":"b6d86896a5700e636092ac9a44325cb86d15c633b6ba5b50e823fde8b75a3469","impliedFormat":99},{"version":"08352a2221c70320cfa4e7fa0139351303c36acf08151e5594521c75eca42897","impliedFormat":99},{"version":"d893156caf1899e5d930a4952657be916621a724e1d38b609507ccb738d876ef","impliedFormat":99},{"version":"0785ef5a2b1c633728b2a40ac3f4d1da5d15e1373b02f073a002790ce7b39653","impliedFormat":99},{"version":"295c4f6139697e7cfcc15b8b0455996d4e4b8257b932d6bb1cf76fb83712fe1f","impliedFormat":99},{"version":"83db7715998c6e339e96a90aa27e0612a3aaaa901c91df9a126e1af1f1c12bfc","impliedFormat":99},{"version":"a6a1b9f964e6ab718ff46f141e29e22f42e575ec2dffe2d6ab01f9e27e85a48c","impliedFormat":99},{"version":"d96bcabcc78cff9fb28de80a6f0c8d0d346d69665b7d460f2db22ca3f299bad9","impliedFormat":99},{"version":"12c8190a417034879a25086a0827faa315047916b5663973f3a615791df4ca80","impliedFormat":99},{"version":"3a0060b6cc806747f84593e2471d56a8979e98a5631ba96d4e30ad5f0e5578c1","impliedFormat":99},{"version":"1ad0fdbfdfa1b602e671721a294c90b0735d53735c9bcb7133e00b9769d74f09","impliedFormat":99},{"version":"f54dc25da476b31268e030fa5e1d685b08ccaa08edbe8517a7fcb781a704d7b0","impliedFormat":99},{"version":"57b6891513b588c38d0492e826d9e7fda3dbddc48d4b12b64ada5d089ee24580","impliedFormat":99},{"version":"7244652d91a8b320f03427525802ab51399839be3a1f88ccdf033e50dffbb817","impliedFormat":99},{"version":"9cd1758d8ed42cb7b1bbb068e944271c9429459cda3556e21dfe756827230ae7","impliedFormat":99},{"version":"6204f849be21f13dae6493a4fd08bbe2cd608b0530a0e959d89804a53b165246","impliedFormat":99},{"version":"739c5cf58102e931035ccebcd5e1ecbeab29a93aac4f377f6af966bd8e0ec1f0","impliedFormat":99},{"version":"ccb576cd71d478658eed21216a1e4899e1be81bf724ef25484c9cb27a5497c94","impliedFormat":99},{"version":"cc79d6c1035b63788e02b9f65ee66d33acb3a3dedb101d19e594262635408338","impliedFormat":99},{"version":"c48feb85acb7af2ff24573c36d80d942d74f40a218fd7f52913d5fd08d22487d","impliedFormat":1},{"version":"a01eaf69a6470d818d691b3884c1869f40ba5bc2a79bf336098f0ee60bf4af7f","impliedFormat":99},{"version":"de5e3dfd07bfd4c1edcc5429679d2c2baf9c30899d3a819fca910932ea350a74","impliedFormat":99},{"version":"bc3f9078ac15b845281a2a3b8a47ac3bc6965c330eb5b22dd4174a9fa2872065","impliedFormat":99},{"version":"13b0df7777d976bda4e2755eb53c4a8f168dddc60df6cfeb0c567ff4a77b63ae","impliedFormat":99},{"version":"61acd735ec4e57db72108653f0dbff7d8a36ba86b582423f51458de5a3d2ff3f","impliedFormat":99},{"version":"b28ef9a22e4c899e14c03a2cce76be6a17edf3f6bf4ad86766968f3cc1e9ecc7","impliedFormat":99},{"version":"49be6f7e5451f9570873f93b2ea40ee94277d4c917fdecd239f3afab4ac18fa4","impliedFormat":99},{"version":"52a658120336b9c489a10e87d28f18dd28f32f2213acecf55006353d4432f90f","impliedFormat":99},{"version":"3a67e68700ef4dc2da277e57a692b193e408093400c09e0da8032afe2b33827c","impliedFormat":99},{"version":"3d4a5e90130a272fe58d46c99ef1c4324048c39fcbb858fb01dac80444b11222","impliedFormat":99},{"version":"2a25bd22fb239cdc5b6495250470f9119e55bb1444e12289baed0557ecb43109","impliedFormat":99},{"version":"b66937a42986b6bdc6c67c2a63389963829d5b9a040de66861e7ff0c50912939","impliedFormat":99},{"version":"0ae3df8126276d839cdfc268a26860f72cfe94b39ec3f3e692c830157d20c7de","impliedFormat":99},{"version":"6db05d7e7e1e1b702a9b5a193d36fc45130407d9d7824351bfb4a4ca3f2bb5b1","impliedFormat":99},{"version":"2220529a5928481ebe5421cb07a613815ad74e324f901918668f2acb5d1dad46","impliedFormat":99},{"version":"bee2055ba4efb2753c9f8915c31dfa7cb9a46adc4af76a1775ab7ebe80b6990e","impliedFormat":99},{"version":"d734de41fd16be4e7a5a4592d223e2de27fe004d4540829fa388ce20f32dc037","impliedFormat":99},{"version":"14d79d96497d84a849a07548041ed7a96477fd6d9dcf718a343d84963e3605ae","impliedFormat":99},{"version":"dc8cea9bd9c1e41cc3c9fba9391bac7b4ec185aa8351667b2f0f4f66ade35f69","impliedFormat":99},{"version":"2c03a6fda550ea008b942e152b524cdfdd8cad7ab52c31ee5042977120ea93ab","impliedFormat":99},{"version":"8523bb966249a39076c576b449b37b4a97b9913783197a2d66ae8584d09fa150","impliedFormat":99},{"version":"a7eeaf46c5fca6949210a5e83190782b56f3ef838f2482f88f2886fff2c8e88f","impliedFormat":99},{"version":"61d6c43861d171f1129a3179983d8af80995d3e86f90bdeaad9415756022d4b3","impliedFormat":99},{"version":"33bb7966e2c859326207e0bda17423fbf1bd81dbc8e6ba54fa143f950566e9da","impliedFormat":99},{"version":"4ae63b19255579a897918c94e928c4351c6bb6de552d50f14f41c6f175f4d282","impliedFormat":99},{"version":"6701d92fe59eaa51088a26816117828e532d7b443119534b3c287252e362b894","impliedFormat":99},{"version":"4276e358bf27203613ebe2f917706385875fa02481ed2829a96611eecc8c4255","impliedFormat":99},{"version":"c223c62757304681e71494f26e78e828c83f9612b76c1181b2e9a7cf6f853fec","impliedFormat":99},{"version":"d0f4d6c857e665d4163074039b1fbd996d67b8ef233117412adf4748b33689f5","impliedFormat":99},{"version":"e25f0e3f148d4fb60ad91dc4ac77886119d2ff74f408596477c62f7bda54cb9b","impliedFormat":99},{"version":"a204e4f8f148eacfce004a47fb7920ffce1e7744323c2018731d288bf805c590","impliedFormat":99},{"version":"6ccbc2b75bce17aaf165a3e53bd42f4fb1c490937d73678698f1018712a73a43","impliedFormat":99},{"version":"2f9d66579378e44b999510d976019db0051d4fc25e50774585b5c1690b784210","impliedFormat":99},{"version":"4f24ff20d8144b6c62c7960037d088d4bc3732af9fa25193faceca8d964e9c22","impliedFormat":99},{"version":"8fc690ce074d7139ae7b9863ed58bd187fcc1fdbb51906eb5448fa2c4f69c74b","impliedFormat":99},{"version":"d0b495901d635e1f4ca7ef7ce0dd1d0f033ed575a74e7e4f599ff23b1464a02a","impliedFormat":99},{"version":"7b4ac20408b7abd1ee8046e17c906cb9acd06dadddce7274a6eb7519652fa374","impliedFormat":99},{"version":"859cbab6c3df49a874e53e93a5f31cd63da9794c539195566f56cd4eafd83baa","impliedFormat":99},{"version":"1087a211445a1facf9f3e6d12d0e0233c20dfc5bb38b94642b5cc5798a876a31","impliedFormat":99},{"version":"ab0429a9c1ba7871f47837f8790f7135915e5d9188578a1c433bcec320d42b09","impliedFormat":99},{"version":"92a8467bce8d0617b966b87b72b07d5c1fb83d2293b85b787ffaec73fa0ac675","impliedFormat":99},{"version":"e72c292bbfc6e6c9419861e1f7819063f4a98b187168189ef29d3616908bacf1","impliedFormat":99},{"version":"ea5121750c31d26449b306e9c6946c6edcb62d34bf20eebb64eeeed6c49a7255","impliedFormat":99},{"version":"60b416c33c8b74e82abffcec6a2027794ec4b7d3d6ed9d80fa898b8d7aa71b01","impliedFormat":99},{"version":"98437adda1b8689d60e70cddd7b200afac8acdbe7a583b1bfde6413a3575849c","impliedFormat":99},{"version":"c521cbe2c66e44386af345da9f89c134b9d75c89cd3445f07d7f39b3b52f7a30","impliedFormat":99},{"version":"40bb6f38b677b8a4fa4ad00d7aa33d0b95a9c13a2cbb82f3794763042be158b0","impliedFormat":99},{"version":"48be759e17b32da97b4847c67d4a976845106c8e01d8758fb0342d5793fca88f","impliedFormat":99},{"version":"ee36a7c4f514a005a5510d9eceb6d2d88b153957b1fabb7fcc68947b295650e3","impliedFormat":99},{"version":"bc3b202d775979dc25f8141dedc3bbea89b3b9589e626bbc02d25c28881b19c5","signature":"bdb3254d391546f7fcc08234b27773544e723bdcfe224f981718f48be41f02d1"},{"version":"f52977089c15e0e124a3edac21e922c1a499fcc74a44f68a97a3ac926dc39f9c","signature":"607c3a01592edeb86159edfd26749fc99b4ed0636b52cdcba58bb2d7d014aa9a"},{"version":"4fc373ca8ea809216ec71c5ae619ff137207769878d6e6c3ee881133e8805437","signature":"94e6fe0b64df528ca8abdef9d3ac76a77b23d188da8d105f7d8b32ef863b02a7"},{"version":"2aa4d43e21220d581f7b5da2ce37e27c2333663c53acff2a22b19d9d5ad5cc52","signature":"8167afceb8c5c85e0da42bd37cc822ed3f97fd64edf8aa29e69980d55b847215"},"7b7082c1cc056a6ba486b18a22ffa996197e1c1423995ba0d26896cc743d1d59",{"version":"4d66b811c640a54fbd426906f5e4825f883a1230ce19a8f7704bed70ba2e97e3","signature":"0284ede58b78b3abffce6c29c13518312fde936ccffd9511d3abe77fda0f781d"},{"version":"59b794157e7591bd01b063413aa34e0304f34960ac1a1dd2e63c559d8c4b6f6a","signature":"82da4b06a9f439d9ccfd46fde2a9dccf63dc6502dbe501e3a6ea5fe2ea64a424"},"348263cbe39e2c0c512f80e40daf32ef63e8f97d80e3c62ee575632ac59a9e89",{"version":"5538da9cedbb8e829f62270b63879a58de928f6b5b37c7a5b58a5b6899e0a99c","signature":"00bae8ccf6c60425962dfdf136ecd157433856e0fd17261c0d798b7cb53eec0f"},{"version":"80d0ee366864367942ebd51b0cf10cde5862086b096e47553c0718f01580507d","signature":"ab4a8afb9d228d4523d3dd61916ef285464d529c05d48a83c7f7617352fe8830"},{"version":"c050b06dff6dba5c9caffd815c4367d9efc29d7a2c64043b5f3ee2fdafa29c23","signature":"674b6387c991fcc2d9f5a33687f0de370cfc09f1fef0015f3e3bf39a21a106fa"},{"version":"c5c5c759ccbce27c361c1729a7251320e8dcbdc39d318c2e565f6817ad41f670","signature":"5d2bca784639d3ff456c7aa0d8b3e8e0c8c361d650b27bd5bef0f6271f53457a"},"c2bf511d724d4dd226e5b9962d8a18d2018a5841eff3ca02f5ae8aab24364e3c","d43945cc3a2efed7586f3f336b8ca9b1154a4d192e2e36fbfdd809c6639a6e0d","ee45ffe1add6788342b6710dcd7b4d76fe9e68b23ce7b9c578bc0ac077f356e0","599dd593224363c6d143f95c6fd0adfb91ecf65b8a5bf221a68d2878e77bd7ec","265cf3fcb418408735cbd26d26a0f9669ad594adc922b08e4921c8d0c292795b","724b020f5dc57cd87282d7098209457b255f95f15af5f36651557fd011baad2a","dec657fc50546a02114f72571e76dfff32324ea8e21af07f079fe929607bd71a","506e773ba65f0a7a01220b74c584e875cb9d338adf90236be42fd7f04df8d741","b3e78189146ce9426484d45cb630177726941deb8d541dcaa2beda85d30853bd","46fae3bb2a5ac570a110d8b1ae2417c8131735aae749aa508ecd7941f2c8601d","b9e196da6a2cbc8d14bac0fc25329382abd7056a043965da3964d7e2d9d06ba4","672b58829a1b9dce6da112abc64f014c14609019db3f8242cb8c502853d98a30",{"version":"dc729af7dd528e068902a07db7786b8c40f713a2fd8515b37d873a57b6c766ba","signature":"99d61b79b2fb50f35e3d3ecfab1454d06ee9bfffc2cef5e4b2855d6923bb2b31"},"61475735cc2cc89debd72a2c02773cdeaf5be25be4aa54bd8425f12e713e5adf","a0384215a8ec3b99b2d9bc4c3dcbcf7e612e5ed17d33a762d241ff995663fdda",{"version":"5fefea11b32432fb9633cb8a4693299f65515418205cdcee08d8d0f46725476f","signature":"cac9bfda527ce7380dd6574491d496bd08379ce927208393c99ceffd134b8b0b"},{"version":"67ad038da4d9c9f16ad194caacda03ce8d1ee78f8890b606cf82ccdd49a2d140","signature":"96d146c249683cf4fb9c774f6bdd689c47aceb8a3e5eb6abdd6ecaab7cc98d2d"},{"version":"12de275cd03adfa2f9525c373d15cdd3fc676b849eae8cf0299bdc3976e95ad2","signature":"8250ecf69805adb99e04565b5d795b5cae53987cd442150f4e4a3915bee63969"},{"version":"3ec4d65756dee2dc346fb104a3cb1c58a70bdd3eff141c0b2ec3ed5b29b10d66","signature":"3457f95274bb92f1b5475f8b53405815fb94aa8f8a9dab0df724718eb782c64b"},{"version":"b689a3f32a7019b31e63e898e4b7fb059b5b8e6a7369dc087e8b51a008220a4a","signature":"bc155f95e3ce2a3abcf779c35e94e839ee2806ab5ec4a5571ddbe36cfe19f938"},"deafbc5b2c1329943a209aa3d3c75c7148ba61470489e4ed4bec610fe73900eb",{"version":"e193ddb91bc75bcd124ef5796098d6b6b2e1eb4f188407656c7fb04eb3dc38a1","signature":"b470fa19c7bd67a1c4d16993059bfc876f171632f4ba9476d34530b00ba799e8"},"9d9b8257e8660aa671c8bc1089a33b57fbeb459d59eaaf76f5dd14519e1dc279","f70f5bdb5dff96aeb3e2997f603133e9d39b187f0dbd5f1945cb4d8e4525ba81",{"version":"48655afb136b4bca3844b833a0f3c3e9df837bada387ccc9283d12f029123c79","signature":"34eef2a015e320daf710d15e3fe70795e235491b29c307d052ac265982eb2a12"},{"version":"6b83491ca98ce7dc82ec0c54f1456705c9ea08f5a39fa8cea17134b28e2a73d7","impliedFormat":99},{"version":"33aa2f336bb0bc598652ddd1ad3095ef7a14e4dbed9cf829fa9357e989fff31a","impliedFormat":99},{"version":"d691e546590145171d00d78b341bd3ca4844c96eb34f870be84058a1cab585c3","impliedFormat":99},{"version":"c9d12ca3f67129b3ed2b81bf54537c970673cedd05ba28fbeba70c1e8aff684b","impliedFormat":99},{"version":"6f0b69f7afb2ff04a4b73fae6b43476c14349a438881c7a8c3d34cbad2c2bf3b","impliedFormat":99},{"version":"279bad0c52467a3219ef6659a47bccfe96c20c6c9429283fa3d017afa965ade8","impliedFormat":99},"40b8fb8bc2628b280a7c7f627ac71c36d9b17e67ebf0b1bd5316d8490703620c","b281e5c08590d0bb908060cc3e23dc06569f5f06a7a5aca06c72fe259fe2c06d",{"version":"d015f23369da065788916bd2a85e2e50e3fea770da68263e8a820ce02f46b431","signature":"6a99fa5388147a7858f78020a0cdccf98208ff689cccfcf5ee05c66d5833abd8"},{"version":"24ea2da8574ec27f6913aaea7a80735d5a9e514fa4fdeb0335ce7d4ff21ba74a","signature":"c14ba7d25c74009cce6ff3a06c61c081abfc751006394fec531124330a5bc556"},{"version":"64c116ac12bf42c6ba1c60ad2e4213b8b227a67b87a8fc7f3992f1c5474de16b","signature":"a3ffee57de47b1ead2bc02fd45b516a385fc93e02ede832ea427589863b39d5c"},"e8e3e1941486b5352f41b44829c5899c86898ea02f2b6124f2d64157042ea776","632a9816e7aa68ae93d59adefc7d91b6a9754b7edadda42cc49e4d8db35756fa","ddc1ce9132b0e03e25e615a3ca67a54be4180e72d15efbd6fbba32cb879e7739","236e43915529c59864fd2059a2624cf65a05cec1e2456f53ee1ebc44561ccf8a","2d8865ca269b00c92605c75c1677bddf749200435029258803b2f2db1289b7fe","27b88088f2eb26ff83c71ee995eb9a88e0e2697c1999d2382a410bf5e1e96cff","4673a3a28264b89cc12693e547358ff1a9fe1a53397fd98eb8c7e4ab7b2476e0","bc92537661352304d7f1be1062726c3b37f065dfc7c7f78b4a0e3f3b42db2ca5","d198351c36efc836071020841d0cb9853f4a320bc0082312cdc080b0557a971c","ffd7f2b22ed6ffcc276da1ae33983c1bc98806bc582aed9847469616571078aa","1727fdc7d6f0bbb3ef66adc8b76f00d80d38c85091bf50671496d8fe143c45a8","54c8401411fe1d178561fdc01f2ae000f0fcbee428f6559cc854a49176c117fb","da8b3f81c3a623fad80fea6fbe270edf77d765fafb24c0ebf4504227142ff775","ad818428d23bf868989de5e7e93d5d055cb16a574c4d780e7508acf5e5c947b3",{"version":"a25c24b754d7350335b2aa31c8a3e3a6cf58231166b54bdcb5510ca84b101b61","signature":"332a530ab2fef5071ff5bb2c698ffc2a35e3e7e877b8dcf9ceef03bd1ed2b397"},"a8ec16705d13222435652a75d1adf3c473af8cd22400c70930ebdb9c5817f665","7da6a23f33fb751da93c219a373c85778d59f848127a49aae5123280c4922e31",{"version":"e757788663ad2c4f463bfff5480779e252b715f731ef9ecc8b4e3a26178ae998","signature":"53000289c2d9d099d8798e602d32890e337645a6f3ebfe53e07b59f96b7b137a"},"7332c71fe9f28a00902fd53a15ccfcd457ba2f811023afc8ad0794a912ce762b",{"version":"360ec64ec424f339b28e2981a649501b5e73d3a4e9cd7daab86d3c1d0f113d88","signature":"afbcd22343476fe4ef44bb0ff0d57f1227ccff581ffb50815dc6332113edb9e9"},{"version":"5f8bdcedd2c7733ecd4118417cbaa51e5d0479b5f4aec42faaf16c43f53d6da3","signature":"624f229d0f23d48e32cc5487230486b570a0de012fc38146172481fb8be32cdb"},"fac4f17495d42b9309623d4949b84c1696450760671e66f0f93d75d15a7c7d1a",{"version":"bf5ebd0a946bf3abdc171c982ffca0aa2a01147d20b792fd311903ad5d845747","signature":"4e61c42043e22d2b8993e456f8e44fdeebba62381ddc4ebc60855b44b2185e82"},{"version":"e415d168351a4d6ae237d9bdff52492992c2675d510e3bd1c880777136509e2c","signature":"c336bea1cfc838e69dc42f8a4bec001492cebdd886fa381af4ffbe9eca4e61a6"},"6f7634849b7ef2328f3a15c21a614ea9e531b6a0916fa3c061383719ce07499c","449d04e051c469e4067fba51d7ed6ab5cd1fecac99ce2ea0b2b48ba51f690cfd","0b66494b13cbf27868c7d7ea05f2a1967d29e34f6485519a33561a2d6b851c35","02a76bd08302045cb48048731e960b71484816746ce0b26db44053ad5fbed5f1","9431276e76c3999ec9ccfe226849f467e3f34316fd5bec4915495b5f9367a906",{"version":"011ab4928ba0057256364ce4dfc695d6ad5369480d5d9610ceaddd9d51e98635","signature":"dead3834bc9fb31445798e1a961aae441feb6661f6a73b97c2f223a5a2b16bae"},{"version":"540116188d31dfa794b882921002731d97f60dbb7233a1e084c21f59d5c3e08f","signature":"82f2834cd3eb66391036870c93464a09fd97b74d7a3bea695100471c9da1357e"},{"version":"ff4e81f251567978731756b0892e54b2ba534aa182085ac57d6e8d855fb16f81","signature":"5458592a47862700562c603baa377eb3598c651edcae66fc4b41c2efa5b629e9"},{"version":"9c81dbaae420470165ce4181b378df3fa5e806259cb477ac794f887f3d30c7c4","signature":"ca20734dda9f004b09037fe65a8290d82777d1b1a07b281dbf43006fc30e4a0c"},"d0726eb0d62ade96bd927574c80684efe0b6e92c83443b1fed8a458011740c21","20108bd3594842afed7126119e8869ab7571b921010266978904838e95bdee02","591b5016e6b31c97dd388d932bd2df719d2ed4d1f8b804afd5a848fc8bad17ad","9c2a0f2246ed3a29e31f43ad3dfa14fd0861fae9c7550d3f5e3fb2b6801b257b","f11b4176ab0e6b07de56842d5bf84712b26d160b3f116510a06f0f5bb4004f8a",{"version":"c03a52cb76dde599d5d19c1424eafbc74934b450b24c0d746c4f42d439bd86af","signature":"d335a2a42133883353c1595e377113687adc449d0a7391dc1133ee34920297fe"},{"version":"bb9cff9c2211f50ad9254ae7883227f06e454c8d5bb5d0bc9719b667efae6d43","signature":"bced04370d5bd5e3b03a193aa3da10699d7c9d42530f1e1a9d23b9ea92dda0ce"},"3466320535d77f5a617fb58a690223bfd03d5377b517482bd0e977785e4b396a","4435a9b91a18ff231a51e5e5f94a796b0f8e5227f0804d520d7d22d3990cc329",{"version":"235c9190d2e057692505e071ebffef74d662d4e58783b75736ff37bbd9032048","signature":"ea600c3ef531a4fd9ae3fcc2d14187b80de3d5c2a8ff666b71c3dc86ed3e8c62"},{"version":"be8e9ad77bf73dc2f83dd94e6c0490d9d972ffa41559c372387c064aeeae0936","signature":"d95be6cd44e64f2a9a6ae85ed45990ceda28ab13acda3660d726bdb7718c0c53"},{"version":"1b6bccbdecf9598d73e9eadde8b628c61bf48014b3c2feb7e4b59b5e25133659","signature":"b51c9385e8f90d462dec7619997b6740a4a96bc3655e394502228a9ebdc1b225"},"a625e234e54e2cd62cf2eb7baa689e359e4685bf3470d535d3e2dd62aa93bbe1",{"version":"15fb0a78fdb235207edc7244c9af54e0a8d74e35988278a79be4a31f292e08fc","signature":"73dc59d808170916b0194f518c96d584d4fc6e3a66381069c2305b1b32d3c1be"},{"version":"713571db67fa81007d8267a5c35bd74662f8da3482f2e0117e142ffd5c0937a7","impliedFormat":1},{"version":"469532350a366536390c6eb3bde6839ec5c81fe1227a6b7b6a70202954d70c40","impliedFormat":1},{"version":"54e79224429e911b5d6aeb3cf9097ec9fd0f140d5a1461bbdece3066b17c232c","impliedFormat":1},{"version":"6fc1a4f64372593767a9b7b774e9b3b92bf04e8785c3f9ea98973aa9f4bbe490","impliedFormat":1},{"version":"d5895252efa27a50f134a9b580aa61f7def5ab73d0a8071f9b5bf9a317c01c2d","impliedFormat":1},{"version":"57568ff84b8ba1a4f8c817141644b49252cc39ec7b899e4bfba0ec0557c910a0","impliedFormat":1},{"version":"e9458a859b5277166d30117ae324e2e283c02467e59070f621855ac47ffe3e72","impliedFormat":1},{"version":"3fd17251af6b700a417a6333f6df0d45955ee926d0fc87d1535f070ae7715d81","impliedFormat":1},{"version":"df9e48304083ef3b9230064c19b8fba228a83d82d8a8a80d3a1d76fdc36728c7","impliedFormat":1},{"version":"a04338d8191ebc59875ebe52eb335eacf8c663adb786ee420ba553a808566dc0","impliedFormat":1},{"version":"3eeb5791a25114e40457eea09eac6e7bea6944fa1e55c4be6d80b5dd95f0cdf3","impliedFormat":1},{"version":"f79dab612917081d3097716db491d46ba71760fe960bb2af7f3f85fb28dd8ebf","impliedFormat":1},{"version":"7fe31f933471075abbc4e7529805ad31251a7019cb9658df154663337e9bab60","impliedFormat":1},{"version":"aeb8e8e06b280225adcb57b5f9037c20f436e2cbbed2baf663f98dd8c079fc02","impliedFormat":1},{"version":"8301312903d99c319863dc7f788dc0e1a56915d8959d3e2ac78b5d12b366d571","impliedFormat":1},{"version":"f32c9af2ceaa89fa11c0e1393e443cd536c59f94a1f835b28459188a791d0d24","impliedFormat":1},{"version":"0f8d5493a0123ebb6b6ca48a28ff23952db6d385d0505a2ba99d89d634f55502","impliedFormat":1},{"version":"5396ccd4007e9fea23eda8c4dca1f5ccfad239ec7e13f2a0d5fd2c535d12e821","impliedFormat":1},{"version":"9c44e80d832d0bca70527a603fd05b0e4b8d1a7d08921eecc47669b16f0d0094","impliedFormat":1},{"version":"8f6786732b48efa9dcf54e3cb5db9b37e93406ab387d0180062b0b3d1e88003f","impliedFormat":1},{"version":"313c53dbf07386f95b55a1eecc825d7d268437c634e9d42aa9a30417f71fc993","impliedFormat":1},{"version":"53dc4527a3ed51f201376ea3a11152afe0ab643477719234f69122f3e19fb7f8","impliedFormat":1},{"version":"3f9a50b3bd5d05ce64a1eaa5b6d9e4557b09f052cdf770f6960729230865811b","impliedFormat":1},{"version":"28e4024d110000ebd31e4446083d8491e38a8c4f64e8b710b758399aa317ab3e","impliedFormat":1},{"version":"48e13fbff9dfc83cef7794b3ed560059eb2fef86e7b73b8221da195ba8a6fdc5","impliedFormat":1},{"version":"d88e0b5b07e7da500c1fcc6b4b1ffeacd8c4494148ee05657c076560ef23c318","impliedFormat":1},{"version":"7a9aaa2da69a99ddc1af90adc264f4c46d9b5bd5445827fdd10b5eb6b041f856","impliedFormat":1},{"version":"086caf9537c9e76607d11e605f2b1892b7f4e061a3d85de46c6b2718deb54a95","impliedFormat":1},{"version":"9be97e55fdb734ff04137191bef5ea38ede15c7ec1ca4d51ab0897c023f38610","impliedFormat":1},{"version":"4d1b4a4e6e4cec22d76f7a5bb6d909a3c42f2a99bb0102c159f2ebbdf9fefe09","impliedFormat":1},{"version":"30a82ac2d8c8a45ffaaf0b168dfcc9e477cac0c0928a95ac95caf799a7c83177","impliedFormat":1},{"version":"a98ab1b88f65636695b52e05575b13bda171a758cee50bad0e6749fa98d56e2f","impliedFormat":1},{"version":"957e2258cd6c97d582673e83239141e810a42caf4862514a7db6806b35414c25","impliedFormat":1},{"version":"679652fac17b05a2fc6ec2ed7dfd96c01d29528ee2ef976b5a486c82ebcacd89","impliedFormat":1},{"version":"b6b12d7fc9caf24f95581113ceac63c12a674c82040b60e1f35fdc972f36d24e","impliedFormat":1},{"version":"066f0ab8c0d0100b9db417204defa31a9aa9d8c6194ba7aebf71375701afcf21","impliedFormat":1},{"version":"1d500b087e784c8fd25f81974ff5ab21fe9d54f2b997abc97ff7e75f851b94c1","impliedFormat":1},{"version":"c947497552a6d04a37575cec61860d12265b189af87d8ff8c0d5f6c20dd53e53","impliedFormat":1},{"version":"b2b9e2d66040fdada60701a2c6a44de785b4635fded7c5abdf333db98b14b986","impliedFormat":1},{"version":"61804c55cfa5ae7c421f1768bc8c59df448955842264a92f3d330d1222ca3781","impliedFormat":1},{"version":"77a903b2d44ced0a996826e9ba57a357c514c4a707b27f8978988166586da9e0","impliedFormat":1},{"version":"3e46c022f080be631daf4d4945ce934d01576f9d40546fd46842acaa045f1d24","impliedFormat":1},{"version":"1ed754d6574b3d08d9bcc143507a1dacf006bd91cbc2bd9a5d3d40b61b77cd88","impliedFormat":1},{"version":"5d73ec0f8d0b16281b3e33f24670e8b131f1019b3584678d05b723301b48638a","impliedFormat":1},{"version":"aad61798065cd6be03e53ba862d6fe28a5e0347c8b54a26f7af264abb2228d81","impliedFormat":1},{"version":"d03447d1f0c153f4ea2b00135d73d19569b80191fba23fc78dfcbea62f3f3ab6","impliedFormat":1},{"version":"b5b341eb160b9917993bdddeb42e8e52d6333458a59f8c160a4001e6822569e9","impliedFormat":1},{"version":"19a15f51d36de3326ac7aaf3518558c0823557a33f9380753a1f8ebb3b3a5eab","impliedFormat":1},{"version":"97fbcbc2dbba4da759d703ec478404ff6838c9d51f420dd08a193f4dbfff0a73","impliedFormat":1},{"version":"8f433a52637174cf6394e731c14636e1fa187823c0322bbf94c955f14faa93b9","impliedFormat":1},{"version":"f3c2bd65d2b1ebe29b9672a06ac7cdd57c810f32f0733e7a718723c2dddd37c6","impliedFormat":1},{"version":"a693fdcc130eeb9ca6dd841f7d628d018194b6fd13e86d7203088f940d0a6f20","impliedFormat":1},{"version":"a4aaa063e4bb4935367f466f60bbc719ea7baccc4ed240621a0586b669b71674","impliedFormat":1},{"version":"ad52353cb2d395083e91a486e4a352cd8fab6f595b8001e1061ff8922e074506","impliedFormat":1},{"version":"0e6ee18a9299d14f74470171533d059c1b6e23238ce8c6e6cb470d4857f6974a","impliedFormat":1},{"version":"f0b297519bf8d9bb9e051aad6a4b733c631837d9963906cf55a87f0d6244243f","impliedFormat":1},{"version":"35132905bd4cdc718580e7d7893d2c2069d9e8e4ac7d617e1d04838fb951c51a","impliedFormat":1},{"version":"6c50f85b63e41ead945f0f61d546447fa2fabfd8e6854518675ddc2400504234","impliedFormat":1},{"version":"e67aa44222d0cfc33180f747fbf61d92357a33c89daa8ddd4edba5f587eaf868","impliedFormat":1},{"version":"31fea62febf974f1a499099bd47a2d18655f988ff2924bc6ab443b86ee912a21","impliedFormat":1},{"version":"4021b53cc689a2c4bd2e1e6ae1afcf411837c607e41c9690ce9c98d33b4bce4f","impliedFormat":1},{"version":"1ac4796de6906ad7f92042d4843e3ba28f4eed7aff51724ae2aec0cc237c4871","impliedFormat":1},{"version":"94a34050268481c1e27d0ad77a8698d896d71c7358e9d53ae42c2093267ffd53","impliedFormat":1},{"version":"f43f76675b1af949a8ed127b8d8991bb0307c3b85d34f53137fe30e496cb272a","impliedFormat":1},{"version":"f23302eb32a96f3ab5082d4b425dc4a227d14f725d4e6682d9b650586a80a3e7","impliedFormat":1},{"version":"ee7cc650232e8d921addfdea819290b05b4d22f7f914e57cd7ca1aa5582f5b29","impliedFormat":1},{"version":"2ad055a4363036e32cebb36afcceaa6e3966faada01c43a31cc14762217ee84e","impliedFormat":1},{"version":"fba569f1487287c59d8483c248a65a99bd6871c0b8308c81d33f2b45c1f446e7","impliedFormat":1},{"version":"75d774b9ccb1e202709ffbcadba1d8578bad1d6915d86633ac056574879269b0","impliedFormat":1},{"version":"08559fafddfa692a02cce2d3ef9fa77cf4481edd041c4da2b6154a8994dec70e","impliedFormat":1},{"version":"2e422973e645e6ee77190fe7867192094fa5451db96eb34bf6bf0419cef10e85","impliedFormat":1},{"version":"349f0616eb0bfbcaa8e0bf53fee657bff044bff6ccaf2b8295be42d2c8b8a3f3","impliedFormat":1},{"version":"25b0285ec91d78fcc1c0800022dd15f948df01b35d1775dafbae3cce5a79b162","impliedFormat":1},{"version":"8a6414c6d70225e89602733cfa2af2c02a03b2af48c865763932c3892df782d2","impliedFormat":1},{"version":"b37402e79f4cc5103b12b86dbdcbd98124a4431fb72684a911ef6ecf588cc0ef","impliedFormat":1},{"version":"6e72c4d0e83ca2d44207fa1de293b5ff260401ed706adad9dfbc0df7a3e53abe","impliedFormat":1},{"version":"b569745230c9e5cdb79ec7f1458d59d5e0dc04bf06fb8d398ca9d285f07c2147","impliedFormat":1},{"version":"9ddbd249d514938f9fc8be64bda78275b4c8c9df826ec33c7290672724119322","impliedFormat":1},{"version":"242012330179475ac6ffca9208827e165c796d0d69e53f957d631eaaea655047","impliedFormat":1},{"version":"320c53fc659467b10c05aad2e7730ba67d2eb703b0b3b6279894d67da153bee2","impliedFormat":1},{"version":"e2efe528ec3276c71f32154f0f458d7b387f0183827859cf0ce845773c7ff52d","impliedFormat":1},{"version":"176c7a1c47b5136de3683fbeac007b727905ca693dbd8cc340fa1fb9f26b365c","impliedFormat":1},{"version":"ebc07908e1834dca2f7dcea1ea841e1a22bc1c58832262ffa9b422ade7cbeb8a","impliedFormat":1},{"version":"6111a75d1c907033065b0d64efed162ae8027300edfcc6d231be5aba02f92497","impliedFormat":1},{"version":"22e92cabd62c19a7e43e76fba0865b33536b6434e50a97e0b0220c34c74831cb","impliedFormat":1},{"version":"d1f5f6ec7cafb6de252ce831d41e8d059bf7c44bd03bb4f8327b28b82c4d2700","impliedFormat":1},{"version":"96fba29a099df9b0c7d79ca051d7528ae546a625f9a16371b077e09f4f518e2d","impliedFormat":1},{"version":"79dd276b87e761fb23979c0d270974c19f1b3fd51575bab4691abf7701fe8154","impliedFormat":1},{"version":"764df94196883c293e3c7bc0d45eb365a9082c91a18d01f341675186f2fe8225","impliedFormat":1},{"version":"7654616453f4b4aabb6302828f884d41adddea7cfaec40d65ed507e637ae190d","impliedFormat":1},{"version":"b310eb6555fd2c6df7a1258d034b890d7bddd7a76048a8a9a8a600dd68a550f3","impliedFormat":1},{"version":"93d5a78ff448731738a42b22bd78fc52a92931097702218b90fcba5a4676a433","impliedFormat":1},{"version":"dcad64cbca4b8db52101c61f6771ef1ccca14aed432b923d86c0c7def3073b42","impliedFormat":1},{"version":"2ea7aba09d12e4e8f550206fc8dbf13d0bb2cc8bb7469fb9ccef39391dfa443c","impliedFormat":1},{"version":"d7f91db766561a83655b535c2f06163647bd780d9bbb2c19e50dec97c0e391ea","impliedFormat":1},{"version":"1c7951a2784c2fef0ed6218bf18cd3d3b895667881ba4d586b2bc15fffd0ab29","impliedFormat":1},{"version":"3d82db9fba4a59ef5bcc45f6a2172b6b262fd02331fe55ec60b08900f5df69f8","impliedFormat":1},{"version":"2594a354021468bb014f4e7cad72af89cd421b44f5ac3305a6b904d5513f1bd4","impliedFormat":1},{"version":"cbbd8d2ceb58f0c618e561d6a8d74c028dcbe36ce8e7a290b666c561824c39de","impliedFormat":1},{"version":"8c70aefeaa2989a0d36bb0c15d157132ad14bd1df1ce490ad850443ac899ba82","impliedFormat":1},{"version":"6961f2279f3ad848347154ea492c1971784705bc001aea20526b1c1d694ea0c0","impliedFormat":1},{"version":"2ae0c35c2bffb3ad231d40170402436a4b323fe9ef1dfcb9a20248090f600f36","impliedFormat":1},{"version":"9c1bce25595a518eaa5644c0af484a3794319ef22525bc63085a8137106d3ed9","impliedFormat":1},{"version":"a33ee8bd8beb3b14c3ab393b85717d7c1e5aca451ebcef09237675fa9a207389","impliedFormat":1},{"version":"6c5d50dca19d6fb862c9eac0db1b4882add3dd47a38ba5ed74b117b3860d078f","impliedFormat":1},{"version":"1f5679d1cd7b9909c1470f14350f409df0ee45c3a55d34c53f7869bf6d93b572","impliedFormat":1},{"version":"cc025898e42b57965a047d4b1d70dc6b6643bb810ee851f553fe1d25e7799b46","impliedFormat":1},{"version":"18db16d2f44b0d2c25e600db4ec445a9df4bbb39dc24e087fbbf484d08f3f663","impliedFormat":1},{"version":"2a6a9b2f0f4901d75be5ac50accbd8426ba8ad21b3af898c263cac76f688e457","impliedFormat":99},{"version":"a56cd861fd6967350de7012df01342e6bfb0a6c8fa409c0df3c806de7911cb66","signature":"8958020254901336d37a2d2aeaec757c7c236c2f8879ee1794fba5dd38488f28"},{"version":"fc29d85c02c94b75fe8665b22761f8fb76b562f5698e798f2a4220ba96f1de97","signature":"a5d6a63ec866ad33f9a2054d12d1f642e0198db66eb5cf6616e37793ef9b9ee6"},{"version":"21e7077db98cb6ff3acb72ed33ee7874b5c93d3a6e91e452e87a5284efb33a3c","signature":"ab48a4c4d9fac926112af01b0876d924d3ee50c2ba794d3a8fd0c463ea7baebe"},{"version":"ee09b9348d02aec6cd1cebb94c27896c10d47efa042a3fbc9c90dd6a7f6af752","impliedFormat":1},{"version":"bf673997a66d2225f43fe1b51cdddd497d0a8c08a990ee331457f2d017563075","impliedFormat":1},{"version":"98137bb3bf4804403e7f845acea4cbfa7cdad2c860706a120f71a1206d9b65a1","impliedFormat":1},{"version":"e101988cf0597d538f2f70bb1be35aea6f95ab53e1ef01d419d3069017ec2581","signature":"20d05f2a01c43752ccc663c38f0d944aeacb5fde7f015a8ebc77a66074039d62"},{"version":"f945e0aa65fd52626fff3ce32dc81dce520fa154edbf8a1297ba13ea5f365c20","signature":"746f06e114ca2ecbd49fd772d48e344824aeab494182791d28a318f0e000db69"},{"version":"c96b91b4f025f3eae2b62942b4c4e02ab491bdedfdf9c27ee73fa7f1622d8f23","signature":"9ad5a9332253778e9e4e69cd80bf6477dfa3711eb5d4b7b0b8f5ec6c7dbc9bc2"},{"version":"d816351a8179f38ae8ad203f283d742bcb4dc6b1f1e1ad83246d8fe04ca659f9","signature":"2e2fb5359b80be060901a1820aced2c5a2abecb4bde5cb55a9e4c5c7998ae9c2"},{"version":"9ac0de24a309382061d94c9b762015379666931c815566302feb6947de164730","signature":"9cb6422cbc0ef5cf9e7d5871118cde920d14069d807fa4c06f3c504d04f77533"},{"version":"4699a1dc36e2c4bcdf7d395c929a8fdbe128c2953c0ecfaca25b960a22948216","signature":"ddf28521acdc9aa36d3794a3c7c374a65028ac5974018fbceacba01484697303"},{"version":"ca602b7449dfc3353ebbf620c65611b7786c2468b80f96649a5c92292507aa85","signature":"c8fe4973428aa33b8c551b4be976fa3855fe9a185960119ce8eb74e486b372ee"},"1a20116982e314afbecd65cc00c8888dc0f552a3e6ede2a5784a786c7ae4f650","9405a6550eedab082e1857d59c8593bcdad05b9673eb07f5730aa19d46c035cf",{"version":"5dcd85d607cf3259797cbdd127c21ab590656903582c388524b7c6526156d6e3","signature":"1773929e9284c8ff6d3f91062c4cb047598b0b67de37f1e9d65090685a9da243"},{"version":"9fd7102e63d319340ff3e3ba0996f64186376515171ddc39f82a6b459f384de4","signature":"48d12c9845d389968514c5fbaee0ecc8acf546f58cca5582ebfae10356933d51"},{"version":"23a4541516148d18575fe80f4140eb9addf39ff9637b745b15dee9b73a92e3a8","signature":"37cd69beaa3920727d6e1880a89cd5019c82f4fdfaefcecbe5fd335ea12b198a"},"372785f174f43ce54b6bb05d565af8c4a9964d614076de83c07603206a54d669",{"version":"2689843ccdb1a1d36eb4840c303cbec134d40e911fae49455a9435758b26821d","signature":"69d51047e3f7d30bc817116754a6ec49bca80e462bfdcc1c525d419694409b60"},"af26f1c3db9af32e2c17abf5caa8a0dc715933ca8bc188de9093b7d93b4f48b4",{"version":"b46ee6cb0df1a155545cff76fa9c55e0c87e5fa31e4e0f9076331f88b1f5f966","signature":"92e0708a3a0f5a85756a273fafbedc1e777448774a34bb61d6e2930ffad394c7"},{"version":"a17cf9542b20b2847e444eb94eb4ffeae22d525a45a8df28d1880b52e2de83d0","signature":"e23bdba29c1e5ffbda3a2445cdec45c61933f0c7bb320d756a7f3976f7d4e4b9"},{"version":"ac2de72e91704d6b3f7610bdd67eac714e43f4a904d35d8d31a0636abe79a034","signature":"d6a69b996072b8a8d89a1f1f06195e51e6deb32660d3abbc3ba1582f3234e6af"},{"version":"265fed93c520861eadd772f9002a587b18dc248e8642319aa1c3ed6e26f4aac7","signature":"0b5496e650a7daf5162eaa9c391ff8ee891a0caa1dfe4879ce41364c67cb8f44"},{"version":"9a8729645acbc4eedd2fe29ab0493f31d77d7a428ded6530fe5666c2d41a4355","signature":"8996501e563b52c592c7aa11e73f04aeb8fea2c8deac4e2751c8bc81e4392e9d"},{"version":"4d7d964609a07368d076ce943b07106c5ebee8138c307d3273ba1cf3a0c3c751","impliedFormat":99},{"version":"0e48c1354203ba2ca366b62a0f22fec9e10c251d9d6420c6d435da1d079e6126","impliedFormat":99},{"version":"0662a451f0584bb3026340c3661c3a89774182976cd373eca502a1d3b5c7b580","impliedFormat":99},{"version":"e02973de2c7daa10f93b41f01f66a70fd31c54ddb0f7e115f2e88c0b21ee4be5","signature":"f8b3165452c12c2f4942152257e43fd91765197938f5e1f9090213c511eafb7a"},{"version":"83bbfa1131483eb342d4d40188a716106c086e3abd9f56cdefe83a868dc6c467","signature":"e50ca02f8fdb52ed8d569ea807fd25408c3b859e413b9691e53be52a75f2d72c"},{"version":"d689a82dec12ec02e1c558870a50f71000e06f173151fcdff0458c587dbf016f","impliedFormat":99},{"version":"e58c0b5226aff07b63be6ac6e1bec9d55bc3d2bda3b11b9b68cccea8c24ae839","affectsGlobalScope":true,"impliedFormat":99},{"version":"5a88655bf852c8cc007d6bc874ab61d1d63fba97063020458177173c454e9b4a","impliedFormat":99},{"version":"7e4dfae2da12ec71ffd9f55f4641a6e05610ce0d6784838659490e259e4eb13c","impliedFormat":99},{"version":"dd51e53752b310bd20c9b1a87bbf12b1fe2be7fe40f505b43199496481096275","impliedFormat":1},{"version":"a87be4662442b3feeffc331ecafe6b36cafd08727e2d7f2425a5099577e7fd18","impliedFormat":1},{"version":"cd4cd9220a1ba793bc935e76d8e5481c110a90d9868ae7866a182ee71cdb6abb","impliedFormat":1},{"version":"0a7fb8619b10bc05fd933ca9ac1c8b2ab2220be7a57b57565c3ac158595494ef","impliedFormat":1},{"version":"c4a5f91feb9c5a6b2a91089d959c38391b79a961db3b9cc73b8877d57ad7dcdc","impliedFormat":1},{"version":"c371ea3efec17691f019bca670c161bee2f4787b1f464bdbbb10c4117bf0a55d","impliedFormat":99},{"version":"9c0ab8e1aefca877bd4ac5fc6f88acf99b91565c3460fbd23ee570c1211d2388","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a93a9bf7c51b09b320b110e04ece2eb7c335600b3555c969e930e8755d41738c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fdaab6832e50e15f947cae123fdbbcedfcfa40d4c45f63dd391b039c08eb133a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"930de723999787f97a8c5d866e3b7f6162a45343844ff13c06a1e06ba0e38747","signature":"6063dd5582292fe833469539d4e3663e150fe52fda2918d269f7ce2ab894f47a"},{"version":"4263c321dfaff030cd93d3865e4142b0369e0522ade5ca5f025c5e8b2b6088b7","signature":"7a966e1f3e35ed042668ffb41cd5c607852b7b12ba90277fdafef4bcf3eebed3"},{"version":"dd5154d244ad4bdb1a7737f30430a7b121cccd8266ebccfdf360b6279fbffaca","signature":"1db03ccea89bd678ea222fa59267ed4b147bb47bf6a6df1160f5dc18c5bad8bb"},{"version":"0f94a154ba0c5178bb187471c0694b600b44d542f90737f8504207bf43970275","signature":"cfaba5bf1e3cc53b775b2f80aded813667d0505351c8805c6eae18af295a8fd0"},{"version":"f1d0e6d39ec13a06885cbf414dc45b0b6a467a7e27cb6cba3ec0730a3b7426b1","signature":"b4df33bb31dd99e4ab299975e3284b403c8a22ffbf4c23501911ae71a125b7ea"},{"version":"ffed43ee9661f1c3ba97c8eeeca4111ae3fff7e9ddf11547b92ae79421c171f0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"64d832309e6ee6bc7e8562dcaa34c1548e4175fe6257a9dcedb957842d12df4e",{"version":"5ef8d466c934b506299c6dc7585b30f0489662081069340ae47efbe82e8e9597","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5822bbc570dfc6209127da332da759dfe74f3fef7659175e2ac7610a992bb006","signature":"3b599dbe721e5f215e9a323ffd618ea49b4a98a15c48f18a9cec447c69a16cb4"},{"version":"60df70cb8b24b8c3e3f12910ddf0a08b1a4a028f877226718a034d2e64129807","signature":"55ae166e73a55d02d49c0ff8b78ab66ea60e362ded20dc8434d7f22e49eb5259"},{"version":"92dfee291d9049cc69b3f4cbe72a1e2949d9332d22b4f06889275211fcf818f5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fd53ce55dd2b9837509c7389dabf861eb8d6c9d4eed03046104da6c8c5f2aa4d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f2116dc77988b4aa276d2eafa7e421b27efaf21f1deab48d2e536a010ce755b1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"275bb4bd227a4b7eb5cf5791330141b2e75b45187ff0a28d54324f345c2bf397","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2c59957006f23a5d225a06310466cdc63fabedb7f5b87ab21de64cdde187c777","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b617aaa266fba0e9c0df70187731e98edbd70cd762a57ac2d85c96fe13c373a8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a912930cbd4e2156ee4f6057823076dd43c2070291520457518367e5d9cf1944","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2d028cd99c6db2e234d00db9ae138da87be2b9149027e96e4f0e7f06de3590b9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"7f0da707db59203d092306cc635cb978d1b4b60fee11bf449543dbe515f4072b",{"version":"2df4f06d06c03ed0d8250179326c977c03d0a0f29ff975aae8e6a69b9cae5d80","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"27104bbfd1315170d6a70f1230e447324577f47c3c90ff8a7060e438ab2a1f05","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"daba2c57b67300266f2852da5f4833012dd841c9f7e6afcf1f3b67592e51e8e5","impliedFormat":99},{"version":"c6e49e5449fd458b1e76ada69fffdc4b56de5195f69ed56c522861ce03ca604f","impliedFormat":99},"2b4c994fedb73ee209b128b086e271caaf2446ff55c63299f3bcec90ce79a831","da786fc54527d168878ce9c0b9de6fbc65dbf23f422dfc45434007b45619a148",{"version":"36abfd3dff155e231d53f6984bbba02f93bd7c840bae8f41216748409a1eb611","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"01be3f1ca9e0f2bb7066a6416b86f124b956f1c458bb8173f1a5aa353dc25da7","impliedFormat":99},"b31e2a4496df5192432acdf7da19d01937774ea73f2326b2e20077cbb785f283",{"version":"6089237d7593af70db8b7cc24e98467d962878a354f37d9218d25ccdd5fc8ffa","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"171d282e4333366f33f3a013e4dcf9750f3a5a88b8b5bc995540837d789f8fd8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c4291b16c90b7e28a91ac6c666631139738f55ffbe925514f3410e35bc550982","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"ec43a180a416522268bbd85ea9e94d4d8e531b01d6eecb83014e994a919386db","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"93834c3efa2e2b10a62d7ced82ad16d424e4e191a972591e6d812fb754ecff51","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e6f05dff37e3cac19345816e5e0b9d27bc079f2aa90f62a258cf6de83dbac2b7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"49dc9c9fa49384b1cbd8710ee4cce261f40cb46f49ca5e666f819d69cdf81be7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"12c7b45203fb24716443f2b68e28a8cdccd6d72da99a6ff38f828a974b5143c9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"cfd77c3b50683367506b937c1871821cae9bb757a8060f21b5ac3b25dc28a44b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"1f2bba69000da662ec337e3ca1827c9a8a1c30136d6a8dd4db9c82cf605a70ef","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"0dae71b7873b2efc786674d9d06c4c9a9ba48da29810cfda539b73180e5b9880",{"version":"50b568e25c7fdf5396f0d675119d9efa593a1027483670482e2a91237327e611","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2255a1a43c3a9bd6a0a06f386d0e3d99363896991eec2a007d07dc71b39a4a8b","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c9a0cf76c857ada17740fff7b016a9d4e43147348e5cdcb37da3addf5266578c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"71fbc04d0b3dbf842230287622f5ea73fdff33bb57da4b63daad86da64cce750","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2dffc6a1ceee1522ad76e5ad5b86bc508f38e2061ab056833d415dc783d89767","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"033fd3ff73147ddc390f7a985ae78b3208c3ad0fe2adf3e9b3506eeceb6faf65","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"3c3611a0ebd9f03b66df4d7483c8ac41b5f2fa0ca48b39b73622690f52f8d3ea","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"569d9cc99097d3995412b74fb96d5108791bdb43c22e41ed413148dd24889d86","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"b8a43cfd60abbbd4e812e1ec26f3c02fae3ae30f56967e561ee3276053417c90",{"version":"375a4f2abd136cefbfcbafc71128c2ad51d3ea9a206b2af8a5e164ac21434810","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"43834580e279c34e7bc068f80f8bc33bfd43be8c6feea449b3cec07b8c41d259","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"935dbb97fe6e06b18d4ef08ae58513bc61597e6263392cb4243830da19f2cf3c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"44d6059db97a0ecd5fc6391d5677563e26c795f449d6444bc8d8e1f2998b02b6","signature":"85a9a1590189c63bb9fc5ef9533e04b1925e277dd6b487aecb1df52c91ac16a1"},{"version":"fe93c474ab38ac02e30e3af073412b4f92b740152cf3a751fdaee8cbea982341","impliedFormat":1},{"version":"476e83e2c9e398265eed2c38773ae9081932b08ea5597b579a7d2e0c690ead56","impliedFormat":1},{"version":"1e00b8bf9e3766c958218cd6144ffe08418286f89ff44ba5a2cc830c03dd22c7","impliedFormat":1},{"version":"6c05d0fcee91437571513c404e62396ee798ff37a2d8bef2104accdc79deb9c0","impliedFormat":1},{"version":"cf46da7d54fdd9a638cbea5dec9ea11205b17c841bf8e848fdf3f926c8d5ad36","signature":"85243dd3bdb9c191ba61739e8f44a5534d2ba7c680b117001121256e6c09cbb6"},{"version":"ce01d8e0109fbfdbe72b6bd87cd35fe19473dfcb66d2024554e1c72f07380b51","affectsGlobalScope":true,"impliedFormat":99},{"version":"49c40ebf05452ce5d7aa04e5587894286681181f8dfe9b37cf2e33e6b9993a16","impliedFormat":99},{"version":"ce2dbae0db07712b1da52a5974aa618b3472d39de8cc10ef139c950df36b5252","impliedFormat":99},{"version":"8b78cf601eaa107d0cb40811e41228ad940c39c2dba5138521e4c6c7a745fe80","impliedFormat":99},{"version":"22ecc9f44784f6a9612db259a8dc7856ea0a948139064dddd564ea6e18e897ec","impliedFormat":99},{"version":"e69d094eed9c0fa018a9a5e5f267713e409fe452a4363f46d6137cea535708f2","impliedFormat":99},{"version":"5636ac003748aa4cb5ae667b34a4579322346bf8e31fa47216186cbe63eae29f","impliedFormat":99},{"version":"a69851bc1949ab1d24b09f08d2cc5921a1067223ec49f302ff7a3ad9957ffbce","impliedFormat":99},{"version":"40077e26021cef1a6e77d749aa2b4f62d555bfff7c400d350360e9feb223de1f","impliedFormat":99},{"version":"ad7be5fea1f7f216303fcfdb1177499a36e9c01f4466726f48001f1084a7fb67","impliedFormat":99},{"version":"5217895b717072b83aa27684e850979ca93698a6dcee803779d651e6ba832048","impliedFormat":99},{"version":"9aec72053378cd790962a539e03076c32e92f6b71a97867bd0d4ad5712ad3b49","impliedFormat":99},{"version":"1f45593173c170b424779367b608148ce2947c86f9b5ed7c5d072e88e11ab305","impliedFormat":99},{"version":"c06f0952553ad231ff93a8107b89544542e8113aabd0bda7377328253eeeb8a4","impliedFormat":99},{"version":"aeaed90abf3b3200891450507ff707c16f3408116050d92c0e7169ccb3bba708","impliedFormat":99},{"version":"6ede999974b5289f063467f6c41d3c4566b350e86dd8c3725fed5c94e491a268","impliedFormat":99},{"version":"ed7d3aedeb07ae9f3270a93e9958a9b5e3b63cd6eb0af9dccf6f67320bc72507","impliedFormat":99},{"version":"85bce7d74feaa0d230072273feb64eeb61839dca699e01dc66431396fffe7949","impliedFormat":99},{"version":"eb1eece4482883fbaaee477cd203b424cb8783f9f066290585504ffd97267235","impliedFormat":99},{"version":"6d9ded3d89d21f4395b60bccc4339d1625a3b845d2d3fb6de7332e7d5d0fc2b1","impliedFormat":99},{"version":"08f09a44a88b06df40d9a21cf333ae7a4b36c79f7171cf1e09f82d507fb8a90a","impliedFormat":99},{"version":"6ed9cf6752a00ae66e113b6669378dc67120446bbd1fb89c81e84559ea228051","impliedFormat":99},{"version":"b0cf9e21298c628273469d98999b8b7e78d843df7a943f4ef52dd6ecf24e8443","impliedFormat":99},{"version":"ef53a12d3b9591ff135bbc1c0553f6de7d37cf7289032bbd8a0794893adee165","impliedFormat":99},{"version":"22a24f4486c4489db89d0977d19093a2bcd5ef965b42352a8398c1383f342e45","impliedFormat":99},{"version":"d00892dd983d0f34dcc221394c1941f28677bcacde4ffc7e67b6512c91ebc9a2","impliedFormat":99},{"version":"0f7f9a8058414f16d237aa527ff6792549a50e85cb99299d6f9b1999bf53021c","impliedFormat":99},{"version":"936ab0586971fd3526390f79a0739d8c1feaa5178483c3baea16acda840a71cd","impliedFormat":99},{"version":"62a8f6dc3fe4547a9ae29e8abc0082df80c86fc75b5522e89da074e0792d56cd","impliedFormat":99},{"version":"4f1bad288ada6326583a3e6a0a54d7627a03eac3b668adeea9dded12ac5656b8","impliedFormat":99},{"version":"41a5ae482e864a6128e6054e88f1c0e06884793f92aff5c67144fb02d2373079","impliedFormat":1},{"version":"41ef0a3ae1156f713838ddcb5d6729551dd8aab53e2a9605ea7b5b5fec5c39cc","impliedFormat":99},{"version":"25e4da51a3cfe4ee8f7cc1f6b73e6343fd8b4d8c5c36edcf23ab642f37e947d8","impliedFormat":99},{"version":"bf0c2b6f09f5531d8b7f658ee35a39e31b02e846c72711499d593908764041cc","impliedFormat":99},{"version":"d105d864b0a910c321d25af9451acbecda03bc06eb12412ef09b43e5f3bc984d","impliedFormat":99},{"version":"c7b04860c7b5c393382843dd198182e8d51100f39e912957c1aad5fe7f9d911c","impliedFormat":1},{"version":"af296f34e60533904e4b2ffda0029c0f79ad62a129894466542bb13f1e6a4d8c","impliedFormat":1},{"version":"57eebaeaf2e9cd554946c869e6666dab04d5e7a7a1161954fa83feaaf890af75","impliedFormat":99},{"version":"8aca09e8e334ce1d8bbe84066f6b3242d3a35c4a6b50416204b890fab5f31f1e","impliedFormat":1},{"version":"eae518fca08aceab9bb7d9d5e33c93402f2f815523ee5b12ee4b4fee49bbe1b7","impliedFormat":1},{"version":"ec21d75f8ef3b68e445ebb3ecc149f34bd7757f185f735a86b510a181561dfe7","impliedFormat":1},{"version":"504e7acb8e31d6c0a86d53411c8a19ef333f3dc3fbba51a34f688e26749eecbf","impliedFormat":1},{"version":"91dfc560ef785356cff4139bc40b767682cbea5b6cd713f173712b745dd11c32","impliedFormat":1},{"version":"e16f88602f853b0aa31192d984fdf82694c6f8d6bc58262f96fe2e0ba8c1b4d0","impliedFormat":1},{"version":"30b6628512c984482c5f886f9f6805d2d74f2b1d3835ecc53211340e4ec0f4b5","impliedFormat":1},{"version":"d2c411ac09a4047ddad0c898317208519e7da1b9650bfbd57fad7864daddbc91","signature":"14d36bcd272f4dfade6caf8824f2d4cfc15007bc63674352def4f83005a22c2b"},{"version":"73c078fcbc0fa04ba70b1c3e5a3dea6a980d8765079cdbfb40f903eb8daa4319","impliedFormat":99},{"version":"5297e84d3de08bbe3c00f964d1c74f89cf101d59a4826b335654f44ff41529a8","impliedFormat":99},{"version":"355b33af59287683501f76cbf7d6a141544c5ff1ae5f5c0701a3f89cc38e5238","impliedFormat":99},{"version":"280a996092ab956e80dc7bb7497d472ca5c1be23a9c52ac771f5c750ede462b9","impliedFormat":99},{"version":"12e47e3354ba63541c6874b712fd14b2a4e53ba9ae986c20a65f7f593294c5b8","signature":"8101bf6437f2b0050d2d96ed5be67a650cff9cec0417c282c05774773081cf9b"},{"version":"12f2d4e830877c42294cdc86007f75cb9670871f490eb5f9ec1271e7bc280aff","signature":"3d1a17468a0f4720c6e3a9be8c415902282b02adf6cc6613ee3d5ce53c750759"},{"version":"22c738f11b2f6ab77c0b230e4a604999d58c36de54353212d4ebba7018ec076c","signature":"60c964ca88c558f25876b336ab0ee6a37d212c14e1934952c9a777b14355ac74"},{"version":"db83470cab27cb4d917cbe09e5762c6d4bddaf98b66ee330ccd8f4e99a71f90e","signature":"28493ed0f0f8b424fac847cd7b22ca7fabd47c41cdd69a57fdfdec3dd1fb17f6"},{"version":"8011949f8e7e5a9dff14ea2434c26f3a057809405cf50338ed543714524a168e","signature":"c7851c59c67ff36453241a27671a1e7e454d3fc6fa0fec3ce4eafcbffdd3da1f"},{"version":"c57b441e0c0a9cbdfa7d850dae1f8a387d6f81cbffbc3cd0465d530084c2417d","impliedFormat":99},{"version":"6a71ccb3875652de9e5bab11557ae9d8fe5d9fab05b9ebbd3e441f58c675fb06","signature":"c1975806674c299e2309d2ad89c16116985f7d14c1bdd113a2121d6cbe1bb698"},{"version":"7a3fc5715fee6cef5ee84c2ccc8b5b56aa4545b30d81b33feeb1ed6d4d2852b4","signature":"5ce3af042f82fe81b93940108874301ee84538cc84e53c0d5ac0ab57fa36142b"},{"version":"f3fbdccb8f47e478dc7656fe9d4e7ca366d8ef61252b9742d198e2de750c8457","signature":"00203dbda55df69a8f2dd066e3bf2dad4bb23e67a18bb40774de7431e19f2037"},{"version":"8aa313cb1a48a1ae1ac00881b9a60827fde319dd40877976701c77358fea9060","signature":"ecf716a65a62815d4e896b0a470b045efd9178e5d0b15e8d6e073e5a94d1d49f"},{"version":"9588db3a1285bfc7167c01afc8f64d11911adff7903adeda12dfce7d6bc10dee","signature":"a8e8dd2ac70b2e6692a9750cb405838f929d88a6a1d71cdf3404a94987ad1e90"},{"version":"83e10b3a58a6ffdd93606ffe25c85d92c2ffaa4b48d5083eb2bc4d2f10931f2d","signature":"fd60ccfef85478e660ee625b54d5edcb43f8c569d4b50793fe6aea0a53f54b50"},{"version":"a04ad49fb9fe0ec33f6ef94c8c0453fa06fa7eba2eaffebcb4951f567dea4f54","signature":"3e4e0a58cc62c41990bccfa3e87a5821aff6f0d05813f1ac0f12025e69caaaca"},{"version":"df72194c162aa890c4690edb0c574e9e14ffb134467ad0752a1b5eecd3712d47","signature":"4315db0979655d3605a5f7a1b95e7b4660be4bb41891ef48e36b021b1a4bda24"},{"version":"4062b4766c5b12299c501e63036a25fda15d1c20c3b83999a0be3aa77db7a5cc","signature":"1cce43e1f601e666b435f3d09767df83bdbcacf67f87b59aa957f71d24d34622"},{"version":"596bbf943a958c8eacbb91a953ccb60efa7ec5ed4093c11cb63f356c372cee78","signature":"67f1855eb07d4a3026bb2944d098ebd2ed6aee4635556aa71b36ea7f5e455887"},{"version":"f60d4e63e4f1ff2f5d32f9e7447f3570e343284458aed294a62b4b25e0470241","signature":"13db1edf989e8471430949418b91786fc87e17d5ef558ee17546001e60ddd7a4"},{"version":"dcc32b185251568136c8046aba24c0f140e6900df393c9e2b782b18e5ec05eff","signature":"061f82fe5b64a3a417bd47d8033d8833035960d4219a0093744cdecc6826c959"},{"version":"bb9f039ba0693c7f1a0e03e674366bcc67264e190957047ebd14e5ee06c1d7e4","signature":"7acf1c2a7b4d82a50a1d8efd7d2386d746b2084b9ffc0df2006fb4322bb15a89"},{"version":"6299900174a0446e2b321560ba74b4fb683ded56ff1e00462e09cf061b90ba46","signature":"e10e100bcb86ed28c5a2516e57d398a56d6d03d3abb1e70c49e1159a1f71458a"},{"version":"da52268ebaaff6d415b7186ab895323f29fe25b2c5415893855b9bb2a2d6669f","signature":"eef3b1044911898261a060fe78f8dd19285be58d082c85c2a189936f0e423686"},{"version":"eee9813b3e2ea17650b582753eec7b7ed69b67cd2f3e3d34a4ee8ff0d333f0b8","signature":"046d220de81405cf44389043518eeff0793f47956c34ff79b8de442917f9ef9f"},{"version":"6ec3e552c07f9310918006ac7f242a5687ea78bc7d23d158833980f7c8a430e2","signature":"6dfa3db107d1e005a573fcdcd5fb5215ccc7a703ef25b1fe80d4aba9c09ac026"},{"version":"c85c02a8025f47e2f0db6bff2a37910fb63144ee148a9991b2481fb1dac5229b","signature":"7fced774d307155dbe328583316013de87b8d033941c7c306909e3dba9a401d1"},{"version":"fbae195eece796edaf697a5775f0ab5beaf48a71608098d1d660122fadf6237d","signature":"4e0dd7eb23c539cdc147934275c9f4fecff6baeb29d920552559a5f0f8d659ca"},{"version":"dba53a7d64b0e30664ed8047e6812d42fdbef91bfffda81d72e9babee15e0ad2","signature":"80859aab9eaf5e2dc6f264a1140fb62fd5c5a3be97e463f676cc631820d8acea"},{"version":"74c6fb82bc543879438453886bcd898f8d90dc8d7ee1d5709ce76a3f5b711826","signature":"53c83ac11a31773f80f62131bafae6e5035d88c9296a19702cb4cab262c7789a"},{"version":"5f81388189736d306e84842ebb1a1d029efd75a3728048c16cd6a9711d125501","signature":"bc5fb435d0c5f849c7bbbd1e581070a20d7ff9c3f2e67ff00a86103f5ed568e8"},{"version":"a163a383200b5ca96937d9669138a4f153fc834fdb721ecbb57bb60b6b32d16f","signature":"20ab8c06b138230bc85e5c64ff412207a5d2ef683e90b66db017778e8a84ab3e"},"4cc07141cf301e85cf8abe758812c73a229dba29e54f6b30bd97fbddb54be819",{"version":"657ea77a58d9ff02032b4a70d917049ff9bf06527e8552ba257820b86813c920","signature":"703b1bea8cc2dcd465608561d41ec03e9f72b609a1c3695a9a4deab2a92286e2"},{"version":"e51703b5f253c00c584dc8f4b2e4ed8cb76c690fa0c7179461cce7b8b6f3e800","signature":"961d4afb8bd13236b3b95ec6c7ce7b491920dacd809b53309d487c0c4cb05f31"},{"version":"a5ee5769971c035129d6c8586f0c2e97762e72871a8a4afff81dc4b966ff5a0b","signature":"aacc04989089485854d5674e74268fee7b929a2270cd0b9c70dbbf0822b125b1"},{"version":"3394ab14cdc8a429cc1e4feb1f57f75238440e9324c46eee99a99dfa142eed30","signature":"56cc7098f5c8dbb73c080121bb8f5542bbb7737fed9bbc7dfe94f089bd960799"},{"version":"624d23baf71284ebec55d7e1c0a8710f05c9f42ef7effafce7830211c4c2246d","signature":"93e9e5e23b147734a13086e43bb51855b12a011cd9ba842379004a7513baee51"},{"version":"08d97df9864833f09f9cab6eab6208c772193439829557f64e76583f485b7b07","signature":"4a77b3d25794658aa58b9f8e31bbb0163dbd9fd89b67f79f59fa937b4bb893ed"},{"version":"89bf00a951bd202975cdeaa8975dabd5961761c0ca1d113fcd78cc142423620c","signature":"d6bacf847c8dd3b3aa6efc394f7479d8ec1a0e1cc3cb5ef97bb96924c29fca62"},{"version":"a1ae76662ecbc049b02a1f5997d1d74c5df3682482bc756b008e96eb56764c97","signature":"789d8bbbbe0a25332ee3b66801eb4cc2a9c57c3ac1a87bdac7f5cbc8b85467a6"},{"version":"3b1befa14cebd03beea75bd2b834ddf97dc3ff2f7ced6e86e15b3c448e990996","signature":"ac0b3ce6e1e01a449fb74257121723b2c0d79a0f209843bdb8ccf59b92763f69"},{"version":"4f3a506511a2b6969957bb9416b2cc2adb3282646d9c0a57e84d86d35f5d50ca","signature":"750777b05d2927efba30a9b069b8175848d1c3c02dd9a9e5dc1439da3bdf5cba"},{"version":"f131df9fcae4dd7602dca52f4df3b103fd1677afaea5415b1a6d77262eee64ad","signature":"a9c13ac08ec71d91d17b19ff2bec82ffd31d08bab35d54bd5a0af6e5af4e4c82"},{"version":"4ce2d92cf4c6f2003aab55a68436470ef156372544c8a3d5732dfd7cd9b5da91","signature":"dc2b31b2c76e9822d73b62fffac29b70295520280c6038d4884795492b7796f5"},{"version":"f1afe64b463bf35a8adb089d46cd4d7dcfda575cf4cc6eadcca4eaf9f16c48e8","signature":"1aedb047fc78093fe3ab278cd8c5136f1e3ca45a9a821b9af5acbba5db29128b"},"f25c2633d9b9ae769b2c655c39f03f84cbc8383a45b4ae047a486130a307bfea",{"version":"dd66e4e2227028611b4e2ba394bc4a6fd7c129dd31996929fda3c447a5c6df59","signature":"f764c430c46cbfad3f7d938b6b363b64d3cbb9e4748f984f3ffea8dba515a865"},"13b1962a2242b87bb6f231b23b62b1a7ecdb68ac837d1b814dafab05c6c3adea","3f333d4312b5fd9acfcaebe39c8af18e281649f89c09f72028c43c03e838012e",{"version":"04f34245608481e78460a836277db6fe71cc6f44753dbde6e5cea628e383dfb6","signature":"b5f1c33591ce146c041f40ab467e2abfc4f9af8ad0439e3787d876d1592d889a"},{"version":"f79c6bc161d2473ea9ac7e35070bcba26093a6f5f10fc36bf60f6edc2c9b0dac","signature":"f2c98aba0fee6b4c02a3c7331bb3c468407a6e32467050873b0a2aeaaea5c592"},{"version":"0bad9b7565d09e18f6f3753bd49aa19562990df971c35d33c75a7ac15c1ba181","signature":"604fdf46bcbf095d67ff8f70c78669347e9b4364cc765458ec5c7e5a20cf803c"},{"version":"6656475eda51d138ba9e612f1f1ab374f3cb1f0ae2f852b545929b18cb145811","signature":"90bf261ab6130118489cc8080c972350207516fb61a2ada60707c1adf0bf7d6e"},"a900de22d43970066ef87ca698107ee8af44f467fd7774b64b8fd1be50180268",{"version":"f0e585db6910ccc11bec39eeaf3cc79c9db6e32d22e697e37a68dd1626384306","signature":"07731029c1acdc6290205c5f5224fded9bc82c806ed7c267f9e3f5fb495c997b"},{"version":"763c62d506c40d287a312c1d724dde0db10f41b83d9c648caa7ccac6f387fa1f","signature":"f534993ddd5adf46d48b03f7c1f98dcb8b5f5f927820f0927182824254747245"},"904cacb8b12123dae97bd4a090b1fba2bef860b16f899e3147b3a9fdfcb1e3d0",{"version":"47fff0d4936882734218aaccac6afdecba48b3ecde58ca42c9935c467cf5b746","signature":"ecb00c5d860c79c6349e8c08dc8c735b0e1481acf62ab0ad36ea700d8674a4c9"},"78518f4ef54f8afbb90933b85960ac26d455165dcb7079c6c8864b69851c5ab9",{"version":"f8b27104a6874dd2ac483521b71380b753f4d6a4556ffa8ef7c0fceea08c20e1","signature":"c8b26c0d809ee80b28545724b9647cd95a64c7af710ea1153393c162f2fd3a3e"},"a4396c5d07d63d3639bb9ff43387b736bc1bf4a45a4ef89b5a7c3334284bfa73",{"version":"5f3b27a1231682459caff974ed54a532a9a9e1c9ed10ed5eabc640bea5573c3a","signature":"f3e98e0c83a9b3d5b8c77680542817bbf1a6fe18fc8dd4bffe954b5b0c3bf8f7"},{"version":"ea3ca336524401c77a2dd7b33e3864821547cfde6812178008a5a835bf32693c","signature":"dbf5f1d14cd7515dbdb01b7263dd98311eed92b0a32b54a7776037e8d781e3ef"},{"version":"54a4fd8b9318331e583b7b728a6e148b2dc03ff93bef95760bfaaae36f5ca3b9","signature":"4222f8043b033b82ff30a49281b22f7e15b7701a91dfa38fdb962822bb9cf613"},{"version":"f5a9e873dbbd062c93ed6b8dce6e210d9aed2b3120f79162539224564c74dbdd","signature":"deeee7c6a568c3c68023a5fcac2a3362c4e076694707f3b84126eb4be527e4cd"},{"version":"843b4e24a288f8bfe91807d96485db050595ad377a6d174b85a2470d899d33a7","signature":"8c07a179d51e0fec95966c24e2a409ce29303851a8fb68eacf4f345b1fc501b2"},{"version":"e3176ab4cfc3705e29df92889cc89d62a5d552dba0a7f5644872a6a4b9bb7fa8","signature":"16dbc94896cff2e4d67013c39bb19b04da38e211831cdc7fd04af770254d6b86"},{"version":"b4d7c2c6391499082f08fac8739323b9013e8ce89199ab9f87381cb1c19989be","signature":"ec276252fdac9f136315cfbcd5c5ae476e061faa3c6ac2c958a5fb05aac4f2ca"},{"version":"6d30096b138a58d3f36e14b4ff92d713363b41dfb84b8c5b5da037939f192df4","signature":"44ecbcef421b0cc67e3ea11cebede10d015deabda2683e4c87e0f0764ed3b6a6"},{"version":"0ed5e3120f9f6f44736e31b78f22174e196ef21d8e19f184203c17dbcb84648d","signature":"e695bd49ee2ff7e1a26e59b571bc429fe24d1a86f8de943905bdfa00ee4a16d3"},{"version":"5a22eb0add710ee741fc3ad7524953be28ee8cef74667b69afcf6185753567fb","signature":"1a6210b00ab5fd1a0dccacad3670c78c438a40ea02f51aa4560f5871519800fa"},{"version":"1e446bcd4f9c51466843c78593035ec7fc1a299c33515c82b7586954d6887db2","signature":"809cc67f5fa5db73828fe93d54e8d32f03230b840b35ec004289fc2a17e681de"},{"version":"b86352c96fc7c12c32799b721f9bf6cde8b362a25ff2a3fc1a740c0149ec7dc2","signature":"88e50c84eee36c6237246cae5e056a40887b184139a54331df6a5811b13d0e49"},{"version":"4498f52c4ac192a8e93463c17cdb31c5089fd4323a76aea4c280ae2e1d167e55","signature":"46ae5948235242382d53f2028a48227f400395a4cd79c1976569ff35c85862fa"},{"version":"250895f745707472143e592117026a0ddba99fcaa943cac006812785847c611a","signature":"29c36046c6cf3b520aee9c01d236eaa030fd652e1a9a657a2ac7a4a69d29e60c"},{"version":"839d4077340351efebcb070ff45cfe8a84d474932cdd2f2c66ddc04a90489260","signature":"258584e4cc9cd8d3dd5612c0a6efbe066e39d8aeab88123ab337d1b6d4f046ce"},{"version":"800de8bb8ea525980e16dd155bb6e6847e7fdeccaf816e5c2674e1a24c5bfc9a","impliedFormat":1},{"version":"88efe27bebddb62da9655a9f093e0c27719647e96747f16650489dc9671075d6","impliedFormat":1},{"version":"e348f128032c4807ad9359a1fff29fcbc5f551c81be807bfa86db5a45649b7ba","impliedFormat":1},{"version":"69fbd801af2b1b88b86bda5b74aef5fc013a7cc0c7422d33c8918bf8e7fdc6a9","impliedFormat":1},{"version":"4791c9bacdc47bdf94fcf377e2f0e198c07ad8e06425e23e1dda2d96e7685c11","impliedFormat":1},{"version":"5f12132800d430adbe59b49c2c0354d85a71ada7d756e34250a655baa8ad4ae5","impliedFormat":1},{"version":"ec27c0cee1436f58e785f621703d19d588ebbd489eca245e5198b4d6b715790d","impliedFormat":1},{"version":"b16e757e4c35434065120a2b3bf13a518fc9e621dc9c2ed668f91635a9dc4e75","impliedFormat":1},{"version":"86820ab88a951c928112528135efac662c4a0d5a50393e901f1c70f62ed67f4b","impliedFormat":1},{"version":"bb546af29295599cdea263bf8e7aaf98981017193ac178709353b8cc14dc572e","impliedFormat":1},{"version":"4374cefdde5c6e9bad52b0436e887b8325b8f407c12035194ad02c28f1553a3a","impliedFormat":1},{"version":"9f36000a33d44e49f677af6f274bc23c7e18c18c1ddb1aae3095d43b927b1e00","impliedFormat":1},{"version":"f83f059b53d5dd6251ce68353264820647653f93ae73f53c405c918bdbed969c","impliedFormat":1},{"version":"ee933420aacba1f60aa70fb8ba47c5e69001b005073b71973114587089a13c7f","impliedFormat":1},{"version":"ffde106aa78275d720e2956f7e449158b2890739a452335812ef0b913eb8463b","impliedFormat":1},{"version":"56584bfc655f9df64afc0f22f7d1122c29e5b74b342c203b891e19de9fa37de8","impliedFormat":1},{"version":"40ec58f0fadd0b3981b3d383e1c12fa0680115ae9f018387fc2cfc0bbcf23204","impliedFormat":1},{"version":"5ed0eccd51175bbc49a8d13e8555c805f138d065967055193a99bee6015ce17d","impliedFormat":1},{"version":"bbea0bf8358ddfc025de8871475cc84f32dc79a86609da4ac738f691651c0045","impliedFormat":1},{"version":"7bea27561409a3cf2866b0f34395da4e7d02aa7166d3c67048dd57c9fbefbf2b","impliedFormat":1},{"version":"10e109212c7be8a9f66e988e5d6c2a8900c9d14bf6beadf5fa70d32ada3425cf","impliedFormat":1},{"version":"f4558bcdc26690cc593cd59217cd17d8e00af0f5fbd0c4f1c0d71ba75029c42e","impliedFormat":1},{"version":"51d621c4e724720dd1b7ba6374d8a5b988beeda22d620ac84634a13691b631d9","impliedFormat":1},{"version":"f57a588d8f6b3ce5c8b494f2dc759a8885eaee18e80a4952df47de45403fedbe","impliedFormat":1},{"version":"34735727b3fe7a0ed0651a0f88d06449163d1989a2b2de7f047473adc7c1c383","impliedFormat":1},{"version":"a5b13abc88ab3186e713c445e59e2f6eee20c6167943517bc2f56985d89b8c55","impliedFormat":1},{"version":"8b29e3ed0c90b2ebc40b2bce5a518a0e86c0c417f7fe99a5e7658a61166bd9cd","impliedFormat":1},{"version":"9d609c44db4805332285b28d039d1e9b94bf97a074c652faff4dc1949f71718b","impliedFormat":1},{"version":"6e28d186dfadf5624b2e4f0ade02bae83d6067a4f4527733afdf0749740edeb1","impliedFormat":1},{"version":"369b7270eeeb37982203b2cb18c7302947b89bf5818c1d3d2e95a0418f02b74e","impliedFormat":1},{"version":"94f95d223e2783b0aef4d15d7f6990a6a550fe17d099c501395f690337f7105e","impliedFormat":1},{"version":"945be5a9505194381cfd4a8551a5f0ae48090847e454fecf834e054207c5a57b","impliedFormat":1},{"version":"d1e8b78a5ce49cee9ef4cd2565d4645d269c6fd0650e3592f85ba481f13da3a3","impliedFormat":1},{"version":"75da008dd64e980ea85d6ea098315dec0681115620472b4fb1a4bd88c0b24c53","impliedFormat":1},{"version":"708733f625436da7047894887c1c17fa53b43094f36c9c3b1ce39d99aafd0a4b","impliedFormat":1},{"version":"2ad61964f27122a3ef7cf261f8b3dbda6b0f96be6687397151709bf34e5d5c76","impliedFormat":1},{"version":"302d3d92502a06fa7071406fa96d5c7f897006d73622aaf322df8405abc6f773","impliedFormat":1},{"version":"e907ca37078b12e78e7c046e4813e61463671e3950b8e30b9441c1513285fa20","signature":"570a607c75d024b5bae782a8bd152adc96d565e139a8b4deef2112c3f892768f"},{"version":"a89a8d4e448bb3b364bf445dcc85824ba95f9322e49c132e7509a408f2b452dd","signature":"89a3d15aba2834c2936ae2ed044a68553bb12130e0f8e95507153c46a6d68506"},{"version":"4dfbe0c4a4bfbc076320061dd7c41f0f96c05fc01c52288e2b606b9dce0a9465","signature":"11d18cc507de15ec3405ede78d4b6d17b8f37d419dc0b0fefd44edb6e40b1cfc"},{"version":"429a7dca3462a3ce0285b4b11e7264009d81bd8e1e85e53153f4e82ccc3cb9d9","signature":"ae0afb5a52dc1388d01d7629df55900400761d7548a00f4f74d7f06dca9d0fd7"},{"version":"0de16133cc7ae3dae19ad15046c2f3290216a860030f5e3b97096247dcdcff45","signature":"b191d83a2983f0b5a84751e77b9314560c376af5aa7576623b7a01e0cb989942"},{"version":"7c3b0a77c99347bd10327a958e21cd0107e5a2cd9752666f2b486fde98b2144b","signature":"05b3ea71508c038b18660df6108114559896b77716b38bc39d811053766a2ce3"},{"version":"031c6fee20541f081c852d2ae93dccdffc5d9dec007eff53ccfab8c64867353a","signature":"9ef776d0e3bc27f28a90ce411360b3647ce87718afc66b37e31b30081156f11f"},{"version":"b9cfeaf7252032d82c5c05ad3978026ddf8eea46ee4630bb40bb1c99502bb0e3","signature":"97cf6b96176f6c609ab36203080c0288c5d0d48b5a1394a9d8e8087f9fb57199"},{"version":"5b1e2c469707f5f142b45cc7bc5c97ba87cf983a401a8f24d311fb2fe24e8cce","signature":"dddf1736300753688c84d826f3c04963b176bafcd6c22543fe8f8273ed35955a"},{"version":"ce83901fb4f7165b4c2cc976f9447a7d23329618e9a5b0b5089eb88e8270d4c4","signature":"585b18e4022aff56117f22009e352c823a1688bc22c66c977c149d26e6d65280"},{"version":"e2c235aa6b6df087bd139b4d1996143e4d8581d07879c76b5924461483065b4b","signature":"a092279eb4690ee76f54da2632e531963c87a66fc1e7cff8f6a99bc9837ca70e"},{"version":"2d4fef69f059ee03ddde157004f0fbf8ae6f88400244134213d836a1554142ea","signature":"a5abd7ea916646f408179e995e141328fe00494a86be701a3be4a52d7dcd8660"},{"version":"5c43d5937a7636216131e7b1166a653f6409fd16f90c2af4d1d1b17d136f8d6d","signature":"cb9b095a6335d7093ec9614df84ef36c49942fe100d0afcdfbdcf14fab9f09a1"},{"version":"d64c20433479257a43177a53ea5d6f9f9a11f104a4f4af9c4e94029fbb589819","signature":"6e3eddbe1b5def74273f52ffeef2d322685c06fc27b838d36c09518498ae4a86"},{"version":"d212c1e664d339b10fb0d4bb9f21df43089095f0c11b3db593ec7af02fe30558","signature":"9aaffd792bd0caef0c5ce1a8268d76f9b907b6a702dfc790dadd003efc94d34c"},"27a5347f7c0f1301e4d3aadb087e65a78b33db5e40bfbdd8c4fc6b38362ea058",{"version":"63acb24d366a64deab06ee759234d0b01e59204bffa2ddd1fe07d5d19a02f479","signature":"a08f827d900d9a2a6f481555edbb1f4162d3444ed42e66236226bff65561ed1f"},"582a3e1508d7a36267c30d919570c5ef26038116f45a6c5589d980c061ea2bd4",{"version":"e437cef242baf08f5842968d7594587f7333fa2b68f66f7df5712b8baaa04d6f","signature":"a1a688812e9f7fcdfd88f89f8e7a7e84dde69d42e0a35ca39e2f729082fc9bc1"},{"version":"8f6d091a6e0f426a5b494df596a4194ca6ae461e0278129c52ce6e7c0c8a28ff","signature":"34cbac569d111a071726190da396bfe2c859e583daca0541f262dfa08a225231"},{"version":"cd636256193d2c0b94b66a710fa2126d1c8df9d7eb903403a8c1eaeeb07b553d","signature":"ba3ad932a7744df93d4db7531e0640d78d0f7cc7f1d1ff7b5c5e04b8fd9b602d"},{"version":"f8e3b78f224ed9b6bccb1ffafb9a2d798c2e0d03337e280467b1799b22c6d7fd","signature":"7c75add23c25eb9d091ae323aa539e76a13fb94b720396a1af90f282028ed9d8"},{"version":"5b680f248895ac4901afc2cc72896923f8328c90cf0fd6c76979bf6ca2fadabc","signature":"117006b80b480723583d1d1decb4b55f4c41ed0338f20b0c0bace96c2a0370f5"},{"version":"336a3041d608af39faf66cad556dc31933fad6bbca7c9ab34a85d3905bf0da4b","signature":"78051b22ad18cfbf151ca4df954766b76e6f5ca1edcc951cd0c22910d4fe5226"},{"version":"62b307c40a4e5b70ea5464b0d93848783e5895b1946088b96439a3e87f3a7def","signature":"a0c9d6847b4ba42cba4bb54e50aa844f14519c4863af23686afeeba0146da197"},"2552a31fad45a9ed1bde87e51b038dc0e786cd364b597162263abbf57018949b","97298a5fb6083ee311bed4b2608d8f996de7eddaf3a1bc4513ad349f6474bb67",{"version":"388825df340863d39f1518747c23042575e3a2a3776a4710e365cadca253cb52","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"0ca44ad763b9f30bcc58d7230aeb0161a51aad23843c639610808ed69ff955a6","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"b64cd0b5a8747650491c629b19aeb13069a33395dc157a2d84ec5ddebd81b072","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"4d629742039af8398f6be0452e79ce9454d1db423b2dd19022696375663ba3a5","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"a44ce62e54aa370e06111e54669db1711aedc4d409c1abbf8e56cf5f45b92849","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"675d405dd658a5e2be15671ee036a1a6c3bf9f69dd60197b1439eb2f0c46bf56","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"5191492bb6d63a41512b4d862ae573df6c13184d71f7e5efdedfd7db4a2bf87a","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"b1f989ef111755a0e3d4f67268ca266f97ce7ed702ed462da223e490fb095d6f","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"4a02a16e62934aa2494d3b71472b4e7d6681eb63a95a783ff2b02f2573365c16","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"011058c9a9b7700f3662cb1069b8fd739557bd4ed591c527911fb16f0b147650","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"1dde09e334c6e33b4e6faf78ddf7295a8c2c50c23d4f6ab61ecb2d2549a7bb94","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"ae8fce6dfec995f1782f6752749c8701bd103bdcab9be570bae4795d4f369b5d","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"7420b32535aef29563366c039bcb95ad7e9c017f1acd49fc5cb2348aa8e90d1b","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"0a1d20642ccaf41fe5ac4fd457b79f5b24913c12c63782eae731fcb71478f078","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"f6aa36a7511c762b774107a593580e0b0996c13673b486c6b5dba78b4cd5d305","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"c392677bd076f4fce5f8034215f24024d689c93c5728a544f8bdb1fc4398ad90","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"1d6eaf245930a0fe78cff7d60b96aeaa2effd5f4f3fadc4c5eb27370f2478348","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"d96e7be6b69f1371ccca3d74b18589e13604be1c9e8f06576f2a991dc9ac478b","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"dc397a2a3bb132f181e43df6e205a97d29fc0c7a52a6e703ca22df4edcd978a3","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"72af7a7bcc862457b44381f011d97df2e984396a5008476dec0fe204fbbdc599","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"dd050f45610a94ed58e46a4dc10f0561f29976f85aa72232d489f4503da48a4d","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"a1a57accebf5860cc098094d6039f6dcfdf8d78e1be4537c6706ed09aeb516dd","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"b882eb52eb81a6e44f9a52def12bdab28bfc1b6d754262510dacb1c510c6d22f","6aeed7aa3aac7f286041eb42b23ce245af4c5cca2597297bbd493ce2e519cafd","e85b282611d78fe62336a996b4433a4bb8d3c61cb2ce1213ca59d9d1c82b1605",{"version":"e7992ea4f37ff49aee2ba20ee23771dedae7c64c94b7118b3f45347b9d499b20","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"7e6fdace5f383a7e46587d2d3e716b63a0a64a20399f160733c19c70320302fb","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"b22e3c3d9e8910865c7bb6861ba9aaead527ffc43d01affb6f5b8fe76c7cf544","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"3dfda507c95522fca9526e507b36ab7c669882908ff02520238bdcefca9112c8","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"59464b8dfeadb70132829f5e98e1138c3097ecb1649cc3b0fba44878638c0b6b","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"10fee65787dcdae44e5297a1ed6ee99feab9dbb1263df724dd7f4045e41b7055","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"4cac1c989626573395940369eaf317607a350f71a6f7c9430e436d045eeb3e38","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"4a987be695f0048d8ae904ecc3cfabb187b5f70ffe00a09d48fdb042454f9994","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"5f671d2f8b2e33e9e314edfbc9a6a93cb3fed342f2119d7c8eb2c99d7d50f6ee","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"d1f2c9e0d38aa12d7ed5582a6e5e6899772a0d87e628dd8feb84a12d6767fce9","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"40bcade959562b65f9fb92c013cf0e55a2c777f6bcd17a62a2fe66e76481e5a0","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"d429b2d08702a7eb160cb54bfbba6de5dd8a5535f2b3e2247499eca7823b5bd6","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"cca05501587dc4897fbaed54c53b3dd854cc60fd9c7ac1ad589027c575adca72","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"e22307fde5904fcade2e4970c7a00db853fb8a7dc29aea9c21a04434224a55f7","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"d5931a8a53cabcce13a693f2e815dddf661e3482deca2de4b681384802db707c","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"c81541f2fb4317056fb1f610c726e703741e4e964647c5f0170028dc939032ef","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"4ff0baf4cbe181c1e2ef8538cc47c35d9e9f42c3822454fca6f6973a3748158f","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"36a2d52739670666d43afc55211a369d9579bd62c037d353148a0b7971c6389c","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"481f965b1308ea13779c231da0d624adfbb0949a5c32bd2bb2b1d5638b1490a2","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"1b50386f56c7a65278203f866ccbe94b17062dea2948e8b3059b8f2373d65aac","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"a85dca0b790bc28db0301710a61b392fc170603308605ca37b3927a2a376f62a","047d96ee43c35a72e7dab2e6b06ffd5f5f15ad3e306be52476868a9cbb44ae05",{"version":"267310fe25208babfe53c4cac9430438da58adbd2166de15b7912e0759ae80ac","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"526d2e2dab6301845586d23b925a75100f40be50fac3a4731298826f5b46aab4","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"cd67172bf3d5545fc4947185b26ac6f0e1c435ef9f862d80c9f03f4b12591b1e","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"516a8e9e68c55adf9e707a73655cfa2c6abc77a88b5dfc51073335dece4fa987","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"e5419e247fc95d6cc378f7a8458ff231ea5f70671615a76b6436b425e1ad78ac","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"64f6c15a23f53050722fa8410f0e5715ef8777764858b4e9ed2a51a9de42e5c1","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"fda7650569a5c9a8364e6fa7863c01c5e09c28654192ce5c85767f1a57b90b7a","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"5a294aef13aa33ff7ac907aa4d36a7464fe4644e1274b7b4e3e713c83f79e26e","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"2cc221b6550d93bf93efd67c43e4d3a6eb1898104820f6e7824bbeeb4a1f12a8","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"1f0af97c756722dd6ef8389d53be07e6eda6ea8866a72f49b94427db4f27f770","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"bf01f81e2ec19fef3cc73e799c398a33bf5d8f9ba32f97bb8caaff146c38db0b","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"46e75c08697dd678c5e2c6ab62936a939c78137754f21e7653c03f608561a7e5","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"309f54794e14f8a588e36629535c52353ce870aca6f75edb8d1241f8748a6e88","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"e5cb30227009d38ba2b4498b068c02b99659bbc4fb3212a739d07c8cf6d44012","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"f9f6d26eb09d886e13f2813ee773cf0b03bff972ea518a5fe36a057d372d89d0","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"0d7fd286e3ce914d0cf0c9a4374e6dce030bfafb0877e74b8a7ea2298b251898","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"215bdc778a4d43f75c1eb2008c4c185ce05655169e6b19ebdead2e7dfd33fb95","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"957c224426907e2bbb58ed69fd75e8ad70cf057187cf17f3605ffbc6ca1d7519","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"f9a35dad1ca5d7e4795371826e530016824ffc1b33d5e9bb26578b3ae1a370e9","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"4751a079afd159568c1b00776d3a30f3865efa78a8367d84ffd41a57282c70e4","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"0849ebb0a7678db361cea2e9666c22a5f125acff73e5569a978e09e0c3348229","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"fb756a79fad85ccb20feeffee25ddad8aa250228bce9fffef2eb8a720b92b0f7","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"b6337e2bbe307dca560794298cec097271f1da3b58ee07c0b9d56fdf3dd61a5e","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"7cbc946acfd1ad1643777c069f585edea72fb9443853b4ed43b420dd1293c1f8","2e076b98a3d126b78bd507b97fce30652abe96587e3b545d10edeb038c41b7ea",{"version":"983bc8979201fdfba6dda898d1447305af0a4969976a263f512c67fb2a5ecb93","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"88e33dd4a5d67a9aa1b3803159cd4186f46c4ed7a2e60a610fd51ad2910308cf","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"3e03b867e36b158458894523bb7952f5b98ffb5f0cda93c56f1065d342ac085f","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"5270e51809a87ce98b81a219a540fca49c2325745733cf314d2ef72ce6aadaf3","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"3c7aa3d84c1c942be2bfe92c67cce56cb394e14e7031311122e353ccf0ce0135","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"2e5686e5c265992cbf5dbd1e7276b4293443d07ad66798d12ae2389db81ce1b0","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"f8c6d6e9f8f0e129b1b754bfe65b7d6760ca80e76367fd426a28e728006fb782","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"15add2f6aa1dfac8b448aa599adaeee421d31f23977a9039975c4ac5b1ede8a0","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"1409b86e2f8b22dcb7768e408048c3e4311be66120f69e8d4f8bd75a9c7bffdb","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"0faf3d0480b7cd407dafda7fc2f91041973f952439db026c464bf61d540c081a","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"18bfe69f119d0d705d025b7238ca88da307b3dd82cf2cf26b7a9ce53604def82","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"e77c61c10e75efa52683fd376a509a91f8c6a64f77d06723b274a5833d9779ba","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"072e47a6498f7256ea0b4ac39910f2e949ad8b04863dd8050784f2353a419fab","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"ee0d9c16a09c3388c6f95f426b641326ae68d0940fb851bbb24340a9cea29d00","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"489985aee0b7f12ec02a68cbe7ad77369cbb852b61110ed6984ba602b04a2c05","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"1d5d421d8aa4829caf3fe65e266fdc3181a6a78f05a2e19f07867340944782bb","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"54b8643cd685561b77a8896f493d4485c455dd66b648555c00afe03d64cedb0f","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"944c1359ab3cffaef654be8549f17eb43d1366ae078d24efe4d8c5a01d833192","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"421c3f008f6ef4a5db2194d58a7b960ef6f33e94b033415649cd557be09ef619","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1},{"version":"4ba01987c4b2c4b94a24c0a05bffbd75ab64d9fe8335dc63e9955d6c51a63468","impliedFormat":1},{"version":"4cf58cd73f135e59d2268b4b792623bd8cc7ea887d96498f2a64d550beb930bb","impliedFormat":1},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true,"impliedFormat":1}],"root":[83,502,503,525,550,608,609,614,[756,772],[776,846],[932,951],[1172,1208],[1215,1266],[1376,1378],[1382,1401],1405,1406,[1417,1440],[1443,1445],[1447,1471],1476,1522,[1527,1531],[1533,1600],[1638,1754]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true,"target":9},"referencedMap":[[1667,1],[1666,2],[1668,3],[1669,4],[1670,5],[1672,6],[1671,7],[1673,8],[1676,9],[1677,10],[1678,11],[1679,12],[1680,13],[1681,14],[1675,15],[1682,16],[1683,17],[1674,18],[1684,19],[1685,20],[1686,21],[1687,22],[1689,23],[1690,24],[1688,25],[1691,26],[1692,27],[1693,28],[1696,29],[1697,30],[1698,31],[1699,32],[1700,33],[1701,34],[1702,35],[1704,36],[1703,37],[1695,38],[1705,39],[1706,40],[1707,41],[1708,42],[1709,43],[1694,44],[1710,45],[1711,46],[1712,47],[1713,48],[1714,49],[1716,50],[1717,51],[1715,52],[1718,53],[1719,54],[1720,55],[1723,56],[1724,57],[1725,58],[1722,59],[1726,60],[1721,61],[1727,62],[1728,63],[1730,64],[1729,65],[1731,66],[1733,67],[1735,68],[1736,69],[1737,70],[1734,71],[1738,72],[1740,73],[1739,74],[1741,75],[1732,76],[1742,77],[1743,78],[1746,79],[1745,80],[1747,81],[1748,82],[1744,83],[1750,84],[1749,85],[1752,86],[1753,87],[1751,88],[1665,89],[1754,90],[1663,91],[83,92],[1664,93],[609,94],[502,95],[503,96],[612,97],[611,98],[1145,92],[1147,99],[1148,92],[1153,100],[1149,92],[1146,92],[1150,92],[1151,99],[1152,99],[627,101],[632,102],[628,103],[630,104],[636,105],[638,106],[639,107],[721,108],[641,109],[645,110],[648,111],[691,112],[692,112],[720,113],[693,114],[694,115],[705,116],[706,117],[704,118],[696,119],[708,120],[707,121],[709,112],[710,112],[711,122],[712,123],[713,124],[714,125],[715,126],[716,127],[717,123],[695,92],[718,128],[719,116],[722,129],[723,130],[626,131],[631,132],[625,133],[629,132],[633,133],[637,132],[640,133],[643,134],[646,132],[686,135],[688,136],[687,137],[649,132],[634,132],[635,92],[647,138],[650,132],[653,139],[623,131],[654,140],[685,132],[644,92],[651,132],[655,141],[690,142],[656,132],[657,132],[658,132],[659,133],[624,143],[664,132],[663,132],[660,132],[661,132],[662,132],[665,132],[666,132],[667,132],[668,144],[669,133],[670,145],[671,133],[672,139],[673,132],[674,132],[676,146],[675,132],[642,132],[677,132],[678,147],[679,132],[680,132],[681,132],[683,148],[652,141],[684,149],[682,140],[689,132],[739,92],[740,131],[699,150],[737,151],[744,152],[730,153],[729,154],[701,155],[728,156],[703,157],[733,158],[727,159],[734,160],[725,161],[724,92],[736,162],[702,92],[743,163],[735,164],[700,92],[732,165],[731,166],[741,167],[1514,150],[1509,168],[1511,169],[1477,170],[1478,171],[751,172],[1518,173],[1519,174],[752,175],[1512,176],[1516,177],[1515,174],[1513,178],[1520,179],[1521,180],[749,181],[738,182],[754,183],[753,92],[748,184],[747,185],[755,186],[750,187],[621,188],[746,189],[1517,190],[745,92],[1479,92],[742,191],[1480,92],[1481,191],[1482,92],[1483,92],[1484,92],[1485,191],[1486,92],[697,191],[698,192],[1487,92],[1488,92],[1489,92],[616,193],[1490,92],[1506,92],[1504,92],[1491,92],[1492,92],[1493,191],[1494,191],[1510,194],[1495,92],[1496,92],[1503,92],[1505,92],[1502,92],[617,191],[618,195],[726,92],[1497,92],[1498,92],[1508,196],[622,191],[1499,92],[1500,92],[1501,92],[619,193],[615,92],[620,197],[1637,198],[1635,199],[1636,200],[959,92],[1088,201],[981,202],[982,203],[1052,204],[980,92],[1061,205],[1117,206],[979,207],[1114,92],[1121,208],[954,92],[955,209],[969,210],[976,211],[970,212],[960,92],[963,213],[965,214],[962,213],[961,213],[966,92],[971,212],[972,212],[1119,215],[975,216],[967,217],[1085,218],[973,212],[968,212],[1118,219],[974,220],[977,218],[1089,221],[1048,222],[1051,223],[985,224],[1043,225],[1053,226],[1055,227],[1049,228],[1050,229],[984,230],[1038,231],[1040,232],[1042,233],[983,92],[964,92],[1060,92],[1041,92],[1087,234],[1086,92],[1154,235],[1054,92],[957,236],[1039,237],[978,238],[958,239],[1091,240],[1090,92],[1092,241],[1093,242],[1094,92],[1096,243],[1097,92],[1098,240],[1099,92],[1102,240],[1103,92],[1104,244],[1105,92],[1106,245],[1095,242],[1107,240],[1101,246],[1108,241],[1100,242],[1109,240],[1110,244],[1111,240],[1112,244],[1113,247],[1056,248],[1065,249],[1066,250],[1058,92],[1067,251],[1057,252],[952,92],[1059,92],[1062,253],[1063,254],[1064,254],[953,92],[1073,255],[1068,256],[1072,257],[1071,258],[1075,255],[1076,255],[1074,255],[1077,255],[1078,255],[1079,255],[1070,259],[1140,260],[1165,261],[1164,262],[1082,263],[1158,264],[1163,265],[1166,266],[1162,267],[1161,268],[1157,269],[1156,270],[1171,271],[1159,92],[1136,272],[1139,273],[1084,274],[1081,275],[1080,92],[1132,276],[1120,277],[1169,278],[1083,279],[1069,92],[1138,280],[1167,281],[1168,282],[1155,283],[1141,236],[1144,284],[1142,281],[1143,281],[1125,285],[1135,286],[1129,287],[1133,288],[1124,92],[1134,289],[1127,290],[1128,291],[1130,292],[1126,293],[1131,291],[1123,294],[1137,295],[1170,296],[1160,92],[1122,92],[928,297],[924,298],[931,299],[925,300],[929,301],[923,302],[918,303],[1212,304],[1209,305],[917,306],[1446,307],[927,308],[914,92],[1210,309],[1213,310],[1441,311],[1442,312],[1214,307],[903,313],[926,314],[920,315],[919,306],[916,306],[1211,92],[915,316],[922,317],[249,92],[524,318],[613,319],[610,92],[956,92],[1523,92],[1524,320],[1525,321],[1526,322],[597,323],[1270,92],[1269,324],[1271,325],[1268,92],[1755,324],[1272,326],[595,92],[564,92],[1756,92],[1757,92],[146,327],[147,327],[148,328],[100,329],[149,330],[150,331],[151,332],[95,92],[98,333],[96,92],[97,92],[152,334],[153,335],[154,336],[155,337],[156,338],[157,339],[158,339],[159,340],[160,341],[161,342],[162,343],[101,92],[99,92],[163,344],[164,345],[165,346],[199,347],[166,348],[167,92],[168,349],[169,350],[170,351],[171,352],[172,353],[173,354],[174,355],[175,356],[176,357],[177,357],[178,358],[179,92],[180,359],[181,360],[183,361],[182,362],[184,363],[185,364],[186,365],[187,366],[188,367],[189,368],[190,369],[191,370],[192,371],[193,372],[194,373],[195,374],[196,375],[102,92],[103,92],[104,92],[142,376],[143,92],[144,92],[145,363],[197,377],[198,378],[1758,92],[1759,92],[203,379],[359,380],[204,381],[202,382],[361,383],[360,384],[200,385],[357,92],[201,386],[84,92],[86,387],[356,380],[267,380],[1761,388],[1760,92],[560,389],[584,390],[582,92],[583,92],[552,92],[579,391],[576,392],[577,393],[598,394],[589,92],[592,395],[591,396],[603,396],[590,397],[551,92],[559,398],[578,398],[554,399],[557,400],[585,399],[558,401],[553,92],[1352,402],[1353,403],[1351,380],[1356,404],[1355,405],[1357,406],[1354,407],[1370,408],[1371,409],[1369,410],[1372,411],[1361,412],[1359,413],[1360,414],[1358,407],[1365,415],[1364,416],[1363,417],[1362,410],[1368,418],[1367,419],[1366,410],[1328,380],[1325,420],[1322,421],[1319,421],[1323,422],[1324,421],[1321,421],[1320,421],[1318,410],[1327,410],[1326,422],[1329,380],[1317,423],[1346,380],[1344,424],[1333,425],[1341,426],[1345,425],[1335,426],[1342,426],[1332,425],[1343,424],[1336,423],[1340,92],[1348,424],[1347,424],[1339,425],[1338,426],[1330,425],[1337,425],[1331,426],[1334,426],[1374,427],[1313,407],[1312,407],[1310,407],[1316,428],[1315,424],[1311,429],[1314,424],[1349,424],[1373,426],[1350,423],[1281,430],[1309,431],[1267,430],[1279,432],[1278,433],[1276,430],[1280,434],[1275,435],[1277,436],[1273,92],[1282,430],[1283,430],[1294,92],[1284,430],[1287,437],[1289,438],[1288,439],[1286,430],[1285,92],[1291,440],[1290,430],[1297,441],[1292,430],[1293,426],[1296,430],[1295,442],[1274,430],[1299,443],[1298,430],[1302,444],[1300,430],[1301,445],[1303,446],[1305,447],[1304,430],[1308,448],[1306,449],[1307,450],[596,92],[1532,92],[85,92],[1507,92],[569,92],[987,92],[930,92],[1413,451],[1415,452],[1414,453],[1412,454],[1411,92],[1380,455],[1379,92],[1115,92],[1116,456],[921,92],[1381,92],[1027,457],[1004,458],[1002,92],[1005,459],[1028,460],[1008,461],[997,92],[999,92],[1003,462],[1000,463],[1007,464],[998,92],[1006,465],[1001,462],[1015,466],[1009,467],[1010,468],[1014,469],[1013,470],[1026,471],[1016,472],[1017,467],[1029,467],[1019,473],[1018,474],[1031,475],[1030,476],[1012,477],[1011,472],[1020,478],[1021,472],[1023,479],[1022,478],[1024,467],[1025,480],[1034,481],[996,482],[986,92],[1035,483],[994,92],[1044,92],[1046,484],[1045,485],[993,486],[995,92],[992,487],[1033,92],[1032,488],[1036,489],[1037,488],[1047,490],[1375,380],[1475,380],[93,491],[448,492],[453,91],[455,493],[225,494],[253,495],[431,496],[248,497],[236,92],[217,92],[223,92],[421,498],[284,499],[224,92],[390,500],[258,501],[259,502],[355,503],[418,504],[373,505],[425,506],[426,507],[424,508],[423,92],[422,509],[255,510],[226,511],[305,92],[306,512],[221,92],[237,513],[227,514],[289,513],[286,513],[210,513],[251,515],[250,92],[430,516],[440,92],[216,92],[331,517],[332,518],[326,380],[476,92],[334,92],[335,519],[327,520],[482,521],[480,522],[475,92],[417,523],[416,92],[474,524],[328,380],[369,525],[367,526],[477,92],[481,92],[479,527],[478,92],[368,528],[469,529],[472,530],[296,531],[295,532],[294,533],[485,380],[293,534],[278,92],[488,92],[1473,535],[1472,92],[491,92],[490,380],[492,536],[206,92],[427,537],[428,538],[429,539],[239,92],[215,540],[205,92],[347,380],[208,541],[346,542],[345,543],[336,92],[337,92],[344,92],[339,92],[342,544],[338,92],[340,545],[343,546],[341,545],[222,92],[213,92],[214,513],[268,547],[269,548],[266,549],[264,550],[265,551],[261,92],[353,519],[375,519],[447,552],[456,553],[460,554],[434,555],[433,92],[281,92],[493,556],[443,557],[329,558],[330,559],[321,560],[311,92],[352,561],[312,562],[354,563],[349,564],[348,92],[350,92],[366,565],[435,566],[436,567],[314,568],[318,569],[309,570],[413,571],[442,572],[288,573],[391,574],[211,575],[441,576],[207,497],[262,92],[270,577],[402,578],[260,92],[401,579],[94,92],[396,580],[238,92],[307,581],[392,92],[212,92],[271,92],[400,582],[220,92],[276,583],[317,584],[432,585],[316,92],[399,92],[263,92],[404,586],[405,587],[218,92],[407,588],[409,589],[408,590],[241,92],[398,575],[411,591],[397,592],[403,593],[229,92],[232,92],[230,92],[234,92],[231,92],[233,92],[235,594],[228,92],[383,595],[382,92],[388,596],[384,597],[387,598],[386,598],[389,596],[385,597],[275,599],[376,600],[439,601],[495,92],[464,602],[466,603],[313,92],[465,604],[437,566],[494,605],[333,566],[219,92],[315,606],[272,607],[273,608],[274,609],[304,610],[412,610],[290,610],[377,611],[291,611],[257,612],[256,92],[381,613],[380,614],[379,615],[378,616],[438,617],[325,618],[363,619],[324,620],[358,621],[362,622],[420,623],[419,624],[415,625],[372,626],[374,627],[371,628],[410,629],[365,92],[452,92],[364,630],[414,92],[277,631],[310,537],[308,632],[279,633],[282,634],[489,92],[280,635],[283,635],[450,92],[449,92],[451,92],[487,92],[285,636],[323,380],[92,92],[370,637],[254,92],[243,638],[319,92],[458,380],[468,639],[303,380],[462,519],[302,640],[445,641],[301,639],[209,92],[470,642],[299,380],[300,380],[292,92],[242,92],[298,643],[297,644],[240,645],[320,356],[287,356],[406,92],[394,646],[393,92],[454,92],[351,647],[322,380],[446,648],[87,380],[90,649],[91,650],[88,380],[89,92],[252,651],[247,652],[246,92],[245,653],[244,92],[444,654],[457,655],[459,656],[461,657],[1474,658],[463,659],[467,660],[501,661],[471,661],[500,662],[473,663],[483,664],[484,665],[486,666],[496,667],[499,540],[498,92],[497,668],[991,669],[989,670],[990,671],[988,92],[773,672],[775,673],[521,674],[504,92],[505,674],[520,675],[523,676],[522,677],[542,678],[540,679],[541,680],[529,681],[530,679],[537,682],[528,683],[533,684],[543,92],[534,685],[539,686],[545,687],[544,688],[527,689],[535,690],[536,691],[531,692],[538,678],[532,693],[1601,92],[1617,694],[1618,694],[1619,694],[1620,694],[1634,695],[1621,696],[1622,696],[1623,697],[1614,698],[1612,699],[1603,92],[1607,700],[1611,701],[1609,702],[1616,703],[1604,704],[1605,705],[1606,706],[1608,707],[1610,708],[1613,709],[1615,710],[1624,696],[1625,696],[1626,696],[1627,694],[1628,696],[1629,696],[1602,696],[1630,92],[1632,711],[1631,696],[1633,694],[566,712],[565,713],[395,714],[774,715],[526,92],[548,716],[547,92],[546,92],[549,717],[599,92],[555,92],[556,718],[81,92],[82,92],[13,92],[14,92],[16,92],[15,92],[2,92],[17,92],[18,92],[19,92],[20,92],[21,92],[22,92],[23,92],[24,92],[3,92],[25,92],[26,92],[4,92],[27,92],[31,92],[28,92],[29,92],[30,92],[32,92],[33,92],[34,92],[5,92],[35,92],[36,92],[37,92],[38,92],[6,92],[42,92],[39,92],[40,92],[41,92],[43,92],[7,92],[44,92],[49,92],[50,92],[45,92],[46,92],[47,92],[48,92],[8,92],[54,92],[51,92],[52,92],[53,92],[55,92],[9,92],[56,92],[57,92],[58,92],[60,92],[59,92],[61,92],[62,92],[10,92],[63,92],[64,92],[65,92],[11,92],[66,92],[67,92],[68,92],[69,92],[70,92],[1,92],[71,92],[72,92],[12,92],[76,92],[74,92],[79,92],[78,92],[73,92],[77,92],[75,92],[80,92],[120,719],[130,720],[119,719],[140,721],[111,722],[110,723],[139,668],[133,724],[138,725],[113,726],[127,727],[112,728],[136,729],[108,730],[107,668],[137,731],[109,732],[114,733],[115,92],[118,733],[105,92],[141,734],[131,735],[122,736],[123,737],[125,738],[121,739],[124,740],[134,668],[116,741],[117,742],[126,743],[106,744],[129,735],[128,733],[132,92],[135,745],[601,746],[587,747],[588,746],[586,92],[562,748],[575,749],[568,750],[563,748],[561,92],[567,751],[573,92],[571,92],[572,92],[570,92],[574,752],[607,753],[600,754],[593,755],[602,756],[581,757],[1408,758],[1409,759],[604,760],[1410,761],[605,762],[594,763],[1407,764],[606,765],[1416,766],[580,92],[519,767],[511,768],[518,769],[513,92],[514,92],[512,770],[515,771],[506,92],[507,92],[508,767],[510,772],[516,92],[517,773],[509,774],[907,775],[910,776],[908,776],[904,775],[911,777],[912,778],[909,776],[905,779],[906,780],[899,781],[851,782],[853,783],[897,92],[852,784],[898,785],[902,786],[900,92],[854,782],[855,92],[896,787],[850,788],[847,92],[901,789],[848,790],[849,92],[913,791],[856,792],[857,792],[858,792],[859,792],[860,792],[861,792],[862,792],[863,792],[864,792],[865,792],[866,792],[868,792],[867,792],[869,792],[870,792],[871,792],[895,793],[872,792],[873,792],[874,792],[875,792],[876,792],[877,792],[878,792],[879,792],[880,792],[882,792],[881,792],[883,792],[884,792],[885,792],[886,792],[887,792],[888,792],[889,792],[890,792],[891,792],[892,792],[893,792],[894,792],[1404,794],[1403,795],[1402,92],[525,94],[614,796],[788,797],[787,798],[792,799],[801,800],[802,801],[946,802],[807,803],[949,804],[1189,805],[1190,806],[1191,806],[1192,807],[1193,808],[1194,809],[1188,805],[1195,810],[1198,811],[1187,812],[1199,813],[1200,814],[1201,814],[1204,815],[1207,816],[1208,814],[1206,817],[1216,818],[1217,819],[1218,820],[1222,821],[1223,821],[1224,821],[1225,821],[1226,821],[1227,822],[1228,821],[1230,823],[1229,821],[1221,824],[1231,823],[1232,824],[1233,823],[1234,825],[1235,823],[1220,826],[1236,815],[1237,816],[1238,818],[1241,827],[1242,814],[1245,828],[1246,828],[1244,828],[1247,828],[1248,828],[1250,829],[1255,830],[1256,830],[1257,831],[1254,831],[1260,832],[1253,831],[1261,833],[1262,834],[1265,835],[1264,835],[1547,836],[1557,837],[1558,838],[1572,839],[1573,840],[1574,841],[1559,842],[1575,837],[1576,843],[1549,844],[1579,837],[1581,845],[1577,837],[1578,846],[1582,837],[1583,847],[1550,92],[1552,837],[1556,848],[1584,837],[1585,849],[1586,837],[1588,850],[1600,837],[1640,851],[1598,837],[1599,852],[1641,837],[1642,853],[1589,837],[1594,854],[1643,837],[1644,855],[1595,856],[1597,857],[1596,858],[1654,837],[1655,859],[1645,837],[1646,860],[1648,861],[1651,862],[1649,863],[1652,864],[1650,865],[1653,866],[1658,867],[1659,836],[1656,836],[1471,868],[1536,869],[1538,870],[1539,871],[1546,872],[1530,873],[1660,836],[1570,874],[1266,875],[1564,876],[1378,877],[1565,878],[1560,879],[1569,868],[1568,868],[1566,880],[1382,881],[1383,875],[1571,882],[1377,883],[1384,875],[1567,884],[1562,885],[1561,886],[1376,887],[1563,888],[1385,889],[1386,890],[1592,891],[1529,892],[1555,893],[1580,894],[1537,380],[1591,868],[1553,868],[1548,868],[1533,868],[1551,895],[1535,896],[1544,868],[1545,897],[1541,891],[1661,868],[1543,380],[1542,380],[1531,898],[1534,899],[1593,891],[1647,900],[1522,901],[1527,902],[1528,380],[1476,892],[1540,380],[1638,903],[1639,904],[1554,905],[1587,896],[1662,906],[1657,907],[1590,891],[1387,92],[1259,908],[1392,909],[1393,910],[784,92],[1394,911],[785,912],[771,913],[786,813],[1391,914],[760,915],[1203,92],[776,916],[761,917],[1390,918],[762,919],[756,920],[777,921],[782,922],[781,923],[783,924],[790,925],[791,926],[948,927],[947,928],[1181,92],[770,92],[1180,929],[1174,92],[1176,930],[1177,92],[805,931],[1172,932],[1179,933],[1178,934],[1395,935],[1175,936],[1173,915],[780,937],[837,938],[808,92],[838,92],[842,939],[806,875],[1185,940],[1186,941],[846,92],[932,942],[934,943],[933,944],[840,944],[1215,945],[841,946],[935,944],[1197,947],[1196,948],[941,949],[1396,950],[943,951],[1397,951],[940,952],[1183,953],[1184,954],[824,955],[822,956],[832,957],[814,958],[812,959],[831,960],[830,961],[826,962],[816,963],[833,92],[828,964],[836,965],[811,959],[820,966],[818,967],[834,968],[835,969],[823,915],[821,915],[813,915],[829,915],[825,915],[815,915],[827,915],[819,915],[817,915],[796,970],[794,971],[800,972],[793,915],[798,973],[799,92],[797,970],[795,974],[765,975],[763,976],[767,977],[843,978],[772,979],[764,980],[759,980],[766,92],[809,981],[769,981],[844,944],[939,951],[803,914],[1388,959],[937,982],[945,983],[804,984],[1389,985],[1399,986],[1182,987],[1398,980],[951,981],[845,988],[942,989],[1239,914],[1400,914],[936,990],[944,991],[1240,992],[1263,993],[1401,994],[1405,995],[1202,92],[758,92],[768,92],[778,92],[1205,944],[839,959],[789,92],[938,92],[1249,92],[779,875],[1258,92],[810,92],[1406,92],[757,915],[950,915],[1251,915],[1219,915],[1243,915],[1252,996],[550,997],[1417,998],[1418,999],[1435,1000],[1419,1001],[1436,1002],[1425,1003],[1426,1004],[1437,1005],[1438,1006],[1439,1007],[1427,1008],[1422,1009],[1429,1010],[1421,1011],[1423,1012],[1428,1013],[1420,935],[1440,1014],[1443,1015],[1444,1016],[1445,1017],[1447,1018],[1448,1019],[1449,1020],[1450,1021],[1451,1022],[1430,1023],[1452,1024],[1453,1025],[1454,1026],[1431,1027],[1432,1028],[1433,1029],[1434,1030],[1455,1031],[1456,1032],[1457,1031],[1458,1033],[1424,938],[1459,1031],[1460,1027],[1461,1031],[1462,1032],[1463,1034],[1464,1031],[1465,1035],[1466,1036],[1467,1037],[1468,1038],[1469,1039],[1470,1040],[608,1041]],"affectedFilesPendingEmit":[1667,1666,1668,1669,1670,1672,1671,1673,1676,1677,1678,1679,1680,1681,1675,1682,1683,1674,1684,1685,1686,1687,1689,1690,1688,1691,1692,1693,1696,1697,1698,1699,1700,1701,1702,1704,1703,1695,1705,1706,1707,1708,1709,1694,1710,1711,1712,1713,1714,1716,1717,1715,1718,1719,1720,1723,1724,1725,1722,1726,1721,1727,1728,1730,1729,1731,1733,1735,1736,1737,1734,1738,1740,1739,1741,1732,1742,1743,1746,1745,1747,1748,1744,1750,1749,1752,1753,1751,1665,1754,1664,609,503,525,614,788,787,792,801,802,946,807,949,1189,1190,1191,1192,1193,1194,1188,1195,1198,1187,1199,1200,1201,1204,1207,1208,1206,1216,1217,1218,1222,1223,1224,1225,1226,1227,1228,1230,1229,1221,1231,1232,1233,1234,1235,1220,1236,1237,1238,1241,1242,1245,1246,1244,1247,1248,1250,1255,1256,1257,1254,1260,1253,1261,1262,1265,1264,1547,1557,1558,1572,1573,1574,1559,1575,1576,1549,1579,1581,1577,1578,1582,1583,1550,1552,1556,1584,1585,1586,1588,1600,1640,1598,1599,1641,1642,1589,1594,1643,1644,1595,1597,1596,1654,1655,1645,1646,1648,1651,1649,1652,1650,1653,1658,1659,1656,1471,1536,1538,1539,1546,1530,1660,1570,1266,1564,1378,1565,1560,1569,1568,1566,1382,1383,1571,1377,1384,1567,1562,1561,1376,1563,1385,1386,1592,1529,1555,1580,1537,1591,1553,1548,1533,1551,1535,1544,1545,1541,1661,1543,1542,1531,1534,1593,1647,1522,1527,1528,1476,1540,1638,1639,1554,1587,1662,1657,1590,1387,1259,1392,1393,784,1394,785,771,786,1391,760,1203,776,761,1390,762,756,777,782,781,783,790,791,948,947,1181,770,1180,1174,1176,1177,805,1172,1179,1178,1395,1175,1173,780,837,808,838,842,806,1185,1186,846,932,934,933,840,1215,841,935,1197,1196,941,1396,943,1397,940,1183,1184,824,822,832,814,812,831,830,826,816,833,828,836,811,820,818,834,835,823,821,813,829,825,815,827,819,817,796,794,800,793,798,799,797,795,765,763,767,843,772,764,759,766,809,769,844,939,803,1388,937,945,804,1389,1399,1182,1398,951,845,942,1239,1400,936,944,1240,1263,1401,1405,1202,758,768,778,1205,839,789,938,1249,779,1258,810,1406,757,950,1251,1219,1243,1252,550,1417,1418,1435,1419,1436,1425,1426,1437,1438,1439,1427,1422,1429,1421,1423,1428,1420,1440,1443,1444,1445,1447,1448,1449,1450,1451,1430,1452,1453,1454,1431,1432,1433,1434,1455,1456,1457,1458,1424,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,608],"version":"5.9.3"} \ No newline at end of file +{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./.next/types/routes.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/shared/lib/amp.d.ts","./node_modules/next/amp.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/@types/node/web-globals/storage.d.ts","./node_modules/@types/node/web-globals/streams.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/@types/react/canary.d.ts","./node_modules/@types/react/experimental.d.ts","./node_modules/@types/react-dom/index.d.ts","./node_modules/@types/react-dom/canary.d.ts","./node_modules/@types/react-dom/experimental.d.ts","./node_modules/next/dist/lib/fallback.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/lib/cache-control.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/worker.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/build/rendering-mode.d.ts","./node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/lib/experimental/ppr.d.ts","./node_modules/next/dist/build/webpack/plugins/app-build-manifest-plugin.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","./node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/server/node-environment-baseline.d.ts","./node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","./node_modules/next/dist/server/node-environment-extensions/random.d.ts","./node_modules/next/dist/server/node-environment-extensions/date.d.ts","./node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","./node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/server/instrumentation/types.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/build/build-context.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/server/route-kind.d.ts","./node_modules/next/dist/server/route-definitions/route-definition.d.ts","./node_modules/next/dist/build/swc/generated-native.d.ts","./node_modules/next/dist/build/swc/types.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/next-devtools/shared/types.d.ts","./node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","./node_modules/next/dist/server/lib/parse-stack.d.ts","./node_modules/next/dist/next-devtools/server/shared.d.ts","./node_modules/next/dist/next-devtools/shared/stack-frame.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts","./node_modules/@types/react/jsx-runtime.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/server/lib/cache-handlers/types.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","./node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/server/lib/i18n-provider.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/server/after/builtin-request-context.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/server/app-render/cache-signal.d.ts","./node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/next/dist/server/request/fallback-params.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/next/dist/server/lib/lazy-result.d.ts","./node_modules/next/dist/server/lib/implicit-tags.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","./node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","./node_modules/next/dist/client/components/client-page.d.ts","./node_modules/next/dist/client/components/client-segment.d.ts","./node_modules/next/dist/server/request/search-params.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/dist/lib/metadata/types/resolvers.d.ts","./node_modules/next/dist/lib/metadata/types/icons.d.ts","./node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","./node_modules/next/dist/lib/metadata/metadata.d.ts","./node_modules/next/dist/lib/framework/boundary-components.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts","./node_modules/next/dist/server/app-render/collect-segment-data.d.ts","./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/@types/react/jsx-dev-runtime.d.ts","./node_modules/@types/react/compiler-runtime.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","./node_modules/@types/react-dom/client.d.ts","./node_modules/@types/react-dom/static.d.ts","./node_modules/@types/react-dom/server.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/web/adapter.d.ts","./node_modules/next/dist/server/use-cache/cache-life.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/client/flight-data-helpers.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/route-modules/pages/module.d.ts","./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/normalizers/normalizer.d.ts","./node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/normalizers/request/prefetch-rsc.d.ts","./node_modules/next/dist/server/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","./node_modules/next/dist/build/static-paths/types.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/lib/async-callback-set.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/sharp/lib/index.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/lru-cache.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","./node_modules/next/dist/server/route-modules/route-module.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","./node_modules/next/dist/server/async-storage/work-store.d.ts","./node_modules/next/dist/server/web/http.d.ts","./node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect-error.d.ts","./node_modules/next/dist/build/templates/app-route.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","./node_modules/next/dist/build/segment-config/app/app-segments.d.ts","./node_modules/next/dist/build/utils.d.ts","./node_modules/next/dist/build/turborepo-access-trace/types.d.ts","./node_modules/next/dist/build/turborepo-access-trace/result.d.ts","./node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","./node_modules/next/dist/build/turborepo-access-trace/index.d.ts","./node_modules/next/dist/export/routes/types.d.ts","./node_modules/next/dist/export/types.d.ts","./node_modules/next/dist/export/worker.d.ts","./node_modules/next/dist/build/worker.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/server/after/after.d.ts","./node_modules/next/dist/server/after/after-context.d.ts","./node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","./node_modules/next/dist/server/request/params.d.ts","./node_modules/next/dist/server/route-matches/route-match.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/cli/next-test.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/types.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/dist/server/use-cache/cache-tag.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/shared/lib/runtime-config.external.d.ts","./node_modules/next/config.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/server/request/cookies.d.ts","./node_modules/next/dist/server/request/headers.d.ts","./node_modules/next/dist/server/request/draft-mode.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/forbidden.d.ts","./node_modules/next/dist/client/components/unauthorized.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.d.ts","./node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/next/dist/client/components/unrecognized-action-error.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/dist/server/after/index.d.ts","./node_modules/next/dist/server/request/root-params.d.ts","./node_modules/next/dist/server/request/connection.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/types.d.ts","./node_modules/next/index.d.ts","./node_modules/next/image-types/global.d.ts","./next-env.d.ts","./next.config.ts","./node_modules/playwright-core/types/protocol.d.ts","./node_modules/playwright-core/types/structs.d.ts","./node_modules/zod/v3/helpers/typealiases.d.cts","./node_modules/zod/v3/helpers/util.d.cts","./node_modules/zod/v3/index.d.cts","./node_modules/zod/v3/zoderror.d.cts","./node_modules/zod/v3/locales/en.d.cts","./node_modules/zod/v3/errors.d.cts","./node_modules/zod/v3/helpers/parseutil.d.cts","./node_modules/zod/v3/helpers/enumutil.d.cts","./node_modules/zod/v3/helpers/errorutil.d.cts","./node_modules/zod/v3/helpers/partialutil.d.cts","./node_modules/zod/v3/standard-schema.d.cts","./node_modules/zod/v3/types.d.cts","./node_modules/zod/v3/external.d.cts","./node_modules/zod/index.d.cts","./node_modules/playwright-core/types/types.d.ts","./node_modules/playwright-core/index.d.ts","./node_modules/playwright/types/test.d.ts","./node_modules/playwright/test.d.ts","./node_modules/@playwright/test/index.d.ts","./playwright.config.ts","./node_modules/source-map-js/source-map.d.ts","./node_modules/postcss/lib/previous-map.d.ts","./node_modules/postcss/lib/input.d.ts","./node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/postcss/lib/declaration.d.ts","./node_modules/postcss/lib/root.d.ts","./node_modules/postcss/lib/warning.d.ts","./node_modules/postcss/lib/lazy-result.d.ts","./node_modules/postcss/lib/no-work-result.d.ts","./node_modules/postcss/lib/processor.d.ts","./node_modules/postcss/lib/result.d.ts","./node_modules/postcss/lib/document.d.ts","./node_modules/postcss/lib/rule.d.ts","./node_modules/postcss/lib/node.d.ts","./node_modules/postcss/lib/comment.d.ts","./node_modules/postcss/lib/container.d.ts","./node_modules/postcss/lib/at-rule.d.ts","./node_modules/postcss/lib/list.d.ts","./node_modules/postcss/lib/postcss.d.ts","./node_modules/postcss/lib/postcss.d.mts","./node_modules/tailwindcss/types/generated/corepluginlist.d.ts","./node_modules/tailwindcss/types/generated/colors.d.ts","./node_modules/tailwindcss/types/config.d.ts","./node_modules/tailwindcss/types/index.d.ts","./tailwind.config.ts","./node_modules/@vitest/spy/dist/index.d.ts","./node_modules/@vitest/pretty-format/dist/index.d.ts","./node_modules/@vitest/utils/dist/types.d.ts","./node_modules/@vitest/utils/dist/helpers.d.ts","./node_modules/tinyrainbow/dist/index-8b61d5bc.d.ts","./node_modules/tinyrainbow/dist/node.d.ts","./node_modules/@vitest/utils/dist/index.d.ts","./node_modules/@vitest/utils/dist/types.d-bcelap-c.d.ts","./node_modules/@vitest/utils/dist/diff.d.ts","./node_modules/@vitest/expect/dist/index.d.ts","./node_modules/vite/types/hmrpayload.d.ts","./node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","./node_modules/vite/types/customevent.d.ts","./node_modules/@types/estree/index.d.ts","./node_modules/rollup/dist/rollup.d.ts","./node_modules/rollup/dist/parseast.d.ts","./node_modules/vite/types/hot.d.ts","./node_modules/vite/dist/node/module-runner.d.ts","./node_modules/esbuild/lib/main.d.ts","./node_modules/vite/types/internal/terseroptions.d.ts","./node_modules/vite/types/internal/csspreprocessoroptions.d.ts","./node_modules/vite/types/internal/lightningcssoptions.d.ts","./node_modules/vite/types/importglob.d.ts","./node_modules/vite/types/metadata.d.ts","./node_modules/vite/dist/node/index.d.ts","./node_modules/@vitest/runner/dist/tasks.d-cksck4of.d.ts","./node_modules/@vitest/runner/dist/types.d.ts","./node_modules/@vitest/utils/dist/error.d.ts","./node_modules/@vitest/runner/dist/index.d.ts","./node_modules/vitest/optional-types.d.ts","./node_modules/vitest/dist/chunks/environment.d.cl3nlxbe.d.ts","./node_modules/@vitest/mocker/dist/registry.d-d765pazg.d.ts","./node_modules/@vitest/mocker/dist/types.d-d_arzrdy.d.ts","./node_modules/@vitest/mocker/dist/index.d.ts","./node_modules/@vitest/utils/dist/source-map.d.ts","./node_modules/vite-node/dist/trace-mapping.d-dlvdeqop.d.ts","./node_modules/vite-node/dist/index.d-dgmxd2u7.d.ts","./node_modules/vite-node/dist/index.d.ts","./node_modules/@vitest/snapshot/dist/environment.d-dhdq1csl.d.ts","./node_modules/@vitest/snapshot/dist/rawsnapshot.d-lfsmjfud.d.ts","./node_modules/@vitest/snapshot/dist/index.d.ts","./node_modules/@vitest/snapshot/dist/environment.d.ts","./node_modules/vitest/dist/chunks/config.d.bkdhh7zx.d.ts","./node_modules/vitest/dist/chunks/worker.d.cugipz9v.d.ts","./node_modules/@types/deep-eql/index.d.ts","./node_modules/assertion-error/index.d.ts","./node_modules/@types/chai/index.d.ts","./node_modules/@vitest/runner/dist/utils.d.ts","./node_modules/tinybench/dist/index.d.ts","./node_modules/vitest/dist/chunks/benchmark.d.bwvbvtda.d.ts","./node_modules/vite-node/dist/client.d.ts","./node_modules/vitest/dist/chunks/coverage.d.s9rmnxie.d.ts","./node_modules/@vitest/snapshot/dist/manager.d.ts","./node_modules/vitest/dist/chunks/reporters.d.buron0i0.d.ts","./node_modules/vitest/dist/chunks/vite.d.bnoppc46.d.ts","./node_modules/vitest/dist/config.d.ts","./node_modules/vitest/config.d.ts","./vitest.config.ts","./e2e/smoke.spec.ts","./node_modules/@prisma/client/runtime/library.d.ts","./node_modules/.prisma/client/index.d.ts","./node_modules/.prisma/client/default.d.ts","./node_modules/@prisma/client/default.d.ts","./prisma/seed.ts","./node_modules/@clerk/shared/node_modules/csstype/index.d.ts","./node_modules/@clerk/shared/dist/runtime/index-bk8tp0p9.d.mts","./node_modules/@clerk/shared/dist/runtime/pathmatcher-cvdefkve.d.mts","./node_modules/@clerk/shared/dist/runtime/pathmatcher.d.mts","./node_modules/@clerk/shared/dist/types/index.d.mts","./node_modules/@clerk/types/src/index.d.mts","./node_modules/@clerk/nextjs/dist/types/server/routematcher.d.ts","./node_modules/@clerk/shared/dist/runtime/telemetry.d.mts","./node_modules/@clerk/backend/dist/api/resources/enums.d.ts","./node_modules/@clerk/backend/dist/api/resources/json.d.ts","./node_modules/@clerk/backend/dist/api/resources/actortoken.d.ts","./node_modules/@clerk/backend/dist/api/request.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/abstractapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/actortokenapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/agenttask.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/agenttaskapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/accountlessapplication.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/accountlessapplicationsapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/allowlistidentifier.d.ts","./node_modules/@clerk/backend/dist/api/resources/deletedobject.d.ts","./node_modules/@clerk/backend/dist/api/resources/deserializer.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/allowlistidentifierapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/apikey.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/apikeysapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/betafeaturesapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/blocklistidentifier.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/blocklistidentifierapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/session.d.ts","./node_modules/@clerk/backend/dist/api/resources/client.d.ts","./node_modules/@clerk/backend/dist/api/resources/handshakepayload.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/clientapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/cnametarget.d.ts","./node_modules/@clerk/backend/dist/api/resources/domain.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/domainapi.d.ts","./node_modules/@clerk/backend/dist/api/resources/cookies.d.ts","./node_modules/@clerk/backend/dist/api/resources/email.d.ts","./node_modules/@clerk/backend/dist/api/resources/identificationlink.d.ts","./node_modules/@clerk/backend/dist/api/resources/verification.d.ts","./node_modules/@clerk/backend/dist/api/resources/emailaddress.d.ts","./node_modules/@clerk/backend/dist/api/resources/externalaccount.d.ts","./node_modules/@clerk/backend/dist/api/resources/idpoauthaccesstoken.d.ts","./node_modules/@clerk/backend/dist/api/resources/instance.d.ts","./node_modules/@clerk/backend/dist/api/resources/instancerestrictions.d.ts","./node_modules/@clerk/backend/dist/api/resources/instancesettings.d.ts","./node_modules/@clerk/backend/dist/api/resources/invitation.d.ts","./node_modules/@clerk/backend/dist/api/resources/machine.d.ts","./node_modules/@clerk/backend/dist/api/resources/machinescope.d.ts","./node_modules/@clerk/backend/dist/api/resources/machinesecretkey.d.ts","./node_modules/@clerk/backend/dist/api/resources/m2mtoken.d.ts","./node_modules/@clerk/backend/dist/api/resources/jwttemplate.d.ts","./node_modules/@clerk/backend/dist/api/resources/oauthaccesstoken.d.ts","./node_modules/@clerk/backend/dist/api/resources/oauthapplication.d.ts","./node_modules/@clerk/backend/dist/api/resources/organization.d.ts","./node_modules/@clerk/backend/dist/api/resources/organizationdomain.d.ts","./node_modules/@clerk/backend/dist/api/resources/organizationinvitation.d.ts","./node_modules/@clerk/backend/dist/api/resources/organizationmembership.d.ts","./node_modules/@clerk/backend/dist/api/resources/organizationsettings.d.ts","./node_modules/@clerk/backend/dist/api/resources/phonenumber.d.ts","./node_modules/@clerk/backend/dist/api/resources/proxycheck.d.ts","./node_modules/@clerk/backend/dist/api/resources/redirecturl.d.ts","./node_modules/@clerk/backend/dist/api/resources/samlconnection.d.ts","./node_modules/@clerk/backend/dist/api/resources/samlaccount.d.ts","./node_modules/@clerk/backend/dist/api/resources/signintokens.d.ts","./node_modules/@clerk/backend/dist/api/resources/signupattempt.d.ts","./node_modules/@clerk/backend/dist/api/resources/smsmessage.d.ts","./node_modules/@clerk/backend/dist/api/resources/testingtoken.d.ts","./node_modules/@clerk/backend/dist/api/resources/token.d.ts","./node_modules/@clerk/backend/dist/api/resources/web3wallet.d.ts","./node_modules/@clerk/backend/dist/api/resources/user.d.ts","./node_modules/@clerk/backend/dist/api/resources/waitlistentry.d.ts","./node_modules/@clerk/backend/dist/api/resources/feature.d.ts","./node_modules/@clerk/backend/dist/api/resources/commerceplan.d.ts","./node_modules/@clerk/backend/dist/api/resources/commercesubscriptionitem.d.ts","./node_modules/@clerk/backend/dist/api/resources/commercesubscription.d.ts","./node_modules/@clerk/backend/dist/api/resources/webhooks.d.ts","./node_modules/@clerk/backend/dist/api/resources/index.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/emailaddressapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/idpoauthaccesstokenapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/instanceapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/invitationapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/util-types.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/machineapi.d.ts","./node_modules/@clerk/shared/dist/runtime/error--jk51521.d.mts","./node_modules/@clerk/shared/dist/runtime/error.d.mts","./node_modules/@clerk/backend/dist/errors.d.ts","./node_modules/@clerk/backend/dist/tokens/tokentypes.d.ts","./node_modules/@clerk/backend/dist/jwt/types.d.ts","./node_modules/@clerk/backend/dist/tokens/keys.d.ts","./node_modules/@clerk/backend/dist/jwt/verifymachinejwt.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/m2mtokenapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/jwksapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/jwttemplatesapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/organizationapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/oauthapplicationsapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/phonenumberapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/proxycheckapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/redirecturlapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/samlconnectionapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/sessionapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/signintokenapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/signupapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/testingtokenapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/userapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/waitlistentryapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/webhookapi.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/index.d.ts","./node_modules/@clerk/backend/dist/api/endpoints/billingapi.d.ts","./node_modules/@clerk/backend/dist/api/factory.d.ts","./node_modules/@clerk/backend/dist/api/index.d.ts","./node_modules/@clerk/backend/dist/tokens/clerkurl.d.ts","./node_modules/@clerk/backend/dist/tokens/clerkrequest.d.ts","./node_modules/@clerk/shared/dist/runtime/pathtoregexp.d.mts","./node_modules/@clerk/backend/dist/tokens/authobjects.d.ts","./node_modules/@clerk/backend/dist/jwt/verifyjwt.d.ts","./node_modules/@clerk/backend/dist/jwt/signjwt.d.ts","./node_modules/@clerk/backend/dist/jwt/index.d.ts","./node_modules/@clerk/backend/dist/tokens/verify.d.ts","./node_modules/@clerk/backend/dist/tokens/types.d.ts","./node_modules/@clerk/backend/dist/tokens/authenticatecontext.d.ts","./node_modules/@clerk/backend/dist/tokens/authstatus.d.ts","./node_modules/@clerk/backend/dist/tokens/request.d.ts","./node_modules/@clerk/backend/dist/tokens/factory.d.ts","./node_modules/@clerk/backend/dist/index.d.ts","./node_modules/@clerk/nextjs/dist/types/server/clerkclient.d.ts","./node_modules/@clerk/backend/dist/constants.d.ts","./node_modules/@clerk/backend/dist/createredirect.d.ts","./node_modules/@clerk/backend/dist/util/decorateobjectwithresources.d.ts","./node_modules/@clerk/shared/dist/runtime/authorization-errors.d.mts","./node_modules/@clerk/backend/dist/tokens/machine.d.ts","./node_modules/@clerk/backend/dist/internal.d.ts","./node_modules/@clerk/nextjs/dist/types/utils/debuglogger.d.ts","./node_modules/@clerk/nextjs/dist/types/server/types.d.ts","./node_modules/@clerk/nextjs/dist/types/server/data/getauthdatafromrequest.d.ts","./node_modules/@clerk/nextjs/dist/types/server/creategetauth.d.ts","./node_modules/@clerk/nextjs/dist/types/server/buildclerkprops.d.ts","./node_modules/@clerk/nextjs/dist/types/server/protect.d.ts","./node_modules/@clerk/nextjs/dist/types/app-router/server/auth.d.ts","./node_modules/@clerk/nextjs/dist/types/app-router/server/currentuser.d.ts","./node_modules/@clerk/nextjs/dist/types/server/content-security-policy.d.ts","./node_modules/@clerk/nextjs/dist/types/server/clerkmiddleware.d.ts","./node_modules/@clerk/nextjs/dist/types/server/index.d.ts","./src/middleware.ts","./src/validators/approvalschema.ts","./node_modules/pino-std-serializers/index.d.ts","./node_modules/sonic-boom/types/index.d.ts","./node_modules/pino/pino.d.ts","./src/lib/config/env.ts","./src/lib/logger/index.ts","./src/lib/api/dates.ts","./src/lib/api/handlers.ts","./src/lib/api/ratelimit.ts","./src/types/execution.ts","./src/repositories/interfaces/iexecutionrepository.ts","./src/lib/prisma.ts","./src/modules/execution/executor/errors.ts","./src/lib/api/payloadvalidation.ts","./src/lib/user.ts","./src/repositories/executionrepository.ts","./src/types/graph.ts","./src/types/skill.ts","./src/repositories/interfaces/iskillrepository.ts","./src/repositories/skillrepository.ts","./src/repositories/interfaces/iauditlogrepository.ts","./src/repositories/auditlogrepository.ts","./src/types/approval.ts","./src/repositories/interfaces/iapprovalrepository.ts","./src/repositories/approvalrepository.ts","./src/repositories/interfaces/iapprovalhistoryrepository.ts","./src/repositories/approvalhistoryrepository.ts","./src/types/tool.ts","./src/types/mcp.ts","./src/repositories/interfaces/imcpserverrepository.ts","./src/services/vaultservice.ts","./src/lib/secrets.ts","./src/repositories/mcpserverrepository.ts","./src/types/openapi.ts","./src/repositories/interfaces/iopenapirepository.ts","./src/repositories/openapirepository.ts","./src/repositories/interfaces/iexecutionlogrepository.ts","./src/repositories/executionlogrepository.ts","./src/modules/approval/approval-engine/approvalengine.ts","./src/modules/execution/state/agentstate.ts","./src/modules/approval/approval-policy/approvalpolicy.ts","./src/modules/approval/approval-history/approvalhistoryservice.ts","./src/modules/approval/index.ts","./src/services/interfaces/iexecutionservice.ts","./src/providers/llm/llmprovider.ts","./src/providers/llm/http.ts","./src/providers/llm/structuredoutput.ts","./src/providers/llm/groqprovider.ts","./src/providers/llm/openrouterprovider.ts","./src/providers/llm/llmrouter.ts","./src/providers/llm/modellists.ts","./src/providers/llm/index.ts","./node_modules/@langchain/langgraph-checkpoint/dist/serde/base.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/types.d.ts","./node_modules/@langchain/core/dist/load/map_keys.d.ts","./node_modules/@langchain/core/dist/load/serializable.d.ts","./node_modules/@standard-schema/spec/dist/index.d.ts","./node_modules/@langchain/core/dist/utils/standard_schema.d.ts","./node_modules/@langchain/core/dist/utils/types/zod.d.ts","./node_modules/@langchain/core/dist/agents.d.ts","./node_modules/@langchain/core/dist/messages/content/base.d.ts","./node_modules/@langchain/core/dist/messages/content/tools.d.ts","./node_modules/@langchain/core/dist/messages/content/multimodal.d.ts","./node_modules/@langchain/core/dist/messages/content/data.d.ts","./node_modules/@langchain/core/dist/types/type-utils.d.ts","./node_modules/@langchain/core/dist/messages/content/index.d.ts","./node_modules/@langchain/core/dist/messages/format.d.ts","./node_modules/@langchain/core/dist/messages/metadata.d.ts","./node_modules/@langchain/core/dist/messages/tool.d.ts","./node_modules/@langchain/core/dist/messages/ai.d.ts","./node_modules/@langchain/core/dist/messages/chat.d.ts","./node_modules/@langchain/core/dist/messages/function.d.ts","./node_modules/@langchain/core/dist/messages/human.d.ts","./node_modules/@langchain/core/dist/messages/system.d.ts","./node_modules/@langchain/core/dist/messages/utils.d.ts","./node_modules/@langchain/core/dist/messages/message.d.ts","./node_modules/@langchain/core/dist/messages/base.d.ts","./node_modules/@langchain/core/dist/outputs.d.ts","./node_modules/@langchain/core/dist/utils/types/index.d.ts","./node_modules/@langchain/core/dist/language_models/event.d.ts","./node_modules/@langchain/core/dist/documents/document.d.ts","./node_modules/@langchain/core/dist/callbacks/base.d.ts","./node_modules/@langchain/core/dist/callbacks/manager.d.ts","./node_modules/@langchain/core/dist/types/_internal.d.ts","./node_modules/@langchain/core/dist/runnables/types.d.ts","./node_modules/@langchain/core/dist/runnables/config.d.ts","./node_modules/langsmith/dist/experimental/otel/types.d.ts","./node_modules/eventemitter3/index.d.ts","./node_modules/p-queue/dist/queue.d.ts","./node_modules/p-queue/dist/options.d.ts","./node_modules/p-queue/dist/priority-queue.d.ts","./node_modules/p-queue/dist/index.d.ts","./node_modules/langsmith/dist/utils/p-queue.d.ts","./node_modules/langsmith/dist/utils/async_caller.d.ts","./node_modules/langsmith/dist/schemas.d.ts","./node_modules/langsmith/dist/utils/env.d.ts","./node_modules/langsmith/dist/evaluation/evaluator.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/builtin-types.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/types.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/headers.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/request-options.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/utils/log.d.ts","./node_modules/langsmith/dist/_openapi_client/core/error.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/parse.d.ts","./node_modules/langsmith/dist/_openapi_client/core/api-promise.d.ts","./node_modules/langsmith/dist/_openapi_client/core/pagination.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/uploads.d.ts","./node_modules/langsmith/dist/_openapi_client/internal/to-file.d.ts","./node_modules/langsmith/dist/_openapi_client/core/uploads.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/annotation-queues/items.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/annotation-queues/runs.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/runs/share.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/runs/runs.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/datasets/experiment-runs.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/datasets/datasets.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/annotation-queues/annotation-queues.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/info.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/issues.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/public/runs.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/public/public.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/sandboxes/boxes.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/sandboxes/registries.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/sandboxes/snapshots.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/sandboxes/sandboxes.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/threads.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/traces.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/index.d.ts","./node_modules/langsmith/dist/_openapi_client/client.d.ts","./node_modules/langsmith/dist/_openapi_client/core/resource.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/online-evaluators.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/runs/index.d.ts","./node_modules/langsmith/dist/_openapi_client/resources/runs.d.ts","./node_modules/langsmith/dist/utils/prompt_cache/index.d.ts","./node_modules/langsmith/dist/utils/profiles.d.ts","./node_modules/langsmith/dist/client.d.ts","./node_modules/langsmith/dist/run_trees.d.ts","./node_modules/langsmith/run_trees.d.ts","./node_modules/langsmith/schemas.d.ts","./node_modules/@langchain/core/dist/tracers/base.d.ts","./node_modules/@langchain/core/dist/utils/stream.d.ts","./node_modules/@langchain/core/dist/tracers/event_stream.d.ts","./node_modules/@langchain/core/dist/utils/fast-json-patch/src/core.d.ts","./node_modules/@langchain/core/dist/tracers/log_stream.d.ts","./node_modules/@langchain/core/dist/runnables/graph.d.ts","./node_modules/langsmith/dist/singletons/constants.d.ts","./node_modules/langsmith/dist/singletons/types.d.ts","./node_modules/langsmith/dist/singletons/traceable.d.ts","./node_modules/langsmith/singletons/traceable.d.ts","./node_modules/@langchain/core/dist/runnables/base.d.ts","./node_modules/@langchain/core/dist/runnables/passthrough.d.ts","./node_modules/@langchain/core/dist/runnables/router.d.ts","./node_modules/@langchain/core/dist/runnables/branch.d.ts","./node_modules/@langchain/core/dist/chat_history.d.ts","./node_modules/@langchain/core/dist/runnables/history.d.ts","./node_modules/@langchain/core/dist/utils/signal.d.ts","./node_modules/@langchain/core/dist/runnables/index.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/base.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/memory.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/id.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/serde/types.d.ts","./node_modules/@langchain/core/dist/utils/async_caller.d.ts","./node_modules/@langchain/core/dist/embeddings.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/store/base.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/store/batch.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/store/memory.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/cache/base.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/cache/memory.d.ts","./node_modules/@langchain/langgraph-checkpoint/dist/index.d.ts","./node_modules/@langchain/langgraph/dist/channels/base.d.ts","./node_modules/@langchain/langgraph/dist/pregel/utils/timeout.d.ts","./node_modules/@langchain/langgraph/dist/constants.d.ts","./node_modules/@langchain/langgraph/dist/channels/delta.d.ts","./node_modules/@langchain/langgraph/dist/channels/binop.d.ts","./node_modules/@langchain/langgraph/dist/channels/any_value.d.ts","./node_modules/@langchain/langgraph/dist/channels/last_value.d.ts","./node_modules/@langchain/langgraph/dist/channels/dynamic_barrier_value.d.ts","./node_modules/@langchain/langgraph/dist/channels/ephemeral_value.d.ts","./node_modules/@langchain/langgraph/dist/channels/named_barrier_value.d.ts","./node_modules/@langchain/langgraph/dist/channels/topic.d.ts","./node_modules/@langchain/langgraph/dist/channels/untracked_value.d.ts","./node_modules/@langchain/langgraph/dist/pregel/runtime.d.ts","./node_modules/@langchain/langgraph/dist/pregel/runnable_types.d.ts","./node_modules/@langchain/langgraph/dist/graph/annotation.d.ts","./node_modules/@langchain/langgraph/dist/pregel/utils/index.d.ts","./node_modules/@langchain/langgraph/dist/pregel/read.d.ts","./node_modules/@langchain/core/dist/messages/modifier.d.ts","./node_modules/@langchain/core/dist/utils/js-sha256/hash.d.ts","./node_modules/@langchain/core/dist/utils/hash.d.ts","./node_modules/@langchain/core/dist/caches/index.d.ts","./node_modules/@langchain/core/dist/prompt_values.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/any.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/errormessages.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/array.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/bigint.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/boolean.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/number.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/date.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/enum.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/intersection.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/literal.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/string.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/record.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/map.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/nativeenum.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/never.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/null.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/nullable.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/object.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/set.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/tuple.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/undefined.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/union.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/unknown.d.ts","./node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsetypes.d.ts","./node_modules/@langchain/core/dist/language_models/profile.d.ts","./node_modules/js-tiktoken/dist/core-71f59181.d.ts","./node_modules/js-tiktoken/dist/lite.d.ts","./node_modules/@langchain/core/dist/language_models/base.d.ts","./node_modules/@langchain/core/dist/messages/transformers.d.ts","./node_modules/@langchain/core/dist/messages/index.d.ts","./node_modules/@langchain/langgraph/dist/pregel/types.d.ts","./node_modules/@langchain/core/dist/language_models/stream.d.ts","./node_modules/@langchain/protocol/protocol.ts","./node_modules/@langchain/langgraph/dist/stream/types.d.ts","./node_modules/@langchain/langgraph/dist/stream/stream-channel.d.ts","./node_modules/@langchain/langgraph/dist/stream/convert.d.ts","./node_modules/@langchain/langgraph/dist/stream/transformers/types.d.ts","./node_modules/@langchain/langgraph/dist/stream/transformers/lifecycle.d.ts","./node_modules/@langchain/langgraph/dist/stream/transformers/messages.d.ts","./node_modules/@langchain/langgraph/dist/stream/mux.d.ts","./node_modules/@langchain/langgraph/dist/stream/transformers/subgraphs.d.ts","./node_modules/@langchain/langgraph/dist/stream/transformers/values.d.ts","./node_modules/@langchain/langgraph/dist/pregel/stream.d.ts","./node_modules/@langchain/langgraph/dist/stream/run-stream.d.ts","./node_modules/@langchain/langgraph/dist/stream/subscription.d.ts","./node_modules/@langchain/langgraph/dist/stream/index.d.ts","./node_modules/@langchain/langgraph/dist/pregel/algo.d.ts","./node_modules/@langchain/langgraph/dist/utils.d.ts","./node_modules/@langchain/langgraph/dist/pregel/write.d.ts","./node_modules/@langchain/langgraph/dist/pregel/index.d.ts","./node_modules/@langchain/langgraph/dist/errors.d.ts","./node_modules/@langchain/langgraph/dist/state/types.d.ts","./node_modules/@langchain/langgraph/dist/state/values/reduced.d.ts","./node_modules/@langchain/langgraph/dist/state/values/untracked.d.ts","./node_modules/@langchain/langgraph/dist/state/values/delta.d.ts","./node_modules/zod/v4/core/standard-schema.d.cts","./node_modules/zod/v4/core/util.d.cts","./node_modules/zod/v4/core/versions.d.cts","./node_modules/zod/v4/core/schemas.d.cts","./node_modules/zod/v4/core/checks.d.cts","./node_modules/zod/v4/core/errors.d.cts","./node_modules/zod/v4/core/core.d.cts","./node_modules/zod/v4/core/parse.d.cts","./node_modules/zod/v4/core/regexes.d.cts","./node_modules/zod/v4/locales/ar.d.cts","./node_modules/zod/v4/locales/az.d.cts","./node_modules/zod/v4/locales/be.d.cts","./node_modules/zod/v4/locales/ca.d.cts","./node_modules/zod/v4/locales/cs.d.cts","./node_modules/zod/v4/locales/de.d.cts","./node_modules/zod/v4/locales/en.d.cts","./node_modules/zod/v4/locales/eo.d.cts","./node_modules/zod/v4/locales/es.d.cts","./node_modules/zod/v4/locales/fa.d.cts","./node_modules/zod/v4/locales/fi.d.cts","./node_modules/zod/v4/locales/fr.d.cts","./node_modules/zod/v4/locales/fr-ca.d.cts","./node_modules/zod/v4/locales/he.d.cts","./node_modules/zod/v4/locales/hu.d.cts","./node_modules/zod/v4/locales/id.d.cts","./node_modules/zod/v4/locales/it.d.cts","./node_modules/zod/v4/locales/ja.d.cts","./node_modules/zod/v4/locales/kh.d.cts","./node_modules/zod/v4/locales/ko.d.cts","./node_modules/zod/v4/locales/mk.d.cts","./node_modules/zod/v4/locales/ms.d.cts","./node_modules/zod/v4/locales/nl.d.cts","./node_modules/zod/v4/locales/no.d.cts","./node_modules/zod/v4/locales/ota.d.cts","./node_modules/zod/v4/locales/ps.d.cts","./node_modules/zod/v4/locales/pl.d.cts","./node_modules/zod/v4/locales/pt.d.cts","./node_modules/zod/v4/locales/ru.d.cts","./node_modules/zod/v4/locales/sl.d.cts","./node_modules/zod/v4/locales/sv.d.cts","./node_modules/zod/v4/locales/ta.d.cts","./node_modules/zod/v4/locales/th.d.cts","./node_modules/zod/v4/locales/tr.d.cts","./node_modules/zod/v4/locales/ua.d.cts","./node_modules/zod/v4/locales/ur.d.cts","./node_modules/zod/v4/locales/vi.d.cts","./node_modules/zod/v4/locales/zh-cn.d.cts","./node_modules/zod/v4/locales/zh-tw.d.cts","./node_modules/zod/v4/locales/index.d.cts","./node_modules/zod/v4/core/registries.d.cts","./node_modules/zod/v4/core/doc.d.cts","./node_modules/zod/v4/core/function.d.cts","./node_modules/zod/v4/core/api.d.cts","./node_modules/zod/v4/core/json-schema.d.cts","./node_modules/zod/v4/core/to-json-schema.d.cts","./node_modules/zod/v4/core/index.d.cts","./node_modules/@cfworker/json-schema/dist/esm/deep-compare-strict.d.ts","./node_modules/@cfworker/json-schema/dist/esm/types.d.ts","./node_modules/@cfworker/json-schema/dist/esm/dereference.d.ts","./node_modules/@cfworker/json-schema/dist/esm/format.d.ts","./node_modules/@cfworker/json-schema/dist/esm/pointer.d.ts","./node_modules/@cfworker/json-schema/dist/esm/ucs2-length.d.ts","./node_modules/@cfworker/json-schema/dist/esm/validate.d.ts","./node_modules/@cfworker/json-schema/dist/esm/validator.d.ts","./node_modules/@cfworker/json-schema/dist/esm/index.d.ts","./node_modules/@langchain/core/dist/utils/json_schema.d.ts","./node_modules/@langchain/langgraph/dist/state/schema.d.ts","./node_modules/@langchain/langgraph/dist/graph/zod/meta.d.ts","./node_modules/@langchain/langgraph/dist/graph/types.d.ts","./node_modules/@langchain/langgraph/dist/graph/graph.d.ts","./node_modules/@langchain/langgraph/dist/interrupt.d.ts","./node_modules/@langchain/langgraph/dist/writer.d.ts","./node_modules/@langchain/langgraph/dist/graph/state.d.ts","./node_modules/@langchain/langgraph/dist/graph/messages_reducer.d.ts","./node_modules/@langchain/langgraph/dist/graph/message.d.ts","./node_modules/@langchain/langgraph/dist/func/types.d.ts","./node_modules/@langchain/langgraph/dist/func/index.d.ts","./node_modules/@langchain/langgraph/dist/graph/messages_annotation.d.ts","./node_modules/@langchain/langgraph/dist/state/adapter.d.ts","./node_modules/@langchain/langgraph/dist/state/prebuilt/messages.d.ts","./node_modules/@langchain/langgraph/dist/pregel/utils/config.d.ts","./node_modules/@langchain/langgraph/dist/web.d.ts","./node_modules/@langchain/langgraph/dist/index.d.ts","./src/modules/execution/graph/agentannotation.ts","./src/modules/tools/interfaces/tool.ts","./src/modules/tools/categories.ts","./src/modules/tools/validators/calculator.ts","./src/modules/tools/calculator/calculatortool.ts","./src/modules/tools/validators/documentsearch.ts","./src/modules/tools/document-search/documentsearchtool.ts","./src/modules/tools/validators/recordlookup.ts","./src/modules/tools/record-lookup/recordlookuptool.ts","./src/modules/tools/validators/mocktaskcreator.ts","./src/modules/tools/mock-task/mocktaskcreatortool.ts","./src/modules/tools/validators/aiextraction.ts","./src/modules/tools/ai-extraction/aiextractiontool.ts","./src/modules/tools/validators/aiclassification.ts","./src/modules/tools/ai-classification/aiclassificationtool.ts","./src/modules/tools/validators/deterministiccondition.ts","./src/modules/tools/deterministic-condition/conditiontool.ts","./src/modules/tools/validators/finalreport.ts","./src/modules/tools/final-report/finalreporttool.ts","./src/modules/tools/validators/codeexecution.ts","./src/modules/tools/code-execution/sandboxrunner.ts","./src/modules/tools/code-execution/codeexecutiontool.ts","./src/modules/tools/builtins.ts","./src/modules/tools/errors.ts","./src/modules/tools/registry/toolregistry.ts","./src/modules/tools/toolcatalog.ts","./src/modules/tools/index.ts","./src/modules/execution/tool-registry/permissionchecker.ts","./src/modules/execution/planner/planschema.ts","./src/modules/execution/executor/retry.ts","./src/modules/execution/planner/plannerservice.ts","./src/modules/execution/executor/runtime.ts","./src/modules/execution/executor/stepreferences.ts","./src/modules/execution/graph/nodes.ts","./src/modules/execution/graph/buildexecutiongraph.ts","./src/modules/execution/executor/executionengine.ts","./src/modules/execution/executor/cancellation.ts","./src/services/interfaces/imcpclientservice.ts","./src/modules/mcp/protocol.ts","./src/modules/mcp/tooladapter.ts","./src/modules/mcp/circuitbreaker.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.d.ts","./node_modules/zod/v4/classic/errors.d.cts","./node_modules/zod/v4/classic/parse.d.cts","./node_modules/zod/v4/classic/schemas.d.cts","./node_modules/zod/v4/classic/checks.d.cts","./node_modules/zod/v4/classic/compat.d.cts","./node_modules/zod/v4/classic/iso.d.cts","./node_modules/zod/v4/classic/coerce.d.cts","./node_modules/zod/v4/classic/external.d.cts","./node_modules/zod/v4/classic/index.d.cts","./node_modules/zod/v4/index.d.cts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/types.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/types.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/types.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/shared/responsemessage.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.d.ts","./node_modules/json-schema-typed/draft_2020_12.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/validation/types.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/client.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamablehttp.d.ts","./node_modules/eventsource/dist/index.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/client/sse.d.ts","./src/modules/mcp/connection.ts","./src/modules/mcp/presets.ts","./src/modules/mcp/index.ts","./src/modules/mcp/tooldiff.ts","./src/services/mcpclientservice.ts","./src/modules/openapi/schemaconverter.ts","./src/modules/openapi/dynamictool.ts","./src/services/interfaces/iopenapiservice.ts","./src/modules/execution/executor/validation.ts","./src/modules/graph/eventbus.ts","./src/modules/graph/expression.ts","./src/modules/graph/graphinterpreter.ts","./src/services/executionservice.ts","./src/types/observability.ts","./src/modules/timeline/executiontimeline.ts","./src/modules/timeline/index.ts","./src/modules/history/executionhistoryservice.ts","./src/modules/history/index.ts","./src/modules/openapi/parser.ts","./src/services/openapiservice.ts","./src/lib/api/services.ts","./src/app/api/approvals/route.ts","./src/app/api/approvals/[id]/cancel/route.ts","./src/modules/audit/auditservice.ts","./src/modules/audit/index.ts","./src/app/api/audit/route.ts","./src/app/api/canvas/copilot/route.ts","./src/app/api/canvas/optimize-prompt/route.ts","./src/modules/graph/previewstore.ts","./src/app/api/canvas/preview/route.ts","./src/app/api/canvas/preview/[id]/stream/route.ts","./src/modules/comparison/versioncomparison.ts","./src/modules/comparison/index.ts","./src/app/api/compare/route.ts","./src/validators/executionschema.ts","./src/app/api/executions/route.ts","./src/app/api/executions/[id]/route.ts","./src/app/api/executions/[id]/cancel/route.ts","./src/app/api/executions/[id]/detail/route.ts","./src/app/api/executions/[id]/export/route.ts","./src/app/api/executions/[id]/replay/route.ts","./src/app/api/executions/[id]/resume/route.ts","./src/app/api/executions/[id]/retry/route.ts","./src/app/api/executions/[id]/stream/route.ts","./src/modules/observability/metrics.ts","./src/modules/observability/index.ts","./src/app/api/executions/metrics/route.ts","./src/app/api/health/route.ts","./src/app/api/mcp/arcade/route.ts","./src/app/api/mcp/composio/route.ts","./src/types/agent-studio-registry.ts","./src/lib/fetch-utils.ts","./src/app/api/mcp/compositions/route.ts","./src/types/mcp-directory.ts","./src/app/api/mcp/directory/route.ts","./src/app/api/mcp/directory/github/route.ts","./src/app/api/mcp/directory/health/route.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/shared/uritemplate.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/webstandardstreamablehttp.d.ts","./src/modules/mcp/server.ts","./src/app/api/mcp/messages/route.ts","./src/app/api/mcp/presets/route.ts","./src/app/api/mcp/quality/route.ts","./src/validators/mcpschema.ts","./src/app/api/mcp/servers/route.ts","./src/app/api/mcp/servers/[id]/route.ts","./src/app/api/mcp/servers/[id]/connect/route.ts","./src/app/api/mcp/servers/[id]/disconnect/route.ts","./src/app/api/mcp/servers/[id]/discover/route.ts","./src/app/api/mcp/servers/[id]/health/route.ts","./src/app/api/mcp/servers/[id]/metrics/route.ts","./src/app/api/mcp/servers/[id]/progress/route.ts","./src/app/api/mcp/servers/[id]/prompts/route.ts","./src/app/api/mcp/servers/[id]/resources/route.ts","./src/app/api/mcp/servers/[id]/resources/read/route.ts","./src/app/api/mcp/servers/[id]/sampling/route.ts","./src/app/api/mcp/servers/[id]/test/route.ts","./src/app/api/mcp/servers/batch/route.ts","./src/app/api/mcp/servers/export/route.ts","./src/app/api/mcp/servers/import/route.ts","./src/app/api/mcp/skills-feed/route.ts","./src/app/api/mcp/smithery/route.ts","./src/app/api/mcp/sse/route.ts","./src/services/interfaces/iskillservice.ts","./src/services/skillservice.ts","./src/app/api/mcp/updates/route.ts","./src/app/api/openapi/directory/route.ts","./src/validators/openapischema.ts","./src/app/api/openapi/integrations/route.ts","./src/app/api/openapi/integrations/[id]/route.ts","./src/app/api/openapi/integrations/[id]/test/route.ts","./src/app/api/openapi/parse/route.ts","./src/app/api/openapi/test-raw/route.ts","./src/types/settings.ts","./src/app/api/settings/providers/route.ts","./src/validators/graphschema.ts","./src/validators/skillschema.ts","./src/app/api/skills/route.ts","./src/app/api/skills/[id]/route.ts","./src/app/api/skills/[id]/archive/route.ts","./src/app/api/skills/[id]/duplicate/route.ts","./src/app/api/skills/[id]/publish/route.ts","./src/types/skillpacks.ts","./src/data/skillpacks.ts","./src/app/api/skills/packs/route.ts","./src/app/api/skills/sandbox/route.ts","./src/app/api/skills/synthesize/route.ts","./src/app/api/vault/route.ts","./src/app/api/vault/[id]/reveal/route.ts","./src/components/canvas/agentgraphtemplates.ts","./node_modules/@xyflow/system/dist/esm/types/changes.d.ts","./node_modules/@types/d3-selection/index.d.ts","./node_modules/@types/d3-drag/index.d.ts","./node_modules/@types/d3-color/index.d.ts","./node_modules/@types/d3-interpolate/index.d.ts","./node_modules/@types/d3-zoom/index.d.ts","./node_modules/@xyflow/system/dist/esm/types/utils.d.ts","./node_modules/@xyflow/system/dist/esm/utils/types.d.ts","./node_modules/@xyflow/system/dist/esm/types/nodes.d.ts","./node_modules/@xyflow/system/dist/esm/types/handles.d.ts","./node_modules/@xyflow/system/dist/esm/types/panzoom.d.ts","./node_modules/@xyflow/system/dist/esm/types/general.d.ts","./node_modules/@xyflow/system/dist/esm/types/edges.d.ts","./node_modules/@xyflow/system/dist/esm/types/index.d.ts","./node_modules/@xyflow/system/dist/esm/constants.d.ts","./node_modules/@xyflow/system/dist/esm/utils/connections.d.ts","./node_modules/@xyflow/system/dist/esm/utils/dom.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edges/bezier-edge.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edges/straight-edge.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edges/smoothstep-edge.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edges/general.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edges/positions.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edges/index.d.ts","./node_modules/@xyflow/system/dist/esm/utils/graph.d.ts","./node_modules/@xyflow/system/dist/esm/utils/general.d.ts","./node_modules/@xyflow/system/dist/esm/utils/marker.d.ts","./node_modules/@xyflow/system/dist/esm/utils/node-toolbar.d.ts","./node_modules/@xyflow/system/dist/esm/utils/edge-toolbar.d.ts","./node_modules/@xyflow/system/dist/esm/utils/store.d.ts","./node_modules/@xyflow/system/dist/esm/utils/shallow-node-data.d.ts","./node_modules/@xyflow/system/dist/esm/utils/index.d.ts","./node_modules/@xyflow/system/dist/esm/xydrag/xydrag.d.ts","./node_modules/@xyflow/system/dist/esm/xydrag/index.d.ts","./node_modules/@xyflow/system/dist/esm/xyhandle/types.d.ts","./node_modules/@xyflow/system/dist/esm/xyhandle/xyhandle.d.ts","./node_modules/@xyflow/system/dist/esm/xyhandle/index.d.ts","./node_modules/@xyflow/system/dist/esm/xyminimap/index.d.ts","./node_modules/@xyflow/system/dist/esm/xypanzoom/xypanzoom.d.ts","./node_modules/@xyflow/system/dist/esm/xypanzoom/index.d.ts","./node_modules/@xyflow/system/dist/esm/xyresizer/types.d.ts","./node_modules/@xyflow/system/dist/esm/xyresizer/xyresizer.d.ts","./node_modules/@xyflow/system/dist/esm/xyresizer/index.d.ts","./node_modules/@xyflow/system/dist/esm/index.d.ts","./node_modules/@xyflow/react/dist/esm/types/general.d.ts","./node_modules/@xyflow/react/dist/esm/types/nodes.d.ts","./node_modules/@xyflow/react/dist/esm/types/edges.d.ts","./node_modules/@xyflow/react/dist/esm/types/component-props.d.ts","./node_modules/@xyflow/react/dist/esm/types/store.d.ts","./node_modules/@xyflow/react/dist/esm/types/instance.d.ts","./node_modules/@xyflow/react/dist/esm/types/index.d.ts","./node_modules/@xyflow/react/dist/esm/container/reactflow/index.d.ts","./node_modules/@xyflow/react/dist/esm/components/handle/index.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/edgetext.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/straightedge.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/stepedge.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/bezieredge.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/simplebezieredge.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/smoothstepedge.d.ts","./node_modules/@xyflow/react/dist/esm/components/edges/baseedge.d.ts","./node_modules/@xyflow/react/dist/esm/components/reactflowprovider/index.d.ts","./node_modules/@xyflow/react/dist/esm/components/panel/index.d.ts","./node_modules/@xyflow/react/dist/esm/components/edgelabelrenderer/index.d.ts","./node_modules/@xyflow/react/dist/esm/components/viewportportal/index.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usereactflow.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useupdatenodeinternals.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usenodes.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useedges.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useviewport.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usekeypress.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usenodesedgesstate.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usestore.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useonviewportchange.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useonselectionchange.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usenodesinitialized.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usehandleconnections.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usenodeconnections.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/usenodesdata.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useconnection.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useinternalnode.d.ts","./node_modules/@xyflow/react/dist/esm/contexts/nodeidcontext.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useonnodeschangemiddleware.d.ts","./node_modules/@xyflow/react/dist/esm/hooks/useonedgeschangemiddleware.d.ts","./node_modules/@xyflow/react/dist/esm/utils/changes.d.ts","./node_modules/@xyflow/react/dist/esm/utils/general.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/background/types.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/background/background.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/background/index.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/controls/types.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/controls/controls.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/controls/controlbutton.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/controls/index.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/minimap/types.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/minimap/minimap.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/minimap/minimapnode.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/minimap/index.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/noderesizer/types.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/noderesizer/noderesizer.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/noderesizer/noderesizecontrol.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/noderesizer/index.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/nodetoolbar/types.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/nodetoolbar/nodetoolbar.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/nodetoolbar/index.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/edgetoolbar/types.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/edgetoolbar/edgetoolbar.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/edgetoolbar/index.d.ts","./node_modules/@xyflow/react/dist/esm/additional-components/index.d.ts","./node_modules/@xyflow/react/dist/esm/utils/edges.d.ts","./node_modules/@xyflow/react/dist/esm/index.d.ts","./node_modules/lucide-react/dist/lucide-react.d.ts","./src/components/canvas/nodetypes.ts","./src/components/canvas/graphutils.ts","./src/components/canvas/autolayout.ts","./node_modules/html-to-image/lib/types.d.ts","./node_modules/html-to-image/lib/index.d.ts","./node_modules/jspdf/types/index.d.ts","./src/components/canvas/exportutils.ts","./src/components/canvas/graphdiff.ts","./src/components/canvas/graphvalidation.ts","./src/components/canvas/subgraphutils.ts","./src/components/canvas/useexecutionstream.ts","./src/components/workflows/workflowtemplates.ts","./src/repositories/interfaces/itooldefinitionrepository.ts","./src/repositories/tooldefinitionrepository.ts","./src/lib/tools.ts","./src/lib/api/skills.ts","./src/lib/api/audit.ts","./src/lib/api/compare.ts","./src/lib/api/executions.ts","./src/modules/execution/llm/providerselector.ts","./src/modules/openapi/index.ts","./src/modules/openapi/presets.ts","./src/services/interfaces/iapprovalservice.ts","./src/services/approvalservice.ts","./src/services/interfaces/iversionservice.ts","./src/services/versionservice.ts","./node_modules/zustand/esm/vanilla.d.mts","./node_modules/zustand/esm/react.d.mts","./node_modules/zustand/esm/index.d.mts","./src/stores/toaststore.ts","./src/types/user.ts","./node_modules/vitest/dist/chunks/worker.d.uzwscv9x.d.ts","./node_modules/vitest/dist/chunks/global.d.mamajcmj.d.ts","./node_modules/vitest/dist/chunks/mocker.d.be_2ls6u.d.ts","./node_modules/vitest/dist/chunks/suite.d.fvehnv49.d.ts","./node_modules/expect-type/dist/utils.d.ts","./node_modules/expect-type/dist/overloads.d.ts","./node_modules/expect-type/dist/branding.d.ts","./node_modules/expect-type/dist/messages.d.ts","./node_modules/expect-type/dist/index.d.ts","./node_modules/vitest/dist/index.d.ts","./tests/unit/config/env.test.ts","./tests/unit/lib/api/dates.test.ts","./tests/unit/modules/canvascopilot.test.ts","./tests/unit/modules/helpers/stubllm.ts","./tests/unit/modules/helpers/fakeexecutionrepo.ts","./tests/unit/modules/helpers/fakeapprovalrepo.ts","./tests/unit/modules/helpers/fakelogrepo.ts","./tests/unit/modules/tools/helpers/maketool.ts","./tests/unit/modules/executionengine.test.ts","./tests/unit/modules/executionservice.test.ts","./tests/unit/modules/graphstate.test.ts","./tests/unit/modules/helpers/fakeskillrepo.ts","./tests/unit/modules/helpers/fakeauditrepo.ts","./tests/unit/modules/observability.test.ts","./tests/unit/modules/permissionchecker.test.ts","./tests/unit/modules/planner.test.ts","./tests/unit/modules/providerselection.test.ts","./tests/unit/modules/retry.test.ts","./tests/unit/modules/approval/approvalengine.test.ts","./tests/unit/modules/execution/stepreferences.test.ts","./tests/unit/modules/graph/expression.test.ts","./tests/unit/modules/graph/graphinterpreter.test.ts","./tests/unit/modules/graph/graphvalidation.test.ts","./tests/unit/modules/mcp/circuitbreaker.test.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/sse.d.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/server/streamablehttp.d.ts","./tests/unit/modules/mcp/mcpendtoend.test.ts","./tests/unit/modules/mcp/mcpexecution.test.ts","./tests/unit/modules/mcp/mcpexportimportbatch.test.ts","./node_modules/@modelcontextprotocol/sdk/dist/esm/inmemory.d.ts","./tests/unit/modules/mcp/mcpserver.test.ts","./tests/unit/modules/mcp/presets.test.ts","./tests/unit/modules/mcp/protocol.test.ts","./tests/unit/modules/mcp/tooladapter.test.ts","./tests/unit/modules/mcp/tooldiff.test.ts","./tests/unit/modules/openapi/dynamictool.test.ts","./tests/unit/modules/openapi/parser.test.ts","./tests/unit/modules/openapi/schemaconverter.test.ts","./tests/unit/modules/tools/calculator.test.ts","./tests/unit/modules/tools/categories.test.ts","./tests/unit/modules/tools/documentsearch.test.ts","./tests/unit/modules/tools/executionfailure.test.ts","./tests/unit/modules/tools/mocktaskcreator.test.ts","./tests/unit/modules/tools/permissionvalidation.test.ts","./tests/unit/modules/tools/recordlookup.test.ts","./tests/unit/modules/tools/toolregistry.test.ts","./tests/unit/modules/tools/toolsengineintegration.test.ts","./tests/unit/modules/tools/workflowtools.test.ts","./tests/unit/providers/llmrouter.test.ts","./tests/unit/services/approvalservice.test.ts","./tests/unit/services/executionresume.test.ts","./tests/unit/services/openapiservice.test.ts","./tests/unit/services/skillservice.test.ts","./tests/unit/validators/skillschema.test.ts","./src/app/global-error.tsx","./node_modules/next/dist/compiled/@next/font/dist/types.d.ts","./node_modules/next/dist/compiled/@next/font/dist/google/index.d.ts","./node_modules/next/font/google/index.d.ts","./node_modules/next-themes/dist/index.d.ts","./src/components/providers/themeprovider.tsx","./node_modules/@clerk/clerk-react/dist/types-cfoqkf-d.d.mts","./node_modules/@clerk/clerk-react/dist/useauth-bfjxafmb.d.mts","./node_modules/@clerk/shared/dist/runtime/apiurlfrompublishablekey-bma_ob1l.d.mts","./node_modules/@clerk/shared/dist/runtime/browser-cwbluoyn.d.mts","./node_modules/@clerk/shared/dist/runtime/color-diw_cz1u.d.mts","./node_modules/@clerk/shared/dist/runtime/constants-uocjjdve.d.mts","./node_modules/@clerk/shared/dist/runtime/date-digffkoy.d.mts","./node_modules/@clerk/shared/dist/runtime/deprecated-brapxwmg.d.mts","./node_modules/@clerk/shared/dist/runtime/derivestate-jckbhjgp.d.mts","./node_modules/@clerk/shared/dist/runtime/devbrowser-dgngespp.d.mts","./node_modules/@clerk/shared/dist/runtime/file-bghdmp4o.d.mts","./node_modules/@clerk/shared/dist/runtime/getenvvariable-58tqpflg.d.mts","./node_modules/@clerk/shared/dist/runtime/handlevalueorfn-2pqr_dc8.d.mts","./node_modules/@clerk/shared/dist/runtime/index-bq1w5bud.d.mts","./node_modules/@clerk/shared/dist/runtime/isomorphicatob-dqixjqze.d.mts","./node_modules/@clerk/shared/dist/runtime/isomorphicbtoa-cu4s1rfu.d.mts","./node_modules/@clerk/shared/dist/runtime/keys-pey6bawu.d.mts","./node_modules/@clerk/shared/dist/runtime/loadclerkjsscript-btatlhzp.d.mts","./node_modules/@clerk/shared/dist/runtime/loadscript-c6sucpsp.d.mts","./node_modules/@clerk/shared/dist/runtime/localstoragebroadcastchannel-cnmexxpw.d.mts","./node_modules/@clerk/shared/dist/runtime/poller-i92dozmd.d.mts","./node_modules/@clerk/shared/dist/runtime/proxy-ctzll3ae.d.mts","./node_modules/@clerk/shared/dist/runtime/underscore-d90chgge.d.mts","./node_modules/@clerk/shared/dist/runtime/url-ty-8ourg.d.mts","./node_modules/@clerk/shared/dist/runtime/versionselector-btv3m_nv.d.mts","./node_modules/@clerk/shared/dist/runtime/object-cgeef_dm.d.mts","./node_modules/@clerk/shared/dist/runtime/logger-cfssyn6o.d.mts","./node_modules/@clerk/shared/dist/runtime/index-d_rs0fdt.d.mts","./node_modules/@clerk/shared/dist/runtime/netlifycachehandler-dasimv39.d.mts","./node_modules/@clerk/shared/dist/runtime/index-couvmp_q.d.mts","./node_modules/dequal/index.d.ts","./node_modules/@clerk/shared/dist/runtime/react/index.d.mts","./node_modules/@clerk/clerk-react/dist/index.d.mts","./node_modules/@clerk/shared/dist/runtime/loadclerkjsscript.d.mts","./node_modules/@clerk/clerk-react/dist/internal.d.mts","./node_modules/@clerk/nextjs/dist/types/client-boundary/controlcomponents.d.ts","./node_modules/@clerk/nextjs/dist/types/client-boundary/uicomponents.d.ts","./node_modules/@clerk/clerk-react/dist/errors.d.mts","./node_modules/@clerk/nextjs/dist/types/client-boundary/promisifiedauthprovider.d.ts","./node_modules/@clerk/nextjs/dist/types/client-boundary/hooks.d.ts","./node_modules/@clerk/nextjs/dist/types/types.d.ts","./node_modules/@clerk/nextjs/dist/types/app-router/server/clerkprovider.d.ts","./node_modules/@clerk/nextjs/dist/types/app-router/server/controlcomponents.d.ts","./node_modules/@clerk/nextjs/dist/types/components.server.d.ts","./node_modules/@clerk/nextjs/dist/types/index.d.ts","./src/components/providers/clerkdynamicprovider.tsx","./node_modules/@tanstack/query-core/build/modern/_tsup-dts-rollup.d.ts","./node_modules/@tanstack/query-core/build/modern/index.d.ts","./node_modules/@tanstack/react-query/build/modern/_tsup-dts-rollup.d.ts","./node_modules/@tanstack/react-query/build/modern/index.d.ts","./src/components/providers/queryprovider.tsx","./src/components/providers/sidebarcontext.tsx","./src/components/effects/pixelthemetransition.tsx","./src/app/providers.tsx","./src/components/layout/header.tsx","./node_modules/clsx/clsx.d.mts","./src/components/feedback/signoutmodal.tsx","./src/components/layout/sidebar.tsx","./src/components/feedback/toaster.tsx","./src/app/layout.tsx","./src/components/feedback/agentstudiopreloader.tsx","./src/app/loading.tsx","./src/app/not-found.tsx","./src/components/reveal.tsx","./src/components/landing/liveagentcanvasdemo.tsx","./src/components/landing/pixelgridwave.tsx","./src/components/landing/neuralpatterns.tsx","./src/components/landing/footerportfoliowidget.tsx","./src/components/landing/heroauthsection.tsx","./src/app/page.tsx","./src/app/approvals/page.tsx","./src/components/feedback/errorboundary.tsx","./src/app/dashboard/error.tsx","./src/app/dashboard/layout.tsx","./src/components/feedback/skeleton.tsx","./src/app/dashboard/loading.tsx","./src/components/feedback/emptystate.tsx","./src/components/skills/statusbadge.tsx","./src/components/executions/executionstatusbadge.tsx","./src/app/dashboard/page.tsx","./src/app/dashboard/audit/loading.tsx","./src/app/dashboard/audit/page.tsx","./src/app/dashboard/canvas/page.tsx","./src/components/canvas/canvasnodes.tsx","./src/components/canvas/nodepalette.tsx","./src/components/canvas/nodeinspector.tsx","./src/components/canvas/quickconnectsearch.tsx","./src/components/canvas/alignmentbar.tsx","./src/components/canvas/canvascopilot.tsx","./src/components/canvas/exportdialog.tsx","./src/components/canvas/macrolibrary.tsx","./src/components/canvas/debuggerpanel.tsx","./src/components/canvas/collaborationoverlay.tsx","./src/components/canvas/agentgraphcanvas.tsx","./src/components/canvas/graphdiffmodal.tsx","./src/app/dashboard/canvas/[id]/page.tsx","./src/app/dashboard/canvas/[id]/snapshot/page.tsx","./src/app/dashboard/canvas/new/page.tsx","./src/app/dashboard/compare/loading.tsx","./src/app/dashboard/compare/page.tsx","./src/app/dashboard/executions/loading.tsx","./src/app/dashboard/executions/page.tsx","./src/app/dashboard/executions/[id]/loading.tsx","./src/components/executions/executiontimeline.tsx","./src/app/dashboard/executions/[id]/page.tsx","./src/app/dashboard/history/loading.tsx","./src/app/dashboard/history/page.tsx","./src/app/dashboard/review/loading.tsx","./src/app/dashboard/review/page.tsx","./src/app/dashboard/settings/loading.tsx","./src/components/vault/secretvault.tsx","./src/app/dashboard/settings/page.tsx","./src/app/dashboard/skills/loading.tsx","./src/components/workflows/workflowstepchain.tsx","./src/components/feedback/confirmdialog.tsx","./src/components/common/itemicon.tsx","./src/components/mcp/livesandbox.tsx","./src/app/dashboard/skills/marketplace/skillsmarketplace.tsx","./src/app/dashboard/skills/packs/skillpackmarketplace.tsx","./src/app/dashboard/skills/synthesizer/skillsynthesizer.tsx","./src/app/dashboard/skills/page.tsx","./src/app/dashboard/skills/[id]/loading.tsx","./src/app/dashboard/skills/[id]/page.tsx","./src/app/dashboard/skills/[id]/edit/loading.tsx","./node_modules/react-hook-form/dist/constants.d.ts","./node_modules/react-hook-form/dist/utils/createsubject.d.ts","./node_modules/react-hook-form/dist/types/events.d.ts","./node_modules/react-hook-form/dist/types/path/common.d.ts","./node_modules/react-hook-form/dist/types/path/eager.d.ts","./node_modules/react-hook-form/dist/types/path/index.d.ts","./node_modules/react-hook-form/dist/types/fieldarray.d.ts","./node_modules/react-hook-form/dist/types/resolvers.d.ts","./node_modules/react-hook-form/dist/types/form.d.ts","./node_modules/react-hook-form/dist/types/utils.d.ts","./node_modules/react-hook-form/dist/types/fields.d.ts","./node_modules/react-hook-form/dist/types/errors.d.ts","./node_modules/react-hook-form/dist/types/validator.d.ts","./node_modules/react-hook-form/dist/types/controller.d.ts","./node_modules/react-hook-form/dist/types/watch.d.ts","./node_modules/react-hook-form/dist/types/index.d.ts","./node_modules/react-hook-form/dist/controller.d.ts","./node_modules/react-hook-form/dist/fieldarray.d.ts","./node_modules/react-hook-form/dist/form.d.ts","./node_modules/react-hook-form/dist/formstatesubscribe.d.ts","./node_modules/react-hook-form/dist/logic/appenderrors.d.ts","./node_modules/react-hook-form/dist/logic/createformcontrol.d.ts","./node_modules/react-hook-form/dist/logic/index.d.ts","./node_modules/react-hook-form/dist/usecontroller.d.ts","./node_modules/react-hook-form/dist/usefieldarray.d.ts","./node_modules/react-hook-form/dist/useform.d.ts","./node_modules/react-hook-form/dist/useformcontext.d.ts","./node_modules/react-hook-form/dist/useformstate.d.ts","./node_modules/react-hook-form/dist/usewatch.d.ts","./node_modules/react-hook-form/dist/utils/get.d.ts","./node_modules/react-hook-form/dist/utils/set.d.ts","./node_modules/react-hook-form/dist/utils/index.d.ts","./node_modules/react-hook-form/dist/watch.d.ts","./node_modules/react-hook-form/dist/index.d.ts","./node_modules/@hookform/resolvers/zod/dist/types.d.ts","./node_modules/@hookform/resolvers/zod/dist/zod.d.ts","./node_modules/@hookform/resolvers/zod/dist/index.d.ts","./src/components/skills/availablemcptools.tsx","./src/components/skills/skillform.tsx","./src/app/dashboard/skills/[id]/edit/page.tsx","./src/app/dashboard/skills/[id]/versions/loading.tsx","./src/app/dashboard/skills/[id]/versions/page.tsx","./src/app/dashboard/skills/new/loading.tsx","./src/app/dashboard/skills/new/page.tsx","./src/app/dashboard/tools/loading.tsx","./src/app/dashboard/tools/mcp/mcpdirectorybrowser.tsx","./src/components/mcp/toolupdatediffviewer.tsx","./src/app/dashboard/tools/mcp/mcpserverhub.tsx","./src/app/dashboard/tools/openapi/openapiendpointtestermodal.tsx","./src/app/dashboard/tools/openapi/openapiimportmodal.tsx","./src/app/dashboard/tools/openapi/openapidirectorybrowser.tsx","./src/app/dashboard/tools/openapi/openapihub.tsx","./src/app/dashboard/tools/page.tsx","./src/app/dashboard/tools/[name]/loading.tsx","./src/app/dashboard/tools/[name]/page.tsx","./src/app/dashboard/workflows/page.tsx","./src/components/workflows/workflowform.tsx","./src/app/dashboard/workflows/[id]/edit/page.tsx","./src/app/dashboard/workflows/new/page.tsx","./src/app/versions/page.tsx","./src/components/landing/liveexecutionterminal.tsx","./src/components/workflows/workflowcard.tsx","./.next/types/cache-life.d.ts","./.next/types/validator.ts","./.next/types/app/page.ts","./.next/types/app/api/approvals/route.ts","./.next/types/app/api/approvals/[id]/cancel/route.ts","./.next/types/app/api/audit/route.ts","./.next/types/app/api/canvas/copilot/route.ts","./.next/types/app/api/canvas/optimize-prompt/route.ts","./.next/types/app/api/canvas/preview/route.ts","./.next/types/app/api/canvas/preview/[id]/stream/route.ts","./.next/types/app/api/compare/route.ts","./.next/types/app/api/executions/route.ts","./.next/types/app/api/executions/[id]/route.ts","./.next/types/app/api/executions/[id]/cancel/route.ts","./.next/types/app/api/executions/[id]/detail/route.ts","./.next/types/app/api/executions/[id]/export/route.ts","./.next/types/app/api/executions/[id]/replay/route.ts","./.next/types/app/api/executions/[id]/resume/route.ts","./.next/types/app/api/executions/[id]/retry/route.ts","./.next/types/app/api/executions/[id]/stream/route.ts","./.next/types/app/api/executions/metrics/route.ts","./.next/types/app/api/health/route.ts","./.next/types/app/api/mcp/arcade/route.ts","./.next/types/app/api/mcp/composio/route.ts","./.next/types/app/api/mcp/compositions/route.ts","./.next/types/app/api/mcp/directory/route.ts","./.next/types/app/api/mcp/directory/github/route.ts","./.next/types/app/api/mcp/directory/health/route.ts","./.next/types/app/api/mcp/messages/route.ts","./.next/types/app/api/mcp/presets/route.ts","./.next/types/app/api/mcp/quality/route.ts","./.next/types/app/api/mcp/servers/route.ts","./.next/types/app/api/mcp/servers/[id]/route.ts","./.next/types/app/api/mcp/servers/[id]/connect/route.ts","./.next/types/app/api/mcp/servers/[id]/disconnect/route.ts","./.next/types/app/api/mcp/servers/[id]/discover/route.ts","./.next/types/app/api/mcp/servers/[id]/health/route.ts","./.next/types/app/api/mcp/servers/[id]/metrics/route.ts","./.next/types/app/api/mcp/servers/[id]/progress/route.ts","./.next/types/app/api/mcp/servers/[id]/prompts/route.ts","./.next/types/app/api/mcp/servers/[id]/resources/route.ts","./.next/types/app/api/mcp/servers/[id]/resources/read/route.ts","./.next/types/app/api/mcp/servers/[id]/sampling/route.ts","./.next/types/app/api/mcp/servers/[id]/test/route.ts","./.next/types/app/api/mcp/servers/batch/route.ts","./.next/types/app/api/mcp/servers/export/route.ts","./.next/types/app/api/mcp/servers/import/route.ts","./.next/types/app/api/mcp/skills-feed/route.ts","./.next/types/app/api/mcp/smithery/route.ts","./.next/types/app/api/mcp/sse/route.ts","./.next/types/app/api/mcp/updates/route.ts","./.next/types/app/api/openapi/directory/route.ts","./.next/types/app/api/openapi/integrations/route.ts","./.next/types/app/api/openapi/integrations/[id]/route.ts","./.next/types/app/api/openapi/integrations/[id]/test/route.ts","./.next/types/app/api/openapi/parse/route.ts","./.next/types/app/api/openapi/test-raw/route.ts","./.next/types/app/api/settings/providers/route.ts","./.next/types/app/api/skills/route.ts","./.next/types/app/api/skills/[id]/route.ts","./.next/types/app/api/skills/[id]/archive/route.ts","./.next/types/app/api/skills/[id]/duplicate/route.ts","./.next/types/app/api/skills/[id]/publish/route.ts","./.next/types/app/api/skills/packs/route.ts","./.next/types/app/api/skills/sandbox/route.ts","./.next/types/app/api/skills/synthesize/route.ts","./.next/types/app/api/vault/route.ts","./.next/types/app/api/vault/[id]/reveal/route.ts","./.next/types/app/approvals/page.ts","./.next/types/app/dashboard/page.ts","./.next/types/app/dashboard/audit/page.ts","./.next/types/app/dashboard/canvas/page.ts","./.next/types/app/dashboard/canvas/[id]/page.ts","./.next/types/app/dashboard/canvas/[id]/snapshot/page.ts","./.next/types/app/dashboard/canvas/new/page.ts","./.next/types/app/dashboard/compare/page.ts","./.next/types/app/dashboard/executions/page.ts","./.next/types/app/dashboard/executions/[id]/page.ts","./.next/types/app/dashboard/history/page.ts","./.next/types/app/dashboard/review/page.ts","./.next/types/app/dashboard/settings/page.ts","./.next/types/app/dashboard/skills/page.ts","./.next/types/app/dashboard/skills/[id]/page.ts","./.next/types/app/dashboard/skills/[id]/edit/page.ts","./.next/types/app/dashboard/skills/[id]/versions/page.ts","./.next/types/app/dashboard/skills/new/page.ts","./.next/types/app/dashboard/tools/page.ts","./.next/types/app/dashboard/tools/[name]/page.ts","./.next/types/app/dashboard/workflows/page.ts","./.next/types/app/dashboard/workflows/[id]/edit/page.ts","./.next/types/app/dashboard/workflows/new/page.ts","./.next/types/app/versions/page.ts","./node_modules/@types/d3-transition/index.d.ts","./node_modules/@types/json-schema/index.d.ts","./node_modules/@types/json5/index.d.ts","./node_modules/@types/pako/index.d.ts","./node_modules/@types/raf/index.d.ts","./node_modules/@types/trusted-types/lib/index.d.ts","./node_modules/@types/trusted-types/index.d.ts"],"fileIdsList":[[100,149,166,167,496,1177],[100,149,166,167,496,1176],[100,149,166,167,496,1180],[100,149,166,167,496,1181],[100,149,166,167,496,1182],[100,149,166,167,496,1185],[100,149,166,167,496,1184],[100,149,166,167,496,1188],[100,149,166,167,496,1192],[100,149,166,167,496,1193],[100,149,166,167,496,1194],[100,149,166,167,496,1195],[100,149,166,167,496,1196],[100,149,166,167,496,1197],[100,149,166,167,496,1191],[100,149,166,167,496,1198],[100,149,166,167,496,1201],[100,149,166,167,496,1190],[100,149,166,167,496,1202],[100,149,166,167,496,1203],[100,149,166,167,496,1204],[100,149,166,167,496,1207],[100,149,166,167,496,1210],[100,149,166,167,496,1211],[100,149,166,167,496,1209],[100,149,166,167,496,1219],[100,149,166,167,496,1220],[100,149,166,167,496,1221],[100,149,166,167,496,1225],[100,149,166,167,496,1226],[100,149,166,167,496,1227],[100,149,166,167,496,1228],[100,149,166,167,496,1229],[100,149,166,167,496,1230],[100,149,166,167,496,1231],[100,149,166,167,496,1233],[100,149,166,167,496,1232],[100,149,166,167,496,1224],[100,149,166,167,496,1234],[100,149,166,167,496,1235],[100,149,166,167,496,1236],[100,149,166,167,496,1237],[100,149,166,167,496,1238],[100,149,166,167,496,1223],[100,149,166,167,496,1239],[100,149,166,167,496,1240],[100,149,166,167,496,1241],[100,149,166,167,496,1244],[100,149,166,167,496,1245],[100,149,166,167,496,1248],[100,149,166,167,496,1249],[100,149,166,167,496,1247],[100,149,166,167,496,1250],[100,149,166,167,496,1251],[100,149,166,167,496,1253],[100,149,166,167,496,1258],[100,149,166,167,496,1259],[100,149,166,167,496,1260],[100,149,166,167,496,1257],[100,149,166,167,496,1263],[100,149,166,167,496,1256],[100,149,166,167,496,1264],[100,149,166,167,496,1265],[100,149,166,167,496,1267],[100,149,166,167,496,1266],[100,149,166,167,342,1549],[100,149,166,167,342,1560],[100,149,166,167,342,1574],[100,149,166,167,342,1575],[100,149,166,167,342,1576],[100,149,166,167,342,1561],[100,149,166,167,342,1578],[100,149,166,167,342,1583],[100,149,166,167,342,1580],[100,149,166,167,342,1585],[100,149,166,167,342,1558],[100,149,166,167,342,1587],[100,149,166,167,342,1590],[100,149,166,167,342,1642],[100,149,166,167,342,1601],[100,149,166,167,342,1644],[100,149,166,167,342,1646],[100,149,166,167,342,1599],[100,149,166,167,342,1657],[100,149,166,167,342,1655],[100,149,166,167,342,1660],[100,149,166,167,342,1661],[100,149,166,167,342,1658],[100,149,166,167,342,1548],[100,149,166,167,342,1662],[100,149,166,167,449,450,451,452],[100,149,166,167],[83,100,149,166,167,496,499,1176,1177,1180,1181,1182,1184,1185,1188,1190,1191,1192,1193,1194,1195,1196,1197,1198,1201,1202,1203,1204,1207,1209,1210,1211,1219,1220,1221,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1244,1245,1247,1248,1249,1250,1251,1253,1256,1257,1258,1259,1260,1263,1264,1265,1266,1267,1538,1548,1549,1552,1558,1560,1561,1574,1575,1576,1578,1580,1583,1585,1587,1590,1599,1601,1642,1644,1646,1655,1657,1658,1660,1661,1662],[100,149,166,167,524],[83,100,149,166,167,500,501],[100,149,166,167,500],[100,149,166,167,611],[100,149,166,167,610],[100,149,166,167,1059],[100,149,166,167,1058,1059,1060,1061,1062,1063,1064,1065],[100,149,166,167,626],[100,149,166,167,627,631],[100,149,166,167,625,627],[100,149,166,167,627,629],[100,149,166,167,620,627,633,634,635],[100,149,166,167,619,627,634,635,637],[100,149,166,167,627],[100,149,166,167,620,627,635,686,687,688],[100,149,166,167,620,627,634,635,640],[100,149,166,167,620,627,635,643,644],[100,149,166,167,627,634,635,647],[100,149,166,167,627,690],[100,149,166,167,627,628,630,632,636,638,639,641,645,648,691,692,693,694,696,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719],[100,149,166,167,627,656,657,671],[100,149,166,167,620,623,627,635,659],[100,149,166,167,624,627],[100,149,166,167,620,627,635,690],[100,149,166,167,619,626,627,635,663,703],[100,149,166,167,620,627,635,660,661,662,695],[100,149,166,167,620,627,635,666,690,695],[100,149,166,167,620,623,627,635,690,695],[100,149,166,167,627,635,674],[100,149,166,167,620,627,635,690,695],[100,149,166,167,620,627,635,642,649,681],[100,149,166,167,627,677],[100,149,166,167,627,678],[100,149,166,167,627,680],[100,149,166,167,620,623,627,634,635,684,695],[100,149,166,167,626,720,721],[100,149,166,167,690,722],[100,149,166,167,620],[100,149,166,167,624],[100,149,166,167,623,624],[100,149,166,167,620,624,642],[100,149,166,167,619,624,685],[100,149,166,167,620,624,687],[100,149,166,167,620,624,686],[100,149,166,167,624,646],[100,149,166,167,624,651,652],[100,149,166,167,624,652],[100,149,166,167,620,624],[100,149,166,167,620,623,624,625,629,631,633,634,637,640,642,643,646,647,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689],[100,149,166,167,620,623],[100,149,166,167,623,624,652],[100,149,166,167,623,624,690],[100,149,166,167,624,652,675],[100,149,166,167,620,623,624],[100,149,166,167,624,653,654,672,676,682],[100,149,166,167,623,624,659],[100,149,166,167,698],[100,149,166,167,620,622,624,689,690,723,727,731,732,736],[100,149,166,167,700,725,727,731,732,734,735,736,739,740,741,742,743],[100,149,166,167,620,728,729],[100,149,166,167,701],[100,149,166,167,700],[100,149,166,167,620,699,701],[100,149,166,167,619,655,663,699,701,702],[100,149,166,167,725,732],[100,149,166,167,620,700,723,732,733],[100,149,166,167,620,699,700,727,732,733],[100,149,166,167,724],[100,149,166,167,723,732,734,735],[100,149,166,167,700,732],[100,149,166,167,700,732,734],[100,149,166,167,620,700,723,726,727,731],[100,149,166,167,619,699,700,701,702,723,730],[100,149,166,167,723,727],[86,100,149,166,167,619,1479,1480,1510],[86,100,149,166,167,619,698,1479,1480,1512],[86,100,149,166,167,619],[86,100,149,166,167,619,1479],[100,149,166,167,483,737,744,750],[86,100,149,166,167,620,1519],[86,100,149,166,167,620,1511],[100,149,166,167,620,737],[100,149,166,167,1511,1513],[100,149,166,167,1511,1516,1517],[86,100,149,166,167,1511],[100,149,166,167,1520,1521],[100,149,166,167,1514,1515,1518,1522],[100,149,166,167,737,746],[100,149,166,167,737],[100,149,166,167,496,737,744,746,751,753],[100,149,166,167,620,737,744,746,747],[100,149,166,167,620,737,744,745,746],[100,149,166,167,621,737,738,744,748,749,751,752,754],[100,149,166,167,620,737,744],[100,149,166,167,473,496,618,620],[100,149,163,166,167,443,496,500],[100,149,166,167,620,1511],[100,149,166,167,616],[100,149,166,167,616,697],[100,149,166,167,615],[100,149,166,167,616,1496],[100,149,166,167,616,617],[86,100,149,166,167,616,617,697,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509],[100,149,166,167,619],[100,149,166,167,1637,1638],[100,149,166,167,519,1636],[100,149,166,167,1637],[100,149,166,167,825,826,827,828,829,830,832,833,834,944],[100,149,166,167,811,812,816,833,834,835,836,837],[100,149,166,167,812,816,833,834,835,836,837,838],[100,149,166,167,812,833],[100,149,166,167,917],[100,149,166,167,814,815,833,834,839,841,905,917,945,946,970,971,973],[100,149,166,167,822,824],[100,149,166,167,822,824,826,836],[100,149,166,167,811],[100,149,166,167,822,825,832,833],[100,149,166,167,812,822,823,832],[100,149,166,167,832,833],[100,149,166,167,817],[100,149,166,167,817,818,819,820,821],[100,149,166,167,820,822,824,825,826,827,828,829,830,831,832,833,942,975],[100,149,166,167,822,824,831],[100,149,166,167,832],[100,149,166,167,833],[100,149,166,167,825,826,827,828,829,830,832,833,905,942,974],[100,149,166,167,825,826,827,828,829,830,832,833],[100,149,166,167,812,829,832,833],[100,149,166,167,812,815,825,839,841,895,896,897,899,900,904],[100,149,166,167,839,841,905],[100,149,166,167,839,841],[100,149,166,167,841],[100,149,166,167,833,841,895,905,909],[100,149,166,167,841,842,905,906,907,908,910,911],[100,149,166,167,841,905],[100,149,166,167,841,896,905],[100,149,166,167,812,815,839,840],[100,149,166,167,812,816,833,834,835,837,838,893,894],[100,149,166,167,838],[100,149,166,167,838,895,896,897,898],[100,149,166,167,943],[100,149,166,167,813,815,949,952,957,963,964,970,1057,1066],[100,149,166,167,813],[100,149,166,167,840],[100,149,166,167,815],[100,149,166,167,814],[100,149,166,167,970],[100,149,166,167,948,970],[100,149,166,167,948],[100,149,166,167,948,952],[100,149,166,167,947],[100,149,166,167,962,970],[100,149,166,167,954,957,970],[100,149,166,167,947,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969],[100,149,166,167,809,810,912],[100,149,166,167,809],[100,149,166,167,922],[100,149,166,167,809,810,913,914,915,916,919,920,921,922,923],[100,149,166,167,809,810,912,913],[100,149,166,167,918],[100,149,166,167,919],[100,149,166,167,925],[100,149,166,167,912,924],[100,149,166,167,925,927],[100,149,166,167,924,925,927],[100,149,166,167,924,926],[100,149,166,167,927],[100,149,166,167,924,926,927,931,933,940,941,996,1077],[100,149,166,167,938],[100,149,166,167,925,927,929,931,938],[100,149,166,167,900,912,924,925,927,938,939,941,977,980,994,996,997,1070],[100,149,166,167,912,976,1074,1075],[100,149,166,167,508,835,925,927,939,976,1069,1075],[100,149,166,167,976],[100,149,166,167,835,924,925,926,927,938,939,940,980,1068,1069,1070,1071,1072,1073],[100,149,166,167,813,835,927,938,939,1068,1069],[100,149,166,167,835,925,927],[100,149,166,167,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,977,980,981,982,983,984,985,987,988,990,992,996,997,998,999,1000,1001,1068,1070,1071,1072,1073,1074,1075,1076,1078,1079,1080,1081,1082,1083],[100,149,166,167,839,912,924],[100,149,166,167,896,899,900,912,924,925,927,938,940,941,977,980,990,993,995],[100,149,166,167,912,926,940],[100,149,166,167,912,924,937],[100,149,166,167,838,896,977],[100,149,166,167,896,900,912,924,925,926,927,937,938,940,941,976,980],[100,149,166,167,912,924,938],[100,149,166,167,912,924,926],[100,149,166,167,912,927,994],[100,149,166,167,998],[100,149,166,167,976,999,1001,1075],[100,149,166,167,925,927,938,998,999,1000,1001,1067],[100,149,166,167,928,998],[100,149,166,167,977,980],[100,149,166,167,978,980,981,982,983,984,985,986,987,988,990,991],[100,149,166,167,980,981,982],[100,149,166,167,980,981,983,986,989],[100,149,166,167,979,980],[100,149,166,167,980,981,983],[100,149,166,167,980,983],[100,149,166,167,980,981,986],[100,149,166,167,979,980,981],[100,149,166,167,836,977,978,979],[100,149,166,167,839,912],[100,149,166,167,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,977,980,981,982,983,984,985,987,988,990,992,996,997,998,999,1000,1001,1068,1070,1071,1072,1073,1074,1075,1076,1078,1079,1080,1081,1082],[100,149,166,167,1139,1149,1150],[100,149,166,167,1126,1138,1139,1143,1145,1146],[100,149,166,167,1138,1139,1151,1153],[100,149,150,166,167,181,1138,1139],[100,149,166,167,1138,1139,1151],[100,149,166,167,1126,1138,1140,1142,1143,1147],[100,149,166,167,1126,1138,1140,1143],[100,149,166,167,1126,1138,1141,1216],[100,149,166,167,1126,1138,1142,1143,1213],[100,149,166,167,1138],[100,149,166,167,1137,1138,1139],[100,149,166,167,1149],[100,149,166,167,1126,1138,1143,1145,1212],[100,149,166,167,1126,1138,1139,1141,1143,1213,1214,1215],[100,149,163,166,167,1137,1138,1139],[100,149,163,166,167,1137,1138,1139,1217],[100,149,166,167,508,1057],[100,149,166,167,1136],[100,149,166,167,1126,1137,1138,1139,1141,1142],[100,149,166,167,1136,1137],[100,149,166,167,1144],[100,149,166,167,523],[100,149,166,167,612],[100,149,166,167,1525],[86,100,149,166,167,267,1526],[100,149,166,167,1527],[100,149,166,167,595,596],[100,149,166,167,1270,1757],[100,149,166,167,1272],[100,149,166,167,1270,1273,1757],[100,146,147,149,166,167],[100,148,149,166,167],[149,166,167],[100,149,154,166,167,184],[100,149,150,155,160,166,167,169,181,192],[100,149,150,151,160,166,167,169],[95,96,97,100,149,166,167],[100,149,152,166,167,193],[100,149,153,154,161,166,167,170],[100,149,154,166,167,181,189],[100,149,155,157,160,166,167,169],[100,148,149,156,166,167],[100,149,157,158,166,167],[100,149,159,160,166,167],[100,148,149,160,166,167],[100,149,160,161,162,166,167,181,192],[100,149,160,161,162,166,167,176,181,184],[100,141,149,157,160,163,166,167,169,181,192],[100,149,160,161,163,164,166,167,169,181,189,192],[100,149,163,165,166,167,181,189,192],[98,99,100,101,102,103,104,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198],[100,149,160,166,167],[100,149,166,167,168,192],[100,149,157,160,166,167,169,181],[100,149,166,167,170],[100,149,166,167,171],[100,148,149,166,167,172],[100,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198],[100,149,166,167,174],[100,149,166,167,175],[100,149,160,166,167,176,177],[100,149,166,167,176,178,193,195],[100,149,161,166,167],[100,149,160,166,167,181,182,184],[100,149,166,167,183,184],[100,149,166,167,181,182],[100,149,166,167,184],[100,149,166,167,185],[100,146,149,166,167,181,186,192],[100,149,160,166,167,187,188],[100,149,166,167,187,188],[100,149,154,166,167,169,181,189],[100,149,166,167,190],[100,149,166,167,169,191],[100,149,163,166,167,175,192],[100,149,154,166,167,193],[100,149,166,167,181,194],[100,149,166,167,168,195],[100,149,166,167,196],[100,141,149,166,167],[100,141,149,160,162,166,167,172,181,184,192,194,195,197],[100,149,166,167,181,198],[86,90,100,149,166,167,200,201,202,203,204,444,492],[86,100,149,166,167],[86,90,100,149,166,167,200,201,202,203,359,444,492],[86,90,100,149,166,167,200,201,203,204,444,492],[86,100,149,166,167,204,359,360],[86,100,149,166,167,204,359],[86,90,100,149,166,167,201,202,203,204,444,492],[86,90,100,149,166,167,200,202,203,204,444,492],[84,85,100,149,166,167],[100,149,166,167,1762],[100,149,166,167,551,556,557,559],[100,149,166,167,582,583],[100,149,166,167,557,559,576,577,578],[100,149,166,167,557],[100,149,166,167,557,559,576],[100,149,166,167,557,576],[100,149,166,167,589],[100,149,166,167,552,589,590],[100,149,166,167,552,589],[100,149,166,167,552,558],[100,149,166,167,553],[100,149,166,167,552,553,554,556],[100,149,166,167,552],[86,100,149,166,167,267,1353],[100,149,166,167,1353,1354],[100,149,166,167,267,1356],[86,100,149,166,167,267,1356],[100,149,166,167,1356,1357,1358],[86,100,149,166,167,1311,1318],[100,149,166,167,267,1371],[100,149,166,167,1371,1372],[86,100,149,166,167,1311],[100,149,166,167,1355,1359,1363,1367,1370,1373],[100,149,166,167,1360,1361,1362],[100,149,166,167,267,1318,1360],[86,100,149,166,167,267,1360],[100,149,166,167,1364,1365,1366],[86,100,149,166,167,267,1364],[100,149,166,167,267,1364],[100,149,166,167,1368,1369],[100,149,166,167,267,1368],[100,149,166,167,267,1318],[86,100,149,166,167,267,1318],[86,100,149,166,167,267,1311,1318],[86,100,149,166,167,1318],[100,149,166,167,1311,1318],[100,149,166,167,1318],[100,149,166,167,1311],[100,149,166,167,1311,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1374,1375],[100,149,166,167,1312,1313,1314,1315,1316,1317],[86,100,149,166,167,1311,1312],[100,149,166,167,1282],[100,149,166,167,1282,1283,1299,1301,1304,1305,1307,1310],[100,149,166,167,1275],[100,149,166,167,1270,1271,1274,1275,1277,1278,1279,1311,1757],[100,149,166,167,1269,1275,1277,1278,1279,1280,1281],[100,149,166,167,1276,1282],[100,149,166,167,1274,1282],[100,149,166,167,1280,1311],[100,149,166,167,1286,1287,1288,1289,1290],[100,149,166,167,1275,1277,1280,1281,1282],[100,149,166,167,1282,1283],[100,149,166,167,1276,1284,1285,1291,1292,1293,1294,1295,1296,1297,1298],[100,149,166,167,1276,1282,1311],[100,149,166,167,1300],[100,149,166,167,1303],[100,149,166,167,1302],[100,149,166,167,1270,1282,1757],[100,149,166,167,1306],[100,149,166,167,1308,1309],[100,149,166,167,1271],[100,149,166,167,1282,1308],[100,149,166,167,1413,1414],[100,149,166,167,1413,1414,1415,1416],[100,149,166,167,1413,1415],[100,149,166,167,1413],[100,149,166,167,1381],[100,149,166,167,972],[100,149,166,167,854,855,856,857,858,859,861,862,865,869,871,872,873,874,876,880,881,882,883,886],[100,149,166,167,855,860,884],[100,149,166,167,857,860,861,884],[100,149,166,167,884],[100,149,166,167,863,864],[100,149,166,167,857,884],[100,149,166,167,854,855,856],[100,149,166,167,854],[100,149,166,167,854,857,884],[100,149,166,167,857,861,862,866,867,869,871,885],[100,149,166,167,857,861,862,885],[100,149,166,167,857,861,872,885],[100,149,166,167,870,885],[100,149,166,167,857,862,869,885],[100,149,166,167,869,871,872,873,874,876,880,881,882,886],[100,149,166,167,857,861,885],[100,149,166,167,875,885],[100,149,166,167,857,861,869,885],[100,149,166,167,887],[100,149,166,167,868,869],[100,149,166,167,857,861,862,868,885],[100,149,166,167,857,861,880,885],[100,149,166,167,877,878,879,885],[100,149,166,167,857,861,862,869,885],[100,149,166,167,843,850,851,852,853,871,872,876,880,881,882,886,888,889,890],[100,149,166,167,851,892],[100,149,166,167,851,891],[100,149,166,167,892,902],[100,149,166,167,892,901,903],[100,149,166,167,849],[100,149,166,167,848],[100,149,166,167,851],[100,149,166,167,892],[100,149,166,167,903],[92,100,149,166,167],[100,149,166,167,447],[100,149,166,167,454],[100,149,166,167,208,222,223,224,226,441],[100,149,166,167,208,247,249,251,252,255,441,443],[100,149,166,167,208,212,214,215,216,217,218,430,441,443],[100,149,166,167,441],[100,149,166,167,223,325,411,420,437],[100,149,166,167,208],[100,149,166,167,205,437],[100,149,166,167,259],[100,149,166,167,258,441,443],[100,149,163,166,167,307,325,354,498],[100,149,163,166,167,318,334,420,436],[100,149,163,166,167,372],[100,149,166,167,424],[100,149,166,167,423,424,425],[100,149,166,167,423],[94,100,149,163,166,167,205,208,212,215,219,220,221,223,227,235,236,365,390,421,441,444],[100,149,166,167,208,225,243,247,248,253,254,441,498],[100,149,166,167,225,498],[100,149,166,167,236,243,305,441,498],[100,149,166,167,498],[100,149,166,167,208,225,226,498],[100,149,166,167,250,498],[100,149,166,167,219,422,429],[100,149,166,167,175,267,437],[100,149,166,167,267,437],[86,100,149,166,167,267],[86,100,149,166,167,326],[100,149,166,167,322,370,437,480,481],[100,149,166,167,417,474,475,476,477,479],[100,149,166,167,416],[100,149,166,167,416,417],[100,149,166,167,216,366,367,368],[100,149,166,167,366,369,370],[100,149,166,167,478],[100,149,166,167,366,370],[86,100,149,166,167,209,468],[86,100,149,166,167,192],[86,100,149,166,167,225,295],[86,100,149,166,167,225],[100,149,166,167,293,297],[86,100,149,166,167,294,446],[100,149,166,167,1474],[86,90,100,149,163,166,167,199,200,201,202,203,204,444,490,491],[100,149,163,166,167],[100,149,163,166,167,212,274,366,376,391,411,426,427,441,442,498],[100,149,166,167,235,428],[100,149,166,167,444],[100,149,166,167,207],[86,100,149,166,167,307,321,333,343,345,436],[100,149,166,167,175,307,321,342,343,344,436,497],[100,149,166,167,336,337,338,339,340,341],[100,149,166,167,338],[100,149,166,167,342],[100,149,166,167,265,266,267,269],[86,100,149,166,167,260,261,262,268],[100,149,166,167,265,268],[100,149,166,167,263],[100,149,166,167,264],[86,100,149,166,167,267,294,446],[86,100,149,166,167,267,445,446],[86,100,149,166,167,267,446],[100,149,166,167,391,433],[100,149,166,167,433],[100,149,163,166,167,442,446],[100,149,166,167,330],[100,148,149,166,167,329],[100,149,166,167,237,275,313,315,317,318,319,320,363,366,436,439,442],[100,149,166,167,237,351,366,370],[100,149,166,167,318,436],[86,100,149,166,167,318,327,328,330,331,332,333,334,335,346,347,348,349,350,352,353,436,437,498],[100,149,166,167,312],[100,149,163,166,167,175,237,238,274,289,319,363,364,365,370,391,411,432,441,442,443,444,498],[100,149,166,167,436],[100,148,149,166,167,223,316,319,365,432,434,435,442],[100,149,166,167,318],[100,148,149,166,167,274,279,308,309,310,311,312,313,314,315,317,436,437],[100,149,163,166,167,279,280,308,442,443],[100,149,166,167,223,365,366,391,432,436,442],[100,149,163,166,167,441,443],[100,149,163,166,167,181,439,442,443],[100,149,163,166,167,175,192,205,212,225,237,238,240,275,276,281,286,289,315,319,366,376,378,381,383,386,387,388,389,390,411,431,432,437,439,441,442,443],[100,149,163,166,167,181],[100,149,166,167,208,209,210,212,217,220,225,243,431,439,440,444,446,498],[100,149,163,166,167,181,192,255,257,259,260,261,262,269,498],[100,149,166,167,175,192,205,247,257,285,286,287,288,315,366,381,390,391,397,400,401,411,432,437,439],[100,149,166,167,219,220,235,365,390,432,441],[100,149,163,166,167,192,209,212,315,395,439,441],[100,149,166,167,306],[100,149,163,166,167,398,399,408],[100,149,166,167,439,441],[100,149,166,167,313,316],[100,149,166,167,315,319,431,446],[100,149,163,166,167,175,241,247,288,381,391,397,400,403,439],[100,149,163,166,167,219,235,247,404],[100,149,166,167,208,240,406,431,441],[100,149,163,166,167,192,441],[100,149,163,166,167,225,239,240,241,252,270,405,407,431,441],[94,100,149,166,167,237,319,410,444,446],[100,149,163,166,167,175,192,212,219,227,235,238,275,281,285,286,287,288,289,315,366,378,391,392,394,396,411,431,432,437,438,439,446],[100,149,163,166,167,181,219,397,402,408,439],[100,149,166,167,230,231,232,233,234],[100,149,166,167,276,382],[100,149,166,167,384],[100,149,166,167,382],[100,149,166,167,384,385],[100,149,163,166,167,212,215,216,274,442],[100,149,163,166,167,175,207,209,237,275,289,319,374,375,411,439,443,444,446],[100,149,163,166,167,175,192,211,216,315,375,438,442],[100,149,166,167,308],[100,149,166,167,309],[100,149,166,167,310],[100,149,166,167,437],[100,149,166,167,256,272],[100,149,163,166,167,212,256,275],[100,149,166,167,271,272],[100,149,166,167,273],[100,149,166,167,256,257],[100,149,166,167,256,290],[100,149,166,167,256],[100,149,166,167,276,380,438],[100,149,166,167,379],[100,149,166,167,257,437,438],[100,149,166,167,377,438],[100,149,166,167,257,437],[100,149,166,167,363],[100,149,166,167,212,217,275,304,307,313,315,319,321,324,355,358,362,366,410,431,439,442],[100,149,166,167,298,301,302,303,322,323,370],[86,100,149,166,167,202,203,204,267,356,357],[86,100,149,166,167,202,203,204,267,356,357,361],[100,149,166,167,419],[100,149,166,167,223,280,318,319,330,334,366,410,412,413,414,415,417,418,421,431,436,441],[100,149,166,167,370],[100,149,166,167,374],[100,149,163,166,167,275,291,371,373,376,410,439,444,446],[100,149,166,167,298,299,300,301,302,303,322,323,370,445],[94,100,149,163,166,167,175,192,238,256,257,289,315,319,408,409,411,431,432,441,442,444],[100,149,166,167,280,282,285,432],[100,149,163,166,167,276,441],[100,149,166,167,279,318],[100,149,166,167,278],[100,149,166,167,280,281],[100,149,166,167,277,279,441],[100,149,163,166,167,211,280,282,283,284,441,442],[86,100,149,166,167,366,367,369],[100,149,166,167,242],[86,100,149,166,167,209],[86,100,149,166,167,437],[86,94,100,149,166,167,289,319,444,446],[100,149,166,167,209,468,469],[86,100,149,166,167,297],[86,100,149,166,167,175,192,207,254,292,294,296,446],[100,149,166,167,225,437,442],[100,149,166,167,393,437],[100,149,166,167,366],[86,100,149,161,163,166,167,175,207,243,249,297,444,445],[86,100,149,166,167,200,201,202,203,204,444,492],[86,87,88,89,90,100,149,166,167],[100,149,154,166,167],[100,149,166,167,244,245,246],[100,149,166,167,244],[86,90,100,149,163,165,166,167,175,199,200,201,202,203,204,205,207,238,342,403,441,443,446,492],[100,149,166,167,456],[100,149,166,167,458],[100,149,166,167,460],[100,149,166,167,1475],[100,149,166,167,462],[100,149,166,167,464,465,466],[100,149,166,167,470],[91,93,100,149,166,167,448,453,455,457,459,461,463,467,471,473,483,484,486,496,497,498,499],[100,149,166,167,472],[100,149,166,167,482],[100,149,166,167,294],[100,149,166,167,485],[100,148,149,166,167,280,282,283,285,333,437,487,488,489,492,493,494,495],[100,149,166,167,199],[100,149,166,167,844,845,846,847],[100,149,166,167,845],[100,149,166,167,845,846],[100,149,163,166,167,199],[100,149,160,166,167,197,758,759],[100,149,166,167,520],[100,149,150,161,166,167,181,504,505,508,519],[100,149,166,167,522],[100,149,166,167,521],[100,149,166,167,541],[100,149,166,167,539,541],[100,149,166,167,530,538,539,540,542,544],[100,149,166,167,528],[100,149,166,167,531,536,541,544],[100,149,166,167,527,544],[100,149,166,167,531,532,535,536,537,544],[100,149,166,167,531,532,533,535,536,544],[100,149,166,167,528,529,530,531,532,536,537,538,540,541,542,544],[100,149,166,167,544],[100,149,166,167,526,528,529,530,531,532,533,535,536,537,538,539,540,541,542,543],[100,149,166,167,526,544],[100,149,166,167,531,533,534,536,537,544],[100,149,166,167,535,544],[100,149,166,167,536,537,541,544],[100,149,166,167,529,539],[86,100,149,166,167,1618],[100,149,166,167,1618,1619,1620,1621,1622,1625,1626,1627,1628,1629,1630,1631,1634,1635],[100,149,166,167,1618],[100,149,166,167,1623,1624],[86,100,149,166,167,1615,1618],[100,149,166,167,1612,1613,1615],[100,149,166,167,1608,1611,1613,1615],[100,149,166,167,1612,1615],[86,100,149,166,167,1603,1604,1605,1608,1609,1610,1612,1613,1614,1615],[100,149,166,167,1605,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617],[100,149,166,167,1612],[100,149,166,167,1606,1612,1613],[100,149,166,167,1606,1607],[100,149,166,167,1611,1613,1614],[100,149,166,167,1611],[100,149,166,167,1603,1608,1611,1613,1614],[86,100,149,166,167,1608,1611,1612,1613],[100,149,166,167,1632,1633],[100,149,166,167,565,574,575],[100,149,166,167,564,565],[100,149,166,167,181,199],[100,149,160,166,167,199],[100,149,166,167,546,547],[100,149,166,167,545,548],[100,149,166,167,555],[100,113,117,149,166,167,192],[100,113,149,166,167,181,192],[100,108,149,166,167],[100,110,113,149,166,167,189,192],[100,149,166,167,169,189],[100,108,149,166,167,199],[100,110,113,149,166,167,169,192],[100,105,106,109,112,149,160,166,167,181,192],[100,113,120,149,166,167],[100,105,111,149,166,167],[100,113,134,135,149,166,167],[100,109,113,149,166,167,184,192,199],[100,134,149,166,167,199],[100,107,108,149,166,167,199],[100,113,149,166,167],[100,107,108,109,110,111,112,113,114,115,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,135,136,137,138,139,140,149,166,167],[100,113,128,149,166,167],[100,113,120,121,149,166,167],[100,111,113,121,122,149,166,167],[100,112,149,166,167],[100,105,108,113,149,166,167],[100,113,117,121,122,149,166,167],[100,117,149,166,167],[100,111,113,116,149,166,167,192],[100,105,110,113,120,149,166,167],[100,149,166,167,181],[100,108,113,134,149,166,167,197,199],[100,149,166,167,586,587],[100,149,166,167,586],[100,149,166,167,561],[100,149,160,161,163,164,165,166,167,169,181,189,192,198,199,545,561,562,563,565,566,568,569,570,571,572,573,574,575],[100,149,166,167,561,562,563,567],[100,149,166,167,563],[100,149,166,167,565,575],[100,149,166,167,560,606,1410],[100,149,166,167,579,598,599,1410],[100,149,166,167,552,559,579,591,592,1410],[100,149,166,167,601],[100,149,166,167,580],[100,149,166,167,552,560,579,581,591,600,1410],[100,149,166,167,584],[100,149,152,161,166,167,181,552,557,559,575,579,581,584,585,588,591,593,594,597,600,602,603,605,1410],[100,149,166,167,579,598,599,600,1410],[100,149,166,167,575,604,605],[100,149,166,167,579,581,588,591,593,1410],[100,149,166,167,197,594],[100,149,152,161,166,167,181,552,557,559,575,579,580,581,584,585,588,591,592,593,594,597,598,599,600,601,602,603,604,605,1410],[100,149,152,161,166,167,181,197,551,552,557,559,560,575,579,580,581,584,585,588,591,592,593,594,597,598,599,600,601,602,603,604,605,1409,1410,1411,1412,1417],[100,149,166,167,518],[100,149,166,167,509,510],[100,149,166,167,506,507,509,511,512,517],[100,149,166,167,507,509],[100,149,166,167,517],[100,149,166,167,509],[100,149,166,167,506,507,509,512,513,514,515,516],[100,149,166,167,506,507,508],[100,149,166,167,1057],[100,149,166,167,1057,1129],[100,149,166,167,1050,1057,1127,1128,1129,1130,1131,1132,1133],[100,149,166,167,1134],[100,149,166,167,1057,1127],[100,149,166,167,1057,1128],[100,149,166,167,1003,1005,1006,1007,1008],[100,149,166,167,1003,1005,1007,1008],[100,149,166,167,1003,1005,1007],[100,149,166,167,1003,1005,1006,1008],[100,149,166,167,1003,1005,1008],[100,149,166,167,1003,1004,1005,1006,1007,1008,1009,1010,1050,1051,1052,1053,1054,1055,1056],[100,149,166,167,1005,1008],[100,149,166,167,1002,1003,1004,1006,1007,1008],[100,149,166,167,1005,1051,1055],[100,149,166,167,1005,1006,1007,1008],[100,149,166,167,1135],[100,149,166,167,1007],[100,149,166,167,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049],[100,149,166,167,1404,1405],[100,149,166,167,1404],[100,149,166,167,613],[100,149,166,167,496,519,755,764,1175],[100,149,166,167,496,519,755,757,764,765,1175],[100,149,166,167,496,755,764,778,1168,1179],[100,149,166,167,496,755,764,765,773,808],[100,149,166,167,496,755,764,765,808],[100,149,166,167,755,762,773,808,1111,1112,1164,1166,1175,1183],[100,149,166,167,496,755,773,776,1163,1183],[100,149,166,167,496,755,764,776,1187],[100,149,166,167,496,755,764,1175],[100,149,166,167,496,755,764,765,1175],[100,149,166,167,496,519,755,764,765,1175],[100,149,166,167,755,772,1164],[100,149,166,167,496,755,764,772,1200],[100,149,166,167,496,755,764,765,766,769,1172,1175,1189],[100,149,166,167,496],[100,149,166,167,496,755,764],[100,149,166,167,496,755,764,1205,1206],[100,149,166,167,496,755,764,1206],[100,149,166,167,496,755,764,1206,1208],[100,149,166,167,755,761,1175,1218],[100,149,166,167,496,755,764,1156],[100,149,166,167,496,755,764,1205],[100,149,166,167,755,1175],[100,149,166,167,496,755,764,1175,1222],[100,149,166,167,755,764,1175],[100,149,166,167,496,519,755,764,1175,1222],[100,149,166,167,496,755,762,785,1158,1175,1243],[100,149,166,167,496,519,755,764,1175,1246],[100,149,166,167,496,755,761,764,808,1252],[100,149,166,167,496,755,764,776,778,1243],[100,149,166,167,496,755,764,776,778,1243,1255],[100,149,166,167,496,755,762,776,778,1175,1243,1255,1261,1262],[100,149,166,167,496,755,762,773,776,778,1183,1243,1255],[100,149,166,167,496,755,762,773,808,1175,1243,1255],[100,149,166,167,496,755,762,787],[100,149,166,167,483],[100,149,166,167,1553],[86,100,149,166,167,1377,1394,1407,1528,1553,1555],[86,100,149,166,167,473,773,1377,1385,1393,1396,1407,1528,1534,1553,1555,1556,1572,1573],[86,100,149,166,167,473,1377,1393,1396,1528,1553,1555,1572],[86,100,149,166,167,473,483,773,1268,1377,1393,1407,1528],[86,100,149,166,167,473,1268,1377,1393,1528,1553,1555],[86,100,149,166,167,1168,1377,1393,1395,1528,1534,1553,1555],[100,149,166,167,1550],[86,100,149,166,167,473,483,1170,1377,1396,1407,1528,1534,1553,1555,1557,1582],[86,100,149,166,167,473,483,766,1377,1396,1407,1528,1553,1555,1557],[86,100,149,166,167,473,766,1377,1396,1528,1553,1555,1557],[86,100,149,166,167,473,755,772,776,778,781,1377,1391,1542,1555,1556,1557],[86,100,149,166,167,779,1377,1396,1407,1528,1534,1553,1555],[86,100,149,166,167,1252,1377,1477,1523,1528,1531,1553,1555,1589],[86,100,149,166,167,473,483,1377,1393,1407,1528,1553,1555,1641],[86,100,149,166,167,473,483,1377,1393,1396,1407,1528,1553,1555,1556,1593],[86,100,149,166,167,473,483,1377,1393,1528,1553,1555,1556],[86,100,149,166,167,774,1205,1377,1407,1528,1534,1594,1595],[86,100,149,166,167,473,483,1377,1389,1393,1407,1641],[86,100,149,166,167,1261,1262,1377,1407,1528,1534],[86,100,149,166,167,473,774,1377,1389,1393,1407,1528,1534,1553,1555,1556,1592,1593,1594,1596,1597,1598],[86,100,149,166,167,773,1377,1407,1528,1534],[86,100,149,166,167,473,483,755,766,772,784,1111,1377,1392,1534],[86,100,149,166,167,202,203,204,1205,1208,1377,1534,1594],[86,100,149,166,167,785,1156,1208,1377,1534,1594,1648,1649],[86,100,149,166,167,790,1377,1534,1594],[86,100,149,166,167,790,1377],[86,100,149,166,167,790,1377,1399,1534,1651,1652,1653],[86,100,149,166,167,790,1377,1534,1651],[86,100,149,166,167,473,772,784,1111,1377,1391,1392,1534,1542,1555,1650,1654],[86,100,149,166,167,473,1377,1393,1407,1528,1556,1659],[86,100,149,166,167,1377],[100,149,166,167,500,1476,1532,1533,1536,1537],[86,100,149,166,167,1539],[86,100,149,166,167,473,483,1377,1523],[86,100,149,166,167,459,473,1377,1542,1543,1544,1545,1546,1547],[86,100,149,166,167,1478,1524,1529,1530,1531],[86,100,149,166,167,773,1376,1377,1378,1379,1380,1386,1387,1388,1407,1477,1534,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571],[100,149,166,167,773],[86,100,149,166,167,1376,1377,1379,1380],[100,149,166,167,1379],[86,100,149,166,167,773,1377,1534],[86,100,149,166,167,1376,1377,1378,1379,1534],[86,100,149,166,167,773,1377,1384,1534],[100,149,166,167,773,1382,1383],[86,100,149,166,167,1377,1385],[100,149,166,167,773,1376,1378],[86,100,149,166,167,773,1376,1377,1379],[86,100,149,166,167,773,785,1111,1377,1379,1534],[86,100,149,166,167,773,1378],[100,149,166,167,773,1377],[86,100,149,166,167,773,1377,1378,1534],[100,149,166,167,773,1376,1379],[86,100,149,166,167,1164],[86,100,149,166,167,1377,1534],[86,100,149,166,167,1477],[86,100,149,166,167,766,1534],[86,100,149,166,167,1168,1377,1534],[86,100,149,166,167,1534],[86,100,149,166,167,1377,1407,1534],[86,100,149,166,167,473,1377,1523],[86,100,149,166,167,473,483,1377,1477,1523,1530,1531],[86,100,149,166,167,473,483,1377,1523,1530,1534,1535],[86,100,149,166,167,785,1377,1534],[86,100,149,166,167,1477,1523],[86,100,149,166,167,1528],[86,100,149,166,167,473,785,1124,1377,1534],[86,100,149,166,167,519,774,1111,1255,1377,1407,1592,1636,1639,1640],[86,100,149,166,167,774,1534],[86,100,149,166,167,473,763,774,1377,1556,1592],[86,100,149,166,167,519,774,1111,1255,1377,1407,1534,1592,1636,1639],[100,149,166,167,1261],[100,149,166,167,777,1393],[100,149,166,167,1168,1393],[100,149,166,167,766,1168,1171,1393],[100,149,166,167,496,762,763],[100,149,166,167,769],[100,149,166,167,772,776,778,781,783,789,792,794,799,1159,1167,1172,1174],[100,149,166,167,774],[100,149,166,167,519],[100,149,166,167,760,761],[100,149,166,167,613,761],[100,149,166,167,787],[100,149,166,167,784,1111,1391],[100,149,166,167,613,768],[100,149,166,167,496,755],[100,149,166,167,762,767,769,779,780,782],[100,149,166,167,779,782],[100,149,166,167,774,779,796],[100,149,166,167,795,797,798],[100,149,166,167,777,1168],[100,149,166,167,1178],[100,149,166,167,1186],[100,149,166,167,774,775,1168],[100,149,166,167,762,766,767,769,774,780,793,796,1111,1112,1115,1116,1119],[100,149,166,167,762,766,767,780,793,796,1111,1112,1115],[100,149,166,167,769,770,774],[100,149,166,167,766,796,1084],[100,149,166,167,796,1084,1085,1118],[100,149,166,167,769,774,796,1111,1114,1116,1117],[100,149,166,167,808],[100,149,166,167,762,774,796,808,1113,1114],[100,149,166,167,766,774],[100,149,166,167,1111],[100,149,166,167,762,766,767,769,773,774,776,780,789,793,796,808,1111,1112,1115,1117,1124,1164,1165],[100,149,166,167,762,766,767,775,777,779,780,782,793,1167,1168,1170],[100,149,166,167,1171],[100,149,166,167,762,785,1123,1124,1138,1147,1148,1152,1154],[100,149,166,167,1123,1124,1125,1155,1156],[100,149,166,167,785],[100,149,166,167,762,768,774,775,800,1124,1216,1217],[100,149,166,167,519,784,785,1111,1123],[100,149,166,167,1199],[100,149,166,167,767,1168],[100,149,166,167,784,790,1111,1160],[100,149,166,167,1160,1161,1173],[100,149,166,167,790],[100,149,166,167,519,790,1124],[100,149,166,167,766,779,1168],[100,149,166,167,1168,1169],[100,149,166,167,1086,1098],[100,149,166,167,1086,1096],[100,149,166,167,1086,1089,1091,1093,1095,1097,1099,1101,1103,1106],[100,149,166,167,1086,1088],[100,149,166,167,784],[100,149,166,167,1086,1104,1105],[100,149,150,166,167,193,195],[100,149,166,167,1086,1100],[100,149,166,167,1086,1090],[100,149,166,167,1086,1102],[100,149,166,167,1086,1087,1089,1091,1093,1095,1097,1099,1101,1103,1106,1107,1108,1109,1110],[100,149,166,167,1086,1094],[100,149,166,167,1086,1092],[100,149,166,167,762,784,1086,1087,1107,1108],[100,149,166,167,784,1088,1090,1092,1094,1096,1098,1100,1102,1104],[100,149,166,167,519,761,801,802,803],[100,149,166,167,801],[100,149,166,167,761,801,804,805,806,807],[100,149,166,167,519,762,801],[100,149,166,167,519,801],[100,149,166,167,613,768,779,782],[100,149,166,167,613,768,771,779,780],[100,149,166,167,613,768,771,777],[100,149,166,167,613,766,768,793],[100,149,166,167,613,766,767,768,770,771],[100,149,166,167,779],[100,149,166,167,766],[100,149,166,167,613,768,771,785,786,788],[100,149,166,167,613,768,771,787,788,790,791],[100,149,166,167,613,768,771,773,774,775],[100,149,166,167,613,768,784,1390],[100,149,166,167,762,777,779,780,1400],[100,149,166,167,762,766,767,769,773,774,775,777,780,781,783,788,793,794,796,799,800,808,1111,1112,1115,1120,1121,1159,1162,1163,1166],[100,149,166,167,785,1111],[100,149,166,167,790,1111,1161],[100,149,166,167,762,785,786,808,1111,1122,1124,1157,1158],[100,149,166,167,762,788,790,791,1111,1161,1162,1173],[100,149,166,167,762,774,775,777,1242],[100,149,154,166,167,768],[100,149,166,167,774,775,1402],[100,149,166,167,1406],[100,149,166,167,519,770,1254],[100,149,166,167,549],[100,149,166,167,761,1418],[100,149,166,167,763,1418],[100,149,166,167,769,779,799,1418],[100,149,166,167,1418],[100,149,166,167,1117,1418],[100,149,166,167,774,1111,1112,1115,1120,1418,1422,1423,1424,1425,1426],[100,149,166,167,775,777,1120,1167,1418,1423],[100,149,166,167,1165,1418],[100,149,166,167,773,774,1111,1112,1164,1166,1418,1422,1423,1424,1425],[100,149,166,167,773,1376,1379,1380,1385,1386,1387,1418],[100,149,166,167,774,796,1084,1085,1418],[100,149,166,167,779,780],[100,149,166,167,777],[100,149,166,167,766,767],[100,149,166,167,766,793],[100,149,166,167,774,775],[100,149,166,167,1125,1418],[100,149,154,163,166,167,169,519,785,786,1111,1159,1216,1418,1443,1444],[100,149,166,167,774,785,786,1111,1112,1115,1120,1124,1159,1418,1422,1423,1424,1425],[100,149,166,167,785,786,1159,1418],[100,149,166,167,766,774,775,800,1147,1218,1418,1448],[100,149,166,167,1156,1418],[100,149,166,167,1123,1418],[100,149,166,167,785,1124,1418],[100,149,166,167,785,1158,1418],[100,149,166,167,766,774,779,1167,1170,1172,1179,1187,1200,1418,1423,1424,1425,1430,1431],[100,149,166,167,790,1161,1418],[100,149,166,167,1173,1418],[100,149,166,167,790,1160,1418],[100,149,166,167,1111,1112,1418,1426],[100,149,166,167,519,774,803,808,1115,1418,1422],[100,149,166,167,808,1397,1418],[100,149,166,167,808,1114,1418],[100,149,166,167,1111,1418],[100,149,166,167,1111,1418,1426],[100,149,166,167,1111,1114,1118,1418,1426],[100,149,166,167,774,1111,1112,1115,1120,1418,1422,1423,1424,1425],[100,149,166,167,801,806,1418],[100,149,166,167,777,779,780,1401,1418],[100,149,166,167,782,799,1120,1167,1418,1423,1424,1425,1430,1431],[100,149,166,167,790,791,1111,1174,1418],[100,149,166,167,774,775,777,1243,1418],[100,149,166,167,1255,1418],[100,149,166,167,171,607]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"bca770403f30bce31cf83557a953d07c0d8e63fb349698f553d51263e18694d3","affectsGlobalScope":true},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"814d5c7384f3ca276e9dc4bcfde5545801a3ea0bfae09916b3336774e662fd1b","impliedFormat":1},{"version":"acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","impliedFormat":1},{"version":"d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","impliedFormat":1},{"version":"643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","impliedFormat":1},{"version":"0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","impliedFormat":1},{"version":"05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","impliedFormat":1},{"version":"631eff75b0e35d1b1b31081d55209abc43e16b49426546ab5a9b40bdd40b1f60","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"78dbea00e90d2df8ea3dbef0cc379d95b8be9b71cd6bde4c28728f306811803b","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e1e46d0a9837ee058c100501080c920fa98081ea3956af0374308ba6f22a33e","impliedFormat":1},{"version":"272ca407e0c9068bdc5152552d876e68037ceae3de62e529306403e973dec8e1","impliedFormat":1},{"version":"fa7834c715d5357e4540cee40ce96c3250ddb67a7b879a6b7fa0e86d6696f121","impliedFormat":1},{"version":"22dfb07a7ab15b66ac043829056fe70124844636ae719551812ac631ba04985b","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"0cb167c371eaa8c869f8a7656a7296f2e4fae43b4d8b803a680236b24794e5f9","impliedFormat":1},{"version":"0a839dba0287cc0481ad4beedd48a1c64acf1e212ae865d1315f7007ca215161","impliedFormat":1},{"version":"38dc4655376cd1a4bd6bb3763d92949233e33d38d3dd3cbea7bbf218175a38ef","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"d61e0a64cd175208ac0b83670151a9a6b5916f0d1ffcdc5c29c90b1cebfc5045","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"48a679952eefe4cb776d5a0e1ccba2d3eb53b57448bbb7abc1fcebcbd5440188","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2d14da6ecb49bf828d83948765ec2d3a579d476bbb9645e749610baa6ec880ca","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"0aef708fb4c7a6b915e8305cbfac40cd207b032dbaabe9a01889a5fff3254681","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"ad9bdafb4e7abf14cc53ce7970486a84c87831e62891e5dfe798ddcd55e84701","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"71d3ae6a5e73ca4130762560425e00984ebaff64d5353a3333d1bb7eb86ef336","impliedFormat":1},{"version":"2beff543f6e9a9701df88daeee3cdd70a34b4a1c11cb4c734472195a5cb2af54","impliedFormat":1},{"version":"2e07abf27aa06353d46f4448c0bbac73431f6065eef7113128a5cd804d0c384d","impliedFormat":1},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1},{"version":"66be1299a7a3129ceb488b340c291cf575bebb0e337f92e169dec38231472e34","impliedFormat":1},{"version":"9894dafe342b976d251aac58e616ac6df8db91fb9d98934ff9dd103e9e82578f","impliedFormat":1},{"version":"413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"829b9e6028b29e6a8b1c01ddb713efe59da04d857089298fa79acbdb3cfcfdef","impliedFormat":1},{"version":"24f8562308dd8ba6013120557fa7b44950b619610b2c6cb8784c79f11e3c4f90","impliedFormat":1},{"version":"5f90b8c733a1bda63e42160b15a2301051e83a6f9d5332a59d16eb12f463270d","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"ad0d1d75d129b1c80f911be438d6b61bfa8703930a8ff2be2f0e1f8a91841c64","impliedFormat":1},{"version":"ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"496bbf339f3838c41f164238543e9fe5f1f10659cb30b68903851618464b98ba","impliedFormat":1},{"version":"5178eb4415a172c287c711dc60a619e110c3fd0b7de01ed0627e51a5336aa09c","impliedFormat":1},{"version":"ca6e5264278b53345bc1ce95f42fb0a8b733a09e3d6479c6ccfca55cdc45038c","impliedFormat":1},{"version":"9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","impliedFormat":1},{"version":"fb1d8e814a3eeb5101ca13515e0548e112bd1ff3fb358ece535b93e94adf5a3a","impliedFormat":1},{"version":"ffa495b17a5ef1d0399586b590bd281056cee6ce3583e34f39926f8dcc6ecdb5","impliedFormat":1},{"version":"98b18458acb46072947aabeeeab1e410f047e0cacc972943059ca5500b0a5e95","impliedFormat":1},{"version":"361e2b13c6765d7f85bb7600b48fde782b90c7c41105b7dab1f6e7871071ba20","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"b6db56e4903e9c32e533b78ac85522de734b3d3a8541bf24d256058d464bf04b","impliedFormat":1},{"version":"24daa0366f837d22c94a5c0bad5bf1fd0f6b29e1fae92dc47c3072c3fdb2fbd5","impliedFormat":1},{"version":"570bb5a00836ffad3e4127f6adf581bfc4535737d8ff763a4d6f4cc877e60d98","impliedFormat":1},{"version":"889c00f3d32091841268f0b994beba4dceaa5df7573be12c2c829d7c5fbc232c","impliedFormat":1},{"version":"65f43099ded6073336e697512d9b80f2d4fec3182b7b2316abf712e84104db00","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"acf5a2ac47b59ca07afa9abbd2b31d001bf7448b041927befae2ea5b1951d9f9","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"d71291eff1e19d8762a908ba947e891af44749f3a2cbc5bd2ec4b72f72ea795f","impliedFormat":1},{"version":"c0480e03db4b816dff2682b347c95f2177699525c54e7e6f6aa8ded890b76be7","impliedFormat":1},{"version":"27ab780875bcbb65e09da7496f2ca36288b0c541abaa75c311450a077d54ec15","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"380647d8f3b7f852cca6d154a376dbf8ac620a2f12b936594504a8a852e71d2f","impliedFormat":1},{"version":"208c9af9429dd3c76f5927b971263174aaa4bc7621ddec63f163640cbd3c473c","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"a23185bc5ef590c287c28a91baf280367b50ae4ea40327366ad01f6f4a8edbc5","impliedFormat":1},{"version":"bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","impliedFormat":1},{"version":"002eae065e6960458bda3cf695e578b0d1e2785523476f8a9170b103c709cd4f","impliedFormat":1},{"version":"c83bb0c9c5645a46c68356c2f73fdc9de339ce77f7f45a954f560c7e0b8d5ebb","impliedFormat":1},{"version":"05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","impliedFormat":1},{"version":"72179f9dd22a86deaad4cc3490eb0fe69ee084d503b686985965654013f1391b","impliedFormat":1},{"version":"2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","impliedFormat":1},{"version":"7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","impliedFormat":1},{"version":"c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","impliedFormat":1},{"version":"dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","impliedFormat":1},{"version":"b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","impliedFormat":1},{"version":"6a148329edecbda07c21098639ef4254ef7869fb25a69f58e5d6a8b7b69d4236","impliedFormat":1},{"version":"8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","impliedFormat":1},{"version":"f63ab283a1c8f5c79fabe7ca4ef85f9633339c4f0e822fce6a767f9d59282af2","impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"a54c996c8870ef1728a2c1fa9b8eaec0bf4a8001cd2583c02dd5869289465b10","impliedFormat":1},{"version":"3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"3754982006a3b32c502cff0867ca83584f7a43b1035989ca73603f400de13c96","impliedFormat":1},{"version":"a30ae9bb8a8fa7b90f24b8a0496702063ae4fe75deb27da731ed4a03b2eb6631","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","impliedFormat":1},{"version":"7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","impliedFormat":1},{"version":"413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08","impliedFormat":1},{"version":"06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a","impliedFormat":1},{"version":"50b5bc34ce6b12eccb76214b51aadfa56572aa6cc79c2b9455cdbb3d6c76af1d","impliedFormat":1},{"version":"b7e16ef7f646a50991119b205794ebfd3a4d8f8e0f314981ebbe991639023d0e","impliedFormat":1},{"version":"b838d4c72740eb0afd284bf7575b74c624b105eff2e8c7b4aeead57e7ac320ff","impliedFormat":1},{"version":"a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5","impliedFormat":1},{"version":"e9dd71cf12123419c60dab867d44fbee5c358169f99529121eaef277f5c83531","impliedFormat":1},{"version":"5b6a189ba3a0befa1f5d9cb028eb9eec2af2089c32f04ff50e2411f63d70f25d","impliedFormat":1},{"version":"d6e73f8010935b7b4c7487b6fb13ea197cc610f0965b759bec03a561ccf8423a","impliedFormat":1},{"version":"174f3864e398f3f33f9a446a4f403d55a892aa55328cf6686135dfaf9e171657","impliedFormat":1},{"version":"824c76aec8d8c7e65769688cbee102238c0ef421ed6686f41b2a7d8e7e78a931","impliedFormat":1},{"version":"75b868be3463d5a8cfc0d9396f0a3d973b8c297401d00bfb008a42ab16643f13","impliedFormat":1},{"version":"15a234e5031b19c48a69ccc1607522d6e4b50f57d308ecb7fe863d44cd9f9eb3","impliedFormat":1},{"version":"d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","impliedFormat":1},{"version":"6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","impliedFormat":1},{"version":"0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"4fbd3116e00ed3a6410499924b6403cc9367fdca303e34838129b328058ede40","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","impliedFormat":1},{"version":"6dcf60530c25194a9ee0962230e874ff29d34c59605d8e069a49928759a17e0a","impliedFormat":1},{"version":"7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","impliedFormat":1},{"version":"1a42d2ec31a1fe62fdc51591768695ed4a2dc64c01be113e7ff22890bebb5e3f","impliedFormat":1},{"version":"1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027","impliedFormat":1},{"version":"0c7c947ff881c4274c0800deaa0086971e0bfe51f89a33bd3048eaa3792d4876","affectsGlobalScope":true,"impliedFormat":1},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"15b36126e0089bfef173ab61329e8286ce74af5e809d8a72edcafd0cc049057f","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","impliedFormat":1},{"version":"ad10d4f0517599cdeca7755b930f148804e3e0e5b5a3847adce0f1f71bbccd74","impliedFormat":1},{"version":"1042064ece5bb47d6aba91648fbe0635c17c600ebdf567588b4ca715602f0a9d","impliedFormat":1},{"version":"c49469a5349b3cc1965710b5b0f98ed6c028686aa8450bcb3796728873eb923e","impliedFormat":1},{"version":"4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","impliedFormat":1},{"version":"7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","impliedFormat":1},{"version":"72d63643a657c02d3e51cd99a08b47c9b020a565c55f246907050d3c8a5e77fb","impliedFormat":1},{"version":"1d415445ea58f8033ba199703e55ff7483c52ac6742075b803bd3e7bbe9f5d61","impliedFormat":1},{"version":"d6406c629bb3efc31aedb2de809bef471e475c86c7e67f3ef9b676b5d7e0d6b2","impliedFormat":1},{"version":"27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","impliedFormat":1},{"version":"71d8ba39a9e024d9e4bb922464d18542ed8d2c25ee78efa7890c27213cc6e5d3","impliedFormat":1},{"version":"8c030e515014c10a2b98f9f48408e3ba18023dfd3f56e3312c6c2f3ae1f55a16","impliedFormat":1},{"version":"dafc31e9e8751f437122eb8582b93d477e002839864410ff782504a12f2a550c","impliedFormat":1},{"version":"754498c5208ce3c5134f6eabd49b25cf5e1a042373515718953581636491f3c3","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"f56bdc6884648806d34bc66d31cdb787c4718d04105ce2cd88535db214631f82","impliedFormat":1},{"version":"633d58a237f4bb25ec7d565e4ffa32cecdcee8660ac12189c4351c52557cee9e","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","impliedFormat":1},{"version":"ce791f6ea807560f08065d1af6014581eeb54a05abd73294777a281b6dfd73c2","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"49f95e989b4632c6c2a578cc0078ee19a5831832d79cc59abecf5160ea71abad","impliedFormat":1},{"version":"9666533332f26e8995e4d6fe472bdeec9f15d405693723e6497bf94120c566c8","impliedFormat":1},{"version":"ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","impliedFormat":1},{"version":"796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","impliedFormat":1},{"version":"5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","impliedFormat":1},{"version":"e17cd049a1448de4944800399daa4a64c5db8657cc9be7ef46be66e2a2cd0e7c","impliedFormat":1},{"version":"43fa6ea8714e18adc312b30450b13562949ba2f205a1972a459180fa54471018","impliedFormat":1},{"version":"6e89c2c177347d90916bad67714d0fb473f7e37fb3ce912f4ed521fe2892cd0d","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"4d4927cbee21750904af7acf940c5e3c491b4d5ebc676530211e389dd375607a","impliedFormat":1},{"version":"72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","impliedFormat":1},{"version":"8a97e578a9bc40eb4f1b0ca78f476f2e9154ecbbfd5567ee72943bab37fc156a","impliedFormat":1},{"version":"c857e0aae3f5f444abd791ec81206020fbcc1223e187316677e026d1c1d6fe08","impliedFormat":1},{"version":"ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","impliedFormat":1},{"version":"2d7db1d73456e8c5075387d4240c29a2a900847f9c1bff106a2e490da8fbd457","impliedFormat":1},{"version":"2b15c805f48e4e970f8ec0b1915f22d13ca6212375e8987663e2ef5f0205e832","impliedFormat":1},{"version":"f22d05663d873ee7a600faf78abb67f3f719d32266803440cf11d5db7ac0cab2","impliedFormat":1},{"version":"d93c544ad20197b3976b0716c6d5cd5994e71165985d31dcab6e1f77feb4b8f2","impliedFormat":1},{"version":"35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","impliedFormat":1},{"version":"a8b1c79a833ee148251e88a2553d02ce1641d71d2921cce28e79678f3d8b96aa","impliedFormat":1},{"version":"126d4f950d2bba0bd45b3a86c76554d4126c16339e257e6d2fabf8b6bf1ce00c","impliedFormat":1},{"version":"7e0b7f91c5ab6e33f511efc640d36e6f933510b11be24f98836a20a2dc914c2d","impliedFormat":1},{"version":"045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"2d3cc2211f352f46ea6b7cf2c751c141ffcdf514d6e7ae7ee20b7b6742da313f","impliedFormat":1},{"version":"c75445151ff8b77d9923191efed7203985b1a9e09eccf4b054e7be864e27923d","impliedFormat":1},{"version":"0aedb02516baf3e66b2c1db9fef50666d6ed257edac0f866ea32f1aa05aa474f","impliedFormat":1},{"version":"fa8a8fbf91ee2a4779496225f0312aac6635b0f21aa09cdafa4283fe32d519c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"0e8aef93d79b000deb6ec336b5645c87de167168e184e84521886f9ecc69a4b5","impliedFormat":1},{"version":"c30436b130b6218b7714314dc41d3f459590db4bdf099eecd51cb1bda32109a8","impliedFormat":1},{"version":"20fa37b636fdcc1746ea0738f733d0aed17890d1cd7cb1b2f37010222c23f13e","impliedFormat":1},{"version":"d90b9f1520366d713a73bd30c5a9eb0040d0fb6076aff370796bc776fd705943","impliedFormat":1},{"version":"bc03c3c352f689e38c0ddd50c39b1e65d59273991bfc8858a9e3c0ebb79c023b","impliedFormat":1},{"version":"19df3488557c2fc9b4d8f0bac0fd20fb59aa19dec67c81f93813951a81a867f8","affectsGlobalScope":true,"impliedFormat":1},{"version":"b25350193e103ae90423c5418ddb0ad1168dc9c393c9295ef34980b990030617","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef86adb77316505c6b471da1d9b8c9e428867c2566270e8894d4d773a1c4dc2","impliedFormat":1},{"version":"de7052bfee2981443498239a90c04ea5cc07065d5b9bb61b12cb6c84313ad4ef","impliedFormat":1},{"version":"a3e7d932dc9c09daa99141a8e4800fc6c58c625af0d4bbb017773dc36da75426","impliedFormat":1},{"version":"43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","impliedFormat":1},{"version":"4a2edd238d9104eac35b60d727f1123de5062f452b70ed8e0366cb36387dfdfd","impliedFormat":1},{"version":"ca921bf56756cb6fe957f6af693a35251b134fb932dc13f3dfff0bb7106f80b4","impliedFormat":1},{"version":"fee92c97f1aa59eb7098a0cc34ff4df7e6b11bae71526aca84359a2575f313d8","impliedFormat":1},{"version":"0bd0297484aacea217d0b76e55452862da3c5d9e33b24430e0719d1161657225","impliedFormat":1},{"version":"2ab6d334bcbf2aff3acfc4fd8c73ecd82b981d3c3aa47b3f3b89281772286904","impliedFormat":1},{"version":"d07cbc787a997d83f7bde3877fec5fb5b12ce8c1b7047eb792996ed9726b4dde","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"4805f6161c2c8cefb8d3b8bd96a080c0fe8dbc9315f6ad2e53238f9a79e528a6","impliedFormat":1},{"version":"b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","impliedFormat":1},{"version":"f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","impliedFormat":1},{"version":"49179c6a23701c642bd99abe30d996919748014848b738d8e85181fc159685ff","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"45490817629431853543adcb91c0673c25af52a456479588b6486daba34f68bb","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","impliedFormat":1},{"version":"8514c62ce38e58457d967e9e73f128eedc1378115f712b9eef7127f7c88f82ae","impliedFormat":1},{"version":"f1289e05358c546a5b664fbb35a27738954ec2cc6eb4137350353099d154fc62","impliedFormat":1},{"version":"4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","impliedFormat":1},{"version":"1d17ba45cfbe77a9c7e0df92f7d95f3eefd49ee23d1104d0548b215be56945ad","impliedFormat":1},{"version":"f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","impliedFormat":1},{"version":"1d879125d1ec570bf04bc1f362fdbe0cb538315c7ac4bcfcdf0c1e9670846aa6","impliedFormat":1},{"version":"a84d677a6172185d541b1b00ea8e4e04217b64351098f9e5c07403fdec305683","impliedFormat":1},{"version":"46273e8c29816125d0d0b56ce9a849cc77f60f9a5ba627447501d214466f0ff3","impliedFormat":1},{"version":"d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","impliedFormat":1},{"version":"e91f7b1344577a02f051b9b471f33044fef8334a76dc9e1de003d17595a5219b","impliedFormat":1},{"version":"3af3584f79c57853028ef9421ec172539e1fe01853296dc05a9d615ade4ffaf6","impliedFormat":1},{"version":"f82579d87701d639ff4e3930a9b24f4ee13ca74221a9a3a792feb47f01881a9c","impliedFormat":1},{"version":"d7e5d5245a8ba34a274717d085174b2c9827722778129b0081fefd341cca8f55","impliedFormat":1},{"version":"d9d32f94056181c31f553b32ce41d0ef75004912e27450738d57efcd2409c324","impliedFormat":1},{"version":"752513f35f6cff294ffe02d6027c41373adf7bfa35e593dbfd53d95c203635ee","impliedFormat":1},{"version":"6c800b281b9e89e69165fd11536195488de3ff53004e55905e6c0059a2d8591e","impliedFormat":1},{"version":"7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","impliedFormat":1},{"version":"1a7e2ea171726446850ec72f4d1525d547ff7e86724cc9e7eec509725752a758","impliedFormat":1},{"version":"8c901126d73f09ecdea4785e9a187d1ac4e793e07da308009db04a7283ec2f37","impliedFormat":1},{"version":"c1de754ab5f3b0f4036d6893c74a0fc984c7fcb07936086f19bbe2974406775b","impliedFormat":1},{"version":"aab290b8e4b7c399f2c09b957666fc95335eb4522b2dd9ead1bf0cb64da6d6ee","impliedFormat":1},{"version":"94fe3281392e1015b22f39535878610b4fa6f1388dc8d78746be3bc4e4bb8950","impliedFormat":1},{"version":"2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","impliedFormat":1},{"version":"06c25ddfc2242bd06c19f66c9eae4c46d937349a267810f89783680a1d7b5259","impliedFormat":1},{"version":"120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","impliedFormat":1},{"version":"5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"bd4131091b773973ca5d2326c60b789ab1f5e02d8843b3587effe6e1ea7c9d86","impliedFormat":1},{"version":"c7f6485931085bf010fbaf46880a9b9ec1a285ad9dc8c695a9e936f5a48f34b4","impliedFormat":1},{"version":"14f6b927888a1112d662877a5966b05ac1bf7ed25d6c84386db4c23c95a5363b","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"0427df5c06fafc5fe126d14b9becd24160a288deff40e838bfbd92a35f8d0d00","impliedFormat":1},{"version":"90c54a02432d04e4246c87736e53a6a83084357acfeeba7a489c5422b22f5c7a","impliedFormat":1},{"version":"49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","impliedFormat":1},{"version":"bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","impliedFormat":1},{"version":"92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","impliedFormat":1},{"version":"f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","impliedFormat":1},{"version":"83fe880c090afe485a5c02262c0b7cdd76a299a50c48d9bde02be8e908fb4ae6","impliedFormat":1},{"version":"0a372c2d12a259da78e21b25974d2878502f14d89c6d16b97bd9c5017ab1bc12","impliedFormat":1},{"version":"57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","impliedFormat":1},{"version":"6511e4503cf74c469c60aafd6589e4d14d5eb0a25f9bf043dcbecdf65f261972","impliedFormat":1},{"version":"ec1ca97598eda26b7a5e6c8053623acbd88e43be7c4d29c77ccd57abc4c43999","impliedFormat":1},{"version":"efc0e6a64feef102d5edef7525de0c2ac5961821f12ae5038f0d3a8631457e10","impliedFormat":1},{"version":"a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","impliedFormat":1},{"version":"771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","impliedFormat":1},{"version":"232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","impliedFormat":1},{"version":"a47e6d954d22dd9ebb802e7e431b560ed7c581e79fb885e44dc92ed4f60d4c07","impliedFormat":1},{"version":"f019e57d2491c159d47a107fd90219a1734bdd2e25cd8d1db3c8fae5c6b414c4","impliedFormat":1},{"version":"8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","impliedFormat":1},{"version":"d1c9bf292a54312888a77bb19dba5e2503ad803f5393beafd45d78d2f4fe9b48","impliedFormat":1},{"version":"9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","impliedFormat":1},{"version":"d9c46395b3980848a6c4b2f44e986d27d07faee3b3b4b1f214793255b8c64f2a","impliedFormat":1},{"version":"35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","impliedFormat":1},{"version":"1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2","impliedFormat":1},{"version":"3be035da7bee86b4c3abf392e0edaa44fc6e45092995eefe36b39118c8a84068","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f828825d077c2fa0ea606649faeb122749273a353daab23924fe674e98ba44c","impliedFormat":1},{"version":"2896c2e673a5d3bd9b4246811f79486a073cbb03950c3d252fba10003c57411a","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"407a06ba04eede4074eec470ecba2784cbb3bf4e7de56833b097dd90a2aa0651","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","impliedFormat":1},{"version":"5c96bad5f78466785cdad664c056e9e2802d5482ca5f862ed19ba34ffbb7b3a4","impliedFormat":1},{"version":"81d8603ac527e75cfec72bb9391228b58f161c2b33514a9d814c7f3ebd3ef466","impliedFormat":1},{"version":"5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","impliedFormat":1},{"version":"bb0cd7862b72f5eba39909c9889d566e198fcaddf7207c16737d0c2246112678","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","impliedFormat":1},{"version":"a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","impliedFormat":1},{"version":"bad68fd0401eb90fe7da408565c8aee9c7a7021c2577aec92fa1382e8876071a","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"fec01479923e169fb52bd4f668dbeef1d7a7ea6e6d491e15617b46f2cacfa37d","impliedFormat":1},{"version":"8a8fb3097ba52f0ae6530ec6ab34e43e316506eb1d9aa29420a4b1e92a81442d","impliedFormat":1},{"version":"44e09c831fefb6fe59b8e65ad8f68a7ecc0e708d152cfcbe7ba6d6080c31c61e","impliedFormat":1},{"version":"1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","impliedFormat":1},{"version":"4655709c9cb3fd6db2b866cab7c418c40ed9533ce8ea4b66b5f17ec2feea46a9","impliedFormat":1},{"version":"87affad8e2243635d3a191fa72ef896842748d812e973b7510a55c6200b3c2a4","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"3eecb25bb467a948c04874d70452b14ae7edb707660aac17dc053e42f2088b00","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"330896c1a2b9693edd617be24fbf9e5895d6e18c7955d6c08f028f272b37314d","impliedFormat":1},{"version":"1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","impliedFormat":1},{"version":"84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","impliedFormat":1},{"version":"1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","impliedFormat":1},{"version":"30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","impliedFormat":1},{"version":"03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","impliedFormat":1},{"version":"5f0292a40df210ab94b9fb44c8b775c51e96777e14e073900e392b295ca1061b","impliedFormat":1},{"version":"bc9ee0192f056b3d5527bcd78dc3f9e527a9ba2bdc0a2c296fbc9027147df4b2","impliedFormat":1},{"version":"8627ad129bcf56e82adff0ab5951627c993937aa99f5949c33240d690088b803","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"a68d4b3182e8d776cdede7ac9630c209a7bfbb59191f99a52479151816ef9f9e","impliedFormat":99},{"version":"39644b343e4e3d748344af8182111e3bbc594930fff0170256567e13bbdbebb0","impliedFormat":99},{"version":"ed7fd5160b47b0de3b1571c5c5578e8e7e3314e33ae0b8ea85a895774ee64749","impliedFormat":99},{"version":"63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","impliedFormat":1},{"version":"ecbaf0da125974be39c0aac869e403f72f033a4e7fd0d8cd821a8349b4159628","impliedFormat":1},{"version":"4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6","impliedFormat":1},{"version":"ceec3c81b2d81f5e3b855d9367c1d4c664ab5046dff8fd56552df015b7ccbe8f","affectsGlobalScope":true,"impliedFormat":1},{"version":"8fac4a15690b27612d8474fb2fc7cc00388df52d169791b78d1a3645d60b4c8b","affectsGlobalScope":true,"impliedFormat":1},{"version":"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","impliedFormat":1},{"version":"3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","impliedFormat":1},{"version":"1d63055b690a582006435ddd3aa9c03aac16a696fac77ce2ed808f3e5a06efab","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},"f4e8976c19fc926644d72610bf1058bd6bf52add97e46a02bc0b912a751625c0",{"version":"9038e6827786c88c15238a40b3588505065ac452c15b91fca90586951f9b6a0a","signature":"435a1e418e8338be3f39614b96b81a9aa2700bc8c27bc6b98f064ff9ce17c363"},{"version":"b836eed98b79fabb54f1df73252a0ce178b8df4a89794251ade2fa0c5e52b678","impliedFormat":1},{"version":"c9b9179b7291c8562eb0fb781219ddbdcf36149ebd7bd355e5b4a553d6b60b81","impliedFormat":1},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"08b2fae7b0f553ad9f79faec864b179fc58bc172e295a70943e8585dd85f600c","impliedFormat":1},{"version":"f12edf1672a94c578eca32216839604f1e1c16b40a1896198deabf99c882b340","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"4fdb529707247a1a917a4626bfb6a293d52cd8ee57ccf03830ec91d39d606d6d","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"5780b706cece027f0d4444fbb4e1af62dc51e19da7c3d3719f67b22b033859b9","impliedFormat":1},{"version":"6c688250f2b7061cec3a17ab8797671137b653f8c4e81a6df3190cb112a7579a","impliedFormat":1},{"version":"7a8ec10b0834eb7183e4bfcd929838ac77583828e343211bb73676d1e47f6f01","impliedFormat":1},{"version":"138c4489023da880e7219a31b8049ef9cba13d90c5d7cf9538148001d7066f50","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f00324f263189b385c3a9383b1f4dae6237697bcf0801f96aa35c340512d79c","impliedFormat":1},{"version":"ec8997c2e5cea26befc76e7bf990750e96babb16977673a9ff3b5c0575d01e48","impliedFormat":1},{"version":"7c9f0241bcd07c3e7245ca9553142a0bd60837bfb0e56fbe8c3347ff45299660","signature":"50f8a125795ffacae7f3107820dc660812d53c75c1d9c3ac82fd3d4ee1073958"},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"52dcc257df5119fb66d864625112ce5033ac51a4c2afe376a0b299d2f7f76e4a","impliedFormat":1},{"version":"e5bab5f871ef708d52d47b3e5d0aa72a08ee7a152f33931d9a60809711a2a9a3","impliedFormat":1},{"version":"e16dc2a81595736024a206c7d5c8a39bfe2e6039208ef29981d0d95434ba8fcf","impliedFormat":1},{"version":"cc4a4903fb698ca1d961d4c10dce658aa3a479faf40509d526f122b044eaf6a4","impliedFormat":1},{"version":"19ee8416e6473ed6c7adb868fa796b5653cf0fa2a337658e677eaa0d134388c3","impliedFormat":1},{"version":"1328ab4e442614b28cdb3d4b414cf68325c0da0dca07287a338d0654b7a00261","impliedFormat":1},{"version":"a039dc21f045919f3cbee2ec13812cc6cc3eebc99dae4be00973230f468d19a6","impliedFormat":1},{"version":"3fbe57af01460e49dcd29df55d6931e1672bc6f1be0fb073d11410bc16f9037d","impliedFormat":1},{"version":"f760be449e8562ec5c09bb5187e8e1eabf3c113c0c58cddda53ef8c69f3e2131","impliedFormat":1},{"version":"44325ed13294fce6ab825b82947bbeed2611db7dad9d9135260192f375e5a189","impliedFormat":1},{"version":"e392e8fb5b514eafc585601c1d781485aa6dd6a320e75daf1064a4c6918a1b45","impliedFormat":1},{"version":"46e4a36e8ddbdfb4e7330e11c81c970dc8b218611df9183d39c41c5f8c653b55","impliedFormat":1},{"version":"3cc8a3d123b6b232d48d34b51b785f9da8d193f5b5817fa521fcd2f3b9315c55","impliedFormat":1},{"version":"6332f565867cf4a740a70e30f31cefba37ef7cebcf74f22eab8d744fde6d193e","impliedFormat":1},{"version":"2977b7884aedc895a1d0c9c210c7cf3272c29d6959a08a6fa3ff71e0aff08175","impliedFormat":1},{"version":"17f2922d41ddd032830a91371c948cd9ce903b35c95adca72271a54584f19b0b","impliedFormat":1},{"version":"3eed76ede2a1a14d7c9bb0a642041282dcc264811139d3dd275c9fe14efc9840","impliedFormat":1},{"version":"354a7f8e1287d9d6b7561bc97fdd8cbc2f7c1dd79e4cb37b942e8a5cfaff1085","impliedFormat":1},{"version":"8d369483f0c2b9ee388129cfdb6a43bc8112b377e86a41884bd06e19ce04f4c1","impliedFormat":99},{"version":"b558c9a18ea4e6e4157124465c3ef1063e64640da139e67be5edb22f534f2f08","impliedFormat":1},{"version":"01374379f82be05d25c08d2f30779fa4a4c41895a18b93b33f14aeef51768692","impliedFormat":1},{"version":"b0dee183d4e65cf938242efaf3d833c6b645afb35039d058496965014f158141","impliedFormat":1},{"version":"c0bbbf84d3fbd85dd60d040c81e8964cc00e38124a52e9c5dcdedf45fea3f213","impliedFormat":1},{"version":"90ec707b441d1c39fd881c777febe5605c8b8aa6762342d2e1d80094a2b91134","signature":"f65ce75c9085571e6321abf2bf9833709f4897e381f89e9925521833dbb7ab16"},{"version":"04471dc55f802c29791cc75edda8c4dd2a121f71c2401059da61eff83099e8ab","impliedFormat":99},{"version":"5c54a34e3d91727f7ae840bfe4d5d1c9a2f93c54cb7b6063d06ee4a6c3322656","impliedFormat":99},{"version":"db4da53b03596668cf6cc9484834e5de3833b9e7e64620cf08399fe069cd398d","impliedFormat":99},{"version":"ac7c28f153820c10850457994db1462d8c8e462f253b828ad942a979f726f2f9","impliedFormat":99},{"version":"f9b028d3c3891dd817e24d53102132b8f696269309605e6ed4f0db2c113bbd82","impliedFormat":99},{"version":"fb7c8d90e52e2884509166f96f3d591020c7b7977ab473b746954b0c8d100960","impliedFormat":99},{"version":"0bff51d6ed0c9093f6955b9d8258ce152ddb273359d50a897d8baabcb34de2c4","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"13918e2b81c4288695f9b1f3dcc2468caf0f848d5c1f3dc00071c619d34ff63a","impliedFormat":99},{"version":"120a80aa556732f684db3ed61aeff1d6671e1655bd6cba0aa88b22b88ac9a6b1","affectsGlobalScope":true,"impliedFormat":99},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"10073cdcf56982064c5337787cc59b79586131e1b28c106ede5bff362f912b70","impliedFormat":99},{"version":"72950913f4900b680f44d8cab6dd1ea0311698fc1eefb014eb9cdfc37ac4a734","impliedFormat":1},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"21944c138a48dc23382cb6558b1d4498908faad2104ba7ff390ba8b27c06f3c0","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"ff0a83c9a0489a627e264ffcb63f2264b935b20a502afa3a018848139e3d8575","impliedFormat":99},{"version":"161c8e0690c46021506e32fda85956d785b70f309ae97011fd27374c065cac9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f582b0fcbf1eea9b318ab92fb89ea9ab2ebb84f9b60af89328a91155e1afce72","impliedFormat":1},{"version":"960bd764c62ac43edc24eaa2af958a4b4f1fa5d27df5237e176d0143b36a39c6","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ec16d7a4e366c06a4573d299e15fe6207fc080f41beac5da06f4af33ea9761e","impliedFormat":1},{"version":"59f8dc89b9e724a6a667f52cdf4b90b6816ae6c9842ce176d38fcc973669009e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e4af494f7a14b226bbe732e9c130d8811f8c7025911d7c58dd97121a85519715","impliedFormat":1},{"version":"cbb1c5ba5dbabe42c19ca31b83e48fec95895484fe1d1a8fb649b69ea224c5b8","impliedFormat":99},{"version":"45cec9a1ba6549060552eead8959d47226048e0b71c7d0702ae58b7e16a28912","impliedFormat":99},{"version":"6907b09850f86610e7a528348c15484c1e1c09a18a9c1e98861399dfe4b18b46","impliedFormat":99},{"version":"12deea8eaa7a4fc1a2908e67da99831e5c5a6b46ad4f4f948fd4759314ea2b80","impliedFormat":99},{"version":"f0a8b376568a18f9a4976ecb0855187672b16b96c4df1c183a7e52dc1b5d98e8","impliedFormat":99},{"version":"8124828a11be7db984fcdab052fd4ff756b18edcfa8d71118b55388176210923","impliedFormat":99},{"version":"092944a8c05f9b96579161e88c6f211d5304a76bd2c47f8d4c30053269146bc8","impliedFormat":99},{"version":"b34b5f6b506abb206b1ea73c6a332b9ee9c8c98be0f6d17cdbda9430ecc1efab","impliedFormat":99},{"version":"75d4c746c3d16af0df61e7b0afe9606475a23335d9f34fcc525d388c21e9058b","impliedFormat":99},{"version":"fa959bf357232201c32566f45d97e70538c75a093c940af594865d12f31d4912","impliedFormat":99},{"version":"d2c52abd76259fc39a30dfae70a2e5ce77fd23144457a7ff1b64b03de6e3aec7","impliedFormat":99},{"version":"e6233e1c976265e85aa8ad76c3881febe6264cb06ae3136f0257e1eab4a6cc5a","impliedFormat":99},{"version":"f73e2335e568014e279927321770da6fe26facd4ac96cdc22a56687f1ecbb58e","impliedFormat":99},{"version":"317878f156f976d487e21fd1d58ad0461ee0a09185d5b0a43eedf2a56eb7e4ea","impliedFormat":99},{"version":"324ac98294dab54fbd580c7d0e707d94506d7b2c3d5efe981a8495f02cf9ad96","impliedFormat":99},{"version":"9ec72eb493ff209b470467e24264116b6a8616484bca438091433a545dfba17e","impliedFormat":99},{"version":"d6ee22aba183d5fc0c7b8617f77ee82ecadc2c14359cc51271c135e23f6ed51f","impliedFormat":99},{"version":"49747416f08b3ba50500a215e7a55d75268b84e31e896a40313c8053e8dec908","impliedFormat":99},{"version":"5e91172586d1be7d1508d1a40c8bf76161f6f4179d1c25158a20599f9fb26a66","impliedFormat":99},{"version":"09d215b379a93f8cbb6caf9e9f5d7b4d48042295ee697e7e4771288c7917a21e","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"891694d3694abd66f0b8872997b85fd8e52bc51632ce0f8128c96962b443189f","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"971a2c327ff166c770c5fb35699575ba2d13bba1f6d2757309c9be4b30036c8e","impliedFormat":99},{"version":"4f45e8effab83434a78d17123b01124259fbd1e335732135c213955d85222234","impliedFormat":99},{"version":"7bd51996fb7717941cbe094b05adc0d80b9503b350a77b789bbb0fc786f28053","impliedFormat":99},{"version":"b62006bbc815fe8190c7aee262aad6bff993e3f9ade70d7057dfceab6de79d2f","impliedFormat":99},{"version":"ab80d2cb170a92c61ca8c822d0db0fc50eb15c7c6cf1a24cb01852a5a15a7db8","impliedFormat":99},{"version":"210955af8573671abebb6e1391d134d82fbcff130aa68922ea1e839f8f48a0ad","impliedFormat":99},{"version":"78a8f2e95e2904914c509e4bbc68e626f8b8ff8f30ca96cffc7a795fa17394f5","impliedFormat":99},{"version":"7bbff6783e96c691a41a7cf12dd5486b8166a01b0c57d071dbcfca55c9525ec4","impliedFormat":99},{"version":"103ba9206e97376ad4f33958a958d3a0b5077693dfde0726d4165f972f6be81f","signature":"4b96dd19fd2949d28ce80e913412b0026dc421e5bf6c31d87c7b5eb11b5753b4"},{"version":"3f10d86fa35dc1bdd6c175796ce32d10582c8631720bd2b35a2e9bea469c2e46","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b845876de475c230a1e012150db8d2c2a62bd6835a93e8cd23ebb10f7de16266","impliedFormat":1},{"version":"80f4253371e4c5e1eb5748a840eb8230df4a489ad48c3a1eeaa378cb93d7321f","impliedFormat":1},{"version":"d5eb5865d4cbaa9985cc3cfb920b230cdcf3363f1e70903a08dc4baab80b0ce1","impliedFormat":1},{"version":"51ebca098538b252953b1ef83c165f25b52271bfb6049cd09d197dddd4cd43c5","impliedFormat":1},{"version":"2d7512d02df5c4b812ea26df0d0dabbd383bfeae60329d157980f4caeece9994","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"0fa032c49c379638a421a644e2b61cb7afe4b6529ab5286c9bb89ee42076d082","affectsGlobalScope":true,"impliedFormat":99},{"version":"6c1fd5670f478f14bb64e39d1fe7ff8b839ade4c17b57860e40d86a8db89e46a","impliedFormat":99},{"version":"39ed3803e85a0dbc7c137941ead828442abf3dc1f15729a1da7f2dfe796905fc","impliedFormat":99},{"version":"55f6bb58b00ae271978f1d7c52369a494b1c23e4fca2d9d7d824993576bdd1d2","affectsGlobalScope":true,"impliedFormat":99},{"version":"bc270b8f9fa72b1ad53281c341cf711a73e79aef4979f4239fdb01a627c621ac","impliedFormat":99},{"version":"0dfbd656b9d9847a1ac4cf7f79799143ecc651d4d252b4c1dc7b66aaefe54b9e","impliedFormat":1},{"version":"6f391d078fcdabc15961cc2392529c5db18ab975b813816a3fcd8aab188c947a","impliedFormat":99},{"version":"9083cacdf0641985b6aae9433bfc867468ecd0a074b16ffef87fed996ba11e99","impliedFormat":1},{"version":"374a7b19f96f25711b0ba6e83ffa2413c53e841b5951c95878e5e20f8b6ab400","impliedFormat":1},{"version":"8a956d7f0c9ac568b925c6925e450e27d9f3ff0cc58ac38f788679775bdbcae7","impliedFormat":1},{"version":"42e6317f5ad893e4eeac3051f6f47db20da9731b11f54e9334f29d90ec586a50","impliedFormat":1},{"version":"54a4a54cf4d5e4667c477f8404acd7c7de7539a48df6a5d0f9bf68820fb7dc33","impliedFormat":1},{"version":"4cbedb71f1e9805dffc519f94d6b8a624ae1a98eb108763ffa087e9e03fbebbc","impliedFormat":1},{"version":"f8c4b11bcb34a70612158710019a472c16f64af9bc5a2837aaf5ceb6954efcf0","impliedFormat":1},{"version":"050a98220a1683ed1992d76a8bcd4fce45b26460062a39db4079aaee79eb68d4","impliedFormat":1},{"version":"05ed13a7804a78927052dc0425f1a8fbf76775777274360f5360ebabfe0a1c0f","impliedFormat":1},{"version":"0ae4f263042d5f475bb3936045cda82f16705674a7f2d1a0a1159563544669bf","impliedFormat":1},{"version":"5218bc2b336986cdab39422240fd1d289182beeae9fa77cf704c6618f8a2cf3c","impliedFormat":1},{"version":"50fde69fb9248da80cdc1cea71e51b67d7688774d0df8388f29eaf7d0c1d379f","impliedFormat":1},{"version":"208be66e16cd901c2668fa3d7dc3be8622a7d0e41a030d22baa776d9fc686cf7","impliedFormat":1},{"version":"ae895b39b72787142df4b50d05fc8a0093b393f5ca1aa76d7a5fc2c0070b1c18","impliedFormat":1},{"version":"632f0ecedadb71d39fe7f30daf3588a34cb5cf08904d4f12299430855729b1dc","impliedFormat":1},{"version":"217c27af92822dba4d609486513d454f49e04e732c76a047fbbe2b2bf7f7784c","impliedFormat":1},{"version":"ed4eb88577187de083a8320c62e75ac487fb3f7ee48a93d5e86f13b41b70e3cd","impliedFormat":1},{"version":"ae7bf73219c02fb6d96a257ad558e7067bd9a9433b60e1e67bb7747c38b7c615","impliedFormat":1},{"version":"5c2598476e6162e54e8abe50d0a1b568372ac4bec620c99ba59e3ecf943a1c27","impliedFormat":1},{"version":"b60a5d79acb5044b2f61e7401808f30aff2ca6e92a49b744eabf5c462bfa3808","impliedFormat":1},{"version":"d6a27d59638f0efaabcf9a7038239fb0df8cccd142707b4c00ccaaf9220fdcae","impliedFormat":1},{"version":"4329ead0508c32010f99f517f1185a85989705047ad93fa8a4781024f4dc1216","impliedFormat":1},{"version":"669123db215436dc10ca38e9e5d4a0d57fc4dd76ee5bb58ed245e2b71dcb1597","impliedFormat":1},{"version":"a99e38b50dbc7c641727932d5764f464895435aa30995b053c6089b2075d8e9e","impliedFormat":1},{"version":"a3d19379db8ea52630a6c50a6bda3719d766935e75c63f07e705d420bf8fecd9","impliedFormat":1},{"version":"445c74538a6064587b21cbaf5dffe48b0edb7f6243e32c31a1c311f423551617","impliedFormat":1},{"version":"94fd8366c099da6849dc8ec0e14789462d1e58e193f55588601239c98cabcd4e","impliedFormat":1},{"version":"711383139752a21ee124b1c8ece5aac443bf2fdd479c93f5caef5fd883d4b1f7","impliedFormat":1},{"version":"2add0a929197f7eaf80b02c15ded27f2052abf5d1b49dfa1e38f1fe0f770bdd8","impliedFormat":1},{"version":"239676e1a3bcde66d9e730f40441fc8501ee9ce54dbaa2b4c2943f79dd7348b6","impliedFormat":1},{"version":"3932b32a6561e9fbb135ea39ffc4b7c4de7cec8416161d465c2a8dcdabc955c0","impliedFormat":1},{"version":"293554f4dc6577acb1b93bc62922f9346e1eebc6fbe6b389757cd30437e94311","impliedFormat":1},{"version":"5a11fa0c64c7ce20a9038b1e4426c5cb18d5e905aba507c4ed462929cf71b1ef","impliedFormat":1},{"version":"aac76917395c306b07d90970211bc15f67aec46a3d6b6cb28cf00c733cb397ef","impliedFormat":1},{"version":"5aa7436c81fe9835bba85f35c3852383c622a13f63a8054937d8f1dbd7bf2969","impliedFormat":1},{"version":"09a301505d50211c9a3a9a253c9417532219b2f6a396cd05bebb13749cfb01a0","impliedFormat":1},{"version":"34600044cc0a34735045ca501ab2d5a7c52a769f364ac4eaecda5a9c2e456ba8","impliedFormat":1},{"version":"41234d9ef4f1bef00b34810c96b5b979536da520669053d4b6e899d6ea9b70e3","impliedFormat":1},{"version":"87ef0ae1085b46f69c4e2815579546012fa42f41428b9db0419377c55583e246","impliedFormat":1},{"version":"b9425db28792a72798372a68d255716d33b1acfeb837e1d49c95146f9e974887","impliedFormat":1},{"version":"cf2a1e2c7a5edb84406d130eabe488b09255ccb0ea5ce2dad8d12b5c8e2b5a01","impliedFormat":1},{"version":"719c7d5f6344819c4c28b99cf34c4ba245ea5aa79521e8bbfb1db44a788c6d03","impliedFormat":1},{"version":"d4febaf058362f0289be83beec78c425a880df9455c25d89e0863bb500708578","impliedFormat":1},{"version":"961d20b47c7325e6aa132d729700353c3b0fa2f765ae3092082abb09150e2ba3","impliedFormat":1},{"version":"c65993955c34d1a6c583000a5a246e54a74d7be3937ae259e11bf7b29628daf6","impliedFormat":1},{"version":"829a9521f86d3b807bfa43ba0e2776b1d631be89ddcfe0facaecfcc2d8b90708","impliedFormat":1},{"version":"16978e386228248e706921d58d47801ac969a6151f7c3afb3c632d0367dd5ada","impliedFormat":1},{"version":"920071ff13103c91de1299489501e2b4e2cde3d035331695e16923b1698d48a8","impliedFormat":1},{"version":"a2c6227d6aae6e460510a01f48b807e2f8a1c1585353e14907d0d8d641496abe","impliedFormat":1},{"version":"b41202e140fb9f7bf282273badab863b5790dab2663f05809bcc8cef516c3cd0","impliedFormat":1},{"version":"3faa497606b49e2988ddbe69e6a70868cd8a104d0b0a75c963cd85a2ea02e7d1","impliedFormat":1},{"version":"3357e71991c9235f49545fce4ad5c75de2c9b8b835b53a4a48c4ac2cfb4ef452","impliedFormat":1},{"version":"e5b98076883555855ccb09bb01919cd01fcc61ed88e5f31fa049e0f9c377aa2f","impliedFormat":1},{"version":"a7f3de6fad27f83cee765518643bc4a5c5c394b0a17c5d162f602bb90b7119e8","impliedFormat":1},{"version":"8ae4c205d2e343a8d238f93edf14c624d3874c152cfbd1a21c92397785fcf6b1","impliedFormat":1},{"version":"e66eec8578977f2ad2e1cb0989475aebd36b7a9cb90c420d9565a6c9bd6ed72e","impliedFormat":1},{"version":"06fd676cf868e87dd7a01e4cae61bde610227b957f9273239e3618d8d8f92bf0","impliedFormat":1},{"version":"3397939464010c7f607269deaad3f6d2740962e5a1beedd30d0524fc608953c9","impliedFormat":1},{"version":"5ce93f5312a611abe23bed2c8c922b66748d3757b4e2571337169f3ba5f17919","impliedFormat":1},{"version":"5651a676b2a569b62fa6ea2f374e75aa4e18899cd60f1a6d35532e778e2e922c","impliedFormat":1},{"version":"b10ba92ca513aa0d311fd500e3e201a7b04d7222520ac6b00361404de8c3ebfd","impliedFormat":1},{"version":"928e883f45ccf2998bb7a40c8892b0e23193f1b7c0fdb6a575e1ed3fd8a87c06","impliedFormat":1},{"version":"7815b1e74c1ba05bd531b3f0432385a5c6cd00405b4b98aaa6bcbe43e6ae7dca","impliedFormat":1},{"version":"c5b1f63d118949a7786f51061553f7bd9ae4b74c33dc94667c1ddbeceb6904d9","impliedFormat":1},{"version":"294b80e3aaab13eb0b8b79f0142cf6e22f0f6495939b6e02297ec3036df35b46","impliedFormat":1},{"version":"1b440c7eee260ddd31199b7e3136cc0321d1a7366e2078832622b948f31ecc68","impliedFormat":1},{"version":"4ea39d23fc2157bc0b97f1547ca31e6ac52041a746eeff692e725f245f94a53c","impliedFormat":1},{"version":"fea66a3c1a970e4f06e6485733191784bbdef752a82a6aad2b3e7e31bf477ded","impliedFormat":1},{"version":"a126ce07ac3b7869b2ff8a647d10ed29d087c46ba24a533ddf52cf624399a368","impliedFormat":1},{"version":"c8ce9fbda94bd7e16376e2ce3be97ef9c696e7d051286ed95c7f87015a20618e","impliedFormat":1},{"version":"2d9722a92ce43af83747ef8b5370a78c754fe5d4a415ef7532ce7c362db4c3c6","impliedFormat":1},{"version":"9c305e54c5b24c32fb69aa7264c240d1f67faa152e8c9ed10491fd2bfcc4d6b6","impliedFormat":1},{"version":"a3c52152ba9d43c53a28318171d789c06d9533b6053c8df222d1690ca05c9c33","impliedFormat":1},{"version":"a8bbab71735e79781eed6524128e75f369f12215283bd4b4629de7afa9972f63","impliedFormat":1},{"version":"5cebb3a728cfc6dff6c1fe62d10a8e1d15a1f7f2ef6c4b252180eb1ecead61a9","impliedFormat":99},{"version":"bf4cb26dc7f68f2b9d065e0557e149dcafc247a8988057d678535fd2d8185673","impliedFormat":99},{"version":"c56a9f6695eb881a927839fc8f50cd5b36e9c5be9da4f0a7c59d908cad15e198","impliedFormat":1},{"version":"6cdc55c8c2f63bb664067ba78226de359c1101aee049d2bf3cb4b4788c40eacf","impliedFormat":1},{"version":"acb487d815e5204442da16a139817494e2a3b7371afa57add9fc7acdb9926d26","impliedFormat":1},{"version":"d2e9e82b05b2c31138dd7e49578fd6b939e069edac202856e9b48e94f68532c1","impliedFormat":1},{"version":"cce5d74eb0b17fceedf80bb301e69707912ed162e4b651bdfe98b3b50df9bf15","impliedFormat":1},{"version":"45059c69dfbec19400dbeb3ee71d006b1f3464ea37f72642f493f37c816ff9cd","impliedFormat":1},{"version":"68a5c7941e7c067b996579152fd44a7d97923535f75df6319ba37cb19bbaaee7","impliedFormat":1},{"version":"75e6b749286a900e7ffac3e07572168639aca8f93aab1533e9f04def159650e5","impliedFormat":1},{"version":"523fe3a9476d5701a4162f83e6f07b16868cb1009df8b210ad2dad9ee439fdd6","impliedFormat":1},{"version":"d469a5a790f92021d10b8df35997a9bcc0ea1ff56ad1e5a22582ba962f946e01","impliedFormat":1},{"version":"e008a357040c555bd5fb2f7655c9142f8ecffb8ccf5797af4dc7422127353e76","impliedFormat":1},{"version":"fda0bf38e92b8cd1cffa78fda866995091fad5912085b337deeb927c9bdffe91","impliedFormat":1},{"version":"fad7a6a284e4004ae5716488513b321e75ba6f948408f26d4dd6958d47b50f1f","impliedFormat":1},{"version":"add58a9ef001a6e9032a0d5a27c878a4710c80d8450b69d861a9ba7a9e0f22e4","impliedFormat":1},{"version":"c70fb6238d514cb1f54b12fdfd3250a3e9bf70a7a8ec17dcd9a989fdb0046d87","impliedFormat":1},{"version":"55764e6222d050b39225ea0d2ed01aa53145217f7d0a0912901696a94cc84482","impliedFormat":1},{"version":"7305e277bf6a0127cfc68b020124baffd1a76fa191c423bb7256e87982d5a710","impliedFormat":1},{"version":"0f86e55ed81b5d66dbf846e7d1f5667737ebb31a10affdd4327d42eef79b15f4","impliedFormat":1},{"version":"2c0d5f8279f28cdef26467e27f45e3a19c7efb0ad9bb1db0e540bf452995e53a","impliedFormat":1},{"version":"896a28778f643e86cf66f09d7d81ebb93a1fd7303fdfa8ce82ceab21757003ad","impliedFormat":1},{"version":"e1e3a917861a1d1bf2704de9187e4e51759c815902aaa0089caf03e9b701121c","impliedFormat":1},{"version":"e0d62aa0a2bc166de5b378833d6eced04d635bf6469646479364e2cfd2852b33","impliedFormat":1},{"version":"b0d19b9741b1aa9644334811a484a559bf5f0ebb0f0c815bf0440a564c5435c4","impliedFormat":1},{"version":"63907d438967d7e60df4f9f541a3af72bf9180e530ad56e400b39e79654751a6","impliedFormat":1},{"version":"a723115cbc32f0e3d08fcd1aafb8638fc0fb91004bec96383f52fa0fa040465d","impliedFormat":1},{"version":"0b94f5363e24016b541d2e95a801a199ffcf0a1993ef47a95f6283eb03f9ba25","impliedFormat":1},{"version":"14823c8cb7a6ebecfb95b88dec30cd58793e6e2c5f1a36d11b7c7c92b84a1f08","impliedFormat":1},{"version":"a1be10a2532560f5eb33f32381125be8e681310290f4951646be33dcc1a071b5","impliedFormat":99},{"version":"df202380727c1a02e948f30a8ea84ee86183c22923f53b71fb821ff60f85dbf6","impliedFormat":1},{"version":"c646646bcf101b28d4ad44ae485f45becec801f17acd3857ba5b85d44d1685e0","impliedFormat":1},{"version":"95a9fd0f297169b56d20943f6174414f42494e149f7b90cb4146fcb9d36080c8","impliedFormat":1},{"version":"225828d7f1318eaf5bedaa7de9b7ed4ddd4c80a3830d3c3ea19f1652801715f6","impliedFormat":1},{"version":"e2a7b77e002a6e12cb99c38a5d60139d47a499f9d8618a930d617878ae72abfb","impliedFormat":1},{"version":"60f04d9f28800f6ab9fec9cc2c85c601dc6f6e9d16c9565d15054bdee457c2d6","impliedFormat":1},{"version":"31a47c5fe657b0c20b88f2c61a25ddc1e46200a8e075068b9bdced18437654a5","impliedFormat":1},{"version":"9669a9611c40dccc84e2656bd560df6c5443605a39b90a799c3447530727ece8","impliedFormat":1},{"version":"1b4398c34098b5d2fbc7b80ff089684dd52eff3ae9b4b33cf177e8a7c4481d03","impliedFormat":1},{"version":"8746afd0ef72f0cef7af840295f128eaf8c4614459c6bf5615f0330f2e12d404","impliedFormat":1},{"version":"31ad1510b2a34d6abf94826912ccfe41f1e5cf336ba9b5a1bb8b04fe00639e90","impliedFormat":1},{"version":"b935bdbf37a8c16e6ec5f093f1e4a5e0bd1145b2a70a869ecdc7c362a4e781d0","impliedFormat":1},{"version":"327201e0d5c631b4821b87dd796f0cad3f8ce7086f7e5c0c7f367113df1f5247","impliedFormat":1},{"version":"6e3f0072111bc2ded5d941716f1a088cf5c10cac854e6bca3d6c02bf7f33fe3f","impliedFormat":1},{"version":"332f8330fedeb992225d79ff08e1f8b5d3c1ffe3123f35bb6e12b3556e718b37","impliedFormat":1},{"version":"4f059d541a44b50126d29d5520ede797f02ce5a73e0d1607975626598f1cc95d","impliedFormat":99},{"version":"c735aeaa3d70ef4a65d60112cbbb3bd6c644c31e9c02c14048b988c33d73a923","impliedFormat":1},{"version":"7237f0cc9c318faf67f0a756161d3bf772dba6e81d1c6881214a8795997b4c6d","impliedFormat":1},{"version":"46ef3b748b7e0406a8bffa7b9c957ce8d5633d6daa2e019fa533e68d534311fc","impliedFormat":1},{"version":"d336709d15f15bfd23e59056742214633afcd0f021692294d40df54f818febea","impliedFormat":1},{"version":"f8b834349691218fffbae8e8441e04bdfaaa1bf5e5a4c4adad527e2f9c9e57f8","impliedFormat":1},{"version":"9c3d66275a89530e1ffbddf4e173a9b812a69c1bd1bc7fd95d3ee002c3c38da7","impliedFormat":1},{"version":"6d4fa9b1155ce0d28c1c65733b1bb342890d0b1faa71e2ef6d8c5b8e9241c5c8","impliedFormat":1},{"version":"65d6dca1624e1bebad1df23be9896b96fab5208abcfcd552c4ce81a63f9929f9","impliedFormat":1},{"version":"1c1e4fc4ff686e71f044f694e74cc2d665563e3f57c39c8189c9fbaa7d672e0d","impliedFormat":1},{"version":"a186d9343a4232f264e17ebc8cfc04cb75158277ba7d8fac0afa0f9ab73cf9de","impliedFormat":1},{"version":"302811042fd9f6974c00201d2197e72c5b579eff97960c35f4798b03d600198c","impliedFormat":1},{"version":"0263c4ecb1ab25b41a55a054294317f0a9a072ff0b208cf5714abe1552439196","impliedFormat":1},{"version":"0005c8ec51c3b52ef35f2250b4068df89ef2e467a49d12f395b2e1a4fc93780a","impliedFormat":1},{"version":"0dfabfc85d2237cae988879831334af7c2d5982251f7529bfddd14830e4c46ef","signature":"1b0cd5cef393c50a35ed378492d4de6f6a311e9cc6a9d4230c8572967da8bfa2"},{"version":"2ffb72f6c5196f257ba623acf2d5233cec71b82b61caebee197027a28f49ffbc","signature":"c6f447fd94a92b57a99ac6bdbbb4c74900575d641d24bc6de73959761b17550b"},{"version":"4fe80f12b1d5189384a219095c2eabadbb389c2d3703aae7c5376dbaa56061df","impliedFormat":1},{"version":"9eb1d2dceae65d1c82fc6be7e9b6b19cf3ca93c364678611107362b6ad4d2d41","impliedFormat":1},{"version":"8065e20ac0ad0536d4f1c8d4c2303272a4d25c450bea8d25deb25697d19300e5","impliedFormat":1},{"version":"a072817dfc4aa072f1db85e8f9182475609904b542679f3db7cb4edd0d3c72b5","signature":"4da5d073adc828af3ba511e08f636a83afb0f35631fd5c9521a0a9fa0614b2d5"},{"version":"7899703ce80e3910b631b7cab0372bb19f03141a42aa8f09fc46f8cfc2e58767","signature":"c8050288696a54fbd5143ef956d79a2a3eb50bb51ea0e3afdf661da099637fef"},{"version":"574db6edb1d4b26684c1e4f1e046d124a8731584baa3bb590378a17aee62d920","signature":"45b6b184c54af9f5c03fac2dfe839bdef4cef48ca701a16d2d80c74ff08b6fa8"},{"version":"75eb5c530b5fcd9bf2529c26a7e1b4e201cb0f745b7ced2dc980048d1f5a8cd3","signature":"6652e3a9da5ccd74276f6843e010d31f771eb6d3cb17b10687d3c0143376247a"},{"version":"0d2b75ba6a2ea5ac2fe112097bc21cc0ccf46b13ce062924257a2f64caba1939","signature":"f68296f2f5f4c473ed07308b2f54fedd0c142493f6691cc9888ca9851c4e66a9"},{"version":"bc835d6336b962f942ae2e4de63683af4274bb0cacf48f24544c33d114eadf22","signature":"aa33ca44b9c0026e6bd5637db6f2a2785b24a7e467be6f3f1ec0bc268b99a98f"},{"version":"b9aed4a9a9664bcf4bcb198294bc9a23293d43ea973f08f8cbea85b1e8baea0c","signature":"92c367f16258013b8b1d85f3d30e4dba6cd3a803c4dbed56f8bbc1cdcd3b8876"},"490ae0791a82ec039c92a0cff6dee90501cf4b58cd57b062ec6e357e4fcf6dd6",{"version":"d0802d7ff5638aabc539b3d5003d510000e28443987d36ca197418a5395d0c20","signature":"9860e533ae243f9f378c8db8229012ff8c976e9c88959fed79f5ceb1926861c6"},{"version":"b6af0732e6a4f5869ac02110565af96c7a47254e2dc05f2d7860da36ee22303f","signature":"bb6b2cb9cd6bc1d3036555102458a58a06ea1c1420ce26ff8cf50aa628739bfa"},"2368bd3334a4676821c1e33330b7508663ba2973d2ed463ace50eb66e810652a",{"version":"7c7b33730a81c51fc25dc8394d89d8169924dd4df1fc5cbda7650b894f73d017","signature":"127e140191fbf353ee3c8f55f1aa914478954361b2f6236f7e95c1c82d71c96c"},{"version":"a2de7814f3cc7db1147f4d10ae6e99caaae7e4616e5f6b4201bc3f1e9718f09d","signature":"a51e65eb8a04b93c2b918f014af777792d0b7ea52a9f07686e606bcf0f51e3fd"},"b9bb7fe2f9c7eecc50df0d976de11288a1f3a5c80dfef6fbfb1822790333449f","42d16c4c8d175b24b67baf2eb70a825cc55c540ad86035b5ed2479bd5c5a5275","c740dcec70e745370c6960ec328ed10071400b3b33d4fef6d43f3666b669839b",{"version":"3af4769c0d68d0a6a6ce18c13740b671612d75d79130e5c005d3e5bb0d5f2ac3","signature":"a9f0fd0631f6a37fbee682bff887e5120030dc2ca322b13e5baf9d32f8c13758"},"44ca4769bda5d0da883c075f77919ace2dc3636994f0da70922b114564ee1ac2",{"version":"40aee6e26a6fcf34c53796d145e6b1a1a8d5c2df5130d008b59c135a7ebc73ea","signature":"40ee296f48c29ca0bd06b810df1495cf1d9d185463ecd0a101cee42a350283ef"},{"version":"8fc07bd533723548c2fd8ff41283a925bc82a92efb2b87a5563e02665d991410","signature":"156ed32899914252f70bd8bb908dc5d9c2eabc4d9726e9c3aca9478bfb25dcc8"},{"version":"0c5e8f4b09a0c0349ad15838f51de397065badc07403c20a3bfe9cabc1207e80","signature":"f0990b942c3cd58aec5d037c245bb7040f2bbed2ebc0526255c119d4e743b0ed"},{"version":"9d3adeb099512de14bb7a4f8afbc6cae377fefd3c250a1cff67c055c46b27149","signature":"9d185be1ead348c8ac8af5161b788a710f1f6ad319ff64a85d86a3ad9f64d3ef"},"1bb28194c54e3bd56687bf30fe900208b74dad40f812d30c127979ae589f14ed",{"version":"565d3f1c18440fc67422e46def318015270052e444b85c9535d2105491dd2928","signature":"be39f000f665faec2bb62bee3446249a66a71b54e59d7169c55975dc47fecee7"},{"version":"54f4382e29f4e14f6ec35c86711301aba0f10a9b85d157e195494d38706d41ee","signature":"036e46ce88d9125baa51117fcef7f3efb1adf0289e8e2f0915ed592aaa37913d"},{"version":"6b448b600a798fee330f263165428d77b68642c73b767445de274df9086b6b22","signature":"9e615896d724717b503d211fd1f703d934170e658fb9c83888baa9f86b93b2ef"},{"version":"5ea0612ccc205a291d7a40604568d059901d2e722a5db124a3052d51cf8b5747","signature":"d95be6cd44e64f2a9a6ae85ed45990ceda28ab13acda3660d726bdb7718c0c53"},{"version":"8ed3649473eab41205a02acbf3771d0091fcf5c73ba9572d65d1163d7217612b","signature":"3283ca224cfc7879f5e97c15ce8aedae2273fcef8e255d152a6db5826cf94cb6"},{"version":"2019fa26cba0cfeac2aff415e1e68473ae89d13b75be5dd5a773339f2ece49ae","signature":"2c066cbddee06154cf54860b8c4127527bc3b0a1702f7724a4f7f73cc737064c"},{"version":"0ee2665d95e353dcf1adcd0ed0fe7083cfe9723db90041c60919027d1c5a8bec","signature":"b96d38fb9bd83c243f72d42a6149f9ebc1367766a58e4e76335ea526f2490f23"},{"version":"1dcdc0d0e89422d2c661a11c087079d9aceb6fd01a7ec4108f6e946d43f0182e","signature":"b5763829e973684e4775f6f13fd425c1be40119c708a0e2efeaa1c8748bd2bab"},{"version":"a443d7272f22fd8a6e69c1653bc2be2f316c54f968090e0647e99298530d0c5a","signature":"9fafb92d9e1b503964991b67d8e3acf83dd392220721b22c4b84036c3fe6f272"},{"version":"9aab50a48fbf62225dcbf9f28a63802a62a40c0d1e4d72a2a2b93fa3e1903141","signature":"d63959264f1bf9e3f9883a9a5e1ed05833924622208e185c91714dd4e53b100c"},"853020656a8f64981c2cc98de94ddcc9bd85064ca4072e0ea865c5ee56902bf4","314ce44ad0be944bc0bd27c38aeb488c6928f355e9460d837f746c03e3ce7572","f2d0afbb4ec9557079833507141b23808a9e0063a8057e3da63bfa0804f61654","95c1b46256e08229f8557f52bddb8627ad970e8f3100f8885e76e59b7cae9799",{"version":"c1cbc415bfabe9ac2bd32e7f9748f422a8db0aa054f8ee034c5135f5a99cc30a","signature":"1b9b0c03077a3f0722925e65af28e99ba71884dec9d0d6b1f7b77384fe421486"},"2967e729827cac1cfc085ffb62035ceed814925398e60e61d76e709f7256b9aa",{"version":"513c5ade704344d9abf7416a4fbcc53347fcaf0887281542b4b7c8a4e942372c","signature":"f8725c0589eb28436e6b55f9c026b6d6a4337a73da7db750aa20938c1922a24b"},{"version":"62e6be1215562a0b629791311d01572e70e0d69ff9d93cff51bd736e639a4168","signature":"a4337daba63a1a304bd4732f9eedb67e1058e66db751173afcebc419528581f4"},{"version":"a21b55f9efa1f6dbc67b5087d3bfaf0301e161727a722ea4858c7253c85c9939","signature":"67bf929887b784422ae783a5a00d63a1f8acaf61ed7d6a078b3aae62becf2bc1"},{"version":"9fabfb017594ed9d47f1fd72372caa2156774d8418648e3cc32c6c614dfe3247","signature":"5759259467be66ad4ca76a122316b7aee42b6daab0c3e6785e7c1f85be3abab0"},{"version":"18c85de35d5173004311b533c8c1b2d3a3b777b80e12d1e8781c2f7443666663","signature":"0435908875e1adb24d52b7ea5a8b26fe0fd2bb517b8ff6318ce4ff5b494141f7"},{"version":"5d051b97734ac4997b368e8b05bfdac1d16c69d0e6d89793583510e3203baddc","signature":"ae23036052bcaf5ff969b99c4cad1e4b1d220107885a02b39d68d339bf24ae98"},{"version":"4fbbdd4bf015335a9766bdd228d6e0ab0d140ece026dd80b156e02fcdef76f70","signature":"a7beb0e3e776d7b30062d8fde3f1d32fd87403426441752fb176ca52faa18761"},{"version":"0f317a619cf6e183baaf8699150bd03e51f823f2e72a40b8d9abe0535b41348d","signature":"e2a244281ca810002466227206c7581643f9001f0dfd99c5727b3fc516bde5a7"},{"version":"4a53bfa3f6620a2371634d9d10612d2d02cf822108a0b7123f703ceb375f0ae9","signature":"bcaf145c2269fb8e03e1de676c6742ccfd1fc46660d185aca0f8cafff46ddd8a"},{"version":"0ee17b6466bacfa85e77d9f663ae90c606cc0d20cf384668b7ed1d0cf9f50827","impliedFormat":99},{"version":"f2964e514f08c61391018c5252e46784a0a906bab4b8c325d68aa39b1216e4ea","impliedFormat":99},{"version":"e4ba2f64f3666a1e69ad76d17567bc60b3c022dbbef994c88cdd4f93245ca29f","impliedFormat":99},{"version":"24aabbef4113027e66b5cee4eafb5e9968bffc3d2a8dc70ee0cac34f9c2ed1a2","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"e0b4c1dc982abe1ee87259f2d7802da0cc78d3b230ffeb63003417ae9c282a01","impliedFormat":99},{"version":"9850454a975011a654b037d8ff927379fef0f108e1b50667acc9ed308c2d5f14","impliedFormat":99},{"version":"9d8b5a7dc4507123a555a6d6b1ca10f92f5f3be0200e4f299e5a0de1732e631b","impliedFormat":99},{"version":"a50524f38f763dd1db60f7aa695fb84c89cefeec878b4126e582e829137e9bfd","impliedFormat":99},{"version":"c1472990f11b1b40b228805e9ea530a9383d76db30fa4736ab4f8d79ea7c06ae","impliedFormat":99},{"version":"27c7522f700ec494d66247d4f40f8abfc258b192cf3213bad2d9be1a06ddc5c1","impliedFormat":99},{"version":"b13768120c9858ef929dc76318210c1424bc7fd941760d09a66c4d8b00248025","impliedFormat":99},{"version":"44ded5e2f467babe7e775848bf5f42cfc8d8d7abf414ad23cc260615554be68e","impliedFormat":99},{"version":"abec74650dd1d319c1679100eeeccdc7793ca586632a35afe517ec38e76691a4","impliedFormat":99},{"version":"25f7b7a2c9634e131a890cea288b1b9df305ad3b1ec8e459e4f813c275d2faa7","impliedFormat":99},{"version":"70ad050f39855f92fb0fffba8317b9e5609fd59c9475af749894f68a3f93f4d3","impliedFormat":99},{"version":"79f4ff913fd613e3100d0e8456bae487b0a23a52ac6932d2ba4e019041b8b93a","impliedFormat":99},{"version":"d3d646cedc0626118d2715f6fb2f0d4416dd1d529df41f4ecb13c7c6a0adc984","impliedFormat":99},{"version":"3f8e780ae8edb60d5ecdbbf899c193bfb122be16e259597f4348e489cd9d7034","impliedFormat":99},{"version":"b216246ebb1c95751142591226ae88695ea2e27662e696a6cadfd17667cd35e3","impliedFormat":99},{"version":"941a489d1b658f6638ea13ee5f300c1e4e4d15759c9ed1752f3b0b7a06d65c24","impliedFormat":99},{"version":"c76d061d933a60290edcb5009c46a5b7e076431947e7e2f3689f0ec950d96b09","impliedFormat":99},{"version":"cb69cf38c672bffe6abd1786346604618512fa75c882197f327cc4316c35a36c","impliedFormat":99},{"version":"41960290a6756f47c2571b109e306cb722cc33ec30034869d3716d145a044940","impliedFormat":99},{"version":"eb15bfd2d4cd56ddb13be4d329a87f563c65af8c8c7cedbd23698cdca592ef84","impliedFormat":99},{"version":"09d11f4012e9d8f899a51ff01ef0ec716e588d5cde9a1dbcd22e878d693cd987","impliedFormat":99},{"version":"9a5813195fa6b6538dc4a0ac45a2a389a3b2e0485e11bf2925d136acf06de1c0","impliedFormat":99},{"version":"ad40e4f79dfbc4bf0db68f803b113cf81827ed33ac7322ea76bd560c346aac09","impliedFormat":99},{"version":"2f86a4ba6ae2ee9e58edddc64007c18b1da20a12bbc68748963b8fba3d41d66e","impliedFormat":99},{"version":"dfe0e7b018e69e657774f5331698eee575cba0cc6006cd4f2ac6ca28efbaf561","impliedFormat":99},{"version":"59dd1d605664bce977ca5fcd7617f5c53a7d660c6f527607ebe6ef17220a650e","impliedFormat":99},{"version":"9b4bb56003687f5a456f786c45f76b8d29ae2266b0c259c615196f03f1b9cb58","impliedFormat":99},{"version":"f12ea44b7f1ecce15ece7e7cbf3fdb13447197c1440f87f8146bbef547c91ee7","impliedFormat":99},{"version":"48004b0e81f22e91da3cc94d606ad45f535daf770087b119aa3154880f4700b1","impliedFormat":99},{"version":"6c3ac0f95ba9a16fe2f8763830a8a5cc28b842eb6e34cef70619756da7c12ad6","impliedFormat":99},{"version":"b80c780c52524beb13488942543972c8b0e54400e8b59cee0169f38d0fabb968","impliedFormat":1},{"version":"a0a118c9a66853bb5ec086c878963b5d178ecb3eec72d75dc553d86adef67801","impliedFormat":1},{"version":"4bbf82fc081be97a72c494d1055e4f62ad743957cdc52b5a597b49d262ae5fd4","impliedFormat":1},{"version":"4583bf6ebd196f0c7e9aa26bfe5dfee09ea69eee63c2e97448518ea5ee17bc64","impliedFormat":1},{"version":"2b16288372f6367cdb13e77cbd0e667d5af3034a5b733a0daa98a111cfee227f","impliedFormat":1},{"version":"0d64c1390d201b02ed9a28c590dd2d65209441bed8052bbd2b1dbd8cbfcba9c5","impliedFormat":99},{"version":"5c66d23df6b70e9fc2d00d7b5752fd9a8f7757861555da54598a987bd9977e30","impliedFormat":99},{"version":"2c9c63687dd77d284c07dc421f30b67c1caa47ec60afab9ff4497dabc0d6fec2","impliedFormat":99},{"version":"60ba4083cc66655dd1d5842a834a201706ba34258eeb415535fabb2896b00ae9","impliedFormat":99},{"version":"835a8a06ee923c4c7651662ce13c3a6ed5c1eb782f150e8a845cedd123350423","impliedFormat":99},{"version":"86d4ff8ba66b5ea1df375fe6092d2b167682ccd5dd0d9b003a7d30d95a0cda32","impliedFormat":99},{"version":"2065ac4826ecacfee23e9242b7ce26c0561c1c566ee047acf535aa07938cbaa1","impliedFormat":99},{"version":"ed1a9a874474b17782190e504085458125b07a4867b98d60c8670ce70ab3663e","impliedFormat":99},{"version":"e811e3fffa84fd03c0277539f6a8d7eda283c91c63a6da33f7595aeee7f3e641","impliedFormat":99},{"version":"3b492fab910e84d9f1a570f9200fb6608cbc27dbbd0ce2e79169c5c61abee5e8","impliedFormat":99},{"version":"d88f1a67d3ab9bd2d7c9df97547c8a12254103310e03cf202d3c89fb62eb7c23","impliedFormat":99},{"version":"c158a4cdababa4494f43ae1e2c514b07219d7a2218d6205c109ecba6de241ca2","impliedFormat":99},{"version":"1c9e2d4a5fa82ab3ed78427bf154350198bb80236133938ac95b14985470a767","impliedFormat":99},{"version":"1ebd69d7d8812cf122709f648e057ccee41e87fa31b95c07e1ac64dd90954a81","impliedFormat":99},{"version":"585aef18430446770c6c76a97762c866e59eec4413d610d72ced7eb2316957f9","impliedFormat":99},{"version":"6691031d8994f04c27efeb25c8df096686da95c5fc75885d66ac09cdc2ff590b","impliedFormat":99},{"version":"3cc93b80083bd03738547616125435b6164aacd50f5c7a6cb61fcdd2d3b22d50","impliedFormat":99},{"version":"fb327e5bcd5876a087de38e6f668f1b8816ea8c644b6b7ea0cba79b79cc28883","impliedFormat":99},{"version":"8eb43aa3da9b96ec09a65b7ef5ba8d55b533bb8326bdcb65bfc7a037463ffa15","impliedFormat":99},{"version":"ffa3f0c981b3d132519fa5d220d349f035783ba495bfa8e5180ef5f81469366a","impliedFormat":99},{"version":"28d68bdc55f25854772b54aab5f0e4f29954b1fdd3657bcd681369a07468b1b5","impliedFormat":99},{"version":"d2ab4831d5f2673d388c667e733349c290446e5433078856cc8abb23bdc35c36","impliedFormat":99},{"version":"55efe8786be906aa8cd62316e9c3e30f1272c628a2f3a585d7ff5adce2dd3887","impliedFormat":99},{"version":"bb729e632392023ee3100deb7fb3ce2b2ab43446da1d8db228f288af9d6f2307","impliedFormat":99},{"version":"75aca15236606aa61b9751b80e52c3734e60084450922ceac1fd2572cdb3ad95","impliedFormat":99},{"version":"810be332708feecfd18d09f0fa72228ac6a4686bf1d7bc2cb2e27f17334c7205","impliedFormat":99},{"version":"4353ee9b6bdd37f3095283b87127dc6fb6e2747c89bded034e358963eece442c","impliedFormat":99},{"version":"67c8ac2b7ea1fcdd1e5d147b4bfff1964f43c32cb67d5b8630fba6c1832c2ed2","impliedFormat":99},{"version":"21f5208e667c54e1dc22190f23c6c94421a1141121f705ec32b2daa57a84813d","impliedFormat":99},{"version":"3be65a859284bc3b7af028f955f7fab88a2b7833ff9b92601eb117f7c6ee85ca","impliedFormat":99},{"version":"05133e71d47d7a7c50417aebbf2b1bf01a4b5847e2eed16ef3142e1b8a1d2dee","impliedFormat":99},{"version":"a7fb356dd3fc2b75ccd6d1b9d063cecdcf2cae02bf1956c2954ef5f8855b2fc4","impliedFormat":99},{"version":"b358f71ce5cf40bddd4789a8142a73a1e63ad465f922d0e64434bbbaa5631c64","impliedFormat":99},{"version":"8639425c0b1d6ae533072a2c167219ac1f4e5dfd4170628c5d70c32992a57846","impliedFormat":99},{"version":"4fc9f99867b078a33a8a1febe177907df34bf95f66adda96858bf79c2087ee95","impliedFormat":99},{"version":"9204f657e534f74c7464304c9940526fce4a57a8f62cdf01a2ba6348ad06e1eb","impliedFormat":99},{"version":"30f6ccfd89818691317c3fe5d86121c71f9e250c5b6def7c3e353d8e569b3ca6","impliedFormat":99},{"version":"d31dd697039695305f5033cdfcd706da74fc90ef412dc4d2e37dacdf1028f2d9","impliedFormat":99},{"version":"dbf441cbc750769f454066afe3d34a5eaa897a2ead5765db85b12aa39d5cc26d","impliedFormat":99},{"version":"36910d69718697ecbf0c9fcf75ec0a1133eb0bb8cfb455d574f2689ccc7b73b8","impliedFormat":99},{"version":"5eb430e8b7c8d96b9dcd502552eb22aee762c50d7edd7be66168e4db02c0971f","impliedFormat":99},{"version":"fadc13f29b35208a749421b969d55d4c38da457ffa899f89b33a6d2ad133656a","impliedFormat":99},{"version":"73f738da63dfe5f44929dff63375b2144f5d4b97ec17ff11d9eacf6b96542c61","impliedFormat":99},{"version":"0ba861a0e67b7ecd3d27d64fc8fd694e6284b4e8d2f4eb933625847e3b7f0ebe","impliedFormat":99},{"version":"d4185a496f5147371df1d690ad2962539e988c3c48e8652f58973b82b5dcedd9","impliedFormat":99},{"version":"f8771cd6b291f7bf465c4541459d70c8534bf1b02a7039fec04e8e28df005843","impliedFormat":99},{"version":"7986bfe9abc7eb626ec3dcdf1b143f0e71b9780069b8d78e09d232c55e5185f9","impliedFormat":99},{"version":"4948c979891056725b3383e8263a86b4c0c5b71b073f2b5ac362c30285993728","impliedFormat":99},{"version":"4d3efab24d0b06472df82c083be48e79497b097774823ce95f6b599c7b59aa29","impliedFormat":99},{"version":"f56566072b1f1aa01c3d594517e91d18837c1bf338a03cb725a6a609a3cce3dc","impliedFormat":99},{"version":"f4761fb66d9ae8330c124b22dd1f11a11adea443001c97344398164223a2084e","impliedFormat":99},{"version":"0f785a986baac0db1f00a4b842acbbb2833271a9beec5e4b4fc7339424866ca5","impliedFormat":99},{"version":"bcec7684ba2ff4e2edf496af95d50450af81d0d9747c6bff260dfdf39165afb7","impliedFormat":99},{"version":"458e5f4e53598b83981b71d4a50df7682fb685f9022f85c1ab107dbae76433ac","impliedFormat":99},{"version":"e0a3dfc09ec4f5c202814a903e278746ec79675b43836eb21dcaca5484457066","impliedFormat":99},{"version":"dae6ed1e5e91a00ae399ac4e5355099d7b0e018ef079dc72c8dff8d05eee8b22","impliedFormat":99},{"version":"e1f63ee51264bd61719cfe4f33770efe723c35f0e4c6535e6d46770b413dbad7","impliedFormat":99},{"version":"25a5da56fa7572eeb3f128a4bde069b23e4d91a96d721813caddb73cf477a74b","impliedFormat":99},{"version":"6b81f5e45f76ab0c1f341d5ecbae5a8d4667a41763732bfc0973fb51f77be8ef","impliedFormat":99},{"version":"224be63a15a5d59a0eb8badb94343c5719b34d74fbcf6998005d72f9c7681d61","impliedFormat":99},{"version":"779ff6f97f50a1813087bc31ba3750ac1c6772da1d67ad5d79e21c0e8ac80f03","impliedFormat":99},{"version":"f642105c2efde3a0d46c6550e7cc2a9676d2088364fa7f2c3bb386567605feef","impliedFormat":99},{"version":"ec375ab0b9196b79417f1a70d66d2cb214073a3d71d1c6b75b273744c5ba3121","impliedFormat":99},{"version":"d75fe96495d8a1286f75aa4951e48343fa68136cfafff2aece202e4d4d51ed32","impliedFormat":99},{"version":"1b594fae0b8934bdae1d09dc1093d3b683e5057195e4ed04afa3c0050fac344f","impliedFormat":99},{"version":"6d7bbe4bbca9c44c9e0331456eabc64bd19f437eb97496f0f44dbbbd4af01da7","impliedFormat":99},{"version":"5fb018f4d5ee90bf7b9ddd0b00d93df74fc4725c3533b01e3169a5c3e6275926","impliedFormat":99},{"version":"8acca1a84e49acf02547aecea06fbf95b611d9a92e430952ef669305df5614bc","impliedFormat":99},{"version":"c88287dfe7c437e7e8ab68a5216c5947b073084623dbe0d7eda0e39b916166ca","impliedFormat":99},{"version":"179b10a15bf50fd16b9947b3395d8b6810f8d5a8636b5d5154d71ca53882ebfc","impliedFormat":99},{"version":"0d3068ba6e1ee89266238ec06bb2e03daa6f9790da19325b5aa0b8ff859fe303","impliedFormat":99},{"version":"2e656563031c357fc8c4bbf7b27b853d307411d318928be59540ef61aeea2b73","impliedFormat":99},{"version":"0b547472ad592108de851431c096c752a42138069cbb674e296de1ca96206438","impliedFormat":99},{"version":"7ae74cabeacef69bebfbd28f27ec87985a89a377d60bcd83eed4366a7425463a","impliedFormat":99},{"version":"f997b2dabbf63f062866fb7caa093211991599d3f639982d5b5ca6891c88bdde","impliedFormat":99},{"version":"ac2de4b01b46228a87b500f68245c21e13a1617cfd2a940d6f259ab0f8540148","impliedFormat":99},{"version":"11393cbfee469a08bd9f402ae7555fd2d9479587db1db5f58b611774284cf669","impliedFormat":99},{"version":"828bb40fecfb2d3f23d39921004fe72592e1e9e585e65138b44ea377ff421e3e","impliedFormat":99},{"version":"8014921eb03a38719dcd4b98108729f6665fc3d4939b21cb5ff1fad45e404cb8","impliedFormat":99},{"version":"4d83160e9a448b98821a963608912b0aca2682e0db3bb9ee2f5341c681dc8727","impliedFormat":99},{"version":"cb584f8d5b3f132357f869423930354e13812ff7f01a35b687a6c97f23b54601","impliedFormat":99},{"version":"d80b8b04cd063f003be191a12473dac4854f753e213035f789cd9ac4ff81087d","impliedFormat":99},{"version":"8237abc8375ff9525b769b2f751e15f2b6636357edc8e4007e24ee11f3311c80","impliedFormat":99},{"version":"df8846207e7f39021c304e9a889d6d0d894e4742cbbc501a1e4ec1b4bbd2ea6a","impliedFormat":99},{"version":"fcbd8b204236019c9d1225d68e9d37a801451872ea38f228b5dcdd7d82449077","impliedFormat":99},{"version":"13da0f5250bcd5c824ee064a5f848849552f1179fc884d2d41a1a94db3a8a839","impliedFormat":99},{"version":"bf1e372d77d1c5e3214835b5d8d5071aa5cb0d3396c0af5896df3c43cace1d46","impliedFormat":99},{"version":"8b371967a823841a84cec3d1e62fb2355d9bc52088edca58c0fca8472552e45f","impliedFormat":99},{"version":"63c7a2659bda503e3ac241656ce3c3b57ecf80d1f0421b559ac47c22b00db5fe","impliedFormat":99},{"version":"c4509dfedb4b3b105edc9046e1bdcf5bcd54f87677cf2c61a977c178a94f5eb7","impliedFormat":99},{"version":"fb858110b95bfcd56f1202216f4fb8858abc92a9df5ef8a35768457c55861135","impliedFormat":99},{"version":"75082530399569a1ad02950bd17dd7003deb177453c130ea54e1d90ac7f2d877","impliedFormat":99},{"version":"30361f8a198799da5fc601cc1996af1c879bfb727e24a7431c2eb675587757b8","impliedFormat":99},{"version":"6937e913a43ed2f1d6d31e0b8504abc0dfdb49ef9e3da60fc899075c0cbde5a4","impliedFormat":99},{"version":"cc814e22a2a8f6efe1a08ef4192d6ba89e53292af0e31cb01c46abdb463d4699","impliedFormat":99},{"version":"5268807851e01499d59141283aef7e6a264a5ddd46ba39555bba282d924291a3","impliedFormat":99},{"version":"16e28b017503cde4d114703ba79a21f3a35a48d34da23d35240c245d2942161d","impliedFormat":99},{"version":"9fb80d0a23d4b127bb9d7ed415808ae2d24eb63c20b8787615c63f7fbfe8de8b","impliedFormat":99},{"version":"b0007d92735e7fdb06118c6061ac19588e00080e1c4b440794e9815714af820e","impliedFormat":99},{"version":"489cfc9e8303f4119dc04aff4c525ecc7ebe0e009ba8a2526ed9ad848e70fec5","impliedFormat":99},{"version":"eab2119cf3ab1a58347a9e8d676a1ead164c683c70a2c8f4e9724644a433b9dc","impliedFormat":99},{"version":"d565d116af3a8298312615747ed5ea711f21416c664c6263b0a33f2692b05963","impliedFormat":99},{"version":"19fedfca96dc7474b2250109c73a89d5ad8884ea965e088a91bf7076b6e135b1","impliedFormat":99},{"version":"41fa00810ad1fd37fb7079d1f80996c7744b702d85b5d805ac7fc4299dfccbb1","impliedFormat":99},{"version":"d5e1acef71e5eba46cd3ffd4c063105353f4b1fc57e0c8dae1ac9af800b6a309","impliedFormat":99},{"version":"4c351214f95b15953f9634fe53d228dd4251e20c95cc39f312dbf86987ef3487","impliedFormat":99},{"version":"491353275e2a193b648dcfe971d409f99ea7bc432def64e673137b6cb769956f","impliedFormat":99},{"version":"2d1127fc18f22c3acf5ae4910394890cc140e959a03587f24e9cc928229de0e2","impliedFormat":99},{"version":"c9317568117d909e1f880d3c79893dc2b3ea9a2e31305484e02506f82bd78139","impliedFormat":99},{"version":"1071c0970bf15cd4c0767ce0ffeef09d77290bdb049c7f011280a331b849b046","impliedFormat":99},{"version":"30928cb9793f0fb98c9c2f91ac9245d0e7f3efbc7c1049a76602a2291e9f49c8","impliedFormat":99},{"version":"b6d86896a5700e636092ac9a44325cb86d15c633b6ba5b50e823fde8b75a3469","impliedFormat":99},{"version":"08352a2221c70320cfa4e7fa0139351303c36acf08151e5594521c75eca42897","impliedFormat":99},{"version":"d893156caf1899e5d930a4952657be916621a724e1d38b609507ccb738d876ef","impliedFormat":99},{"version":"0785ef5a2b1c633728b2a40ac3f4d1da5d15e1373b02f073a002790ce7b39653","impliedFormat":99},{"version":"295c4f6139697e7cfcc15b8b0455996d4e4b8257b932d6bb1cf76fb83712fe1f","impliedFormat":99},{"version":"83db7715998c6e339e96a90aa27e0612a3aaaa901c91df9a126e1af1f1c12bfc","impliedFormat":99},{"version":"a6a1b9f964e6ab718ff46f141e29e22f42e575ec2dffe2d6ab01f9e27e85a48c","impliedFormat":99},{"version":"d96bcabcc78cff9fb28de80a6f0c8d0d346d69665b7d460f2db22ca3f299bad9","impliedFormat":99},{"version":"12c8190a417034879a25086a0827faa315047916b5663973f3a615791df4ca80","impliedFormat":99},{"version":"3a0060b6cc806747f84593e2471d56a8979e98a5631ba96d4e30ad5f0e5578c1","impliedFormat":99},{"version":"1ad0fdbfdfa1b602e671721a294c90b0735d53735c9bcb7133e00b9769d74f09","impliedFormat":99},{"version":"f54dc25da476b31268e030fa5e1d685b08ccaa08edbe8517a7fcb781a704d7b0","impliedFormat":99},{"version":"57b6891513b588c38d0492e826d9e7fda3dbddc48d4b12b64ada5d089ee24580","impliedFormat":99},{"version":"7244652d91a8b320f03427525802ab51399839be3a1f88ccdf033e50dffbb817","impliedFormat":99},{"version":"9cd1758d8ed42cb7b1bbb068e944271c9429459cda3556e21dfe756827230ae7","impliedFormat":99},{"version":"6204f849be21f13dae6493a4fd08bbe2cd608b0530a0e959d89804a53b165246","impliedFormat":99},{"version":"739c5cf58102e931035ccebcd5e1ecbeab29a93aac4f377f6af966bd8e0ec1f0","impliedFormat":99},{"version":"ccb576cd71d478658eed21216a1e4899e1be81bf724ef25484c9cb27a5497c94","impliedFormat":99},{"version":"cc79d6c1035b63788e02b9f65ee66d33acb3a3dedb101d19e594262635408338","impliedFormat":99},{"version":"c48feb85acb7af2ff24573c36d80d942d74f40a218fd7f52913d5fd08d22487d","impliedFormat":1},{"version":"a01eaf69a6470d818d691b3884c1869f40ba5bc2a79bf336098f0ee60bf4af7f","impliedFormat":99},{"version":"de5e3dfd07bfd4c1edcc5429679d2c2baf9c30899d3a819fca910932ea350a74","impliedFormat":99},{"version":"bc3f9078ac15b845281a2a3b8a47ac3bc6965c330eb5b22dd4174a9fa2872065","impliedFormat":99},{"version":"13b0df7777d976bda4e2755eb53c4a8f168dddc60df6cfeb0c567ff4a77b63ae","impliedFormat":99},{"version":"61acd735ec4e57db72108653f0dbff7d8a36ba86b582423f51458de5a3d2ff3f","impliedFormat":99},{"version":"b28ef9a22e4c899e14c03a2cce76be6a17edf3f6bf4ad86766968f3cc1e9ecc7","impliedFormat":99},{"version":"49be6f7e5451f9570873f93b2ea40ee94277d4c917fdecd239f3afab4ac18fa4","impliedFormat":99},{"version":"52a658120336b9c489a10e87d28f18dd28f32f2213acecf55006353d4432f90f","impliedFormat":99},{"version":"3a67e68700ef4dc2da277e57a692b193e408093400c09e0da8032afe2b33827c","impliedFormat":99},{"version":"3d4a5e90130a272fe58d46c99ef1c4324048c39fcbb858fb01dac80444b11222","impliedFormat":99},{"version":"2a25bd22fb239cdc5b6495250470f9119e55bb1444e12289baed0557ecb43109","impliedFormat":99},{"version":"b66937a42986b6bdc6c67c2a63389963829d5b9a040de66861e7ff0c50912939","impliedFormat":99},{"version":"0ae3df8126276d839cdfc268a26860f72cfe94b39ec3f3e692c830157d20c7de","impliedFormat":99},{"version":"6db05d7e7e1e1b702a9b5a193d36fc45130407d9d7824351bfb4a4ca3f2bb5b1","impliedFormat":99},{"version":"2220529a5928481ebe5421cb07a613815ad74e324f901918668f2acb5d1dad46","impliedFormat":99},{"version":"bee2055ba4efb2753c9f8915c31dfa7cb9a46adc4af76a1775ab7ebe80b6990e","impliedFormat":99},{"version":"d734de41fd16be4e7a5a4592d223e2de27fe004d4540829fa388ce20f32dc037","impliedFormat":99},{"version":"14d79d96497d84a849a07548041ed7a96477fd6d9dcf718a343d84963e3605ae","impliedFormat":99},{"version":"dc8cea9bd9c1e41cc3c9fba9391bac7b4ec185aa8351667b2f0f4f66ade35f69","impliedFormat":99},{"version":"2c03a6fda550ea008b942e152b524cdfdd8cad7ab52c31ee5042977120ea93ab","impliedFormat":99},{"version":"8523bb966249a39076c576b449b37b4a97b9913783197a2d66ae8584d09fa150","impliedFormat":99},{"version":"a7eeaf46c5fca6949210a5e83190782b56f3ef838f2482f88f2886fff2c8e88f","impliedFormat":99},{"version":"309ebd217636d68cf8784cbc3272c16fb94fb8e969e18b6fe88c35200340aef1","impliedFormat":1},{"version":"91cf9887208be8641244827c18e620166edf7e1c53114930b54eaeaab588a5be","impliedFormat":1},{"version":"ef9b6279acc69002a779d0172916ef22e8be5de2d2469ff2f4bb019a21e89de2","impliedFormat":1},{"version":"71623b889c23a332292c85f9bf41469c3f2efa47f81f12c73e14edbcffa270d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"88863d76039cc550f8b7688a213dd051ae80d94a883eb99389d6bc4ce21c8688","impliedFormat":1},{"version":"e9ce511dae7201b833936d13618dff01815a9db2e6c2cc28646e21520c452d6c","impliedFormat":1},{"version":"243649afb10d950e7e83ee4d53bd2fbd615bb579a74cf6c1ce10e64402cdf9bb","impliedFormat":1},{"version":"35575179030368798cbcd50da928a275234445c9a0df32d4a2c694b2b3d20439","impliedFormat":1},{"version":"c939cb12cb000b4ec9c3eca3fe7dee1fe373ccb801237631d9252bad10206d61","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe","impliedFormat":1},{"version":"26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"26384fb401f582cae1234213c3dc75fdc80e3d728a0a1c55b405be8a0c6dddbe","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"b42d3651103a532f7492e719a828647af97306b2356ae757ebb7f17f4a8c41e5","impliedFormat":1},{"version":"03268b4d02371bdf514f513797ed3c9eb0840b0724ff6778bda0ef74c35273be","impliedFormat":1},{"version":"3511847babb822e10715a18348d1cbb0dae73c4e4c0a1bcf7cbc12771b310d45","impliedFormat":1},{"version":"80e653fbbec818eecfe95d182dc65a1d107b343d970159a71922ac4491caa0af","impliedFormat":1},{"version":"53f00dc83ccceb8fad22eb3aade64e4bcdb082115f230c8ba3d40f79c835c30e","impliedFormat":1},{"version":"35475931e8b55c4d33bfe3abc79f5673924a0bd4224c7c6108a4e08f3521643c","impliedFormat":1},{"version":"9078205849121a5d37a642949d687565498da922508eacb0e5a0c3de427f0ae5","impliedFormat":1},{"version":"e8f8f095f137e96dc64b56e59556c02f3c31db4b354801d6ae3b90dceae60240","impliedFormat":1},{"version":"451abef2a26cebb6f54236e68de3c33691e3b47b548fd4c8fa05fd84ab2238ff","impliedFormat":1},{"version":"61d6c43861d171f1129a3179983d8af80995d3e86f90bdeaad9415756022d4b3","impliedFormat":99},{"version":"33bb7966e2c859326207e0bda17423fbf1bd81dbc8e6ba54fa143f950566e9da","impliedFormat":99},{"version":"4ae63b19255579a897918c94e928c4351c6bb6de552d50f14f41c6f175f4d282","impliedFormat":99},{"version":"6701d92fe59eaa51088a26816117828e532d7b443119534b3c287252e362b894","impliedFormat":99},{"version":"4276e358bf27203613ebe2f917706385875fa02481ed2829a96611eecc8c4255","impliedFormat":99},{"version":"c223c62757304681e71494f26e78e828c83f9612b76c1181b2e9a7cf6f853fec","impliedFormat":99},{"version":"d0f4d6c857e665d4163074039b1fbd996d67b8ef233117412adf4748b33689f5","impliedFormat":99},{"version":"e25f0e3f148d4fb60ad91dc4ac77886119d2ff74f408596477c62f7bda54cb9b","impliedFormat":99},{"version":"a204e4f8f148eacfce004a47fb7920ffce1e7744323c2018731d288bf805c590","impliedFormat":99},{"version":"6ccbc2b75bce17aaf165a3e53bd42f4fb1c490937d73678698f1018712a73a43","impliedFormat":99},{"version":"2f9d66579378e44b999510d976019db0051d4fc25e50774585b5c1690b784210","impliedFormat":99},{"version":"4f24ff20d8144b6c62c7960037d088d4bc3732af9fa25193faceca8d964e9c22","impliedFormat":99},{"version":"8fc690ce074d7139ae7b9863ed58bd187fcc1fdbb51906eb5448fa2c4f69c74b","impliedFormat":99},{"version":"d0b495901d635e1f4ca7ef7ce0dd1d0f033ed575a74e7e4f599ff23b1464a02a","impliedFormat":99},{"version":"7b4ac20408b7abd1ee8046e17c906cb9acd06dadddce7274a6eb7519652fa374","impliedFormat":99},{"version":"859cbab6c3df49a874e53e93a5f31cd63da9794c539195566f56cd4eafd83baa","impliedFormat":99},{"version":"1087a211445a1facf9f3e6d12d0e0233c20dfc5bb38b94642b5cc5798a876a31","impliedFormat":99},{"version":"ab0429a9c1ba7871f47837f8790f7135915e5d9188578a1c433bcec320d42b09","impliedFormat":99},{"version":"92a8467bce8d0617b966b87b72b07d5c1fb83d2293b85b787ffaec73fa0ac675","impliedFormat":99},{"version":"e72c292bbfc6e6c9419861e1f7819063f4a98b187168189ef29d3616908bacf1","impliedFormat":99},{"version":"ea5121750c31d26449b306e9c6946c6edcb62d34bf20eebb64eeeed6c49a7255","impliedFormat":99},{"version":"60b416c33c8b74e82abffcec6a2027794ec4b7d3d6ed9d80fa898b8d7aa71b01","impliedFormat":99},{"version":"98437adda1b8689d60e70cddd7b200afac8acdbe7a583b1bfde6413a3575849c","impliedFormat":99},{"version":"c521cbe2c66e44386af345da9f89c134b9d75c89cd3445f07d7f39b3b52f7a30","impliedFormat":99},{"version":"40bb6f38b677b8a4fa4ad00d7aa33d0b95a9c13a2cbb82f3794763042be158b0","impliedFormat":99},{"version":"48be759e17b32da97b4847c67d4a976845106c8e01d8758fb0342d5793fca88f","impliedFormat":99},{"version":"ee36a7c4f514a005a5510d9eceb6d2d88b153957b1fabb7fcc68947b295650e3","impliedFormat":99},"bc3b202d775979dc25f8141dedc3bbea89b3b9589e626bbc02d25c28881b19c5",{"version":"2abe021dff4c7e90f93ad31179f576f1c0824d25d739f5055c6906d3c690c8ce","signature":"6ab9062a08ecf965b4a2ef9f017b4fc299d8d414b4a691b0d962e5462c5f79e9"},{"version":"af1333b66ed8918be5ffc921c2869a5999372ff00ab86fb8078bb6ee88ca3d4b","signature":"3d5cc77b31b373dd9156903577e30e5676c88933cdfb7b6ae643d10bc45a6f99"},{"version":"edc086f2abaab83dabbb6e14dddd7d2b077666c0455a21c7ed24735479c56fc0","signature":"521f859c041726d95b3812f48d69b17b2e2661e1bc8e00f1fdd2a86d7932959d"},{"version":"2ec45440b7f50ad68a2378dca14b22284b36b3fbd8fbd01cef823221fe238dbb","signature":"789f192d61a4646e69bfab1b09bdf9cc8d43c4438f996b38d52938291b507470"},{"version":"0f71688241a8834a9db0ed92172bfca539c6a5fbe82c7baf887f88b678821933","signature":"995c15a59179f0086ec51423b3eff9a72b507048dce86de4dded4ae5358315e5"},{"version":"3e1373e94a0872109e230ee6d2c8ec9c7fb0bba310ad1f9fb78c8a8239a3a702","signature":"0da590af9429a7d875176699ba3ec7d0a4729a73c09f32d689974a0902045074"},{"version":"b66f0958b3669cada534b925fe8b0182f3e61cb74b0246612a2d346d9153a678","signature":"50a0d1f55b162378c2a78ab07e525edc6e83259a81309b38a1a28491f24a67de"},{"version":"ce0529635457eec8b5529bbe457a09dc2ac0c0bbb037d936509a36edb36c2215","signature":"74fe9d71923247080c921b5c24a8012b8848d36cb94551d8784925d58fe2c13c"},{"version":"191deb11aaab5f1c8bf8ee864a519f40a8dadecf711fbd6663c34c20b4380432","signature":"32d5208afb9d139362be466c701205058695f687b2acf2e2aecf2d9c031e67ff"},{"version":"d2707933c8cd63993c3ed5169db507c4be1172962ec16033b09b4c1b89f5adea","signature":"bf4cb113d981f0bb81fb210434a5b2c2560397cc074a9f23103be97867a18c66"},{"version":"3ba768b203e9e1d35e8ab78172e329b1badc4f9b2b4bd66762d8debbab332cc9","signature":"072dccf2fe99dc370fea9e01a9d11536d97b20289a1c21773df7eade6ec99d4c"},{"version":"e3c4518906c94f7dc6fcfba840a578e90ac369f23204b25f2122c96b4ca53283","signature":"f7e961ee4ef5ffc87b8b12a2447e48f8d890c6f13a0bc662a9846ebcf296fdc2"},{"version":"6df0d923fc447c68b41ec7f69fa273ba2a49912ce7dc90af3c7806000e029221","signature":"e75d9b9cea1c28259968a28872f8d4f138e5f3218c3bcfc6f346df8d13c9db19"},{"version":"7ca349be23447330beddf2d2364091301073ac49b6e0eb7945da1e73a1e38ae0","signature":"c17450272a939bbc0b8bb49ed88147c5fdc3a7e67cc4520128c7626376eb7a6c"},{"version":"a2398e2b49e5447321cbde7ab4579ec4da3d173dbbaf4b240830fb2dff11a5f0","signature":"33edc47603b9968737b294c32984c7ca39c92dde4c46a1ecef7d5bf411db1f18"},{"version":"504af442248b05f2b0d52d0b74e0551fa1df198bab7fcfed08e12ed27d3198ef","signature":"03a1e80f6407f05cca134c295bc7e729d08fc7410d9da04d91bdc75355dfb9fe"},{"version":"177a479fa86eac03ee982b502f11dcb9fb00239d9e14fb29f631856047b9b6d8","signature":"98c470368262cc2ab430b8e41213dc00634f46fece73de79cc088c282138372c"},{"version":"750a4c9c610f7cfae4ca0e9bd4645da8ca61a89373aa35dd27dba47be4ed186b","signature":"50e59fe5af5ea60d6d8e33714ffb1c06d20ca4402674c0bed6edfe6236a12761"},{"version":"5a80589c88ef4d37f3ed14f2ba5de8fded1c1da3bed3ab200587dd13a02b54ee","signature":"9b56c1c9c1f1e99fdfddd5853aa653b7a611b2d7a3b346feb5fbf54dec899f03"},{"version":"a4734e20940030d1a6a8e564e3658e72d58cf7b1a1c7fffff7701c3cca234524","signature":"6e7cb9b96164782fc313de15339b92069c2c9b4441f873ed78bd234f317b8f52"},"eab878fbc3604e4ac33329e55d80bc9ea0df3fe95cf8426f51dd8806ca881ea8","825f1e1deb3a21268baa751253d68695616c5e03935db3095aeb9f81f01fe55d",{"version":"6eca3322e4c1a883f455170e324b193ac962b2c294fa4a7032de873de7ea2e09","signature":"d8b280b3a2ce542ac61210c7f2643afdc384a8e7e7dc85a54a5512e90e7597e4"},{"version":"42d39b6921817bb0d9a69d14272122b97c192f79a65f904a9ccb8d43c06295a9","signature":"2f38ea59dd46654a6abcd1dbf6d01f2299d63d1c278b8f884b5739f27d47cdd5"},{"version":"2c2e64077fcf67d96a31b03a39e180bae9f0c7d4601868e4290955b25b08b5a7","signature":"0e45a32cfd6e47f6b5cf9a594b3c9f8ec0f31d7a85c43fdeaa387577ed2177bb"},"9b3cbc81eac2bdae4b6804a8b161003be01344b19386f26460ad1784d5ee5fd5",{"version":"45b55d82eb4b55d28101806c7cc7a28835affbc1d8892152284236eff5c1cf75","signature":"b81de957577a744f0dbe8f69600df569d724d6e9330070c10cf9d6ca49fa4eb3"},{"version":"f52977089c15e0e124a3edac21e922c1a499fcc74a44f68a97a3ac926dc39f9c","signature":"607c3a01592edeb86159edfd26749fc99b4ed0636b52cdcba58bb2d7d014aa9a"},{"version":"4fc373ca8ea809216ec71c5ae619ff137207769878d6e6c3ee881133e8805437","signature":"94e6fe0b64df528ca8abdef9d3ac76a77b23d188da8d105f7d8b32ef863b02a7"},{"version":"8472d0f7b127ca64d5cd415eaebb29047792be3d15f910aa580af8e833e0c681","signature":"8167afceb8c5c85e0da42bd37cc822ed3f97fd64edf8aa29e69980d55b847215"},"7b7082c1cc056a6ba486b18a22ffa996197e1c1423995ba0d26896cc743d1d59",{"version":"441ee8297c43f6a32776ceae887c2fbf5348a4efaf5772e2a363dc5c716fd8c2","signature":"0284ede58b78b3abffce6c29c13518312fde936ccffd9511d3abe77fda0f781d"},"59b794157e7591bd01b063413aa34e0304f34960ac1a1dd2e63c559d8c4b6f6a","348263cbe39e2c0c512f80e40daf32ef63e8f97d80e3c62ee575632ac59a9e89","5538da9cedbb8e829f62270b63879a58de928f6b5b37c7a5b58a5b6899e0a99c",{"version":"80d0ee366864367942ebd51b0cf10cde5862086b096e47553c0718f01580507d","signature":"ab4a8afb9d228d4523d3dd61916ef285464d529c05d48a83c7f7617352fe8830"},{"version":"433da2a64a8c09769662651babd170d7a464081a8c681c1a6746349ff4cc5bd5","signature":"eecf1c5ea8f98feeff7cc44f2621ec492ce6f28e1a080485966f60518a493842"},{"version":"b17aeba7c224f37c16c6a5ac2f11ff2f11be91b18a44a95e1f71dedfc8753fef","signature":"958efeb41ec8e6d7ca1f1ba6ccd682392b332acfcdf4d3e910bd78293de3881e"},{"version":"c4f55db6c09fe8128fb8431552307450639be7988554426a995beb9439f3abc5","signature":"03032c151d845003b05410e56969fac7a2262ec8bd7e79edc0845ad66c0d2a1b"},{"version":"25a5b63f5d1297bc4e8bf4ba10d7954ef5b2859be8e0f08273144bc6951fa3b7","signature":"47f8f7fde59e7c9b3a1aea4b67829a5b605aaefa918570e0aec06b80ac726bad"},{"version":"0648a8c200b5544e30677f7f7059b1e384d6cab716c82659716457e3f317ebae","impliedFormat":99},{"version":"6042774c61ece4ba77b3bf375f15942eb054675b7957882a00c22c0e4fe5865c","impliedFormat":1},{"version":"41f185713d78f7af0253a339927dc04b485f46210d6bc0691cf908e3e8ded2a1","impliedFormat":1},{"version":"23ee410c645f68bd99717527de1586e3eb826f166d654b74250ad92b27311fde","impliedFormat":1},{"version":"ffc3e1064146c1cafda1b0686ae9679ba1fb706b2f415e057be01614bf918dba","impliedFormat":1},{"version":"995869b1ddf66bbcfdb417f7446f610198dcce3280a0ae5c8b332ed985c01855","impliedFormat":1},{"version":"58d65a2803c3b6629b0e18c8bf1bc883a686fcf0333230dd0151ab6e85b74307","impliedFormat":1},{"version":"e818471014c77c103330aee11f00a7a00b37b35500b53ea6f337aefacd6174c9","impliedFormat":1},{"version":"dca963a986285211cfa75b9bb57914538de29585d34217d03b538e6473ac4c44","impliedFormat":1},{"version":"d8bc0c5487582c6d887c32c92d8b4ffb23310146fcb1d82adf4b15c77f57c4ac","impliedFormat":1},{"version":"8cb31102790372bebfd78dd56d6752913b0f3e2cefbeb08375acd9f5ba737155","impliedFormat":1},{"version":"f17ed72d1b1882ab6dc66d45e699f757d15bba0807af2fc9c3ec98fe367611c1","impliedFormat":99},{"version":"b1067ccb56b38af060dc3299ea7c4c6362cad4f07d0d454325a74808204fc801","impliedFormat":99},{"version":"7bb43a0f0180ad87b0a944ef95be8615d4c1d621a93ae503a8fcdee2027243ef","impliedFormat":99},{"version":"ba678532514244768286bdfdc82b33f072d5de4e9d281a75bcccdba9970788d7","impliedFormat":99},{"version":"0b79f95a79497386c50f38bafbbf59154619e51d7bbe5acf61cd376d3c9d77b9","impliedFormat":99},{"version":"5993793a23b298afd20c2e1cd2bf8468cc7e9415d314d0771e93dd8b2e389d28","impliedFormat":99},{"version":"05267740a5cff4399995b08326a2e250f229e9926f453162192b9b96b853a12b","impliedFormat":99},{"version":"104fae9b53b5eaa040d9ce626e1bf0b3e6e27d269a899a98a4a28358cdcbc155","impliedFormat":99},{"version":"50a6aa665f3a2e769a4d683f9f74cd15164d0947fb957d8016331b170ab8b643","impliedFormat":99},{"version":"af1c82452583c91ff01be5c5c9809e7bb10859ff7027fadc4f0f85f79f807b57","impliedFormat":99},{"version":"4abbcac9096680e4c509bcb3b629338bb71a153ca6d84d0b764dd697209f6147","impliedFormat":99},{"version":"c7c610b24e1597ca99cc2a148f5d4727ec5019e0bbf4f2d70d1587927c11eafe","impliedFormat":99},{"version":"b9230f91e3aa1e38a4434eb04c0fc50928d7c006b3f2fb90f398c3690dd04c47","impliedFormat":99},{"version":"6c2abb83780fa85a15dca27ab7d23d76a73b1bb66f3c834ecf83ee53e340ab1b","impliedFormat":99},{"version":"fa68082b5c5f841c0e5b225b6770591bf0d562b2d34e923cafcff4aef8da6609","impliedFormat":99},{"version":"2c7211311fc491a99e8a583d0b6fa77ccc287c9e3beef5b80ce2ca6a11003d52","impliedFormat":99},{"version":"7ae48a41eb14b67618693cd9a9565c932c5685be8ce991372190894ea2ebcd48","impliedFormat":99},{"version":"4052e57b4a37a2222b467c9dc7eb3b2603b2d9f6170cfc8aced43e0c1a1a1452","impliedFormat":99},"80d91d9b721d08370d2daebb758fc81ad2481282a9bcf10a6901d1af972b4c18",{"version":"d8c2b2e2d1c0e92631fffafa4abec939e448a6aceab2c2c4f7e1a3c58500fb2d","signature":"eeb9e94d1a56a7b739c437e8a618445a418d86ef0b52874d2e7dc212c01eb0fd"},"496d41669d79e0f98c7d304e7cc3c5c6afa6044540e14fde86e585a11c836fe1",{"version":"5065599a128f873f88140d0d7d43ac429bbd0f9e765d4f33f58f49f9fe41fcfa","signature":"28d2f3ccd02cc2e1e1549ddf7c96b31fa2aa514fe9901875086b32d8c36143c4"},{"version":"1a2ce555579780d25be42169d4dcfd8e542b8fb5f30470ad0d6a51e62a641c2f","signature":"197c7448a6e49f12924c15245390967091bafd88f6e9a1b150b3f8335e3d6746"},"e9380c47a93e25cfec95ac5f6742d2c8f510ec1baa6cf62a12fd4222c744f7dc",{"version":"5828d5a3ec8f31c889e04db2cf5ce15cb62309836e462b6487198d2dbe65fb8f","signature":"0d28b7a483a4eeb1841ffa494f47e2bef644d9ad757693ce10b7f7776810f049"},{"version":"4b9447fd7a9a55485ff99cd0a7caa39990b1b28bad4b2319daac128b8ff3f090","signature":"b96b29b0d3cc8abe788d4ec6ac3e321226fa0c67aaf44186dbe18598bc7c784e"},"253c8cc4e3ae6bf417eae013ac218ab8c5df07dbc05e0fd6d753f811562f0337",{"version":"f287d2865d151bcb32c356cd8a99243cfea0d77f4d79b699b1422211a40e810c","signature":"00e5adc64638dbd70ab14bf7c187c202a8b2b2f1c6a81295026bfbe18ea95f29"},{"version":"be8f8a63026cf56f48185732547d76802f88e35accddd74dce79017399fa9177","signature":"38eaa376a2137bc721bfe623f7fa246f9749766d92d59f87ab62c596ffe1abf4"},{"version":"3eae01788d13063ff80c958baf1de2268ea536dad4b6267731325feb9f6d8031","signature":"d01420711c1631c20203c17e6206333c75b6bb0038a5ff49deb6f3bb3fd1e937"},{"version":"342c22ee7ec792d64e9103e60fd39c9d9801a2f914a0a041e36c80db28ab3770","signature":"10b7c4754c05b7e1bc6d90ee3f5a58b1af3704a7b76c0b0d11f67ce6a1682630"},{"version":"0b3cddb080af763a11ddbf6edf300a611871936af90bd25f1cfbe2603ddaa07c","signature":"20da2d4ff8389380acb5382d15a3c9b938cfe6b1525d9a9e1808c0642d5c1037"},{"version":"c5c5c759ccbce27c361c1729a7251320e8dcbdc39d318c2e565f6817ad41f670","signature":"5d2bca784639d3ff456c7aa0d8b3e8e0c8c361d650b27bd5bef0f6271f53457a"},"c2bf511d724d4dd226e5b9962d8a18d2018a5841eff3ca02f5ae8aab24364e3c","d43945cc3a2efed7586f3f336b8ca9b1154a4d192e2e36fbfdd809c6639a6e0d","ee45ffe1add6788342b6710dcd7b4d76fe9e68b23ce7b9c578bc0ac077f356e0",{"version":"8c986b621269e9bbfd3ccc4fa17a9ccac7ac2e90ca8914d86cf88e534676938c","signature":"dd4502ee1d32fb81332315f798bbf1b9de7ee39208571aa57854d5688faa79c3"},{"version":"1ac18c1d3ea69a54c3867ac1217d903a2b879bea750845086df236bb625e02b9","signature":"0425fa2859802d8e3f95db29aaed43222da1b93c10000cfcb6976afb0b633ffe"},{"version":"76ad22bf6d34ac834ae1a163e0a70900b6f5ada8556c399db0cfa2175bfdc48e","signature":"6661865260700f992f90556e489b0c8270f568246dbf115ebaa282bae5316b0e"},{"version":"831d0c07da33d6e6721d08749f2f29f7f486e999e2bcc2f38e619c5ded7d35b0","signature":"0968f6bab7d95b1b4d056c2b3bda182c4f9cac7b6d6e6aecb93ff3e4bf6be286"},{"version":"5145ddfa8722ae56664689eb8be63b16fc696c13d9810662eed8c087639e9862","signature":"2ca839145ecaddd22ca7d16b875527ca3cb6e77e1dbc6afa2b57c89332a33ff9"},{"version":"c4e86f7cf577e357ece7b484a48699ad6bbf835fe8d2ae6b3d623723136e579f","signature":"2b17a132fb4caf3d7c2c5f9fd160d1c5523ae6774e2de2f8f0892d015829d4d1"},"e8c6443b37e259c11b8f7c392a55d8128327f11fcf556c4fc3b06f59428169f5","bd69403103f7b8f2dc7a83c2e6c4758be6bdf1875d87fc69d723bd047135796e",{"version":"0fbc38f53f0ee68182997b3d95e8b825b9aa3e6bbaa39514e72cc07db916597a","signature":"b3124ee2e32e826280657e5735878ea5baaf8b42ec82cbc6fa57049dc5377f45"},{"version":"dbd0e2af93ba88640313c3adfcc06f892cb9680859e71f35f6ac1debf1adfba7","signature":"b3124ee2e32e826280657e5735878ea5baaf8b42ec82cbc6fa57049dc5377f45"},"5e0cfa255bd039b298cf64c6226643b7398b7bd1de2a8ae97e2e3b0c83124138","9631317cb556acaf1cbbc378568d105c5187347d5af0e3e348660100408918d3",{"version":"4dc783a91ddfb206cf0932f0446031a6b361c9dc5bb915dd358f680b90624e29","signature":"9bc52cd85548091733d7e868049c1d9ead96f63305fe29fcd5b7a6c96a318123"},"b375e6541bfbe5ef34cf8527dfcdb05efb5c51a321d8cad94dfeb294b0a8be22","573d68cb38e90d4ddb50bec015260c757db0d125ee0d654aa4fb1b0b49632ef6","be66ce7870caf51b7269f97c4051d6c440d1f7c7785e88c848b6d96157ddfc50",{"version":"4cc289549cb8ae711fb3d95e48c511ea31f4a8356dd40a7d809079dcb4bb9f30","signature":"c59fbff386bd6d5a8a496bc46251adf0588096c31f3d65c9f2d8536724696a85"},{"version":"c805a4fc1d80e8084eea2b63b12977b918ed82b30356adfd6b26524056645f7d","signature":"db0b36568e1401ab81266781001a868c938833e6b095f910ac6b7cc410d097a0"},{"version":"d780541680c95745c8c483b412a205c204218c920cd2584234f13a6c8f13e834","signature":"b629cb04a43e86c4c92835bcff62b2109173b70d9bb64d707e40a0e9bc87c1c6"},{"version":"e2766283b4bc07ce67c90e79c8afe83d035af90f27c21f20e9e52b4171e1ed15","signature":"6fd7421e9259b72ff58a07bb48aa2c3f59976e878d5937958d0b50971e9d5b11"},{"version":"9ea346290c6c5afc472856afb2fd4b124b59afe3ba81f44501807d7c6bd41a74","signature":"1cf3f3c0cf0c88265f689d7b370b59c9093e748e0212eae95f6288a5ab2f0c59"},{"version":"b45428d191d2ad385944c0f070f815e1f7f6f3a8ca2f6ad127a6ac7f382d4259","signature":"133cf88e94865badd65524d47a866ef4b0863e4e5724092ff3f0046068b9a7d0"},{"version":"a189a5708c06cb9225e957ff1602cdbb1a67893e212533371ded0c2d4a951f99","signature":"e9464fb6f4f408e896b33e366f65641fb01ba61c836d3385e486f526b0667fd9"},{"version":"0825c5a2623ca351bfff30228125c6fe07d0e48f50e540e830298a729dcde9e0","signature":"f976e456b85a0f0d43cc6ef3f97a6effe3352dc083ac4bdb23073bb2d273b647"},{"version":"fe6602d138a763952a276d82ba1f907e2ec7ff5d38e077015b4731b36509e44b","signature":"fa9004223d3651caaf5bc015bff95b573014a16d4fc110be79f205a0a1536e6d"},"672b58829a1b9dce6da112abc64f014c14609019db3f8242cb8c502853d98a30","dc729af7dd528e068902a07db7786b8c40f713a2fd8515b37d873a57b6c766ba","61475735cc2cc89debd72a2c02773cdeaf5be25be4aa54bd8425f12e713e5adf","a0384215a8ec3b99b2d9bc4c3dcbcf7e612e5ed17d33a762d241ff995663fdda",{"version":"5fefea11b32432fb9633cb8a4693299f65515418205cdcee08d8d0f46725476f","signature":"cac9bfda527ce7380dd6574491d496bd08379ce927208393c99ceffd134b8b0b"},{"version":"67ad038da4d9c9f16ad194caacda03ce8d1ee78f8890b606cf82ccdd49a2d140","signature":"96d146c249683cf4fb9c774f6bdd689c47aceb8a3e5eb6abdd6ecaab7cc98d2d"},{"version":"12de275cd03adfa2f9525c373d15cdd3fc676b849eae8cf0299bdc3976e95ad2","signature":"8250ecf69805adb99e04565b5d795b5cae53987cd442150f4e4a3915bee63969"},{"version":"267116d2b8fac2bb829a6f521086aed0cefc507075af8fb99ae7e7152a2fb048","signature":"e7c5c5339729db0259e904d4faa507dc88051ef82f60c0b0aeca30d7c8a973d1"},{"version":"87fe6873c3de06a2d89e2ffeb4bf3b37a0dcf011f14d2f73c630972762615eae","signature":"c86175a097e3cca80a7eea919ba6e0488d38aa136914da849c2471a3e59e7d9a"},"deafbc5b2c1329943a209aa3d3c75c7148ba61470489e4ed4bec610fe73900eb",{"version":"e193ddb91bc75bcd124ef5796098d6b6b2e1eb4f188407656c7fb04eb3dc38a1","signature":"b470fa19c7bd67a1c4d16993059bfc876f171632f4ba9476d34530b00ba799e8"},"9d9b8257e8660aa671c8bc1089a33b57fbeb459d59eaaf76f5dd14519e1dc279","f70f5bdb5dff96aeb3e2997f603133e9d39b187f0dbd5f1945cb4d8e4525ba81",{"version":"48655afb136b4bca3844b833a0f3c3e9df837bada387ccc9283d12f029123c79","signature":"34eef2a015e320daf710d15e3fe70795e235491b29c307d052ac265982eb2a12"},{"version":"6b83491ca98ce7dc82ec0c54f1456705c9ea08f5a39fa8cea17134b28e2a73d7","impliedFormat":99},{"version":"33aa2f336bb0bc598652ddd1ad3095ef7a14e4dbed9cf829fa9357e989fff31a","impliedFormat":99},{"version":"d691e546590145171d00d78b341bd3ca4844c96eb34f870be84058a1cab585c3","impliedFormat":99},{"version":"c9d12ca3f67129b3ed2b81bf54537c970673cedd05ba28fbeba70c1e8aff684b","impliedFormat":99},{"version":"6f0b69f7afb2ff04a4b73fae6b43476c14349a438881c7a8c3d34cbad2c2bf3b","impliedFormat":99},{"version":"279bad0c52467a3219ef6659a47bccfe96c20c6c9429283fa3d017afa965ade8","impliedFormat":99},"40b8fb8bc2628b280a7c7f627ac71c36d9b17e67ebf0b1bd5316d8490703620c",{"version":"519d1ed177efb95d806259aead2123a0ba54d728eb2f7b2697f1fa4282072582","signature":"a4debd67dc48d95c8429dd510672a437e1de0ce6c6261877a65315c85594d7ba"},{"version":"d015f23369da065788916bd2a85e2e50e3fea770da68263e8a820ce02f46b431","signature":"6a99fa5388147a7858f78020a0cdccf98208ff689cccfcf5ee05c66d5833abd8"},"24ea2da8574ec27f6913aaea7a80735d5a9e514fa4fdeb0335ce7d4ff21ba74a",{"version":"64c116ac12bf42c6ba1c60ad2e4213b8b227a67b87a8fc7f3992f1c5474de16b","signature":"a3ffee57de47b1ead2bc02fd45b516a385fc93e02ede832ea427589863b39d5c"},{"version":"90ee05dfe58f79e535fa1196792be3d79b6434cdf70db573be6b904a1b424afc","signature":"89aae091690e16dae32ec07a95af2b48d0c8e2c1e6293ef2dfd0f54f6e89e07a"},{"version":"9be5b76f36bc7149a55feda3fb23db8d80dc1601a5fd72c6353f4ea061bd1573","signature":"12632461083de00f939c46372aae7b230d6308bd3ad679a7830c40d843eafda9"},{"version":"28fa7bb6d0a3c98404bd648faebdfde8041c9d78f18324719d7ab67d59174639","signature":"299386bc9af97853f4dce09838f7a5ed4fbd6d121307ea498d4c0aec8ff5ce21"},{"version":"5fcf4ea14b640054b3cca4e546002a789310db73d1f0d34ca69733df1236ccb8","signature":"299386bc9af97853f4dce09838f7a5ed4fbd6d121307ea498d4c0aec8ff5ce21"},{"version":"e722d95ab2e35682a7ed342769a615cc534a670635a16a7fe874391c97546ea3","signature":"299386bc9af97853f4dce09838f7a5ed4fbd6d121307ea498d4c0aec8ff5ce21"},{"version":"e4181e8ba93fe3225130612fe83487149413e4b07288ce485e2db6fb5f14426e","signature":"46b9b44075504fa72bd3a5b39cb4c7775dbea2959aa6f5ea608e41e642c4b12b"},{"version":"322518416fbcbca7aea54fa2e0410da47cb53618595e63d19b030c0c15579391","signature":"98cd5924d67d74e3e9440dd7bb2292be13a81b5c99a928f21e9bd17daceecf7b"},{"version":"6e50164dd15eb442f7a9eaec4d8d228572696a4ab411f2fc0743b9c130e54bde","signature":"20fb8e8b1a039550336c10b75fa71af78883bcf4bdf723f7a52c9e6f20f9b3e4"},{"version":"639b5ec2a408263dc8ddd35b9265a13963bedf8b50e011160b0b93ee0228fb12","signature":"5c3f49e4ac84e1ee5959fee0655c766814f642df989f7548192de977138e7d7a"},{"version":"14a4db0180ef06334eba196424119535de60a90c31e176a4bfb10cf836fb294d","signature":"25ddc05d57f02e526ba809f7fa1d37fd3ee307992c9e6b6e708b7bc95d5d027a"},{"version":"263e50920f4ade349be04aac5a7743114cf052ddee75f39fb945ea9c6941b33e","signature":"91adeecb6dbacf39494b33c5a8221b3896f337819cd7c06818863df04982930c"},{"version":"c5258ec247519499b2123235f4e8e874e6c024a9855dd7f083dba49d5d060588","signature":"e144decd4d3b40f69969ec71612fb3ef7af948ad393731400fcb188f8ed016fb"},{"version":"bfb6ca15b62c71bfb50cf3a5583a6d3795d08a324281c0b9f6498421a115073d","signature":"7e8d4cb7e42bf59e20ddee25dc9e45970b8ba809de5e217605b4e163bb0a22ca"},{"version":"00e6a485bfd5af6a2db486ecba6e8b65b8b68b3a8feec0f692920fa9e7696804","signature":"4612ed20e630b03b161ba77a5f3e5d4efc87ac13e72ec1e5a33884642b8b132d"},{"version":"c7c708a2673ef7e33855adb8126a3f66dc2debaf82ae3b4448f5f9bd47b0ebb5","signature":"332a530ab2fef5071ff5bb2c698ffc2a35e3e7e877b8dcf9ceef03bd1ed2b397"},{"version":"e70f8c3ea7cbd3eaf71ce6238224d28314d8761a383210de1771c8fa57510b76","signature":"5122dc9b663804448f78c2373b76798f56ba8aa137adadca5aba4d952ccc4386"},"8b2bd25f54443520885168610990ee601d9610a3347be01b0bdcc657138d44d0","e757788663ad2c4f463bfff5480779e252b715f731ef9ecc8b4e3a26178ae998",{"version":"3a84aa0cd2ee3f2abc3fcd9bd786c21657f6c4b8554ecaa2816602883e824480","signature":"955967d94ab29ef08d14c639848f9455f4e8f7153c362696b57b51625f540e13"},"360ec64ec424f339b28e2981a649501b5e73d3a4e9cd7daab86d3c1d0f113d88","5f8bdcedd2c7733ecd4118417cbaa51e5d0479b5f4aec42faaf16c43f53d6da3",{"version":"ed4742af83f53e9f7a1ddfec2b461632954282c87aaffb345db92023f8862c1b","signature":"ddbcc48ee2fd055c3caf9455fec7b3d9ac5d632ec2b3d7a7b14b4db0127493b1"},{"version":"bf5ebd0a946bf3abdc171c982ffca0aa2a01147d20b792fd311903ad5d845747","signature":"4e61c42043e22d2b8993e456f8e44fdeebba62381ddc4ebc60855b44b2185e82"},{"version":"e415d168351a4d6ae237d9bdff52492992c2675d510e3bd1c880777136509e2c","signature":"c336bea1cfc838e69dc42f8a4bec001492cebdd886fa381af4ffbe9eca4e61a6"},{"version":"63241f8ad2df99fa429d064d166a694dcd7509e56ae8a847acd71258b16505d8","signature":"e4ccf9c4ae521318e3af0451afad1dd1cfe4564332b5d8f2104f68282d952cbf"},{"version":"548c1f8f04091522a5efdf1894a2c16988d6bdd0b66df4cdf0cd4d74e7a9335f","signature":"e93549a1179626a5c9142681686c6dd3400d8e0b70bce7850c422df28747f44d"},{"version":"cda2972ba874d32dd56786ccc1ac885872944ca6dd5ca3ddf0cee3160de1e65c","signature":"acdb28057a6345119e9fd6a0c942d834ad069ed6b9d8965b663ea0c5415bb330"},{"version":"a74045b4835808a6d65fb29c9f416bd41b64002258d65407fe08fdeb22959ffc","signature":"a484779d6043049c54fe0946cc88f98f4db2d1544c49dbb9c8b21fad963cde34"},{"version":"7747cca8bf5294c70e1e896d146d9e914c3002828418c9221fc79b97db2ae511","signature":"c5aea9ff7a351784e5e9a373b82ea636e15d341d7e01402ee199f5aed5f0f7c3"},{"version":"011ab4928ba0057256364ce4dfc695d6ad5369480d5d9610ceaddd9d51e98635","signature":"dead3834bc9fb31445798e1a961aae441feb6661f6a73b97c2f223a5a2b16bae"},{"version":"540116188d31dfa794b882921002731d97f60dbb7233a1e084c21f59d5c3e08f","signature":"82f2834cd3eb66391036870c93464a09fd97b74d7a3bea695100471c9da1357e"},{"version":"ff4e81f251567978731756b0892e54b2ba534aa182085ac57d6e8d855fb16f81","signature":"5458592a47862700562c603baa377eb3598c651edcae66fc4b41c2efa5b629e9"},{"version":"9c81dbaae420470165ce4181b378df3fa5e806259cb477ac794f887f3d30c7c4","signature":"ca20734dda9f004b09037fe65a8290d82777d1b1a07b281dbf43006fc30e4a0c"},"d0726eb0d62ade96bd927574c80684efe0b6e92c83443b1fed8a458011740c21","20108bd3594842afed7126119e8869ab7571b921010266978904838e95bdee02","591b5016e6b31c97dd388d932bd2df719d2ed4d1f8b804afd5a848fc8bad17ad","9c2a0f2246ed3a29e31f43ad3dfa14fd0861fae9c7550d3f5e3fb2b6801b257b","f11b4176ab0e6b07de56842d5bf84712b26d160b3f116510a06f0f5bb4004f8a",{"version":"c03a52cb76dde599d5d19c1424eafbc74934b450b24c0d746c4f42d439bd86af","signature":"d335a2a42133883353c1595e377113687adc449d0a7391dc1133ee34920297fe"},{"version":"bb9cff9c2211f50ad9254ae7883227f06e454c8d5bb5d0bc9719b667efae6d43","signature":"bced04370d5bd5e3b03a193aa3da10699d7c9d42530f1e1a9d23b9ea92dda0ce"},{"version":"bb841b4f698f935b97e0bfaa9a4af5bb99cf10c6c791997d4601adaccc07cdbb","signature":"247b1946db29dbeb9dc3b104bc2c94e630a6d3f39a96b4ef42012dc16b62f501"},"4435a9b91a18ff231a51e5e5f94a796b0f8e5227f0804d520d7d22d3990cc329",{"version":"6d31a8c66aa2d0dca83741fa91d67e888145a6d284f0b6c6782ac016a9324982","signature":"ea600c3ef531a4fd9ae3fcc2d14187b80de3d5c2a8ff666b71c3dc86ed3e8c62"},{"version":"1b6bccbdecf9598d73e9eadde8b628c61bf48014b3c2feb7e4b59b5e25133659","signature":"b51c9385e8f90d462dec7619997b6740a4a96bc3655e394502228a9ebdc1b225"},"a625e234e54e2cd62cf2eb7baa689e359e4685bf3470d535d3e2dd62aa93bbe1","15fb0a78fdb235207edc7244c9af54e0a8d74e35988278a79be4a31f292e08fc",{"version":"713571db67fa81007d8267a5c35bd74662f8da3482f2e0117e142ffd5c0937a7","impliedFormat":1},{"version":"469532350a366536390c6eb3bde6839ec5c81fe1227a6b7b6a70202954d70c40","impliedFormat":1},{"version":"54e79224429e911b5d6aeb3cf9097ec9fd0f140d5a1461bbdece3066b17c232c","impliedFormat":1},{"version":"6fc1a4f64372593767a9b7b774e9b3b92bf04e8785c3f9ea98973aa9f4bbe490","impliedFormat":1},{"version":"d5895252efa27a50f134a9b580aa61f7def5ab73d0a8071f9b5bf9a317c01c2d","impliedFormat":1},{"version":"57568ff84b8ba1a4f8c817141644b49252cc39ec7b899e4bfba0ec0557c910a0","impliedFormat":1},{"version":"e9458a859b5277166d30117ae324e2e283c02467e59070f621855ac47ffe3e72","impliedFormat":1},{"version":"3fd17251af6b700a417a6333f6df0d45955ee926d0fc87d1535f070ae7715d81","impliedFormat":1},{"version":"df9e48304083ef3b9230064c19b8fba228a83d82d8a8a80d3a1d76fdc36728c7","impliedFormat":1},{"version":"a04338d8191ebc59875ebe52eb335eacf8c663adb786ee420ba553a808566dc0","impliedFormat":1},{"version":"3eeb5791a25114e40457eea09eac6e7bea6944fa1e55c4be6d80b5dd95f0cdf3","impliedFormat":1},{"version":"f79dab612917081d3097716db491d46ba71760fe960bb2af7f3f85fb28dd8ebf","impliedFormat":1},{"version":"7fe31f933471075abbc4e7529805ad31251a7019cb9658df154663337e9bab60","impliedFormat":1},{"version":"aeb8e8e06b280225adcb57b5f9037c20f436e2cbbed2baf663f98dd8c079fc02","impliedFormat":1},{"version":"8301312903d99c319863dc7f788dc0e1a56915d8959d3e2ac78b5d12b366d571","impliedFormat":1},{"version":"f32c9af2ceaa89fa11c0e1393e443cd536c59f94a1f835b28459188a791d0d24","impliedFormat":1},{"version":"0f8d5493a0123ebb6b6ca48a28ff23952db6d385d0505a2ba99d89d634f55502","impliedFormat":1},{"version":"5396ccd4007e9fea23eda8c4dca1f5ccfad239ec7e13f2a0d5fd2c535d12e821","impliedFormat":1},{"version":"9c44e80d832d0bca70527a603fd05b0e4b8d1a7d08921eecc47669b16f0d0094","impliedFormat":1},{"version":"8f6786732b48efa9dcf54e3cb5db9b37e93406ab387d0180062b0b3d1e88003f","impliedFormat":1},{"version":"313c53dbf07386f95b55a1eecc825d7d268437c634e9d42aa9a30417f71fc993","impliedFormat":1},{"version":"53dc4527a3ed51f201376ea3a11152afe0ab643477719234f69122f3e19fb7f8","impliedFormat":1},{"version":"3f9a50b3bd5d05ce64a1eaa5b6d9e4557b09f052cdf770f6960729230865811b","impliedFormat":1},{"version":"28e4024d110000ebd31e4446083d8491e38a8c4f64e8b710b758399aa317ab3e","impliedFormat":1},{"version":"48e13fbff9dfc83cef7794b3ed560059eb2fef86e7b73b8221da195ba8a6fdc5","impliedFormat":1},{"version":"d88e0b5b07e7da500c1fcc6b4b1ffeacd8c4494148ee05657c076560ef23c318","impliedFormat":1},{"version":"7a9aaa2da69a99ddc1af90adc264f4c46d9b5bd5445827fdd10b5eb6b041f856","impliedFormat":1},{"version":"086caf9537c9e76607d11e605f2b1892b7f4e061a3d85de46c6b2718deb54a95","impliedFormat":1},{"version":"9be97e55fdb734ff04137191bef5ea38ede15c7ec1ca4d51ab0897c023f38610","impliedFormat":1},{"version":"4d1b4a4e6e4cec22d76f7a5bb6d909a3c42f2a99bb0102c159f2ebbdf9fefe09","impliedFormat":1},{"version":"30a82ac2d8c8a45ffaaf0b168dfcc9e477cac0c0928a95ac95caf799a7c83177","impliedFormat":1},{"version":"a98ab1b88f65636695b52e05575b13bda171a758cee50bad0e6749fa98d56e2f","impliedFormat":1},{"version":"957e2258cd6c97d582673e83239141e810a42caf4862514a7db6806b35414c25","impliedFormat":1},{"version":"679652fac17b05a2fc6ec2ed7dfd96c01d29528ee2ef976b5a486c82ebcacd89","impliedFormat":1},{"version":"b6b12d7fc9caf24f95581113ceac63c12a674c82040b60e1f35fdc972f36d24e","impliedFormat":1},{"version":"066f0ab8c0d0100b9db417204defa31a9aa9d8c6194ba7aebf71375701afcf21","impliedFormat":1},{"version":"1d500b087e784c8fd25f81974ff5ab21fe9d54f2b997abc97ff7e75f851b94c1","impliedFormat":1},{"version":"c947497552a6d04a37575cec61860d12265b189af87d8ff8c0d5f6c20dd53e53","impliedFormat":1},{"version":"b2b9e2d66040fdada60701a2c6a44de785b4635fded7c5abdf333db98b14b986","impliedFormat":1},{"version":"61804c55cfa5ae7c421f1768bc8c59df448955842264a92f3d330d1222ca3781","impliedFormat":1},{"version":"77a903b2d44ced0a996826e9ba57a357c514c4a707b27f8978988166586da9e0","impliedFormat":1},{"version":"3e46c022f080be631daf4d4945ce934d01576f9d40546fd46842acaa045f1d24","impliedFormat":1},{"version":"1ed754d6574b3d08d9bcc143507a1dacf006bd91cbc2bd9a5d3d40b61b77cd88","impliedFormat":1},{"version":"5d73ec0f8d0b16281b3e33f24670e8b131f1019b3584678d05b723301b48638a","impliedFormat":1},{"version":"aad61798065cd6be03e53ba862d6fe28a5e0347c8b54a26f7af264abb2228d81","impliedFormat":1},{"version":"d03447d1f0c153f4ea2b00135d73d19569b80191fba23fc78dfcbea62f3f3ab6","impliedFormat":1},{"version":"b5b341eb160b9917993bdddeb42e8e52d6333458a59f8c160a4001e6822569e9","impliedFormat":1},{"version":"19a15f51d36de3326ac7aaf3518558c0823557a33f9380753a1f8ebb3b3a5eab","impliedFormat":1},{"version":"97fbcbc2dbba4da759d703ec478404ff6838c9d51f420dd08a193f4dbfff0a73","impliedFormat":1},{"version":"8f433a52637174cf6394e731c14636e1fa187823c0322bbf94c955f14faa93b9","impliedFormat":1},{"version":"f3c2bd65d2b1ebe29b9672a06ac7cdd57c810f32f0733e7a718723c2dddd37c6","impliedFormat":1},{"version":"a693fdcc130eeb9ca6dd841f7d628d018194b6fd13e86d7203088f940d0a6f20","impliedFormat":1},{"version":"a4aaa063e4bb4935367f466f60bbc719ea7baccc4ed240621a0586b669b71674","impliedFormat":1},{"version":"ad52353cb2d395083e91a486e4a352cd8fab6f595b8001e1061ff8922e074506","impliedFormat":1},{"version":"0e6ee18a9299d14f74470171533d059c1b6e23238ce8c6e6cb470d4857f6974a","impliedFormat":1},{"version":"f0b297519bf8d9bb9e051aad6a4b733c631837d9963906cf55a87f0d6244243f","impliedFormat":1},{"version":"35132905bd4cdc718580e7d7893d2c2069d9e8e4ac7d617e1d04838fb951c51a","impliedFormat":1},{"version":"6c50f85b63e41ead945f0f61d546447fa2fabfd8e6854518675ddc2400504234","impliedFormat":1},{"version":"e67aa44222d0cfc33180f747fbf61d92357a33c89daa8ddd4edba5f587eaf868","impliedFormat":1},{"version":"31fea62febf974f1a499099bd47a2d18655f988ff2924bc6ab443b86ee912a21","impliedFormat":1},{"version":"4021b53cc689a2c4bd2e1e6ae1afcf411837c607e41c9690ce9c98d33b4bce4f","impliedFormat":1},{"version":"1ac4796de6906ad7f92042d4843e3ba28f4eed7aff51724ae2aec0cc237c4871","impliedFormat":1},{"version":"94a34050268481c1e27d0ad77a8698d896d71c7358e9d53ae42c2093267ffd53","impliedFormat":1},{"version":"f43f76675b1af949a8ed127b8d8991bb0307c3b85d34f53137fe30e496cb272a","impliedFormat":1},{"version":"f23302eb32a96f3ab5082d4b425dc4a227d14f725d4e6682d9b650586a80a3e7","impliedFormat":1},{"version":"ee7cc650232e8d921addfdea819290b05b4d22f7f914e57cd7ca1aa5582f5b29","impliedFormat":1},{"version":"2ad055a4363036e32cebb36afcceaa6e3966faada01c43a31cc14762217ee84e","impliedFormat":1},{"version":"fba569f1487287c59d8483c248a65a99bd6871c0b8308c81d33f2b45c1f446e7","impliedFormat":1},{"version":"75d774b9ccb1e202709ffbcadba1d8578bad1d6915d86633ac056574879269b0","impliedFormat":1},{"version":"08559fafddfa692a02cce2d3ef9fa77cf4481edd041c4da2b6154a8994dec70e","impliedFormat":1},{"version":"2e422973e645e6ee77190fe7867192094fa5451db96eb34bf6bf0419cef10e85","impliedFormat":1},{"version":"349f0616eb0bfbcaa8e0bf53fee657bff044bff6ccaf2b8295be42d2c8b8a3f3","impliedFormat":1},{"version":"25b0285ec91d78fcc1c0800022dd15f948df01b35d1775dafbae3cce5a79b162","impliedFormat":1},{"version":"8a6414c6d70225e89602733cfa2af2c02a03b2af48c865763932c3892df782d2","impliedFormat":1},{"version":"b37402e79f4cc5103b12b86dbdcbd98124a4431fb72684a911ef6ecf588cc0ef","impliedFormat":1},{"version":"6e72c4d0e83ca2d44207fa1de293b5ff260401ed706adad9dfbc0df7a3e53abe","impliedFormat":1},{"version":"b569745230c9e5cdb79ec7f1458d59d5e0dc04bf06fb8d398ca9d285f07c2147","impliedFormat":1},{"version":"9ddbd249d514938f9fc8be64bda78275b4c8c9df826ec33c7290672724119322","impliedFormat":1},{"version":"242012330179475ac6ffca9208827e165c796d0d69e53f957d631eaaea655047","impliedFormat":1},{"version":"320c53fc659467b10c05aad2e7730ba67d2eb703b0b3b6279894d67da153bee2","impliedFormat":1},{"version":"e2efe528ec3276c71f32154f0f458d7b387f0183827859cf0ce845773c7ff52d","impliedFormat":1},{"version":"176c7a1c47b5136de3683fbeac007b727905ca693dbd8cc340fa1fb9f26b365c","impliedFormat":1},{"version":"ebc07908e1834dca2f7dcea1ea841e1a22bc1c58832262ffa9b422ade7cbeb8a","impliedFormat":1},{"version":"6111a75d1c907033065b0d64efed162ae8027300edfcc6d231be5aba02f92497","impliedFormat":1},{"version":"22e92cabd62c19a7e43e76fba0865b33536b6434e50a97e0b0220c34c74831cb","impliedFormat":1},{"version":"d1f5f6ec7cafb6de252ce831d41e8d059bf7c44bd03bb4f8327b28b82c4d2700","impliedFormat":1},{"version":"96fba29a099df9b0c7d79ca051d7528ae546a625f9a16371b077e09f4f518e2d","impliedFormat":1},{"version":"79dd276b87e761fb23979c0d270974c19f1b3fd51575bab4691abf7701fe8154","impliedFormat":1},{"version":"764df94196883c293e3c7bc0d45eb365a9082c91a18d01f341675186f2fe8225","impliedFormat":1},{"version":"7654616453f4b4aabb6302828f884d41adddea7cfaec40d65ed507e637ae190d","impliedFormat":1},{"version":"b310eb6555fd2c6df7a1258d034b890d7bddd7a76048a8a9a8a600dd68a550f3","impliedFormat":1},{"version":"93d5a78ff448731738a42b22bd78fc52a92931097702218b90fcba5a4676a433","impliedFormat":1},{"version":"dcad64cbca4b8db52101c61f6771ef1ccca14aed432b923d86c0c7def3073b42","impliedFormat":1},{"version":"2ea7aba09d12e4e8f550206fc8dbf13d0bb2cc8bb7469fb9ccef39391dfa443c","impliedFormat":1},{"version":"d7f91db766561a83655b535c2f06163647bd780d9bbb2c19e50dec97c0e391ea","impliedFormat":1},{"version":"1c7951a2784c2fef0ed6218bf18cd3d3b895667881ba4d586b2bc15fffd0ab29","impliedFormat":1},{"version":"3d82db9fba4a59ef5bcc45f6a2172b6b262fd02331fe55ec60b08900f5df69f8","impliedFormat":1},{"version":"2594a354021468bb014f4e7cad72af89cd421b44f5ac3305a6b904d5513f1bd4","impliedFormat":1},{"version":"cbbd8d2ceb58f0c618e561d6a8d74c028dcbe36ce8e7a290b666c561824c39de","impliedFormat":1},{"version":"8c70aefeaa2989a0d36bb0c15d157132ad14bd1df1ce490ad850443ac899ba82","impliedFormat":1},{"version":"6961f2279f3ad848347154ea492c1971784705bc001aea20526b1c1d694ea0c0","impliedFormat":1},{"version":"2ae0c35c2bffb3ad231d40170402436a4b323fe9ef1dfcb9a20248090f600f36","impliedFormat":1},{"version":"9c1bce25595a518eaa5644c0af484a3794319ef22525bc63085a8137106d3ed9","impliedFormat":1},{"version":"a33ee8bd8beb3b14c3ab393b85717d7c1e5aca451ebcef09237675fa9a207389","impliedFormat":1},{"version":"6c5d50dca19d6fb862c9eac0db1b4882add3dd47a38ba5ed74b117b3860d078f","impliedFormat":1},{"version":"1f5679d1cd7b9909c1470f14350f409df0ee45c3a55d34c53f7869bf6d93b572","impliedFormat":1},{"version":"cc025898e42b57965a047d4b1d70dc6b6643bb810ee851f553fe1d25e7799b46","impliedFormat":1},{"version":"18db16d2f44b0d2c25e600db4ec445a9df4bbb39dc24e087fbbf484d08f3f663","impliedFormat":1},{"version":"2a6a9b2f0f4901d75be5ac50accbd8426ba8ad21b3af898c263cac76f688e457","impliedFormat":99},"a56cd861fd6967350de7012df01342e6bfb0a6c8fa409c0df3c806de7911cb66","fc29d85c02c94b75fe8665b22761f8fb76b562f5698e798f2a4220ba96f1de97","21e7077db98cb6ff3acb72ed33ee7874b5c93d3a6e91e452e87a5284efb33a3c",{"version":"ee09b9348d02aec6cd1cebb94c27896c10d47efa042a3fbc9c90dd6a7f6af752","impliedFormat":1},{"version":"bf673997a66d2225f43fe1b51cdddd497d0a8c08a990ee331457f2d017563075","impliedFormat":1},{"version":"98137bb3bf4804403e7f845acea4cbfa7cdad2c860706a120f71a1206d9b65a1","impliedFormat":1},"e101988cf0597d538f2f70bb1be35aea6f95ab53e1ef01d419d3069017ec2581","f945e0aa65fd52626fff3ce32dc81dce520fa154edbf8a1297ba13ea5f365c20","c96b91b4f025f3eae2b62942b4c4e02ab491bdedfdf9c27ee73fa7f1622d8f23","d816351a8179f38ae8ad203f283d742bcb4dc6b1f1e1ad83246d8fe04ca659f9","9ac0de24a309382061d94c9b762015379666931c815566302feb6947de164730",{"version":"4699a1dc36e2c4bcdf7d395c929a8fdbe128c2953c0ecfaca25b960a22948216","signature":"ddf28521acdc9aa36d3794a3c7c374a65028ac5974018fbceacba01484697303"},{"version":"ca602b7449dfc3353ebbf620c65611b7786c2468b80f96649a5c92292507aa85","signature":"c8fe4973428aa33b8c551b4be976fa3855fe9a185960119ce8eb74e486b372ee"},"1a20116982e314afbecd65cc00c8888dc0f552a3e6ede2a5784a786c7ae4f650","9405a6550eedab082e1857d59c8593bcdad05b9673eb07f5730aa19d46c035cf","5dcd85d607cf3259797cbdd127c21ab590656903582c388524b7c6526156d6e3","9fd7102e63d319340ff3e3ba0996f64186376515171ddc39f82a6b459f384de4","23a4541516148d18575fe80f4140eb9addf39ff9637b745b15dee9b73a92e3a8","372785f174f43ce54b6bb05d565af8c4a9964d614076de83c07603206a54d669",{"version":"2689843ccdb1a1d36eb4840c303cbec134d40e911fae49455a9435758b26821d","signature":"69d51047e3f7d30bc817116754a6ec49bca80e462bfdcc1c525d419694409b60"},"af26f1c3db9af32e2c17abf5caa8a0dc715933ca8bc188de9093b7d93b4f48b4",{"version":"b46ee6cb0df1a155545cff76fa9c55e0c87e5fa31e4e0f9076331f88b1f5f966","signature":"92e0708a3a0f5a85756a273fafbedc1e777448774a34bb61d6e2930ffad394c7"},{"version":"a17cf9542b20b2847e444eb94eb4ffeae22d525a45a8df28d1880b52e2de83d0","signature":"e23bdba29c1e5ffbda3a2445cdec45c61933f0c7bb320d756a7f3976f7d4e4b9"},"ac2de72e91704d6b3f7610bdd67eac714e43f4a904d35d8d31a0636abe79a034","265fed93c520861eadd772f9002a587b18dc248e8642319aa1c3ed6e26f4aac7","9a8729645acbc4eedd2fe29ab0493f31d77d7a428ded6530fe5666c2d41a4355",{"version":"4d7d964609a07368d076ce943b07106c5ebee8138c307d3273ba1cf3a0c3c751","impliedFormat":99},{"version":"0e48c1354203ba2ca366b62a0f22fec9e10c251d9d6420c6d435da1d079e6126","impliedFormat":99},{"version":"0662a451f0584bb3026340c3661c3a89774182976cd373eca502a1d3b5c7b580","impliedFormat":99},{"version":"e02973de2c7daa10f93b41f01f66a70fd31c54ddb0f7e115f2e88c0b21ee4be5","signature":"f8b3165452c12c2f4942152257e43fd91765197938f5e1f9090213c511eafb7a"},{"version":"83bbfa1131483eb342d4d40188a716106c086e3abd9f56cdefe83a868dc6c467","signature":"e50ca02f8fdb52ed8d569ea807fd25408c3b859e413b9691e53be52a75f2d72c"},{"version":"d689a82dec12ec02e1c558870a50f71000e06f173151fcdff0458c587dbf016f","impliedFormat":99},{"version":"e58c0b5226aff07b63be6ac6e1bec9d55bc3d2bda3b11b9b68cccea8c24ae839","affectsGlobalScope":true,"impliedFormat":99},{"version":"5a88655bf852c8cc007d6bc874ab61d1d63fba97063020458177173c454e9b4a","impliedFormat":99},{"version":"7e4dfae2da12ec71ffd9f55f4641a6e05610ce0d6784838659490e259e4eb13c","impliedFormat":99},{"version":"dd51e53752b310bd20c9b1a87bbf12b1fe2be7fe40f505b43199496481096275","impliedFormat":1},{"version":"a87be4662442b3feeffc331ecafe6b36cafd08727e2d7f2425a5099577e7fd18","impliedFormat":1},{"version":"cd4cd9220a1ba793bc935e76d8e5481c110a90d9868ae7866a182ee71cdb6abb","impliedFormat":1},{"version":"0a7fb8619b10bc05fd933ca9ac1c8b2ab2220be7a57b57565c3ac158595494ef","impliedFormat":1},{"version":"c4a5f91feb9c5a6b2a91089d959c38391b79a961db3b9cc73b8877d57ad7dcdc","impliedFormat":1},{"version":"c371ea3efec17691f019bca670c161bee2f4787b1f464bdbbb10c4117bf0a55d","impliedFormat":99},{"version":"9c0ab8e1aefca877bd4ac5fc6f88acf99b91565c3460fbd23ee570c1211d2388","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a93a9bf7c51b09b320b110e04ece2eb7c335600b3555c969e930e8755d41738c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fdaab6832e50e15f947cae123fdbbcedfcfa40d4c45f63dd391b039c08eb133a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"930de723999787f97a8c5d866e3b7f6162a45343844ff13c06a1e06ba0e38747","signature":"6063dd5582292fe833469539d4e3663e150fe52fda2918d269f7ce2ab894f47a"},{"version":"3c1d3707ed377870ee91285dc1ba2138af8c637cf27bf636b9e107d188d36189","signature":"f4466e6b079fafc1295d8c7af713b9fa95730b635d49bd3ca00d6a1bf3814bd8"},{"version":"486fd9140296241740d7e8ebaad6f320b6ca6c961c8936cc4c94b461eb401144","signature":"009022feb44a29296f925de9e70f304857c09f147f3e8521b9489d743bc1d18d"},{"version":"0f94a154ba0c5178bb187471c0694b600b44d542f90737f8504207bf43970275","signature":"cfaba5bf1e3cc53b775b2f80aded813667d0505351c8805c6eae18af295a8fd0"},"f1d0e6d39ec13a06885cbf414dc45b0b6a467a7e27cb6cba3ec0730a3b7426b1","ffed43ee9661f1c3ba97c8eeeca4111ae3fff7e9ddf11547b92ae79421c171f0",{"version":"8af92e4f7048f08de33421022a485dc51049e2c3c579e10d129bf4fb62bc363d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"5ef8d466c934b506299c6dc7585b30f0489662081069340ae47efbe82e8e9597","5822bbc570dfc6209127da332da759dfe74f3fef7659175e2ac7610a992bb006",{"version":"60df70cb8b24b8c3e3f12910ddf0a08b1a4a028f877226718a034d2e64129807","signature":"55ae166e73a55d02d49c0ff8b78ab66ea60e362ded20dc8434d7f22e49eb5259"},"92dfee291d9049cc69b3f4cbe72a1e2949d9332d22b4f06889275211fcf818f5","fd53ce55dd2b9837509c7389dabf861eb8d6c9d4eed03046104da6c8c5f2aa4d","f2116dc77988b4aa276d2eafa7e421b27efaf21f1deab48d2e536a010ce755b1",{"version":"275bb4bd227a4b7eb5cf5791330141b2e75b45187ff0a28d54324f345c2bf397","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2c59957006f23a5d225a06310466cdc63fabedb7f5b87ab21de64cdde187c777","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"b617aaa266fba0e9c0df70187731e98edbd70cd762a57ac2d85c96fe13c373a8",{"version":"a912930cbd4e2156ee4f6057823076dd43c2070291520457518367e5d9cf1944","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2d028cd99c6db2e234d00db9ae138da87be2b9149027e96e4f0e7f06de3590b9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"7f0da707db59203d092306cc635cb978d1b4b60fee11bf449543dbe515f4072b","2df4f06d06c03ed0d8250179326c977c03d0a0f29ff975aae8e6a69b9cae5d80",{"version":"27104bbfd1315170d6a70f1230e447324577f47c3c90ff8a7060e438ab2a1f05","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"daba2c57b67300266f2852da5f4833012dd841c9f7e6afcf1f3b67592e51e8e5","impliedFormat":99},{"version":"c6e49e5449fd458b1e76ada69fffdc4b56de5195f69ed56c522861ce03ca604f","impliedFormat":99},{"version":"a497a3e706740eb3be488db4b8526b7eaf3a7bdb3c8131bfdd1315c05954c2af","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"bfda440899a757e45cf4f033400eb58d2c37fe48441f932b05f1de725f04d6f1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"71ae15533fb0e5b30b0f3cd32baf5e752ea9e3f08aef5faa0ca2edbd95c26faf","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"01be3f1ca9e0f2bb7066a6416b86f124b956f1c458bb8173f1a5aa353dc25da7","impliedFormat":99},"b31e2a4496df5192432acdf7da19d01937774ea73f2326b2e20077cbb785f283",{"version":"6089237d7593af70db8b7cc24e98467d962878a354f37d9218d25ccdd5fc8ffa","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"171d282e4333366f33f3a013e4dcf9750f3a5a88b8b5bc995540837d789f8fd8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"c4291b16c90b7e28a91ac6c666631139738f55ffbe925514f3410e35bc550982",{"version":"ec43a180a416522268bbd85ea9e94d4d8e531b01d6eecb83014e994a919386db","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"93834c3efa2e2b10a62d7ced82ad16d424e4e191a972591e6d812fb754ecff51",{"version":"e6f05dff37e3cac19345816e5e0b9d27bc079f2aa90f62a258cf6de83dbac2b7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"49dc9c9fa49384b1cbd8710ee4cce261f40cb46f49ca5e666f819d69cdf81be7","12c7b45203fb24716443f2b68e28a8cdccd6d72da99a6ff38f828a974b5143c9","cfd77c3b50683367506b937c1871821cae9bb757a8060f21b5ac3b25dc28a44b","1f2bba69000da662ec337e3ca1827c9a8a1c30136d6a8dd4db9c82cf605a70ef","0dae71b7873b2efc786674d9d06c4c9a9ba48da29810cfda539b73180e5b9880","50b568e25c7fdf5396f0d675119d9efa593a1027483670482e2a91237327e611","2255a1a43c3a9bd6a0a06f386d0e3d99363896991eec2a007d07dc71b39a4a8b","c9a0cf76c857ada17740fff7b016a9d4e43147348e5cdcb37da3addf5266578c","71fbc04d0b3dbf842230287622f5ea73fdff33bb57da4b63daad86da64cce750","2dffc6a1ceee1522ad76e5ad5b86bc508f38e2061ab056833d415dc783d89767","033fd3ff73147ddc390f7a985ae78b3208c3ad0fe2adf3e9b3506eeceb6faf65",{"version":"3c3611a0ebd9f03b66df4d7483c8ac41b5f2fa0ca48b39b73622690f52f8d3ea","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4a9235f7902336115a6e791aaf7c5c3ca76eb306c0e197c160d7f467a5e5dfd1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"b8a43cfd60abbbd4e812e1ec26f3c02fae3ae30f56967e561ee3276053417c90",{"version":"326d933e13cbcd696458e55fc400286e8c7d1ac610eef2818104d54d0a904078","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"43834580e279c34e7bc068f80f8bc33bfd43be8c6feea449b3cec07b8c41d259",{"version":"935dbb97fe6e06b18d4ef08ae58513bc61597e6263392cb4243830da19f2cf3c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"44d6059db97a0ecd5fc6391d5677563e26c795f449d6444bc8d8e1f2998b02b6","signature":"85a9a1590189c63bb9fc5ef9533e04b1925e277dd6b487aecb1df52c91ac16a1"},{"version":"fe93c474ab38ac02e30e3af073412b4f92b740152cf3a751fdaee8cbea982341","impliedFormat":1},{"version":"476e83e2c9e398265eed2c38773ae9081932b08ea5597b579a7d2e0c690ead56","impliedFormat":1},{"version":"1e00b8bf9e3766c958218cd6144ffe08418286f89ff44ba5a2cc830c03dd22c7","impliedFormat":1},{"version":"6c05d0fcee91437571513c404e62396ee798ff37a2d8bef2104accdc79deb9c0","impliedFormat":1},{"version":"cf46da7d54fdd9a638cbea5dec9ea11205b17c841bf8e848fdf3f926c8d5ad36","signature":"85243dd3bdb9c191ba61739e8f44a5534d2ba7c680b117001121256e6c09cbb6"},{"version":"ce01d8e0109fbfdbe72b6bd87cd35fe19473dfcb66d2024554e1c72f07380b51","affectsGlobalScope":true,"impliedFormat":99},{"version":"49c40ebf05452ce5d7aa04e5587894286681181f8dfe9b37cf2e33e6b9993a16","impliedFormat":99},{"version":"ce2dbae0db07712b1da52a5974aa618b3472d39de8cc10ef139c950df36b5252","impliedFormat":99},{"version":"8b78cf601eaa107d0cb40811e41228ad940c39c2dba5138521e4c6c7a745fe80","impliedFormat":99},{"version":"22ecc9f44784f6a9612db259a8dc7856ea0a948139064dddd564ea6e18e897ec","impliedFormat":99},{"version":"e69d094eed9c0fa018a9a5e5f267713e409fe452a4363f46d6137cea535708f2","impliedFormat":99},{"version":"5636ac003748aa4cb5ae667b34a4579322346bf8e31fa47216186cbe63eae29f","impliedFormat":99},{"version":"a69851bc1949ab1d24b09f08d2cc5921a1067223ec49f302ff7a3ad9957ffbce","impliedFormat":99},{"version":"40077e26021cef1a6e77d749aa2b4f62d555bfff7c400d350360e9feb223de1f","impliedFormat":99},{"version":"ad7be5fea1f7f216303fcfdb1177499a36e9c01f4466726f48001f1084a7fb67","impliedFormat":99},{"version":"5217895b717072b83aa27684e850979ca93698a6dcee803779d651e6ba832048","impliedFormat":99},{"version":"9aec72053378cd790962a539e03076c32e92f6b71a97867bd0d4ad5712ad3b49","impliedFormat":99},{"version":"1f45593173c170b424779367b608148ce2947c86f9b5ed7c5d072e88e11ab305","impliedFormat":99},{"version":"c06f0952553ad231ff93a8107b89544542e8113aabd0bda7377328253eeeb8a4","impliedFormat":99},{"version":"aeaed90abf3b3200891450507ff707c16f3408116050d92c0e7169ccb3bba708","impliedFormat":99},{"version":"6ede999974b5289f063467f6c41d3c4566b350e86dd8c3725fed5c94e491a268","impliedFormat":99},{"version":"ed7d3aedeb07ae9f3270a93e9958a9b5e3b63cd6eb0af9dccf6f67320bc72507","impliedFormat":99},{"version":"85bce7d74feaa0d230072273feb64eeb61839dca699e01dc66431396fffe7949","impliedFormat":99},{"version":"eb1eece4482883fbaaee477cd203b424cb8783f9f066290585504ffd97267235","impliedFormat":99},{"version":"6d9ded3d89d21f4395b60bccc4339d1625a3b845d2d3fb6de7332e7d5d0fc2b1","impliedFormat":99},{"version":"08f09a44a88b06df40d9a21cf333ae7a4b36c79f7171cf1e09f82d507fb8a90a","impliedFormat":99},{"version":"6ed9cf6752a00ae66e113b6669378dc67120446bbd1fb89c81e84559ea228051","impliedFormat":99},{"version":"b0cf9e21298c628273469d98999b8b7e78d843df7a943f4ef52dd6ecf24e8443","impliedFormat":99},{"version":"ef53a12d3b9591ff135bbc1c0553f6de7d37cf7289032bbd8a0794893adee165","impliedFormat":99},{"version":"22a24f4486c4489db89d0977d19093a2bcd5ef965b42352a8398c1383f342e45","impliedFormat":99},{"version":"d00892dd983d0f34dcc221394c1941f28677bcacde4ffc7e67b6512c91ebc9a2","impliedFormat":99},{"version":"0f7f9a8058414f16d237aa527ff6792549a50e85cb99299d6f9b1999bf53021c","impliedFormat":99},{"version":"936ab0586971fd3526390f79a0739d8c1feaa5178483c3baea16acda840a71cd","impliedFormat":99},{"version":"62a8f6dc3fe4547a9ae29e8abc0082df80c86fc75b5522e89da074e0792d56cd","impliedFormat":99},{"version":"4f1bad288ada6326583a3e6a0a54d7627a03eac3b668adeea9dded12ac5656b8","impliedFormat":99},{"version":"41a5ae482e864a6128e6054e88f1c0e06884793f92aff5c67144fb02d2373079","impliedFormat":1},{"version":"41ef0a3ae1156f713838ddcb5d6729551dd8aab53e2a9605ea7b5b5fec5c39cc","impliedFormat":99},{"version":"25e4da51a3cfe4ee8f7cc1f6b73e6343fd8b4d8c5c36edcf23ab642f37e947d8","impliedFormat":99},{"version":"bf0c2b6f09f5531d8b7f658ee35a39e31b02e846c72711499d593908764041cc","impliedFormat":99},{"version":"d105d864b0a910c321d25af9451acbecda03bc06eb12412ef09b43e5f3bc984d","impliedFormat":99},{"version":"c7b04860c7b5c393382843dd198182e8d51100f39e912957c1aad5fe7f9d911c","impliedFormat":1},{"version":"af296f34e60533904e4b2ffda0029c0f79ad62a129894466542bb13f1e6a4d8c","impliedFormat":1},{"version":"57eebaeaf2e9cd554946c869e6666dab04d5e7a7a1161954fa83feaaf890af75","impliedFormat":99},{"version":"8aca09e8e334ce1d8bbe84066f6b3242d3a35c4a6b50416204b890fab5f31f1e","impliedFormat":1},{"version":"eae518fca08aceab9bb7d9d5e33c93402f2f815523ee5b12ee4b4fee49bbe1b7","impliedFormat":1},{"version":"ec21d75f8ef3b68e445ebb3ecc149f34bd7757f185f735a86b510a181561dfe7","impliedFormat":1},{"version":"504e7acb8e31d6c0a86d53411c8a19ef333f3dc3fbba51a34f688e26749eecbf","impliedFormat":1},{"version":"91dfc560ef785356cff4139bc40b767682cbea5b6cd713f173712b745dd11c32","impliedFormat":1},{"version":"e16f88602f853b0aa31192d984fdf82694c6f8d6bc58262f96fe2e0ba8c1b4d0","impliedFormat":1},{"version":"30b6628512c984482c5f886f9f6805d2d74f2b1d3835ecc53211340e4ec0f4b5","impliedFormat":1},{"version":"d2c411ac09a4047ddad0c898317208519e7da1b9650bfbd57fad7864daddbc91","signature":"14d36bcd272f4dfade6caf8824f2d4cfc15007bc63674352def4f83005a22c2b"},{"version":"73c078fcbc0fa04ba70b1c3e5a3dea6a980d8765079cdbfb40f903eb8daa4319","impliedFormat":99},{"version":"5297e84d3de08bbe3c00f964d1c74f89cf101d59a4826b335654f44ff41529a8","impliedFormat":99},{"version":"355b33af59287683501f76cbf7d6a141544c5ff1ae5f5c0701a3f89cc38e5238","impliedFormat":99},{"version":"280a996092ab956e80dc7bb7497d472ca5c1be23a9c52ac771f5c750ede462b9","impliedFormat":99},{"version":"12e47e3354ba63541c6874b712fd14b2a4e53ba9ae986c20a65f7f593294c5b8","signature":"8101bf6437f2b0050d2d96ed5be67a650cff9cec0417c282c05774773081cf9b"},{"version":"12f2d4e830877c42294cdc86007f75cb9670871f490eb5f9ec1271e7bc280aff","signature":"3d1a17468a0f4720c6e3a9be8c415902282b02adf6cc6613ee3d5ce53c750759"},{"version":"22c738f11b2f6ab77c0b230e4a604999d58c36de54353212d4ebba7018ec076c","signature":"60c964ca88c558f25876b336ab0ee6a37d212c14e1934952c9a777b14355ac74"},{"version":"db83470cab27cb4d917cbe09e5762c6d4bddaf98b66ee330ccd8f4e99a71f90e","signature":"28493ed0f0f8b424fac847cd7b22ca7fabd47c41cdd69a57fdfdec3dd1fb17f6"},{"version":"8011949f8e7e5a9dff14ea2434c26f3a057809405cf50338ed543714524a168e","signature":"c7851c59c67ff36453241a27671a1e7e454d3fc6fa0fec3ce4eafcbffdd3da1f"},{"version":"c57b441e0c0a9cbdfa7d850dae1f8a387d6f81cbffbc3cd0465d530084c2417d","impliedFormat":99},{"version":"6a71ccb3875652de9e5bab11557ae9d8fe5d9fab05b9ebbd3e441f58c675fb06","signature":"c1975806674c299e2309d2ad89c16116985f7d14c1bdd113a2121d6cbe1bb698"},{"version":"7a3fc5715fee6cef5ee84c2ccc8b5b56aa4545b30d81b33feeb1ed6d4d2852b4","signature":"5ce3af042f82fe81b93940108874301ee84538cc84e53c0d5ac0ab57fa36142b"},{"version":"f3fbdccb8f47e478dc7656fe9d4e7ca366d8ef61252b9742d198e2de750c8457","signature":"00203dbda55df69a8f2dd066e3bf2dad4bb23e67a18bb40774de7431e19f2037"},{"version":"8aa313cb1a48a1ae1ac00881b9a60827fde319dd40877976701c77358fea9060","signature":"ecf716a65a62815d4e896b0a470b045efd9178e5d0b15e8d6e073e5a94d1d49f"},{"version":"9588db3a1285bfc7167c01afc8f64d11911adff7903adeda12dfce7d6bc10dee","signature":"a8e8dd2ac70b2e6692a9750cb405838f929d88a6a1d71cdf3404a94987ad1e90"},{"version":"83e10b3a58a6ffdd93606ffe25c85d92c2ffaa4b48d5083eb2bc4d2f10931f2d","signature":"fd60ccfef85478e660ee625b54d5edcb43f8c569d4b50793fe6aea0a53f54b50"},{"version":"a04ad49fb9fe0ec33f6ef94c8c0453fa06fa7eba2eaffebcb4951f567dea4f54","signature":"3e4e0a58cc62c41990bccfa3e87a5821aff6f0d05813f1ac0f12025e69caaaca"},{"version":"df72194c162aa890c4690edb0c574e9e14ffb134467ad0752a1b5eecd3712d47","signature":"4315db0979655d3605a5f7a1b95e7b4660be4bb41891ef48e36b021b1a4bda24"},{"version":"4062b4766c5b12299c501e63036a25fda15d1c20c3b83999a0be3aa77db7a5cc","signature":"1cce43e1f601e666b435f3d09767df83bdbcacf67f87b59aa957f71d24d34622"},{"version":"596bbf943a958c8eacbb91a953ccb60efa7ec5ed4093c11cb63f356c372cee78","signature":"67f1855eb07d4a3026bb2944d098ebd2ed6aee4635556aa71b36ea7f5e455887"},{"version":"f60d4e63e4f1ff2f5d32f9e7447f3570e343284458aed294a62b4b25e0470241","signature":"13db1edf989e8471430949418b91786fc87e17d5ef558ee17546001e60ddd7a4"},{"version":"dcc32b185251568136c8046aba24c0f140e6900df393c9e2b782b18e5ec05eff","signature":"061f82fe5b64a3a417bd47d8033d8833035960d4219a0093744cdecc6826c959"},{"version":"bb9f039ba0693c7f1a0e03e674366bcc67264e190957047ebd14e5ee06c1d7e4","signature":"7acf1c2a7b4d82a50a1d8efd7d2386d746b2084b9ffc0df2006fb4322bb15a89"},{"version":"6299900174a0446e2b321560ba74b4fb683ded56ff1e00462e09cf061b90ba46","signature":"e10e100bcb86ed28c5a2516e57d398a56d6d03d3abb1e70c49e1159a1f71458a"},{"version":"da52268ebaaff6d415b7186ab895323f29fe25b2c5415893855b9bb2a2d6669f","signature":"eef3b1044911898261a060fe78f8dd19285be58d082c85c2a189936f0e423686"},{"version":"eee9813b3e2ea17650b582753eec7b7ed69b67cd2f3e3d34a4ee8ff0d333f0b8","signature":"046d220de81405cf44389043518eeff0793f47956c34ff79b8de442917f9ef9f"},{"version":"6ec3e552c07f9310918006ac7f242a5687ea78bc7d23d158833980f7c8a430e2","signature":"6dfa3db107d1e005a573fcdcd5fb5215ccc7a703ef25b1fe80d4aba9c09ac026"},{"version":"c85c02a8025f47e2f0db6bff2a37910fb63144ee148a9991b2481fb1dac5229b","signature":"7fced774d307155dbe328583316013de87b8d033941c7c306909e3dba9a401d1"},{"version":"fbae195eece796edaf697a5775f0ab5beaf48a71608098d1d660122fadf6237d","signature":"4e0dd7eb23c539cdc147934275c9f4fecff6baeb29d920552559a5f0f8d659ca"},{"version":"dba53a7d64b0e30664ed8047e6812d42fdbef91bfffda81d72e9babee15e0ad2","signature":"80859aab9eaf5e2dc6f264a1140fb62fd5c5a3be97e463f676cc631820d8acea"},{"version":"74c6fb82bc543879438453886bcd898f8d90dc8d7ee1d5709ce76a3f5b711826","signature":"53c83ac11a31773f80f62131bafae6e5035d88c9296a19702cb4cab262c7789a"},"5f81388189736d306e84842ebb1a1d029efd75a3728048c16cd6a9711d125501",{"version":"a163a383200b5ca96937d9669138a4f153fc834fdb721ecbb57bb60b6b32d16f","signature":"20ab8c06b138230bc85e5c64ff412207a5d2ef683e90b66db017778e8a84ab3e"},"4cc07141cf301e85cf8abe758812c73a229dba29e54f6b30bd97fbddb54be819",{"version":"657ea77a58d9ff02032b4a70d917049ff9bf06527e8552ba257820b86813c920","signature":"703b1bea8cc2dcd465608561d41ec03e9f72b609a1c3695a9a4deab2a92286e2"},"e51703b5f253c00c584dc8f4b2e4ed8cb76c690fa0c7179461cce7b8b6f3e800","a5ee5769971c035129d6c8586f0c2e97762e72871a8a4afff81dc4b966ff5a0b","3394ab14cdc8a429cc1e4feb1f57f75238440e9324c46eee99a99dfa142eed30","624d23baf71284ebec55d7e1c0a8710f05c9f42ef7effafce7830211c4c2246d","08d97df9864833f09f9cab6eab6208c772193439829557f64e76583f485b7b07",{"version":"d04691c375bc703698f10092761b590cf4885c9997f4521d80590d4327d12833","signature":"d6bacf847c8dd3b3aa6efc394f7479d8ec1a0e1cc3cb5ef97bb96924c29fca62"},{"version":"b8bf6dda6e015d35bb164e43a74e074093e0b9a7b60e0486f7debb82e1cf3c46","signature":"789d8bbbbe0a25332ee3b66801eb4cc2a9c57c3ac1a87bdac7f5cbc8b85467a6"},{"version":"826e784cf2464ecad67c1a28fd9a3d497f0161315d3d839e5748828603b6186e","signature":"ac0b3ce6e1e01a449fb74257121723b2c0d79a0f209843bdb8ccf59b92763f69"},"4f3a506511a2b6969957bb9416b2cc2adb3282646d9c0a57e84d86d35f5d50ca",{"version":"56d06297b659ff37630eefa04a872e76b62a7b289299c36d8c3c4fbb8fe2c2eb","signature":"a9c13ac08ec71d91d17b19ff2bec82ffd31d08bab35d54bd5a0af6e5af4e4c82"},{"version":"4ce2d92cf4c6f2003aab55a68436470ef156372544c8a3d5732dfd7cd9b5da91","signature":"dc2b31b2c76e9822d73b62fffac29b70295520280c6038d4884795492b7796f5"},{"version":"f1afe64b463bf35a8adb089d46cd4d7dcfda575cf4cc6eadcca4eaf9f16c48e8","signature":"1aedb047fc78093fe3ab278cd8c5136f1e3ca45a9a821b9af5acbba5db29128b"},{"version":"fe4c8c96fbc9e20cd8ed8c492cd03d8c2b2635994794f9c257388216244c0c87","signature":"ad0d39d13add07bdc7aa582df4b2792ca2bffebc3ac7800af0f4f27e2c78eb1a"},"dd66e4e2227028611b4e2ba394bc4a6fd7c129dd31996929fda3c447a5c6df59",{"version":"675aa2c11a4fa4a645deaa5919e6c89c69527bd2d8adf914b1691dee3aba4a2a","signature":"7c13b763ac954ad84c6aa324fee5ee62a1f821594668cb42016217e9aae2bc5e"},"3f333d4312b5fd9acfcaebe39c8af18e281649f89c09f72028c43c03e838012e","04f34245608481e78460a836277db6fe71cc6f44753dbde6e5cea628e383dfb6",{"version":"f79c6bc161d2473ea9ac7e35070bcba26093a6f5f10fc36bf60f6edc2c9b0dac","signature":"f2c98aba0fee6b4c02a3c7331bb3c468407a6e32467050873b0a2aeaaea5c592"},"0bad9b7565d09e18f6f3753bd49aa19562990df971c35d33c75a7ac15c1ba181",{"version":"6656475eda51d138ba9e612f1f1ab374f3cb1f0ae2f852b545929b18cb145811","signature":"90bf261ab6130118489cc8080c972350207516fb61a2ada60707c1adf0bf7d6e"},"a900de22d43970066ef87ca698107ee8af44f467fd7774b64b8fd1be50180268",{"version":"f0e585db6910ccc11bec39eeaf3cc79c9db6e32d22e697e37a68dd1626384306","signature":"07731029c1acdc6290205c5f5224fded9bc82c806ed7c267f9e3f5fb495c997b"},{"version":"763c62d506c40d287a312c1d724dde0db10f41b83d9c648caa7ccac6f387fa1f","signature":"f534993ddd5adf46d48b03f7c1f98dcb8b5f5f927820f0927182824254747245"},"904cacb8b12123dae97bd4a090b1fba2bef860b16f899e3147b3a9fdfcb1e3d0",{"version":"47fff0d4936882734218aaccac6afdecba48b3ecde58ca42c9935c467cf5b746","signature":"ecb00c5d860c79c6349e8c08dc8c735b0e1481acf62ab0ad36ea700d8674a4c9"},"78518f4ef54f8afbb90933b85960ac26d455165dcb7079c6c8864b69851c5ab9",{"version":"f8b27104a6874dd2ac483521b71380b753f4d6a4556ffa8ef7c0fceea08c20e1","signature":"c8b26c0d809ee80b28545724b9647cd95a64c7af710ea1153393c162f2fd3a3e"},"a4396c5d07d63d3639bb9ff43387b736bc1bf4a45a4ef89b5a7c3334284bfa73",{"version":"5f3b27a1231682459caff974ed54a532a9a9e1c9ed10ed5eabc640bea5573c3a","signature":"f3e98e0c83a9b3d5b8c77680542817bbf1a6fe18fc8dd4bffe954b5b0c3bf8f7"},{"version":"ea3ca336524401c77a2dd7b33e3864821547cfde6812178008a5a835bf32693c","signature":"dbf5f1d14cd7515dbdb01b7263dd98311eed92b0a32b54a7776037e8d781e3ef"},{"version":"54a4fd8b9318331e583b7b728a6e148b2dc03ff93bef95760bfaaae36f5ca3b9","signature":"4222f8043b033b82ff30a49281b22f7e15b7701a91dfa38fdb962822bb9cf613"},{"version":"f5a9e873dbbd062c93ed6b8dce6e210d9aed2b3120f79162539224564c74dbdd","signature":"deeee7c6a568c3c68023a5fcac2a3362c4e076694707f3b84126eb4be527e4cd"},{"version":"843b4e24a288f8bfe91807d96485db050595ad377a6d174b85a2470d899d33a7","signature":"8c07a179d51e0fec95966c24e2a409ce29303851a8fb68eacf4f345b1fc501b2"},{"version":"e3176ab4cfc3705e29df92889cc89d62a5d552dba0a7f5644872a6a4b9bb7fa8","signature":"16dbc94896cff2e4d67013c39bb19b04da38e211831cdc7fd04af770254d6b86"},{"version":"b4d7c2c6391499082f08fac8739323b9013e8ce89199ab9f87381cb1c19989be","signature":"ec276252fdac9f136315cfbcd5c5ae476e061faa3c6ac2c958a5fb05aac4f2ca"},{"version":"6d30096b138a58d3f36e14b4ff92d713363b41dfb84b8c5b5da037939f192df4","signature":"44ecbcef421b0cc67e3ea11cebede10d015deabda2683e4c87e0f0764ed3b6a6"},{"version":"3c8a780510c93ccc2651b837609a952d7fd80411d9465de94cb72dc61d74339e","signature":"e695bd49ee2ff7e1a26e59b571bc429fe24d1a86f8de943905bdfa00ee4a16d3"},{"version":"5a22eb0add710ee741fc3ad7524953be28ee8cef74667b69afcf6185753567fb","signature":"1a6210b00ab5fd1a0dccacad3670c78c438a40ea02f51aa4560f5871519800fa"},"1e446bcd4f9c51466843c78593035ec7fc1a299c33515c82b7586954d6887db2","b86352c96fc7c12c32799b721f9bf6cde8b362a25ff2a3fc1a740c0149ec7dc2",{"version":"4498f52c4ac192a8e93463c17cdb31c5089fd4323a76aea4c280ae2e1d167e55","signature":"46ae5948235242382d53f2028a48227f400395a4cd79c1976569ff35c85862fa"},"250895f745707472143e592117026a0ddba99fcaa943cac006812785847c611a",{"version":"839d4077340351efebcb070ff45cfe8a84d474932cdd2f2c66ddc04a90489260","signature":"258584e4cc9cd8d3dd5612c0a6efbe066e39d8aeab88123ab337d1b6d4f046ce"},{"version":"800de8bb8ea525980e16dd155bb6e6847e7fdeccaf816e5c2674e1a24c5bfc9a","impliedFormat":1},{"version":"88efe27bebddb62da9655a9f093e0c27719647e96747f16650489dc9671075d6","impliedFormat":1},{"version":"e348f128032c4807ad9359a1fff29fcbc5f551c81be807bfa86db5a45649b7ba","impliedFormat":1},{"version":"69fbd801af2b1b88b86bda5b74aef5fc013a7cc0c7422d33c8918bf8e7fdc6a9","impliedFormat":1},{"version":"4791c9bacdc47bdf94fcf377e2f0e198c07ad8e06425e23e1dda2d96e7685c11","impliedFormat":1},{"version":"5f12132800d430adbe59b49c2c0354d85a71ada7d756e34250a655baa8ad4ae5","impliedFormat":1},{"version":"ec27c0cee1436f58e785f621703d19d588ebbd489eca245e5198b4d6b715790d","impliedFormat":1},{"version":"b16e757e4c35434065120a2b3bf13a518fc9e621dc9c2ed668f91635a9dc4e75","impliedFormat":1},{"version":"86820ab88a951c928112528135efac662c4a0d5a50393e901f1c70f62ed67f4b","impliedFormat":1},{"version":"bb546af29295599cdea263bf8e7aaf98981017193ac178709353b8cc14dc572e","impliedFormat":1},{"version":"4374cefdde5c6e9bad52b0436e887b8325b8f407c12035194ad02c28f1553a3a","impliedFormat":1},{"version":"9f36000a33d44e49f677af6f274bc23c7e18c18c1ddb1aae3095d43b927b1e00","impliedFormat":1},{"version":"f83f059b53d5dd6251ce68353264820647653f93ae73f53c405c918bdbed969c","impliedFormat":1},{"version":"ee933420aacba1f60aa70fb8ba47c5e69001b005073b71973114587089a13c7f","impliedFormat":1},{"version":"ffde106aa78275d720e2956f7e449158b2890739a452335812ef0b913eb8463b","impliedFormat":1},{"version":"56584bfc655f9df64afc0f22f7d1122c29e5b74b342c203b891e19de9fa37de8","impliedFormat":1},{"version":"40ec58f0fadd0b3981b3d383e1c12fa0680115ae9f018387fc2cfc0bbcf23204","impliedFormat":1},{"version":"5ed0eccd51175bbc49a8d13e8555c805f138d065967055193a99bee6015ce17d","impliedFormat":1},{"version":"bbea0bf8358ddfc025de8871475cc84f32dc79a86609da4ac738f691651c0045","impliedFormat":1},{"version":"7bea27561409a3cf2866b0f34395da4e7d02aa7166d3c67048dd57c9fbefbf2b","impliedFormat":1},{"version":"10e109212c7be8a9f66e988e5d6c2a8900c9d14bf6beadf5fa70d32ada3425cf","impliedFormat":1},{"version":"f4558bcdc26690cc593cd59217cd17d8e00af0f5fbd0c4f1c0d71ba75029c42e","impliedFormat":1},{"version":"51d621c4e724720dd1b7ba6374d8a5b988beeda22d620ac84634a13691b631d9","impliedFormat":1},{"version":"f57a588d8f6b3ce5c8b494f2dc759a8885eaee18e80a4952df47de45403fedbe","impliedFormat":1},{"version":"34735727b3fe7a0ed0651a0f88d06449163d1989a2b2de7f047473adc7c1c383","impliedFormat":1},{"version":"a5b13abc88ab3186e713c445e59e2f6eee20c6167943517bc2f56985d89b8c55","impliedFormat":1},{"version":"8b29e3ed0c90b2ebc40b2bce5a518a0e86c0c417f7fe99a5e7658a61166bd9cd","impliedFormat":1},{"version":"9d609c44db4805332285b28d039d1e9b94bf97a074c652faff4dc1949f71718b","impliedFormat":1},{"version":"6e28d186dfadf5624b2e4f0ade02bae83d6067a4f4527733afdf0749740edeb1","impliedFormat":1},{"version":"369b7270eeeb37982203b2cb18c7302947b89bf5818c1d3d2e95a0418f02b74e","impliedFormat":1},{"version":"94f95d223e2783b0aef4d15d7f6990a6a550fe17d099c501395f690337f7105e","impliedFormat":1},{"version":"945be5a9505194381cfd4a8551a5f0ae48090847e454fecf834e054207c5a57b","impliedFormat":1},{"version":"d1e8b78a5ce49cee9ef4cd2565d4645d269c6fd0650e3592f85ba481f13da3a3","impliedFormat":1},{"version":"75da008dd64e980ea85d6ea098315dec0681115620472b4fb1a4bd88c0b24c53","impliedFormat":1},{"version":"708733f625436da7047894887c1c17fa53b43094f36c9c3b1ce39d99aafd0a4b","impliedFormat":1},{"version":"2ad61964f27122a3ef7cf261f8b3dbda6b0f96be6687397151709bf34e5d5c76","impliedFormat":1},{"version":"302d3d92502a06fa7071406fa96d5c7f897006d73622aaf322df8405abc6f773","impliedFormat":1},"e907ca37078b12e78e7c046e4813e61463671e3950b8e30b9441c1513285fa20","a89a8d4e448bb3b364bf445dcc85824ba95f9322e49c132e7509a408f2b452dd","4dfbe0c4a4bfbc076320061dd7c41f0f96c05fc01c52288e2b606b9dce0a9465",{"version":"429a7dca3462a3ce0285b4b11e7264009d81bd8e1e85e53153f4e82ccc3cb9d9","signature":"ae0afb5a52dc1388d01d7629df55900400761d7548a00f4f74d7f06dca9d0fd7"},"0de16133cc7ae3dae19ad15046c2f3290216a860030f5e3b97096247dcdcff45",{"version":"7c3b0a77c99347bd10327a958e21cd0107e5a2cd9752666f2b486fde98b2144b","signature":"05b3ea71508c038b18660df6108114559896b77716b38bc39d811053766a2ce3"},"031c6fee20541f081c852d2ae93dccdffc5d9dec007eff53ccfab8c64867353a",{"version":"b9cfeaf7252032d82c5c05ad3978026ddf8eea46ee4630bb40bb1c99502bb0e3","signature":"97cf6b96176f6c609ab36203080c0288c5d0d48b5a1394a9d8e8087f9fb57199"},"5b1e2c469707f5f142b45cc7bc5c97ba87cf983a401a8f24d311fb2fe24e8cce",{"version":"ce83901fb4f7165b4c2cc976f9447a7d23329618e9a5b0b5089eb88e8270d4c4","signature":"585b18e4022aff56117f22009e352c823a1688bc22c66c977c149d26e6d65280"},"e2c235aa6b6df087bd139b4d1996143e4d8581d07879c76b5924461483065b4b",{"version":"2d4fef69f059ee03ddde157004f0fbf8ae6f88400244134213d836a1554142ea","signature":"a5abd7ea916646f408179e995e141328fe00494a86be701a3be4a52d7dcd8660"},{"version":"5c43d5937a7636216131e7b1166a653f6409fd16f90c2af4d1d1b17d136f8d6d","signature":"cb9b095a6335d7093ec9614df84ef36c49942fe100d0afcdfbdcf14fab9f09a1"},{"version":"d64c20433479257a43177a53ea5d6f9f9a11f104a4f4af9c4e94029fbb589819","signature":"6e3eddbe1b5def74273f52ffeef2d322685c06fc27b838d36c09518498ae4a86"},{"version":"d212c1e664d339b10fb0d4bb9f21df43089095f0c11b3db593ec7af02fe30558","signature":"9aaffd792bd0caef0c5ce1a8268d76f9b907b6a702dfc790dadd003efc94d34c"},"27a5347f7c0f1301e4d3aadb087e65a78b33db5e40bfbdd8c4fc6b38362ea058",{"version":"63acb24d366a64deab06ee759234d0b01e59204bffa2ddd1fe07d5d19a02f479","signature":"a08f827d900d9a2a6f481555edbb1f4162d3444ed42e66236226bff65561ed1f"},"582a3e1508d7a36267c30d919570c5ef26038116f45a6c5589d980c061ea2bd4",{"version":"e437cef242baf08f5842968d7594587f7333fa2b68f66f7df5712b8baaa04d6f","signature":"a1a688812e9f7fcdfd88f89f8e7a7e84dde69d42e0a35ca39e2f729082fc9bc1"},"8f6d091a6e0f426a5b494df596a4194ca6ae461e0278129c52ce6e7c0c8a28ff","cd636256193d2c0b94b66a710fa2126d1c8df9d7eb903403a8c1eaeeb07b553d",{"version":"f8e3b78f224ed9b6bccb1ffafb9a2d798c2e0d03337e280467b1799b22c6d7fd","signature":"7c75add23c25eb9d091ae323aa539e76a13fb94b720396a1af90f282028ed9d8"},{"version":"5b680f248895ac4901afc2cc72896923f8328c90cf0fd6c76979bf6ca2fadabc","signature":"117006b80b480723583d1d1decb4b55f4c41ed0338f20b0c0bace96c2a0370f5"},{"version":"336a3041d608af39faf66cad556dc31933fad6bbca7c9ab34a85d3905bf0da4b","signature":"78051b22ad18cfbf151ca4df954766b76e6f5ca1edcc951cd0c22910d4fe5226"},"62b307c40a4e5b70ea5464b0d93848783e5895b1946088b96439a3e87f3a7def","2552a31fad45a9ed1bde87e51b038dc0e786cd364b597162263abbf57018949b","97298a5fb6083ee311bed4b2608d8f996de7eddaf3a1bc4513ad349f6474bb67",{"version":"388825df340863d39f1518747c23042575e3a2a3776a4710e365cadca253cb52","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"0ca44ad763b9f30bcc58d7230aeb0161a51aad23843c639610808ed69ff955a6","b64cd0b5a8747650491c629b19aeb13069a33395dc157a2d84ec5ddebd81b072",{"version":"4d629742039af8398f6be0452e79ce9454d1db423b2dd19022696375663ba3a5","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"a44ce62e54aa370e06111e54669db1711aedc4d409c1abbf8e56cf5f45b92849","675d405dd658a5e2be15671ee036a1a6c3bf9f69dd60197b1439eb2f0c46bf56","5191492bb6d63a41512b4d862ae573df6c13184d71f7e5efdedfd7db4a2bf87a","b1f989ef111755a0e3d4f67268ca266f97ce7ed702ed462da223e490fb095d6f","4a02a16e62934aa2494d3b71472b4e7d6681eb63a95a783ff2b02f2573365c16","011058c9a9b7700f3662cb1069b8fd739557bd4ed591c527911fb16f0b147650","1dde09e334c6e33b4e6faf78ddf7295a8c2c50c23d4f6ab61ecb2d2549a7bb94","ae8fce6dfec995f1782f6752749c8701bd103bdcab9be570bae4795d4f369b5d","7420b32535aef29563366c039bcb95ad7e9c017f1acd49fc5cb2348aa8e90d1b","0a1d20642ccaf41fe5ac4fd457b79f5b24913c12c63782eae731fcb71478f078","f6aa36a7511c762b774107a593580e0b0996c13673b486c6b5dba78b4cd5d305","c392677bd076f4fce5f8034215f24024d689c93c5728a544f8bdb1fc4398ad90","1d6eaf245930a0fe78cff7d60b96aeaa2effd5f4f3fadc4c5eb27370f2478348","d96e7be6b69f1371ccca3d74b18589e13604be1c9e8f06576f2a991dc9ac478b","dc397a2a3bb132f181e43df6e205a97d29fc0c7a52a6e703ca22df4edcd978a3",{"version":"72af7a7bcc862457b44381f011d97df2e984396a5008476dec0fe204fbbdc599","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"dd050f45610a94ed58e46a4dc10f0561f29976f85aa72232d489f4503da48a4d","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"a1a57accebf5860cc098094d6039f6dcfdf8d78e1be4537c6706ed09aeb516dd","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"b882eb52eb81a6e44f9a52def12bdab28bfc1b6d754262510dacb1c510c6d22f","6aeed7aa3aac7f286041eb42b23ce245af4c5cca2597297bbd493ce2e519cafd","e85b282611d78fe62336a996b4433a4bb8d3c61cb2ce1213ca59d9d1c82b1605",{"version":"e7992ea4f37ff49aee2ba20ee23771dedae7c64c94b7118b3f45347b9d499b20","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"7e6fdace5f383a7e46587d2d3e716b63a0a64a20399f160733c19c70320302fb",{"version":"b22e3c3d9e8910865c7bb6861ba9aaead527ffc43d01affb6f5b8fe76c7cf544","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"3dfda507c95522fca9526e507b36ab7c669882908ff02520238bdcefca9112c8","59464b8dfeadb70132829f5e98e1138c3097ecb1649cc3b0fba44878638c0b6b","10fee65787dcdae44e5297a1ed6ee99feab9dbb1263df724dd7f4045e41b7055","4cac1c989626573395940369eaf317607a350f71a6f7c9430e436d045eeb3e38","4a987be695f0048d8ae904ecc3cfabb187b5f70ffe00a09d48fdb042454f9994","5f671d2f8b2e33e9e314edfbc9a6a93cb3fed342f2119d7c8eb2c99d7d50f6ee","d1f2c9e0d38aa12d7ed5582a6e5e6899772a0d87e628dd8feb84a12d6767fce9","40bcade959562b65f9fb92c013cf0e55a2c777f6bcd17a62a2fe66e76481e5a0","d429b2d08702a7eb160cb54bfbba6de5dd8a5535f2b3e2247499eca7823b5bd6","cca05501587dc4897fbaed54c53b3dd854cc60fd9c7ac1ad589027c575adca72","e22307fde5904fcade2e4970c7a00db853fb8a7dc29aea9c21a04434224a55f7","d5931a8a53cabcce13a693f2e815dddf661e3482deca2de4b681384802db707c","c81541f2fb4317056fb1f610c726e703741e4e964647c5f0170028dc939032ef","4ff0baf4cbe181c1e2ef8538cc47c35d9e9f42c3822454fca6f6973a3748158f","36a2d52739670666d43afc55211a369d9579bd62c037d353148a0b7971c6389c","481f965b1308ea13779c231da0d624adfbb0949a5c32bd2bb2b1d5638b1490a2","1b50386f56c7a65278203f866ccbe94b17062dea2948e8b3059b8f2373d65aac","a85dca0b790bc28db0301710a61b392fc170603308605ca37b3927a2a376f62a","047d96ee43c35a72e7dab2e6b06ffd5f5f15ad3e306be52476868a9cbb44ae05","267310fe25208babfe53c4cac9430438da58adbd2166de15b7912e0759ae80ac","526d2e2dab6301845586d23b925a75100f40be50fac3a4731298826f5b46aab4",{"version":"cd67172bf3d5545fc4947185b26ac6f0e1c435ef9f862d80c9f03f4b12591b1e","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"516a8e9e68c55adf9e707a73655cfa2c6abc77a88b5dfc51073335dece4fa987","e5419e247fc95d6cc378f7a8458ff231ea5f70671615a76b6436b425e1ad78ac","64f6c15a23f53050722fa8410f0e5715ef8777764858b4e9ed2a51a9de42e5c1","fda7650569a5c9a8364e6fa7863c01c5e09c28654192ce5c85767f1a57b90b7a","5a294aef13aa33ff7ac907aa4d36a7464fe4644e1274b7b4e3e713c83f79e26e",{"version":"2cc221b6550d93bf93efd67c43e4d3a6eb1898104820f6e7824bbeeb4a1f12a8","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"1f0af97c756722dd6ef8389d53be07e6eda6ea8866a72f49b94427db4f27f770","bf01f81e2ec19fef3cc73e799c398a33bf5d8f9ba32f97bb8caaff146c38db0b","46e75c08697dd678c5e2c6ab62936a939c78137754f21e7653c03f608561a7e5","309f54794e14f8a588e36629535c52353ce870aca6f75edb8d1241f8748a6e88","e5cb30227009d38ba2b4498b068c02b99659bbc4fb3212a739d07c8cf6d44012","f9f6d26eb09d886e13f2813ee773cf0b03bff972ea518a5fe36a057d372d89d0","0d7fd286e3ce914d0cf0c9a4374e6dce030bfafb0877e74b8a7ea2298b251898","215bdc778a4d43f75c1eb2008c4c185ce05655169e6b19ebdead2e7dfd33fb95",{"version":"957c224426907e2bbb58ed69fd75e8ad70cf057187cf17f3605ffbc6ca1d7519","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"f9a35dad1ca5d7e4795371826e530016824ffc1b33d5e9bb26578b3ae1a370e9","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"4751a079afd159568c1b00776d3a30f3865efa78a8367d84ffd41a57282c70e4","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"0849ebb0a7678db361cea2e9666c22a5f125acff73e5569a978e09e0c3348229","fb756a79fad85ccb20feeffee25ddad8aa250228bce9fffef2eb8a720b92b0f7","b6337e2bbe307dca560794298cec097271f1da3b58ee07c0b9d56fdf3dd61a5e","7cbc946acfd1ad1643777c069f585edea72fb9443853b4ed43b420dd1293c1f8","2e076b98a3d126b78bd507b97fce30652abe96587e3b545d10edeb038c41b7ea","983bc8979201fdfba6dda898d1447305af0a4969976a263f512c67fb2a5ecb93","88e33dd4a5d67a9aa1b3803159cd4186f46c4ed7a2e60a610fd51ad2910308cf","3e03b867e36b158458894523bb7952f5b98ffb5f0cda93c56f1065d342ac085f","5270e51809a87ce98b81a219a540fca49c2325745733cf314d2ef72ce6aadaf3","3c7aa3d84c1c942be2bfe92c67cce56cb394e14e7031311122e353ccf0ce0135","2e5686e5c265992cbf5dbd1e7276b4293443d07ad66798d12ae2389db81ce1b0",{"version":"f8c6d6e9f8f0e129b1b754bfe65b7d6760ca80e76367fd426a28e728006fb782","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"15add2f6aa1dfac8b448aa599adaeee421d31f23977a9039975c4ac5b1ede8a0","1409b86e2f8b22dcb7768e408048c3e4311be66120f69e8d4f8bd75a9c7bffdb","0faf3d0480b7cd407dafda7fc2f91041973f952439db026c464bf61d540c081a","18bfe69f119d0d705d025b7238ca88da307b3dd82cf2cf26b7a9ce53604def82","e77c61c10e75efa52683fd376a509a91f8c6a64f77d06723b274a5833d9779ba","072e47a6498f7256ea0b4ac39910f2e949ad8b04863dd8050784f2353a419fab","ee0d9c16a09c3388c6f95f426b641326ae68d0940fb851bbb24340a9cea29d00",{"version":"489985aee0b7f12ec02a68cbe7ad77369cbb852b61110ed6984ba602b04a2c05","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},"1d5d421d8aa4829caf3fe65e266fdc3181a6a78f05a2e19f07867340944782bb",{"version":"54b8643cd685561b77a8896f493d4485c455dd66b648555c00afe03d64cedb0f","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"944c1359ab3cffaef654be8549f17eb43d1366ae078d24efe4d8c5a01d833192","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"421c3f008f6ef4a5db2194d58a7b960ef6f33e94b033415649cd557be09ef619","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1},{"version":"4ba01987c4b2c4b94a24c0a05bffbd75ab64d9fe8335dc63e9955d6c51a63468","impliedFormat":1},{"version":"4cf58cd73f135e59d2268b4b792623bd8cc7ea887d96498f2a64d550beb930bb","impliedFormat":1},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true,"impliedFormat":1}],"root":[83,502,503,525,550,608,609,614,756,757,[761,808],[1085,1125],[1155,1211],[1218,1268],[1378,1380],[1384,1403],1407,1408,[1419,1442],[1445,1447],[1449,1473],1478,1524,[1529,1533],[1535,1602],[1640,1756]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true,"target":9},"referencedMap":[[1669,1],[1668,2],[1670,3],[1671,4],[1672,5],[1674,6],[1673,7],[1675,8],[1678,9],[1679,10],[1680,11],[1681,12],[1682,13],[1683,14],[1677,15],[1684,16],[1685,17],[1676,18],[1686,19],[1687,20],[1688,21],[1689,22],[1691,23],[1692,24],[1690,25],[1693,26],[1694,27],[1695,28],[1698,29],[1699,30],[1700,31],[1701,32],[1702,33],[1703,34],[1704,35],[1706,36],[1705,37],[1697,38],[1707,39],[1708,40],[1709,41],[1710,42],[1711,43],[1696,44],[1712,45],[1713,46],[1714,47],[1715,48],[1716,49],[1718,50],[1719,51],[1717,52],[1720,53],[1721,54],[1722,55],[1725,56],[1726,57],[1727,58],[1724,59],[1728,60],[1723,61],[1729,62],[1730,63],[1732,64],[1731,65],[1733,66],[1735,67],[1737,68],[1738,69],[1739,70],[1736,71],[1740,72],[1742,73],[1741,74],[1743,75],[1734,76],[1744,77],[1745,78],[1748,79],[1747,80],[1749,81],[1750,82],[1746,83],[1752,84],[1751,85],[1754,86],[1755,87],[1753,88],[1667,89],[1756,90],[1665,91],[83,92],[1666,93],[609,94],[502,95],[503,96],[612,97],[611,98],[1058,92],[1060,99],[1061,92],[1066,100],[1062,92],[1059,92],[1063,92],[1064,99],[1065,99],[627,101],[632,102],[628,103],[630,104],[636,105],[638,106],[639,107],[721,108],[641,109],[645,110],[648,111],[691,112],[692,112],[720,113],[693,114],[694,115],[705,116],[706,117],[704,118],[696,119],[708,120],[707,121],[709,112],[710,112],[711,122],[712,123],[713,124],[714,125],[715,126],[716,127],[717,123],[695,92],[718,128],[719,116],[722,129],[723,130],[626,131],[631,132],[625,133],[629,132],[633,133],[637,132],[640,133],[643,134],[646,132],[686,135],[688,136],[687,137],[649,132],[634,132],[635,92],[647,138],[650,132],[653,139],[623,131],[654,140],[685,132],[644,92],[651,132],[655,141],[690,142],[656,132],[657,132],[658,132],[659,133],[624,143],[664,132],[663,132],[660,132],[661,132],[662,132],[665,132],[666,132],[667,132],[668,144],[669,133],[670,145],[671,133],[672,139],[673,132],[674,132],[676,146],[675,132],[642,132],[677,132],[678,147],[679,132],[680,132],[681,132],[683,148],[652,141],[684,149],[682,140],[689,132],[739,92],[740,131],[699,150],[737,151],[744,152],[730,153],[729,154],[701,155],[728,156],[703,157],[733,158],[727,159],[734,160],[725,161],[724,92],[736,162],[702,92],[743,163],[735,164],[700,92],[732,165],[731,166],[741,167],[1516,150],[1511,168],[1513,169],[1479,170],[1480,171],[751,172],[1520,173],[1521,174],[752,175],[1514,176],[1518,177],[1517,174],[1515,178],[1522,179],[1523,180],[749,181],[738,182],[754,183],[753,92],[748,184],[747,185],[755,186],[750,187],[621,188],[746,189],[1519,190],[745,92],[1481,92],[742,191],[1482,92],[1483,191],[1484,92],[1485,92],[1486,92],[1487,191],[1488,92],[697,191],[698,192],[1489,92],[1490,92],[1491,92],[616,193],[1492,92],[1508,92],[1506,92],[1493,92],[1494,92],[1495,191],[1496,191],[1512,194],[1497,92],[1498,92],[1505,92],[1507,92],[1504,92],[617,191],[618,195],[726,92],[1499,92],[1500,92],[1510,196],[622,191],[1501,92],[1502,92],[1503,92],[619,193],[615,92],[620,197],[1639,198],[1637,199],[1638,200],[816,92],[945,201],[838,202],[839,203],[909,204],[837,92],[918,205],[974,206],[836,207],[971,92],[978,208],[811,92],[812,209],[826,210],[833,211],[827,212],[817,92],[820,213],[822,214],[819,213],[818,213],[823,92],[828,212],[829,212],[976,215],[832,216],[824,217],[942,218],[830,212],[825,212],[975,219],[831,220],[834,218],[946,221],[905,222],[908,223],[842,224],[900,225],[910,226],[912,227],[906,228],[907,229],[841,230],[895,231],[897,232],[899,233],[840,92],[821,92],[917,92],[898,92],[944,234],[943,92],[1067,235],[911,92],[814,236],[896,237],[835,238],[815,239],[948,240],[947,92],[949,241],[950,242],[951,92],[953,243],[954,92],[955,240],[956,92],[959,240],[960,92],[961,244],[962,92],[963,245],[952,242],[964,240],[958,246],[965,241],[957,242],[966,240],[967,244],[968,240],[969,244],[970,247],[913,248],[922,249],[923,250],[915,92],[924,251],[914,252],[809,92],[916,92],[919,253],[920,254],[921,254],[810,92],[930,255],[925,256],[929,257],[928,258],[932,255],[933,255],[931,255],[934,255],[935,255],[936,255],[927,259],[997,260],[1078,261],[1077,262],[939,263],[1071,264],[1076,265],[1079,266],[1075,267],[1074,268],[1070,269],[1069,270],[1084,271],[1072,92],[993,272],[996,273],[941,274],[938,275],[937,92],[989,276],[977,277],[1082,278],[940,279],[926,92],[995,280],[1080,281],[1081,282],[1068,283],[998,236],[1001,284],[999,281],[1000,281],[982,285],[992,286],[986,287],[990,288],[981,92],[991,289],[984,290],[985,291],[987,292],[983,293],[988,291],[980,294],[994,295],[1083,296],[1073,92],[979,92],[1151,297],[1147,298],[1154,299],[1148,300],[1152,301],[1146,302],[1141,303],[1215,304],[1212,305],[1140,306],[1448,307],[1150,308],[1137,92],[1213,309],[1216,310],[1443,311],[1444,312],[1217,307],[1126,313],[1149,314],[1143,315],[1142,306],[1139,306],[1214,92],[1138,316],[1145,317],[249,92],[524,318],[613,319],[610,92],[813,92],[1525,92],[1526,320],[1527,321],[1528,322],[597,323],[1272,92],[1271,324],[1273,325],[1270,92],[1757,324],[1274,326],[595,92],[564,92],[1758,92],[1759,92],[146,327],[147,327],[148,328],[100,329],[149,330],[150,331],[151,332],[95,92],[98,333],[96,92],[97,92],[152,334],[153,335],[154,336],[155,337],[156,338],[157,339],[158,339],[159,340],[160,341],[161,342],[162,343],[101,92],[99,92],[163,344],[164,345],[165,346],[199,347],[166,348],[167,92],[168,349],[169,350],[170,351],[171,352],[172,353],[173,354],[174,355],[175,356],[176,357],[177,357],[178,358],[179,92],[180,359],[181,360],[183,361],[182,362],[184,363],[185,364],[186,365],[187,366],[188,367],[189,368],[190,369],[191,370],[192,371],[193,372],[194,373],[195,374],[196,375],[102,92],[103,92],[104,92],[142,376],[143,92],[144,92],[145,363],[197,377],[198,378],[1760,92],[1761,92],[203,379],[359,380],[204,381],[202,382],[361,383],[360,384],[200,385],[357,92],[201,386],[84,92],[86,387],[356,380],[267,380],[1763,388],[1762,92],[560,389],[584,390],[582,92],[583,92],[552,92],[579,391],[576,392],[577,393],[598,394],[589,92],[592,395],[591,396],[603,396],[590,397],[551,92],[559,398],[578,398],[554,399],[557,400],[585,399],[558,401],[553,92],[1354,402],[1355,403],[1353,380],[1358,404],[1357,405],[1359,406],[1356,407],[1372,408],[1373,409],[1371,410],[1374,411],[1363,412],[1361,413],[1362,414],[1360,407],[1367,415],[1366,416],[1365,417],[1364,410],[1370,418],[1369,419],[1368,410],[1330,380],[1327,420],[1324,421],[1321,421],[1325,422],[1326,421],[1323,421],[1322,421],[1320,410],[1329,410],[1328,422],[1331,380],[1319,423],[1348,380],[1346,424],[1335,425],[1343,426],[1347,425],[1337,426],[1344,426],[1334,425],[1345,424],[1338,423],[1342,92],[1350,424],[1349,424],[1341,425],[1340,426],[1332,425],[1339,425],[1333,426],[1336,426],[1376,427],[1315,407],[1314,407],[1312,407],[1318,428],[1317,424],[1313,429],[1316,424],[1351,424],[1375,426],[1352,423],[1283,430],[1311,431],[1269,430],[1281,432],[1280,433],[1278,430],[1282,434],[1277,435],[1279,436],[1275,92],[1284,430],[1285,430],[1296,92],[1286,430],[1289,437],[1291,438],[1290,439],[1288,430],[1287,92],[1293,440],[1292,430],[1299,441],[1294,430],[1295,426],[1298,430],[1297,442],[1276,430],[1301,443],[1300,430],[1304,444],[1302,430],[1303,445],[1305,446],[1307,447],[1306,430],[1310,448],[1308,449],[1309,450],[596,92],[1534,92],[85,92],[1509,92],[569,92],[844,92],[1153,92],[1415,451],[1417,452],[1416,453],[1414,454],[1413,92],[1382,455],[1381,92],[972,92],[973,456],[1144,92],[1383,92],[884,457],[861,458],[859,92],[862,459],[885,460],[865,461],[854,92],[856,92],[860,462],[857,463],[864,464],[855,92],[863,465],[858,462],[872,466],[866,467],[867,468],[871,469],[870,470],[883,471],[873,472],[874,467],[886,467],[876,473],[875,474],[888,475],[887,476],[869,477],[868,472],[877,478],[878,472],[880,479],[879,478],[881,467],[882,480],[891,481],[853,482],[843,92],[892,483],[851,92],[901,92],[903,484],[902,485],[850,486],[852,92],[849,487],[890,92],[889,488],[893,489],[894,488],[904,490],[1377,380],[1477,380],[93,491],[448,492],[453,91],[455,493],[225,494],[253,495],[431,496],[248,497],[236,92],[217,92],[223,92],[421,498],[284,499],[224,92],[390,500],[258,501],[259,502],[355,503],[418,504],[373,505],[425,506],[426,507],[424,508],[423,92],[422,509],[255,510],[226,511],[305,92],[306,512],[221,92],[237,513],[227,514],[289,513],[286,513],[210,513],[251,515],[250,92],[430,516],[440,92],[216,92],[331,517],[332,518],[326,380],[476,92],[334,92],[335,519],[327,520],[482,521],[480,522],[475,92],[417,523],[416,92],[474,524],[328,380],[369,525],[367,526],[477,92],[481,92],[479,527],[478,92],[368,528],[469,529],[472,530],[296,531],[295,532],[294,533],[485,380],[293,534],[278,92],[488,92],[1475,535],[1474,92],[491,92],[490,380],[492,536],[206,92],[427,537],[428,538],[429,539],[239,92],[215,540],[205,92],[347,380],[208,541],[346,542],[345,543],[336,92],[337,92],[344,92],[339,92],[342,544],[338,92],[340,545],[343,546],[341,545],[222,92],[213,92],[214,513],[268,547],[269,548],[266,549],[264,550],[265,551],[261,92],[353,519],[375,519],[447,552],[456,553],[460,554],[434,555],[433,92],[281,92],[493,556],[443,557],[329,558],[330,559],[321,560],[311,92],[352,561],[312,562],[354,563],[349,564],[348,92],[350,92],[366,565],[435,566],[436,567],[314,568],[318,569],[309,570],[413,571],[442,572],[288,573],[391,574],[211,575],[441,576],[207,497],[262,92],[270,577],[402,578],[260,92],[401,579],[94,92],[396,580],[238,92],[307,581],[392,92],[212,92],[271,92],[400,582],[220,92],[276,583],[317,584],[432,585],[316,92],[399,92],[263,92],[404,586],[405,587],[218,92],[407,588],[409,589],[408,590],[241,92],[398,575],[411,591],[397,592],[403,593],[229,92],[232,92],[230,92],[234,92],[231,92],[233,92],[235,594],[228,92],[383,595],[382,92],[388,596],[384,597],[387,598],[386,598],[389,596],[385,597],[275,599],[376,600],[439,601],[495,92],[464,602],[466,603],[313,92],[465,604],[437,566],[494,605],[333,566],[219,92],[315,606],[272,607],[273,608],[274,609],[304,610],[412,610],[290,610],[377,611],[291,611],[257,612],[256,92],[381,613],[380,614],[379,615],[378,616],[438,617],[325,618],[363,619],[324,620],[358,621],[362,622],[420,623],[419,624],[415,625],[372,626],[374,627],[371,628],[410,629],[365,92],[452,92],[364,630],[414,92],[277,631],[310,537],[308,632],[279,633],[282,634],[489,92],[280,635],[283,635],[450,92],[449,92],[451,92],[487,92],[285,636],[323,380],[92,92],[370,637],[254,92],[243,638],[319,92],[458,380],[468,639],[303,380],[462,519],[302,640],[445,641],[301,639],[209,92],[470,642],[299,380],[300,380],[292,92],[242,92],[298,643],[297,644],[240,645],[320,356],[287,356],[406,92],[394,646],[393,92],[454,92],[351,647],[322,380],[446,648],[87,380],[90,649],[91,650],[88,380],[89,92],[252,651],[247,652],[246,92],[245,653],[244,92],[444,654],[457,655],[459,656],[461,657],[1476,658],[463,659],[467,660],[501,661],[471,661],[500,662],[473,663],[483,664],[484,665],[486,666],[496,667],[499,540],[498,92],[497,668],[848,669],[846,670],[847,671],[845,92],[758,672],[760,673],[521,674],[504,92],[505,674],[520,675],[523,676],[522,677],[542,678],[540,679],[541,680],[529,681],[530,679],[537,682],[528,683],[533,684],[543,92],[534,685],[539,686],[545,687],[544,688],[527,689],[535,690],[536,691],[531,692],[538,678],[532,693],[1603,92],[1619,694],[1620,694],[1621,694],[1622,694],[1636,695],[1623,696],[1624,696],[1625,697],[1616,698],[1614,699],[1605,92],[1609,700],[1613,701],[1611,702],[1618,703],[1606,704],[1607,705],[1608,706],[1610,707],[1612,708],[1615,709],[1617,710],[1626,696],[1627,696],[1628,696],[1629,694],[1630,696],[1631,696],[1604,696],[1632,92],[1634,711],[1633,696],[1635,694],[566,712],[565,713],[395,714],[759,715],[526,92],[548,716],[547,92],[546,92],[549,717],[599,92],[555,92],[556,718],[81,92],[82,92],[13,92],[14,92],[16,92],[15,92],[2,92],[17,92],[18,92],[19,92],[20,92],[21,92],[22,92],[23,92],[24,92],[3,92],[25,92],[26,92],[4,92],[27,92],[31,92],[28,92],[29,92],[30,92],[32,92],[33,92],[34,92],[5,92],[35,92],[36,92],[37,92],[38,92],[6,92],[42,92],[39,92],[40,92],[41,92],[43,92],[7,92],[44,92],[49,92],[50,92],[45,92],[46,92],[47,92],[48,92],[8,92],[54,92],[51,92],[52,92],[53,92],[55,92],[9,92],[56,92],[57,92],[58,92],[60,92],[59,92],[61,92],[62,92],[10,92],[63,92],[64,92],[65,92],[11,92],[66,92],[67,92],[68,92],[69,92],[70,92],[1,92],[71,92],[72,92],[12,92],[76,92],[74,92],[79,92],[78,92],[73,92],[77,92],[75,92],[80,92],[120,719],[130,720],[119,719],[140,721],[111,722],[110,723],[139,668],[133,724],[138,725],[113,726],[127,727],[112,728],[136,729],[108,730],[107,668],[137,731],[109,732],[114,733],[115,92],[118,733],[105,92],[141,734],[131,735],[122,736],[123,737],[125,738],[121,739],[124,740],[134,668],[116,741],[117,742],[126,743],[106,744],[129,735],[128,733],[132,92],[135,745],[601,746],[587,747],[588,746],[586,92],[562,748],[575,749],[568,750],[563,748],[561,92],[567,751],[573,92],[571,92],[572,92],[570,92],[574,752],[607,753],[600,754],[593,755],[602,756],[581,757],[1410,758],[1411,759],[604,760],[1412,761],[605,762],[594,763],[1409,764],[606,765],[1418,766],[580,92],[519,767],[511,768],[518,769],[513,92],[514,92],[512,770],[515,771],[506,92],[507,92],[508,767],[510,772],[516,92],[517,773],[509,774],[1130,775],[1133,776],[1131,776],[1127,775],[1134,777],[1135,778],[1132,776],[1128,779],[1129,780],[1054,781],[1006,782],[1008,783],[1052,92],[1007,784],[1053,785],[1057,786],[1055,92],[1009,782],[1010,92],[1051,787],[1005,788],[1002,92],[1056,789],[1003,790],[1004,92],[1136,791],[1011,792],[1012,792],[1013,792],[1014,792],[1015,792],[1016,792],[1017,792],[1018,792],[1019,792],[1020,792],[1021,792],[1023,792],[1022,792],[1024,792],[1025,792],[1026,792],[1050,793],[1027,792],[1028,792],[1029,792],[1030,792],[1031,792],[1032,792],[1033,792],[1034,792],[1035,792],[1037,792],[1036,792],[1038,792],[1039,792],[1040,792],[1041,792],[1042,792],[1043,792],[1044,792],[1045,792],[1046,792],[1047,792],[1048,792],[1049,792],[1406,794],[1405,795],[1404,92],[525,94],[614,796],[1177,797],[1176,798],[1180,799],[1181,800],[1182,801],[1185,802],[1184,803],[1188,804],[1192,805],[1193,805],[1194,805],[1195,806],[1196,807],[1197,806],[1191,805],[1198,808],[1201,809],[1190,810],[1202,811],[1203,812],[1204,812],[1207,813],[1210,814],[1211,812],[1209,815],[1219,816],[1220,817],[1221,818],[1225,805],[1226,805],[1227,805],[1228,805],[1229,805],[1230,819],[1231,805],[1233,797],[1232,805],[1224,820],[1234,797],[1235,820],[1236,797],[1237,821],[1238,797],[1223,822],[1239,813],[1240,814],[1241,816],[1244,823],[1245,812],[1248,824],[1249,824],[1247,824],[1250,824],[1251,824],[1253,825],[1258,826],[1259,826],[1260,827],[1257,827],[1263,828],[1256,827],[1264,829],[1265,830],[1267,831],[1266,831],[1549,832],[1559,833],[1560,834],[1574,835],[1575,836],[1576,837],[1561,838],[1577,833],[1578,839],[1551,840],[1581,833],[1583,841],[1579,833],[1580,842],[1584,833],[1585,843],[1552,92],[1554,833],[1558,844],[1586,833],[1587,845],[1588,833],[1590,846],[1602,833],[1642,847],[1600,833],[1601,848],[1643,833],[1644,849],[1591,833],[1596,850],[1645,833],[1646,851],[1597,852],[1599,853],[1598,854],[1656,833],[1657,855],[1647,833],[1648,856],[1650,857],[1653,858],[1651,859],[1654,860],[1652,861],[1655,862],[1660,863],[1661,832],[1658,832],[1473,864],[1538,865],[1540,866],[1541,867],[1548,868],[1532,869],[1662,832],[1572,870],[1268,871],[1566,872],[1380,873],[1567,874],[1562,875],[1571,864],[1570,864],[1568,876],[1384,877],[1385,871],[1573,878],[1379,879],[1386,871],[1569,880],[1564,881],[1563,882],[1378,883],[1565,884],[1387,885],[1388,886],[1594,887],[1531,888],[1557,889],[1582,890],[1539,380],[1593,864],[1555,864],[1550,864],[1535,864],[1553,891],[1537,892],[1546,864],[1547,893],[1543,887],[1663,864],[1545,380],[1544,380],[1533,894],[1536,895],[1595,887],[1649,896],[1524,897],[1529,898],[1530,380],[1478,888],[1542,380],[1640,899],[1641,900],[1556,901],[1589,892],[1664,902],[1659,903],[1592,887],[1389,92],[1262,904],[1394,905],[1395,906],[763,92],[1396,907],[764,908],[770,909],[765,811],[1175,910],[1393,911],[761,912],[1206,92],[762,913],[768,914],[788,915],[1392,916],[771,917],[756,918],[795,919],[798,920],[797,921],[799,922],[1178,923],[1179,924],[1187,925],[1186,926],[1121,92],[769,92],[1120,927],[1114,92],[1116,928],[1117,92],[1163,929],[1085,930],[1119,931],[1118,932],[1397,933],[1115,934],[1113,912],[796,935],[1112,936],[1164,92],[1165,92],[1166,937],[1183,871],[1171,938],[1172,939],[1125,92],[1155,940],[1157,941],[1156,942],[1123,942],[1218,943],[1124,944],[1158,942],[1200,945],[1199,946],[1161,947],[1398,948],[1173,949],[1399,949],[1160,950],[1169,951],[1170,952],[1099,953],[1097,954],[1107,955],[1089,956],[1087,957],[1106,958],[1105,959],[1101,960],[1091,961],[1108,92],[1103,962],[1111,963],[1086,957],[1095,964],[1093,965],[1109,966],[1110,967],[1098,912],[1096,912],[1088,912],[1104,912],[1100,912],[1090,912],[1102,912],[1094,912],[1092,912],[804,968],[802,969],[808,970],[801,912],[806,971],[807,92],[805,968],[803,972],[783,973],[781,974],[778,975],[794,976],[772,977],[782,978],[780,978],[777,92],[793,979],[767,979],[786,942],[791,949],[775,911],[1390,957],[789,980],[792,981],[776,982],[1391,983],[1401,984],[1167,985],[1400,978],[800,979],[1122,986],[1162,987],[1242,911],[1402,911],[1159,988],[1174,989],[1243,990],[787,991],[1403,992],[1407,993],[1205,92],[779,92],[766,92],[773,92],[1208,942],[785,957],[1168,92],[790,92],[1252,92],[774,871],[1261,92],[784,92],[1408,92],[757,912],[1189,912],[1254,912],[1222,912],[1246,912],[1255,994],[550,995],[1419,996],[1420,997],[1437,998],[1421,999],[1438,1000],[1427,1001],[1428,1002],[1439,1003],[1440,1004],[1441,1005],[1429,1006],[1424,1007],[1431,1008],[1423,1009],[1425,1010],[1430,1011],[1422,933],[1442,1012],[1445,1013],[1446,1014],[1447,1015],[1449,1016],[1450,1017],[1451,1018],[1452,1019],[1453,1020],[1432,1021],[1454,1022],[1455,1023],[1456,1024],[1433,1025],[1434,1026],[1435,1027],[1436,1028],[1457,1029],[1458,1030],[1459,1029],[1460,1031],[1426,936],[1461,1029],[1462,1025],[1463,1029],[1464,1030],[1465,1032],[1466,1029],[1467,1033],[1468,1034],[1469,1035],[1470,1036],[1471,1037],[1472,1038],[608,1039]],"affectedFilesPendingEmit":[1669,1668,1670,1671,1672,1674,1673,1675,1678,1679,1680,1681,1682,1683,1677,1684,1685,1676,1686,1687,1688,1689,1691,1692,1690,1693,1694,1695,1698,1699,1700,1701,1702,1703,1704,1706,1705,1697,1707,1708,1709,1710,1711,1696,1712,1713,1714,1715,1716,1718,1719,1717,1720,1721,1722,1725,1726,1727,1724,1728,1723,1729,1730,1732,1731,1733,1735,1737,1738,1739,1736,1740,1742,1741,1743,1734,1744,1745,1748,1747,1749,1750,1746,1752,1751,1754,1755,1753,1667,1756,1666,609,503,525,614,1177,1176,1180,1181,1182,1185,1184,1188,1192,1193,1194,1195,1196,1197,1191,1198,1201,1190,1202,1203,1204,1207,1210,1211,1209,1219,1220,1221,1225,1226,1227,1228,1229,1230,1231,1233,1232,1224,1234,1235,1236,1237,1238,1223,1239,1240,1241,1244,1245,1248,1249,1247,1250,1251,1253,1258,1259,1260,1257,1263,1256,1264,1265,1267,1266,1549,1559,1560,1574,1575,1576,1561,1577,1578,1551,1581,1583,1579,1580,1584,1585,1552,1554,1558,1586,1587,1588,1590,1602,1642,1600,1601,1643,1644,1591,1596,1645,1646,1597,1599,1598,1656,1657,1647,1648,1650,1653,1651,1654,1652,1655,1660,1661,1658,1473,1538,1540,1541,1548,1532,1662,1572,1268,1566,1380,1567,1562,1571,1570,1568,1384,1385,1573,1379,1386,1569,1564,1563,1378,1565,1387,1388,1594,1531,1557,1582,1539,1593,1555,1550,1535,1553,1537,1546,1547,1543,1663,1545,1544,1533,1536,1595,1649,1524,1529,1530,1478,1542,1640,1641,1556,1589,1664,1659,1592,1389,1262,1394,1395,763,1396,764,770,765,1175,1393,761,1206,762,768,788,1392,771,756,795,798,797,799,1178,1179,1187,1186,1121,769,1120,1114,1116,1117,1163,1085,1119,1118,1397,1115,1113,796,1112,1164,1165,1166,1183,1171,1172,1125,1155,1157,1156,1123,1218,1124,1158,1200,1199,1161,1398,1173,1399,1160,1169,1170,1099,1097,1107,1089,1087,1106,1105,1101,1091,1108,1103,1111,1086,1095,1093,1109,1110,1098,1096,1088,1104,1100,1090,1102,1094,1092,804,802,808,801,806,807,805,803,783,781,778,794,772,782,780,777,793,767,786,791,775,1390,789,792,776,1391,1401,1167,1400,800,1122,1162,1242,1402,1159,1174,1243,787,1403,1407,1205,779,766,773,1208,785,1168,790,1252,774,1261,784,1408,757,1189,1254,1222,1246,1255,550,1419,1420,1437,1421,1438,1427,1428,1439,1440,1441,1429,1424,1431,1423,1425,1430,1422,1442,1445,1446,1447,1449,1450,1451,1452,1453,1432,1454,1455,1456,1433,1434,1435,1436,1457,1458,1459,1460,1426,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,608],"version":"5.9.3"} \ No newline at end of file From d590050659e503604ab7c69e27b71f91a61fa15a Mon Sep 17 00:00:00 2001 From: devhimanshuu Date: Mon, 24 Aug 2026 00:14:18 +0530 Subject: [PATCH 2/8] feat: enhanced visual graph canvas editor with real-time --- src/app/api/executions/[id]/detail/route.ts | 2 +- src/app/api/executions/[id]/export/route.ts | 2 +- src/app/api/executions/[id]/replay/route.ts | 2 +- src/app/api/executions/[id]/resume/route.ts | 2 +- src/app/api/executions/route.ts | 1 - src/app/api/skills/packs/route.ts | 2 - src/app/api/workflows/n8n/[id]/route.ts | 106 +++ src/app/api/workflows/n8n/search/route.ts | 135 ++++ src/app/dashboard/canvas/[id]/page.tsx | 185 ++++- src/app/dashboard/canvas/new/page.tsx | 90 ++- src/app/dashboard/skills/[id]/page.tsx | 72 +- .../marketplace/N8nWorkflowsMarketplace.tsx | 640 ++++++++++++++++++ .../skills/marketplace/SkillsMarketplace.tsx | 2 +- src/app/dashboard/skills/page.tsx | 24 +- src/components/canvas/AgentGraphCanvas.tsx | 316 ++++++--- src/components/canvas/CanvasCopilot.tsx | 72 +- src/components/canvas/CanvasNodes.tsx | 30 +- src/components/canvas/NodePalette.tsx | 22 +- src/components/canvas/graphUtils.ts | 6 +- src/components/common/JsonEditorModal.tsx | 269 ++++++++ src/lib/converters/n8n-converter.ts | 384 +++++++++++ src/lib/execution/inputHelper.ts | 86 +++ src/types/graph.ts | 6 +- src/validators/graphSchema.ts | 74 +- tests/unit/services/executionResume.test.ts | 20 +- tsconfig.tsbuildinfo | 2 +- 26 files changed, 2302 insertions(+), 250 deletions(-) create mode 100644 src/app/api/workflows/n8n/[id]/route.ts create mode 100644 src/app/api/workflows/n8n/search/route.ts create mode 100644 src/app/dashboard/skills/marketplace/N8nWorkflowsMarketplace.tsx create mode 100644 src/components/common/JsonEditorModal.tsx create mode 100644 src/lib/converters/n8n-converter.ts create mode 100644 src/lib/execution/inputHelper.ts diff --git a/src/app/api/executions/[id]/detail/route.ts b/src/app/api/executions/[id]/detail/route.ts index e7a744c..bf9db5e 100644 --- a/src/app/api/executions/[id]/detail/route.ts +++ b/src/app/api/executions/[id]/detail/route.ts @@ -3,7 +3,7 @@ import { auth } from "@clerk/nextjs/server"; import { unauthorized, serverError, notFound } from "@/lib/api/handlers"; import { apiServices } from "@/lib/api/services"; -const { executionService, historyService } = apiServices(); +const { historyService } = apiServices(); /** Full execution detail: trace data, structured logs, timeline, and approval events. */ export async function GET( diff --git a/src/app/api/executions/[id]/export/route.ts b/src/app/api/executions/[id]/export/route.ts index 1863516..422e652 100644 --- a/src/app/api/executions/[id]/export/route.ts +++ b/src/app/api/executions/[id]/export/route.ts @@ -3,7 +3,7 @@ import { auth } from "@clerk/nextjs/server"; import { unauthorized, serverError, notFound } from "@/lib/api/handlers"; import { apiServices } from "@/lib/api/services"; -const { executionService, historyService } = apiServices(); +const { historyService } = apiServices(); /** * JSON export of a full execution report: trace data, structured logs, diff --git a/src/app/api/executions/[id]/replay/route.ts b/src/app/api/executions/[id]/replay/route.ts index 2cb0d79..2f81b18 100644 --- a/src/app/api/executions/[id]/replay/route.ts +++ b/src/app/api/executions/[id]/replay/route.ts @@ -4,7 +4,7 @@ import { unauthorized, serverError, notFound, forbidden } from "@/lib/api/handle import { rateLimit } from "@/lib/api/rateLimit"; import { apiServices } from "@/lib/api/services"; -const { executionService, historyService } = apiServices(); +const { historyService } = apiServices(); /** * Replay a previous execution. Reuses its skill version + input, creates a NEW diff --git a/src/app/api/executions/[id]/resume/route.ts b/src/app/api/executions/[id]/resume/route.ts index b3ba5d7..506268b 100644 --- a/src/app/api/executions/[id]/resume/route.ts +++ b/src/app/api/executions/[id]/resume/route.ts @@ -10,7 +10,7 @@ const resumeSchema = z.object({ idempotencyKey: z.string().min(1, "Idempotency key is required"), }); -const { executionRepo, auditRepo, approvalRepo, approvalEngine, executionService } = apiServices(); +const { auditRepo, approvalRepo, approvalEngine, executionService } = apiServices(); export async function POST( request: Request, diff --git a/src/app/api/executions/route.ts b/src/app/api/executions/route.ts index 6ebedf7..9c31021 100644 --- a/src/app/api/executions/route.ts +++ b/src/app/api/executions/route.ts @@ -1,7 +1,6 @@ import { NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; import { startExecutionSchema } from "@/validators/executionSchema"; -import { ExecutionHistoryService } from "@/modules/history"; import { unauthorized, badRequest, serverError, isValidIsoDate } from "@/lib/api/handlers"; import { rateLimit } from "@/lib/api/rateLimit"; import { ExecutionError } from "@/modules/execution/executor/errors"; diff --git a/src/app/api/skills/packs/route.ts b/src/app/api/skills/packs/route.ts index 8f49e3f..d67a630 100644 --- a/src/app/api/skills/packs/route.ts +++ b/src/app/api/skills/packs/route.ts @@ -2,8 +2,6 @@ import { NextRequest, NextResponse } from "next/server"; import { auth } from "@clerk/nextjs/server"; import { SkillService } from "@/services/SkillService"; -import { SkillRepository } from "@/repositories/SkillRepository"; -import { AuditLogRepository } from "@/repositories/AuditLogRepository"; import { getPackById, SKILL_PACKS } from "@/data/skillPacks"; import { InstallPackInput, PackInstallationState } from "@/types/skillPacks"; import { createSkillSchema } from "@/validators/skillSchema"; diff --git a/src/app/api/workflows/n8n/[id]/route.ts b/src/app/api/workflows/n8n/[id]/route.ts new file mode 100644 index 0000000..a08a367 --- /dev/null +++ b/src/app/api/workflows/n8n/[id]/route.ts @@ -0,0 +1,106 @@ +import { NextResponse } from "next/server"; +import { auth } from "@clerk/nextjs/server"; +import { unauthorized, notFound } from "@/lib/api/handlers"; +import { fetchWithRetry } from "@/lib/fetch-utils"; +import { convertN8nToAgentGraph, convertN8nToWorkflowTemplate } from "@/lib/converters/n8n-converter"; + +export const revalidate = 600; + +interface CacheEntry { + data: any; + timestamp: number; +} + +const workflowCache = new Map(); +const CACHE_TTL_MS = 30 * 60 * 1000; // 30 minutes + +export async function GET( + request: Request, + { params }: { params: Promise<{ id: string }> } +) { + const { userId } = await auth(); + if (!userId) return unauthorized(); + + const { id } = await params; + if (!id) return notFound("Workflow ID required"); + + const cached = workflowCache.get(id); + if (cached && Date.now() - cached.timestamp < CACHE_TTL_MS) { + return NextResponse.json({ + success: true, + data: cached.data, + cached: true, + }); + } + + try { + const res = await fetchWithRetry(`https://api.n8n.io/templates/workflows/${id}`, { + timeoutMs: 15000, + retries: 2, + }); + + if (!res.ok) { + if (res.status === 404) return notFound(`n8n workflow #${id} not found`); + throw new Error(`n8n API responded with status ${res.status}`); + } + + const json = await res.json(); + const rawWorkflow = json.workflow || json; + + if (!rawWorkflow) { + return notFound(`n8n workflow #${id} structure not found`); + } + + const innerWorkflowData = rawWorkflow.workflow || rawWorkflow; + const nodes = innerWorkflowData.nodes || []; + const connections = innerWorkflowData.connections || {}; + + const convertedGraph = convertN8nToAgentGraph({ + id: rawWorkflow.id, + name: rawWorkflow.name, + description: rawWorkflow.description, + nodes, + connections, + }); + + const convertedTemplate = convertN8nToWorkflowTemplate({ + id: rawWorkflow.id, + name: rawWorkflow.name, + description: rawWorkflow.description, + nodes, + }); + + const payload = { + id: rawWorkflow.id, + name: rawWorkflow.name, + description: rawWorkflow.description, + views: rawWorkflow.views || rawWorkflow.totalViews || 0, + createdAt: rawWorkflow.createdAt, + user: rawWorkflow.user, + rawWorkflowJson: innerWorkflowData, + nodeCount: nodes.length, + convertedGraph, + convertedTemplate, + url: `https://n8n.io/workflows/${id}`, + }; + + workflowCache.set(id, { + data: payload, + timestamp: Date.now(), + }); + + return NextResponse.json({ + success: true, + data: payload, + }); + } catch (error: any) { + console.error(`[n8n workflow detail API error for #${id}]:`, error); + return NextResponse.json( + { + success: false, + error: error?.message || `Failed to fetch n8n workflow #${id}`, + }, + { status: 502 } + ); + } +} diff --git a/src/app/api/workflows/n8n/search/route.ts b/src/app/api/workflows/n8n/search/route.ts new file mode 100644 index 0000000..b6f6eb9 --- /dev/null +++ b/src/app/api/workflows/n8n/search/route.ts @@ -0,0 +1,135 @@ +import { NextResponse } from "next/server"; +import { auth } from "@clerk/nextjs/server"; +import { unauthorized } from "@/lib/api/handlers"; +import { fetchWithRetry } from "@/lib/fetch-utils"; + +export const revalidate = 300; + +interface CacheEntry { + data: any; + timestamp: number; +} + +const searchCache = new Map(); +const CACHE_TTL_MS = 15 * 60 * 1000; // 15 minutes + +const CATEGORY_MAP: Record = { + "AI": "25", + "Langchain": "48", + "RAG": "48", + "Communication": "13", + "Support": "13", + "Data & Storage": "30", + "Development": "16", + "DevOps": "16", + "Productivity": "11", + "Sales": "2", + "CRM": "39", + "Marketing": "27", +}; + +export async function GET(request: Request) { + const { userId } = await auth(); + if (!userId) return unauthorized(); + + const url = new URL(request.url); + const page = parseInt(url.searchParams.get("page") || "1", 10); + const perPage = Math.min(50, parseInt(url.searchParams.get("perPage") || "24", 10)); + const q = url.searchParams.get("q")?.trim() || ""; + const category = url.searchParams.get("category")?.trim() || ""; + const collection = url.searchParams.get("collection")?.trim() || ""; + + const cacheKey = `n8n-search:${page}:${perPage}:${q}:${category}:${collection}`; + const cached = searchCache.get(cacheKey); + if (cached && Date.now() - cached.timestamp < CACHE_TTL_MS) { + return NextResponse.json({ + success: true, + ...cached.data, + cached: true, + }); + } + + try { + const targetUrl = new URL("https://api.n8n.io/templates/search"); + targetUrl.searchParams.set("page", String(page)); + targetUrl.searchParams.set("perPage", String(perPage)); + if (q) targetUrl.searchParams.set("q", q); + + if (category && category !== "ALL") { + const mappedId = CATEGORY_MAP[category] || category; + targetUrl.searchParams.set("categories", mappedId); + } + if (collection) targetUrl.searchParams.set("collection", collection); + + const res = await fetchWithRetry(targetUrl.toString(), { + timeoutMs: 12000, + retries: 2, + }); + + if (!res.ok) { + throw new Error(`n8n API responded with status ${res.status}`); + } + + const json = await res.json(); + const totalWorkflows = json.totalWorkflows || json.total || (json.workflows || []).length; + const rawWorkflows = json.workflows || []; + + const normalizedWorkflows = rawWorkflows.map((wf: any) => { + const nodes = Array.isArray(wf.nodes) ? wf.nodes : []; + const nodeIcons = nodes.slice(0, 6).map((n: any) => ({ + name: n.displayName || n.name || "Node", + icon: n.iconData?.fileBuffer || null, + type: n.name || n.type, + })); + + return { + id: wf.id, + name: wf.name, + description: wf.description || "", + totalViews: wf.totalViews || wf.views || 0, + createdAt: wf.createdAt, + user: { + name: wf.user?.name || "Community", + username: wf.user?.username || "n8n", + avatar: wf.user?.avatar || null, + verified: Boolean(wf.user?.verified), + }, + nodeCount: nodes.length, + nodeIcons, + nodeTypes: Array.from(new Set(nodes.map((n: any) => n.name || n.displayName))).slice(0, 8), + url: `https://n8n.io/workflows/${wf.id}`, + }; + }); + + const responsePayload = { + workflows: normalizedWorkflows, + pagination: { + page, + perPage, + totalWorkflows, + totalPages: Math.ceil(totalWorkflows / perPage), + }, + }; + + searchCache.set(cacheKey, { + data: responsePayload, + timestamp: Date.now(), + }); + + return NextResponse.json({ + success: true, + ...responsePayload, + }); + } catch (error: any) { + console.error("[n8n search API error]:", error); + return NextResponse.json( + { + success: false, + error: error?.message || "Failed to fetch n8n workflows", + workflows: [], + pagination: { page, perPage, totalWorkflows: 0, totalPages: 0 }, + }, + { status: 502 } + ); + } +} diff --git a/src/app/dashboard/canvas/[id]/page.tsx b/src/app/dashboard/canvas/[id]/page.tsx index e9088ce..eefab05 100644 --- a/src/app/dashboard/canvas/[id]/page.tsx +++ b/src/app/dashboard/canvas/[id]/page.tsx @@ -1,6 +1,6 @@ "use client"; -import React, { use, useEffect, useMemo, useState } from "react"; +import React, { use, useEffect, useMemo, useState, useCallback } from "react"; import Link from "next/link"; import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import { @@ -17,6 +17,7 @@ import { Share2, Activity, GitBranch, + Check, } from "lucide-react"; import { skillsApi } from "@/lib/api/skills"; import { executionsApi } from "@/lib/api/executions"; @@ -29,6 +30,9 @@ import { EmptyState } from "@/components/feedback/EmptyState"; import { toast } from "@/stores/toastStore"; import { AgentGraphDefinition } from "@/types/graph"; import { clsx } from "clsx"; +import { getPrefilledExecutionInput, safeParseExecutionInput } from "@/lib/execution/inputHelper"; +import { JsonEditorModal } from "@/components/common/JsonEditorModal"; +import { Maximize2, ChevronDown, ChevronUp } from "lucide-react"; export default function CanvasEditorPage({ params }: { params: Promise<{ id: string }> }) { const { id } = use(params); @@ -84,10 +88,14 @@ export default function CanvasEditorPage({ params }: { params: Promise<{ id: str const [graph, setGraph] = useState(null); const [runInput, setRunInput] = useState("{\n \n}"); const [runInputError, setRunInputError] = useState(null); + const [isJsonModalOpen, setIsJsonModalOpen] = useState(false); + const [showInputBox, setShowInputBox] = useState(false); const [activeExecutionId, setActiveExecutionId] = useState(null); const [activePreviewId, setActivePreviewId] = useState(null); const [showDiff, setShowDiff] = useState(false); const [editingSubgraph, setEditingSubgraph] = useState(false); + const [syncStatus, setSyncStatus] = useState<"synced" | "saving" | "unsaved">("synced"); + const [isDirty, setIsDirty] = useState(false); // Version diff: working graph vs the last published version. const publishedGraph = skill?.publishedVersion?.graphDefinition ?? null; @@ -96,28 +104,58 @@ export default function CanvasEditorPage({ params }: { params: Promise<{ id: str [graph, publishedGraph] ); - // Initialize graph state from the draft once it loads. + // Initialize graph state and preloaded input from the draft once it loads. const [initialized, setInitialized] = useState(false); useEffect(() => { if (draft && !initialized) { setGraph(draft.graphDefinition ?? null); + setRunInput(getPrefilledExecutionInput(draft)); setInitialized(true); } }, [draft, initialized]); + const handleGraphChange = useCallback((newGraph: AgentGraphDefinition) => { + setGraph(newGraph); + setIsDirty(true); + setSyncStatus("unsaved"); + }, []); + + // Debounced Auto-Sync effect + useEffect(() => { + if (!isDirty || !graph || !draft) return; + const timer = setTimeout(async () => { + setSyncStatus("saving"); + try { + await skillsApi.update(id, { graphDefinition: graph, instructions: "Visual multi-agent graph." }); + setIsDirty(false); + setSyncStatus("synced"); + queryClient.invalidateQueries({ queryKey: ["skill", id] }); + } catch (err) { + setSyncStatus("unsaved"); + } + }, 1200); + return () => clearTimeout(timer); + }, [graph, isDirty, draft, id, queryClient]); + const hasGraph = graph !== null && graph.nodes.length > 0; const saveMutation = useMutation({ mutationFn: () => { if (!graph) throw new Error("Nothing to save"); + setSyncStatus("saving"); return skillsApi.update(id, { graphDefinition: graph, instructions: "Visual multi-agent graph." }); }, onSuccess: () => { - toast.success("Graph saved", "Draft updated on the canvas."); + setIsDirty(false); + setSyncStatus("synced"); + toast.success("Graph synced", "All changes saved to draft."); queryClient.invalidateQueries({ queryKey: ["skill", id] }); queryClient.invalidateQueries({ queryKey: ["skills"] }); }, - onError: (e) => toast.error("Save failed", e instanceof Error ? e.message : undefined), + onError: (e) => { + setSyncStatus("unsaved"); + toast.error("Save failed", e instanceof Error ? e.message : undefined); + }, }); const runMutation = useMutation({ @@ -183,12 +221,20 @@ export default function CanvasEditorPage({ params }: { params: Promise<{ id: str } const inputData = parseInput(); if (!inputData) return; - // Persist the graph first so the executed version matches the canvas. - saveMutation.mutateAsync().then(() => { - runMutation.mutate({ versionId: draft.id, inputData }); - }).catch(() => { - // Save failure already toasted. - }); + + // Flush dirty changes quietly in background so latest graph runs + if (isDirty && graph) { + skillsApi.update(id, { graphDefinition: graph, instructions: "Visual multi-agent graph." }) + .then(() => { + setIsDirty(false); + setSyncStatus("synced"); + queryClient.invalidateQueries({ queryKey: ["skill", id] }); + }) + .catch(() => {}); + } + + // Directly trigger execution without blocking on manual save + runMutation.mutate({ versionId: draft.id, inputData }); }; const handlePreview = () => { @@ -241,6 +287,21 @@ export default function CanvasEditorPage({ params }: { params: Promise<{ id: str {skill.name} + {syncStatus === "saving" && ( + + SAVING… + + )} + {syncStatus === "unsaved" && ( + + UNSAVED + + )} + {syncStatus === "synced" && ( + + AUTO-SYNCED + + )} {hasGraph && ( GRAPH @@ -345,12 +406,12 @@ export default function CanvasEditorPage({ params }: { params: Promise<{ id: str Analytics runs {analytics.runs} - success{' '} + success{" "} = 70 ? "text-emerald-600 dark:text-emerald-400" : "text-amber-600 dark:text-amber-400")}> {analytics.successRate === null ? "—" : `${analytics.successRate}%`} - avg{' '} + avg{" "} {analytics.avgDurationMs >= 1000 ? `${(analytics.avgDurationMs / 1000).toFixed(1)}s` : `${Math.round(analytics.avgDurationMs)}ms`} @@ -359,30 +420,74 @@ export default function CanvasEditorPage({ params }: { params: Promise<{ id: str
)} - {/* Input editor (collapsed when tracing) */} + {/* Sleek Execution Input Action Bar */} {!tracing && ( -
-
-
- Execution Input (JSON) +
+
+
+ + INPUT: + +
setIsJsonModalOpen(true)} + className="flex-1 min-w-0 px-3 py-1 rounded bg-slate-100 dark:bg-black/50 border border-slate-200 dark:border-indigo-950/60 text-[11px] text-slate-700 dark:text-slate-300 truncate cursor-pointer hover:border-indigo-400 transition-colors" + title="Click to expand full JSON editor" + > + {runInput.replace(/\s+/g, " ").slice(0, 120) || "{ }"} +
+
+ +
+ + +
- Sent as user input to the graph
-