niceeval 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INDEX.md +4 -2
- package/dist/adapter-usage.cjs.map +1 -1
- package/dist/adapter-usage.d.cts +1 -1
- package/dist/adapter-usage.d.mts +1 -1
- package/dist/adapter-usage.d.ts +1 -1
- package/dist/adapter.cjs +8 -7
- package/dist/adapter.cjs.map +1 -1
- package/dist/adapter.d.cts +21 -21
- package/dist/adapter.d.mts +21 -21
- package/dist/adapter.d.ts +21 -21
- package/dist/agents/{effect-runtime.cjs → agent-effects.cjs} +12 -18
- package/dist/agents/agent-effects.cjs.map +1 -0
- package/dist/agents/agent-effects.d.cts +23 -0
- package/dist/agents/agent-effects.d.mts +23 -0
- package/dist/agents/agent-effects.d.ts +23 -0
- package/dist/agents/agent-effects.js +16 -0
- package/dist/agents/agent-effects.js.map +1 -0
- package/dist/agents/ai-sdk.cjs +1 -1
- package/dist/agents/ai-sdk.cjs.map +1 -1
- package/dist/agents/bub.cjs +31 -18
- package/dist/agents/bub.cjs.map +1 -1
- package/dist/agents/bub.d.cts +9 -12
- package/dist/agents/bub.d.mts +9 -12
- package/dist/agents/bub.d.ts +9 -12
- package/dist/agents/claude-code-native.cjs +2 -2
- package/dist/agents/claude-code-native.cjs.map +1 -1
- package/dist/agents/claude-code.cjs +17 -11
- package/dist/agents/claude-code.cjs.map +1 -1
- package/dist/agents/claude-code.d.cts +11 -11
- package/dist/agents/claude-code.d.mts +11 -11
- package/dist/agents/claude-code.d.ts +11 -11
- package/dist/agents/codex-app-server.cjs +2 -2
- package/dist/agents/codex-app-server.cjs.map +1 -1
- package/dist/agents/codex.cjs +18 -12
- package/dist/agents/codex.cjs.map +1 -1
- package/dist/agents/codex.d.cts +12 -12
- package/dist/agents/codex.d.mts +12 -12
- package/dist/agents/codex.d.ts +12 -12
- package/dist/agents/deepseek-harness.cjs +2 -2
- package/dist/agents/deepseek-harness.cjs.map +1 -1
- package/dist/agents/hermes.cjs +3 -3
- package/dist/agents/hermes.cjs.map +1 -1
- package/dist/agents/index.cjs +3 -3
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/index.d.cts +3 -3
- package/dist/agents/index.d.mts +3 -3
- package/dist/agents/index.d.ts +3 -3
- package/dist/agents/index.js +2 -2
- package/dist/agents/index.mjs +2 -2
- package/dist/agents/mcp.cjs.map +1 -1
- package/dist/agents/mcp.d.cts +2 -2
- package/dist/agents/mcp.d.mts +2 -2
- package/dist/agents/mcp.d.ts +2 -2
- package/dist/agents/omp.cjs +2 -2
- package/dist/agents/omp.cjs.map +1 -1
- package/dist/agents/openai-compat.cjs +2 -2
- package/dist/agents/openai-compat.cjs.map +1 -1
- package/dist/agents/openclaw.cjs +3 -3
- package/dist/agents/openclaw.cjs.map +1 -1
- package/dist/agents/opencode.cjs +16 -4
- package/dist/agents/opencode.cjs.map +1 -1
- package/dist/agents/plugin-extensions.cjs +71 -0
- package/dist/agents/plugin-extensions.cjs.map +1 -0
- package/dist/agents/plugin-extensions.d.cts +26 -0
- package/dist/agents/plugin-extensions.d.mts +26 -0
- package/dist/agents/plugin-extensions.d.ts +26 -0
- package/dist/agents/plugin-extensions.js +8 -0
- package/dist/agents/plugin-extensions.js.map +1 -0
- package/dist/agents/post-setup.cjs +14 -3
- package/dist/agents/post-setup.cjs.map +1 -1
- package/dist/agents/post-setup.d.cts +4 -2
- package/dist/agents/post-setup.d.mts +4 -2
- package/dist/agents/post-setup.d.ts +4 -2
- package/dist/agents/post-setup.js +8 -6
- package/dist/agents/sdk-streams.cjs +3 -3
- package/dist/agents/sdk-streams.cjs.map +1 -1
- package/dist/agents/{session-slot.cjs → session-key.cjs} +4 -4
- package/dist/agents/session-key.cjs.map +1 -0
- package/dist/agents/session-key.d.cts +12 -0
- package/dist/agents/session-key.d.mts +12 -0
- package/dist/agents/session-key.d.ts +12 -0
- package/dist/agents/session-key.js +6 -0
- package/dist/agents/session-key.js.map +1 -0
- package/dist/agents/shared.cjs +2 -2
- package/dist/agents/shared.cjs.map +1 -1
- package/dist/agents/shared.d.cts +4 -4
- package/dist/agents/shared.d.mts +4 -4
- package/dist/agents/shared.d.ts +4 -4
- package/dist/agents/skills.cjs.map +1 -1
- package/dist/agents/skills.d.cts +3 -3
- package/dist/agents/skills.d.mts +3 -3
- package/dist/agents/skills.d.ts +3 -3
- package/dist/agents/types.cjs.map +1 -1
- package/dist/agents/types.d.cts +55 -54
- package/dist/agents/types.d.mts +55 -54
- package/dist/agents/types.d.ts +55 -54
- package/dist/agents/ui-message-stream.cjs +4 -4
- package/dist/agents/ui-message-stream.cjs.map +1 -1
- package/dist/agents/unrecognized-events.cjs +32 -0
- package/dist/agents/unrecognized-events.cjs.map +1 -0
- package/dist/agents/unrecognized-events.d.cts +8 -0
- package/dist/agents/unrecognized-events.d.mts +8 -0
- package/dist/agents/unrecognized-events.d.ts +8 -0
- package/dist/agents/unrecognized-events.js +6 -0
- package/dist/agents/unrecognized-events.js.map +1 -0
- package/dist/assertions/api.cjs.map +1 -1
- package/dist/assertions/api.d.cts +3 -0
- package/dist/assertions/api.d.mts +3 -0
- package/dist/assertions/api.d.ts +3 -0
- package/dist/assertions/collection.cjs +1 -1
- package/dist/assertions/collection.cjs.map +1 -1
- package/dist/assertions/judge.cjs +1 -1
- package/dist/assertions/judge.cjs.map +1 -1
- package/dist/assertions/match.cjs +52 -21
- package/dist/assertions/match.cjs.map +1 -1
- package/dist/assertions/match.d.cts +16 -5
- package/dist/assertions/match.d.mts +16 -5
- package/dist/assertions/match.d.ts +16 -5
- package/dist/assertions/match.js +96 -94
- package/dist/assertions/measurements.cjs +22 -6
- package/dist/assertions/measurements.cjs.map +1 -1
- package/dist/assertions/measurements.d.cts +8 -1
- package/dist/assertions/measurements.d.mts +8 -1
- package/dist/assertions/measurements.d.ts +8 -1
- package/dist/assertions/numeric.cjs +2 -0
- package/dist/assertions/numeric.cjs.map +1 -1
- package/dist/assertions/numeric.d.cts +1 -1
- package/dist/assertions/numeric.d.mts +1 -1
- package/dist/assertions/numeric.d.ts +1 -1
- package/dist/assertions/quantity.cjs +42 -0
- package/dist/assertions/quantity.cjs.map +1 -0
- package/dist/assertions/quantity.d.cts +18 -0
- package/dist/assertions/quantity.d.mts +18 -0
- package/dist/assertions/quantity.d.ts +18 -0
- package/dist/assertions/quantity.js +22 -0
- package/dist/assertions/quantity.js.map +1 -0
- package/dist/assertions/record/attachment.cjs +2 -0
- package/dist/assertions/record/attachment.cjs.map +1 -1
- package/dist/assertions/record/codec.cjs +5 -1
- package/dist/assertions/record/codec.cjs.map +1 -1
- package/dist/assertions/record/model.cjs.map +1 -1
- package/dist/assertions/record/model.d.cts +3 -1
- package/dist/assertions/record/model.d.mts +3 -1
- package/dist/assertions/record/model.d.ts +3 -1
- package/dist/assertions/runtime.cjs +11 -6
- package/dist/assertions/runtime.cjs.map +1 -1
- package/dist/cli/program.cjs +3 -0
- package/dist/cli/program.cjs.map +1 -1
- package/dist/context/assert-first.cjs +6 -4
- package/dist/context/assert-first.cjs.map +1 -1
- package/dist/context/assert-first.d.cts +9 -3
- package/dist/context/assert-first.d.mts +9 -3
- package/dist/context/assert-first.d.ts +9 -3
- package/dist/context/notes.cjs +47 -0
- package/dist/context/notes.cjs.map +1 -0
- package/dist/context/notes.d.cts +10 -0
- package/dist/context/notes.d.mts +10 -0
- package/dist/context/notes.d.ts +10 -0
- package/dist/context/notes.js +6 -0
- package/dist/context/notes.js.map +1 -0
- package/dist/context/send-failures.cjs +1 -7
- package/dist/context/send-failures.cjs.map +1 -1
- package/dist/context/send-failures.d.cts +2 -3
- package/dist/context/send-failures.d.mts +2 -3
- package/dist/context/send-failures.d.ts +2 -3
- package/dist/context/send-retry.cjs +0 -1
- package/dist/context/send-retry.cjs.map +1 -1
- package/dist/context/send-retry.d.cts +1 -2
- package/dist/context/send-retry.d.mts +1 -2
- package/dist/context/send-retry.d.ts +1 -2
- package/dist/context/session.cjs +10 -17
- package/dist/context/session.cjs.map +1 -1
- package/dist/context/session.d.cts +4 -10
- package/dist/context/session.d.mts +4 -10
- package/dist/context/session.d.ts +4 -10
- package/dist/define.cjs +88 -65
- package/dist/define.cjs.map +1 -1
- package/dist/define.d.cts +3 -3
- package/dist/define.d.mts +3 -3
- package/dist/define.d.ts +3 -3
- package/dist/eval/cli/contribution.cjs +1 -1
- package/dist/eval/cli/contribution.cjs.map +1 -1
- package/dist/eval/host/index.cjs +1 -1
- package/dist/eval/host/index.cjs.map +1 -1
- package/dist/eval/record/evaluation.cjs +1 -1
- package/dist/eval/record/evaluation.cjs.map +1 -1
- package/dist/eval/record/membership-provenance.d.cts +3 -3
- package/dist/eval/record/membership-provenance.d.mts +3 -3
- package/dist/eval/record/membership-provenance.d.ts +3 -3
- package/dist/eval/record/score.cjs +2 -2
- package/dist/eval/record/score.cjs.map +1 -1
- package/dist/eval/record/sealed-assertion.cjs +1 -1
- package/dist/eval/record/sealed-assertion.cjs.map +1 -1
- package/dist/eval/record/verdict.cjs +2 -2
- package/dist/eval/record/verdict.cjs.map +1 -1
- package/dist/expect/index.cjs +10 -1
- package/dist/expect/index.cjs.map +1 -1
- package/dist/expect/index.d.cts +3 -1
- package/dist/expect/index.d.mts +3 -1
- package/dist/expect/index.d.ts +3 -1
- package/dist/expect/index.js +92 -76
- package/dist/expect/index.mjs +92 -76
- package/dist/experiment/host/cli/contribution.cjs +52 -39
- package/dist/experiment/host/cli/contribution.cjs.map +1 -1
- package/dist/experiment/host/cli/contribution.d.cts +18 -4
- package/dist/experiment/host/cli/contribution.d.mts +18 -4
- package/dist/experiment/host/cli/contribution.d.ts +18 -4
- package/dist/experiment/host/cli/contribution.js +2 -2
- package/dist/experiment/host/cli/debug-protocol.cjs +2 -2
- package/dist/experiment/host/cli/debug-protocol.cjs.map +1 -1
- package/dist/experiment/host/cli/debug-protocol.d.cts +2 -2
- package/dist/experiment/host/cli/debug-protocol.d.mts +2 -2
- package/dist/experiment/host/cli/debug-protocol.d.ts +2 -2
- package/dist/experiment/host/cli/output-protocol.cjs +1 -1
- package/dist/experiment/host/cli/output-protocol.cjs.map +1 -1
- package/dist/experiment/host/cli/output-protocol.d.cts +2 -2
- package/dist/experiment/host/cli/output-protocol.d.mts +2 -2
- package/dist/experiment/host/cli/output-protocol.d.ts +2 -2
- package/dist/experiment/host/current.cjs +2 -2
- package/dist/experiment/host/current.cjs.map +1 -1
- package/dist/experiment/host/index.cjs +1 -1
- package/dist/experiment/host/index.cjs.map +1 -1
- package/dist/experiment/host/operations.cjs +21 -22
- package/dist/experiment/host/operations.cjs.map +1 -1
- package/dist/experiment/host/runtime.cjs +8 -9
- package/dist/experiment/host/runtime.cjs.map +1 -1
- package/dist/experiment/host/runtime.d.cts +3 -3
- package/dist/experiment/host/runtime.d.mts +3 -3
- package/dist/experiment/host/runtime.d.ts +3 -3
- package/dist/experiment/host/teardown.cjs +3 -3
- package/dist/experiment/host/teardown.cjs.map +1 -1
- package/dist/experiment/host/teardown.d.cts +3 -3
- package/dist/experiment/host/teardown.d.mts +3 -3
- package/dist/experiment/host/teardown.d.ts +3 -3
- package/dist/experiment/host/types.cjs.map +1 -1
- package/dist/experiment/host/types.d.cts +19 -19
- package/dist/experiment/host/types.d.mts +19 -19
- package/dist/experiment/host/types.d.ts +19 -19
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/dist/inspection/assertions.cjs +1 -1
- package/dist/inspection/assertions.cjs.map +1 -1
- package/dist/inspection/cli/contribution.cjs +8 -7
- package/dist/inspection/cli/contribution.cjs.map +1 -1
- package/dist/inspection/facts.cjs +4 -4
- package/dist/inspection/facts.cjs.map +1 -1
- package/dist/inspection/index.cjs +1 -5
- package/dist/inspection/index.cjs.map +1 -1
- package/dist/inspection/index.d.cts +1 -2
- package/dist/inspection/index.d.mts +1 -2
- package/dist/inspection/index.d.ts +1 -2
- package/dist/inspection/index.js +20 -26
- package/dist/inspection/lifecycle.cjs +7 -0
- package/dist/inspection/lifecycle.cjs.map +1 -0
- package/dist/inspection/lifecycle.d.cts +4 -0
- package/dist/inspection/lifecycle.d.mts +4 -0
- package/dist/inspection/lifecycle.d.ts +4 -0
- package/dist/inspection/lifecycle.js +6 -0
- package/dist/inspection/lifecycle.js.map +1 -0
- package/dist/inspection/notes.cjs +40 -0
- package/dist/inspection/notes.cjs.map +1 -0
- package/dist/inspection/notes.d.cts +12 -0
- package/dist/inspection/notes.d.mts +12 -0
- package/dist/inspection/notes.d.ts +12 -0
- package/dist/inspection/notes.js +8 -0
- package/dist/inspection/notes.js.map +1 -0
- package/dist/inspection/overview.cjs +12 -15
- package/dist/inspection/overview.cjs.map +1 -1
- package/dist/inspection/overview.d.cts +8 -6
- package/dist/inspection/overview.d.mts +8 -6
- package/dist/inspection/overview.d.ts +8 -6
- package/dist/inspection/planned-attempt.cjs +45 -0
- package/dist/inspection/planned-attempt.cjs.map +1 -0
- package/dist/inspection/planned-attempt.d.cts +109 -0
- package/dist/inspection/planned-attempt.d.mts +109 -0
- package/dist/inspection/planned-attempt.d.ts +109 -0
- package/dist/inspection/planned-attempt.js +24 -0
- package/dist/inspection/planned-attempt.js.map +1 -0
- package/dist/inspection/project-result.cjs +5 -5
- package/dist/inspection/project-result.cjs.map +1 -1
- package/dist/inspection/project-result.d.cts +58 -57
- package/dist/inspection/project-result.d.mts +58 -57
- package/dist/inspection/project-result.d.ts +58 -57
- package/dist/inspection/project-result.js +4 -4
- package/dist/inspection/project.cjs +3 -3
- package/dist/inspection/project.cjs.map +1 -1
- package/dist/inspection/protocol-values.cjs +1 -1
- package/dist/inspection/protocol-values.cjs.map +1 -1
- package/dist/inspection/protocol-values.d.cts +1 -1
- package/dist/inspection/protocol-values.d.mts +1 -1
- package/dist/inspection/protocol-values.d.ts +1 -1
- package/dist/inspection/protocol.cjs +8 -8
- package/dist/inspection/protocol.cjs.map +1 -1
- package/dist/inspection/protocol.d.cts +237 -219
- package/dist/inspection/protocol.d.mts +237 -219
- package/dist/inspection/protocol.d.ts +237 -219
- package/dist/inspection/public.cjs +1 -5
- package/dist/inspection/public.cjs.map +1 -1
- package/dist/inspection/public.d.cts +1 -2
- package/dist/inspection/public.d.mts +1 -2
- package/dist/inspection/public.d.ts +1 -2
- package/dist/inspection/public.js +14 -20
- package/dist/inspection/public.mjs +166 -129
- package/dist/inspection/query.cjs +1 -1
- package/dist/inspection/query.cjs.map +1 -1
- package/dist/inspection/results.cjs +61 -52
- package/dist/inspection/results.cjs.map +1 -1
- package/dist/inspection/results.d.cts +157 -140
- package/dist/inspection/results.d.mts +157 -140
- package/dist/inspection/results.d.ts +157 -140
- package/dist/inspection/select.cjs +33 -28
- package/dist/inspection/select.cjs.map +1 -1
- package/dist/inspection/source.cjs +1 -1
- package/dist/inspection/source.cjs.map +1 -1
- package/dist/inspection/sources.cjs +2 -2
- package/dist/inspection/sources.cjs.map +1 -1
- package/dist/inspection/trace.cjs +9 -8
- package/dist/inspection/trace.cjs.map +1 -1
- package/dist/inspection/trace.d.cts +4 -4
- package/dist/inspection/trace.d.mts +4 -4
- package/dist/inspection/trace.d.ts +4 -4
- package/dist/loaders/index.cjs +7 -279
- package/dist/loaders/index.cjs.map +1 -1
- package/dist/loaders/index.d.cts +2 -95
- package/dist/loaders/index.d.mts +2 -95
- package/dist/loaders/index.d.ts +2 -95
- package/dist/loaders/index.js +10 -12
- package/dist/loaders/index.mjs +10 -12
- package/dist/loaders/runtime.cjs +283 -0
- package/dist/loaders/runtime.cjs.map +1 -0
- package/dist/loaders/runtime.d.cts +95 -0
- package/dist/loaders/runtime.d.mts +95 -0
- package/dist/loaders/runtime.d.ts +95 -0
- package/dist/loaders/runtime.js +16 -0
- package/dist/loaders/runtime.js.map +1 -0
- package/dist/migrations/judge-provider.md +6 -6
- package/dist/{model-slots.cjs → model-roles.cjs} +12 -12
- package/dist/{model-slots.cjs.map → model-roles.cjs.map} +1 -1
- package/dist/{model-slots.d.cts → model-roles.d.cts} +10 -10
- package/dist/{model-slots.d.mts → model-roles.d.mts} +10 -10
- package/dist/{model-slots.d.ts → model-roles.d.ts} +10 -10
- package/dist/model-roles.js +14 -0
- package/dist/model-roles.js.map +1 -0
- package/dist/o11y/adapter-usage-projection.cjs +9 -8
- package/dist/o11y/adapter-usage-projection.cjs.map +1 -1
- package/dist/o11y/adapter-usage-projection.d.cts +23 -15
- package/dist/o11y/adapter-usage-projection.d.mts +23 -15
- package/dist/o11y/adapter-usage-projection.d.ts +23 -15
- package/dist/o11y/cache-read.cjs +14 -14
- package/dist/o11y/cache-read.cjs.map +1 -1
- package/dist/o11y/cache-read.d.cts +5 -5
- package/dist/o11y/cache-read.d.mts +5 -5
- package/dist/o11y/cache-read.d.ts +5 -5
- package/dist/o11y/derive.cjs.map +1 -1
- package/dist/o11y/derive.d.cts +2 -2
- package/dist/o11y/derive.d.mts +2 -2
- package/dist/o11y/derive.d.ts +2 -2
- package/dist/o11y/eval-usage.cjs +9 -9
- package/dist/o11y/eval-usage.cjs.map +1 -1
- package/dist/o11y/eval-usage.d.cts +7 -7
- package/dist/o11y/eval-usage.d.mts +7 -7
- package/dist/o11y/eval-usage.d.ts +7 -7
- package/dist/o11y/parsers/bub.cjs +57 -81
- package/dist/o11y/parsers/bub.cjs.map +1 -1
- package/dist/o11y/parsers/index.cjs.map +1 -1
- package/dist/o11y/parsers/index.d.cts +2 -0
- package/dist/o11y/parsers/index.d.mts +2 -0
- package/dist/o11y/parsers/index.d.ts +2 -0
- package/dist/o11y/parsers/opencode.cjs +129 -217
- package/dist/o11y/parsers/opencode.cjs.map +1 -1
- package/dist/o11y/parsers/opencode.d.cts +2 -5
- package/dist/o11y/parsers/opencode.d.mts +2 -5
- package/dist/o11y/parsers/opencode.d.ts +2 -5
- package/dist/o11y/types.cjs.map +1 -1
- package/dist/o11y/types.d.cts +1 -1
- package/dist/o11y/types.d.mts +1 -1
- package/dist/o11y/types.d.ts +1 -1
- package/dist/plugin/contracts.cjs +170 -120
- package/dist/plugin/contracts.cjs.map +1 -1
- package/dist/plugin/contracts.d.cts +102 -90
- package/dist/plugin/contracts.d.mts +102 -90
- package/dist/plugin/contracts.d.ts +102 -90
- package/dist/plugin/contracts.js +16 -12
- package/dist/plugin/index.cjs.map +1 -1
- package/dist/plugin/index.d.cts +1 -1
- package/dist/plugin/index.d.mts +1 -1
- package/dist/plugin/index.d.ts +1 -1
- package/dist/plugin/link.cjs +69 -64
- package/dist/plugin/link.cjs.map +1 -1
- package/dist/plugin/link.d.cts +5 -3
- package/dist/plugin/link.d.mts +5 -3
- package/dist/plugin/link.d.ts +5 -3
- package/dist/plugin/link.js +12 -8
- package/dist/record/codec/seal-manifest.d.cts +3 -3
- package/dist/record/codec/seal-manifest.d.mts +3 -3
- package/dist/record/codec/seal-manifest.d.ts +3 -3
- package/dist/record/family/attempt-note/definition.cjs +12 -0
- package/dist/record/family/attempt-note/definition.cjs.map +1 -0
- package/dist/record/family/attempt-note/definition.d.cts +6 -0
- package/dist/record/family/attempt-note/definition.d.mts +6 -0
- package/dist/record/family/attempt-note/definition.d.ts +6 -0
- package/dist/record/family/attempt-note/definition.js +6 -0
- package/dist/record/family/attempt-note/definition.js.map +1 -0
- package/dist/record/family/attempt-note/persistence.cjs +10 -0
- package/dist/record/family/attempt-note/persistence.cjs.map +1 -0
- package/dist/record/family/attempt-note/persistence.d.cts +6 -0
- package/dist/record/family/attempt-note/persistence.d.mts +6 -0
- package/dist/record/family/attempt-note/persistence.d.ts +6 -0
- package/dist/record/family/attempt-note/persistence.js +6 -0
- package/dist/record/family/attempt-note/persistence.js.map +1 -0
- package/dist/record/family/attempt-note/schema.cjs +20 -0
- package/dist/record/family/attempt-note/schema.cjs.map +1 -0
- package/dist/record/family/attempt-note/schema.d.cts +21 -0
- package/dist/record/family/attempt-note/schema.d.mts +21 -0
- package/dist/record/family/attempt-note/schema.d.ts +21 -0
- package/dist/record/family/attempt-note/schema.js +10 -0
- package/dist/record/family/attempt-note/schema.js.map +1 -0
- package/dist/record/family/catalog.cjs +32 -29
- package/dist/record/family/catalog.cjs.map +1 -1
- package/dist/record/family/catalog.d.cts +7 -2
- package/dist/record/family/catalog.d.mts +7 -2
- package/dist/record/family/catalog.d.ts +7 -2
- package/dist/record/family/current.cjs +48 -45
- package/dist/record/family/current.cjs.map +1 -1
- package/dist/record/family/current.d.cts +15 -0
- package/dist/record/family/current.d.mts +15 -0
- package/dist/record/family/current.d.ts +15 -0
- package/dist/record/model/index.js +66 -64
- package/dist/record/model/run-context.cjs +9 -3
- package/dist/record/model/run-context.cjs.map +1 -1
- package/dist/record/model/run-context.d.cts +9 -2
- package/dist/record/model/run-context.d.mts +9 -2
- package/dist/record/model/run-context.d.ts +9 -2
- package/dist/record/model/run-context.js +8 -6
- package/dist/record/model/seal-manifest.d.cts +1 -1
- package/dist/record/model/seal-manifest.d.mts +1 -1
- package/dist/record/model/seal-manifest.d.ts +1 -1
- package/dist/run/cli/contribution.cjs +6 -32
- package/dist/run/cli/contribution.cjs.map +1 -1
- package/dist/run/host/runtime.cjs +1 -1
- package/dist/run/host/runtime.cjs.map +1 -1
- package/dist/run/storage/sqlite.cjs +7 -7
- package/dist/run/storage/sqlite.cjs.map +1 -1
- package/dist/runner/adapter-usage.cjs +5 -3
- package/dist/runner/adapter-usage.cjs.map +1 -1
- package/dist/runner/adapter-usage.d.cts +2 -2
- package/dist/runner/adapter-usage.d.mts +2 -2
- package/dist/runner/adapter-usage.d.ts +2 -2
- package/dist/runner/adoption.cjs +9 -12
- package/dist/runner/adoption.cjs.map +1 -1
- package/dist/runner/attempt-notes.cjs +8 -0
- package/dist/runner/attempt-notes.cjs.map +1 -0
- package/dist/runner/attempt-notes.d.cts +4 -0
- package/dist/runner/attempt-notes.d.mts +4 -0
- package/dist/runner/attempt-notes.d.ts +4 -0
- package/dist/runner/attempt-notes.js +8 -0
- package/dist/runner/attempt-notes.js.map +1 -0
- package/dist/runner/attempt.cjs +61 -73
- package/dist/runner/attempt.cjs.map +1 -1
- package/dist/runner/attempt.d.cts +3 -3
- package/dist/runner/attempt.d.mts +3 -3
- package/dist/runner/attempt.d.ts +3 -3
- package/dist/runner/command-plan.cjs +21 -26
- package/dist/runner/command-plan.cjs.map +1 -1
- package/dist/runner/command-plan.d.cts +4 -4
- package/dist/runner/command-plan.d.mts +4 -4
- package/dist/runner/command-plan.d.ts +4 -4
- package/dist/runner/command-plan.js +4 -4
- package/dist/runner/config-identity.cjs.map +1 -1
- package/dist/runner/config-identity.d.cts +2 -2
- package/dist/runner/config-identity.d.mts +2 -2
- package/dist/runner/config-identity.d.ts +2 -2
- package/dist/runner/discover.cjs +6 -6
- package/dist/runner/discover.cjs.map +1 -1
- package/dist/runner/eval-selection.cjs +2 -2
- package/dist/runner/eval-selection.cjs.map +1 -1
- package/dist/runner/eval-selection.d.cts +2 -2
- package/dist/runner/eval-selection.d.mts +2 -2
- package/dist/runner/eval-selection.d.ts +2 -2
- package/dist/runner/feedback/human.cjs +1 -1
- package/dist/runner/feedback/human.cjs.map +1 -1
- package/dist/runner/feedback/json.cjs +4 -2
- package/dist/runner/feedback/json.cjs.map +1 -1
- package/dist/runner/feedback/json.d.cts +1 -1
- package/dist/runner/feedback/json.d.mts +1 -1
- package/dist/runner/feedback/json.d.ts +1 -1
- package/dist/runner/feedback/sink.cjs +1 -1
- package/dist/runner/feedback/sink.cjs.map +1 -1
- package/dist/runner/feedback/sink.d.cts +1 -1
- package/dist/runner/feedback/sink.d.mts +1 -1
- package/dist/runner/feedback/sink.d.ts +1 -1
- package/dist/runner/fingerprint.cjs +1 -1
- package/dist/runner/fingerprint.cjs.map +1 -1
- package/dist/runner/project-target.cjs.map +1 -1
- package/dist/runner/project-target.d.cts +2 -2
- package/dist/runner/project-target.d.mts +2 -2
- package/dist/runner/project-target.d.ts +2 -2
- package/dist/runner/record/attachments.cjs +2 -2
- package/dist/runner/record/attachments.cjs.map +1 -1
- package/dist/runner/record/planning.cjs +8 -2
- package/dist/runner/record/planning.cjs.map +1 -1
- package/dist/runner/record.cjs +2 -0
- package/dist/runner/record.cjs.map +1 -1
- package/dist/runner/report.cjs +3 -3
- package/dist/runner/report.cjs.map +1 -1
- package/dist/runner/report.d.cts +1 -1
- package/dist/runner/report.d.mts +1 -1
- package/dist/runner/report.d.ts +1 -1
- package/dist/runner/reuse-plan.cjs +2 -2
- package/dist/runner/reuse-plan.cjs.map +1 -1
- package/dist/runner/run.cjs +10 -45
- package/dist/runner/run.cjs.map +1 -1
- package/dist/runner/sandbox-pool.cjs +1 -2
- package/dist/runner/sandbox-pool.cjs.map +1 -1
- package/dist/runner/setup-prefix-preparation.cjs +1 -1
- package/dist/runner/setup-prefix-preparation.cjs.map +1 -1
- package/dist/runner/teardown-registry.cjs +2 -2
- package/dist/runner/teardown-registry.cjs.map +1 -1
- package/dist/runner/teardown-registry.d.cts +1 -1
- package/dist/runner/teardown-registry.d.mts +1 -1
- package/dist/runner/teardown-registry.d.ts +1 -1
- package/dist/runner/types.cjs +4 -4
- package/dist/runner/types.cjs.map +1 -1
- package/dist/runner/types.d.cts +64 -93
- package/dist/runner/types.d.mts +64 -93
- package/dist/runner/types.d.ts +64 -93
- package/dist/runner/types.js +2 -2
- package/dist/sandbox/action.cjs +1 -1
- package/dist/sandbox/action.cjs.map +1 -1
- package/dist/sandbox/cli/contribution.cjs +17 -14
- package/dist/sandbox/cli/contribution.cjs.map +1 -1
- package/dist/sandbox/cli/contribution.d.cts +1 -1
- package/dist/sandbox/cli/contribution.d.mts +1 -1
- package/dist/sandbox/cli/contribution.d.ts +1 -1
- package/dist/sandbox/commands.cjs +1 -1
- package/dist/sandbox/commands.cjs.map +1 -1
- package/dist/sandbox/commands.d.cts +1 -1
- package/dist/sandbox/commands.d.mts +1 -1
- package/dist/sandbox/commands.d.ts +1 -1
- package/dist/sandbox/compose.cjs +2 -2
- package/dist/sandbox/compose.cjs.map +1 -1
- package/dist/sandbox/docker-profile/registry.cjs +5 -9
- package/dist/sandbox/docker-profile/registry.cjs.map +1 -1
- package/dist/sandbox/docker-profile/registry.d.cts +0 -3
- package/dist/sandbox/docker-profile/registry.d.mts +0 -3
- package/dist/sandbox/docker-profile/registry.d.ts +0 -3
- package/dist/sandbox/docker-profile/registry.js +6 -12
- package/dist/sandbox/docker-profile/runtime.cjs +1 -1
- package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
- package/dist/sandbox/docker-profile/schema.cjs +12 -16
- package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
- package/dist/sandbox/docker-profile/schema.d.cts +2 -6
- package/dist/sandbox/docker-profile/schema.d.mts +2 -6
- package/dist/sandbox/docker-profile/schema.d.ts +2 -6
- package/dist/sandbox/docker-profile/schema.js +24 -32
- package/dist/sandbox/incus.cjs +2 -2
- package/dist/sandbox/incus.cjs.map +1 -1
- package/dist/sandbox/index.cjs +4 -35
- package/dist/sandbox/index.cjs.map +1 -1
- package/dist/sandbox/index.d.cts +4 -8
- package/dist/sandbox/index.d.mts +4 -8
- package/dist/sandbox/index.d.ts +4 -8
- package/dist/sandbox/index.js +116 -172
- package/dist/sandbox/index.mjs +116 -172
- package/dist/sandbox/layer.cjs +3 -3
- package/dist/sandbox/layer.cjs.map +1 -1
- package/dist/sandbox/link.cjs +5 -0
- package/dist/sandbox/link.cjs.map +1 -1
- package/dist/sandbox/link.d.cts +3 -0
- package/dist/sandbox/link.d.mts +3 -0
- package/dist/sandbox/link.d.ts +3 -0
- package/dist/sandbox/runtime.cjs +9 -4
- package/dist/sandbox/runtime.cjs.map +1 -1
- package/dist/shared/failure-class.cjs +5 -5
- package/dist/shared/failure-class.cjs.map +1 -1
- package/dist/shared/failure-class.d.cts +4 -10
- package/dist/shared/failure-class.d.mts +4 -10
- package/dist/shared/failure-class.d.ts +4 -10
- package/dist/shared/types.cjs.map +1 -1
- package/dist/shared/types.d.cts +1 -1
- package/dist/shared/types.d.mts +1 -1
- package/dist/shared/types.d.ts +1 -1
- package/dist/show/contribution.cjs +17 -2
- package/dist/show/contribution.cjs.map +1 -1
- package/dist/show/contribution.d.cts +14 -0
- package/dist/show/contribution.d.mts +14 -0
- package/dist/show/contribution.d.ts +14 -0
- package/dist/show/model.cjs +8 -5
- package/dist/show/model.cjs.map +1 -1
- package/dist/show/model.d.cts +11 -8
- package/dist/show/model.d.mts +11 -8
- package/dist/show/model.d.ts +11 -8
- package/dist/show/render.cjs +34 -22
- package/dist/show/render.cjs.map +1 -1
- package/dist/sources/projector.cjs +1 -1
- package/dist/sources/projector.cjs.map +1 -1
- package/dist/types.cjs +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.js +2 -2
- package/dist/view/app-dist/.vite/manifest.json +2 -2
- package/dist/view/app-dist/assets/{index-B3ijZRph.js → index-CxrOUvHC.js} +17 -17
- package/dist/view/app-dist/assets/{quality-cost-scatter-B--DfJ9s.js → quality-cost-scatter-B6Aiss7x.js} +1 -1
- package/dist/view/app-dist/index.html +1 -1
- package/dist/view/cli/contribution.cjs +1 -1
- package/dist/view/cli/contribution.cjs.map +1 -1
- package/dist/view/function-runtime.mjs +318 -121
- package/dist/view/http-protocol.d.cts +1 -1
- package/dist/view/http-protocol.d.mts +1 -1
- package/dist/view/http-protocol.d.ts +1 -1
- package/dist/view/inspection-host.cjs +2 -2
- package/dist/view/inspection-host.cjs.map +1 -1
- package/dist/view/inspection-host.d.cts +349 -331
- package/dist/view/inspection-host.d.mts +349 -331
- package/dist/view/inspection-host.d.ts +349 -331
- package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +6 -6
- package/docs-site/zh/examples/integrations/claude-sdk.mdx +5 -5
- package/docs-site/zh/examples/integrations/codex-sdk.mdx +4 -4
- package/docs-site/zh/examples/integrations/langgraph.mdx +4 -4
- package/docs-site/zh/examples/integrations/pi-sdk.mdx +5 -5
- package/docs-site/zh/explanation/adapter.mdx +6 -6
- package/docs-site/zh/explanation/assert.mdx +7 -7
- package/docs-site/zh/explanation/drive.mdx +4 -4
- package/docs-site/zh/explanation/hitl.mdx +2 -2
- package/docs-site/zh/explanation/judge.mdx +2 -2
- package/docs-site/zh/introduction.mdx +2 -2
- package/docs-site/zh/reference/builtin-agents.mdx +46 -49
- package/docs-site/zh/reference/cli.mdx +16 -14
- package/docs-site/zh/reference/define-agent.mdx +19 -19
- package/docs-site/zh/reference/define-config.mdx +7 -15
- package/docs-site/zh/reference/define-eval.mdx +20 -14
- package/docs-site/zh/reference/define-experiment.mdx +18 -39
- package/docs-site/zh/reference/events.mdx +1 -1
- package/docs-site/zh/reference/expect.mdx +21 -0
- package/docs-site/zh/reference/official-adapters.mdx +12 -5
- package/docs-site/zh/troubleshooting/debugging.mdx +2 -2
- package/docs-site/zh/troubleshooting/recover-after-kill.mdx +1 -1
- package/docs-site/zh/tutorials/agent-onboarding.mdx +2 -2
- package/docs-site/zh/tutorials/authoring.mdx +2 -2
- package/docs-site/zh/tutorials/compare-runs.mdx +1 -1
- package/docs-site/zh/tutorials/concurrency.mdx +8 -8
- package/docs-site/zh/tutorials/configuration.mdx +5 -5
- package/docs-site/zh/tutorials/control-run-cost.mdx +19 -19
- package/docs-site/zh/tutorials/eval-groups.mdx +1 -1
- package/docs-site/zh/tutorials/evaluation-kinds.mdx +5 -5
- package/docs-site/zh/tutorials/experiment-services.mdx +32 -32
- package/docs-site/zh/tutorials/handle-execution-failures.mdx +2 -28
- package/docs-site/zh/tutorials/plugins.mdx +49 -143
- package/docs-site/zh/tutorials/sandbox-agent.mdx +1 -1
- package/docs-site/zh/tutorials/sandbox-reuse.mdx +7 -7
- package/docs-site/zh/tutorials/upgrade-0-18.mdx +1 -1
- package/docs-site/zh/tutorials/upgrade-0-19.mdx +121 -0
- package/docs-site/zh/tutorials/upgrade-0-20.mdx +12 -0
- package/docs-site/zh/tutorials/verify-judge.mdx +2 -2
- package/docs-site/zh/tutorials/viewing-results.mdx +2 -2
- package/docs-site/zh/tutorials/write-experiment.mdx +1 -1
- package/docs-site/zh/tutorials/write-send.mdx +13 -13
- package/package.json +1 -1
- package/dist/agents/effect-runtime.cjs.map +0 -1
- package/dist/agents/effect-runtime.d.cts +0 -29
- package/dist/agents/effect-runtime.d.mts +0 -29
- package/dist/agents/effect-runtime.d.ts +0 -29
- package/dist/agents/effect-runtime.js +0 -16
- package/dist/agents/effect-runtime.js.map +0 -1
- package/dist/agents/session-slot.cjs.map +0 -1
- package/dist/agents/session-slot.d.cts +0 -12
- package/dist/agents/session-slot.d.mts +0 -12
- package/dist/agents/session-slot.d.ts +0 -12
- package/dist/agents/session-slot.js +0 -6
- package/dist/agents/session-slot.js.map +0 -1
- package/dist/model-slots.js +0 -14
- package/dist/model-slots.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace.js","sourceRoot":"","sources":["trace.ts"],"names":[],"mappings":"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","sourcesContent":["// @concord-file ne-eval-inspection-trace\n// @concord-implements docs/feature/inspection/README.md\n// @concord-implements docs/feature/insight/README.md\nimport { effectiveCostTotals, effectiveUsageCalls, adapterTokenMaterial, projectAdapterModelUsage } from \"../o11y/adapter-usage-projection.ts\";\nimport { projectJudgeUsage, projectTotalUsageCosts } from \"../o11y/judge-usage-projection.ts\";\nimport type { ResolvedModelSlots } from \"../model-slots.ts\";\nimport { createHash } from \"node:crypto\";\nimport { Result, Schema } from \"effect\";\nimport { mintRecordContentHandle, type RecordContentHandle, } from \"../record/attachment/content.ts\";\nimport { enumerateRecordAttachmentClosure, hydrateRecordAttachmentCurrent, mintRecordAttachmentReference, RecordAttachmentReference, recordAttachmentReferenceWire, type RecordAttachmentDefinition, } from \"../record/attachment/protocol.ts\";\nimport { RecordExactParseOptions } from \"../record/codec/core.ts\";\nimport { AdapterUsageAttachmentRevision1Schema, AdapterUsageAttachmentRevision2Schema, AdapterUsageAttachmentSchema, projectAdapterUsageRevision1, projectAdapterUsageRevision2, validateAdapterUsageAttachment, type ReadableAdapterUsageAttachment, } from \"../record/family/adapter-usage/schema.ts\";\nimport { NiceEvalCurrentRecordAttachments } from \"../record/family/current.ts\";\nimport type { AgentTurnsAttachment } from \"../record/family/agent-turns/schema.ts\";\nimport { ExecutionTraceRecordLimits } from \"../record/family/execution-traces/schema.ts\";\nimport type { AgentTurnOutcome } from \"../record/family/protocol-values.ts\";\nimport type { RecordAttachmentOwner } from \"../record/model/core.ts\";\nimport type { SourceReceiptLimitation } from \"../record/family/source-receipt/index.ts\";\nimport type { PersistedContentMetadata, SealedAttachmentMetadata, } from \"../record/sqlite/index.ts\";\nimport { closeInspectionJson, isInspectionCodecError, type InspectionJson } from \"./codec.ts\";\nimport { InspectionSha256, utf8ByteLength } from \"./bytes.ts\";\nimport { INSPECTION_RESULT_BYTE_LIMIT } from \"./limits.ts\";\nimport { decodeExecutionTraceContinuation, encodeExecutionTraceContinuation, EXECUTION_TRACE_CONTINUATION_FAMILIES, type ExecutionTraceFilters, } from \"./execution-traces.ts\";\nimport type { InspectionFactSource } from \"./source.ts\";\nimport type { InspectionAttemptTimingResult, InspectionAttemptUsageResult, InspectionTraceDetailResult, InspectionTraceResult, } from \"./results.ts\";\nconst CONTENT_PAGE_SIZE = 64;\nconst MAX_SOURCE_LIMITATIONS = 32;\nconst MAX_CONVERSATION_TURNS = 32;\nconst MAX_CONVERSATION_ITEMS = 64;\nconst MAX_COMMANDS = 8;\nconst MAX_USAGE_OBSERVATIONS = 64;\nconst MAX_ACTIVITIES = 64;\nconst MAX_DIAGNOSTICS = 16;\nconst MAX_DIAGNOSTIC_CAUSES = 4;\nconst MAX_COMMAND_ARGUMENTS = 8;\nconst MAX_CONVERSATION_TEXT_BYTES = 1024;\nconst MAX_COVERAGE_REASON_BYTES = 256;\nconst MAX_COMMAND_TEXT_BYTES = 1024;\nconst MAX_COMMAND_ARGUMENT_BYTES = 128;\nconst MAX_COMMAND_STREAM_TEXT_BYTES = 1024;\nconst MAX_DIAGNOSTIC_SUMMARY_BYTES = 256;\nconst MAX_DIAGNOSTIC_CAUSE_BYTES = 128;\nexport interface TraceAttachmentInput {\n readonly physical: SealedAttachmentMetadata;\n readonly value: InspectionJson;\n}\nexport interface AttemptTraceAttachments {\n /** Only the sealed origin Run's configuration may validate or describe these calls. */\n readonly models?: ResolvedModelSlots;\n readonly adapterUsage?: TraceAttachmentInput;\n readonly judgeUsage?: TraceAttachmentInput;\n readonly agentTurns?: TraceAttachmentInput;\n readonly turnContexts?: TraceAttachmentInput;\n readonly sandboxCommands?: TraceAttachmentInput;\n readonly runnerActivities?: TraceAttachmentInput;\n readonly runnerDiagnostics?: TraceAttachmentInput;\n}\n/** One stable, sealed identity accepted by `attempt.trace.detail`. */\nexport type AttemptTraceDetailSelector = {\n readonly kind: \"item\";\n readonly itemId: string;\n} | {\n readonly kind: \"tool-occurrence\";\n readonly toolOccurrenceId: string;\n} | {\n readonly kind: \"command\";\n readonly commandId: string;\n};\ntype AttachmentRead<Value> = {\n readonly state: \"not-recorded\";\n} | {\n readonly state: \"invalid\";\n readonly issues: readonly string[];\n} | {\n readonly state: \"available\";\n readonly value: Value;\n readonly contentMetadata: WeakMap<object, PersistedContentMetadata>;\n};\n/** Validated current Agent Turns facts shared by browser-neutral projectors. */\nexport type InspectionAgentTurnsRead = AttachmentRead<AgentTurnsAttachment>;\ntype InspectionTraceDetailItem = Extract<InspectionTraceDetailResult, {\n readonly kind: \"item\";\n}>[\"item\"];\ninterface CollectionValue {\n readonly collection: {\n readonly state: \"complete\" | \"partial\";\n readonly limitations: readonly SourceReceiptLimitation[];\n };\n}\ninterface ProjectionState {\n readonly state: \"complete\" | \"partial\" | \"not-recorded\" | \"invalid\";\n readonly limitations: readonly (SourceReceiptLimitation | {\n readonly issue: string;\n })[];\n}\n// @concord-code ne-eval-inspection-project-trace\n// @concord-implements docs/feature/inspection/README.md\n// @concord-implements docs/feature/insight/README.md\nexport function projectAttemptTrace(source: InspectionFactSource, attachments: AttemptTraceAttachments, execution: InspectionTraceResult[\"execution\"], executionFilters: {\n readonly traceId?: string;\n readonly sourceId?: string;\n readonly actorId?: string;\n readonly eventType?: string;\n readonly continuation?: string;\n} = {}): InspectionTraceResult {\n const agentTurns = readCurrentAttachment(NiceEvalCurrentRecordAttachments.agentTurns, attachments.agentTurns);\n const turnContexts = readCurrentAttachment(NiceEvalCurrentRecordAttachments.turnContexts, attachments.turnContexts);\n const sandboxCommands = readCurrentAttachment(NiceEvalCurrentRecordAttachments.sandboxCommands, attachments.sandboxCommands);\n const runnerDiagnostics = readRunnerDiagnostics(attachments.runnerDiagnostics);\n const conversationProjection = availability(agentTurns, CONVERSATION_TARGETS);\n const contextProjection = availability(turnContexts, CONTEXT_TARGETS);\n const commandProjection = availability(sandboxCommands, COMMAND_TARGETS);\n const conversationEvidenceLimitations = typedConversationCoverageLimitations(agentTurns);\n const contextLimitations: InspectionTraceResult[\"conversation\"][\"limitations\"] = contextProjection.state === \"complete\"\n ? Object.freeze([])\n : Object.freeze([Object.freeze({\n source: \"turn-contexts\" as const,\n state: contextProjection.state,\n limitations: contextProjection.limitations,\n })]);\n const allConversationLimitations = [\n ...conversationProjection.limitations,\n ...conversationEvidenceLimitations,\n ...contextLimitations,\n ];\n const conversationLimitations = allConversationLimitations.slice(0, MAX_SOURCE_LIMITATIONS);\n const commandLimitations = commandProjection.limitations.slice(0, MAX_SOURCE_LIMITATIONS);\n const retainedTurns = agentTurns.state === \"available\"\n ? agentTurns.value.segments.slice(0, MAX_CONVERSATION_TURNS)\n : [];\n const contexts = turnContexts.state === \"available\"\n ? new Map(turnContexts.value.segments.map((segment) => [segment.turnId, segment] as const))\n : new Map();\n const turns = retainedTurns.length > 0\n ? retainedTurns.map((turn) => Object.freeze({\n turnId: turn.turnId,\n sequence: turn.sequence,\n ...(\"sessionId\" in turn ? { sessionId: turn.sessionId } : {}),\n outcome: turn.outcome,\n terminal: projectTypedTurnTerminal(turn.terminal),\n context: projectTypedTurnContext(contexts.get(turn.turnId)),\n }))\n : [];\n const items = retainedTurns.length > 0\n ? retainedTurns.flatMap((turn) => turn.items.map((item) => projectTypedConversationItem(item, turn.turnId)))\n .slice(0, MAX_CONVERSATION_ITEMS)\n : [];\n const commandItems = sandboxCommands.state === \"available\"\n ? sandboxCommands.value.segments.slice(0, MAX_COMMANDS).map((command) => Object.freeze({\n commandId: command.commandId,\n phase: command.phase,\n outcome: command.outcome,\n }))\n : [];\n const identityIndex = projectTypedTraceIdentityIndex(agentTurns, sandboxCommands);\n const totalTurnCount = agentTurns.state === \"available\" ? agentTurns.value.segments.length : 0;\n const totalItemCount = agentTurns.state === \"available\"\n ? agentTurns.value.segments.reduce((total, turn) => total + turn.items.length, 0)\n : 0;\n const totalCommandCount = sandboxCommands.state === \"available\"\n ? sandboxCommands.value.segments.length\n : 0;\n const executionProjection = execution.state === \"not-recorded\"\n ? projectAgentItemsAsExecution(source, attachments.agentTurns, agentTurns, conversationProjection.state, executionFilters)\n : execution;\n const result: InspectionTraceResult = Object.freeze({\n execution: executionProjection,\n conversation: Object.freeze({\n state: conversationProjection.state === \"complete\" && allConversationLimitations.length > 0\n ? \"partial\"\n : conversationProjection.state,\n limitations: Object.freeze(conversationLimitations),\n limitationsTruncated: conversationLimitations.length < allConversationLimitations.length,\n omittedLimitationCount: allConversationLimitations.length - conversationLimitations.length,\n turns: Object.freeze(turns),\n turnsTruncated: turns.length < totalTurnCount,\n omittedTurnCount: totalTurnCount - turns.length,\n items: Object.freeze(items),\n itemsTruncated: items.length < totalItemCount,\n omittedItemCount: totalItemCount - items.length,\n }),\n identityIndex,\n commands: Object.freeze({\n state: commandProjection.state,\n limitations: Object.freeze(commandLimitations),\n limitationsTruncated: commandLimitations.length < commandProjection.limitations.length,\n omittedLimitationCount: commandProjection.limitations.length - commandLimitations.length,\n items: Object.freeze(commandItems),\n hasMore: commandItems.length < totalCommandCount,\n omittedCommandCount: totalCommandCount - commandItems.length,\n }),\n diagnostics: projectDiagnostics(runnerDiagnostics),\n });\n if (jsonByteLength(result) > INSPECTION_RESULT_BYTE_LIMIT) {\n throw new Error(\"Trace semantic projection exceeds its fixed result byte limit\");\n }\n return result;\n}\n/**\n * Existing Agent Turns stay single-owned. This is a bounded read projection\n * into the generic execution outline, with an exact pointer back to the old\n * item selector; it never writes a second Record family or recomputes usage.\n */\nfunction projectAgentItemsAsExecution(source: InspectionFactSource, attachment: TraceAttachmentInput | undefined, agentTurns: InspectionAgentTurnsRead, state: \"complete\" | \"partial\" | \"not-recorded\" | \"invalid\", request: ExecutionTraceFilters & {\n readonly continuation?: string;\n}): InspectionTraceResult[\"execution\"] {\n const filters: ExecutionTraceFilters = Object.freeze({\n ...(request.traceId === undefined ? {} : { traceId: request.traceId }),\n ...(request.sourceId === undefined ? {} : { sourceId: request.sourceId }),\n ...(request.actorId === undefined ? {} : { actorId: request.actorId }),\n ...(request.eventType === undefined ? {} : { eventType: request.eventType }),\n });\n const continuationContext = Object.freeze({\n source,\n originAttempt: attachment === undefined\n ? \"not-recorded\"\n : `${attachment.physical.ownerRunId}:${attachment.physical.ownerAttemptId ?? \"missing\"}`,\n sourceFamily: EXECUTION_TRACE_CONTINUATION_FAMILIES.agentTurns,\n familyRevision: NiceEvalCurrentRecordAttachments.agentTurns.revision,\n filters,\n });\n const resumeAfter = request.continuation === undefined\n ? -1\n : decodeExecutionTraceContinuation(request.continuation, continuationContext);\n if (state === \"not-recorded\") {\n return Object.freeze({\n state: \"not-recorded\",\n limitations: Object.freeze([]),\n traces: Object.freeze([]),\n events: Object.freeze([]),\n identityIndex: Object.freeze({\n traceIds: Object.freeze([]), omittedTraceIdCount: 0,\n eventIds: Object.freeze([]), omittedEventIdCount: 0,\n evidenceIds: Object.freeze([]), omittedEvidenceIdCount: 0,\n }),\n hasMore: false,\n omittedEventCount: 0,\n });\n }\n const traceId = \"agent-turns\";\n const sourceId = \"niceeval.agent-turns\";\n const limitations = state === \"complete\"\n ? Object.freeze([])\n : Object.freeze([Object.freeze({\n code: \"legacy-source-state\" as const,\n state,\n message: state === \"invalid\"\n ? \"The Agent Turns source is invalid.\"\n : \"The Agent Turns source is partial.\",\n })]);\n if (state === \"invalid\") {\n return Object.freeze({\n state,\n limitations,\n traces: Object.freeze([]),\n events: Object.freeze([]),\n identityIndex: Object.freeze({\n traceIds: Object.freeze([]), omittedTraceIdCount: 0,\n eventIds: Object.freeze([]), omittedEventIdCount: 0,\n evidenceIds: Object.freeze([]), omittedEvidenceIdCount: 0,\n }),\n hasMore: false,\n omittedEventCount: 0,\n });\n }\n const traceSelected = filters.traceId === undefined || filters.traceId === traceId;\n const sourceSelected = filters.sourceId === undefined || filters.sourceId === sourceId;\n const retained: Array<{\n readonly event: InspectionTraceResult[\"execution\"][\"events\"][number];\n readonly sourceOrdinal: number;\n }> = [];\n const indexedEventIds: string[] = [];\n let sourceOrdinal = 0;\n let totalSourceEvents = 0;\n let totalMatching = 0;\n let priorMatches = 0;\n let pageFull = false;\n if (agentTurns.state === \"available\") {\n for (const turn of agentTurns.value.segments) {\n for (const rawItem of turn.items) {\n const ordinal = sourceOrdinal;\n sourceOrdinal += 1;\n totalSourceEvents += 1;\n if (indexedEventIds.length < 256)\n indexedEventIds.push(rawItem.itemId);\n if (!traceSelected || !sourceSelected)\n continue;\n const actorId = rawItem.kind === \"message\" ? rawItem.role : \"assistant\";\n if (filters.actorId !== undefined && actorId !== filters.actorId)\n continue;\n if (filters.eventType !== undefined && `agent.${rawItem.kind}` !== filters.eventType)\n continue;\n totalMatching += 1;\n if (ordinal <= resumeAfter) {\n priorMatches += 1;\n continue;\n }\n if (pageFull || retained.length >= ExecutionTraceRecordLimits.maximumOutlineEvents) {\n pageFull = true;\n continue;\n }\n const item = projectTypedConversationItem(rawItem, turn.turnId);\n const event = Object.freeze({\n traceId,\n eventId: item.itemId,\n origin: Object.freeze({ kind: \"agent-item\" as const, itemId: item.itemId }),\n ordinal,\n type: `agent.${item.kind}`,\n source: Object.freeze({ id: sourceId, sequence: item.sequence }),\n actor: Object.freeze({ id: agentItemActorId(item) }),\n summary: boundedText(agentItemSummary(item), 512).value,\n links: Object.freeze([]),\n evidence: Object.freeze([]),\n scopeMemberships: Object.freeze([]),\n display: Object.freeze({ state: \"absent\" as const }),\n });\n if (utf8ByteLength(JSON.stringify([...retained.map(({ event: prior }) => prior), event])) >\n ExecutionTraceRecordLimits.maximumOutlineBytes) {\n pageFull = true;\n continue;\n }\n retained.push(Object.freeze({ event, sourceOrdinal: ordinal }));\n }\n }\n }\n const events = retained.map(({ event }) => event);\n const omittedEventCount = Math.max(0, totalMatching - priorMatches - events.length);\n const lastOrdinal = retained.at(-1)?.sourceOrdinal;\n return Object.freeze({\n state,\n limitations,\n traces: traceSelected\n ? Object.freeze([Object.freeze({\n kind: \"trace-header\" as const,\n traceId,\n sourceTraceId: sourceId,\n schema: Object.freeze({ id: sourceId }),\n collection: state === \"complete\"\n ? Object.freeze({ state: \"complete\" as const, limitations: [] as const })\n : Object.freeze({\n state: \"partial\" as const,\n limitations: [{ code: \"legacy-source-state\", message: \"The Agent Turns source is partial.\" }] as const,\n }),\n scopes: Object.freeze([]),\n eventCount: totalSourceEvents,\n })])\n : Object.freeze([]),\n events: Object.freeze(events),\n identityIndex: Object.freeze({\n traceIds: Object.freeze([traceId]),\n omittedTraceIdCount: 0,\n eventIds: Object.freeze(indexedEventIds),\n omittedEventIdCount: totalSourceEvents - indexedEventIds.length,\n evidenceIds: Object.freeze([]),\n omittedEvidenceIdCount: 0,\n }),\n hasMore: omittedEventCount > 0,\n omittedEventCount,\n ...(omittedEventCount > 0 && lastOrdinal !== undefined\n ? { continuation: encodeExecutionTraceContinuation(continuationContext, lastOrdinal) }\n : {}),\n });\n}\nfunction agentItemActorId(item: InspectionTraceResult[\"conversation\"][\"items\"][number]): string {\n return item.kind === \"message\" ? item.role : \"assistant\";\n}\nfunction agentItemSummary(item: InspectionTraceResult[\"conversation\"][\"items\"][number]): string {\n switch (item.kind) {\n case \"message\": return item.text;\n case \"tool-call\": return `${item.tool}: ${item.input}`;\n case \"tool-result\": return `${item.outcome}: ${item.output}`;\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\": return item.summary;\n case \"subagent\": return `${item.label}: ${item.summary}`;\n case \"input-request\": return item.response === null ? item.prompt : `${item.prompt}: ${item.response}`;\n case \"skill-load\":\n case \"conversation-error\": return `${item.code}: ${item.summary}`;\n }\n}\ntype TraceEvidenceCoverageLimitation = Extract<InspectionTraceResult[\"conversation\"][\"limitations\"][number], {\n readonly source: \"agent-turns\";\n}>;\ntype InspectionTurnContextSegment = ReturnType<typeof readTurnContexts> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment : never : never;\nfunction projectTypedTurnTerminal(terminal: ReturnType<typeof readAgentTurns> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment extends {\n readonly terminal: infer Terminal;\n} ? Terminal : never : never : never): InspectionTraceResult[\"conversation\"][\"turns\"][number][\"terminal\"] {\n const coverage = conversationCoverage(terminal);\n if (terminal.state === \"unavailable\") {\n return Object.freeze({\n state: terminal.state,\n reason: terminal.reason,\n coverage: Object.freeze({ state: \"unavailable\" as const, reason: terminal.reason }),\n });\n }\n return Object.freeze({\n state: terminal.state,\n status: terminal.status,\n coverage: coverage.coverage,\n }) as InspectionTraceResult[\"conversation\"][\"turns\"][number][\"terminal\"];\n}\nfunction projectTypedTurnContext(context: InspectionTurnContextSegment | undefined): InspectionTraceResult[\"conversation\"][\"turns\"][number][\"context\"] {\n if (context === undefined)\n return Object.freeze({ state: \"not-recorded\" as const });\n if (\"state\" in context.source) {\n return Object.freeze({\n state: context.source.state,\n reason: context.source.reason,\n sessionIndex: context.sessionIndex,\n turnIndex: context.turnIndex,\n sourceOrder: context.sourceOrder,\n });\n }\n if (context.sourceOrder === null) {\n throw new Error(\"Mapped turn context is missing its validated source order\");\n }\n return Object.freeze({\n sessionIndex: context.sessionIndex,\n turnIndex: context.turnIndex,\n sourceOrder: context.sourceOrder,\n ...context.source.value,\n });\n}\nfunction typedConversationCoverageLimitations(agentTurns: ReturnType<typeof readAgentTurns>): readonly TraceEvidenceCoverageLimitation[] {\n if (agentTurns.state !== \"available\")\n return Object.freeze([]);\n const limitations: TraceEvidenceCoverageLimitation[] = [];\n const channels = [\"events\", \"actions\", \"messages\", \"status\", \"data\"] as const;\n for (const turn of agentTurns.value.segments) {\n if (turn.terminal.state === \"unavailable\") {\n limitations.push(Object.freeze({\n source: \"agent-turns\",\n turnId: turn.turnId,\n channel: \"conversation\",\n state: \"unavailable\",\n reason: turn.terminal.reason,\n }));\n continue;\n }\n for (const channel of channels) {\n const coverage = turn.terminal.evidenceCoverage[channel];\n if (coverage.status === \"complete\")\n continue;\n limitations.push(Object.freeze({\n source: \"agent-turns\",\n turnId: turn.turnId,\n channel,\n state: coverage.status,\n reason: boundedText(coverage.reason, MAX_COVERAGE_REASON_BYTES).value,\n }));\n }\n }\n return Object.freeze(limitations);\n}\n/**\n * Resolves exactly one sealed trace fact. `undefined` is deliberately the\n * missing-selection result: the Host turns it into inspection-selection-missing\n * and must never substitute a neighbouring displayed item.\n */\nexport function projectAttemptTraceDetail(source: InspectionFactSource, attachments: AttemptTraceAttachments, selector: AttemptTraceDetailSelector): InspectionTraceDetailResult | undefined {\n const agentTurns = readAgentTurns(attachments.agentTurns);\n const commands = readSandboxCommands(attachments.sandboxCommands);\n let detail: InspectionTraceDetailResult | undefined;\n switch (selector.kind) {\n case \"item\":\n detail = projectTraceItemDetail(agentTurns, selector.itemId);\n break;\n case \"tool-occurrence\": {\n detail = projectToolOccurrenceDetail(agentTurns, selector.toolOccurrenceId);\n break;\n }\n case \"command\":\n detail = projectTraceCommandDetail(source, commands, selector.commandId);\n break;\n }\n if (detail === undefined)\n return undefined;\n if (jsonByteLength(detail) > INSPECTION_RESULT_BYTE_LIMIT) {\n throw new Error(\"Trace detail exceeds its fixed result byte limit\");\n }\n return detail;\n}\nfunction projectTraceIdentityIndex(agentTurns: ReturnType<typeof readAgentTurns>, commands: ReturnType<typeof readSandboxCommands>): InspectionJson {\n const itemIds: string[] = [];\n const toolOccurrenceIds = new Set<string>();\n if (agentTurns.state === \"available\") {\n for (const turn of agentTurns.value.segments) {\n for (const item of turn.items) {\n itemIds.push(item.itemId);\n if (item.kind === \"tool-start\")\n toolOccurrenceIds.add(item.toolOccurrenceId);\n if (item.kind === \"tool-finish\" && item.occurrence.state === \"exact\") {\n toolOccurrenceIds.add(item.occurrence.toolOccurrenceId);\n }\n }\n }\n }\n const commandIds = commands.state === \"available\"\n ? commands.value.segments.map((command) => command.commandId)\n : [];\n return closeJson(Object.freeze({\n itemIds: Object.freeze(itemIds),\n toolOccurrenceIds: agentTurns.state === \"available\" && agentTurns.value.state === \"legacy\"\n ? Object.freeze({\n state: \"unavailable\" as const,\n reason: \"exact-tool-occurrence-identity-not-recorded\" as const,\n ids: Object.freeze([]),\n })\n : Object.freeze({\n state: agentTurns.state === \"available\" ? \"available\" as const : agentTurns.state,\n ids: Object.freeze([...toolOccurrenceIds]),\n }),\n commandIds: Object.freeze(commandIds),\n }));\n}\nfunction projectTypedTraceIdentityIndex(agentTurns: ReturnType<typeof readAgentTurns>, commands: ReturnType<typeof readSandboxCommands>): InspectionTraceResult[\"identityIndex\"] {\n const maximumIdentityCount = 256;\n const itemIds: string[] = [];\n const toolOccurrenceIds = new Set<string>();\n if (agentTurns.state === \"available\") {\n for (const turn of agentTurns.value.segments) {\n for (const item of turn.items) {\n itemIds.push(item.itemId);\n if (item.kind === \"tool-start\")\n toolOccurrenceIds.add(item.toolOccurrenceId);\n if (item.kind === \"tool-finish\" && item.occurrence.state === \"exact\") {\n toolOccurrenceIds.add(item.occurrence.toolOccurrenceId);\n }\n }\n }\n }\n const allToolOccurrenceIds = [...toolOccurrenceIds];\n const allCommandIds = commands.state === \"available\"\n ? commands.value.segments.map(({ commandId }) => commandId)\n : [];\n return Object.freeze({\n itemIds: Object.freeze(itemIds.slice(0, maximumIdentityCount)),\n omittedItemIdCount: Math.max(0, itemIds.length - maximumIdentityCount),\n toolOccurrenceIds: Object.freeze({\n ids: Object.freeze(allToolOccurrenceIds.slice(0, maximumIdentityCount)),\n omittedIdCount: Math.max(0, allToolOccurrenceIds.length - maximumIdentityCount),\n }),\n commandIds: Object.freeze(allCommandIds.slice(0, maximumIdentityCount)),\n omittedCommandIdCount: Math.max(0, allCommandIds.length - maximumIdentityCount),\n });\n}\nfunction projectTypedConversationItem(item: ReturnType<typeof readAgentTurns> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment extends {\n readonly items: readonly (infer Item)[];\n} ? Item : never : never : never, turnId: string): InspectionTraceResult[\"conversation\"][\"items\"][number] {\n const sequence = \"sessionSequence\" in item ? item.sessionSequence : item.sequence;\n const base = { itemId: item.itemId, turnId, sequence };\n switch (item.kind) {\n case \"message\": {\n const text = boundedText(item.text, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, role: item.role, text: text.value, textTruncated: text.truncated });\n }\n case \"tool-start\": {\n const input = boundedText(item.inputSummary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: \"tool-call\", tool: item.tool, input: input.value, inputTruncated: input.truncated, toolOccurrenceId: item.toolOccurrenceId });\n }\n case \"tool-finish\": {\n const output = boundedText(item.outputSummary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: \"tool-result\", outcome: item.outcome, output: output.value, outputTruncated: output.truncated, ...(item.occurrence.state === \"exact\" ? { toolOccurrenceId: item.occurrence.toolOccurrenceId } : {}) });\n }\n case \"tool-call\": {\n const input = boundedText(item.inputSummary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, tool: item.tool, input: input.value, inputTruncated: input.truncated });\n }\n case \"tool-result\": {\n const output = boundedText(item.outputSummary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, outcome: item.outcome, output: output.value, outputTruncated: output.truncated });\n }\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\": {\n const summary = boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, summary: summary.value, summaryTruncated: summary.truncated });\n }\n case \"subagent\": {\n const summary = boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, state: item.state, label: item.label, summary: summary.value, summaryTruncated: summary.truncated });\n }\n case \"input-request\": {\n const prompt = boundedText(item.promptSummary, MAX_CONVERSATION_TEXT_BYTES);\n const response = item.responseSummary === null\n ? null\n : boundedText(item.responseSummary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, state: item.state, prompt: prompt.value, promptTruncated: prompt.truncated, response: response?.value ?? null, responseTruncated: response?.truncated ?? false });\n }\n case \"skill-load\":\n case \"conversation-error\": {\n const summary = boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, code: item.code, summary: summary.value, summaryTruncated: summary.truncated });\n }\n }\n}\nfunction projectTraceItemDetail(agentTurns: ReturnType<typeof readAgentTurns>, itemId: string): Extract<InspectionTraceDetailResult, {\n readonly kind: \"item\";\n}> | undefined {\n if (agentTurns.state !== \"available\")\n return undefined;\n for (const turn of agentTurns.value.segments) {\n const item = turn.items.find((candidate) => candidate.itemId === itemId);\n if (item === undefined)\n continue;\n return Object.freeze({\n kind: \"item\",\n itemId,\n item: projectFullConversationItem(item, turn),\n });\n }\n return undefined;\n}\nfunction projectToolOccurrenceDetail(agentTurns: ReturnType<typeof readAgentTurns>, toolOccurrenceId: string): Extract<InspectionTraceDetailResult, {\n readonly kind: \"tool-occurrence\";\n}> | undefined {\n if (agentTurns.state !== \"available\" || agentTurns.value.state === \"legacy\")\n return undefined;\n let call: InspectionTraceDetailItem | undefined;\n let result: InspectionTraceDetailItem | undefined;\n let callTurn: {\n readonly turnId: string;\n readonly sequence: number;\n readonly outcome: AgentTurnOutcome;\n } | undefined;\n let resultTurn: typeof callTurn;\n for (const turn of agentTurns.value.segments) {\n for (const item of turn.items) {\n if (item.kind === \"tool-start\" && item.toolOccurrenceId === toolOccurrenceId) {\n call = projectFullConversationItem(item, turn);\n callTurn = traceTurnIdentity(turn);\n }\n if (item.kind === \"tool-finish\" && item.occurrence.state === \"exact\" &&\n item.occurrence.toolOccurrenceId === toolOccurrenceId) {\n result = projectFullConversationItem(item, turn);\n resultTurn = traceTurnIdentity(turn);\n }\n }\n }\n if (call === undefined && result === undefined)\n return undefined;\n return Object.freeze({\n kind: \"tool-occurrence\",\n toolOccurrenceId,\n call: call ?? null,\n result: result ?? null,\n turn: Object.freeze({ call: callTurn ?? null, result: resultTurn ?? null }),\n });\n}\nfunction projectTraceCommandDetail(source: InspectionFactSource, commands: ReturnType<typeof readSandboxCommands>, commandId: string): Extract<InspectionTraceDetailResult, {\n readonly kind: \"command\";\n}> | undefined {\n if (commands.state !== \"available\")\n return undefined;\n const command = commands.value.segments.find((candidate) => candidate.commandId === commandId);\n if (command === undefined)\n return undefined;\n const stream = (value: typeof command.stdout) => {\n const metadata = commands.contentMetadata.get(value.content);\n if (metadata === undefined || metadata.byteLength !== value.retainedBytes || metadata.digest !== value.sha256) {\n throw new Error(\"Command stream metadata is invalid\");\n }\n return Object.freeze({\n text: readVerifiedText(source, metadata),\n retainedBytes: value.retainedBytes,\n totalSafeUtf8Bytes: value.totalSafeUtf8Bytes,\n sha256: value.sha256,\n truncation: Object.freeze({\n state: value.retainedBytes === value.totalSafeUtf8Bytes ? \"not-truncated\" as const : \"truncated\" as const,\n omittedSafeUtf8Bytes: value.totalSafeUtf8Bytes - value.retainedBytes,\n }),\n });\n };\n return Object.freeze({\n kind: \"command\",\n commandId,\n invocation: projectFullInvocation(command.invocation),\n workingDirectory: command.workingDirectory,\n outcome: command.outcome,\n turnId: command.turnId,\n phase: command.phase,\n sequence: command.sequence,\n stdout: stream(command.stdout),\n stderr: stream(command.stderr),\n });\n}\nfunction traceTurnIdentity(turn: {\n readonly turnId: string;\n readonly sequence: number;\n readonly outcome: AgentTurnOutcome;\n}) {\n return Object.freeze({ turnId: turn.turnId, sequence: turn.sequence, outcome: turn.outcome });\n}\nfunction projectFullInvocation(invocation: {\n readonly kind: \"shell\" | \"argv\";\n readonly command?: string;\n readonly executable?: string;\n readonly arguments?: readonly string[];\n}): Extract<InspectionTraceDetailResult, {\n readonly kind: \"command\";\n}>[\"invocation\"] {\n return invocation.kind === \"shell\"\n ? Object.freeze({ kind: invocation.kind, command: invocation.command! })\n : Object.freeze({\n kind: invocation.kind,\n executable: invocation.executable!,\n arguments: Object.freeze([...(invocation.arguments ?? [])]),\n });\n}\nfunction projectFullConversationItem(item: ReturnType<typeof readAgentTurns> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment extends {\n readonly items: readonly (infer Item)[];\n} ? Item : never : never : never, turn: {\n readonly turnId: string;\n readonly sequence: number;\n readonly outcome: AgentTurnOutcome;\n readonly sessionId?: string;\n}): Extract<InspectionTraceDetailResult, {\n readonly kind: \"item\";\n}>[\"item\"] {\n const base = {\n itemId: item.itemId,\n turnId: turn.turnId,\n turnSequence: turn.sequence,\n turnOutcome: turn.outcome,\n ...(turn.sessionId === undefined ? {} : { sessionId: turn.sessionId }),\n };\n switch (item.kind) {\n case \"tool-start\": return Object.freeze({\n ...base, kind: \"tool-call\", eventId: item.eventId, sequence: item.sessionSequence,\n toolOccurrenceId: item.toolOccurrenceId, tool: item.tool, input: item.inputSummary,\n });\n case \"tool-finish\": return Object.freeze({\n ...base, kind: \"tool-result\", eventId: item.eventId, sequence: item.sessionSequence,\n ...(item.occurrence.state === \"exact\" ? { toolOccurrenceId: item.occurrence.toolOccurrenceId } : {}),\n outcome: item.outcome, output: item.outputSummary,\n });\n case \"tool-call\": return Object.freeze({\n ...base, kind: item.kind, sequence: item.sequence, tool: item.tool, input: item.inputSummary,\n });\n case \"tool-result\": return Object.freeze({\n ...base, kind: item.kind, sequence: item.sequence, outcome: item.outcome, output: item.outputSummary,\n });\n case \"message\": return Object.freeze({ ...base, kind: item.kind, role: item.role, text: item.text });\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\": return Object.freeze({ ...base, kind: item.kind, summary: item.summary });\n case \"subagent\": return Object.freeze({ ...base, kind: item.kind, state: item.state, label: item.label, summary: item.summary });\n case \"input-request\": return Object.freeze({ ...base, kind: item.kind, state: item.state, prompt: item.promptSummary, response: item.responseSummary });\n case \"skill-load\":\n case \"conversation-error\": return Object.freeze({ ...base, kind: item.kind, code: item.code, summary: item.summary });\n }\n}\nfunction readCurrentAttachment<Owner extends RecordAttachmentOwner, Family extends string, ValueSchema extends Schema.Top, Revision extends number>(persistence: Readonly<{\n readonly attachment: RecordAttachmentDefinition<Owner, Family, ValueSchema>;\n readonly revision: Revision;\n}>, attachment: TraceAttachmentInput | undefined): AttachmentRead<ValueSchema[\"Type\"]> {\n if (attachment === undefined)\n return Object.freeze({ state: \"not-recorded\" as const });\n if (attachment.physical.ownerKind !== persistence.attachment.owner ||\n attachment.physical.family !== persistence.attachment.family)\n return invalidRead(\"source-attachment-identity-invalid\");\n if (attachment.physical.familyRevision < persistence.revision)\n return invalidRead(\"source-migration-required\");\n if (attachment.physical.familyRevision !== persistence.revision)\n return invalidRead(\"source-revision-unsupported\");\n const byLogicalHandle = new Map(attachment.physical.contents.map((content) => [content.logicalHandle, content] as const));\n const contentMetadata = new WeakMap<object, PersistedContentMetadata>();\n const usedLogicalHandles = new Set<string>();\n const hydrated = hydrateRecordAttachmentCurrent(persistence.attachment, attachment.value, {\n content: (token, declaration) => {\n const logicalHandle = exactMarker(token, \"$niceeval.record.content\");\n if (logicalHandle === undefined && !hasOwnMarker(token, \"$niceeval.record.content\")) {\n return Result.succeed(undefined);\n }\n const metadata = typeof logicalHandle === \"string\" ? byLogicalHandle.get(logicalHandle) : undefined;\n if (metadata === undefined ||\n usedLogicalHandles.has(logicalHandle as string) ||\n declaration.maximumBytes !== undefined && metadata.byteLength > declaration.maximumBytes)\n return Result.fail({ code: \"current-content-bind-failed\" as const });\n const handle = mintRecordContentHandle(declaration.kind);\n contentMetadata.set(handle, metadata);\n usedLogicalHandles.add(logicalHandle as string);\n return Result.succeed(handle);\n },\n reference: (token, declaration) => {\n const marker = exactMarker(token, \"$niceeval.record.reference\");\n if (marker === undefined && !hasOwnMarker(token, \"$niceeval.record.reference\")) {\n return Result.succeed(undefined);\n }\n if (typeof marker !== \"object\" || marker === null || Array.isArray(marker)) {\n return Result.fail({ code: \"current-reference-bind-failed\" as const });\n }\n const value = marker as Readonly<Record<string, unknown>>;\n if (Reflect.ownKeys(value).length !== 3 ||\n value.owner !== declaration.definition.owner ||\n value.family !== declaration.definition.family ||\n !(\"value\" in value)) {\n return Result.fail({ code: \"current-reference-bind-failed\" as const });\n }\n return Result.succeed(mintRecordAttachmentReference(RecordAttachmentReference.to(declaration.definition, declaration.valueSchema), value.value));\n },\n });\n if (Result.isFailure(hydrated) || usedLogicalHandles.size !== attachment.physical.contents.length) {\n return invalidRead(\"source-attachment-invalid\");\n }\n const closure = enumerateRecordAttachmentClosure(persistence.attachment, hydrated.success);\n if (Result.isFailure(closure))\n return invalidRead(\"source-closure-invalid\");\n const logicalReferences = new Map<string, {\n readonly owner: string;\n readonly family: string;\n }>();\n for (const reference of closure.success.references) {\n const wire = recordAttachmentReferenceWire(reference);\n if (wire === undefined)\n return invalidRead(\"source-reference-invalid\");\n logicalReferences.set(`${wire.owner}\\u0000${wire.family}`, Object.freeze({ owner: wire.owner, family: wire.family }));\n }\n const orderedReferences = [...logicalReferences.values()].sort((left, right) => left.owner === right.owner\n ? left.family === right.family ? 0 : left.family < right.family ? -1 : 1\n : left.owner < right.owner ? -1 : 1);\n if (orderedReferences.length !== attachment.physical.references.length) {\n return invalidRead(\"source-reference-invalid\");\n }\n for (let ordinal = 0; ordinal < orderedReferences.length; ordinal += 1) {\n const logical = orderedReferences[ordinal]!;\n const physical = attachment.physical.references[ordinal]!;\n if (physical.ordinal !== ordinal ||\n physical.owner !== logical.owner ||\n physical.family !== logical.family)\n return invalidRead(\"source-reference-invalid\");\n }\n return Object.freeze({ state: \"available\" as const, value: hydrated.success, contentMetadata });\n}\nfunction invalidRead<Value>(issue: string): AttachmentRead<Value> {\n return Object.freeze({ state: \"invalid\" as const, issues: Object.freeze([issue]) });\n}\n/** Historical revisions are decoded independently, then projected without rewriting sealed bytes. */\nfunction readAdapterUsageAttachment(attachment: TraceAttachmentInput | undefined, models: ResolvedModelSlots | undefined): AttachmentRead<ReadableAdapterUsageAttachment> {\n if (attachment?.physical.familyRevision !== 1 && attachment?.physical.familyRevision !== 2 &&\n attachment?.physical.familyRevision !== 3) {\n const read = readCurrentAttachment(NiceEvalCurrentRecordAttachments.adapterUsage, attachment);\n if (read.state === \"available\" && read.value.calls.some((call) => call.modelSlot !== null &&\n (models === undefined || !Object.hasOwn(models, call.modelSlot)))) {\n return invalidRead(\"source-model-slot-invalid\");\n }\n return read;\n }\n if (attachment.physical.ownerKind !== NiceEvalCurrentRecordAttachments.adapterUsage.attachment.owner ||\n attachment.physical.family !== NiceEvalCurrentRecordAttachments.adapterUsage.attachment.family)\n return invalidRead(\"source-attachment-identity-invalid\");\n if (attachment.physical.contents.length !== 0 || attachment.physical.references.length !== 0) {\n return invalidRead(\"source-closure-invalid\");\n }\n let projected: ReadableAdapterUsageAttachment;\n if (attachment.physical.familyRevision === 1) {\n const decoded = Schema.decodeUnknownResult(AdapterUsageAttachmentRevision1Schema, RecordExactParseOptions)(attachment.value);\n if (Result.isFailure(decoded))\n return invalidRead(\"source-attachment-invalid\");\n projected = projectAdapterUsageRevision1(decoded.success);\n }\n else if (attachment.physical.familyRevision === 2) {\n const decoded = Schema.decodeUnknownResult(AdapterUsageAttachmentRevision2Schema, RecordExactParseOptions)(attachment.value);\n if (Result.isFailure(decoded))\n return invalidRead(\"source-attachment-invalid\");\n projected = projectAdapterUsageRevision2(decoded.success);\n }\n else {\n const decoded = Schema.decodeUnknownResult(AdapterUsageAttachmentSchema, RecordExactParseOptions)(attachment.value);\n if (Result.isFailure(decoded))\n return invalidRead(\"source-attachment-invalid\");\n projected = decoded.success;\n if (projected.calls.some((call) => call.modelSlot !== null &&\n (models === undefined || !Object.hasOwn(models, call.modelSlot)))) {\n return invalidRead(\"source-model-slot-invalid\");\n }\n }\n if (validateAdapterUsageAttachment(projected).length > 0) {\n return invalidRead(\"source-attachment-invalid\");\n }\n return Object.freeze({\n state: \"available\" as const,\n value: projected,\n contentMetadata: new WeakMap<object, PersistedContentMetadata>(),\n });\n}\nfunction sourceDescriptor(read: AttachmentRead<CollectionValue>): InspectionJson {\n switch (read.state) {\n case \"not-recorded\": return closeJson(Object.freeze({ state: read.state }));\n case \"invalid\": return closeJson(Object.freeze({ state: read.state, issues: read.issues }));\n case \"available\": {\n const limitations = boundedLimitations(read.value.collection.limitations);\n return closeJson(Object.freeze({\n state: read.value.collection.state,\n limitations: limitations.items,\n limitationsTruncated: limitations.hasMore,\n omittedLimitationCount: limitations.omittedCount,\n }));\n }\n }\n}\nfunction boundedLimitations(limitations: readonly SourceReceiptLimitation[]) {\n const items = limitations.slice(0, MAX_SOURCE_LIMITATIONS).map((limitation) => closeJson(limitation));\n return Object.freeze({\n items: Object.freeze(items),\n hasMore: items.length < limitations.length,\n omittedCount: limitations.length - items.length,\n });\n}\nfunction availability<Value extends CollectionValue>(read: AttachmentRead<Value>, targets: ReadonlySet<SourceReceiptLimitation[\"target\"]>): ProjectionState {\n switch (read.state) {\n case \"not-recorded\": return Object.freeze({ state: read.state, limitations: Object.freeze([]) });\n case \"invalid\": return Object.freeze({\n state: read.state,\n limitations: Object.freeze(read.issues.map((issue) => Object.freeze({ issue }))),\n });\n case \"available\": {\n const matching = read.value.collection.limitations.filter(({ target }) => targets.has(target));\n return Object.freeze({\n state: matching.length === 0 ? \"complete\" as const : \"partial\" as const,\n limitations: Object.freeze(matching),\n });\n }\n }\n}\nconst CONVERSATION_TARGETS = new Set<SourceReceiptLimitation[\"target\"]>([\n \"turn\",\n \"turn-item\",\n \"value-byte\",\n]);\nconst CONTEXT_TARGETS = new Set<SourceReceiptLimitation[\"target\"]>([\n \"turn-context\",\n \"value-byte\",\n]);\nconst USAGE_TARGETS = new Set<SourceReceiptLimitation[\"target\"]>([\n \"usage-observation\",\n \"value-byte\",\n]);\nconst COMMAND_TARGETS = new Set<SourceReceiptLimitation[\"target\"]>([\n \"command\",\n \"stdout\",\n \"stderr\",\n \"value-byte\",\n \"content-byte\",\n]);\nconst TIMING_TARGETS = new Set<SourceReceiptLimitation[\"target\"]>([\n \"activity\",\n \"value-byte\",\n]);\nconst DIAGNOSTIC_TARGETS = new Set<SourceReceiptLimitation[\"target\"]>([\n \"diagnostic\",\n \"diagnostic-cause\",\n \"value-byte\",\n]);\nfunction projectConversation(agentTurns: ReturnType<typeof readAgentTurns>, turnContexts: ReturnType<typeof readTurnContexts>): {\n readonly view: InspectionJson;\n} {\n const primary = availability(agentTurns, CONVERSATION_TARGETS);\n if (agentTurns.state !== \"available\") {\n return Object.freeze({ view: closeJson(Object.freeze({\n ...primary,\n turns: Object.freeze([]),\n turnsTruncated: false,\n omittedTurnCount: 0,\n items: Object.freeze([]),\n itemsTruncated: false,\n omittedItemCount: 0,\n })) });\n }\n const contextState = availability(turnContexts, CONTEXT_TARGETS);\n const contexts = turnContexts.state === \"available\"\n ? new Map(turnContexts.value.segments.map((segment) => [segment.turnId, segment] as const))\n : new Map();\n const limitations: InspectionJson[] = [...primary.limitations];\n if (contextState.state !== \"complete\") {\n limitations.push(closeJson(Object.freeze({\n source: \"turn-contexts\",\n state: contextState.state,\n limitations: contextState.limitations,\n })));\n }\n if (agentTurns.value.state === \"legacy\") {\n limitations.push(closeJson(Object.freeze({\n source: \"agent-turns\",\n state: \"partial\",\n reason: \"exact-tool-occurrence-identity-not-recorded\",\n })));\n }\n const turns = agentTurns.value.segments.slice(0, MAX_CONVERSATION_TURNS).map((turn) => {\n const coverage = conversationCoverage(turn.terminal);\n limitations.push(...coverage.limitations.map((limitation) => closeJson(Object.freeze({\n source: \"agent-turns\",\n turnId: turn.turnId,\n ...limitation,\n }))));\n const context = contexts.get(turn.turnId);\n return closeJson(Object.freeze({\n turnId: turn.turnId,\n sequence: turn.sequence,\n ...(\"sessionId\" in turn ? { sessionId: turn.sessionId } : {}),\n outcome: turn.outcome,\n terminal: Object.freeze({\n state: turn.terminal.state,\n ...(turn.terminal.state === \"recorded\" ? { status: turn.terminal.status } : { reason: turn.terminal.reason }),\n coverage: coverage.coverage,\n }),\n context: context === undefined\n ? Object.freeze({ state: \"not-recorded\" as const })\n : projectTurnContext(context),\n }));\n });\n const items: InspectionJson[] = [];\n let totalItemCount = 0;\n for (const turn of agentTurns.value.segments) {\n for (const item of turn.items) {\n totalItemCount += 1;\n if (items.length >= MAX_CONVERSATION_ITEMS)\n continue;\n items.push(projectConversationItem(item, turn.turnId, \"sessionId\" in turn ? turn.sessionId : undefined));\n }\n }\n return Object.freeze({\n view: closeJson(Object.freeze({\n state: primary.state === \"complete\" && limitations.length === 0 ? \"complete\" : \"partial\",\n limitations: Object.freeze(limitations.slice(0, MAX_SOURCE_LIMITATIONS)),\n limitationsTruncated: limitations.length > MAX_SOURCE_LIMITATIONS,\n omittedLimitationCount: Math.max(0, limitations.length - MAX_SOURCE_LIMITATIONS),\n turns: Object.freeze(turns),\n turnsTruncated: turns.length < agentTurns.value.segments.length,\n omittedTurnCount: agentTurns.value.segments.length - turns.length,\n items: Object.freeze(items),\n itemsTruncated: items.length < totalItemCount,\n omittedItemCount: totalItemCount - items.length,\n })),\n });\n}\nexport function readInspectionAgentTurns(attachment?: TraceAttachmentInput): InspectionAgentTurnsRead {\n return readCurrentAttachment(NiceEvalCurrentRecordAttachments.agentTurns, attachment);\n}\nfunction readAgentTurns(attachment?: TraceAttachmentInput): InspectionAgentTurnsRead {\n return readInspectionAgentTurns(attachment);\n}\nfunction readTurnContexts(attachment?: TraceAttachmentInput) {\n return readCurrentAttachment(NiceEvalCurrentRecordAttachments.turnContexts, attachment);\n}\nfunction conversationCoverage(terminal: ReturnType<typeof readAgentTurns> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment extends {\n readonly terminal: infer Terminal;\n} ? Terminal : never : never : never) {\n if (terminal.state === \"unavailable\") {\n return Object.freeze({\n coverage: Object.freeze({ state: \"unavailable\" as const, reason: terminal.reason }),\n limitations: Object.freeze([Object.freeze({\n channel: \"conversation\",\n state: \"unavailable\" as const,\n reason: terminal.reason,\n })]),\n });\n }\n const names = [\"events\", \"actions\", \"messages\", \"status\", \"data\"] as const;\n const limitations: {\n readonly channel: string;\n readonly state: string;\n readonly reason?: string;\n }[] = [];\n const entries: Record<string, object> = {};\n for (const name of names) {\n const entry = terminal.evidenceCoverage[name];\n entries[name] = entry.status === \"complete\"\n ? Object.freeze({ state: \"complete\" as const })\n : Object.freeze({\n state: entry.status,\n reason: boundedText(entry.reason, MAX_COVERAGE_REASON_BYTES).value,\n });\n if (entry.status !== \"complete\") {\n limitations.push(Object.freeze({\n channel: name,\n state: entry.status,\n reason: boundedText(entry.reason, MAX_COVERAGE_REASON_BYTES).value,\n }));\n }\n }\n return Object.freeze({ coverage: Object.freeze(entries), limitations: Object.freeze(limitations) });\n}\nfunction projectTurnContext(context: ReturnType<typeof readTurnContexts> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment : never : never): InspectionJson {\n if (\"state\" in context.source) {\n return closeJson(Object.freeze({\n state: context.source.state,\n reason: context.source.reason,\n sessionIndex: context.sessionIndex,\n turnIndex: context.turnIndex,\n sourceOrder: context.sourceOrder,\n }));\n }\n return closeJson(Object.freeze({\n sessionIndex: context.sessionIndex,\n turnIndex: context.turnIndex,\n sourceOrder: context.sourceOrder,\n ...context.source.value,\n }));\n}\nfunction projectConversationItem(item: ReturnType<typeof readAgentTurns> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment extends {\n readonly items: readonly (infer Item)[];\n} ? Item : never : never : never, turnId: string, sessionId: string | undefined): InspectionJson {\n const base = Object.freeze({\n itemId: item.itemId,\n turnId,\n ...(sessionId === undefined ? {} : { sessionId }),\n ...(item.kind === \"tool-call\" || item.kind === \"tool-result\"\n ? { sequence: item.sequence }\n : \"eventId\" in item\n ? { eventId: item.eventId, sequence: item.sessionSequence }\n : { sequence: item.sequence }),\n });\n switch (item.kind) {\n case \"message\": return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n role: item.role,\n text: boundedText(item.text, MAX_CONVERSATION_TEXT_BYTES).value,\n textTruncated: boundedText(item.text, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"tool-start\": return closeJson(Object.freeze({\n ...base,\n kind: \"tool-call\" as const,\n occurrence: Object.freeze({\n state: \"exact\" as const,\n toolOccurrenceId: item.toolOccurrenceId,\n }),\n tool: item.tool,\n input: boundedText(item.inputSummary, MAX_CONVERSATION_TEXT_BYTES).value,\n inputTruncated: boundedText(item.inputSummary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"tool-finish\": return closeJson(Object.freeze({\n ...base,\n kind: \"tool-result\" as const,\n occurrence: item.occurrence.state === \"exact\"\n ? Object.freeze({\n state: \"exact\" as const,\n toolOccurrenceId: item.occurrence.toolOccurrenceId,\n })\n : item.occurrence,\n outcome: item.outcome,\n output: boundedText(item.outputSummary, MAX_CONVERSATION_TEXT_BYTES).value,\n outputTruncated: boundedText(item.outputSummary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"tool-call\": return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n occurrence: Object.freeze({\n state: \"unavailable\" as const,\n reason: \"exact-tool-occurrence-identity-not-recorded\" as const,\n }),\n tool: item.tool,\n input: boundedText(item.inputSummary, MAX_CONVERSATION_TEXT_BYTES).value,\n inputTruncated: boundedText(item.inputSummary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"tool-result\": return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n occurrence: Object.freeze({\n state: \"unavailable\" as const,\n reason: \"exact-tool-occurrence-identity-not-recorded\" as const,\n }),\n outcome: item.outcome,\n output: boundedText(item.outputSummary, MAX_CONVERSATION_TEXT_BYTES).value,\n outputTruncated: boundedText(item.outputSummary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\": return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n summary: boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES).value,\n summaryTruncated: boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"subagent\": return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n state: item.state,\n label: item.label,\n summary: boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES).value,\n summaryTruncated: boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"input-request\": {\n const prompt = boundedText(item.promptSummary, MAX_CONVERSATION_TEXT_BYTES);\n const response = item.responseSummary === null\n ? null\n : boundedText(item.responseSummary, MAX_CONVERSATION_TEXT_BYTES);\n return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n state: item.state,\n prompt: prompt.value,\n promptTruncated: prompt.truncated,\n response: response?.value ?? null,\n responseTruncated: response?.truncated ?? false,\n }));\n }\n case \"skill-load\":\n case \"conversation-error\": return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n code: item.code,\n summary: boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES).value,\n summaryTruncated: boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n }\n}\nexport function projectAttemptUsage(attachments: AttemptTraceAttachments, models: ResolvedModelSlots | undefined = attachments.models): InspectionAttemptUsageResult {\n const usage = projectApplicationUsage(attachments, models);\n const read = readCurrentAttachment(NiceEvalCurrentRecordAttachments.judgeUsage, attachments.judgeUsage);\n const judgeUsage = read.state === \"available\" ? projectJudgeUsage(read.value)\n : read.state === \"invalid\" ? Object.freeze({ state: \"invalid\" as const, reason: \"judge-usage-source-invalid\" as const })\n : Object.freeze({ state: \"unavailable\" as const, reason: \"judge-usage-not-recorded\" as const });\n const applicationEmptyComplete = attachments.adapterUsage !== undefined &&\n usage.totals.requests.state === \"available\" && usage.totals.requests.value === 0 && usage.totals.costs?.totalCalls === 0;\n return Object.freeze({ ...usage, judgeUsage,\n totalCosts: projectTotalUsageCosts(usage.totals, judgeUsage, applicationEmptyComplete, attachments.adapterUsage === undefined || attachments.adapterUsage.physical.familyRevision === 4) });\n}\nfunction projectApplicationUsage(attachments: AttemptTraceAttachments, models: ResolvedModelSlots | undefined): Omit<InspectionAttemptUsageResult, \"judgeUsage\" | \"totalCosts\"> {\n if (attachments.adapterUsage !== undefined) {\n const read = readAdapterUsageAttachment(attachments.adapterUsage, models);\n const modelUsage = projectAdapterModelUsage(read.state === \"available\" ? read.value : null, models, {\n basis: \"recorded-calls\", reason: read.state === \"invalid\" ? \"source-invalid\" : \"usage-not-recorded\",\n }, attachments.adapterUsage.physical.familyRevision === 4);\n const empty = {\n source: \"adapter\" as const,\n coverage: \"recorded-calls\" as const,\n limitationsTruncated: false,\n omittedLimitationCount: 0,\n turns: [], turnsTruncated: false, omittedTurnCount: 0,\n observations: [],\n calls: [], callsTruncated: false, omittedCallCount: 0,\n totals: {\n inputTokens: { state: \"unavailable\" as const, value: null, observationCount: 0 },\n outputTokens: { state: \"unavailable\" as const, value: null, observationCount: 0 },\n requests: { state: \"unavailable\" as const, value: null, observationCount: 0 },\n costs: effectiveCostTotals([], \"partial\"),\n }, hasMore: false, omittedObservationCount: 0,\n };\n if (read.state !== \"available\")\n return {\n ...empty, ...modelUsage,\n state: read.state, limitations: read.state === \"invalid\" ? read.issues.map((issue) => ({ issue })) : [],\n };\n const all = read.value.calls;\n const calls = effectiveUsageCalls(read.value);\n const numeric = (key: \"inputTokens\" | \"inputTotalTokens\" | \"outputTokens\") => {\n const known = all.flatMap((call) => call[key] === null ? [] : [call[key]]);\n const sum = known.reduce((total, value) => total + value, 0);\n if (known.length === 0 || !Number.isSafeInteger(sum))\n return { state: \"unavailable\" as const, value: null, observationCount: known.length };\n return {\n state: known.length === all.length && read.value.collection.state === \"complete\" ? \"available\" as const : \"partial\" as const,\n value: sum, observationCount: known.length,\n };\n };\n const inputTokens = numeric(\"inputTokens\");\n const outputTokens = numeric(\"outputTokens\");\n const complete = all.length > 0 && read.value.collection.state === \"complete\" &&\n all.every((call) => call.status !== \"unknown\" && call.outputTokens !== null &&\n (call.inputTotalTokens !== null ||\n [call.inputTokens, call.cacheReadTokens, call.cacheWriteTokens].every((value) => value !== null)));\n const unknownCosts = calls.filter((call) => call.effectiveCost === null).length;\n const partialCosts = calls.filter((call) => call.effectiveCost?.state === \"partial\").length;\n const costs = effectiveCostTotals(calls, read.value.collection.state);\n return {\n ...empty,\n ...modelUsage,\n state: complete ? \"complete\" : \"partial\",\n limitations: [\n ...(complete ? [] : [{ issue: \"Adapter usage describes only recorded calls; some quantities or terminal outcomes are unknown, or capture is incomplete.\" }]),\n ...(unknownCosts === 0 ? [] : [{ issue: `${unknownCosts} calls have no reported cost or sealed price estimate.` }]),\n ...(partialCosts === 0 ? [] : [{ issue: `${partialCosts} calls have partial estimates; sealed pricing evidence identifies unknown token or rate buckets.` }]),\n ],\n calls: calls.slice(0, 128), callsTruncated: all.length > 128, omittedCallCount: Math.max(0, all.length - 128),\n priceReceipts: read.value.priceReceipts,\n totals: {\n ...empty.totals, inputTokens, outputTokens, inputTotalTokens: numeric(\"inputTotalTokens\"),\n requests: { state: read.value.collection.state === \"complete\" ? \"available\" : \"partial\", value: all.length, observationCount: all.length },\n costs,\n },\n hasMore: all.length > 128,\n };\n }\n const read = readAgentTurns(attachments.agentTurns);\n const usage = projectUsage(read);\n return Object.freeze({\n ...usage,\n ...projectAdapterModelUsage(null, models, {\n basis: attachments.agentTurns === undefined ? \"unavailable\" : \"reported-sends\",\n reason: read.state === \"invalid\" ? \"source-invalid\" : attachments.agentTurns === undefined\n ? \"usage-not-recorded\" : \"physical-call-identity-not-recorded\",\n }),\n });\n}\nexport function projectAdapterUsageTokens(attachment: TraceAttachmentInput, models?: ResolvedModelSlots): {\n readonly value: number | null;\n readonly state: \"available\" | \"partial\" | \"unavailable\" | \"failed\";\n} {\n const read = readAdapterUsageAttachment(attachment, models);\n if (read.state !== \"available\") {\n return Object.freeze({\n value: null,\n state: read.state === \"invalid\" ? \"failed\" as const : \"unavailable\" as const,\n });\n }\n const material = adapterTokenMaterial(read.value, \"totalTokens\");\n return Object.freeze({ value: material.state === \"unavailable\" ? null : material.value, state: material.state === \"exact\" ? \"available\" as const : material.state === \"lower-bound\" ? \"partial\" as const : material.reason === \"usage-exceeds-safe-integer\" ? \"failed\" as const : \"unavailable\" as const });\n}\nfunction projectUsage(agentTurns: ReturnType<typeof readAgentTurns>): Omit<InspectionAttemptUsageResult, \"configuredModels\" | \"modelGroups\" | \"judgeUsage\" | \"totalCosts\" | \"cacheRead\"> {\n const sourceState = availability(agentTurns, USAGE_TARGETS);\n if (agentTurns.state !== \"available\") {\n return Object.freeze({\n ...sourceState,\n limitationsTruncated: false,\n omittedLimitationCount: 0,\n turns: Object.freeze([]),\n turnsTruncated: false,\n omittedTurnCount: 0,\n observations: Object.freeze([]),\n totals: unavailableInspectionUsageTotals(),\n hasMore: false,\n omittedObservationCount: 0,\n });\n }\n const limitations: InspectionAttemptUsageResult[\"limitations\"][number][] = [\n ...sourceState.limitations,\n ];\n const turns = agentTurns.value.segments.slice(0, MAX_CONVERSATION_TURNS).map((turn) => {\n const coverage = turn.terminal.state === \"unavailable\"\n ? Object.freeze({ state: \"unavailable\" as const, reason: turn.terminal.reason })\n : turn.terminal.evidenceCoverage.usage.status === \"complete\"\n ? Object.freeze({ state: \"complete\" as const })\n : Object.freeze({\n state: turn.terminal.evidenceCoverage.usage.status,\n reason: boundedText(turn.terminal.evidenceCoverage.usage.reason, MAX_COVERAGE_REASON_BYTES).value,\n });\n if (coverage.state !== \"complete\") {\n limitations.push(Object.freeze({\n source: \"agent-turns\",\n turnId: turn.turnId,\n channel: \"usage\",\n ...coverage,\n }));\n }\n return Object.freeze({ turnId: turn.turnId, coverage });\n });\n const allObservations: InspectionAttemptUsageResult[\"observations\"][number][] = [];\n for (const turn of agentTurns.value.segments) {\n for (const observation of turn.usage) {\n allObservations.push(Object.freeze({ turnId: turn.turnId, ...observation }));\n }\n }\n const observations = allObservations.slice(0, MAX_USAGE_OBSERVATIONS);\n return Object.freeze({\n state: sourceState.state === \"complete\" && limitations.length === 0 ? \"complete\" : \"partial\",\n limitations: Object.freeze(limitations.slice(0, MAX_SOURCE_LIMITATIONS)),\n limitationsTruncated: limitations.length > MAX_SOURCE_LIMITATIONS,\n omittedLimitationCount: Math.max(0, limitations.length - MAX_SOURCE_LIMITATIONS),\n turns: Object.freeze(turns),\n turnsTruncated: turns.length < agentTurns.value.segments.length,\n omittedTurnCount: agentTurns.value.segments.length - turns.length,\n observations: Object.freeze(observations),\n totals: usageTotals(allObservations, sourceState.state),\n hasMore: observations.length < allObservations.length,\n omittedObservationCount: allObservations.length - observations.length,\n });\n}\nexport function unavailableInspectionUsageTotals(): InspectionAttemptUsageResult[\"totals\"] {\n const unavailable = Object.freeze({\n state: \"unavailable\" as const,\n value: null,\n observationCount: 0,\n });\n return Object.freeze({\n inputTokens: unavailable,\n outputTokens: unavailable,\n requests: unavailable,\n providerCosts: Object.freeze({\n state: \"unavailable\" as const,\n values: Object.freeze([]),\n observationCount: 0,\n }),\n });\n}\nexport function combineInspectionUsageTotals(usages: readonly InspectionAttemptUsageResult[], incomplete: boolean): InspectionAttemptUsageResult[\"totals\"] {\n const numeric = (key: \"inputTokens\" | \"outputTokens\" | \"requests\"): InspectionAttemptUsageResult[\"totals\"][typeof key] => {\n const available = usages.flatMap(({ totals }) => {\n const value = totals[key];\n return value.value === null ? [] : [value];\n });\n if (available.length === 0) {\n return Object.freeze({ state: \"unavailable\", value: null, observationCount: 0 });\n }\n return Object.freeze({\n state: incomplete || usages.some(({ totals }) => totals[key].state !== \"available\")\n ? \"partial\" as const\n : \"available\" as const,\n value: available.reduce((total, entry) => total + entry.value!, 0),\n observationCount: available.reduce((total, entry) => total + entry.observationCount, 0),\n });\n };\n const costs = new Map<string, {\n readonly amount: string;\n readonly count: number;\n }>();\n for (const usage of usages) {\n for (const entry of usage.totals.providerCosts?.values ?? []) {\n const current = costs.get(entry.currency);\n costs.set(entry.currency, Object.freeze({\n amount: current === undefined\n ? entry.value\n : addCanonicalDecimal(current.amount, entry.value),\n count: (current?.count ?? 0) + entry.observationCount,\n }));\n }\n }\n const effectiveCosts = new Map<string, {\n readonly amount: string;\n readonly coveredCalls: number;\n readonly reportedCalls: number;\n readonly estimatedCalls: number;\n }>();\n const adapterCosts = usages.flatMap(({ totals }) => totals.costs === undefined ? [] : [totals.costs]);\n for (const total of adapterCosts) {\n for (const entry of total.values) {\n const current = effectiveCosts.get(entry.currency);\n effectiveCosts.set(entry.currency, Object.freeze({\n amount: current === undefined ? entry.value : addCanonicalDecimal(current.amount, entry.value),\n coveredCalls: (current?.coveredCalls ?? 0) + entry.coveredCalls,\n reportedCalls: (current?.reportedCalls ?? 0) + entry.reportedCalls,\n estimatedCalls: (current?.estimatedCalls ?? 0) + entry.estimatedCalls,\n }));\n }\n }\n const sourceFor = (reported: number, estimated: number) => reported > 0 && estimated > 0 ? \"mixed\" as const\n : reported > 0 ? \"reported\" as const\n : estimated > 0 ? \"estimated\" as const\n : null;\n const totalCalls = adapterCosts.reduce((sum, value) => sum + value.totalCalls, 0);\n const reportedCalls = [...effectiveCosts.values()].reduce((sum, value) => sum + value.reportedCalls, 0);\n const estimatedCalls = [...effectiveCosts.values()].reduce((sum, value) => sum + value.estimatedCalls, 0);\n return Object.freeze({\n inputTokens: numeric(\"inputTokens\"),\n outputTokens: numeric(\"outputTokens\"),\n requests: numeric(\"requests\"),\n ...(costs.size === 0 && adapterCosts.length > 0 ? {} : { providerCosts: costs.size === 0\n ? unavailableInspectionUsageTotals().providerCosts\n : Object.freeze({\n state: incomplete || usages.some(({ totals }) => totals.providerCosts?.state !== \"available\")\n ? \"partial\" as const\n : \"available\" as const,\n values: Object.freeze([...costs.entries()]\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([currency, total]) => Object.freeze({\n currency,\n value: total.amount,\n observationCount: total.count,\n }))),\n observationCount: [...costs.values()].reduce((total, value) => total + value.count, 0),\n }) }),\n ...(adapterCosts.length === 0 ? {} : { costs: Object.freeze({\n state: effectiveCosts.size === 0\n ? \"unavailable\" as const\n : incomplete || adapterCosts.some((value) => value.state !== \"complete\")\n ? \"partial\" as const\n : \"complete\" as const,\n source: sourceFor(reportedCalls, estimatedCalls),\n values: Object.freeze([...effectiveCosts.entries()]\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([currency, value]) => Object.freeze({\n currency,\n value: value.amount,\n source: sourceFor(value.reportedCalls, value.estimatedCalls)!,\n coveredCalls: value.coveredCalls,\n reportedCalls: value.reportedCalls,\n estimatedCalls: value.estimatedCalls,\n }))),\n totalCalls,\n }) }),\n });\n}\nfunction usageTotals(observations: InspectionAttemptUsageResult[\"observations\"], projectionState: InspectionAttemptUsageResult[\"state\"]): InspectionAttemptUsageResult[\"totals\"] {\n const state = projectionState === \"complete\" ? \"available\" as const : \"partial\" as const;\n const numeric = (values: readonly number[]): InspectionAttemptUsageResult[\"totals\"][\"inputTokens\"] => values.length === 0\n ? Object.freeze({ state: \"unavailable\", value: null, observationCount: 0 })\n : Object.freeze({\n state,\n value: values.reduce((total, value) => total + value, 0),\n observationCount: values.length,\n });\n const inputTokens = observations.flatMap((observation) => observation.kind === \"token-bucket\" && observation.bucket === \"input\"\n ? [observation.tokens]\n : []);\n const outputTokens = observations.flatMap((observation) => observation.kind === \"token-bucket\" && observation.bucket === \"output\"\n ? [observation.tokens]\n : []);\n const requests = observations.filter((observation) => observation.kind === \"request\");\n const costs = new Map<string, {\n readonly amount: string;\n readonly count: number;\n }>();\n for (const observation of observations) {\n if (observation.kind !== \"provider-cost\")\n continue;\n const current = costs.get(observation.currency);\n costs.set(observation.currency, Object.freeze({\n amount: current === undefined\n ? observation.amount\n : addCanonicalDecimal(current.amount, observation.amount),\n count: (current?.count ?? 0) + 1,\n }));\n }\n return Object.freeze({\n inputTokens: numeric(inputTokens),\n outputTokens: numeric(outputTokens),\n requests: numeric(requests.map(() => 1)),\n providerCosts: costs.size === 0\n ? Object.freeze({\n state: \"unavailable\" as const,\n values: Object.freeze([]),\n observationCount: 0,\n })\n : Object.freeze({\n state,\n values: Object.freeze([...costs.entries()]\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([currency, total]) => Object.freeze({\n currency,\n value: total.amount,\n observationCount: total.count,\n }))),\n observationCount: [...costs.values()].reduce((total, value) => total + value.count, 0),\n }),\n });\n}\nfunction addCanonicalDecimal(left: string, right: string): string {\n const split = (value: string): readonly [\n digits: bigint,\n scale: number\n ] => {\n const [integer, fraction = \"\"] = value.split(\".\");\n return [BigInt(`${integer}${fraction}`), fraction.length];\n };\n const [leftDigits, leftScale] = split(left);\n const [rightDigits, rightScale] = split(right);\n const scale = Math.max(leftScale, rightScale);\n const sum = leftDigits * 10n ** BigInt(scale - leftScale) +\n rightDigits * 10n ** BigInt(scale - rightScale);\n if (scale === 0)\n return sum.toString();\n const padded = sum.toString().padStart(scale + 1, \"0\");\n const integer = padded.slice(0, -scale);\n const fraction = padded.slice(-scale).replace(/0+$/u, \"\");\n return fraction.length === 0 ? integer : `${integer}.${fraction}`;\n}\nfunction projectCommands(source: InspectionFactSource, commands: ReturnType<typeof readSandboxCommands>): {\n readonly source: InspectionJson;\n readonly view: InspectionJson;\n} {\n const sourceState = availability(commands, COMMAND_TARGETS);\n if (commands.state !== \"available\") {\n return Object.freeze({ source: sourceDescriptor(commands), view: emptyView(sourceState) });\n }\n try {\n const items = commands.value.segments.slice(0, MAX_COMMANDS).map((command) => closeJson(Object.freeze({\n commandId: command.commandId,\n sequence: command.sequence,\n turnId: command.turnId,\n phase: command.phase,\n invocation: projectInvocation(command.invocation),\n workingDirectory: command.workingDirectory,\n outcome: command.outcome,\n stdout: projectCommandStream(source, commands.contentMetadata, command.stdout),\n stderr: projectCommandStream(source, commands.contentMetadata, command.stderr),\n })));\n return Object.freeze({\n source: sourceDescriptor(commands),\n view: closeJson(Object.freeze({\n ...sourceState,\n items: Object.freeze(items),\n hasMore: items.length < commands.value.segments.length,\n omittedCommandCount: commands.value.segments.length - items.length,\n })),\n });\n }\n catch {\n const invalid = closeJson(Object.freeze({\n state: \"invalid\" as const,\n issues: Object.freeze([\"source-content-invalid\"]),\n }));\n return Object.freeze({\n source: invalid,\n view: closeJson(Object.freeze({\n state: \"invalid\" as const,\n issues: Object.freeze([\"source-content-invalid\"]),\n items: Object.freeze([]),\n hasMore: false,\n })),\n });\n }\n}\nfunction readSandboxCommands(attachment?: TraceAttachmentInput) {\n return readCurrentAttachment(NiceEvalCurrentRecordAttachments.sandboxCommands, attachment);\n}\nfunction projectInvocation(invocation: ReturnType<typeof readSandboxCommands> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment extends {\n readonly invocation: infer Invocation;\n} ? Invocation : never : never : never): InspectionJson {\n if (invocation.kind === \"shell\") {\n const command = boundedText(invocation.command, MAX_COMMAND_TEXT_BYTES);\n return closeJson(Object.freeze({\n kind: invocation.kind,\n command: command.value,\n commandTruncated: command.truncated,\n }));\n }\n const executable = boundedText(invocation.executable, MAX_COMMAND_TEXT_BYTES);\n const args = invocation.arguments.slice(0, MAX_COMMAND_ARGUMENTS).map((argument) => boundedText(argument, MAX_COMMAND_ARGUMENT_BYTES).value);\n return closeJson(Object.freeze({\n kind: invocation.kind,\n executable: executable.value,\n executableTruncated: executable.truncated,\n arguments: Object.freeze(args),\n argumentsTruncated: args.length < invocation.arguments.length ||\n invocation.arguments.slice(0, MAX_COMMAND_ARGUMENTS).some((argument) => boundedText(argument, MAX_COMMAND_ARGUMENT_BYTES).truncated),\n omittedArgumentCount: invocation.arguments.length - args.length,\n }));\n}\nfunction projectCommandStream(source: InspectionFactSource, contentMetadata: WeakMap<object, PersistedContentMetadata>, stream: {\n readonly content: RecordContentHandle;\n readonly retainedBytes: number;\n readonly totalSafeUtf8Bytes: number;\n readonly sha256: string;\n}): InspectionJson {\n const metadata = contentMetadata.get(stream.content);\n if (metadata === undefined ||\n metadata.byteLength !== stream.retainedBytes ||\n metadata.digest !== stream.sha256)\n throw new Error(\"Command stream metadata is invalid\");\n const text = readVerifiedText(source, metadata);\n const bounded = boundedText(text, MAX_COMMAND_STREAM_TEXT_BYTES);\n return closeJson(Object.freeze({\n state: \"available\" as const,\n text: bounded.value,\n textTruncated: bounded.truncated,\n retainedBytes: stream.retainedBytes,\n totalSafeUtf8Bytes: stream.totalSafeUtf8Bytes,\n sha256: stream.sha256,\n }));\n}\nexport function projectAttemptTiming(attachments: AttemptTraceAttachments): InspectionAttemptTimingResult {\n return projectTiming(readRunnerActivities(attachments.runnerActivities));\n}\nfunction projectTiming(activities: ReturnType<typeof readRunnerActivities>): InspectionAttemptTimingResult {\n const sourceState = availability(activities, TIMING_TARGETS);\n if (activities.state !== \"available\") {\n const limitations = sourceState.limitations.slice(0, MAX_SOURCE_LIMITATIONS);\n return Object.freeze({\n state: sourceState.state,\n limitations: Object.freeze(limitations),\n limitationsTruncated: limitations.length < sourceState.limitations.length,\n omittedLimitationCount: sourceState.limitations.length - limitations.length,\n activities: Object.freeze([]),\n hasMore: false,\n omittedActivityCount: 0,\n });\n }\n const items = activities.value.segments.slice(0, MAX_ACTIVITIES).map((activity) => Object.freeze({\n activityId: activity.activityId,\n sequence: activity.sequence,\n parentActivityId: activity.parentActivityId,\n turnId: activity.turnId,\n phase: activity.phase,\n label: activity.label,\n startOffsetMs: activity.startOffsetMs,\n durationMs: activity.durationMs,\n outcome: activity.outcome,\n }));\n const limitations = sourceState.limitations.slice(0, MAX_SOURCE_LIMITATIONS);\n return Object.freeze({\n state: sourceState.state,\n limitations: Object.freeze(limitations),\n limitationsTruncated: limitations.length < sourceState.limitations.length,\n omittedLimitationCount: sourceState.limitations.length - limitations.length,\n activities: Object.freeze(items),\n hasMore: items.length < activities.value.segments.length,\n omittedActivityCount: activities.value.segments.length - items.length,\n });\n}\nfunction readRunnerActivities(attachment?: TraceAttachmentInput) {\n return readCurrentAttachment(NiceEvalCurrentRecordAttachments.runnerActivities.attempt, attachment);\n}\nfunction projectDiagnostics(diagnostics: ReturnType<typeof readRunnerDiagnostics>): InspectionTraceResult[\"diagnostics\"] {\n const sourceState = availability(diagnostics, DIAGNOSTIC_TARGETS);\n const limitations = sourceState.limitations.slice(0, MAX_SOURCE_LIMITATIONS);\n if (diagnostics.state !== \"available\") {\n return Object.freeze({\n state: sourceState.state,\n limitations: Object.freeze(limitations),\n limitationsTruncated: limitations.length < sourceState.limitations.length,\n omittedLimitationCount: sourceState.limitations.length - limitations.length,\n items: Object.freeze([]),\n hasMore: false,\n omittedDiagnosticCount: 0,\n });\n }\n const items = diagnostics.value.segments.slice(0, MAX_DIAGNOSTICS).map((diagnostic) => {\n const summary = boundedText(diagnostic.summary, MAX_DIAGNOSTIC_SUMMARY_BYTES);\n const causes = diagnostic.causes.slice(0, MAX_DIAGNOSTIC_CAUSES).map((cause) => {\n const causeSummary = boundedText(cause.summary, MAX_DIAGNOSTIC_CAUSE_BYTES);\n return Object.freeze({\n code: cause.code,\n summary: causeSummary.value,\n summaryTruncated: causeSummary.truncated,\n });\n });\n return Object.freeze({\n diagnosticId: diagnostic.diagnosticId,\n sequence: diagnostic.sequence,\n turnId: diagnostic.turnId,\n phase: diagnostic.phase,\n kind: diagnostic.kind,\n code: diagnostic.code,\n summary: summary.value,\n summaryTruncated: summary.truncated,\n causes: Object.freeze(causes),\n causesTruncated: causes.length < diagnostic.causes.length,\n omittedCauseCount: diagnostic.causes.length - causes.length,\n redaction: diagnostic.redaction,\n sourceFrame: diagnostic.sourceFrame === null\n ? null\n : diagnostic.sourceFrame.value,\n });\n });\n return Object.freeze({\n state: sourceState.state,\n limitations: Object.freeze(limitations),\n limitationsTruncated: limitations.length < sourceState.limitations.length,\n omittedLimitationCount: sourceState.limitations.length - limitations.length,\n items: Object.freeze(items),\n hasMore: items.length < diagnostics.value.segments.length,\n omittedDiagnosticCount: diagnostics.value.segments.length - items.length,\n });\n}\nfunction readRunnerDiagnostics(attachment?: TraceAttachmentInput) {\n return readCurrentAttachment(NiceEvalCurrentRecordAttachments.runnerDiagnostics.attempt, attachment);\n}\nfunction emptyView(state: ProjectionState): InspectionJson {\n return closeJson(Object.freeze({ ...state, items: Object.freeze([]), hasMore: false }));\n}\nfunction readVerifiedText(source: InspectionFactSource, metadata: PersistedContentMetadata): string {\n const bytes = new Uint8Array(metadata.byteLength);\n const digest = new InspectionSha256();\n let offset = 0;\n let afterOrdinal = -1;\n let expectedOrdinal = 0;\n let observedChunks = 0;\n while (true) {\n const page = source.readContentPage(metadata.contentId, afterOrdinal, CONTENT_PAGE_SIZE);\n if (page.contentId !== metadata.contentId ||\n page.afterOrdinal !== afterOrdinal ||\n page.chunks.length === 0 && page.nextOrdinal !== null)\n throw new Error(\"Content page is invalid\");\n for (const chunk of page.chunks) {\n if (chunk.ordinal !== expectedOrdinal || offset + chunk.bytes.byteLength > bytes.byteLength) {\n throw new Error(\"Content chunk sequence is invalid\");\n }\n bytes.set(chunk.bytes, offset);\n digest.update(chunk.bytes);\n offset += chunk.bytes.byteLength;\n expectedOrdinal += 1;\n observedChunks += 1;\n }\n if (page.nextOrdinal === null)\n break;\n if (page.nextOrdinal !== expectedOrdinal - 1 || observedChunks > metadata.chunkCount) {\n throw new Error(\"Content continuation is invalid\");\n }\n afterOrdinal = page.nextOrdinal;\n }\n if (offset !== metadata.byteLength ||\n observedChunks !== metadata.chunkCount ||\n digest.digestHex() !== metadata.digest)\n throw new Error(\"Content does not match its sealed metadata\");\n return new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes);\n}\nfunction boundedText(value: string, maximumBytes: number): {\n readonly value: string;\n readonly truncated: boolean;\n} {\n if (utf8ByteLength(value) <= maximumBytes) {\n return Object.freeze({ value, truncated: false });\n }\n let output = \"\";\n let bytes = 0;\n for (const character of value) {\n const characterBytes = utf8ByteLength(character);\n if (bytes + characterBytes > maximumBytes)\n break;\n output += character;\n bytes += characterBytes;\n }\n return Object.freeze({ value: output, truncated: true });\n}\nfunction exactMarker(value: unknown, key: string): unknown | undefined {\n if (typeof value !== \"object\" || value === null || Array.isArray(value))\n return undefined;\n const keys = Reflect.ownKeys(value);\n if (keys.length !== 1 || keys[0] !== key)\n return undefined;\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n return descriptor !== undefined && descriptor.enumerable && \"value\" in descriptor\n ? descriptor.value\n : undefined;\n}\nfunction hasOwnMarker(value: unknown, key: string): boolean {\n return typeof value === \"object\" && value !== null && !Array.isArray(value) &&\n Object.prototype.hasOwnProperty.call(value, key);\n}\nfunction closeJson(value: unknown): InspectionJson {\n const closed = closeInspectionJson(value);\n if (isInspectionCodecError(closed))\n throw closed;\n return closed as InspectionJson;\n}\nfunction jsonByteLength(value: unknown): number {\n return utf8ByteLength(JSON.stringify(value));\n}\n"]}
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["trace.ts"],"names":[],"mappings":";;AAmGA,kDAmGC;AA0QD,8DAsBC;AA+iBD,4DAEC;AAgLD,kDAUC;AA8ED,8DAaC;AA4DD,4EAgBC;AACD,oEAgGC;AA2KD,oDAEC;AAtoDD,gBAAgB;AAChB,wDAAwD;AACxD,qDAAqD;AACrD,iDAAuD;AACvD,qFAA+I;AAC/I,iFAA8F;AAG9F,mCAAwC;AACxC,gEAAqG;AACrG,kEAA+O;AAC/O,qDAAkE;AAClE,wEAAwS;AACxS,4DAA+E;AAE/E,2EAAyF;AAKzF,yCAA8F;AAC9F,yCAA8D;AAC9D,2CAA2D;AAC3D,+DAA+K;AAG/K,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAChC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AACzC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AACpC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAC3C,MAAM,4BAA4B,GAAG,GAAG,CAAC;AACzC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAsDvC,gBAAgB;AAChB,wDAAwD;AACxD,qDAAqD;AACrD,SAAgB,mBAAmB,CAAC,MAA4B,EAAE,WAAoC,EAAE,SAA6C,EAAE,mBAMnJ,EAAE;IACF,MAAM,UAAU,GAAG,qBAAqB,CAAC,6CAAgC,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAC9G,MAAM,YAAY,GAAG,qBAAqB,CAAC,6CAAgC,CAAC,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACpH,MAAM,eAAe,GAAG,qBAAqB,CAAC,6CAAgC,CAAC,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC;IAC7H,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC/E,MAAM,sBAAsB,GAAG,YAAY,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAC9E,MAAM,iBAAiB,GAAG,YAAY,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,YAAY,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACzE,MAAM,+BAA+B,GAAG,oCAAoC,CAAC,UAAU,CAAC,CAAC;IACzF,MAAM,kBAAkB,GAAyD,iBAAiB,CAAC,KAAK,KAAK,UAAU;QACnH,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACnB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACvB,MAAM,EAAE,eAAwB;gBAChC,KAAK,EAAE,iBAAiB,CAAC,KAAK;gBAC9B,WAAW,EAAE,iBAAiB,CAAC,WAAW;aAC7C,CAAC,CAAC,CAAC,CAAC;IACb,MAAM,0BAA0B,GAAG;QAC/B,GAAG,sBAAsB,CAAC,WAAW;QACrC,GAAG,+BAA+B;QAClC,GAAG,kBAAkB;KACxB,CAAC;IACF,MAAM,uBAAuB,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAC5F,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAC1F,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,KAAK,WAAW;QAClD,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC;QAC5D,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,KAAK,WAAW;QAC/C,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC,CAAC;QAC3F,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;QAClC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;YACxC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC;YACjD,OAAO,EAAE,uBAAuB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9D,CAAC,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;QAClC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,4BAA4B,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aACvG,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC;QACrC,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,KAAK,WAAW;QACtD,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;YACnF,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,IAAA,oCAAqB,EAAC,OAAO,CAAC,KAAK,CAAC;YAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;SAC3B,CAAC,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,aAAa,GAAG,8BAA8B,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAClF,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,KAAK,WAAW;QACnD,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC,CAAC;IACR,MAAM,iBAAiB,GAAG,eAAe,CAAC,KAAK,KAAK,WAAW;QAC3D,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;QACvC,CAAC,CAAC,CAAC,CAAC;IACR,MAAM,mBAAmB,GAAG,SAAS,CAAC,KAAK,KAAK,cAAc;QAC1D,CAAC,CAAC,4BAA4B,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,CAAC;QAC1H,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,MAAM,GAA0B,MAAM,CAAC,MAAM,CAAC;QAChD,SAAS,EAAE,mBAAmB;QAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;YACxB,KAAK,EAAE,sBAAsB,CAAC,KAAK,KAAK,UAAU,IAAI,0BAA0B,CAAC,MAAM,GAAG,CAAC;gBACvF,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,sBAAsB,CAAC,KAAK;YAClC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC;YACnD,oBAAoB,EAAE,uBAAuB,CAAC,MAAM,GAAG,0BAA0B,CAAC,MAAM;YACxF,sBAAsB,EAAE,0BAA0B,CAAC,MAAM,GAAG,uBAAuB,CAAC,MAAM;YAC1F,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3B,cAAc,EAAE,KAAK,CAAC,MAAM,GAAG,cAAc;YAC7C,gBAAgB,EAAE,cAAc,GAAG,KAAK,CAAC,MAAM;YAC/C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3B,cAAc,EAAE,KAAK,CAAC,MAAM,GAAG,cAAc;YAC7C,gBAAgB,EAAE,cAAc,GAAG,KAAK,CAAC,MAAM;SAClD,CAAC;QACF,aAAa;QACb,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,iBAAiB,CAAC,KAAK;YAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;YAC9C,oBAAoB,EAAE,kBAAkB,CAAC,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,MAAM;YACtF,sBAAsB,EAAE,iBAAiB,CAAC,WAAW,CAAC,MAAM,GAAG,kBAAkB,CAAC,MAAM;YACxF,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;YAClC,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,iBAAiB;YAChD,mBAAmB,EAAE,iBAAiB,GAAG,YAAY,CAAC,MAAM;SAC/D,CAAC;QACF,WAAW,EAAE,kBAAkB,CAAC,iBAAiB,CAAC;KACrD,CAAC,CAAC;IACH,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,wCAA4B,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AACD;;;;GAIG;AACH,SAAS,4BAA4B,CAAC,MAA4B,EAAE,UAA4C,EAAE,UAAoC,EAAE,KAA0D,EAAE,OAEnN;IACG,MAAM,OAAO,GAA0B,MAAM,CAAC,MAAM,CAAC;QACjD,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACtE,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzE,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACtE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;KAC/E,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC;QACtC,MAAM;QACN,aAAa,EAAE,UAAU,KAAK,SAAS;YACnC,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,IAAI,SAAS,EAAE;QAC5F,YAAY,EAAE,2DAAqC,CAAC,UAAU;QAC9D,cAAc,EAAE,6CAAgC,CAAC,UAAU,CAAC,QAAQ;QACpE,OAAO;KACV,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,KAAK,SAAS;QAClD,CAAC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,IAAA,sDAAgC,EAAC,OAAO,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAClF,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;gBACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC;gBACnD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC;gBACnD,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC;aAC5D,CAAC;YACF,OAAO,EAAE,KAAK;YACd,iBAAiB,EAAE,CAAC;SACvB,CAAC,CAAC;IACP,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC;IAC9B,MAAM,QAAQ,GAAG,sBAAsB,CAAC;IACxC,MAAM,WAAW,GAAG,KAAK,KAAK,UAAU;QACpC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACnB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,qBAA8B;gBACpC,KAAK;gBACL,OAAO,EAAE,KAAK,KAAK,SAAS;oBACxB,CAAC,CAAC,oCAAoC;oBACtC,CAAC,CAAC,oCAAoC;aAC7C,CAAC,CAAC,CAAC,CAAC;IACb,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK;YACL,WAAW;YACX,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;gBACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC;gBACnD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC;gBACnD,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC;aAC5D,CAAC;YACF,OAAO,EAAE,KAAK;YACd,iBAAiB,EAAE,CAAC;SACvB,CAAC,CAAC;IACP,CAAC;IACD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC;IACnF,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;IACvF,MAAM,QAAQ,GAGT,EAAE,CAAC;IACR,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,aAAa,CAAC;gBAC9B,aAAa,IAAI,CAAC,CAAC;gBACnB,iBAAiB,IAAI,CAAC,CAAC;gBACvB,IAAI,eAAe,CAAC,MAAM,GAAG,GAAG;oBAC5B,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,CAAC,aAAa,IAAI,CAAC,cAAc;oBACjC,SAAS;gBACb,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;gBACxE,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,OAAO,CAAC,OAAO;oBAC5D,SAAS;gBACb,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,SAAS;oBAChF,SAAS;gBACb,aAAa,IAAI,CAAC,CAAC;gBACnB,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;oBACzB,YAAY,IAAI,CAAC,CAAC;oBAClB,SAAS;gBACb,CAAC;gBACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,sCAA0B,CAAC,oBAAoB,EAAE,CAAC;oBACjF,QAAQ,GAAG,IAAI,CAAC;oBAChB,SAAS;gBACb,CAAC;gBACD,MAAM,IAAI,GAAG,4BAA4B,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;oBACxB,OAAO;oBACP,OAAO,EAAE,IAAI,CAAC,MAAM;oBACpB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAqB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC3E,OAAO;oBACP,IAAI,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE;oBAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpD,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK;oBACvD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC3B,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAiB,EAAE,CAAC;iBACvD,CAAC,CAAC;gBACH,IAAI,IAAA,yBAAc,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;oBACrF,sCAA0B,CAAC,mBAAmB,EAAE,CAAC;oBACjD,QAAQ,GAAG,IAAI,CAAC;oBAChB,SAAS;gBACb,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YACpE,CAAC;QACL,CAAC;IACL,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACpF,MAAM,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC;IACnD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,KAAK;QACL,WAAW;QACX,MAAM,EAAE,aAAa;YACjB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACvB,IAAI,EAAE,cAAuB;oBAC7B,OAAO;oBACP,aAAa,EAAE,QAAQ;oBACvB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;oBACvC,UAAU,EAAE,KAAK,KAAK,UAAU;wBAC5B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAmB,EAAE,WAAW,EAAE,EAAW,EAAE,CAAC;wBACzE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;4BACZ,KAAK,EAAE,SAAkB;4BACzB,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAU;yBACzG,CAAC;oBACN,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzB,UAAU,EAAE,iBAAiB;iBAChC,CAAC,CAAC,CAAC;YACR,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;YACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;YAClC,mBAAmB,EAAE,CAAC;YACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;YACxC,mBAAmB,EAAE,iBAAiB,GAAG,eAAe,CAAC,MAAM;YAC/D,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,sBAAsB,EAAE,CAAC;SAC5B,CAAC;QACF,OAAO,EAAE,iBAAiB,GAAG,CAAC;QAC9B,iBAAiB;QACjB,GAAG,CAAC,iBAAiB,GAAG,CAAC,IAAI,WAAW,KAAK,SAAS;YAClD,CAAC,CAAC,EAAE,YAAY,EAAE,IAAA,sDAAgC,EAAC,mBAAmB,EAAE,WAAW,CAAC,EAAE;YACtF,CAAC,CAAC,EAAE,CAAC;KACZ,CAAC,CAAC;AACP,CAAC;AACD,SAAS,gBAAgB,CAAC,IAA4D;IAClF,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;AAC7D,CAAC;AACD,SAAS,gBAAgB,CAAC,IAA4D;IAClF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,SAAS,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC;QACjC,KAAK,WAAW,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACvD,KAAK,aAAa,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7D,KAAK,kBAAkB,CAAC;QACxB,KAAK,YAAY,CAAC;QAClB,KAAK,mBAAmB,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC;QAC9C,KAAK,UAAU,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACzD,KAAK,eAAe,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvG,KAAK,YAAY,CAAC;QAClB,KAAK,oBAAoB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACtE,CAAC;AACL,CAAC;AAOD,SAAS,wBAAwB,CAAC,QAIE;IAChC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,QAAQ,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAsB,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;SACtF,CAAC,CAAC;IACP,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC9B,CAAuE,CAAC;AAC7E,CAAC;AACD,SAAS,uBAAuB,CAAC,OAAiD;IAC9E,IAAI,OAAO,KAAK,SAAS;QACrB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAuB,EAAE,CAAC,CAAC;IAC7D,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;YAC3B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;YAC7B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;SACnC,CAAC,CAAC;IACP,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK;KAC1B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,oCAAoC,CAAC,UAA6C;IACvF,IAAI,UAAU,CAAC,KAAK,KAAK,WAAW;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,WAAW,GAAsC,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;IAC9E,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YACxC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC3B,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,cAAc;gBACvB,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;aAC/B,CAAC,CAAC,CAAC;YACJ,SAAS;QACb,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACzD,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU;gBAC9B,SAAS;YACb,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC3B,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO;gBACP,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,KAAK;aACxE,CAAC,CAAC,CAAC;QACR,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACtC,CAAC;AACD;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,MAA4B,EAAE,WAAoC,EAAE,QAAoC;IAC9I,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAClE,IAAI,MAA+C,CAAC;IACpD,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM;YACP,MAAM,GAAG,sBAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM;QACV,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACrB,MAAM,GAAG,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAC5E,MAAM;QACV,CAAC;QACD,KAAK,SAAS;YACV,MAAM,GAAG,yBAAyB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YACzE,MAAM;IACd,CAAC;IACD,IAAI,MAAM,KAAK,SAAS;QACpB,OAAO,SAAS,CAAC;IACrB,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,wCAA4B,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,SAAS,yBAAyB,CAAC,UAA6C,EAAE,QAAgD;IAC9H,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,IAAI,UAAU,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;oBAC1B,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACjD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;oBACnE,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBAC5D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,KAAK,WAAW;QAC7C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;QAC7D,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/B,iBAAiB,EAAE,UAAU,CAAC,KAAK,KAAK,WAAW,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ;YACtF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,KAAK,EAAE,aAAsB;gBAC7B,MAAM,EAAE,6CAAsD;gBAC9D,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;aACzB,CAAC;YACF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,KAAK,EAAE,UAAU,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,WAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;gBACjF,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC;aAC7C,CAAC;QACN,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;KACxC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,8BAA8B,CAAC,UAA6C,EAAE,QAAgD;IACnI,MAAM,oBAAoB,GAAG,GAAG,CAAC;IACjC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,IAAI,UAAU,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;oBAC1B,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACjD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;oBACnE,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBAC5D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IACD,MAAM,oBAAoB,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,KAAK,WAAW;QAChD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;QAC3D,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAC9D,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,oBAAoB,CAAC;QACtE,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC;YAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;YACvE,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC,MAAM,GAAG,oBAAoB,CAAC;SAClF,CAAC;QACF,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACvE,qBAAqB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,oBAAoB,CAAC;KAClF,CAAC,CAAC;AACP,CAAC;AACD,SAAS,4BAA4B,CAAC,IAIN,EAAE,MAAc;IAC5C,MAAM,QAAQ,GAAG,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClF,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACvD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,SAAS,CAAC,CAAC,CAAC;YACb,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;YACjE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACzH,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC;YAC1E,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,SAAS,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACxK,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACjB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC;YAC5E,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjP,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC;YAC1E,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7H,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACjB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC;YAC5E,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACvI,CAAC;QACD,KAAK,kBAAkB,CAAC;QACxB,KAAK,YAAY,CAAC;QAClB,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;YACvE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACpH,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;YACvE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1J,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,KAAK,IAAI;gBAC1C,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC;YACrE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,IAAI,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC;QACvN,CAAC;QACD,KAAK,YAAY,CAAC;QAClB,KAAK,oBAAoB,CAAC,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;YACvE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACrI,CAAC;IACL,CAAC;AACL,CAAC;AACD,SAAS,sBAAsB,CAAC,UAA6C,EAAE,MAAc;IAGzF,IAAI,UAAU,CAAC,KAAK,KAAK,WAAW;QAChC,OAAO,SAAS,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACzE,IAAI,IAAI,KAAK,SAAS;YAClB,SAAS;QACb,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM;YACZ,MAAM;YACN,IAAI,EAAE,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC;SAChD,CAAC,CAAC;IACP,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AACD,SAAS,2BAA2B,CAAC,UAA6C,EAAE,gBAAwB;IAGxG,IAAI,UAAU,CAAC,KAAK,KAAK,WAAW,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ;QACvE,OAAO,SAAS,CAAC;IACrB,IAAI,IAA2C,CAAC;IAChD,IAAI,MAA6C,CAAC;IAClD,IAAI,QAIS,CAAC;IACd,IAAI,UAA2B,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,gBAAgB,EAAE,CAAC;gBAC3E,IAAI,GAAG,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/C,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO;gBAChE,IAAI,CAAC,UAAU,CAAC,gBAAgB,KAAK,gBAAgB,EAAE,CAAC;gBACxD,MAAM,GAAG,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjD,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;QACL,CAAC;IACL,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAC1C,OAAO,SAAS,CAAC;IACrB,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,iBAAiB;QACvB,gBAAgB;QAChB,IAAI,EAAE,IAAI,IAAI,IAAI;QAClB,MAAM,EAAE,MAAM,IAAI,IAAI;QACtB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,MAAM,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC;KAC9E,CAAC,CAAC;AACP,CAAC;AACD,SAAS,yBAAyB,CAAC,MAA4B,EAAE,QAAgD,EAAE,SAAiB;IAGhI,IAAI,QAAQ,CAAC,KAAK,KAAK,WAAW;QAC9B,OAAO,SAAS,CAAC;IACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAC/F,IAAI,OAAO,KAAK,SAAS;QACrB,OAAO,SAAS,CAAC;IACrB,MAAM,MAAM,GAAG,CAAC,KAA4B,EAAE,EAAE;QAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,aAAa,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5G,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC;YACxC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAwB,CAAC,CAAC,CAAC,WAAoB;gBACzG,oBAAoB,EAAE,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,aAAa;aACvE,CAAC;SACL,CAAC,CAAC;IACP,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,SAAS;QACf,SAAS;QACT,UAAU,EAAE,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC;QACrD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,IAAA,oCAAqB,EAAC,OAAO,CAAC,KAAK,CAAC;QAC3C,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;KACjC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,iBAAiB,CAAC,IAI1B;IACG,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAClG,CAAC;AACD,SAAS,qBAAqB,CAAC,UAK9B;IAGG,OAAO,UAAU,CAAC,IAAI,KAAK,OAAO;QAC9B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,OAAQ,EAAE,CAAC;QACxE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACZ,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,UAAU,EAAE,UAAU,CAAC,UAAW;YAClC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;SAC9D,CAAC,CAAC;AACX,CAAC;AACD,SAAS,2BAA2B,CAAC,IAIL,EAAE,IAKjC;IAGG,MAAM,IAAI,GAAG;QACT,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,YAAY,EAAE,IAAI,CAAC,QAAQ;QAC3B,WAAW,EAAE,IAAI,CAAC,OAAO;QACzB,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;KACzE,CAAC;IACF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,YAAY,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC;YACpC,GAAG,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe;YACjF,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY;SACrF,CAAC,CAAC;QACH,KAAK,aAAa,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC;YACrC,GAAG,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe;YACnF,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpG,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa;SACpD,CAAC,CAAC;QACH,KAAK,WAAW,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC;YACnC,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY;SAC/F,CAAC,CAAC;QACH,KAAK,aAAa,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC;YACrC,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa;SACvG,CAAC,CAAC;QACH,KAAK,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACrG,KAAK,kBAAkB,CAAC;QACxB,KAAK,YAAY,CAAC;QAClB,KAAK,mBAAmB,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACpG,KAAK,UAAU,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACjI,KAAK,eAAe,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACxJ,KAAK,YAAY,CAAC;QAClB,KAAK,oBAAoB,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1H,CAAC;AACL,CAAC;AACD,SAAS,qBAAqB,CAAsH,WAGlJ,EAAE,UAA4C;IAC5C,IAAI,UAAU,KAAK,SAAS;QACxB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAuB,EAAE,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,KAAK,WAAW,CAAC,UAAU,CAAC,KAAK;QAC9D,UAAU,CAAC,QAAQ,CAAC,MAAM,KAAK,WAAW,CAAC,UAAU,CAAC,MAAM;QAC5D,OAAO,WAAW,CAAC,oCAAoC,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,GAAG,WAAW,CAAC,QAAQ;QACzD,OAAO,WAAW,CAAC,2BAA2B,CAAC,CAAC;IACpD,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,KAAK,WAAW,CAAC,QAAQ;QAC3D,OAAO,WAAW,CAAC,6BAA6B,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAU,CAAC,CAAC,CAAC;IAC1H,MAAM,eAAe,GAAG,IAAI,OAAO,EAAoC,CAAC;IACxE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAA,4CAA8B,EAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE;QACtF,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAC5B,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;YACrE,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,0BAA0B,CAAC,EAAE,CAAC;gBAClF,OAAO,eAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpG,IAAI,QAAQ,KAAK,SAAS;gBACtB,kBAAkB,CAAC,GAAG,CAAC,aAAuB,CAAC;gBAC/C,WAAW,CAAC,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC,YAAY;gBACxF,OAAO,eAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,6BAAsC,EAAE,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,IAAA,oCAAuB,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzD,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACtC,kBAAkB,CAAC,GAAG,CAAC,aAAuB,CAAC,CAAC;YAChD,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;YAChE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,4BAA4B,CAAC,EAAE,CAAC;gBAC7E,OAAO,eAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzE,OAAO,eAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,+BAAwC,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM,KAAK,GAAG,MAA2C,CAAC;YAC1D,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;gBACnC,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,UAAU,CAAC,KAAK;gBAC5C,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,UAAU,CAAC,MAAM;gBAC9C,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,eAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,+BAAwC,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO,eAAM,CAAC,OAAO,CAAC,IAAA,2CAA6B,EAAC,uCAAyB,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACrJ,CAAC;KACJ,CAAC,CAAC;IACH,IAAI,eAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAChG,OAAO,WAAW,CAAC,2BAA2B,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,8CAAgC,EAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3F,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;QACzB,OAAO,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACjD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAG7B,CAAC;IACL,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,IAAA,2CAA6B,EAAC,SAAS,CAAC,CAAC;QACtD,IAAI,IAAI,KAAK,SAAS;YAClB,OAAO,WAAW,CAAC,0BAA0B,CAAC,CAAC;QACnD,iBAAiB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1H,CAAC;IACD,MAAM,iBAAiB,GAAG,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;QACtG,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,iBAAiB,CAAC,MAAM,KAAK,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACrE,OAAO,WAAW,CAAC,0BAA0B,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAE,CAAC;QAC1D,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO;YAC5B,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;YAChC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;YAClC,OAAO,WAAW,CAAC,0BAA0B,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAoB,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;AACpG,CAAC;AACD,SAAS,WAAW,CAAQ,KAAa;IACrC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC;AACD,qGAAqG;AACrG,SAAS,0BAA0B,CAAC,UAA4C,EAAE,MAAsC;IACpH,IAAI,UAAU,EAAE,QAAQ,CAAC,cAAc,KAAK,CAAC,IAAI,UAAU,EAAE,QAAQ,CAAC,cAAc,KAAK,CAAC;QACtF,UAAU,EAAE,QAAQ,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,qBAAqB,CAAC,6CAAgC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC9F,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI;YACrF,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,WAAW,CAAC,2BAA2B,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,KAAK,6CAAgC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK;QAChG,UAAU,CAAC,QAAQ,CAAC,MAAM,KAAK,6CAAgC,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM;QAC9F,OAAO,WAAW,CAAC,oCAAoC,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3F,OAAO,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,SAAyC,CAAC;IAC9C,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,eAAM,CAAC,mBAAmB,CAAC,iDAAqC,EAAE,iCAAuB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC7H,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YACzB,OAAO,WAAW,CAAC,2BAA2B,CAAC,CAAC;QACpD,SAAS,GAAG,IAAA,wCAA4B,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;SACI,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,eAAM,CAAC,mBAAmB,CAAC,iDAAqC,EAAE,iCAAuB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC7H,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YACzB,OAAO,WAAW,CAAC,2BAA2B,CAAC,CAAC;QACpD,SAAS,GAAG,IAAA,wCAA4B,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;SACI,CAAC;QACF,MAAM,OAAO,GAAG,eAAM,CAAC,mBAAmB,CAAC,wCAA4B,EAAE,iCAAuB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACpH,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC;YACzB,OAAO,WAAW,CAAC,2BAA2B,CAAC,CAAC;QACpD,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;QAC5B,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI;YACtD,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,WAAW,CAAC,2BAA2B,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IACD,IAAI,IAAA,0CAA8B,EAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,WAAW,CAAC,2BAA2B,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,WAAoB;QAC3B,KAAK,EAAE,SAAS;QAChB,eAAe,EAAE,IAAI,OAAO,EAAoC;KACnE,CAAC,CAAC;AACP,CAAC;AACD,SAAS,gBAAgB,CAAC,IAAqC;IAC3D,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,cAAc,CAAC,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5E,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5F,KAAK,WAAW,CAAC,CAAC,CAAC;YACf,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC1E,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK;gBAClC,WAAW,EAAE,WAAW,CAAC,KAAK;gBAC9B,oBAAoB,EAAE,WAAW,CAAC,OAAO;gBACzC,sBAAsB,EAAE,WAAW,CAAC,YAAY;aACnD,CAAC,CAAC,CAAC;QACR,CAAC;IACL,CAAC;AACL,CAAC;AACD,SAAS,kBAAkB,CAAC,WAA+C;IACvE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACtG,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;QAC1C,YAAY,EAAE,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;KAClD,CAAC,CAAC;AACP,CAAC;AACD,SAAS,YAAY,CAAgC,IAA2B,EAAE,OAAuD;IACrI,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,cAAc,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjG,KAAK,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SACnF,CAAC,CAAC;QACH,KAAK,WAAW,CAAC,CAAC,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/F,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,KAAK,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAmB,CAAC,CAAC,CAAC,SAAkB;gBACvE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;aACvC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;AACL,CAAC;AACD,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAoC;IACpE,MAAM;IACN,WAAW;IACX,YAAY;CACf,CAAC,CAAC;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAoC;IAC/D,cAAc;IACd,YAAY;CACf,CAAC,CAAC;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAoC;IAC7D,mBAAmB;IACnB,YAAY;CACf,CAAC,CAAC;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAoC;IAC/D,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,YAAY;IACZ,cAAc;CACjB,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAoC;IAC9D,UAAU;IACV,YAAY;CACf,CAAC,CAAC;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAoC;IAClE,YAAY;IACZ,kBAAkB;IAClB,YAAY;CACf,CAAC,CAAC;AACH,SAAS,mBAAmB,CAAC,UAA6C,EAAE,YAAiD;IAGzH,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAC/D,IAAI,UAAU,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC7C,GAAG,OAAO;gBACV,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,cAAc,EAAE,KAAK;gBACrB,gBAAgB,EAAE,CAAC;gBACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,cAAc,EAAE,KAAK;gBACrB,gBAAgB,EAAE,CAAC;aACtB,CAAC,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;IACD,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,KAAK,WAAW;QAC/C,CAAC,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC,CAAC;QAC3F,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,WAAW,GAAqB,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/D,IAAI,YAAY,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACpC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YACrC,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,WAAW,EAAE,YAAY,CAAC,WAAW;SACxC,CAAC,CAAC,CAAC,CAAC;IACT,CAAC;IACD,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACtC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YACrC,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,6CAA6C;SACxD,CAAC,CAAC,CAAC,CAAC;IACT,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YACjF,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,UAAU;SAChB,CAAC,CAAC,CAAC,CAAC,CAAC;QACN,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;gBACpB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;gBAC1B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC7G,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC9B,CAAC;YACF,OAAO,EAAE,OAAO,KAAK,SAAS;gBAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAuB,EAAE,CAAC;gBACnD,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC;SACpC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,cAAc,IAAI,CAAC,CAAC;YACpB,IAAI,KAAK,CAAC,MAAM,IAAI,sBAAsB;gBACtC,SAAS;YACb,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7G,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,UAAU,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YACxF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;YACxE,oBAAoB,EAAE,WAAW,CAAC,MAAM,GAAG,sBAAsB;YACjE,sBAAsB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,sBAAsB,CAAC;YAChF,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3B,cAAc,EAAE,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;YAC/D,gBAAgB,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;YACjE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3B,cAAc,EAAE,KAAK,CAAC,MAAM,GAAG,cAAc;YAC7C,gBAAgB,EAAE,cAAc,GAAG,KAAK,CAAC,MAAM;SAClD,CAAC,CAAC;KACN,CAAC,CAAC;AACP,CAAC;AACD,SAAgB,wBAAwB,CAAC,UAAiC;IACtE,OAAO,qBAAqB,CAAC,6CAAgC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAC1F,CAAC;AACD,SAAS,cAAc,CAAC,UAAiC;IACrD,OAAO,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAChD,CAAC;AACD,SAAS,gBAAgB,CAAC,UAAiC;IACvD,OAAO,qBAAqB,CAAC,6CAAgC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAC5F,CAAC;AACD,SAAS,oBAAoB,CAAC,QAIM;IAChC,IAAI,QAAQ,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAsB,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;YACnF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBAClC,OAAO,EAAE,cAAc;oBACvB,KAAK,EAAE,aAAsB;oBAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;iBAC1B,CAAC,CAAC,CAAC;SACX,CAAC,CAAC;IACP,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;IAC3E,MAAM,WAAW,GAIX,EAAE,CAAC;IACT,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,KAAK,UAAU;YACvC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAmB,EAAE,CAAC;YAC/C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,KAAK;aACrE,CAAC,CAAC;QACP,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC9B,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC3B,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,KAAK;aACrE,CAAC,CAAC,CAAC;QACR,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACxG,CAAC;AACD,SAAS,kBAAkB,CAAC,OAED;IACvB,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC3B,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;YAC3B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;YAC7B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;SACnC,CAAC,CAAC,CAAC;IACR,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK;KAC1B,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,uBAAuB,CAAC,IAID,EAAE,MAAc,EAAE,SAA6B;IAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM;QACN,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;YACxD,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;YAC7B,CAAC,CAAC,SAAS,IAAI,IAAI;gBACf,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE;gBAC3D,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;KACzC,CAAC,CAAC;IACH,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC3C,GAAG,IAAI;YACP,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC,KAAK;YAC/D,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC,SAAS;SAC/E,CAAC,CAAC,CAAC;QACJ,KAAK,YAAY,CAAC,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9C,GAAG,IAAI;YACP,IAAI,EAAE,WAAoB;YAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,KAAK,EAAE,OAAgB;gBACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aAC1C,CAAC;YACF,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC,KAAK;YACxE,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC,SAAS;SACxF,CAAC,CAAC,CAAC;QACJ,KAAK,aAAa,CAAC,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC/C,GAAG,IAAI;YACP,IAAI,EAAE,aAAsB;YAC5B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO;gBACzC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACZ,KAAK,EAAE,OAAgB;oBACvB,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB;iBACrD,CAAC;gBACF,CAAC,CAAC,IAAI,CAAC,UAAU;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC,KAAK;YAC1E,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC,SAAS;SAC1F,CAAC,CAAC,CAAC;QACJ,KAAK,WAAW,CAAC,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7C,GAAG,IAAI;YACP,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,KAAK,EAAE,aAAsB;gBAC7B,MAAM,EAAE,6CAAsD;aACjE,CAAC;YACF,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC,KAAK;YACxE,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC,SAAS;SACxF,CAAC,CAAC,CAAC;QACJ,KAAK,aAAa,CAAC,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC/C,GAAG,IAAI;YACP,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,KAAK,EAAE,aAAsB;gBAC7B,MAAM,EAAE,6CAAsD;aACjE,CAAC;YACF,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC,KAAK;YAC1E,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC,SAAS;SAC1F,CAAC,CAAC,CAAC;QACJ,KAAK,kBAAkB,CAAC;QACxB,KAAK,YAAY,CAAC;QAClB,KAAK,mBAAmB,CAAC,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YACrD,GAAG,IAAI;YACP,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,KAAK;YACrE,gBAAgB,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,SAAS;SACrF,CAAC,CAAC,CAAC;QACJ,KAAK,UAAU,CAAC,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC5C,GAAG,IAAI;YACP,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,KAAK;YACrE,gBAAgB,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,SAAS;SACrF,CAAC,CAAC,CAAC;QACJ,KAAK,eAAe,CAAC,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,KAAK,IAAI;gBAC1C,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC;YACrE,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC3B,GAAG,IAAI;gBACP,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,MAAM,CAAC,KAAK;gBACpB,eAAe,EAAE,MAAM,CAAC,SAAS;gBACjC,QAAQ,EAAE,QAAQ,EAAE,KAAK,IAAI,IAAI;gBACjC,iBAAiB,EAAE,QAAQ,EAAE,SAAS,IAAI,KAAK;aAClD,CAAC,CAAC,CAAC;QACR,CAAC;QACD,KAAK,YAAY,CAAC;QAClB,KAAK,oBAAoB,CAAC,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YACtD,GAAG,IAAI;YACP,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,KAAK;YACrE,gBAAgB,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,SAAS;SACrF,CAAC,CAAC,CAAC;IACR,CAAC;AACL,CAAC;AACD,SAAgB,mBAAmB,CAAC,WAAoC,EAAE,SAAyC,WAAW,CAAC,MAAM;IACjI,MAAM,KAAK,GAAG,uBAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,qBAAqB,CAAC,6CAAgC,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACxG,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,IAAA,6CAAiB,EAAC,IAAI,CAAC,KAAK,CAAC;QACzE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,MAAM,EAAE,4BAAqC,EAAE,CAAC;YACpH,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAsB,EAAE,MAAM,EAAE,0BAAmC,EAAE,CAAC,CAAC;IACxG,MAAM,wBAAwB,GAAG,WAAW,CAAC,YAAY,KAAK,SAAS;QACnE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,KAAK,CAAC,CAAC;IAC7H,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU;QACvC,UAAU,EAAE,IAAA,kDAAsB,EAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,wBAAwB,EAAE,WAAW,CAAC,YAAY,KAAK,SAAS,IAAI,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACpM,CAAC;AACD,SAAS,uBAAuB,CAAC,WAAoC,EAAE,MAAsC;IACzG,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,0BAA0B,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,IAAA,sDAAwB,EAAC,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE;YAChG,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB;SACtG,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG;YACV,MAAM,EAAE,SAAkB;YAC1B,QAAQ,EAAE,gBAAyB;YACnC,oBAAoB,EAAE,KAAK;YAC3B,sBAAsB,EAAE,CAAC;YACzB,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;YACrD,YAAY,EAAE,EAAE;YAChB,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;YACrD,MAAM,EAAE;gBACJ,WAAW,EAAE,EAAE,KAAK,EAAE,aAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE;gBAChF,YAAY,EAAE,EAAE,KAAK,EAAE,aAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE;gBACjF,QAAQ,EAAE,EAAE,KAAK,EAAE,aAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE;gBAC7E,KAAK,EAAE,IAAA,iDAAmB,EAAC,EAAE,EAAE,SAAS,CAAC;aAC5C,EAAE,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;SAChD,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;YAC1B,OAAO;gBACH,GAAG,KAAK,EAAE,GAAG,UAAU;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;aAC1G,CAAC;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAA,iDAAmB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,CAAC,GAAwD,EAAE,EAAE;YACzE,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3E,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;gBAChD,OAAO,EAAE,KAAK,EAAE,aAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1F,OAAO;gBACH,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,WAAoB,CAAC,CAAC,CAAC,SAAkB;gBAC5H,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,MAAM;aAC7C,CAAC;QACN,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,UAAU;YACzE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI;gBACvE,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI;oBAC3B,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/G,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;QAChF,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QAC5F,MAAM,KAAK,GAAG,IAAA,iDAAmB,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO;YACH,GAAG,KAAK;YACR,GAAG,UAAU;YACb,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YACxC,WAAW,EAAE;gBACT,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,0HAA0H,EAAE,CAAC,CAAC;gBAC5J,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,YAAY,wDAAwD,EAAE,CAAC,CAAC;gBACnH,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,YAAY,kGAAkG,EAAE,CAAC,CAAC;aAChK;YACD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;YAC7G,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;YACvC,MAAM,EAAE;gBACJ,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,CAAC;gBACzF,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE;gBAC1I,KAAK;aACR;YACD,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG;SAC5B,CAAC;IACN,CAAC;IACD,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,GAAG,KAAK;QACR,GAAG,IAAA,sDAAwB,EAAC,IAAI,EAAE,MAAM,EAAE;YACtC,KAAK,EAAE,WAAW,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB;YAC9E,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,KAAK,SAAS;gBACtF,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,qCAAqC;SACrE,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,SAAgB,yBAAyB,CAAC,UAAgC,EAAE,MAA2B;IAInG,MAAM,IAAI,GAAG,0BAA0B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC5D,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAiB,CAAC,CAAC,CAAC,aAAsB;SAC/E,CAAC,CAAC;IACP,CAAC;IACD,MAAM,QAAQ,GAAG,IAAA,kDAAoB,EAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,WAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,SAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,4BAA4B,CAAC,CAAC,CAAC,QAAiB,CAAC,CAAC,CAAC,aAAsB,EAAE,CAAC,CAAC;AAChT,CAAC;AACD,SAAS,YAAY,CAAC,UAA6C;IAC/D,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC5D,IAAI,UAAU,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,GAAG,WAAW;YACd,oBAAoB,EAAE,KAAK;YAC3B,sBAAsB,EAAE,CAAC;YACzB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,MAAM,EAAE,gCAAgC,EAAE;YAC1C,OAAO,EAAE,KAAK;YACd,uBAAuB,EAAE,CAAC;SAC7B,CAAC,CAAC;IACP,CAAC;IACD,MAAM,WAAW,GAA0D;QACvE,GAAG,WAAW,CAAC,WAAW;KAC7B,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,aAAa;YAClD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAsB,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChF,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU;gBACxD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAmB,EAAE,CAAC;gBAC/C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACZ,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM;oBAClD,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,KAAK;iBACpG,CAAC,CAAC;QACX,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC3B,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,OAAO;gBAChB,GAAG,QAAQ;aACd,CAAC,CAAC,CAAC;QACR,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,MAAM,eAAe,GAA2D,EAAE,CAAC;IACnF,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3C,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;IACD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,WAAW,CAAC,KAAK,KAAK,UAAU,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC5F,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;QACxE,oBAAoB,EAAE,WAAW,CAAC,MAAM,GAAG,sBAAsB;QACjE,sBAAsB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,sBAAsB,CAAC;QAChF,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B,cAAc,EAAE,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;QAC/D,gBAAgB,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;QACjE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QACzC,MAAM,EAAE,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC;QACvD,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM;QACrD,uBAAuB,EAAE,eAAe,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;KACxE,CAAC,CAAC;AACP,CAAC;AACD,SAAgB,gCAAgC;IAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,KAAK,EAAE,aAAsB;QAC7B,KAAK,EAAE,IAAI;QACX,gBAAgB,EAAE,CAAC;KACtB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,WAAW;QACzB,QAAQ,EAAE,WAAW;QACrB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;YACzB,KAAK,EAAE,aAAsB;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,gBAAgB,EAAE,CAAC;SACtB,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,SAAgB,4BAA4B,CAAC,MAA+C,EAAE,UAAmB;IAC7G,MAAM,OAAO,GAAG,CAAC,GAAgD,EAAsD,EAAE;QACrH,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,OAAO,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC;gBAC/E,CAAC,CAAC,SAAkB;gBACpB,CAAC,CAAC,WAAoB;YAC1B,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,KAAM,EAAE,CAAC,CAAC;YAClE,gBAAgB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;SAC1F,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,EAGjB,CAAC;IACL,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1C,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;gBACpC,MAAM,EAAE,OAAO,KAAK,SAAS;oBACzB,CAAC,CAAC,KAAK,CAAC,KAAK;oBACb,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;gBACtD,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,gBAAgB;aACxD,CAAC,CAAC,CAAC;QACR,CAAC;IACL,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,GAAG,EAK1B,CAAC;IACL,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtG,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;gBAC7C,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;gBAC9F,YAAY,EAAE,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY;gBAC/D,aAAa,EAAE,CAAC,OAAO,EAAE,aAAa,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa;gBAClE,cAAc,EAAE,CAAC,OAAO,EAAE,cAAc,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc;aACxE,CAAC,CAAC,CAAC;QACR,CAAC;IACL,CAAC;IACD,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,SAAiB,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,OAAgB;QACvG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,UAAmB;YAChC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,WAAoB;gBAClC,CAAC,CAAC,IAAI,CAAC;IACnB,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAClF,MAAM,aAAa,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACxG,MAAM,cAAc,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC1G,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC;QACnC,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC;QACrC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;QAC7B,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC;gBAChF,CAAC,CAAC,gCAAgC,EAAE,CAAC,aAAa;gBAClD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACZ,KAAK,EAAE,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,KAAK,WAAW,CAAC;wBACzF,CAAC,CAAC,SAAkB;wBACpB,CAAC,CAAC,WAAoB;oBAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;yBACrC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;yBACpD,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;wBAC1C,QAAQ;wBACR,KAAK,EAAE,KAAK,CAAC,MAAM;wBACnB,gBAAgB,EAAE,KAAK,CAAC,KAAK;qBAChC,CAAC,CAAC,CAAC;oBACJ,gBAAgB,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;iBACzF,CAAC,EAAE,CAAC;QACb,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;gBACpD,KAAK,EAAE,cAAc,CAAC,IAAI,KAAK,CAAC;oBAC5B,CAAC,CAAC,aAAsB;oBACxB,CAAC,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC;wBACpE,CAAC,CAAC,SAAkB;wBACpB,CAAC,CAAC,UAAmB;gBAC7B,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC;gBAChD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;qBAC9C,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;qBACpD,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC1C,QAAQ;oBACR,KAAK,EAAE,KAAK,CAAC,MAAM;oBACnB,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,CAAE;oBAC7D,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,cAAc,EAAE,KAAK,CAAC,cAAc;iBACvC,CAAC,CAAC,CAAC;gBACJ,UAAU;aACb,CAAC,EAAE,CAAC;KACZ,CAAC,CAAC;AACP,CAAC;AACD,SAAS,WAAW,CAAC,YAA0D,EAAE,eAAsD;IACnI,MAAM,KAAK,GAAG,eAAe,KAAK,UAAU,CAAC,CAAC,CAAC,WAAoB,CAAC,CAAC,CAAC,SAAkB,CAAC;IACzF,MAAM,OAAO,GAAG,CAAC,MAAyB,EAAyD,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QACrH,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;QAC3E,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACZ,KAAK;YACL,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;YACxD,gBAAgB,EAAE,MAAM,CAAC,MAAM;SAClC,CAAC,CAAC;IACP,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,cAAc,IAAI,WAAW,CAAC,MAAM,KAAK,OAAO;QAC3H,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;QACtB,CAAC,CAAC,EAAE,CAAC,CAAC;IACV,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,cAAc,IAAI,WAAW,CAAC,MAAM,KAAK,QAAQ;QAC7H,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC;QACtB,CAAC,CAAC,EAAE,CAAC,CAAC;IACV,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACtF,MAAM,KAAK,GAAG,IAAI,GAAG,EAGjB,CAAC;IACL,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACrC,IAAI,WAAW,CAAC,IAAI,KAAK,eAAe;YACpC,SAAS;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAChD,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YAC1C,MAAM,EAAE,OAAO,KAAK,SAAS;gBACzB,CAAC,CAAC,WAAW,CAAC,MAAM;gBACpB,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;YAC7D,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC;SACnC,CAAC,CAAC,CAAC;IACR,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC;QACjC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC;QACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,aAAa,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC;YAC3B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,KAAK,EAAE,aAAsB;gBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,gBAAgB,EAAE,CAAC;aACtB,CAAC;YACF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,KAAK;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;qBACrC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;qBACpD,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC1C,QAAQ;oBACR,KAAK,EAAE,KAAK,CAAC,MAAM;oBACnB,gBAAgB,EAAE,KAAK,CAAC,KAAK;iBAChC,CAAC,CAAC,CAAC;gBACJ,gBAAgB,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;aACzF,CAAC;KACT,CAAC,CAAC;AACP,CAAC;AACD,SAAS,mBAAmB,CAAC,IAAY,EAAE,KAAa;IACpD,MAAM,KAAK,GAAG,CAAC,KAAa,EAG1B,EAAE;QACA,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,UAAU,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;QACrD,WAAW,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;IACpD,IAAI,KAAK,KAAK,CAAC;QACX,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1D,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC;AACtE,CAAC;AACD,SAAS,eAAe,CAAC,MAA4B,EAAE,QAAgD;IAInG,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC5D,IAAI,QAAQ,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAClG,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,IAAA,oCAAqB,EAAC,OAAO,CAAC,KAAK,CAAC;YAC3C,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC;YACjD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC;YAC9E,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC;SACjF,CAAC,CAAC,CAAC,CAAC;QACL,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC;YAClC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC1B,GAAG,WAAW;gBACd,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC3B,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;gBACtD,mBAAmB,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;aACrE,CAAC,CAAC;SACN,CAAC,CAAC;IACP,CAAC;IACD,MAAM,CAAC;QACH,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YACpC,KAAK,EAAE,SAAkB;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC;SACpD,CAAC,CAAC,CAAC;QACJ,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC1B,KAAK,EAAE,SAAkB;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC;gBACjD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,OAAO,EAAE,KAAK;aACjB,CAAC,CAAC;SACN,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AACD,SAAS,mBAAmB,CAAC,UAAiC;IAC1D,OAAO,qBAAqB,CAAC,6CAAgC,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;AAC/F,CAAC;AACD,SAAS,iBAAiB,CAAC,UAIW;IAClC,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;QACxE,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,gBAAgB,EAAE,OAAO,CAAC,SAAS;SACtC,CAAC,CAAC,CAAC;IACR,CAAC;IACD,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7I,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,UAAU,EAAE,UAAU,CAAC,KAAK;QAC5B,mBAAmB,EAAE,UAAU,CAAC,SAAS;QACzC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAC9B,kBAAkB,EAAE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM;YACzD,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC,SAAS,CAAC;QACxI,oBAAoB,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;KAClE,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,oBAAoB,CAAC,MAA4B,EAAE,eAA0D,EAAE,MAKvH;IACG,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,QAAQ,KAAK,SAAS;QACtB,QAAQ,CAAC,UAAU,KAAK,MAAM,CAAC,aAAa;QAC5C,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QACjC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;IACjE,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,KAAK,EAAE,WAAoB;QAC3B,IAAI,EAAE,OAAO,CAAC,KAAK;QACnB,aAAa,EAAE,OAAO,CAAC,SAAS;QAChC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;QAC7C,MAAM,EAAE,MAAM,CAAC,MAAM;KACxB,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAgB,oBAAoB,CAAC,WAAoC;IACrE,OAAO,aAAa,CAAC,oBAAoB,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC7E,CAAC;AACD,SAAS,aAAa,CAAC,UAAmD;IACtE,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAC7E,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;YACvC,oBAAoB,EAAE,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM;YACzE,sBAAsB,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;YAC3E,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,KAAK;YACd,oBAAoB,EAAE,CAAC;SAC1B,CAAC,CAAC;IACP,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7F,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,KAAK,EAAE,IAAA,oCAAqB,EAAC,QAAQ,CAAC,KAAK,CAAC;QAC5C,KAAK,EAAE,IAAA,oCAAqB,EAAC,QAAQ,CAAC,KAAK,CAAC;QAC5C,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC5B,CAAC,CAAC,CAAC;IACJ,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAC7E,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;QACvC,oBAAoB,EAAE,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM;QACzE,sBAAsB,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;QAC3E,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAChC,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;QACxD,oBAAoB,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;KACxE,CAAC,CAAC;AACP,CAAC;AACD,SAAS,oBAAoB,CAAC,UAAiC;IAC3D,OAAO,qBAAqB,CAAC,6CAAgC,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACxG,CAAC;AACD,SAAS,kBAAkB,CAAC,WAAqD;IAC7E,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAC7E,IAAI,WAAW,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;YACvC,oBAAoB,EAAE,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM;YACzE,sBAAsB,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;YAC3E,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,KAAK;YACd,sBAAsB,EAAE,CAAC;SAC5B,CAAC,CAAC;IACP,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAClF,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3E,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;YAC5E,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,YAAY,CAAC,KAAK;gBAC3B,gBAAgB,EAAE,YAAY,CAAC,SAAS;aAC3C,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,KAAK,EAAE,IAAA,oCAAqB,EAAC,UAAU,CAAC,KAAK,CAAC;YAC9C,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,gBAAgB,EAAE,OAAO,CAAC,SAAS;YACnC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM;YACzD,iBAAiB,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;YAC3D,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW,KAAK,IAAI;gBACxC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK;SACrC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;QACvC,oBAAoB,EAAE,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM;QACzE,sBAAsB,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;QAC3E,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;QACzD,sBAAsB,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;KAC3E,CAAC,CAAC;AACP,CAAC;AACD,SAAS,qBAAqB,CAAC,UAAiC;IAC5D,OAAO,qBAAqB,CAAC,6CAAgC,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACzG,CAAC;AACD,SAAS,SAAS,CAAC,KAAsB;IACrC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5F,CAAC;AACD,SAAS,gBAAgB,CAAC,MAA4B,EAAE,QAAkC;IACtF,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,2BAAgB,EAAE,CAAC;IACtC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IACtB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;QACzF,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;YACrC,IAAI,CAAC,YAAY,KAAK,YAAY;YAClC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;YACrD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,OAAO,KAAK,eAAe,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC1F,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACzD,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;YACjC,eAAe,IAAI,CAAC,CAAC;YACrB,cAAc,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;YACzB,MAAM;QACV,IAAI,IAAI,CAAC,WAAW,KAAK,eAAe,GAAG,CAAC,IAAI,cAAc,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;YACnF,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QACD,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;IACpC,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,CAAC,UAAU;QAC9B,cAAc,KAAK,QAAQ,CAAC,UAAU;QACtC,MAAM,CAAC,SAAS,EAAE,KAAK,QAAQ,CAAC,MAAM;QACtC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAClE,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AACD,SAAS,WAAW,CAAC,KAAa,EAAE,YAAoB;IAIpD,IAAI,IAAA,yBAAc,EAAC,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,cAAc,GAAG,IAAA,yBAAc,EAAC,SAAS,CAAC,CAAC;QACjD,IAAI,KAAK,GAAG,cAAc,GAAG,YAAY;YACrC,MAAM;QACV,MAAM,IAAI,SAAS,CAAC;QACpB,KAAK,IAAI,cAAc,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC;AACD,SAAS,WAAW,CAAC,KAAc,EAAE,GAAW;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACnE,OAAO,SAAS,CAAC;IACrB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;QACpC,OAAO,SAAS,CAAC;IACrB,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/D,OAAO,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,UAAU,IAAI,OAAO,IAAI,UAAU;QAC7E,CAAC,CAAC,UAAU,CAAC,KAAK;QAClB,CAAC,CAAC,SAAS,CAAC;AACpB,CAAC;AACD,SAAS,YAAY,CAAC,KAAc,EAAE,GAAW;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACvE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AACD,SAAS,SAAS,CAAC,KAAc;IAC7B,MAAM,MAAM,GAAG,IAAA,8BAAmB,EAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,IAAA,iCAAsB,EAAC,MAAM,CAAC;QAC9B,MAAM,MAAM,CAAC;IACjB,OAAO,MAAwB,CAAC;AACpC,CAAC;AACD,SAAS,cAAc,CAAC,KAAc;IAClC,OAAO,IAAA,yBAAc,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,CAAC","sourcesContent":["// @concord-file\n// @concord-implements docs/feature/inspection/README.md\n// @concord-implements docs/feature/insight/README.md\nimport { projectLifecyclePhase } from \"./lifecycle.ts\";\nimport { effectiveCostTotals, effectiveUsageCalls, adapterTokenMaterial, projectAdapterModelUsage } from \"../o11y/adapter-usage-projection.ts\";\nimport { projectJudgeUsage, projectTotalUsageCosts } from \"../o11y/judge-usage-projection.ts\";\nimport type { ResolvedModelRoles } from \"../model-roles.ts\";\nimport { createHash } from \"node:crypto\";\nimport { Result, Schema } from \"effect\";\nimport { mintRecordContentHandle, type RecordContentHandle, } from \"../record/attachment/content.ts\";\nimport { enumerateRecordAttachmentClosure, hydrateRecordAttachmentCurrent, mintRecordAttachmentReference, RecordAttachmentReference, recordAttachmentReferenceWire, type RecordAttachmentDefinition, } from \"../record/attachment/protocol.ts\";\nimport { RecordExactParseOptions } from \"../record/codec/core.ts\";\nimport { AdapterUsageAttachmentRevision1Schema, AdapterUsageAttachmentRevision2Schema, AdapterUsageAttachmentSchema, projectAdapterUsageRevision1, projectAdapterUsageRevision2, validateAdapterUsageAttachment, type ReadableAdapterUsageAttachment, } from \"../record/family/adapter-usage/schema.ts\";\nimport { NiceEvalCurrentRecordAttachments } from \"../record/family/current.ts\";\nimport type { AgentTurnsAttachment } from \"../record/family/agent-turns/schema.ts\";\nimport { ExecutionTraceRecordLimits } from \"../record/family/execution-traces/schema.ts\";\nimport type { AgentTurnOutcome } from \"../record/family/protocol-values.ts\";\nimport type { RecordAttachmentOwner } from \"../record/model/core.ts\";\nimport type { SourceReceiptLimitation } from \"../record/family/source-receipt/index.ts\";\nimport type { PersistedContentMetadata, SealedAttachmentMetadata, } from \"../record/sqlite/index.ts\";\nimport { closeInspectionJson, isInspectionCodecError, type InspectionJson } from \"./codec.ts\";\nimport { InspectionSha256, utf8ByteLength } from \"./bytes.ts\";\nimport { INSPECTION_RESULT_BYTE_LIMIT } from \"./limits.ts\";\nimport { decodeExecutionTraceContinuation, encodeExecutionTraceContinuation, EXECUTION_TRACE_CONTINUATION_FAMILIES, type ExecutionTraceFilters, } from \"./execution-traces.ts\";\nimport type { InspectionFactSource } from \"./source.ts\";\nimport type { InspectionAttemptTimingResult, InspectionAttemptUsageResult, InspectionTraceDetailResult, InspectionTraceResult, } from \"./results.ts\";\nconst CONTENT_PAGE_SIZE = 64;\nconst MAX_SOURCE_LIMITATIONS = 32;\nconst MAX_CONVERSATION_TURNS = 32;\nconst MAX_CONVERSATION_ITEMS = 64;\nconst MAX_COMMANDS = 8;\nconst MAX_USAGE_OBSERVATIONS = 64;\nconst MAX_ACTIVITIES = 64;\nconst MAX_DIAGNOSTICS = 16;\nconst MAX_DIAGNOSTIC_CAUSES = 4;\nconst MAX_COMMAND_ARGUMENTS = 8;\nconst MAX_CONVERSATION_TEXT_BYTES = 1024;\nconst MAX_COVERAGE_REASON_BYTES = 256;\nconst MAX_COMMAND_TEXT_BYTES = 1024;\nconst MAX_COMMAND_ARGUMENT_BYTES = 128;\nconst MAX_COMMAND_STREAM_TEXT_BYTES = 1024;\nconst MAX_DIAGNOSTIC_SUMMARY_BYTES = 256;\nconst MAX_DIAGNOSTIC_CAUSE_BYTES = 128;\nexport interface TraceAttachmentInput {\n readonly physical: SealedAttachmentMetadata;\n readonly value: InspectionJson;\n}\nexport interface AttemptTraceAttachments {\n /** Only the sealed origin Run's configuration may validate or describe these calls. */\n readonly models?: ResolvedModelRoles;\n readonly adapterUsage?: TraceAttachmentInput;\n readonly judgeUsage?: TraceAttachmentInput;\n readonly agentTurns?: TraceAttachmentInput;\n readonly turnContexts?: TraceAttachmentInput;\n readonly sandboxCommands?: TraceAttachmentInput;\n readonly runnerActivities?: TraceAttachmentInput;\n readonly runnerDiagnostics?: TraceAttachmentInput;\n}\n/** One stable, sealed identity accepted by `attempt.trace.detail`. */\nexport type AttemptTraceDetailSelector = {\n readonly kind: \"item\";\n readonly itemId: string;\n} | {\n readonly kind: \"tool-occurrence\";\n readonly toolOccurrenceId: string;\n} | {\n readonly kind: \"command\";\n readonly commandId: string;\n};\ntype AttachmentRead<Value> = {\n readonly state: \"not-recorded\";\n} | {\n readonly state: \"invalid\";\n readonly issues: readonly string[];\n} | {\n readonly state: \"available\";\n readonly value: Value;\n readonly contentMetadata: WeakMap<object, PersistedContentMetadata>;\n};\n/** Validated current Agent Turns facts shared by browser-neutral projectors. */\nexport type InspectionAgentTurnsRead = AttachmentRead<AgentTurnsAttachment>;\ntype InspectionTraceDetailItem = Extract<InspectionTraceDetailResult, {\n readonly kind: \"item\";\n}>[\"item\"];\ninterface CollectionValue {\n readonly collection: {\n readonly state: \"complete\" | \"partial\";\n readonly limitations: readonly SourceReceiptLimitation[];\n };\n}\ninterface ProjectionState {\n readonly state: \"complete\" | \"partial\" | \"not-recorded\" | \"invalid\";\n readonly limitations: readonly (SourceReceiptLimitation | {\n readonly issue: string;\n })[];\n}\n// @concord-code\n// @concord-implements docs/feature/inspection/README.md\n// @concord-implements docs/feature/insight/README.md\nexport function projectAttemptTrace(source: InspectionFactSource, attachments: AttemptTraceAttachments, execution: InspectionTraceResult[\"execution\"], executionFilters: {\n readonly traceId?: string;\n readonly sourceId?: string;\n readonly actorId?: string;\n readonly eventType?: string;\n readonly continuation?: string;\n} = {}): InspectionTraceResult {\n const agentTurns = readCurrentAttachment(NiceEvalCurrentRecordAttachments.agentTurns, attachments.agentTurns);\n const turnContexts = readCurrentAttachment(NiceEvalCurrentRecordAttachments.turnContexts, attachments.turnContexts);\n const sandboxCommands = readCurrentAttachment(NiceEvalCurrentRecordAttachments.sandboxCommands, attachments.sandboxCommands);\n const runnerDiagnostics = readRunnerDiagnostics(attachments.runnerDiagnostics);\n const conversationProjection = availability(agentTurns, CONVERSATION_TARGETS);\n const contextProjection = availability(turnContexts, CONTEXT_TARGETS);\n const commandProjection = availability(sandboxCommands, COMMAND_TARGETS);\n const conversationEvidenceLimitations = typedConversationCoverageLimitations(agentTurns);\n const contextLimitations: InspectionTraceResult[\"conversation\"][\"limitations\"] = contextProjection.state === \"complete\"\n ? Object.freeze([])\n : Object.freeze([Object.freeze({\n source: \"turn-contexts\" as const,\n state: contextProjection.state,\n limitations: contextProjection.limitations,\n })]);\n const allConversationLimitations = [\n ...conversationProjection.limitations,\n ...conversationEvidenceLimitations,\n ...contextLimitations,\n ];\n const conversationLimitations = allConversationLimitations.slice(0, MAX_SOURCE_LIMITATIONS);\n const commandLimitations = commandProjection.limitations.slice(0, MAX_SOURCE_LIMITATIONS);\n const retainedTurns = agentTurns.state === \"available\"\n ? agentTurns.value.segments.slice(0, MAX_CONVERSATION_TURNS)\n : [];\n const contexts = turnContexts.state === \"available\"\n ? new Map(turnContexts.value.segments.map((segment) => [segment.turnId, segment] as const))\n : new Map();\n const turns = retainedTurns.length > 0\n ? retainedTurns.map((turn) => Object.freeze({\n turnId: turn.turnId,\n sequence: turn.sequence,\n ...(\"sessionId\" in turn ? { sessionId: turn.sessionId } : {}),\n outcome: turn.outcome,\n terminal: projectTypedTurnTerminal(turn.terminal),\n context: projectTypedTurnContext(contexts.get(turn.turnId)),\n }))\n : [];\n const items = retainedTurns.length > 0\n ? retainedTurns.flatMap((turn) => turn.items.map((item) => projectTypedConversationItem(item, turn.turnId)))\n .slice(0, MAX_CONVERSATION_ITEMS)\n : [];\n const commandItems = sandboxCommands.state === \"available\"\n ? sandboxCommands.value.segments.slice(0, MAX_COMMANDS).map((command) => Object.freeze({\n commandId: command.commandId,\n phase: projectLifecyclePhase(command.phase),\n outcome: command.outcome,\n }))\n : [];\n const identityIndex = projectTypedTraceIdentityIndex(agentTurns, sandboxCommands);\n const totalTurnCount = agentTurns.state === \"available\" ? agentTurns.value.segments.length : 0;\n const totalItemCount = agentTurns.state === \"available\"\n ? agentTurns.value.segments.reduce((total, turn) => total + turn.items.length, 0)\n : 0;\n const totalCommandCount = sandboxCommands.state === \"available\"\n ? sandboxCommands.value.segments.length\n : 0;\n const executionProjection = execution.state === \"not-recorded\"\n ? projectAgentItemsAsExecution(source, attachments.agentTurns, agentTurns, conversationProjection.state, executionFilters)\n : execution;\n const result: InspectionTraceResult = Object.freeze({\n execution: executionProjection,\n conversation: Object.freeze({\n state: conversationProjection.state === \"complete\" && allConversationLimitations.length > 0\n ? \"partial\"\n : conversationProjection.state,\n limitations: Object.freeze(conversationLimitations),\n limitationsTruncated: conversationLimitations.length < allConversationLimitations.length,\n omittedLimitationCount: allConversationLimitations.length - conversationLimitations.length,\n turns: Object.freeze(turns),\n turnsTruncated: turns.length < totalTurnCount,\n omittedTurnCount: totalTurnCount - turns.length,\n items: Object.freeze(items),\n itemsTruncated: items.length < totalItemCount,\n omittedItemCount: totalItemCount - items.length,\n }),\n identityIndex,\n commands: Object.freeze({\n state: commandProjection.state,\n limitations: Object.freeze(commandLimitations),\n limitationsTruncated: commandLimitations.length < commandProjection.limitations.length,\n omittedLimitationCount: commandProjection.limitations.length - commandLimitations.length,\n items: Object.freeze(commandItems),\n hasMore: commandItems.length < totalCommandCount,\n omittedCommandCount: totalCommandCount - commandItems.length,\n }),\n diagnostics: projectDiagnostics(runnerDiagnostics),\n });\n if (jsonByteLength(result) > INSPECTION_RESULT_BYTE_LIMIT) {\n throw new Error(\"Trace semantic projection exceeds its fixed result byte limit\");\n }\n return result;\n}\n/**\n * Existing Agent Turns stay single-owned. This is a bounded read projection\n * into the generic execution outline, with an exact pointer back to the old\n * item selector; it never writes a second Record family or recomputes usage.\n */\nfunction projectAgentItemsAsExecution(source: InspectionFactSource, attachment: TraceAttachmentInput | undefined, agentTurns: InspectionAgentTurnsRead, state: \"complete\" | \"partial\" | \"not-recorded\" | \"invalid\", request: ExecutionTraceFilters & {\n readonly continuation?: string;\n}): InspectionTraceResult[\"execution\"] {\n const filters: ExecutionTraceFilters = Object.freeze({\n ...(request.traceId === undefined ? {} : { traceId: request.traceId }),\n ...(request.sourceId === undefined ? {} : { sourceId: request.sourceId }),\n ...(request.actorId === undefined ? {} : { actorId: request.actorId }),\n ...(request.eventType === undefined ? {} : { eventType: request.eventType }),\n });\n const continuationContext = Object.freeze({\n source,\n originAttempt: attachment === undefined\n ? \"not-recorded\"\n : `${attachment.physical.ownerRunId}:${attachment.physical.ownerAttemptId ?? \"missing\"}`,\n sourceFamily: EXECUTION_TRACE_CONTINUATION_FAMILIES.agentTurns,\n familyRevision: NiceEvalCurrentRecordAttachments.agentTurns.revision,\n filters,\n });\n const resumeAfter = request.continuation === undefined\n ? -1\n : decodeExecutionTraceContinuation(request.continuation, continuationContext);\n if (state === \"not-recorded\") {\n return Object.freeze({\n state: \"not-recorded\",\n limitations: Object.freeze([]),\n traces: Object.freeze([]),\n events: Object.freeze([]),\n identityIndex: Object.freeze({\n traceIds: Object.freeze([]), omittedTraceIdCount: 0,\n eventIds: Object.freeze([]), omittedEventIdCount: 0,\n evidenceIds: Object.freeze([]), omittedEvidenceIdCount: 0,\n }),\n hasMore: false,\n omittedEventCount: 0,\n });\n }\n const traceId = \"agent-turns\";\n const sourceId = \"niceeval.agent-turns\";\n const limitations = state === \"complete\"\n ? Object.freeze([])\n : Object.freeze([Object.freeze({\n code: \"legacy-source-state\" as const,\n state,\n message: state === \"invalid\"\n ? \"The Agent Turns source is invalid.\"\n : \"The Agent Turns source is partial.\",\n })]);\n if (state === \"invalid\") {\n return Object.freeze({\n state,\n limitations,\n traces: Object.freeze([]),\n events: Object.freeze([]),\n identityIndex: Object.freeze({\n traceIds: Object.freeze([]), omittedTraceIdCount: 0,\n eventIds: Object.freeze([]), omittedEventIdCount: 0,\n evidenceIds: Object.freeze([]), omittedEvidenceIdCount: 0,\n }),\n hasMore: false,\n omittedEventCount: 0,\n });\n }\n const traceSelected = filters.traceId === undefined || filters.traceId === traceId;\n const sourceSelected = filters.sourceId === undefined || filters.sourceId === sourceId;\n const retained: Array<{\n readonly event: InspectionTraceResult[\"execution\"][\"events\"][number];\n readonly sourceOrdinal: number;\n }> = [];\n const indexedEventIds: string[] = [];\n let sourceOrdinal = 0;\n let totalSourceEvents = 0;\n let totalMatching = 0;\n let priorMatches = 0;\n let pageFull = false;\n if (agentTurns.state === \"available\") {\n for (const turn of agentTurns.value.segments) {\n for (const rawItem of turn.items) {\n const ordinal = sourceOrdinal;\n sourceOrdinal += 1;\n totalSourceEvents += 1;\n if (indexedEventIds.length < 256)\n indexedEventIds.push(rawItem.itemId);\n if (!traceSelected || !sourceSelected)\n continue;\n const actorId = rawItem.kind === \"message\" ? rawItem.role : \"assistant\";\n if (filters.actorId !== undefined && actorId !== filters.actorId)\n continue;\n if (filters.eventType !== undefined && `agent.${rawItem.kind}` !== filters.eventType)\n continue;\n totalMatching += 1;\n if (ordinal <= resumeAfter) {\n priorMatches += 1;\n continue;\n }\n if (pageFull || retained.length >= ExecutionTraceRecordLimits.maximumOutlineEvents) {\n pageFull = true;\n continue;\n }\n const item = projectTypedConversationItem(rawItem, turn.turnId);\n const event = Object.freeze({\n traceId,\n eventId: item.itemId,\n origin: Object.freeze({ kind: \"agent-item\" as const, itemId: item.itemId }),\n ordinal,\n type: `agent.${item.kind}`,\n source: Object.freeze({ id: sourceId, sequence: item.sequence }),\n actor: Object.freeze({ id: agentItemActorId(item) }),\n summary: boundedText(agentItemSummary(item), 512).value,\n links: Object.freeze([]),\n evidence: Object.freeze([]),\n scopeMemberships: Object.freeze([]),\n display: Object.freeze({ state: \"absent\" as const }),\n });\n if (utf8ByteLength(JSON.stringify([...retained.map(({ event: prior }) => prior), event])) >\n ExecutionTraceRecordLimits.maximumOutlineBytes) {\n pageFull = true;\n continue;\n }\n retained.push(Object.freeze({ event, sourceOrdinal: ordinal }));\n }\n }\n }\n const events = retained.map(({ event }) => event);\n const omittedEventCount = Math.max(0, totalMatching - priorMatches - events.length);\n const lastOrdinal = retained.at(-1)?.sourceOrdinal;\n return Object.freeze({\n state,\n limitations,\n traces: traceSelected\n ? Object.freeze([Object.freeze({\n kind: \"trace-header\" as const,\n traceId,\n sourceTraceId: sourceId,\n schema: Object.freeze({ id: sourceId }),\n collection: state === \"complete\"\n ? Object.freeze({ state: \"complete\" as const, limitations: [] as const })\n : Object.freeze({\n state: \"partial\" as const,\n limitations: [{ code: \"legacy-source-state\", message: \"The Agent Turns source is partial.\" }] as const,\n }),\n scopes: Object.freeze([]),\n eventCount: totalSourceEvents,\n })])\n : Object.freeze([]),\n events: Object.freeze(events),\n identityIndex: Object.freeze({\n traceIds: Object.freeze([traceId]),\n omittedTraceIdCount: 0,\n eventIds: Object.freeze(indexedEventIds),\n omittedEventIdCount: totalSourceEvents - indexedEventIds.length,\n evidenceIds: Object.freeze([]),\n omittedEvidenceIdCount: 0,\n }),\n hasMore: omittedEventCount > 0,\n omittedEventCount,\n ...(omittedEventCount > 0 && lastOrdinal !== undefined\n ? { continuation: encodeExecutionTraceContinuation(continuationContext, lastOrdinal) }\n : {}),\n });\n}\nfunction agentItemActorId(item: InspectionTraceResult[\"conversation\"][\"items\"][number]): string {\n return item.kind === \"message\" ? item.role : \"assistant\";\n}\nfunction agentItemSummary(item: InspectionTraceResult[\"conversation\"][\"items\"][number]): string {\n switch (item.kind) {\n case \"message\": return item.text;\n case \"tool-call\": return `${item.tool}: ${item.input}`;\n case \"tool-result\": return `${item.outcome}: ${item.output}`;\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\": return item.summary;\n case \"subagent\": return `${item.label}: ${item.summary}`;\n case \"input-request\": return item.response === null ? item.prompt : `${item.prompt}: ${item.response}`;\n case \"skill-load\":\n case \"conversation-error\": return `${item.code}: ${item.summary}`;\n }\n}\ntype TraceEvidenceCoverageLimitation = Extract<InspectionTraceResult[\"conversation\"][\"limitations\"][number], {\n readonly source: \"agent-turns\";\n}>;\ntype InspectionTurnContextSegment = ReturnType<typeof readTurnContexts> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment : never : never;\nfunction projectTypedTurnTerminal(terminal: ReturnType<typeof readAgentTurns> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment extends {\n readonly terminal: infer Terminal;\n} ? Terminal : never : never : never): InspectionTraceResult[\"conversation\"][\"turns\"][number][\"terminal\"] {\n const coverage = conversationCoverage(terminal);\n if (terminal.state === \"unavailable\") {\n return Object.freeze({\n state: terminal.state,\n reason: terminal.reason,\n coverage: Object.freeze({ state: \"unavailable\" as const, reason: terminal.reason }),\n });\n }\n return Object.freeze({\n state: terminal.state,\n status: terminal.status,\n coverage: coverage.coverage,\n }) as InspectionTraceResult[\"conversation\"][\"turns\"][number][\"terminal\"];\n}\nfunction projectTypedTurnContext(context: InspectionTurnContextSegment | undefined): InspectionTraceResult[\"conversation\"][\"turns\"][number][\"context\"] {\n if (context === undefined)\n return Object.freeze({ state: \"not-recorded\" as const });\n if (\"state\" in context.source) {\n return Object.freeze({\n state: context.source.state,\n reason: context.source.reason,\n sessionIndex: context.sessionIndex,\n turnIndex: context.turnIndex,\n sourceOrder: context.sourceOrder,\n });\n }\n if (context.sourceOrder === null) {\n throw new Error(\"Mapped turn context is missing its validated source order\");\n }\n return Object.freeze({\n sessionIndex: context.sessionIndex,\n turnIndex: context.turnIndex,\n sourceOrder: context.sourceOrder,\n ...context.source.value,\n });\n}\nfunction typedConversationCoverageLimitations(agentTurns: ReturnType<typeof readAgentTurns>): readonly TraceEvidenceCoverageLimitation[] {\n if (agentTurns.state !== \"available\")\n return Object.freeze([]);\n const limitations: TraceEvidenceCoverageLimitation[] = [];\n const channels = [\"events\", \"actions\", \"messages\", \"status\", \"data\"] as const;\n for (const turn of agentTurns.value.segments) {\n if (turn.terminal.state === \"unavailable\") {\n limitations.push(Object.freeze({\n source: \"agent-turns\",\n turnId: turn.turnId,\n channel: \"conversation\",\n state: \"unavailable\",\n reason: turn.terminal.reason,\n }));\n continue;\n }\n for (const channel of channels) {\n const coverage = turn.terminal.evidenceCoverage[channel];\n if (coverage.status === \"complete\")\n continue;\n limitations.push(Object.freeze({\n source: \"agent-turns\",\n turnId: turn.turnId,\n channel,\n state: coverage.status,\n reason: boundedText(coverage.reason, MAX_COVERAGE_REASON_BYTES).value,\n }));\n }\n }\n return Object.freeze(limitations);\n}\n/**\n * Resolves exactly one sealed trace fact. `undefined` is deliberately the\n * missing-selection result: the Host turns it into inspection-selection-missing\n * and must never substitute a neighbouring displayed item.\n */\nexport function projectAttemptTraceDetail(source: InspectionFactSource, attachments: AttemptTraceAttachments, selector: AttemptTraceDetailSelector): InspectionTraceDetailResult | undefined {\n const agentTurns = readAgentTurns(attachments.agentTurns);\n const commands = readSandboxCommands(attachments.sandboxCommands);\n let detail: InspectionTraceDetailResult | undefined;\n switch (selector.kind) {\n case \"item\":\n detail = projectTraceItemDetail(agentTurns, selector.itemId);\n break;\n case \"tool-occurrence\": {\n detail = projectToolOccurrenceDetail(agentTurns, selector.toolOccurrenceId);\n break;\n }\n case \"command\":\n detail = projectTraceCommandDetail(source, commands, selector.commandId);\n break;\n }\n if (detail === undefined)\n return undefined;\n if (jsonByteLength(detail) > INSPECTION_RESULT_BYTE_LIMIT) {\n throw new Error(\"Trace detail exceeds its fixed result byte limit\");\n }\n return detail;\n}\nfunction projectTraceIdentityIndex(agentTurns: ReturnType<typeof readAgentTurns>, commands: ReturnType<typeof readSandboxCommands>): InspectionJson {\n const itemIds: string[] = [];\n const toolOccurrenceIds = new Set<string>();\n if (agentTurns.state === \"available\") {\n for (const turn of agentTurns.value.segments) {\n for (const item of turn.items) {\n itemIds.push(item.itemId);\n if (item.kind === \"tool-start\")\n toolOccurrenceIds.add(item.toolOccurrenceId);\n if (item.kind === \"tool-finish\" && item.occurrence.state === \"exact\") {\n toolOccurrenceIds.add(item.occurrence.toolOccurrenceId);\n }\n }\n }\n }\n const commandIds = commands.state === \"available\"\n ? commands.value.segments.map((command) => command.commandId)\n : [];\n return closeJson(Object.freeze({\n itemIds: Object.freeze(itemIds),\n toolOccurrenceIds: agentTurns.state === \"available\" && agentTurns.value.state === \"legacy\"\n ? Object.freeze({\n state: \"unavailable\" as const,\n reason: \"exact-tool-occurrence-identity-not-recorded\" as const,\n ids: Object.freeze([]),\n })\n : Object.freeze({\n state: agentTurns.state === \"available\" ? \"available\" as const : agentTurns.state,\n ids: Object.freeze([...toolOccurrenceIds]),\n }),\n commandIds: Object.freeze(commandIds),\n }));\n}\nfunction projectTypedTraceIdentityIndex(agentTurns: ReturnType<typeof readAgentTurns>, commands: ReturnType<typeof readSandboxCommands>): InspectionTraceResult[\"identityIndex\"] {\n const maximumIdentityCount = 256;\n const itemIds: string[] = [];\n const toolOccurrenceIds = new Set<string>();\n if (agentTurns.state === \"available\") {\n for (const turn of agentTurns.value.segments) {\n for (const item of turn.items) {\n itemIds.push(item.itemId);\n if (item.kind === \"tool-start\")\n toolOccurrenceIds.add(item.toolOccurrenceId);\n if (item.kind === \"tool-finish\" && item.occurrence.state === \"exact\") {\n toolOccurrenceIds.add(item.occurrence.toolOccurrenceId);\n }\n }\n }\n }\n const allToolOccurrenceIds = [...toolOccurrenceIds];\n const allCommandIds = commands.state === \"available\"\n ? commands.value.segments.map(({ commandId }) => commandId)\n : [];\n return Object.freeze({\n itemIds: Object.freeze(itemIds.slice(0, maximumIdentityCount)),\n omittedItemIdCount: Math.max(0, itemIds.length - maximumIdentityCount),\n toolOccurrenceIds: Object.freeze({\n ids: Object.freeze(allToolOccurrenceIds.slice(0, maximumIdentityCount)),\n omittedIdCount: Math.max(0, allToolOccurrenceIds.length - maximumIdentityCount),\n }),\n commandIds: Object.freeze(allCommandIds.slice(0, maximumIdentityCount)),\n omittedCommandIdCount: Math.max(0, allCommandIds.length - maximumIdentityCount),\n });\n}\nfunction projectTypedConversationItem(item: ReturnType<typeof readAgentTurns> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment extends {\n readonly items: readonly (infer Item)[];\n} ? Item : never : never : never, turnId: string): InspectionTraceResult[\"conversation\"][\"items\"][number] {\n const sequence = \"sessionSequence\" in item ? item.sessionSequence : item.sequence;\n const base = { itemId: item.itemId, turnId, sequence };\n switch (item.kind) {\n case \"message\": {\n const text = boundedText(item.text, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, role: item.role, text: text.value, textTruncated: text.truncated });\n }\n case \"tool-start\": {\n const input = boundedText(item.inputSummary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: \"tool-call\", tool: item.tool, input: input.value, inputTruncated: input.truncated, toolOccurrenceId: item.toolOccurrenceId });\n }\n case \"tool-finish\": {\n const output = boundedText(item.outputSummary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: \"tool-result\", outcome: item.outcome, output: output.value, outputTruncated: output.truncated, ...(item.occurrence.state === \"exact\" ? { toolOccurrenceId: item.occurrence.toolOccurrenceId } : {}) });\n }\n case \"tool-call\": {\n const input = boundedText(item.inputSummary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, tool: item.tool, input: input.value, inputTruncated: input.truncated });\n }\n case \"tool-result\": {\n const output = boundedText(item.outputSummary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, outcome: item.outcome, output: output.value, outputTruncated: output.truncated });\n }\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\": {\n const summary = boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, summary: summary.value, summaryTruncated: summary.truncated });\n }\n case \"subagent\": {\n const summary = boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, state: item.state, label: item.label, summary: summary.value, summaryTruncated: summary.truncated });\n }\n case \"input-request\": {\n const prompt = boundedText(item.promptSummary, MAX_CONVERSATION_TEXT_BYTES);\n const response = item.responseSummary === null\n ? null\n : boundedText(item.responseSummary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, state: item.state, prompt: prompt.value, promptTruncated: prompt.truncated, response: response?.value ?? null, responseTruncated: response?.truncated ?? false });\n }\n case \"skill-load\":\n case \"conversation-error\": {\n const summary = boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES);\n return Object.freeze({ ...base, kind: item.kind, code: item.code, summary: summary.value, summaryTruncated: summary.truncated });\n }\n }\n}\nfunction projectTraceItemDetail(agentTurns: ReturnType<typeof readAgentTurns>, itemId: string): Extract<InspectionTraceDetailResult, {\n readonly kind: \"item\";\n}> | undefined {\n if (agentTurns.state !== \"available\")\n return undefined;\n for (const turn of agentTurns.value.segments) {\n const item = turn.items.find((candidate) => candidate.itemId === itemId);\n if (item === undefined)\n continue;\n return Object.freeze({\n kind: \"item\",\n itemId,\n item: projectFullConversationItem(item, turn),\n });\n }\n return undefined;\n}\nfunction projectToolOccurrenceDetail(agentTurns: ReturnType<typeof readAgentTurns>, toolOccurrenceId: string): Extract<InspectionTraceDetailResult, {\n readonly kind: \"tool-occurrence\";\n}> | undefined {\n if (agentTurns.state !== \"available\" || agentTurns.value.state === \"legacy\")\n return undefined;\n let call: InspectionTraceDetailItem | undefined;\n let result: InspectionTraceDetailItem | undefined;\n let callTurn: {\n readonly turnId: string;\n readonly sequence: number;\n readonly outcome: AgentTurnOutcome;\n } | undefined;\n let resultTurn: typeof callTurn;\n for (const turn of agentTurns.value.segments) {\n for (const item of turn.items) {\n if (item.kind === \"tool-start\" && item.toolOccurrenceId === toolOccurrenceId) {\n call = projectFullConversationItem(item, turn);\n callTurn = traceTurnIdentity(turn);\n }\n if (item.kind === \"tool-finish\" && item.occurrence.state === \"exact\" &&\n item.occurrence.toolOccurrenceId === toolOccurrenceId) {\n result = projectFullConversationItem(item, turn);\n resultTurn = traceTurnIdentity(turn);\n }\n }\n }\n if (call === undefined && result === undefined)\n return undefined;\n return Object.freeze({\n kind: \"tool-occurrence\",\n toolOccurrenceId,\n call: call ?? null,\n result: result ?? null,\n turn: Object.freeze({ call: callTurn ?? null, result: resultTurn ?? null }),\n });\n}\nfunction projectTraceCommandDetail(source: InspectionFactSource, commands: ReturnType<typeof readSandboxCommands>, commandId: string): Extract<InspectionTraceDetailResult, {\n readonly kind: \"command\";\n}> | undefined {\n if (commands.state !== \"available\")\n return undefined;\n const command = commands.value.segments.find((candidate) => candidate.commandId === commandId);\n if (command === undefined)\n return undefined;\n const stream = (value: typeof command.stdout) => {\n const metadata = commands.contentMetadata.get(value.content);\n if (metadata === undefined || metadata.byteLength !== value.retainedBytes || metadata.digest !== value.sha256) {\n throw new Error(\"Command stream metadata is invalid\");\n }\n return Object.freeze({\n text: readVerifiedText(source, metadata),\n retainedBytes: value.retainedBytes,\n totalSafeUtf8Bytes: value.totalSafeUtf8Bytes,\n sha256: value.sha256,\n truncation: Object.freeze({\n state: value.retainedBytes === value.totalSafeUtf8Bytes ? \"not-truncated\" as const : \"truncated\" as const,\n omittedSafeUtf8Bytes: value.totalSafeUtf8Bytes - value.retainedBytes,\n }),\n });\n };\n return Object.freeze({\n kind: \"command\",\n commandId,\n invocation: projectFullInvocation(command.invocation),\n workingDirectory: command.workingDirectory,\n outcome: command.outcome,\n turnId: command.turnId,\n phase: projectLifecyclePhase(command.phase),\n sequence: command.sequence,\n stdout: stream(command.stdout),\n stderr: stream(command.stderr),\n });\n}\nfunction traceTurnIdentity(turn: {\n readonly turnId: string;\n readonly sequence: number;\n readonly outcome: AgentTurnOutcome;\n}) {\n return Object.freeze({ turnId: turn.turnId, sequence: turn.sequence, outcome: turn.outcome });\n}\nfunction projectFullInvocation(invocation: {\n readonly kind: \"shell\" | \"argv\";\n readonly command?: string;\n readonly executable?: string;\n readonly arguments?: readonly string[];\n}): Extract<InspectionTraceDetailResult, {\n readonly kind: \"command\";\n}>[\"invocation\"] {\n return invocation.kind === \"shell\"\n ? Object.freeze({ kind: invocation.kind, command: invocation.command! })\n : Object.freeze({\n kind: invocation.kind,\n executable: invocation.executable!,\n arguments: Object.freeze([...(invocation.arguments ?? [])]),\n });\n}\nfunction projectFullConversationItem(item: ReturnType<typeof readAgentTurns> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment extends {\n readonly items: readonly (infer Item)[];\n} ? Item : never : never : never, turn: {\n readonly turnId: string;\n readonly sequence: number;\n readonly outcome: AgentTurnOutcome;\n readonly sessionId?: string;\n}): Extract<InspectionTraceDetailResult, {\n readonly kind: \"item\";\n}>[\"item\"] {\n const base = {\n itemId: item.itemId,\n turnId: turn.turnId,\n turnSequence: turn.sequence,\n turnOutcome: turn.outcome,\n ...(turn.sessionId === undefined ? {} : { sessionId: turn.sessionId }),\n };\n switch (item.kind) {\n case \"tool-start\": return Object.freeze({\n ...base, kind: \"tool-call\", eventId: item.eventId, sequence: item.sessionSequence,\n toolOccurrenceId: item.toolOccurrenceId, tool: item.tool, input: item.inputSummary,\n });\n case \"tool-finish\": return Object.freeze({\n ...base, kind: \"tool-result\", eventId: item.eventId, sequence: item.sessionSequence,\n ...(item.occurrence.state === \"exact\" ? { toolOccurrenceId: item.occurrence.toolOccurrenceId } : {}),\n outcome: item.outcome, output: item.outputSummary,\n });\n case \"tool-call\": return Object.freeze({\n ...base, kind: item.kind, sequence: item.sequence, tool: item.tool, input: item.inputSummary,\n });\n case \"tool-result\": return Object.freeze({\n ...base, kind: item.kind, sequence: item.sequence, outcome: item.outcome, output: item.outputSummary,\n });\n case \"message\": return Object.freeze({ ...base, kind: item.kind, role: item.role, text: item.text });\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\": return Object.freeze({ ...base, kind: item.kind, summary: item.summary });\n case \"subagent\": return Object.freeze({ ...base, kind: item.kind, state: item.state, label: item.label, summary: item.summary });\n case \"input-request\": return Object.freeze({ ...base, kind: item.kind, state: item.state, prompt: item.promptSummary, response: item.responseSummary });\n case \"skill-load\":\n case \"conversation-error\": return Object.freeze({ ...base, kind: item.kind, code: item.code, summary: item.summary });\n }\n}\nfunction readCurrentAttachment<Owner extends RecordAttachmentOwner, Family extends string, ValueSchema extends Schema.Top, Revision extends number>(persistence: Readonly<{\n readonly attachment: RecordAttachmentDefinition<Owner, Family, ValueSchema>;\n readonly revision: Revision;\n}>, attachment: TraceAttachmentInput | undefined): AttachmentRead<ValueSchema[\"Type\"]> {\n if (attachment === undefined)\n return Object.freeze({ state: \"not-recorded\" as const });\n if (attachment.physical.ownerKind !== persistence.attachment.owner ||\n attachment.physical.family !== persistence.attachment.family)\n return invalidRead(\"source-attachment-identity-invalid\");\n if (attachment.physical.familyRevision < persistence.revision)\n return invalidRead(\"source-migration-required\");\n if (attachment.physical.familyRevision !== persistence.revision)\n return invalidRead(\"source-revision-unsupported\");\n const byLogicalHandle = new Map(attachment.physical.contents.map((content) => [content.logicalHandle, content] as const));\n const contentMetadata = new WeakMap<object, PersistedContentMetadata>();\n const usedLogicalHandles = new Set<string>();\n const hydrated = hydrateRecordAttachmentCurrent(persistence.attachment, attachment.value, {\n content: (token, declaration) => {\n const logicalHandle = exactMarker(token, \"$niceeval.record.content\");\n if (logicalHandle === undefined && !hasOwnMarker(token, \"$niceeval.record.content\")) {\n return Result.succeed(undefined);\n }\n const metadata = typeof logicalHandle === \"string\" ? byLogicalHandle.get(logicalHandle) : undefined;\n if (metadata === undefined ||\n usedLogicalHandles.has(logicalHandle as string) ||\n declaration.maximumBytes !== undefined && metadata.byteLength > declaration.maximumBytes)\n return Result.fail({ code: \"current-content-bind-failed\" as const });\n const handle = mintRecordContentHandle(declaration.kind);\n contentMetadata.set(handle, metadata);\n usedLogicalHandles.add(logicalHandle as string);\n return Result.succeed(handle);\n },\n reference: (token, declaration) => {\n const marker = exactMarker(token, \"$niceeval.record.reference\");\n if (marker === undefined && !hasOwnMarker(token, \"$niceeval.record.reference\")) {\n return Result.succeed(undefined);\n }\n if (typeof marker !== \"object\" || marker === null || Array.isArray(marker)) {\n return Result.fail({ code: \"current-reference-bind-failed\" as const });\n }\n const value = marker as Readonly<Record<string, unknown>>;\n if (Reflect.ownKeys(value).length !== 3 ||\n value.owner !== declaration.definition.owner ||\n value.family !== declaration.definition.family ||\n !(\"value\" in value)) {\n return Result.fail({ code: \"current-reference-bind-failed\" as const });\n }\n return Result.succeed(mintRecordAttachmentReference(RecordAttachmentReference.to(declaration.definition, declaration.valueSchema), value.value));\n },\n });\n if (Result.isFailure(hydrated) || usedLogicalHandles.size !== attachment.physical.contents.length) {\n return invalidRead(\"source-attachment-invalid\");\n }\n const closure = enumerateRecordAttachmentClosure(persistence.attachment, hydrated.success);\n if (Result.isFailure(closure))\n return invalidRead(\"source-closure-invalid\");\n const logicalReferences = new Map<string, {\n readonly owner: string;\n readonly family: string;\n }>();\n for (const reference of closure.success.references) {\n const wire = recordAttachmentReferenceWire(reference);\n if (wire === undefined)\n return invalidRead(\"source-reference-invalid\");\n logicalReferences.set(`${wire.owner}\\u0000${wire.family}`, Object.freeze({ owner: wire.owner, family: wire.family }));\n }\n const orderedReferences = [...logicalReferences.values()].sort((left, right) => left.owner === right.owner\n ? left.family === right.family ? 0 : left.family < right.family ? -1 : 1\n : left.owner < right.owner ? -1 : 1);\n if (orderedReferences.length !== attachment.physical.references.length) {\n return invalidRead(\"source-reference-invalid\");\n }\n for (let ordinal = 0; ordinal < orderedReferences.length; ordinal += 1) {\n const logical = orderedReferences[ordinal]!;\n const physical = attachment.physical.references[ordinal]!;\n if (physical.ordinal !== ordinal ||\n physical.owner !== logical.owner ||\n physical.family !== logical.family)\n return invalidRead(\"source-reference-invalid\");\n }\n return Object.freeze({ state: \"available\" as const, value: hydrated.success, contentMetadata });\n}\nfunction invalidRead<Value>(issue: string): AttachmentRead<Value> {\n return Object.freeze({ state: \"invalid\" as const, issues: Object.freeze([issue]) });\n}\n/** Historical revisions are decoded independently, then projected without rewriting sealed bytes. */\nfunction readAdapterUsageAttachment(attachment: TraceAttachmentInput | undefined, models: ResolvedModelRoles | undefined): AttachmentRead<ReadableAdapterUsageAttachment> {\n if (attachment?.physical.familyRevision !== 1 && attachment?.physical.familyRevision !== 2 &&\n attachment?.physical.familyRevision !== 3) {\n const read = readCurrentAttachment(NiceEvalCurrentRecordAttachments.adapterUsage, attachment);\n if (read.state === \"available\" && read.value.calls.some((call) => call.modelSlot !== null &&\n (models === undefined || !Object.hasOwn(models, call.modelSlot)))) {\n return invalidRead(\"source-model-slot-invalid\");\n }\n return read;\n }\n if (attachment.physical.ownerKind !== NiceEvalCurrentRecordAttachments.adapterUsage.attachment.owner ||\n attachment.physical.family !== NiceEvalCurrentRecordAttachments.adapterUsage.attachment.family)\n return invalidRead(\"source-attachment-identity-invalid\");\n if (attachment.physical.contents.length !== 0 || attachment.physical.references.length !== 0) {\n return invalidRead(\"source-closure-invalid\");\n }\n let projected: ReadableAdapterUsageAttachment;\n if (attachment.physical.familyRevision === 1) {\n const decoded = Schema.decodeUnknownResult(AdapterUsageAttachmentRevision1Schema, RecordExactParseOptions)(attachment.value);\n if (Result.isFailure(decoded))\n return invalidRead(\"source-attachment-invalid\");\n projected = projectAdapterUsageRevision1(decoded.success);\n }\n else if (attachment.physical.familyRevision === 2) {\n const decoded = Schema.decodeUnknownResult(AdapterUsageAttachmentRevision2Schema, RecordExactParseOptions)(attachment.value);\n if (Result.isFailure(decoded))\n return invalidRead(\"source-attachment-invalid\");\n projected = projectAdapterUsageRevision2(decoded.success);\n }\n else {\n const decoded = Schema.decodeUnknownResult(AdapterUsageAttachmentSchema, RecordExactParseOptions)(attachment.value);\n if (Result.isFailure(decoded))\n return invalidRead(\"source-attachment-invalid\");\n projected = decoded.success;\n if (projected.calls.some((call) => call.modelSlot !== null &&\n (models === undefined || !Object.hasOwn(models, call.modelSlot)))) {\n return invalidRead(\"source-model-slot-invalid\");\n }\n }\n if (validateAdapterUsageAttachment(projected).length > 0) {\n return invalidRead(\"source-attachment-invalid\");\n }\n return Object.freeze({\n state: \"available\" as const,\n value: projected,\n contentMetadata: new WeakMap<object, PersistedContentMetadata>(),\n });\n}\nfunction sourceDescriptor(read: AttachmentRead<CollectionValue>): InspectionJson {\n switch (read.state) {\n case \"not-recorded\": return closeJson(Object.freeze({ state: read.state }));\n case \"invalid\": return closeJson(Object.freeze({ state: read.state, issues: read.issues }));\n case \"available\": {\n const limitations = boundedLimitations(read.value.collection.limitations);\n return closeJson(Object.freeze({\n state: read.value.collection.state,\n limitations: limitations.items,\n limitationsTruncated: limitations.hasMore,\n omittedLimitationCount: limitations.omittedCount,\n }));\n }\n }\n}\nfunction boundedLimitations(limitations: readonly SourceReceiptLimitation[]) {\n const items = limitations.slice(0, MAX_SOURCE_LIMITATIONS).map((limitation) => closeJson(limitation));\n return Object.freeze({\n items: Object.freeze(items),\n hasMore: items.length < limitations.length,\n omittedCount: limitations.length - items.length,\n });\n}\nfunction availability<Value extends CollectionValue>(read: AttachmentRead<Value>, targets: ReadonlySet<SourceReceiptLimitation[\"target\"]>): ProjectionState {\n switch (read.state) {\n case \"not-recorded\": return Object.freeze({ state: read.state, limitations: Object.freeze([]) });\n case \"invalid\": return Object.freeze({\n state: read.state,\n limitations: Object.freeze(read.issues.map((issue) => Object.freeze({ issue }))),\n });\n case \"available\": {\n const matching = read.value.collection.limitations.filter(({ target }) => targets.has(target));\n return Object.freeze({\n state: matching.length === 0 ? \"complete\" as const : \"partial\" as const,\n limitations: Object.freeze(matching),\n });\n }\n }\n}\nconst CONVERSATION_TARGETS = new Set<SourceReceiptLimitation[\"target\"]>([\n \"turn\",\n \"turn-item\",\n \"value-byte\",\n]);\nconst CONTEXT_TARGETS = new Set<SourceReceiptLimitation[\"target\"]>([\n \"turn-context\",\n \"value-byte\",\n]);\nconst USAGE_TARGETS = new Set<SourceReceiptLimitation[\"target\"]>([\n \"usage-observation\",\n \"value-byte\",\n]);\nconst COMMAND_TARGETS = new Set<SourceReceiptLimitation[\"target\"]>([\n \"command\",\n \"stdout\",\n \"stderr\",\n \"value-byte\",\n \"content-byte\",\n]);\nconst TIMING_TARGETS = new Set<SourceReceiptLimitation[\"target\"]>([\n \"activity\",\n \"value-byte\",\n]);\nconst DIAGNOSTIC_TARGETS = new Set<SourceReceiptLimitation[\"target\"]>([\n \"diagnostic\",\n \"diagnostic-cause\",\n \"value-byte\",\n]);\nfunction projectConversation(agentTurns: ReturnType<typeof readAgentTurns>, turnContexts: ReturnType<typeof readTurnContexts>): {\n readonly view: InspectionJson;\n} {\n const primary = availability(agentTurns, CONVERSATION_TARGETS);\n if (agentTurns.state !== \"available\") {\n return Object.freeze({ view: closeJson(Object.freeze({\n ...primary,\n turns: Object.freeze([]),\n turnsTruncated: false,\n omittedTurnCount: 0,\n items: Object.freeze([]),\n itemsTruncated: false,\n omittedItemCount: 0,\n })) });\n }\n const contextState = availability(turnContexts, CONTEXT_TARGETS);\n const contexts = turnContexts.state === \"available\"\n ? new Map(turnContexts.value.segments.map((segment) => [segment.turnId, segment] as const))\n : new Map();\n const limitations: InspectionJson[] = [...primary.limitations];\n if (contextState.state !== \"complete\") {\n limitations.push(closeJson(Object.freeze({\n source: \"turn-contexts\",\n state: contextState.state,\n limitations: contextState.limitations,\n })));\n }\n if (agentTurns.value.state === \"legacy\") {\n limitations.push(closeJson(Object.freeze({\n source: \"agent-turns\",\n state: \"partial\",\n reason: \"exact-tool-occurrence-identity-not-recorded\",\n })));\n }\n const turns = agentTurns.value.segments.slice(0, MAX_CONVERSATION_TURNS).map((turn) => {\n const coverage = conversationCoverage(turn.terminal);\n limitations.push(...coverage.limitations.map((limitation) => closeJson(Object.freeze({\n source: \"agent-turns\",\n turnId: turn.turnId,\n ...limitation,\n }))));\n const context = contexts.get(turn.turnId);\n return closeJson(Object.freeze({\n turnId: turn.turnId,\n sequence: turn.sequence,\n ...(\"sessionId\" in turn ? { sessionId: turn.sessionId } : {}),\n outcome: turn.outcome,\n terminal: Object.freeze({\n state: turn.terminal.state,\n ...(turn.terminal.state === \"recorded\" ? { status: turn.terminal.status } : { reason: turn.terminal.reason }),\n coverage: coverage.coverage,\n }),\n context: context === undefined\n ? Object.freeze({ state: \"not-recorded\" as const })\n : projectTurnContext(context),\n }));\n });\n const items: InspectionJson[] = [];\n let totalItemCount = 0;\n for (const turn of agentTurns.value.segments) {\n for (const item of turn.items) {\n totalItemCount += 1;\n if (items.length >= MAX_CONVERSATION_ITEMS)\n continue;\n items.push(projectConversationItem(item, turn.turnId, \"sessionId\" in turn ? turn.sessionId : undefined));\n }\n }\n return Object.freeze({\n view: closeJson(Object.freeze({\n state: primary.state === \"complete\" && limitations.length === 0 ? \"complete\" : \"partial\",\n limitations: Object.freeze(limitations.slice(0, MAX_SOURCE_LIMITATIONS)),\n limitationsTruncated: limitations.length > MAX_SOURCE_LIMITATIONS,\n omittedLimitationCount: Math.max(0, limitations.length - MAX_SOURCE_LIMITATIONS),\n turns: Object.freeze(turns),\n turnsTruncated: turns.length < agentTurns.value.segments.length,\n omittedTurnCount: agentTurns.value.segments.length - turns.length,\n items: Object.freeze(items),\n itemsTruncated: items.length < totalItemCount,\n omittedItemCount: totalItemCount - items.length,\n })),\n });\n}\nexport function readInspectionAgentTurns(attachment?: TraceAttachmentInput): InspectionAgentTurnsRead {\n return readCurrentAttachment(NiceEvalCurrentRecordAttachments.agentTurns, attachment);\n}\nfunction readAgentTurns(attachment?: TraceAttachmentInput): InspectionAgentTurnsRead {\n return readInspectionAgentTurns(attachment);\n}\nfunction readTurnContexts(attachment?: TraceAttachmentInput) {\n return readCurrentAttachment(NiceEvalCurrentRecordAttachments.turnContexts, attachment);\n}\nfunction conversationCoverage(terminal: ReturnType<typeof readAgentTurns> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment extends {\n readonly terminal: infer Terminal;\n} ? Terminal : never : never : never) {\n if (terminal.state === \"unavailable\") {\n return Object.freeze({\n coverage: Object.freeze({ state: \"unavailable\" as const, reason: terminal.reason }),\n limitations: Object.freeze([Object.freeze({\n channel: \"conversation\",\n state: \"unavailable\" as const,\n reason: terminal.reason,\n })]),\n });\n }\n const names = [\"events\", \"actions\", \"messages\", \"status\", \"data\"] as const;\n const limitations: {\n readonly channel: string;\n readonly state: string;\n readonly reason?: string;\n }[] = [];\n const entries: Record<string, object> = {};\n for (const name of names) {\n const entry = terminal.evidenceCoverage[name];\n entries[name] = entry.status === \"complete\"\n ? Object.freeze({ state: \"complete\" as const })\n : Object.freeze({\n state: entry.status,\n reason: boundedText(entry.reason, MAX_COVERAGE_REASON_BYTES).value,\n });\n if (entry.status !== \"complete\") {\n limitations.push(Object.freeze({\n channel: name,\n state: entry.status,\n reason: boundedText(entry.reason, MAX_COVERAGE_REASON_BYTES).value,\n }));\n }\n }\n return Object.freeze({ coverage: Object.freeze(entries), limitations: Object.freeze(limitations) });\n}\nfunction projectTurnContext(context: ReturnType<typeof readTurnContexts> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment : never : never): InspectionJson {\n if (\"state\" in context.source) {\n return closeJson(Object.freeze({\n state: context.source.state,\n reason: context.source.reason,\n sessionIndex: context.sessionIndex,\n turnIndex: context.turnIndex,\n sourceOrder: context.sourceOrder,\n }));\n }\n return closeJson(Object.freeze({\n sessionIndex: context.sessionIndex,\n turnIndex: context.turnIndex,\n sourceOrder: context.sourceOrder,\n ...context.source.value,\n }));\n}\nfunction projectConversationItem(item: ReturnType<typeof readAgentTurns> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment extends {\n readonly items: readonly (infer Item)[];\n} ? Item : never : never : never, turnId: string, sessionId: string | undefined): InspectionJson {\n const base = Object.freeze({\n itemId: item.itemId,\n turnId,\n ...(sessionId === undefined ? {} : { sessionId }),\n ...(item.kind === \"tool-call\" || item.kind === \"tool-result\"\n ? { sequence: item.sequence }\n : \"eventId\" in item\n ? { eventId: item.eventId, sequence: item.sessionSequence }\n : { sequence: item.sequence }),\n });\n switch (item.kind) {\n case \"message\": return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n role: item.role,\n text: boundedText(item.text, MAX_CONVERSATION_TEXT_BYTES).value,\n textTruncated: boundedText(item.text, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"tool-start\": return closeJson(Object.freeze({\n ...base,\n kind: \"tool-call\" as const,\n occurrence: Object.freeze({\n state: \"exact\" as const,\n toolOccurrenceId: item.toolOccurrenceId,\n }),\n tool: item.tool,\n input: boundedText(item.inputSummary, MAX_CONVERSATION_TEXT_BYTES).value,\n inputTruncated: boundedText(item.inputSummary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"tool-finish\": return closeJson(Object.freeze({\n ...base,\n kind: \"tool-result\" as const,\n occurrence: item.occurrence.state === \"exact\"\n ? Object.freeze({\n state: \"exact\" as const,\n toolOccurrenceId: item.occurrence.toolOccurrenceId,\n })\n : item.occurrence,\n outcome: item.outcome,\n output: boundedText(item.outputSummary, MAX_CONVERSATION_TEXT_BYTES).value,\n outputTruncated: boundedText(item.outputSummary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"tool-call\": return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n occurrence: Object.freeze({\n state: \"unavailable\" as const,\n reason: \"exact-tool-occurrence-identity-not-recorded\" as const,\n }),\n tool: item.tool,\n input: boundedText(item.inputSummary, MAX_CONVERSATION_TEXT_BYTES).value,\n inputTruncated: boundedText(item.inputSummary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"tool-result\": return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n occurrence: Object.freeze({\n state: \"unavailable\" as const,\n reason: \"exact-tool-occurrence-identity-not-recorded\" as const,\n }),\n outcome: item.outcome,\n output: boundedText(item.outputSummary, MAX_CONVERSATION_TEXT_BYTES).value,\n outputTruncated: boundedText(item.outputSummary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\": return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n summary: boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES).value,\n summaryTruncated: boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"subagent\": return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n state: item.state,\n label: item.label,\n summary: boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES).value,\n summaryTruncated: boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n case \"input-request\": {\n const prompt = boundedText(item.promptSummary, MAX_CONVERSATION_TEXT_BYTES);\n const response = item.responseSummary === null\n ? null\n : boundedText(item.responseSummary, MAX_CONVERSATION_TEXT_BYTES);\n return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n state: item.state,\n prompt: prompt.value,\n promptTruncated: prompt.truncated,\n response: response?.value ?? null,\n responseTruncated: response?.truncated ?? false,\n }));\n }\n case \"skill-load\":\n case \"conversation-error\": return closeJson(Object.freeze({\n ...base,\n kind: item.kind,\n code: item.code,\n summary: boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES).value,\n summaryTruncated: boundedText(item.summary, MAX_CONVERSATION_TEXT_BYTES).truncated,\n }));\n }\n}\nexport function projectAttemptUsage(attachments: AttemptTraceAttachments, models: ResolvedModelRoles | undefined = attachments.models): InspectionAttemptUsageResult {\n const usage = projectApplicationUsage(attachments, models);\n const read = readCurrentAttachment(NiceEvalCurrentRecordAttachments.judgeUsage, attachments.judgeUsage);\n const judgeUsage = read.state === \"available\" ? projectJudgeUsage(read.value)\n : read.state === \"invalid\" ? Object.freeze({ state: \"invalid\" as const, reason: \"judge-usage-source-invalid\" as const })\n : Object.freeze({ state: \"unavailable\" as const, reason: \"judge-usage-not-recorded\" as const });\n const applicationEmptyComplete = attachments.adapterUsage !== undefined &&\n usage.totals.requests.state === \"available\" && usage.totals.requests.value === 0 && usage.totals.costs?.totalCalls === 0;\n return Object.freeze({ ...usage, judgeUsage,\n totalCosts: projectTotalUsageCosts(usage.totals, judgeUsage, applicationEmptyComplete, attachments.adapterUsage === undefined || attachments.adapterUsage.physical.familyRevision === 4) });\n}\nfunction projectApplicationUsage(attachments: AttemptTraceAttachments, models: ResolvedModelRoles | undefined): Omit<InspectionAttemptUsageResult, \"judgeUsage\" | \"totalCosts\"> {\n if (attachments.adapterUsage !== undefined) {\n const read = readAdapterUsageAttachment(attachments.adapterUsage, models);\n const modelUsage = projectAdapterModelUsage(read.state === \"available\" ? read.value : null, models, {\n basis: \"recorded-calls\", reason: read.state === \"invalid\" ? \"source-invalid\" : \"usage-not-recorded\",\n }, attachments.adapterUsage.physical.familyRevision === 4);\n const empty = {\n source: \"adapter\" as const,\n coverage: \"recorded-calls\" as const,\n limitationsTruncated: false,\n omittedLimitationCount: 0,\n turns: [], turnsTruncated: false, omittedTurnCount: 0,\n observations: [],\n calls: [], callsTruncated: false, omittedCallCount: 0,\n totals: {\n inputTokens: { state: \"unavailable\" as const, value: null, observationCount: 0 },\n outputTokens: { state: \"unavailable\" as const, value: null, observationCount: 0 },\n requests: { state: \"unavailable\" as const, value: null, observationCount: 0 },\n costs: effectiveCostTotals([], \"partial\"),\n }, hasMore: false, omittedObservationCount: 0,\n };\n if (read.state !== \"available\")\n return {\n ...empty, ...modelUsage,\n state: read.state, limitations: read.state === \"invalid\" ? read.issues.map((issue) => ({ issue })) : [],\n };\n const all = read.value.calls;\n const calls = effectiveUsageCalls(read.value);\n const numeric = (key: \"inputTokens\" | \"inputTotalTokens\" | \"outputTokens\") => {\n const known = all.flatMap((call) => call[key] === null ? [] : [call[key]]);\n const sum = known.reduce((total, value) => total + value, 0);\n if (known.length === 0 || !Number.isSafeInteger(sum))\n return { state: \"unavailable\" as const, value: null, observationCount: known.length };\n return {\n state: known.length === all.length && read.value.collection.state === \"complete\" ? \"available\" as const : \"partial\" as const,\n value: sum, observationCount: known.length,\n };\n };\n const inputTokens = numeric(\"inputTokens\");\n const outputTokens = numeric(\"outputTokens\");\n const complete = all.length > 0 && read.value.collection.state === \"complete\" &&\n all.every((call) => call.status !== \"unknown\" && call.outputTokens !== null &&\n (call.inputTotalTokens !== null ||\n [call.inputTokens, call.cacheReadTokens, call.cacheWriteTokens].every((value) => value !== null)));\n const unknownCosts = calls.filter((call) => call.effectiveCost === null).length;\n const partialCosts = calls.filter((call) => call.effectiveCost?.state === \"partial\").length;\n const costs = effectiveCostTotals(calls, read.value.collection.state);\n return {\n ...empty,\n ...modelUsage,\n state: complete ? \"complete\" : \"partial\",\n limitations: [\n ...(complete ? [] : [{ issue: \"Adapter usage describes only recorded calls; some quantities or terminal outcomes are unknown, or capture is incomplete.\" }]),\n ...(unknownCosts === 0 ? [] : [{ issue: `${unknownCosts} calls have no reported cost or sealed price estimate.` }]),\n ...(partialCosts === 0 ? [] : [{ issue: `${partialCosts} calls have partial estimates; sealed pricing evidence identifies unknown token or rate buckets.` }]),\n ],\n calls: calls.slice(0, 128), callsTruncated: all.length > 128, omittedCallCount: Math.max(0, all.length - 128),\n priceReceipts: read.value.priceReceipts,\n totals: {\n ...empty.totals, inputTokens, outputTokens, inputTotalTokens: numeric(\"inputTotalTokens\"),\n requests: { state: read.value.collection.state === \"complete\" ? \"available\" : \"partial\", value: all.length, observationCount: all.length },\n costs,\n },\n hasMore: all.length > 128,\n };\n }\n const read = readAgentTurns(attachments.agentTurns);\n const usage = projectUsage(read);\n return Object.freeze({\n ...usage,\n ...projectAdapterModelUsage(null, models, {\n basis: attachments.agentTurns === undefined ? \"unavailable\" : \"reported-sends\",\n reason: read.state === \"invalid\" ? \"source-invalid\" : attachments.agentTurns === undefined\n ? \"usage-not-recorded\" : \"physical-call-identity-not-recorded\",\n }),\n });\n}\nexport function projectAdapterUsageTokens(attachment: TraceAttachmentInput, models?: ResolvedModelRoles): {\n readonly value: number | null;\n readonly state: \"available\" | \"partial\" | \"unavailable\" | \"failed\";\n} {\n const read = readAdapterUsageAttachment(attachment, models);\n if (read.state !== \"available\") {\n return Object.freeze({\n value: null,\n state: read.state === \"invalid\" ? \"failed\" as const : \"unavailable\" as const,\n });\n }\n const material = adapterTokenMaterial(read.value, \"totalTokens\");\n return Object.freeze({ value: material.state === \"unavailable\" ? null : material.value, state: material.state === \"exact\" ? \"available\" as const : material.state === \"lower-bound\" ? \"partial\" as const : material.reason === \"usage-exceeds-safe-integer\" ? \"failed\" as const : \"unavailable\" as const });\n}\nfunction projectUsage(agentTurns: ReturnType<typeof readAgentTurns>): Omit<InspectionAttemptUsageResult, \"configuredModels\" | \"modelGroups\" | \"judgeUsage\" | \"totalCosts\" | \"cacheRead\"> {\n const sourceState = availability(agentTurns, USAGE_TARGETS);\n if (agentTurns.state !== \"available\") {\n return Object.freeze({\n ...sourceState,\n limitationsTruncated: false,\n omittedLimitationCount: 0,\n turns: Object.freeze([]),\n turnsTruncated: false,\n omittedTurnCount: 0,\n observations: Object.freeze([]),\n totals: unavailableInspectionUsageTotals(),\n hasMore: false,\n omittedObservationCount: 0,\n });\n }\n const limitations: InspectionAttemptUsageResult[\"limitations\"][number][] = [\n ...sourceState.limitations,\n ];\n const turns = agentTurns.value.segments.slice(0, MAX_CONVERSATION_TURNS).map((turn) => {\n const coverage = turn.terminal.state === \"unavailable\"\n ? Object.freeze({ state: \"unavailable\" as const, reason: turn.terminal.reason })\n : turn.terminal.evidenceCoverage.usage.status === \"complete\"\n ? Object.freeze({ state: \"complete\" as const })\n : Object.freeze({\n state: turn.terminal.evidenceCoverage.usage.status,\n reason: boundedText(turn.terminal.evidenceCoverage.usage.reason, MAX_COVERAGE_REASON_BYTES).value,\n });\n if (coverage.state !== \"complete\") {\n limitations.push(Object.freeze({\n source: \"agent-turns\",\n turnId: turn.turnId,\n channel: \"usage\",\n ...coverage,\n }));\n }\n return Object.freeze({ turnId: turn.turnId, coverage });\n });\n const allObservations: InspectionAttemptUsageResult[\"observations\"][number][] = [];\n for (const turn of agentTurns.value.segments) {\n for (const observation of turn.usage) {\n allObservations.push(Object.freeze({ turnId: turn.turnId, ...observation }));\n }\n }\n const observations = allObservations.slice(0, MAX_USAGE_OBSERVATIONS);\n return Object.freeze({\n state: sourceState.state === \"complete\" && limitations.length === 0 ? \"complete\" : \"partial\",\n limitations: Object.freeze(limitations.slice(0, MAX_SOURCE_LIMITATIONS)),\n limitationsTruncated: limitations.length > MAX_SOURCE_LIMITATIONS,\n omittedLimitationCount: Math.max(0, limitations.length - MAX_SOURCE_LIMITATIONS),\n turns: Object.freeze(turns),\n turnsTruncated: turns.length < agentTurns.value.segments.length,\n omittedTurnCount: agentTurns.value.segments.length - turns.length,\n observations: Object.freeze(observations),\n totals: usageTotals(allObservations, sourceState.state),\n hasMore: observations.length < allObservations.length,\n omittedObservationCount: allObservations.length - observations.length,\n });\n}\nexport function unavailableInspectionUsageTotals(): InspectionAttemptUsageResult[\"totals\"] {\n const unavailable = Object.freeze({\n state: \"unavailable\" as const,\n value: null,\n observationCount: 0,\n });\n return Object.freeze({\n inputTokens: unavailable,\n outputTokens: unavailable,\n requests: unavailable,\n providerCosts: Object.freeze({\n state: \"unavailable\" as const,\n values: Object.freeze([]),\n observationCount: 0,\n }),\n });\n}\nexport function combineInspectionUsageTotals(usages: readonly InspectionAttemptUsageResult[], incomplete: boolean): InspectionAttemptUsageResult[\"totals\"] {\n const numeric = (key: \"inputTokens\" | \"outputTokens\" | \"requests\"): InspectionAttemptUsageResult[\"totals\"][typeof key] => {\n const available = usages.flatMap(({ totals }) => {\n const value = totals[key];\n return value.value === null ? [] : [value];\n });\n if (available.length === 0) {\n return Object.freeze({ state: \"unavailable\", value: null, observationCount: 0 });\n }\n return Object.freeze({\n state: incomplete || usages.some(({ totals }) => totals[key].state !== \"available\")\n ? \"partial\" as const\n : \"available\" as const,\n value: available.reduce((total, entry) => total + entry.value!, 0),\n observationCount: available.reduce((total, entry) => total + entry.observationCount, 0),\n });\n };\n const costs = new Map<string, {\n readonly amount: string;\n readonly count: number;\n }>();\n for (const usage of usages) {\n for (const entry of usage.totals.providerCosts?.values ?? []) {\n const current = costs.get(entry.currency);\n costs.set(entry.currency, Object.freeze({\n amount: current === undefined\n ? entry.value\n : addCanonicalDecimal(current.amount, entry.value),\n count: (current?.count ?? 0) + entry.observationCount,\n }));\n }\n }\n const effectiveCosts = new Map<string, {\n readonly amount: string;\n readonly coveredCalls: number;\n readonly reportedCalls: number;\n readonly estimatedCalls: number;\n }>();\n const adapterCosts = usages.flatMap(({ totals }) => totals.costs === undefined ? [] : [totals.costs]);\n for (const total of adapterCosts) {\n for (const entry of total.values) {\n const current = effectiveCosts.get(entry.currency);\n effectiveCosts.set(entry.currency, Object.freeze({\n amount: current === undefined ? entry.value : addCanonicalDecimal(current.amount, entry.value),\n coveredCalls: (current?.coveredCalls ?? 0) + entry.coveredCalls,\n reportedCalls: (current?.reportedCalls ?? 0) + entry.reportedCalls,\n estimatedCalls: (current?.estimatedCalls ?? 0) + entry.estimatedCalls,\n }));\n }\n }\n const sourceFor = (reported: number, estimated: number) => reported > 0 && estimated > 0 ? \"mixed\" as const\n : reported > 0 ? \"reported\" as const\n : estimated > 0 ? \"estimated\" as const\n : null;\n const totalCalls = adapterCosts.reduce((sum, value) => sum + value.totalCalls, 0);\n const reportedCalls = [...effectiveCosts.values()].reduce((sum, value) => sum + value.reportedCalls, 0);\n const estimatedCalls = [...effectiveCosts.values()].reduce((sum, value) => sum + value.estimatedCalls, 0);\n return Object.freeze({\n inputTokens: numeric(\"inputTokens\"),\n outputTokens: numeric(\"outputTokens\"),\n requests: numeric(\"requests\"),\n ...(costs.size === 0 && adapterCosts.length > 0 ? {} : { providerCosts: costs.size === 0\n ? unavailableInspectionUsageTotals().providerCosts\n : Object.freeze({\n state: incomplete || usages.some(({ totals }) => totals.providerCosts?.state !== \"available\")\n ? \"partial\" as const\n : \"available\" as const,\n values: Object.freeze([...costs.entries()]\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([currency, total]) => Object.freeze({\n currency,\n value: total.amount,\n observationCount: total.count,\n }))),\n observationCount: [...costs.values()].reduce((total, value) => total + value.count, 0),\n }) }),\n ...(adapterCosts.length === 0 ? {} : { costs: Object.freeze({\n state: effectiveCosts.size === 0\n ? \"unavailable\" as const\n : incomplete || adapterCosts.some((value) => value.state !== \"complete\")\n ? \"partial\" as const\n : \"complete\" as const,\n source: sourceFor(reportedCalls, estimatedCalls),\n values: Object.freeze([...effectiveCosts.entries()]\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([currency, value]) => Object.freeze({\n currency,\n value: value.amount,\n source: sourceFor(value.reportedCalls, value.estimatedCalls)!,\n coveredCalls: value.coveredCalls,\n reportedCalls: value.reportedCalls,\n estimatedCalls: value.estimatedCalls,\n }))),\n totalCalls,\n }) }),\n });\n}\nfunction usageTotals(observations: InspectionAttemptUsageResult[\"observations\"], projectionState: InspectionAttemptUsageResult[\"state\"]): InspectionAttemptUsageResult[\"totals\"] {\n const state = projectionState === \"complete\" ? \"available\" as const : \"partial\" as const;\n const numeric = (values: readonly number[]): InspectionAttemptUsageResult[\"totals\"][\"inputTokens\"] => values.length === 0\n ? Object.freeze({ state: \"unavailable\", value: null, observationCount: 0 })\n : Object.freeze({\n state,\n value: values.reduce((total, value) => total + value, 0),\n observationCount: values.length,\n });\n const inputTokens = observations.flatMap((observation) => observation.kind === \"token-bucket\" && observation.bucket === \"input\"\n ? [observation.tokens]\n : []);\n const outputTokens = observations.flatMap((observation) => observation.kind === \"token-bucket\" && observation.bucket === \"output\"\n ? [observation.tokens]\n : []);\n const requests = observations.filter((observation) => observation.kind === \"request\");\n const costs = new Map<string, {\n readonly amount: string;\n readonly count: number;\n }>();\n for (const observation of observations) {\n if (observation.kind !== \"provider-cost\")\n continue;\n const current = costs.get(observation.currency);\n costs.set(observation.currency, Object.freeze({\n amount: current === undefined\n ? observation.amount\n : addCanonicalDecimal(current.amount, observation.amount),\n count: (current?.count ?? 0) + 1,\n }));\n }\n return Object.freeze({\n inputTokens: numeric(inputTokens),\n outputTokens: numeric(outputTokens),\n requests: numeric(requests.map(() => 1)),\n providerCosts: costs.size === 0\n ? Object.freeze({\n state: \"unavailable\" as const,\n values: Object.freeze([]),\n observationCount: 0,\n })\n : Object.freeze({\n state,\n values: Object.freeze([...costs.entries()]\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([currency, total]) => Object.freeze({\n currency,\n value: total.amount,\n observationCount: total.count,\n }))),\n observationCount: [...costs.values()].reduce((total, value) => total + value.count, 0),\n }),\n });\n}\nfunction addCanonicalDecimal(left: string, right: string): string {\n const split = (value: string): readonly [\n digits: bigint,\n scale: number\n ] => {\n const [integer, fraction = \"\"] = value.split(\".\");\n return [BigInt(`${integer}${fraction}`), fraction.length];\n };\n const [leftDigits, leftScale] = split(left);\n const [rightDigits, rightScale] = split(right);\n const scale = Math.max(leftScale, rightScale);\n const sum = leftDigits * 10n ** BigInt(scale - leftScale) +\n rightDigits * 10n ** BigInt(scale - rightScale);\n if (scale === 0)\n return sum.toString();\n const padded = sum.toString().padStart(scale + 1, \"0\");\n const integer = padded.slice(0, -scale);\n const fraction = padded.slice(-scale).replace(/0+$/u, \"\");\n return fraction.length === 0 ? integer : `${integer}.${fraction}`;\n}\nfunction projectCommands(source: InspectionFactSource, commands: ReturnType<typeof readSandboxCommands>): {\n readonly source: InspectionJson;\n readonly view: InspectionJson;\n} {\n const sourceState = availability(commands, COMMAND_TARGETS);\n if (commands.state !== \"available\") {\n return Object.freeze({ source: sourceDescriptor(commands), view: emptyView(sourceState) });\n }\n try {\n const items = commands.value.segments.slice(0, MAX_COMMANDS).map((command) => closeJson(Object.freeze({\n commandId: command.commandId,\n sequence: command.sequence,\n turnId: command.turnId,\n phase: projectLifecyclePhase(command.phase),\n invocation: projectInvocation(command.invocation),\n workingDirectory: command.workingDirectory,\n outcome: command.outcome,\n stdout: projectCommandStream(source, commands.contentMetadata, command.stdout),\n stderr: projectCommandStream(source, commands.contentMetadata, command.stderr),\n })));\n return Object.freeze({\n source: sourceDescriptor(commands),\n view: closeJson(Object.freeze({\n ...sourceState,\n items: Object.freeze(items),\n hasMore: items.length < commands.value.segments.length,\n omittedCommandCount: commands.value.segments.length - items.length,\n })),\n });\n }\n catch {\n const invalid = closeJson(Object.freeze({\n state: \"invalid\" as const,\n issues: Object.freeze([\"source-content-invalid\"]),\n }));\n return Object.freeze({\n source: invalid,\n view: closeJson(Object.freeze({\n state: \"invalid\" as const,\n issues: Object.freeze([\"source-content-invalid\"]),\n items: Object.freeze([]),\n hasMore: false,\n })),\n });\n }\n}\nfunction readSandboxCommands(attachment?: TraceAttachmentInput) {\n return readCurrentAttachment(NiceEvalCurrentRecordAttachments.sandboxCommands, attachment);\n}\nfunction projectInvocation(invocation: ReturnType<typeof readSandboxCommands> extends AttachmentRead<infer Value> ? Value extends {\n readonly segments: readonly (infer Segment)[];\n} ? Segment extends {\n readonly invocation: infer Invocation;\n} ? Invocation : never : never : never): InspectionJson {\n if (invocation.kind === \"shell\") {\n const command = boundedText(invocation.command, MAX_COMMAND_TEXT_BYTES);\n return closeJson(Object.freeze({\n kind: invocation.kind,\n command: command.value,\n commandTruncated: command.truncated,\n }));\n }\n const executable = boundedText(invocation.executable, MAX_COMMAND_TEXT_BYTES);\n const args = invocation.arguments.slice(0, MAX_COMMAND_ARGUMENTS).map((argument) => boundedText(argument, MAX_COMMAND_ARGUMENT_BYTES).value);\n return closeJson(Object.freeze({\n kind: invocation.kind,\n executable: executable.value,\n executableTruncated: executable.truncated,\n arguments: Object.freeze(args),\n argumentsTruncated: args.length < invocation.arguments.length ||\n invocation.arguments.slice(0, MAX_COMMAND_ARGUMENTS).some((argument) => boundedText(argument, MAX_COMMAND_ARGUMENT_BYTES).truncated),\n omittedArgumentCount: invocation.arguments.length - args.length,\n }));\n}\nfunction projectCommandStream(source: InspectionFactSource, contentMetadata: WeakMap<object, PersistedContentMetadata>, stream: {\n readonly content: RecordContentHandle;\n readonly retainedBytes: number;\n readonly totalSafeUtf8Bytes: number;\n readonly sha256: string;\n}): InspectionJson {\n const metadata = contentMetadata.get(stream.content);\n if (metadata === undefined ||\n metadata.byteLength !== stream.retainedBytes ||\n metadata.digest !== stream.sha256)\n throw new Error(\"Command stream metadata is invalid\");\n const text = readVerifiedText(source, metadata);\n const bounded = boundedText(text, MAX_COMMAND_STREAM_TEXT_BYTES);\n return closeJson(Object.freeze({\n state: \"available\" as const,\n text: bounded.value,\n textTruncated: bounded.truncated,\n retainedBytes: stream.retainedBytes,\n totalSafeUtf8Bytes: stream.totalSafeUtf8Bytes,\n sha256: stream.sha256,\n }));\n}\nexport function projectAttemptTiming(attachments: AttemptTraceAttachments): InspectionAttemptTimingResult {\n return projectTiming(readRunnerActivities(attachments.runnerActivities));\n}\nfunction projectTiming(activities: ReturnType<typeof readRunnerActivities>): InspectionAttemptTimingResult {\n const sourceState = availability(activities, TIMING_TARGETS);\n if (activities.state !== \"available\") {\n const limitations = sourceState.limitations.slice(0, MAX_SOURCE_LIMITATIONS);\n return Object.freeze({\n state: sourceState.state,\n limitations: Object.freeze(limitations),\n limitationsTruncated: limitations.length < sourceState.limitations.length,\n omittedLimitationCount: sourceState.limitations.length - limitations.length,\n activities: Object.freeze([]),\n hasMore: false,\n omittedActivityCount: 0,\n });\n }\n const items = activities.value.segments.slice(0, MAX_ACTIVITIES).map((activity) => Object.freeze({\n activityId: activity.activityId,\n sequence: activity.sequence,\n parentActivityId: activity.parentActivityId,\n turnId: activity.turnId,\n phase: projectLifecyclePhase(activity.phase),\n label: projectLifecyclePhase(activity.label),\n startOffsetMs: activity.startOffsetMs,\n durationMs: activity.durationMs,\n outcome: activity.outcome,\n }));\n const limitations = sourceState.limitations.slice(0, MAX_SOURCE_LIMITATIONS);\n return Object.freeze({\n state: sourceState.state,\n limitations: Object.freeze(limitations),\n limitationsTruncated: limitations.length < sourceState.limitations.length,\n omittedLimitationCount: sourceState.limitations.length - limitations.length,\n activities: Object.freeze(items),\n hasMore: items.length < activities.value.segments.length,\n omittedActivityCount: activities.value.segments.length - items.length,\n });\n}\nfunction readRunnerActivities(attachment?: TraceAttachmentInput) {\n return readCurrentAttachment(NiceEvalCurrentRecordAttachments.runnerActivities.attempt, attachment);\n}\nfunction projectDiagnostics(diagnostics: ReturnType<typeof readRunnerDiagnostics>): InspectionTraceResult[\"diagnostics\"] {\n const sourceState = availability(diagnostics, DIAGNOSTIC_TARGETS);\n const limitations = sourceState.limitations.slice(0, MAX_SOURCE_LIMITATIONS);\n if (diagnostics.state !== \"available\") {\n return Object.freeze({\n state: sourceState.state,\n limitations: Object.freeze(limitations),\n limitationsTruncated: limitations.length < sourceState.limitations.length,\n omittedLimitationCount: sourceState.limitations.length - limitations.length,\n items: Object.freeze([]),\n hasMore: false,\n omittedDiagnosticCount: 0,\n });\n }\n const items = diagnostics.value.segments.slice(0, MAX_DIAGNOSTICS).map((diagnostic) => {\n const summary = boundedText(diagnostic.summary, MAX_DIAGNOSTIC_SUMMARY_BYTES);\n const causes = diagnostic.causes.slice(0, MAX_DIAGNOSTIC_CAUSES).map((cause) => {\n const causeSummary = boundedText(cause.summary, MAX_DIAGNOSTIC_CAUSE_BYTES);\n return Object.freeze({\n code: cause.code,\n summary: causeSummary.value,\n summaryTruncated: causeSummary.truncated,\n });\n });\n return Object.freeze({\n diagnosticId: diagnostic.diagnosticId,\n sequence: diagnostic.sequence,\n turnId: diagnostic.turnId,\n phase: projectLifecyclePhase(diagnostic.phase),\n kind: diagnostic.kind,\n code: diagnostic.code,\n summary: summary.value,\n summaryTruncated: summary.truncated,\n causes: Object.freeze(causes),\n causesTruncated: causes.length < diagnostic.causes.length,\n omittedCauseCount: diagnostic.causes.length - causes.length,\n redaction: diagnostic.redaction,\n sourceFrame: diagnostic.sourceFrame === null\n ? null\n : diagnostic.sourceFrame.value,\n });\n });\n return Object.freeze({\n state: sourceState.state,\n limitations: Object.freeze(limitations),\n limitationsTruncated: limitations.length < sourceState.limitations.length,\n omittedLimitationCount: sourceState.limitations.length - limitations.length,\n items: Object.freeze(items),\n hasMore: items.length < diagnostics.value.segments.length,\n omittedDiagnosticCount: diagnostics.value.segments.length - items.length,\n });\n}\nfunction readRunnerDiagnostics(attachment?: TraceAttachmentInput) {\n return readCurrentAttachment(NiceEvalCurrentRecordAttachments.runnerDiagnostics.attempt, attachment);\n}\nfunction emptyView(state: ProjectionState): InspectionJson {\n return closeJson(Object.freeze({ ...state, items: Object.freeze([]), hasMore: false }));\n}\nfunction readVerifiedText(source: InspectionFactSource, metadata: PersistedContentMetadata): string {\n const bytes = new Uint8Array(metadata.byteLength);\n const digest = new InspectionSha256();\n let offset = 0;\n let afterOrdinal = -1;\n let expectedOrdinal = 0;\n let observedChunks = 0;\n while (true) {\n const page = source.readContentPage(metadata.contentId, afterOrdinal, CONTENT_PAGE_SIZE);\n if (page.contentId !== metadata.contentId ||\n page.afterOrdinal !== afterOrdinal ||\n page.chunks.length === 0 && page.nextOrdinal !== null)\n throw new Error(\"Content page is invalid\");\n for (const chunk of page.chunks) {\n if (chunk.ordinal !== expectedOrdinal || offset + chunk.bytes.byteLength > bytes.byteLength) {\n throw new Error(\"Content chunk sequence is invalid\");\n }\n bytes.set(chunk.bytes, offset);\n digest.update(chunk.bytes);\n offset += chunk.bytes.byteLength;\n expectedOrdinal += 1;\n observedChunks += 1;\n }\n if (page.nextOrdinal === null)\n break;\n if (page.nextOrdinal !== expectedOrdinal - 1 || observedChunks > metadata.chunkCount) {\n throw new Error(\"Content continuation is invalid\");\n }\n afterOrdinal = page.nextOrdinal;\n }\n if (offset !== metadata.byteLength ||\n observedChunks !== metadata.chunkCount ||\n digest.digestHex() !== metadata.digest)\n throw new Error(\"Content does not match its sealed metadata\");\n return new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes);\n}\nfunction boundedText(value: string, maximumBytes: number): {\n readonly value: string;\n readonly truncated: boolean;\n} {\n if (utf8ByteLength(value) <= maximumBytes) {\n return Object.freeze({ value, truncated: false });\n }\n let output = \"\";\n let bytes = 0;\n for (const character of value) {\n const characterBytes = utf8ByteLength(character);\n if (bytes + characterBytes > maximumBytes)\n break;\n output += character;\n bytes += characterBytes;\n }\n return Object.freeze({ value: output, truncated: true });\n}\nfunction exactMarker(value: unknown, key: string): unknown | undefined {\n if (typeof value !== \"object\" || value === null || Array.isArray(value))\n return undefined;\n const keys = Reflect.ownKeys(value);\n if (keys.length !== 1 || keys[0] !== key)\n return undefined;\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n return descriptor !== undefined && descriptor.enumerable && \"value\" in descriptor\n ? descriptor.value\n : undefined;\n}\nfunction hasOwnMarker(value: unknown, key: string): boolean {\n return typeof value === \"object\" && value !== null && !Array.isArray(value) &&\n Object.prototype.hasOwnProperty.call(value, key);\n}\nfunction closeJson(value: unknown): InspectionJson {\n const closed = closeInspectionJson(value);\n if (isInspectionCodecError(closed))\n throw closed;\n return closed as InspectionJson;\n}\nfunction jsonByteLength(value: unknown): number {\n return utf8ByteLength(JSON.stringify(value));\n}\n"]}
|