From a6bf81f756203b12848b9214cbec4d90a12e8c7f Mon Sep 17 00:00:00 2001 From: ihearttokyo <164558075+ihearttokyo@users.noreply.github.com> Date: Fri, 24 Jul 2026 22:53:43 -0400 Subject: [PATCH 01/21] feat(codex): add tool-excluded active throughput metrics --- src/codex-cache.ts | 5 +- src/codex-throughput.ts | 521 +++++++++++++++++++++++++++++++++ src/dashboard.tsx | 16 +- src/main.ts | 106 +++++++ src/model-breakdown.ts | 5 + src/parser.ts | 14 + src/providers/codex.ts | 272 ++++++++++++++++- src/providers/types.ts | 3 + src/session-cache.ts | 8 +- src/types.ts | 5 +- tests/cli-codex-tps.test.ts | 46 +++ tests/codex-throughput.test.ts | 124 ++++++++ tests/providers/codex.test.ts | 216 ++++++++++++++ 13 files changed, 1326 insertions(+), 15 deletions(-) create mode 100644 src/codex-throughput.ts create mode 100644 tests/cli-codex-tps.test.ts create mode 100644 tests/codex-throughput.test.ts diff --git a/src/codex-cache.ts b/src/codex-cache.ts index 0eb59b4..6146e8e 100644 --- a/src/codex-cache.ts +++ b/src/codex-cache.ts @@ -11,9 +11,10 @@ import type { ParsedProviderCall } from './providers/types.js' // v5: also attribute CLI-wrapped MCP calls (`mcp-cli call server tool`) that // Codex logs as a plain exec_command (issue #478 follow-up). Force a re-parse // so sessions cached under v4 pick up the CLI-MCP attribution. -// v6: rich-session-capture — per-call locAdded/locRemoved/editFailed from +// v6/v7: rich-session-capture — per-call locAdded/locRemoved/editFailed from // patch_apply_end. Sessions cached under v5 lack these fields; re-parse to add. -const CODEX_CACHE_VERSION = 7 +// v8: persist native MCP timing and compact invocation attribution. +const CODEX_CACHE_VERSION = 8 const CACHE_FILE = 'codex-results.json' type FileFingerprint = { mtimeMs: number; sizeBytes: number } diff --git a/src/codex-throughput.ts b/src/codex-throughput.ts new file mode 100644 index 0000000..4796206 --- /dev/null +++ b/src/codex-throughput.ts @@ -0,0 +1,521 @@ +import { open, stat } from 'node:fs/promises' +import { StringDecoder } from 'node:string_decoder' + +export type CodexThroughputPoint = { + timestamp: string + model?: string + outputTokens: number + reasoningTokens: number + generatedTokens: number + taskGeneratedTokens?: number + elapsedSeconds?: number + generatedTokensPerSecond?: number + activeDurationSeconds?: number + activeGeneratedTokensPerSecond?: number + toolWaitSeconds?: number +} + +type TokenUsage = { + output_tokens?: number + reasoning_output_tokens?: number + total_tokens?: number +} + +type RolloutLine = { + type?: string + timestamp?: string + payload?: { + type?: string + turn_id?: string + call_id?: string + started_at?: number + duration_ms?: number + duration?: { secs?: number; nanos?: number } | string + model?: string + forked_from_id?: string + info?: { + last_token_usage?: TokenUsage + total_token_usage?: TokenUsage + } + } +} + +const CHUNK_BYTES = 64 * 1024 +const MAX_PENDING_LINE_CHARS = 4 * 1024 * 1024 +const TRUNCATION_MARKER = '__CODEBURN_TRUNCATED_LINE__' + +function rawString(source: string, field: string): string | undefined { + const match = new RegExp(`"${field}"\\s*:\\s*"((?:\\\\.|[^"\\\\])*)"`).exec(source) + if (!match) return undefined + try { return JSON.parse(`"${match[1]}"`) as string } catch { return undefined } +} + +function rawNumber(source: string, field: string): number | undefined { + const match = new RegExp(`"${field}"\\s*:\\s*(-?\\d+(?:\\.\\d+)?)`).exec(source) + if (!match) return undefined + const value = Number(match[1]) + return Number.isFinite(value) ? value : undefined +} + +function compactUsage(source: string, field: 'last_token_usage' | 'total_token_usage'): TokenUsage | undefined { + const index = source.indexOf(`"${field}"`) + if (index < 0) return undefined + const body = source.slice(index, index + 4096) + return { + output_tokens: rawNumber(body, 'output_tokens'), + reasoning_output_tokens: rawNumber(body, 'reasoning_output_tokens'), + total_tokens: rawNumber(body, 'total_tokens'), + } +} + +function parseRawDurationValue(value: string): number | undefined { + const objectMatch = /^\s*\{\s*"secs"\s*:\s*(-?\d+(?:\.\d+)?)\s*,\s*"nanos"\s*:\s*(-?\d+(?:\.\d+)?)\s*\}/.exec(value) + if (objectMatch) { + const seconds = Number(objectMatch[1]) + const nanos = Number(objectMatch[2]) + if (Number.isFinite(seconds) && Number.isFinite(nanos)) return seconds * 1000 + nanos / 1e6 + } + const stringMatch = /^\s*"(\d+(?:\.\d+)?)(ms|s)?"/.exec(value) + if (stringMatch) { + const parsed = Number(stringMatch[1]) + if (Number.isFinite(parsed)) return parsed * (stringMatch[2] === 's' ? 1000 : 1) + } + const numberMatch = /^\s*(-?\d+(?:\.\d+)?)/.exec(value) + if (numberMatch) { + const parsed = Number(numberMatch[1]) + if (Number.isFinite(parsed)) return parsed + } + return undefined +} + +function durationMs(payload: RolloutLine['payload']): number | undefined { + if (!payload) return undefined + if (typeof payload.duration_ms === 'number' && Number.isFinite(payload.duration_ms)) return payload.duration_ms + if (typeof payload.duration === 'object' && payload.duration) { + const seconds = payload.duration.secs + const nanos = payload.duration.nanos + if (typeof seconds === 'number' && typeof nanos === 'number' && Number.isFinite(seconds) && Number.isFinite(nanos)) { + return seconds * 1000 + nanos / 1e6 + } + } + if (typeof payload.duration === 'string') { + const match = /^(\d+(?:\.\d+)?)(ms|s)?$/.exec(payload.duration.trim()) + if (match) return Number(match[1]) * (match[2] === 's' ? 1000 : 1) + } + return undefined +} + +function mergeToolIntervals(intervals: Array<[number, number]>, durationMs: number, taskStartedAt?: number, taskCompletedAt?: number): number { + const windowStart = taskStartedAt ?? (taskCompletedAt !== undefined ? taskCompletedAt - durationMs : undefined) + const windowEnd = windowStart !== undefined ? windowStart + durationMs : undefined + const clipped = intervals.map(([start, end]) => [ + windowStart !== undefined ? Math.max(start, windowStart) : start, + windowEnd !== undefined ? Math.min(end, windowEnd) : end, + ] as [number, number]).filter(([start, end]) => end > start) + const merged = clipped.sort((a, b) => a[0] - b[0]).reduce>((result, interval) => { + const previous = result.at(-1) + if (previous && interval[0] <= previous[1]) previous[1] = Math.max(previous[1], interval[1]) + else result.push([...interval]) + return result + }, []) + return Math.min(durationMs, merged.reduce((total, [start, end]) => total + end - start, 0)) +} + +function parseLine(line: string): RolloutLine | null { + const payloadStart = line.indexOf('"payload"') + const payloadHead = payloadStart >= 0 ? line.slice(payloadStart) : line + if (line.length > 256 * 1024 || line.startsWith(TRUNCATION_MARKER)) { + const payloadType = rawString(payloadHead, 'type') + const infoStart = payloadHead.indexOf('"info"') + const info = infoStart >= 0 ? payloadHead.slice(infoStart) : '' + return { + type: rawString(line, 'type'), + timestamp: rawString(line, 'timestamp'), + payload: { + type: payloadType, + turn_id: rawString(payloadHead, 'turn_id'), + call_id: rawString(payloadHead, 'call_id'), + started_at: rawNumber(payloadHead, 'started_at'), + duration_ms: rawNumber(payloadHead, 'duration_ms'), + duration: rawString(payloadHead, 'duration') ?? (rawNumber(payloadHead, 'secs') !== undefined + ? { secs: rawNumber(payloadHead, 'secs'), nanos: rawNumber(payloadHead, 'nanos') } + : undefined), + model: rawString(payloadHead, 'model'), + forked_from_id: rawString(payloadHead, 'forked_from_id'), + info: { + last_token_usage: compactUsage(info, 'last_token_usage'), + total_token_usage: compactUsage(info, 'total_token_usage'), + }, + }, + } + } + try { + return JSON.parse(line) as RolloutLine + } catch { + return null + } +} + +/** + * Estimate generated tokens/sec from a Codex rollout's persisted checkpoints. + * Codex JSONL has no per-token timestamps, so this is deliberately a + * checkpoint-to-checkpoint estimate, not live decode speed. + */ +type ThroughputState = { + model?: string + previousTotal?: number + previousOutput: number + previousReasoning: number + previousTimestamp?: number + currentTaskGenerated: number + currentTaskToolIntervals: Array<[number, number]> + currentTaskStartedAt?: number + toolStarts: Map + latestPoint?: CodexThroughputPoint + points: CodexThroughputPoint[] + forkCutoffMs?: number +} + +function newThroughputState(): ThroughputState { + return { + previousOutput: 0, + previousReasoning: 0, + currentTaskGenerated: 0, + currentTaskToolIntervals: [], + toolStarts: new Map(), + points: [], + } +} + +/** + * Incrementally parses a rollout. Watch mode feeds only newly appended bytes + * to this reader, so a growing JSONL file is not reparsed from byte zero. + */ +export class CodexThroughputReader { + private offset = 0 + private pending = '' + private decoder = new StringDecoder('utf8') + private pendingDurationMs: number | undefined + private scanDepth = 0 + private scanPayloadDepth: number | undefined + private scanInString = false + private scanEscape = false + private scanString = '' + private scanLastString = '' + private scanAwaitingColon = false + private scanCurrentKey: string | undefined + private scanCapture: { mode: 'string' | 'object' | 'primitive'; text: string; depth: number } | undefined + private state = newThroughputState() + + reset(): void { + this.offset = 0 + this.pending = '' + this.decoder = new StringDecoder('utf8') + this.pendingDurationMs = undefined + this.scanDepth = 0 + this.scanPayloadDepth = undefined + this.scanInString = false + this.scanEscape = false + this.scanString = '' + this.scanLastString = '' + this.scanAwaitingColon = false + this.scanCurrentKey = undefined + this.scanCapture = undefined + this.state = newThroughputState() + } + + private finishDurationCapture(): void { + if (!this.scanCapture) return + const value = this.scanCapture.mode === 'string' ? `"${this.scanCapture.text}"` : this.scanCapture.text + const parsed = parseRawDurationValue(value) + if (parsed !== undefined && this.pendingDurationMs === undefined) this.pendingDurationMs = parsed + this.scanCapture = undefined + } + + private scanDurationSegment(source: string): void { + for (let i = 0; i < source.length; i++) { + const char = source[i]! + if (this.scanInString) { + if (this.scanEscape) { + this.scanEscape = false + if (this.scanCapture?.mode === 'object') this.scanCapture.text += char + else if (this.scanCapture?.mode === 'string') this.scanCapture.text += char + else this.scanString += char + continue + } + if (char === '\\') { + this.scanEscape = true + if (this.scanCapture?.mode === 'object' || this.scanCapture?.mode === 'string') this.scanCapture.text += char + continue + } + if (char === '"') { + if (this.scanCapture?.mode === 'object') this.scanCapture.text += char + this.scanInString = false + if (this.scanCapture?.mode === 'string') this.finishDurationCapture() + else if (this.scanCapture?.mode === 'object') { + this.scanAwaitingColon = false + this.scanCurrentKey = undefined + } else { + this.scanLastString = this.scanString + this.scanAwaitingColon = true + } + continue + } + if (this.scanCapture?.mode === 'object' || this.scanCapture?.mode === 'string') this.scanCapture.text += char + else this.scanString += char + continue + } + + if (this.scanCapture?.mode === 'primitive') { + if (char === ',' || char === '}' || char === ']') this.finishDurationCapture() + else { this.scanCapture.text += char; continue } + } + if (this.scanAwaitingColon) { + if (/\s/.test(char)) continue + if (char === ':') { + this.scanCurrentKey = this.scanLastString + this.scanAwaitingColon = false + continue + } + this.scanAwaitingColon = false + } + if (char === '"') { + this.scanString = '' + if (this.scanCapture?.mode === 'object') this.scanCapture.text += char + if (this.scanCurrentKey === 'duration' && this.scanPayloadDepth === this.scanDepth) { + this.scanCapture = { mode: 'string', text: '', depth: this.scanDepth } + this.scanCurrentKey = undefined + } + this.scanInString = true + continue + } + if (char === '{' || char === '[') { + if (this.scanCurrentKey === 'payload' && char === '{' && this.scanPayloadDepth === undefined) { + this.scanPayloadDepth = this.scanDepth + 1 + } + if (this.scanCurrentKey === 'duration' && this.scanPayloadDepth === this.scanDepth) { + this.scanCapture = { mode: 'object', text: char, depth: this.scanDepth + 1 } + this.scanCurrentKey = undefined + } else if (this.scanCapture?.mode === 'object') { + this.scanCapture.text += char + } + this.scanDepth++ + continue + } + if (char === '}' || char === ']') { + if (this.scanCapture?.mode === 'object') this.scanCapture.text += char + this.scanDepth = Math.max(0, this.scanDepth - 1) + if (this.scanCapture?.mode === 'object' && this.scanDepth < this.scanCapture.depth) this.finishDurationCapture() + continue + } + if (this.scanCurrentKey === 'duration' && this.scanPayloadDepth === this.scanDepth && !/\s/.test(char)) { + this.scanCapture = { mode: 'primitive', text: char, depth: this.scanDepth } + this.scanCurrentKey = undefined + continue + } + if (this.scanCapture?.mode === 'object') this.scanCapture.text += char + } + } + + private processLine(line: string, durationOverride?: number): void { + const entry = parseLine(line) + if (!entry) return + if (durationOverride !== undefined && (line.startsWith(TRUNCATION_MARKER) || line.length > 256 * 1024) && entry.type === 'event_msg' && (entry.payload?.type === 'mcp_tool_call_end' || entry.payload?.type === 'task_complete')) { + entry.payload = { ...entry.payload, duration_ms: durationOverride } + } + const state = this.state + if (entry.type === 'session_meta') { + if (entry.payload?.model) state.model = entry.payload.model + if (entry.payload?.forked_from_id && entry.timestamp) { + const timestamp = Date.parse(entry.timestamp) + if (Number.isFinite(timestamp)) state.forkCutoffMs = timestamp + 5000 + } + return + } + if (entry.type === 'turn_context' && entry.payload?.model) state.model = entry.payload.model + const entryTimestamp = entry.timestamp ? Date.parse(entry.timestamp) : NaN + const isForkReplay = state.forkCutoffMs !== undefined && Number.isFinite(entryTimestamp) && entryTimestamp < state.forkCutoffMs + if (isForkReplay && ( + entry.payload?.type === 'task_started' || + entry.payload?.type === 'task_complete' || + entry.payload?.type === 'function_call' || + entry.payload?.type === 'function_call_output' || + entry.payload?.type === 'custom_tool_call' || + entry.payload?.type === 'custom_tool_call_output' || + entry.payload?.type === 'mcp_tool_call_end' || + entry.payload?.type === 'patch_apply_end' || + entry.payload?.type === 'token_count' + )) return + if (entry.type === 'event_msg' && entry.payload?.type === 'task_started') { + state.currentTaskGenerated = 0 + state.currentTaskToolIntervals = [] + const startedAt = entry.timestamp ? Date.parse(entry.timestamp) : NaN + state.currentTaskStartedAt = Number.isFinite(startedAt) ? startedAt : undefined + state.toolStarts.clear() + } + if (entry.type === 'response_item' && (entry.payload?.type === 'function_call' || entry.payload?.type === 'custom_tool_call') && entry.payload.call_id && entry.timestamp) { + const started = Date.parse(entry.timestamp) + if (Number.isFinite(started)) state.toolStarts.set(entry.payload.call_id, started) + } + if (entry.type === 'response_item' && (entry.payload?.type === 'function_call_output' || entry.payload?.type === 'custom_tool_call_output') && entry.payload.call_id && entry.timestamp) { + const ended = Date.parse(entry.timestamp) + const started = state.toolStarts.get(entry.payload.call_id) + if (started !== undefined && Number.isFinite(ended) && ended > started) state.currentTaskToolIntervals.push([started, ended]) + state.toolStarts.delete(entry.payload.call_id) + } + if (entry.type === 'event_msg' && entry.payload?.type === 'mcp_tool_call_end' && entry.timestamp) { + const ended = Date.parse(entry.timestamp) + const elapsed = durationMs(entry.payload) + if (Number.isFinite(ended) && elapsed !== undefined && elapsed > 0) state.currentTaskToolIntervals.push([ended - elapsed, ended]) + } + if (entry.type === 'event_msg' && entry.payload?.type === 'task_complete') { + const taskDurationMs = durationMs(entry.payload) + if (state.latestPoint && typeof taskDurationMs === 'number' && taskDurationMs > 0 && state.currentTaskGenerated > 0) { + state.latestPoint.taskGeneratedTokens = state.currentTaskGenerated + const completedAt = entry.timestamp ? Date.parse(entry.timestamp) : undefined + const toolWaitMs = mergeToolIntervals(state.currentTaskToolIntervals, taskDurationMs, state.currentTaskStartedAt, Number.isFinite(completedAt) ? completedAt : undefined) + const activeMs = taskDurationMs - toolWaitMs + if (activeMs > 0) { + state.latestPoint.activeDurationSeconds = activeMs / 1000 + state.latestPoint.toolWaitSeconds = toolWaitMs / 1000 + state.latestPoint.activeGeneratedTokensPerSecond = state.currentTaskGenerated / (activeMs / 1000) + } + } + } + if (entry.type !== 'event_msg' || entry.payload?.type !== 'token_count') return + const info = entry.payload.info + if (!info || !entry.timestamp) return + const last = info.last_token_usage + const total = info.total_token_usage + const cumulative = total?.total_tokens + if (cumulative !== undefined && cumulative === state.previousTotal) return + let outputTokens = last?.output_tokens ?? 0 + let reasoningTokens = last?.reasoning_output_tokens ?? 0 + if (!last && total && cumulative !== undefined && state.previousTotal !== undefined) { + outputTokens = Math.max(0, (total.output_tokens ?? 0) - state.previousOutput) + reasoningTokens = Math.max(0, (total.reasoning_output_tokens ?? 0) - state.previousReasoning) + } + if (cumulative !== undefined) { + state.previousTotal = cumulative + state.previousOutput = total?.output_tokens ?? state.previousOutput + state.previousReasoning = total?.reasoning_output_tokens ?? state.previousReasoning + } + const generatedTokens = outputTokens + reasoningTokens + if (generatedTokens <= 0) return + const timestampMs = Date.parse(entry.timestamp) + if (!Number.isFinite(timestampMs)) return + const point: CodexThroughputPoint = { + timestamp: entry.timestamp, + model: state.model, + outputTokens, + reasoningTokens, + generatedTokens, + } + state.currentTaskGenerated += generatedTokens + state.latestPoint = point + if (state.previousTimestamp !== undefined && timestampMs > state.previousTimestamp) { + const elapsedSeconds = (timestampMs - state.previousTimestamp) / 1000 + point.elapsedSeconds = elapsedSeconds + point.generatedTokensPerSecond = generatedTokens / elapsedSeconds + } + state.previousTimestamp = timestampMs + state.points.push(point) + if (state.points.length > 10000) state.points.splice(0, state.points.length - 10000) + } + + async update(filePath: string, limit = 10, finalize = false): Promise { + const info = await stat(filePath) + if (info.size < this.offset) this.reset() + const bytesToRead = info.size - this.offset + if (bytesToRead > 0) { + const file = await open(filePath, 'r') + try { + let position = this.offset + while (position < info.size) { + const buffer = Buffer.allocUnsafe(Math.min(CHUNK_BYTES, info.size - position)) + const { bytesRead } = await file.read(buffer, 0, buffer.length, position) + if (bytesRead === 0) break + position += bytesRead + this.offset = position + let chunk = this.decoder.write(buffer.subarray(0, bytesRead)) + while (chunk.length > 0) { + const newlineIndex = chunk.search(/\r?\n/) + const segment = newlineIndex >= 0 ? chunk.slice(0, newlineIndex) : chunk + this.pending += segment + this.scanDurationSegment(segment) + if (newlineIndex < 0) break + const newlineLength = chunk[newlineIndex] === '\r' ? 2 : 1 + const line = this.pending + const durationOverride = this.pendingDurationMs + this.pending = '' + this.pendingDurationMs = undefined + this.scanDepth = 0 + this.scanPayloadDepth = undefined + this.scanInString = false + this.scanEscape = false + this.scanString = '' + this.scanLastString = '' + this.scanAwaitingColon = false + this.scanCurrentKey = undefined + this.scanCapture = undefined + this.processLine(line, durationOverride) + chunk = chunk.slice(newlineIndex + newlineLength) + } + if (this.pending.length > MAX_PENDING_LINE_CHARS) { + const body = this.pending.startsWith(TRUNCATION_MARKER) + ? this.pending.slice(TRUNCATION_MARKER.length) + : this.pending + this.pending = TRUNCATION_MARKER + body.slice(0, 256 * 1024) + body.slice(-256 * 1024) + } + } + } finally { + await file.close() + } + } + if (finalize && this.pending) { + this.processLine(this.pending, this.pendingDurationMs) + this.pending = '' + this.pendingDurationMs = undefined + } + return limit > 0 ? this.state.points.slice(-limit) : this.state.points.slice() + } +} + +export async function readCodexThroughput(filePath: string, limit = 10): Promise { + return new CodexThroughputReader().update(filePath, limit, true) +} + +export async function newestCodexSession(sessions: Array<{ path: string }>): Promise { + let newest: { path: string; mtimeMs: number } | undefined + for (const session of sessions) { + try { + const info = await stat(session.path) + if (!newest || info.mtimeMs > newest.mtimeMs) newest = { path: session.path, mtimeMs: info.mtimeMs } + } catch { + // A session can disappear while Codex rotates or archives it. + } + } + return newest?.path +} + +export function renderCodexThroughput(points: CodexThroughputPoint[], filePath: string): string { + const latest = points.at(-1) + if (!latest) return `No token_count checkpoints found in ${filePath}.` + const lines = [ + 'CodeBurn Codex throughput estimate', + `Session: ${filePath}`, + `Latest checkpoint: ${latest.timestamp}`, + `Latest checkpoint tokens: ${latest.generatedTokens.toLocaleString()} (${latest.outputTokens.toLocaleString()} output + ${latest.reasoningTokens.toLocaleString()} reasoning)`, + ] + if (latest.taskGeneratedTokens !== undefined) lines.push(`Completed task total: ${latest.taskGeneratedTokens.toLocaleString()} generated tokens`) + if (latest.activeGeneratedTokensPerSecond !== undefined) { + lines.push(`Active throughput: ${latest.activeGeneratedTokensPerSecond.toFixed(1)} generated tokens/sec over ${latest.activeDurationSeconds!.toFixed(1)}s`) + lines.push(`Excluded tool wait: ${latest.toolWaitSeconds!.toFixed(1)}s`) + } else if (latest.generatedTokensPerSecond !== undefined) { + lines.push(`Checkpoint estimate: ${latest.generatedTokensPerSecond.toFixed(1)} generated tokens/sec over ${latest.elapsedSeconds!.toFixed(1)}s`) + } else { + lines.push('Throughput: unavailable (waiting for a completed turn)') + } + lines.push('Note: offline JSONL estimate; tool intervals are removed, but server/prompt latency may remain.') + return lines.join('\n') +} diff --git a/src/dashboard.tsx b/src/dashboard.tsx index 1d9b6d2..0fad8cd 100644 --- a/src/dashboard.tsx +++ b/src/dashboard.tsx @@ -46,7 +46,10 @@ export function showEmptyState(projectCount: number, scrollableHistory: boolean, return historyProjectCount === 0 && !historyLoading } -const MIN_WIDE = 90 +// The By Model panel now carries six numeric columns. Keep panels stacked until +// each half has enough room for those columns instead of truncating Tok/s at +// ordinary 100–120 column terminals. +const MIN_WIDE = 130 const ORANGE = '#FF8C42' const DIM = '#555555' const GOLD = '#FFD700' @@ -439,6 +442,7 @@ const MODEL_COL_COST = 8 const MODEL_COL_CACHE = 7 const MODEL_COL_CALLS = 7 const MODEL_COL_ONESHOT = 7 +const MODEL_COL_TPS = 7 const MODEL_NAME_WIDTH = 14 const MIN_EDIT_TURNS_FOR_RATE = 5 @@ -448,6 +452,7 @@ function ModelBreakdown({ projects, pw, bw }: { projects: ProjectSummary[]; pw: const modelTotals = aggregateModelTotals(projects) const modelEfficiency = aggregateModelEfficiency(projects) const anyEstimated = Object.values(modelTotals).some(d => d.estimatedCostUSD > 0) + const anyActiveTiming = Object.values(modelTotals).some(d => d.activeDurationMs > 0 && d.activeGeneratedTokens > 0) const sorted = Object.entries(modelTotals).sort(([, a], [, b]) => b.costUSD - a.costUSD) const maxCost = sorted[0]?.[1]?.costUSD ?? 0 const unpriced = findUnpricedModels(Object.entries(modelTotals).map(([model, d]) => ({ @@ -459,7 +464,7 @@ function ModelBreakdown({ projects, pw, bw }: { projects: ProjectSummary[]; pw: return ( - {''.padEnd(bw + 1 + MODEL_NAME_WIDTH)}{'cost'.padStart(MODEL_COL_COST)}{'cache'.padStart(MODEL_COL_CACHE)}{'calls'.padStart(MODEL_COL_CALLS)}{'1-shot'.padStart(MODEL_COL_ONESHOT)} + {''.padEnd(bw + 1 + MODEL_NAME_WIDTH)}{'cost'.padStart(MODEL_COL_COST)}{'cache'.padStart(MODEL_COL_CACHE)}{'calls'.padStart(MODEL_COL_CALLS)}{'1-shot'.padStart(MODEL_COL_ONESHOT)}{'Tok/s'.padStart(MODEL_COL_TPS)} {sorted.map(([model, data], i) => { const totalInput = data.freshInput + data.cacheRead + data.cacheWrite const cacheHit = totalInput > 0 ? (data.cacheRead / totalInput) * 100 : 0 @@ -468,6 +473,9 @@ function ModelBreakdown({ projects, pw, bw }: { projects: ProjectSummary[]; pw: const oneShotLabel = efficiency && efficiency.editTurns >= MIN_EDIT_TURNS_FOR_RATE && efficiency.oneShotRate !== null ? `${efficiency.oneShotRate.toFixed(1)}%` : '-' + const tpsLabel = data.activeDurationMs > 0 && data.activeGeneratedTokens > 0 + ? (data.activeGeneratedTokens / (data.activeDurationMs / 1000)).toFixed(1) + : '-' return ( @@ -476,6 +484,7 @@ function ModelBreakdown({ projects, pw, bw }: { projects: ProjectSummary[]; pw: {cacheLabel.padStart(MODEL_COL_CACHE)} {String(data.calls).padStart(MODEL_COL_CALLS)} {oneShotLabel.padStart(MODEL_COL_ONESHOT)} + {tpsLabel.padStart(MODEL_COL_TPS)} ) })} @@ -487,6 +496,9 @@ function ModelBreakdown({ projects, pw, bw }: { projects: ProjectSummary[]; pw: {anyEstimated && ( ~ estimated cost (priced from estimated tokens) )} + {anyActiveTiming && ( + ~ Tok/s: generated tokens / active time; tool wait excluded + )} ) } diff --git a/src/main.ts b/src/main.ts index ae6867c..d24789e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -5,6 +5,7 @@ import { exportCsv, exportJson, type PeriodExport } from './export.js' import { findUnpricedModels, loadPricing, setModelAliases, setPriceOverrides, setLocalModelSavings, setProxyPaths, normalizeProxyPath } from './models.js' import { parseAllSessions, filterProjectsByName, filterProjectsByDateRange, clearSessionCache, setInteractiveScanUI } from './parser.js' import { allProviderNames, getAllProviders } from './providers/index.js' +import { getProvider } from './providers/index.js' import { convertCost, formatCost } from './currency.js' import { renderStatusBar } from './format.js' import { toDateString } from './daily-cache.js' @@ -46,6 +47,7 @@ import { createRequire } from 'node:module' const require = createRequire(import.meta.url) const { version } = require('../package.json') import { loadCurrency, getCurrency, isValidCurrencyCode } from './currency.js' +import { CodexThroughputReader, newestCodexSession, renderCodexThroughput } from './codex-throughput.js' // A downstream reader that closes the pipe early (`| head`, quitting `less`, or // a missing command) makes stdout writes fail with EPIPE. Exit cleanly rather @@ -68,6 +70,22 @@ function parseInteger(value: string): number { return parseInt(value, 10) } +function parseCodexTpsLimit(value: string): number { + const parsed = Number(value) + if (!Number.isFinite(parsed) || !Number.isInteger(parsed) || parsed < 1 || parsed > 10000) { + throw new Error('limit must be an integer from 1 to 10000') + } + return parsed +} + +function parseCodexTpsWatch(value: string): number { + const parsed = Number(value) + if (!Number.isFinite(parsed) || parsed < 0 || (parsed > 0 && parsed < 1) || parsed > 3600) { + throw new Error('watch must be 0 or at least 1 second (up to 3600 seconds)') + } + return parsed +} + type PriceOverrideConfig = NonNullable[string] type PriceOverrideOptions = { @@ -1843,6 +1861,94 @@ program await runContextCommand(session, opts) }) +program + .command('codex-tps [session]') + .description('Retrospective Codex generated-tokens/sec estimate from rollout checkpoints (not live decode speed)') + .option('--json', 'JSON output') + .option('--limit ', 'Number of recent checkpoints to scan', parseCodexTpsLimit, 10) + .option('--watch ', 'Refresh continuously while Codex writes checkpoints', parseCodexTpsWatch, 0) + .action(async (session: string | undefined, opts: { json?: boolean; limit: number; watch: number }) => { + const intervalMs = Math.max(0, opts.watch) * 1000 + if (opts.json && intervalMs > 0) { + process.stderr.write('codeburn codex-tps: --json cannot be combined with --watch; use text watch output or one-shot JSON.\n') + process.exitCode = 2 + return + } + const provider = await getProvider('codex') + if (!provider) { + process.stderr.write('codeburn codex-tps: Codex provider is unavailable.\n') + process.exitCode = 1 + return + } + let cachedPath: string | undefined = session + let throughputReader: CodexThroughputReader | undefined + let lastFileState: { size: number; mtimeMs: number } | undefined + let lastDiscoveryMs = 0 + let refreshInFlight = false + const render = async (): Promise => { + if (refreshInFlight) return + refreshInFlight = true + try { + let filePath = session ?? cachedPath + // Keep an idle watcher on its chosen rollout. A full active+archive + // discovery can be hundreds of milliseconds on large histories, so + // only re-scan slowly to notice rotation; disappearance still triggers + // an immediate discovery on the next tick. + if (!session && (!filePath || Date.now() - lastDiscoveryMs >= 60_000)) { + lastDiscoveryMs = Date.now() + filePath = await newestCodexSession(await provider.discoverSessions()) + } + if (!filePath) { + process.stderr.write('codeburn codex-tps: no Codex rollout sessions found.\n') + if (intervalMs === 0) process.exitCode = 1 + return + } + const previousPath = cachedPath + cachedPath = filePath + if (previousPath !== filePath || !throughputReader) throughputReader = new CodexThroughputReader() + const fileInfo = await import('node:fs/promises').then(fs => fs.stat(filePath)).catch(() => null) + if (!fileInfo) { + process.stderr.write(`codeburn codex-tps: session file not found: ${filePath}\n`) + if (intervalMs === 0) process.exitCode = 1 + if (!session) cachedPath = undefined + return + } + if (intervalMs > 0 && lastFileState && fileInfo.size === lastFileState.size && fileInfo.mtimeMs === lastFileState.mtimeMs) return + lastFileState = { size: fileInfo.size, mtimeMs: fileInfo.mtimeMs } + const points = await throughputReader!.update(filePath, opts.limit, intervalMs === 0) + if (opts.json) { + process.stdout.write(JSON.stringify({ session: filePath, points, live: intervalMs > 0 }, null, 2) + '\n') + } else { + if (intervalMs > 0) process.stdout.write('\x1b[2J\x1b[H') + process.stdout.write(renderCodexThroughput(points, filePath) + (intervalMs > 0 ? '\nWatching for new Codex checkpoints... (Ctrl-C to stop)\n' : '\n')) + } + } finally { + refreshInFlight = false + } + } + try { + await render() + } catch (error) { + const message = error instanceof Error ? error.message : String(error) + process.stderr.write(`codeburn codex-tps: refresh failed: ${message}\n`) + if (intervalMs === 0) { + process.exitCode = 1 + return + } + } + if (intervalMs > 0) { + await new Promise((resolve) => { + const timer = setInterval(() => { + void render().catch(error => { + const message = error instanceof Error ? error.message : String(error) + process.stderr.write(`codeburn codex-tps: refresh failed: ${message}\n`) + }) + }, intervalMs) + process.once('SIGINT', () => { clearInterval(timer); resolve() }) + }) + } + }) + program .command('compare') .description('Compare two AI models side-by-side') diff --git a/src/model-breakdown.ts b/src/model-breakdown.ts index 5801be8..799338e 100644 --- a/src/model-breakdown.ts +++ b/src/model-breakdown.ts @@ -8,6 +8,8 @@ export interface ModelTotals { freshInput: number cacheRead: number cacheWrite: number + activeDurationMs: number + activeGeneratedTokens: number } /// Aggregate per-model usage across every session, keyed by the friendly display @@ -24,6 +26,7 @@ export function aggregateModelTotals(projects: ProjectSummary[]): Record b[0 const toolNameMap: Record = { exec_command: 'Bash', + // Codex Desktop's custom-tool transport uses the shorter `exec` name for + // the same shell tool that CLI rollouts record as `exec_command`. + exec: 'Bash', read_file: 'Read', write_file: 'Edit', apply_diff: 'Edit', @@ -96,6 +99,11 @@ type CodexEntry = { timestamp?: string payload?: { type?: string + turn_id?: string + call_id?: string + started_at?: number + duration_ms?: number + duration?: { secs?: number; nanos?: number } | string role?: string cwd?: string model_provider?: string @@ -104,6 +112,7 @@ type CodexEntry = { forked_from_id?: string model?: string name?: string + invocation?: { server?: string; tool?: string } content?: Array<{ type?: string; text?: string }> info?: { model?: string @@ -196,11 +205,128 @@ function getRawJsonStringField(head: string, field: string): string | undefined } } +function getRawJsonNumberField(head: string, field: string): number | undefined { + const match = new RegExp(`"${field}"\\s*:\\s*(-?\\d+(?:\\.\\d+)?)`).exec(head) + if (!match) return undefined + const value = Number(match[1]) + return Number.isFinite(value) ? value : undefined +} + +function getRawPayloadFieldWindow(source: Buffer, field: string, windowBytes = 4096): string | undefined { + const payloadKey = Buffer.from('"payload"') + const payloadIndex = source.indexOf(payloadKey) + if (payloadIndex < 0) return undefined + let payloadStart = source.indexOf(0x7b, payloadIndex + payloadKey.length) // { + if (payloadStart < 0) return undefined + + let depth = 0 + let inString = false + let escaped = false + for (let i = payloadStart; i < source.length; i++) { + const byte = source[i]! + if (inString) { + if (escaped) escaped = false + else if (byte === 0x5c) escaped = true // \\ + else if (byte === 0x22) inString = false // " + continue + } + if (byte === 0x22) { + const keyStart = i + 1 + let keyEnd = keyStart + let keyEscaped = false + for (; keyEnd < source.length; keyEnd++) { + const keyByte = source[keyEnd]! + if (keyEscaped) { keyEscaped = false; continue } + if (keyByte === 0x5c) { keyEscaped = true; continue } + if (keyByte === 0x22) break + } + if (depth === 1 && keyEnd < source.length) { + const key = source.subarray(keyStart, keyEnd).toString('utf-8') + let valueStart = keyEnd + 1 + while (valueStart < source.length && (source[valueStart] === 0x20 || source[valueStart] === 0x09 || source[valueStart] === 0x0a || source[valueStart] === 0x0d)) valueStart++ + if (source[valueStart] === 0x3a && key === field) { + return source.subarray(i, Math.min(source.length, i + windowBytes)).toString('utf-8') + } + } + i = keyEnd + inString = false + continue + } + if (byte === 0x22) inString = true + else if (byte === 0x7b || byte === 0x5b) depth++ // { or [ + else if (byte === 0x7d || byte === 0x5d) depth-- // } or ] + if (depth < 0) break + } + return undefined +} + +function getRawDurationMs(head: string): number | undefined { + const objectMatch = /"duration"\s*:\s*\{\s*"secs"\s*:\s*(-?\d+(?:\.\d+)?)\s*,\s*"nanos"\s*:\s*(-?\d+(?:\.\d+)?)\s*\}/.exec(head) + if (objectMatch) { + const seconds = Number(objectMatch[1]) + const nanos = Number(objectMatch[2]) + if (Number.isFinite(seconds) && Number.isFinite(nanos)) return seconds * 1000 + nanos / 1e6 + } + const text = getRawJsonStringField(head, 'duration') + if (text) { + const match = /^(\d+(?:\.\d+)?)(ms|s)?$/.exec(text.trim()) + if (match) { + const value = Number(match[1]) + if (Number.isFinite(value)) return value * (match[2] === 's' ? 1000 : 1) + } + } + return undefined +} + +function durationValueMs(value: unknown): number | undefined { + if (typeof value === 'number' && Number.isFinite(value)) return value + if (typeof value === 'object' && value) { + const record = value as Record + const seconds = record['secs'] + const nanos = record['nanos'] + if (typeof seconds === 'number' && typeof nanos === 'number' && Number.isFinite(seconds) && Number.isFinite(nanos)) { + return seconds * 1000 + nanos / 1e6 + } + } + if (typeof value === 'string') { + const match = /^(\d+(?:\.\d+)?)(ms|s)?$/.exec(value.trim()) + if (match) { + const parsed = Number(match[1]) + if (Number.isFinite(parsed)) return parsed * (match[2] === 's' ? 1000 : 1) + } + } + return undefined +} + +function getRawTokenUsage(head: string, field: 'last_token_usage' | 'total_token_usage'): CodexTokenUsage | undefined { + const match = new RegExp(`"${field}"\\s*:\\s*\\{([^}]*)\\}`).exec(head) + if (!match) return undefined + const body = match[1]! + return { + input_tokens: getRawJsonNumberField(body, 'input_tokens'), + cached_input_tokens: getRawJsonNumberField(body, 'cached_input_tokens'), + output_tokens: getRawJsonNumberField(body, 'output_tokens'), + reasoning_output_tokens: getRawJsonNumberField(body, 'reasoning_output_tokens'), + total_tokens: getRawJsonNumberField(body, 'total_tokens'), + } +} + function payloadHead(head: string): string { const idx = head.indexOf('"payload"') return idx === -1 ? head : head.slice(idx) } +function getRawInvocation(head: string): { server?: string; tool?: string } | undefined { + const idx = head.indexOf('"invocation"') + if (idx === -1) return undefined + // Server/tool are shallow fields and precede the potentially huge arguments + // object in Codex MCP records. Limit this scan to keep compact parsing cheap. + const invocationHead = head.slice(idx, idx + 8192) + const server = getRawJsonStringField(invocationHead, 'server') + const tool = getRawJsonStringField(invocationHead, 'tool') + return server || tool ? { server, tool } : undefined +} + function countJsonStringBytes(source: Buffer, valueStart: number): number { let count = 0 for (let i = valueStart; i < source.length; i++) { @@ -270,6 +396,31 @@ function parseCodexLine(line: string | Buffer): CodexEntry | null { const pHead = payloadHead(head) const payloadType = getRawJsonStringField(pHead, 'type') const role = getRawJsonStringField(pHead, 'role') + // task_complete appends the potentially huge final assistant message before + // its duration fields. Fall back to the full Buffer only for this event so + // timing metadata is not lost when the compact head stops early. + const needsTimingTail = type === 'event_msg' && (payloadType === 'task_complete' || payloadType === 'mcp_tool_call_end') + const timingTail = needsTimingTail && line.length > RAW_HEAD_BYTES + ? line.subarray(Math.max(0, line.length - 16 * 1024)).toString('utf-8') + : pHead + const timingNumber = (field: string): number | undefined => + getRawJsonNumberField(pHead, field) ?? getRawJsonNumberField(timingTail, field) + // MCP records can place a large invocation.arguments object before duration + // and a large result after it. Searching a small window around the field + // avoids materializing the middle of the Buffer while still preserving wait + // timing for those records. + const payloadDuration = payloadType === 'mcp_tool_call_end' + ? getRawDurationMs(getRawPayloadFieldWindow(line, 'duration') ?? '') + : undefined + const timingDuration = payloadDuration ?? getRawDurationMs(pHead) ?? getRawDurationMs(timingTail) + const compactModel = getRawJsonStringField(pHead, 'model') + const compactModelName = getRawJsonStringField(pHead, 'model_name') + const compactLastUsage = getRawTokenUsage(pHead, 'last_token_usage') + const compactTotalUsage = getRawTokenUsage(pHead, 'total_token_usage') + const compactInfo = compactModel || compactModelName || compactLastUsage || compactTotalUsage + ? { model: compactModel, model_name: compactModelName, last_token_usage: compactLastUsage, total_token_usage: compactTotalUsage } + : undefined + const invocation = getRawInvocation(pHead) ?? getRawInvocation(timingTail) const entry: CodexEntry = { type, @@ -284,6 +435,12 @@ function parseCodexLine(line: string | Buffer): CodexEntry | null { forked_from_id: getRawJsonStringField(pHead, 'forked_from_id'), model: getRawJsonStringField(pHead, 'model'), name: getRawJsonStringField(pHead, 'name'), + invocation, + call_id: getRawJsonStringField(pHead, 'call_id'), + turn_id: getRawJsonStringField(pHead, 'turn_id'), + duration_ms: timingNumber('duration_ms') ?? timingDuration, + started_at: timingNumber('started_at'), + info: compactInfo, }, } @@ -296,26 +453,48 @@ function parseCodexLine(line: string | Buffer): CodexEntry | null { return entry } -async function discoverSessionFile(filePath: string): Promise { +type DiscoveredCodexSession = { + source: SessionSource + sessionId?: string +} + +async function discoverSessionFile(filePath: string): Promise { const s = await stat(filePath).catch(() => null) if (!s?.isFile()) return null const cachedProject = await getCachedCodexProject(filePath) + const { valid, meta } = await isValidCodexSession(filePath) if (cachedProject) { - return { path: filePath, project: cachedProject, provider: 'codex' } + return { + source: { path: filePath, project: cachedProject, provider: 'codex' }, + sessionId: valid ? meta?.payload?.session_id : undefined, + } } - const { valid, meta } = await isValidCodexSession(filePath) if (!valid || !meta) return null const cwd = meta.payload?.cwd ?? 'unknown' - return { path: filePath, project: sanitizeProject(cwd), provider: 'codex' } + return { + source: { path: filePath, project: sanitizeProject(cwd), provider: 'codex' }, + sessionId: meta.payload?.session_id, + } } async function discoverSessionsInDir(codexDir: string): Promise { const sources: SessionSource[] = [] + // A rollout can exist in both roots during/after archiving. The active root + // is scanned first, and session_id keeps the archived copy from resurfacing. + const seenSessionIds = new Set() const sessionsDir = join(codexDir, 'sessions') + const addSession = (discovered: DiscoveredCodexSession | null): void => { + if (!discovered) return + const sessionId = discovered.sessionId?.trim() + if (sessionId && seenSessionIds.has(sessionId)) return + if (sessionId) seenSessionIds.add(sessionId) + sources.push(discovered.source) + } + const years = await readdir(sessionsDir).catch(() => [] as string[]) for (const year of years) { @@ -336,8 +515,7 @@ async function discoverSessionsInDir(codexDir: string): Promise for (const file of files) { if (!file.startsWith('rollout-') || !file.endsWith('.jsonl')) continue const filePath = join(dayDir, file) - const source = await discoverSessionFile(filePath) - if (source) sources.push(source) + addSession(await discoverSessionFile(filePath)) } } } @@ -349,8 +527,7 @@ async function discoverSessionsInDir(codexDir: string): Promise const archivedFiles = await readdir(archivedDir).catch(() => [] as string[]) for (const file of archivedFiles) { if (!file.startsWith('rollout-') || !file.endsWith('.jsonl')) continue - const source = await discoverSessionFile(join(archivedDir, file)) - if (source) sources.push(source) + addSession(await discoverSessionFile(join(archivedDir, file))) } return sources @@ -410,6 +587,11 @@ function createParser(source: SessionSource, seenKeys: Set): SessionPars let currentTurnId = `${sessionId}:t0` let sawAnyLine = false const results: ParsedProviderCall[] = [] + let taskResultStart = 0 + let taskGeneratedTokens = 0 + let taskToolIntervals: Array<[number, number]> = [] + let taskStartedAt: number | undefined + const openToolStarts = new Map() // Stream the session file line by line. Heavy Codex sessions can exceed // 250 MB on disk; reading the entire file into a string would either hit @@ -437,7 +619,29 @@ function createParser(source: SessionSource, seenKeys: Set): SessionPars continue } - if (entry.type === 'response_item' && entry.payload?.type === 'function_call') { + const isForkReplay = Boolean(forkCutoff && entry.timestamp && entry.timestamp < forkCutoff) + if (isForkReplay && ( + entry.payload?.type === 'task_started' || + entry.payload?.type === 'task_complete' || + entry.payload?.type === 'function_call' || + entry.payload?.type === 'function_call_output' || + entry.payload?.type === 'custom_tool_call' || + entry.payload?.type === 'custom_tool_call_output' || + entry.payload?.type === 'mcp_tool_call_end' || + entry.payload?.type === 'patch_apply_end' + )) continue + + if (entry.type === 'event_msg' && entry.payload?.type === 'task_started') { + taskResultStart = results.length + taskGeneratedTokens = 0 + taskToolIntervals = [] + const startedAt = entry.timestamp ? Date.parse(entry.timestamp) : NaN + taskStartedAt = Number.isFinite(startedAt) ? startedAt : undefined + openToolStarts.clear() + continue + } + + if (entry.type === 'response_item' && (entry.payload?.type === 'function_call' || entry.payload?.type === 'custom_tool_call')) { const rawName = entry.payload.name ?? '' const mapped = toolNameMap[rawName] ?? rawName pendingTools.push(mapped) @@ -459,10 +663,53 @@ function createParser(source: SessionSource, seenKeys: Set): SessionPars pendingToolSequence.push([{ tool: mcpTool }]) } } + const callId = entry.payload.call_id + const started = entry.timestamp ? Date.parse(entry.timestamp) : NaN + if (callId && Number.isFinite(started)) openToolStarts.set(callId, started) pendingToolSequence.push([call]) continue } + if (entry.type === 'response_item' && (entry.payload?.type === 'function_call_output' || entry.payload?.type === 'custom_tool_call_output')) { + const callId = entry.payload.call_id + const ended = entry.timestamp ? Date.parse(entry.timestamp) : NaN + const started = callId ? openToolStarts.get(callId) : undefined + if (started !== undefined && Number.isFinite(ended) && ended > started) taskToolIntervals.push([started, ended]) + if (callId) openToolStarts.delete(callId) + continue + } + + if (entry.type === 'event_msg' && entry.payload?.type === 'task_complete') { + const durationMs = entry.payload.duration_ms + if (typeof durationMs === 'number' && durationMs > 0 && taskGeneratedTokens > 0 && taskResultStart < results.length) { + const completedAt = entry.timestamp ? Date.parse(entry.timestamp) : NaN + const windowStart = taskStartedAt ?? (Number.isFinite(completedAt) ? completedAt - durationMs : undefined) + const windowEnd = windowStart !== undefined ? windowStart + durationMs : undefined + const clipped = taskToolIntervals.map(([start, end]) => [ + windowStart !== undefined ? Math.max(start, windowStart) : start, + windowEnd !== undefined ? Math.min(end, windowEnd) : end, + ] as [number, number]).filter(([start, end]) => end > start) + const merged = clipped.sort((a, b) => a[0] - b[0]).reduce>((acc, interval) => { + const previous = acc.at(-1) + if (previous && interval[0] <= previous[1]) previous[1] = Math.max(previous[1], interval[1]) + else acc.push([...interval]) + return acc + }, []) + const toolWaitMs = Math.min(durationMs, merged.reduce((sum, interval) => sum + interval[1] - interval[0], 0)) + const activeMs = durationMs - toolWaitMs + if (activeMs <= 0) continue + for (let i = taskResultStart; i < results.length; i++) { + const call = results[i]! + const generated = call.outputTokens + call.reasoningTokens + if (generated <= 0) continue + call.activeGeneratedTokens = generated + call.activeDurationMs = activeMs * (generated / taskGeneratedTokens) + call.toolWaitMs = toolWaitMs * (generated / taskGeneratedTokens) + } + } + continue + } + if (entry.type === 'event_msg' && entry.payload?.type === 'patch_apply_end') { pendingTools.push('Edit') const p = entry.payload as Record @@ -490,6 +737,11 @@ function createParser(source: SessionSource, seenKeys: Set): SessionPars // attributed. Rebuild the canonical `mcp____` name the // classifier recognizes. if (entry.type === 'event_msg' && entry.payload?.type === 'mcp_tool_call_end') { + const endedAt = entry.timestamp ? Date.parse(entry.timestamp) : NaN + const durationMs = entry.payload.duration_ms ?? durationValueMs(entry.payload.duration) + if (typeof durationMs === 'number' && durationMs > 0 && Number.isFinite(endedAt)) { + taskToolIntervals.push([endedAt - durationMs, endedAt]) + } const inv = (entry.payload as Record)['invocation'] as Record | undefined const server = typeof inv?.['server'] === 'string' ? inv['server'] as string : '' const tool = typeof inv?.['tool'] === 'string' ? inv['tool'] as string : '' @@ -568,6 +820,7 @@ function createParser(source: SessionSource, seenKeys: Set): SessionPars ...(pendingLocRemoved ? { locRemoved: pendingLocRemoved } : {}), ...(pendingEditFailed ? { editFailed: pendingEditFailed } : {}), }) + taskGeneratedTokens += estOutput pendingTools = [] pendingToolSequence = [] @@ -685,6 +938,7 @@ function createParser(source: SessionSource, seenKeys: Set): SessionPars ...(pendingLocRemoved ? { locRemoved: pendingLocRemoved } : {}), ...(pendingEditFailed ? { editFailed: pendingEditFailed } : {}), }) + taskGeneratedTokens += outputTokens + reasoningTokens pendingTools = [] pendingToolSequence = [] diff --git a/src/providers/types.ts b/src/providers/types.ts index b5396a2..8f9e902 100644 --- a/src/providers/types.ts +++ b/src/providers/types.ts @@ -53,6 +53,9 @@ export type ParsedProviderCall = { // Exact provider-recorded cwd, kept separately because projectPath may later // canonicalize a linked worktree to its main repository. workingDirectory?: string + activeDurationMs?: number + activeGeneratedTokens?: number + toolWaitMs?: number } // A directory or database file that a provider's discoverSessions() scans. diff --git a/src/session-cache.ts b/src/session-cache.ts index 461dd46..2682756 100644 --- a/src/session-cache.ts +++ b/src/session-cache.ts @@ -51,6 +51,9 @@ export type CachedCall = { toolErrors?: number // Codex: count of this call's patch applications with success === false. editFailed?: number + activeDurationMs?: number + activeGeneratedTokens?: number + toolWaitMs?: number } export type CachedTurn = { @@ -213,7 +216,7 @@ export const PROVIDER_PARSE_VERSIONS: Record = { // rich-session-capture-v1: per-call LOC deltas + editFailed from // patch_apply_end. (The codex-results.json CODEX_CACHE_VERSION is bumped in // lockstep so the pre-session-cache layer re-parses too.) - codex: 'mcp-attribution-v2-est-cost-rich-capture-v1-cross-provider-pr-v1', + codex: 'mcp-attribution-v5-est-cost-active-timing-mcp-wait-rich-capture-v1-cross-provider-pr-v1', cursor: 'composer-anchored-crediting-v1-est-cost', 'cursor-agent': 'workspaceless-transcript-v1', copilot: 'cli-shutdown-cost-v1-skills', @@ -337,6 +340,9 @@ function validateCall(c: unknown): c is CachedCall { && (o['speed'] === 'standard' || o['speed'] === 'fast') && isOptionalNum(o['costUSD']) && isOptionalBool(o['isEstimated']) + && isOptionalNum(o['activeDurationMs']) + && isOptionalNum(o['activeGeneratedTokens']) + && isOptionalNum(o['toolWaitMs']) && isStringArray(o['tools']) && isStringArray(o['bashCommands']) && isStringArray(o['skills']) diff --git a/src/types.ts b/src/types.ts index d5624cf..a51ae67 100644 --- a/src/types.ts +++ b/src/types.ts @@ -153,6 +153,9 @@ export type ParsedApiCall = { /// Count of this call's tool results flagged `is_error` (Claude tool_result /// blocks). Bash stderr alone is NOT counted (warnings go there). Omitted at 0. toolErrors?: number + activeDurationMs?: number + activeGeneratedTokens?: number + toolWaitMs?: number } export type ToolCall = { @@ -268,7 +271,7 @@ export type SessionSummary = { /// from a provider that never captures branches (→ contributes nothing). /// Claude only; absent otherwise. everHadBranch?: boolean - modelBreakdown: Record + modelBreakdown: Record toolBreakdown: Record mcpBreakdown: Record bashBreakdown: Record diff --git a/tests/cli-codex-tps.test.ts b/tests/cli-codex-tps.test.ts new file mode 100644 index 0000000..4b39027 --- /dev/null +++ b/tests/cli-codex-tps.test.ts @@ -0,0 +1,46 @@ +import { mkdtemp, rm } from 'node:fs/promises' +import { tmpdir } from 'node:os' +import { join } from 'node:path' +import { spawnSync } from 'node:child_process' +import { afterEach, describe, expect, it } from 'vitest' + +const homes: string[] = [] + +afterEach(async () => { + while (homes.length) await rm(homes.pop()!, { recursive: true, force: true }) +}) + +function runCli(args: string[], home: string) { + return spawnSync(process.execPath, ['--import', 'tsx', 'src/cli.ts', ...args], { + cwd: process.cwd(), + env: { ...process.env, HOME: home, CODEX_HOME: join(home, '.codex'), TZ: 'UTC' }, + encoding: 'utf-8', + timeout: 30_000, + }) +} + +describe('codex-tps CLI validation', () => { + it('rejects sub-second watch intervals', async () => { + const home = await mkdtemp(join(tmpdir(), 'codeburn-tps-cli-')) + homes.push(home) + const result = runCli(['codex-tps', '--watch', '0.1'], home) + expect(result.status).toBe(1) + expect(result.stderr).toContain('watch must be 0 or at least 1 second') + }) + + it('rejects JSON watch output instead of concatenating invalid JSON documents', async () => { + const home = await mkdtemp(join(tmpdir(), 'codeburn-tps-cli-')) + homes.push(home) + const result = runCli(['codex-tps', '--json', '--watch', '1'], home) + expect(result.status).toBe(2) + expect(result.stderr).toContain('--json cannot be combined with --watch') + }) + + it('returns a nonzero status for a missing explicit rollout', async () => { + const home = await mkdtemp(join(tmpdir(), 'codeburn-tps-cli-')) + homes.push(home) + const result = runCli(['codex-tps', join(home, 'missing.jsonl')], home) + expect(result.status).toBe(1) + expect(result.stderr).toContain('session file not found') + }) +}) diff --git a/tests/codex-throughput.test.ts b/tests/codex-throughput.test.ts new file mode 100644 index 0000000..1e0fd4d --- /dev/null +++ b/tests/codex-throughput.test.ts @@ -0,0 +1,124 @@ +import { appendFile, mkdtemp, writeFile } from 'node:fs/promises' +import { tmpdir } from 'node:os' +import { join } from 'node:path' +import { describe, expect, it } from 'vitest' +import { CodexThroughputReader, readCodexThroughput, renderCodexThroughput } from '../src/codex-throughput.js' + +describe('Codex throughput prototype', () => { + it('estimates generated tokens/sec between token_count checkpoints', async () => { + const dir = await mkdtemp(join(tmpdir(), 'codeburn-tps-')) + const path = join(dir, 'rollout.jsonl') + await writeFile(path, [ + JSON.stringify({ type: 'session_meta', timestamp: '2026-07-25T00:00:00.000Z', payload: { model: 'gpt-5.6-sol' } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-07-25T00:00:00.000Z', payload: { type: 'task_started' } }), + JSON.stringify({ type: 'response_item', timestamp: '2026-07-25T00:00:02.000Z', payload: { type: 'function_call', call_id: 'tool-1' } }), + JSON.stringify({ type: 'response_item', timestamp: '2026-07-25T00:00:05.000Z', payload: { type: 'function_call_output', call_id: 'tool-1' } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-07-25T00:00:05.000Z', payload: { type: 'mcp_tool_call_end', duration: { secs: 3, nanos: 0 } } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-07-25T00:00:10.000Z', payload: { type: 'token_count', info: { last_token_usage: { output_tokens: 80, reasoning_output_tokens: 20 }, total_token_usage: { total_tokens: 100, output_tokens: 80, reasoning_output_tokens: 20 } } } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-07-25T00:00:15.000Z', payload: { type: 'token_count', info: { last_token_usage: { output_tokens: 40, reasoning_output_tokens: 10 }, total_token_usage: { total_tokens: 150, output_tokens: 120, reasoning_output_tokens: 30 } } } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-07-25T00:00:16.000Z', payload: { type: 'task_complete', duration_ms: 10000 } }), + ].join('\n')) + + const points = await readCodexThroughput(path) + expect(points).toHaveLength(2) + expect(points[1]).toMatchObject({ generatedTokens: 50, elapsedSeconds: 5, generatedTokensPerSecond: 10, activeDurationSeconds: 7, activeGeneratedTokensPerSecond: 21.428571428571427, toolWaitSeconds: 3, model: 'gpt-5.6-sol' }) + expect(renderCodexThroughput(points, path)).toContain('21.4 generated tokens/sec') + }) + + it('parses only appended complete lines while watching a growing rollout', async () => { + const dir = await mkdtemp(join(tmpdir(), 'codeburn-tps-watch-')) + const path = join(dir, 'rollout.jsonl') + const first = JSON.stringify({ type: 'event_msg', timestamp: '2026-07-25T00:00:00.000Z', payload: { type: 'token_count', info: { last_token_usage: { output_tokens: 8, reasoning_output_tokens: 2 }, total_token_usage: { total_tokens: 10, output_tokens: 8, reasoning_output_tokens: 2 } } } }) + const second = JSON.stringify({ type: 'event_msg', timestamp: '2026-07-25T00:00:01.000Z', payload: { type: 'token_count', info: { last_token_usage: { output_tokens: 4, reasoning_output_tokens: 1 }, total_token_usage: { total_tokens: 15, output_tokens: 12, reasoning_output_tokens: 3 } } } }) + await writeFile(path, first.slice(0, 40)) + const reader = new CodexThroughputReader() + expect(await reader.update(path)).toEqual([]) + await appendFile(path, first.slice(40) + '\n' + second + '\n') + const points = await reader.update(path) + expect(points).toHaveLength(2) + expect(points[1]).toMatchObject({ generatedTokens: 5, generatedTokensPerSecond: 5 }) + }) + + it('ignores replayed pre-fork checkpoints before estimating new work', async () => { + const dir = await mkdtemp(join(tmpdir(), 'codeburn-tps-fork-')) + const path = join(dir, 'rollout.jsonl') + const line = (timestamp: string, payload: Record) => JSON.stringify({ type: 'event_msg', timestamp, payload }) + await writeFile(path, [ + JSON.stringify({ type: 'session_meta', timestamp: '2026-07-25T00:00:00.000Z', payload: { model: 'gpt-5.6-sol', forked_from_id: 'parent' } }), + line('2026-07-25T00:00:01.000Z', { type: 'task_started' }), + line('2026-07-25T00:00:02.000Z', { type: 'token_count', info: { last_token_usage: { output_tokens: 100 }, total_token_usage: { total_tokens: 100, output_tokens: 100 } } }), + line('2026-07-25T00:00:03.000Z', { type: 'task_complete', duration_ms: 1000 }), + line('2026-07-25T00:00:06.000Z', { type: 'task_started' }), + line('2026-07-25T00:00:08.000Z', { type: 'token_count', info: { last_token_usage: { output_tokens: 20 }, total_token_usage: { total_tokens: 20, output_tokens: 20 } } }), + line('2026-07-25T00:00:10.000Z', { type: 'task_complete', duration_ms: 4000 }), + ].join('\n')) + + const points = await readCodexThroughput(path) + expect(points).toHaveLength(1) + expect(points[0]).toMatchObject({ generatedTokens: 20, activeGeneratedTokensPerSecond: 5 }) + }) + + it('keeps oversized rollout lines bounded while extracting token usage', async () => { + const dir = await mkdtemp(join(tmpdir(), 'codeburn-tps-large-')) + const path = join(dir, 'rollout.jsonl') + const largeResult = JSON.stringify({ + type: 'event_msg', + timestamp: '2026-07-25T00:00:01.000Z', + payload: { + type: 'token_count', + info: { last_token_usage: { output_tokens: 12 }, total_token_usage: { total_tokens: 12, output_tokens: 12 } }, + result: 'x'.repeat(5 * 1024 * 1024), + }, + }) + await writeFile(path, largeResult) + const points = await readCodexThroughput(path) + expect(points).toHaveLength(1) + expect(points[0]?.generatedTokens).toBe(12) + }) + + it('keeps MCP duration when arguments and result surround the middle field', async () => { + const dir = await mkdtemp(join(tmpdir(), 'codeburn-tps-mcp-large-')) + const path = join(dir, 'rollout.jsonl') + const mcp = JSON.stringify({ + type: 'event_msg', timestamp: '2026-07-25T00:00:05.000Z', + payload: { + type: 'mcp_tool_call_end', + invocation: { server: 'github', tool: 'get_issue', arguments: { body: 'x'.repeat(5 * 1024 * 1024) } }, + duration: { secs: 3, nanos: 0 }, + result: { duration: '9s', text: 'x'.repeat(5 * 1024 * 1024) }, + }, + }) + await writeFile(path, [ + JSON.stringify({ type: 'session_meta', timestamp: '2026-07-25T00:00:00.000Z', payload: { model: 'gpt-5.6-sol' } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-07-25T00:00:00.000Z', payload: { type: 'task_started' } }), + mcp, + JSON.stringify({ type: 'event_msg', timestamp: '2026-07-25T00:00:08.000Z', payload: { type: 'token_count', info: { last_token_usage: { output_tokens: 100 }, total_token_usage: { total_tokens: 100, output_tokens: 100 } } } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-07-25T00:00:10.000Z', payload: { type: 'task_complete', duration_ms: 10000 } }), + ].join('\n')) + const points = await readCodexThroughput(path) + expect(points[0]).toMatchObject({ toolWaitSeconds: 3, activeDurationSeconds: 7, activeGeneratedTokensPerSecond: 100 / 7 }) + }) + + it('keeps a streamed string MCP duration when arguments and result surround the middle field', async () => { + const dir = await mkdtemp(join(tmpdir(), 'codeburn-tps-mcp-string-large-')) + const path = join(dir, 'rollout.jsonl') + const mcp = JSON.stringify({ + type: 'event_msg', timestamp: '2026-07-25T00:00:05.000Z', + payload: { + type: 'mcp_tool_call_end', + invocation: { server: 'github', tool: 'get_issue', arguments: { body: 'x'.repeat(5 * 1024 * 1024) } }, + duration: '3s', + result: { duration: '9s', text: 'x'.repeat(5 * 1024 * 1024) }, + }, + }) + await writeFile(path, [ + JSON.stringify({ type: 'session_meta', timestamp: '2026-07-25T00:00:00.000Z', payload: { model: 'gpt-5.6-sol' } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-07-25T00:00:00.000Z', payload: { type: 'task_started' } }), + mcp, + JSON.stringify({ type: 'event_msg', timestamp: '2026-07-25T00:00:08.000Z', payload: { type: 'token_count', info: { last_token_usage: { output_tokens: 100 }, total_token_usage: { total_tokens: 100, output_tokens: 100 } } } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-07-25T00:00:10.000Z', payload: { type: 'task_complete', duration_ms: 10000 } }), + ].join('\n')) + const points = await readCodexThroughput(path) + expect(points[0]).toMatchObject({ toolWaitSeconds: 3, activeDurationSeconds: 7, activeGeneratedTokensPerSecond: 100 / 7 }) + }) +}) diff --git a/tests/providers/codex.test.ts b/tests/providers/codex.test.ts index 9595e35..0b59ecb 100644 --- a/tests/providers/codex.test.ts +++ b/tests/providers/codex.test.ts @@ -160,6 +160,56 @@ describe('codex provider - session discovery', () => { }]) }) + it('deduplicates the same session_id across active and archived roots', async () => { + const sharedLines = [ + sessionMeta({ cwd: '/Users/test/shared', session_id: 'sess-shared' }), + tokenCount({ last: { input: 100, output: 50 }, total: { total: 150 } }), + ] + const activePath = await writeSession(tmpDir, '2026-04-14', 'rollout-shared.jsonl', sharedLines) + const archivedCopyPath = await writeArchivedSession(tmpDir, 'rollout-shared.jsonl', sharedLines) + const distinctPath = await writeArchivedSession(tmpDir, 'rollout-distinct.jsonl', [ + sessionMeta({ cwd: '/Users/test/distinct', session_id: 'sess-distinct' }), + tokenCount({ last: { input: 200, output: 50 }, total: { total: 250 } }), + ]) + + const provider = createCodexProvider(tmpDir) + const sessions = await provider.discoverSessions() + const paths = sessions.map(session => session.path) + + expect(sessions).toHaveLength(2) + expect(paths).toEqual(expect.arrayContaining([activePath, distinctPath])) + expect(paths).not.toContain(archivedCopyPath) + }) + + it('does not double-count usage for an archived copy while counting distinct sessions', async () => { + const sharedLines = [ + sessionMeta({ session_id: 'sess-shared' }), + tokenCount({ last: { input: 100, output: 50 }, total: { total: 150 } }), + ] + await writeSession(tmpDir, '2026-04-14', 'rollout-shared.jsonl', sharedLines) + await writeArchivedSession(tmpDir, 'rollout-shared-copy.jsonl', sharedLines) + await writeArchivedSession(tmpDir, 'rollout-distinct.jsonl', [ + sessionMeta({ session_id: 'sess-distinct' }), + tokenCount({ last: { input: 200, output: 50 }, total: { total: 250 } }), + ]) + + const provider = createCodexProvider(tmpDir) + const sessions = await provider.discoverSessions() + const seenKeys = new Set() + const calls: ParsedProviderCall[] = [] + for (const session of sessions) { + for await (const call of provider.createSessionParser(session, seenKeys).parse()) { + calls.push(call) + } + } + + expect(calls.map(call => call.sessionId).sort()).toEqual(['sess-distinct', 'sess-shared']) + expect(calls.reduce( + (total, call) => total + call.inputTokens + call.cachedInputTokens + call.outputTokens + call.reasoningTokens, + 0, + )).toBe(400) + }) + it('returns empty for non-existent directory', async () => { const provider = createCodexProvider('/nonexistent/path/that/does/not/exist') const sessions = await provider.discoverSessions() @@ -332,6 +382,89 @@ describe('codex provider - JSONL parsing', () => { expect(call.deduplicationKey).toContain('codex:') }) + it('parses large rollout lines and computes active timing for custom tool calls', async () => { + const largeTokenLine = JSON.stringify({ + type: 'event_msg', + timestamp: '2026-04-14T10:01:10Z', + payload: { + type: 'token_count', + info: { + last_token_usage: { input_tokens: 100, cached_input_tokens: 0, output_tokens: 100, reasoning_output_tokens: 20, total_tokens: 220 }, + total_token_usage: { input_tokens: 100, cached_input_tokens: 0, output_tokens: 100, reasoning_output_tokens: 20, total_tokens: 220 }, + }, + rate_limits: { filler: 'x'.repeat(40_000) }, + }, + }) + const largeCompleteLine = JSON.stringify({ + type: 'event_msg', + timestamp: '2026-04-14T10:01:11Z', + payload: { type: 'task_complete', last_agent_message: 'x'.repeat(40_000), duration_ms: 10_000 }, + }) + const filePath = await writeSession(tmpDir, '2026-04-14', 'rollout-timing.jsonl', [ + sessionMeta({ session_id: 'sess-timing', model: 'gpt-5.5' }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-04-14T10:00:00Z', payload: { type: 'task_started', turn_id: 'turn-1' } }), + userMessage('run the tool'), + JSON.stringify({ type: 'response_item', timestamp: '2026-04-14T10:00:02Z', payload: { type: 'custom_tool_call', call_id: 'call-1', name: 'exec' } }), + JSON.stringify({ type: 'response_item', timestamp: '2026-04-14T10:00:05Z', payload: { type: 'custom_tool_call_output', call_id: 'call-1', output: 'done' } }), + largeTokenLine, + largeCompleteLine, + ]) + + const provider = createCodexProvider(tmpDir) + const source = { path: filePath, project: 'test', provider: 'codex' } + const calls: ParsedProviderCall[] = [] + for await (const call of provider.createSessionParser(source, new Set()).parse()) calls.push(call) + + expect(calls).toHaveLength(1) + expect(calls[0]).toMatchObject({ + outputTokens: 100, + reasoningTokens: 20, + tools: ['Bash'], + activeDurationMs: 7000, + activeGeneratedTokens: 120, + toolWaitMs: 3000, + }) + }) + + it('keeps estimated output parsing for large token lines without usage info', async () => { + // Some rollout variants put token_count metadata beyond the compact head + // or omit `info` entirely. The line must still reach the character-based + // estimate path rather than being interpreted as an empty usage object. + const largeTokenLine = JSON.stringify({ + type: 'event_msg', + timestamp: '2026-04-14T10:01:10Z', + payload: { type: 'token_count' }, + filler: 'x'.repeat(40_000), + }) + const assistantLine = JSON.stringify({ + type: 'response_item', + timestamp: '2026-04-14T10:01:05Z', + payload: { + type: 'message', + role: 'assistant', + content: [{ type: 'output_text', text: 'generated response '.repeat(100) }], + }, + }) + const filePath = await writeSession(tmpDir, '2026-04-14', 'rollout-estimated-large.jsonl', [ + sessionMeta({ session_id: 'sess-estimated-large', model: 'gpt-5.5' }), + userMessage('summarize the result'), + assistantLine, + largeTokenLine, + ]) + + const provider = createCodexProvider(tmpDir) + const source = { path: filePath, project: 'test', provider: 'codex' } + const calls: ParsedProviderCall[] = [] + for await (const call of provider.createSessionParser(source, new Set()).parse()) calls.push(call) + + expect(calls).toHaveLength(1) + expect(calls[0]).toMatchObject({ + model: 'gpt-5.5', + costIsEstimated: true, + }) + expect(calls[0]!.outputTokens).toBeGreaterThan(0) + }) + it('attributes MCP calls emitted as event_msg/mcp_tool_call_end', async () => { const filePath = await writeSession(tmpDir, '2026-04-14', 'rollout-mcp.jsonl', [ sessionMeta({ session_id: 'sess-mcp', model: 'gpt-5.5' }), @@ -356,6 +489,89 @@ describe('codex provider - JSONL parsing', () => { expect(calls[0]!.tools).toEqual(['mcp__github__get_issue']) }) + it('subtracts native MCP wait time from active timing', async () => { + const filePath = await writeSession(tmpDir, '2026-04-14', 'rollout-mcp-timing.jsonl', [ + sessionMeta({ session_id: 'sess-mcp-timing', model: 'gpt-5.5' }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-04-14T10:00:00Z', payload: { type: 'task_started' } }), + userMessage('look up the issue'), + JSON.stringify({ + type: 'event_msg', + timestamp: '2026-04-14T10:00:05Z', + payload: { + type: 'mcp_tool_call_end', + call_id: 'mcp-1', + invocation: { server: 'github', tool: 'get_issue', arguments: {} }, + duration: { secs: 3, nanos: 0 }, + }, + }), + tokenCount({ + timestamp: '2026-04-14T10:00:08Z', + last: { input: 300, output: 100 }, + total: { total: 400 }, + }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-04-14T10:00:10Z', payload: { type: 'task_complete', duration_ms: 10_000 } }), + ]) + + const provider = createCodexProvider(tmpDir) + const source = { path: filePath, project: 'test', provider: 'codex' } + const calls: ParsedProviderCall[] = [] + for await (const call of provider.createSessionParser(source, new Set()).parse()) calls.push(call) + + expect(calls).toHaveLength(1) + expect(calls[0]).toMatchObject({ activeDurationMs: 7000, toolWaitMs: 3000 }) + }) + + it('keeps MCP attribution on large result lines', async () => { + const largeMcpLine = JSON.stringify({ + type: 'event_msg', + timestamp: '2026-04-14T10:00:05Z', + payload: { + type: 'mcp_tool_call_end', + call_id: 'mcp-large', + invocation: { server: 'github', tool: 'get_issue', arguments: { duration: '1s', body: 'x'.repeat(100_000) } }, + duration: { secs: 3, nanos: 0 }, + result: { Ok: { content: [{ type: 'text', text: 'x'.repeat(40_000) }] } }, + }, + }) + const filePath = await writeSession(tmpDir, '2026-04-14', 'rollout-mcp-large.jsonl', [ + sessionMeta({ session_id: 'sess-mcp-large', model: 'gpt-5.5' }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-04-14T10:00:00Z', payload: { type: 'task_started' } }), + userMessage('look up the issue'), + largeMcpLine, + tokenCount({ timestamp: '2026-04-14T10:00:08Z', last: { input: 300, output: 100 }, total: { total: 400 } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-04-14T10:00:10Z', payload: { type: 'task_complete', duration_ms: 10_000 } }), + ]) + + const provider = createCodexProvider(tmpDir) + const source = { path: filePath, project: 'test', provider: 'codex' } + const calls: ParsedProviderCall[] = [] + for await (const call of provider.createSessionParser(source, new Set()).parse()) calls.push(call) + + expect(calls).toHaveLength(1) + expect(calls[0]).toMatchObject({ tools: ['mcp__github__get_issue'], activeDurationMs: 7000, toolWaitMs: 3000 }) + }) + + it('omits active timing when recorded tool wait consumes the task duration', async () => { + const filePath = await writeSession(tmpDir, '2026-04-14', 'rollout-degenerate-timing.jsonl', [ + sessionMeta({ session_id: 'sess-degenerate-timing', model: 'gpt-5.5' }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-04-14T10:00:00Z', payload: { type: 'task_started' } }), + userMessage('wait for the tool'), + JSON.stringify({ type: 'response_item', timestamp: '2026-04-14T10:00:00Z', payload: { type: 'custom_tool_call', call_id: 'call-1', name: 'exec' } }), + JSON.stringify({ type: 'response_item', timestamp: '2026-04-14T10:00:10Z', payload: { type: 'custom_tool_call_output', call_id: 'call-1', output: 'done' } }), + tokenCount({ timestamp: '2026-04-14T10:00:12Z', last: { input: 300, output: 100 }, total: { total: 400 } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-04-14T10:00:13Z', payload: { type: 'task_complete', duration_ms: 10_000 } }), + ]) + + const provider = createCodexProvider(tmpDir) + const source = { path: filePath, project: 'test', provider: 'codex' } + const calls: ParsedProviderCall[] = [] + for await (const call of provider.createSessionParser(source, new Set()).parse()) calls.push(call) + + expect(calls).toHaveLength(1) + expect(calls[0]!.activeDurationMs).toBeUndefined() + expect(calls[0]!.toolWaitMs).toBeUndefined() + }) + it('attributes CLI-wrapped MCP calls (mcp-cli call server tool) to MCP + Bash', async () => { const execStr = (command: string) => JSON.stringify({ type: 'response_item', From 3e400bffa72df5954e7fd4cc741db2d9fc1afa32 Mon Sep 17 00:00:00 2001 From: Richard Boisvert Date: Sun, 26 Jul 2026 20:07:01 -0400 Subject: [PATCH 02/21] feat(codex): show the credit limit on credit-metered ChatGPT workspaces Signed-off-by: Richard Boisvert --- CHANGELOG.md | 3 + app/electron/quota/codex.test.ts | 144 ++++++++++ app/electron/quota/codex.ts | 74 +++++- docs/providers/codex.md | 104 ++++++++ mac/Sources/CodeBurnMenubar/AppStore.swift | 28 +- .../Data/CodexSubscriptionService.swift | 213 ++++++++++++++- .../CodeBurnMenubar/Data/CodexUsage.swift | 69 ++++- .../Views/HeatmapSection.swift | 41 ++- .../CodeBurnMenubar/Views/SettingsView.swift | 2 +- .../CodexPlanParsingTests.swift | 248 ++++++++++++++++++ .../CodexQuotaSummaryTests.swift | 79 ++++++ 11 files changed, 977 insertions(+), 28 deletions(-) create mode 100644 mac/Tests/CodeBurnMenubarTests/CodexPlanParsingTests.swift create mode 100644 mac/Tests/CodeBurnMenubarTests/CodexQuotaSummaryTests.swift diff --git a/CHANGELOG.md b/CHANGELOG.md index 98c3807..790d15f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## Unreleased +### Added +- **Credit-metered ChatGPT workspaces (Business / Edu / Enterprise) now show their limit.** These plans report no rate-limit windows, so the admin-set monthly allowance from `spend_control.individual_limit` is shown as a "Monthly usage limit" bar in the desktop app and the menubar. + ### Fixed - Claude Desktop and Cowork sessions are discovered for Windows Microsoft Store (MSIX) installs. (#611) diff --git a/app/electron/quota/codex.test.ts b/app/electron/quota/codex.test.ts index b8e2de4..874613e 100644 --- a/app/electron/quota/codex.test.ts +++ b/app/electron/quota/codex.test.ts @@ -38,6 +38,150 @@ describe('Codex quota', () => { expect(quota.details).toHaveLength(1) }) + // Shape captured from a live ChatGPT Enterprise workspace. + const enterpriseBody = { + plan_type: 'business', + rate_limit: null, + additional_rate_limits: null, + credits: { has_credits: false, unlimited: false, balance: null }, + spend_control: { + reached: false, + individual_limit: { + source: 'workspace_spend_controls', + limit: '10000', + used: '3028.9909675121307', + remaining: '6971.009032487869', + used_percent: 30, + remaining_percent: 70, + reset_after_seconds: 441_896, + reset_at: 1_785_542_400, + }, + }, + rate_limit_reset_credits: { available_count: 0 }, + } + + it('surfaces the spend-control credit limit when there are no rate windows', () => { + const quota = decodeCodexUsage(enterpriseBody) + expect(quota.primary).toEqual({ + label: 'Monthly usage limit · 3,029 / 10,000 credits', + percent: 0.3, + resetsAt: new Date(1_785_542_400 * 1000).toISOString(), + }) + expect(quota.details).toEqual([quota.primary]) + expect(quota.planLabel).toBe('Business') + expect(quota.footerLines).toEqual([]) + }) + + it('keeps rate windows primary and appends the credit limit alongside them', () => { + const quota = decodeCodexUsage({ + ...enterpriseBody, + rate_limit: { primary_window: { used_percent: 20, reset_at: 1_800_000_000, limit_window_seconds: 18_000 } }, + }) + expect(quota.primary?.label).toBe('5-hour') + expect(quota.details.map(row => row.label)).toEqual([ + '5-hour', + 'Monthly usage limit · 3,029 / 10,000 credits', + ]) + }) + + it.each([ + ['top level', (limit: unknown) => ({ individual_limit: limit })], + ['camelCase key', (limit: unknown) => ({ spend_control: { individualLimit: limit } })], + ['nested in rate_limit', (limit: unknown) => ({ rate_limit: { individual_limit: limit } })], + ])('reads the credit limit positioned at %s', (_name, wrap) => { + const quota = decodeCodexUsage(wrap({ limit: 10_000, used: 2500, used_percent: 25 })) + expect(quota.primary?.percent).toBe(0.25) + expect(quota.primary?.label).toBe('Monthly usage limit · 2,500 / 10,000 credits') + }) + + it('derives the percent from remaining_percent, then from used/limit', () => { + const fromRemaining = decodeCodexUsage({ spend_control: { individual_limit: { limit: 10_000, remaining_percent: 70 } } }) + expect(fromRemaining.primary?.percent).toBeCloseTo(0.3) + expect(fromRemaining.primary?.label).toBe('Monthly usage limit · 3,000 / 10,000 credits') + + const fromRatio = decodeCodexUsage({ spend_control: { individual_limit: { limit: 400, used: 100 } } }) + expect(fromRatio.primary?.percent).toBeCloseTo(0.25) + }) + + it('ignores a spend control with no usable limit', () => { + for (const individual_limit of [{ limit: 0, used: 5 }, { limit: null }, { used_percent: 40 }, null]) { + const quota = decodeCodexUsage({ spend_control: { individual_limit } }) + expect(quota.primary).toBeNull() + expect(quota.details).toEqual([]) + } + }) + + it('renders no row when the allowance is known but the draw on it is not', () => { + const quota = decodeCodexUsage({ spend_control: { individual_limit: { limit: 10_000, reset_at: 1_785_542_400 } } }) + expect(quota.primary).toBeNull() + expect(quota.details).toEqual([]) + }) + + it('treats a blank numeric string as absent, not as zero', () => { + const quota = decodeCodexUsage({ spend_control: { individual_limit: { limit: '10000', used: ' ', used_percent: 30 } } }) + expect(quota.primary?.label).toBe('Monthly usage limit · 3,000 / 10,000 credits') + expect(decodeCodexUsage({ spend_control: { individual_limit: { limit: '' } } }).primary).toBeNull() + }) + + it('marks a spent-out allowance as reached', () => { + const quota = decodeCodexUsage({ + spend_control: { reached: true, individual_limit: { limit: 10_000, used: 10_000, used_percent: 100 } }, + }) + expect(quota.primary?.label).toBe('Monthly usage limit · 10,000 / 10,000 credits · limit reached') + expect(quota.primary?.percent).toBe(1) + }) + + it('keeps overage counts truthful while clamping the bar', () => { + const quota = decodeCodexUsage({ spend_control: { individual_limit: { limit: 10_000, used: 12_000, used_percent: 120 } } }) + expect(quota.primary?.label).toBe('Monthly usage limit · 12,000 / 10,000 credits') + expect(quota.primary?.percent).toBe(1) + }) + + it('keeps the implied overage when only the percent is given', () => { + const quota = decodeCodexUsage({ spend_control: { individual_limit: { limit: 10_000, used_percent: 120 } } }) + expect(quota.primary?.label).toBe('Monthly usage limit · 12,000 / 10,000 credits') + expect(quota.primary?.percent).toBe(1) + }) + + it('skips a garbage alias instead of letting it mask a valid one', () => { + const quota = decodeCodexUsage({ + spend_control: { individual_limit: 'bad', individualLimit: { limit: 100, usedPercent: 25 } }, + }) + expect(quota.primary?.label).toBe('Monthly usage limit · 25 / 100 credits') + const perField = decodeCodexUsage({ + spend_control: { individual_limit: { limit: 100, used_percent: 'bad', usedPercent: 25 } }, + }) + expect(perField.primary?.percent).toBe(0.25) + }) + + it('survives a reset timestamp beyond the Date range', () => { + const quota = decodeCodexUsage({ spend_control: { individual_limit: { limit: 100, used_percent: 10, reset_at: 9_000_000_000_000 } } }) + expect(quota.primary?.resetsAt).toBeNull() + expect(quota.primary?.percent).toBe(0.1) + }) + + it('says so when the account is credit-metered but uncapped', () => { + const quota = decodeCodexUsage({ plan_type: 'business', credits: { has_credits: true, unlimited: true } }) + expect(quota.footerLines).toEqual(['Credits · Unlimited']) + const capped = decodeCodexUsage({ credits: { unlimited: true }, spend_control: { individual_limit: { limit: 10_000, used_percent: 30 } } }) + expect(capped.footerLines).toEqual([]) + }) + + it('normalizes credit-based-pricing plan tiers', () => { + const label = (plan_type: string) => decodeCodexUsage({ plan_type }).planLabel + expect(label('enterprise_cbp_usage_based')).toBe('Enterprise') + expect(label('self_serve_business_usage_based')).toBe('Business') + expect(label('enterprise')).toBe('Enterprise') + expect(label('some_future_tier')).toBe('Some Future Tier') + }) + + it('labels a credit-settled balance in credits, not dollars', () => { + const inCredits = decodeCodexUsage({ credits: { has_credits: true, balance: 3410.4 } }) + expect(inCredits.footerLines).toEqual(['Credits remaining · 3,410']) + const inDollars = decodeCodexUsage({ credits: { has_credits: false, balance: 3.5 } }) + expect(inDollars.footerLines).toEqual(['Credits remaining · $3.50']) + }) + it('returns disconnected without credentials', async () => { const fetchMock = vi.fn() const result = await fetchCodexQuota({ fetch: fetchMock, readFile: vi.fn(async () => null) }) diff --git a/app/electron/quota/codex.ts b/app/electron/quota/codex.ts index b339d50..0e7e060 100644 --- a/app/electron/quota/codex.ts +++ b/app/electron/quota/codex.ts @@ -133,10 +133,27 @@ function windowOf(value: unknown, override?: string): QuotaWindow | null { return { label: override ?? labelForSeconds(row.limit_window_seconds), percent, resetsAt: reset } } +// chatgpt.com mixes encodings inside one payload. `Number('')` is 0, not NaN, +// so blank is rejected or an absent `used` decodes as a confident zero. +function num(value: unknown): number | null { + if (typeof value === 'string' && !value.trim()) return null + const parsed = typeof value === 'number' ? value : typeof value === 'string' ? Number(value.trim()) : NaN + return Number.isFinite(parsed) ? parsed : null +} + +// Credit-based-pricing tiers arrive composite (`enterprise_cbp_usage_based`). +function normalizePlanType(value: string): string { + return value + .replace(/[_-]usage[_-]based$/, '') + .replace(/^self[_-]serve[_-]/, '') + .replace(/[_-]cbp$/, '') + .replace(/[_-]cbp[_-]/g, '_') +} + function planLabel(value: unknown): string | null { if (typeof value !== 'string' || !value.trim()) return null const raw = value.trim() - const lower = raw.toLowerCase() + const lower = normalizePlanType(raw.toLowerCase()) const known: Record = { guest: 'Guest', free: 'Free', go: 'Go', plus: 'Plus', pro: 'Pro', prolite: 'Pro Lite', pro_lite: 'Pro Lite', 'pro-lite': 'Pro Lite', @@ -146,6 +163,44 @@ function planLabel(value: unknown): string | null { return known[lower] ?? lower.replace(/(^|[_-])\w/g, match => match.replace(/[_-]/, ' ').toUpperCase()) } +// The admin-set monthly allowance, the only limit a credit-metered workspace +// has. `spend_control` is the live position, the others forward-compat. `any` +// because this walks six optional-chained hops, all validated by `num()`. +function spendControlWindow(data: Record): QuotaWindow | null { + // `find`/`num` per alias, not `??`: a non-null garbage value would stop `??` + // and mask a valid alias further down. Object-shaped garbage still wins the + // position, matching Swift, which likewise commits to the first that decodes. + const row = [ + data.spend_control?.individual_limit, + data.spend_control?.individualLimit, + data.individual_limit, + data.individualLimit, + data.rate_limit?.individual_limit, + data.rate_limit?.individualLimit, + ].find(candidate => candidate && typeof candidate === 'object') + if (!row) return null + const limit = num(row.limit) + if (limit === null || limit <= 0) return null + const remainingPercent = num(row.remaining_percent) ?? num(row.remainingPercent) + const used = num(row.used) + const rawPercent = num(row.used_percent) ?? num(row.usedPercent) + ?? (remainingPercent === null ? null : 100 - remainingPercent) + ?? (used === null ? null : (used / limit) * 100) + if (rawPercent === null) return null + const percent = Math.min(1, Math.max(0, rawPercent / 100)) + const resetRaw = num(row.reset_at) ?? num(row.resets_at) ?? num(row.resetsAt) + // Past 8.64e15 ms `toISOString()` throws RangeError. + const resetsAt = resetRaw !== null && resetRaw > 0 && resetRaw * 1000 <= 8.64e15 + ? new Date(resetRaw * 1000).toISOString() + : null + // Unclamped percent, so a 120% draw still reports 12,000 of 10,000. + const spent = used ?? limit * Math.max(0, rawPercent) / 100 + const round = (n: number) => Math.round(n).toLocaleString('en-US') + const reached = data.spend_control?.reached === true + const label = `Monthly usage limit · ${round(spent)} / ${round(limit)} credits` + return { label: reached ? `${label} · limit reached` : label, percent, resetsAt } +} + export function decodeCodexUsage(body: unknown): QuotaProvider { const data = body && typeof body === 'object' ? body as Record : {} const primaryRaw = windowOf(data.rate_limit?.primary_window) @@ -165,12 +220,21 @@ export function decodeCodexUsage(body: unknown): QuotaProvider { } } } - const rawBalance = data.credits?.balance - const balance = typeof rawBalance === 'number' ? rawBalance : typeof rawBalance === 'string' ? Number(rawBalance) : NaN + const credits = spendControlWindow(data) + if (credits) details.push(credits) + const balance = num(data.credits?.balance) + // Credit-settled accounts denominate in credits, so no currency symbol. + const hasCredits = data.credits?.has_credits === true + const footerLines: string[] = [] + if (balance !== null && balance > 0) { + footerLines.push(`Credits remaining · ${hasCredits ? Math.round(balance).toLocaleString('en-US') : `$${balance.toFixed(2)}`}`) + } + // Uncapped on purpose, so a bar-less card does not read as a failed fetch. + if (!credits && data.credits?.unlimited === true) footerLines.push('Credits · Unlimited') return { - provider: 'codex', connection: 'connected', primary, details, + provider: 'codex', connection: 'connected', primary: primary ?? credits, details, planLabel: planLabel(data.plan_type), - footerLines: Number.isFinite(balance) && balance > 0 ? [`Credits remaining · $${balance.toFixed(2)}`] : [], + footerLines, } } diff --git a/docs/providers/codex.md b/docs/providers/codex.md index 505b308..b68847d 100644 --- a/docs/providers/codex.md +++ b/docs/providers/codex.md @@ -48,6 +48,110 @@ A session that yielded zero parseable lines does **not** write to the cache (`co - `prev*` token counters are advanced on **every** event, including ones that used `last_token_usage`. Earlier code only updated them on the fallback branch, which double-counted any session that mixed modes. - OpenAI counts cached tokens **inside** `input_tokens`. The parser subtracts them so the rest of the codebase can assume Anthropic semantics (cached are separate). +## Live quota (ChatGPT subscription) + +Separate from the log parser above: the desktop app and the macOS menubar read +live quota from `GET https://chatgpt.com/backend-api/wham/usage` using the Codex +OAuth token. Two independent implementations of the same decoder, which must be +kept in sync: + +- `app/electron/quota/codex.ts`: `decodeCodexUsage()` is the pure, exported decoder. +- `mac/Sources/CodeBurnMenubar/Data/CodexSubscriptionService.swift`: `decodeUsage()`. + +### Seat-based plans (Plus, Pro, Team) + +`rate_limit.primary_window` / `secondary_window` carry `used_percent`, +`reset_at` and `limit_window_seconds`. The window *label* is inferred from the +duration (5-hour, Weekly, …), never from the plan, because window size is dynamic per +account. `additional_rate_limits[]` holds per-model limits (Codex Spark, etc.) +and is only surfaced when utilization is non-zero. + +### Credit-metered plans (Business, Edu, Enterprise on flexible pricing) + +These workspaces have **no rate-limit windows**: `rate_limit` comes back +`null`. Usage scales with credits, and an admin sets a monthly per-user credit +allowance. That allowance is the account's only limit and lives in +`spend_control`: + +```jsonc +"spend_control": { + "reached": false, + "individual_limit": { + "source": "workspace_spend_controls", + "limit": "10000", // string + "used": "3028.9909675121307", // string + "used_percent": 30, // number + "remaining_percent": 70, + "reset_after_seconds": 441896, // time *remaining*, not window length + "reset_at": 1785542400 + } +} +``` + +Notes that have bitten us: + +- **Number encodings are mixed within the same object**: `limit` and `used` + arrive as strings while `used_percent` arrives as a number. Every numeric + field is decoded flexibly (number | string) on both sides. +- **`reset_after_seconds` is not the window length.** Pace projection needs the + whole-window duration, so it is derived as the calendar month preceding + `reset_at`, resolved in **UTC**: `reset_at` is a UTC boundary, and a local + calendar would make the month length depend on the viewer's timezone (a + 2026-03-01Z reset spans 28 days in UTC but 31 in Toronto). +- Two other positions for this object have been observed in other clients + (top-level `individual_limit`, and nested under `rate_limit`), in both + snake_case and camelCase. All are accepted; `spend_control` wins. +- `credits.has_credits` means the account settles in **credits, not dollars**, so + `credits.balance` must not be rendered with a currency symbol in that case. + `credits.unlimited` means credit-metered but deliberately uncapped. +- **`has_credits` is not "is credit-metered".** The live Enterprise workspace + above is credit-metered (it has a `spend_control` allowance) yet reports + `has_credits: false` with a `null` balance, so the flag tracks whether the + account holds a *credit balance*, which is orthogonal to the allowance. Do not + derive one from the other. The `has_credits: true` rendering path has not been + observed against a real account; if a seat-based account ever reports it + alongside a dollar balance, the footer would drop the `$` and round to whole + units. + +### `plan_type` cannot distinguish Business from Enterprise + +A live ChatGPT **Enterprise** workspace reports `plan_type: "business"` on this +endpoint, and the `id_token`'s `https://api.openai.com/auth → chatgpt_plan_type` +claim says `"business"` too, even though ChatGPT's own workspace switcher +displays "Enterprise". Neither source carries the distinction, so the label +CodeBurn shows is faithfully what OpenAI returns. Do not try to infer a tier +from the presence of a spend control. + +The switcher renders from the accounts endpoints, and **those are not reachable +with a Codex token**, verified against a live Enterprise workspace: + +| Endpoint | Result | +| --- | --- | +| `/backend-api/accounts/check/v4-2023-04-27` | 403 | +| `/backend-api/accounts/check` | 403 | +| `/backend-api/me` | 403 | +| `/backend-api/settings/account_user_setting` | 403 | + +Not an expiry or a missing-header problem: the same token returns 200 on +`/wham/usage` (and on `/backend-api/gizmo_creator_profile`) in the same run. The +Codex OAuth access token carries scopes `openid profile email offline_access +api.connectors.read api.connectors.invoke` with audience +`https://api.openai.com/v1`, with no ChatGPT web-app account scope, so the accounts +surfaces reject it by design. Adding a `ChatGPT-Account-Id` header does not +change this. **Business is therefore the correct label to display**; closing +this gap would need a different credential, not a different endpoint. + +Composite tiers (`enterprise_cbp_usage_based`, `self_serve_business_usage_based`) +*are* normalized down to their base tier before lookup. + +### Reset credits + +`rate_limit_reset_credits` is carried inline on the usage payload +(`available_count`). The dedicated `GET /wham/rate-limit-reset-credits` +endpoint is only called when the inline block is absent. It is the sole source +of per-credit `expires_at` values, so the "next expires" caption is omitted on +the inline path. + ## When fixing a bug here 1. Reproduce against a real `rollout-*.jsonl` if you can. Drop a redacted copy under `tests/fixtures/codex/` and reference it from `tests/providers/codex.test.ts`. diff --git a/mac/Sources/CodeBurnMenubar/AppStore.swift b/mac/Sources/CodeBurnMenubar/AppStore.swift index 32c9cdd..bfc3721 100644 --- a/mac/Sources/CodeBurnMenubar/AppStore.swift +++ b/mac/Sources/CodeBurnMenubar/AppStore.swift @@ -1378,19 +1378,35 @@ final class AppStore { details.append(.init(label: "\(extra.name) · \(s.windowLabel)", percent: s.usedPercent / 100, resetsAt: s.resetsAt)) } } + // No rate windows here, so the allowance feeds the bar and badge. + if let credits = usage.creditLimit { + let row = QuotaSummary.Window( + label: credits.shortLabel, + percent: credits.usedPercent / 100, + resetsAt: credits.resetsAt + ) + if primary == nil { primary = row } + details.append(row) + } } let plan = codexUsage?.plan.displayName var footerLines: [String] = [] if let balance = codexUsage?.creditsBalance, balance > 0 { - // Format as plain dollars; ChatGPT settles in USD regardless of - // the user's display-currency preference. + // Credit-settled accounts denominate in credits, so no symbol. + let inCredits = codexUsage?.hasCredits == true let formatter = NumberFormatter() - formatter.numberStyle = .currency - formatter.currencyCode = "USD" - formatter.maximumFractionDigits = 2 - let formatted = formatter.string(from: NSNumber(value: balance)) ?? "$\(balance)" + formatter.numberStyle = inCredits ? .decimal : .currency + formatter.maximumFractionDigits = inCredits ? 0 : 2 + // `en_US`, not `en_US_POSIX`: the latter drops grouping entirely. + formatter.locale = Locale(identifier: "en_US") + if !inCredits { formatter.currencyCode = "USD" } + let fallback = inCredits ? "\(Int(balance.rounded()))" : "$\(balance)" + let formatted = formatter.string(from: NSNumber(value: balance)) ?? fallback footerLines.append("Credits remaining · \(formatted)") } + if codexUsage?.creditLimit == nil, codexUsage?.creditsUnlimited == true { + footerLines.append("Credits · Unlimited") + } return QuotaSummary(providerFilter: filter, connection: connection, primary: primary, details: details, planLabel: plan, footerLines: footerLines) } diff --git a/mac/Sources/CodeBurnMenubar/Data/CodexSubscriptionService.swift b/mac/Sources/CodeBurnMenubar/Data/CodexSubscriptionService.swift index 0eea71f..d25637c 100644 --- a/mac/Sources/CodeBurnMenubar/Data/CodexSubscriptionService.swift +++ b/mac/Sources/CodeBurnMenubar/Data/CodexSubscriptionService.swift @@ -111,10 +111,12 @@ enum CodexSubscriptionService { switch http.statusCode { case 200: clearUsageBlock() - // Companion fetch, strictly best-effort: any failure yields nil and - // the Plan view simply omits the row. This endpoint must never be - // able to break the quota display. - let resetCredits = await fetchResetCredits(token: token) + // Skip the companion request only when the inline block says zero. + // Best-effort either way: nil just omits the row. + var resetCredits = inlineResetCreditsShortcut(data: data) + if resetCredits == nil { + resetCredits = await fetchResetCredits(token: token) + } do { return try decodeUsage(data: data, resetCredits: resetCredits) } catch { @@ -144,15 +146,83 @@ enum CodexSubscriptionService { } } + /// chatgpt.com mixes encodings inside one payload: `"limit": "10000"` next + /// to `"used_percent": 30`. Every numeric field decodes through here. + private enum Flexible { + // `decode`, not `decodeIfPresent`: missing, null and wrong-typed all + // mean "not available", without the double-optional footgun. + // Int first keeps precision above 2^53. Infinity and NaN survive + // `Double(_ text:)`, so reject them here. + static func double(_ c: KeyedDecodingContainer, _ key: K) -> Double? { + if let v = try? c.decode(Int.self, forKey: key) { return Double(v) } + if let v = try? c.decode(Double.self, forKey: key) { return v.isFinite ? v : nil } + if let v = try? c.decode(String.self, forKey: key), + let d = Double(v.trimmingCharacters(in: .whitespacesAndNewlines)) { + return d.isFinite ? d : nil + } + return nil + } + // `Int(exactly:)`, never `Int(_:)`: the plain initializer traps on an + // out-of-range Double, and a trap is not a catchable DecodingError. + static func int(_ c: KeyedDecodingContainer, _ key: K) -> Int? { + double(c, key).flatMap { Int(exactly: $0.rounded()) } + } + static func bool(_ c: KeyedDecodingContainer, _ key: K) -> Bool { + (try? c.decode(Bool.self, forKey: key)) ?? false + } + } + + /// Decoding `[T]` is atomic, so one bad entry would discard every sibling. + private struct Lossy: Decodable { + let value: T? + init(from decoder: Decoder) throws { value = try? T(from: decoder) } + } + private struct UsageDTO: Decodable { let plan_type: String? let rate_limit: RateLimit? let additional_rate_limits: [AdditionalLimitDTO]? let credits: Credits? + let spend_control: SpendControl? + /// Forward-compat: some variants hoist this to the top level. + let individual_limit: IndividualLimit? + + enum CodingKeys: String, CodingKey { + case plan_type, rate_limit, additional_rate_limits, credits, spend_control + case individual_limit + case individualLimit + } + + init(from decoder: Decoder) throws { + let c = try decoder.container(keyedBy: CodingKeys.self) + plan_type = try? c.decode(String.self, forKey: .plan_type) + rate_limit = try? c.decode(RateLimit.self, forKey: .rate_limit) + additional_rate_limits = (try? c.decode([Lossy].self, forKey: .additional_rate_limits))? + .compactMap(\.value) + credits = try? c.decode(Credits.self, forKey: .credits) + spend_control = try? c.decode(SpendControl.self, forKey: .spend_control) + individual_limit = (try? c.decode(IndividualLimit.self, forKey: .individual_limit)) + ?? (try? c.decode(IndividualLimit.self, forKey: .individualLimit)) + } struct RateLimit: Decodable { let primary_window: WindowDTO? let secondary_window: WindowDTO? + /// Forward-compat: another observed position for the spend control. + let individual_limit: IndividualLimit? + + enum CodingKeys: String, CodingKey { + case primary_window, secondary_window, individual_limit + case individualLimit + } + + init(from decoder: Decoder) throws { + let c = try decoder.container(keyedBy: CodingKeys.self) + primary_window = try? c.decode(WindowDTO.self, forKey: .primary_window) + secondary_window = try? c.decode(WindowDTO.self, forKey: .secondary_window) + individual_limit = (try? c.decode(IndividualLimit.self, forKey: .individual_limit)) + ?? (try? c.decode(IndividualLimit.self, forKey: .individualLimit)) + } } struct AdditionalLimitDTO: Decodable { let limit_name: String? @@ -163,22 +233,72 @@ enum CodexSubscriptionService { let reset_at: Int? let limit_window_seconds: Int? } + /// Credit-metered workspaces report `rate_limit: null` and carry their + /// real limit here: the monthly allowance an admin sets. + struct SpendControl: Decodable { + let reached: Bool + let individualLimit: IndividualLimit? + + enum CodingKeys: String, CodingKey { + case reached + case individual_limit + case individualLimit + } + + init(from decoder: Decoder) throws { + let c = try decoder.container(keyedBy: CodingKeys.self) + reached = Flexible.bool(c, .reached) + individualLimit = (try? c.decode(IndividualLimit.self, forKey: .individual_limit)) + ?? (try? c.decode(IndividualLimit.self, forKey: .individualLimit)) + } + } + struct IndividualLimit: Decodable { + let limit: Double? + let used: Double? + let usedPercent: Double? + let remainingPercent: Double? + let resetAt: Int? + + enum CodingKeys: String, CodingKey { + case limit, used + case used_percent, usedPercent + case remaining_percent, remainingPercent + case reset_at, resets_at, resetsAt + } + + init(from decoder: Decoder) throws { + let c = try decoder.container(keyedBy: CodingKeys.self) + limit = Flexible.double(c, .limit) + used = Flexible.double(c, .used) + usedPercent = Flexible.double(c, .used_percent) ?? Flexible.double(c, .usedPercent) + remainingPercent = Flexible.double(c, .remaining_percent) + ?? Flexible.double(c, .remainingPercent) + resetAt = Flexible.int(c, .reset_at) + ?? Flexible.int(c, .resets_at) + ?? Flexible.int(c, .resetsAt) + } + } // chatgpt.com sometimes serializes balance as a Double ("balance": 0.0) // and other times as a String ("balance": "0.00"). Mirror CodexBar's // resilient decode so a schema drift on either shape doesn't blow up // the whole quota fetch. struct Credits: Decodable { let balance: Double? - enum CodingKeys: String, CodingKey { case balance } + /// Settles in credits, not dollars, which relabels `balance`. + let hasCredits: Bool + let unlimited: Bool + + enum CodingKeys: String, CodingKey { + case balance + case has_credits + case unlimited + } + init(from decoder: Decoder) throws { let c = try decoder.container(keyedBy: CodingKeys.self) - if let n = try? c.decode(Double.self, forKey: .balance) { - balance = n - } else if let s = try? c.decode(String.self, forKey: .balance), let n = Double(s) { - balance = n - } else { - balance = nil - } + balance = Flexible.double(c, .balance) + hasCredits = Flexible.bool(c, .has_credits) + unlimited = Flexible.bool(c, .unlimited) } } } @@ -204,6 +324,28 @@ enum CodexSubscriptionService { return parseResetCredits(data: data) } + /// The inline block carries no per-credit expiry list, so it is only a safe + /// shortcut at zero, where there is no expiry to report. A non-zero count + /// still pays for the companion request rather than dropping the + /// "next expires" caption the popover would otherwise show. + static func inlineResetCreditsShortcut(data: Data) -> CodexUsage.ResetCredits? { + guard let inline = inlineResetCredits(data: data), inline.availableCount == 0 else { return nil } + return inline + } + + /// Reset-credit inventory carried inline on the usage payload. Nil means + /// absent. + static func inlineResetCredits(data: Data) -> CodexUsage.ResetCredits? { + struct InlineDTO: Decodable { + struct Block: Decodable { let available_count: Int? } + let rate_limit_reset_credits: Block? + } + guard let count = (try? JSONDecoder().decode(InlineDTO.self, from: data))? + .rate_limit_reset_credits?.available_count, count >= 0 + else { return nil } + return CodexUsage.ResetCredits(availableCount: count, nextExpiresAt: nil) + } + /// Internal (not private) so tests can drive it with fixture payloads. /// Returns nil on any unexpected shape — the caller treats nil as /// "feature unavailable", never as an error. @@ -239,7 +381,8 @@ enum CodexSubscriptionService { return plain.date(from: raw) } - private static func decodeUsage(data: Data, resetCredits: CodexUsage.ResetCredits? = nil) throws -> CodexUsage { + /// Internal (not private) so tests can drive it with fixture payloads. + static func decodeUsage(data: Data, resetCredits: CodexUsage.ResetCredits? = nil) throws -> CodexUsage { let root = try JSONDecoder().decode(UsageDTO.self, from: data) let additional: [CodexUsage.AdditionalLimit] = (root.additional_rate_limits ?? []).compactMap { dto in guard let name = dto.limit_name, !name.isEmpty else { return nil } @@ -249,17 +392,61 @@ enum CodexSubscriptionService { secondary: makeWindow(dto.rate_limit?.secondary_window) ) } + let limitDTO = root.spend_control?.individualLimit + ?? root.individual_limit + ?? root.rate_limit?.individual_limit return CodexUsage( plan: CodexUsage.planType(from: root.plan_type), primary: makeWindow(root.rate_limit?.primary_window), secondary: makeWindow(root.rate_limit?.secondary_window), additionalLimits: additional, creditsBalance: root.credits?.balance, + hasCredits: root.credits?.hasCredits ?? false, + creditsUnlimited: root.credits?.unlimited ?? false, + creditLimit: makeCreditLimit(limitDTO, reached: root.spend_control?.reached ?? false), resetCredits: resetCredits, fetchedAt: Date() ) } + private static func makeCreditLimit( + _ dto: UsageDTO.IndividualLimit?, + reached: Bool + ) -> CodexUsage.CreditLimit? { + guard let dto, let limit = dto.limit, limit > 0 else { return nil } + // Server percentage, then remaining_percent, then the raw ratio. No + // signal at all means the draw is unknown; a 0% bar would claim otherwise. + guard let raw = dto.usedPercent + ?? dto.remainingPercent.map({ 100 - $0 }) + ?? dto.used.map({ $0 / limit * 100 }) + else { return nil } + let percent = min(max(raw, 0), 100) + let resetsAt = dto.resetAt.flatMap { $0 > 0 ? Date(timeIntervalSince1970: TimeInterval($0)) : nil } + return CodexUsage.CreditLimit( + // Unclamped percent, so a 120% draw still reports 12,000 of 10,000. + used: dto.used ?? limit * max(raw, 0) / 100, + limit: limit, + usedPercent: percent, + resetsAt: resetsAt, + windowSeconds: monthlyWindowSeconds(endingAt: resetsAt), + reached: reached + ) + } + + /// Spend controls reset on a calendar-month boundary, so the window is the + /// month preceding the reset. Not `reset_after_seconds`, which is remaining. + /// UTC, not `Calendar.current`: a 2026-03-01Z reset spans 28 days in UTC + /// but 31 in Toronto, so a local calendar makes pace timezone-dependent. + private static func monthlyWindowSeconds(endingAt resetsAt: Date?) -> Int? { + var calendar = Calendar(identifier: .gregorian) + calendar.timeZone = TimeZone(secondsFromGMT: 0) ?? .gmt + guard let resetsAt, + let start = calendar.date(byAdding: .month, value: -1, to: resetsAt) + else { return nil } + let seconds = Int(resetsAt.timeIntervalSince(start)) + return seconds > 0 ? seconds : nil + } + private static func makeWindow(_ dto: UsageDTO.WindowDTO?) -> CodexUsage.Window? { guard let dto, let used = dto.used_percent, let windowSeconds = dto.limit_window_seconds else { return nil diff --git a/mac/Sources/CodeBurnMenubar/Data/CodexUsage.swift b/mac/Sources/CodeBurnMenubar/Data/CodexUsage.swift index 3a5d814..2fbbdbf 100644 --- a/mac/Sources/CodeBurnMenubar/Data/CodexUsage.swift +++ b/mac/Sources/CodeBurnMenubar/Data/CodexUsage.swift @@ -31,7 +31,12 @@ struct CodexUsage: Sendable, Equatable { case .k12: "K-12" case .enterprise: "Enterprise" case .edu: "Edu" - case let .unknown(raw): raw.isEmpty ? "Subscription" : raw.capitalized + case let .unknown(raw): + raw.isEmpty + ? "Subscription" + : raw.replacingOccurrences(of: "_", with: " ") + .replacingOccurrences(of: "-", with: " ") + .capitalized } } } @@ -76,16 +81,55 @@ struct CodexUsage: Sendable, Equatable { let nextExpiresAt: Date? } + /// The monthly allowance an admin sets. Credit-metered workspaces report + /// `rate_limit: null`, so this is their only limit. + struct CreditLimit: Sendable, Equatable { + let used: Double + let limit: Double + let usedPercent: Double // 0.0 ... 100.0 + let resetsAt: Date? + /// Calendar month the allowance resets on, for pace projection. Not the + /// payload's `reset_after_seconds`, which is the time remaining. + let windowSeconds: Int? + /// Allowance already spent: a hard stop, not a near-limit warning. + let reached: Bool + + /// `.halfUp` matches the desktop decoder's `Math.round`. + var displayLabel: String { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + formatter.maximumFractionDigits = 0 + formatter.roundingMode = .halfUp + // `en_US`, not `en_US_POSIX`: the latter drops grouping entirely. + formatter.locale = Locale(identifier: "en_US") + func text(_ value: Double) -> String { + formatter.string(from: NSNumber(value: value)) ?? "\(Int(value.rounded()))" + } + let base = "Monthly usage limit · \(text(used)) / \(text(limit)) credits" + return reached ? "\(base) · limit reached" : base + } + + var shortLabel: String { + reached ? "Monthly usage limit · limit reached" : "Monthly usage limit" + } + } + let plan: PlanType let primary: Window? let secondary: Window? let additionalLimits: [AdditionalLimit] let creditsBalance: Double? + /// Account settles in credits, not dollars, which changes `creditsBalance`. + let hasCredits: Bool + /// Uncapped on purpose, as distinct from a limit we failed to read. + let creditsUnlimited: Bool + let creditLimit: CreditLimit? let resetCredits: ResetCredits? let fetchedAt: Date static func planType(from raw: String?) -> PlanType { - guard let raw = raw?.lowercased() else { return .unknown("") } + guard let original = raw?.lowercased() else { return .unknown("") } + let raw = normalizePlanType(original) switch raw { case "guest": return .guest case "free": return .free @@ -101,7 +145,28 @@ struct CodexUsage: Sendable, Equatable { case "k12": return .k12 case "enterprise": return .enterprise case "edu": return .edu + // Normalized, so an unknown composite reads "Some Future Tier". default: return .unknown(raw) } } + + /// Credit-based-pricing tiers arrive composite (`enterprise_cbp_usage_based`). + private static func normalizePlanType(_ raw: String) -> String { + var value = raw.trimmingCharacters(in: .whitespacesAndNewlines) + for suffix in ["_usage_based", "-usage-based", "_usage-based", "-usage_based"] + where value.hasSuffix(suffix) { + value.removeLast(suffix.count) + } + for prefix in ["self_serve_", "self-serve-", "self_serve-", "self-serve_"] + where value.hasPrefix(prefix) { + value.removeFirst(prefix.count) + } + for suffix in ["_cbp", "-cbp"] where value.hasSuffix(suffix) { + value.removeLast(suffix.count) + } + for infix in ["_cbp_", "-cbp-", "_cbp-", "-cbp_"] { + value = value.replacingOccurrences(of: infix, with: "_") + } + return value + } } diff --git a/mac/Sources/CodeBurnMenubar/Views/HeatmapSection.swift b/mac/Sources/CodeBurnMenubar/Views/HeatmapSection.swift index 25b128a..42ae294 100644 --- a/mac/Sources/CodeBurnMenubar/Views/HeatmapSection.swift +++ b/mac/Sources/CodeBurnMenubar/Views/HeatmapSection.swift @@ -2067,7 +2067,7 @@ private struct CodexPlanInsight: View { .font(.system(size: 13, weight: .semibold)) .foregroundStyle(.primary) Spacer() - if let resetsAt = (usage.primary ?? usage.secondary)?.resetsAt { + if let resetsAt = (usage.primary ?? usage.secondary)?.resetsAt ?? usage.creditLimit?.resetsAt { Text("Resets \(relativeReset(resetsAt))") .font(.system(size: 10.5)) .foregroundStyle(.secondary) @@ -2109,6 +2109,26 @@ private struct CodexPlanInsight: View { ) } } + // No rate windows here, so without this row the card is empty. + if let credits = usage.creditLimit { + UtilizationRow( + label: credits.displayLabel, + percent: credits.usedPercent, + resetsAt: credits.resetsAt, + projection: pace(for: credits) + ) + } else if usage.creditsUnlimited { + // Uncapped on purpose, not a failed fetch. + HStack(alignment: .firstTextBaseline) { + Text("Credits") + .font(.system(size: 11, weight: .medium)) + .foregroundStyle(.secondary) + Spacer() + Text("Unlimited") + .font(.system(size: 10.5)) + .foregroundStyle(.secondary) + } + } // Limit-reset credits the account is holding. Hidden at zero so // plans that never receive these grants see no extra row. if let resets = usage.resetCredits, resets.availableCount > 0 { @@ -2147,6 +2167,25 @@ private struct CodexPlanInsight: View { ) } + /// Rate-window pace math over the spend control's calendar month. + private func pace(for credits: CodexUsage.CreditLimit) -> WindowProjection? { + guard let windowSeconds = credits.windowSeconds, + let result = QuotaPace.evaluate( + usedPercent: credits.usedPercent, + resetsAt: credits.resetsAt, + windowSeconds: windowSeconds + ) + else { return nil } + return WindowProjection( + percent: result.projectedPercent, + willOverflow: result.willOverflow, + hitsLimitAt: result.hitsLimitAt, + source: .linear, + deltaPercent: result.deltaPercent, + compact: TimeInterval(windowSeconds) <= QuotaPace.etaSuppressionMaxSeconds + ) + } + private func resetCreditsLabel(_ resets: CodexUsage.ResetCredits) -> String { let count = "\(resets.availableCount) available" guard let next = resets.nextExpiresAt else { return count } diff --git a/mac/Sources/CodeBurnMenubar/Views/SettingsView.swift b/mac/Sources/CodeBurnMenubar/Views/SettingsView.swift index f220ba5..289ad58 100644 --- a/mac/Sources/CodeBurnMenubar/Views/SettingsView.swift +++ b/mac/Sources/CodeBurnMenubar/Views/SettingsView.swift @@ -487,7 +487,7 @@ private struct CodexSettingsTab: View { CodexConnectionRow() } Section { - Text("Codex live-quota tracking reads `~/.codex/auth.json` once on Connect, then keeps a local copy under Application Support so subsequent quota fetches don't re-read the original. Only ChatGPT-mode auth (Plus / Pro / Team / Business) is supported — API-key users are billed per request and have a different reporting surface.") + Text("Codex live-quota tracking reads `~/.codex/auth.json` once on Connect, then keeps a local copy under Application Support so subsequent quota fetches don't re-read the original. Only ChatGPT-mode auth (Plus / Pro / Team / Business / Edu / Enterprise) is supported. API-key users are billed per request and have a different reporting surface. Credit-metered workspaces report no rate-limit windows, so their monthly credit allowance is shown instead.") .font(.system(size: 11)) .foregroundStyle(.secondary) } header: { diff --git a/mac/Tests/CodeBurnMenubarTests/CodexPlanParsingTests.swift b/mac/Tests/CodeBurnMenubarTests/CodexPlanParsingTests.swift new file mode 100644 index 0000000..bd55447 --- /dev/null +++ b/mac/Tests/CodeBurnMenubarTests/CodexPlanParsingTests.swift @@ -0,0 +1,248 @@ +import Foundation +import XCTest +@testable import CodeBurnMenubar + +/// `plan_type` parsing and the credit-metered branch of the wham/usage decoder. +final class CodexPlanParsingTests: XCTestCase { + private func decode(_ json: String) throws -> CodexUsage { + try CodexSubscriptionService.decodeUsage(data: Data(json.utf8)) + } + + func testKnownTiersMapToDisplayNames() { + let expected: [String: String] = [ + "guest": "Guest", "free": "Free", "go": "Go", "plus": "Plus", "pro": "Pro", + "prolite": "Pro Lite", "pro_lite": "Pro Lite", "pro-lite": "Pro Lite", + "free_workspace": "Free Workspace", "team": "Team", "business": "Business", + "education": "Education", "quorum": "Quorum", "k12": "K-12", + "enterprise": "Enterprise", "edu": "Edu", + ] + for (raw, display) in expected { + XCTAssertEqual(CodexUsage.planType(from: raw).displayName, display, "plan_type: \(raw)") + } + } + + func testTierMatchingIsCaseInsensitive() { + XCTAssertEqual(CodexUsage.planType(from: "pLuS"), .plus) + XCTAssertEqual(CodexUsage.planType(from: "ENTERPRISE"), .enterprise) + } + + func testCreditBasedPricingCompositesNormalize() { + XCTAssertEqual(CodexUsage.planType(from: "enterprise_cbp_usage_based"), .enterprise) + XCTAssertEqual(CodexUsage.planType(from: "self_serve_business_usage_based"), .business) + XCTAssertEqual(CodexUsage.planType(from: "business_cbp"), .business) + } + + func testHyphenSeparatedCompositesNormalizeToo() { + XCTAssertEqual(CodexUsage.planType(from: "enterprise-cbp-usage-based"), .enterprise) + XCTAssertEqual(CodexUsage.planType(from: "self-serve-business-usage-based"), .business) + XCTAssertEqual(CodexUsage.planType(from: "business-cbp"), .business) + } + + func testUnknownTierNormalizesAndTitleCasesLikeTheDesktopDecoder() { + XCTAssertEqual(CodexUsage.planType(from: "some_future_tier_usage_based"), + .unknown("some_future_tier")) + XCTAssertEqual(CodexUsage.planType(from: "some_future_tier_usage_based").displayName, + "Some Future Tier") + XCTAssertEqual(CodexUsage.planType(from: nil), .unknown("")) + XCTAssertEqual(CodexUsage.planType(from: nil).displayName, "Subscription") + } + + /// Captured from a live ChatGPT Enterprise workspace (identifiers replaced). + private let enterprisePayload = #""" + { + "plan_type": "business", + "rate_limit": null, + "code_review_rate_limit": null, + "additional_rate_limits": null, + "credits": { + "has_credits": false, "unlimited": false, "overage_limit_reached": false, + "balance": null, "approx_local_messages": null, "approx_cloud_messages": null + }, + "spend_control": { + "reached": false, + "individual_limit": { + "source": "workspace_spend_controls", + "limit": "10000", + "used": "3028.9909675121307", + "remaining": "6971.009032487869", + "used_percent": 30, + "remaining_percent": 70, + "reset_after_seconds": 441896, + "reset_at": 1785542400 + } + }, + "rate_limit_reset_credits": {"available_count": 0, "applicable_available_count": 0} + } + """# + + func testEnterprisePayloadDecodesTheSpendControlLimit() throws { + let usage = try decode(enterprisePayload) + XCTAssertNil(usage.primary) + XCTAssertNil(usage.secondary) + XCTAssertTrue(usage.additionalLimits.isEmpty) + + let credits = try XCTUnwrap(usage.creditLimit) + XCTAssertEqual(credits.limit, 10_000) + XCTAssertEqual(credits.used, 3028.9909675121307, accuracy: 0.0001) + XCTAssertEqual(credits.usedPercent, 30) + XCTAssertEqual(credits.resetsAt, Date(timeIntervalSince1970: 1_785_542_400)) + XCTAssertFalse(credits.reached) + // July 2026, not the payload's `reset_after_seconds`. + XCTAssertEqual(try XCTUnwrap(credits.windowSeconds), 31 * 86_400) + + XCTAssertEqual(usage.plan, .business) + XCTAssertNil(usage.creditsBalance) + XCTAssertFalse(usage.hasCredits) + XCTAssertFalse(usage.creditsUnlimited) + } + + func testSpendControlIsReadAtEveryObservedPosition() throws { + let bodies = [ + #"{"spend_control": {"individual_limit": {"limit": 10000, "used_percent": 25}}}"#, + #"{"spend_control": {"individualLimit": {"limit": 10000, "usedPercent": 25}}}"#, + #"{"individual_limit": {"limit": 10000, "used_percent": 25}}"#, + #"{"rate_limit": {"individual_limit": {"limit": 10000, "used_percent": 25}}}"#, + ] + for body in bodies { + let credits = try XCTUnwrap(decode(body).creditLimit, body) + XCTAssertEqual(credits.usedPercent, 25, body) + XCTAssertEqual(credits.used, 2500, body) + } + } + + func testPercentFallsBackThroughRemainingPercentThenRawRatio() throws { + let fromRemaining = try XCTUnwrap( + decode(#"{"spend_control": {"individual_limit": {"limit": 10000, "remaining_percent": 70}}}"#).creditLimit) + XCTAssertEqual(fromRemaining.usedPercent, 30, accuracy: 0.0001) + + let fromRatio = try XCTUnwrap( + decode(#"{"spend_control": {"individual_limit": {"limit": 400, "used": 100}}}"#).creditLimit) + XCTAssertEqual(fromRatio.usedPercent, 25, accuracy: 0.0001) + } + + func testUnusableSpendControlYieldsNoRow() throws { + let bodies = [ + #"{"spend_control": {"individual_limit": {"limit": 0, "used": 5}}}"#, + #"{"spend_control": {"individual_limit": {"limit": null}}}"#, + #"{"spend_control": {"individual_limit": {"used_percent": 40}}}"#, + #"{"spend_control": {"individual_limit": null}}"#, + #"{"spend_control": null}"#, + "{}", + ] + for body in bodies { + XCTAssertNil(try decode(body).creditLimit, body) + } + } + + func testAllowanceWithoutAnyUsageSignalYieldsNoRow() throws { + let body = #"{"spend_control": {"individual_limit": {"limit": 10000, "reset_at": 1785542400}}}"# + XCTAssertNil(try decode(body).creditLimit) + } + + func testBlankNumericStringIsAbsentNotZero() throws { + let credits = try XCTUnwrap(decode(#""" + {"spend_control": {"individual_limit": {"limit": "10000", "used": " ", "used_percent": 30}}} + """#).creditLimit) + XCTAssertEqual(credits.used, 3000, accuracy: 0.001) + XCTAssertNil(try decode(#"{"spend_control": {"individual_limit": {"limit": ""}}}"#).creditLimit) + } + + func testOverageKeepsCountsTruthfulWhileClampingPercent() throws { + let credits = try XCTUnwrap(decode(#""" + {"spend_control": {"individual_limit": {"limit": 10000, "used": 12000, "used_percent": 120}}} + """#).creditLimit) + XCTAssertEqual(credits.used, 12000, accuracy: 0.001) + XCTAssertEqual(credits.usedPercent, 100) + } + + func testMonthWindowIsTimezoneIndependent() throws { + // 2026-03-01Z reads as 28 days in UTC but 31 through a local calendar. + let body = #"{"spend_control": {"individual_limit": {"limit": 100, "used_percent": 10, "reset_at": 1772323200}}}"# + XCTAssertEqual(try XCTUnwrap(decode(body).creditLimit?.windowSeconds), 28 * 86_400) + } + + func testOutOfRangeNumbersDoNotTrap() throws { + // `Int(_:)` on 1e100 traps, and a trap is not a catchable error. + for body in [ + #"{"spend_control": {"individual_limit": {"limit": 100, "used_percent": 10, "reset_at": 1e100}}}"#, + #"{"spend_control": {"individual_limit": {"limit": "Infinity", "used_percent": 10}}}"#, + #"{"spend_control": {"individual_limit": {"limit": 100, "used_percent": "NaN"}}}"#, + ] { + _ = try? decode(body) + } + let huge = #"{"spend_control": {"individual_limit": {"limit": 100, "used_percent": 10, "reset_at": "1e100"}}}"# + XCTAssertNil(try XCTUnwrap(decode(huge).creditLimit).resetsAt) + } + + func testPercentOnlyOverageKeepsTheImpliedCount() throws { + let body = #"{"spend_control": {"individual_limit": {"limit": 10000, "used_percent": 120}}}"# + let credits = try XCTUnwrap(decode(body).creditLimit) + XCTAssertEqual(credits.used, 12000, accuracy: 0.001) + XCTAssertEqual(credits.usedPercent, 100) + XCTAssertEqual(credits.displayLabel, "Monthly usage limit · 12,000 / 10,000 credits") + } + + func testOneMalformedAdditionalLimitDoesNotDiscardTheRest() throws { + let body = #""" + {"additional_rate_limits": [ + null, + {"limit_name": "Spark", "rate_limit": {"primary_window": {"used_percent": 40, "limit_window_seconds": 18000}}} + ]} + """# + XCTAssertEqual(try decode(body).additionalLimits.map(\.name), ["Spark"]) + } + + func testReachedSpendControlIsCarriedThrough() throws { + let credits = try XCTUnwrap(decode(#""" + {"spend_control": {"reached": true, "individual_limit": {"limit": 10000, "used_percent": 100}}} + """#).creditLimit) + XCTAssertTrue(credits.reached) + XCTAssertEqual(credits.usedPercent, 100) + } + + func testCreditFlagsAndMixedNumberEncodings() throws { + let usage = try decode(#""" + {"credits": {"has_credits": true, "unlimited": true, "balance": "3410.40"}} + """#) + XCTAssertTrue(usage.hasCredits) + XCTAssertTrue(usage.creditsUnlimited) + XCTAssertEqual(try XCTUnwrap(usage.creditsBalance), 3410.40, accuracy: 0.0001) + } + + func testRateWindowsStillDecodeAlongsideASpendControl() throws { + let usage = try decode(#""" + { + "plan_type": "plus", + "rate_limit": { + "primary_window": {"used_percent": 20, "reset_at": 1800000000, "limit_window_seconds": 18000} + }, + "spend_control": {"individual_limit": {"limit": 10000, "used_percent": 30}} + } + """#) + XCTAssertEqual(usage.primary?.usedPercent, 20) + XCTAssertEqual(usage.primary?.windowLabel, "5-hour") + XCTAssertEqual(usage.creditLimit?.usedPercent, 30) + } + + func testOnlyAZeroCountSkipsTheCompanionRequest() { + let zero = #"{"rate_limit_reset_credits": {"available_count": 0}}"# + let some = #"{"rate_limit_reset_credits": {"available_count": 3}}"# + XCTAssertEqual(CodexSubscriptionService.inlineResetCreditsShortcut(data: Data(zero.utf8))?.availableCount, 0) + XCTAssertNil(CodexSubscriptionService.inlineResetCreditsShortcut(data: Data(some.utf8))) + XCTAssertNil(CodexSubscriptionService.inlineResetCreditsShortcut(data: Data("{}".utf8))) + XCTAssertEqual(CodexSubscriptionService.inlineResetCredits(data: Data(some.utf8))?.availableCount, 3) + } + + func testInlineResetCreditsParseFromTheUsagePayload() { + let inline = CodexSubscriptionService.inlineResetCredits(data: Data(enterprisePayload.utf8)) + XCTAssertEqual(inline?.availableCount, 0) + XCTAssertNil(inline?.nextExpiresAt) + } + + func testInlineResetCreditsAbsentSignalsFallback() { + XCTAssertNil(CodexSubscriptionService.inlineResetCredits(data: Data("{}".utf8))) + XCTAssertNil(CodexSubscriptionService.inlineResetCredits(data: Data("not json".utf8))) + XCTAssertNil(CodexSubscriptionService.inlineResetCredits( + data: Data(#"{"rate_limit_reset_credits": {}}"#.utf8))) + } +} diff --git a/mac/Tests/CodeBurnMenubarTests/CodexQuotaSummaryTests.swift b/mac/Tests/CodeBurnMenubarTests/CodexQuotaSummaryTests.swift new file mode 100644 index 0000000..ba37e10 --- /dev/null +++ b/mac/Tests/CodeBurnMenubarTests/CodexQuotaSummaryTests.swift @@ -0,0 +1,79 @@ +import Foundation +import Testing +@testable import CodeBurnMenubar + +private func usage( + balance: Double? = nil, + hasCredits: Bool = false, + unlimited: Bool = false, + creditLimit: CodexUsage.CreditLimit? = nil +) -> CodexUsage { + CodexUsage( + plan: .business, + primary: nil, + secondary: nil, + additionalLimits: [], + creditsBalance: balance, + hasCredits: hasCredits, + creditsUnlimited: unlimited, + creditLimit: creditLimit, + resetCredits: nil, + fetchedAt: Date() + ) +} + +private func limit(used: Double, of total: Double, reached: Bool = false) -> CodexUsage.CreditLimit { + CodexUsage.CreditLimit( + used: used, + limit: total, + usedPercent: used / total * 100, + resetsAt: Date(timeIntervalSince1970: 1_785_542_400), + windowSeconds: 31 * 86_400, + reached: reached + ) +} + +@MainActor +private func store(_ usage: CodexUsage) -> AppStore { + let store = AppStore() + store.codexUsage = usage + // Pinned: the default depends on whether this machine has Codex connected. + store.codexLoadState = .loaded + return store +} + +@MainActor +struct CodexQuotaSummaryTests { + @Test("credit-settled balances group without a currency symbol") + func creditSettledBalanceIsGroupedAndUnprefixed() { + let store = store(usage(balance: 3410.4, hasCredits: true)) + #expect(store.quotaSummary(for: .codex)?.footerLines == ["Credits remaining · 3,410"]) + } + + @Test("dollar balances keep the currency formatting") + func dollarBalanceKeepsCurrencyFormatting() { + let store = store(usage(balance: 3410.4, hasCredits: false)) + #expect(store.quotaSummary(for: .codex)?.footerLines == ["Credits remaining · $3,410.40"]) + } + + @Test("an uncapped credit account says so instead of showing nothing") + func uncappedAccountSaysUnlimited() { + let store = store(usage(hasCredits: true, unlimited: true)) + #expect(store.quotaSummary(for: .codex)?.footerLines == ["Credits · Unlimited"]) + } + + @Test("the allowance row drives the chip with the short label") + func allowanceRowUsesTheShortLabel() { + let store = store(usage(creditLimit: limit(used: 3033, of: 10_000))) + let summary = store.quotaSummary(for: .codex) + #expect(summary?.primary?.label == "Monthly usage limit") + #expect(summary?.primary?.percent == 0.3033) + #expect(summary?.footerLines.isEmpty == true) + } + + @Test("a spent-out allowance is called out on the chip") + func reachedAllowanceIsCalledOut() { + let store = store(usage(creditLimit: limit(used: 10_000, of: 10_000, reached: true))) + #expect(store.quotaSummary(for: .codex)?.primary?.label == "Monthly usage limit · limit reached") + } +} From fad846622f2863ee28b81021def44fc70c154b7a Mon Sep 17 00:00:00 2001 From: iamtoruk Date: Mon, 27 Jul 2026 11:36:07 -0700 Subject: [PATCH 03/21] fix(codex): restore discovery fast path, duration precedence, and dashboard width Review fixes on top of #805. Discovery: getCachedCodexProject short-circuits again without opening the file. The PR read the first line of every rollout to collect session_id, which cost +129ms on an 827-file session directory with a warm cache. Archived duplicates are now filtered by basename, which needs no file I/O. Timing: on oversized mcp_tool_call_end lines a `duration_ms` key inside invocation.arguments outranked the payload-level duration, inflating tool wait. The depth-aware payload value wins; the naive scan stays as the fallback for task_complete. Layout: MIN_WIDE goes back to 90 so 90-129 column terminals keep the two-column dashboard. The By Model panel drops the Tok/s column (and its footnote) when the panel has fewer than 61 inner columns or when no model recorded active timing, so narrow terminals do not truncate and non-Codex users get no dead column. --- CHANGELOG.md | 8 +++++ src/dashboard.tsx | 20 ++++++------ src/providers/codex.ts | 57 +++++++++++++++++------------------ tests/dashboard.test.ts | 24 ++++++++++++++- tests/providers/codex.test.ts | 33 ++++++++++++++++++++ 5 files changed, 102 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2cfdf1f..5dc68a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## Unreleased + +### Added (CLI) +- **Codex throughput tracking**: per-model Tok/s in the dashboard and report, active time excludes tool wait. (#805, thanks @ihearttokyo) + +### Fixed (CLI) +- **Codex parser corrections**: fork-replay no longer double-counts `patch_apply_end` and `mcp_tool_call_end`; `exec` is normalized to Bash; `custom_tool_call` events are handled; token_count lines larger than 32 KiB now parse exact token counts instead of estimating. Codex session cache bumps from v7 to v8 for a one-time re-parse. Only tool attribution changes for ordinary sessions, leaving their cost identical; sessions that logged an oversized token_count line are repriced from exact counts instead of an estimate. (#805) + ## 0.9.19 - 2026-07-20 One version across every surface: CLI, macOS menubar, and the desktop app all ship as 0.9.19. diff --git a/src/dashboard.tsx b/src/dashboard.tsx index 0fad8cd..42baa17 100644 --- a/src/dashboard.tsx +++ b/src/dashboard.tsx @@ -46,10 +46,9 @@ export function showEmptyState(projectCount: number, scrollableHistory: boolean, return historyProjectCount === 0 && !historyLoading } -// The By Model panel now carries six numeric columns. Keep panels stacked until -// each half has enough room for those columns instead of truncating Tok/s at -// ordinary 100–120 column terminals. -const MIN_WIDE = 130 +// The By Model panel drops the Tok/s column when the panel is too narrow, so +// the wider two-column layout can still activate at ordinary terminal widths. +const MIN_WIDE = 90 const ORANGE = '#FF8C42' const DIM = '#555555' const GOLD = '#FFD700' @@ -198,9 +197,9 @@ function nextTick(): Promise { return new Promise(resolve => setImmediate(resolve)) } -type Layout = { dashWidth: number; wide: boolean; halfWidth: number; barWidth: number } +export type Layout = { dashWidth: number; wide: boolean; halfWidth: number; barWidth: number } -function getLayout(columns?: number): Layout { +export function getLayout(columns?: number): Layout { const termWidth = columns || parseInt(process.env['COLUMNS'] ?? '') || 80 const dashWidth = Math.min(160, termWidth) const wide = dashWidth >= MIN_WIDE @@ -453,6 +452,9 @@ function ModelBreakdown({ projects, pw, bw }: { projects: ProjectSummary[]; pw: const modelEfficiency = aggregateModelEfficiency(projects) const anyEstimated = Object.values(modelTotals).some(d => d.estimatedCostUSD > 0) const anyActiveTiming = Object.values(modelTotals).some(d => d.activeDurationMs > 0 && d.activeGeneratedTokens > 0) + // The Tok/s column needs 61 inner columns for the full row; hide it on narrower + // panels and when no model has timing data (non-Codex users get no dead column). + const showTps = pw - PANEL_CHROME >= 61 && anyActiveTiming const sorted = Object.entries(modelTotals).sort(([, a], [, b]) => b.costUSD - a.costUSD) const maxCost = sorted[0]?.[1]?.costUSD ?? 0 const unpriced = findUnpricedModels(Object.entries(modelTotals).map(([model, d]) => ({ @@ -464,7 +466,7 @@ function ModelBreakdown({ projects, pw, bw }: { projects: ProjectSummary[]; pw: return ( - {''.padEnd(bw + 1 + MODEL_NAME_WIDTH)}{'cost'.padStart(MODEL_COL_COST)}{'cache'.padStart(MODEL_COL_CACHE)}{'calls'.padStart(MODEL_COL_CALLS)}{'1-shot'.padStart(MODEL_COL_ONESHOT)}{'Tok/s'.padStart(MODEL_COL_TPS)} + {''.padEnd(bw + 1 + MODEL_NAME_WIDTH)}{'cost'.padStart(MODEL_COL_COST)}{'cache'.padStart(MODEL_COL_CACHE)}{'calls'.padStart(MODEL_COL_CALLS)}{'1-shot'.padStart(MODEL_COL_ONESHOT)}{showTps ? 'Tok/s'.padStart(MODEL_COL_TPS) : ''} {sorted.map(([model, data], i) => { const totalInput = data.freshInput + data.cacheRead + data.cacheWrite const cacheHit = totalInput > 0 ? (data.cacheRead / totalInput) * 100 : 0 @@ -484,7 +486,7 @@ function ModelBreakdown({ projects, pw, bw }: { projects: ProjectSummary[]; pw: {cacheLabel.padStart(MODEL_COL_CACHE)} {String(data.calls).padStart(MODEL_COL_CALLS)} {oneShotLabel.padStart(MODEL_COL_ONESHOT)} - {tpsLabel.padStart(MODEL_COL_TPS)} + {showTps && {tpsLabel.padStart(MODEL_COL_TPS)}} ) })} @@ -496,7 +498,7 @@ function ModelBreakdown({ projects, pw, bw }: { projects: ProjectSummary[]; pw: {anyEstimated && ( ~ estimated cost (priced from estimated tokens) )} - {anyActiveTiming && ( + {showTps && ( ~ Tok/s: generated tokens / active time; tool wait excluded )} diff --git a/src/providers/codex.ts b/src/providers/codex.ts index ae920fa..6e5c6be 100644 --- a/src/providers/codex.ts +++ b/src/providers/codex.ts @@ -438,7 +438,11 @@ function parseCodexLine(line: string | Buffer): CodexEntry | null { invocation, call_id: getRawJsonStringField(pHead, 'call_id'), turn_id: getRawJsonStringField(pHead, 'turn_id'), - duration_ms: timingNumber('duration_ms') ?? timingDuration, + // On mcp_tool_call_end a coincidental `duration_ms` inside the large + // invocation.arguments object can shadow the payload-level duration, so the + // depth-aware value wins. The naive scan stays as the fallback for + // task_complete, which records duration_ms at the payload level directly. + duration_ms: timingDuration ?? timingNumber('duration_ms'), started_at: timingNumber('started_at'), info: compactInfo, }, @@ -453,48 +457,34 @@ function parseCodexLine(line: string | Buffer): CodexEntry | null { return entry } -type DiscoveredCodexSession = { - source: SessionSource - sessionId?: string -} - -async function discoverSessionFile(filePath: string): Promise { +async function discoverSessionFile(filePath: string): Promise { const s = await stat(filePath).catch(() => null) if (!s?.isFile()) return null + // Fast path: cached results already know the project, so avoid opening the + // file. This keeps discovery cheap on large session directories. const cachedProject = await getCachedCodexProject(filePath) - const { valid, meta } = await isValidCodexSession(filePath) if (cachedProject) { - return { - source: { path: filePath, project: cachedProject, provider: 'codex' }, - sessionId: valid ? meta?.payload?.session_id : undefined, - } + return { path: filePath, project: cachedProject, provider: 'codex' } } + const { valid, meta } = await isValidCodexSession(filePath) if (!valid || !meta) return null const cwd = meta.payload?.cwd ?? 'unknown' - return { - source: { path: filePath, project: sanitizeProject(cwd), provider: 'codex' }, - sessionId: meta.payload?.session_id, - } + return { path: filePath, project: sanitizeProject(cwd), provider: 'codex' } } async function discoverSessionsInDir(codexDir: string): Promise { const sources: SessionSource[] = [] - // A rollout can exist in both roots during/after archiving. The active root - // is scanned first, and session_id keeps the archived copy from resurfacing. - const seenSessionIds = new Set() + // Codex archives a session by moving it from sessions/YYYY/MM/DD/ to + // archived_sessions/, keeping the same basename. Deduplicate by basename so + // a session does not appear twice while it exists in both roots. This avoids + // reading every file to extract session_id and preserves the cheap cached + // fast path. + const seenBasenames = new Set() const sessionsDir = join(codexDir, 'sessions') - const addSession = (discovered: DiscoveredCodexSession | null): void => { - if (!discovered) return - const sessionId = discovered.sessionId?.trim() - if (sessionId && seenSessionIds.has(sessionId)) return - if (sessionId) seenSessionIds.add(sessionId) - sources.push(discovered.source) - } - const years = await readdir(sessionsDir).catch(() => [] as string[]) for (const year of years) { @@ -514,8 +504,10 @@ async function discoverSessionsInDir(codexDir: string): Promise for (const file of files) { if (!file.startsWith('rollout-') || !file.endsWith('.jsonl')) continue - const filePath = join(dayDir, file) - addSession(await discoverSessionFile(filePath)) + if (seenBasenames.has(file)) continue + seenBasenames.add(file) + const source = await discoverSessionFile(join(dayDir, file)) + if (source) sources.push(source) } } } @@ -523,11 +515,16 @@ async function discoverSessionsInDir(codexDir: string): Promise // Codex moves archived sessions into a flat directory. Keep them in usage // reports so archiving a conversation does not erase its historical usage. + // Call-level deduplication (seenKeys) already collapses any remaining + // archived copies, while basename dedup above prevents double discovery. const archivedDir = join(codexDir, 'archived_sessions') const archivedFiles = await readdir(archivedDir).catch(() => [] as string[]) for (const file of archivedFiles) { if (!file.startsWith('rollout-') || !file.endsWith('.jsonl')) continue - addSession(await discoverSessionFile(join(archivedDir, file))) + if (seenBasenames.has(file)) continue + seenBasenames.add(file) + const source = await discoverSessionFile(join(archivedDir, file)) + if (source) sources.push(source) } return sources diff --git a/tests/dashboard.test.ts b/tests/dashboard.test.ts index 59ada8f..0abd36d 100644 --- a/tests/dashboard.test.ts +++ b/tests/dashboard.test.ts @@ -2,7 +2,7 @@ import { homedir } from 'os' import { describe, it, expect } from 'vitest' -import { getDailyActivityRows, getDashboardScanRange, pageHistoryCursor, scrollHistoryCursor, selectDashboardPeriodProjects, shortProject, showEmptyState } from '../src/dashboard.js' +import { getDailyActivityRows, getDashboardScanRange, getLayout, pageHistoryCursor, scrollHistoryCursor, selectDashboardPeriodProjects, shortProject, showEmptyState } from '../src/dashboard.js' import { getDateRange } from '../src/cli-date.js' import { formatCost } from '../src/format.js' import type { ProjectSummary, SessionSummary } from '../src/types.js' @@ -248,3 +248,25 @@ describe('showEmptyState', () => { expect(showEmptyState(2, false, 0, false)).toBe(false) }) }) + +describe('getLayout - dashboard width breakpoints', () => { + it('uses a single column at 89 columns or below', () => { + expect(getLayout(89)).toMatchObject({ dashWidth: 89, wide: false, halfWidth: 89 }) + }) + + it('switches to two columns at 90 columns', () => { + expect(getLayout(90)).toMatchObject({ dashWidth: 90, wide: true, halfWidth: 45 }) + }) + + it('keeps two columns at 120 columns but the By-Model panel is too narrow for Tok/s', () => { + // Inner panel width is halfWidth - PANEL_CHROME (4). At 120 cols halfWidth=60, + // inner=56, below the 61-col threshold where Tok/s renders. + expect(getLayout(120)).toMatchObject({ dashWidth: 120, wide: true, halfWidth: 60 }) + expect(getLayout(120).halfWidth - 4).toBeLessThan(61) + }) + + it('keeps two columns and has enough room for Tok/s at 130 columns', () => { + expect(getLayout(130)).toMatchObject({ dashWidth: 130, wide: true, halfWidth: 65 }) + expect(getLayout(130).halfWidth - 4).toBeGreaterThanOrEqual(61) + }) +}) diff --git a/tests/providers/codex.test.ts b/tests/providers/codex.test.ts index 0b59ecb..fe4e902 100644 --- a/tests/providers/codex.test.ts +++ b/tests/providers/codex.test.ts @@ -551,6 +551,39 @@ describe('codex provider - JSONL parsing', () => { expect(calls[0]).toMatchObject({ tools: ['mcp__github__get_issue'], activeDurationMs: 7000, toolWaitMs: 3000 }) }) + it('prefers payload-level duration over a nested duration_ms in large mcp_tool_call_end lines', async () => { + // Regression guard: a naive first-match regex would pick up the + // `duration_ms: 9999` inside invocation.arguments instead of the payload-level + // `duration: { secs: 3 }`. The depth-aware payload scan must win. + const largeMcpLine = JSON.stringify({ + type: 'event_msg', + timestamp: '2026-04-14T10:00:05Z', + payload: { + type: 'mcp_tool_call_end', + call_id: 'mcp-duration-collision', + invocation: { server: 'github', tool: 'get_issue', arguments: { duration_ms: 9999, body: 'x'.repeat(40_000) } }, + duration: { secs: 3, nanos: 0 }, + result: { Ok: { content: [{ type: 'text', text: 'x'.repeat(40_000) }] } }, + }, + }) + const filePath = await writeSession(tmpDir, '2026-04-14', 'rollout-mcp-duration-collision.jsonl', [ + sessionMeta({ session_id: 'sess-mcp-duration-collision', model: 'gpt-5.5' }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-04-14T10:00:00Z', payload: { type: 'task_started' } }), + userMessage('look up the issue'), + largeMcpLine, + tokenCount({ timestamp: '2026-04-14T10:00:08Z', last: { input: 300, output: 100 }, total: { total: 400 } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-04-14T10:00:10Z', payload: { type: 'task_complete', duration_ms: 10_000 } }), + ]) + + const provider = createCodexProvider(tmpDir) + const source = { path: filePath, project: 'test', provider: 'codex' } + const calls: ParsedProviderCall[] = [] + for await (const call of provider.createSessionParser(source, new Set()).parse()) calls.push(call) + + expect(calls).toHaveLength(1) + expect(calls[0]).toMatchObject({ tools: ['mcp__github__get_issue'], activeDurationMs: 7000, toolWaitMs: 3000 }) + }) + it('omits active timing when recorded tool wait consumes the task duration', async () => { const filePath = await writeSession(tmpDir, '2026-04-14', 'rollout-degenerate-timing.jsonl', [ sessionMeta({ session_id: 'sess-degenerate-timing', model: 'gpt-5.5' }), From 7fe432094d072c6c2acfb096b27325b4b5ad1e4a Mon Sep 17 00:00:00 2001 From: iamtoruk Date: Mon, 27 Jul 2026 11:36:21 -0700 Subject: [PATCH 04/21] refactor(codex): buffer a task's calls until its timing is known Active/tool-wait timing used to be back-patched onto calls that had already been appended to the result list. Buffer the calls decoded since the last task_started instead, stamp them in place on task_complete, and append them at the next task_started or at end of stream, so a task is only emitted once its timing is final. Single-pass and split decodes then agree instead of depending on where a decode boundary falls. Output is unchanged: parsing 827 real rollouts (4.2 GB, 51224 calls) with and without this change produces byte-identical results. The buffer holds one task's calls; the deepest observed over that corpus was 924 against a result list of 8196. Attribution still spans everything since the last task_started, which matters when a mid-file session_meta re-arms the fork-replay cutoff and swallows a task_started while its task_complete lands past the cutoff. The added test pins that case. --- src/providers/codex.ts | 24 +++++++++++++++++------- tests/providers/codex.test.ts | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 7 deletions(-) diff --git a/src/providers/codex.ts b/src/providers/codex.ts index 6e5c6be..faa8fcf 100644 --- a/src/providers/codex.ts +++ b/src/providers/codex.ts @@ -584,7 +584,12 @@ function createParser(source: SessionSource, seenKeys: Set): SessionPars let currentTurnId = `${sessionId}:t0` let sawAnyLine = false const results: ParsedProviderCall[] = [] - let taskResultStart = 0 + // Calls decoded since the last task_started, held back so task_complete can + // stamp active/toolWait timing before they are appended to results. Emitting + // a task only once its timing is known keeps single-pass and split/resume + // decodes in agreement instead of back-patching already-emitted calls. + // Bounded by one task's calls; flushed at the next task_started and at EOF. + let pendingTaskCalls: ParsedProviderCall[] = [] let taskGeneratedTokens = 0 let taskToolIntervals: Array<[number, number]> = [] let taskStartedAt: number | undefined @@ -629,7 +634,10 @@ function createParser(source: SessionSource, seenKeys: Set): SessionPars )) continue if (entry.type === 'event_msg' && entry.payload?.type === 'task_started') { - taskResultStart = results.length + // Emit the previous task. If it never reached task_complete its timing + // fields simply stay unset, matching the un-buffered behaviour. + results.push(...pendingTaskCalls) + pendingTaskCalls = [] taskGeneratedTokens = 0 taskToolIntervals = [] const startedAt = entry.timestamp ? Date.parse(entry.timestamp) : NaN @@ -678,7 +686,7 @@ function createParser(source: SessionSource, seenKeys: Set): SessionPars if (entry.type === 'event_msg' && entry.payload?.type === 'task_complete') { const durationMs = entry.payload.duration_ms - if (typeof durationMs === 'number' && durationMs > 0 && taskGeneratedTokens > 0 && taskResultStart < results.length) { + if (typeof durationMs === 'number' && durationMs > 0 && taskGeneratedTokens > 0 && pendingTaskCalls.length > 0) { const completedAt = entry.timestamp ? Date.parse(entry.timestamp) : NaN const windowStart = taskStartedAt ?? (Number.isFinite(completedAt) ? completedAt - durationMs : undefined) const windowEnd = windowStart !== undefined ? windowStart + durationMs : undefined @@ -695,8 +703,7 @@ function createParser(source: SessionSource, seenKeys: Set): SessionPars const toolWaitMs = Math.min(durationMs, merged.reduce((sum, interval) => sum + interval[1] - interval[0], 0)) const activeMs = durationMs - toolWaitMs if (activeMs <= 0) continue - for (let i = taskResultStart; i < results.length; i++) { - const call = results[i]! + for (const call of pendingTaskCalls) { const generated = call.outputTokens + call.reasoningTokens if (generated <= 0) continue call.activeGeneratedTokens = generated @@ -791,7 +798,7 @@ function createParser(source: SessionSource, seenKeys: Set): SessionPars const costUSD = calculateCost(model, estInput, estOutput, 0, 0, 0) - results.push({ + pendingTaskCalls.push({ provider: 'codex', model, inputTokens: estInput, @@ -910,7 +917,7 @@ function createParser(source: SessionSource, seenKeys: Set): SessionPars 0, ) - results.push({ + pendingTaskCalls.push({ provider: 'codex', model, inputTokens: uncachedInputTokens, @@ -952,6 +959,9 @@ function createParser(source: SessionSource, seenKeys: Set): SessionPars // result set against a fingerprint that would otherwise be re-parsed. if (!sawAnyLine) return + // Flush the final task, which has no following task_started to trigger it. + results.push(...pendingTaskCalls) + await writeCachedCodexResults(source.path, source.project, results, fp) for (const call of results) { diff --git a/tests/providers/codex.test.ts b/tests/providers/codex.test.ts index fe4e902..dba279d 100644 --- a/tests/providers/codex.test.ts +++ b/tests/providers/codex.test.ts @@ -584,6 +584,38 @@ describe('codex provider - JSONL parsing', () => { expect(calls[0]).toMatchObject({ tools: ['mcp__github__get_issue'], activeDurationMs: 7000, toolWaitMs: 3000 }) }) + it('attributes a task_complete over everything since the last task_started, even across a suppressed one', async () => { + // A mid-file session_meta carrying forked_from_id re-arms the fork-replay + // cutoff, which swallows the task_started right behind it while its + // task_complete lands past the cutoff. Attribution then has to span both + // turns, exactly as it did before calls were buffered per task. + const filePath = await writeSession(tmpDir, '2026-04-14', 'rollout-suppressed-task-start.jsonl', [ + sessionMeta({ session_id: 'sess-suppressed-start', model: 'gpt-5.5' }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-04-14T10:00:00Z', payload: { type: 'task_started' } }), + userMessage('first ask'), + tokenCount({ timestamp: '2026-04-14T10:00:05Z', last: { input: 300, output: 100 }, total: { total: 400 } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-04-14T10:00:10Z', payload: { type: 'task_complete', duration_ms: 10_000 } }), + sessionMeta({ timestamp: '2026-04-14T10:00:11Z', session_id: 'sess-suppressed-start', model: 'gpt-5.5', forked_from_id: 'sess-parent' }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-04-14T10:00:12Z', payload: { type: 'task_started' } }), + userMessage('second ask', '2026-04-14T10:00:18Z'), + tokenCount({ timestamp: '2026-04-14T10:00:20Z', last: { input: 300, output: 300 }, total: { total: 1000 } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-04-14T10:00:25Z', payload: { type: 'task_complete', duration_ms: 5_000 } }), + ]) + + const provider = createCodexProvider(tmpDir) + const source = { path: filePath, project: 'test', provider: 'codex' } + const calls: ParsedProviderCall[] = [] + for await (const call of provider.createSessionParser(source, new Set()).parse()) calls.push(call) + + expect(calls).toHaveLength(2) + // The second task_complete re-attributes the first turn too, so the 5s + // window is split across both by generated tokens rather than leaving the + // first turn pinned to its own 10s window. + expect(calls[0]!.activeDurationMs).toBeCloseTo(1250, 6) + expect(calls[1]!.activeDurationMs).toBeCloseTo(3750, 6) + expect(calls[0]!.activeDurationMs! + calls[1]!.activeDurationMs!).toBeCloseTo(5000, 6) + }) + it('omits active timing when recorded tool wait consumes the task duration', async () => { const filePath = await writeSession(tmpDir, '2026-04-14', 'rollout-degenerate-timing.jsonl', [ sessionMeta({ session_id: 'sess-degenerate-timing', model: 'gpt-5.5' }), From 8b83ded657386e5270797230fd6aeab6b038df2b Mon Sep 17 00:00:00 2001 From: KENSHI601 <251418004+KENSHI601@users.noreply.github.com> Date: Wed, 29 Jul 2026 02:08:10 +0800 Subject: [PATCH 05/21] fix(parser): range-filter calls inside turns instead of dropping day-spanning turns parseProviderSources keyed the dateRange check on a turn's first call timestamp, so a long autonomous turn starting before midnight was excluded from the next day's view entirely and every post-midnight call in it was lost. Filter calls inside the turn instead and keep the turn when any call falls in range. Fixes #852 --- src/parser.ts | 30 ++++++++++++++------- tests/provider-turn-grouping.test.ts | 39 ++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 10 deletions(-) diff --git a/src/parser.ts b/src/parser.ts index ee165e3..113b1fd 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -2987,17 +2987,22 @@ async function parseProviderSources( const cachedFile = section.files[source.path] if (!cachedFile) continue - for (const turn of cachedFile.turns) { + for (let turn of cachedFile.turns) { const hasDup = turn.calls.some(c => seenKeys.has(c.deduplicationKey)) if (hasDup) continue for (const c of turn.calls) seenKeys.add(c.deduplicationKey) if (dateRange) { - const callTs = turn.calls[0]?.timestamp - if (!callTs) continue - const ts = new Date(callTs) - if (ts < dateRange.start || ts > dateRange.end) continue + // Filter per call, not by the turn's first call: a long autonomous turn + // can span midnight, so dropping the whole turn on its first timestamp + // loses every in-range call made after it. + const inRangeCalls = turn.calls.filter(c => { + const ts = new Date(c.timestamp).getTime() + return !isNaN(ts) && ts >= dateRange.start.getTime() && ts <= dateRange.end.getTime() + }) + if (inRangeCalls.length === 0) continue + turn = { ...turn, calls: inRangeCalls } } const classified = cachedTurnToClassified(turn) @@ -3036,17 +3041,22 @@ async function parseProviderSources( for (const [cachedPath, cachedFile] of Object.entries(section.files)) { if (allDiscoveredFiles.has(cachedPath)) continue // already counted above - for (const turn of cachedFile.turns) { + for (let turn of cachedFile.turns) { const hasDup = turn.calls.some(c => seenKeys.has(c.deduplicationKey)) if (hasDup) continue for (const c of turn.calls) seenKeys.add(c.deduplicationKey) if (dateRange) { - const callTs = turn.calls[0]?.timestamp - if (!callTs) continue - const ts = new Date(callTs) - if (ts < dateRange.start || ts > dateRange.end) continue + // Filter per call, not by the turn's first call: a long autonomous turn + // can span midnight, so dropping the whole turn on its first timestamp + // loses every in-range call made after it. + const inRangeCalls = turn.calls.filter(c => { + const ts = new Date(c.timestamp).getTime() + return !isNaN(ts) && ts >= dateRange.start.getTime() && ts <= dateRange.end.getTime() + }) + if (inRangeCalls.length === 0) continue + turn = { ...turn, calls: inRangeCalls } } const classified = cachedTurnToClassified(turn) diff --git a/tests/provider-turn-grouping.test.ts b/tests/provider-turn-grouping.test.ts index bee7585..efdf830 100644 --- a/tests/provider-turn-grouping.test.ts +++ b/tests/provider-turn-grouping.test.ts @@ -197,3 +197,42 @@ describe('provider turn grouping', () => { } }) }) + +describe('provider turn range filtering', () => { + it('keeps the in-range calls of a codex turn that spans midnight instead of dropping the whole turn', async () => { + // Regression test for #852: the range filter keyed on the turn's FIRST + // call timestamp, so a long autonomous turn starting 23:59 the previous + // day was excluded from the next day's view entirely, losing every + // post-midnight call. One turn (t1) here has two token_count events + // straddling midnight; only the post-midnight call may survive. + const codexHome = join(home, 'codex') + const sessionDir = join(codexHome, 'sessions', '2026', '05', '15') + await mkdir(sessionDir, { recursive: true }) + const lines = [ + JSON.stringify({ type: 'session_meta', timestamp: '2026-05-15T23:55:00Z', payload: { session_id: 'sess-span', model: 'gpt-5.5', cwd: '/Users/test/project-a', originator: 'codex_cli_rs' } }), + JSON.stringify({ type: 'response_item', timestamp: '2026-05-15T23:57:00Z', payload: { type: 'message', role: 'user', content: [{ type: 'input_text', text: 'run the long task' }] } }), + JSON.stringify({ type: 'response_item', timestamp: '2026-05-15T23:58:00Z', payload: { type: 'function_call', name: 'exec_command', arguments: JSON.stringify({ command: 'npm test' }) } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-05-15T23:59:00Z', payload: { type: 'token_count', info: { last_token_usage: { input_tokens: 100, output_tokens: 30 }, total_token_usage: { total_tokens: 130 } } } }), + JSON.stringify({ type: 'response_item', timestamp: '2026-05-16T00:10:00Z', payload: { type: 'function_call', name: 'exec_command', arguments: JSON.stringify({ command: 'npm run build' }) } }), + JSON.stringify({ type: 'event_msg', timestamp: '2026-05-16T00:15:00Z', payload: { type: 'token_count', info: { last_token_usage: { input_tokens: 80, output_tokens: 20 }, total_token_usage: { total_tokens: 230 } } } }), + ] + await writeFile(join(sessionDir, 'rollout-span.jsonl'), lines.join('\n') + '\n') + + process.env['CODEX_HOME'] = codexHome + try { + const parseAllSessions = await loadParser() + const projects = await parseAllSessions(dayRange(), 'codex') + const session = projects[0]!.sessions[0]! + const turn = session.turns[0]! + + expect(session.turns).toHaveLength(1) + expect(turn.assistantCalls.map(call => new Date(call.timestamp).toISOString())).toEqual([ + '2026-05-16T00:15:00.000Z', + ]) + expect(session.totalInputTokens).toBe(80) + expect(session.totalOutputTokens).toBe(20) + } finally { + delete process.env['CODEX_HOME'] + } + }) +}) From 213f4cbe0e5a13169761ffe433d2909851366e5b Mon Sep 17 00:00:00 2001 From: Aditya Vikram Singh <247195684+avs-io@users.noreply.github.com> Date: Wed, 29 Jul 2026 22:44:58 +0530 Subject: [PATCH 06/21] fix(daily-cache): never finalize daily history off a degraded parse MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A read-only session parse (served when the cache refresh lock times out or is unavailable) reported itself as a complete hydration, so the daily backfill published `complete: true` and advanced `lastComputedDate` to yesterday over days the parse never covered. Because gapStart is lastComputedDate + 1, those days were never looked at again — observed as a cache marked complete at 2026-07-28 whose newest entry was 2026-07-25. - parser: a read-only run reports a complete hydration only when nothing changed under the snapshot it served (a skipped or staled file makes it partial). - daily-cache: only a complete parse may advance `lastComputedDate`, on both the gap and the full re-derive paths. - daily-cache: a cache whose watermark outruns its newest populated day has its watermark pulled back to that day, so the ordinary gap parse re-derives the tail instead of trusting the marker. Days are only ever added or re-derived, never dropped; the preservation bias is unchanged and covered by test. --- src/daily-cache.ts | 34 +++- src/parser.ts | 24 ++- .../daily-cache-degraded-completeness.test.ts | 167 ++++++++++++++++++ tests/parser-cache-refresh-timeout.test.ts | 44 ++++- 4 files changed, 264 insertions(+), 5 deletions(-) create mode 100644 tests/daily-cache-degraded-completeness.test.ts diff --git a/src/daily-cache.ts b/src/daily-cache.ts index c5439c3..a598bdc 100644 --- a/src/daily-cache.ts +++ b/src/daily-cache.ts @@ -671,6 +671,22 @@ export async function ensureCacheHydrated( c = { ...c, days: freshDays, lastComputedDate: latestFresh } } + // A cache can claim `complete` while its watermark points PAST its newest + // populated day — what a run finalizing off a degraded (read-only) parse + // leaves behind: it advanced lastComputedDate over days the parse never + // covered. Since gapStart is lastComputedDate + 1, that hole is invisible + // to the gap logic forever. Trust the DATA over the marker: pull the + // watermark back to the newest day actually present so the ordinary gap + // parse re-derives the tail. Nothing is dropped — the cached days all stay, + // and a genuinely idle tail simply re-derives as empty. A cache with NO + // days is exempt: it has no newest day to trust, and a machine with no + // history at all must still be able to finalize (line below) rather than + // re-backfill the whole window on every launch. + const newestCachedDate = c.days.reduce((max, d) => (max === null || d.date > max ? d.date : max), null) + if (newestCachedDate !== null && c.lastComputedDate !== null && c.lastComputedDate > newestCachedDate) { + c = { ...c, lastComputedDate: newestCachedDate } + } + // Three reasons to re-derive the whole retention window: // 1. Savings config changed — cached `savingsUSD` totals are stale. // 2. The cache was never finalized against a COMPLETE session parse (an old @@ -691,6 +707,7 @@ export async function ensureCacheHydrated( const tzChanged = c.tzKey !== undefined && c.tzKey !== tzKey if (c.savingsConfigHash !== savingsConfigHash || c.complete !== true || tzChanged) { const baseline = c.days + const priorWatermark = c.lastComputedDate const backfillStart = new Date(now.getFullYear(), now.getMonth(), now.getDate() - BACKFILL_DAYS) let freshDays: DailyEntry[] = [] if (backfillStart.getTime() <= yesterdayEnd.getTime()) { @@ -708,7 +725,13 @@ export async function ensureCacheHydrated( version: DAILY_CACHE_VERSION, savingsConfigHash, tzKey, - lastComputedDate: yesterdayStr, + // The watermark records how far history has actually been derived, so + // only a COMPLETE parse may advance it. A partial one produced no data + // for whatever it could not read; moving the watermark to yesterday + // anyway would place those days behind the next run's gapStart and + // freeze the hole in (retention still anchors on yesterdayStr — the + // real calendar edge — so holding the watermark can't evict anything). + lastComputedDate: parseWasComplete ? yesterdayStr : priorWatermark, days: applyRetention(merged, yesterdayStr), complete: parseWasComplete, } @@ -733,12 +756,17 @@ export async function ensureCacheHydrated( const gapRange: DateRange = { start: gapStart, end: yesterdayEnd } const gapProjects = await parseSessions(gapRange) const gapDays = aggregateDays(gapProjects) + const parseWasComplete = sessionComplete() + const priorWatermark = c.lastComputedDate c = addNewDays(c, gapDays, yesterdayStr) // Finalize as complete ONLY when the session parse that produced these days // was itself complete. If it was partial, leave `complete: false` so the // next launch (once the session cache is whole) re-backfills instead of - // freezing the partial history. - c = { ...c, complete: sessionComplete() } + // freezing the partial history — and hold the watermark where it was, for + // the same reason as the re-derive path above: a partial parse cannot + // vouch for the days it never read, and gapStart is the only thing that + // will ever bring them back. + c = { ...c, lastComputedDate: parseWasComplete ? c.lastComputedDate : priorWatermark, complete: parseWasComplete } await saveDailyCache(c) } else if (c.complete !== true && sessionComplete()) { // No gap to fill (already current through yesterday) but not yet marked — diff --git a/src/parser.ts b/src/parser.ts index ee165e3..4e654be 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -1931,6 +1931,7 @@ async function scanProjectDirs( const cached = section.files[filePath] const action = reconcileFile(fp, cached) if (cached && (readOnly || action.action === 'unchanged')) { + if (readOnly && action.action !== 'unchanged') readOnlyServedStale = true unchangedFiles.push({ filePath, dirName, source, cached: section.files[filePath]! }) } else if (!readOnly) { if (action.action === 'appended') { @@ -1942,6 +1943,10 @@ async function scanProjectDirs( continue } changedFiles.push({ filePath, info: { dirName, fp, source } }) + } else { + // Read-only with no cache entry at all: this file is dropped from what + // we serve, so the snapshot under-reports whatever days it covers. + readOnlyServedStale = true } } dirsDone++ @@ -2826,9 +2831,13 @@ async function parseProviderSources( // re-read a file that already threw and hasn't changed. It re-parses only // when the file changes (then `reconcileFile` reports non-'unchanged'). if (cached && (readOnly || (action.action === 'unchanged' && (cached.failed || !cachedFileNeedsProviderReparse(providerName, source.path, cached))))) { + if (readOnly && action.action !== 'unchanged') readOnlyServedStale = true unchangedSources.push({ source, cached }) } else if (!readOnly) { changedSources.push({ source, fp }) + } else { + // Read-only with no cache entry at all — see scanProjectDirs. + readOnlyServedStale = true } } @@ -3525,6 +3534,15 @@ export function isSessionHydrationComplete(): boolean { return sessionHydrationComplete } +// Set by the read-only serving paths when the snapshot they served did NOT +// match what is on disk: in read-only mode a changed file is served at its +// stale fingerprint and a file with no cache entry is skipped entirely. A +// read-only run under which nothing changed is equivalent to a full parse and +// stays trustworthy; one that skipped real data is a PARTIAL hydration, and +// finalizing daily history off it freezes the days it never saw out of the +// chart (gapStart = lastComputedDate + 1 never looks back at them). +let readOnlyServedStale = false + export async function parseAllSessions(dateRange?: DateRange, providerFilter?: string): Promise { const key = cacheKey(dateRange, providerFilter) const cached = sessionCache.get(key) @@ -3594,6 +3612,7 @@ async function runParse( options: RunParseOptions = {}, ): Promise { const { isCold = false, readOnly = false, refreshLock } = options + readOnlyServedStale = false const seenMsgIds = new Set() const seenKeys = new Set() const allSources = await discoverAllSessions(providerFilter) @@ -3698,7 +3717,10 @@ async function runParse( if (refreshLock) throw new RefreshPublicationUnavailableError() } } - sessionHydrationComplete = true + // Assigned, not forced true: a read-only run that had to skip or stale real + // files reached the end of the scan without hydrating everything, and the + // daily backfill must not finalize history off it. + sessionHydrationComplete = !readOnly || !readOnlyServedStale // Merge across providers by normalised project path so the same repository // is not double-counted when it was worked on with more than one tool diff --git a/tests/daily-cache-degraded-completeness.test.ts b/tests/daily-cache-degraded-completeness.test.ts new file mode 100644 index 0000000..76e3abb --- /dev/null +++ b/tests/daily-cache-degraded-completeness.test.ts @@ -0,0 +1,167 @@ +import { afterEach, beforeEach, describe, expect, it } from 'vitest' +import { mkdir, rm } from 'fs/promises' +import { existsSync } from 'fs' +import { tmpdir } from 'os' +import { join } from 'path' + +import type { DateRange, ProjectSummary } from '../src/types.js' + +import { + DAILY_CACHE_VERSION, + type DailyCache, + type DailyEntry, + type ProviderDaySlice, + currentTzKey, + ensureCacheHydrated, + saveDailyCache, +} from '../src/daily-cache.js' + +const TMP_CACHE_ROOT = join(tmpdir(), `codeburn-degraded-test-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`) + +beforeEach(async () => { + process.env['CODEBURN_CACHE_DIR'] = TMP_CACHE_ROOT + await mkdir(TMP_CACHE_ROOT, { recursive: true }) +}) + +afterEach(async () => { + if (existsSync(TMP_CACHE_ROOT)) { + await rm(TMP_CACHE_ROOT, { recursive: true, force: true }) + } +}) + +function slice(cost: number, calls: number, extra: Partial = {}): ProviderDaySlice { + return { cost, calls, savingsUSD: 0, ...extra } +} + +function day(date: string, providers: Record, overrides: Partial = {}): DailyEntry { + const cost = Object.values(providers).reduce((s, p) => s + p.cost, 0) + const calls = Object.values(providers).reduce((s, p) => s + p.calls, 0) + return { + date, + cost, + savingsUSD: 0, + calls, + sessions: 0, + inputTokens: 0, + outputTokens: 0, + cacheReadTokens: 0, + cacheWriteTokens: 0, + editTurns: 0, + oneShotTurns: 0, + models: {}, + categories: {}, + providers, + ...overrides, + } +} + +function daysAgoStr(n: number): string { + const d = new Date() + d.setDate(d.getDate() - n) + return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}` +} + +const noSessions = async (): Promise => [] + +/// The day whose session files are long gone: it exists in the daily cache and +/// nowhere else, so every path below must still hand it back untouched. +const VANISHED = day(daysAgoStr(40), { claude: slice(399.70, 1572) }, { carried: true }) + +async function seed(overrides: Partial = {}): Promise { + await saveDailyCache({ + version: DAILY_CACHE_VERSION, + savingsConfigHash: 'cfg-A', + tzKey: currentTzKey(), + lastComputedDate: daysAgoStr(4), + days: [VANISHED, day(daysAgoStr(4), { claude: slice(120, 900) })], + complete: true, + ...overrides, + }) +} + +/** The vanished-sources day is still there, with its original accounting. */ +function expectPreserved(cache: DailyCache): void { + const kept = cache.days.find(d => d.date === VANISHED.date) + expect(kept).toMatchObject({ cost: 399.70, calls: 1572 }) + expect(kept!.providers['claude']!.cost).toBe(399.70) +} + +describe('daily cache: a degraded session parse never finalizes history', () => { + it('does not publish complete, and does not advance the watermark past what it covered', async () => { + await seed() + const out = await ensureCacheHydrated(noSessions, () => [], 'cfg-A', () => false) + // The parse covered nothing it can vouch for, so the watermark stays put: + // advancing it to yesterday would put the missed days behind gapStart + // (lastComputedDate + 1) forever. + expect(out.lastComputedDate).toBe(daysAgoStr(4)) + expect(out.complete).toBe(false) + expectPreserved(out) + }) + + it('does not advance the watermark on the full re-derive path either', async () => { + await seed({ complete: false }) + const out = await ensureCacheHydrated(noSessions, () => [], 'cfg-A', () => false) + expect(out.lastComputedDate).toBe(daysAgoStr(4)) + expect(out.complete).toBe(false) + expectPreserved(out) + }) + + it('a later healthy run rebuilds the days the degraded run missed', async () => { + await seed() + await ensureCacheHydrated(noSessions, () => [], 'cfg-A', () => false) + const missed = [1, 2, 3].map(n => day(daysAgoStr(n), { claude: slice(n * 10, n * 100) })) + const healed = await ensureCacheHydrated(noSessions, () => missed, 'cfg-A', () => true) + expect(healed.days.map(d => d.date)).toEqual([ + daysAgoStr(40), daysAgoStr(4), daysAgoStr(3), daysAgoStr(2), daysAgoStr(1), + ]) + expect(healed.lastComputedDate).toBe(daysAgoStr(1)) + expect(healed.complete).toBe(true) + expectPreserved(healed) + }) +}) + +describe('daily cache: a complete cache that outruns its own data is not trusted', () => { + it('re-derives the days between the newest entry and the watermark', async () => { + // The field artifact: complete: true, lastComputedDate yesterday, entries + // stopping four days earlier — written by a run that finalized off a parse + // which never covered those days. + await seed({ lastComputedDate: daysAgoStr(1) }) + const ranges: DateRange[] = [] + const missed = [1, 2, 3].map(n => day(daysAgoStr(n), { claude: slice(n * 10, n * 100) })) + const out = await ensureCacheHydrated( + async (range) => { ranges.push(range); return [] }, + () => missed, + 'cfg-A', + () => true, + ) + expect(ranges).toHaveLength(1) + expect(out.days.map(d => d.date)).toEqual([ + daysAgoStr(40), daysAgoStr(4), daysAgoStr(3), daysAgoStr(2), daysAgoStr(1), + ]) + expect(out.days.find(d => d.date === daysAgoStr(2))!.cost).toBe(20) + expect(out.complete).toBe(true) + expectPreserved(out) + }) + + it('a degraded re-derivation of those days still keeps every carried day', async () => { + await seed({ lastComputedDate: daysAgoStr(1) }) + const out = await ensureCacheHydrated(noSessions, () => [], 'cfg-A', () => false) + expect(out.complete).toBe(false) + expect(out.days.map(d => d.date)).toEqual([daysAgoStr(40), daysAgoStr(4)]) + expectPreserved(out) + }) + + it('an empty cache still finalizes — no re-parse treadmill on a machine with no history', async () => { + await seed({ days: [], lastComputedDate: daysAgoStr(1) }) + let parses = 0 + const out = await ensureCacheHydrated( + async () => { parses += 1; return [] }, + () => [], + 'cfg-A', + () => true, + ) + expect(parses).toBe(0) + expect(out.lastComputedDate).toBe(daysAgoStr(1)) + expect(out.complete).toBe(true) + }) +}) diff --git a/tests/parser-cache-refresh-timeout.test.ts b/tests/parser-cache-refresh-timeout.test.ts index 9241577..8883c5a 100644 --- a/tests/parser-cache-refresh-timeout.test.ts +++ b/tests/parser-cache-refresh-timeout.test.ts @@ -7,7 +7,7 @@ vi.mock('../src/cache-refresh-lock.js', () => ({ acquireCacheRefreshLock: async () => ({ outcome: 'timed-out' as const }), })) -import { clearSessionCache, parseAllSessions } from '../src/parser.js' +import { clearSessionCache, isSessionHydrationComplete, parseAllSessions } from '../src/parser.js' import { sessionCachePath } from '../src/session-cache.js' let root: string @@ -59,4 +59,46 @@ describe('parseAllSessions warm refresh timeout', () => { expect(output(await parseAllSessions(undefined, 'claude'))).toBe(50) expect(await readFile(sessionCachePath(), 'utf-8')).toBe(before) }) + + // The snapshot a timed-out refresh serves is only as good as what has changed + // under it. Anything the daily backfill finalizes off a snapshot that skipped + // real files freezes those days out of history for good, so the completeness + // signal has to distinguish the two cases. + it('does not report a complete hydration when the served snapshot is stale', async () => { + await writeSession(50) + await parseAllSessions(undefined, 'claude') + expect(isSessionHydrationComplete()).toBe(true) + + await writeSession(5000) + clearSessionCache() + await parseAllSessions(undefined, 'claude') + expect(isSessionHydrationComplete()).toBe(false) + }) + + it('does not report a complete hydration when a session file is missing from the snapshot', async () => { + await writeSession(50) + await parseAllSessions(undefined, 'claude') + + await writeFile(join(sessionPath, '..', 'other.jsonl'), JSON.stringify({ + type: 'assistant', + sessionId: 'sess-2', + timestamp: '2026-05-16T10:00:00Z', + cwd: '/tmp/proj', + message: { + id: 'msg-other', type: 'message', role: 'assistant', model: 'claude-sonnet-4-5', + content: [], usage: { input_tokens: 100, output_tokens: 7 }, + }, + }) + '\n') + clearSessionCache() + await parseAllSessions(undefined, 'claude') + expect(isSessionHydrationComplete()).toBe(false) + }) + + it('still reports a complete hydration when nothing changed under the snapshot', async () => { + await writeSession(50) + await parseAllSessions(undefined, 'claude') + clearSessionCache() + await parseAllSessions(undefined, 'claude') + expect(isSessionHydrationComplete()).toBe(true) + }) }) From d5144593f3b6b3eb246b4407f4b9ff0770430530 Mon Sep 17 00:00:00 2001 From: Aditya Vikram Singh <247195684+avs-io@users.noreply.github.com> Date: Wed, 29 Jul 2026 22:44:14 +0530 Subject: [PATCH 07/21] fix(cache): recover a corrupt session-refresh lock instead of freezing ingestion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit observe() classified a stable unparseable session-refresh.lock body as the terminal 'unavailable'. parseAllSessions routes that to a read-only parse, so a zero-byte or truncated lock froze warm-cache ingestion permanently across every later run while each command still exited successfully. A corrupt body is now a recoverable observation carrying a real mtime, and is recovered only through the UNMODIFIED staleness gate — tryTakeover and the age check are byte-identical to main. sameObservation gains an explicit null/non-null boundary and a sha1 of the raw bytes, because two corrupt bodies have no tokens to compare and mtime granularity is coarse on some filesystems. The heartbeat deliberately does NOT rewrite a body it cannot prove is its own. An owner that cannot prove ownership ends its ownership: mtime stops advancing, the publication fence refuses, and a successor recovers the lock one staleMs later. Losing that parse is the price of never having two owners. --- src/cache-refresh-lock.ts | 88 ++++++- tests/cache-refresh-lock-corrupt-body.test.ts | 121 ++++++++++ tests/cache-refresh-lock-process.test.ts | 35 +++ tests/cache-refresh-lock.test.ts | 225 +++++++++++++++++- tests/fixtures/cache-refresh-corrupt-owner.ts | 22 ++ tests/fixtures/cache-refresh-slow-owner.ts | 25 ++ 6 files changed, 505 insertions(+), 11 deletions(-) create mode 100644 tests/cache-refresh-lock-corrupt-body.test.ts create mode 100644 tests/fixtures/cache-refresh-corrupt-owner.ts create mode 100644 tests/fixtures/cache-refresh-slow-owner.ts diff --git a/src/cache-refresh-lock.ts b/src/cache-refresh-lock.ts index a012009..58faf28 100644 --- a/src/cache-refresh-lock.ts +++ b/src/cache-refresh-lock.ts @@ -1,4 +1,4 @@ -import { randomBytes } from 'crypto' +import { createHash, randomBytes } from 'crypto' import { existsSync } from 'fs' import { mkdir, open, readFile, stat, unlink, utimes, writeFile } from 'fs/promises' import { homedir } from 'os' @@ -81,6 +81,13 @@ async function retryWindowsMutation(operation: () => Promise, sleep: (ms: return false } +// The directory entry becomes visible before the awaited body write, so the +// file is briefly observable at zero bytes. Deliberately left as is: a corrupt +// body is only ever recovered once its mtime is older than staleMs, and this +// window is milliseconds wide on a file whose mtime is by definition now, so +// no observer can reach the age gate through it. Closing it would mean +// link()ing a temp file into place, which is not portable to filesystems +// without hard links. async function createExclusive(path: string, body: string): Promise<'created' | 'exists' | 'unavailable'> { try { const handle = await open(path, 'wx', 0o600) @@ -92,7 +99,24 @@ async function createExclusive(path: string, body: string): Promise<'created' | } } -type Observation = { record: LockRecord; mtimeMs: number } +// A null record is a body whose stat bracket agreed across the read and that +// still does not parse into a lock record: a corrupt leftover of 0 bytes, a +// truncation, or a wrong shape. The bracket is a heuristic, not proof that the +// read was whole — a same-size rewrite moves neither size nor (on a coarse +// filesystem) mtime — which is why nothing here treats a single read as +// authoritative. It owns nothing, but it is a real file with a +// real mtime, not an infrastructure failure — classifying it 'unavailable' +// routed every later refresh to the read-only path and froze ingestion. It +// carries no authority: it is only ever recovered through the unmodified +// staleness gate, exactly like an abandoned but well-formed lock. +// +// `digest` fingerprints the exact bytes. A corrupt body has no token, so +// token equality between two corrupt observations degenerates to +// `undefined === undefined`, and mtime granularity is coarse on some +// filesystems (measured on macOS: a 2s grid on FAT32, 10ms on exFAT, sub-ms on +// APFS — and on all three a same-size rewrite moves neither mtime nor size), so +// mtime is not a reliable change signal on its own. +type Observation = { record: LockRecord | null; mtimeMs: number; digest: string } type ObservationResult = Observation | 'missing' | 'changing' | 'unavailable' async function observe(path: string): Promise { @@ -100,6 +124,7 @@ async function observe(path: string): Promise { // written, and heartbeat rewrites briefly truncate it. Treat that bounded // transition as contention, not broken infrastructure. let sawChange = false + let corrupt: Observation | null = null for (let attempt = 0; attempt < 3; attempt++) { try { const before = await stat(path) @@ -110,10 +135,23 @@ async function observe(path: string): Promise { await delay(1) continue } - const parsed = JSON.parse(raw) as Partial - if (typeof parsed.pid === 'number' && typeof parsed.token === 'string' && typeof parsed.at === 'number') { - return { record: { pid: parsed.pid, token: parsed.token, at: parsed.at }, mtimeMs: after.mtimeMs } + const digest = createHash('sha1').update(raw).digest('hex') + // A body that is valid JSON of the wrong shape is corrupt like any other, + // including one written by a future version with a different record + // shape. That is safe precisely because staleness is never waived: a + // foreign version's LIVE lock keeps its mtime fresh through its own + // heartbeat, so it is never taken — both versions just degrade to the + // read-only path. Only an abandoned one is recovered, and a lock record + // is per-run state with nothing in it worth preserving. + let parsed: Partial | undefined + try { parsed = JSON.parse(raw) as Partial } catch { parsed = undefined } + if (parsed && typeof parsed.pid === 'number' && typeof parsed.token === 'string' && typeof parsed.at === 'number') { + return { record: { pid: parsed.pid, token: parsed.token, at: parsed.at }, mtimeMs: after.mtimeMs, digest } } + // Keep the most recent corrupt read. It is not evidence of stability on + // its own: tryTakeover re-observes under the guard and compares with + // sameObservation before acting, so stability is proven there, not here. + corrupt = { record: null, mtimeMs: after.mtimeMs, digest } } catch (err) { if (isMissingError(err)) return 'missing' const code = (err as NodeJS.ErrnoException | undefined)?.code @@ -121,11 +159,19 @@ async function observe(path: string): Promise { } await delay(1) } - return sawChange ? 'changing' : 'unavailable' + // Contention outranks corruption: a body seen mid-rewrite is a live owner's, + // and the caller must poll rather than treat it as recoverable. + if (sawChange) return 'changing' + return corrupt ?? 'unavailable' } function sameObservation(a: Observation, b: Observation): boolean { - return a.record.token === b.record.token && a.mtimeMs === b.mtimeMs + // A corrupt body and an owned one are never "the same observation", even + // though `a.record?.token === b.record?.token` cannot tell them apart once + // both sides are corrupt. Compare that boundary explicitly, then require the + // bytes themselves to match, so "unchanged" survives a coarse mtime. + if ((a.record === null) !== (b.record === null)) return false + return a.record?.token === b.record?.token && a.mtimeMs === b.mtimeMs && a.digest === b.digest } let singleFlightTail: Promise = Promise.resolve() @@ -209,7 +255,7 @@ export async function acquireCacheRefreshLock(options: RefreshLockOptions = {}): if (current === 'missing') return true if (current === 'changing') return false if (current === 'unavailable') return false - if (current.record.token !== token) return true + if (current.record?.token !== token) return true return retryWindowsMutation(() => unlink(lockPath), sleep) } finally { await retryWindowsMutation(() => unlink(takeoverPath), sleep) @@ -221,7 +267,7 @@ export async function acquireCacheRefreshLock(options: RefreshLockOptions = {}): if (guard !== 'created') return false try { const current = await observe(lockPath) - return current !== 'missing' && current !== 'changing' && current !== 'unavailable' && current.record.token === token + return current !== 'missing' && current !== 'changing' && current !== 'unavailable' && current.record?.token === token } finally { await retryWindowsMutation(() => unlink(takeoverPath), sleep) } @@ -238,7 +284,23 @@ export async function acquireCacheRefreshLock(options: RefreshLockOptions = {}): if (guard !== 'created') { heartbeatRunning = false; return } try { const current = await observe(lockPath) - if (current === 'missing' || current === 'changing' || current === 'unavailable' || current.record.token !== token) return + if (current === 'missing' || current === 'changing' || current === 'unavailable') return + // A corrupt body is NOT ours to rewrite, even though no parseable + // token contradicts us. Holding the takeover guard excludes the other + // guard-takers, but NOT createExclusive, which publishes a directory + // entry before its body — so an unparseable body may be a successor's + // lock a millisecond from being written, or a foreign version's whose + // record shape we cannot read. Stamping our token over it made this + // process an owner again after it had been legitimately replaced: + // verifyStillOwner then answered true for a displaced writer, and + // release()'s removeIfOwned deleted the live successor's lock. + // + // So a body we cannot prove is ours ends our ownership. The mtime + // stops advancing, the fence refuses to publish (the parse is + // discarded, which is the fail-safe direction), and a successor + // recovers the lock one staleMs later through the age gate. Losing a + // parse is the correct price for never having two owners. + if (current.record === null || current.record.token !== token) return await writeFile(lockPath, body(), { encoding: 'utf-8' }) const now = new Date(clock.wallNow()) await utimes(lockPath, now, now) @@ -325,6 +387,12 @@ export async function acquireCacheRefreshLock(options: RefreshLockOptions = {}): continue } + // A corrupt observation takes this path unchanged. Staleness is never + // waived for it: an abandoned corrupt lock is older than staleMs and is + // recovered here, while a corrupt body younger than that is waited out + // and left alone, because it may belong to a live owner whose heartbeat + // will repair it. Worst case we time out and serve the prior snapshot + // read-only for one staleMs window instead of freezing forever. const age = Math.max(0, clock.wallNow() - observation.mtimeMs) if (age > staleMs) { const takeover = await tryTakeover(observation) diff --git a/tests/cache-refresh-lock-corrupt-body.test.ts b/tests/cache-refresh-lock-corrupt-body.test.ts new file mode 100644 index 0000000..c4a7702 --- /dev/null +++ b/tests/cache-refresh-lock-corrupt-body.test.ts @@ -0,0 +1,121 @@ +import { spawn, type ChildProcess } from 'child_process' +import { existsSync } from 'fs' +import { mkdir, mkdtemp, readFile, rm, stat, writeFile } from 'fs/promises' +import { tmpdir } from 'os' +import { join } from 'path' +import { afterEach, describe, expect, it } from 'vitest' + +import { acquireCacheRefreshLock } from '../src/cache-refresh-lock.js' + +// Recovering a corrupt session-refresh.lock must never cost the two design +// commitments the lock exists for: it may not fail open into mutation, and it +// may not be stolen from a live heartbeating owner. An earlier fix waived the +// staleness gate for a corrupt body once the contender's wait expired, which +// handed two processes the lock at the same time in both directions below. +// Corruption is recovered only through the unmodified staleness gate. + +const roots: string[] = [] +afterEach(async () => { + while (roots.length) await rm(roots.pop()!, { recursive: true, force: true }) +}) + +async function tempCase(prefix: string): Promise<{ cacheDir: string; barriers: string; lockPath: string }> { + const root = await mkdtemp(join(tmpdir(), prefix)) + roots.push(root) + const cacheDir = join(root, 'cache') + const barriers = join(root, 'barriers') + await mkdir(cacheDir, { recursive: true }) + await mkdir(barriers, { recursive: true }) + return { cacheDir, barriers, lockPath: join(cacheDir, 'session-refresh.lock') } +} + +function spawnFixture(fixture: string, args: string[], env: NodeJS.ProcessEnv = {}): ChildProcess { + return spawn(process.execPath, ['--import', 'tsx', join(process.cwd(), 'tests/fixtures', fixture), ...args], { + cwd: process.cwd(), + stdio: ['ignore', 'ignore', 'inherit'], + env: { ...process.env, ...env }, + }) +} + +async function waitForFile(path: string, timeoutMs = 15_000): Promise { + const deadline = Date.now() + timeoutMs + while (!existsSync(path)) { + if (Date.now() > deadline) throw new Error(`timed out waiting for ${path}`) + await new Promise(resolve => { setTimeout(resolve, 5) }) + } +} + +const exited = (child: ChildProcess): Promise => new Promise(resolve => child.once('exit', resolve)) + +describe('warm refresh lock: a corrupt body never displaces a live owner', () => { + it('leaves the zero-byte lock alone while its creator is still inside createExclusive', async () => { + const { cacheDir, barriers, lockPath } = await tempCase('cb-refresh-corrupt-race-') + // UV_THREADPOOL_SIZE=1 plus the fixture's pbkdf2 churn stretches the gap + // between open(path,'wx') and the awaited body write, so the lock is + // genuinely observable at zero bytes with no external corruption at all. + const owner = spawnFixture('cache-refresh-slow-owner.ts', [cacheDir, barriers], { UV_THREADPOOL_SIZE: '1' }) + try { + const deadline = Date.now() + 20_000 + let sawZeroByteLock = false + while (Date.now() < deadline) { + const info = await stat(lockPath).catch(() => null) + if (info) { sawZeroByteLock = info.size === 0; break } + await new Promise(resolve => { setTimeout(resolve, 1) }) + } + expect(sawZeroByteLock, 'never caught the owner mid-createExclusive').toBe(true) + + const contender = await acquireCacheRefreshLock({ cacheDir, waitMs: 40, pollMs: 5, staleMs: 90_000 }) + if (contender.outcome === 'acquired') await contender.handle.release() + expect(contender.outcome).toBe('timed-out') + } finally { + await exited(owner) + } + // The owner kept the lock end to end, so its publication fence held. + expect(existsSync(join(barriers, 'owner.acquired'))).toBe(true) + expect(existsSync(join(barriers, 'owner.verify.true')), 'owner lost its own lock').toBe(true) + }, 60_000) + + it('leaves a live owner alone after its body is truncated, however long the wait', async () => { + const { cacheDir, barriers, lockPath } = await tempCase('cb-refresh-corrupt-live-') + const owner = spawnFixture('cache-refresh-corrupt-owner.ts', [cacheDir, barriers, '4000', '100']) + try { + await waitForFile(join(barriers, 'owner.acquired')) + const ownerToken = await readFile(join(barriers, 'owner.acquired'), 'utf-8') + + // The state a heartbeat leaves when writeFile() truncates and then fails + // (ENOSPC/EIO, swallowed by the heartbeat's own catch). No guard is held, + // and the body carries no token to compare against. + await writeFile(lockPath, '') + // This wait is shorter than one heartbeat period, so the body is still + // truncated throughout: the contender has nothing but the fresh mtime to + // go on, and that alone must keep it out. + const early = await acquireCacheRefreshLock({ cacheDir, waitMs: 80, pollMs: 5, staleMs: 90_000 }) + if (early.outcome === 'acquired') await early.handle.release() + expect(early.outcome).toBe('timed-out') + + // Past the age gate, the successor SHOULD win. Only the heartbeat + // advances mtime and it refuses to rewrite a body it cannot prove is + // ours, so a corrupt body freezes its own mtime and ages out. That is the + // intended end state, not a displacement to be prevented: an owner that + // cannot prove ownership must not publish, and the alternative — letting + // the heartbeat restamp its token over an unparseable body — resurrected + // legitimately-replaced writers and let release() delete a live + // successor's lock. + await writeFile(lockPath, '') + const late = await acquireCacheRefreshLock({ cacheDir, waitMs: 2_400, pollMs: 10, staleMs: 400 }) + expect(late.outcome).toBe('acquired') + if (late.outcome === 'acquired') { + // The successor owns it outright: the body carries its token, not the + // original owner's. + expect(JSON.parse(await readFile(lockPath, 'utf-8')).token).not.toBe(ownerToken) + await late.handle.release() + } + } finally { + await exited(owner) + } + // The displaced owner's fence must refuse. Discarding its parse is the + // fail-safe direction; two writers believing they own the lock is not. + expect(existsSync(join(barriers, 'owner.verify.false')), 'displaced owner still passed its fence').toBe(true) + expect(existsSync(join(barriers, 'owner.verify.true'))).toBe(false) + }, 30_000) +}) diff --git a/tests/cache-refresh-lock-process.test.ts b/tests/cache-refresh-lock-process.test.ts index cf907c3..d837f81 100644 --- a/tests/cache-refresh-lock-process.test.ts +++ b/tests/cache-refresh-lock-process.test.ts @@ -85,6 +85,41 @@ describe('warm refresh child-process regression', () => { await expect(stat(join(cacheDir, 'session-refresh.lock.takeover'))).rejects.toMatchObject({ code: 'ENOENT' }) }) + it('gives exactly one contender ownership of a stale zero-byte lock', async () => { + const root = await mkdtemp(join(tmpdir(), 'cb-refresh-corrupt-')) + roots.push(root) + const cacheDir = join(root, 'cache') + const barriers = join(root, 'barriers') + await mkdir(cacheDir, { recursive: true }) + await mkdir(barriers, { recursive: true }) + process.env['CODEBURN_CACHE_DIR'] = cacheDir + const initial = emptyCache() + initial.complete = true + await saveCache(initial) + const corruptPath = join(cacheDir, 'session-refresh.lock') + await writeFile(corruptPath, '') + await utimes(corruptPath, new Date(1), new Date(1)) + const source = join(root, 'changed.json') + await writeFile(source, JSON.stringify({ output: 404 })) + + const a = worker(cacheDir, barriers, 'a', source) + const b = worker(cacheDir, barriers, 'b', source) + const winner = await Promise.race([ + waitFor(join(barriers, 'a.parsed')).then(() => 'a'), + waitFor(join(barriers, 'b.parsed')).then(() => 'b'), + ]) + const loser = winner === 'a' ? 'b' : 'a' + expect(Number(existsSync(join(barriers, 'a.parsed'))) + Number(existsSync(join(barriers, 'b.parsed')))).toBe(1) + const loserOutcome = await waitForAny(barriers, [ + `${loser}.timed-out`, `${loser}.parsed`, `${loser}.completed-by-other`, `${loser}.unavailable`, + ]) + expect(loserOutcome, (await readdir(barriers)).join(',')).toBe(`${loser}.timed-out`) + await writeFile(join(barriers, `${winner}.save`), '') + await Promise.all([waitForExit(a), waitForExit(b)]) + await expect(stat(join(cacheDir, 'session-refresh.lock.takeover'))).rejects.toMatchObject({ code: 'ENOENT' }) + expect(Object.keys((await loadCache()).providers['regression']?.files ?? {})).toEqual([source]) + }) + it('serializes disjoint parsed updates so the later publication cannot drop the first', async () => { const root = await mkdtemp(join(tmpdir(), 'cb-refresh-process-')) roots.push(root) diff --git a/tests/cache-refresh-lock.test.ts b/tests/cache-refresh-lock.test.ts index bb8e44b..4ba633d 100644 --- a/tests/cache-refresh-lock.test.ts +++ b/tests/cache-refresh-lock.test.ts @@ -1,5 +1,5 @@ import { afterEach, describe, expect, it } from 'vitest' -import { mkdir, mkdtemp, readFile, rm, stat, unlink, utimes, writeFile } from 'fs/promises' +import { chmod, mkdir, mkdtemp, readFile, rm, stat, unlink, utimes, writeFile } from 'fs/promises' import { tmpdir } from 'os' import { join } from 'path' @@ -7,6 +7,7 @@ import { acquireCacheRefreshLock, type RefreshLockClock, } from '../src/cache-refresh-lock.js' +import { clearSessionCache, parseAllSessions } from '../src/parser.js' import { emptyCache, loadCache, saveCache, sessionCachePath } from '../src/session-cache.js' const dirs: string[] = [] @@ -223,3 +224,225 @@ describe('warm session-cache refresh lock', () => { await rm(dir, { recursive: true, force: true }) }) }) + +// A lock body that never parses into a record is a corrupt leftover, not an +// unusable filesystem: classifying it as 'unavailable' routed every subsequent +// refresh to the read-only path and froze ingestion permanently. +describe('warm session-cache refresh lock: corrupt lock recovery', () => { + it('takes over a stale zero-byte lock', async () => { + const dir = await tempDir() + const clock = fakeClock(100_000) + const path = lockPath(dir) + await writeFile(path, '') + const old = new Date(1) + await utimes(path, old, old) + + const result = await acquireCacheRefreshLock({ cacheDir: dir, clock, staleMs: 90, waitMs: 100, pollMs: 1 }) + expect(result.outcome).toBe('acquired') + if (result.outcome !== 'acquired') return + expect(JSON.parse(await readFile(path, 'utf-8')).token).toBe(result.handle.token) + await result.handle.release() + await expect(stat(join(dir, 'session-refresh.lock.takeover'))).rejects.toMatchObject({ code: 'ENOENT' }) + }) + + it('takes over a stale malformed-JSON lock', async () => { + const dir = await tempDir() + const clock = fakeClock(100_000) + const path = lockPath(dir) + await writeFile(path, '{"pid":1,"token":') + const old = new Date(1) + await utimes(path, old, old) + + const result = await acquireCacheRefreshLock({ cacheDir: dir, clock, staleMs: 90, waitMs: 100, pollMs: 1 }) + expect(result.outcome).toBe('acquired') + if (result.outcome !== 'acquired') return + expect(JSON.parse(await readFile(path, 'utf-8')).token).toBe(result.handle.token) + await result.handle.release() + }) + + it('takes over a stale lock whose body parses but has the wrong shape', async () => { + const dir = await tempDir() + const clock = fakeClock(100_000) + const path = lockPath(dir) + await writeFile(path, JSON.stringify({ pid: 'one', token: 7 })) + const old = new Date(1) + await utimes(path, old, old) + + const result = await acquireCacheRefreshLock({ cacheDir: dir, clock, staleMs: 90, waitMs: 100, pollMs: 1 }) + expect(result.outcome).toBe('acquired') + if (result.outcome === 'acquired') await result.handle.release() + }) + + // Staleness is never waived for a corrupt body, so a FRESH one is waited out + // and left alone: it may belong to a live owner whose heartbeat is about to + // repair it. The resulting freeze is bounded by staleMs rather than + // permanent, which is the whole of the reported defect. + it('waits out a fresh malformed lock, then recovers it once it ages past staleMs', async () => { + const dir = await tempDir() + const clock = fakeClock(100_000) + const path = lockPath(dir) + await writeFile(path, '') + const now = new Date(clock.wallNow()) + await utimes(path, now, now) + + let polls = 0 + const fresh = await acquireCacheRefreshLock({ + cacheDir: dir, + clock, + staleMs: 90_000, + waitMs: 50, + pollMs: 10, + sleep: async ms => { polls++; clock.advance(ms) }, + }) + expect(polls).toBeGreaterThan(0) + expect(fresh).toEqual({ outcome: 'timed-out' }) + expect(await readFile(path, 'utf-8')).toBe('') + + // Nothing rewrote the body, so its mtime is still frozen. One stale window + // later the very next run recovers it through the unmodified age gate. + clock.advance(90_001) + const later = await acquireCacheRefreshLock({ cacheDir: dir, clock, staleMs: 90_000, waitMs: 50, pollMs: 10 }) + expect(later.outcome).toBe('acquired') + if (later.outcome !== 'acquired') return + expect(JSON.parse(await readFile(path, 'utf-8')).token).toBe(later.handle.token) + await later.handle.release() + }) + + it('never steals a fresh malformed lock from an owner that repairs it mid-wait', async () => { + const dir = await tempDir() + const clock = fakeClock(100_000) + const path = lockPath(dir) + await writeFile(path, '') + const now = new Date(clock.wallNow()) + await utimes(path, now, now) + + let polls = 0 + const result = await acquireCacheRefreshLock({ + cacheDir: dir, + clock, + staleMs: 90_000, + waitMs: 50, + pollMs: 10, + sleep: async ms => { + if (++polls === 1) { + await writeFile(path, JSON.stringify({ pid: 1, token: 'holder', at: clock.wallNow() })) + const t = new Date(clock.wallNow()) + await utimes(path, t, t) + } + clock.advance(ms) + }, + }) + expect(result).toEqual({ outcome: 'timed-out' }) + expect(JSON.parse(await readFile(path, 'utf-8')).token).toBe('holder') + }) + + it('treats a body truncated mid-heartbeat as contention, not corruption', async () => { + const dir = await tempDir() + const path = lockPath(dir) + const record = (): string => JSON.stringify({ pid: 1, token: 'holder', at: Date.now() }) + await writeFile(path, record()) + // A real heartbeat rewrite exposes a zero-length body for an instant. The + // waiter must keep polling and leave the live owner alone. + const heartbeat = setInterval(() => { + void (async () => { + try { + await writeFile(path, '') + await writeFile(path, record()) + } catch { /* the winner may have replaced the file */ } + })() + }, 1) + let result + try { + result = await acquireCacheRefreshLock({ cacheDir: dir, staleMs: 30, waitMs: 120, pollMs: 5 }) + } finally { + clearInterval(heartbeat) + } + await new Promise(resolve => { setTimeout(resolve, 20) }) + expect(result).toEqual({ outcome: 'timed-out' }) + expect(JSON.parse(await readFile(path, 'utf-8')).token).toBe('holder') + }) + + // The sidecar is created by the same createExclusive as the lock, so it can be + // left 0-byte by exactly the same crash. Before observe() separated corrupt + // from unreadable this returned 'unavailable' from acquireTakeoverGuard and + // froze recovery even when the primary lock was perfectly fine. + it('reclaims a stale zero-byte takeover sidecar', async () => { + const dir = await tempDir() + const path = lockPath(dir) + const sidecar = join(dir, 'session-refresh.lock.takeover') + await writeFile(path, '') + await writeFile(sidecar, '') + const old = new Date(1) + await utimes(path, old, old) + await utimes(sidecar, old, old) + + const result = await acquireCacheRefreshLock({ cacheDir: dir, staleMs: 90, waitMs: 200, pollMs: 5 }) + expect(result.outcome).toBe('acquired') + if (result.outcome !== 'acquired') return + expect(JSON.parse(await readFile(path, 'utf-8')).token).toBe(result.handle.token) + await result.handle.release() + await expect(stat(sidecar)).rejects.toMatchObject({ code: 'ENOENT' }) + }) + + it('still reports unavailable when the lock body cannot be read', async () => { + if (process.getuid?.() === 0) return + const dir = await tempDir() + const path = lockPath(dir) + await writeFile(path, '') + await chmod(path, 0o000) + const old = new Date(1) + await utimes(path, old, old) + try { + const result = await acquireCacheRefreshLock({ cacheDir: dir, staleMs: 1, waitMs: 50, pollMs: 5 }) + expect(result).toEqual({ outcome: 'unavailable' }) + } finally { + await chmod(path, 0o600) + } + }) + + it('resumes ingesting changed sources after a corrupt lock froze the refresh', async () => { + const root = await tempDir() + const cacheDir = join(root, 'cache') + const config = join(root, 'claude') + const projectDir = join(config, 'projects', 'frozen-proj') + await mkdir(cacheDir, { recursive: true }) + await mkdir(projectDir, { recursive: true }) + process.env['CODEBURN_CACHE_DIR'] = cacheDir + process.env['CLAUDE_CONFIG_DIR'] = config + process.env['CODEBURN_DESKTOP_SESSIONS_DIR'] = join(root, 'desktop-sessions') + + const session = (id: string, ts: string): string => [ + JSON.stringify({ type: 'user', sessionId: id, timestamp: ts, cwd: '/tmp/frozen-proj', message: { role: 'user', content: 'hi' } }), + JSON.stringify({ + type: 'assistant', sessionId: id, timestamp: ts, cwd: '/tmp/frozen-proj', + message: { id: `msg-${id}`, type: 'message', role: 'assistant', model: 'claude-sonnet-4-5', content: [], usage: { input_tokens: 100, output_tokens: 20 } }, + }), + ].join('\n') + '\n' + + await writeFile(join(projectDir, 'sess-1.jsonl'), session('sess-1', '2026-05-01T10:00:00.000Z')) + clearSessionCache() + const warm = await parseAllSessions() + expect(warm[0]?.sessions.map(s => s.sessionId)).toEqual(['sess-1']) + + // The field state: a 0-byte lock AND the takeover sidecar of the dead owner + // that was mid-recovery when it died, both older than the stale window. + // Nothing else on the machine ever repairs either file, so on every later + // run the lock read as 'unavailable', the parser fell back to a read-only + // re-parse, and sess-2 was never ingested. + const old = new Date(1) + for (const name of ['session-refresh.lock', 'session-refresh.lock.takeover']) { + await writeFile(join(cacheDir, name), name.endsWith('.takeover') ? JSON.stringify({ pid: 999_999, token: 'dead-owner', at: 1 }) : '') + await utimes(join(cacheDir, name), old, old) + } + + await writeFile(join(projectDir, 'sess-2.jsonl'), session('sess-2', '2026-05-01T11:00:00.000Z')) + clearSessionCache() + const after = await parseAllSessions() + expect(after[0]?.sessions.map(s => s.sessionId).sort()).toEqual(['sess-1', 'sess-2']) + expect(Object.keys((await loadCache()).providers['claude']?.files ?? {}).length).toBe(2) + + clearSessionCache() + delete process.env['CLAUDE_CONFIG_DIR'] + delete process.env['CODEBURN_DESKTOP_SESSIONS_DIR'] + }) +}) diff --git a/tests/fixtures/cache-refresh-corrupt-owner.ts b/tests/fixtures/cache-refresh-corrupt-owner.ts new file mode 100644 index 0000000..dfacd26 --- /dev/null +++ b/tests/fixtures/cache-refresh-corrupt-owner.ts @@ -0,0 +1,22 @@ +import { writeFile } from 'fs/promises' +import { join } from 'path' + +import { acquireCacheRefreshLock } from '../../src/cache-refresh-lock.js' + +// A plain owner in its own process. It records its outcome, its token, and the +// result of the publication fence into the barrier directory so the parent can +// assert what the owner itself believed while a contender was racing it. +const [cacheDir, barrierDir, holdMs, heartbeatMs = '200'] = process.argv.slice(2) +if (!cacheDir || !barrierDir || !holdMs) throw new Error('missing owner argument') + +const refresh = await acquireCacheRefreshLock({ cacheDir, heartbeatMs: Number(heartbeatMs) }) +if (refresh.outcome !== 'acquired') { + await writeFile(join(barrierDir, `owner.${refresh.outcome}`), '') + process.exit(0) +} +await writeFile(join(barrierDir, 'owner.acquired'), refresh.handle.token) +await new Promise(resolve => { setTimeout(resolve, Number(holdMs)) }) +// The publication fence, exactly as parser.ts uses it before saving. +await writeFile(join(barrierDir, `owner.verify.${await refresh.handle.verifyStillOwner()}`), '') +await refresh.handle.release() +await writeFile(join(barrierDir, 'owner.done'), '') diff --git a/tests/fixtures/cache-refresh-slow-owner.ts b/tests/fixtures/cache-refresh-slow-owner.ts new file mode 100644 index 0000000..70b5755 --- /dev/null +++ b/tests/fixtures/cache-refresh-slow-owner.ts @@ -0,0 +1,25 @@ +import { pbkdf2 } from 'crypto' +import { writeFile } from 'fs/promises' +import { join } from 'path' + +import { acquireCacheRefreshLock } from '../../src/cache-refresh-lock.js' + +// Saturate the (size-1) libuv threadpool so every fs operation inside +// createExclusive queues behind a pbkdf2 round. No test hook and no patched +// module: this is what an ordinary process looks like mid cold parse, and it +// widens the window in which the lock exists at zero bytes -- between +// open(path,'wx') and the awaited body write -- to something observable. +const [cacheDir, barrierDir] = process.argv.slice(2) +if (!cacheDir || !barrierDir) throw new Error('missing owner argument') + +let stop = false +const churn = (): void => { if (stop) return; pbkdf2('p', 's', 400_000, 32, 'sha512', () => churn()) } +churn() + +const refresh = await acquireCacheRefreshLock({ cacheDir, heartbeatMs: 10_000 }) +stop = true +await writeFile(join(barrierDir, `owner.${refresh.outcome}`), refresh.outcome === 'acquired' ? refresh.handle.token : '') +if (refresh.outcome === 'acquired') { + await writeFile(join(barrierDir, `owner.verify.${await refresh.handle.verifyStillOwner()}`), '') + await refresh.handle.release() +} From 7591e6885172703ca9de4e7a69722c50698eb6b0 Mon Sep 17 00:00:00 2001 From: KENSHI601 <251418004+KENSHI601@users.noreply.github.com> Date: Fri, 31 Jul 2026 00:37:20 +0800 Subject: [PATCH 08/21] fix(parser): make day-spanning turn slices conservation-correct Extends the per-call range filter so multi-day periods stop losing usage (review on #857): - Re-anchor a sliced turn's timestamp to its first surviving call in parseProviderSources, so every turn slicer shares one split rule. - scanProjectDirs (Claude Code path): slice per call instead of dropping the whole turn on its first assistant timestamp; category/ subCategory/retries/hasEdits stay classified from the full turn. - aggregateProjectsIntoDays: bucket cost/calls/tokens (and the model, project, provider-slice rollups built from them) under each call's own day; turn-level stats (categories, editTurns, oneShotTurns) stay turn-anchored. This is the conservation fix: cache (<= yesterday) + live (today) unions now sum to the whole range for straddling turns. - buildJsonReport's dailyMap fallback follows the same per-call rule so the no-durable path can't diverge from durable.days. - filterProjectsByDateRange (dashboard) and filterProjectsByDays (menubar/history) slice per call instead of dropping whole turns. Adds the straddling-turn buildDurablePeriod case to the durable-totals parity suite (day-N + day-N+1 == whole-range calls/cost/tokens, verified to fail without the fix), covers the today view and the surface filters, and makes the suite hermetic on machines with real provider data. --- src/day-aggregator.ts | 54 ++++++--- src/main.ts | 14 ++- src/parser.ts | 146 +++++++++++++++-------- tests/cli-durable-totals.test.ts | 170 ++++++++++++++++++++++++++- tests/day-aggregator.test.ts | 73 +++++++----- tests/provider-turn-grouping.test.ts | 4 + 6 files changed, 356 insertions(+), 105 deletions(-) diff --git a/src/day-aggregator.ts b/src/day-aggregator.ts index 5563de6..cdac6a2 100644 --- a/src/day-aggregator.ts +++ b/src/day-aggregator.ts @@ -75,14 +75,25 @@ export function aggregateProjectsIntoDays(projects: ProjectSummary[]): DailyEntr for (const turn of session.turns) { if (turn.assistantCalls.length === 0) continue - // Turn-anchored bucketing: attribute the WHOLE turn — every one of its - // calls — to the day of the turn's user-message timestamp, matching the - // live headline/report rollup (main.ts daily). Falls back to the first - // assistant-call timestamp when the user line is missing (continuation - // sessions that begin mid-conversation). Previously the calls were - // bucketed per-call by each call's own timestamp, so a midnight- - // straddling turn split across two days and history.daily / the provider - // breakdown never reconciled to current.cost (a constant offset). + // Two bucketing rules, deliberately different per level: + // - Turn-level judgments (category, editTurns, oneShotTurns) stay + // anchored to the turn's day (its timestamp — the user-message time, + // or the re-anchored first surviving call when the parser sliced + // the turn to a range, and falling back to the first assistant call + // when the user line is missing). They describe the whole exchange, + // not a per-call sum, so a sliced straddling turn reports them on + // each side's anchor day — summed across days they inflate, which + // is the accepted, documented semantics (see review on #852). + // - Call-derived values (cost/savings/calls/tokens and the model, + // project, and provider-slice rollups built from them) bucket under + // EACH CALL's own local day (the per-call loop below). The parser + // slices straddling turns per range (issue #852), so every parse + // only holds in-range calls and per-call bucketing keeps day-N + + // day-N+1 equal to the whole range — and history.daily reconciled + // to the headline built from the same days. (Before the parser + // sliced per call, per-call bucketing here was what caused the + // constant offset against the whole-turn headline; the slice is + // what makes it exact now.) const turnDate = dateKey(turn.timestamp || turn.assistantCalls[0]!.timestamp) const turnDay = ensure(turnDate) @@ -140,21 +151,26 @@ export function aggregateProjectsIntoDays(projects: ProjectSummary[]): DailyEntr for (const call of turn.assistantCalls) { const callSavings = call.savingsUSD ?? 0 + // Call-derived values bucket under the call's OWN day (see the + // two-rule comment above). An unparseable call timestamp falls back + // to the turn's anchor day rather than producing a garbage date key. + const callDate = Number.isNaN(new Date(call.timestamp).getTime()) ? turnDate : dateKey(call.timestamp) + const callDay = ensure(callDate) - turnDay.cost += call.costUSD - turnDay.savingsUSD += callSavings - turnDay.calls += 1 - turnDay.inputTokens += call.usage.inputTokens - turnDay.outputTokens += call.usage.outputTokens - turnDay.cacheReadTokens += call.usage.cacheReadInputTokens - turnDay.cacheWriteTokens += call.usage.cacheCreationInputTokens + callDay.cost += call.costUSD + callDay.savingsUSD += callSavings + callDay.calls += 1 + callDay.inputTokens += call.usage.inputTokens + callDay.outputTokens += call.usage.outputTokens + callDay.cacheReadTokens += call.usage.cacheReadInputTokens + callDay.cacheWriteTokens += call.usage.cacheCreationInputTokens - const dayProject = ensureProject(turnDay, session.project, project.projectPath) + const dayProject = ensureProject(callDay, session.project, project.projectPath) dayProject.cost += call.costUSD dayProject.calls += 1 dayProject.savingsUSD += callSavings - const model = turnDay.models[call.model] ?? { + const model = callDay.models[call.model] ?? { calls: 0, cost: 0, savingsUSD: 0, inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0, @@ -166,9 +182,9 @@ export function aggregateProjectsIntoDays(projects: ProjectSummary[]): DailyEntr model.outputTokens += call.usage.outputTokens model.cacheReadTokens += call.usage.cacheReadInputTokens model.cacheWriteTokens += call.usage.cacheCreationInputTokens - turnDay.models[call.model] = model + callDay.models[call.model] = model - const slice = ensureSlice(turnDay, call.provider) + const slice = ensureSlice(callDay, call.provider) slice.calls += 1 slice.cost += call.costUSD slice.savingsUSD += callSavings diff --git a/src/main.ts b/src/main.ts index ae6867c..649e165 100644 --- a/src/main.ts +++ b/src/main.ts @@ -497,9 +497,17 @@ function buildJsonReport(projects: ProjectSummary[], period: string, periodKey: if (turn.retries === 0) dailyMap[day].oneShotTurns += 1 } for (const call of turn.assistantCalls) { - dailyMap[day].cost += call.costUSD - dailyMap[day].savings += call.savingsUSD ?? 0 - dailyMap[day].calls += 1 + // Cost/savings/calls bucket under each call's OWN day — the same + // per-call rule as the durable day set (day-aggregator.ts), so this + // fallback and durable.days never diverge on a midnight-straddling + // turn (issue #852). Turn counts/edit stats stay anchored on the + // turn's day above. An unparseable call timestamp falls back to the + // turn's day rather than producing a garbage date key. + const callDay = Number.isNaN(new Date(call.timestamp).getTime()) ? day : dateKey(call.timestamp) + if (!dailyMap[callDay]) { dailyMap[callDay] = { cost: 0, savings: 0, calls: 0, turns: 0, editTurns: 0, oneShotTurns: 0 } } + dailyMap[callDay].cost += call.costUSD + dailyMap[callDay].savings += call.savingsUSD ?? 0 + dailyMap[callDay].calls += 1 } } } diff --git a/src/parser.ts b/src/parser.ts index 113b1fd..2b4f3f7 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -27,6 +27,7 @@ import { saveCache, } from './session-cache.js' import { acquireCacheRefreshLock, type RefreshLockHandle } from './cache-refresh-lock.js' +import { dateKey } from './day-aggregator.js' import type { ParsedProviderCall, SessionSource } from './providers/types.js' import type { ApiUsageIteration, @@ -2200,12 +2201,12 @@ async function scanProjectDirs( const spawnPrSets = cachedFile.prLinks?.length ? buildSpawnPrSets(cachedFile.turns) : {} if (dateRange) { - classifiedTurns = classifiedTurns.filter(turn => { - if (turn.assistantCalls.length === 0) return false - const firstCallTs = turn.assistantCalls[0]!.timestamp - if (!firstCallTs) return false - const ts = new Date(firstCallTs) - return ts >= dateRange.start && ts <= dateRange.end + // Slice rather than drop: a turn spanning local midnight would otherwise + // lose every call that lands in the requested day (issue #852). Only + // `assistantCalls`/`timestamp` are touched — see classifiedTurnSlicedToRange. + classifiedTurns = classifiedTurns.flatMap(turn => { + const sliced = classifiedTurnSlicedToRange(turn, dateRange) + return sliced ? [sliced] : [] }) } @@ -2786,6 +2787,59 @@ export function createScanProgress(label: string, total: number) { } } +// Shared by the turn-range slicers below: which of a turn's calls actually +// fall inside dateRange. Returns null when none do (the turn should be dropped +// entirely, not kept with an empty call list). +function callsInRange(calls: T[], dateRange: DateRange): T[] | null { + const inRange = calls.filter(c => { + const ts = new Date(c.timestamp) + return !Number.isNaN(ts.getTime()) && ts >= dateRange.start && ts <= dateRange.end + }) + return inRange.length > 0 ? inRange : null +} + +// A turn can span local midnight (e.g. a long-running autonomous Codex +// session): dropping the whole turn because its FIRST call falls outside +// dateRange discards every later call that lands in the requested day (issue +// #852). Instead, keep only the calls actually inside the range. `timestamp` +// is re-anchored to the first surviving call so downstream turn-anchored +// bucketing (session day, report rollups) keys the slice under the day its +// retained calls actually fall in, not the pre-slice turn's original +// (possibly prior-day) start. Returns null when no call is in range. +function turnSlicedToRange(turn: CachedTurn, dateRange: DateRange): CachedTurn | null { + const inRangeCalls = callsInRange(turn.calls, dateRange) + if (!inRangeCalls) return null + if (inRangeCalls.length === turn.calls.length) return turn + return { ...turn, calls: inRangeCalls, timestamp: inRangeCalls[0]!.timestamp } +} + +// Same slice, applied post-classification (scanProjectDirs classifies every +// turn from its FULL call list up front, before date filtering — see the +// carriedBranch/carriedPrRefs comments in scanProjectDirs — so this only +// trims `assistantCalls` and re-anchors `timestamp`; `category`/`subCategory`/ +// `retries`/`hasEdits` stay exactly as classified from the complete turn. +// Those are turn-level judgments about the whole exchange, not a per-call +// sum, so they aren't recomputed from the partial call list. +function classifiedTurnSlicedToRange(turn: ClassifiedTurn, dateRange: DateRange): ClassifiedTurn | null { + const inRangeCalls = callsInRange(turn.assistantCalls, dateRange) + if (!inRangeCalls) return null + if (inRangeCalls.length === turn.assistantCalls.length) return turn + return { ...turn, assistantCalls: inRangeCalls, timestamp: inRangeCalls[0]!.timestamp } +} + +// Day-set variant of classifiedTurnSlicedToRange for the menubar/history day +// selection: keep only the calls whose own local day is selected and +// re-anchor `timestamp` to the first survivor — the same split rule. +function classifiedTurnSlicedToDays(turn: ClassifiedTurn, days: Set): ClassifiedTurn | null { + const inRangeCalls = turn.assistantCalls.filter(c => { + const ts = new Date(c.timestamp) + return !Number.isNaN(ts.getTime()) && days.has(dateKey(c.timestamp)) + }) + if (inRangeCalls.length === 0) return null + if (inRangeCalls.length === turn.assistantCalls.length) return turn + return { ...turn, assistantCalls: inRangeCalls, timestamp: inRangeCalls[0]!.timestamp } +} + async function parseProviderSources( providerName: string, sources: SessionSource[], @@ -2987,35 +3041,30 @@ async function parseProviderSources( const cachedFile = section.files[source.path] if (!cachedFile) continue - for (let turn of cachedFile.turns) { + for (const turn of cachedFile.turns) { const hasDup = turn.calls.some(c => seenKeys.has(c.deduplicationKey)) if (hasDup) continue for (const c of turn.calls) seenKeys.add(c.deduplicationKey) + let slicedTurn = turn if (dateRange) { - // Filter per call, not by the turn's first call: a long autonomous turn - // can span midnight, so dropping the whole turn on its first timestamp - // loses every in-range call made after it. - const inRangeCalls = turn.calls.filter(c => { - const ts = new Date(c.timestamp).getTime() - return !isNaN(ts) && ts >= dateRange.start.getTime() && ts <= dateRange.end.getTime() - }) - if (inRangeCalls.length === 0) continue - turn = { ...turn, calls: inRangeCalls } + const sliced = turnSlicedToRange(turn, dateRange) + if (!sliced) continue + slicedTurn = sliced } - const classified = cachedTurnToClassified(turn) - const project = turn.calls[0]?.project ?? source.project + const classified = cachedTurnToClassified(slicedTurn) + const project = slicedTurn.calls[0]?.project ?? source.project const key = `${providerName}:${turn.sessionId}:${project}` const existing = sessionMap.get(key) if (existing) { existing.turns.push(classified) - if (!existing.projectPath && turn.calls[0]?.projectPath) { - existing.projectPath = turn.calls[0]!.projectPath + if (!existing.projectPath && slicedTurn.calls[0]?.projectPath) { + existing.projectPath = slicedTurn.calls[0]!.projectPath } - if (!existing.workingDirectory && turn.calls[0]?.workingDirectory) existing.workingDirectory = turn.calls[0].workingDirectory + if (!existing.workingDirectory && slicedTurn.calls[0]?.workingDirectory) existing.workingDirectory = slicedTurn.calls[0].workingDirectory if (cachedFile.prLinks?.length) { const links = (existing.prLinks ??= new Set()) for (const link of cachedFile.prLinks) links.add(link) @@ -3024,8 +3073,8 @@ async function parseProviderSources( } else { sessionMap.set(key, { project, - projectPath: turn.calls[0]?.projectPath, - workingDirectory: turn.calls[0]?.workingDirectory, + projectPath: slicedTurn.calls[0]?.projectPath, + workingDirectory: slicedTurn.calls[0]?.workingDirectory, turns: [classified], ...(cachedFile.prLinks?.length ? { prLinks: new Set(cachedFile.prLinks) } : {}), ...(cachedFile.title ? { title: cachedFile.title } : {}), @@ -3041,36 +3090,31 @@ async function parseProviderSources( for (const [cachedPath, cachedFile] of Object.entries(section.files)) { if (allDiscoveredFiles.has(cachedPath)) continue // already counted above - for (let turn of cachedFile.turns) { + for (const turn of cachedFile.turns) { const hasDup = turn.calls.some(c => seenKeys.has(c.deduplicationKey)) if (hasDup) continue for (const c of turn.calls) seenKeys.add(c.deduplicationKey) + let slicedTurn = turn if (dateRange) { - // Filter per call, not by the turn's first call: a long autonomous turn - // can span midnight, so dropping the whole turn on its first timestamp - // loses every in-range call made after it. - const inRangeCalls = turn.calls.filter(c => { - const ts = new Date(c.timestamp).getTime() - return !isNaN(ts) && ts >= dateRange.start.getTime() && ts <= dateRange.end.getTime() - }) - if (inRangeCalls.length === 0) continue - turn = { ...turn, calls: inRangeCalls } + const sliced = turnSlicedToRange(turn, dateRange) + if (!sliced) continue + slicedTurn = sliced } - const classified = cachedTurnToClassified(turn) - const project = turn.calls[0]?.project ?? providerName + const classified = cachedTurnToClassified(slicedTurn) + const project = slicedTurn.calls[0]?.project ?? providerName const key = `${providerName}:${turn.sessionId}:${project}` const existingEntry = sessionMap.get(key) if (existingEntry) { existingEntry.turns.push(classified) - if (!existingEntry.projectPath && turn.calls[0]?.projectPath) { - existingEntry.projectPath = turn.calls[0]!.projectPath + if (!existingEntry.projectPath && slicedTurn.calls[0]?.projectPath) { + existingEntry.projectPath = slicedTurn.calls[0]!.projectPath } } else { - sessionMap.set(key, { project, projectPath: turn.calls[0]?.projectPath, workingDirectory: turn.calls[0]?.workingDirectory, turns: [classified] }) + sessionMap.set(key, { project, projectPath: slicedTurn.calls[0]?.projectPath, workingDirectory: slicedTurn.calls[0]?.workingDirectory, turns: [classified] }) } } } @@ -3163,14 +3207,6 @@ export function filterProjectsByName( return result } -function turnIsInDateRange(turn: ClassifiedTurn, dateRange: DateRange): boolean { - if (turn.assistantCalls.length === 0) return false - const firstCallTs = turn.assistantCalls[0]!.timestamp - if (!firstCallTs) return false - const ts = new Date(firstCallTs) - return ts >= dateRange.start && ts <= dateRange.end -} - function turnDayString(turn: ClassifiedTurn): string | null { if (turn.assistantCalls.length === 0) return null const ts = turn.assistantCalls[0]!.timestamp @@ -3299,9 +3335,13 @@ export function filterProjectsByDays(projects: ProjectSummary[], days: Set() for (const session of project.sessions) { - const turns = session.turns.filter(turn => { - const ds = turnDayString(turn) - return ds !== null && days.has(ds) + // Slice turns per call by the selected days (not whole-turn keep/drop): + // a midnight-straddling turn contributes the calls that actually + // happened on each selected day (issue #852, same split rule as the + // range slicers — see classifiedTurnSlicedToDays). + const turns = session.turns.flatMap(turn => { + const sliced = classifiedTurnSlicedToDays(turn, days) + return sliced ? [sliced] : [] }) if (turns.length === 0) { if (isSpawnParent(session)) anchors.push(session) @@ -3508,7 +3548,13 @@ export function filterProjectsByDateRange(projects: ProjectSummary[], dateRange: const anchors: SessionSummary[] = [...(project.subagentAnchors ?? [])] const survivingIdentities = new Set() for (const session of project.sessions) { - const turns = session.turns.filter(turn => turnIsInDateRange(turn, dateRange)) + // Slice turns per call (not whole-turn keep/drop) so a midnight- + // straddling turn keeps the calls that landed inside the range — the + // same split rule as the parse-time slicers (issue #852). + const turns = session.turns.flatMap(turn => { + const sliced = classifiedTurnSlicedToRange(turn, dateRange) + return sliced ? [sliced] : [] + }) if (turns.length === 0) { if (isSpawnParent(session)) anchors.push(session) continue diff --git a/tests/cli-durable-totals.test.ts b/tests/cli-durable-totals.test.ts index 82f1e44..8a19b65 100644 --- a/tests/cli-durable-totals.test.ts +++ b/tests/cli-durable-totals.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest' +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest' import { mkdir, rm, writeFile } from 'fs/promises' import { existsSync } from 'fs' import { tmpdir } from 'os' @@ -13,7 +13,7 @@ import { buildPeriodData, getDailyCacheConfigHash, } from '../src/usage-aggregator.js' -import { parseAllSessions, filterProjectsByName, clearSessionCache } from '../src/parser.js' +import { parseAllSessions, filterProjectsByName, filterProjectsByDateRange, filterProjectsByDays, clearSessionCache } from '../src/parser.js' import { renderOverview } from '../src/overview.js' import type { DateRange } from '../src/types.js' @@ -28,7 +28,7 @@ import type { DateRange } from '../src/types.js' // queries, and in the plain live regime with no carried days at all. const ROOT = join(tmpdir(), `codeburn-durable-totals-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`) -const ENV_KEYS = ['HOME', 'CODEBURN_CACHE_DIR', 'CLAUDE_CONFIG_DIR', 'CLAUDE_CONFIG_DIRS', 'CODEX_HOME'] as const +const ENV_KEYS = ['HOME', 'CODEBURN_CACHE_DIR', 'CLAUDE_CONFIG_DIR', 'CLAUDE_CONFIG_DIRS', 'CODEX_HOME', 'USERPROFILE', 'KIMI_CODE_HOME', 'CODEBURN_DESKTOP_SESSIONS_DIR'] as const let savedEnv: Record const CARRIED_COST = 100 @@ -120,11 +120,22 @@ beforeEach(async () => { savedEnv = Object.fromEntries(ENV_KEYS.map(k => [k, process.env[k]])) await mkdir(join(ROOT, 'home', '.claude'), { recursive: true }) await mkdir(join(ROOT, 'cache'), { recursive: true }) + await mkdir(join(ROOT, 'no-desktop-sessions'), { recursive: true }) + await mkdir(join(ROOT, 'no-kimi-home'), { recursive: true }) process.env['HOME'] = join(ROOT, 'home') process.env['CODEBURN_CACHE_DIR'] = join(ROOT, 'cache') process.env['CLAUDE_CONFIG_DIR'] = join(ROOT, 'home', '.claude') delete process.env['CLAUDE_CONFIG_DIRS'] delete process.env['CODEX_HOME'] + // Keep real provider data on the machine out of every parse: absolute-count + // assertions are meaningless when the host's own sessions leak in. + // USERPROFILE matters on Windows, where os.homedir() ignores HOME; + // KIMI_CODE_HOME / the desktop-sessions override redirect the two env-aware + // discovery roots. (The codex provider captures its home at import time, so + // it is redirected separately in vi.hoisted below.) + process.env['USERPROFILE'] = join(ROOT, 'home') + process.env['KIMI_CODE_HOME'] = join(ROOT, 'no-kimi-home') + process.env['CODEBURN_DESKTOP_SESSIONS_DIR'] = join(ROOT, 'no-desktop-sessions') clearSessionCache() }) @@ -259,3 +270,156 @@ describe('terminal overview carried-day footnote', () => { expect(noCarried).not.toContain('preserved from expired session logs') }) }) + +// Issue #852 review: per-call slicing is only conservation-correct when day +// bucketing attributes call-derived values to each call's own day. These +// tests pin the straddling-turn case the review reproduced end-to-end through +// buildDurablePeriod: a turn starting the previous day at 23:57 with one call +// before and one after local midnight must keep BOTH calls across a multi-day +// period (cache ≤ yesterday + live today union), each on its own day. +// +// The codex provider captures CODEX_HOME when its module is first imported, +// so the redirect must happen before module evaluation (vi.hoisted) rather +// than in beforeEach. The captured dir is per-test-process and empty except +// for the fixture written below, which also shields the suite from any real +// ~/.codex on the machine running it. +const CODEX_ROOT = vi.hoisted(() => { + const root = `${process.env['TMPDIR'] || '/tmp'}/codeburn-straddle-codex-${process.pid}-${Date.now()}` + process.env['CODEX_HOME'] = `${root}/codex` + return root +}) + +describe('midnight-straddling turn conservation (issue #852)', () => { + // Day N = 2026-07-27, day N+1 ("today") = 2026-07-28 — LOCAL dates built + // from constructor args so the case is machine-TZ independent (dateKey / + // toDateString use the same local getters). + const NOW = new Date(2026, 6, 28, 12, 0, 0) + const DAY_N = '2026-07-27' + const DAY_N1 = '2026-07-28' + + function fakeNow(): void { + // Date only: the daily-cache lock and retry helpers must keep real timers. + vi.useFakeTimers({ toFake: ['Date'] }) + vi.setSystemTime(NOW) + } + + beforeEach(async () => { + await rm(CODEX_ROOT, { recursive: true, force: true }) + }) + + afterEach(async () => { + await rm(CODEX_ROOT, { recursive: true, force: true }) + }) + + // One codex turn (the issue's provider) with a token_count call on each + // side of local midnight: 23:58 (input 1000/output 200), 00:10 (2000/400). + async function seedStraddlingCodexTurn(): Promise { + const sessionDir = join(CODEX_ROOT, 'codex', 'sessions', '2026', '07', '27') + await mkdir(sessionDir, { recursive: true }) + const line = (obj: unknown): string => JSON.stringify(obj) + await writeFile(join(sessionDir, 'rollout-straddle.jsonl'), [ + line({ type: 'session_meta', timestamp: new Date(2026, 6, 27, 23, 55, 0).toISOString(), payload: { session_id: 'sess-straddle', model: 'gpt-5.5', cwd: '/tmp/straddle-proj', originator: 'codex_cli_rs' } }), + line({ type: 'response_item', timestamp: new Date(2026, 6, 27, 23, 57, 0).toISOString(), payload: { type: 'message', role: 'user', content: [{ type: 'input_text', text: 'work through midnight' }] } }), + line({ type: 'event_msg', timestamp: new Date(2026, 6, 27, 23, 58, 0).toISOString(), payload: { type: 'token_count', info: { last_token_usage: { input_tokens: 1000, output_tokens: 200 }, total_token_usage: { total_tokens: 1200 } } } }), + line({ type: 'event_msg', timestamp: new Date(2026, 6, 28, 0, 10, 0).toISOString(), payload: { type: 'token_count', info: { last_token_usage: { input_tokens: 2000, output_tokens: 400 }, total_token_usage: { total_tokens: 3600 } } } }), + ].join('\n') + '\n', 'utf-8') + } + + // The same straddle through the Claude Code path (scanProjectDirs). + async function seedStraddlingClaudeTurn(): Promise { + const projectDir = join(ROOT, 'home', '.claude', 'projects', 'straddle-proj') + await mkdir(projectDir, { recursive: true }) + const line = (obj: unknown): string => JSON.stringify(obj) + await writeFile(join(projectDir, 's-straddle.jsonl'), [ + line({ type: 'user', sessionId: 's-straddle', timestamp: new Date(2026, 6, 27, 23, 57, 0).toISOString(), cwd: '/tmp/straddle-proj', message: { role: 'user', content: 'work through midnight' } }), + line({ type: 'assistant', sessionId: 's-straddle', timestamp: new Date(2026, 6, 27, 23, 58, 0).toISOString(), cwd: '/tmp/straddle-proj', message: { id: 'm1', type: 'message', role: 'assistant', model: 'claude-3-5-sonnet-20241022', content: [], usage: { input_tokens: 1000, output_tokens: 200, cache_creation_input_tokens: 0, cache_read_input_tokens: 0 } } }), + line({ type: 'assistant', sessionId: 's-straddle', timestamp: new Date(2026, 6, 28, 0, 10, 0).toISOString(), cwd: '/tmp/straddle-proj', message: { id: 'm2', type: 'message', role: 'assistant', model: 'claude-3-5-sonnet-20241022', content: [], usage: { input_tokens: 2000, output_tokens: 400, cache_creation_input_tokens: 0, cache_read_input_tokens: 0 } } }), + ].join('\n') + '\n', 'utf-8') + } + + // The two calls' exact costs from an unfiltered parse (pricing-agnostic truth). + async function truthCosts(provider: string): Promise<[number, number]> { + clearSessionCache() + const projects = await parseAllSessions(undefined, provider) + const calls = projects.flatMap(p => p.sessions).flatMap(s => s.turns).flatMap(t => t.assistantCalls) + expect(calls).toHaveLength(2) + return [calls[0]!.costUSD, calls[1]!.costUSD] + } + + it('keeps day-N + day-N+1 equal to the whole-range totals through buildDurablePeriod', async () => { + fakeNow() + try { + await seedStraddlingCodexTurn() + const [costN, costN1] = await truthCosts('codex') + expect(costN + costN1).toBeGreaterThan(0) + + const range: DateRange = { start: new Date(2026, 6, 27, 0, 0, 0), end: new Date() } + clearSessionCache() + const durable = await buildDurablePeriod({ range, label: '2d' }, { provider: 'all' }) + + const dayN = durable.days.find(d => d.date === DAY_N) + const dayN1 = durable.days.find(d => d.date === DAY_N1) + // Each side of the turn lands on its own day... + expect(dayN?.calls).toBe(1) + expect(dayN1?.calls).toBe(1) + expect(dayN!.cost).toBeCloseTo(costN, 8) + expect(dayN1!.cost).toBeCloseTo(costN1, 8) + // ...and the two sides conserve the whole-range totals (the review's + // week/month leak returned 1 call and only the pre-midnight cost). + expect(durable.data.calls).toBe(2) + expect(dayN!.calls + dayN1!.calls).toBe(durable.data.calls) + expect(durable.data.cost).toBeCloseTo(costN + costN1, 8) + expect(dayN!.cost + dayN1!.cost).toBeCloseTo(durable.data.cost, 8) + expect(durable.data.inputTokens).toBe(3000) + expect(durable.data.outputTokens).toBe(600) + expect(dayN!.inputTokens + dayN1!.inputTokens).toBe(durable.data.inputTokens) + expect(dayN!.outputTokens + dayN1!.outputTokens).toBe(durable.data.outputTokens) + } finally { + vi.useRealTimers() + } + }, 60_000) + + it('shows the post-midnight call in the today-only view on the Claude Code path', async () => { + fakeNow() + try { + await seedStraddlingClaudeTurn() + const [, costN1] = await truthCosts('claude') + + clearSessionCache() + const durable = await buildDurablePeriod({ range: getDateRange('today').range, label: 'today' }, { provider: 'all' }) + expect(durable.data.calls).toBe(1) + expect(durable.data.cost).toBeCloseTo(costN1, 8) + expect(durable.data.inputTokens).toBe(2000) + expect(durable.data.outputTokens).toBe(400) + } finally { + vi.useRealTimers() + } + }, 60_000) + + it('slices the straddling turn per call in the dashboard/menubar surface filters', async () => { + fakeNow() + try { + await seedStraddlingClaudeTurn() + clearSessionCache() + const all = await parseAllSessions(undefined, 'claude') + const callsOf = (ps: typeof all) => ps.flatMap(p => p.sessions).flatMap(s => s.turns).flatMap(t => t.assistantCalls) + const inputOf = (ps: typeof all) => ps.flatMap(p => p.sessions).reduce((s, sess) => s + sess.totalInputTokens, 0) + + // Dashboard Today/7-Days narrowing over an unfiltered parse. + const dashToday = filterProjectsByDateRange(all, getDateRange('today').range) + expect(callsOf(dashToday)).toHaveLength(1) + expect(inputOf(dashToday)).toBe(2000) + + // Menubar/history day selection, on each side of midnight. + const menubarToday = filterProjectsByDays(all, new Set([DAY_N1])) + expect(callsOf(menubarToday)).toHaveLength(1) + expect(inputOf(menubarToday)).toBe(2000) + + const menubarYesterday = filterProjectsByDays(all, new Set([DAY_N])) + expect(callsOf(menubarYesterday)).toHaveLength(1) + expect(inputOf(menubarYesterday)).toBe(1000) + } finally { + vi.useRealTimers() + } + }, 60_000) +}) diff --git a/tests/day-aggregator.test.ts b/tests/day-aggregator.test.ts index 24b9c16..7d70d14 100644 --- a/tests/day-aggregator.test.ts +++ b/tests/day-aggregator.test.ts @@ -74,10 +74,12 @@ function makeSingleTurnProject( } describe('aggregateProjectsIntoDays', () => { - it('buckets a whole turn (all its calls) on the turn user-message date', () => { - // Turn-anchored bucketing: a turn whose calls straddle midnight lands wholly - // on the day of its user-message timestamp — matching the live headline/ - // report rollup — instead of splitting per-call across two days. + it("buckets call-derived values under each call's own date when a turn straddles midnight", () => { + // Per-call bucketing (issue #852): a turn whose calls straddle midnight + // puts each call's cost/calls/tokens on the day the call happened, so + // day-N + day-N+1 reconcile with a range parse that sliced the turn at + // the same boundary. Turn-level judgments (editTurns, category turns) + // stay anchored on the turn's day. const projects: ProjectSummary[] = [ makeProject({ sessions: [{ @@ -116,9 +118,17 @@ describe('aggregateProjectsIntoDays', () => { ] const days = aggregateProjectsIntoDays(projects) - expect(days.map(d => d.date)).toEqual(['2026-04-09']) - expect(days[0]!.cost).toBe(10) - expect(days[0]!.calls).toBe(2) + expect(days.map(d => d.date)).toEqual(['2026-04-09', '2026-04-10']) + expect(days[0]!.cost).toBe(4) + expect(days[0]!.calls).toBe(1) + expect(days[1]!.cost).toBe(6) + expect(days[1]!.calls).toBe(1) + // Turn-level stats anchor on the turn's day only — they describe the + // whole exchange, not a per-call sum. + expect(days[0]!.editTurns).toBe(1) + expect(days[1]!.editTurns).toBe(0) + expect(days[0]!.categories['coding']?.turns).toBe(1) + expect(days[1]!.categories['coding']).toBeUndefined() }) it('attributes category turns + editTurns + oneShotTurns to the first call date of the turn', () => { @@ -406,17 +416,17 @@ describe('buildPeriodDataFromDays', () => { expect(pd.models).toEqual([]) }) - it('attributes a midnight-straddling turn to the user-message date, matching the live report', () => { - // A turn whose user message sits on one side of midnight and whose assistant - // response lands on the other must bucket by the USER-MESSAGE timestamp, so - // the daily cache (history.daily + provider breakdown) reconciles exactly to - // the live headline/report rollup (main.ts daily), which anchors on the same - // turn timestamp. The prior per-call bucketing split such turns and left a - // constant offset between the trend bars and current.cost. + it("attributes a midnight-straddling turn's cost to the call's own date", () => { + // A turn whose user message sits on one side of midnight and whose + // assistant response lands on the other buckets its cost under the CALL's + // day (issue #852's per-call rule), so the daily cache (history.daily + + // provider breakdown) reconciles exactly to a range parse that slices the + // same turn at the same boundary — and day-N + day-N+1 sum to the period + // total with nothing lost on either side. const userTs = '2026-04-20T23:58:00Z' const assistantTs = '2026-04-21T00:30:00Z' - const userLocal = new Date(userTs) - const expectedDate = `${userLocal.getFullYear()}-${String(userLocal.getMonth() + 1).padStart(2, '0')}-${String(userLocal.getDate()).padStart(2, '0')}` + const assistantLocal = new Date(assistantTs) + const expectedDate = `${assistantLocal.getFullYear()}-${String(assistantLocal.getMonth() + 1).padStart(2, '0')}-${String(assistantLocal.getDate()).padStart(2, '0')}` const projects: ProjectSummary[] = [ makeProject({ @@ -457,21 +467,22 @@ describe('daily-cache ↔ report daily-bucket parity', () => { // headline (main.ts daily rollup) must bucket days by the SAME rule, or their // per-day totals drift and their period sums diverge from current.cost at // window boundaries — the V1 audit's constant -$3.45/-81-calls finding. Both - // are now TURN-anchored: this asserts per-day equality against a reference - // that mirrors main.ts:486-499 (turn.timestamp anchor), plus the invariant - // history.daily Σ == report.daily Σ == total call cost. + // are now PER-CALL for cost/savings/calls (issue #852) with turn-level stats + // still turn-anchored: this asserts per-day equality against a reference + // that mirrors main.ts buildJsonReport's dailyMap fallback (each call on its + // own date), plus the invariant history.daily Σ == report.daily Σ == total + // call cost. - // Mirrors the live report/headline daily rollup in src/main.ts (bucket the - // whole turn — all its calls — on the turn's user-message date). + // Mirrors the live report/headline daily rollup fallback in src/main.ts + // (cost/savings/calls bucket under each call's own date). function reportDailyByDate(projects: ProjectSummary[]): Record { const byDate: Record = {} for (const p of projects) { for (const sess of p.sessions) { for (const turn of sess.turns) { - if (turn.assistantCalls.length === 0) continue - const ts = turn.timestamp || turn.assistantCalls[0]!.timestamp - const day = dateKey(ts) - for (const call of turn.assistantCalls) byDate[day] = (byDate[day] ?? 0) + call.costUSD + for (const call of turn.assistantCalls) { + byDate[dateKey(call.timestamp)] = (byDate[dateKey(call.timestamp)] ?? 0) + call.costUSD + } } } } @@ -492,8 +503,8 @@ describe('daily-cache ↔ report daily-bucket parity', () => { expect(dayA).not.toBe(dayB) // sanity: the fixture really straddles local midnight // A midnight-straddling turn (calls on both days) plus a same-day turn, so - // per-CALL bucketing would produce DIFFERENT per-day totals than the turn- - // anchored report — the case the old code got wrong. + // whole-TURN anchoring would produce DIFFERENT per-day totals than the + // per-call rule — the case the old code got wrong. const projects: ProjectSummary[] = [ makeProject({ sessions: [{ @@ -541,8 +552,10 @@ describe('daily-cache ↔ report daily-bucket parity', () => { const totalCallCost = 2 + 3 + 7 expect(historySum).toBeCloseTo(totalCallCost, 10) expect(reportSum).toBeCloseTo(totalCallCost, 10) - // Day A owns the WHOLE straddling turn (2+3=5), not just its first call (2). - expect(historyByDate[dayA]).toBe(5) - expect(historyByDate[dayB]).toBe(7) + // Day A owns only the straddling turn's pre-midnight call (2); day B owns + // the post-midnight call plus the same-day turn (3+7=10). Both paths agree + // per day and the period total is conserved. + expect(historyByDate[dayA]).toBe(2) + expect(historyByDate[dayB]).toBe(10) }) }) diff --git a/tests/provider-turn-grouping.test.ts b/tests/provider-turn-grouping.test.ts index efdf830..71da3e2 100644 --- a/tests/provider-turn-grouping.test.ts +++ b/tests/provider-turn-grouping.test.ts @@ -229,6 +229,10 @@ describe('provider turn range filtering', () => { expect(turn.assistantCalls.map(call => new Date(call.timestamp).toISOString())).toEqual([ '2026-05-16T00:15:00.000Z', ]) + // The slice re-anchors the turn's timestamp from the user-message time + // (2026-05-15T23:57Z) to the first surviving call, so turn-anchored + // bucketing lands the slice on the day its calls actually fall in. + expect(new Date(turn.timestamp).toISOString()).toBe('2026-05-16T00:15:00.000Z') expect(session.totalInputTokens).toBe(80) expect(session.totalOutputTokens).toBe(20) } finally { From 4bfcc020f6f57dfa1847adaca46f0808540e3168 Mon Sep 17 00:00:00 2001 From: "chengchuan.zhou" Date: Fri, 31 Jul 2026 18:34:18 +0800 Subject: [PATCH 09/21] fix(aggregator): apply --project/--exclude to the durable headline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The durable headline unions the carry-forward daily cache with today's live parse. Cached days were sliced to the requested provider (sliceDayToProvider) but never to the requested project, so a --project/--exclude query counted every historical day WHOLE while the detail panels — By Project / By Activity / By Model, all built from the name-filtered live parse — left the filtered projects out. The Overview total and the panels below it could not be reconciled; on a real one-week corpus the headline ran $2,428.85 over the By Project sum, which is exactly the excluded projects' spend. Add sliceDayToProject, the project-level counterpart of sliceDayToProvider, and apply it to the cache-sourced days. Cost, calls, sessions and savings come out of the per-project day stats the cache has carried since v15, so they stay exact and still include days whose session files have expired. Provider slices carry their own project split, so --provider on top of a project filter stays consistent. Fields the cache has no per-project split for are handled explicitly rather than reported as the filtered projects' own: - tokens/models/categories come from the (project-filtered) live parse when a project filter is active, which is exact for every surviving session and matches the panels that read the same parse; - days, or provider slices, carried from before v15 have no project split at all and cannot be attributed, so they contribute nothing and their cost is returned as unattributedCostUSD and footnoted by the terminal overview instead of being folded into a filtered total. --- CHANGELOG.md | 1 + src/main.ts | 1 + src/overview.ts | 10 + src/usage-aggregator.ts | 160 +++++++++- tests/project-filter-durable-totals.test.ts | 332 ++++++++++++++++++++ 5 files changed, 500 insertions(+), 4 deletions(-) create mode 100644 tests/project-filter-durable-totals.test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 61e9ffe..fb03d0e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - **Codex throughput tracking**: per-model Tok/s in the dashboard and report, active time excludes tool wait. (#805, thanks @ihearttokyo) ### Fixed (CLI) +- **`--project` / `--exclude` now apply to the headline totals, not just the detail panels.** The durable headline unions the carry-forward daily cache with today's live parse, and the cached days were sliced to the requested provider but never to the requested project — so the Overview panel counted excluded projects while By Project / By Activity / By Model (built from the name-filtered parse) left them out, and the two could not be reconciled. Cost, calls, sessions and savings are now sliced out of the per-project day stats the cache has carried since v15. Tokens, models and categories have no per-project split in the cache, so under a project filter they come from the (project-filtered) live parse instead; cached days — or provider slices — carried from before v15 have no project split at all, so they cannot be attributed to a filtered project, and the terminal overview now states how much was set aside rather than folding it into the total. (#864) - **Codex parser corrections**: fork-replay no longer double-counts `patch_apply_end` and `mcp_tool_call_end`; `exec` is normalized to Bash; `custom_tool_call` events are handled; token_count lines larger than 32 KiB now parse exact token counts instead of estimating. Codex session cache bumps from v7 to v8 for a one-time re-parse. Only tool attribution changes for ordinary sessions, leaving their cost identical; sessions that logged an oversized token_count line are repriced from exact counts instead of an estimate. (#805) ### Fixed - Claude Desktop and Cowork sessions are discovered for Windows Microsoft Store (MSIX) installs. (#611) diff --git a/src/main.ts b/src/main.ts index d24789e..be98055 100644 --- a/src/main.ts +++ b/src/main.ts @@ -984,6 +984,7 @@ program cacheWriteTokens: durable.data.cacheWriteTokens, days: durable.days, carriedCostUSD: durable.carriedCostUSD, + unattributedCostUSD: durable.unattributedCostUSD, }, })) }) diff --git a/src/overview.ts b/src/overview.ts index 4881ae9..4f6cabd 100644 --- a/src/overview.ts +++ b/src/overview.ts @@ -97,6 +97,9 @@ export type OverviewDurable = { cacheWriteTokens: number days: DailyEntry[] carriedCostUSD: number + /// Cost a --project/--exclude filter could not attribute (cached days with no + /// per-project split). Optional so callers that never filter can omit it. + unattributedCostUSD?: number } export function renderOverview( @@ -350,5 +353,12 @@ export function renderOverview( out.push(c.dim(` includes ${formatCost(durable.carriedCostUSD)} preserved from expired session logs`)) } + // A project filter cannot claim days the cache holds without a project split + // (recorded before that split existed), so they sit outside this total. Say how + // much rather than let the filtered figure look inexplicably short. + if (durable && (durable.unattributedCostUSD ?? 0) > 0) { + out.push(c.dim(` excludes ${formatCost(durable.unattributedCostUSD!)} from days with no per-project history`)) + } + return out.join('\n') + '\n' } diff --git a/src/usage-aggregator.ts b/src/usage-aggregator.ts index baf4c31..86d0e2e 100644 --- a/src/usage-aggregator.ts +++ b/src/usage-aggregator.ts @@ -12,7 +12,7 @@ import { aggregateModels } from './models-report.js' import { scanUserCorrections, medianTimeToFirstEditMs, aggregateFileChurn, computePricingCoverage } from './workflow-insights.js' import { buildPrAttribution, aggregateByBranch } from './sessions-report.js' import { scanAndDetect } from './optimize.js' -import { getDaysInRange, ensureCacheHydrated, emptyCache, BACKFILL_DAYS, toDateString, type DailyCache, type DailyEntry } from './daily-cache.js' +import { getDaysInRange, ensureCacheHydrated, emptyCache, BACKFILL_DAYS, toDateString, type DailyCache, type DailyEntry, type ProjectDayStats, type ProviderDaySlice } from './daily-cache.js' import { buildGranularHistory } from './granular-history.js' // Row caps for the by-PR / by-branch payload aggregations, ranked by cost. @@ -226,25 +226,130 @@ function sliceDayToProvider(day: DailyEntry, provider: string): DailyEntry { } } +/// Does a cached day's project entry pass the active name filters? Mirrors +/// parser.filterProjectsByName exactly — case-insensitive substring match +/// against the project name OR its filesystem path, include first then exclude — +/// so a filter selects the same projects whether it is resolved against a fresh +/// parse or against the day cache. Patterns arrive pre-lowercased. `path` is +/// absent on entries whose sessions were gone before it could be recorded; the +/// name is then all there is to match on, as it is for the display layers. +function dayProjectMatches(name: string, path: string | undefined, include: string[], exclude: string[]): boolean { + const n = name.toLowerCase() + const p = (path ?? '').toLowerCase() + const hit = (pattern: string): boolean => n.includes(pattern) || (p !== '' && p.includes(pattern)) + if (include.length > 0 && !include.some(hit)) return false + if (exclude.length > 0 && exclude.some(hit)) return false + return true +} + +/// Sum the per-project day stats that pass the filters. `defineProperty` so a +/// project directory named "__proto__" stays an own key instead of mutating the +/// prototype link (same reason day-aggregator does it when writing them). +function sumMatchingProjects( + projects: Record, + include: string[], + exclude: string[], +): { cost: number; calls: number; savingsUSD: number; sessions: number; projects: Record; matched: number } { + const out = { cost: 0, calls: 0, savingsUSD: 0, sessions: 0, projects: {} as Record, matched: 0 } + for (const [name, p] of Object.entries(projects)) { + if (!dayProjectMatches(name, p.path, include, exclude)) continue + out.cost += p.cost + out.calls += p.calls + out.savingsUSD += p.savingsUSD ?? 0 + out.sessions += p.sessions ?? 0 + out.matched += 1 + Object.defineProperty(out.projects, name, { value: p, enumerable: true, writable: true, configurable: true }) + } + return out +} + +/// Collapse a day to the slice matching the active --project/--exclude filters, +/// the project-level counterpart of sliceDayToProvider. Without this a +/// project-filtered headline counted every historical day WHOLE — excluded +/// projects included — while every detail panel (By Project / By Activity / By +/// Model, all built from the name-filtered live parse) left them out, so the two +/// could not be reconciled. +/// +/// `DailyEntry.projects` (cache v15+) carries cost/calls/savingsUSD/sessions per +/// project, so those four are recomputed EXACTLY. The day's tokens, models and +/// categories have no per-project split to slice, so they are dropped here +/// rather than reported as if they belonged to the surviving projects; +/// buildDurablePeriod refills them from the project-filtered live parse, which +/// is exact for every session that still exists. +/// +/// A day recorded before v15 has no `projects` at all and nothing can +/// reconstruct one once the sources are gone. Such a day cannot be attributed to +/// any project, so it contributes nothing to a project-filtered total and its +/// cost is surfaced as `unattributedCostUSD` instead of being silently folded in +/// (understating with a stated figure beats overstating with excluded spend). +function sliceDayToProject(day: DailyEntry, include: string[], exclude: string[]): DailyEntry { + const zeroDay = (): DailyEntry => ({ + date: day.date, cost: 0, savingsUSD: 0, calls: 0, sessions: 0, + inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0, + editTurns: 0, oneShotTurns: 0, models: {}, categories: {}, providers: {}, + ...(day.carried ? { carried: true as const } : {}), + }) + if (!day.projects) return zeroDay() + const totals = sumMatchingProjects(day.projects, include, exclude) + if (totals.matched === 0) return zeroDay() + + // Provider slices carry their own per-project split, so `--provider X` on top + // of a project filter stays consistent with the day-level slice. A slice + // adopted from a pre-v15 cache has no split and is dropped for the same + // reason the day-level one is. + const providers: Record = {} + for (const [name, slice] of Object.entries(day.providers)) { + if (!slice.projects) continue + const sliced = sumMatchingProjects(slice.projects, include, exclude) + if (sliced.matched === 0) continue + Object.defineProperty(providers, name, { + value: { cost: sliced.cost, calls: sliced.calls, savingsUSD: sliced.savingsUSD, sessions: sliced.sessions, projects: sliced.projects }, + enumerable: true, writable: true, configurable: true, + }) + } + + return { + date: day.date, + cost: totals.cost, + savingsUSD: totals.savingsUSD, + calls: totals.calls, + sessions: totals.sessions, + inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0, + editTurns: 0, oneShotTurns: 0, models: {}, categories: {}, + providers, + projects: totals.projects, + ...(day.carried ? { carried: true as const } : {}), + } +} + /// The durable day set behind a period's headline: historical days from the /// carry-forward cache (up to yesterday, INCLUDING days whose session files have /// expired) unioned with today parsed live, then narrowed to the requested range /// and (when given) the heatmap day selection. Identical construction to the /// menubar's all-provider headline — this IS that construction, extracted. +/// +/// `sliceHistorical` narrows the cache-sourced days only. Today's days come from +/// a parse the caller already name-filtered, so re-slicing them would be a no-op +/// at best and could only lose data the filter meant to keep. function unionDaysForPeriod( cache: DailyCache, todayAllDays: DailyEntry[], periodInfo: PeriodInfo, daysSelection: Set | null, + sliceHistorical?: (day: DailyEntry) => DailyEntry, ): DailyEntry[] { const now = new Date() const yesterdayStr = toDateString(new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1)) const rangeStartStr = toDateString(periodInfo.range.start) const rangeEndStr = toDateString(periodInfo.range.end) const historicalRangeEndStr = rangeEndStr < yesterdayStr ? rangeEndStr : yesterdayStr - const historicalDays = rangeStartStr <= historicalRangeEndStr + const cacheDays = rangeStartStr <= historicalRangeEndStr ? getDaysInRange(cache, rangeStartStr, historicalRangeEndStr) : [] + // Apply the day selection BEFORE slicing so a day the heatmap filtered out + // never reaches the slicer (which tallies what it could not attribute). + const selectedCacheDays = daysSelection ? cacheDays.filter(d => daysSelection.has(d.date)) : cacheDays + const historicalDays = sliceHistorical ? selectedCacheDays.map(d => sliceHistorical(d)) : selectedCacheDays const todayInRange = todayAllDays.filter(d => d.date >= rangeStartStr && d.date <= rangeEndStr) const unfiltered = [...historicalDays, ...todayInRange].sort((a, b) => a.date.localeCompare(b.date)) return daysSelection ? unfiltered.filter(d => daysSelection.has(d.date)) : unfiltered @@ -266,6 +371,12 @@ export type DurablePeriod = { days: DailyEntry[] /// Sum of `cost` on `carried` days included in the period (footnote source). carriedCostUSD: number + /// Cost the active --project/--exclude filter had to set aside: cached days + /// recorded before per-project day stats existed (v15) carry no project split, + /// so they cannot be attributed to the filtered projects. Always 0 when no + /// project filter is active. Reported so a filtered total that is short of the + /// unfiltered one says so instead of just looking wrong. + unattributedCostUSD: number /// Fresh per-period parse (provider + name filtered) for detail views that /// still need surviving session files. liveProjects: ProjectSummary[] @@ -325,7 +436,33 @@ export async function buildDurablePeriod(periodInfo: PeriodInfo, opts: Aggregate scanRange = isTodayOnly ? todayRange : periodInfo.range } - const allDays = unionDaysForPeriod(cache, todayAllDays, periodInfo, daysSelection?.days ?? null) + // Name filters must reach the cache-sourced days too. Today's parse is already + // name-filtered above (`fp`), but the historical remainder comes straight out + // of the day cache, so without this slice a --project/--exclude headline + // counted every expired-source day whole while the detail panels did not. + const projectInclude = (opts.project ?? []).map(s => s.toLowerCase()) + const projectExclude = (opts.exclude ?? []).map(s => s.toLowerCase()) + const hasProjectFilter = projectInclude.length > 0 || projectExclude.length > 0 + // What a filtered total cannot claim, and therefore has to leave out: a cached + // day with no project split at all, or — with a provider filter also active, + // since the headline then reads that provider's slice — a slice carried from a + // cache generation that predates per-project splits. Both are stated back to + // the caller (footnoted by the overview) instead of vanishing from the total. + const unattributableCost = (day: DailyEntry): number => { + if (pf === 'all') return day.projects ? 0 : day.cost + const slice = Object.hasOwn(day.providers, pf) ? day.providers[pf] : undefined + if (!slice) return 0 + return !day.projects || !slice.projects ? slice.cost : 0 + } + let unattributedCostUSD = 0 + const sliceHistorical = hasProjectFilter + ? (day: DailyEntry): DailyEntry => { + unattributedCostUSD += unattributableCost(day) + return sliceDayToProject(day, projectInclude, projectExclude) + } + : undefined + + const allDays = unionDaysForPeriod(cache, todayAllDays, periodInfo, daysSelection?.days ?? null, sliceHistorical) const days = pf === 'all' ? allDays : allDays.map(d => sliceDayToProvider(d, pf)) const data = buildPeriodDataFromDays(days, periodInfo.label) @@ -342,6 +479,21 @@ export async function buildDurablePeriod(periodInfo: PeriodInfo, opts: Aggregate // Cache buckets a session on its START day, the scan on any ACTIVE day; both // are lower bounds of distinct sessions, so max is the tightest safe bound. data.sessions = Math.max(data.sessions, scanData.sessions) + // Tokens/models/categories have no per-project split in the day cache, so + // sliceDayToProject drops them (see there). Under a project filter they come + // from the live parse instead: exact for the filtered projects, bounded by + // source retention like every other scan-derived field above, and consistent + // with the By Model / By Activity panels that read the same parse. Cost, calls, + // sessions and savings stay durable — sliced out of the cache, expired days + // included. + if (hasProjectFilter) { + data.inputTokens = scanData.inputTokens + data.outputTokens = scanData.outputTokens + data.cacheReadTokens = scanData.cacheReadTokens + data.cacheWriteTokens = scanData.cacheWriteTokens + data.models = scanData.models + data.categories = scanData.categories + } const estimatedByModel = new Map( scanData.models.filter(m => m.estimatedCostUSD != null).map(m => [m.name, m.estimatedCostUSD!]), ) @@ -352,7 +504,7 @@ export async function buildDurablePeriod(periodInfo: PeriodInfo, opts: Aggregate } const carriedCostUSD = days.reduce((s, d) => s + (d.carried ? d.cost : 0), 0) - return { data, days, carriedCostUSD, liveProjects, cache, todayAllDays, scanRange } + return { data, days, carriedCostUSD, unattributedCostUSD, liveProjects, cache, todayAllDays, scanRange } } /** diff --git a/tests/project-filter-durable-totals.test.ts b/tests/project-filter-durable-totals.test.ts new file mode 100644 index 0000000..746a67b --- /dev/null +++ b/tests/project-filter-durable-totals.test.ts @@ -0,0 +1,332 @@ +import { afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest' +import { mkdir, rm, writeFile } from 'fs/promises' +import { existsSync } from 'fs' +import { tmpdir } from 'os' +import { join } from 'path' + +import { DAILY_CACHE_VERSION, currentTzKey, type DailyCache, type DailyEntry } from '../src/daily-cache.js' +import { getDateRange } from '../src/cli-date.js' +import { loadPricing } from '../src/models.js' +import { buildDurablePeriod, buildMenubarPayloadForRange, buildPeriodData, getDailyCacheConfigHash } from '../src/usage-aggregator.js' +import { parseAllSessions, filterProjectsByName, clearSessionCache } from '../src/parser.js' +import { renderOverview } from '../src/overview.js' +import type { DateRange } from '../src/types.js' + +// The durable headline (overview / report Overview panel / menubar current) is +// built from the carry-forward daily cache unioned with today's live parse, so +// days whose session files expired still count. Historical days were sliced to +// the requested PROVIDER but never to the requested PROJECT, so +// `--project` / `--exclude` were silently ignored for every day except today: +// the Overview total counted excluded projects while every detail panel (By +// Project / By Activity / By Model, all built from the name-filtered live +// parse) left them out, and the two panels could not be reconciled. +// +// Per-project day stats exist in the cache since v15 (DailyEntry.projects), so +// the historical days CAN be sliced — that is what these tests pin down. + +const ROOT = join(tmpdir(), `codeburn-project-filter-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`) +const ENV_KEYS = ['HOME', 'CODEBURN_CACHE_DIR', 'CLAUDE_CONFIG_DIR', 'CLAUDE_CONFIG_DIRS', 'CODEX_HOME'] as const +let savedEnv: Record + +// One carried day, split across two projects. The day totals are the sum, so a +// correct project slice returns strictly less than the whole day. +const KEEP = { cost: 30, calls: 10, sessions: 1 } +const DROP = { cost: 70, calls: 30, sessions: 2 } +const DAY_COST = KEEP.cost + DROP.cost +const DAY_CALLS = KEEP.calls + DROP.calls +const DAY_SESSIONS = KEEP.sessions + DROP.sessions + +function daysAgoStr(n: number): string { + const d = new Date(Date.now() - n * 24 * 60 * 60 * 1000) + return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}` +} + +/** A day only the cache holds (sources aged out), split across two projects. */ +function carriedDayWithProjects(date: string): DailyEntry { + const projects = { + 'keep-me': { cost: KEEP.cost, calls: KEEP.calls, savingsUSD: 0, sessions: KEEP.sessions, path: '/Users/gone/keep-me' }, + 'drop-me': { cost: DROP.cost, calls: DROP.calls, savingsUSD: 0, sessions: DROP.sessions, path: '/Users/gone/drop-me' }, + } + return { + date, + cost: DAY_COST, + savingsUSD: 0, + calls: DAY_CALLS, + sessions: DAY_SESSIONS, + inputTokens: 5000, + outputTokens: 2000, + cacheReadTokens: 0, + cacheWriteTokens: 0, + editTurns: 4, + oneShotTurns: 2, + models: { 'Opus 4.8': { calls: DAY_CALLS, cost: DAY_COST, savingsUSD: 0, inputTokens: 5000, outputTokens: 2000, cacheReadTokens: 0, cacheWriteTokens: 0 } }, + categories: { coding: { turns: 10, cost: DAY_COST, savingsUSD: 0, editTurns: 4, oneShotTurns: 2 } }, + providers: { + claude: { + calls: DAY_CALLS, cost: DAY_COST, savingsUSD: 0, sessions: DAY_SESSIONS, + inputTokens: 5000, outputTokens: 2000, cacheReadTokens: 0, cacheWriteTokens: 0, + editTurns: 4, oneShotTurns: 2, + models: { 'Opus 4.8': { calls: DAY_CALLS, cost: DAY_COST, savingsUSD: 0, inputTokens: 5000, outputTokens: 2000, cacheReadTokens: 0, cacheWriteTokens: 0 } }, + categories: { coding: { turns: 10, cost: DAY_COST, savingsUSD: 0, editTurns: 4, oneShotTurns: 2 } }, + projects, + }, + }, + projects, + carried: true, + } +} + +/** A carried day recorded before v15: totals, but no per-project split at all. */ +function carriedDayWithoutProjects(date: string): DailyEntry { + const day = carriedDayWithProjects(date) + delete day.projects + delete day.providers['claude']!.projects + return day +} + +async function seedCache(day: DailyEntry): Promise { + const cache: DailyCache = { + version: DAILY_CACHE_VERSION, + savingsConfigHash: getDailyCacheConfigHash(), + tzKey: currentTzKey(), + lastComputedDate: daysAgoStr(1), + days: [day], + complete: true, + } + await writeFile(join(ROOT, 'cache', `daily-cache.v${DAILY_CACHE_VERSION}.json`), JSON.stringify(cache), 'utf-8') +} + +/** A real, priced Claude session dated TODAY, under project dir `live-proj`. */ +async function seedLiveTodaySession(): Promise { + const projectDir = join(ROOT, 'home', '.claude', 'projects', 'live-proj') + await mkdir(projectDir, { recursive: true }) + const now = new Date() + const at = (h: number, m: number): string => new Date(now.getFullYear(), now.getMonth(), now.getDate(), h, m, 0).toISOString() + const line = (id: string, t: string): string => JSON.stringify({ + type: 'assistant', + timestamp: t, + sessionId: 's-today', + message: { + type: 'message', role: 'assistant', model: 'claude-3-5-sonnet-20241022', id, + content: [], + usage: { input_tokens: 90000, output_tokens: 12000, cache_creation_input_tokens: 0, cache_read_input_tokens: 300000 }, + }, + }) + await writeFile(join(projectDir, 's-today.jsonl'), [line('m1', at(12, 0)), line('m2', at(12, 30))].join('\n') + '\n', 'utf-8') +} + +/** What the name-filtered live parse alone reports — the By Project panel's source. */ +async function liveOnly(range: DateRange, include: string[], exclude: string[]): Promise<{ cost: number; calls: number }> { + clearSessionCache() + const projects = filterProjectsByName(await parseAllSessions(range, 'all'), include, exclude) + const data = buildPeriodData('live', projects) + return { cost: data.cost, calls: data.calls } +} + +beforeAll(async () => { + await loadPricing() +}) + +beforeEach(async () => { + savedEnv = Object.fromEntries(ENV_KEYS.map(k => [k, process.env[k]])) + await mkdir(join(ROOT, 'home', '.claude'), { recursive: true }) + await mkdir(join(ROOT, 'cache'), { recursive: true }) + process.env['HOME'] = join(ROOT, 'home') + process.env['CODEBURN_CACHE_DIR'] = join(ROOT, 'cache') + process.env['CLAUDE_CONFIG_DIR'] = join(ROOT, 'home', '.claude') + delete process.env['CLAUDE_CONFIG_DIRS'] + delete process.env['CODEX_HOME'] + clearSessionCache() +}) + +afterEach(async () => { + clearSessionCache() + for (const k of ENV_KEYS) { + if (savedEnv[k] === undefined) delete process.env[k] + else process.env[k] = savedEnv[k] + } + if (existsSync(ROOT)) await rm(ROOT, { recursive: true, force: true }) +}) + +const monthRange = (): DateRange => getDateRange('month').range + +describe('durable headline honours --project / --exclude on carried days', () => { + it('drops an excluded project from the headline so it reconciles with the By Project panel', async () => { + await seedCache(carriedDayWithProjects(daysAgoStr(10))) + await seedLiveTodaySession() + const range = monthRange() + + const live = await liveOnly(range, [], ['drop-me']) + clearSessionCache() + const durable = await buildDurablePeriod({ range, label: 'p' }, { provider: 'all', exclude: ['drop-me'] }) + + // The headline counts the surviving sessions plus ONLY the kept project's + // carried cost — not the whole carried day. + expect(durable.data.cost).toBeCloseTo(live.cost + KEEP.cost, 6) + expect(durable.data.calls).toBe(live.calls + KEEP.calls) + // And it reconciles with the detail panels, which see the same live parse. + const byProject = durable.liveProjects.reduce((s, p) => s + p.totalCostUSD, 0) + expect(durable.data.cost).toBeCloseTo(byProject + KEEP.cost, 6) + }) + + it('keeps only the named project when --project is given', async () => { + await seedCache(carriedDayWithProjects(daysAgoStr(10))) + await seedLiveTodaySession() + const range = monthRange() + + const live = await liveOnly(range, ['keep-me'], []) + clearSessionCache() + const durable = await buildDurablePeriod({ range, label: 'p' }, { provider: 'all', project: ['keep-me'] }) + + expect(durable.data.cost).toBeCloseTo(live.cost + KEEP.cost, 6) + expect(durable.data.calls).toBe(live.calls + KEEP.calls) + }) + + it('matches a filter against the project path as well as its name', async () => { + await seedCache(carriedDayWithProjects(daysAgoStr(10))) + await seedLiveTodaySession() + const range = monthRange() + + const live = await liveOnly(range, [], ['/Users/gone/drop-me']) + clearSessionCache() + const durable = await buildDurablePeriod({ range, label: 'p' }, { provider: 'all', exclude: ['/Users/gone/drop-me'] }) + + expect(durable.data.cost).toBeCloseTo(live.cost + KEEP.cost, 6) + }) + + it('contributes nothing from a carried day whose every project is excluded', async () => { + await seedCache(carriedDayWithProjects(daysAgoStr(10))) + await seedLiveTodaySession() + const range = monthRange() + + const live = await liveOnly(range, [], ['keep-me', 'drop-me']) + clearSessionCache() + const durable = await buildDurablePeriod({ range, label: 'p' }, { provider: 'all', exclude: ['keep-me', 'drop-me'] }) + + expect(durable.data.cost).toBeCloseTo(live.cost, 6) + expect(durable.carriedCostUSD).toBe(0) + }) + + it('applies the project filter underneath a provider filter', async () => { + await seedCache(carriedDayWithProjects(daysAgoStr(10))) + await seedLiveTodaySession() + const range = monthRange() + + // Stated as the delta the filter must produce, so the assertion holds + // whatever the provider-scoped live parse contributes. + clearSessionCache() + const unfiltered = await buildDurablePeriod({ range, label: 'p' }, { provider: 'claude' }) + clearSessionCache() + const filtered = await buildDurablePeriod({ range, label: 'p' }, { provider: 'claude', exclude: ['drop-me'] }) + + expect(unfiltered.data.cost - filtered.data.cost).toBeCloseTo(DROP.cost, 6) + expect(unfiltered.data.calls - filtered.data.calls).toBe(DROP.calls) + }) + + it('keeps the menubar payload in step with the report under a project filter', async () => { + await seedCache(carriedDayWithProjects(daysAgoStr(10))) + await seedLiveTodaySession() + const range = monthRange() + + clearSessionCache() + const menubar = await buildMenubarPayloadForRange({ range, label: 'p' }, { provider: 'all', exclude: ['drop-me'], optimize: false, timeline: false }) + clearSessionCache() + const durable = await buildDurablePeriod({ range, label: 'p' }, { provider: 'all', exclude: ['drop-me'] }) + + // Both surfaces route the headline through the one shared builder, so a + // project filter must land on them identically. + expect(menubar.current.cost).toBe(durable.data.cost) + expect(menubar.current.calls).toBe(durable.data.calls) + expect(menubar.current.inputTokens).toBe(durable.data.inputTokens) + }) + + it('leaves the unfiltered headline exactly as it was', async () => { + await seedCache(carriedDayWithProjects(daysAgoStr(10))) + await seedLiveTodaySession() + const range = monthRange() + + const live = await liveOnly(range, [], []) + clearSessionCache() + const durable = await buildDurablePeriod({ range, label: 'p' }, { provider: 'all' }) + + expect(durable.data.cost).toBeCloseTo(live.cost + DAY_COST, 6) + expect(durable.data.calls).toBe(live.calls + DAY_CALLS) + expect(durable.carriedCostUSD).toBeCloseTo(DAY_COST, 6) + }) +}) + +describe('carried days with no per-project split (pre-v15)', () => { + it('sets the unfilterable day aside instead of leaking it into a filtered headline', async () => { + await seedCache(carriedDayWithoutProjects(daysAgoStr(10))) + await seedLiveTodaySession() + const range = monthRange() + + const live = await liveOnly(range, [], ['drop-me']) + clearSessionCache() + const durable = await buildDurablePeriod({ range, label: 'p' }, { provider: 'all', exclude: ['drop-me'] }) + + // The day cannot be attributed to any project, so a project-filtered total + // cannot claim it. It is reported separately rather than silently folded in. + expect(durable.data.cost).toBeCloseTo(live.cost, 6) + expect(durable.unattributedCostUSD).toBeCloseTo(DAY_COST, 6) + }) + + it('reports a provider slice with no project split as unattributed too', async () => { + // A v14-era provider slice carried into a v15 day: the day knows its project + // split, that provider's slice does not. Under --provider the headline reads + // the slice, so the day drops out — say how much rather than lose it quietly. + const day = carriedDayWithProjects(daysAgoStr(10)) + delete day.providers['claude']!.projects + await seedCache(day) + await seedLiveTodaySession() + const range = monthRange() + + clearSessionCache() + const durable = await buildDurablePeriod({ range, label: 'p' }, { provider: 'claude', exclude: ['drop-me'] }) + + expect(durable.unattributedCostUSD).toBeCloseTo(DAY_COST, 6) + expect(durable.carriedCostUSD).toBe(0) + }) + + it('says so in the overview instead of just showing a short total', async () => { + await seedCache(carriedDayWithoutProjects(daysAgoStr(10))) + await seedLiveTodaySession() + const range = monthRange() + + clearSessionCache() + const durable = await buildDurablePeriod({ range, label: 'This month' }, { provider: 'all', exclude: ['drop-me'] }) + expect(durable.unattributedCostUSD).toBeGreaterThan(0) + + const rendered = renderOverview(durable.liveProjects, { + label: 'This month', + color: false, + durable: { + cost: durable.data.cost, + savingsUSD: durable.data.savingsUSD, + calls: durable.data.calls, + sessions: durable.data.sessions, + inputTokens: durable.data.inputTokens, + outputTokens: durable.data.outputTokens, + cacheReadTokens: durable.data.cacheReadTokens, + cacheWriteTokens: durable.data.cacheWriteTokens, + days: durable.days, + carriedCostUSD: durable.carriedCostUSD, + unattributedCostUSD: durable.unattributedCostUSD, + }, + }) + expect(rendered).toContain('no per-project history') + }) + + it('still counts the day in full when no project filter is active', async () => { + await seedCache(carriedDayWithoutProjects(daysAgoStr(10))) + await seedLiveTodaySession() + const range = monthRange() + + const live = await liveOnly(range, [], []) + clearSessionCache() + const durable = await buildDurablePeriod({ range, label: 'p' }, { provider: 'all' }) + + expect(durable.data.cost).toBeCloseTo(live.cost + DAY_COST, 6) + expect(durable.unattributedCostUSD).toBe(0) + }) +}) From 61581edb184e372ca5da3c7e8a4b5ce70983ae78 Mon Sep 17 00:00:00 2001 From: Marc Reynolds Date: Fri, 31 Jul 2026 15:12:29 -0600 Subject: [PATCH 10/21] feat(dashboard): add combined-device scope to desktop app and menubar badge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #795: the desktop Dashboard showed only local-device cost while the menubar and web GUI aggregated across paired devices. Desktop app: - Add a Local/Combined Scope setting (Settings > General), mirroring the macOS menubar. Combined passes `--scope combined` to the CLI, forces the provider filter to all, and persists to localStorage. - Overview hero shows the paired-device aggregate (cost/calls/sessions) with a "Combined · N devices" caption and per-device breakdown when Combined is selected; detailed panels remain local (the combined payload carries totals only). Menubar: - The badge figure now reflects Combined scope instead of always showing the local total: refreshMenubarBadge fetches the combined payload for the badge period and the badge renders the cross-device aggregate, falling back to local when no combined payload is available. --- app/electron/main.test.ts | 7 ++ app/electron/main.ts | 26 +++++-- app/electron/preload.ts | 2 +- app/renderer/App.test.tsx | 21 +++++- app/renderer/App.tsx | 72 ++++++++++++++----- app/renderer/lib/types.ts | 8 ++- app/renderer/sections/Overview.test.tsx | 43 +++++++++++ app/renderer/sections/Overview.tsx | 54 +++++++++++--- app/renderer/sections/Settings.test.tsx | 11 +++ app/renderer/sections/Settings.tsx | 9 +-- app/renderer/styles/plain.css | 6 ++ mac/Sources/CodeBurnMenubar/AppStore.swift | 32 +++++++++ mac/Sources/CodeBurnMenubar/CodeBurnApp.swift | 33 ++++++--- .../AppStoreRefreshRecoveryTests.swift | 50 +++++++++++++ 14 files changed, 324 insertions(+), 50 deletions(-) diff --git a/app/electron/main.test.ts b/app/electron/main.test.ts index 30dfe17..208bd86 100644 --- a/app/electron/main.test.ts +++ b/app/electron/main.test.ts @@ -89,6 +89,12 @@ const ARGV_CASES: Array<{ channel: string; args: unknown[]; argv: string[] }> = { channel: 'codeburn:getOverview', args: ['30days', 'all', { from: '2026-07-01', to: '2026-07-11' }], argv: ['status', '--format', 'menubar-json', '--period', '30days', '--no-timeline', '--from', '2026-07-01', '--to', '2026-07-11'] }, { channel: 'codeburn:getOverview', args: ['30days', 'all', undefined, 'claude-config:91dda17e8cf35193'], argv: ['status', '--format', 'menubar-json', '--period', '30days', '--no-timeline', '--claude-config-source', 'claude-config:91dda17e8cf35193'] }, { channel: 'codeburn:getOverview', args: ['month', 'claude', { from: '2026-07-01', to: '2026-07-11' }, 'claude-desktop:980e1e488a654830'], argv: ['status', '--format', 'menubar-json', '--period', 'month', '--no-timeline', '--provider', 'claude', '--from', '2026-07-01', '--to', '2026-07-11', '--claude-config-source', 'claude-desktop:980e1e488a654830'] }, + // Combined scope emits --scope combined; an explicit local scope is identical + // to the default (no flag). The CLI rejects --scope with --provider, so a + // provider passed alongside combined is dropped (the renderer forces 'all'). + { channel: 'codeburn:getOverview', args: ['30days', 'all', undefined, undefined, undefined, 'combined'], argv: ['status', '--format', 'menubar-json', '--period', '30days', '--no-timeline', '--scope', 'combined'] }, + { channel: 'codeburn:getOverview', args: ['30days', 'claude', undefined, undefined, undefined, 'combined'], argv: ['status', '--format', 'menubar-json', '--period', '30days', '--no-timeline', '--scope', 'combined'] }, + { channel: 'codeburn:getOverview', args: ['30days', 'claude', undefined, undefined, undefined, 'local'], argv: ['status', '--format', 'menubar-json', '--period', '30days', '--no-timeline', '--provider', 'claude'] }, { channel: 'codeburn:getModels', args: ['week', 'claude', true, { from: '2026-07-01', to: '2026-07-11' }], argv: ['models', '--format', 'json', '--period', 'week', '--provider', 'claude', '--by-task', '--from', '2026-07-01', '--to', '2026-07-11'] }, { channel: 'codeburn:getYield', args: ['today', 'all', { from: '2026-07-01', to: '2026-07-11' }], argv: ['yield', '--format', 'json', '--period', 'today', '--from', '2026-07-01', '--to', '2026-07-11'] }, { channel: 'codeburn:getSpendFlow', args: ['month', 'all', { from: '2026-07-01', to: '2026-07-11' }], argv: ['spend', '--format', 'flow-json', '--period', 'month', '--from', '2026-07-01', '--to', '2026-07-11'] }, @@ -212,6 +218,7 @@ describe('createBridgeHandlers (IPC input validation)', () => { { name: 'remove price override model that looks like a flag', channel: 'codeburn:removePriceOverride', args: ['--all'] }, { name: 'claude config source that looks like a flag', channel: 'codeburn:getOverview', args: ['30days', 'all', undefined, '-rf'] }, { name: 'claude config source with shell metacharacters', channel: 'codeburn:getOverview', args: ['30days', 'all', undefined, 'id; rm -rf'] }, + { name: 'unknown scope', channel: 'codeburn:getOverview', args: ['30days', 'all', undefined, undefined, undefined, 'everything'] }, ] it.each(REJECTIONS)('rejects $name with a bad-args envelope and never spawns', async ({ channel, args }) => { diff --git a/app/electron/main.ts b/app/electron/main.ts index 82a95c0..5eddbdc 100644 --- a/app/electron/main.ts +++ b/app/electron/main.ts @@ -165,6 +165,11 @@ function vConfigSource(source: string | null | undefined): string | null { if (!/^[A-Za-z0-9][A-Za-z0-9:_-]*$/.test(source)) throw new CliError('bad-args', 'invalid claude config source') return source } +function vScope(scope: string | undefined): 'local' | 'combined' { + if (scope === 'combined') return 'combined' + if (scope === undefined || scope === 'local') return 'local' + throw new CliError('bad-args', 'invalid scope') +} function vOutPath(outPath: string): string { if (outPath.startsWith('-') || !path.isAbsolute(outPath)) throw new CliError('bad-args', 'export path must be absolute') return outPath @@ -269,19 +274,28 @@ export function createBridgeHandlers(deps: Deps = { spawnCli, spawnCliAction, re // The desktop never renders the granular timeline, so it always passes // --no-timeline (skips buildGranularHistory on every poll). The Swift menubar // omits the flag and keeps the timeline unchanged. - const buildOverviewArgs = (period: string, provider: string, range?: DateRange, configSource?: string | null): string[] => [ - 'status', '--format', 'menubar-json', '--period', vPeriod(period), '--no-timeline', - ...providerArgs(vProvider(provider)), ...rangeArgs(vRange(range)), ...configSourceArgs(vConfigSource(configSource)), - ] + // + // Combined scope aggregates paired-device usage: the CLI rejects --scope + // combined alongside --provider/--project/--exclude (paired devices report + // unfiltered usage), so the provider filter is dropped in that mode. The + // caller (renderer) forces provider='all' when combined, so nothing is lost. + const buildOverviewArgs = (period: string, provider: string, range?: DateRange, configSource?: string | null, scope?: string): string[] => { + const vScopeValue = vScope(scope) + return [ + 'status', '--format', 'menubar-json', '--period', vPeriod(period), '--no-timeline', + ...(vScopeValue === 'combined' ? ['--scope', 'combined'] : providerArgs(vProvider(provider))), + ...rangeArgs(vRange(range)), ...configSourceArgs(vConfigSource(configSource)), + ] + } // `background` (renderer prefetch only) drops this fetch to background priority // so it yields the CLI's run slots to any interactive poll or click. Optional // and defaulting to interactive, so an older preload that omits it is unchanged. - const getOverview: Handler = async (period: string, provider: string, range?: DateRange, configSource?: string | null, background?: boolean) => { + const getOverview: Handler = async (period: string, provider: string, range?: DateRange, configSource?: string | null, background?: boolean, scope?: string) => { coldStartBegan ??= Date.now() const priority: SpawnPriority | undefined = background ? 'background' : undefined try { - const args = buildOverviewArgs(period, provider, range, configSource) + const args = buildOverviewArgs(period, provider, range, configSource, scope) if (overviewWarmed) return { ok: true, value: await deps.spawnCli(args, priority ? { priority } : undefined) } const value = await deps.spawnCli(args, { timeoutMs: WARMUP_TIMEOUT_MS, diff --git a/app/electron/preload.ts b/app/electron/preload.ts index 39426eb..1c4bc3e 100644 --- a/app/electron/preload.ts +++ b/app/electron/preload.ts @@ -20,7 +20,7 @@ async function invoke(channel: string, ...args: unknown[]): Promise { // renderer-side where `window.codeburn` is declared as CodeburnBridge. const bridge = { getQuota: (force?: boolean) => invoke('codeburn:getQuota', force), - getOverview: (period: string, provider: string, range?: DateRange, configSource?: string | null, background?: boolean) => invoke('codeburn:getOverview', period, provider, range, configSource, background), + getOverview: (period: string, provider: string, range?: DateRange, configSource?: string | null, background?: boolean, scope?: string) => invoke('codeburn:getOverview', period, provider, range, configSource, background, scope), getPlans: (period: string) => invoke('codeburn:getPlans', period), getActReport: () => invoke('codeburn:getActReport'), getModels: (period: string, provider: string, byTask: boolean, range?: DateRange) => invoke('codeburn:getModels', period, provider, byTask, range), diff --git a/app/renderer/App.test.tsx b/app/renderer/App.test.tsx index 81c7e09..8548917 100644 --- a/app/renderer/App.test.tsx +++ b/app/renderer/App.test.tsx @@ -17,7 +17,7 @@ vi.stubGlobal('localStorage', { }) const mocks = vi.hoisted(() => ({ - getOverview: vi.fn<(period: string, provider: string, range?: DateRange, configSource?: string | null, background?: boolean) => Promise>(), + getOverview: vi.fn<(period: string, provider: string, range?: DateRange, configSource?: string | null, background?: boolean, scope?: string) => Promise>(), getSpendFlow: vi.fn<(period: string, provider: string, range?: DateRange) => Promise>(), getOptimizeReport: vi.fn<(period: string, provider: string, range?: DateRange) => Promise>(), getModels: vi.fn(), @@ -273,6 +273,25 @@ describe('App shortcuts', () => { }) }) + it('drives combined-scope overview fetches and persists the Scope setting', async () => { + render() + await waitFor(() => expect(mocks.getOverview).toHaveBeenCalledWith('30days', 'all')) + + fireEvent.keyDown(document, { key: ',', metaKey: true }) + fireEvent.click(await screen.findByLabelText('Scope')) + fireEvent.click(await screen.findByRole('option', { name: 'Combined' })) + + // Combined scope forces provider='all' and passes --scope combined (6th arg). + await waitFor(() => expect(mocks.getOverview).toHaveBeenCalledWith('30days', 'all', undefined, undefined, undefined, 'combined')) + expect(localStorage.getItem('codeburn.scope')).toBe('combined') + }) + + it('boots in combined scope from the persisted Scope setting', async () => { + localStorage.setItem('codeburn.scope', 'combined') + render() + await waitFor(() => expect(mocks.getOverview).toHaveBeenCalledWith('30days', 'all', undefined, undefined, undefined, 'combined')) + }) + it('builds the provider picker from providerDetails so display-name providers round-trip their internal id', async () => { // grok's display name is "Grok Build"; the picker must show the label but // send the internal id `grok` as --provider (which assertProvider accepts). diff --git a/app/renderer/App.tsx b/app/renderer/App.tsx index 1540bd3..a3110a2 100644 --- a/app/renderer/App.tsx +++ b/app/renderer/App.tsx @@ -27,7 +27,7 @@ import { Compare } from './sections/Compare' import { Plans } from './sections/Plans' import { Settings, type SettingsPane } from './sections/Settings' import { SpendContent } from './sections/Spend' -import type { DateRange, MenubarPayload, ModelReportRow, Period, TelemetryStatus } from './lib/types' +import type { DateRange, MenubarPayload, ModelReportRow, Period, Scope, TelemetryStatus } from './lib/types' // Bucket raw dollar amounts before they leave the machine: telemetry carries // coarse ranges, never exact spend. @@ -130,8 +130,8 @@ const STANDARD_PERIODS: Period[] = ['today', 'week', '30days', 'month', 'all', ' // Instant-switch memo key for an overview result. Shared by the overview poll // and the provider prefetcher so the two never drift out of sync. Exported so // the prefetch-storm test can assert warmed keys survive between polls. -export function overviewMemoKey(provider: string, period: Period, range: DateRange | null, configSource: string | null): string { - return `overview|${provider}|${period}|${range?.from ?? ''}-${range?.to ?? ''}|${configSource ?? ''}` +export function overviewMemoKey(provider: string, period: Period, range: DateRange | null, configSource: string | null, scope: Scope = 'local'): string { + return `overview|${provider}|${period}|${range?.from ?? ''}-${range?.to ?? ''}|${configSource ?? ''}|${scope}` } // Prefetch pacing: wait a short idle after the first paint, then warm one @@ -172,6 +172,15 @@ function persistConfigSource(id: string | null): void { } catch { /* storage can be unavailable */ } } +/** Boot scope = the persisted dashboard Scope setting, else local. */ +function initialScope(): Scope { + try { return globalThis.localStorage?.getItem('codeburn.scope') === 'combined' ? 'combined' : 'local' } catch { return 'local' } +} + +function persistScope(scope: Scope): void { + try { globalThis.localStorage?.setItem('codeburn.scope', scope) } catch { /* storage can be unavailable */ } +} + function providerName(provider: string): string { if (provider === 'all') return 'All providers' return provider @@ -218,20 +227,27 @@ function AppMain() { const [detectedProviders, setDetectedProviders] = useState>([]) const [customRange, setCustomRange] = useState(null) const [claudeConfigSource, setClaudeConfigSource] = useState(initialConfigSource) + const [scope, setScopeState] = useState(initialScope) const [refreshToken, setRefreshToken] = useState(0) const [now, setNow] = useState(() => Date.now()) const [, setCurrencyTick] = useState(0) // Preserve the 2/3-arg call shapes when no config is scoped so the CLI argv // stays flag-free; only add --claude-config-source once a config is picked. + // Combined scope aggregates paired-device usage; the CLI rejects it alongside + // a provider/config filter, so onScopeChange forces provider='all' and clears + // the config scope before this poll runs. Passing scope='local' produces the + // same flag-free argv as before, so local users are unaffected. const overview = usePolled( - () => claudeConfigSource + () => scope === 'combined' + ? codeburn.getOverview(period, 'all', customRange ?? undefined, undefined, undefined, 'combined') + : claudeConfigSource ? codeburn.getOverview(period, provider, customRange ?? undefined, claudeConfigSource) : customRange ? codeburn.getOverview(period, provider, customRange) : codeburn.getOverview(period, provider), - [period, provider, customRange?.from, customRange?.to, claudeConfigSource], - { memoKey: overviewMemoKey(provider, period, customRange, claudeConfigSource) }, + [period, provider, customRange?.from, customRange?.to, claudeConfigSource, scope], + { memoKey: overviewMemoKey(provider, period, customRange, claudeConfigSource, scope) }, ) const refreshOverview = overview.refresh @@ -273,7 +289,7 @@ function AppMain() { // fails we still emit the snapshot, just without the model x category cross. const snapshotDayRef = useRef(null) useEffect(() => { - if (!overview.data || provider !== 'all' || customRange || claudeConfigSource) return + if (!overview.data || provider !== 'all' || customRange || claudeConfigSource || scope !== 'local') return const today = localDateKey(new Date()) if (snapshotDayRef.current === today) return snapshotDayRef.current = today @@ -285,7 +301,7 @@ function AppMain() { } catch { /* degrade: emit the snapshot without per-model topCategory */ } trackEvent('usage_snapshot', usageSnapshotProps(payload, modelCategories)) })() - }, [overview.data, provider, customRange, claudeConfigSource, period, trackEvent]) + }, [overview.data, provider, customRange, claudeConfigSource, scope, period, trackEvent]) useEffect(() => { let saved: string | null = null @@ -360,7 +376,9 @@ function AppMain() { overviewBusyRef.current = overview.loading const warmedKeys = useRef>(new Set()) useEffect(() => { - if (!ready || overview.data == null || customRange || claudeConfigSource) return + // Combined scope has no provider picker to warm — it always shows unfiltered + // all-device usage — so the per-provider prefetch is local-scope only. + if (!ready || overview.data == null || customRange || claudeConfigSource || scope !== 'local') return const targets = detectedProviders.map(entry => entry.id).filter(id => id !== provider) if (targets.length === 0) return let cancelled = false @@ -391,7 +409,7 @@ function AppMain() { // `overview.data == null` (a boolean) gates on first-resolution without // re-running every poll; the data content itself is intentionally not a dep. // eslint-disable-next-line react-hooks/exhaustive-deps - }, [ready, period, provider, customRange, claudeConfigSource, detectedProviders, overview.data == null]) + }, [ready, period, provider, customRange, claudeConfigSource, scope, detectedProviders, overview.data == null]) useEffect(() => { const id = window.setInterval(() => setNow(Date.now()), 1000) @@ -451,17 +469,22 @@ function AppMain() { // A Claude config scopes Claude usage only, so a non-Claude provider filter // would make the CLI reject the flag: reset it to 'all' first (a 'claude' - // filter is already compatible and is left alone). + // filter is already compatible and is left alone). Picking a config also + // implies a device-specific view, so drop combined scope back to local. const onConfigSelect = (id: string) => { const next = id || null if (next && provider !== 'all' && provider !== 'claude') setProvider('all') + if (next && scope === 'combined') { setScopeState('local'); persistScope('local') } setClaudeConfigSource(next) persistConfigSource(next) } // Symmetric direction: picking a non-Claude provider while a config is - // scoped would hit the same CLI rejection, so drop the config scope. + // scoped would hit the same CLI rejection, so drop the config scope. A + // specific provider filter is a device-specific view, so it also drops + // combined scope back to local (combined reports unfiltered usage). const onProviderSelect = (value: string) => { + if (value !== 'all' && scope === 'combined') { setScopeState('local'); persistScope('local') } if (claudeConfigSource && value !== 'all' && value !== 'claude') { setClaudeConfigSource(null) persistConfigSource(null) @@ -469,6 +492,19 @@ function AppMain() { setProvider(value) } + // Combined scope reports unfiltered, all-provider usage across paired devices, + // so switching to it resets the provider filter and Claude-config scope (which + // the CLI would otherwise reject), mirroring the menubar's setMenubarScope. + const onScopeChange = (value: string) => { + const next: Scope = value === 'combined' ? 'combined' : 'local' + if (next === 'combined') { + if (provider !== 'all') setProvider('all') + if (claudeConfigSource) { setClaudeConfigSource(null); persistConfigSource(null) } + } + setScopeState(next) + persistScope(next) + } + const claudeConfigs = overview.data?.claudeConfigs const providerOptions = [ { value: 'all', label: 'All providers' }, @@ -478,7 +514,11 @@ function AppMain() { const activeConfigLabel = claudeConfigSource ? claudeConfigs?.options.find(option => option.id === claudeConfigSource)?.label ?? null : null - const scope = `${customRange ? rangeLabel(customRange) : PERIOD_LABELS[period]} · ${providerLabel}${activeConfigLabel ? ` · ${activeConfigLabel}` : ''}` + // Combined scope reports unfiltered all-device usage, so the caption reads + // "Combined" in place of the (forced-'all') provider label. + const scopeCaption = scope === 'combined' + ? `${customRange ? rangeLabel(customRange) : PERIOD_LABELS[period]} · Combined` + : `${customRange ? rangeLabel(customRange) : PERIOD_LABELS[period]} · ${providerLabel}${activeConfigLabel ? ` · ${activeConfigLabel}` : ''}` return ( @@ -494,12 +534,12 @@ function AppMain() { {section === 'plans' ? ( ) : section === 'settings' ? ( - + ) : ( <>
{section === 'overview' ? ( - + ) : section === 'sessions' ? ( ) : section === 'pullRequests' ? ( diff --git a/app/renderer/lib/types.ts b/app/renderer/lib/types.ts index 14e2d80..faf00a9 100644 --- a/app/renderer/lib/types.ts +++ b/app/renderer/lib/types.ts @@ -6,6 +6,10 @@ export type Period = 'today' | 'week' | '30days' | 'month' | 'all' | 'lifetime' +// Dashboard usage scope: this device only ('local') or the aggregate across +// every paired device ('combined'). Mirrors the macOS menubar's Scope setting. +export type Scope = 'local' | 'combined' + export type DateRange = { from: string; to: string } export type CliErrorKind = 'not-found' | 'nonzero' | 'bad-json' | 'timeout' | 'too-large' | 'bad-args' @@ -637,7 +641,9 @@ export interface CodeburnBridge { getQuota(force?: boolean): Promise // `background` (prefetch only) requests background CLI-spawn priority; optional // so an older preload that ignores it degrades to interactive priority. - getOverview(period: Period, provider: string, range?: DateRange, configSource?: string | null, background?: boolean): Promise + // `scope` selects local-device usage ('local', default) or paired-device + // aggregate ('combined'); optional so an older preload degrades to local. + getOverview(period: Period, provider: string, range?: DateRange, configSource?: string | null, background?: boolean, scope?: string): Promise getPlans(period: Period): Promise getActReport(): Promise readonly platform: string diff --git a/app/renderer/sections/Overview.test.tsx b/app/renderer/sections/Overview.test.tsx index 3138792..1093eeb 100644 --- a/app/renderer/sections/Overview.test.tsx +++ b/app/renderer/sections/Overview.test.tsx @@ -520,6 +520,49 @@ describe('Overview', () => { expect(screen.queryByText('Saved to date')).not.toBeInTheDocument() }) + it('shows paired-device aggregate totals in the hero under combined scope', async () => { + const now = new Date() + const payload = makePayload(now) + // Local device: $312.40 / 4200 calls / 88 sessions (from makePayload). + // Combined swaps the hero to the cross-device aggregate and lists devices. + payload.combined = { + perDevice: [ + { id: 'local', name: 'laptop', local: true, cost: 312.4, calls: 4200, sessions: 88, inputTokens: 0, outputTokens: 0, cacheCreateTokens: 0, cacheReadTokens: 0, totalTokens: 0 }, + { id: 'fp-workstation', name: 'workstation', local: false, cost: 187.6, calls: 2100, sessions: 40, inputTokens: 0, outputTokens: 0, cacheCreateTokens: 0, cacheReadTokens: 0, totalTokens: 0 }, + ], + combined: { cost: 500, calls: 6300, sessions: 128, inputTokens: 0, outputTokens: 0, cacheCreateTokens: 0, cacheReadTokens: 0, totalTokens: 0, deviceCount: 2, reachableCount: 2 }, + } + + const { container } = render() + + const kpis = container.querySelector('.ov-hero-main') as HTMLElement + // Hero cost is the combined $500, not the local $312.40. + expect(within(kpis).getByText('$500.00')).toBeInTheDocument() + expect(within(kpis).getByText(/6,300 calls · 128 sessions/)).toBeInTheDocument() + expect(within(kpis).getByText('Combined · Last 30 days')).toBeInTheDocument() + expect(within(kpis).getByText('2 of 2 devices')).toBeInTheDocument() + expect(within(kpis).getByText('workstation')).toBeInTheDocument() + expect(within(kpis).getByText('laptop · this device')).toBeInTheDocument() + // Combined mode hides the local savings lines (they are device-specific). + expect(within(kpis).queryByText('Saved via local models')).not.toBeInTheDocument() + }) + + it('keeps local hero totals when scope is local even if a combined payload is present', async () => { + const now = new Date() + const payload = makePayload(now) + payload.combined = { + perDevice: [], + combined: { cost: 999, calls: 1, sessions: 1, inputTokens: 0, outputTokens: 0, cacheCreateTokens: 0, cacheReadTokens: 0, totalTokens: 0, deviceCount: 2, reachableCount: 2 }, + } + + const { container } = render() + + const kpis = container.querySelector('.ov-hero-main') as HTMLElement + expect(within(kpis).getByText('$312.40')).toBeInTheDocument() + expect(within(kpis).queryByText('$999.00')).not.toBeInTheDocument() + expect(within(kpis).queryByText(/devices/)).not.toBeInTheDocument() + }) + it('shows a stale banner when last-good data is present but the latest poll failed', async () => { const now = new Date() const overview: Polled = { diff --git a/app/renderer/sections/Overview.tsx b/app/renderer/sections/Overview.tsx index 06cb9c6..b2a9dd2 100644 --- a/app/renderer/sections/Overview.tsx +++ b/app/renderer/sections/Overview.tsx @@ -15,10 +15,12 @@ import { codeburn } from '../lib/ipc' import { contiguousDailyWindow, dataStartKey, formatChartDate, localDateKey, sliceDailyToPeriod, sliceDailyToRange } from '../lib/period' import type { ActReportJson, + CombinedUsage, DailyHistoryEntry, DateRange, MenubarPayload, Period, + Scope, YieldJsonReport, } from '../lib/types' @@ -650,6 +652,23 @@ export function Overview({ period, provider }: { period: Period; provider: strin return } +/** Combined-scope hero footer: a per-device cost breakdown plus a reachable/ + * total device count, mirroring the menubar's combined view. An unreachable + * device (powered off, off-network) shows its error in place of a cost. */ +function CombinedDevices({ usage }: { usage: CombinedUsage }) { + return ( +
+
{usage.combined.reachableCount} of {usage.combined.deviceCount} devices
+ {usage.perDevice.map(device => ( +
+ {device.local ? `${device.name} · this device` : device.name} + {device.error ?? formatUsd(device.cost)} +
+ ))} +
+ ) +} + export function OverviewContent({ period, provider = 'all', @@ -657,6 +676,7 @@ export function OverviewContent({ overview, onNavigate, ready = true, + scope = 'local', }: { period: Period provider?: string @@ -664,6 +684,7 @@ export function OverviewContent({ overview: Polled onNavigate?: (section: 'optimize' | 'sessions') => void ready?: boolean + scope?: Scope }) { // Gate secondary spawns on the app-level readiness (first overview resolved), // so the cold hydration runs once (via overview) rather than 3 parses at once @@ -680,7 +701,14 @@ export function OverviewContent({ const now = new Date() const rangeActive = !!range - const animateKey = `${period}|${provider}|${range?.from ?? ''}|${range?.to ?? ''}` + // Combined scope shows the paired-device aggregate in the hero KPIs, mirroring + // the menubar. Only the hero totals are aggregated; the detailed panels below + // (daily chart, models) stay local — the combined payload carries totals only. + const combined = scope === 'combined' ? data.combined : undefined + const heroCost = combined ? combined.combined.cost : data.current.cost + const heroCalls = combined ? combined.combined.calls : data.current.calls + const heroSessions = combined ? combined.combined.sessions : data.current.sessions + const animateKey = `${period}|${provider}|${range?.from ?? ''}|${range?.to ?? ''}|${scope}` const stats = deriveStats(data, now) const periodDaily = sliceDailyToPeriod(data.history.daily, period, now) // Daily chart: contiguous zero-filled calendar window. A custom range spans @@ -715,15 +743,21 @@ export function OverviewContent({ {error && }
-
{data.current.label}{streakDays(data.history.daily, now)}-day streak
- -
{data.current.calls.toLocaleString('en-US')} calls · {data.current.sessions.toLocaleString('en-US')} sessions
- {saved > 0 && ( -
Saved by applied fixes{formatUsd(saved)}across {applied} {applied === 1 ? 'fix' : 'fixes'}
- )} - {localSaved > 0 && ( -
Saved via local models{formatUsd(localSaved)}local-model routing
- )} +
{combined ? `Combined · ${data.current.label}` : data.current.label}{streakDays(data.history.daily, now)}-day streak
+ +
{heroCalls.toLocaleString('en-US')} calls · {heroSessions.toLocaleString('en-US')} sessions
+ {combined + ? + : ( + <> + {saved > 0 && ( +
Saved by applied fixes{formatUsd(saved)}across {applied} {applied === 1 ? 'fix' : 'fixes'}
+ )} + {localSaved > 0 && ( +
Saved via local models{formatUsd(localSaved)}local-model routing
+ )} + + )}
diff --git a/app/renderer/sections/Settings.test.tsx b/app/renderer/sections/Settings.test.tsx index c2d1282..58aa987 100644 --- a/app/renderer/sections/Settings.test.tsx +++ b/app/renderer/sections/Settings.test.tsx @@ -145,6 +145,17 @@ describe('Settings', () => { expect(localStorage.getItem('codeburn.dailyBudget')).toBeFalsy() }) + it('reflects the current scope and reports a change through onScopeChange', async () => { + const user = userEvent.setup() + const onScopeChange = vi.fn() + render() + const scope = screen.getByLabelText('Scope') + expect(scope).toHaveTextContent('Local') + await user.click(scope) + await user.click(screen.getByRole('option', { name: 'Combined' })) + expect(onScopeChange).toHaveBeenCalledWith('combined') + }) + it('lists providers from the real overview payload', async () => { const user = userEvent.setup() render() diff --git a/app/renderer/sections/Settings.tsx b/app/renderer/sections/Settings.tsx index 17666f2..f3af6fe 100644 --- a/app/renderer/sections/Settings.tsx +++ b/app/renderer/sections/Settings.tsx @@ -18,7 +18,7 @@ import { REFRESH_OPTIONS, useRefreshCadence } from '../lib/refreshCadence' import { showToast } from '../lib/toast' import { ToastHost } from '../components/ToastHost' import { rateLimitedNote } from './Plans' -import type { ActionResult, AliasRow, ClaudeConfigSelector, CliError, CombinedUsage, DeviceScanResult, Identity, JsonPlanSummary, MenubarPayload, Period, PlanId, PlanProvider, PriceOverrideList, PriceOverrideRow, PriceRates, QuotaProvider, ShareStatus, StatusJson, TelemetryStatus } from '../lib/types' +import type { ActionResult, AliasRow, ClaudeConfigSelector, CliError, CombinedUsage, DeviceScanResult, Identity, JsonPlanSummary, MenubarPayload, Period, PlanId, PlanProvider, PriceOverrideList, PriceOverrideRow, PriceRates, QuotaProvider, Scope, ShareStatus, StatusJson, TelemetryStatus } from '../lib/types' export type SettingsPane = 'general' | 'providers' | 'aliases' | 'pricing' | 'plans' | 'devices' | 'export' | 'privacy' type Pane = SettingsPane @@ -97,7 +97,7 @@ function ConfirmButton({ label, prompt, onConfirm }: { label: string; prompt: st ) } -export function Settings({ period, refreshToken = 0, onNavigate, initialPane, claudeConfigs, claudeConfigSource = null, onConfigMutated }: { period: Period; refreshToken?: number; onNavigate?: (section: Section) => void; initialPane?: SettingsPane; claudeConfigs?: ClaudeConfigSelector; claudeConfigSource?: string | null; onConfigMutated?: () => void }) { +export function Settings({ period, refreshToken = 0, onNavigate, initialPane, claudeConfigs, claudeConfigSource = null, onConfigMutated, scope = 'local', onScopeChange }: { period: Period; refreshToken?: number; onNavigate?: (section: Section) => void; initialPane?: SettingsPane; claudeConfigs?: ClaudeConfigSelector; claudeConfigSource?: string | null; onConfigMutated?: () => void; scope?: Scope; onScopeChange?: (scope: string) => void }) { const [pane, setPane] = useState(initialPane ?? 'general') return ( @@ -113,7 +113,7 @@ export function Settings({ period, refreshToken = 0, onNavigate, initialPane, cl ))}
- {pane === 'general' && } + {pane === 'general' && } {pane === 'providers' && } {pane === 'aliases' && } {pane === 'pricing' && } @@ -128,7 +128,7 @@ export function Settings({ period, refreshToken = 0, onNavigate, initialPane, cl ) } -function GeneralPane({ period, refreshToken, claudeConfigs, claudeConfigSource, onConfigMutated }: { period: Period; refreshToken: number; claudeConfigs?: ClaudeConfigSelector; claudeConfigSource: string | null; onConfigMutated?: () => void }) { +function GeneralPane({ period, refreshToken, claudeConfigs, claudeConfigSource, onConfigMutated, scope = 'local', onScopeChange }: { period: Period; refreshToken: number; claudeConfigs?: ClaudeConfigSelector; claudeConfigSource: string | null; onConfigMutated?: () => void; scope?: Scope; onScopeChange?: (scope: string) => void }) { const [currencyNonce, setCurrencyNonce] = useState(0) const plans = usePolled(() => codeburn.getPlans(period), [period, refreshToken, currencyNonce]) const [theme, setTheme] = useState(() => { @@ -202,6 +202,7 @@ function GeneralPane({ period, refreshToken, claudeConfigs, claudeConfigSource,
{ setDefaultPeriod(value); writeSetting('codeburn.defaultPeriod', value) }} width={92} />
+
onScopeChange?.(value)} width={110} />
({ value: option.value, label: option.label }))} onChange={cadence.setValue} width={124} />
{ const kind = value as 'off' | 'usd' | 'tokens'; setBudgetKind(kind); persistBudget(kind, budgetInput) }} width={120} />{budgetKind !== 'off' && { setBudgetInput(event.target.value); persistBudget(budgetKind, event.target.value) }} style={{ width: 90 }} />}
{budgetError &&

{budgetError}

} diff --git a/app/renderer/styles/plain.css b/app/renderer/styles/plain.css index 64b45c5..f82172b 100644 --- a/app/renderer/styles/plain.css +++ b/app/renderer/styles/plain.css @@ -512,6 +512,12 @@ td:first-child { font-size: var(--fs-body); font-weight: var(--fw-body); } .ov-saved-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 7px; margin-top: 5px; padding-top: 9px; border-top: 1px solid var(--line2); color: var(--mut2); font-size: 10.5px; } .ov-saved-line strong { color: var(--ok); font-family: var(--mono); font-size: 13px; font-weight: 650; font-variant-numeric: tabular-nums; } .ov-saved-line small { color: var(--mut2); font-size: 10px; } +.ov-combined-devices { width: 100%; margin-top: 5px; padding-top: 9px; border-top: 1px solid var(--line2); display: flex; flex-direction: column; gap: 3px; } +.ov-combined-head { color: var(--mut2); font-size: 10.5px; font-weight: 560; text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 2px; } +.ov-combined-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-size: 11.5px; color: var(--mut); } +.ov-combined-row .ov-combined-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.ov-combined-row .ov-combined-val { font-family: var(--mono); font-variant-numeric: tabular-nums; color: var(--ink); } +.ov-combined-row.err .ov-combined-val { color: var(--warn); font-family: inherit; } .ov-hero-split .ov-heatmap-bare { display: flex; flex-direction: column; justify-content: space-between; gap: 8px; } .ov-activity-head { display: flex; align-items: baseline; gap: 8px; } .ov-hero-sub .neutral { color: var(--mut); font-weight: 560; } diff --git a/mac/Sources/CodeBurnMenubar/AppStore.swift b/mac/Sources/CodeBurnMenubar/AppStore.swift index 32c9cdd..0ba383c 100644 --- a/mac/Sources/CodeBurnMenubar/AppStore.swift +++ b/mac/Sources/CodeBurnMenubar/AppStore.swift @@ -271,6 +271,38 @@ final class AppStore { cache[menubarStatusKey]?.payload } + private var menubarCombinedKey: PayloadCacheKey { + PayloadCacheKey(scope: .combined, period: menubarPeriod, provider: .all, day: nil, claudeConfigSourceId: selectedClaudeConfigSourceId) + } + + /// Cross-device totals for the menubar badge's period, used so the badge + /// figure matches the popover hero under combined scope. `nil` under local + /// scope, or when no combined payload for the badge period is cached yet + /// (cold start, or the peer is unreachable) — the badge then falls back to + /// the local figure, exactly like the popover. + var menubarBadgeCombined: CombinedUsageTotals? { + guard effectiveSelectedScope == .combined else { return nil } + return cache[menubarCombinedKey]?.payload.combined?.combined + } + + /// Refresh the payloads the badge renders for `period`: always the local + /// figure, plus the combined cross-device total when combined scope is + /// active. Combined is best-effort — a slow or unreachable peer degrades to + /// the local figure — so the local fetch alone determines success. + @discardableResult + func refreshMenubarBadge(period: Period, force: Bool = false, qualityOfService: QualityOfService = .userInitiated) async -> Bool { + async let local = refreshQuietly(period: period, force: force, qualityOfService: qualityOfService) + guard effectiveSelectedScope == .combined else { return await local } + async let combined = refreshQuietly( + key: PayloadCacheKey(scope: .combined, period: period, provider: .all, day: nil, claudeConfigSourceId: selectedClaudeConfigSourceId), + includeOptimize: false, + force: force, + qualityOfService: qualityOfService + ) + let (localSucceeded, _) = await (local, combined) + return localSucceeded + } + /// All-provider payload for the selected period. Used by the tab strip to show /// per-provider costs that match the active period, not just today. var periodAllPayload: MenubarPayload? { diff --git a/mac/Sources/CodeBurnMenubar/CodeBurnApp.swift b/mac/Sources/CodeBurnMenubar/CodeBurnApp.swift index 1188eea..f8b2958 100644 --- a/mac/Sources/CodeBurnMenubar/CodeBurnApp.swift +++ b/mac/Sources/CodeBurnMenubar/CodeBurnApp.swift @@ -467,7 +467,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSPopoverDelegate, NSM // is refreshed by refreshPayloadForPopoverOpen the moment it opens, // so a closed-popover tick never pays for it (#647). if !(popover?.isShown ?? false) { - async let menubar = store.refreshQuietly( + async let menubar = store.refreshMenubarBadge( period: menubarPeriod, force: force, qualityOfService: qualityOfService @@ -489,7 +489,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSPopoverDelegate, NSM qualityOfService: qualityOfService ) async let menubar = needsMenubarPayload - ? store.refreshQuietly(period: menubarPeriod, force: force, qualityOfService: qualityOfService) + ? store.refreshMenubarBadge(period: menubarPeriod, force: force, qualityOfService: qualityOfService) : true async let today = needsTodayPayload ? store.refreshQuietly(period: .today, force: force, qualityOfService: qualityOfService) @@ -870,6 +870,9 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSPopoverDelegate, NSM _ = self.store.payload _ = self.store.menubarPeriod _ = self.store.menubarPayload + // Combined-scope badge total: re-render the badge when the cross-device + // aggregate for the menubar period lands (or a peer goes reachable). + _ = self.store.menubarBadgeCombined // Track currency so the menubar title catches up immediately on // currency switch instead of waiting for the next 30s payload tick. _ = self.store.currency @@ -1023,23 +1026,31 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSPopoverDelegate, NSM if store.displayMetric != .iconOnly { let suffix = menubarPeriod.menubarSuffix(compact: compact) + // Under combined scope the badge shows the cross-device aggregate, so + // it matches the popover hero instead of trailing it with the local + // figure. Falls back to local when no combined payload is available + // (local scope, cold cache, or an unreachable peer). Credits have no + // combined total, so that metric always reflects the local device. + let badgeCombined = store.menubarBadgeCombined + let cost: Double? = badgeCombined?.cost ?? menubarPayload?.current.cost + let outputTokens: Int? = badgeCombined?.outputTokens ?? menubarPayload?.current.outputTokens + let inputTokens: Int? = badgeCombined?.inputTokens ?? menubarPayload?.current.inputTokens let valueText: String - if store.displayMetric == .tokens, let p = menubarPayload?.current { - let out = formatTokensMenubar(Double(p.outputTokens)) - let inp = formatTokensMenubar(Double(p.inputTokens)) - valueText = compact ? "↑\(out)↓\(inp)\(suffix)" : " ↑\(out) ↓\(inp)\(suffix)" - } else if store.displayMetric == .totalTokens, let p = menubarPayload?.current { - let total = formatTokensMenubar(Double(p.inputTokens + p.outputTokens)) + if store.displayMetric == .tokens, let out = outputTokens, let inp = inputTokens { + let outText = formatTokensMenubar(Double(out)) + let inpText = formatTokensMenubar(Double(inp)) + valueText = compact ? "↑\(outText)↓\(inpText)\(suffix)" : " ↑\(outText) ↓\(inpText)\(suffix)" + } else if store.displayMetric == .totalTokens, let out = outputTokens, let inp = inputTokens { + let total = formatTokensMenubar(Double(inp + out)) valueText = compact ? "\(total)\(suffix)" : " \(total)\(suffix)" } else if store.displayMetric == .credits, let p = menubarPayload?.current { let credits = formatTokensMenubar((p.codexCredits ?? 0).rounded()) valueText = compact ? "\(credits)cr\(suffix)" : " \(credits) credits\(suffix)" } else { let fallback = compact ? "$-" : "$—" - let formatted = menubarPayload?.current.cost valueText = compact - ? (formatted?.asCompactCurrencyWhole() ?? fallback) + suffix - : " " + (formatted?.asCompactCurrency() ?? fallback) + suffix + ? (cost?.asCompactCurrencyWhole() ?? fallback) + suffix + : " " + (cost?.asCompactCurrency() ?? fallback) + suffix } var textAttrs: [NSAttributedString.Key: Any] = [.font: font, .baselineOffset: -1.0] diff --git a/mac/Tests/CodeBurnMenubarTests/AppStoreRefreshRecoveryTests.swift b/mac/Tests/CodeBurnMenubarTests/AppStoreRefreshRecoveryTests.swift index 74d0ec8..d4e8b27 100644 --- a/mac/Tests/CodeBurnMenubarTests/AppStoreRefreshRecoveryTests.swift +++ b/mac/Tests/CodeBurnMenubarTests/AppStoreRefreshRecoveryTests.swift @@ -202,6 +202,56 @@ struct AppStoreRefreshRecoveryTests { #expect(store.payload.combined == nil) } + @Test("menubar badge shows the combined total under combined scope") + func menubarBadgeShowsCombinedTotal() { + let store = AppStore() + store.suppressRefreshesForTesting() + let period = store.menubarPeriod + // Local badge figure and a higher cross-device combined total, both for + // the badge's period. + store.setCachedPayloadForTesting( + menubarPayload(cost: 30), + scope: .local, + period: period, + provider: .all, + fetchedAt: Date() + ) + store.setCachedPayloadForTesting( + menubarPayload(cost: 30, combined: combinedUsage(cost: 75)), + scope: .combined, + period: period, + provider: .all, + fetchedAt: Date() + ) + + // Local scope: no combined total, so the badge renders the local figure. + store.selectedScope = .local + #expect(store.menubarBadgeCombined == nil) + + // Combined scope: the badge total is the cross-device aggregate ($75), + // not the local $30 — this is the fix for the badge trailing the popover. + store.selectedScope = .combined + #expect(store.menubarBadgeCombined?.cost == 75) + } + + @Test("menubar badge falls back to local when no combined payload is cached") + func menubarBadgeFallsBackWhenCombinedMissing() { + let store = AppStore() + store.suppressRefreshesForTesting() + let period = store.menubarPeriod + store.setCachedPayloadForTesting( + menubarPayload(cost: 30), + scope: .local, + period: period, + provider: .all, + fetchedAt: Date() + ) + // Combined scope selected but no combined payload cached yet (cold cache + // or an unreachable peer): the badge must fall back to the local figure. + store.selectedScope = .combined + #expect(store.menubarBadgeCombined == nil) + } + @Test("switching to combined resets selected provider to all") func switchingToCombinedResetsSelectedProviderToAll() { let store = AppStore() From fd1e02319cd7ee2acea212632366d20157e04037 Mon Sep 17 00:00:00 2001 From: iamtoruk Date: Fri, 31 Jul 2026 17:19:48 -0700 Subject: [PATCH 11/21] Replace recipient badge with Codex + Claude banner --- README.md | 2 +- assets/open-source-recipient.png | Bin 0 -> 506443 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 assets/open-source-recipient.png diff --git a/README.md b/README.md index f6d04b6..d5a318c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- Claude for Open Source Recipient + Codex and Claude for Open Source Recipient

diff --git a/assets/open-source-recipient.png b/assets/open-source-recipient.png new file mode 100644 index 0000000000000000000000000000000000000000..8b33256afc84c3815f306d8f013441622d61ac99 GIT binary patch literal 506443 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

;HJ5P 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%0Dw<)-b#?Xk|MmXsfA+J1p#fO4 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�^Bm%kcCMAkmLLgyT7^h5HFQ;9}qGn{4 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

8_1EFEj9|pa6(HOjLQh|I8vWmY^IKl_ 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 z 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¥IdPb6CC$ggE8D?K58p)sv~Y>V%~V@6 z<_F|t%LM!eyX2E>&88Ehb}R>F=3!ikuS5i}1YgrOf7m*DIDiQ-2S-82eSJdr1Ce#? zYr09Q+f{bLc`BuAYTP6QEMCx9*x0gPeG50wsk0FZl)JHSzY7fgix}9$t=%g>wPs#g znb6-tmc5S-A&(PS;iBteRPdAV>O&A7CX=;fIRf?pv+taP79~BrEwvyQ9JdOhZe1g0 zB+f=TZ=ROoIgX%}!~S9OQk?lPV)A6Sc0<^Wm3nc*U$qFFoC(vQ!&1<8q+pm_^T{v@ zCE`+&ddasqEBdA<@d{qk245!DzBo76g)=FUG}ndE!P~ev7LGB(HrrZ=ymtQLg$k~) z-J->P%do?x%%%*(9fp;FN+XHYdB58y>L`dQwY=J24g;&&4VJc~E7+ZA{lbsSZ=Ea& zNi3#ina)yNK91~lBZPCoMBpkrJH3{qKPpV0^)6vDlZsb_c;WlWKqp_nJF6`x)x&8D z^GaV0XMCi*H^S)(ZkoqOV%>Zlt?GRA;N%DB&cX*>>mDj%WPz2oQ?l1}Pa>jLCfZlb zE}<~FmyX&+NhfQQDBWakxmv6W`tb$3H+=&VG*vug(tS)=MeNpmLGm37Rjm@4aY{fe z=D3Cgb0XecE)m`hSj0JBx4%4#HeIr;;p#-*TZ41RmRPc8$~fvzjkK1^keow?<42-0 zkVX++D{vv^*Ygu7KUgMug^gsqMvVhGF4zaoCai{y8o+?L9~j0?AQzv$CN&@zeM6{c zX;Q8l7(Bi?1X`&Y<3hu(29rU9rj5-aI6+i>x#o*(Tmj!`x;YQ!!Plj`T z2@!!GFeh>JYlB^R)Dg-;1U@;GZZZXvHQ-Ykx82!HvqH)UdP=j0hql2hE1hYlp#I2r z$nXeJ9{Y3`Ur^P{mJrQV;G&rZso0}zuR%xB0Or;n@T!$v>R>!EAp4uA|rSO zbc&HsUeB>`LFxp|Q|PJ=htK_CH;Pe*qtuOAo|>2l=IW$5^8@BAm}Xhd9t`hV#ggP4 zj6@$E%(NiP`35Y{x!q+dFOFqm2-_JIcC_*5CrgIF5?1SwCp(E*$A~dN%R|eYpn-u2 zJX7ZDCU-46SRrw^4lh*50PP{U8(XH1lzO7i!;D{gKIZ%I+#x06I4Lwq{Gv&*ZuK+= zfv}8XFG=UVumN;J8-I=X&?O>l4j?!f0!NU%xj8Z24n4Rf30reA36W^kz%*n(*~lhD zROzMHkl0w`=l<)DM2>)@VQ2^$RpE9W?tOk`9m>HdyB-e9z%(G0-xkn`lt*d^Aoq*U zKl{e#U+A9%r!=%11OuFmp4iU$IF6Kib{>?=4tYxk_-v$tq3(Txo+V<%$)-SKQ144$@p#4f#W}Vy%t9iB#xRadA*^Vph)x*-Wb# z(bm`h$2PV4=NhHE6x>Ofv(30Y)Dz1Hwt;x$!H)ta5_GUp#EA)wl=02ZAU|b&&og`i zxp=+83WtEyjLUPQ#s8{EPKj9n=`N)fgc)GA>#hp$?x@k~A%&K9p6yDht9pmbAEsum zrGt$)Y2oP0wwazIHHbrPd?=sn{?>C94R;uR#3M9HUH@Xz;M}3i*0etV79ELKC{pwi6@r$u@fn zbw<)mteP- zlw`i#XVcm5WQDQ(ib-EgbF!f`h)|p(2@r_Ol6ACa%;F?ie%ur&0?#H6wsqa+1YJ9{ zzqL6>EIQxXpb-!rsBvu z+|6v~HY43^CnEXt>QlCebPK^HShn$QQh25t{BFO|94BBK|25|R8UNzi4Mz#f!xS#+ zHbRG_;0DMNG93{9$XzM!hejDB+Td_uNU(;YhMwLrE^-?gbB?ho7Z1PBnm%DB*BHEl z*+<7*;7thDCpbZJ!oi#Ynq~aTagIZi!SW<~$6xqkymHw0WLpulgR6MD5mF+KW$;*! zV}=4acmP?aW$_G&ap@!$_ce6No8-;k_u)~5*>NiWSt@zNX1H@@H4zGs(Lc4o6sD8l zG{v68YcNUEU~HI8H1NM1OQ9XINxovf`SBCvorqCz*EA&4%CC6e83V2OG5BG4Og4|e z=ToeY+q=T1PAEKwo7P5g+J4inxRdm^n zJASN5eN$crZGAGzz}a2Hsd0RGi)l_pA3wMu)0Q`4*xIR83D^kJCEK_siE#HyAS#A= z0?y3VaX8lLOm@e8?X&)-!eDfOQVD-Xb}q@Sh0HV0#M!0`Lg@8oKT;Dx1wj_!C9T~U zU}Eev3KDQ?0P=ZZU@mY1VhJTVc~A~q;aDM^wqQrD9$g`POq+WDiw(4{PgB3$cVzzd z5oD{?PyDGOy{mHSB6NSdc0yAo{M{xg3x{IGzYH|uaz|E`16leB96J~5s)%Lkv@V9a z1yx73dWD7z`vyTXAo$T2%WegoYg4)h;$jmNy)tYt=U1AEVwhN6yI5!vperr}+6Ef? z6U(u${Pg3p3;~?S=4O~kVSQr*9+g)lJdS_Hag8s3w-^;m@&yNsB(~v@us1Xa&k3&G zJzIP?#z#_7q@rNEF^CX`RN&)1318|;Amcdgm*|j;|BvBI4B4Geyj1ID?oaV1Er?jh zFJ>AA2r&UTz~aTd`K~k#A)mfP0v;dVeCM9Dei*|}n%FtjwsEaT#u(g{d{zRk+gnNN zvD_P9oNIRPtyQ!34K3s|oi0)B|$zlFr`ZFb9OtYgXRG%pdx zUctMTXIE4aNXy}1-N)pK#O`-_j||-W5E9CTO=Na9hqjocYeETeLz((7FBMlj`( zmsE_Uy(Hd_gpF0+z99SL3o^G0z!0@THxUlaC?F@kk6F zVCLxZwaz!?>J4hTlPw0K;kUq@Yn4N}QiT!MfRT5j#6-6HY6rbzN7xdv1Ezcu;R`>E z9G;ElobD=jc3XJ()j;}*D>XajlS(5z=RzBI9{(-ICLIu$V?y{^V_H5s^gmH4uGS&J z8*1#JQxG)CC@oB!y&>J=cdmwAHW+I0_G`KyFz0Jog_OQxA9`@>l&cK+BdpZutgzQ$nsoL65*Lvk{>uo&%z zXu_4v+|0n<%h4mA-}!dq{o34RhG9Rwmcg`2?TvHHJZ-^D4@>EE@J^KFi_O`S@%{~f z#HRzNEJvSpPVksB+45&QtBKJKm;x4Mr^7{q^lyfuw0T&p#xjt2!EtLcq8ujhe(A^V zE{%G?rUNoY0MJW{RwkG~)#5a|S3puo18gN2H#H6BSR{^S%+%Xy>1v^Y7RPA(c1cX+Ol4IA}AI3WX9a08}789sjQKRJ8r zflCMe{zZbTC_t3PEXZ_3$Yi^UJR(%&S#Hcr{bqlFLoMrjSChjFh9mLr#TAQpEdD`) zuYL9ftY6}<`Tqb80Y=lI@j1W3nUU}H0qrntEIf$7)Pfi-FmJTkuPI{3ZDQWvUMnN~ zAi-}cFqZfDNRH(Zq_o1EnY<2^tav=c&X91jqGRopnIJ(yoHGEWa3mOGtz3Ql4F8+L zZ+-6vzxbVB|Ln^j|Ir`%7XAit{0rIqYs7mQE*?gh(PW0)=eS`ShvqFt-hteKE$6ak z@d$}DZr%&PG~;^6;1+|7e2en}ExV`6vaHRCQRixyjvTsl{DieV4E{ERCTf&gda$vh z8Ai;#TwP(z+W-8FLmAf1$zoszPo2nxE|O$f@x{w@ku4CXl5d-1=Ah8n9AWS;uL^y7 z)-aRAxfYmKfWASBv>Tz-_FS)ng}pX;*;j{`H5F(RTEofWH-+Kb%C1!MBGcxM9RZp5 zxBM6MG4)ZXky0IcCxvnS9AXj)e2`_y7}!Jaz`KF0=xtG?p`L8}*2Vd1D^4nDbMluw z>Lv|OOYt()stiKp)&M!MkostL4&8SM=BcqM9$qd(;bY6}_-bd&t01PgHY0PF@9j-g z{B{l`p$#r?qOj2k%=PV#H5I@xDN+2kGBC#ZE<0e`<6SY+?G3)w7Tht z#t#5xnSgUzl!o?(h<{pWyW>n03Ei*ZCWVynZpPFev{L*}0vT#nS3)&i#vdh|8y zVbZz>W7(!(;?yhdu#Xb~?L>}lD6ZkkiNzt>(+PR(CD0c^aN7p`BV(hFkty-DGEcgv zO~f$n1Oyj%cDrpzgdJ~R?B@i5NUx2sUyhOV=z#19r~>1VeMcXEsy;fyyTkR%aF>CC z&eO(~d2}{5a@##8xL1(tM2U)SxMrSpqg0wdM{R0rwIU}XIZ$Czyym7KRkJq5B`hJP zbnyCF+r7^T)X*BZn4T&{*&kyP*{Y9-N?ky1%h3miQyRI;i_2%BT3{Sb6r@<)Xsu@- zA2$R}T?%MijTjZ}aLd`2D2(IMJ}JeuM24F&?0aIhIx)01hRFxVx0yqH!cWdaq^)lE z5ImQkiuPhsH__l`BB+Q*Kzi9n2>I1VH2m?%A)-pnm%OG+&Lw)1dZL60LCMWW=LAhg zSo$6w=ixg&TJHrKr|^wnA&H&hkaIz1JKp6wY0pft1dF-s$IqF69jJ_Mw~?=bMWqvf zole8YEFxGB$emOK>q&2S88GDig8)b8)RE2+N*0rAb-h09(S?ow1RJJmtAX!4ehm zQd6xaNs~X7iH9W@fc%td0=I!9wn(t7}4?cLy@vfq3yutoO$EMFcUG&>R)#f z8KNZvzWOSBQtTGMmq<<=LI2hH9_-b;h`eCvg}9VH0Oh8&Ut5e{6LyXY0v-w-vk{o@ z1P0)~o*i&JAR&0$`6)3}iFL^PY~(N3`%EeXl5mYeBRBr|RFg8tzbas_gk1351ia92 zdie%JDn1~7;IP7PD*Uc5zW9CL{>FzN{NPuA^LupT7r6a@WnOWT)>1a3<)dJ&(bq+c-4;gImS=UPh99x11TX-#OVf;kR@wdGLU z?M++EGy$74l0rP~%9_dfiI-PJt=BkWrPOLKfa{SdwJ4-5y|8Z=j8Y`zxewtf+Dori zm33>pO5;L7ykT(&E0f(@Cb)P`RV3|U>ysk}iFc(i3h;t3WwV-KRvkngpH7e_PvO=g@ zf9!px9+3d-ZC6ex~+G2KSbmefi!`2PE7+t?@uxw4j3jSrVkP01csbnb-gy3 zcopgl3SY^bU6e+Ky^z(T0WAn&_!4W(hG`Gs@WWQu#ir)g!|`Id78~_d^Ok^pfiBe` z)8k;gr&t*kS(HzJRz3bNsW8g@62)}e)FfpG7z_&lhSJnw$Xg9SUgjb>6N@Pj|!*qXlo1)qyaE#3XN}(+;KP;GLB{kK+5r&sncvFjOLTklnGL>NV z_!6L1)2{{HyhaNbO|tOooihDmSgU3jm%Jk!KU|iWVNIU>K6=D9{D8?dDW<0f#t>gNi$2bY5I~vgc4abgN72GmkY7HgeY^NEh;yA0f3nB#v7+S94H{pFNgywN(K3OdHf(;AkgLRdTN7 zo!Ft_!eVkC&RAE{Rp7yQRt4%Cl1;v&;Xtk|K$hgPi{tVP=ioqzR`7JZ`UaGV@;Dh- zU-3?L*&Bibw~ibk`SuYpd=?aRMXuyuVZW+dA@8OamdESCyOx=9sP!CXYJbO1+s<)5 z{v5m65)V@&==FTa>k3$dQ*SZb8?_1?vTQBBFCW6b1QUDJGwI=+00JlJz$b;ETxBP< z?hPZE=G~z1WVsSh{TM!dApJZj)1Z~ZdBB35UHn~)euJlqEH!{Ia6T8LClTkL)|1X0 zEeX65>~J3ViXjMJ3=Tn*({L!UdR!oU@MM9+{-D>B3<4@ z*&F>S9cuIP4-ehl8x=d8O{4;edhq~(P!X^kUT;Bm5Mq$ls$OgM`s@XrVpEH}I(Hix zG1uB4+fNc>rXftzYeg;py8=+sg>c6tA7pWJ^(?g{irP7#MB%LTcT6st)0r8CRaqzK$-uv=79j}+G!xnC9v{H^A4AZLul?M=`mKNQ+aLezPyF6L@a=E?+OK}Mf8l)j z5UwzBxU$etk5IZJ2_Qnne+>~_B~_O!eIZ;S_L)46XW@eInZU#l&3vX-j_F(TWh5UZ z?FXl>D+ZuSz&KS98yDa-FPE6@ZEWz~zSB&`oIurI~wjS?DvNqDzDEk$Cf; zZ@&;Ebu<`f%IZSqNVdZM&!qnM0M zpi3kGmnHEI?}PBj6ZCPrb4~0y1A~XYNc;pN-sco>>Tqiox@{1U#DnDoRk{v(phUyI z!3(*^@z5?P8QOq}71iOBj7jCBhqX}$Z{mu3AZvEVUQ$0}5uJz$1O)Sm^hDm#NEYX9 zlwJFQh()jy2z=iGlH%K4+w>8sTOH3Vud>cm*6~Qd&1S$+kbr=86`ITLgW*?|@F^^Z z>62u@HhD1ZPqN-av9un}srd$LS8Up%Y3VsW*`J}vqy)^!Gux1?1-AmP1m_`1Qo7k@Q{q?6@N|N@YlawXc9jPU)gML1e-bY zdy>$3zTn-IIcz#(nr|K_eodYX{tjfld142}#PGzfpK&XDU^6r&f;ipbbrDO>mrfWk z=?H2J6Ep7hDuR3mq8`fSxO(OwrnAsrcXOVxIqLIq@NLW zA@2~M$xC%{dCMG)RI3oRb0CMq$UAnNCJR3@m$r7MKBp+| z(LY;0{Q!Pb&_2HaK*!5=)bK7d@V)F79Zc5&gK<)}E*7#r!jw1d=H4D2hH^!jye}Ds z!E1<~Ilwkzf*Fd76!M=(vx>Gmax>6#6LlNf8zLT;Xh~r46}2g^Q#9ehca6YzhiADv z^+=&dmdW60;mLnw=ob(McI<1<_+6?P1iQ)4iQE+eUs%mlH)*^es}ma3ItRvyjP3W~ zC{`Bb8jM`S0e~*M6Sg5xAh|&Wj(C8q&Yn1;=p53)C__#YjdFm*$?g(Ewlq`lV>uZ+ z@zKU(GC5o3u@Gyk^E-C`GLasedH(|ylKixJxSKVd>(cdvc8p6rY~GONoN3sf-B6EK zUB&yE{)8lh9GZFKT$DEO1b61=j%CSWb2~W z7|X9ACr+4mZwytjB@G*lo{JAVp2Ty^Xy=Cq>|n|JlgXOf^C6-AAwE4UwFB<3dDS9R znc|i>(y3R|Fh4Niz0$caQ^w>XcHWYF00k5w!AgOe32By&&b_k0LHwIbAp3AH!5K4~ z=yqmPEsotun$_fIOa%{V$o3A}1PYM{(D^Hn^*P<%R)l%kK=$eZ5VhMVJ?U&(v7a@x zLa|TT+#8-rZUd$}f!~{Xd!~qcKqvxlO^@XjAf>S6IM64>Q=!oJibr+zfii_UH?!KB z*ypAlFlOavoK8pxHIFt11otML^cZebT6NAKzvT(w%Doo1|Et>Upc^sdPkGHidvyZL ztqM;O9A#6X_A+W16Tnv}zOt&H%a)*AWt*(S!z>7I-%kQC!1(3IAN%$<|Lq_B;a~do z-~73MiQiPfG3O8PRiCCzEF*9HYWA!GQXab|pU768@Wwup(4S(Cw&-}`FfALp; z>reguZ~ws`{^rm8%5S_rG8Myk1`ooF<}3S^L`K%&uM*8jfnKD1(KTe@}?!C)ua%%$TwDE>}$4kobT!_BGSTdv4E@=#Tgu>F;1Jn~vu&#>3!jFio zh_XZBC)P2(H*%i~dZvv{JwbD@`L3C3;wO-*1sF?;-C>Fc?wu<~Wm2#U<@x>ZlS z2%By1GKo$sW+jC6b_gYk^V&K#&rSxe_iE0GfYZ(kVh#q{Jbiv6gxK}&QRv(@>oSh{ z@O2i~ASQ}^&SEx2=kZa{U=9W28avbDPDBT=1HABcTqAa85|17rBr^Nb6xX8xOzkE- znY!b)9~2c$@mDl34ZnkHHPwK$ynTo}nF4Z`Q<%6y`Ie%M6m|ITG(*OT7WKQxsXV#QdN*xYB6*d0 z0^nPXLz?LuCc`!m1y+pOIWA^le6pPxEC4C!L<%*zCdQMUnwG7@;Y+T zek$Pv`R8Z(4)W^KE#d@pcJ-k~k2lZwM%7p{+4z)x55Os%KWL=3-}K@&(Pk5sI1?A6 zRXke+<`>>kkIx4ia~~hlZq)@zr8v*)%Z(Bo36qmVM@m&BvTPjJA+A`(o#0c%$;n8N z86=@i0iy*G@va1h3Nf$++*vU{q>RGl@3Iccxn5ufD?rl~Ad(m6qq(6YUF6Mh6BSF& znTzV3_R}!cKM~jG$k2c?2oC6#dnW%1B`nLOP1D*-`L4!r?@hzJ5i=4tblJCA3$<2< z(`QgFJ}OjtxM`RKoXqNAV5RCs?lx>RLwh|rn=ybxzi6MYA{T&OjvPD6G)=9 zSq3Wm#`N2l^7FGmAl;ITsXFZ}sQs#0k)kEERUFQl>8TC#3S|hE`&5(!8t{Xe^%V(O zlGh^rGBgZCM>&xRT0a}IWopAt5kI^z=Z`xN#z)J0DO%}U4+ z@f+BUxmOG;k#Z!_wsYPCQf!j4%(oY-e_UpErB7#kh)7_cizkqrtGc+43J`^B6inVZ zgxa0(9FfFv4}$kfZfBu=IqC5-+3$0(kw;!bMC;p23vZr-gbGQdMa9iCI}>>FDoEIA zU(;-?K=%QDahHfa^W#9yT~QD;rctQ;f)hyL)7e*16#@~{8mul&a6UwpCh zkf0j?zWCW+{qE2F%U}JA|IQ!$lRy3=fAbf9 z75|zA{#}ccf??OU7{`?zL8<(Y<;w`<2z zDj`szvR9(+HbeQ}K%PqVOnu2Xv1bch!rTF5z5uP>8*64 zpOZ98lI2Ui675zd;WR>PJ$ll6A4+fWl_hxEP8uV+L%|=nNyp7)nzO6i^Ak(5tCQ?T z+ni#QP;=Z$lS)qOBFlWYdc^qLHaOVF@-SR8%41@w+LD0c(#{jIA&RR@RmUqmU|#jK z>WmB};9vh*HA?dq5*FG^=x@PYm=evdth`o0Eez}NxxNvYgF@yN$`ylj4YydgTz>!n zKmbWZK~z_v#d82t`qAU|JSs)%}XK&z5fIh+XI!+1-ko!`==UM!={0q}A?F;_eL;dubU zGME1xESI4(g{zb){7M*%O$|USF4=72Zo)GCv?w*CF{mQEjIH%*3mv`?55&;Hm@;Xa zXR7Fzk>Qg8p(pX08&KDFDAo?86TfDMv^mlB6}r=2SZLNZhIM>RU%Jznv8YAGDX{xV5oL9& zMn*T^tkIUmJtXnk{M#R?%w5d8km>+zN<+XhPq?XC@Z$wwvwKM)Z*r|}oHDBo0VkLQ zy5JpE0}u}U#`DgnkNRyB^prcGSa7b231a)eI|W?1y2L z5C)nkVUYpZlEYG?eCh+;jY@=v#HA;-g}*)2a%=&u#>(dDjlaoB{%!I^hy<(8G2%*Kdo-;06wE>|?0}dSJX#5BfQgrpRc* zYv~2w8BBDOUMns(0|Wcnug?R-+n*8#y!x^k$@d~xZCmEqV`ftVIfutk7hy7H%Y*R3 zUYuB)1+~|{11wJ!(%rB3=e()?glJ`*oHh~X?=sQ6?U?V7CN`r8BKk9~b!o)-h1?Tp!;ZuE8D6GDX09vzW*Fbf@2u z%b4hG2}bFMGO;qA0x-K7vx-&G32_FtqntUINsY*HOh`&@j;Ro*ZGHyfZ=PREYtSxD zDPC2j35-w*3mF2pc9tb1s^y<;rq`WzfCv*ibqRAi!P4o&50dIgJRVxo@(5X)7BcB3 zCG_XZG{g%&R3~_1dB$g<$yz@=ai2$h1ycT2C!vh@8y^#jGXmH=i2{UWQBhn(pC@cU47)RQ4z3KcgocFECLfW5KQn{^X6CEl-97Q2TXk%fNk^Cyzk`K@ zk$saF4%0&hAKJ5r3@s(6WXL6R6ttLvS4iQB>*1(*b9Rg6t5T{KT@!os3j_|NK3p>^ z*n0UqKX*=v8B2qb z7j{_Un}q1(*mIQ0#BTW#8^5jevUskDU-kk#p8JFh7``)C!)-{}sc zyF_S&kYgeoBbWD7pox|n+dhVFN4SRc>|D!Z6%%%hot_!Fod&UU7M=5Fe%B% z5rJ=GBQV4UKNw83Q^P4`wETMuVrPT5hCC=x<(!fSKfXlOE}YCs_dJ>@-gV zFF~$lx(Cp?Zg8{H>Kso+icFBvsr*p3E?NXRIi#V)Cn7UBa5Jwo6blo6AbgS6x1@4f zMBEwl2DvlB12oc9Uq|W=^mz=_>SlOs7WhoYlnY}!3C&8k7ELm(W|+K__C!27X%61` z0EhAzIn%2{rrouTnKUvY*XbTC?@3R*KXRTZZ{DD^YhIyu8|=3TEZSP;+g^vfT4} zKBGb~ey-1NgND_EB!$}rXrVGViz|bON32%4A@&^LzFelkt6>CApfb+tF=6y-=be_D z5FU)4soucwysuc+aqk)<+}F|21Tpxa5(lDkK|C6n#IbfY@=aj&F>>-iGDDLdm)lr- zRGMZ$gQ>1;CUcO}aB&!F!`%Bl2Ms_=DyIN5wgr~RdChwG6m@hi9(u^Z2o2dHaSshQ zB)eoim4PT3mP$5f(kQ4jGKv=;57yLR{5gO zZS_YPC}A>_?0}OA7W`N$I33tb4)Fq$Y&eM+cxL4C*Uro^Rgj5?mGvAcxx$LUJt}@i z@8{zYbm(hd*r9YTuxiC5nBem{vq8ZAFfo88UPz$jok*1OGuQD=w|t_!EEU-l^Ku)4 zt$d+&SX1vEThLdA6>L58oTxbSeeG*M`0(YAf9vai{tx}wcfbGH-~HKt@%;}Ue)xBN z^9Mip5-}`srO5O=CjL;exd(jj0#o?#L_FC9T-1FwRDi2E-3)h+U1%Pv5X46E-&EkW zo(%ODWn(V^pnvL7S_Rb9(K&s3Ja5`~9>8+yjVWmG#2NdH;3@eW|5o#7AODYE_|8B3 z%^&=Sf8PNo$)4%fF&pv+fk^e&W9E@8`OWS--c5>;oH*vy82qxzg$f-<-o*K!- zMY>7QERz?_%#2=K!VF*<%ujFgoRW73scJB!u zG^ciV;l|#{y&C?r>AMx8yW^T+MkE;)H6c=#aj=~1)*Wi^$K9SQjLkcSO(Ls&Ny%@+ z4%8bW7tF{rThH?@py5aG3p?3>BzTw$&lswe7mfi>Qc>{M@T(u2|1e#ZFLQe)&Sl?I zrE0FJoarZulhGrHTsCvR=)PJS%|+1va`F4i^U?Tle`VxgBO3zNekPQ|un^c9V{fcH z1H{T)3r$EHk`dMK=ygYM)3L35h9uECk86cIr-Z7_MQ1rU zzuD})c`Iyo6fs5|S)qZs9!A+p&g^htK^mc>v*KkR)}V&GVI29@MsaGakBSMV zsO|Dxy9Yngg69Ag-YkKht*^*~N33!=#CF|1eGRa_GOG$ei5}0R`lp%`%UQfiG;K0O z58Pqh(%4(qRFKDlCquDt)bx@A6o>cWRhm1;SE_BeKT~&G;(2hv z`ib1{%`Us`Xtwr$)?|In)Kq;NXH&9#;2+y~o-v-0r#QxTM=Sye{CIH61sgJkL5n4O zrn6h3JsBM+Uf)IvC#4-4m;_VKu_FH*Z@T-v%w2-$Odk%im~pc9V8dXL`IJhaI&KQm z2=l4i{l`0pRI-OE!DQlozhOj0_5$K3i81i0@SMo@I5ioh}*E9 z%xhnQPB(>}45kXjBTcehLo?e*u3AEgEG*{;c|5mDua2y2Q_z*`QwwHNu(_sp!AlS^ zRp$N#%!QmnUnfL}bs`93CIsNU5aBlNjuW&Ca9US4TCDdZj=HcV&CNqzU00ci$V=+P z1_y()X8k)4rZE52ib=xBxzeE+qN|Wu((R@-60S{C^NeSw7|J^2Qq1Ftpl!NZf}|F{ z8&zLMb|$b9qxCT|?|c9hoCjo3r0arU&y~3~lBe0F=8)Em(IJbibv-s>g=D%9+xFf) zkEbUhio6_#5drjQRwOlV?<69uq+_J%ipTdqv&KKD@ZpdC=#TuRKl($Hzy9n$ z{p@R>Q$X2`^NPPfqCWUB1jz4`BpS+0FgUJU7|#Ptq56@V!Pi-v0un`Das^b{q{F|d zkc2g0y{9?4FtI!h@@EBf@n$};5-$H&+|*LX@LVZ|!e={IEWZK$^2;y3_Qe-}=bwJ( z@Bfou{!jkMzwz(>#P9j(U;gzEA3o%}Q=ln~zwuDEL-0o6akf8>T=~1}FVT4_NwG1S z8_aU%+MASu>E@~Oxe~x0pGLU7gda}M@kOfxFy9FR7NS{&pW`EIV++aXOkN0LgZCkG zd9yR40Y;kcBsR7(#`U$L`H{V8PF)Vi-EPoNrIzm{<|CWi-b)hWNdmd4rvWLWAs$OR zsFSxqX5nEg4>a!7lw7FBc81jP0KbHj&k=|`Wx@pbpMadI7bdZOy^?`JdiRytI6iGnew8vaZI z|Ak1^$hrHYFy3?#TDS~tOh~#k+V|k8zSHfVxt!ct0L=p(Flvs|p{AOFRN=Z#STiJi zsPD-M*)3A60|`G}Vy+~E{mj=Xq@KwEa5vgBk+MNG1MEYQB;cG3gV~fjuVW@)>l_Kh zd%>*pL8`sxbB4Gt|CC4~Z4Jxoen_%WC1ATgHE094CB zFUyGlsiC0K6r*xzRP<1_-?WbV>810^1%Pu5k`P~DkyQ_pO|vz{B+MO`krp)YSWe8y zIsyT1noth>-hHXI9MYU$xST`>0m?r3A-xC6(`yDBXu0xp>MhlCni$D|3qOb^2sdfK zjrf@8*R{0)Fa;4j&7bOEaZ(3^PJCV6;~*C)s~yy)rBNP9A4n$2Lcj@^@0ow`S6d=p zktRR=SM|dmAsJ3y@u;>^;ZjjLyv8pBisWteT1MRwgDyFAOa%jbnpvg8UilZ)qck|#IbsFf56fWfZe zsgjl;e=w>y9P_*jcqGwXNyBc;}a%2Y*ChUN9ZLXt~U@kREOV z!(~0s?V+R!F+Hibo=PYIS}eFLos3AcqCC|O5g#Fw&xK8C)hI1&>hYY}3n*v|!Z*hW z_dz1V#R9-!)0G@aE|`-4u>w>RhLG1}{ee5s2l(S>XoK zX#nl+ktR}M?2}*#JIBRzCd-+pseJ?o$x5YUWa zr0}LgIr?T3_pa@EkkTOzu<1RHQk#Hf&%6cNpoUBl0YN|TTC9#Ph6ZfYD7|tO$#Gg_ z<1DRB%Uum4R->Ur^})1?+4K693$cMe^^EBHEvF~cWh2F=<5C59f(2liV+x=9r3n_I z*3H=`XL7MNyJeWtumbB`t2&osA0tDq8RiMvq-I%cNq8EATqksrYNDE$#cvw3@H^f) zFijQK6@ElgR{S*XGOL*9eH0N}UJ~wJD8Po3k_WXp_{m1SMj z#YjT*eNa-5H2Vw$re)P|jYqbXQW*PoXJwv`AHVqgYv2F)gU>(v_~(D>5B#wo|Goe1 z-~ENZ|IdE)>)-k&INUC80F|jI^Z2y6Hk9ack<3Lx3{x4zl9t*Sqj!{2D8JrZ>X_}> zKsBoR+_T2%-&E-0Vq_3yAujP4SX?xZln@p_WD+Q=Ok&{-fya8LJpzRI6dauKO#I=) z@A}5qf8jg7`M3V>U-~P5=BNI%Kk*0u`=9=$U;ps&hraRohcEHBPpvkR2U;i9Bks#sTTLfvcc`P2=~x}`gtOK1=`_&Xxb_LGkRwcAP-_$5=`)tz!h~z%Cm$7jZj4so_;Oz zLn;!>G2VwITziIikTdh76%bfCl@ zI)V0)b(GDjB?N4jro74VAYsVKB7)hZ^JvekJGXjZJqU+v?Y^}Z>soX^0!Ym2f<0uQ0U6*JWW}7*Lj9d84R*2thH>=*< z1xhkcMI#1lIxp>PzJVyr-H>fp1cR4|-Qjl!;3_LlD{=n99d^#knPw?`I0ztSJ;9_~ zjg_A_e%lZ@@nbJP4T8j_q5P?lHfdV%B2vP~?$F^K6fs3Xw-}RxT%1P2smdU^%HTA_ zH<)pEyjqlCL&Mhp31Wi$&e18V-Y?Ht9wx% zC*rJSKMjpA*AT5_MQ9i1-FN_=8HLgTo3o(_vw?Svz$Xn=GGJ{_Xv9hP{@RTd;JT^n zs$1zUUlvTO1a5?_3VDZ?FghOMX>qc4#-%NJmx2_Fu;NKN*M8MNmqVp=0>O{a@^f@X za4h@i9b^t!)iNbH`_<;U1KQa(L-i5AFUgN64MlUCYH#TRnO9VEDYve4vmIN3=+ ze&LMz>Qr?5-Uinq}ni z49R4mK^RzQ#8)s3$JXX(V3`!e*$sGz6yQdf#&@BYyGj&B zVIx!v7z8G)P!cVadGEU#`VeNsWfXa7;mK4(UlItb+#-{U`*e=_7LWiA*;949Eh}?l_h!YmQA{n#phTb^Ko;pZyR2;Gh4O|H1eF z(?9c*fBbL$%(5=V=$zaCtwpw(0 z;Dm%cuC2kY#4p|WRG&8kFiVf3-}PX!ls~L1){>T5#jtAh;pBVM<7Z5hE&EJ|3zji5 zfD3%VpP5;vja;^C-U_U0Fjgv;$*_|}wU1v7O*+R1=_bO1tL?&+Ya44npY+ZI`&V9I zIAR9rEqMBN%Ts5biwWG~V3giECDsd0c`Q%r+u5p(&gwoFHkwE+}C5RC1f-2H)%>Trz?FKcMhH>7nnfTPKxA~9O&0Jsq>Uy6Dt3Z7fp6@b2}A5oyn^HxvvChv$I5RZi4(!z>Lw}iG<{V=Oe-He zfaFx2$0-vr%Ic)2L^<$@KA&O&r~pF&xIXa3!YCJs33}jP3C9rP_}ss%4{r-4-Br(U z+oQ5Dy_gt5+=W%f^CGo-3c)g0TX_Y`M=)7lgQjVACG-{79A~tuDvj!uTGMpq4Xw8o zjuUcb$ui=!em1J0Q`W{uo;dc`FfW?n0SNsst@wy+z@SHQxr!Sm$F*PC2 zzYLob!r*TbXC^Hz49uV`v^yod3NhXi>`|f31Ps=?Zw#Wg1hPt_jckdz6qAIQGg-gr zQViVqF*;7;$~pkUt*is>m!R+Z%w*)?bF1}ggN>(#!k$firN!6 zIdzyObF)3mXE{A@2edlpn0Fga&uq70VNkDo5F^q6hMXCv3EBHd+HBsP_bGgsj$WlE z*)a`@lVqp3T-t^^PhCfy&__9F*23^fC@z&YwH?AUYf6G9_CbZ^$|R%{r_4k)+?tj$ zsX(dtunUi~E(l^9Zn@(FGzBnTUsW%*0oJ<5M$%^f!e>160x3F9KN{ia(P*GlZGJ_< z@HmWF`_OEkdk|G*9cD2>u)dSzGd5`~;s&R0>Z~}87TW}t@=$e4(_bOa&0;9}N%5+a z+yE+}1SBUh;pR{=W?hBS)Yl8b`Y5^BeRc$#a(DQ!E~9EFx}$+`MPFwE56ff1r*;6E zh)#!xJS8vZV9CR`_N3#QMqNv5O`jZZY!Zcrl=y)o$OFgI-%}7V#}zxXTv(?9z8&+)6=Um_~B9l(~@-2k8@=F}0<%b-`c9zWgc!Cvwh z$(Eo!5Z144ryj?YXnXl@D(vpGiegsGhQSRFsVV7zrVENsBl*+R10kL;TQEz*$i*|E zr79K2QU@cPAHMwT>)-s=-}-jP@(Eyt{xZHV$AqlU-7I106fuvZUHbM$B`6z6Eoi&dNFjy;#!nkfcD~$}vswBM(D)fSE zwE;-b25roqZ_LasWkj5#@J3ouE9M+!?qCiNJJb?YUjyB_mYknD2hjjGf)V`Mhf}nH zMZZ@1^Dqi?O!-N%=0RxKZJ9apX{SoHV%K!jpv)s%;b&7W0)9p1 zs$BN@tv43W`BU@1HKWgAA@13y+6`oU)7s)jBHT*h#8-~-S(3NE#c*$iUpFxFeH z4+a@R!2v~ba7n8t!3in0kh^#3wY*A&TWGWqw58H`&{d`(ZBlBA#Ikw8J1-*KQ1%4V z!O$fOQNrf7Ai!)-<_tUL3vuBO==4i*a3tzL=s4=6?c|sl5R=dP?IL3xTfgQ>qE;{q zL%RD6b0iZ*OR06 zHRj;KqLwnkU+4unu_%Q0otIA8XulmbAXEfG5PR@4#ole;5=j9HZdave&UPQ9%nKeY z?2=p#bZ&Mq2{qieqD7O%g|MTZWW!Pw^32BN=l=@T;*P%#&zyK4&RHVvoH3>%ky6e( zRglyCd{+gl1yU26!45~C)-dC$#jBOeRShJ?dc8Ki_9GGyc7m5lcP+N;`<(PK?wu+J zoM1yTapv7Sx#e;EWCfJi(J-OJRT58l5b&SRyY>Dy?GUY0WUoG*Hu4JImxvdYfR!5~ zGm#T6SIePWb01-(5Ccs|ECr47mO~?8W5;6V2Sb`MgY+Dvqi64dWJi+8m4!0FQ`M}w ztUPMtNVwo)X@ob3_P3XM)s7NzbaIhg9-8>hRa$gy^Z-fl(VZ48`J8U`SSTtns?1Rp zA;Jj(7y;qMFrQSIF*%#o9#D%FC8f3iDGEqWvs@e0666^)$T-hAQ6)|Rvp6ZaWW?=n zRVXcJidu7r!brR0Gt5RT$wWmK3ziDna4k+7q+uixp&xOEB`Z*kJe5N?WzuRrvS?+R z!JEQ-=TUHAe9#(x0XT1WgyW6%kfcYd1oDX;PC%-|)QYi}z+Oj3Eql~CL-Te-{jfGO zOq*xVq2wgZiE>z!-hkYj;3eaTnH#EZ*gk2Zj7*7-C)Y#F1*}-tL_JKy%kZPH#$^eiJQK%NIXIt> zR2mh*?ZGvv>79x0490|XMe<%1izxVxr^M}9qtAGBF{@CyP z;lKUA{LKIP%fIpMZ+{Dgf38hv1Hd%zj+2$i*d=DA^|3wCPP1DRpauoN>;)NY!3fiA z1B*%Rgaj@NJ+$EhoE|Lizy8SHm%GE5d1YTHHA(9v7?{?xYREQ>CKzoW3*cA09Us5^ z@`t|h#jpLwZ~wLb{b&BlpZ%%->M#EBzwwX$$^Z7tzxItE`sQaJ@i!nb#$}6cwgGk+ z;GABOUkR#f3~8GLY3`VsNkfbEGWyyVxN~|Id&Dc`&U!$nk5N?DNu(-H{HetXXo*X2mw5pH9vm39q9u(V8u0ybK-ssvn|IoC`|@%n-9gO z01tdm1O zN*(fgPOL2#awXi&bh_YI!0Fctyr-g>2eCfZI`!1pqE=?V)C_1_2cF5&gZ;!xjYMDW zX~XPy5G%UFjglD-`EKzPSBo2h5GY6DSq=$ZUJ%2nYZLPHz=90~=qwi_!y|{Rt4B#7 zth12-OE2P{L20FH*p;wZJ3jY^!X_eh>C;tuneNJ$Pam-12YSQ&+)W(t;LeP`6THvG z%jW{2X5@rH3bbh6J)@KSIPCnU0P2|4UqDQ<%|Cew7=(C8hfDmEVDm7GyawjZEf{#? zGcMpd7|VJ^I%tVHz)R|`hYbjfQh~$3nfo9Y0sO)>zd zm9$Fi2CZ^wcCrRe=tMl=NUqWxkd1j=tf)n~re{Yd6DMFYh?JR?T|nOshOm{4ZY>-8 ziG3(1Vu75Ew%M`bnX}`(x;M6_zHIpTGkw0~CV6mT?IN~!0|XtEk9w&v9@oUuw9QHs zFYH}Tkrz0Cw(xvdmtO2Bu{5?%TaO)pQPH-smVtJs2GtZkQ9FJ-YeE4ze4L%c3j+z# zdzrjg`cqOsaafg)!-U&s&i4sdF?vSBz09)#WF@9b&>3-d?W}C|ZDFwtolbi43Ihmv z@8EVnxtwD`?hUe=$&}Gc>0IlAy2)w!NxTnm!Cx_kr!DKaBU08hrd0)VRqf)$GI;id zpcZ~MAq*${ej9bwHAfENf4?-OaF9s|(Y&1ueLJ#TgwPhI~ z4VQBh9Ns6ysiOu93EFyGUG{&DVypu4+wqAw1j`0mKA)*beZ0Jho(3N_CpeD)*M;rf z-~1|K>Qw1N*ar-TsKEq~{j!m?#Ls~Q+KrCzqkr`T7=mmWd9By+2SDTq!&Hmhl8j)T zwgB}&nnxRc!q=?*VJvx8%|T7+gh<7Od6z&osu(5a3YI*c#-B{DLn<30hcSBg;HJ=O z^s%B@Bqft{7bs#<$bmH|U>~Vu#G+~Z?ZMarYdz%PHPN2VtC99HQHH?4@Zy}7#kD@C zR5JmLN#JBTA!9Og6XdMf_~|=TEKSB8#>_aJrXBa9Wxa6Zc{n@3+OL4mKgYil{PDBz z|KLCR(?9W_|G9tbANoG#taKFcC?OUg>= z)+v8J&WRJ@gVju@$W?Fk$0<#Q^RA7!|N0|XH~UroqZ{>|?L5qyUANWN%O28I7x?%b zM6$9lxUw{U`10eozV)rY{)L#iFur3SSgdp6i*-1x1Qrio@+NPcTjR>KX#l57_6>b4r9C z$G#@sFC%IVdVG@LkP`r7Bu$Al#vEy*?NHWZ%Zfda%}#6HBm;;ZuU)8GYCQv+$w(c` znY5_H-s%8zE}1X-vk>AeMV)2I30b>yfzOTrq%$psb5k&vXhR9(o!FuWFe$9R{xv>g zC(@90d|&{{WF9%;D$fv1>Rs~xN7}o_?6zIyVS9i3Y9ITYQ@}PiV@Pc7AxCn}11~)MfP^tn_*pu6HTsY=JYDcd3EBNMVz!U2Kl zED+@SRmiGLO|qyHvO+Iuwrrh?i8j10@4uP|LtXWewo=nfos>C&kMtU3p7l3vFtjjPbwUCojPjYL=& zE)HLG?h)0`nXb7s=&wjXA#_$mZ+ew&l*5J*%DYtG7yytV`!1x81XJ3zN27u;Q*VRw z)xkDFwtcrSSrRtY%FI!v+ELnpM^hN;qEZj+X*mRfTk-t#=q0E)al`LURDOET>oVtx z=7_h%sXXT8q02%j%aK0Noyaj-Ofzk&rrNl5IZ_vAS`Z8`=I6O~0{2Ks5zrn3W!P&K zxB@7MNX>0jAWpzd=w-W)jSZ)QQfO;r3N~fmUQ$<5Fd>|oEr%hR2}TcQxFDbrLCO&V zTm~g0Ue8es#9kZT%jfm#sS_N-DD-&LH~n17s^dVl!qBxyV{@u*J-~|}vCO1wv*EH> zLtnbq4eh-T)x)v7Pu;VPC%INoo@J+&nBBtjz1EZHWiUK0eTJRuRbc8F~99#Fk%iJBMg zq}EHi(2p!#*CCGJ3dP_QHbVwwik#klgiRO#Dscn$WHhFAmwr4mL^O70=4XT#HeyQ% z`^)hxPysj}zW(jZN4VhjYr$-uEWWthlqoCNC**u3El>(SNoEd?3HT2Zx-f$I^v z@@=KiS7hSI1fW`}_RF=N$1SD-v_!~qu2JuSHdXiAfNg^;c#-BvWsk7xcBFER2h_4# zyx`mSREQ@P?;OS9qIzf$KpuA?5RRiodL`xSK!0m-=Q8 zdfbEbs%X;c>s9Rapky-Whg5ytg{ad*jo5qZ=dH+ThfjY zO+`3+NkQ~%hb^0aHMT7)MB9D~#^ksP_ODx~Re=Y;LEFrN`gs(a9|M(Qd=pwGEAg4M z4BE*ma$Vik7U{vks7DYAF>^Nw)GeNbjtcddT-=bwGsCU3J>i+}G!pM1j`?>&C{352hhKH%+K(9pNniuk`jme}qZ-nl0gR6bmEAI%0tl zSedfioC<%zi8RADI6J+ma1PE(s7c`XKbi00FDrchmH*@KfAD+0?rs0xd*1caAO6IT z{_0D2@7%k(fq#mM0u{}7Jl-6R^U@^!zH8k3b^EDC_Q5~6vLt;QqAFcj(DHp!M}KXH z8I#AX8OJoVHX1llFh$eALvk}?#N-jKkZ_RH%G$=$98qN+t*cU$@gLD>n@*rj$ z$n3>ABS!WR5c-8dUUiy0>?gnfB{rVxn5Ecer*pa$vOrujiwNO}{RGHKQ(^0sAzqynBT8UMl21Lb zwoH0?$&No$XRg-g;csJbYx%>V_E%Q7ezr;CCT zVetXJ=EexW;3{ujn_ezh5duCcpgO4Ki-d4gMvV_?330eaT@0*Mj@vlZW+4=+m0)Zo zWELC?LuFmj7*33mDNZ6+nV7DLXhJoVI!;MdujYic22-$^G|F$#5*B0YTQG;MppAhk zii8U#bt41AXp=o0J#Kw+#LRVD8)+0V*2#G11)8_VIBKG6wD59}#Rzq`@Pq_I(^OX_ z642ucA1PQT_h7f;z%w~#Q<{_fh^YhAo=VtkOCfMo#{g^+`&ugX=>bCf&L2bXUCo^m zc_*WlyVO>w6e+)yG6@dE4)Mf<4MZwtSqLw$#x7PvdTKC6ZMuFCSrt8YF_pDwkTRX- zvw=%J5r;G)B_kY_U|>`!Sn-Qq(F#U*g>)ChP$iR8QUhC(q*+ZRC0-_ATE1vkh*iAb)EcK0NW|3icm!fgC5%v zS$?==%Y56Ma3wN?&M3v&ks8g^gjYdqJDU)SNSdPUX{l58?A~?tJ3;459$r@YsV=^e z91uQob7-4u?AFB5<-@hW;>6S-V44Q7G+10!vSPVGW%Z?SC?Z+vlLK@4g9z}VU|hY{ zh#$fnO9|mt23uu`*(nH$T#u|L?3qLjXJ~wjjyE+7P&ss62{tpRN?-{h17CXrRAhxr z9VnUjjl1+|1<+J9%s_37;Vu`r2p&7cx2!xPVNA-YBl25L3kJbTgD|BWMie(36P?wvu zBC=r)eIq5YJ47&E<1S1vwYPqY(X_OhU1t|U7G|y)rG-Eh&`AtW12wml*n9$NX1dfT z*o2^lN}Wv@CN~h!i&Rqv!Pd@P8?kwY=uv=$ace30)H%l{F9EGn%)LpIr;;yqOL=#f zgt@;c8@0Eqsvu$>&;!uI!Dm6$pj5zB14jiHMpUye-k0u`;NBm;&xyuuQ+O)G*qnYu ztfIsWSAjLBxV4}#C29yWpQ0Q}`bkprvd!A(SW(udv=+quUy(Gk&uMaYb|f_l=s}DA z%ACrHz$<#1O#`F&1H=gp!)gxVn1q z=<)5RH~#fM@YVm?yWjD1zy6uO`42z*_~{k?f8d9YpRkNg+EzY1^$=C+K!Jh4ibIk$ zwm@fh*DJto zrDD)<}r7BfhUo|lCUUneR}u)z4yKJg)e{O-GBL;zw*tuZ~gR#KlSNX zAKkliTT6x?E`UeDAy6{+KtnS2Z|&A1FFh?p^=cM~0$HgQqf4R6I!JciAi@w?{B^BG zqtMPpqHR7WkS}-80H&Z0uK~sBD8sxe0ldt#2wcLNCl@dS6q*E+NVPJR#_*e$1A%>Z z9I+nNyiulsIRXYQCUmf#NVi4^}$(ARy0KtfH#0&ZR-a6{uO8q+Ok;)RlKZ zY*FfR9ceijfdx0&)7cWZMpJ@Jy_Vx znm&VL1Sg@C&|Kiy>#_t$LYZ}~CwZk2#brZAOy08q+yxIvhIPLS$wIpo$yOm3x=(xC zy{ItOYYnK2_e2RYK;Fh;kj_;$i@+IAd7X)E;|%oJuGlLTuMDFSm8bJ%@U%>#;t_?? zPcIm2imQK5rZp~}=xIk{Tr(#Aa7{NR>)=ENpUPL)>r>|m(ZHf~uhW)Qh1~EBxy-Di zLeH-w!-39t81Drn%NhCw&^vgnx*%c^2p2FfXHsS3$t<1{>$%PrP!Q4#r-zr8 z4dR;up#E(ZPRU;TyKkQGL@B$*00Rf~x!qbHV|n z+B!HsB=dBv3W-)o@WWDE;|gyb!@3UxU{O_=2K}Je;7hX1d6rbqn*gLMtcI&Z`dlB+ z{PYM+?v+x}Z5)kRoHb&2g+{hqC2Y2=VrcWxmL9;~;~rQlb##GLy-h6y<|;!5qefKI zi<8-8!60uFozw#(aOU8397g)Q!>3w!x?fR z@1qE&hgSeHo74F*Uhq|>5|B`Vz!b=_iYe0)Q=?T`TZ#}@(Q+Oxji^tSeh>vwAQ#ZF z_NEjB3Z^r^XqtznG<9{AnFiZiN@MJrJQzRoqf7LcLSI#tSS+e(IhbGCL8WWxlnhXi zN|Skw4#_&G5gZ%{1v-{MfgMydG9Hm|vXy}&h9w+&Eeu6BEe3>|S>c*3gGozj_eUK5 z28`q7Nf_A>5$5v5*%TP`m=P zJdBN0jCjC@-_6Ma#&lpvV*VMzF+K7ct;wJvrB}}&xkOfPL|eki)Ut|syOOnz%`qm- zUB8D&B=K)%aLp|%aM{JwDjc$_9dgr%LXla&=bwreruDf2&A;pglRPVA8Qe&6&5$-) z%5nv45$QrTgQ?Ox490_}(DXW&Rhc{r%U4DQ8NISAL-0EVkegkTemcnswxQ_~eQ8NC z>JGep#n9lLPl^k4$yS!c0(c#^^Rg$ulVjJjN0JGzG?Urm&lMLL%k1fi$S`!SgGkwl zVTMJLul`G4_twAgC%^svy{jL7?=StWpa1pep1b$> z@#EfsWK(P%NCDwr0VN{GNf(p>q{*1Xei2?%@o6hF_obNlLl`I!%V`|o?p z_y3`<{n=mn)PMW;KZKwB+`E1C1pk{e4pObBZ4oDX_>~%{<+VlUGE#)qTlk8tKv@bd zw71eA>&HHsvY69-&3NS!076EZ)N)NI&9lX#LUxscQxgejlB|p;2+)#jz_cQ^;Hy85 zyY8&#Lp^8%k{FKtR0VBYuA?b?12veH1_3*Mw|WmcDxeuRyGwUt8OnzXkLJ^i(}IDj zhW6FjUn8wRp}0f%aE#g4!*YwdIl2BB8KSJ4I9t+@*!iSQ(5V zen;U<-PD5((A+#Lv)qiA6f~rJGXp&qXL7-E(Rt+G1WyffY&MB$MazcK0B@y9BP{qm z`d&>;E7ml%NYp0G$*wy$elX1^iK(_)3rV$Zv343~qb0kBR94$n&ofbkfOl1J_%sYi(lrTM z)e72cT4Rn|qn3o2V&hmi4z`0F_mS`)QtuJ1fwx5+GFGLHU^X|4CcF?(F?DTEJ!3(e z)!}Av7zDNjN;rYzaMWT|&&pl%$q-+q<8&{rf~)W~pQDH{^B@q$&Md`YMViEwMA|5_ z3$(2OTtQMX%qt>b+|BAitix#)Xb8294i;4i=Dl#>e4W!yeYWG^T)B^3(++eNua3k{ ze8vztm+u+EjAPY@WSfwkps0CO*isqv0ih%f&@HyXQvYV(^uXbPlE$t2GWmd&EAAX!Ez&9kXVgW0}|qlQ{44 zxDOj=m0F-Zgx^z|hi2Q;M&A4(-yI7N$?An6{c30Au}?6~19P#o9W#LV-mooV#c126 zRSInle5)=Lt|Ww^wz>GlYZuOiHk)P?yAErDWg1C+QH5g+bCe*R0v?+MtkvQK5*fx9 z5e!>MhXo$84S)zybdWhtJBLlZWE?B-D(#iJ1f^h>8su6GyFH)%Aj9^qrC@a(Ri3mH zz11kTP$ zF;+X9Is^CvX`Yrou(bIUnoq_606+jqL_t*5q-rZ|F-^#vomwzUn|I2~{R}i^r z>yB)$ZrHeG14tDV*Q#dhmT4e5Q3!I`LOoeQ8a=(q|5E{CZFgL;Wl;vpif*G8(Y<7} zVhe_A7;{Zjb)I;d2r`f}A9NH?*>V*eU4QiG@pJd@eekmn{`z}=@tt4#rvL1FzU^bb z`MJOGzK=h;b^rF27UsqkLuNX};>kf_tPa~NPN(w3sY_6{pzd0DQebUdXw>?X_d@XD zn-;~$YmFtZC);+f=d6~YAuNb0EO^ugL~L^R;$bk*9FlAGM3yxb{j*P9yI`dxF(ViA z9H!N-Rys1_uIF4mORK3E+G?4#`JxfTer9mIHV<-+>wztcWM)T>bL%Ix%C$ z2CuwX1n?&X>(T3&Qq(kdu~F%O0pD7*KuQ5>vQxy;M+=RR9P;I}i{6pJq;e4n4|%JB zoN{q-UP1P1J~mj&m$YkcE@mlaj>FEO(oz;*!t}#|&N|d^PFOWALQ+X9E~KwRwX5a^ z4LwODIz4m5HYqaq05f{2Fo!bt9lAMcq7_V{DO1Xzgt)?*l>+P8WREn}5EIB&^^~J& zmr`7lvCA#hz5;^mtRM$PDih{0@9Pe{swsR0R*;gfiQFh;WvBpN531(=+IrHG5Hr;R zR80ccmUZk;wkO9Lng2}Ina$xNTH&$+KJ8P+ta{4k((-0%R*iQ35v*0{hC8BxlM~}k z-D3iPu7If%eQR3eiWaA9TuCHgjHRtWy-j5;n7yU9uopZnS;5>81sy9JUtJc4vRnA7 zfpv+-Vv5mdcBx|E0YS}@U5%++nuMUGl~dOuAV`RYRVxVdIw+u5BQswB7(!yxMZ_3M z#pIl%s9~bL3QtBNT zLP6HaluWuEM?)v6#Nvq6e2iz9x9%hWEUk;5x3#q~Mo?fJx>^c5t;)y+zEr8;QbZ_8 zbf6@@@#Z$l?S#*MGWfd<(L_{OEgojXDVwh1f65%?Pp?|8AzzREqkigI5fNfEfus6LI(Sg(JNXeTrDN_CL7md z?=1t;k)$*Q13E~inYy}i&_ji!V{z782Ih4dV}@4{h4sqNbm*i};Y z_CTpquS@`lH7gv^y5Y8%OxA5)5|VMrJ|vGHm*gVTpq@*{J~4Z%3U2G0J0UuEm28X% zv4g=;y|W=yd;2SqL~crG;Ul*2H*a2Dz4Gd7FW$ZNAAa{Y{lIsA?N7h|qd)u;?|bRh zCvST0-ow{kvu1R0ZO6!|y5-R#DjAVJ*li_K5ncPLi7>XeU4XA(lc@L0&d;Djh`#PSi!VoI$;#R-=C#8P4&syG;L)D!^%YL5R4cf_x1<$Rh!S3N zUftUxlAg4UL#EmfciuIQ=Rt5HT`}{?txQcFns75hp`K&v-(0mly=Q0k1$2@%XLm1I zb{p29b7R<37}I#V$%MmL4s^%{9DmbMSWKzUo)IqE!-Jz@iW%^}-xXSdb|n^e zKpJ0*3+A&P7D!@hqH9%zNu(p^+2+}z1l}xK8!ynZTkx7|l*gX3vAI0p(2J+DV>C)} zKnG9H9%VYSV0_-LPQ1sS<)&@i5Q0?H;aXE;Fq5J5mA9^N*P(#wh42$Zp4s2!b6hPx zW^(Ccl6GVHbL~J3{JQ~dVf&u7g%Ck4O@(0<*kqT3Q^?w8Ue0J*%G@4hcs)r1e3?EaNCCm!~`z;J|#{R2!*S3PdA6N9k}*rInTvLvSJJ&|F$Q zTe#KMh8edYYZMJDxs})qYy9&vt!mNbE#``55XLhOQ%5B+^Q>H~U^L%8_L{e|U9hbK z#z{`qJ0Yiw-htc`7l-ArT}OBbW5$KQ*X)Anbr`DlVyXF-d-Xw;+m~&`0Ev*C&>-;| zmDjdmr+7sPuF)#G9LE|Iax{+l-qJ1G>XpnwstSk8$Wl#F+9(9F=8hJ=6A=)GHC&45 zD=f?9feTEU#A17#yX^pDi;hj;d^a-afD&ZnL4L;oJ2TGlg!dS6j3Ca~F3$$?qQDD; zVTv_FGd^=bktF1AQS%1&=yclH5T*%R&9&-ko08A zvU1Qn#u%!H%X|#ShNJ}6$GSVM3;{2WEt=$YY-KL<;v?{6^H;pD7BIpY)W=S?M~>N) z1*%P1V5Xd%Q3srUP$hfa$eX7oR@b6(ESs9}#t4YLCQGmMb>J=lw^%DQ#yl~*6#zxn7t`tEP~kN@}|__a@b=7)adpZv%N zKK|Sr-|*@eXTR{%9R0nIFRUN6^Hs(A$!_7Xp zZr;3m_g>1-cS?kaTB{lqSq`~_VUFahyf6h(7+-4uPC&80F@>*+>ltefSXIfSVi>=q zRVy_rT55fIb^8|ov7^V2|H7aABmco4d)F`h@<;yjANl{@`_a$dzke5hPvI&5A_?*O zI}1@7A@eKsF0y)4VrMSq+Yh0y(l2^ep?=Rx2qcke&|#vkY@DZ>{qe?0 z31CFgelaQ7c$c!PU5lq_%C)JY7luuIB90ro*MK2Ya%s$s@dV5?gq2VZ-wnLfD8=Hq?8vqA&9o4-8%QD3ki4>H?9i1 zhT^2J$>K|ev;EY4l;C9Z>C|y{opeC`Ke31Fi(N*&?4yKrxnC@}o4hJ0@kIMi*jHD>Bxl7(6LX1y-U7KO3iAC(W4*qTaHB ztL0p7n?u!SiAOx$Acqv6=QDy#OmsNV-zcY}rOvy^ayzmIX1eGu{JLo!c1U+NP10WJ z!o)B%sWiH$yn@?4XBJ{>dgqSTp8JF`FfEAvG@Sov_dw7aL5b_R^s zT2F1Wx*57dfTH5&?*_^~*1k7fY1#98<{+QFtJ{7e)LJ@q2QM`+O#+Mu%~nFy6_N{5 z(~RiKwgpl%k$Dl`OpYz@rlh#ERBN(=w~C0e9IY&KFlO-&KvO6nQC>(#(1ghKjf7yx zD2E0-!NEYMY3pGikZlIH)B`Y6W;@-T=Wtpb5c{cNOD|%4;hvlUiME&GcI{j%%1rWXNrs7B&ygroCS$g1T2Ta*T;Z{ED zgG3`=*I+!zP!Ka7vsU5N@aphRU#0EV#HKnmr08}a!|_V)PI1&yK@EW6fRW4o^Hjy5 ztCXGNs$Su^SU&3N@GOThe99~H#Bd*|uTwKD#L}dfMk`8qr+ZyzhF9((;aZx?dmx|h zQtP`_&-~PSV0hNlUGA=qyMuCaum`ITW%boXF5oJ#X6 zDx!iKPeY8pEGdmS3`WR$2SWMzX-(K1G|M^A^z?wKro28mzBf_uMfb10MTY)Ot4b)@ zJKTx3HNN-9Z>_H(Scxx}Lh4dWIrMi}$-vzxR7 z*hcLhz9A^9`l-_qj$o%;EHTyg17)XY&vX!75SKM45tD=U382%M?dSCfl$z z?Ow3ck?A(JR5MF2+k0Yv#3QfLp{e0p{B z_1U3U z#vbhg4t>njWn(QDM{K?L8{ohKtSq(Rn=iNp=MNQn^%TWFP1r{fzyK@D;#ut}jJZb) z9W*YYPOlhISRYu`rvMm%A-QDX3AwVAw#6kTpPt^nbLZ6u4_~}<^RN7=Kl*3?$UA=S zmwx@f`q7{N@sE7=*1dao^dB~3TjGZbqV0lus}^lv2Q`Kru$z0vYG%jUp#gK|Ah5=Z zw0hr8^;UPq45&a{i-d0TFbQAfq2odl0X_&@0%Bb5x?e#VLSKSt;LH}1XIvO|V33Al zLDm{JOFbJ_kJ^<1LR!z!cQU`I+8FJxi-vXl-sCo4H&{f}pQ3oF`qYZ*#X=KN5ONdI z@t78}H!cTlWyCxt)3i&)GvYR^G$^m>y4ReRSjcDt$oo&JkrDKJP}k6dP3U08Fqkf5c)MZ47W^uEv_O5udspH((p#ShJ013x_DB&^_BJ%6gDEL`2uRbahRFV7jXWUK=!+^8DIVRbKe!lY(Zi zjk$Opl#62ZM7C9a!>P=AIPya^o0O!Bb&b^`g%Gg0_Ql zjcW+ZUTH^jCu|Wz@&XOUh-M>lqtQ7;FxMcVi*wtEtJeg z-bOsVF5c11&j%s=FkH9SwszI782oyax_wj znzbSVcAf;tI2U@ygD*Ul#@9kUW8YdU3$4!;gMy^eYQdOI4Jf@5Z1;;`(NpaSY2(2= z8#ZC2HGCkn7A=QvOpayKpS&Bp*woU2kTK;2;8?Pbx5wbZo0+>((JRjGy2mr)rS1YR ztQ>0PfOxnX<0j0`h=(w;q(`21-Q!_7x~Gy36);c-ovCDFrL(iQ=g8t{rS-k4C=u&q z>Lie6GiYd-zc-_Yl{E{o0FD~%QVP@T+i0cb$l?#Za`WUSq_g<$rX5F1w2}tdTW9VP zw+@#Mu{Y`p8pce|n<*>f>a`EO;FTs%CK6_=R}{t8()aQaR|oKBpnyvr~s^EFeF`m*IqRBQy)##${x??Nzhxak&o>26V- zEttC3_l{OlBtQV6yzr$kO>oMwq}f1>al-Uk7jE4UH?M9!zPj=1s}Ju!dHRFzdFP-1 zo^QgRc>f=M{1^Yy-~DHI@7}p}>*nJ}Pq;bAGyC7NYO9TO5k;-AMrCxDW=$DmW`^ut z%}phHl96m`02dkfg2xHSVoU9iinw|2-n~jerV3;%Up#@s(c#qOhy-pOjB=g0YO;Lw zj8Y~kH?8o(Cct-VCcH#n9;}RFb@JS~bNA&}AH4Pcoxkz}-}z_0^Bo`fz;FD;ANz&> z>-`^pau@4`pDf_NzA%w;J>h@jT=5us-^!J~!RRCD1+G%mkE}35gUN+)*|l?BIPT3% zh5=8m?J{Fo<`ib7uv|kTO#zYAuwfvbNa==a0DRn_Q0dp1PiX>Y~DfaGr+e*(iTeob5|PSjb(a~s#29#+g;lR%ux zXsOd@Hs85NJK9K-h&^Z$rg3NnoTYKg<8+0)L^MS~Ov`gGp`VGXi~vfri9DbP@N=eXQ=nmAq`=}bi50cfa@x#-4@)9# zTteA%A)0rAD8op9eGyk2T8uCVhKSUeLgbteL&MI>be=wU32ouPfus2vDodAoiMgmc zoYc>u<4MoaXab!u%ABHs(1);OQHM$jm~Vcpx}r30XzAV#%yGcz~Ai5WY9EG70L zwT{&ah6M)Vj9}EkDPFx!Dy85=1dscX)J>n!Vza0bY1axMS&p<5Gp1Ig17~Fgt{Cw> z15o(RxU`k)ctz5^C;}3;E=@SY7dczEL+0{r4MEUCl0mOglfAO?bl6tMJSBDNDo)wR zK}zj9rV;7TU;)dz)Fpnt@2D(e9Vbkm=t)02Q#8&>RoZ?qJul9*3EsXh0cA~-sILpUu4QLgtoRGm}>5;jjb|K#i#&s z#vNCOI z3xRTnngww87|o3_9Fu5cIweu-Mzn?utJm* z@TY>;S8VvZha&cd_A&^NbStYey3f^;y0+r%Q`wiecGrNZ&)wi*%R5V3uE9>sX z%=cz4+(;E89f8_tkL-(%qiP*p2WczDamCIkCa;WPm3v^wzW6<(!J{o#3bJ?eblC5D zpq_VU4m1#Rp_q`~v;fGJAeJd3%B-Lt8i8;8Tgk($7#ongNB%LDEx%4jT zqLM?AWz_Reld@b$nNp*6&s4Jl`dzrJ$EIdUXIJO=bj1y57o}b_1U3m^d3#GdEobY> zfSvBz+u4%N!T{etatkDDlWH(^2&1*8%WI*$YdB@t8oJ|U)7(;zs4-s{tAsGE7XwDZe6VtXZmEKcAYJrB8q$nz?gUKvB(XCp^X*?1jI?h<9E?}{hAZeHEE;y;l?*A@OT zohJ`od+@gVcYg4@zWLw(u6N$LdidAg`~JW5cYg6E{_Xy&8;>477S8BSqD*zFfv%+0=Q zAsx`^2qqQHtubv;UWn}w8+3jKUW|bg}NFw9~)yPH=E5zOHMGnZ$&NrJgQYj|PJOa1U2 z4w#5;>l(Ew>79RAdzjK@GWblZbCLQwcAGQPjMqruSSF}Yjsfu^da};7rP^{0uKb(e zGDeH;c1e+lA*!_4xeGIiZ8Kz%pN;AkIQPX$x<$E0BWUGSf3i_wttDsFnPBhA^|ZR^ zTPv*X+lGTsj>i*OFg^#URj$^SHE5Kyrd6c@Zd$Gz4}C)>Npa-j$;Fx8 z`Stb%U^75czm**KG1_XyqGW9x1m$~qM5m#(CX751Zkg#fr^|YAn?K}D)Ym3z?l)m!JJ3X9$lvla7NmpJ( zm+H8?D#ob8*FeV*g9UXV={M~~R56vdGnAvR*L0@+-K$#Fcsy-y<2fkK7$d^BRZS|O z=SS%Uc=i?Hy(UU~stDYjXYuJa8m=ZHBywCzlWr`Bj)<55-o6`9HoA+Hn$I}*#s$s5 z;w#z$64FEhHdfI*rG)b83Ldz;D+Hv~E5}S$KcuL%b<=Xn zrh-SFR#c8QtU&?Ia#^JPow@^QA0KiID6&QolcoWlKp(x8*dPu6m7yi-gLwD9ghBQ{h@ud$Lgj>s2a(GYtr_^y0p_ zrm`+aY!_6A_9pj)6{2OGt~gQIoNFgnXtb$iRn&#vHuQsoD$pvP6XlES+kGIrPS-W1 z7&^qJ{HPBId0W6p zB1Z}k*WfAGVegbViB5ZbDWRiI@T;aqt!8wY%cs%eNnKE`QQB?zNjY?!wF2hqhGUQC zQnGGXS(cC)fDT-f+q*=I61^3tWnz>DmpxpBJHW{DYBh_}H4RQUs*b|UL|u#r(`9%8 z4o#r*04`*uS!I>d<+*O88~zl&l8xP~YG-*PRKqcsVCMDB!GR`=n9dx>TE_mF=?V@` zewb;Oha)*37{)Lwb_&m47zG{k74f1RAF0b(S1_m)%?}!k>5`RFx#_SB3-C6nz0@o_ zCu53B<)jGIE3;(q)W?{x-sbJW0IV`%?2e|Nm3pz0#yx7DVlFU?q;n)+@pSNC#L*8D z)DVFAe=_5rJbL)((TxYM{lT}r`9J;MZ~Ojtf7Qz`f9}8gzklh!`SB0ly?y8E*3Cx` z9|F&0?ugQj?Jg<#9apElF!%DB~ghl(xb#3c*^Vg|w@;Kpd43*A}>9pyI~WQ~q4x!D|oi-F*6A ze($^goqyr?f60v}Kl1Y*`O81`zJK(I&po+=zhH9v3RUATE%1>|7L3g?w`jFuB<|#^ zyfW1yPEn#Jecv;fFd!csTzxUDZmi1a)7y$@H3|hTSvih)?E8Buw71UDS2C46%P>|0 zZauNcN|khZWX+kEEuV+%D`W7Lm{%^Q*rw6rWwvre>yW@`pn>zbN&>CZMcIx=gl<)8 z1IGo*1axZEJ-z<1kwUrK&LV3!$El0!sT*D<1oxU%S`yZyAuVXN98~F+TIpF5OEaU+ zSQ5w}Z4ag#?keMGO(qUIn@8m-eWY{1%I(a|M1pmYf8|*AOQe0NZFY}kl>~y0PlH9; zqg6ngG#H^Oot31N03BKBcAnRvqIDO;$d7H`&8h5%YL=D&7@iwOOl<~Ih##kU>YJroo)G3*&f+q?t0wtC@X+lYlKzt=n2!5{({k>SIDq0fbqC0tyqc z%$p(H$=gb6D@vR;!NQKjEGRGSPl6igYE!x-j3#8hd&@Ylovrl88FtOEF~$@_?-Vv} zP-Vf?{uT+p#yG*h%oRv7L?o7IVhX1yr?9;1)EdLHLU|e)XsoG_0xeT*{0$?ZPn~ty zBxli(!Lx>lY@OP^24kZZQ!AhWuem7gqpJdH%sBy&x)!CPM}6Ey5=ksxoHl>WL+xA&;QBDUqW7AD zU$r))l909ojg?4{C_OwM_x7b{Rd|tLRM& zYK1H}Eh6V&Wwv$9N8OzZwEBea8gSmX2Ip}tBD{I7d>zQPEKHk8I1LjFO_uTyn%-c)={YDGMr$+sQR-f5k$=YIYtF@|iTSBA;JCGDGau z`)04~xSA}L#2!|8y(3l$bYYaHFk@JiB*6^XoLk)=Am6A3q5!c;ZHz8^J|@mYzgLPI09h} zLKoLlsdi#U=qNX@GHMU`ArS~JV;MS<-buRJuI%;&O?LV{bxy`+*Tr0$JIsc;VJbYs za1w<>EFNa+3H#xE%!@?WGaM1Wq>jK@%Q<9$C1=+$or@~BB-aH8^XnHicrJTR0ugXL zh@HnMV1ku)G_k^fsbRA?ZkgSZCA@$}R2GZNCI-Y+IB!Lu)4HS9oE!&?EYUy`FAlBM zB$HdZ&zD6wg+-?nKN{TxyXC+-D4SE#;ey$0-89Qf%S;vG0%m!TMrl z+_vOE*lwTiJF{tH&5mB;|9sLk&hXumme0?V@&fy1u_6S zKOzuGD^D)16PRe9uKS2tJ7&e&O2)EbybU#1EE1BUGe~y!_cFq2k=DbYJ9lnBdGrMT zaMi#2$KLgyeDAk>-Sc-p^3hNKkN@Dq|NB4vjgPn) z0d_0w5Zi$V`-&apjlrM;F^HWb7eyyuwcBdjm%Y1(dgr2#tc2>AxnO7wOc0+&?Qqh1 z0P7v0o;Qr&Z_5L_Q=XiitQ_K7$oZ-X&I~XRNE@T^wou%*krHx46(Mig0Y3 zBJ`pzrM~5BKUag9bLO4nnMvbmsLbd^akdG#mA9-NtZmKBuH455QNe%5*Sd{dcV*K; zxhQ@z)F@NVH|enJo6C&lc~Is@tI;^~&N5OsB2 zyVumC1HX;v%i2_XglQAi!6P#_ciC~BGJ0J8o%(F1`Ut;VDzi;0W|ozwwdT@LQYQY8 z(1bKL$oEMcq-alKtN(#qe7fiqi@Z%5n2_Ez+7Z_~jALBMV5#-)Rg#)5+J%pCsM>CG zV8~Q=pduYU9xF|}4;VNsa}36jksx}xvIkfnZ+Hq9lWi^?Y17Z1}^F?YEH(}a77Dnp-r8cv1zW+b};Xt+{P}?XTU6x zVJRyH&Qz0ovtWesxU5PTtrEH^-4nC52=PfL0m>y-n3F0!r!{U{P*)HN(8PwZ1gWcl zTp*)yo}y?>A}7(gZ@L4tX~cz7_z8132PNZzC2XTJjQ7s#2dT@KG3>yAHMwOYQ68~* zU>0>LVn}Qptsx!VdJZ|C?j%JKGd)o_Y|_W%8N&?w-0%wU42W7=8WKRO{09Ot_GSQr zD7*}Fh~j7+u{Eq~(FZ#(QWG5e%Zf1_KOGO+m@Q`snS2-@Fv~j~QySB*`NC_&AQyKn zq&LQipkq$YC)F5ZI9JC?Xmn4CzBzko4*D;Xn70GPd8!!Fo5Yk!1Af&O($8m#uV8kBb)MVx; z8_^LP9CyZetP$MGYWFfqk@a{Eck?u$n$@05gP5j{dZw z+$yPDvpx~Hw3AkfwPPKh2z0uD%5W7~uGHtMqcFhF zBW7G$E!+!SqcG3VIX=V}TSYI44qDA9Jx@-7vPEk-o9l z@?QtuZ?We2-3=_>8uIZ*t0zmXJ%T=dxPtMjh zNTwg-sWYx#kqITPUXyl@kE)@Co2(?Br<+-}aZwMp_IE*Td7T53Rs{!|m9g0xQNF${ zSXPYftHmwDQF^nPzhGyaAeZ|P(!wUghPi&yu?1QA>4H^y?Tv5OFat2IHk!CugA!lo zOs@)bwC@!0&UBZ702y#}X}%d-k*t$;={SxCO2c*P#0;sY=m=+$E&VnjaKFXCe1Q;( zCuP|7QB7*I0W!2IB!pnS^oVdzSd2;*g1QW;i;Hsc^(+lCwr8tjo0xCkF$@>Uh4~=7 zMO;!ILZbwiKr6!6OQM!;fjSd49$N_=0LnWHWI=mE2f>!iTvh=ZGIGi)7lb9dDT=h!(yM-L$C{9$Q-CwnRI*T$ea^Vf*T1fqHKY zUV6p6(Hj8Y-qm1^(BnMXl$fU>=YjzSR)3U6TsM&I8<1U-lKIpLW79k?e}e4~f$d`M zLDAe4&@Llvnqb(sfKliqT_G+rM9p`=(q2AYOMCMi0&K64Myq`T8ilDAb%W*`6Q1erHgWT1yoRGDt+wV~KpyNCc#-2{lgJx=rb#?W} zz~j7^ig6p;M8e@|5Lgk8Hrr5eGIZdf-V`WmPa zX7l+v6wxE8JD)!{O~=&Up~-3f^+}o)w{mzg+Kf5xBr>%_?ox9?fI8}`}6C5Mtz-9#j zw@lf2&n@h@b=J1K0vJD5xPANf%U^i;?yakT^AG*LfBTPq-8~H9h2zrHtti2~y7iF7 zd!PTaLyoGd4dvL{*2ZnX*lXg;+;|vLSeurJWqQU)4Dnyk7uRJOj_7~`z?z=es)jcb zf#~F%4sm1EhqZ^-#u0Il;Glim5~bxmreC|zVL3PKl)Ewne2GDLw$#SDO*#dw*oNEO z$RTd`dbaY`W*3uUiBS8;j#_xr`+R8?`<`$HczgjO&(IOnDB+UBmV*Eg!_w*JxEXA8 zU?bbxg9|zISkZ~=Vvm`>*%+HiUC+1PjNq6&CtNT!&lYlSEr^usv4tlOca5k~)q13o zAnb!{ldw%pot9KYUpc5riRhKS;MoipEiE2jH>@XcU{EmE)}Cc|fl}iqcwB^DY&o)> zKVODE4s*kZHm9(27T#ERse86QJIufuEBUI(wUqPZdht=RF=NY;WlTw5EvsvXX`t<~ zo0g`{UbH2Y^UKb-3CvZs*OjIggGupiNqREWCgCh?jyr^d4kMx_Osla^HivbKKC?}L z{Y7ieltI@BZ%l2DNux0kGiJmFx+rWI^9BzaK?lwd*};k9wm09&(6ofki2@rrJZ&R8 zH)sq!s!t*|RAe4V0rzcLZj$ksa}#W)hJdG_=F)6xs}$3w6t1(PZCY$SKLVPk9BrtO zgCd#7oluRU-K{Q(D?7Ps8RnQV`di5y;7IOE33glJ^sZDDYvf5YW>`RVk+jlR#=iP# zPG_7f>?5Gi7z*T`|naQ>wqoQ>b_V|Jii(X_8Fo%KqN zx>OwJ6`LyzJ&JeCui-0R2Xqr!-*}dqY_>eXBMU84q7X8)b>*OQy_?mpYXW6TSh6Bh z@i1w0KOrVb$W~M^qNp!^4SZcwSb2hqc6y zSSGw|b~$-!D+bNAIa+$$h3d%WIt&W9a%_OEKi2F8(&qc5$_y5_9R+quVEu^Q7(3yx zw))tNX`)5hF&jc6fnM3X6Mg=d)7a|mzy zE``kP>Ww*L@plF)y{_&|A$ZM41JX1V?-w3Bb9AMB)GVb8djPTh6@{pChHQuM%zh%8V25{ zx9;4+KZW%9mtXy=7w-RCfA}4L;@w~S33s0WB^qZggiC_8D-+uq6e)i*^{nQs; zeeDr;0%)%ge1*T1!2iA5IV>7ymBNiiS9Gv&DA8})QAmVYFibFO&!InVk$C9V9ukug zVs>1z=@PuN4tL2YQ^&|qaOI|}(?-9;D3AxQ6(WP+UgBT^0W1bpBrs1Yq~~p#7L5m= zmI;|-+M$vV*}04=kiDbIyT@NMQ(0u;@Y!f5T)?0(37JWYc3C3VlQ8I0I&?lsVuCvit#3T)S6BWRBtmAY9!bMZ|n!P#~P+k%!ty`n)dza`Ig3w)$(6V}q ziLq&!I{`fq_}QmW)y5Z?JXEm~%HWfo!>|oUNIwo2fWm~(sorgDTD)-L11TZ0+0mO? zp`^Uf*K0c$Y(uRabD@)^oesA;Wb1^kgYP_nc7#1VkJd9zvE5tZ`-Q<`5>Vh3gb_a< z9g?i~ANp~iF$~;cHOmzWJmN?962)L1l~xnoq_*^8$-z7x9L{Y`RJptAGFW4;&GeH4 z;h}0q4=8=(PLFLX_6~v}adZikcbO)^U_dIZ+{P4X%^1LlB*CRTWpacu@&zh;j}ukF z;!G~tW={^-te~ixPq6|{d12gBL#ThL3MN7k$pOBMV#~jYnmk^4A!;|4g19vGSXo*@ z(;^qgV_svJ+C`pvHOD>}?qps5s%KfmrYX{_c1uRI>E=d%ec}FQM1O4!Y!{@ zUQgC+fskxX+!co8rRGu3Q4>tp9v$3t3p%Av&evlH%aS^SuaP%7hk_xGR!qfOt9Gn5 z+sy>Y$`vtt4BJG|I10C}^kzltjcF({k&~^nzv5TY<{e%P6(`yW5OK4w<{@CgSor2@ zW?{}l##b3<| zN{rS>G33Gk4^Qgs_x@t?HMB~xvMeFx*suE8n35u$lO2U8-bn@3cG8DhxnZ-RITMe*gQp8XzD0Y8EA1dZjV<#%%0fS zdTKzkK38@u`PZa!nZ&d9t{eHVkt*uCtFo7b9YiYx;9(f|49e*JI1|I=T1bOZm10*IbG$)BX2q|C6?sC&|)kp&1+C%thEdqm2;_HUI# zv%pn~;c%0Ozu+*KgPQ2Ji3~@YhJZR;y=JAg|M{aZN~`g;Q|)2SjHrO!MM|EB8cD2Z z3$EPjI{!?S#H|xR%E8lSUD1`zmeES#6GkUEo<6~UnsM{y?FSDZK6?1tS3LiwANZE9 z{8zr=ZQuOWU;6y>Z@hZ?=%b(h&0qNFZ-3yWS3dlkU%=m8_}J%Ped(3gUVW@DEwp{I zpRh>o7p3>%pCaIA5E6m&P;4=gb7qC~sN?40Z#A3hccOtg4q z*A=EtOTWp~RZlms^WdCZ$xNhqMxc$0J8gSiAB>{$E5biO!NW>} zpA%)%Nm4T+umv%g6B)`XLnhr8^T+DT{6G_OsZR+q@x!}AarQ{T*;C;|{^g^s>=?UH}@4Imc@sV_Gaj0>g1M3`9G(+{0E4K>xQ7j-=#4`TjxGiXGrFUZM!=7^3xkq%G;0*@?fPqI6PhT3&>86i29zwv@vc)G40`gu@bhh zGzrd$`ienvd4Nd)X~@F51MsZ{tOeqg5qeemqUaXFtHZUJ-bpdWpG1PwyaojAORH5H z#rl0VX_45m^|%-u)xWy3o>eXR*JG2Dyyz&{V3XM=%a}e{HUurnc44PM5tG6xb0(mi ztLG-FdHl5yqKpoGp0im5!^dO9J!T>GB@~Gu8|3#dGynWS)IsvN>PlAK}L5`bQhe7 z=skG=%plxL{NtHUUYU5+*oIy(xBc*Rnl+q`yC>oqWd^N3F*qVSJ8T$RJX&HgQ<#Ec zE&{@<-rbe5dAWsxHO+f&1u!(Q;_K^3pFTj|=*93S223$7ez>}wg4wlrwE7CusUmsh zKGU2hJGjAOiZ3a#uCrk!4mR5P%e9Ki3*%wp;dcg!G~Ppmx2FgB$uB%%Ar`bnqx_Xu zJao}2m4v~oXq+}Zg)R-rDL8$i<^Yb?BYS)3^%ocd1U0~8xClqMhZR@ox{|(+5fwSp z0<~4g60S~(pcv~);~e*VGb+J4iAimpDP*ma!0vKUW*@2f^C{1D5f9GD+G9L7To}&y zt=qa(ac*AS`@GjOmjK`JO21V{4EHUr#aO$8aj=bx!OOgETJFOs002M$Nkl-~1IXyz4Dr^8A~gd->s`kN?(Z|G}?*;{W`| zAN$Dotxxm41F5hf%uW~?#A3iHQ-WGC=ly0V=gL(ChpW@{ zdWG>2yPC#myqxjo-Mjgl3L>@L-8&MFDmz@&jf9A?8rejtZ0bkA;Hg}RRE6{|dxZuu zFO`$}G%iEpn^bRUqUD#@w;nyhUpjeo@7C2n|J5)4iEsLf_k8_Vy#34G{HFW&?%uw- zb>s1k$B(}7;I+@Z`uGcvo<8zVlG1oF@SRK__WX&DUqq-TzR}{Ka!J-#2NJ|-EgiQY zX6a5jv^j~@CS@_mp%6bqMMJX=w_k9E&>T;maekgME%ihl{xfp?KjfIjLMr>DpD6hH zy_?ZKm;k>ZM=uo5XRxNrP7VBjDeR!#1nS8Z^X6cZ#j7YznZgJCHC_YQqA+d=V0glo zaF$qwSM3c_G?Ot-NRCLRga4(<7zm~%NHy_}3j-M>2D3Q7BAlVV#nwe88^aPQq3VsI zyGynQ52SSyQC;SG*F@JDv zCrYV8>IJhhDG^Z@N;G+O@Uz&eA!uG!c%@U25KN$in(>rU9mM;NLF?cwy>KzjS-AYn zK_H{W#YYfE?+3`wx-jP>)An4XiXPAzvsU6!M7o1^`2~$$=s05zz3>nIA5wdXTG9ATm za+1^si4+Q4WZdMxK?f?d*s;{ibiNRu>FTQKM+w4Gr1cK9b$g4&H!gtQM(cc5KD&2DgJEsL8J!zQnpY!>SY&TNKaJvO6~R!4Ac5kmG%O0b#y>0q_SD8qQJSBq^1 zr)v!iTrKs;>bg*>f=LWG)i7B|z(bjQ5L%m^^+$_)0O&DLE_dLA|M&%f~^Til=;c@G;WHsa#GN2q)0T3*N>9qYaj){Fzb;kr24aIW`5xv;pdxBp)YC z)xRjlq(@wTM(uoYcNwBV^VWw|X0?*z#p@#Mgv zY`!=#FtM!~>n(!~s$Z-IztA_H@tad!tdg@FvTLq|1GMGQs|8d}zPL?*t#udUzxLq_z^^3`Yk1$rU&eu z{nB0E{EA5_06@n1Rs}DlArvPFp)zZ9VbK#}Xr)sS12we`6uLLmvJxT_@R--1WVfpT zq#G8EnT?65+`Vp1N&-IoRRjO)MQ^-w_0QeE{lXjW-nn!8;ghE?zw+RdpZ&rw{KjW~ z@OPArR6iO!= zor30=;1%F>X>SEnsuBZ=$e?iv%?c;sq{BErR0x(qSwkV$I9$%tj7i(D)eeM1NdZ@L zNIQ;0rR}Le8x{)crmM;(4C8k38z3}E4>lA(C)|Sf=Bm90FYS(Ny(41 zl%Otp_#3BjXyy|m;7O?3;=K9-TG<$A0g|OD6$@-y7X@K>WLo=Jiq1ehVZBW;Q>3H>@nV5jTal()XN5$X*q^L*$ z)|V{CSYa5*V)=&!O{_8~nG>>?`gX#0vy8U|ut5t|@({bVCe6sJ6i91Si*<|&$Z)ZU zaWS7nsyWJ@Q@*D?I+V{S48}`K#iA_J7ZbxtRZ$i|Yw{)$$<&dR8g+Jr2Hll3O&Oe` z7n#5k!YjTHp>IWSHHs~5^E{-&!s4l$MZBdF+Tm=Xs8smmMK6HYZ?&cC6dXw2zhL6e z3Ydzd)Q=s(&npfWHYcefkSTcvx)sVAE#MKtyA^Mhrl)>2NUE3{Q|7gFj!0WzXGMtg z=nN<&iiB~5M2yh+TVnH>Tat98Djm+lXvN{AE^y{=3fSIW44AAEOSL1}LzzA0+0$+} z{q<{sM4c=>R&`=fHW3v$JL6wg&Hdh)lgt-XSwTvy#&#^jeDt8wYO{b82PmYOXKOJi z#0+&OtDil?_rkcxf$)N|=S0h*K_)UQNpeXw5&)h;tdmTp(44~_fYwfhjf`yu6r5E9 z1BpV3bof#T;$&9a2$e={V6HRcV8f6a_yaIP>Y&R8*fW61X3q5vZ$m^>fVqn(LD5M~ zTm+vAGcq%Qjml9D#Df=ou*3#o^zPB-u_j4l7AEpZxwY8lp|212vbwKaI`LWO`ohXOD@O1X z-?3E%P@p%~V@>#hKx#mu5icaP7OE=?Og5TDKMiFzwVlLP;!RMAl1iK%Z72C)uXIl2 ztr$&qS!ZHgqmt6Dlyu3iD{Yb_X{8D-98thaxGVeca)>`o%ujRu?LS!jPN4y_S`U8a zuIB|8+NKgh61Sp8ifFf+MW0ozcQG0wloa@tDq+;FaNh)z{B>$FQ79pI5v#45T`<$) z05|Qf#fq44VOobf%>V#PK(xPt>yjdLF?0oxn!ilWY|Y^cyNsk`W`g+JVNOM(j(m3F zc%%udArVCX$ZMbCX5cadPluX8YtdA-S^d_NcAlk3sEY%se`h0A_O955+OA0FCYabx zo|A|}8)+d)0hLZ}SXGQKFv-BnRnj#zpG$DDoW_Jr5Tc!Se%HWn9-jq zIo2Vg;iThl3Y0~k2c?L1cR*sC7NG15q~XCJrcp=|h)qU2xreR9I7-4uhl(KykD{*m zFe*S`;(Yrrk{K*X(NlRE$$=)eXpgm%uKFdMzDf(eiUdGkZjC5r?=ODb5{htX{)kVs zdXN_J=S)te-fV6r)HhMnwQ83XC>O~sOH)gc+b3FWlpiN{R2C0-wqd<-@V3gA3s`Wi zJl4Z^q0bbIsFg!3IGJt?U@$azHH{7Mz;Qt2y`H4uRU~m_UrFy2lxMq8yG5wa^mMa{yr5Xm75PwGmxzqvPDBD54{*vhW^A_ z?ND#7@@@cV2RV-6jt&D$P?6Q3guty(|4=G4ORdr5FwaOMBTtk>yQ{!}Q|W|*03LGY zD;Z3Q7Z*FjbYA~71QVF}Nhn7$aOL1wr8o^NM5ewDN`e%ce8tG*eBnrHud+??$jMW2 z))h8qlYw6^1X}BaDV|5BQ7Q=6F2M7bTOb`a0MUr&AB}v%|2pBuWBdX2$FDtj^jn|% z!pDC5^S}Pm=Rfqx&%N&xzx@lJ{M?6s>*Xg;9^Sl#pC#P6eWjm2AQO+Is+B8)d=jY> zro0-wt}?+9J4$m!ghSkfX9?hGbI}*9J#?&S_POP`qrRibr9;w+MXcT#AOzChoAnFVaKTm1i+z-wZ>(-hq?P;how!hqge^hT}PAIi)lVBq#|x*{ij8#B@W4<3{uVn2nZ;Sy&Uw5WucB6ItIZ{>A7a0790y9%;QA6YB2d9(zsVXDv`2j?i@&&C@3v7AKLulim5Lo!5@9t^G{yD3eVHx!MLVzqJZe$iS zJ`q4RjZ-S~dqZN#80ksz|8-v&eDc0zd(0 zA${6WOqNK7+l9z#{JjfL5#)gox`-Ax(=`ft>Jmqy<79o4%!~+u ze=yN&eI)n?G1P|~X}SaIcFkK=RqqgR2QEEG$6@&I}BI#@&VATdi=E>EC2gbXqvKxnDt#KJbcds50_-?O;_fG z@c+5dUEFIz9NfN`as-z9{-t z&>fgAGbtqLe}JBUo+~Yf0_XBi9BJAd*uz!qG4bKg8GwL9Cbb%6ox9o~9fp|l9f~=e zxr5QdZI`S|ULnrRGlzprCe?v(4LMfiWao@RYg22z@ahZ};K-kO*c!jGBLg>vO*)Mo z$t1;qI$v=q=E!SuQj(^`A+SwSxKld0IvNASDtZ5qy&-n)2L^_1(UbRLsjifsteFAq zGeH7ebJBF4d_JuZvMj&?8z14cikUj|7f8LlCYE6AWv7?~3 z^HEG*rx;=QkYmavZlpjB7d`yd!>fiHk0=gG_y(ROvdcA4E+M}Ez>B^9K$3KN>NSVC zF$JC(SeOJRd~bJvg%^9|d9j#qaV(u0j6nyV3G)vPv}e;qswxrw(ZNikX&u#s`$x}% zMB(ElT*Y#F@^uS{nwu0mi9tysTWTpctn`w{%-1C1Pr+DbWYDMC+E9GE* z!ZSu>iM*kj-Qt{X*tN=7vt46nsJStKZfwbDkGlS}fixj81x1x4&-FoA2nT3jyxthQS1Drf;4E;GdE6Djwf+{`3F( zfBxJ5{U87NAOHEE_#4xCcm3=9Wy1W~u|UJo7sKt@(6L}@7{4#2So?X!kXVQFJ!?#- zF_U^V+LI4hmp~FN@w+9*TsYBt987Y&Sq*1G;x832QUUd9vZbF>7uPrw93t$$a$}If zd}6W2^X1G?b0M+KSb&`~ARVk4;-g18T1V{16s9~nNFfrV$-g;(ZT@4Hf&72-KkGdI zg9^mscfnqn<~Iir5m-@UhM`%7;yp?R5{-?Bw;s^-6OEQhrv$KuAz- zCRTSva2SNaPFn7~7*3|K83&1}b3K$Ztt@P@XOtnUj7-4VPl9oDY-Y7^@+tI|i8QpA zPJcLm5VHArzmBvcM=*&Xg|H7j?slSvf|~qHqCl}C<{>VKka%R@&5gL8g>KWK_ld(< z_w~g$(eA#=N|-#8K_sHZ@c;H)Dr!`vT?xu<+v{yI>?U4q~b$@GL{ z7QaP%`XOU!&K}vTaUDqg`l2zT%vHRs@fH9ep!bLFxjkeHL}$Jd;L7rIK5GFu;Z(QQ zy9k|XDD2hHV;UlsYWe9mF?N11cRBR0=r`$$yz^r26R=A8EnF0QRru>g;vhb=ZIl3B z6+ATluJ$^*qCgtBr`<_E$D>{+aSMwc;?3Oej%RlPX}SlG>6^Xvf&U_ec%Dp=7r8SC z!j7g>=`cZ+214R3D699;Noe8k-O-rHDGgzI zQk=q}<>cf%WIT{ePiSvDJS&NrSI^ct`T_?>E#7GUPVnS$;zECxkCf`prU_ugWsV?e zwf&GnJ-jx6^^~x^+)d6c7R}Gm_?z!4!+BRB!-{{j&Y%5B>Nj3U+^eDXhQ!1~Jy${BY{yFBAwSnE)$}$p)~j4PFfb zv`EZM(`oyhmsAcRUk6>1CtVBL2!}#X9ZW7O#^Rz6Lt+YYqf|1FZ}L8sgxyiPj+3zU zvQ?w|1hZGKp!Y>2my-%@jNq$pC!WpVxWSm}LJ2J6cq}_weA7^K(0|+zZ5MW2_-X!pGERTqhaL#C8mwW?=&f|Am`24#29TEob2~ zNXs$LslDgweQq}pZB($yh+{?|*QzQ}iV$P=ka z!u%)Tw*DbA(GL#ecUK-K7BM`pBbV#pBSe;FN?*o^74jOS_k$Pq3y;bf&q>!gYa{Nl z+bzSlloa!?^Y;k zRUpaf*_$t{>iPbIon*4Am-=__$$|gUfi%Fk#+6#D5~uG0B-s3C%CX0^k>XJ-+6meQ zvKI%o2Lpju@j%qLamFT8(_k>z1{es&%tj>+JEO(sA=$(eOzf&}G^8nw`OY8w-xen&z&7$jIuRfHuf<0iX~0){bsQ1*_gJ>l^Hx0mclyurM793~ zo!f<{K}Y{hpP~-fPz4=2BFtMWthCA=MeeRmgE^1<{hK}VR+7NyRN!#~rb_AA8h=2t5Y^O-6o zhPZLqi5yEV`o?#kH@;^zL?`3tHr@Cid5Th{i#&6kmSj#&bo^%|QuxqmK9cJ412*2V zjJNl(XxSVP&VJd@DjEsx98SoWJ`-Lrz>&qQx?G$65~t9jj?#v+8$SA-5_AyJdQ!@U z);c*9WOfKjc8~;@QMmLSl#4cFl{niY3Nh`W2P3P_;6(6+0k@t%0+kBOtecFveKfO* znanuPUsi35-%Dy8WDt?q2y+Z;gg(y0Blar;6)_&vK=kLq7z83v7?ZE7dri+r0^p7;>k#u(f2{qrVqgq`n`BA% z_fmb@5MUg*RAuJGG9YL0Y&Jv?`{S1MG8*z1PJ|VH@E=(FYsIn6+k zV70@IR;|^n+K~N5f{x<$z9@A#e2?$2V3w2UJ$xt7t&X&SpVPa7f0>18NHfgDc9+)P z{8h0HQPme~*%ozup6?f?)%nPh$Mqva^!~YWXddI=7by=?R}OZBd$vGQaaH*8Y8>(p zZry*GeCZQAK|b@jaTyK>8W9<2=HLncRMps|FLW_(_MqF$VDyG*uZx_Y0d9oB}9rx?nlw)hNbxZA}hHC$TucxBex5VmaGo z`ahtJMnfPGhgrcjTmkuqd5sdHhCTQXnC74V7ypA>@Zx9QKlVbTRgciTeP%zR7(8gO z0Z;;rW8!xzSaX>SnY0&UG_4af1!n<$|7kmBi8W6OmUyE4i3~pQxZydnT>?crDLGY`ggSpiAm2s^k0W0aWnI@H zXi8yB?KuGOMk%=6+or6yk@VNd^@oly+zL$B>wV5g*Uh|&Kx2^~D9n|_m?bS`aOK+= zHymgVc`=#?#xaY9S-n9%5Va!)S+vYFox23sV&4#@ewoBQx!-U?UwK+?Gub>^zhH^= zM@Il3BQsDMrv6FcJJ%1XSw7rn@nBbKXAj`Vf@+b>D4bST3Qg-r0YL2HMZox~z%th- zNY;XXa)c3c0WrMK=K9DtDSeqEeMVwFfQ@;!W<%b3#ST8B5mlA_MEd-rC2bgcKsYgv ze2%G14%R#}`I9|mc%k5Cp6np8tf~GJf@vC>3vc; zz&=DyHic2%Dluk+?^9w-bSu{%K`5x3xdIK#>z`@dm>bp%8+LVqI222O$We!jZ^;jv zDF18sE&fmZeJ^jmOe};2*m7#ml%xLOFSL%qjNwe>c1R3~u5po_1yEs5+^cmKe{r9p z&SY84%_v*XSskf~bJ4RIZCx6iXI%vQpOr~dT8ChO&tZ4a$3%K^3Sr62zoi97p9RDT# zAxRV|t24Fl9B`~;w$HK-Pzg$zEA8P5RJfDGC&3^46ESqCZ4er!q? z|3IJyrw6M!8wC3If5%@cq!~miCx|Nm69Q99YGKJtYsFH`;GC3=NsA#!pWDqFg2w9c zcDQ2T+{b=%quBoOG#vS%OE*c2#e4Ev49!A}QCr?63}06hem#%*RXxBX4Qu6lL=TqJ z-vscUfS8@og;;&L3~KvrVEer+RhyA{J=cQ^Vn4Xw&bt`tl=}p$9mPu z_&xasZfYOCj}RXTU3npwewdxY`*g3K4`JBt`}IER^M^)m$ej-Nm~Wb&^Y08qti5S` zqzIum29W#I!vAqes-#(Vo@&YX{9^RTJgmoqg&q&fuKE}5PlkQGUh=!zY>)k;y6*@8 z2t?o4zhra#2R7ISkr~UHD5cwa?S54b@}}`Eb!ori9HIXS=wW4g*|Gf|CyfFBlVrZA z)$c42+h^Zt08*>Xt`nXilWwrpjK}`HJXOK9Fp2Up~8JKJkvUQ77~YB_#)|Q$q+rV zHx<}HCH)XS-e4c`NgiNR0Q?{uk1Wa3r$E z_-NblN^TyP_sj`-aBrx0Me3)C>y_Bq6KEIbO%3Yq`03l7E)!^$P2Sp{kXX>5JRct& zuLUYZ9!)XnF&M+k3#MGaa}jQQfcDY4QtyU^KVuH$rEA__xej`#c~hvUO`3sB{m4O} z&FLx0@nwy2T zYa1YxOZtlVcSBP78LPS*@=L9l56@pHK>msLp(0$8Thh+s>CK`v~m2A}?X7T2J{=}y?Oo)F-S}>BsJ%o`uS$w!YmY?EJ9AiIXypVSV z2H^Rz!k>o^Z2<8E=HnRaXerh2E;)lJVZ2GD7m)h(REc*PL<+vsnc=Qi zid%#}!*u8mo}u}n8&XD*7xoAEcaEO|5prH|AFVT8;LIMCy9i;%YhJRg=*G2Mx0H_Rz>(AeTy3wgW-T@!EeqK)0>r2*hL2L2lTW(EV5jg?$EYRL%u+UEJew6yKM+%w z*a(Y%K$PTIA`BrKJu#NOAcM68jf6ah+M3@ve7MGc$|PB?o6I+6n1MlM=GcWsL-u~3 zRR=f%o6;mo5!{w5nA9n&NHB;gDBEKciU5tV8rM114un%xua_;?+!0~S3}i|8&W`J^ zzhLB*&`YzO5}1E*#}b!DgwYms#|L7cQp93sv%n>T=26t@r)wbllw7VA#-y#X#{bIj zA?q5TyW88-i3&_W?8EJIG&vN5c~zjC1LnF0$atvJ9X^tXwC%kIk1^)vi}W9SrR{7e z%&Nd**wb9vWTa^0YL}-}IOqQ-g^2{|HkO-ojfJdNsZfIDtVgn?7@|&cq4bsi7-m_@ zs=W45`^1oTxwC~VNs^6^3AwgkO2b`a@E{8C8Tu6=kN^MI}r{?(i;hQ zTA0F`ziJ6L<3}Yicg*>xzRF81MPbV5WhsiOr&BcLmaH)1X`rE0#(V3_4e(c;m4A| zKeT9KH9exODh?x1@yha>M{pj;uLxO-fE7AnYtAN@_y0l7nJ1kUU=|btZ+_rX%>rRH zv;+}An6nM*uE=0`MdnES#85(Cik4~J87wn{Y+6sIvqQyq8dE(R5*Xu70o4WL?78d; zW-$-f_7S(P5Bn?7)eAT09@MEGJ0}k|gENlh0z$L-stuLcFyS;?ign#wJD<$(R|F`m&RkL33zNv5v+ zIUhLW&_PTKMB63RiQH$IP#}3ufgA?fynhG77^#H|we^O#AW_s5e-yLYLL-IDGAEpn zdz2ka1Me${q)%T{5d;@B^I7=X8J{UwVR~~;W9S7rdZ_~p)lUmPcgGliN$!0&hrA;egFeOX|bA7XNY?VD7McQQa~;5JvZ zv~pkUqb+zgHm&8^OL$XRuKV(Qdc&VT7WZ?PCgUYQI_)_BTyjG&%MUS7ab`o)@$VNd zEG3nJsf>K=poR}=qb1$NgyItEIKhRo8A#FM#fX!0 z(z~wjdG)_^@+Ie-^#n$VC0@;g)s%TGv_W86vm|!&xTaf}(r&D2&CE3pG=Cn z$eABK^P*>d$=AhlnJGPn+A3w{kiXG{%!^5*=%FghXiI z2>8f@9U;6)N=F5vhDR>(6nR$$DeyHT1!_s(86Q=Fk%xCDKro+5B=Z)aw-(vN|Mj+^ z1XH%k4?YI?i^7DF#A4Vi9e2_pQ5k|$YCq{(C{<7Z9+{Pt`7Ql;zjGMp(izj+7ON?A z4b*1uv#hIuZvn7bs4wJUQ5JS8L_Oo!aaC`oBlO`FCU@jgJds@y;#E_I@e#c6`}OGB z6KtsZ60wGNCem&nQk!Tr+xG+?Hq36ewS+K7tnr*@3IMw^a}*yhDs0IKnbC35h`cg0 z9?fAifia`7T$)-E!x-`sygttT%|IyPP%_DTqcT*m>2eOr5o}04wGy`n8pmaQReY)# zsdHwCNi-!6({rvAT)G>J-&$$pE!^ZTVWlGZjq8Z*(6t{@hj7qcxLV|&fKDB3*3s4-h3r;c+y^4V z(WF?pK6zV**m}oDX}vc&=_}ZykM@|VIQIHjZ)~CN=Uvp=R;L5W-3?~vmVkj82^<@7 zk}20qt$~-pW|6K*^NAA1c|7T}K(jQtx_5WRmz?CcXtd3pfo^Cb@VA>EgG9r3K98Q) z#marmhU5SrjuYx^%>hkHn@?oe^#L)L1J1P1%V@gpv`Z2oG9_=FKoWGS<0opPQ#D8@ zju(tg4pikqC=4Q%Mt3k1g5L}y0lYbuy`oFitm;}0lon7n98b>&QvStkrnK4NcW)AE zbckiIE*?P>h@%(jJZLAgKw*{)EK|076@OnfXeUm?lipCs!VQjip@gf4M_Jei9e@eJ zn3)ZJF%1X~{eYm*nuRhW&0Gr*3e`}~6Ciy}EUP*gtn6;|M?R`$1alq6!=$u{7DB%E zVgRsDR+)e@%OC%n3RK~36O!^>H{vlm=tP>C0(q>jr$})U}8yS|z2O8hW6Fn2=IX{c&%t|_HR2n8p z^tc!|E?{WKGaQ>SYsGS}X9!xram~rTI_Rp>18ipit^^jr!4u!jOLqC7BQ0Bh=TPe# zH&n;J!ey*cv#0ax1YU_Zol4ZQaL*h#Lm3A+wl6+$yHhVsgf#K>Nw+UhECJ9D!sxM* zgaeQHh;-`kI*@!2_HZX*g8hCLvE6&0nyO9$di-FaOtfbGTuT|V#fSQs5BE%4vYrQa z3h8u0K@jru5jYRwW8Upx1<47R<|NE4KdPJ$0Odzydn6pA(9axC&~lzhJ}!qXI~Z!J zEsUayt%iq~%^M1)s*v=#o!tdq4=B2IGPRI~exNbZ*pkTSxUF&boyMa^ewbJ=0Z6NF z>CLSUWv~<}u{>|YbNc1(J^ALXW=G9i$xC6U(X@jM;$}X!pBOaAIlhwyJSs*o6mGu? zD*Q)6NK9nhr%%it-P+vtIf4?tlIj{1e}mS#QS1#U=&WZ1bmYmv@xq_U$@W=0kK3zU zs06=)Z{E~&c?W!+gmx6}=a2}$_ooUh@RMfe=*RwmR|B)HE4&IJjrYU& zGl35b+02|z=z5h{H=VKdfG6ON%X<2}fSDDeKW?e7c0HTU`INs*AG(xP=4f3!HwD`= z=7Z56`G(y1oaE@uLJXE$%&cgxTHBJOUw4U41?!xS)gPn6z%)O5{DJ2i4U@T^>SS>p zIeQSW3CVt+Dp-L~cxp(kT_t57UL~qPbS1&C zzeWM7j0swSYXp*9EVSQS5_wt=t|dHN%Ez3@+u+1vW{*S6gre(tXj@CNN~o$7Ax|p} zuwy)9ClYPjX7aBp#^-c@r1|r z)Is5Nq8hKqSnseg@r__z94h>LUIIsFI+oPZVz@%fsCYbGaBsH1Wd@J?!uMcD?qc`oxa^t}uFv*dQK7dfCFxx!&Z6!aqd}w8DeZO%K#cd;WVnY;j?d43d5WWfI^sGz@67M{UCnaDIfW1~62Bj?f&E-Vn0*UMn zaY57E&?2Y$iDA0J9htE@*BKneVvMf$2%Eh%eE<;&PkxXQtmWDp_)0a036OfgnKUt&o}@9_Tc05P&|u$96aBPcNtzEj8P&jQ_Z};En+~oubM=s>{HBd&&?fBy#9d z8Z+e~vK<4nXb3;JBHPM`K=ZM)B1j5DKBf}Jgau=*-EgTMERlX5^unhg z7&sUl&B4IyzRiHLnPEFu<7WvyhQ-|CvMEQnHx5CY_Bcf0#4jrg|SKgbB%O{jWhuM5d+@!%-YESl52v=i*`(Zky(*NHSQZIaQoIp`gzc;h4L_WrOGe$t~pLNaFw#O!|En%Kgfq_ZH!?l~> zuFQ%XiU8Dr8+4yQOsvLK1e-gH(pXzl7|UEIY^GF}9ub~0=$h3balC8XhuvZ7`vzRM z9@7MqKdZAHF%i)E*Z^xn^5gVRdhQI*h0hp(En>Po(%NZEa(MW43=0I#kHcZvD+?+b zPn~hFDf0#c2CmQT2zT6P+8h{zGI0092?vYII7M*6e70JcP4=#@y zlIZ&w_N|8y1_p>6rGXXK7`BAAw@~zF7Vq`6;$w4#gf=t9aynfZOt_i0RI1yd)X+)f z4A?F7$;O#s$N@n-UPHvSXYWVn&2J7MSV%65z>F>>o+oM{f-DXax{$eMfakj-Ep7m1 zmZ~F9)+!G^VM&E#Db`;DApq0^EW*R%7bi^yU}!L4%oIjMLbokXx5zkJO@#uE3coQE zjYjZ{tp}BIfrPe%&*r)cNIt0?ofD3M5DD%F;ygHPi#M*)Yqs5eDz1`qkRjhwmgSf- zsFXTSQX)FXk+d8Ui{CWaydAbQ_B|rwL%x6`X=bjF71dHAxTlpYl1|q| zLw1d7B&EBKkyh$8HL!_^_cT?miY;NrjywsJM>mwx!s76#!O~1)p)C_2=-B0r zwF2`{p0sd1v((nk$-#O=MYGXju97L4n?r+&!fFx$yOs0g*7FQS(orB*K?fUC_Darb z&ZJ-x>lyPL5o{<;xDk2anSM0={sMOcZw?YlD2~-`iHLu%S><@?1S6k)LJWq1NJgHy z?3U+HQMmlm@HS;T9kIFO%u?h2R_v&hV+jhiZ#-_l)SqBzvQT42>y$78NP;QK%4+eH zB%eGTOlMx9=X{%%d9+IfI!+RyFp6)OoZI2{`MiiOn;nH#x*#Fw<+e)d7O$`Xam|Yt#~t zf}@OK$cJ`d*F3nFvcexTzd|-?FlpSf5s$UJvRfp$WXL$QP~x|w@WI(RZw_cdkQdE! zV?r>)KzCI2_Bj+02WiQycdSFl91e!?T|ikdS2ivcPtRQTQi->s;1>q4%ragqbiS_s zRwY&h-lJv*@`PkbEfKo8wq4K4KSU27|QUksobrEp&UQ&w~ ze>Yad_+$nj9CstmvCOsNC#EA{$PdA9#zKt)it~ANzXK4CoqS8N%3lT_FKIjTlQE`{ z)FYVW6a>+7I!U333l!y7;E4DI&H%to^OObVnnG2|O9B*^HYbdX@_pS!zex%*c5gBi zX>%4F>PwkMh+Kk}_c?+tQ^Le(4zqwV%>=;uATBy{BfYnT`*5jGRSLo56@D>V!OznC z1u^u?L&7J+SLQgv{V}F{kI;+zbTy%QLw@bTq{lQqa*3iI1Fn7{V57oYC9E*R3W$D; zX$s?bE~NJw+^pA1$e2z(oaW4^L;f`2$tm&(ooV}X_hzD`)lW_cORlqJoj~{?!rORa z>h!M40Gu6cYKM*>HDJ`acBd+bxcCuWSpW?q(kh)s-w4ATU(z9UVyhD5VDJu)7Tm;u ziv_)>(7ezXq5*Q$ABoAc=}Fq}16Hhjl#q31K%tT~ zBOy4Br~c*8sHLe%Oz5s6O)P}o7*V|C#FmC=4IVo~0japDFe6~Lf#%m>jiH^)q9~^! zcY#`Ty{uX%;;-%ntwbPFp-?fNUZ?=rT#0Zvyt|>Y&Hbt+R-Ci8+sR>lHPGsU=%_@^ z`_QGgkzXow)p7DGQluveSL@B)nUV@SeK*(qamI?DgHomSHj1?h(Y_aWV;s)^^i=gP zZQ^Y)4c?bH!q)msSK?##r%dl#Q9;$2i%+@9s?u=a2f3u70SClaQWnM@jHj&TOMhwk zmBqM&q($9|7QKEbPAIBbV3j>1E?|vPw*T->YYv24XqEFoCQzi+t50ja;~33dcJ^39 z*Eo?0Gq%sVlB)v1NOE&Ng-l2Q?Zd#2h?zWmENpmOB9vdyOc(@yh+i?6sFZ(A|}x8uVl`$HQ$2<(^@ zTS^Ud)fH4KGuIx@o?}9vKlic1KL(7pn6AT#2qk@Fq4bo>jmkMnZ~4do`nnX^i-;&R zjpIj!KPwU--a?cxg(EQ|-NM+lh-L$P4++V0BTgBEKRhTLaN{c>c$MdxdJK zxxywupZ}~tTAd>V@>3!^mjb zl!(C$eq_%S$ut7wy8~)5>o6ZNfoJcJ#vi7D+Li7-NHjzh1Zh~yVmNV}WCX{kzZ0Dh z{!0aBE~U96O)=j)UGyUSHrJ>RPSDl(@WcN73lq^oMgTis5s=357*L1GZ4-(=QaS^d zS|Nq9C>HH)g=q9j@kAO^W$1P)u%7FA-k9dej5y()11o$Lj#xp*HjH0pootl@G%*fU z{St{@u;k?p*ase<(w;Q9V1--rk$7lF0s4G?66jl$=sCJZc(aA$8J9NP6~1aUeoBwz z@o^g7eZHf*FQ^LTvF0AgU*Am7*LQm+2tz2&MnCp7zKuz0qYH>(Au??KwDqcEesYL9 zlEt6Tj+f|dkEPJmv*%3uIFqL18&o&Xvey=+ul@L2&NMxfAZ!xI|Y$-EycW%M-ov&>h<6 zb~H>^9Ez}8m<4^SiJWtV5cCFZ_5IdBdKCrYk~ax0W<4|Gvk*%{&YGbTI{qmC(8}-m zf%Xy3D=&`EQ4P8qQuUKgS#<*}5-7`mDnB6>G4S0XD8faz7ES?!r_Zd<&REwm z)CJ3f`^d_y@V_8RX1xWcFHi3rU zkyE}P!0?ByQD;WFRBcC!8?fVY2nq{-f1;{yVD;!JklB>!Bl&Q;*wZqm^61VB$JjV0 zM5js3cq0|Ji!;Hg&GUxu5DmdBovPGT$q7I+Zh|dpXNWW%0*TMZOymS>ZEifZ$FC#+ z3|Kt+$2u3joODTw?HYP#eOgHiq!KapB9Y3R;5yH=IK*VOMwFfJ6aZa`gwSY@A3(ib z=qV-m1mk#bMar1x_Ch}9!>B4>WnB^I6?Ccnl(vYf6ev~FA4RJ0rbINo$2suv_+&BY zz_ShDgeR4Fv^qT&3}!rnyDJ95zSGZ@Gx5V8uOp9hW_kliWRKb-nJQpRZH-EmNej8% zi$LfvgeoPMmDYH)x&l-((__MBg92Oi? z4k6I55-?lFs)Y_cU{2)C>Fj3xD*>va^+*>*U;LzWv+C;P<}${QB`uEn>c6YX{b|BS zuN*59{2uP`)3!8s>>-6vHSfUpFY^)Wn2#rGSpma}0o+j693ueNeine>F<9u%mh!zD zMs@QM;^SKSI$*m28aQ41(CsT{?BG&!g6gPYB5mS;sko31Cu?H(JtC%_DFC#A7KC%A zM=qF~QD@r*z zV5KxLAsDz|8^akPgU45$BEQ)`F$kuR&|`A2&?HwBL9Yc1!892SogF#^eKRD^1&Iwg z>(E}RpuFq%tUhzfR37AwoU_VoYAF7rONI=yFFjzpB}orqB<)O93KsbJ8P~pq2>oCF z@o)d&&Qb!_2@QP#XAp9hH}51xr^_*LQ@4ggrrp)Eode$z^L$GZ=j!A1IWfv zNn|OI%Y*#B7*fxmcv+Z3l3;5-09kqzv{|*JaqHeNCFqF3j-XE#K9Ub46HHN zEyrP&r(N;^1o0>g2Cp2LeQAXrz$(wX?}|jv6&m#B@a73=`zo5Kv=1C3=S6sZy62sN zoScKT?yW)ZmLd!`7V>k2rq$eKzZ+E-yu=H%`!SAVr$SRqeNpidbNE;@$~&v^`*g~c zqeVBv%I*ilB)qRm_na#b^F;85*$< zFO{I$%Lj^jHX`Hr`JF+lLDtbIgG<9e**B`^0b z-nst64X-8%f#wDq3wz)5RT2ge2lX(3$+X9n);=_YrT{?v2Yg+kTYfeUYujMVPi%6T z>tSp+((uy|u+O5qc)G0+kF1l~VuI1(w;O5BrXjfUxT)U+eHsN@xJk$mKO^EKSj*MC zV#XX((}_)c5V2UF7PTkiW!gEp65Ak}A-7~Tmb~LCjR}xMCm(M#mf0Qn6KSR8hZS`ia#Y6n>Vy=#0waS>!I*IEh#z|S`OQKR z(Z~#^DmIV8z`EIv%?#KtWifl+Q$&PylDP`qK^WUf?VlWuRkCzP1%bJ7NM-=u+ic~P zx;!UX(`*;!$w@S)fYJ&~+@>eP_!Bw^j>>ALdB-V)^c0QKNL@q$S0s@Up$WxpXZ8&( z=ml_=B#TWGr#Oo|rn7=IU@HiI>^SSf9Hk#%J*U|$>`v7a!U7F3;GN$i19`_J!i`J+ z=tUdJhBXDjlV}h@_Zngyh_&5Y3`#wG5KstYPI|j*_6`C$fC~k)z;nn=!Uksy z&yudQbJChlG4|q`5{cvNN();IZLAxjLWl~4hClOGy`hT+5d6JyzM?IvWGiz4>q>E$@TOnA-Jqh?YXmk@Gc&u! zdO&1gaR+qRQ2y(sO^c?XKLv#Oa2+D2aKGF7aWoyzGVLzNd?KuohbLf+AK|c^K)3v+M?2DnH;o>AQf7ka!)Bg_GKxaUDN!DDK)^CJ0#C+>3LAd33xI}g^6h|3ipP}ssISWOVgeC0#d8#8Y*(jI z5si_j4fr2w9?(hTsm4*kn9H(b#39CNel{Y&-L7Y9GKglu(#yIKJy&wKR~`g325JY+ zDGc=Y7zho!evqJOXCea>0z6T6@1zA-u6qv0M!+^?W%I0#J|6N@>6u29Bfs;XESQ=S zm>zoaFw%QOWej@xMNsgu=AevPlC!T;*?(12?<%@|Qg_W<6dUPk`jB|tw^-Ir=A4~n z&TI}RrL(6=orN~&&z|_XfSlRIYXS|XJGZ#F2F0dgXdp^^JZo{yoB~cj@O=T*>PQL0 z04()r$N?EcfS}t@AnPN>z#J_&7m^39uc7Qu0p4$MsCBYwG39^T6B0)i}OH(Evs@#wFL=FD%=&G8I$b^ z7=ux!7?F}1#YBZm?~;YlYo6kwAYC_|3wrR*KA0#WceE$0%wQOv>;|NDTc!}y$E}so zV#yAUQTFaJ;ag0SAyYYr>z$IOlS`Hjq@Il^0FnKHIs{J9!}HPhGL*+i|E!Hzv@y9S zH=tEHK$eIbM<-t&I_u|h};-fF|(w!AkAz)=O2uo_Ix=$&r|pFyO4-OLVX zWdg}E0^=Uj$@u{KwlO$?%7r-MgN`3_bNDXq$kr@cJvlu;D{<@@z+xyy2=Bc2v%sgV8$ybTyGoXat zJt7Q@v#m(v#I2I@S0y4a6oV^hilJBZ&`?}-fRFJv1?LN(9){HnVceW*4au4LeUH^}n=jULt%%mQ!|YyK zxS9ZVm27tF^1GDv6rgxp5jZL-o1zAKka}_!@VKIyQL3(KjIT1@G0cYW^SBUJY-@`u zJSns3a{|SF`}uHLPa-S+)o;;04jx#GT()0U2{kbL-uysU;2B(WIL}Csk#gj-SrU!> zU}jOrtL~kG5&h)@4&BqFVNwhVQN>tA;9HImKEe+Ku)U0h)Z{C1!y8Cj=pU6%)%tz<1xAdl9tyeEdn8TSR8ID^LxnB`$tUWM2_)|rJp<9U1pvCoCjw%mw<$ayy& ztJ8IOB~jzE3+b(NrqXGO-j|4vq6hKDO+ZFcmNZ>ESV_$p0zRf}jEFMQ0p~6|3m#5B zlFF-oPTm}q4RAdppUV3yLeGRgR{&H`rcI#dDo$y}!Sqr~#=$a6jQC3hNLq@$#JeO| z#>0&aL__;WUR}>_?4F*-XE?|sKOq0{B1qjwqz%6s;v%$WkO%GiTFmQv%vaXc?C9x2IUB9!}_MDwx1>uYzq%fQ&Gc(^xRL@mCBfg!DeBQjTxb z4(&|YdanU4L44lfE`@-gXszp#gSgZcIpUHIeAT0BkA_weyo7dj8=D6#ZKcinSi{&DI>~CR(mG!)njdL88Y7bXO0%6 zK+rIEax)b*N>~})M8_n-^dewMMPf$~cE$H|s4~AhE%+95W~%~_dZmQ1oS*2vRrp&7 zFmQBNnYgl7q2t7*1sru^vgUv=-pik-$zojKkjl;*bF)8`qBG0P1oeV>0P5ln2v8cQTbCaibZh`+X#fCGa?*qou)Wu?bg3Z@4=X? zoAPG|6AYzo=8F5sLOf|H(C&taN>IL|6)@mG%?p?rq&AOP_&We+b32z|H@M1-2BMv$ z?$q3)Hq+1i4B89`-}AhQN;;xCf(aMv8|zsKLc-iiz@!HYomf}t2hZkCYzNK==+pOI zBx2P(@iD#43#7?0PltkYr<^fJUkPRjb0k9gbS$LhOo&Z9*=URkS7%W?CwVdK83B}$ zc-+<96M2K|(<8THklq-(H$W3{!ElSVvKuRjI3FXi_iW*#M?R@}WklD#f)CM*alC+- z23;F;W^ga$S>)p}q;c}P2W$*-kA_-O?{)~RK{-qTWP+`Cn%cL)JkyXgZ>k8eud0@z{b6L_VWp9(k!Pr;mr>#Sg^fg2n4mP@p^uM|vVJ3ELX7(RlAf9R14m(!8k z9IKMa*A!>Ztue$8F~J{f7HuigMU7vVzKi3a*hzJ#NNrOh1=z{(NhTOkDuR-|z|c_M zM4;J>5)Oh=hkR2S^N)(i__{&zD{Y{d^O0$)a4PUQP_*Q+0%EU^rxuPQYg|iw-Ap3q zea$Yu4;2zLWzhSkp%v0_RVYLYeI^F>Js_YbZJAPWr>?H(Awx$Zk|>xt>SQ ziThloO^B36AL>lUV?(Q`UK#>G8Zy5WxoYPRG@PZQW1~r76esu_eMav0_Uq)gM zR6!W2A&}AL1jMcs^Gi_mJIaP`H{t>PQ%p&WBf03Id0^tp#ByQ4lCh$$z+OSl8agn$ z9v-hWZeW-iZ70OuItNn-LtzD;tr{NAc*QA^RXW5DbOWpqK_|fi0htSaVfZ%+STT~n zo*fYrK=P%Nt{t`)co$b?xz4^a06OX9I5>%swv`QOjfswE1MutiFoy^XcHCGyG0-z3 zrZaELWzv1$;3$A(InLC01#l`*@3871&UN}9cJsW!fOW?C$bsok7sVw=xmkOq zxPF@uM%l9s(4@oSmFc^T4xGYAGql5Hbpe58UmFcye&iQIHo(Z{4P;Mvm?|e@v>^i= zg`_3}9WsNFADCb4te0nTK=xOYe(0uc@JdBda3>Q&-uOH^GL4x4OXXzSlSkuQuGh3liesVTZUp-j7Q8vkTy4#X)+ZV$uAOi7Yxd~Ob7>B^)paTX*SW zVvrF}IPx7LF_j1+)Vq_MqwaXq9!!{mU;gW%AEt#UAx6Y4J13cPjKkc7$#Avyp4 z1e3m7>|jp|z_ShqrD4lN&AJwdKu-=!7FaPmm^A|IE|RFmz)qm`ri`q`Zxn>z6v_i% z4EUi^(3mp^94M^;F=yXkF33jMfDN91_e4KI*p9k2nf>oE_=r%(VnGjHZ((z-fFlJ4kc zbT|ywfhXx6odU-eH#!|VXi%sDGICDaYvq*onxcS_p1DyMh>Nn^HHoWz;`|fi^$(${ z15%g-dCv>R=UyoVi2Yz97-+1X<(d>6-ab?0BHf8SIiQI&%q>S588HkdbD69K^<(iL z0NJyg-88xahg4h(hV|LYJUYxGT#WsagJhGAB1BF?YQda@pf;{(fnzmgcNzScPmJVj zE|<4ivNIS3wg7urpOPX#VSG}vLrx;OI2CV?Lq`vzt9t-r4!_W3`c_f5&VQC*=f_R< z-}+CJP6Y!?*V5(cBlGzYS|Umk+7NeX&q%`f=5iP!`!rjDR3G=|Sxu${2x$_Sl@CQ6 z&sU}WdyBy_JJ8DEe4mVo%nW4Secl;8zyz1}i1OZp8Ed;IsfOtU%ods^C5&>ec(#0H zAHWHlO%(Mw7%Q!)FedCRk#JjBt@HZitV{wl7%Gr~Ncb~7Gyrg^E5O~<=!$O+#>&pj z{We}_NdTJWb_!S~cq7z<>WF|-ACo48e5eMCf7Wun13c*g?Z*OXMnYq9A>Ipkf|}{X zDE8es<1vs!SRzLm3UhHeN;W$WtU@4c0~dJgC#$fm3y_~sO~-!G5;4e*>z9mC>!74F zL894!RbX#VgOJ7Yy^oEK3EYvK<(VFstP$c4z?7dNH?qV2Ku{|u0Fse)53|fzaZJdg zNA2~rsf4s~_lQlPxCh@aNwDP{Jh2XX+oFIE^L0w}ghxR6Gh; zf<7lO4;HNxSN#|^Kdao!iK|fXX0{=f$a&sxniuxu|2P;KQT_7^`9A)jrv;nqCU=!u zGS%T}VUU@y;=yjL>|1Fjn;PMAh5G<{mv^hq~h&|58}bg|?>*2EdjIarIiH6kN5 zVuS!$m<~*1Y9h5BbA&0QP#bRCqPD}NKK$3U-xOL4uDX%v|{5rWy{ACI9{xf>@p}niLON= zdhl*xvfsPBWuEkE^ZWHv2kQ?TDdwGS3@{y#)3kXEzjp0I5&aJrGH>diV0a(fkvH>k z%jRQYz=psqTmOUhjYr7_o}7)-z~?Sv6Cl$G#K5@K1`5o_KoF&Fgacqt37DHO$16v( zbVE}lya%jU`x?pf17Qj6T@r^(*8`(dhji_koz_`Co*%(BY-bz!-OXjMUP)6ec<`i~ z(t!o8G-lQtU?q*JxC7JazDW3E4xXAhM?#Ep5NSXA@* zHD;^_X$&oUYiXR^aEFTU8^Xyzy+)kKwGVnD*o*=1{8BoZB*Q&e+lEKx4+=2-u4!5r_9;;xNP>^sCy<=*2PG|)H+Kqsvwr{1=Me_Or zkapnkX@0hcgqRr!x=&K_p2t3J=ykKwX$kH9I2HhAqA#41H8(Q{ zvI}e-{P?-oTY|c}{EN(73MV@{CTE(Q)RFMJ$zJC0NmePReUJpmnv8(69$BeGrZv&f z)zmtMS>77u1&}k`$dYB_)r;6NV>Xu*W)PQb*n2$3ULzc(Xt8%IMR6UNNkaDkiTKba z_ObP;A8VKZyr6g%LnVetF~(>J9o-BWTNb;S9fFy2mnnUvcOnXOyi=_J@*yiuRt*yh z)Bvwzrsc|aT|4*e5Uuj29T?(Z&RCnxo=pQY020{7*cs9!B%p;;;*Y}g9-T%>561Uu zTFP(8EiWP($>9#zj)7CD*~;*{wIGZzAtYcXf{?!3lwGU!QI%COkH%tl_K5RAH9-{^ z=x{HXtMfU6HSv9th2Z^95x;BXFRUlvDS%43t)gbdbz)>r!2NYen3aeq?2Cs#Y99|r z2+#QF4KeFJkIqjF6+G!uyvH zwWFbgPY8{6<{QZ@8AMPyL%1IKEBFzDcF?|Zoh(^!H5cOU9;u$BQ-_F1*R#d{ z0c0WSG^v4Kf&>Z4Rv8eK6Lwtp0PQ^T!BVG-GMxb_qyBIIhX0}FM_|(%?Co1LKK^y4 zF-M@`h6yxWVl^x@Pq@nwIzK#&$dk+@n-Rv) zXR2^8^bFf;nY$Oy`C~fcEr!>|0>2a!JY#vPl8+kqv#J zX;&>2qrjLHo3t&5Qt*J2XT~cr##uehw0t!DuRv05XqT{arJyvD4j3%tz*b*+#5j9d zh;TcY{9%V<(>!I-qmExd9&T+Rz9ZwR)toAi!Qk9L`3Y^WHnBq4sT!X5JVmyftM|^1 zh@!xaS%aw|Vd=>rVB=y|d~&xOh#SFg-c59}OQ)Ef>$Unf>l1qCpE+lc_~^-1E?2j*Kws+UXk$Y7c@2Z1XaL zzzBEyNXII08J_7MDqhZ(9!C}Gl`xmGDQOu3&j_%Y${_azR7oZ*eFpNcNssBK1PNe? z*ES)AkFL0tH#kXv!AN%I^q_e*XBb=rdV+wZ(JC`YYwU1!@yB06fr{+Rv*~!2>L8#X zK4xAK<`fXH)Ar~iBVv+OM$k5iN%c6MdL}&u1|SSm{lSL-^)_c%ksCZ$-TO3sVo2Ur z`9Zdq20;#LGuA>A%xyPaz&I7B0A?<@P*$RmA14$m|29VP2YAkqpimIa^>Im`#1qPC zeJr8q%b^Pxvwbf5)Xo|JAR-;DR3vGz6(Fzkm`y7tsN26D@g`I>J5IepVayNw z-2umjjdg{P%4U5afaUr`+CB%6p64%Nch@BL2QDSxn^HIGc^Z(*ZGU32I2XIbr{ZYS zeNKX?ynjm{Er-(Zr~JR|wSb7QkhC$+uQglPsl6NZog4K;y?a!Z33G*j^!p;D8FA1~ ziu*<7>5vHl?l{FLh`UPQXLXa&e!_xr;(JPZ9RO^6_~^epxS#b|YzKNG)}(-3E9iEZ zuA?K5QR3l_h7~m(4S>zYLhhKcah*p6eEevGs#Zhu9oNSuMr&$=lRB|MK6@+=EOYS< z{QTM?JMSkv$(z)Ac7}vbyk`1SFhFm_!C-oIji$okC_*~)! zHy2bTSYECN@X0(}cu$>CASpE*8BHD3GI`XsJJ>rW!yKXGi$)jWFxgMl6JSTx)abR( z0YJSEZ_-PJZIK9aO9=x0q(6tM_2kTBy{iQb()_Fs0UgCc6S{(iF;!=i<$jMW=$59;T+}!YVw@u z^&lH4w@VLloSzEFglXD=fm6nI(avLBvH~HSOeCOnpV6#^`s16CaErxEW)=Yqbf-vk zxlg2jvZzM%Io9e-C~}Rfy4kNyvy1OpNtO*qly7=N$)$TVa;((boE^kbd~Jq%X;QiB z4!|R-80<3v$t)2NH=Vutpu@34>Rj(3foei`XPZJjgTh-%rPMkT6@KKYSHyL!fUV)8 z5nyl~%|GT39LrYT4TZW)woOB#H0Y1#|E3xJwOOH&oa)_kgIV z#=bFG_m{r3yfF{FA`fxO%i%#D$dj6ED*3RSloHWN6GHcOc(-UG!oj;$6m!30? zbda5?81B605{dAu>Om?Pa7^^n`)H1n+hjq`p>wOdbEb0xb)E+r8R4>`2S16a)9;|3 zkjnsl&^|{gzstg9Bpw$JHi?u``Z{K>xq51A*uvCTAf)!{i zHr*tZaXiRM-h!b!Zfhh8$6GIH8#4KseQ3Xgh$S8rN_b;7h#gKM+Z@_gXWH1_xFaye45IOayN+EFv^n5l| zz^(=#2Zd>mvSKNf+K9L}d6sQyMBPIM5EDfhYncLA*c%120%n@i1@rj)(qt^$08KO- zRkot7E}gq^>qrV_Yk*s6D?~w~U@9RiBmKD}#%tbHvtN_q?LFH@i;Krxe;~hkEQ8*; z=~(78fSQAD_SxLr*b`&)H$WD>Np$5HYW6!>a_q2#2NHy$doGRi#=N+3H z9(xMEJm8)RPR7d3Vj$m=mS=f*r4)T8j77T3j%>x_xHWUjnGY266ETkUQZ)J~l6|rC z2*E{#$p|B_nWRUe){`CtDe^L%4Z|td=Ee}+ z6ghJCO0D2nJl_M_2X!=uAJWb?b0FfUHJ@>n9qUKi!2veJ<{~@gta+qa$gI)blmnH_ z@3(rGiHCGFIJ(ac>F+ndoJWD|x#dcJX^ZUCHw5&A3CpN-ck_f}!S7+2P;l{wn8dye zDNBNWAu$zPF2P33TM~b~8LwO=W@7(=Ngeom6c)e;3!0Ma+wB1Ty^2bPaF;2pYJk!D z_Md3xj6=rkXhX-7ePmqgV0*Hovn40j(ZV**}= zndBW!BfxoxeBg_%K6fFdftCx*>e@K#Gy>B=IX*qH7Xyk9@;%K%ivzltFMuAqN5;9h z92z7Wh)e*^br%N6p}Rr}NazpDcvI1*+9r8Lfd}c0j#PBQUMyEX!oqZR1EJczqg^I) z^J2GpL*-c20_+GfMC*#$oSxdsAihDy-1IQ{(_bAXDZTih`~3>Mv5*4Rz|o$Z8Vw1x z6@YC{JoOI{;JLVi4s&bEV=^K)2~g1QFEh6RUR}v8>x})pKx+K5GU{x05=U_^a6(z< zLr#fKyEsuU!~d6m{No=iIrV7Vwnh!(Q*6?E#?QLre2WhXnsbb^oYB#CO9nCiO(%k1 zV^!plkd!Uz2amvnT$%I|Rptsk0{?$wZ=xhQj3bG@F?+VN|Nq4cKLIMEdPdzTl7PG8 zAf<@Rn&aBxGxBT@5I~Q|Bv|I!Dz)x?V3w(g6Xp|*!=`CZ+NH;Og;;H5u4AHZS6zJS z*@UkAwYj}Sk zjMQ&&@>4Wf;h7$c0xf^{YHV&Sq|VgJGl2G-T&XSK&I|Gpwh-}2ga{W{m*y_*IVyK)L#r=WYa3((8n#p_^g1do`8HLf*4e+%OmOk6O;ts65NKSyl1~!uAn0 zY?yy!qwrf*1sRjm@S#vOw&!vAc!c>IsFiu++}JheBQtqyuqWJ@BaSl7hbiVmgtr?# zfOE(W`bAxx13IeTsZl9q$8l(JB9Eb}cm9Yn=jeRPFS0tdbmFks%$(qZu5xX~7cQwH ztE@?hvkYcznIdePt-og3wM6E%n*)F7?b@%>3%V)s@T}OnQoZvjM3Z_OyMUF*tYA+1 zedCkQ7WhgTRuQT84asF*KYK)^W-bL+UpYgtk3mv>#$|kh7qun4Id2|?&O{HYIErpB z^ zXl(i}aGa)I%$U3suD*t$JtEUMAoA1SvZiJb{<2|h2hREG6hx5${YrcUHx15C%*{(O z6I7r6rl_rn@Jk1wAt>MHui-r~(E%z(N9+Iy&M}&lR6a@M&j{*%btEIA#4f$6c>Sgu(vvIcm=a?ZXqa0K6hUj)i7Pd8qkabx z78{``pB+h?suFFZL(lj=x3%8RAe}~=Io55rWRr{dSF;t{rGbTGI&LVOQa=RaJpjvC z-M5zY@@PJfSYRAWR@fvT3{ra3ywI>Hc7?{jo|Eq_Zp;=_-CmAn&0yXbap1woT$rGe zKdf^tD5sLfHNX1gEDxd*+&vMs;mDwEZp4Fg16xjQB$DJPH~~25q@bMm))w0&kkX)z zIa~l1ge3P3Lm$NF=MOn%`HlvYy?SQb-?hdw;PYvR>b9eKky@GuQt5rX#{vH(jtTFHj8(U}Ip zz65wDukml%{1*a;7IE>JX^d=ZbbQ+lz8Ya}wNIKt^Q%WSk_No@=?`PPyz9LgPhwGm}y z9t2!3Un+C&Zq-5{4n8MZ$qDtQH*@&tm;2mL9<~-|m*Og`e$jtHK(Yyt_?u^i!D4EO z3d37(g+U@r;#i(*RT_7c^psIT5u%n63in-m6af+J3s@=mclD5E=4mWw^v)&_ao8uP zO#igbsz?o(;1U6cJaf)Ix6%ifxlfCcu-c>dWMGZ;bfaF;Pd-Oa5f++=PjzrD1T8S#=SSo_4xDvpee z_a_k=p0{dJ+ayJ*RyBlN`$^6z!$;KfG$eC?!(!IdNgV1Eq`X( zxj=u^MOTVi|B3)G{&nF^6~SlxTD!iz?g^7>%4T<3!uE&(B9tdwWi>XkJJhlNTq)Ga zrLv@FbpTX~)_DOQeR;!8HOL@;kXV}&j^Im$la{af#6|DMJ<)JS%?a#JSa4yoSp$r^ zSQ<}6LCXjXuFNx%J`Sws=ld>{I_@T*=Cjf3@5@Q490#X}JONfh*ua0TXJ-_84@QyjKPMB*Vd%acZ_S8q_aIx=9x1svtC4h#xFR~t}u zTKqXB$SnqGvBoF0XwC?5Xd#*qB2nWj4BgHZHZ1f0O05CV3~b4r1hU?1fi+htj+?dd z6O*~c4BAIZuE%&6ItxF-B|>VyAp-x#k{yzBg|N|fMt=ZAQ%WuT`&j@4N)>YMX#K9_ zhWgkX1jC89nhWW}2|m=G51W;L%)sKJK1rW)H>zXyTqvDy;*why*6n$?O4ZNT-Yv~8R!uOX>FG1GpzI~L3 z_L~}$80+H(9aoJrN9?XQk+F>x>tmZ0FMGBtad^CxV1EduV}i`Rmj&3ot@O6rav=>N z(~N^SdBDnVu8pCGx)1=ec)n;1ZzX5$g|VeHSo3wHLvC#67IN%@)|yaoPuxUQq{!-} zh*f#O?_y_ekqr@e^F3(D=nB-!!JK%@*xAGfVpn{oW&mdH$QtE~iLvsT>f$37%#3^po!9EYFyQTTz7h%Zc4gl}x4K}52 zF6hpb%wP(uMX>)AO{^9M!hHYf+vCQ0=L)8`%SHzM!JQSb!Xu%7U3+>`&I`tBezvi* zhAxIM2Js|%^>bu?@{DklPfAHgpRxl;gdaf-;GmPt!dQi{E`*EsHf>1Na+qEfO`Oxoa?qbAIT(&z zWP3&jfl|?v5$v1R$wyy};L8~$?8TeAi{fBOv`}eYb`jkKs_DUbw)K*tWh!6tXu%yK_!rf+@3Km zc_?1+88UwQ5c3L|zA6Qe-VKdpoOHilxb=!faXxm5J>&d0Pog(U`YnH!ocqR@=F>s@ zn|3HHSVCcpYcEM6@4AIvh#gO**jv~q=o}m!o+RKF-0i1{2Se2&gk}HJxl;}|pGgzC zARV(KAIoMxGuY|d49_uA0xSkB01*KLQ=A#eFw=mwEgq9) zYs)9fjJi5;$Z+H5SkTBA7yoA&a|7DIimGkW4C%xt47)V94Xj7kM4LbV=a2dU1~-ss zcNI3~mF>4Lz=17(=38s6P_feF-Z$OQ0EySzI~JVjwZbqzy1J3^%RH+;7=ASTF@tB$ znF=NeJS|3WIKpu}K#Ov%lf~Nc$ zik0&pj6H3C03QL$pbHCp+qL+2mj}PD&9pY@X_%~96gp5NpkpD`QS&=fi`#(|_ir2xKB-j)?h zZ4*=Gk|2R=El(~mZ_ouTUf$yg{_2c-RVLUcRc63Qi@J)3Jijph15=Up$CPoxu5(X< zzMVE;lHE@W@bj3Vtdjz(1T{a2HDhCiD__kA`fI8NGOZO5nMQC{Ys#thRU^j07vdG) zC+qpCL!(|ii)8$1MzZ)Bq-mO$%{MsQx0a`ZAucNP2Vwus>~gd_?B@tIj}?8zDzgCZ zMLiK2d!8wu>O>jIpwXa8v61n-N$R`J5CQ&K=btn-ac0ux1Zcz>9}|z1F&GZ~Jpjp7 zhyK8<3;%ttHryk6&Fu_~RZJj$^M)fIVJL0Z_7@NGxt3n&c+YkmtPpRVazFTyOf)5+ zRU^UCr0cPlAHUG&1vO7N;KCHC^rE6@BWz%SmR!#dbsij_b5nQv%<_jY%3!9syy5 zfyNJT(t$;IB_A#Vv>VVk*I>RvFl^FT6yK6T%XhU$;*VIk|M}Vc(zs3%dMj)i{Vgrp zGa|>kiC@7}#kw%d3rzy28!&t>1Wr=pGNQm04i8;l>!B`tX6-6z!N13%(SRooH|}#o zT>Y8nHLjDm{ znJTHFaS0G}vYh-sK|&ZiP>Hd+;mQ|&{U?yQ$1`RO^A{wFt^yEU>)<+S+Vp@p5}6OPv1olE%3deoc%wP78%=M*EWdRgM)U`|*0fj7 z^Xv^InlBs?aLmc*8=p(aQo78zOylrOXTK)mh6_$|D~t5kw^QludmtE&=cE{y@NUZ4611m( zt+>U^{B&S{F<@@Z+>lLpC6KySn>N z=7cX2k%HZNGr55e1bb*$MjemsYDFw|*EpYECu~Ayyzq-*hm@iq&T1Bc!5(^SHegxP z&e{k@$6-hsGwGg8rF!Zl5|T!E$`TvPb_b>~R-b{=ih}?RCCHD-{A^WR_$fNbf1g4q+?P9kTk6$8u8?$Lb|Bo7j52mV}u^Vu#i{LS}Q8sk= z0j@7?g~8gGo<|;ngH^|F`Q8ejO~ilIuP(N`m_(tw7K)Sdyi+V=0XN<7#fV8_7_} z(ya;|$a}!qiR2qsAl?(D)cCLss|MJH3+6FWiOCMIfrnNe>|W5HoAT)vT?fJ!GE}FEp&i#DB*`AE^v$l8n8T+!=>g;B(y$$n zN-`aVF(^PWl67J;Frb#ymEy4EAlnk>CpIsB*n85FMy7&V--53^%trcB)K}hAO~1m8ukq z>*nA`<~TK#Ud&l#jD5y@B|vdol+$1j$9zuF8}xm-Qnr1Hn#c4-OJ@SLb6kGqha8bk zwg_oPdOL*B%kD1I+}~En;PO$9HQc@U{A=~xKe@$WOBH%er?m2d*jyUhvR6aSXJk38oYKbMC8#PB`G?~ z4^$(}cI|6@Y!i9RQph1#24;LV=3F$@m10i7^z}7DIYO8!q!bthT>PIu;&Aic`OcW} zkYiCZylmD6LX{Y+Bo^{;eQ_`q+f*y$wWB>5Qf0q=9m>s!Ly&AKSLOYLDLbO3G+s>G$O?L z{U~8VK{TA~6D1I7W_5FAli^kcA7B_`W^jdah@@o@sk|xoF`MRi^Z|_5LtG|%fFuIV zm2qYlTM--Qx2bDVo``IjQR>XV;u(it-1c#VeN|@>1#D>MlVGPL;Kqyk4x(0Ifgcj) z_KF`J_#|Sbglj0fXQ*ijbn=D{7r<^;xaQ??Huih!4{U=$oBCh?fdz>$G^N`C@GB40 zrCO)x$*RTP9@Gep6Zizv_9&DP4of^UoNw^+%y2rytIy;l*6eK~9fH_f+qOh<6fSrd z32alv0`0aybym;N9~i2O!NaoK_D6OwDPk(z{eBc1Gio;52HNNLsw%?39iHo1I`VyxnPG(CaN;Yx zp_{nyjRIXJJv(j;hkoyIlkCgNQ4?}BlE;Lk5D7QimcYJPFR3C8Da>6yS|)&M&;arH zMP*z<_punnEGQ?<)8U6M3fWK-!=GW2|K0&XDotltY=T=)`8p{WiCSs6s|S{X-44XM z*jYVI4VQt3t9_W9;vhS_BO}YE=)#5?#@}xun}EWoB#W6wjBb5-hzEf75o`Vwaf_Q| z#%Vc)*t-uN`DFtRJ=Cq~!|vkjKhUv*gAVu+LBu0!L^jHX zm%`kKFxDL2NHTOnQPWh+$>6A)Y&1*l_>{Ejp;>2{YL*Q8yxCAQv#vBich@fWfIN*Q z6);3<#3FUlk&R4UWp5BYoN9H>~1=BCmjEmO;ik^GlLPS-pE-0>nctv1A{^q87YT!lPVmULmEjd z?x1*7U`-m8fq1Wmeynx>nf%})*!F02f*I{hlSK5!{zNu342@#* z2j|rFjL!xbvlbB)Je?SE!MdI<#vcmD2NFUM(3xvHFxzkln-EdN>NWztl+d4KoSVdM z(u*GfyVVM4I`|~C5fbU<=`JUS884oX3{L(k63O)iiuOc%Yc>FErsVvnyp=dx{*lKB zMdAGo$V7Y_tdblEpZZx(d`eu_ohO5MyPP;Xw~nzsh;Vo?3wA5{LET5k{e2I|%>29)(#r*$9!?9r?Emcu96pR&hhK zdPEoWA5^ak5wt#)Q}U;NdVD1~4|*2gMv3z>0PptKg-n>uqc*^2({3&ryVwH zQ<*xD2YGsz)zk-H$erBsiGG5r4B~IJi*Y3H*iw=fgj3foFbLSixgk60KJdGJpmgBD!`K?be`UNuNjX{I)l2C@gJZCi# zQh~N$Qv%^8`^3FPhq!_>OX!(7GK{_=H6t@kx`56cX$nFIrdopj>tzUgHLy6BnfFwT zx9Am4jK9a2YGpXdgs46Yrxo!}#wP|rb*&~V^pZnJ|NJgDs7E&hifiBS=F`iT$Opd1 z+`SM4_vvsGTh8i__%HJ?-_{K(xW0@go!C^S(zPvNpJNw1kw{My78kr75pW3;-7uuA~Cg716JU=bCfv% zCP$3KU;jM%*U)6KqcIFP zNnCb#RL^cHhn$6R-D?=8e^WhLA^2>@vvC9H2*{tffANieo{fC-g+f&*{Faa`=*sO0 zu?x+X@oN?dB(B%T8&Ce#T)cK-J*NUlbkp9bK2xOi8U7@?nkU-ica-un8^CWg4@wz5 zN)cSr&Yr^@;AfnwP8Qd>=4-`#Bkb&p`PFn|mh_pCgRpJ&%=q{x7pdMO4o$tzjhUfe z$U<{q53(jU4oPsBoX-Ztsq59?3KHGKvm>;>QMNQXuNZ)cTburM!t2C`w|{AZ50t|( zP6O<6V*R*er-1E)@Wsa^ni)mk<9WV{(Y1RO8Prnt8Z%S3)et4=RF#kJ=2xb<#`1*N zoFv}H44Thp-b-a?lB6=O(o;gi6Zf0klVB~sWk2oTkDy5si&q-lu`mK|@8SG~Cg^uY z5c_+vIp?&VLjUG6bZP%^JzFpj(GSQcdiOEr9~FZ^ABYK+M^=Bt1dhWY04z`Mb0BLX z=!BO{-0h5D|I;0`lhvlQy*}}HM1DtjPtS0g&^HA-wk|?X4Rmv@*-5EN)-JRg?Gsm^ zCphS5%*8!BtJbwnNR33O6oLG`c<%=!U#!dxhyXX6c}9FM)2^)F*+j zMEDYduBIUSN(V?aLp9)w#Aak$5MKxFtE%sX`;@?K%I;0HI{uAE*Oe8vmY->iv4Co0 z^6FpAR|jjnA|ASB*Vnxt7@+^szcT$;AtxR^$e(CX^p8B;+KJR`eHf%t>y=Rn*+)ah z7|Vmz;#B4``nLRv0YC6To(7-~o^)XB3lgX4D_*;Tn>mrw6(;wmE`~ zaZ`1ml`{w27%?8k+u@{+W6>-XDB(~I{zEj@13NarVRA~wXx=wO$@lpK zX4LQlKgh;W!hzr~{W+Q+)B%BN@8(Ip9PI`B3A95jc>O~|B4H$O`zwFsGBVcQ0Qw{% z=Qwt6$Ml!~q2={ZZEYu)RkBLNnBpKTMKf>8y&E9Sbf^(*hCrGcpCWWm&(RtLoC0V_ z8r_Ax3-uQPNi`>jchPBQ*D@f3nh{FmQ%E=G(DT{YPIO z7^%XgGCmwhf9~r)4hZ#Ywn72-V8`4|6IDRYIo-tNzY3H}PkZQsaG)bt1w-yfQf2Uc zH9@<5Vg_?{?7_f*Z#iQ^{38kAzjP7~LN3SIYj8!7*lX*Hn`7Rr1V(rk3r8Mz)f2qh zsA(abCCCMx`QVoTd+=%L!G5P;7IwGu3q0%M87L$_9{Sbe6n~1DP!mtSWUK;di)lh- zno-g3$~C4`r#FbT>pvWc^P6}A8S>8tr3kzuT>;r<+?dN^^Iv;7~9X4+l;3h-Z>*yy32v=8n$ zm@`n`nuGF`2{<9jt>#-W@Skj7HSJ?aD?`*W-%OO?dL^m#M*=P;x*_<65`|7r*~K?b zJ+0xyM4$%aS1*_P=26H<&m7L#4eQwXzDOOF^847j+cWGxDhRpXi%5}?(Rwh(maoOg zfmJGYlLD7LN@~sxa`;-AWprSl%jl40Oo!p*kI5Ao`U?moW z*R1DmEbd5sr$a~n6SswycETtj+}GPqd>ZjYJDn%jtszEI%-Rxu=n~CfMBT7&+5Og8y&s!HV7Uj?Y z!As<30*GNSZxkP4V^1qjQi&xx^%`=cV6rm~t4zYjMKvGfvi9 z4fCNrAHCmnuv-ZSZi4NECGfL~YI_r{1U;73nrt!Gdnc{TKZFEjvF+B!p)3$$91$eR zK&8B_C%~q5&JoymM>;1uiEh0xcc;KTT4x*JnIBzS4`PkYnN%yljsr4=cy!HcLFjJ) zxZc>HFTp@I;~`1xoN?6CB#y#u(E%XL3MPfID7szk5Z1C;V}pfD$Kpn*&3n=xNb?v7 zcWn%h`m>Z~IIB7!xZ*%SiLebx3yB}IP5=>idb>0PX;MA%UD&X%9e#BztVJ_M%+%k7 z;=9*eJf#p=^ppQuk>;#Y+w}PO^7O#Xt{8T^cj|{Xl>1n~+z6N}AOn$u+#gNGaWFV> z0nX%NUyxINhk^T9roG=TVE1-IfwC~+n#IY~kI=tl$v|5TkdzlGvQ7kW5FU&i{nPJr z!ul3s5Mz{XqA7K#QX1wwjI&q5j>)GPZiZJ}btCiU%xDyHt~5}(PsRRLiqHyc*!B)H ztEOzq_O0YvyX%wN*`Z8X2-8M{X+!5*nPMXtoD=rx=pigwnc3A7s|b|qtu;iQo`e{M zwxtwJ-skAqhS5w`&o*x?%(A)=oV8Rplk3tc01trZZ^xP{T-b%^&+_V=Gq|x%Iy0Rs z`ZG;FAM9S?&lsv3yCbcj$`PIYg7`%a(?b#-5z*000Eti2@)FHG={mT`m+bXCtSHmf{S>v zhIwtLt=nxwqcvl5ov<;p^+&0g_plKm*t=KJ86Q67z03zbO1i-&r^XW0%gA8d6b=}U zfT&WPI*@`faK4?`{Wx1Qs9ct71%LPfZWapCq(JRrGH*oYRXS=K7<#3XAdj|_k}yCB zD9r@H5`ekjI{RR&Tu~04}^w3ur zGdSqoBG8QD(Vds!)mjyIDQQjmR)Q(aRjRPOUHTadC_1dLm2Ps$*yBkD%x0@H|ANL+ z3`6<$d}L7c4-8@!G%1jbW7eLbwZ?RS$v_Nv5q%Y5H-xiOT;wzcbWX)MVr9q>xR_hk z4=B!Y!~e$zLmmMMWJ@wqArQ%}ie@AxydcjiM;OM(@i!l`(cIISrcJx_QBFTJnJO!> zdIpZ0t*M_J_HnCDVuXOPiB}K1oiz2E#_X11lnQ-p&pP%qMn{7CA{yRxt<3ba8KD=^ zI(Vj>-pBuUtS0oLIeM9*{gnq~9Y;(Uxo}#V(!P!=xeCHVT@fn10h``GLn8|k8>**g z%$ErI@$CJOZNTAP;N{9bTGMB?_VwN9RT30`CERn!5yIuo0 zK+bN<0jCHNoYm)}=HxJ-v{AK*yC={a;Gm=Z9+`<17vhMG`<*(W57l`Zh+(H;tloc^ zp}G_9B5h6^7j>Frd@!Z=sEy@c`K;iFe)Ru0mf8_OWqxLjc*HgzB;MK%LepQ|KcL5;Vqj_-Fm*A7 zKB9FzDVfd31CDh<>KNF)Y8?E>R)&JGtQv9-4C;cGt!SmL0 zoKm41*5mmr%f0CDz>j3Ubb$}Y=D)^uYxb`f?~6MHYP!Nn z`Vgk}*WdFzAWKbA{n+w5PIbah%ttsN#W`E}1oq;?g`iA4luZI?=R+be-QTudlkcvO zpqpI9SM!hEX&ow~t6VvG&!0f$m4lhzT|X*~*fQbtK{Va)NB@!VXZ$H6ZZ{1}C2)IY zkRCS0Vo!fy2I_;MicO{La7>Q10!kU=F9gu+%hF72As=0mh;D?es0H}9Oe5x$k3MirS8DX=M_;)S!wNCkOz72mdWBiK(V94pz08HWVl?5L^eLRC6+g!``$|g|e z^6-*vJbq$((LU-BE_I#rjWZHa*BBRZN;+Qvx;0@aU#@Bz3h~f!8|#Cn7d)af*QfHH&!z)z zh#WUD^zLaVa|M1m_Akj8Fe4ip#ns-J?EH8xHe=zGG z+{U?In0y52#C$d*z-><@<6?A&P71Q+K9qtrvB)fD_E&M9r4k~7tamF8YXDVPaAtJX z?|NSG*@Z1HJV0JpJd+yofTpsPy5BgVEf=-y$|^8yYFI6#$-L&9B zdOvB#hX* zZTJ&0jzM6WG@zktEvKAuSrh{`h{Nnts%3_7`2X6gf|D^-d8-Srsbsy8>%Nnw;?U{J zUs^+8!rlClqM`~h<$T}viaclMiY3!eUz9gyu+9QX<6JZ()X3L3h^UKF(o>nw&7aH}&e?0e zxevIfZN%POm<3J66fgV4eZkEI@PzqRKKt$rMPgNhRaCI1LQuvo5c_Sp%(p!4MCGVe2B6(TZ5)9%=iPr zT%Dzghy&1hoMx5ucg+AYlceN0ty+3Md1NDSE_JR_>idHx-nxN|M0y?t^5!0WSq=@D11#`YdF-OQEDXcqSbh+teLN?1lX;K z3Oc@E%&`x~zphZwu%Q7nObjGYZ_&En38W)m&yz^4nc$`K^OE_ft#}zX z`7yGhh+z@-KHBt_2EWBHc$!(*Z^N0!x+ni$5bDyUw z;SiL;pgVIdXKsMx;pD8P1C0;~V|jv_H;gO5)p;XVvGk-Ac5_EuRC{Mw>Y~XZ_bw$B#32vI?xNQV#y<{3^xxDx|!rTZiMxB=}D*A*d zZhHl>v~a+gvfA^dp`S2}%M5fo)r;$h%}x5Us$F9_%95e}am$K(m@`G}-IC|P+%~la z(1$>ULBl>0e-fmNSk~WCk*2}aF@(eKPBOW5UBa0cpbc~gW>y!CUfqQ5N!mx=M+z~9 zs9#G#K5vC86SQTapeY- zWP2_X$FiBC>IW2&d+0CUl>B9L`ATAVeWg zEV%2Tw`U$qsi}@s0Te9&_=%rcBVmryl5S|3JfbO7I>gm;OQvg-!nI$`o!_`SpX^Vt zr1a19?!h`oQv~OH-t%8ky->r|uR)MMBfr9>(V`9k|Vi0qc6$ zdYI=rVSDbVCb%>YRjk}wHw>qFSN6^cff~c=SUEc-;;7N*m>|1T2&OIq0DsDu0NFUW zo}AJF#;2Fmetum{QXt9;mxE;S1D91k|2v(^dht#G9fTLkz|=w}CoUmWxCvf&s2 zEBp+@uew;sQ5u8v`$$QFb7oPrj);08(**cT%vh#?=aaq|VjDpP`vl?n9FJCc78t>4 zoV`KNw2odw23{sj4E4stDqr#)FMzw_h@d(k+8GkWCCi3|<*W{Oz&uCCO9hB5>~6Tk zb8v@uKBDeBxz7fIZ;I1_!~!>SMC%+aKw`>d)4-umb~8Jool1QIdJ-}!_-m!uY9?ah zN);h{TG~e@0zg1pSF9}vE*rVGq`-8lVWM>4CI@H5Agf)ZFk06%f*9vwn$fwr zo$a4MmL^eXSbms^K-e&V0Run&gaD@P@gi`HN#m#hbvQu-?6wn8`<-mTja+vn<&5L0IslLtb01C0MsFcsA-}5_|Dax_vr;st+t64uKbDBw z7F1Oo?xb`-Y@Qd)fz9;pN~!Nep#;2POMP4Srx>ZVmRVMX5?zgb=d12)Yye_gu?G^? zvNdUO*o4(PxWjSdrBOno-69+&6*<@pdYjB=2Pb~O85p-dk#tyuy7W4N2K8u!oHo#o zb1OOhLMN&@FW$}>xUL8)?(>2!MP&%#xF^Hpag{P>nz%XbBn_=#=snrp8V`w|C7c(i(%*k;b2t;U5{j+S^f+!5_r?^e8MKaEyNn7qPv(JsWY172` zfH6vMfoH74lNZ0JnVn3N(Ij?~zFkdND6khW*l1M_iAR0q0MyD-Ak1hmXsBpTx&ejF z=;i*x0Kto?6+t3o<36+OjSnwCuZlS}&U$qwy=pSRVP9Z(lifI^vN^fJ2;+5I;HS}~ z);DXUv8e#yejX#(T;f);CfXr5+K7cf?zu+iO_jkX;s|^l>HW|Ou?=AC~+!>`cTl8HQ9J`LNv$&iF=#g!Ew6B^$!m1$^d6}-bhS!&7(qH zbH@>tSm+Ln-m%2VERu6a_F%zj$e_VlgPo@+`i1Nf#?GGE?Pcx z+%0IL*Uyom(L2C^zHyKsGZii3B z&Q-%lv%UO22LCAS(dyz&{YY(YOx2H1OO)G(eAMVj70(k8XG3PymY0Im)sk#p+swEc${ z?R#KOtl?Z$hGE?2x6_zE<6Cu7^_Qi=dQ0PIq(+Qqj{+j(Bq*A}f|e)3;ifC8T49d}RCi_U#*!{d%ZY%(%((&2K3h6@VFWw>w8M2U_fRSX zuD7PWDx zPep+*dZYvG<^}bA=(qbtAhUkZM-|2CYz4>BPy9V5@+-x#C!vQni*zfss2>aStc3)J z@>feJ6inOk&?5E{-XI$c+fnXHT>$ithvh{rrrobuD8I4SY#U5fx4F7VGo`V#`|eJHS|Qsn-o zEeh_veg)shVqj2)v3ry^ zM!1dF-Z-oC$qs0&oWfxK%G`{90+=KDneBL6QR}GuIu!9c>shLKSSuZR*q_COH6w!M zeM|Fcek26{Ngvl%&0V=m5$6Cbw{@KC0DG7BlpHcP(fY~R%C<7#28-;B*EkxB-zU2V zwb;e&Y`V4ia;o(x-a6Mav*heI{#dw|+LcBl#Tv;kpG*YJE%tL5Y85q%Cjr6tU{was z<8AQ6>MkI98a^p786j74lvb4p!}JEMaCL5IU`jvV38bj-qrl~?W;}r@4J%4UJxCN@E*}Pd@=BH_m2(e zbtVQhA2-s>EdngtBG9jDF$nQc5+Gzdw@5}U%IQGxOozOLTjK_v*=Cp7BSCCD4-r&C z_3~p6#uj$QHeD$LVV4GK;}kv(SaxEjl->5f7-3Jg&y#c>{D{8e5T7JYZwjRNMt%Ym zgh?Dao(-U@7iofP7 zf9)Go)+Bi`TLP_5-Yyfg*%OD}3?@k|@T2X}JBaXkU<1rZecYVJTVp>{eOoMSW)5pxSxY z)RU(&quQ1XghR-m-eF}`YdF-{@9YV%4vG1`AGI_{_9xa6PXrazTpnF#a_fbEpQ|Ui zLq+V3zq34UOk+Bcbe`}7U;DIg>5pR~tOv6!_xHRxUk9>jpG==b7vTi$g$jHpEtEIa zul#Z9Ta8^)3a%o!*Bdx) zFy}NO#+-;X4mzJ;u4prT^j}fM{8QDHMb*h8BWVYOM75myG2!O{Z1nus|M&j@qgcJm T26-B^00000NkvXXu0mjf`7jP# literal 0 HcmV?d00001 From e7576e7fa50bd0f36986bdfb11d58678d4ddb163 Mon Sep 17 00:00:00 2001 From: iamtoruk Date: Fri, 31 Jul 2026 17:23:32 -0700 Subject: [PATCH 12/21] Trim recipient banner to badge bounds --- assets/open-source-recipient.png | Bin 506443 -> 469536 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/open-source-recipient.png b/assets/open-source-recipient.png index 8b33256afc84c3815f306d8f013441622d61ac99..9c54891a9f30c66c110faa02ee82dac2fa665a88 100644 GIT binary patch literal 469536 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]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

;HJ5P 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%0Dw<)-b#?Xk|MmXsfA+J1p#fO4 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
1uRUQwx4D;PPNA6y``yT)K>%b6@}Z*MIJFpL_c| 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�^Bm%kcCMAkmLLgyT7^h5HFQ;9}qGn{4 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

8_1EFEj9|pa6(HOjLQh|I8vWmY^IKl_ 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 z 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¥IdPb6CC$ggE8D?K58p)sv~Y>V%~V@6 z<_F|t%LM!eyX2E>&88Ehb}R>F=3!ikuS5i}1YgrOf7m*DIDiQ-2S-82eSJdr1Ce#? zYr09Q+f{bLc`BuAYTP6QEMCx9*x0gPeG50wsk0FZl)JHSzY7fgix}9$t=%g>wPs#g znb6-tmc5S-A&(PS;iBteRPdAV>O&A7CX=;fIRf?pv+taP79~BrEwvyQ9JdOhZe1g0 zB+f=TZ=ROoIgX%}!~S9OQk?lPV)A6Sc0<^Wm3nc*U$qFFoC(vQ!&1<8q+pm_^T{v@ zCE`+&ddasqEBdA<@d{qk245!DzBo76g)=FUG}ndE!P~ev7LGB(HrrZ=ymtQLg$k~) z-J->P%do?x%%%*(9fp;FN+XHYdB58y>L`dQwY=J24g;&&4VJc~E7+ZA{lbsSZ=Ea& zNi3#ina)yNK91~lBZPCoMBpkrJH3{qKPpV0^)6vDlZsb_c;WlWKqp_nJF6`x)x&8D z^GaV0XMCi*H^S)(ZkoqOV%>Zlt?GRA;N%DB&cX*>>mDj%WPz2oQ?l1}Pa>jLCfZlb zE}<~FmyX&+NhfQQDBWakxmv6W`tb$3H+=&VG*vug(tS)=MeNpmLGm37Rjm@4aY{fe z=D3Cgb0XecE)m`hSj0JBx4%4#HeIr;;p#-*TZ41RmRPc8$~fvzjkK1^keow?<42-0 zkVX++D{vv^*Ygu7KUgMug^gsqMvVhGF4zaoCai{y8o+?L9~j0?AQzv$CN&@zeM6{c zX;Q8l7(Bi?1X`&Y<3hu(29rU9rj5-aI6+i>x#o*(Tmj!`x;YQ!!Plj`T z2@!!GFeh>JYlB^R)Dg-;1U@;GZZZXvHQ-Ykx82!HvqH)UdP=j0hql2hE1hYlp#I2r z$nXeJ9{Y3`Ur^P{mJrQV;G&rZso0}zuR%xB0Or;n@T!$v>R>!EAp4uA|rSO zbc&HsUeB>`LFxp|Q|PJ=htK_CH;Pe*qtuOAo|>2l=IW$5^8@BAm}Xhd9t`hV#ggP4 zj6@$E%(NiP`35Y{x!q+dFOFqm2-_JIcC_*5CrgIF5?1SwCp(E*$A~dN%R|eYpn-u2 zJX7ZDCU-46SRrw^4lh*50PP{U8(XH1lzO7i!;D{gKIZ%I+#x06I4Lwq{Gv&*ZuK+= zfv}8XFG=UVumN;J8-I=X&?O>l4j?!f0!NU%xj8Z24n4Rf30reA36W^kz%*n(*~lhD zROzMHkl0w`=l<)DM2>)@VQ2^$RpE9W?tOk`9m>HdyB-e9z%(G0-xkn`lt*d^Aoq*U zKl{e#U+A9%r!=%11OuFmp4iU$IF6Kib{>?=4tYxk_-v$tq3(Txo+V<%$)-SKQ144$@p#4f#W}Vy%t9iB#xRadA*^Vph)x*-Wb# z(bm`h$2PV4=NhHE6x>Ofv(30Y)Dz1Hwt;x$!H)ta5_GUp#EA)wl=02ZAU|b&&og`i zxp=+83WtEyjLUPQ#s8{EPKj9n=`N)fgc)GA>#hp$?x@k~A%&K9p6yDht9pmbAEsum zrGt$)Y2oP0wwazIHHbrPd?=sn{?>C94R;uR#3M9HUH@Xz;M}3i*0etV79ELKC{pwi6@r$u@fn zbw<)mteP- zlw`i#XVcm5WQDQ(ib-EgbF!f`h)|p(2@r_Ol6ACa%;F?ie%ur&0?#H6wsqa+1YJ9{ zzqL6>EIQxXpb-!rsBvu z+|6v~HY43^CnEXt>QlCebPK^HShn$QQh25t{BFO|94BBK|25|R8UNzi4Mz#f!xS#+ zHbRG_;0DMNG93{9$XzM!hejDB+Td_uNU(;YhMwLrE^-?gbB?ho7Z1PBnm%DB*BHEl z*+<7*;7thDCpbZJ!oi#Ynq~aTagIZi!SW<~$6xqkymHw0WLpulgR6MD5mF+KW$;*! zV}=4acmP?aW$_G&ap@!$_ce6No8-;k_u)~5*>NiWSt@zNX1H@@H4zGs(Lc4o6sD8l zG{v68YcNUEU~HI8H1NM1OQ9XINxovf`SBCvorqCz*EA&4%CC6e83V2OG5BG4Og4|e z=ToeY+q=T1PAEKwo7P5g+J4inxRdm^n zJASN5eN$crZGAGzz}a2Hsd0RGi)l_pA3wMu)0Q`4*xIR83D^kJCEK_siE#HyAS#A= z0?y3VaX8lLOm@e8?X&)-!eDfOQVD-Xb}q@Sh0HV0#M!0`Lg@8oKT;Dx1wj_!C9T~U zU}Eev3KDQ?0P=ZZU@mY1VhJTVc~A~q;aDM^wqQrD9$g`POq+WDiw(4{PgB3$cVzzd z5oD{?PyDGOy{mHSB6NSdc0yAo{M{xg3x{IGzYH|uaz|E`16leB96J~5s)%Lkv@V9a z1yx73dWD7z`vyTXAo$T2%WegoYg4)h;$jmNy)tYt=U1AEVwhN6yI5!vperr}+6Ef? z6U(u${Pg3p3;~?S=4O~kVSQr*9+g)lJdS_Hag8s3w-^;m@&yNsB(~v@us1Xa&k3&G zJzIP?#z#_7q@rNEF^CX`RN&)1318|;Amcdgm*|j;|BvBI4B4Geyj1ID?oaV1Er?jh zFJ>AA2r&UTz~aTd`K~k#A)mfP0v;dVeCM9Dei*|}n%FtjwsEaT#u(g{d{zRk+gnNN zvD_P9oNIRPtyQ!34K3s|oi0)B|$zlFr`ZFb9OtYgXRG%pdx zUctMTXIE4aNXy}1-N)pK#O`-_j||-W5E9CTO=Na9hqjocYeETeLz((7FBMlj`( zmsE_Uy(Hd_gpF0+z99SL3o^G0z!0@THxUlaC?F@kk6F zVCLxZwaz!?>J4hTlPw0K;kUq@Yn4N}QiT!MfRT5j#6-6HY6rbzN7xdv1Ezcu;R`>E z9G;ElobD=jc3XJ()j;}*D>XajlS(5z=RzBI9{(-ICLIu$V?y{^V_H5s^gmH4uGS&J z8*1#JQxG)CC@oB!y&>J=cdmwAHW+I0_G`KyFz0Jog_OQxA9`@>l&cK+BdpZutgzQ$nsoL65*Lvk{>uo&%z zXu_4v+|0n<%h4mA-}!dq{o34RhG9Rwmcg`2?TvHHJZ-^D4@>EE@J^KFi_O`S@%{~f z#HRzNEJvSpPVksB+45&QtBKJKm;x4Mr^7{q^lyfuw0T&p#xjt2!EtLcq8ujhe(A^V zE{%G?rUNoY0MJW{RwkG~)#5a|S3puo18gN2H#H6BSR{^S%+%Xy>1v^Y7RPA(c1cX+Ol4IA}AI3WX9a08}789sjQKRJ8r zflCMe{zZbTC_t3PEXZ_3$Yi^UJR(%&S#Hcr{bqlFLoMrjSChjFh9mLr#TAQpEdD`) zuYL9ftY6}<`Tqb80Y=lI@j1W3nUU}H0qrntEIf$7)Pfi-FmJTkuPI{3ZDQWvUMnN~ zAi-}cFqZfDNRH(Zq_o1EnY<2^tav=c&X91jqGRopnIJ(yoHGEWa3mOGtz3Ql4F8+L zZ+-6vzxbVB|Ln^j|Ir`%7XAit{0rIqYs7mQE*?gh(PW0)=eS`ShvqFt-hteKE$6ak z@d$}DZr%&PG~;^6;1+|7e2en}ExV`6vaHRCQRixyjvTsl{DieV4E{ERCTf&gda$vh z8Ai;#TwP(z+W-8FLmAf1$zoszPo2nxE|O$f@x{w@ku4CXl5d-1=Ah8n9AWS;uL^y7 z)-aRAxfYmKfWASBv>Tz-_FS)ng}pX;*;j{`H5F(RTEofWH-+Kb%C1!MBGcxM9RZp5 zxBM6MG4)ZXky0IcCxvnS9AXj)e2`_y7}!Jaz`KF0=xtG?p`L8}*2Vd1D^4nDbMluw z>Lv|OOYt()stiKp)&M!MkostL4&8SM=BcqM9$qd(;bY6}_-bd&t01PgHY0PF@9j-g z{B{l`p$#r?qOj2k%=PV#H5I@xDN+2kGBC#ZE<0e`<6SY+?G3)w7Tht z#t#5xnSgUzl!o?(h<{pWyW>n03Ei*ZCWVynZpPFev{L*}0vT#nS3)&i#vdh|8y zVbZz>W7(!(;?yhdu#Xb~?L>}lD6ZkkiNzt>(+PR(CD0c^aN7p`BV(hFkty-DGEcgv zO~f$n1Oyj%cDrpzgdJ~R?B@i5NUx2sUyhOV=z#19r~>1VeMcXEsy;fyyTkR%aF>CC z&eO(~d2}{5a@##8xL1(tM2U)SxMrSpqg0wdM{R0rwIU}XIZ$Czyym7KRkJq5B`hJP zbnyCF+r7^T)X*BZn4T&{*&kyP*{Y9-N?ky1%h3miQyRI;i_2%BT3{Sb6r@<)Xsu@- zA2$R}T?%MijTjZ}aLd`2D2(IMJ}JeuM24F&?0aIhIx)01hRFxVx0yqH!cWdaq^)lE z5ImQkiuPhsH__l`BB+Q*Kzi9n2>I1VH2m?%A)-pnm%OG+&Lw)1dZL60LCMWW=LAhg zSo$6w=ixg&TJHrKr|^wnA&H&hkaIz1JKp6wY0pft1dF-s$IqF69jJ_Mw~?=bMWqvf zole8YEFxGB$emOK>q&2S88GDig8)b8)RE2+N*0rAb-h09(S?ow1RJJmtAX!4ehm zQd6xaNs~X7iH9W@fc%td0=I!9wn(t7}4?cLy@vfq3yutoO$EMFcUG&>R)#f z8KNZvzWOSBQtTGMmq<<=LI2hH9_-b;h`eCvg}9VH0Oh8&Ut5e{6LyXY0v-w-vk{o@ z1P0)~o*i&JAR&0$`6)3}iFL^PY~(N3`%EeXl5mYeBRBr|RFg8tzbas_gk1351ia92 zdie%JDn1~7;IP7PD*Uc5zW9CL{>FzN{NPuA^LupT7r6a@WnOWT)>1a3<)dJ&(bq+c-4;gImS=UPh99x11TX-#OVf;kR@wdGLU z?M++EGy$74l0rP~%9_dfiI-PJt=BkWrPOLKfa{SdwJ4-5y|8Z=j8Y`zxewtf+Dori zm33>pO5;L7ykT(&E0f(@Cb)P`RV3|U>ysk}iFc(i3h;t3WwV-KRvkngpH7e_PvO=g@ zf9!px9+3d-ZC6ex~+G2KSbmefi!`2PE7+t?@uxw4j3jSrVkP01csbnb-gy3 zcopgl3SY^bU6e+Ky^z(T0WAn&_!4W(hG`Gs@WWQu#ir)g!|`Id78~_d^Ok^pfiBe` z)8k;gr&t*kS(HzJRz3bNsW8g@62)}e)FfpG7z_&lhSJnw$Xg9SUgjb>6N@Pj|!*qXlo1)qyaE#3XN}(+;KP;GLB{kK+5r&sncvFjOLTklnGL>NV z_!6L1)2{{HyhaNbO|tOooihDmSgU3jm%Jk!KU|iWVNIU>K6=D9{D8?dDW<0f#t>gNi$2bY5I~vgc4abgN72GmkY7HgeY^NEh;yA0f3nB#v7+S94H{pFNgywN(K3OdHf(;AkgLRdTN7 zo!Ft_!eVkC&RAE{Rp7yQRt4%Cl1;v&;Xtk|K$hgPi{tVP=ioqzR`7JZ`UaGV@;Dh- zU-3?L*&Bibw~ibk`SuYpd=?aRMXuyuVZW+dA@8OamdESCyOx=9sP!CXYJbO1+s<)5 z{v5m65)V@&==FTa>k3$dQ*SZb8?_1?vTQBBFCW6b1QUDJGwI=+00JlJz$b;ETxBP< z?hPZE=G~z1WVsSh{TM!dApJZj)1Z~ZdBB35UHn~)euJlqEH!{Ia6T8LClTkL)|1X0 zEeX65>~J3ViXjMJ3=Tn*({L!UdR!oU@MM9+{-D>B3<4@ z*&F>S9cuIP4-ehl8x=d8O{4;edhq~(P!X^kUT;Bm5Mq$ls$OgM`s@XrVpEH}I(Hix zG1uB4+fNc>rXftzYeg;py8=+sg>c6tA7pWJ^(?g{irP7#MB%LTcT6st)0r8CRaqzK$-uv=79j}+G!xnC9v{H^A4AZLul?M=`mKNQ+aLezPyF6L@a=E?+OK}Mf8l)j z5UwzBxU$etk5IZJ2_Qnne+>~_B~_O!eIZ;S_L)46XW@eInZU#l&3vX-j_F(TWh5UZ z?FXl>D+ZuSz&KS98yDa-FPE6@ZEWz~zSB&`oIurI~wjS?DvNqDzDEk$Cf; zZ@&;Ebu<`f%IZSqNVdZM&!qnM0M zpi3kGmnHEI?}PBj6ZCPrb4~0y1A~XYNc;pN-sco>>Tqiox@{1U#DnDoRk{v(phUyI z!3(*^@z5?P8QOq}71iOBj7jCBhqX}$Z{mu3AZvEVUQ$0}5uJz$1O)Sm^hDm#NEYX9 zlwJFQh()jy2z=iGlH%K4+w>8sTOH3Vud>cm*6~Qd&1S$+kbr=86`ITLgW*?|@F^^Z z>62u@HhD1ZPqN-av9un}srd$LS8Up%Y3VsW*`J}vqy)^!Gux1?1-AmP1m_`1Qo7k@Q{q?6@N|N@YlawXc9jPU)gML1e-bY zdy>$3zTn-IIcz#(nr|K_eodYX{tjfld142}#PGzfpK&XDU^6r&f;ipbbrDO>mrfWk z=?H2J6Ep7hDuR3mq8`fSxO(OwrnAsrcXOVxIqLIq@NLW zA@2~M$xC%{dCMG)RI3oRb0CMq$UAnNCJR3@m$r7MKBp+| z(LY;0{Q!Pb&_2HaK*!5=)bK7d@V)F79Zc5&gK<)}E*7#r!jw1d=H4D2hH^!jye}Ds z!E1<~Ilwkzf*Fd76!M=(vx>Gmax>6#6LlNf8zLT;Xh~r46}2g^Q#9ehca6YzhiADv z^+=&dmdW60;mLnw=ob(McI<1<_+6?P1iQ)4iQE+eUs%mlH)*^es}ma3ItRvyjP3W~ zC{`Bb8jM`S0e~*M6Sg5xAh|&Wj(C8q&Yn1;=p53)C__#YjdFm*$?g(Ewlq`lV>uZ+ z@zKU(GC5o3u@Gyk^E-C`GLasedH(|ylKixJxSKVd>(cdvc8p6rY~GONoN3sf-B6EK zUB&yE{)8lh9GZFKT$DEO1b61=j%CSWb2~W z7|X9ACr+4mZwytjB@G*lo{JAVp2Ty^Xy=Cq>|n|JlgXOf^C6-AAwE4UwFB<3dDS9R znc|i>(y3R|Fh4Niz0$caQ^w>XcHWYF00k5w!AgOe32By&&b_k0LHwIbAp3AH!5K4~ z=yqmPEsotun$_fIOa%{V$o3A}1PYM{(D^Hn^*P<%R)l%kK=$eZ5VhMVJ?U&(v7a@x zLa|TT+#8-rZUd$}f!~{Xd!~qcKqvxlO^@XjAf>S6IM64>Q=!oJibr+zfii_UH?!KB z*ypAlFlOavoK8pxHIFt11otML^cZebT6NAKzvT(w%Doo1|Et>Upc^sdPkGHidvyZL ztqM;O9A#6X_A+W16Tnv}zOt&H%a)*AWt*(S!z>7I-%kQC!1(3IAN%$<|Lq_B;a~do z-~73MiQiPfG3O8PRiCCzEF*9HYWA!GQXab|pU768@Wwup(4S(Cw&-}`FfALp; z>reguZ~ws`{^rm8%5S_rG8Myk1`ooF<}3S^L`K%&uM*8jfnKD1(KTe@}?!C)ua%%$TwDE>}$4kobT!_BGSTdv4E@=#Tgu>F;1Jn~vu&#>3!jFio zh_XZBC)P2(H*%i~dZvv{JwbD@`L3C3;wO-*1sF?;-C>Fc?wu<~Wm2#U<@x>ZlS z2%By1GKo$sW+jC6b_gYk^V&K#&rSxe_iE0GfYZ(kVh#q{Jbiv6gxK}&QRv(@>oSh{ z@O2i~ASQ}^&SEx2=kZa{U=9W28avbDPDBT=1HABcTqAa85|17rBr^Nb6xX8xOzkE- znY!b)9~2c$@mDl34ZnkHHPwK$ynTo}nF4Z`Q<%6y`Ie%M6m|ITG(*OT7WKQxsXV#QdN*xYB6*d0 z0^nPXLz?LuCc`!m1y+pOIWA^le6pPxEC4C!L<%*zCdQMUnwG7@;Y+T zek$Pv`R8Z(4)W^KE#d@pcJ-k~k2lZwM%7p{+4z)x55Os%KWL=3-}K@&(Pk5sI1?A6 zRXke+<`>>kkIx4ia~~hlZq)@zr8v*)%Z(Bo36qmVM@m&BvTPjJA+A`(o#0c%$;n8N z86=@i0iy*G@va1h3Nf$++*vU{q>RGl@3Iccxn5ufD?rl~Ad(m6qq(6YUF6Mh6BSF& znTzV3_R}!cKM~jG$k2c?2oC6#dnW%1B`nLOP1D*-`L4!r?@hzJ5i=4tblJCA3$<2< z(`QgFJ}OjtxM`RKoXqNAV5RCs?lx>RLwh|rn=ybxzi6MYA{T&OjvPD6G)=9 zSq3Wm#`N2l^7FGmAl;ITsXFZ}sQs#0k)kEERUFQl>8TC#3S|hE`&5(!8t{Xe^%V(O zlGh^rGBgZCM>&xRT0a}IWopAt5kI^z=Z`xN#z)J0DO%}U4+ z@f+BUxmOG;k#Z!_wsYPCQf!j4%(oY-e_UpErB7#kh)7_cizkqrtGc+43J`^B6inVZ zgxa0(9FfFv4}$kfZfBu=IqC5-+3$0(kw;!bMC;p23vZr-gbGQdMa9iCI}>>FDoEIA zU(;-?K=%QDahHfa^W#9yT~QD;rctQ;f)hyL)7e*16#@~{8mul&a6UwpCh zkf0j?zWCW+{qE2F%U}JA|IQ!$lRy3=fAbf9 z75|zA{#}ccf??OU7{`?zL8<(Y<;w`<2z zDj`szvR9(+HbeQ}K%PqVOnu2Xv1bch!rTF5z5uP>8*64 zpOZ98lI2Ui675zd;WR>PJ$ll6A4+fWl_hxEP8uV+L%|=nNyp7)nzO6i^Ak(5tCQ?T z+ni#QP;=Z$lS)qOBFlWYdc^qLHaOVF@-SR8%41@w+LD0c(#{jIA&RR@RmUqmU|#jK z>WmB};9vh*HA?dq5*FG^=x@PYm=evdth`o0Eez}NxxNvYgF@yN$`ylj4YydgTz>!n zKmbWZK~z_v#d82t`qAU|JSs)%}XK&z5fIh+XI!+1-ko!`==UM!={0q}A?F;_eL;dubU zGME1xESI4(g{zb){7M*%O$|USF4=72Zo)GCv?w*CF{mQEjIH%*3mv`?55&;Hm@;Xa zXR7Fzk>Qg8p(pX08&KDFDAo?86TfDMv^mlB6}r=2SZLNZhIM>RU%Jznv8YAGDX{xV5oL9& zMn*T^tkIUmJtXnk{M#R?%w5d8km>+zN<+XhPq?XC@Z$wwvwKM)Z*r|}oHDBo0VkLQ zy5JpE0}u}U#`DgnkNRyB^prcGSa7b231a)eI|W?1y2L z5C)nkVUYpZlEYG?eCh+;jY@=v#HA;-g}*)2a%=&u#>(dDjlaoB{%!I^hy<(8G2%*Kdo-;06wE>|?0}dSJX#5BfQgrpRc* zYv~2w8BBDOUMns(0|Wcnug?R-+n*8#y!x^k$@d~xZCmEqV`ftVIfutk7hy7H%Y*R3 zUYuB)1+~|{11wJ!(%rB3=e()?glJ`*oHh~X?=sQ6?U?V7CN`r8BKk9~b!o)-h1?Tp!;ZuE8D6GDX09vzW*Fbf@2u z%b4hG2}bFMGO;qA0x-K7vx-&G32_FtqntUINsY*HOh`&@j;Ro*ZGHyfZ=PREYtSxD zDPC2j35-w*3mF2pc9tb1s^y<;rq`WzfCv*ibqRAi!P4o&50dIgJRVxo@(5X)7BcB3 zCG_XZG{g%&R3~_1dB$g<$yz@=ai2$h1ycT2C!vh@8y^#jGXmH=i2{UWQBhn(pC@cU47)RQ4z3KcgocFECLfW5KQn{^X6CEl-97Q2TXk%fNk^Cyzk`K@ zk$saF4%0&hAKJ5r3@s(6WXL6R6ttLvS4iQB>*1(*b9Rg6t5T{KT@!os3j_|NK3p>^ z*n0UqKX*=v8B2qb z7j{_Un}q1(*mIQ0#BTW#8^5jevUskDU-kk#p8JFh7``)C!)-{}sc zyF_S&kYgeoBbWD7pox|n+dhVFN4SRc>|D!Z6%%%hot_!Fod&UU7M=5Fe%B% z5rJ=GBQV4UKNw83Q^P4`wETMuVrPT5hCC=x<(!fSKfXlOE}YCs_dJ>@-gV zFF~$lx(Cp?Zg8{H>Kso+icFBvsr*p3E?NXRIi#V)Cn7UBa5Jwo6blo6AbgS6x1@4f zMBEwl2DvlB12oc9Uq|W=^mz=_>SlOs7WhoYlnY}!3C&8k7ELm(W|+K__C!27X%61` z0EhAzIn%2{rrouTnKUvY*XbTC?@3R*KXRTZZ{DD^YhIyu8|=3TEZSP;+g^vfT4} zKBGb~ey-1NgND_EB!$}rXrVGViz|bON32%4A@&^LzFelkt6>CApfb+tF=6y-=be_D z5FU)4soucwysuc+aqk)<+}F|21Tpxa5(lDkK|C6n#IbfY@=aj&F>>-iGDDLdm)lr- zRGMZ$gQ>1;CUcO}aB&!F!`%Bl2Ms_=DyIN5wgr~RdChwG6m@hi9(u^Z2o2dHaSshQ zB)eoim4PT3mP$5f(kQ4jGKv=;57yLR{5gO zZS_YPC}A>_?0}OA7W`N$I33tb4)Fq$Y&eM+cxL4C*Uro^Rgj5?mGvAcxx$LUJt}@i z@8{zYbm(hd*r9YTuxiC5nBem{vq8ZAFfo88UPz$jok*1OGuQD=w|t_!EEU-l^Ku)4 zt$d+&SX1vEThLdA6>L58oTxbSeeG*M`0(YAf9vai{tx}wcfbGH-~HKt@%;}Ue)xBN z^9Mip5-}`srO5O=CjL;exd(jj0#o?#L_FC9T-1FwRDi2E-3)h+U1%Pv5X46E-&EkW zo(%ODWn(V^pnvL7S_Rb9(K&s3Ja5`~9>8+yjVWmG#2NdH;3@eW|5o#7AODYE_|8B3 z%^&=Sf8PNo$)4%fF&pv+fk^e&W9E@8`OWS--c5>;oH*vy82qxzg$f-<-o*K!- zMY>7QERz?_%#2=K!VF*<%ujFgoRW73scJB!u zG^ciV;l|#{y&C?r>AMx8yW^T+MkE;)H6c=#aj=~1)*Wi^$K9SQjLkcSO(Ls&Ny%@+ z4%8bW7tF{rThH?@py5aG3p?3>BzTw$&lswe7mfi>Qc>{M@T(u2|1e#ZFLQe)&Sl?I zrE0FJoarZulhGrHTsCvR=)PJS%|+1va`F4i^U?Tle`VxgBO3zNekPQ|un^c9V{fcH z1H{T)3r$EHk`dMK=ygYM)3L35h9uECk86cIr-Z7_MQ1rU zzuD})c`Iyo6fs5|S)qZs9!A+p&g^htK^mc>v*KkR)}V&GVI29@MsaGakBSMV zsO|Dxy9Yngg69Ag-YkKht*^*~N33!=#CF|1eGRa_GOG$ei5}0R`lp%`%UQfiG;K0O z58Pqh(%4(qRFKDlCquDt)bx@A6o>cWRhm1;SE_BeKT~&G;(2hv z`ib1{%`Us`Xtwr$)?|In)Kq;NXH&9#;2+y~o-v-0r#QxTM=Sye{CIH61sgJkL5n4O zrn6h3JsBM+Uf)IvC#4-4m;_VKu_FH*Z@T-v%w2-$Odk%im~pc9V8dXL`IJhaI&KQm z2=l4i{l`0pRI-OE!DQlozhOj0_5$K3i81i0@SMo@I5ioh}*E9 z%xhnQPB(>}45kXjBTcehLo?e*u3AEgEG*{;c|5mDua2y2Q_z*`QwwHNu(_sp!AlS^ zRp$N#%!QmnUnfL}bs`93CIsNU5aBlNjuW&Ca9US4TCDdZj=HcV&CNqzU00ci$V=+P z1_y()X8k)4rZE52ib=xBxzeE+qN|Wu((R@-60S{C^NeSw7|J^2Qq1Ftpl!NZf}|F{ z8&zLMb|$b9qxCT|?|c9hoCjo3r0arU&y~3~lBe0F=8)Em(IJbibv-s>g=D%9+xFf) zkEbUhio6_#5drjQRwOlV?<69uq+_J%ipTdqv&KKD@ZpdC=#TuRKl($Hzy9n$ z{p@R>Q$X2`^NPPfqCWUB1jz4`BpS+0FgUJU7|#Ptq56@V!Pi-v0un`Das^b{q{F|d zkc2g0y{9?4FtI!h@@EBf@n$};5-$H&+|*LX@LVZ|!e={IEWZK$^2;y3_Qe-}=bwJ( z@Bfou{!jkMzwz(>#P9j(U;gzEA3o%}Q=ln~zwuDEL-0o6akf8>T=~1}FVT4_NwG1S z8_aU%+MASu>E@~Oxe~x0pGLU7gda}M@kOfxFy9FR7NS{&pW`EIV++aXOkN0LgZCkG zd9yR40Y;kcBsR7(#`U$L`H{V8PF)Vi-EPoNrIzm{<|CWi-b)hWNdmd4rvWLWAs$OR zsFSxqX5nEg4>a!7lw7FBc81jP0KbHj&k=|`Wx@pbpMadI7bdZOy^?`JdiRytI6iGnew8vaZI z|Ak1^$hrHYFy3?#TDS~tOh~#k+V|k8zSHfVxt!ct0L=p(Flvs|p{AOFRN=Z#STiJi zsPD-M*)3A60|`G}Vy+~E{mj=Xq@KwEa5vgBk+MNG1MEYQB;cG3gV~fjuVW@)>l_Kh zd%>*pL8`sxbB4Gt|CC4~Z4Jxoen_%WC1ATgHE094CB zFUyGlsiC0K6r*xzRP<1_-?WbV>810^1%Pu5k`P~DkyQ_pO|vz{B+MO`krp)YSWe8y zIsyT1noth>-hHXI9MYU$xST`>0m?r3A-xC6(`yDBXu0xp>MhlCni$D|3qOb^2sdfK zjrf@8*R{0)Fa;4j&7bOEaZ(3^PJCV6;~*C)s~yy)rBNP9A4n$2Lcj@^@0ow`S6d=p zktRR=SM|dmAsJ3y@u;>^;ZjjLyv8pBisWteT1MRwgDyFAOa%jbnpvg8UilZ)qck|#IbsFf56fWfZe zsgjl;e=w>y9P_*jcqGwXNyBc;}a%2Y*ChUN9ZLXt~U@kREOV z!(~0s?V+R!F+Hibo=PYIS}eFLos3AcqCC|O5g#Fw&xK8C)hI1&>hYY}3n*v|!Z*hW z_dz1V#R9-!)0G@aE|`-4u>w>RhLG1}{ee5s2l(S>XoK zX#nl+ktR}M?2}*#JIBRzCd-+pseJ?o$x5YUWa zr0}LgIr?T3_pa@EkkTOzu<1RHQk#Hf&%6cNpoUBl0YN|TTC9#Ph6ZfYD7|tO$#Gg_ z<1DRB%Uum4R->Ur^})1?+4K693$cMe^^EBHEvF~cWh2F=<5C59f(2liV+x=9r3n_I z*3H=`XL7MNyJeWtumbB`t2&osA0tDq8RiMvq-I%cNq8EATqksrYNDE$#cvw3@H^f) zFijQK6@ElgR{S*XGOL*9eH0N}UJ~wJD8Po3k_WXp_{m1SMj z#YjT*eNa-5H2Vw$re)P|jYqbXQW*PoXJwv`AHVqgYv2F)gU>(v_~(D>5B#wo|Goe1 z-~ENZ|IdE)>)-k&INUC80F|jI^Z2y6Hk9ack<3Lx3{x4zl9t*Sqj!{2D8JrZ>X_}> zKsBoR+_T2%-&E-0Vq_3yAujP4SX?xZln@p_WD+Q=Ok&{-fya8LJpzRI6dauKO#I=) z@A}5qf8jg7`M3V>U-~P5=BNI%Kk*0u`=9=$U;ps&hraRohcEHBPpvkR2U;i9Bks#sTTLfvcc`P2=~x}`gtOK1=`_&Xxb_LGkRwcAP-_$5=`)tz!h~z%Cm$7jZj4so_;Oz zLn;!>G2VwITziIikTdh76%bfCl@ zI)V0)b(GDjB?N4jro74VAYsVKB7)hZ^JvekJGXjZJqU+v?Y^}Z>soX^0!Ym2f<0uQ0U6*JWW}7*Lj9d84R*2thH>=*< z1xhkcMI#1lIxp>PzJVyr-H>fp1cR4|-Qjl!;3_LlD{=n99d^#knPw?`I0ztSJ;9_~ zjg_A_e%lZ@@nbJP4T8j_q5P?lHfdV%B2vP~?$F^K6fs3Xw-}RxT%1P2smdU^%HTA_ zH<)pEyjqlCL&Mhp31Wi$&e18V-Y?Ht9wx% zC*rJSKMjpA*AT5_MQ9i1-FN_=8HLgTo3o(_vw?Svz$Xn=GGJ{_Xv9hP{@RTd;JT^n zs$1zUUlvTO1a5?_3VDZ?FghOMX>qc4#-%NJmx2_Fu;NKN*M8MNmqVp=0>O{a@^f@X za4h@i9b^t!)iNbH`_<;U1KQa(L-i5AFUgN64MlUCYH#TRnO9VEDYve4vmIN3=+ ze&LMz>Qr?5-Uinq}ni z49R4mK^RzQ#8)s3$JXX(V3`!e*$sGz6yQdf#&@BYyGj&B zVIx!v7z8G)P!cVadGEU#`VeNsWfXa7;mK4(UlItb+#-{U`*e=_7LWiA*;949Eh}?l_h!YmQA{n#phTb^Ko;pZyR2;Gh4O|H1eF z(?9c*fBbL$%(5=V=$zaCtwpw(0 z;Dm%cuC2kY#4p|WRG&8kFiVf3-}PX!ls~L1){>T5#jtAh;pBVM<7Z5hE&EJ|3zji5 zfD3%VpP5;vja;^C-U_U0Fjgv;$*_|}wU1v7O*+R1=_bO1tL?&+Ya44npY+ZI`&V9I zIAR9rEqMBN%Ts5biwWG~V3giECDsd0c`Q%r+u5p(&gwoFHkwE+}C5RC1f-2H)%>Trz?FKcMhH>7nnfTPKxA~9O&0Jsq>Uy6Dt3Z7fp6@b2}A5oyn^HxvvChv$I5RZi4(!z>Lw}iG<{V=Oe-He zfaFx2$0-vr%Ic)2L^<$@KA&O&r~pF&xIXa3!YCJs33}jP3C9rP_}ss%4{r-4-Br(U z+oQ5Dy_gt5+=W%f^CGo-3c)g0TX_Y`M=)7lgQjVACG-{79A~tuDvj!uTGMpq4Xw8o zjuUcb$ui=!em1J0Q`W{uo;dc`FfW?n0SNsst@wy+z@SHQxr!Sm$F*PC2 zzYLob!r*TbXC^Hz49uV`v^yod3NhXi>`|f31Ps=?Zw#Wg1hPt_jckdz6qAIQGg-gr zQViVqF*;7;$~pkUt*is>m!R+Z%w*)?bF1}ggN>(#!k$firN!6 zIdzyObF)3mXE{A@2edlpn0Fga&uq70VNkDo5F^q6hMXCv3EBHd+HBsP_bGgsj$WlE z*)a`@lVqp3T-t^^PhCfy&__9F*23^fC@z&YwH?AUYf6G9_CbZ^$|R%{r_4k)+?tj$ zsX(dtunUi~E(l^9Zn@(FGzBnTUsW%*0oJ<5M$%^f!e>160x3F9KN{ia(P*GlZGJ_< z@HmWF`_OEkdk|G*9cD2>u)dSzGd5`~;s&R0>Z~}87TW}t@=$e4(_bOa&0;9}N%5+a z+yE+}1SBUh;pR{=W?hBS)Yl8b`Y5^BeRc$#a(DQ!E~9EFx}$+`MPFwE56ff1r*;6E zh)#!xJS8vZV9CR`_N3#QMqNv5O`jZZY!Zcrl=y)o$OFgI-%}7V#}zxXTv(?9z8&+)6=Um_~B9l(~@-2k8@=F}0<%b-`c9zWgc!Cvwh z$(Eo!5Z144ryj?YXnXl@D(vpGiegsGhQSRFsVV7zrVENsBl*+R10kL;TQEz*$i*|E zr79K2QU@cPAHMwT>)-s=-}-jP@(Eyt{xZHV$AqlU-7I106fuvZUHbM$B`6z6Eoi&dNFjy;#!nkfcD~$}vswBM(D)fSE zwE;-b25roqZ_LasWkj5#@J3ouE9M+!?qCiNJJb?YUjyB_mYknD2hjjGf)V`Mhf}nH zMZZ@1^Dqi?O!-N%=0RxKZJ9apX{SoHV%K!jpv)s%;b&7W0)9p1 zs$BN@tv43W`BU@1HKWgAA@13y+6`oU)7s)jBHT*h#8-~-S(3NE#c*$iUpFxFeH z4+a@R!2v~ba7n8t!3in0kh^#3wY*A&TWGWqw58H`&{d`(ZBlBA#Ikw8J1-*KQ1%4V z!O$fOQNrf7Ai!)-<_tUL3vuBO==4i*a3tzL=s4=6?c|sl5R=dP?IL3xTfgQ>qE;{q zL%RD6b0iZ*OR06 zHRj;KqLwnkU+4unu_%Q0otIA8XulmbAXEfG5PR@4#ole;5=j9HZdave&UPQ9%nKeY z?2=p#bZ&Mq2{qieqD7O%g|MTZWW!Pw^32BN=l=@T;*P%#&zyK4&RHVvoH3>%ky6e( zRglyCd{+gl1yU26!45~C)-dC$#jBOeRShJ?dc8Ki_9GGyc7m5lcP+N;`<(PK?wu+J zoM1yTapv7Sx#e;EWCfJi(J-OJRT58l5b&SRyY>Dy?GUY0WUoG*Hu4JImxvdYfR!5~ zGm#T6SIePWb01-(5Ccs|ECr47mO~?8W5;6V2Sb`MgY+Dvqi64dWJi+8m4!0FQ`M}w ztUPMtNVwo)X@ob3_P3XM)s7NzbaIhg9-8>hRa$gy^Z-fl(VZ48`J8U`SSTtns?1Rp zA;Jj(7y;qMFrQSIF*%#o9#D%FC8f3iDGEqWvs@e0666^)$T-hAQ6)|Rvp6ZaWW?=n zRVXcJidu7r!brR0Gt5RT$wWmK3ziDna4k+7q+uixp&xOEB`Z*kJe5N?WzuRrvS?+R z!JEQ-=TUHAe9#(x0XT1WgyW6%kfcYd1oDX;PC%-|)QYi}z+Oj3Eql~CL-Te-{jfGO zOq*xVq2wgZiE>z!-hkYj;3eaTnH#EZ*gk2Zj7*7-C)Y#F1*}-tL_JKy%kZPH#$^eiJQK%NIXIt> zR2mh*?ZGvv>79x0490|XMe<%1izxVxr^M}9qtAGBF{@CyP z;lKUA{LKIP%fIpMZ+{Dgf38hv1Hd%zj+2$i*d=DA^|3wCPP1DRpauoN>;)NY!3fiA z1B*%Rgaj@NJ+$EhoE|Lizy8SHm%GE5d1YTHHA(9v7?{?xYREQ>CKzoW3*cA09Us5^ z@`t|h#jpLwZ~wLb{b&BlpZ%%->M#EBzwwX$$^Z7tzxItE`sQaJ@i!nb#$}6cwgGk+ z;GABOUkR#f3~8GLY3`VsNkfbEGWyyVxN~|Id&Dc`&U!$nk5N?DNu(-H{HetXXo*X2mw5pH9vm39q9u(V8u0ybK-ssvn|IoC`|@%n-9gO z01tdm1O zN*(fgPOL2#awXi&bh_YI!0Fctyr-g>2eCfZI`!1pqE=?V)C_1_2cF5&gZ;!xjYMDW zX~XPy5G%UFjglD-`EKzPSBo2h5GY6DSq=$ZUJ%2nYZLPHz=90~=qwi_!y|{Rt4B#7 zth12-OE2P{L20FH*p;wZJ3jY^!X_eh>C;tuneNJ$Pam-12YSQ&+)W(t;LeP`6THvG z%jW{2X5@rH3bbh6J)@KSIPCnU0P2|4UqDQ<%|Cew7=(C8hfDmEVDm7GyawjZEf{#? zGcMpd7|VJ^I%tVHz)R|`hYbjfQh~$3nfo9Y0sO)>zd zm9$Fi2CZ^wcCrRe=tMl=NUqWxkd1j=tf)n~re{Yd6DMFYh?JR?T|nOshOm{4ZY>-8 ziG3(1Vu75Ew%M`bnX}`(x;M6_zHIpTGkw0~CV6mT?IN~!0|XtEk9w&v9@oUuw9QHs zFYH}Tkrz0Cw(xvdmtO2Bu{5?%TaO)pQPH-smVtJs2GtZkQ9FJ-YeE4ze4L%c3j+z# zdzrjg`cqOsaafg)!-U&s&i4sdF?vSBz09)#WF@9b&>3-d?W}C|ZDFwtolbi43Ihmv z@8EVnxtwD`?hUe=$&}Gc>0IlAy2)w!NxTnm!Cx_kr!DKaBU08hrd0)VRqf)$GI;id zpcZ~MAq*${ej9bwHAfENf4?-OaF9s|(Y&1ueLJ#TgwPhI~ z4VQBh9Ns6ysiOu93EFyGUG{&DVypu4+wqAw1j`0mKA)*beZ0Jho(3N_CpeD)*M;rf z-~1|K>Qw1N*ar-TsKEq~{j!m?#Ls~Q+KrCzqkr`T7=mmWd9By+2SDTq!&Hmhl8j)T zwgB}&nnxRc!q=?*VJvx8%|T7+gh<7Od6z&osu(5a3YI*c#-B{DLn<30hcSBg;HJ=O z^s%B@Bqft{7bs#<$bmH|U>~Vu#G+~Z?ZMarYdz%PHPN2VtC99HQHH?4@Zy}7#kD@C zR5JmLN#JBTA!9Og6XdMf_~|=TEKSB8#>_aJrXBa9Wxa6Zc{n@3+OL4mKgYil{PDBz z|KLCR(?9W_|G9tbANoG#taKFcC?OUg>= z)+v8J&WRJ@gVju@$W?Fk$0<#Q^RA7!|N0|XH~UroqZ{>|?L5qyUANWN%O28I7x?%b zM6$9lxUw{U`10eozV)rY{)L#iFur3SSgdp6i*-1x1Qrio@+NPcTjR>KX#l57_6>b4r9C z$G#@sFC%IVdVG@LkP`r7Bu$Al#vEy*?NHWZ%Zfda%}#6HBm;;ZuU)8GYCQv+$w(c` znY5_H-s%8zE}1X-vk>AeMV)2I30b>yfzOTrq%$psb5k&vXhR9(o!FuWFe$9R{xv>g zC(@90d|&{{WF9%;D$fv1>Rs~xN7}o_?6zIyVS9i3Y9ITYQ@}PiV@Pc7AxCn}11~)MfP^tn_*pu6HTsY=JYDcd3EBNMVz!U2Kl zED+@SRmiGLO|qyHvO+Iuwrrh?i8j10@4uP|LtXWewo=nfos>C&kMtU3p7l3vFtjjPbwUCojPjYL=& zE)HLG?h)0`nXb7s=&wjXA#_$mZ+ew&l*5J*%DYtG7yytV`!1x81XJ3zN27u;Q*VRw z)xkDFwtcrSSrRtY%FI!v+ELnpM^hN;qEZj+X*mRfTk-t#=q0E)al`LURDOET>oVtx z=7_h%sXXT8q02%j%aK0Noyaj-Ofzk&rrNl5IZ_vAS`Z8`=I6O~0{2Ks5zrn3W!P&K zxB@7MNX>0jAWpzd=w-W)jSZ)QQfO;r3N~fmUQ$<5Fd>|oEr%hR2}TcQxFDbrLCO&V zTm~g0Ue8es#9kZT%jfm#sS_N-DD-&LH~n17s^dVl!qBxyV{@u*J-~|}vCO1wv*EH> zLtnbq4eh-T)x)v7Pu;VPC%INoo@J+&nBBtjz1EZHWiUK0eTJRuRbc8F~99#Fk%iJBMg zq}EHi(2p!#*CCGJ3dP_QHbVwwik#klgiRO#Dscn$WHhFAmwr4mL^O70=4XT#HeyQ% z`^)hxPysj}zW(jZN4VhjYr$-uEWWthlqoCNC**u3El>(SNoEd?3HT2Zx-f$I^v z@@=KiS7hSI1fW`}_RF=N$1SD-v_!~qu2JuSHdXiAfNg^;c#-BvWsk7xcBFER2h_4# zyx`mSREQ@P?;OS9qIzf$KpuA?5RRiodL`xSK!0m-=Q8 zdfbEbs%X;c>s9Rapky-Whg5ytg{ad*jo5qZ=dH+ThfjY zO+`3+NkQ~%hb^0aHMT7)MB9D~#^ksP_ODx~Re=Y;LEFrN`gs(a9|M(Qd=pwGEAg4M z4BE*ma$Vik7U{vks7DYAF>^Nw)GeNbjtcddT-=bwGsCU3J>i+}G!pM1j`?>&C{352hhKH%+K(9pNniuk`jme}qZ-nl0gR6bmEAI%0tl zSedfioC<%zi8RADI6J+ma1PE(s7c`XKbi00FDrchmH*@KfAD+0?rs0xd*1caAO6IT z{_0D2@7%k(fq#mM0u{}7Jl-6R^U@^!zH8k3b^EDC_Q5~6vLt;QqAFcj(DHp!M}KXH z8I#AX8OJoVHX1llFh$eALvk}?#N-jKkZ_RH%G$=$98qN+t*cU$@gLD>n@*rj$ z$n3>ABS!WR5c-8dUUiy0>?gnfB{rVxn5Ecer*pa$vOrujiwNO}{RGHKQ(^0sAzqynBT8UMl21Lb zwoH0?$&No$XRg-g;csJbYx%>V_E%Q7ezr;CCT zVetXJ=EexW;3{ujn_ezh5duCcpgO4Ki-d4gMvV_?330eaT@0*Mj@vlZW+4=+m0)Zo zWELC?LuFmj7*33mDNZ6+nV7DLXhJoVI!;MdujYic22-$^G|F$#5*B0YTQG;MppAhk zii8U#bt41AXp=o0J#Kw+#LRVD8)+0V*2#G11)8_VIBKG6wD59}#Rzq`@Pq_I(^OX_ z642ucA1PQT_h7f;z%w~#Q<{_fh^YhAo=VtkOCfMo#{g^+`&ugX=>bCf&L2bXUCo^m zc_*WlyVO>w6e+)yG6@dE4)Mf<4MZwtSqLw$#x7PvdTKC6ZMuFCSrt8YF_pDwkTRX- zvw=%J5r;G)B_kY_U|>`!Sn-Qq(F#U*g>)ChP$iR8QUhC(q*+ZRC0-_ATE1vkh*iAb)EcK0NW|3icm!fgC5%v zS$?==%Y56Ma3wN?&M3v&ks8g^gjYdqJDU)SNSdPUX{l58?A~?tJ3;459$r@YsV=^e z91uQob7-4u?AFB5<-@hW;>6S-V44Q7G+10!vSPVGW%Z?SC?Z+vlLK@4g9z}VU|hY{ zh#$fnO9|mt23uu`*(nH$T#u|L?3qLjXJ~wjjyE+7P&ss62{tpRN?-{h17CXrRAhxr z9VnUjjl1+|1<+J9%s_37;Vu`r2p&7cx2!xPVNA-YBl25L3kJbTgD|BWMie(36P?wvu zBC=r)eIq5YJ47&E<1S1vwYPqY(X_OhU1t|U7G|y)rG-Eh&`AtW12wml*n9$NX1dfT z*o2^lN}Wv@CN~h!i&Rqv!Pd@P8?kwY=uv=$ace30)H%l{F9EGn%)LpIr;;yqOL=#f zgt@;c8@0Eqsvu$>&;!uI!Dm6$pj5zB14jiHMpUye-k0u`;NBm;&xyuuQ+O)G*qnYu ztfIsWSAjLBxV4}#C29yWpQ0Q}`bkprvd!A(SW(udv=+quUy(Gk&uMaYb|f_l=s}DA z%ACrHz$<#1O#`F&1H=gp!)gxVn1q z=<)5RH~#fM@YVm?yWjD1zy6uO`42z*_~{k?f8d9YpRkNg+EzY1^$=C+K!Jh4ibIk$ zwm@fh*DJto zrDD)<}r7BfhUo|lCUUneR}u)z4yKJg)e{O-GBL;zw*tuZ~gR#KlSNX zAKkliTT6x?E`UeDAy6{+KtnS2Z|&A1FFh?p^=cM~0$HgQqf4R6I!JciAi@w?{B^BG zqtMPpqHR7WkS}-80H&Z0uK~sBD8sxe0ldt#2wcLNCl@dS6q*E+NVPJR#_*e$1A%>Z z9I+nNyiulsIRXYQCUmf#NVi4^}$(ARy0KtfH#0&ZR-a6{uO8q+Ok;)RlKZ zY*FfR9ceijfdx0&)7cWZMpJ@Jy_Vx znm&VL1Sg@C&|Kiy>#_t$LYZ}~CwZk2#brZAOy08q+yxIvhIPLS$wIpo$yOm3x=(xC zy{ItOYYnK2_e2RYK;Fh;kj_;$i@+IAd7X)E;|%oJuGlLTuMDFSm8bJ%@U%>#;t_?? zPcIm2imQK5rZp~}=xIk{Tr(#Aa7{NR>)=ENpUPL)>r>|m(ZHf~uhW)Qh1~EBxy-Di zLeH-w!-39t81Drn%NhCw&^vgnx*%c^2p2FfXHsS3$t<1{>$%PrP!Q4#r-zr8 z4dR;up#E(ZPRU;TyKkQGL@B$*00Rf~x!qbHV|n z+B!HsB=dBv3W-)o@WWDE;|gyb!@3UxU{O_=2K}Je;7hX1d6rbqn*gLMtcI&Z`dlB+ z{PYM+?v+x}Z5)kRoHb&2g+{hqC2Y2=VrcWxmL9;~;~rQlb##GLy-h6y<|;!5qefKI zi<8-8!60uFozw#(aOU8397g)Q!>3w!x?fR z@1qE&hgSeHo74F*Uhq|>5|B`Vz!b=_iYe0)Q=?T`TZ#}@(Q+Oxji^tSeh>vwAQ#ZF z_NEjB3Z^r^XqtznG<9{AnFiZiN@MJrJQzRoqf7LcLSI#tSS+e(IhbGCL8WWxlnhXi zN|Skw4#_&G5gZ%{1v-{MfgMydG9Hm|vXy}&h9w+&Eeu6BEe3>|S>c*3gGozj_eUK5 z28`q7Nf_A>5$5v5*%TP`m=P zJdBN0jCjC@-_6Ma#&lpvV*VMzF+K7ct;wJvrB}}&xkOfPL|eki)Ut|syOOnz%`qm- zUB8D&B=K)%aLp|%aM{JwDjc$_9dgr%LXla&=bwreruDf2&A;pglRPVA8Qe&6&5$-) z%5nv45$QrTgQ?Ox490_}(DXW&Rhc{r%U4DQ8NISAL-0EVkegkTemcnswxQ_~eQ8NC z>JGep#n9lLPl^k4$yS!c0(c#^^Rg$ulVjJjN0JGzG?Urm&lMLL%k1fi$S`!SgGkwl zVTMJLul`G4_twAgC%^svy{jL7?=StWpa1pep1b$> z@#EfsWK(P%NCDwr0VN{GNf(p>q{*1Xei2?%@o6hF_obNlLl`I!%V`|o?p z_y3`<{n=mn)PMW;KZKwB+`E1C1pk{e4pObBZ4oDX_>~%{<+VlUGE#)qTlk8tKv@bd zw71eA>&HHsvY69-&3NS!076EZ)N)NI&9lX#LUxscQxgejlB|p;2+)#jz_cQ^;Hy85 zyY8&#Lp^8%k{FKtR0VBYuA?b?12veH1_3*Mw|WmcDxeuRyGwUt8OnzXkLJ^i(}IDj zhW6FjUn8wRp}0f%aE#g4!*YwdIl2BB8KSJ4I9t+@*!iSQ(5V zen;U<-PD5((A+#Lv)qiA6f~rJGXp&qXL7-E(Rt+G1WyffY&MB$MazcK0B@y9BP{qm z`d&>;E7ml%NYp0G$*wy$elX1^iK(_)3rV$Zv343~qb0kBR94$n&ofbkfOl1J_%sYi(lrTM z)e72cT4Rn|qn3o2V&hmi4z`0F_mS`)QtuJ1fwx5+GFGLHU^X|4CcF?(F?DTEJ!3(e z)!}Av7zDNjN;rYzaMWT|&&pl%$q-+q<8&{rf~)W~pQDH{^B@q$&Md`YMViEwMA|5_ z3$(2OTtQMX%qt>b+|BAitix#)Xb8294i;4i=Dl#>e4W!yeYWG^T)B^3(++eNua3k{ ze8vztm+u+EjAPY@WSfwkps0CO*isqv0ih%f&@HyXQvYV(^uXbPlE$t2GWmd&EAAX!Ez&9kXVgW0}|qlQ{44 zxDOj=m0F-Zgx^z|hi2Q;M&A4(-yI7N$?An6{c30Au}?6~19P#o9W#LV-mooV#c126 zRSInle5)=Lt|Ww^wz>GlYZuOiHk)P?yAErDWg1C+QH5g+bCe*R0v?+MtkvQK5*fx9 z5e!>MhXo$84S)zybdWhtJBLlZWE?B-D(#iJ1f^h>8su6GyFH)%Aj9^qrC@a(Ri3mH zz11kTP$ zF;+X9Is^CvX`Yrou(bIUnoq_606+jqL_t*5q-rZ|F-^#vomwzUn|I2~{R}i^r z>yB)$ZrHeG14tDV*Q#dhmT4e5Q3!I`LOoeQ8a=(q|5E{CZFgL;Wl;vpif*G8(Y<7} zVhe_A7;{Zjb)I;d2r`f}A9NH?*>V*eU4QiG@pJd@eekmn{`z}=@tt4#rvL1FzU^bb z`MJOGzK=h;b^rF27UsqkLuNX};>kf_tPa~NPN(w3sY_6{pzd0DQebUdXw>?X_d@XD zn-;~$YmFtZC);+f=d6~YAuNb0EO^ugL~L^R;$bk*9FlAGM3yxb{j*P9yI`dxF(ViA z9H!N-Rys1_uIF4mORK3E+G?4#`JxfTer9mIHV<-+>wztcWM)T>bL%Ix%C$ z2CuwX1n?&X>(T3&Qq(kdu~F%O0pD7*KuQ5>vQxy;M+=RR9P;I}i{6pJq;e4n4|%JB zoN{q-UP1P1J~mj&m$YkcE@mlaj>FEO(oz;*!t}#|&N|d^PFOWALQ+X9E~KwRwX5a^ z4LwODIz4m5HYqaq05f{2Fo!bt9lAMcq7_V{DO1Xzgt)?*l>+P8WREn}5EIB&^^~J& zmr`7lvCA#hz5;^mtRM$PDih{0@9Pe{swsR0R*;gfiQFh;WvBpN531(=+IrHG5Hr;R zR80ccmUZk;wkO9Lng2}Ina$xNTH&$+KJ8P+ta{4k((-0%R*iQ35v*0{hC8BxlM~}k z-D3iPu7If%eQR3eiWaA9TuCHgjHRtWy-j5;n7yU9uopZnS;5>81sy9JUtJc4vRnA7 zfpv+-Vv5mdcBx|E0YS}@U5%++nuMUGl~dOuAV`RYRVxVdIw+u5BQswB7(!yxMZ_3M z#pIl%s9~bL3QtBNT zLP6HaluWuEM?)v6#Nvq6e2iz9x9%hWEUk;5x3#q~Mo?fJx>^c5t;)y+zEr8;QbZ_8 zbf6@@@#Z$l?S#*MGWfd<(L_{OEgojXDVwh1f65%?Pp?|8AzzREqkigI5fNfEfus6LI(Sg(JNXeTrDN_CL7md z?=1t;k)$*Q13E~inYy}i&_ji!V{z782Ih4dV}@4{h4sqNbm*i};Y z_CTpquS@`lH7gv^y5Y8%OxA5)5|VMrJ|vGHm*gVTpq@*{J~4Z%3U2G0J0UuEm28X% zv4g=;y|W=yd;2SqL~crG;Ul*2H*a2Dz4Gd7FW$ZNAAa{Y{lIsA?N7h|qd)u;?|bRh zCvST0-ow{kvu1R0ZO6!|y5-R#DjAVJ*li_K5ncPLi7>XeU4XA(lc@L0&d;Djh`#PSi!VoI$;#R-=C#8P4&syG;L)D!^%YL5R4cf_x1<$Rh!S3N zUftUxlAg4UL#EmfciuIQ=Rt5HT`}{?txQcFns75hp`K&v-(0mly=Q0k1$2@%XLm1I zb{p29b7R<37}I#V$%MmL4s^%{9DmbMSWKzUo)IqE!-Jz@iW%^}-xXSdb|n^e zKpJ0*3+A&P7D!@hqH9%zNu(p^+2+}z1l}xK8!ynZTkx7|l*gX3vAI0p(2J+DV>C)} zKnG9H9%VYSV0_-LPQ1sS<)&@i5Q0?H;aXE;Fq5J5mA9^N*P(#wh42$Zp4s2!b6hPx zW^(Ccl6GVHbL~J3{JQ~dVf&u7g%Ck4O@(0<*kqT3Q^?w8Ue0J*%G@4hcs)r1e3?EaNCCm!~`z;J|#{R2!*S3PdA6N9k}*rInTvLvSJJ&|F$Q zTe#KMh8edYYZMJDxs})qYy9&vt!mNbE#``55XLhOQ%5B+^Q>H~U^L%8_L{e|U9hbK z#z{`qJ0Yiw-htc`7l-ArT}OBbW5$KQ*X)Anbr`DlVyXF-d-Xw;+m~&`0Ev*C&>-;| zmDjdmr+7sPuF)#G9LE|Iax{+l-qJ1G>XpnwstSk8$Wl#F+9(9F=8hJ=6A=)GHC&45 zD=f?9feTEU#A17#yX^pDi;hj;d^a-afD&ZnL4L;oJ2TGlg!dS6j3Ca~F3$$?qQDD; zVTv_FGd^=bktF1AQS%1&=yclH5T*%R&9&-ko08A zvU1Qn#u%!H%X|#ShNJ}6$GSVM3;{2WEt=$YY-KL<;v?{6^H;pD7BIpY)W=S?M~>N) z1*%P1V5Xd%Q3srUP$hfa$eX7oR@b6(ESs9}#t4YLCQGmMb>J=lw^%DQ#yl~*6#zxn7t`tEP~kN@}|__a@b=7)adpZv%N zKK|Sr-|*@eXTR{%9R0nIFRUN6^Hs(A$!_7Xp zZr;3m_g>1-cS?kaTB{lqSq`~_VUFahyf6h(7+-4uPC&80F@>*+>ltefSXIfSVi>=q zRVy_rT55fIb^8|ov7^V2|H7aABmco4d)F`h@<;yjANl{@`_a$dzke5hPvI&5A_?*O zI}1@7A@eKsF0y)4VrMSq+Yh0y(l2^ep?=Rx2qcke&|#vkY@DZ>{qe?0 z31CFgelaQ7c$c!PU5lq_%C)JY7luuIB90ro*MK2Ya%s$s@dV5?gq2VZ-wnLfD8=Hq?8vqA&9o4-8%QD3ki4>H?9i1 zhT^2J$>K|ev;EY4l;C9Z>C|y{opeC`Ke31Fi(N*&?4yKrxnC@}o4hJ0@kIMi*jHD>Bxl7(6LX1y-U7KO3iAC(W4*qTaHB ztL0p7n?u!SiAOx$Acqv6=QDy#OmsNV-zcY}rOvy^ayzmIX1eGu{JLo!c1U+NP10WJ z!o)B%sWiH$yn@?4XBJ{>dgqSTp8JF`FfEAvG@Sov_dw7aL5b_R^s zT2F1Wx*57dfTH5&?*_^~*1k7fY1#98<{+QFtJ{7e)LJ@q2QM`+O#+Mu%~nFy6_N{5 z(~RiKwgpl%k$Dl`OpYz@rlh#ERBN(=w~C0e9IY&KFlO-&KvO6nQC>(#(1ghKjf7yx zD2E0-!NEYMY3pGikZlIH)B`Y6W;@-T=Wtpb5c{cNOD|%4;hvlUiME&GcI{j%%1rWXNrs7B&ygroCS$g1T2Ta*T;Z{ED zgG3`=*I+!zP!Ka7vsU5N@aphRU#0EV#HKnmr08}a!|_V)PI1&yK@EW6fRW4o^Hjy5 ztCXGNs$Su^SU&3N@GOThe99~H#Bd*|uTwKD#L}dfMk`8qr+ZyzhF9((;aZx?dmx|h zQtP`_&-~PSV0hNlUGA=qyMuCaum`ITW%boXF5oJ#X6 zDx!iKPeY8pEGdmS3`WR$2SWMzX-(K1G|M^A^z?wKro28mzBf_uMfb10MTY)Ot4b)@ zJKTx3HNN-9Z>_H(Scxx}Lh4dWIrMi}$-vzxR7 z*hcLhz9A^9`l-_qj$o%;EHTyg17)XY&vX!75SKM45tD=U382%M?dSCfl$z z?Ow3ck?A(JR5MF2+k0Yv#3QfLp{e0p{B z_1U3U z#vbhg4t>njWn(QDM{K?L8{ohKtSq(Rn=iNp=MNQn^%TWFP1r{fzyK@D;#ut}jJZb) z9W*YYPOlhISRYu`rvMm%A-QDX3AwVAw#6kTpPt^nbLZ6u4_~}<^RN7=Kl*3?$UA=S zmwx@f`q7{N@sE7=*1dao^dB~3TjGZbqV0lus}^lv2Q`Kru$z0vYG%jUp#gK|Ah5=Z zw0hr8^;UPq45&a{i-d0TFbQAfq2odl0X_&@0%Bb5x?e#VLSKSt;LH}1XIvO|V33Al zLDm{JOFbJ_kJ^<1LR!z!cQU`I+8FJxi-vXl-sCo4H&{f}pQ3oF`qYZ*#X=KN5ONdI z@t78}H!cTlWyCxt)3i&)GvYR^G$^m>y4ReRSjcDt$oo&JkrDKJP}k6dP3U08Fqkf5c)MZ47W^uEv_O5udspH((p#ShJ013x_DB&^_BJ%6gDEL`2uRbahRFV7jXWUK=!+^8DIVRbKe!lY(Zi zjk$Opl#62ZM7C9a!>P=AIPya^o0O!Bb&b^`g%Gg0_Ql zjcW+ZUTH^jCu|Wz@&XOUh-M>lqtQ7;FxMcVi*wtEtJeg z-bOsVF5c11&j%s=FkH9SwszI782oyax_wj znzbSVcAf;tI2U@ygD*Ul#@9kUW8YdU3$4!;gMy^eYQdOI4Jf@5Z1;;`(NpaSY2(2= z8#ZC2HGCkn7A=QvOpayKpS&Bp*woU2kTK;2;8?Pbx5wbZo0+>((JRjGy2mr)rS1YR ztQ>0PfOxnX<0j0`h=(w;q(`21-Q!_7x~Gy36);c-ovCDFrL(iQ=g8t{rS-k4C=u&q z>Lie6GiYd-zc-_Yl{E{o0FD~%QVP@T+i0cb$l?#Za`WUSq_g<$rX5F1w2}tdTW9VP zw+@#Mu{Y`p8pce|n<*>f>a`EO;FTs%CK6_=R}{t8()aQaR|oKBpnyvr~s^EFeF`m*IqRBQy)##${x??Nzhxak&o>26V- zEttC3_l{OlBtQV6yzr$kO>oMwq}f1>al-Uk7jE4UH?M9!zPj=1s}Ju!dHRFzdFP-1 zo^QgRc>f=M{1^Yy-~DHI@7}p}>*nJ}Pq;bAGyC7NYO9TO5k;-AMrCxDW=$DmW`^ut z%}phHl96m`02dkfg2xHSVoU9iinw|2-n~jerV3;%Up#@s(c#qOhy-pOjB=g0YO;Lw zj8Y~kH?8o(Cct-VCcH#n9;}RFb@JS~bNA&}AH4Pcoxkz}-}z_0^Bo`fz;FD;ANz&> z>-`^pau@4`pDf_NzA%w;J>h@jT=5us-^!J~!RRCD1+G%mkE}35gUN+)*|l?BIPT3% zh5=8m?J{Fo<`ib7uv|kTO#zYAuwfvbNa==a0DRn_Q0dp1PiX>Y~DfaGr+e*(iTeob5|PSjb(a~s#29#+g;lR%ux zXsOd@Hs85NJK9K-h&^Z$rg3NnoTYKg<8+0)L^MS~Ov`gGp`VGXi~vfri9DbP@N=eXQ=nmAq`=}bi50cfa@x#-4@)9# zTteA%A)0rAD8op9eGyk2T8uCVhKSUeLgbteL&MI>be=wU32ouPfus2vDodAoiMgmc zoYc>u<4MoaXab!u%ABHs(1);OQHM$jm~Vcpx}r30XzAV#%yGcz~Ai5WY9EG70L zwT{&ah6M)Vj9}EkDPFx!Dy85=1dscX)J>n!Vza0bY1axMS&p<5Gp1Ig17~Fgt{Cw> z15o(RxU`k)ctz5^C;}3;E=@SY7dczEL+0{r4MEUCl0mOglfAO?bl6tMJSBDNDo)wR zK}zj9rV;7TU;)dz)Fpnt@2D(e9Vbkm=t)02Q#8&>RoZ?qJul9*3EsXh0cA~-sILpUu4QLgtoRGm}>5;jjb|K#i#&s z#vNCOI z3xRTnngww87|o3_9Fu5cIweu-Mzn?utJm* z@TY>;S8VvZha&cd_A&^NbStYey3f^;y0+r%Q`wiecGrNZ&)wi*%R5V3uE9>sX z%=cz4+(;E89f8_tkL-(%qiP*p2WczDamCIkCa;WPm3v^wzW6<(!J{o#3bJ?eblC5D zpq_VU4m1#Rp_q`~v;fGJAeJd3%B-Lt8i8;8Tgk($7#ongNB%LDEx%4jT zqLM?AWz_Reld@b$nNp*6&s4Jl`dzrJ$EIdUXIJO=bj1y57o}b_1U3m^d3#GdEobY> zfSvBz+u4%N!T{etatkDDlWH(^2&1*8%WI*$YdB@t8oJ|U)7(;zs4-s{tAsGE7XwDZe6VtXZmEKcAYJrB8q$nz?gUKvB(XCp^X*?1jI?h<9E?}{hAZeHEE;y;l?*A@OT zohJ`od+@gVcYg4@zWLw(u6N$LdidAg`~JW5cYg6E{_Xy&8;>477S8BSqD*zFfv%+0=Q zAsx`^2qqQHtubv;UWn}w8+3jKUW|bg}NFw9~)yPH=E5zOHMGnZ$&NrJgQYj|PJOa1U2 z4w#5;>l(Ew>79RAdzjK@GWblZbCLQwcAGQPjMqruSSF}Yjsfu^da};7rP^{0uKb(e zGDeH;c1e+lA*!_4xeGIiZ8Kz%pN;AkIQPX$x<$E0BWUGSf3i_wttDsFnPBhA^|ZR^ zTPv*X+lGTsj>i*OFg^#URj$^SHE5Kyrd6c@Zd$Gz4}C)>Npa-j$;Fx8 z`Stb%U^75czm**KG1_XyqGW9x1m$~qM5m#(CX751Zkg#fr^|YAn?K}D)Ym3z?l)m!JJ3X9$lvla7NmpJ( zm+H8?D#ob8*FeV*g9UXV={M~~R56vdGnAvR*L0@+-K$#Fcsy-y<2fkK7$d^BRZS|O z=SS%Uc=i?Hy(UU~stDYjXYuJa8m=ZHBywCzlWr`Bj)<55-o6`9HoA+Hn$I}*#s$s5 z;w#z$64FEhHdfI*rG)b83Ldz;D+Hv~E5}S$KcuL%b<=Xn zrh-SFR#c8QtU&?Ia#^JPow@^QA0KiID6&QolcoWlKp(x8*dPu6m7yi-gLwD9ghBQ{h@ud$Lgj>s2a(GYtr_^y0p_ zrm`+aY!_6A_9pj)6{2OGt~gQIoNFgnXtb$iRn&#vHuQsoD$pvP6XlES+kGIrPS-W1 z7&^qJ{HPBId0W6p zB1Z}k*WfAGVegbViB5ZbDWRiI@T;aqt!8wY%cs%eNnKE`QQB?zNjY?!wF2hqhGUQC zQnGGXS(cC)fDT-f+q*=I61^3tWnz>DmpxpBJHW{DYBh_}H4RQUs*b|UL|u#r(`9%8 z4o#r*04`*uS!I>d<+*O88~zl&l8xP~YG-*PRKqcsVCMDB!GR`=n9dx>TE_mF=?V@` zewb;Oha)*37{)Lwb_&m47zG{k74f1RAF0b(S1_m)%?}!k>5`RFx#_SB3-C6nz0@o_ zCu53B<)jGIE3;(q)W?{x-sbJW0IV`%?2e|Nm3pz0#yx7DVlFU?q;n)+@pSNC#L*8D z)DVFAe=_5rJbL)((TxYM{lT}r`9J;MZ~Ojtf7Qz`f9}8gzklh!`SB0ly?y8E*3Cx` z9|F&0?ugQj?Jg<#9apElF!%DB~ghl(xb#3c*^Vg|w@;Kpd43*A}>9pyI~WQ~q4x!D|oi-F*6A ze($^goqyr?f60v}Kl1Y*`O81`zJK(I&po+=zhH9v3RUATE%1>|7L3g?w`jFuB<|#^ zyfW1yPEn#Jecv;fFd!csTzxUDZmi1a)7y$@H3|hTSvih)?E8Buw71UDS2C46%P>|0 zZauNcN|khZWX+kEEuV+%D`W7Lm{%^Q*rw6rWwvre>yW@`pn>zbN&>CZMcIx=gl<)8 z1IGo*1axZEJ-z<1kwUrK&LV3!$El0!sT*D<1oxU%S`yZyAuVXN98~F+TIpF5OEaU+ zSQ5w}Z4ag#?keMGO(qUIn@8m-eWY{1%I(a|M1pmYf8|*AOQe0NZFY}kl>~y0PlH9; zqg6ngG#H^Oot31N03BKBcAnRvqIDO;$d7H`&8h5%YL=D&7@iwOOl<~Ih##kU>YJroo)G3*&f+q?t0wtC@X+lYlKzt=n2!5{({k>SIDq0fbqC0tyqc z%$p(H$=gb6D@vR;!NQKjEGRGSPl6igYE!x-j3#8hd&@Ylovrl88FtOEF~$@_?-Vv} zP-Vf?{uT+p#yG*h%oRv7L?o7IVhX1yr?9;1)EdLHLU|e)XsoG_0xeT*{0$?ZPn~ty zBxli(!Lx>lY@OP^24kZZQ!AhWuem7gqpJdH%sBy&x)!CPM}6Ey5=ksxoHl>WL+xA&;QBDUqW7AD zU$r))l909ojg?4{C_OwM_x7b{Rd|tLRM& zYK1H}Eh6V&Wwv$9N8OzZwEBea8gSmX2Ip}tBD{I7d>zQPEKHk8I1LjFO_uTyn%-c)={YDGMr$+sQR-f5k$=YIYtF@|iTSBA;JCGDGau z`)04~xSA}L#2!|8y(3l$bYYaHFk@JiB*6^XoLk)=Am6A3q5!c;ZHz8^J|@mYzgLPI09h} zLKoLlsdi#U=qNX@GHMU`ArS~JV;MS<-buRJuI%;&O?LV{bxy`+*Tr0$JIsc;VJbYs za1w<>EFNa+3H#xE%!@?WGaM1Wq>jK@%Q<9$C1=+$or@~BB-aH8^XnHicrJTR0ugXL zh@HnMV1ku)G_k^fsbRA?ZkgSZCA@$}R2GZNCI-Y+IB!Lu)4HS9oE!&?EYUy`FAlBM zB$HdZ&zD6wg+-?nKN{TxyXC+-D4SE#;ey$0-89Qf%S;vG0%m!TMrl z+_vOE*lwTiJF{tH&5mB;|9sLk&hXumme0?V@&fy1u_6S zKOzuGD^D)16PRe9uKS2tJ7&e&O2)EbybU#1EE1BUGe~y!_cFq2k=DbYJ9lnBdGrMT zaMi#2$KLgyeDAk>-Sc-p^3hNKkN@Dq|NB4vjgPn) z0d_0w5Zi$V`-&apjlrM;F^HWb7eyyuwcBdjm%Y1(dgr2#tc2>AxnO7wOc0+&?Qqh1 z0P7v0o;Qr&Z_5L_Q=XiitQ_K7$oZ-X&I~XRNE@T^wou%*krHx46(Mig0Y3 zBJ`pzrM~5BKUag9bLO4nnMvbmsLbd^akdG#mA9-NtZmKBuH455QNe%5*Sd{dcV*K; zxhQ@z)F@NVH|enJo6C&lc~Is@tI;^~&N5OsB2 zyVumC1HX;v%i2_XglQAi!6P#_ciC~BGJ0J8o%(F1`Ut;VDzi;0W|ozwwdT@LQYQY8 z(1bKL$oEMcq-alKtN(#qe7fiqi@Z%5n2_Ez+7Z_~jALBMV5#-)Rg#)5+J%pCsM>CG zV8~Q=pduYU9xF|}4;VNsa}36jksx}xvIkfnZ+Hq9lWi^?Y17Z1}^F?YEH(}a77Dnp-r8cv1zW+b};Xt+{P}?XTU6x zVJRyH&Qz0ovtWesxU5PTtrEH^-4nC52=PfL0m>y-n3F0!r!{U{P*)HN(8PwZ1gWcl zTp*)yo}y?>A}7(gZ@L4tX~cz7_z8132PNZzC2XTJjQ7s#2dT@KG3>yAHMwOYQ68~* zU>0>LVn}Qptsx!VdJZ|C?j%JKGd)o_Y|_W%8N&?w-0%wU42W7=8WKRO{09Ot_GSQr zD7*}Fh~j7+u{Eq~(FZ#(QWG5e%Zf1_KOGO+m@Q`snS2-@Fv~j~QySB*`NC_&AQyKn zq&LQipkq$YC)F5ZI9JC?Xmn4CzBzko4*D;Xn70GPd8!!Fo5Yk!1Af&O($8m#uV8kBb)MVx; z8_^LP9CyZetP$MGYWFfqk@a{Eck?u$n$@05gP5j{dZw z+$yPDvpx~Hw3AkfwPPKh2z0uD%5W7~uGHtMqcFhF zBW7G$E!+!SqcG3VIX=V}TSYI44qDA9Jx@-7vPEk-o9l z@?QtuZ?We2-3=_>8uIZ*t0zmXJ%T=dxPtMjh zNTwg-sWYx#kqITPUXyl@kE)@Co2(?Br<+-}aZwMp_IE*Td7T53Rs{!|m9g0xQNF${ zSXPYftHmwDQF^nPzhGyaAeZ|P(!wUghPi&yu?1QA>4H^y?Tv5OFat2IHk!CugA!lo zOs@)bwC@!0&UBZ702y#}X}%d-k*t$;={SxCO2c*P#0;sY=m=+$E&VnjaKFXCe1Q;( zCuP|7QB7*I0W!2IB!pnS^oVdzSd2;*g1QW;i;Hsc^(+lCwr8tjo0xCkF$@>Uh4~=7 zMO;!ILZbwiKr6!6OQM!;fjSd49$N_=0LnWHWI=mE2f>!iTvh=ZGIGi)7lb9dDT=h!(yM-L$C{9$Q-CwnRI*T$ea^Vf*T1fqHKY zUV6p6(Hj8Y-qm1^(BnMXl$fU>=YjzSR)3U6TsM&I8<1U-lKIpLW79k?e}e4~f$d`M zLDAe4&@Llvnqb(sfKliqT_G+rM9p`=(q2AYOMCMi0&K64Myq`T8ilDAb%W*`6Q1erHgWT1yoRGDt+wV~KpyNCc#-2{lgJx=rb#?W} zz~j7^ig6p;M8e@|5Lgk8Hrr5eGIZdf-V`WmPa zX7l+v6wxE8JD)!{O~=&Up~-3f^+}o)w{mzg+Kf5xBr>%_?ox9?fI8}`}6C5Mtz-9#j zw@lf2&n@h@b=J1K0vJD5xPANf%U^i;?yakT^AG*LfBTPq-8~H9h2zrHtti2~y7iF7 zd!PTaLyoGd4dvL{*2ZnX*lXg;+;|vLSeurJWqQU)4Dnyk7uRJOj_7~`z?z=es)jcb zf#~F%4sm1EhqZ^-#u0Il;Glim5~bxmreC|zVL3PKl)Ewne2GDLw$#SDO*#dw*oNEO z$RTd`dbaY`W*3uUiBS8;j#_xr`+R8?`<`$HczgjO&(IOnDB+UBmV*Eg!_w*JxEXA8 zU?bbxg9|zISkZ~=Vvm`>*%+HiUC+1PjNq6&CtNT!&lYlSEr^usv4tlOca5k~)q13o zAnb!{ldw%pot9KYUpc5riRhKS;MoipEiE2jH>@XcU{EmE)}Cc|fl}iqcwB^DY&o)> zKVODE4s*kZHm9(27T#ERse86QJIufuEBUI(wUqPZdht=RF=NY;WlTw5EvsvXX`t<~ zo0g`{UbH2Y^UKb-3CvZs*OjIggGupiNqREWCgCh?jyr^d4kMx_Osla^HivbKKC?}L z{Y7ieltI@BZ%l2DNux0kGiJmFx+rWI^9BzaK?lwd*};k9wm09&(6ofki2@rrJZ&R8 zH)sq!s!t*|RAe4V0rzcLZj$ksa}#W)hJdG_=F)6xs}$3w6t1(PZCY$SKLVPk9BrtO zgCd#7oluRU-K{Q(D?7Ps8RnQV`di5y;7IOE33glJ^sZDDYvf5YW>`RVk+jlR#=iP# zPG_7f>?5Gi7z*T`|naQ>wqoQ>b_V|Jii(X_8Fo%KqN zx>OwJ6`LyzJ&JeCui-0R2Xqr!-*}dqY_>eXBMU84q7X8)b>*OQy_?mpYXW6TSh6Bh z@i1w0KOrVb$W~M^qNp!^4SZcwSb2hqc6y zSSGw|b~$-!D+bNAIa+$$h3d%WIt&W9a%_OEKi2F8(&qc5$_y5_9R+quVEu^Q7(3yx zw))tNX`)5hF&jc6fnM3X6Mg=d)7a|mzy zE``kP>Ww*L@plF)y{_&|A$ZM41JX1V?-w3Bb9AMB)GVb8djPTh6@{pChHQuM%zh%8V25{ zx9;4+KZW%9mtXy=7w-RCfA}4L;@w~S33s0WB^qZggiC_8D-+uq6e)i*^{nQs; zeeDr;0%)%ge1*T1!2iA5IV>7ymBNiiS9Gv&DA8})QAmVYFibFO&!InVk$C9V9ukug zVs>1z=@PuN4tL2YQ^&|qaOI|}(?-9;D3AxQ6(WP+UgBT^0W1bpBrs1Yq~~p#7L5m= zmI;|-+M$vV*}04=kiDbIyT@NMQ(0u;@Y!f5T)?0(37JWYc3C3VlQ8I0I&?lsVuCvit#3T)S6BWRBtmAY9!bMZ|n!P#~P+k%!ty`n)dza`Ig3w)$(6V}q ziLq&!I{`fq_}QmW)y5Z?JXEm~%HWfo!>|oUNIwo2fWm~(sorgDTD)-L11TZ0+0mO? zp`^Uf*K0c$Y(uRabD@)^oesA;Wb1^kgYP_nc7#1VkJd9zvE5tZ`-Q<`5>Vh3gb_a< z9g?i~ANp~iF$~;cHOmzWJmN?962)L1l~xnoq_*^8$-z7x9L{Y`RJptAGFW4;&GeH4 z;h}0q4=8=(PLFLX_6~v}adZikcbO)^U_dIZ+{P4X%^1LlB*CRTWpacu@&zh;j}ukF z;!G~tW={^-te~ixPq6|{d12gBL#ThL3MN7k$pOBMV#~jYnmk^4A!;|4g19vGSXo*@ z(;^qgV_svJ+C`pvHOD>}?qps5s%KfmrYX{_c1uRI>E=d%ec}FQM1O4!Y!{@ zUQgC+fskxX+!co8rRGu3Q4>tp9v$3t3p%Av&evlH%aS^SuaP%7hk_xGR!qfOt9Gn5 z+sy>Y$`vtt4BJG|I10C}^kzltjcF({k&~^nzv5TY<{e%P6(`yW5OK4w<{@CgSor2@ zW?{}l##b3<| zN{rS>G33Gk4^Qgs_x@t?HMB~xvMeFx*suE8n35u$lO2U8-bn@3cG8DhxnZ-RITMe*gQp8XzD0Y8EA1dZjV<#%%0fS zdTKzkK38@u`PZa!nZ&d9t{eHVkt*uCtFo7b9YiYx;9(f|49e*JI1|I=T1bOZm10*IbG$)BX2q|C6?sC&|)kp&1+C%thEdqm2;_HUI# zv%pn~;c%0Ozu+*KgPQ2Ji3~@YhJZR;y=JAg|M{aZN~`g;Q|)2SjHrO!MM|EB8cD2Z z3$EPjI{!?S#H|xR%E8lSUD1`zmeES#6GkUEo<6~UnsM{y?FSDZK6?1tS3LiwANZE9 z{8zr=ZQuOWU;6y>Z@hZ?=%b(h&0qNFZ-3yWS3dlkU%=m8_}J%Ped(3gUVW@DEwp{I zpRh>o7p3>%pCaIA5E6m&P;4=gb7qC~sN?40Z#A3hccOtg4q z*A=EtOTWp~RZlms^WdCZ$xNhqMxc$0J8gSiAB>{$E5biO!NW>} zpA%)%Nm4T+umv%g6B)`XLnhr8^T+DT{6G_OsZR+q@x!}AarQ{T*;C;|{^g^s>=?UH}@4Imc@sV_Gaj0>g1M3`9G(+{0E4K>xQ7j-=#4`TjxGiXGrFUZM!=7^3xkq%G;0*@?fPqI6PhT3&>86i29zwv@vc)G40`gu@bhh zGzrd$`ienvd4Nd)X~@F51MsZ{tOeqg5qeemqUaXFtHZUJ-bpdWpG1PwyaojAORH5H z#rl0VX_45m^|%-u)xWy3o>eXR*JG2Dyyz&{V3XM=%a}e{HUurnc44PM5tG6xb0(mi ztLG-FdHl5yqKpoGp0im5!^dO9J!T>GB@~Gu8|3#dGynWS)IsvN>PlAK}L5`bQhe7 z=skG=%plxL{NtHUUYU5+*oIy(xBc*Rnl+q`yC>oqWd^N3F*qVSJ8T$RJX&HgQ<#Ec zE&{@<-rbe5dAWsxHO+f&1u!(Q;_K^3pFTj|=*93S223$7ez>}wg4wlrwE7CusUmsh zKGU2hJGjAOiZ3a#uCrk!4mR5P%e9Ki3*%wp;dcg!G~Ppmx2FgB$uB%%Ar`bnqx_Xu zJao}2m4v~oXq+}Zg)R-rDL8$i<^Yb?BYS)3^%ocd1U0~8xClqMhZR@ox{|(+5fwSp z0<~4g60S~(pcv~);~e*VGb+J4iAimpDP*ma!0vKUW*@2f^C{1D5f9GD+G9L7To}&y zt=qa(ac*AS`@GjOmjK`JO21V{4EHUr#aO$8aj=bx!OOgETJFOs002M$Nkl-~1IXyz4Dr^8A~gd->s`kN?(Z|G}?*;{W`| zAN$Dotxxm41F5hf%uW~?#A3iHQ-WGC=ly0V=gL(ChpW@{ zdWG>2yPC#myqxjo-Mjgl3L>@L-8&MFDmz@&jf9A?8rejtZ0bkA;Hg}RRE6{|dxZuu zFO`$}G%iEpn^bRUqUD#@w;nyhUpjeo@7C2n|J5)4iEsLf_k8_Vy#34G{HFW&?%uw- zb>s1k$B(}7;I+@Z`uGcvo<8zVlG1oF@SRK__WX&DUqq-TzR}{Ka!J-#2NJ|-EgiQY zX6a5jv^j~@CS@_mp%6bqMMJX=w_k9E&>T;maekgME%ihl{xfp?KjfIjLMr>DpD6hH zy_?ZKm;k>ZM=uo5XRxNrP7VBjDeR!#1nS8Z^X6cZ#j7YznZgJCHC_YQqA+d=V0glo zaF$qwSM3c_G?Ot-NRCLRga4(<7zm~%NHy_}3j-M>2D3Q7BAlVV#nwe88^aPQq3VsI zyGynQ52SSyQC;SG*F@JDv zCrYV8>IJhhDG^Z@N;G+O@Uz&eA!uG!c%@U25KN$in(>rU9mM;NLF?cwy>KzjS-AYn zK_H{W#YYfE?+3`wx-jP>)An4XiXPAzvsU6!M7o1^`2~$$=s05zz3>nIA5wdXTG9ATm za+1^si4+Q4WZdMxK?f?d*s;{ibiNRu>FTQKM+w4Gr1cK9b$g4&H!gtQM(cc5KD&2DgJEsL8J!zQnpY!>SY&TNKaJvO6~R!4Ac5kmG%O0b#y>0q_SD8qQJSBq^1 zr)v!iTrKs;>bg*>f=LWG)i7B|z(bjQ5L%m^^+$_)0O&DLE_dLA|M&%f~^Til=;c@G;WHsa#GN2q)0T3*N>9qYaj){Fzb;kr24aIW`5xv;pdxBp)YC z)xRjlq(@wTM(uoYcNwBV^VWw|X0?*z#p@#Mgv zY`!=#FtM!~>n(!~s$Z-IztA_H@tad!tdg@FvTLq|1GMGQs|8d}zPL?*t#udUzxLq_z^^3`Yk1$rU&eu z{nB0E{EA5_06@n1Rs}DlArvPFp)zZ9VbK#}Xr)sS12we`6uLLmvJxT_@R--1WVfpT zq#G8EnT?65+`Vp1N&-IoRRjO)MQ^-w_0QeE{lXjW-nn!8;ghE?zw+RdpZ&rw{KjW~ z@OPArR6iO!= zor30=;1%F>X>SEnsuBZ=$e?iv%?c;sq{BErR0x(qSwkV$I9$%tj7i(D)eeM1NdZ@L zNIQ;0rR}Le8x{)crmM;(4C8k38z3}E4>lA(C)|Sf=Bm90FYS(Ny(41 zl%Otp_#3BjXyy|m;7O?3;=K9-TG<$A0g|OD6$@-y7X@K>WLo=Jiq1ehVZBW;Q>3H>@nV5jTal()XN5$X*q^L*$ z)|V{CSYa5*V)=&!O{_8~nG>>?`gX#0vy8U|ut5t|@({bVCe6sJ6i91Si*<|&$Z)ZU zaWS7nsyWJ@Q@*D?I+V{S48}`K#iA_J7ZbxtRZ$i|Yw{)$$<&dR8g+Jr2Hll3O&Oe` z7n#5k!YjTHp>IWSHHs~5^E{-&!s4l$MZBdF+Tm=Xs8smmMK6HYZ?&cC6dXw2zhL6e z3Ydzd)Q=s(&npfWHYcefkSTcvx)sVAE#MKtyA^Mhrl)>2NUE3{Q|7gFj!0WzXGMtg z=nN<&iiB~5M2yh+TVnH>Tat98Djm+lXvN{AE^y{=3fSIW44AAEOSL1}LzzA0+0$+} z{q<{sM4c=>R&`=fHW3v$JL6wg&Hdh)lgt-XSwTvy#&#^jeDt8wYO{b82PmYOXKOJi z#0+&OtDil?_rkcxf$)N|=S0h*K_)UQNpeXw5&)h;tdmTp(44~_fYwfhjf`yu6r5E9 z1BpV3bof#T;$&9a2$e={V6HRcV8f6a_yaIP>Y&R8*fW61X3q5vZ$m^>fVqn(LD5M~ zTm+vAGcq%Qjml9D#Df=ou*3#o^zPB-u_j4l7AEpZxwY8lp|212vbwKaI`LWO`ohXOD@O1X z-?3E%P@p%~V@>#hKx#mu5icaP7OE=?Og5TDKMiFzwVlLP;!RMAl1iK%Z72C)uXIl2 ztr$&qS!ZHgqmt6Dlyu3iD{Yb_X{8D-98thaxGVeca)>`o%ujRu?LS!jPN4y_S`U8a zuIB|8+NKgh61Sp8ifFf+MW0ozcQG0wloa@tDq+;FaNh)z{B>$FQ79pI5v#45T`<$) z05|Qf#fq44VOobf%>V#PK(xPt>yjdLF?0oxn!ilWY|Y^cyNsk`W`g+JVNOM(j(m3F zc%%udArVCX$ZMbCX5cadPluX8YtdA-S^d_NcAlk3sEY%se`h0A_O955+OA0FCYabx zo|A|}8)+d)0hLZ}SXGQKFv-BnRnj#zpG$DDoW_Jr5Tc!Se%HWn9-jq zIo2Vg;iThl3Y0~k2c?L1cR*sC7NG15q~XCJrcp=|h)qU2xreR9I7-4uhl(KykD{*m zFe*S`;(Yrrk{K*X(NlRE$$=)eXpgm%uKFdMzDf(eiUdGkZjC5r?=ODb5{htX{)kVs zdXN_J=S)te-fV6r)HhMnwQ83XC>O~sOH)gc+b3FWlpiN{R2C0-wqd<-@V3gA3s`Wi zJl4Z^q0bbIsFg!3IGJt?U@$azHH{7Mz;Qt2y`H4uRU~m_UrFy2lxMq8yG5wa^mMa{yr5Xm75PwGmxzqvPDBD54{*vhW^A_ z?ND#7@@@cV2RV-6jt&D$P?6Q3guty(|4=G4ORdr5FwaOMBTtk>yQ{!}Q|W|*03LGY zD;Z3Q7Z*FjbYA~71QVF}Nhn7$aOL1wr8o^NM5ewDN`e%ce8tG*eBnrHud+??$jMW2 z))h8qlYw6^1X}BaDV|5BQ7Q=6F2M7bTOb`a0MUr&AB}v%|2pBuWBdX2$FDtj^jn|% z!pDC5^S}Pm=Rfqx&%N&xzx@lJ{M?6s>*Xg;9^Sl#pC#P6eWjm2AQO+Is+B8)d=jY> zro0-wt}?+9J4$m!ghSkfX9?hGbI}*9J#?&S_POP`qrRibr9;w+MXcT#AOzChoAnFVaKTm1i+z-wZ>(-hq?P;how!hqge^hT}PAIi)lVBq#|x*{ij8#B@W4<3{uVn2nZ;Sy&Uw5WucB6ItIZ{>A7a0790y9%;QA6YB2d9(zsVXDv`2j?i@&&C@3v7AKLulim5Lo!5@9t^G{yD3eVHx!MLVzqJZe$iS zJ`q4RjZ-S~dqZN#80ksz|8-v&eDc0zd(0 zA${6WOqNK7+l9z#{JjfL5#)gox`-Ax(=`ft>Jmqy<79o4%!~+u ze=yN&eI)n?G1P|~X}SaIcFkK=RqqgR2QEEG$6@&I}BI#@&VATdi=E>EC2gbXqvKxnDt#KJbcds50_-?O;_fG z@c+5dUEFIz9NfN`as-z9{-t z&>fgAGbtqLe}JBUo+~Yf0_XBi9BJAd*uz!qG4bKg8GwL9Cbb%6ox9o~9fp|l9f~=e zxr5QdZI`S|ULnrRGlzprCe?v(4LMfiWao@RYg22z@ahZ};K-kO*c!jGBLg>vO*)Mo z$t1;qI$v=q=E!SuQj(^`A+SwSxKld0IvNASDtZ5qy&-n)2L^_1(UbRLsjifsteFAq zGeH7ebJBF4d_JuZvMj&?8z14cikUj|7f8LlCYE6AWv7?~3 z^HEG*rx;=QkYmavZlpjB7d`yd!>fiHk0=gG_y(ROvdcA4E+M}Ez>B^9K$3KN>NSVC zF$JC(SeOJRd~bJvg%^9|d9j#qaV(u0j6nyV3G)vPv}e;qswxrw(ZNikX&u#s`$x}% zMB(ElT*Y#F@^uS{nwu0mi9tysTWTpctn`w{%-1C1Pr+DbWYDMC+E9GE* z!ZSu>iM*kj-Qt{X*tN=7vt46nsJStKZfwbDkGlS}fixj81x1x4&-FoA2nT3jyxthQS1Drf;4E;GdE6Djwf+{`3F( zfBxJ5{U87NAOHEE_#4xCcm3=9Wy1W~u|UJo7sKt@(6L}@7{4#2So?X!kXVQFJ!?#- zF_U^V+LI4hmp~FN@w+9*TsYBt987Y&Sq*1G;x832QUUd9vZbF>7uPrw93t$$a$}If zd}6W2^X1G?b0M+KSb&`~ARVk4;-g18T1V{16s9~nNFfrV$-g;(ZT@4Hf&72-KkGdI zg9^mscfnqn<~Iir5m-@UhM`%7;yp?R5{-?Bw;s^-6OEQhrv$KuAz- zCRTSva2SNaPFn7~7*3|K83&1}b3K$Ztt@P@XOtnUj7-4VPl9oDY-Y7^@+tI|i8QpA zPJcLm5VHArzmBvcM=*&Xg|H7j?slSvf|~qHqCl}C<{>VKka%R@&5gL8g>KWK_ld(< z_w~g$(eA#=N|-#8K_sHZ@c;H)Dr!`vT?xu<+v{yI>?U4q~b$@GL{ z7QaP%`XOU!&K}vTaUDqg`l2zT%vHRs@fH9ep!bLFxjkeHL}$Jd;L7rIK5GFu;Z(QQ zy9k|XDD2hHV;UlsYWe9mF?N11cRBR0=r`$$yz^r26R=A8EnF0QRru>g;vhb=ZIl3B z6+ATluJ$^*qCgtBr`<_E$D>{+aSMwc;?3Oej%RlPX}SlG>6^Xvf&U_ec%Dp=7r8SC z!j7g>=`cZ+214R3D699;Noe8k-O-rHDGgzI zQk=q}<>cf%WIT{ePiSvDJS&NrSI^ct`T_?>E#7GUPVnS$;zECxkCf`prU_ugWsV?e zwf&GnJ-jx6^^~x^+)d6c7R}Gm_?z!4!+BRB!-{{j&Y%5B>Nj3U+^eDXhQ!1~Jy${BY{yFBAwSnE)$}$p)~j4PFfb zv`EZM(`oyhmsAcRUk6>1CtVBL2!}#X9ZW7O#^Rz6Lt+YYqf|1FZ}L8sgxyiPj+3zU zvQ?w|1hZGKp!Y>2my-%@jNq$pC!WpVxWSm}LJ2J6cq}_weA7^K(0|+zZ5MW2_-X!pGERTqhaL#C8mwW?=&f|Am`24#29TEob2~ zNXs$LslDgweQq}pZB($yh+{?|*QzQ}iV$P=ka z!u%)Tw*DbA(GL#ecUK-K7BM`pBbV#pBSe;FN?*o^74jOS_k$Pq3y;bf&q>!gYa{Nl z+bzSlloa!?^Y;k zRUpaf*_$t{>iPbIon*4Am-=__$$|gUfi%Fk#+6#D5~uG0B-s3C%CX0^k>XJ-+6meQ zvKI%o2Lpju@j%qLamFT8(_k>z1{es&%tj>+JEO(sA=$(eOzf&}G^8nw`OY8w-xen&z&7$jIuRfHuf<0iX~0){bsQ1*_gJ>l^Hx0mclyurM793~ zo!f<{K}Y{hpP~-fPz4=2BFtMWthCA=MeeRmgE^1<{hK}VR+7NyRN!#~rb_AA8h=2t5Y^O-6o zhPZLqi5yEV`o?#kH@;^zL?`3tHr@Cid5Th{i#&6kmSj#&bo^%|QuxqmK9cJ412*2V zjJNl(XxSVP&VJd@DjEsx98SoWJ`-Lrz>&qQx?G$65~t9jj?#v+8$SA-5_AyJdQ!@U z);c*9WOfKjc8~;@QMmLSl#4cFl{niY3Nh`W2P3P_;6(6+0k@t%0+kBOtecFveKfO* znanuPUsi35-%Dy8WDt?q2y+Z;gg(y0Blar;6)_&vK=kLq7z83v7?ZE7dri+r0^p7;>k#u(f2{qrVqgq`n`BA% z_fmb@5MUg*RAuJGG9YL0Y&Jv?`{S1MG8*z1PJ|VH@E=(FYsIn6+k zV70@IR;|^n+K~N5f{x<$z9@A#e2?$2V3w2UJ$xt7t&X&SpVPa7f0>18NHfgDc9+)P z{8h0HQPme~*%ozup6?f?)%nPh$Mqva^!~YWXddI=7by=?R}OZBd$vGQaaH*8Y8>(p zZry*GeCZQAK|b@jaTyK>8W9<2=HLncRMps|FLW_(_MqF$VDyG*uZx_Y0d9oB}9rx?nlw)hNbxZA}hHC$TucxBex5VmaGo z`ahtJMnfPGhgrcjTmkuqd5sdHhCTQXnC74V7ypA>@Zx9QKlVbTRgciTeP%zR7(8gO z0Z;;rW8!xzSaX>SnY0&UG_4af1!n<$|7kmBi8W6OmUyE4i3~pQxZydnT>?crDLGY`ggSpiAm2s^k0W0aWnI@H zXi8yB?KuGOMk%=6+or6yk@VNd^@oly+zL$B>wV5g*Uh|&Kx2^~D9n|_m?bS`aOK+= zHymgVc`=#?#xaY9S-n9%5Va!)S+vYFox23sV&4#@ewoBQx!-U?UwK+?Gub>^zhH^= zM@Il3BQsDMrv6FcJJ%1XSw7rn@nBbKXAj`Vf@+b>D4bST3Qg-r0YL2HMZox~z%th- zNY;XXa)c3c0WrMK=K9DtDSeqEeMVwFfQ@;!W<%b3#ST8B5mlA_MEd-rC2bgcKsYgv ze2%G14%R#}`I9|mc%k5Cp6np8tf~GJf@vC>3vc; zz&=DyHic2%Dluk+?^9w-bSu{%K`5x3xdIK#>z`@dm>bp%8+LVqI222O$We!jZ^;jv zDF18sE&fmZeJ^jmOe};2*m7#ml%xLOFSL%qjNwe>c1R3~u5po_1yEs5+^cmKe{r9p z&SY84%_v*XSskf~bJ4RIZCx6iXI%vQpOr~dT8ChO&tZ4a$3%K^3Sr62zoi97p9RDT# zAxRV|t24Fl9B`~;w$HK-Pzg$zEA8P5RJfDGC&3^46ESqCZ4er!q? z|3IJyrw6M!8wC3If5%@cq!~miCx|Nm69Q99YGKJtYsFH`;GC3=NsA#!pWDqFg2w9c zcDQ2T+{b=%quBoOG#vS%OE*c2#e4Ev49!A}QCr?63}06hem#%*RXxBX4Qu6lL=TqJ z-vscUfS8@og;;&L3~KvrVEer+RhyA{J=cQ^Vn4Xw&bt`tl=}p$9mPu z_&xasZfYOCj}RXTU3npwewdxY`*g3K4`JBt`}IER^M^)m$ej-Nm~Wb&^Y08qti5S` zqzIum29W#I!vAqes-#(Vo@&YX{9^RTJgmoqg&q&fuKE}5PlkQGUh=!zY>)k;y6*@8 z2t?o4zhra#2R7ISkr~UHD5cwa?S54b@}}`Eb!ori9HIXS=wW4g*|Gf|CyfFBlVrZA z)$c42+h^Zt08*>Xt`nXilWwrpjK}`HJXOK9Fp2Up~8JKJkvUQ77~YB_#)|Q$q+rV zHx<}HCH)XS-e4c`NgiNR0Q?{uk1Wa3r$E z_-NblN^TyP_sj`-aBrx0Me3)C>y_Bq6KEIbO%3Yq`03l7E)!^$P2Sp{kXX>5JRct& zuLUYZ9!)XnF&M+k3#MGaa}jQQfcDY4QtyU^KVuH$rEA__xej`#c~hvUO`3sB{m4O} z&FLx0@nwy2T zYa1YxOZtlVcSBP78LPS*@=L9l56@pHK>msLp(0$8Thh+s>CK`v~m2A}?X7T2J{=}y?Oo)F-S}>BsJ%o`uS$w!YmY?EJ9AiIXypVSV z2H^Rz!k>o^Z2<8E=HnRaXerh2E;)lJVZ2GD7m)h(REc*PL<+vsnc=Qi zid%#}!*u8mo}u}n8&XD*7xoAEcaEO|5prH|AFVT8;LIMCy9i;%YhJRg=*G2Mx0H_Rz>(AeTy3wgW-T@!EeqK)0>r2*hL2L2lTW(EV5jg?$EYRL%u+UEJew6yKM+%w z*a(Y%K$PTIA`BrKJu#NOAcM68jf6ah+M3@ve7MGc$|PB?o6I+6n1MlM=GcWsL-u~3 zRR=f%o6;mo5!{w5nA9n&NHB;gDBEKciU5tV8rM114un%xua_;?+!0~S3}i|8&W`J^ zzhLB*&`YzO5}1E*#}b!DgwYms#|L7cQp93sv%n>T=26t@r)wbllw7VA#-y#X#{bIj zA?q5TyW88-i3&_W?8EJIG&vN5c~zjC1LnF0$atvJ9X^tXwC%kIk1^)vi}W9SrR{7e z%&Nd**wb9vWTa^0YL}-}IOqQ-g^2{|HkO-ojfJdNsZfIDtVgn?7@|&cq4bsi7-m_@ zs=W45`^1oTxwC~VNs^6^3AwgkO2b`a@E{8C8Tu6=kN^MI}r{?(i;hQ zTA0F`ziJ6L<3}Yicg*>xzRF81MPbV5WhsiOr&BcLmaH)1X`rE0#(V3_4e(c;m4A| zKeT9KH9exODh?x1@yha>M{pj;uLxO-fE7AnYtAN@_y0l7nJ1kUU=|btZ+_rX%>rRH zv;+}An6nM*uE=0`MdnES#85(Cik4~J87wn{Y+6sIvqQyq8dE(R5*Xu70o4WL?78d; zW-$-f_7S(P5Bn?7)eAT09@MEGJ0}k|gENlh0z$L-stuLcFyS;?ign#wJD<$(R|F`m&RkL33zNv5v+ zIUhLW&_PTKMB63RiQH$IP#}3ufgA?fynhG77^#H|we^O#AW_s5e-yLYLL-IDGAEpn zdz2ka1Me${q)%T{5d;@B^I7=X8J{UwVR~~;W9S7rdZ_~p)lUmPcgGliN$!0&hrA;egFeOX|bA7XNY?VD7McQQa~;5JvZ zv~pkUqb+zgHm&8^OL$XRuKV(Qdc&VT7WZ?PCgUYQI_)_BTyjG&%MUS7ab`o)@$VNd zEG3nJsf>K=poR}=qb1$NgyItEIKhRo8A#FM#fX!0 z(z~wjdG)_^@+Ie-^#n$VC0@;g)s%TGv_W86vm|!&xTaf}(r&D2&CE3pG=Cn z$eABK^P*>d$=AhlnJGPn+A3w{kiXG{%!^5*=%FghXiI z2>8f@9U;6)N=F5vhDR>(6nR$$DeyHT1!_s(86Q=Fk%xCDKro+5B=Z)aw-(vN|Mj+^ z1XH%k4?YI?i^7DF#A4Vi9e2_pQ5k|$YCq{(C{<7Z9+{Pt`7Ql;zjGMp(izj+7ON?A z4b*1uv#hIuZvn7bs4wJUQ5JS8L_Oo!aaC`oBlO`FCU@jgJds@y;#E_I@e#c6`}OGB z6KtsZ60wGNCem&nQk!Tr+xG+?Hq36ewS+K7tnr*@3IMw^a}*yhDs0IKnbC35h`cg0 z9?fAifia`7T$)-E!x-`sygttT%|IyPP%_DTqcT*m>2eOr5o}04wGy`n8pmaQReY)# zsdHwCNi-!6({rvAT)G>J-&$$pE!^ZTVWlGZjq8Z*(6t{@hj7qcxLV|&fKDB3*3s4-h3r;c+y^4V z(WF?pK6zV**m}oDX}vc&=_}ZykM@|VIQIHjZ)~CN=Uvp=R;L5W-3?~vmVkj82^<@7 zk}20qt$~-pW|6K*^NAA1c|7T}K(jQtx_5WRmz?CcXtd3pfo^Cb@VA>EgG9r3K98Q) z#marmhU5SrjuYx^%>hkHn@?oe^#L)L1J1P1%V@gpv`Z2oG9_=FKoWGS<0opPQ#D8@ zju(tg4pikqC=4Q%Mt3k1g5L}y0lYbuy`oFitm;}0lon7n98b>&QvStkrnK4NcW)AE zbckiIE*?P>h@%(jJZLAgKw*{)EK|076@OnfXeUm?lipCs!VQjip@gf4M_Jei9e@eJ zn3)ZJF%1X~{eYm*nuRhW&0Gr*3e`}~6Ciy}EUP*gtn6;|M?R`$1alq6!=$u{7DB%E zVgRsDR+)e@%OC%n3RK~36O!^>H{vlm=tP>C0(q>jr$})U}8yS|z2O8hW6Fn2=IX{c&%t|_HR2n8p z^tc!|E?{WKGaQ>SYsGS}X9!xram~rTI_Rp>18ipit^^jr!4u!jOLqC7BQ0Bh=TPe# zH&n;J!ey*cv#0ax1YU_Zol4ZQaL*h#Lm3A+wl6+$yHhVsgf#K>Nw+UhECJ9D!sxM* zgaeQHh;-`kI*@!2_HZX*g8hCLvE6&0nyO9$di-FaOtfbGTuT|V#fSQs5BE%4vYrQa z3h8u0K@jru5jYRwW8Upx1<47R<|NE4KdPJ$0Odzydn6pA(9axC&~lzhJ}!qXI~Z!J zEsUayt%iq~%^M1)s*v=#o!tdq4=B2IGPRI~exNbZ*pkTSxUF&boyMa^ewbJ=0Z6NF z>CLSUWv~<}u{>|YbNc1(J^ALXW=G9i$xC6U(X@jM;$}X!pBOaAIlhwyJSs*o6mGu? zD*Q)6NK9nhr%%it-P+vtIf4?tlIj{1e}mS#QS1#U=&WZ1bmYmv@xq_U$@W=0kK3zU zs06=)Z{E~&c?W!+gmx6}=a2}$_ooUh@RMfe=*RwmR|B)HE4&IJjrYU& zGl35b+02|z=z5h{H=VKdfG6ON%X<2}fSDDeKW?e7c0HTU`INs*AG(xP=4f3!HwD`= z=7Z56`G(y1oaE@uLJXE$%&cgxTHBJOUw4U41?!xS)gPn6z%)O5{DJ2i4U@T^>SS>p zIeQSW3CVt+Dp-L~cxp(kT_t57UL~qPbS1&C zzeWM7j0swSYXp*9EVSQS5_wt=t|dHN%Ez3@+u+1vW{*S6gre(tXj@CNN~o$7Ax|p} zuwy)9ClYPjX7aBp#^-c@r1|r z)Is5Nq8hKqSnseg@r__z94h>LUIIsFI+oPZVz@%fsCYbGaBsH1Wd@J?!uMcD?qc`oxa^t}uFv*dQK7dfCFxx!&Z6!aqd}w8DeZO%K#cd;WVnY;j?d43d5WWfI^sGz@67M{UCnaDIfW1~62Bj?f&E-Vn0*UMn zaY57E&?2Y$iDA0J9htE@*BKneVvMf$2%Eh%eE<;&PkxXQtmWDp_)0a036OfgnKUt&o}@9_Tc05P&|u$96aBPcNtzEj8P&jQ_Z};En+~oubM=s>{HBd&&?fBy#9d z8Z+e~vK<4nXb3;JBHPM`K=ZM)B1j5DKBf}Jgau=*-EgTMERlX5^unhg z7&sUl&B4IyzRiHLnPEFu<7WvyhQ-|CvMEQnHx5CY_Bcf0#4jrg|SKgbB%O{jWhuM5d+@!%-YESl52v=i*`(Zky(*NHSQZIaQoIp`gzc;h4L_WrOGe$t~pLNaFw#O!|En%Kgfq_ZH!?l~> zuFQ%XiU8Dr8+4yQOsvLK1e-gH(pXzl7|UEIY^GF}9ub~0=$h3balC8XhuvZ7`vzRM z9@7MqKdZAHF%i)E*Z^xn^5gVRdhQI*h0hp(En>Po(%NZEa(MW43=0I#kHcZvD+?+b zPn~hFDf0#c2CmQT2zT6P+8h{zGI0092?vYII7M*6e70JcP4=#@y zlIZ&w_N|8y1_p>6rGXXK7`BAAw@~zF7Vq`6;$w4#gf=t9aynfZOt_i0RI1yd)X+)f z4A?F7$;O#s$N@n-UPHvSXYWVn&2J7MSV%65z>F>>o+oM{f-DXax{$eMfakj-Ep7m1 zmZ~F9)+!G^VM&E#Db`;DApq0^EW*R%7bi^yU}!L4%oIjMLbokXx5zkJO@#uE3coQE zjYjZ{tp}BIfrPe%&*r)cNIt0?ofD3M5DD%F;ygHPi#M*)Yqs5eDz1`qkRjhwmgSf- zsFXTSQX)FXk+d8Ui{CWaydAbQ_B|rwL%x6`X=bjF71dHAxTlpYl1|q| zLw1d7B&EBKkyh$8HL!_^_cT?miY;NrjywsJM>mwx!s76#!O~1)p)C_2=-B0r zwF2`{p0sd1v((nk$-#O=MYGXju97L4n?r+&!fFx$yOs0g*7FQS(orB*K?fUC_Darb z&ZJ-x>lyPL5o{<;xDk2anSM0={sMOcZw?YlD2~-`iHLu%S><@?1S6k)LJWq1NJgHy z?3U+HQMmlm@HS;T9kIFO%u?h2R_v&hV+jhiZ#-_l)SqBzvQT42>y$78NP;QK%4+eH zB%eGTOlMx9=X{%%d9+IfI!+RyFp6)OoZI2{`MiiOn;nH#x*#Fw<+e)d7O$`Xam|Yt#~t zf}@OK$cJ`d*F3nFvcexTzd|-?FlpSf5s$UJvRfp$WXL$QP~x|w@WI(RZw_cdkQdE! zV?r>)KzCI2_Bj+02WiQycdSFl91e!?T|ikdS2ivcPtRQTQi->s;1>q4%ragqbiS_s zRwY&h-lJv*@`PkbEfKo8wq4K4KSU27|QUksobrEp&UQ&w~ ze>Yad_+$nj9CstmvCOsNC#EA{$PdA9#zKt)it~ANzXK4CoqS8N%3lT_FKIjTlQE`{ z)FYVW6a>+7I!U333l!y7;E4DI&H%to^OObVnnG2|O9B*^HYbdX@_pS!zex%*c5gBi zX>%4F>PwkMh+Kk}_c?+tQ^Le(4zqwV%>=;uATBy{BfYnT`*5jGRSLo56@D>V!OznC z1u^u?L&7J+SLQgv{V}F{kI;+zbTy%QLw@bTq{lQqa*3iI1Fn7{V57oYC9E*R3W$D; zX$s?bE~NJw+^pA1$e2z(oaW4^L;f`2$tm&(ooV}X_hzD`)lW_cORlqJoj~{?!rORa z>h!M40Gu6cYKM*>HDJ`acBd+bxcCuWSpW?q(kh)s-w4ATU(z9UVyhD5VDJu)7Tm;u ziv_)>(7ezXq5*Q$ABoAc=}Fq}16Hhjl#q31K%tT~ zBOy4Br~c*8sHLe%Oz5s6O)P}o7*V|C#FmC=4IVo~0japDFe6~Lf#%m>jiH^)q9~^! zcY#`Ty{uX%;;-%ntwbPFp-?fNUZ?=rT#0Zvyt|>Y&Hbt+R-Ci8+sR>lHPGsU=%_@^ z`_QGgkzXow)p7DGQluveSL@B)nUV@SeK*(qamI?DgHomSHj1?h(Y_aWV;s)^^i=gP zZQ^Y)4c?bH!q)msSK?##r%dl#Q9;$2i%+@9s?u=a2f3u70SClaQWnM@jHj&TOMhwk zmBqM&q($9|7QKEbPAIBbV3j>1E?|vPw*T->YYv24XqEFoCQzi+t50ja;~33dcJ^39 z*Eo?0Gq%sVlB)v1NOE&Ng-l2Q?Zd#2h?zWmENpmOB9vdyOc(@yh+i?6sFZ(A|}x8uVl`$HQ$2<(^@ zTS^Ud)fH4KGuIx@o?}9vKlic1KL(7pn6AT#2qk@Fq4bo>jmkMnZ~4do`nnX^i-;&R zjpIj!KPwU--a?cxg(EQ|-NM+lh-L$P4++V0BTgBEKRhTLaN{c>c$MdxdJK zxxywupZ}~tTAd>V@>3!^mjb zl!(C$eq_%S$ut7wy8~)5>o6ZNfoJcJ#vi7D+Li7-NHjzh1Zh~yVmNV}WCX{kzZ0Dh z{!0aBE~U96O)=j)UGyUSHrJ>RPSDl(@WcN73lq^oMgTis5s=357*L1GZ4-(=QaS^d zS|Nq9C>HH)g=q9j@kAO^W$1P)u%7FA-k9dej5y()11o$Lj#xp*HjH0pootl@G%*fU z{St{@u;k?p*ase<(w;Q9V1--rk$7lF0s4G?66jl$=sCJZc(aA$8J9NP6~1aUeoBwz z@o^g7eZHf*FQ^LTvF0AgU*Am7*LQm+2tz2&MnCp7zKuz0qYH>(Au??KwDqcEesYL9 zlEt6Tj+f|dkEPJmv*%3uIFqL18&o&Xvey=+ul@L2&NMxfAZ!xI|Y$-EycW%M-ov&>h<6 zb~H>^9Ez}8m<4^SiJWtV5cCFZ_5IdBdKCrYk~ax0W<4|Gvk*%{&YGbTI{qmC(8}-m zf%Xy3D=&`EQ4P8qQuUKgS#<*}5-7`mDnB6>G4S0XD8faz7ES?!r_Zd<&REwm z)CJ3f`^d_y@V_8RX1xWcFHi3rU zkyE}P!0?ByQD;WFRBcC!8?fVY2nq{-f1;{yVD;!JklB>!Bl&Q;*wZqm^61VB$JjV0 zM5js3cq0|Ji!;Hg&GUxu5DmdBovPGT$q7I+Zh|dpXNWW%0*TMZOymS>ZEifZ$FC#+ z3|Kt+$2u3joODTw?HYP#eOgHiq!KapB9Y3R;5yH=IK*VOMwFfJ6aZa`gwSY@A3(ib z=qV-m1mk#bMar1x_Ch}9!>B4>WnB^I6?Ccnl(vYf6ev~FA4RJ0rbINo$2suv_+&BY zz_ShDgeR4Fv^qT&3}!rnyDJ95zSGZ@Gx5V8uOp9hW_kliWRKb-nJQpRZH-EmNej8% zi$LfvgeoPMmDYH)x&l-((__MBg92Oi? z4k6I55-?lFs)Y_cU{2)C>Fj3xD*>va^+*>*U;LzWv+C;P<}${QB`uEn>c6YX{b|BS zuN*59{2uP`)3!8s>>-6vHSfUpFY^)Wn2#rGSpma}0o+j693ueNeine>F<9u%mh!zD zMs@QM;^SKSI$*m28aQ41(CsT{?BG&!g6gPYB5mS;sko31Cu?H(JtC%_DFC#A7KC%A zM=qF~QD@r*z zV5KxLAsDz|8^akPgU45$BEQ)`F$kuR&|`A2&?HwBL9Yc1!892SogF#^eKRD^1&Iwg z>(E}RpuFq%tUhzfR37AwoU_VoYAF7rONI=yFFjzpB}orqB<)O93KsbJ8P~pq2>oCF z@o)d&&Qb!_2@QP#XAp9hH}51xr^_*LQ@4ggrrp)Eode$z^L$GZ=j!A1IWfv zNn|OI%Y*#B7*fxmcv+Z3l3;5-09kqzv{|*JaqHeNCFqF3j-XE#K9Ub46HHN zEyrP&r(N;^1o0>g2Cp2LeQAXrz$(wX?}|jv6&m#B@a73=`zo5Kv=1C3=S6sZy62sN zoScKT?yW)ZmLd!`7V>k2rq$eKzZ+E-yu=H%`!SAVr$SRqeNpidbNE;@$~&v^`*g~c zqeVBv%I*ilB)qRm_na#b^F;85*$< zFO{I$%Lj^jHX`Hr`JF+lLDtbIgG<9e**B`^0b z-nst64X-8%f#wDq3wz)5RT2ge2lX(3$+X9n);=_YrT{?v2Yg+kTYfeUYujMVPi%6T z>tSp+((uy|u+O5qc)G0+kF1l~VuI1(w;O5BrXjfUxT)U+eHsN@xJk$mKO^EKSj*MC zV#XX((}_)c5V2UF7PTkiW!gEp65Ak}A-7~Tmb~LCjR}xMCm(M#mf0Qn6KSR8hZS`ia#Y6n>Vy=#0waS>!I*IEh#z|S`OQKR z(Z~#^DmIV8z`EIv%?#KtWifl+Q$&PylDP`qK^WUf?VlWuRkCzP1%bJ7NM-=u+ic~P zx;!UX(`*;!$w@S)fYJ&~+@>eP_!Bw^j>>ALdB-V)^c0QKNL@q$S0s@Up$WxpXZ8&( z=ml_=B#TWGr#Oo|rn7=IU@HiI>^SSf9Hk#%J*U|$>`v7a!U7F3;GN$i19`_J!i`J+ z=tUdJhBXDjlV}h@_Zngyh_&5Y3`#wG5KstYPI|j*_6`C$fC~k)z;nn=!Uksy z&yudQbJChlG4|q`5{cvNN();IZLAxjLWl~4hClOGy`hT+5d6JyzM?IvWGiz4>q>E$@TOnA-Jqh?YXmk@Gc&u! zdO&1gaR+qRQ2y(sO^c?XKLv#Oa2+D2aKGF7aWoyzGVLzNd?KuohbLf+AK|c^K)3v+M?2DnH;o>AQf7ka!)Bg_GKxaUDN!DDK)^CJ0#C+>3LAd33xI}g^6h|3ipP}ssISWOVgeC0#d8#8Y*(jI z5si_j4fr2w9?(hTsm4*kn9H(b#39CNel{Y&-L7Y9GKglu(#yIKJy&wKR~`g325JY+ zDGc=Y7zho!evqJOXCea>0z6T6@1zA-u6qv0M!+^?W%I0#J|6N@>6u29Bfs;XESQ=S zm>zoaFw%QOWej@xMNsgu=AevPlC!T;*?(12?<%@|Qg_W<6dUPk`jB|tw^-Ir=A4~n z&TI}RrL(6=orN~&&z|_XfSlRIYXS|XJGZ#F2F0dgXdp^^JZo{yoB~cj@O=T*>PQL0 z04()r$N?EcfS}t@AnPN>z#J_&7m^39uc7Qu0p4$MsCBYwG39^T6B0)i}OH(Evs@#wFL=FD%=&G8I$b^ z7=ux!7?F}1#YBZm?~;YlYo6kwAYC_|3wrR*KA0#WceE$0%wQOv>;|NDTc!}y$E}so zV#yAUQTFaJ;ag0SAyYYr>z$IOlS`Hjq@Il^0FnKHIs{J9!}HPhGL*+i|E!Hzv@y9S zH=tEHK$eIbM<-t&I_u|h};-fF|(w!AkAz)=O2uo_Ix=$&r|pFyO4-OLVX zWdg}E0^=Uj$@u{KwlO$?%7r-MgN`3_bNDXq$kr@cJvlu;D{<@@z+xyy2=Bc2v%sgV8$ybTyGoXat zJt7Q@v#m(v#I2I@S0y4a6oV^hilJBZ&`?}-fRFJv1?LN(9){HnVceW*4au4LeUH^}n=jULt%%mQ!|YyK zxS9ZVm27tF^1GDv6rgxp5jZL-o1zAKka}_!@VKIyQL3(KjIT1@G0cYW^SBUJY-@`u zJSns3a{|SF`}uHLPa-S+)o;;04jx#GT()0U2{kbL-uysU;2B(WIL}Csk#gj-SrU!> zU}jOrtL~kG5&h)@4&BqFVNwhVQN>tA;9HImKEe+Ku)U0h)Z{C1!y8Cj=pU6%)%tz<1xAdl9tyeEdn8TSR8ID^LxnB`$tUWM2_)|rJp<9U1pvCoCjw%mw<$ayy& ztJ8IOB~jzE3+b(NrqXGO-j|4vq6hKDO+ZFcmNZ>ESV_$p0zRf}jEFMQ0p~6|3m#5B zlFF-oPTm}q4RAdppUV3yLeGRgR{&H`rcI#dDo$y}!Sqr~#=$a6jQC3hNLq@$#JeO| z#>0&aL__;WUR}>_?4F*-XE?|sKOq0{B1qjwqz%6s;v%$WkO%GiTFmQv%vaXc?C9x2IUB9!}_MDwx1>uYzq%fQ&Gc(^xRL@mCBfg!DeBQjTxb z4(&|YdanU4L44lfE`@-gXszp#gSgZcIpUHIeAT0BkA_weyo7dj8=D6#ZKcinSi{&DI>~CR(mG!)njdL88Y7bXO0%6 zK+rIEax)b*N>~})M8_n-^dewMMPf$~cE$H|s4~AhE%+95W~%~_dZmQ1oS*2vRrp&7 zFmQBNnYgl7q2t7*1sru^vgUv=-pik-$zojKkjl;*bF)8`qBG0P1oeV>0P5ln2v8cQTbCaibZh`+X#fCGa?*qou)Wu?bg3Z@4=X? zoAPG|6AYzo=8F5sLOf|H(C&taN>IL|6)@mG%?p?rq&AOP_&We+b32z|H@M1-2BMv$ z?$q3)Hq+1i4B89`-}AhQN;;xCf(aMv8|zsKLc-iiz@!HYomf}t2hZkCYzNK==+pOI zBx2P(@iD#43#7?0PltkYr<^fJUkPRjb0k9gbS$LhOo&Z9*=URkS7%W?CwVdK83B}$ zc-+<96M2K|(<8THklq-(H$W3{!ElSVvKuRjI3FXi_iW*#M?R@}WklD#f)CM*alC+- z23;F;W^ga$S>)p}q;c}P2W$*-kA_-O?{)~RK{-qTWP+`Cn%cL)JkyXgZ>k8eud0@z{b6L_VWp9(k!Pr;mr>#Sg^fg2n4mP@p^uM|vVJ3ELX7(RlAf9R14m(!8k z9IKMa*A!>Ztue$8F~J{f7HuigMU7vVzKi3a*hzJ#NNrOh1=z{(NhTOkDuR-|z|c_M zM4;J>5)Oh=hkR2S^N)(i__{&zD{Y{d^O0$)a4PUQP_*Q+0%EU^rxuPQYg|iw-Ap3q zea$Yu4;2zLWzhSkp%v0_RVYLYeI^F>Js_YbZJAPWr>?H(Awx$Zk|>xt>SQ ziThloO^B36AL>lUV?(Q`UK#>G8Zy5WxoYPRG@PZQW1~r76esu_eMav0_Uq)gM zR6!W2A&}AL1jMcs^Gi_mJIaP`H{t>PQ%p&WBf03Id0^tp#ByQ4lCh$$z+OSl8agn$ z9v-hWZeW-iZ70OuItNn-LtzD;tr{NAc*QA^RXW5DbOWpqK_|fi0htSaVfZ%+STT~n zo*fYrK=P%Nt{t`)co$b?xz4^a06OX9I5>%swv`QOjfswE1MutiFoy^XcHCGyG0-z3 zrZaELWzv1$;3$A(InLC01#l`*@3871&UN}9cJsW!fOW?C$bsok7sVw=xmkOq zxPF@uM%l9s(4@oSmFc^T4xGYAGql5Hbpe58UmFcye&iQIHo(Z{4P;Mvm?|e@v>^i= zg`_3}9WsNFADCb4te0nTK=xOYe(0uc@JdBda3>Q&-uOH^GL4x4OXXzSlSkuQuGh3liesVTZUp-j7Q8vkTy4#X)+ZV$uAOi7Yxd~Ob7>B^)paTX*SW zVvrF}IPx7LF_j1+)Vq_MqwaXq9!!{mU;gW%AEt#UAx6Y4J13cPjKkc7$#Avyp4 z1e3m7>|jp|z_ShqrD4lN&AJwdKu-=!7FaPmm^A|IE|RFmz)qm`ri`q`Zxn>z6v_i% z4EUi^(3mp^94M^;F=yXkF33jMfDN91_e4KI*p9k2nf>oE_=r%(VnGjHZ((z-fFlJ4kc zbT|ywfhXx6odU-eH#!|VXi%sDGICDaYvq*onxcS_p1DyMh>Nn^HHoWz;`|fi^$(${ z15%g-dCv>R=UyoVi2Yz97-+1X<(d>6-ab?0BHf8SIiQI&%q>S588HkdbD69K^<(iL z0NJyg-88xahg4h(hV|LYJUYxGT#WsagJhGAB1BF?YQda@pf;{(fnzmgcNzScPmJVj zE|<4ivNIS3wg7urpOPX#VSG}vLrx;OI2CV?Lq`vzt9t-r4!_W3`c_f5&VQC*=f_R< z-}+CJP6Y!?*V5(cBlGzYS|Umk+7NeX&q%`f=5iP!`!rjDR3G=|Sxu${2x$_Sl@CQ6 z&sU}WdyBy_JJ8DEe4mVo%nW4Secl;8zyz1}i1OZp8Ed;IsfOtU%ods^C5&>ec(#0H zAHWHlO%(Mw7%Q!)FedCRk#JjBt@HZitV{wl7%Gr~Ncb~7Gyrg^E5O~<=!$O+#>&pj z{We}_NdTJWb_!S~cq7z<>WF|-ACo48e5eMCf7Wun13c*g?Z*OXMnYq9A>Ipkf|}{X zDE8es<1vs!SRzLm3UhHeN;W$WtU@4c0~dJgC#$fm3y_~sO~-!G5;4e*>z9mC>!74F zL894!RbX#VgOJ7Yy^oEK3EYvK<(VFstP$c4z?7dNH?qV2Ku{|u0Fse)53|fzaZJdg zNA2~rsf4s~_lQlPxCh@aNwDP{Jh2XX+oFIE^L0w}ghxR6Gh; zf<7lO4;HNxSN#|^Kdao!iK|fXX0{=f$a&sxniuxu|2P;KQT_7^`9A)jrv;nqCU=!u zGS%T}VUU@y;=yjL>|1Fjn;PMAh5G<{mv^hq~h&|58}bg|?>*2EdjIarIiH6kN5 zVuS!$m<~*1Y9h5BbA&0QP#bRCqPD}NKK$3U-xOL4uDX%v|{5rWy{ACI9{xf>@p}niLON= zdhl*xvfsPBWuEkE^ZWHv2kQ?TDdwGS3@{y#)3kXEzjp0I5&aJrGH>diV0a(fkvH>k z%jRQYz=psqTmOUhjYr7_o}7)-z~?Sv6Cl$G#K5@K1`5o_KoF&Fgacqt37DHO$16v( zbVE}lya%jU`x?pf17Qj6T@r^(*8`(dhji_koz_`Co*%(BY-bz!-OXjMUP)6ec<`i~ z(t!o8G-lQtU?q*JxC7JazDW3E4xXAhM?#Ep5NSXA@* zHD;^_X$&oUYiXR^aEFTU8^Xyzy+)kKwGVnD*o*=1{8BoZB*Q&e+lEKx4+=2-u4!5r_9;;xNP>^sCy<=*2PG|)H+Kqsvwr{1=Me_Or zkapnkX@0hcgqRr!x=&K_p2t3J=ykKwX$kH9I2HhAqA#41H8(Q{ zvI}e-{P?-oTY|c}{EN(73MV@{CTE(Q)RFMJ$zJC0NmePReUJpmnv8(69$BeGrZv&f z)zmtMS>77u1&}k`$dYB_)r;6NV>Xu*W)PQb*n2$3ULzc(Xt8%IMR6UNNkaDkiTKba z_ObP;A8VKZyr6g%LnVetF~(>J9o-BWTNb;S9fFy2mnnUvcOnXOyi=_J@*yiuRt*yh z)Bvwzrsc|aT|4*e5Uuj29T?(Z&RCnxo=pQY020{7*cs9!B%p;;;*Y}g9-T%>561Uu zTFP(8EiWP($>9#zj)7CD*~;*{wIGZzAtYcXf{?!3lwGU!QI%COkH%tl_K5RAH9-{^ z=x{HXtMfU6HSv9th2Z^95x;BXFRUlvDS%43t)gbdbz)>r!2NYen3aeq?2Cs#Y99|r z2+#QF4KeFJkIqjF6+G!uyvH zwWFbgPY8{6<{QZ@8AMPyL%1IKEBFzDcF?|Zoh(^!H5cOU9;u$BQ-_F1*R#d{ z0c0WSG^v4Kf&>Z4Rv8eK6Lwtp0PQ^T!BVG-GMxb_qyBIIhX0}FM_|(%?Co1LKK^y4 zF-M@`h6yxWVl^x@Pq@nwIzK#&$dk+@n-Rv) zXR2^8^bFf;nY$Oy`C~fcEr!>|0>2a!JY#vPl8+kqv#J zX;&>2qrjLHo3t&5Qt*J2XT~cr##uehw0t!DuRv05XqT{arJyvD4j3%tz*b*+#5j9d zh;TcY{9%V<(>!I-qmExd9&T+Rz9ZwR)toAi!Qk9L`3Y^WHnBq4sT!X5JVmyftM|^1 zh@!xaS%aw|Vd=>rVB=y|d~&xOh#SFg-c59}OQ)Ef>$Unf>l1qCpE+lc_~^-1E?2j*Kws+UXk$Y7c@2Z1XaL zzzBEyNXII08J_7MDqhZ(9!C}Gl`xmGDQOu3&j_%Y${_azR7oZ*eFpNcNssBK1PNe? z*ES)AkFL0tH#kXv!AN%I^q_e*XBb=rdV+wZ(JC`YYwU1!@yB06fr{+Rv*~!2>L8#X zK4xAK<`fXH)Ar~iBVv+OM$k5iN%c6MdL}&u1|SSm{lSL-^)_c%ksCZ$-TO3sVo2Ur z`9Zdq20;#LGuA>A%xyPaz&I7B0A?<@P*$RmA14$m|29VP2YAkqpimIa^>Im`#1qPC zeJr8q%b^Pxvwbf5)Xo|JAR-;DR3vGz6(Fzkm`y7tsN26D@g`I>J5IepVayNw z-2umjjdg{P%4U5afaUr`+CB%6p64%Nch@BL2QDSxn^HIGc^Z(*ZGU32I2XIbr{ZYS zeNKX?ynjm{Er-(Zr~JR|wSb7QkhC$+uQglPsl6NZog4K;y?a!Z33G*j^!p;D8FA1~ ziu*<7>5vHl?l{FLh`UPQXLXa&e!_xr;(JPZ9RO^6_~^epxS#b|YzKNG)}(-3E9iEZ zuA?K5QR3l_h7~m(4S>zYLhhKcah*p6eEevGs#Zhu9oNSuMr&$=lRB|MK6@+=EOYS< z{QTM?JMSkv$(z)Ac7}vbyk`1SFhFm_!C-oIji$okC_*~)! zHy2bTSYECN@X0(}cu$>CASpE*8BHD3GI`XsJJ>rW!yKXGi$)jWFxgMl6JSTx)abR( z0YJSEZ_-PJZIK9aO9=x0q(6tM_2kTBy{iQb()_Fs0UgCc6S{(iF;!=i<$jMW=$59;T+}!YVw@u z^&lH4w@VLloSzEFglXD=fm6nI(avLBvH~HSOeCOnpV6#^`s16CaErxEW)=Yqbf-vk zxlg2jvZzM%Io9e-C~}Rfy4kNyvy1OpNtO*qly7=N$)$TVa;((boE^kbd~Jq%X;QiB z4!|R-80<3v$t)2NH=Vutpu@34>Rj(3foei`XPZJjgTh-%rPMkT6@KKYSHyL!fUV)8 z5nyl~%|GT39LrYT4TZW)woOB#H0Y1#|E3xJwOOH&oa)_kgIV z#=bFG_m{r3yfF{FA`fxO%i%#D$dj6ED*3RSloHWN6GHcOc(-UG!oj;$6m!30? zbda5?81B605{dAu>Om?Pa7^^n`)H1n+hjq`p>wOdbEb0xb)E+r8R4>`2S16a)9;|3 zkjnsl&^|{gzstg9Bpw$JHi?u``Z{K>xq51A*uvCTAf)!{i zHr*tZaXiRM-h!b!Zfhh8$6GIH8#4KseQ3Xgh$S8rN_b;7h#gKM+Z@_gXWH1_xFaye45IOayN+EFv^n5l| zz^(=#2Zd>mvSKNf+K9L}d6sQyMBPIM5EDfhYncLA*c%120%n@i1@rj)(qt^$08KO- zRkot7E}gq^>qrV_Yk*s6D?~w~U@9RiBmKD}#%tbHvtN_q?LFH@i;Krxe;~hkEQ8*; z=~(78fSQAD_SxLr*b`&)H$WD>Np$5HYW6!>a_q2#2NHy$doGRi#=N+3H z9(xMEJm8)RPR7d3Vj$m=mS=f*r4)T8j77T3j%>x_xHWUjnGY266ETkUQZ)J~l6|rC z2*E{#$p|B_nWRUe){`CtDe^L%4Z|td=Ee}+ z6ghJCO0D2nJl_M_2X!=uAJWb?b0FfUHJ@>n9qUKi!2veJ<{~@gta+qa$gI)blmnH_ z@3(rGiHCGFIJ(ac>F+ndoJWD|x#dcJX^ZUCHw5&A3CpN-ck_f}!S7+2P;l{wn8dye zDNBNWAu$zPF2P33TM~b~8LwO=W@7(=Ngeom6c)e;3!0Ma+wB1Ty^2bPaF;2pYJk!D z_Md3xj6=rkXhX-7ePmqgV0*Hovn40j(ZV**}= zndBW!BfxoxeBg_%K6fFdftCx*>e@K#Gy>B=IX*qH7Xyk9@;%K%ivzltFMuAqN5;9h z92z7Wh)e*^br%N6p}Rr}NazpDcvI1*+9r8Lfd}c0j#PBQUMyEX!oqZR1EJczqg^I) z^J2GpL*-c20_+GfMC*#$oSxdsAihDy-1IQ{(_bAXDZTih`~3>Mv5*4Rz|o$Z8Vw1x z6@YC{JoOI{;JLVi4s&bEV=^K)2~g1QFEh6RUR}v8>x})pKx+K5GU{x05=U_^a6(z< zLr#fKyEsuU!~d6m{No=iIrV7Vwnh!(Q*6?E#?QLre2WhXnsbb^oYB#CO9nCiO(%k1 zV^!plkd!Uz2amvnT$%I|Rptsk0{?$wZ=xhQj3bG@F?+VN|Nq4cKLIMEdPdzTl7PG8 zAf<@Rn&aBxGxBT@5I~Q|Bv|I!Dz)x?V3w(g6Xp|*!=`CZ+NH;Og;;H5u4AHZS6zJS z*@UkAwYj}Sk zjMQ&&@>4Wf;h7$c0xf^{YHV&Sq|VgJGl2G-T&XSK&I|Gpwh-}2ga{W{m*y_*IVyK)L#r=WYa3((8n#p_^g1do`8HLf*4e+%OmOk6O;ts65NKSyl1~!uAn0 zY?yy!qwrf*1sRjm@S#vOw&!vAc!c>IsFiu++}JheBQtqyuqWJ@BaSl7hbiVmgtr?# zfOE(W`bAxx13IeTsZl9q$8l(JB9Eb}cm9Yn=jeRPFS0tdbmFks%$(qZu5xX~7cQwH ztE@?hvkYcznIdePt-og3wM6E%n*)F7?b@%>3%V)s@T}OnQoZvjM3Z_OyMUF*tYA+1 zedCkQ7WhgTRuQT84asF*KYK)^W-bL+UpYgtk3mv>#$|kh7qun4Id2|?&O{HYIErpB z^ zXl(i}aGa)I%$U3suD*t$JtEUMAoA1SvZiJb{<2|h2hREG6hx5${YrcUHx15C%*{(O z6I7r6rl_rn@Jk1wAt>MHui-r~(E%z(N9+Iy&M}&lR6a@M&j{*%btEIA#4f$6c>Sgu(vvIcm=a?ZXqa0K6hUj)i7Pd8qkabx z78{``pB+h?suFFZL(lj=x3%8RAe}~=Io55rWRr{dSF;t{rGbTGI&LVOQa=RaJpjvC z-M5zY@@PJfSYRAWR@fvT3{ra3ywI>Hc7?{jo|Eq_Zp;=_-CmAn&0yXbap1woT$rGe zKdf^tD5sLfHNX1gEDxd*+&vMs;mDwEZp4Fg16xjQB$DJPH~~25q@bMm))w0&kkX)z zIa~l1ge3P3Lm$NF=MOn%`HlvYy?SQb-?hdw;PYvR>b9eKky@GuQt5rX#{vH(jtTFHj8(U}Ip zz65wDukml%{1*a;7IE>JX^d=ZbbQ+lz8Ya}wNIKt^Q%WSk_No@=?`PPyz9LgPhwGm}y z9t2!3Un+C&Zq-5{4n8MZ$qDtQH*@&tm;2mL9<~-|m*Og`e$jtHK(Yyt_?u^i!D4EO z3d37(g+U@r;#i(*RT_7c^psIT5u%n63in-m6af+J3s@=mclD5E=4mWw^v)&_ao8uP zO#igbsz?o(;1U6cJaf)Ix6%ifxlfCcu-c>dWMGZ;bfaF;Pd-Oa5f++=PjzrD1T8S#=SSo_4xDvpee z_a_k=p0{dJ+ayJ*RyBlN`$^6z!$;KfG$eC?!(!IdNgV1Eq`X( zxj=u^MOTVi|B3)G{&nF^6~SlxTD!iz?g^7>%4T<3!uE&(B9tdwWi>XkJJhlNTq)Ga zrLv@FbpTX~)_DOQeR;!8HOL@;kXV}&j^Im$la{af#6|DMJ<)JS%?a#JSa4yoSp$r^ zSQ<}6LCXjXuFNx%J`Sws=ld>{I_@T*=Cjf3@5@Q490#X}JONfh*ua0TXJ-_84@QyjKPMB*Vd%acZ_S8q_aIx=9x1svtC4h#xFR~t}u zTKqXB$SnqGvBoF0XwC?5Xd#*qB2nWj4BgHZHZ1f0O05CV3~b4r1hU?1fi+htj+?dd z6O*~c4BAIZuE%&6ItxF-B|>VyAp-x#k{yzBg|N|fMt=ZAQ%WuT`&j@4N)>YMX#K9_ zhWgkX1jC89nhWW}2|m=G51W;L%)sKJK1rW)H>zXyTqvDy;*why*6n$?O4ZNT-Yv~8R!uOX>FG1GpzI~L3 z_L~}$80+H(9aoJrN9?XQk+F>x>tmZ0FMGBtad^CxV1EduV}i`Rmj&3ot@O6rav=>N z(~N^SdBDnVu8pCGx)1=ec)n;1ZzX5$g|VeHSo3wHLvC#67IN%@)|yaoPuxUQq{!-} zh*f#O?_y_ekqr@e^F3(D=nB-!!JK%@*xAGfVpn{oW&mdH$QtE~iLvsT>f$37%#3^po!9EYFyQTTz7h%Zc4gl}x4K}52 zF6hpb%wP(uMX>)AO{^9M!hHYf+vCQ0=L)8`%SHzM!JQSb!Xu%7U3+>`&I`tBezvi* zhAxIM2Js|%^>bu?@{DklPfAHgpRxl;gdaf-;GmPt!dQi{E`*EsHf>1Na+qEfO`Oxoa?qbAIT(&z zWP3&jfl|?v5$v1R$wyy};L8~$?8TeAi{fBOv`}eYb`jkKs_DUbw)K*tWh!6tXu%yK_!rf+@3Km zc_?1+88UwQ5c3L|zA6Qe-VKdpoOHilxb=!faXxm5J>&d0Pog(U`YnH!ocqR@=F>s@ zn|3HHSVCcpYcEM6@4AIvh#gO**jv~q=o}m!o+RKF-0i1{2Se2&gk}HJxl;}|pGgzC zARV(KAIoMxGuY|d49_uA0xSkB01*KLQ=A#eFw=mwEgq9) zYs)9fjJi5;$Z+H5SkTBA7yoA&a|7DIimGkW4C%xt47)V94Xj7kM4LbV=a2dU1~-ss zcNI3~mF>4Lz=17(=38s6P_feF-Z$OQ0EySzI~JVjwZbqzy1J3^%RH+;7=ASTF@tB$ znF=NeJS|3WIKpu}K#Ov%lf~Nc$ zik0&pj6H3C03QL$pbHCp+qL+2mj}PD&9pY@X_%~96gp5NpkpD`QS&=fi`#(|_ir2xKB-j)?h zZ4*=Gk|2R=El(~mZ_ouTUf$yg{_2c-RVLUcRc63Qi@J)3Jijph15=Up$CPoxu5(X< zzMVE;lHE@W@bj3Vtdjz(1T{a2HDhCiD__kA`fI8NGOZO5nMQC{Ys#thRU^j07vdG) zC+qpCL!(|ii)8$1MzZ)Bq-mO$%{MsQx0a`ZAucNP2Vwus>~gd_?B@tIj}?8zDzgCZ zMLiK2d!8wu>O>jIpwXa8v61n-N$R`J5CQ&K=btn-ac0ux1Zcz>9}|z1F&GZ~Jpjp7 zhyK8<3;%ttHryk6&Fu_~RZJj$^M)fIVJL0Z_7@NGxt3n&c+YkmtPpRVazFTyOf)5+ zRU^UCr0cPlAHUG&1vO7N;KCHC^rE6@BWz%SmR!#dbsij_b5nQv%<_jY%3!9syy5 zfyNJT(t$;IB_A#Vv>VVk*I>RvFl^FT6yK6T%XhU$;*VIk|M}Vc(zs3%dMj)i{Vgrp zGa|>kiC@7}#kw%d3rzy28!&t>1Wr=pGNQm04i8;l>!B`tX6-6z!N13%(SRooH|}#o zT>Y8nHLjDm{ znJTHFaS0G}vYh-sK|&ZiP>Hd+;mQ|&{U?yQ$1`RO^A{wFt^yEU>)<+S+Vp@p5}6OPv1olE%3deoc%wP78%=M*EWdRgM)U`|*0fj7 z^Xv^InlBs?aLmc*8=p(aQo78zOylrOXTK)mh6_$|D~t5kw^QludmtE&=cE{y@NUZ4611m( zt+>U^{B&S{F<@@Z+>lLpC6KySn>N z=7cX2k%HZNGr55e1bb*$MjemsYDFw|*EpYECu~Ayyzq-*hm@iq&T1Bc!5(^SHegxP z&e{k@$6-hsGwGg8rF!Zl5|T!E$`TvPb_b>~R-b{=ih}?RCCHD-{A^WR_$fNbf1g4q+?P9kTk6$8u8?$Lb|Bo7j52mV}u^Vu#i{LS}Q8sk= z0j@7?g~8gGo<|;ngH^|F`Q8ejO~ilIuP(N`m_(tw7K)Sdyi+V=0XN<7#fV8_7_} z(ya;|$a}!qiR2qsAl?(D)cCLss|MJH3+6FWiOCMIfrnNe>|W5HoAT)vT?fJ!GE}FEp&i#DB*`AE^v$l8n8T+!=>g;B(y$$n zN-`aVF(^PWl67J;Frb#ymEy4EAlnk>CpIsB*n85FMy7&V--53^%trcB)K}hAO~1m8ukq z>*nA`<~TK#Ud&l#jD5y@B|vdol+$1j$9zuF8}xm-Qnr1Hn#c4-OJ@SLb6kGqha8bk zwg_oPdOL*B%kD1I+}~En;PO$9HQc@U{A=~xKe@$WOBH%er?m2d*jyUhvR6aSXJk38oYKbMC8#PB`G?~ z4^$(}cI|6@Y!i9RQph1#24;LV=3F$@m10i7^z}7DIYO8!q!bthT>PIu;&Aic`OcW} zkYiCZylmD6LX{Y+Bo^{;eQ_`q+f*y$wWB>5Qf0q=9m>s!Ly&AKSLOYLDLbO3G+s>G$O?L z{U~8VK{TA~6D1I7W_5FAli^kcA7B_`W^jdah@@o@sk|xoF`MRi^Z|_5LtG|%fFuIV zm2qYlTM--Qx2bDVo``IjQR>XV;u(it-1c#VeN|@>1#D>MlVGPL;Kqyk4x(0Ifgcj) z_KF`J_#|Sbglj0fXQ*ijbn=D{7r<^;xaQ??Huih!4{U=$oBCh?fdz>$G^N`C@GB40 zrCO)x$*RTP9@Gep6Zizv_9&DP4of^UoNw^+%y2rytIy;l*6eK~9fH_f+qOh<6fSrd z32alv0`0aybym;N9~i2O!NaoK_D6OwDPk(z{eBc1Gio;52HNNLsw%?39iHo1I`VyxnPG(CaN;Yx zp_{nyjRIXJJv(j;hkoyIlkCgNQ4?}BlE;Lk5D7QimcYJPFR3C8Da>6yS|)&M&;arH zMP*z<_punnEGQ?<)8U6M3fWK-!=GW2|K0&XDotltY=T=)`8p{WiCSs6s|S{X-44XM z*jYVI4VQt3t9_W9;vhS_BO}YE=)#5?#@}xun}EWoB#W6wjBb5-hzEf75o`Vwaf_Q| z#%Vc)*t-uN`DFtRJ=Cq~!|vkjKhUv*gAVu+LBu0!L^jHX zm%`kKFxDL2NHTOnQPWh+$>6A)Y&1*l_>{Ejp;>2{YL*Q8yxCAQv#vBich@fWfIN*Q z6);3<#3FUlk&R4UWp5BYoN9H>~1=BCmjEmO;ik^GlLPS-pE-0>nctv1A{^q87YT!lPVmULmEjd z?x1*7U`-m8fq1Wmeynx>nf%})*!F02f*I{hlSK5!{zNu342@#* z2j|rFjL!xbvlbB)Je?SE!MdI<#vcmD2NFUM(3xvHFxzkln-EdN>NWztl+d4KoSVdM z(u*GfyVVM4I`|~C5fbU<=`JUS884oX3{L(k63O)iiuOc%Yc>FErsVvnyp=dx{*lKB zMdAGo$V7Y_tdblEpZZx(d`eu_ohO5MyPP;Xw~nzsh;Vo?3wA5{LET5k{e2I|%>29)(#r*$9!?9r?Emcu96pR&hhK zdPEoWA5^ak5wt#)Q}U;NdVD1~4|*2gMv3z>0PptKg-n>uqc*^2({3&ryVwH zQ<*xD2YGsz)zk-H$erBsiGG5r4B~IJi*Y3H*iw=fgj3foFbLSixgk60KJdGJpmgBD!`K?be`UNuNjX{I)l2C@gJZCi# zQh~N$Qv%^8`^3FPhq!_>OX!(7GK{_=H6t@kx`56cX$nFIrdopj>tzUgHLy6BnfFwT zx9Am4jK9a2YGpXdgs46Yrxo!}#wP|rb*&~V^pZnJ|NJgDs7E&hifiBS=F`iT$Opd1 z+`SM4_vvsGTh8i__%HJ?-_{K(xW0@go!C^S(zPvNpJNw1kw{My78kr75pW3;-7uuA~Cg716JU=bCfv% zCP$3KU;jM%*U)6KqcIFP zNnCb#RL^cHhn$6R-D?=8e^WhLA^2>@vvC9H2*{tffANieo{fC-g+f&*{Faa`=*sO0 zu?x+X@oN?dB(B%T8&Ce#T)cK-J*NUlbkp9bK2xOi8U7@?nkU-ica-un8^CWg4@wz5 zN)cSr&Yr^@;AfnwP8Qd>=4-`#Bkb&p`PFn|mh_pCgRpJ&%=q{x7pdMO4o$tzjhUfe z$U<{q53(jU4oPsBoX-Ztsq59?3KHGKvm>;>QMNQXuNZ)cTburM!t2C`w|{AZ50t|( zP6O<6V*R*er-1E)@Wsa^ni)mk<9WV{(Y1RO8Prnt8Z%S3)et4=RF#kJ=2xb<#`1*N zoFv}H44Thp-b-a?lB6=O(o;gi6Zf0klVB~sWk2oTkDy5si&q-lu`mK|@8SG~Cg^uY z5c_+vIp?&VLjUG6bZP%^JzFpj(GSQcdiOEr9~FZ^ABYK+M^=Bt1dhWY04z`Mb0BLX z=!BO{-0h5D|I;0`lhvlQy*}}HM1DtjPtS0g&^HA-wk|?X4Rmv@*-5EN)-JRg?Gsm^ zCphS5%*8!BtJbwnNR33O6oLG`c<%=!U#!dxhyXX6c}9FM)2^)F*+j zMEDYduBIUSN(V?aLp9)w#Aak$5MKxFtE%sX`;@?K%I;0HI{uAE*Oe8vmY->iv4Co0 z^6FpAR|jjnA|ASB*Vnxt7@+^szcT$;AtxR^$e(CX^p8B;+KJR`eHf%t>y=Rn*+)ah z7|Vmz;#B4``nLRv0YC6To(7-~o^)XB3lgX4D_*;Tn>mrw6(;wmE`~ zaZ`1ml`{w27%?8k+u@{+W6>-XDB(~I{zEj@13NarVRA~wXx=wO$@lpK zX4LQlKgh;W!hzr~{W+Q+)B%BN@8(Ip9PI`B3A95jc>O~|B4H$O`zwFsGBVcQ0Qw{% z=Qwt6$Ml!~q2={ZZEYu)RkBLNnBpKTMKf>8y&E9Sbf^(*hCrGcpCWWm&(RtLoC0V_ z8r_Ax3-uQPNi`>jchPBQ*D@f3nh{FmQ%E=G(DT{YPIO z7^%XgGCmwhf9~r)4hZ#Ywn72-V8`4|6IDRYIo-tNzY3H}PkZQsaG)bt1w-yfQf2Uc zH9@<5Vg_?{?7_f*Z#iQ^{38kAzjP7~LN3SIYj8!7*lX*Hn`7Rr1V(rk3r8Mz)f2qh zsA(abCCCMx`QVoTd+=%L!G5P;7IwGu3q0%M87L$_9{Sbe6n~1DP!mtSWUK;di)lh- zno-g3$~C4`r#FbT>pvWc^P6}A8S>8tr3kzuT>;r<+?dN^^Iv;7~9X4+l;3h-Z>*yy32v=8n$ zm@`n`nuGF`2{<9jt>#-W@Skj7HSJ?aD?`*W-%OO?dL^m#M*=P;x*_<65`|7r*~K?b zJ+0xyM4$%aS1*_P=26H<&m7L#4eQwXzDOOF^847j+cWGxDhRpXi%5}?(Rwh(maoOg zfmJGYlLD7LN@~sxa`;-AWprSl%jl40Oo!p*kI5Ao`U?moW z*R1DmEbd5sr$a~n6SswycETtj+}GPqd>ZjYJDn%jtszEI%-Rxu=n~CfMBT7&+5Og8y&s!HV7Uj?Y z!As<30*GNSZxkP4V^1qjQi&xx^%`=cV6rm~t4zYjMKvGfvi9 z4fCNrAHCmnuv-ZSZi4NECGfL~YI_r{1U;73nrt!Gdnc{TKZFEjvF+B!p)3$$91$eR zK&8B_C%~q5&JoymM>;1uiEh0xcc;KTT4x*JnIBzS4`PkYnN%yljsr4=cy!HcLFjJ) zxZc>HFTp@I;~`1xoN?6CB#y#u(E%XL3MPfID7szk5Z1C;V}pfD$Kpn*&3n=xNb?v7 zcWn%h`m>Z~IIB7!xZ*%SiLebx3yB}IP5=>idb>0PX;MA%UD&X%9e#BztVJ_M%+%k7 z;=9*eJf#p=^ppQuk>;#Y+w}PO^7O#Xt{8T^cj|{Xl>1n~+z6N}AOn$u+#gNGaWFV> z0nX%NUyxINhk^T9roG=TVE1-IfwC~+n#IY~kI=tl$v|5TkdzlGvQ7kW5FU&i{nPJr z!ul3s5Mz{XqA7K#QX1wwjI&q5j>)GPZiZJ}btCiU%xDyHt~5}(PsRRLiqHyc*!B)H ztEOzq_O0YvyX%wN*`Z8X2-8M{X+!5*nPMXtoD=rx=pigwnc3A7s|b|qtu;iQo`e{M zwxtwJ-skAqhS5w`&o*x?%(A)=oV8Rplk3tc01trZZ^xP{T-b%^&+_V=Gq|x%Iy0Rs z`ZG;FAM9S?&lsv3yCbcj$`PIYg7`%a(?b#-5z*000Eti2@)FHG={mT`m+bXCtSHmf{S>v zhIwtLt=nxwqcvl5ov<;p^+&0g_plKm*t=KJ86Q67z03zbO1i-&r^XW0%gA8d6b=}U zfT&WPI*@`faK4?`{Wx1Qs9ct71%LPfZWapCq(JRrGH*oYRXS=K7<#3XAdj|_k}yCB zD9r@H5`ekjI{RR&Tu~04}^w3ur zGdSqoBG8QD(Vds!)mjyIDQQjmR)Q(aRjRPOUHTadC_1dLm2Ps$*yBkD%x0@H|ANL+ z3`6<$d}L7c4-8@!G%1jbW7eLbwZ?RS$v_Nv5q%Y5H-xiOT;wzcbWX)MVr9q>xR_hk z4=B!Y!~e$zLmmMMWJ@wqArQ%}ie@AxydcjiM;OM(@i!l`(cIISrcJx_QBFTJnJO!> zdIpZ0t*M_J_HnCDVuXOPiB}K1oiz2E#_X11lnQ-p&pP%qMn{7CA{yRxt<3ba8KD=^ zI(Vj>-pBuUtS0oLIeM9*{gnq~9Y;(Uxo}#V(!P!=xeCHVT@fn10h``GLn8|k8>**g z%$ErI@$CJOZNTAP;N{9bTGMB?_VwN9RT30`CERn!5yIuo0 zK+bN<0jCHNoYm)}=HxJ-v{AK*yC={a;Gm=Z9+`<17vhMG`<*(W57l`Zh+(H;tloc^ zp}G_9B5h6^7j>Frd@!Z=sEy@c`K;iFe)Ru0mf8_OWqxLjc*HgzB;MK%LepQ|KcL5;Vqj_-Fm*A7 zKB9FzDVfd31CDh<>KNF)Y8?E>R)&JGtQv9-4C;cGt!SmL0 zoKm41*5mmr%f0CDz>j3Ubb$}Y=D)^uYxb`f?~6MHYP!Nn z`Vgk}*WdFzAWKbA{n+w5PIbah%ttsN#W`E}1oq;?g`iA4luZI?=R+be-QTudlkcvO zpqpI9SM!hEX&ow~t6VvG&!0f$m4lhzT|X*~*fQbtK{Va)NB@!VXZ$H6ZZ{1}C2)IY zkRCS0Vo!fy2I_;MicO{La7>Q10!kU=F9gu+%hF72As=0mh;D?es0H}9Oe5x$k3MirS8DX=M_;)S!wNCkOz72mdWBiK(V94pz08HWVl?5L^eLRC6+g!``$|g|e z^6-*vJbq$((LU-BE_I#rjWZHa*BBRZN;+Qvx;0@aU#@Bz3h~f!8|#Cn7d)af*QfHH&!z)z zh#WUD^zLaVa|M1m_Akj8Fe4ip#ns-J?EH8xHe=zGG z+{U?In0y52#C$d*z-><@<6?A&P71Q+K9qtrvB)fD_E&M9r4k~7tamF8YXDVPaAtJX z?|NSG*@Z1HJV0JpJd+yofTpsPy5BgVEf=-y$|^8yYFI6#$-L&9B zdOvB#hX* zZTJ&0jzM6WG@zktEvKAuSrh{`h{Nnts%3_7`2X6gf|D^-d8-Srsbsy8>%Nnw;?U{J zUs^+8!rlClqM`~h<$T}viaclMiY3!eUz9gyu+9QX<6JZ()X3L3h^UKF(o>nw&7aH}&e?0e zxevIfZN%POm<3J66fgV4eZkEI@PzqRKKt$rMPgNhRaCI1LQuvo5c_Sp%(p!4MCGVe2B6(TZ5)9%=iPr zT%Dzghy&1hoMx5ucg+AYlceN0ty+3Md1NDSE_JR_>idHx-nxN|M0y?t^5!0WSq=@D11#`YdF-OQEDXcqSbh+teLN?1lX;K z3Oc@E%&`x~zphZwu%Q7nObjGYZ_&En38W)m&yz^4nc$`K^OE_ft#}zX z`7yGhh+z@-KHBt_2EWBHc$!(*Z^N0!x+ni$5bDyUw z;SiL;pgVIdXKsMx;pD8P1C0;~V|jv_H;gO5)p;XVvGk-Ac5_EuRC{Mw>Y~XZ_bw$B#32vI?xNQV#y<{3^xxDx|!rTZiMxB=}D*A*d zZhHl>v~a+gvfA^dp`S2}%M5fo)r;$h%}x5Us$F9_%95e}am$K(m@`G}-IC|P+%~la z(1$>ULBl>0e-fmNSk~WCk*2}aF@(eKPBOW5UBa0cpbc~gW>y!CUfqQ5N!mx=M+z~9 zs9#G#K5vC86SQTapeY- zWP2_X$FiBC>IW2&d+0CUl>B9L`ATAVeWg zEV%2Tw`U$qsi}@s0Te9&_=%rcBVmryl5S|3JfbO7I>gm;OQvg-!nI$`o!_`SpX^Vt zr1a19?!h`oQv~OH-t%8ky->r|uR)MMBfr9>(V`9k|Vi0qc6$ zdYI=rVSDbVCb%>YRjk}wHw>qFSN6^cff~c=SUEc-;;7N*m>|1T2&OIq0DsDu0NFUW zo}AJF#;2Fmetum{QXt9;mxE;S1D91k|2v(^dht#G9fTLkz|=w}CoUmWxCvf&s2 zEBp+@uew;sQ5u8v`$$QFb7oPrj);08(**cT%vh#?=aaq|VjDpP`vl?n9FJCc78t>4 zoV`KNw2odw23{sj4E4stDqr#)FMzw_h@d(k+8GkWCCi3|<*W{Oz&uCCO9hB5>~6Tk zb8v@uKBDeBxz7fIZ;I1_!~!>SMC%+aKw`>d)4-umb~8Jool1QIdJ-}!_-m!uY9?ah zN);h{TG~e@0zg1pSF9}vE*rVGq`-8lVWM>4CI@H5Agf)ZFk06%f*9vwn$fwr zo$a4MmL^eXSbms^K-e&V0Run&gaD@P@gi`HN#m#hbvQu-?6wn8`<-mTja+vn<&5L0IslLtb01C0MsFcsA-}5_|Dax_vr;st+t64uKbDBw z7F1Oo?xb`-Y@Qd)fz9;pN~!Nep#;2POMP4Srx>ZVmRVMX5?zgb=d12)Yye_gu?G^? zvNdUO*o4(PxWjSdrBOno-69+&6*<@pdYjB=2Pb~O85p-dk#tyuy7W4N2K8u!oHo#o zb1OOhLMN&@FW$}>xUL8)?(>2!MP&%#xF^Hpag{P>nz%XbBn_=#=snrp8V`w|C7c(i(%*k;b2t;U5{j+S^f+!5_r?^e8MKaEyNn7qPv(JsWY172` zfH6vMfoH74lNZ0JnVn3N(Ij?~zFkdND6khW*l1M_iAR0q0MyD-Ak1hmXsBpTx&ejF z=;i*x0Kto?6+t3o<36+OjSnwCuZlS}&U$qwy=pSRVP9Z(lifI^vN^fJ2;+5I;HS}~ z);DXUv8e#yejX#(T;f);CfXr5+K7cf?zu+iO_jkX;s|^l>HW|Ou?=AC~+!>`cTl8HQ9J`LNv$&iF=#g!Ew6B^$!m1$^d6}-bhS!&7(qH zbH@>tSm+Ln-m%2VERu6a_F%zj$e_VlgPo@+`i1Nf#?GGE?Pcx z+%0IL*Uyom(L2C^zHyKsGZii3B z&Q-%lv%UO22LCAS(dyz&{YY(YOx2H1OO)G(eAMVj70(k8XG3PymY0Im)sk#p+swEc${ z?R#KOtl?Z$hGE?2x6_zE<6Cu7^_Qi=dQ0PIq(+Qqj{+j(Bq*A}f|e)3;ifC8T49d}RCi_U#*!{d%ZY%(%((&2K3h6@VFWw>w8M2U_fRSX zuD7PWDx zPep+*dZYvG<^}bA=(qbtAhUkZM-|2CYz4>BPy9V5@+-x#C!vQni*zfss2>aStc3)J z@>feJ6inOk&?5E{-XI$c+fnXHT>$ithvh{rrrobuD8I4SY#U5fx4F7VGo`V#`|eJHS|Qsn-o zEeh_veg)shVqj2)v3ry^ zM!1dF-Z-oC$qs0&oWfxK%G`{90+=KDneBL6QR}GuIu!9c>shLKSSuZR*q_COH6w!M zeM|Fcek26{Ngvl%&0V=m5$6Cbw{@KC0DG7BlpHcP(fY~R%C<7#28-;B*EkxB-zU2V zwb;e&Y`V4ia;o(x-a6Mav*heI{#dw|+LcBl#Tv;kpG*YJE%tL5Y85q%Cjr6tU{was z<8AQ6>MkI98a^p786j74lvb4p!}JEMaCL5IU`jvV38bj-qrl~?W;}r@4J%4UJxCN@E*}Pd@=BH_m2(e zbtVQhA2-s>EdngtBG9jDF$nQc5+Gzdw@5}U%IQGxOozOLTjK_v*=Cp7BSCCD4-r&C z_3~p6#uj$QHeD$LVV4GK;}kv(SaxEjl->5f7-3Jg&y#c>{D{8e5T7JYZwjRNMt%Ym zgh?Dao(-U@7iofP7 zf9)Go)+Bi`TLP_5-Yyfg*%OD}3?@k|@T2X}JBaXkU<1rZecYVJTVp>{eOoMSW)5pxSxY z)RU(&quQ1XghR-m-eF}`YdF-{@9YV%4vG1`AGI_{_9xa6PXrazTpnF#a_fbEpQ|Ui zLq+V3zq34UOk+Bcbe`}7U;DIg>5pR~tOv6!_xHRxUk9>jpG==b7vTi$g$jHpEtEIa zul#Z9Ta8^)3a%o!*Bdx) zFy}NO#+-;X4mzJ;u4prT^j}fM{8QDHMb*h8BWVYOM75myG2!O{Z1nus|M&j@qgcJm T26-B^00000NkvXXu0mjf`7jP# From 75a02854fda98e03d7a35e5b40f2b4a5782ef86f Mon Sep 17 00:00:00 2001 From: AgentSeal Date: Sat, 1 Aug 2026 22:32:53 +0200 Subject: [PATCH 13/21] fix(codex): align credit/dollar footer formatting across desktop and menubar The desktop dollar-balance footer used toFixed, which drops thousands separators, while the new menubar footer groups via a currency NumberFormatter, so the two clients showed $12500.00 vs $12,500.00 for the same balance. The menubar credit footer also rounded half-even while the desktop uses Math.round (half-up), disagreeing on exact-half values. Render the desktop dollar path through the en_US currency locale, and pin the menubar footer formatter to half-up. Adds a grouping assertion (TS) and an exact-half rounding test (Swift). --- app/electron/quota/codex.test.ts | 3 +++ app/electron/quota/codex.ts | 2 +- mac/Sources/CodeBurnMenubar/AppStore.swift | 3 +++ mac/Tests/CodeBurnMenubarTests/CodexQuotaSummaryTests.swift | 6 ++++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/electron/quota/codex.test.ts b/app/electron/quota/codex.test.ts index 874613e..4e429d6 100644 --- a/app/electron/quota/codex.test.ts +++ b/app/electron/quota/codex.test.ts @@ -180,6 +180,9 @@ describe('Codex quota', () => { expect(inCredits.footerLines).toEqual(['Credits remaining · 3,410']) const inDollars = decodeCodexUsage({ credits: { has_credits: false, balance: 3.5 } }) expect(inDollars.footerLines).toEqual(['Credits remaining · $3.50']) + // Thousands separators must match the menubar's en_US currency formatter. + const inDollarsLarge = decodeCodexUsage({ credits: { has_credits: false, balance: 12500 } }) + expect(inDollarsLarge.footerLines).toEqual(['Credits remaining · $12,500.00']) }) it('returns disconnected without credentials', async () => { diff --git a/app/electron/quota/codex.ts b/app/electron/quota/codex.ts index 0e7e060..42b32df 100644 --- a/app/electron/quota/codex.ts +++ b/app/electron/quota/codex.ts @@ -227,7 +227,7 @@ export function decodeCodexUsage(body: unknown): QuotaProvider { const hasCredits = data.credits?.has_credits === true const footerLines: string[] = [] if (balance !== null && balance > 0) { - footerLines.push(`Credits remaining · ${hasCredits ? Math.round(balance).toLocaleString('en-US') : `$${balance.toFixed(2)}`}`) + footerLines.push(`Credits remaining · ${hasCredits ? Math.round(balance).toLocaleString('en-US') : balance.toLocaleString('en-US', { style: 'currency', currency: 'USD' })}`) } // Uncapped on purpose, so a bar-less card does not read as a failed fetch. if (!credits && data.credits?.unlimited === true) footerLines.push('Credits · Unlimited') diff --git a/mac/Sources/CodeBurnMenubar/AppStore.swift b/mac/Sources/CodeBurnMenubar/AppStore.swift index bfc3721..2722d0e 100644 --- a/mac/Sources/CodeBurnMenubar/AppStore.swift +++ b/mac/Sources/CodeBurnMenubar/AppStore.swift @@ -1397,6 +1397,9 @@ final class AppStore { let formatter = NumberFormatter() formatter.numberStyle = inCredits ? .decimal : .currency formatter.maximumFractionDigits = inCredits ? 0 : 2 + // Half-up matches the desktop decoder's Math.round; the default is + // half-even, which disagrees on exact-half balances. + formatter.roundingMode = .halfUp // `en_US`, not `en_US_POSIX`: the latter drops grouping entirely. formatter.locale = Locale(identifier: "en_US") if !inCredits { formatter.currencyCode = "USD" } diff --git a/mac/Tests/CodeBurnMenubarTests/CodexQuotaSummaryTests.swift b/mac/Tests/CodeBurnMenubarTests/CodexQuotaSummaryTests.swift index ba37e10..07f0443 100644 --- a/mac/Tests/CodeBurnMenubarTests/CodexQuotaSummaryTests.swift +++ b/mac/Tests/CodeBurnMenubarTests/CodexQuotaSummaryTests.swift @@ -56,6 +56,12 @@ struct CodexQuotaSummaryTests { #expect(store.quotaSummary(for: .codex)?.footerLines == ["Credits remaining · $3,410.40"]) } + @Test("an exact-half credit balance rounds up, matching the desktop decoder") + func creditBalanceRoundsHalfUp() { + let store = store(usage(balance: 3410.5, hasCredits: true)) + #expect(store.quotaSummary(for: .codex)?.footerLines == ["Credits remaining · 3,411"]) + } + @Test("an uncapped credit account says so instead of showing nothing") func uncappedAccountSaysUnlimited() { let store = store(usage(hasCredits: true, unlimited: true)) From 90dffcddc2b264091188dbec495d69ba664e515b Mon Sep 17 00:00:00 2001 From: AgentSeal Date: Sat, 1 Aug 2026 23:06:18 +0200 Subject: [PATCH 14/21] fix(daily-cache): trust a stamped watermark so an idle tail is not re-derived every launch The watermark pull-back could not tell a legitimately-finalized idle tail (recent days had no activity, so they are absent from the cache) from the corrupt cache it heals (a degraded parse finalized past days it never read). Both look like lastComputedDate > newest populated day, so an idle user re-parsed the tail on every launch, escalating to a full re-derive under sustained lock contention where before it did nothing. A degraded parse can no longer set complete, so the corrupt state can only come from pre-fix code. Stamp watermarkTrusted whenever a COMPLETE parse finalizes, and pull the watermark back only for unstamped caches. Pre-fix caches heal once, then are trusted; caches the fixed code writes are trusted from the first finalize. The heal still recovers genuinely missing days. --- src/daily-cache.ts | 39 ++++++++++++++----- tests/daily-cache-carry-forward.test.ts | 1 + .../daily-cache-degraded-completeness.test.ts | 20 ++++++++++ tests/daily-cache.test.ts | 2 + 4 files changed, 53 insertions(+), 9 deletions(-) diff --git a/src/daily-cache.ts b/src/daily-cache.ts index a598bdc..a6a6810 100644 --- a/src/daily-cache.ts +++ b/src/daily-cache.ts @@ -150,6 +150,14 @@ export type DailyCache = { /// as incomplete and is fully re-backfilled. Absent on caches written before /// this field existed → treated as incomplete (one self-healing re-backfill). complete?: boolean + /// True once a COMPLETE parse finalized this watermark. The pull-back below + /// only distrusts caches WITHOUT this stamp: a degraded parse can no longer + /// set `complete`, so a stamped cache whose watermark sits past its newest + /// populated day is a legitimately idle tail (recent days had no activity), + /// not a frozen hole, and re-deriving it every launch is pure waste. Absent + /// on caches written before this field: distrusted once (one healing + /// pull-back), then stamped. + watermarkTrusted?: boolean } function getCacheDir(): string { @@ -294,7 +302,7 @@ function migrateDays(days: Record[]): DailyEntry[] { })) } -function migratedFrom(parsed: { version: number; lastComputedDate: string | null; savingsConfigHash?: string; tzKey?: string; days: Record[]; complete?: boolean }): DailyCache { +function migratedFrom(parsed: { version: number; lastComputedDate: string | null; savingsConfigHash?: string; tzKey?: string; days: Record[]; complete?: boolean; watermarkTrusted?: boolean }): DailyCache { return { version: DAILY_CACHE_VERSION, savingsConfigHash: parsed.savingsConfigHash ?? '', @@ -306,6 +314,9 @@ function migratedFrom(parsed: { version: number; lastComputedDate: string | null // Only a cache explicitly marked complete stays trusted; one written before // the marker existed reads false and is re-backfilled once. complete: parsed.complete === true, + // Absent on a pre-fix cache: the watermark is distrusted once (healing + // pull-back), then re-stamped by the finalize that follows. + watermarkTrusted: parsed.watermarkTrusted === true, } } @@ -409,6 +420,7 @@ async function adoptOlderDailyCaches(): Promise { // accounting: leave complete unset so the next hydration re-derives every // day whose sources survive (the merge keeps the rest). complete: rest.length === candidates.length ? false : base.complete, + watermarkTrusted: rest.length === candidates.length ? false : base.watermarkTrusted, } await saveDailyCache(adopted).catch(() => {}) return adopted @@ -451,6 +463,7 @@ export function addNewDays(cache: DailyCache, incoming: DailyEntry[], newestDate lastComputedDate: nextLast, days: applyRetention(merged, newestDate), complete: cache.complete, + watermarkTrusted: cache.watermarkTrusted, } } @@ -677,13 +690,18 @@ export async function ensureCacheHydrated( // covered. Since gapStart is lastComputedDate + 1, that hole is invisible // to the gap logic forever. Trust the DATA over the marker: pull the // watermark back to the newest day actually present so the ordinary gap - // parse re-derives the tail. Nothing is dropped — the cached days all stay, - // and a genuinely idle tail simply re-derives as empty. A cache with NO - // days is exempt: it has no newest day to trust, and a machine with no - // history at all must still be able to finalize (line below) rather than - // re-backfill the whole window on every launch. + // parse re-derives the tail. Nothing is dropped — the cached days all stay. + // + // Only UNSTAMPED caches are distrusted here. A degraded parse can no longer + // set `complete` (that is this fix), so the corrupt state can only be + // written by pre-fix code: an unstamped cache. A stamped one whose watermark + // outruns its newest day is a legitimately idle tail (recent days had no + // activity), and re-deriving that empty tail on every launch is the + // regression this guard avoids. A cache with NO days is exempt: it has no + // newest day to trust, and a machine with no history at all must still be + // able to finalize (below) rather than re-backfill on every launch. const newestCachedDate = c.days.reduce((max, d) => (max === null || d.date > max ? d.date : max), null) - if (newestCachedDate !== null && c.lastComputedDate !== null && c.lastComputedDate > newestCachedDate) { + if (c.watermarkTrusted !== true && newestCachedDate !== null && c.lastComputedDate !== null && c.lastComputedDate > newestCachedDate) { c = { ...c, lastComputedDate: newestCachedDate } } @@ -734,6 +752,9 @@ export async function ensureCacheHydrated( lastComputedDate: parseWasComplete ? yesterdayStr : priorWatermark, days: applyRetention(merged, yesterdayStr), complete: parseWasComplete, + // Stamp the watermark as trusted only when a COMPLETE parse produced it, + // so a later idle tail under this watermark is not distrusted above. + watermarkTrusted: parseWasComplete, } await saveDailyCache(c) return c @@ -766,13 +787,13 @@ export async function ensureCacheHydrated( // the same reason as the re-derive path above: a partial parse cannot // vouch for the days it never read, and gapStart is the only thing that // will ever bring them back. - c = { ...c, lastComputedDate: parseWasComplete ? c.lastComputedDate : priorWatermark, complete: parseWasComplete } + c = { ...c, lastComputedDate: parseWasComplete ? c.lastComputedDate : priorWatermark, complete: parseWasComplete, watermarkTrusted: parseWasComplete } await saveDailyCache(c) } else if (c.complete !== true && sessionComplete()) { // No gap to fill (already current through yesterday) but not yet marked — // e.g. a brand-new machine whose only data is today. Finalize so future // launches don't re-backfill the whole window every time. - c = { ...c, complete: true } + c = { ...c, complete: true, watermarkTrusted: true } await saveDailyCache(c) } return c diff --git a/tests/daily-cache-carry-forward.test.ts b/tests/daily-cache-carry-forward.test.ts index 62197fa..a3056b8 100644 --- a/tests/daily-cache-carry-forward.test.ts +++ b/tests/daily-cache-carry-forward.test.ts @@ -609,6 +609,7 @@ describe('adoption union across older cache files', () => { lastComputedDate: daysAgoStr(1), days: [rich], complete: true, + watermarkTrusted: true, } await saveDailyCache(cache) const loaded = await loadDailyCache() diff --git a/tests/daily-cache-degraded-completeness.test.ts b/tests/daily-cache-degraded-completeness.test.ts index 76e3abb..d3df6cc 100644 --- a/tests/daily-cache-degraded-completeness.test.ts +++ b/tests/daily-cache-degraded-completeness.test.ts @@ -143,6 +143,26 @@ describe('daily cache: a complete cache that outruns its own data is not trusted expectPreserved(out) }) + it('trusts a stamped watermark over an idle tail — no re-derive treadmill', async () => { + // Same shape as the corrupt case above (watermark past the newest populated + // day), but stamped by a COMPLETE parse: the recent days are genuinely + // empty, not a frozen hole. A degraded parse can no longer produce this + // state, so the stamp means the watermark is trustworthy and re-deriving the + // empty tail on every launch (the perf regression) must not happen. + await seed({ lastComputedDate: daysAgoStr(1), watermarkTrusted: true }) + let parses = 0 + const out = await ensureCacheHydrated( + async () => { parses += 1; return [] }, + () => [], + 'cfg-A', + () => true, + ) + expect(parses).toBe(0) + expect(out.lastComputedDate).toBe(daysAgoStr(1)) + expect(out.complete).toBe(true) + expectPreserved(out) + }) + it('a degraded re-derivation of those days still keeps every carried day', async () => { await seed({ lastComputedDate: daysAgoStr(1) }) const out = await ensureCacheHydrated(noSessions, () => [], 'cfg-A', () => false) diff --git a/tests/daily-cache.test.ts b/tests/daily-cache.test.ts index 6ae0707..d887d25 100644 --- a/tests/daily-cache.test.ts +++ b/tests/daily-cache.test.ts @@ -183,6 +183,7 @@ describe('loadDailyCache', () => { lastComputedDate: '2026-04-10', days: [emptyDay('2026-04-09', 12.5, 40), emptyDay('2026-04-10', 7.25, 28)], complete: true, + watermarkTrusted: true, } await saveDailyCache(saved) const loaded = await loadDailyCache() @@ -318,6 +319,7 @@ describe('ensureCacheHydrated', () => { lastComputedDate: '2026-06-11', days: [emptyDay('2026-06-11', 5, 10)], complete: true, + watermarkTrusted: true, } await saveDailyCache(saved) From 5a12dccc70aab8d62795e87234cde78c689a0c47 Mon Sep 17 00:00:00 2001 From: AgentSeal Date: Sun, 2 Aug 2026 00:35:30 +0200 Subject: [PATCH 15/21] fix(parser): classify range-sliced turns from the whole turn on the provider path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Codex/OTel/network provider path classified a date-sliced turn from only its in-range calls (cachedTurnToClassified(slicedTurn)), while the Claude path kept the full-turn classification. So a midnight-straddling turn was categorized and edit-counted differently by provider — a Read at 23:59 plus an Edit at 00:05, sliced to the 23:59 side, read as coding/hasEdits on Claude but exploration/no-edit on Codex. This contradicted the documented intent that category/hasEdits/retries are whole-exchange judgments, not per-call sums. Classify the full turn, then trim its calls to the range (mirroring the Claude path's classifiedTurnSlicedToRange). Cost/calls still come from the retained calls, so conservation is unchanged; only the turn-level judgments are now provider-independent. --- src/parser.ts | 18 ++++++++++-- tests/provider-turn-grouping.test.ts | 41 ++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/src/parser.ts b/src/parser.ts index 2b4f3f7..7adbea9 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -3054,7 +3054,15 @@ async function parseProviderSources( slicedTurn = sliced } - const classified = cachedTurnToClassified(slicedTurn) + // Classify the FULL turn, then keep only the in-range calls: category / + // hasEdits / retries are whole-exchange judgments, not per-call sums, so a + // midnight-straddling turn is classified identically to the Claude path + // (scanProjectDirs) rather than being re-derived from a partial slice. + // Cost/calls come from the retained calls, unchanged. + const classifiedFull = cachedTurnToClassified(turn) + const classified = dateRange + ? (classifiedTurnSlicedToRange(classifiedFull, dateRange) ?? classifiedFull) + : classifiedFull const project = slicedTurn.calls[0]?.project ?? source.project const key = `${providerName}:${turn.sessionId}:${project}` @@ -3103,7 +3111,13 @@ async function parseProviderSources( slicedTurn = sliced } - const classified = cachedTurnToClassified(slicedTurn) + // Classify the FULL turn, then keep only the in-range calls (same rule + // as the loop above and the Claude path): whole-exchange judgments stay + // whole-turn; cost/calls come from the retained calls. + const classifiedFull = cachedTurnToClassified(turn) + const classified = dateRange + ? (classifiedTurnSlicedToRange(classifiedFull, dateRange) ?? classifiedFull) + : classifiedFull const project = slicedTurn.calls[0]?.project ?? providerName const key = `${providerName}:${turn.sessionId}:${project}` diff --git a/tests/provider-turn-grouping.test.ts b/tests/provider-turn-grouping.test.ts index 71da3e2..e729c5d 100644 --- a/tests/provider-turn-grouping.test.ts +++ b/tests/provider-turn-grouping.test.ts @@ -98,6 +98,47 @@ describe('provider turn grouping', () => { expect(session.categoryBreakdown[turn.category].oneShotTurns).toBe(0) }) + it('classifies a range-sliced turn from the whole turn, not the surviving calls (#852)', async () => { + const chatsDir = join(home, '.gemini', 'tmp', 'project-b', 'chats') + await mkdir(chatsDir, { recursive: true }) + await writeFile(join(chatsDir, 'session-slice.json'), JSON.stringify({ + sessionId: 'gemini-slice-1', + startTime: '2026-05-16T10:00:00.000Z', + messages: [ + { id: 'u1', timestamp: '2026-05-16T10:00:00.000Z', type: 'user', content: 'read then edit src/parser.ts' }, + { + id: 'g1', timestamp: '2026-05-16T10:00:00.000Z', type: 'gemini', content: 'reading', + model: 'gemini-3.1-pro-preview', tokens: { input: 100, output: 30 }, + toolCalls: [{ id: 't1', name: 'read_file', args: { path: 'src/parser.ts' } }], + }, + { + id: 'g2', timestamp: '2026-05-16T11:00:00.000Z', type: 'gemini', content: 'editing', + model: 'gemini-3.1-pro-preview', tokens: { input: 90, output: 25 }, + toolCalls: [{ id: 't2', name: 'edit_file', args: { path: 'src/parser.ts' } }], + }, + ], + })) + + const parseAllSessions = await loadParser() + // A range that keeps the 10:00 Read call but excludes the 11:00 Edit call, + // so the turn is sliced. `turnSlicedToRange`/`callsInRange` compare absolute + // times, so this is timezone-independent. + const sliceRange: DateRange = { + start: new Date('2026-05-16T10:00:00.000Z'), + end: new Date('2026-05-16T10:30:00.000Z'), + } + const projects = await parseAllSessions(sliceRange, 'gemini') + const turn = projects[0]!.sessions[0]!.turns[0]! + + // Cost/calls are sliced to the range: only the Read call survives. + expect(turn.assistantCalls.map(c => c.deduplicationKey)).toEqual(['gemini:gemini-slice-1:g1']) + // But category/hasEdits are whole-turn judgments — the Edit is part of the + // exchange — so they stay classified from the FULL turn, matching the Claude + // path rather than being re-derived from the partial slice (which alone reads + // as a no-edit exploration turn). + expect(turn.hasEdits).toBe(true) + }) + it('groups Mistral Vibe assistant messages and uses Vibe session_cost when present', async () => { const sessionDir = join(vibeHome, 'logs', 'session', 'session_20260516_100000_vibe') await mkdir(sessionDir, { recursive: true }) From a769b5008adff674d24ffda8cf9b75fb88f0fd4f Mon Sep 17 00:00:00 2001 From: AgentSeal Date: Sun, 2 Aug 2026 01:16:35 +0200 Subject: [PATCH 16/21] fix(daily-cache): keep prototype-named project keys; make filter tests date-deterministic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two issues on top of the --project/--exclude durable-headline fix: - sanitizeProjects dropped any project whose key is an Object.prototype member name (constructor, valueOf, __proto__, ...). A project key is a directory basename, so such a name is legitimate, and dropping it left the day's per-project split summing to less than the day cost — so the sliced, project-filtered headline silently lost that project's spend with no footnote. The keys are written via setOwn (defineProperty), so keeping them is pollution-safe; only the redundant `name in Object.prototype` guard is removed. Regression test added (mutation-checked: fails without the guard removed). - The new project-filter tests seeded a carried day 10 days ago but ranged over the calendar month, so within the first 10 days of a month that day fell out of range and the tests went red. Replaced with a fixed 20-day window that always spans the seeded day. --- src/daily-cache.ts | 8 ++- tests/project-filter-durable-totals.test.ts | 57 ++++++++++++++++----- 2 files changed, 51 insertions(+), 14 deletions(-) diff --git a/src/daily-cache.ts b/src/daily-cache.ts index c5439c3..78caf34 100644 --- a/src/daily-cache.ts +++ b/src/daily-cache.ts @@ -257,7 +257,13 @@ function sanitizeProjects(raw: unknown): { projects?: DailyEntry['projects'] } { if (!isRecord(raw)) return {} const out: NonNullable = {} for (const [name, p] of Object.entries(raw)) { - if (name in Object.prototype || !isRecord(p)) continue + // A project key is a directory basename, so it can legitimately be a + // prototype-member name ("constructor", "valueOf", ...). `setOwn` writes it + // as an own property via defineProperty, so keeping it is pollution-safe — + // and dropping it would silently subtract that project's cost from a + // --project/--exclude total (the day's split would no longer sum to its own + // cost, which the filtered headline relies on). + if (!isRecord(p)) continue setOwn(out, name, { cost: num(p.cost), calls: num(p.calls), diff --git a/tests/project-filter-durable-totals.test.ts b/tests/project-filter-durable-totals.test.ts index 746a67b..889e460 100644 --- a/tests/project-filter-durable-totals.test.ts +++ b/tests/project-filter-durable-totals.test.ts @@ -5,7 +5,6 @@ import { tmpdir } from 'os' import { join } from 'path' import { DAILY_CACHE_VERSION, currentTzKey, type DailyCache, type DailyEntry } from '../src/daily-cache.js' -import { getDateRange } from '../src/cli-date.js' import { loadPricing } from '../src/models.js' import { buildDurablePeriod, buildMenubarPayloadForRange, buildPeriodData, getDailyCacheConfigHash } from '../src/usage-aggregator.js' import { parseAllSessions, filterProjectsByName, clearSessionCache } from '../src/parser.js' @@ -148,13 +147,20 @@ afterEach(async () => { if (existsSync(ROOT)) await rm(ROOT, { recursive: true, force: true }) }) -const monthRange = (): DateRange => getDateRange('month').range +// A fixed 20-day window back from now: it always spans the carried day (10 days +// ago) and today, so the period never depends on where "now" falls in the +// calendar. A real `month` range drops the 10-days-ago day whenever today is +// within 10 days of the 1st, which made these tests flake early in each month. +const coveringRange = (): DateRange => ({ + start: new Date(Date.now() - 20 * 24 * 60 * 60 * 1000), + end: new Date(), +}) describe('durable headline honours --project / --exclude on carried days', () => { it('drops an excluded project from the headline so it reconciles with the By Project panel', async () => { await seedCache(carriedDayWithProjects(daysAgoStr(10))) await seedLiveTodaySession() - const range = monthRange() + const range = coveringRange() const live = await liveOnly(range, [], ['drop-me']) clearSessionCache() @@ -172,7 +178,7 @@ describe('durable headline honours --project / --exclude on carried days', () => it('keeps only the named project when --project is given', async () => { await seedCache(carriedDayWithProjects(daysAgoStr(10))) await seedLiveTodaySession() - const range = monthRange() + const range = coveringRange() const live = await liveOnly(range, ['keep-me'], []) clearSessionCache() @@ -185,7 +191,7 @@ describe('durable headline honours --project / --exclude on carried days', () => it('matches a filter against the project path as well as its name', async () => { await seedCache(carriedDayWithProjects(daysAgoStr(10))) await seedLiveTodaySession() - const range = monthRange() + const range = coveringRange() const live = await liveOnly(range, [], ['/Users/gone/drop-me']) clearSessionCache() @@ -194,10 +200,35 @@ describe('durable headline honours --project / --exclude on carried days', () => expect(durable.data.cost).toBeCloseTo(live.cost + KEEP.cost, 6) }) + it('keeps a project whose name is a prototype member (constructor) in the sliced total', async () => { + // A project directory can legitimately be named "constructor"/"valueOf"/etc. + // The day cache must carry it as an own key: if the load path drops it, the + // day's per-project split no longer sums to the day cost, and the sliced + // headline silently loses that project's spend. + const day = carriedDayWithProjects(daysAgoStr(10)) + const protoName = 'constructor' + Object.defineProperty(day.projects!, protoName, { + value: { cost: 25, calls: 5, savingsUSD: 0, sessions: 1, path: '/Users/gone/constructor' }, + enumerable: true, writable: true, configurable: true, + }) + day.cost += 25 + day.calls += 5 + await seedCache(day) + await seedLiveTodaySession() + const range = coveringRange() + + // Keep everything (exclude a non-matching term): the constructor project's + // $25 must be present alongside keep-me and drop-me. + const durable = await buildDurablePeriod({ range, label: 'p' }, { provider: 'all', exclude: ['zzz-nomatch'] }) + const live = await liveOnly(range, [], ['zzz-nomatch']) + expect(durable.data.cost).toBeCloseTo(live.cost + DAY_COST + 25, 6) + expect(durable.unattributedCostUSD).toBe(0) + }) + it('contributes nothing from a carried day whose every project is excluded', async () => { await seedCache(carriedDayWithProjects(daysAgoStr(10))) await seedLiveTodaySession() - const range = monthRange() + const range = coveringRange() const live = await liveOnly(range, [], ['keep-me', 'drop-me']) clearSessionCache() @@ -210,7 +241,7 @@ describe('durable headline honours --project / --exclude on carried days', () => it('applies the project filter underneath a provider filter', async () => { await seedCache(carriedDayWithProjects(daysAgoStr(10))) await seedLiveTodaySession() - const range = monthRange() + const range = coveringRange() // Stated as the delta the filter must produce, so the assertion holds // whatever the provider-scoped live parse contributes. @@ -226,7 +257,7 @@ describe('durable headline honours --project / --exclude on carried days', () => it('keeps the menubar payload in step with the report under a project filter', async () => { await seedCache(carriedDayWithProjects(daysAgoStr(10))) await seedLiveTodaySession() - const range = monthRange() + const range = coveringRange() clearSessionCache() const menubar = await buildMenubarPayloadForRange({ range, label: 'p' }, { provider: 'all', exclude: ['drop-me'], optimize: false, timeline: false }) @@ -243,7 +274,7 @@ describe('durable headline honours --project / --exclude on carried days', () => it('leaves the unfiltered headline exactly as it was', async () => { await seedCache(carriedDayWithProjects(daysAgoStr(10))) await seedLiveTodaySession() - const range = monthRange() + const range = coveringRange() const live = await liveOnly(range, [], []) clearSessionCache() @@ -259,7 +290,7 @@ describe('carried days with no per-project split (pre-v15)', () => { it('sets the unfilterable day aside instead of leaking it into a filtered headline', async () => { await seedCache(carriedDayWithoutProjects(daysAgoStr(10))) await seedLiveTodaySession() - const range = monthRange() + const range = coveringRange() const live = await liveOnly(range, [], ['drop-me']) clearSessionCache() @@ -279,7 +310,7 @@ describe('carried days with no per-project split (pre-v15)', () => { delete day.providers['claude']!.projects await seedCache(day) await seedLiveTodaySession() - const range = monthRange() + const range = coveringRange() clearSessionCache() const durable = await buildDurablePeriod({ range, label: 'p' }, { provider: 'claude', exclude: ['drop-me'] }) @@ -291,7 +322,7 @@ describe('carried days with no per-project split (pre-v15)', () => { it('says so in the overview instead of just showing a short total', async () => { await seedCache(carriedDayWithoutProjects(daysAgoStr(10))) await seedLiveTodaySession() - const range = monthRange() + const range = coveringRange() clearSessionCache() const durable = await buildDurablePeriod({ range, label: 'This month' }, { provider: 'all', exclude: ['drop-me'] }) @@ -320,7 +351,7 @@ describe('carried days with no per-project split (pre-v15)', () => { it('still counts the day in full when no project filter is active', async () => { await seedCache(carriedDayWithoutProjects(daysAgoStr(10))) await seedLiveTodaySession() - const range = monthRange() + const range = coveringRange() const live = await liveOnly(range, [], []) clearSessionCache() From 1bf7206842f7ae0b36ea9a5183fd429a773dd381 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Mon, 27 Jul 2026 21:09:59 +0000 Subject: [PATCH 17/21] feat(sync): push git attribution spans with --attribution MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Expose the yield session-to-commit correlation through codeburn sync so backends can join AI usage to git activity without local git hooks. - yield: export normalizeRemoteUrl (host/org/repo; credentials, ports, and .git stripped) and computeAttributionRecords, which reuses the exact repo-grouping + tightest-window attribution from computeYield (extracted into a shared buildRepoGroups) and joins in the normalized origin remote and session prLinks. - otlp: two new span types sharing the session traceId — codeburn.session.attribution (git.repo, git.pr_links, git.commit_count) and codeburn.commit (git.sha, git.in_main, git.was_reverted). Resource attribute codeburn.attribution_methodology=timestamp-window marks the attribution as inferred. - push: generic send core reused by usage and attribution batches. Dedup keys encode mutable state (inMain/wasReverted), so a state transition re-sends the updated fact while identical states dedupe via the existing sent-ledger. - cli: opt-in --attribution flag on sync push (dry-run aware); commits in repos with no network remote are never sent. AI-Origin: human --- docs/sync/README.md | 31 ++- src/sync/cli.ts | 69 ++++- src/sync/otlp.ts | 156 +++++++++++ src/sync/push.ts | 67 ++++- src/yield.ts | 203 +++++++++++++-- tests/sync-attribution.test.ts | 456 +++++++++++++++++++++++++++++++++ 6 files changed, 941 insertions(+), 41 deletions(-) create mode 100644 tests/sync-attribution.test.ts diff --git a/docs/sync/README.md b/docs/sync/README.md index 5f1343e..6ab7da1 100644 --- a/docs/sync/README.md +++ b/docs/sync/README.md @@ -48,6 +48,9 @@ codeburn sync push --since 30d # Preview what would be sent codeburn sync push --dry-run + +# Also push git attribution (opt-in — see "Git attribution" below) +codeburn sync push --attribution ``` ### `codeburn sync status` @@ -95,6 +98,32 @@ Each AI interaction becomes one OTLP span with these attributes: A pseudonymous `device_id` distinguishes your machines without revealing hostnames. +### Git attribution (opt-in: `--attribution`) + +`codeburn sync push --attribution` additionally sends the session→commit correlation that `codeburn yield` computes locally, so the backend can join AI usage to git activity without git hooks. Two extra span types are emitted: + +**`codeburn.session.attribution`** — one per session with joinable evidence: + +| Field | Example | Description | +|---|---|---| +| `ai.session_id` | `abc123…` | Session (shares the usage spans' traceId) | +| `ai.project` | `my-app` | Project name | +| `git.repo` | `github.com/acme/widget` | Normalized `origin` remote (credentials and ports stripped) | +| `git.pr_links` | `["…/pull/12"]` | PR URLs captured for the session | +| `git.commit_count` | `2` | Number of attributed commits | + +**`codeburn.commit`** — one per commit attributed to a session: + +| Field | Example | Description | +|---|---|---| +| `git.sha` | `4f2a…` | Commit SHA | +| `git.in_main` | `true` | Whether the commit landed in the main branch | +| `git.was_reverted` | `false` | Whether a later commit reverted it | + +Attribution is **inferred** (timestamp-window correlation, the same heuristic as `codeburn yield`); the resource attribute `codeburn.attribution_methodology: timestamp-window` marks it as such. State transitions (a commit merging to main, or being reverted) are re-sent automatically on later pushes — receivers should upsert by `(git.repo, git.sha)`. + +With `--attribution`, normalized repo remote URLs, commit SHAs, commit timestamps, and PR URLs leave your machine. Commits in repos with no network remote are never sent (there is nothing to join them to). Without the flag, none of this is sent. + ### What is NOT sent - **Prompts** — your actual messages to AI are never included @@ -102,7 +131,7 @@ A pseudonymous `device_id` distinguishes your machines without revealing hostnam - **Bash commands** — may contain secrets, never sent - **Your name/email** — identity is derived server-side from your login token -There is no flag to override this. Privacy is structural, not configurable. +There is no flag to override this. Privacy is structural, not configurable. The only additive opt-in is `--attribution` (repo remotes, commit SHAs, and PR URLs — never code or prompts), described above. ## Authentication diff --git a/src/sync/cli.ts b/src/sync/cli.ts index 174b616..89ab4de 100644 --- a/src/sync/cli.ts +++ b/src/sync/cli.ts @@ -22,7 +22,8 @@ import { } from './auth.js' import { createCredentialStore } from './credentials.js' import { readSyncConfig, writeSyncConfig, deleteSyncConfig, updateLastSync } from './config.js' -import { collectUnsentCalls, sendBatches, batchCalls, MAX_PER_PUSH } from './push.js' +import { collectUnsentCalls, collectUnsentAttribution, sendBatches, sendAttributionBatches, batchCalls, MAX_PER_PUSH, type PushResult } from './push.js' +import { batchAttributionItems } from './otlp.js' export function registerSyncCommands(program: Command): void { const sync = program @@ -226,7 +227,8 @@ export function registerSyncCommands(program: Command): void { .description('Push unsent telemetry data to the configured endpoint') .option('--since ', 'Time window: today, 7d, 30d, month, all (max 6 months)', '7d') .option('--dry-run', 'Show what would be sent without sending') - .action(async (opts: { since: string; dryRun?: boolean }) => { + .option('--attribution', 'Also push git attribution spans (session→commit correlation from `codeburn yield`, plus PR links). Sends normalized repo remotes and commit SHAs to the endpoint.') + .action(async (opts: { since: string; dryRun?: boolean; attribution?: boolean }) => { const config = readSyncConfig() if (!config) { process.stderr.write('Sync not configured. Run `codeburn sync setup ` first.\n') @@ -277,6 +279,18 @@ export function registerSyncCommands(program: Command): void { // Flatten + filter against sent-ledger const { allCalls, unsent } = collectUnsentCalls(projects) + // Attribution records (opt-in): session→commit correlation computed + // locally from the same parsed projects. Reuses the yield engine. + let attributionUnsent: Awaited>['unsent'] = [] + let attributionTotal = 0 + if (opts.attribution) { + const { computeAttributionRecords } = await import('../yield.js') + const records = computeAttributionRecords(projects, range, process.cwd()) + const collected = collectUnsentAttribution(records) + attributionUnsent = collected.unsent + attributionTotal = collected.allItems.length + } + if (opts.dryRun) { const toPushCount = Math.min(unsent.length, MAX_PER_PUSH) const cost = unsent.slice(0, MAX_PER_PUSH).reduce((s, c) => s + c.call.costUSD, 0) @@ -285,10 +299,15 @@ export function registerSyncCommands(program: Command): void { if (unsent.length > MAX_PER_PUSH) { process.stderr.write(`[dry-run] ${unsent.length - MAX_PER_PUSH} more calls exceed the ${MAX_PER_PUSH} safety limit — a second push would be needed\n`) } + if (opts.attribution) { + const commits = attributionUnsent.filter(i => i.kind === 'commit').length + const sessions = attributionUnsent.filter(i => i.kind === 'session').length + process.stderr.write(`[dry-run] Attribution: ${attributionTotal} facts total, would push ${attributionUnsent.length} (${sessions} sessions, ${commits} commits)\n`) + } return } - if (unsent.length === 0) { + if (unsent.length === 0 && attributionUnsent.length === 0) { process.stderr.write(`Nothing to push (${allCalls.length} calls already synced).\n`) updateLastSync() return @@ -302,15 +321,18 @@ export function registerSyncCommands(program: Command): void { // Batch and send (loops until done; waits out 429 rate limits) const discoveryDoc = await fetchDiscoveryDoc(config.baseUrl) - const batches = batchCalls(toPush, discoveryDoc.max_batch_size) const endpoint = `${config.baseUrl}${config.tracesPath}` - const result = await sendBatches({ - endpoint, - accessToken: tokens.access_token, - batches, - log: msg => process.stderr.write(`${msg}\n`), - }) + let result: PushResult = { outcome: 'complete', totalSent: 0, totalRejected: 0, totalCostSent: 0 } + if (toPush.length > 0) { + const batches = batchCalls(toPush, discoveryDoc.max_batch_size) + result = await sendBatches({ + endpoint, + accessToken: tokens.access_token, + batches, + log: msg => process.stderr.write(`${msg}\n`), + }) + } if (result.outcome === 'auth-rejected') { process.stderr.write('Auth rejected by server. Run `codeburn sync setup` to re-authenticate.\n') @@ -323,11 +345,36 @@ export function registerSyncCommands(program: Command): void { process.stderr.write(`Server error (HTTP ${result.httpStatus}). Remaining calls will be sent on the next push.\n`) } + // Attribution spans ride the same endpoint after the usage push + // completes. Skipped when the usage push hit rate limits or server + // errors — the endpoint is already unhappy; both retry on next push. + let attrResult: PushResult | null = null + if (opts.attribution && attributionUnsent.length > 0) { + if (result.outcome === 'complete') { + const attrBatches = batchAttributionItems(attributionUnsent, discoveryDoc.max_batch_size) + attrResult = await sendAttributionBatches({ + endpoint, + accessToken: tokens.access_token, + batches: attrBatches, + log: msg => process.stderr.write(`${msg}\n`), + }) + if (attrResult.outcome === 'auth-rejected') { + process.stderr.write('Auth rejected by server during attribution push. Run `codeburn sync setup` to re-authenticate.\n') + process.exit(1) + } + } else { + process.stderr.write(`Skipping attribution push (${attributionUnsent.length} facts) — will retry on next push.\n`) + } + } + // Update lastSync updateLastSync() // Summary process.stderr.write(`\nSynced ${result.totalSent} calls ($${result.totalCostSent.toFixed(2)}) to ${config.baseUrl}\n`) + if (attrResult) { + process.stderr.write(` Attribution: ${attrResult.totalSent} facts synced${attrResult.totalRejected > 0 ? `, ${attrResult.totalRejected} rejected (will retry)` : ''}\n`) + } if (result.totalRejected > 0) { process.stderr.write(` ${result.totalRejected} spans rejected (will retry on next push)\n`) } @@ -337,7 +384,7 @@ export function registerSyncCommands(program: Command): void { // Non-zero exit when the push did not complete, so cron/scripts can // detect it. Ledgered progress is kept; next push resumes. - if (result.outcome !== 'complete') { + if (result.outcome !== 'complete' || (attrResult !== null && attrResult.outcome !== 'complete')) { process.exitCode = 1 } } catch (err) { diff --git a/src/sync/otlp.ts b/src/sync/otlp.ts index 8a12c7e..d6a042e 100644 --- a/src/sync/otlp.ts +++ b/src/sync/otlp.ts @@ -8,6 +8,7 @@ import { createHash } from 'crypto' import { hostname, userInfo } from 'os' import type { ParsedApiCall } from '../types.js' +import type { SessionAttributionRecord } from '../yield.js' export interface OtlpSpan { traceId: string @@ -141,3 +142,158 @@ export function batchCalls(calls: CallWithSession[], maxBatchSize: number): Call } return batches } + +// --- Attribution spans (sync push --attribution) --- + +export const SESSION_ATTRIBUTION_SPAN_NAME = 'codeburn.session.attribution' +export const COMMIT_ATTRIBUTION_SPAN_NAME = 'codeburn.commit' + +/** + * A single ledger-able attribution unit: either one session-level record + * (repo + PR links + commit count) or one attributed commit. The dedup key + * encodes the mutable state (inMain/wasReverted for commits; repo, PR links, + * and commit set for sessions), so a state TRANSITION mints a new key and the + * updated fact is re-sent on the next push — the receiver upserts by + * (repo, sha) / (session). Identical states dedupe via the sent-ledger. + */ +export type AttributionItem = { + kind: 'session' | 'commit' + dedupKey: string + /** Span start: commit author time for commits, session start for sessions. ISO 8601. */ + timestamp: string + /** Span end for session items (session lastTimestamp). Absent for commits. */ + endTimestamp?: string + sessionId: string + project: string + repo: string | null + // session kind + prLinks?: string[] + commitCount?: number + // commit kind + sha?: string + inMain?: boolean + wasReverted?: boolean +} + +function stateHash(parts: string[]): string { + return createHash('sha256').update(parts.join('\u001e')).digest('hex').slice(0, 16) +} + +/** Deterministic dedup key for a commit attribution fact (state included). */ +export function commitAttributionKey(sessionId: string, sha: string, inMain: boolean, wasReverted: boolean): string { + return `attr:c:${sessionId}:${sha}:${inMain ? 1 : 0}${wasReverted ? 1 : 0}` +} + +/** Deterministic dedup key for a session attribution fact (state included). */ +export function sessionAttributionKey(record: SessionAttributionRecord): string { + const commitStates = record.commits + .map(c => `${c.sha}:${c.inMain ? 1 : 0}${c.wasReverted ? 1 : 0}`) + .sort() + return `attr:s:${record.sessionId}:${stateHash([record.repo ?? '', ...record.prLinks, ...commitStates])}` +} + +/** Flatten attribution records into ledger-able items (one session item + one per commit). */ +export function flattenAttributionRecords(records: SessionAttributionRecord[]): AttributionItem[] { + const items: AttributionItem[] = [] + for (const record of records) { + items.push({ + kind: 'session', + dedupKey: sessionAttributionKey(record), + timestamp: record.firstTimestamp, + endTimestamp: record.lastTimestamp, + sessionId: record.sessionId, + project: record.project, + repo: record.repo, + prLinks: record.prLinks, + commitCount: record.commits.length, + }) + for (const commit of record.commits) { + items.push({ + kind: 'commit', + dedupKey: commitAttributionKey(record.sessionId, commit.sha, commit.inMain, commit.wasReverted), + timestamp: commit.timestamp, + sessionId: record.sessionId, + project: record.project, + repo: record.repo, + sha: commit.sha, + inMain: commit.inMain, + wasReverted: commit.wasReverted, + }) + } + } + return items +} + +/** + * Build an OTLP payload from attribution items. Spans share the session's + * traceId with the usage spans (`deriveTraceId(sessionId)`), so a receiver + * can correlate cost and attribution without any extra key. + */ +export function buildAttributionOtlpPayload(items: AttributionItem[]): OtlpPayload { + const deviceId = getDeviceId() + + const spans: OtlpSpan[] = items.map(item => { + const startNano = toUnixNano(item.timestamp) + const endNano = item.endTimestamp + ? toUnixNano(item.endTimestamp) + : (BigInt(startNano) + 1_000_000n).toString() + + const attributes: OtlpAttribute[] = [ + { key: 'ai.session_id', value: { stringValue: item.sessionId } }, + { key: 'ai.project', value: { stringValue: item.project } }, + ] + if (item.repo) { + attributes.push({ key: 'git.repo', value: { stringValue: item.repo } }) + } + + if (item.kind === 'commit') { + attributes.push( + { key: 'git.sha', value: { stringValue: item.sha ?? '' } }, + { key: 'git.in_main', value: { boolValue: item.inMain ?? false } }, + { key: 'git.was_reverted', value: { boolValue: item.wasReverted ?? false } }, + ) + } else { + attributes.push({ key: 'git.commit_count', value: { intValue: String(item.commitCount ?? 0) } }) + if (item.prLinks && item.prLinks.length > 0) { + attributes.push({ + key: 'git.pr_links', + value: { arrayValue: { values: item.prLinks.map(u => ({ stringValue: u })) } }, + }) + } + } + + return { + traceId: deriveTraceId(item.sessionId), + spanId: deriveSpanId(item.dedupKey), + name: item.kind === 'commit' ? COMMIT_ATTRIBUTION_SPAN_NAME : SESSION_ATTRIBUTION_SPAN_NAME, + startTimeUnixNano: startNano, + endTimeUnixNano: endNano, + attributes, + } + }) + + return { + resourceSpans: [{ + resource: { + attributes: [ + { key: 'codeburn.device_id', value: { stringValue: deviceId } }, + // Honesty marker: this attribution is inferred (timestamp-window + // correlation), not declared. Receivers should label it as such. + { key: 'codeburn.attribution_methodology', value: { stringValue: 'timestamp-window' } }, + ], + }, + scopeSpans: [{ + spans, + }], + }], + } +} + +/** Split attribution items into batches of maxBatchSize. */ +export function batchAttributionItems(items: AttributionItem[], maxBatchSize: number): AttributionItem[][] { + const batches: AttributionItem[][] = [] + for (let i = 0; i < items.length; i += maxBatchSize) { + batches.push(items.slice(i, i + maxBatchSize)) + } + return batches +} diff --git a/src/sync/push.ts b/src/sync/push.ts index 0444c71..36c2253 100644 --- a/src/sync/push.ts +++ b/src/sync/push.ts @@ -8,7 +8,16 @@ import type { ProjectSummary } from '../types.js' import { assertHttps } from './discovery.js' import { ledgerKeySet, appendToLedger, type LedgerEntry } from './ledger.js' -import { buildOtlpPayload, batchCalls, type CallWithSession } from './otlp.js' +import { + buildOtlpPayload, + batchCalls, + buildAttributionOtlpPayload, + flattenAttributionRecords, + type CallWithSession, + type AttributionItem, + type OtlpPayload, +} from './otlp.js' +import type { SessionAttributionRecord } from '../yield.js' /** * Safety valve, not a routine cap — pushes now loop until all batches are @@ -91,6 +100,23 @@ export function parseRetryAfterMs(value: string | null): number | null { * retry on the next push. */ export async function sendBatches(opts: SendBatchesOptions): Promise { + return sendBatchesCore({ + ...opts, + buildPayload: buildOtlpPayload, + toOutbound: c => ({ key: c.call.deduplicationKey, ts: c.call.timestamp, costUSD: c.call.costUSD }), + }) +} + +/** How sendBatchesCore ledgers and prices a batch item. */ +type OutboundItem = { key: string; ts: string; costUSD: number } + +type SendBatchesCoreOptions = Omit & { + batches: T[][] + buildPayload: (batch: T[]) => OtlpPayload + toOutbound: (item: T) => OutboundItem +} + +async function sendBatchesCore(opts: SendBatchesCoreOptions): Promise { assertHttps(opts.endpoint, 'Traces endpoint') const log = opts.log ?? (() => {}) const sleep = opts.sleep ?? ((ms: number) => new Promise(r => setTimeout(r, ms))) @@ -107,7 +133,7 @@ export async function sendBatches(opts: SendBatchesOptions): Promise // Retry loop for the current batch (429 only) for (;;) { - const payload = buildOtlpPayload(batch) + const payload = opts.buildPayload(batch) const response = await fetch(opts.endpoint, { method: 'POST', @@ -158,13 +184,11 @@ export async function sendBatches(opts: SendBatchesOptions): Promise totalRejected += rejected log(` Batch: ${rejected}/${batch.length} spans rejected — whole batch will retry on next push`) } else { - const entries: LedgerEntry[] = batch.map(c => ({ - key: c.call.deduplicationKey, - ts: c.call.timestamp, - })) + const outbound = batch.map(opts.toOutbound) + const entries: LedgerEntry[] = outbound.map(o => ({ key: o.key, ts: o.ts })) appendToLedger(entries) totalSent += batch.length - totalCostSent += batch.reduce((s, c) => s + c.call.costUSD, 0) + totalCostSent += outbound.reduce((s, o) => s + o.costUSD, 0) } break // batch done (success or partial) — move to next batch } @@ -173,4 +197,33 @@ export async function sendBatches(opts: SendBatchesOptions): Promise return { outcome: 'complete', totalSent, totalRejected, totalCostSent, totalWaitMs } } +/** Flatten attribution records into items and filter out already-sent ones. */ +export function collectUnsentAttribution(records: SessionAttributionRecord[]): { + allItems: AttributionItem[] + unsent: AttributionItem[] +} { + const allItems = flattenAttributionRecords(records) + const sent = ledgerKeySet() + const unsent = allItems.filter(i => !sent.has(i.dedupKey)) + return { allItems, unsent } +} + +export interface SendAttributionBatchesOptions extends Omit { + batches: AttributionItem[][] +} + +/** + * Send attribution batches through the same retry/ledger pipeline as usage + * batches. Items are ledgered by their state-encoding dedup keys, so an + * identical attribution fact is sent once and a state transition (commit + * merged to main, commit reverted) re-sends the updated fact. + */ +export async function sendAttributionBatches(opts: SendAttributionBatchesOptions): Promise { + return sendBatchesCore({ + ...opts, + buildPayload: buildAttributionOtlpPayload, + toOutbound: item => ({ key: item.dedupKey, ts: item.timestamp, costUSD: 0 }), + }) +} + export { batchCalls } diff --git a/src/yield.ts b/src/yield.ts index ce3cbd0..6c8770c 100644 --- a/src/yield.ts +++ b/src/yield.ts @@ -2,7 +2,7 @@ import { execFileSync } from 'child_process' import { realpathSync } from 'fs' import { resolve } from 'path' import { parseAllSessions } from './parser.js' -import type { DateRange, SessionSummary } from './types.js' +import type { DateRange, ProjectSummary, SessionSummary } from './types.js' export type YieldCategory = 'productive' | 'reverted' | 'abandoned' | 'ambiguous' @@ -133,7 +133,63 @@ function getMainBranch(cwd: string): string { return 'main' } -type CommitInfo = { +/** + * Normalize a git remote URL to a host-scoped repo identity (`host/org/repo`) + * usable as a server-side join key. Handles the three common transports: + * + * git@github.com:org/repo.git -> github.com/org/repo + * ssh://git@github.com:22/org/repo.git -> github.com/org/repo + * https://user:tok@github.com/org/repo.git -> github.com/org/repo + * + * Credentials and ports are stripped (a token embedded in an https remote must + * never leave the machine), the host is lowercased (path case is preserved), + * and a trailing `.git` / `/` is removed. Local paths and `file://` remotes + * return null — a repo with no network remote has no server-side identity. + */ +export function normalizeRemoteUrl(url: string): string | null { + const trimmed = url.trim() + if (!trimmed) return null + + let host: string + let path: string + + const scpLike = /^(?:[^@/]+@)?([^:/]+):(?!\/\/)(.+)$/.exec(trimmed) + if (/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(trimmed)) { + let parsed: URL + try { + parsed = new URL(trimmed) + } catch { + return null + } + if (parsed.protocol === 'file:') return null + if (!parsed.hostname) return null + host = parsed.hostname + path = parsed.pathname + } else if (scpLike) { + // scp-like syntax: [user@]host:path — not parseable by URL + host = scpLike[1] + path = scpLike[2] + } else { + // Bare local path (or something unrecognizable) — no remote identity. + return null + } + + const cleanPath = path + .replace(/^\/+/, '') + .replace(/\/+$/, '') + .replace(/\.git$/, '') + if (!cleanPath) return null + + return `${host.toLowerCase()}/${cleanPath}` +} + +/** `git remote get-url origin`, normalized. Null when absent or local-only. */ +function getRepoRemote(gitDir: string): string | null { + const url = runGit(['remote', 'get-url', 'origin'], gitDir) + return url ? normalizeRemoteUrl(url) : null +} + +export type CommitInfo = { sha: string timestamp: Date inMain: boolean @@ -296,34 +352,35 @@ function categorizeSession( return { category: 'abandoned', commitCount: commits.length } } -export async function computeYield(range: DateRange, cwd: string, provider: string = 'all'): Promise { - const projects = await parseAllSessions(range, provider) - - const summary: YieldSummary = { - productive: { cost: 0, sessions: 0 }, - reverted: { cost: 0, sessions: 0 }, - abandoned: { cost: 0, sessions: 0 }, - ambiguous: { cost: 0, sessions: 0 }, - total: { cost: 0, sessions: 0 }, - details: [], - } +type RepoGroup = { + commits: CommitInfo[] + sessions: SessionSummary[] + projectNames: string[] + /** A directory to run further git queries in (remote lookup); null when the group has no git identity. */ + gitDir: string | null +} +/** + * Group sessions by canonical repository identity and load each group's + * commits for the range. Shared by `computeYield` (categorization) and + * `computeAttributionRecords` (sync). Grouping semantics are unchanged from + * the original computeYield implementation: each commit is awarded at most + * once across the whole repo; monorepo subdirectories and worktrees collapse + * to one group; a project whose path is missing or not a git repo falls back + * to the cwd repo (or an empty commit list when cwd is not a repo either). + */ +function buildRepoGroups( + projects: ProjectSummary[], + range: DateRange, + cwd: string, +): Map { const repoIdentityCache = new Map() - // Get all commits in the date range for correlation const cwdIdentity = resolveRepoIdentity(cwd, repoIdentityCache) const cwdCommits = cwdIdentity ? getCommitsInRange(cwd, range.start, range.end, getMainBranch(cwd)) : [] - // Group sessions by canonical repository identity before attributing so that - // each commit is awarded at most once across the whole repo. Two monorepo - // subdirectory sessions, or two worktrees of one repo, resolve to the same - // git-common-dir and share ONE group; keying on the raw path would double - // count. A project whose path is missing or not a git repo falls back to the - // cwd repo (or, when cwd is not a repo either, an empty commit list) exactly - // as before. - type RepoGroup = { commits: CommitInfo[]; sessions: SessionSummary[]; projectNames: string[] } const repoGroups = new Map() for (const project of projects) { const projectIdentity = project.projectPath @@ -342,6 +399,7 @@ export async function computeYield(range: DateRange, cwd: string, provider: stri : getCommitsInRange(identity.gitDir, range.start, range.end, getMainBranch(identity.gitDir)), sessions: [], projectNames: [], + gitDir: identity?.gitDir ?? null, } repoGroups.set(groupKey, group) } @@ -351,6 +409,23 @@ export async function computeYield(range: DateRange, cwd: string, provider: stri } } + return repoGroups +} + +export async function computeYield(range: DateRange, cwd: string, provider: string = 'all'): Promise { + const projects = await parseAllSessions(range, provider) + + const summary: YieldSummary = { + productive: { cost: 0, sessions: 0 }, + reverted: { cost: 0, sessions: 0 }, + abandoned: { cost: 0, sessions: 0 }, + ambiguous: { cost: 0, sessions: 0 }, + total: { cost: 0, sessions: 0 }, + details: [], + } + + const repoGroups = buildRepoGroups(projects, range, cwd) + for (const group of repoGroups.values()) { const attributions = attributeCommits(group.sessions, group.commits) for (const [index, session] of group.sessions.entries()) { @@ -446,3 +521,87 @@ export function buildYieldJsonReport( })), } } + +// --- Sync attribution (codeburn sync push --attribution) --- + +export type CommitAttribution = { + sha: string + /** Commit author time, ISO 8601. */ + timestamp: string + inMain: boolean + wasReverted: boolean +} + +/** + * Per-session git attribution record — the sync-facing projection of the + * yield timestamp-window correlation. One record per session that produced + * server-joinable evidence: attributed commits (requires a normalized remote) + * and/or PR links. + */ +export type SessionAttributionRecord = { + sessionId: string + project: string + /** Normalized origin remote (`host/org/repo`), the server-side join key. Null when only prLinks are available. */ + repo: string | null + /** GitHub PR URLs captured for the session (already normalized upstream). */ + prLinks: string[] + /** Commits attributed to this session. Empty when repo is null (SHAs without a repo identity cannot be joined). */ + commits: CommitAttribution[] + /** Session window, ISO 8601 — lets the receiver reason about attribution recency. */ + firstTimestamp: string + lastTimestamp: string +} + +/** + * Compute per-session attribution records for sync. Reuses the exact yield + * repo grouping + tightest-window commit attribution (`methodology: + * timestamp-window`), then joins in each repo group's normalized origin + * remote and the session's PR links. + * + * Inclusion rules: + * - Sessions with neither attributed commits nor PR links are omitted. + * - Commits are only included when the repo has a normalized remote; a SHA + * without a repo identity has no server-side meaning. Such sessions still + * emit a record when they carry PR links (the PR URL embeds the repo). + * + * Takes already-parsed projects (sync push has them in hand) instead of + * re-parsing like computeYield does. + */ +export function computeAttributionRecords( + projects: ProjectSummary[], + range: DateRange, + cwd: string, +): SessionAttributionRecord[] { + const repoGroups = buildRepoGroups(projects, range, cwd) + const records: SessionAttributionRecord[] = [] + + for (const group of repoGroups.values()) { + const remote = group.gitDir ? getRepoRemote(group.gitDir) : null + const attributions = attributeCommits(group.sessions, group.commits) + + for (const [index, session] of group.sessions.entries()) { + if (!session.firstTimestamp) continue + + const attributedCommits = remote ? (attributions[index]?.commits ?? []) : [] + const prLinks = session.prLinks ?? [] + if (attributedCommits.length === 0 && prLinks.length === 0) continue + + records.push({ + sessionId: session.sessionId, + project: group.projectNames[index] ?? session.project, + repo: remote, + prLinks: [...prLinks].sort(), + commits: attributedCommits.map(c => ({ + sha: c.sha, + timestamp: c.timestamp.toISOString(), + inMain: c.inMain, + wasReverted: c.wasReverted, + })), + firstTimestamp: session.firstTimestamp, + lastTimestamp: session.lastTimestamp ?? session.firstTimestamp, + }) + } + } + + return records +} diff --git a/tests/sync-attribution.test.ts b/tests/sync-attribution.test.ts new file mode 100644 index 0000000..8f5021b --- /dev/null +++ b/tests/sync-attribution.test.ts @@ -0,0 +1,456 @@ +/** + * Tests for sync git attribution (sync push --attribution). + * + * Covers: remote URL normalization, session→commit attribution record + * computation (reusing the yield engine), state-encoding dedup keys, + * attribution OTLP span construction, and the send/ledger pipeline. + */ + +import { execFileSync } from 'node:child_process' +import { mkdtemp, rm, writeFile } from 'node:fs/promises' +import { tmpdir } from 'node:os' +import { join } from 'node:path' +import { createServer, type Server } from 'node:http' + +import { describe, it, expect, beforeEach, afterEach } from 'vitest' + +import type { ProjectSummary, SessionSummary } from '../src/types.js' +import { + normalizeRemoteUrl, + computeAttributionRecords, + type SessionAttributionRecord, +} from '../src/yield.js' +import { + flattenAttributionRecords, + commitAttributionKey, + sessionAttributionKey, + buildAttributionOtlpPayload, + batchAttributionItems, + deriveTraceId, + SESSION_ATTRIBUTION_SPAN_NAME, + COMMIT_ATTRIBUTION_SPAN_NAME, + type OtlpAttribute, +} from '../src/sync/otlp.js' + +// ── Git fixtures (mirrors yield-repo-grouping.test.ts) ──────────────── + +function git(cwd: string, args: string[], env: Record = {}): string { + return execFileSync('git', args, { + cwd, + encoding: 'utf-8', + env: { ...process.env, ...env }, + }).trim() +} + +function initRepo(dir: string): void { + git(dir, ['init', '-b', 'main']) + git(dir, ['config', 'user.email', 'test@example.com']) + git(dir, ['config', 'user.name', 'Test']) +} + +function commitAt(dir: string, message: string, iso: string): void { + git(dir, ['add', '.']) + git(dir, ['commit', '-m', message], { + GIT_AUTHOR_DATE: iso, + GIT_COMMITTER_DATE: iso, + }) +} + +function makeSession(overrides: Partial): SessionSummary { + return { + sessionId: 'session', + project: 'app', + firstTimestamp: '2026-01-01T10:00:00.000Z', + lastTimestamp: '2026-01-01T11:00:00.000Z', + totalCostUSD: 1, + totalSavingsUSD: 0, + totalInputTokens: 0, + totalOutputTokens: 0, + totalReasoningTokens: 0, + totalCacheReadTokens: 0, + totalCacheWriteTokens: 0, + apiCalls: 1, + turns: [], + modelBreakdown: {}, + toolBreakdown: {}, + mcpBreakdown: {}, + bashBreakdown: {}, + categoryBreakdown: {} as SessionSummary['categoryBreakdown'], + skillBreakdown: {}, + subagentBreakdown: {}, + ...overrides, + } +} + +const range = { + start: new Date('2026-01-01T00:00:00.000Z'), + end: new Date('2026-01-02T00:00:00.000Z'), +} + +// ── normalizeRemoteUrl ──────────────────────────────────────────────── + +describe('normalizeRemoteUrl', () => { + it('normalizes scp-like ssh remotes', () => { + expect(normalizeRemoteUrl('git@github.com:acme/widget.git')).toBe('github.com/acme/widget') + expect(normalizeRemoteUrl('git@GitHub.com:Acme/Widget')).toBe('github.com/Acme/Widget') + }) + + it('normalizes ssh:// remotes, dropping user and port', () => { + expect(normalizeRemoteUrl('ssh://git@github.com/acme/widget.git')).toBe('github.com/acme/widget') + expect(normalizeRemoteUrl('ssh://git@gitlab.example.com:2222/group/sub/repo.git')).toBe('gitlab.example.com/group/sub/repo') + }) + + it('normalizes https remotes and strips embedded credentials', () => { + expect(normalizeRemoteUrl('https://github.com/acme/widget.git')).toBe('github.com/acme/widget') + expect(normalizeRemoteUrl('https://user:s3cret-token@github.com/acme/widget.git')).toBe('github.com/acme/widget') + expect(normalizeRemoteUrl('https://github.com/acme/widget/')).toBe('github.com/acme/widget') + }) + + it('returns null for local paths and file:// remotes', () => { + expect(normalizeRemoteUrl('/home/dev/repos/widget')).toBeNull() + expect(normalizeRemoteUrl('file:///home/dev/repos/widget')).toBeNull() + expect(normalizeRemoteUrl('../relative/repo')).toBeNull() + expect(normalizeRemoteUrl('')).toBeNull() + }) +}) + +// ── computeAttributionRecords ───────────────────────────────────────── + +describe('computeAttributionRecords', () => { + it('attributes commits with normalized remote, inMain, and timestamps', async () => { + const repoDir = await mkdtemp(join(tmpdir(), 'codeburn-attr-repo-')) + try { + initRepo(repoDir) + git(repoDir, ['remote', 'add', 'origin', 'git@github.com:acme/widget.git']) + await writeFile(join(repoDir, 'file.txt'), 'hello\n') + commitAt(repoDir, 'feat: shipped', '2026-01-01T10:30:00Z') + const sha = git(repoDir, ['rev-parse', 'HEAD']) + + const session = makeSession({ + sessionId: 'sess-a', + prLinks: ['https://github.com/acme/widget/pull/12'], + }) + const projects = [ + { project: 'app', projectPath: repoDir, sessions: [session] } as ProjectSummary, + ] + + const records = computeAttributionRecords(projects, range, repoDir) + + expect(records).toHaveLength(1) + const record = records[0]! + expect(record.sessionId).toBe('sess-a') + expect(record.repo).toBe('github.com/acme/widget') + expect(record.prLinks).toEqual(['https://github.com/acme/widget/pull/12']) + expect(record.commits).toHaveLength(1) + expect(record.commits[0]).toMatchObject({ sha, inMain: true, wasReverted: false }) + expect(new Date(record.commits[0]!.timestamp).toISOString()).toBe('2026-01-01T10:30:00.000Z') + expect(record.firstTimestamp).toBe('2026-01-01T10:00:00.000Z') + expect(record.lastTimestamp).toBe('2026-01-01T11:00:00.000Z') + } finally { + await rm(repoDir, { recursive: true, force: true }) + } + }) + + it('omits sessions with no commits and no PR links', async () => { + const repoDir = await mkdtemp(join(tmpdir(), 'codeburn-attr-empty-')) + try { + initRepo(repoDir) + git(repoDir, ['remote', 'add', 'origin', 'git@github.com:acme/widget.git']) + await writeFile(join(repoDir, 'file.txt'), 'hello\n') + // Commit outside every session window + commitAt(repoDir, 'feat: unrelated', '2026-01-01T20:00:00Z') + + const session = makeSession({ sessionId: 'sess-idle' }) + const projects = [ + { project: 'app', projectPath: repoDir, sessions: [session] } as ProjectSummary, + ] + + expect(computeAttributionRecords(projects, range, repoDir)).toEqual([]) + } finally { + await rm(repoDir, { recursive: true, force: true }) + } + }) + + it('drops commits when the repo has no remote, but keeps PR-linked sessions', async () => { + const repoDir = await mkdtemp(join(tmpdir(), 'codeburn-attr-noremote-')) + try { + initRepo(repoDir) // no origin remote + await writeFile(join(repoDir, 'file.txt'), 'hello\n') + commitAt(repoDir, 'feat: local only', '2026-01-01T10:30:00Z') + + const withPr = makeSession({ + sessionId: 'sess-pr', + prLinks: ['https://github.com/acme/widget/pull/7'], + firstTimestamp: '2026-01-01T10:15:00.000Z', + lastTimestamp: '2026-01-01T10:45:00.000Z', + }) + const withoutPr = makeSession({ sessionId: 'sess-nopr' }) + const projects = [ + { project: 'app', projectPath: repoDir, sessions: [withPr, withoutPr] } as ProjectSummary, + ] + + const records = computeAttributionRecords(projects, range, repoDir) + + // sess-pr wins the commit window but has no repo identity, so commits + // are dropped; the PR link alone justifies the record. sess-nopr has + // nothing joinable and is omitted. + expect(records).toHaveLength(1) + expect(records[0]!.sessionId).toBe('sess-pr') + expect(records[0]!.repo).toBeNull() + expect(records[0]!.commits).toEqual([]) + expect(records[0]!.prLinks).toEqual(['https://github.com/acme/widget/pull/7']) + } finally { + await rm(repoDir, { recursive: true, force: true }) + } + }) + + it('awards each commit to a single session (tightest window)', async () => { + const repoDir = await mkdtemp(join(tmpdir(), 'codeburn-attr-overlap-')) + try { + initRepo(repoDir) + git(repoDir, ['remote', 'add', 'origin', 'https://github.com/acme/widget.git']) + await writeFile(join(repoDir, 'file.txt'), 'hello\n') + commitAt(repoDir, 'feat: shared window', '2026-01-01T10:30:00Z') + + const tight = makeSession({ + sessionId: 'sess-tight', + firstTimestamp: '2026-01-01T10:15:00.000Z', + lastTimestamp: '2026-01-01T10:45:00.000Z', + }) + const broad = makeSession({ sessionId: 'sess-broad' }) + const projects = [ + { project: 'app', projectPath: repoDir, sessions: [tight, broad] } as ProjectSummary, + ] + + const records = computeAttributionRecords(projects, range, repoDir) + + expect(records).toHaveLength(1) + expect(records[0]!.sessionId).toBe('sess-tight') + expect(records[0]!.commits).toHaveLength(1) + } finally { + await rm(repoDir, { recursive: true, force: true }) + } + }) +}) + +// ── Dedup keys and flattening ───────────────────────────────────────── + +function makeRecord(overrides: Partial = {}): SessionAttributionRecord { + return { + sessionId: 'sess-1', + project: 'app', + repo: 'github.com/acme/widget', + prLinks: ['https://github.com/acme/widget/pull/3'], + commits: [ + { sha: 'a'.repeat(40), timestamp: '2026-01-01T10:30:00.000Z', inMain: true, wasReverted: false }, + ], + firstTimestamp: '2026-01-01T10:00:00.000Z', + lastTimestamp: '2026-01-01T11:00:00.000Z', + ...overrides, + } +} + +describe('attribution dedup keys', () => { + it('encodes commit state so a state transition mints a new key', () => { + const before = commitAttributionKey('sess-1', 'abc123', false, false) + const merged = commitAttributionKey('sess-1', 'abc123', true, false) + const reverted = commitAttributionKey('sess-1', 'abc123', true, true) + expect(new Set([before, merged, reverted]).size).toBe(3) + // Same state = same key (ledger dedupes repeats) + expect(commitAttributionKey('sess-1', 'abc123', true, false)).toBe(merged) + }) + + it('session key is stable for identical state and changes with commit state', () => { + const record = makeRecord() + expect(sessionAttributionKey(record)).toBe(sessionAttributionKey(makeRecord())) + + const mutated = makeRecord({ + commits: [{ sha: 'a'.repeat(40), timestamp: '2026-01-01T10:30:00.000Z', inMain: true, wasReverted: true }], + }) + expect(sessionAttributionKey(mutated)).not.toBe(sessionAttributionKey(record)) + }) + + it('flattens one session item plus one item per commit', () => { + const items = flattenAttributionRecords([makeRecord()]) + expect(items).toHaveLength(2) + expect(items[0]).toMatchObject({ kind: 'session', commitCount: 1, endTimestamp: '2026-01-01T11:00:00.000Z' }) + expect(items[1]).toMatchObject({ kind: 'commit', sha: 'a'.repeat(40), inMain: true, wasReverted: false }) + expect(items.map(i => i.dedupKey)).toEqual([ + sessionAttributionKey(makeRecord()), + commitAttributionKey('sess-1', 'a'.repeat(40), true, false), + ]) + }) +}) + +// ── OTLP payload ────────────────────────────────────────────────────── + +function attrMap(attributes: OtlpAttribute[]): Record { + return Object.fromEntries(attributes.map(a => [a.key, a.value])) +} + +describe('buildAttributionOtlpPayload', () => { + it('builds session and commit spans sharing the session traceId', () => { + const items = flattenAttributionRecords([makeRecord()]) + const payload = buildAttributionOtlpPayload(items) + + const resource = payload.resourceSpans[0]! + const resourceAttrs = attrMap(resource.resource.attributes) + expect(resourceAttrs['codeburn.attribution_methodology']).toEqual({ stringValue: 'timestamp-window' }) + expect(resourceAttrs['codeburn.device_id']).toBeDefined() + + const spans = resource.scopeSpans[0]!.spans + expect(spans).toHaveLength(2) + + const sessionSpan = spans.find(s => s.name === SESSION_ATTRIBUTION_SPAN_NAME)! + const commitSpan = spans.find(s => s.name === COMMIT_ATTRIBUTION_SPAN_NAME)! + expect(sessionSpan.traceId).toBe(deriveTraceId('sess-1')) + expect(commitSpan.traceId).toBe(deriveTraceId('sess-1')) + expect(sessionSpan.spanId).not.toBe(commitSpan.spanId) + + const sessionAttrs = attrMap(sessionSpan.attributes) + expect(sessionAttrs['ai.session_id']).toEqual({ stringValue: 'sess-1' }) + expect(sessionAttrs['ai.project']).toEqual({ stringValue: 'app' }) + expect(sessionAttrs['git.repo']).toEqual({ stringValue: 'github.com/acme/widget' }) + expect(sessionAttrs['git.commit_count']).toEqual({ intValue: '1' }) + expect(sessionAttrs['git.pr_links']).toEqual({ + arrayValue: { values: [{ stringValue: 'https://github.com/acme/widget/pull/3' }] }, + }) + // Session span carries the real window as its duration + expect(sessionSpan.startTimeUnixNano).toBe((BigInt(new Date('2026-01-01T10:00:00.000Z').getTime()) * 1_000_000n).toString()) + expect(sessionSpan.endTimeUnixNano).toBe((BigInt(new Date('2026-01-01T11:00:00.000Z').getTime()) * 1_000_000n).toString()) + + const commitAttrs = attrMap(commitSpan.attributes) + expect(commitAttrs['git.sha']).toEqual({ stringValue: 'a'.repeat(40) }) + expect(commitAttrs['git.in_main']).toEqual({ boolValue: true }) + expect(commitAttrs['git.was_reverted']).toEqual({ boolValue: false }) + expect(commitAttrs['git.repo']).toEqual({ stringValue: 'github.com/acme/widget' }) + }) + + it('omits git.repo when null and pr_links when empty', () => { + const items = flattenAttributionRecords([makeRecord({ repo: null, prLinks: [], commits: [] })]) + const payload = buildAttributionOtlpPayload(items) + const spans = payload.resourceSpans[0]!.scopeSpans[0]!.spans + expect(spans).toHaveLength(1) + const attrs = attrMap(spans[0]!.attributes) + expect(attrs['git.repo']).toBeUndefined() + expect(attrs['git.pr_links']).toBeUndefined() + expect(attrs['git.commit_count']).toEqual({ intValue: '0' }) + }) + + it('batches items by maxBatchSize', () => { + const items = flattenAttributionRecords([makeRecord(), makeRecord({ sessionId: 'sess-2' })]) + expect(batchAttributionItems(items, 3).map(b => b.length)).toEqual([3, 1]) + }) +}) + +// ── Send + ledger pipeline ──────────────────────────────────────────── + +type MockResponse = { status: number; body?: unknown; headers?: Record } + +function startMockOtlp(responses: MockResponse[]): Promise<{ + url: string + server: Server + requests: Array<{ auth: string | undefined; body: unknown }> +}> { + const requests: Array<{ auth: string | undefined; body: unknown }> = [] + let idx = 0 + + return new Promise(resolve => { + const server = createServer((req, res) => { + let raw = '' + req.on('data', c => { raw += c }) + req.on('end', () => { + requests.push({ auth: req.headers.authorization, body: JSON.parse(raw || '{}') }) + const r = responses[Math.min(idx, responses.length - 1)]! + idx++ + res.writeHead(r.status, { 'Content-Type': 'application/json', ...r.headers }) + res.end(r.body !== undefined ? JSON.stringify(r.body) : '{}') + }) + }) + server.listen(0, '127.0.0.1', () => { + const addr = server.address() as { port: number } + resolve({ url: `http://127.0.0.1:${addr.port}/v1/traces`, server, requests }) + }) + }) +} + +let tmpDir: string +const originalHome = process.env.HOME +const originalXdgCache = process.env.XDG_CACHE_HOME + +beforeEach(async () => { + tmpDir = await mkdtemp(join(tmpdir(), 'codeburn-attr-push-')) + process.env.HOME = tmpDir + process.env.XDG_CACHE_HOME = join(tmpDir, '.cache') +}) + +afterEach(async () => { + process.env.HOME = originalHome + if (originalXdgCache === undefined) delete process.env.XDG_CACHE_HOME + else process.env.XDG_CACHE_HOME = originalXdgCache + await rm(tmpDir, { recursive: true, force: true }) +}) + +describe('sendAttributionBatches + collectUnsentAttribution', () => { + it('sends attribution spans, ledgers dedup keys, and filters them on the next collect', async () => { + const { sendAttributionBatches, collectUnsentAttribution } = await import('../src/sync/push.js') + const { readLedger } = await import('../src/sync/ledger.js') + + const record = makeRecord() + const first = collectUnsentAttribution([record]) + expect(first.unsent).toHaveLength(2) + + const mock = await startMockOtlp([{ status: 200 }]) + try { + const result = await sendAttributionBatches({ + endpoint: mock.url, + accessToken: 'token-1', + batches: [first.unsent], + }) + + expect(result.outcome).toBe('complete') + expect(result.totalSent).toBe(2) + expect(result.totalCostSent).toBe(0) + expect(mock.requests).toHaveLength(1) + expect(mock.requests[0]!.auth).toBe('Bearer token-1') + + const body = mock.requests[0]!.body as { resourceSpans: Array<{ scopeSpans: Array<{ spans: Array<{ name: string }> }> }> } + const names = body.resourceSpans[0]!.scopeSpans[0]!.spans.map(s => s.name).sort() + expect(names).toEqual([COMMIT_ATTRIBUTION_SPAN_NAME, SESSION_ATTRIBUTION_SPAN_NAME]) + + const ledgered = readLedger().map(e => e.key).sort() + expect(ledgered).toEqual(first.unsent.map(i => i.dedupKey).sort()) + + // Identical state on the next push: nothing unsent + expect(collectUnsentAttribution([record]).unsent).toEqual([]) + + // State transition (commit reverted): the changed facts re-send + const mutated = makeRecord({ + commits: [{ sha: 'a'.repeat(40), timestamp: '2026-01-01T10:30:00.000Z', inMain: true, wasReverted: true }], + }) + const after = collectUnsentAttribution([mutated]) + expect(after.unsent.map(i => i.kind).sort()).toEqual(['commit', 'session']) + } finally { + mock.server.close() + } + }) + + it('does not ledger on server error', async () => { + const { sendAttributionBatches } = await import('../src/sync/push.js') + const { readLedger } = await import('../src/sync/ledger.js') + + const items = flattenAttributionRecords([makeRecord()]) + const mock = await startMockOtlp([{ status: 500 }]) + try { + const result = await sendAttributionBatches({ + endpoint: mock.url, + accessToken: 'token-1', + batches: [items], + }) + expect(result.outcome).toBe('server-error') + expect(readLedger()).toEqual([]) + } finally { + mock.server.close() + } + }) +}) From ccee28ae822092169a73197ebbec4a53e4571b79 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Tue, 28 Jul 2026 14:47:24 +0000 Subject: [PATCH 18/21] =?UTF-8?q?fix(sync):=20address=20attribution=20revi?= =?UTF-8?q?ew=20=E2=80=94=20cwd-fallback=20egress,=20Windows=20paths,=20PR?= =?UTF-8?q?-link=20validation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Review findings on the --attribution PR: - Privacy: sessions whose project path no longer resolves inherited the cwd-fallback repo identity, egressing whatever (possibly confidential) repo the user pushes from and falsely attributing its commits. buildRepoGroups now tracks per-session identity provenance; the attribution path excludes fallback sessions from commit attribution entirely (no repo, no commits, PR links only) — they also can no longer steal a commit from a genuine session's window. - Privacy: Windows drive-letter paths (C:/..., C:\..., drive-relative) parsed as scp-like remotes, emitting local filesystem paths as repo identities. normalizeRemoteUrl rejects drive letters and single-character hosts (dotless intranet hosts still accepted). - Hardening: PR links are shape-checked before sending (https, /org/repo/pull/N path, <=256 chars, max 20 per session) — upstream parsers only truthiness-check them. - Safety valve: MAX_ATTRIBUTION_PER_PUSH (10k) caps a first --since all --attribution push; dry-run reports the cap. - Tests: adversarial normalize corpus, cwd-fallback egress repro, commit-stealing prevention, PR-link sanitization, and CLI-level tests (mock IdP + collector): dry-run sends nothing to the traces endpoint, flag-off emits no attribution span names on the wire. - Docs: reconciled the 'never sent' wording with reality (PR links ride even when repo is null; device_id/methodology/timestamps disclosed). CHANGELOG Unreleased entry added. AI-Origin: human --- CHANGELOG.md | 1 + docs/sync/README.md | 6 +- src/sync/cli.ts | 19 +++- src/sync/push.ts | 7 ++ src/yield.ts | 77 ++++++++++++-- tests/fixtures/mock-idp.ts | 17 ++++ tests/sync-attribution-cli.test.ts | 157 +++++++++++++++++++++++++++++ tests/sync-attribution.test.ts | 131 ++++++++++++++++++++++++ 8 files changed, 403 insertions(+), 12 deletions(-) create mode 100644 tests/sync-attribution-cli.test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ed3882..d846966 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Added (CLI) - **Codex throughput tracking**: per-model Tok/s in the dashboard and report, active time excludes tool wait. (#805, thanks @ihearttokyo) +- `codeburn sync push --attribution` (opt-in): sends git attribution spans — the session→commit correlation from `codeburn yield` (`codeburn.session.attribution` and `codeburn.commit` span types with normalized repo remote, commit SHAs, merged/reverted state, and PR links). Nothing new is sent without the flag; local-only repos and Windows filesystem paths are never emitted as repo identities, and sessions whose project path no longer resolves never inherit the push-time working directory's repo. See docs/sync/README.md "Git attribution". ### Fixed (CLI) - **`--project` / `--exclude` now apply to the headline totals, not just the detail panels.** The durable headline unions the carry-forward daily cache with today's live parse, and the cached days were sliced to the requested provider but never to the requested project — so the Overview panel counted excluded projects while By Project / By Activity / By Model (built from the name-filtered parse) left them out, and the two could not be reconciled. Cost, calls, sessions and savings are now sliced out of the per-project day stats the cache has carried since v15. Tokens, models and categories have no per-project split in the cache, so under a project filter they come from the (project-filtered) live parse instead; cached days — or provider slices — carried from before v15 have no project split at all, so they cannot be attributed to a filtered project, and the terminal overview now states how much was set aside rather than folding it into the total. (#864) diff --git a/docs/sync/README.md b/docs/sync/README.md index 6ab7da1..84558dd 100644 --- a/docs/sync/README.md +++ b/docs/sync/README.md @@ -122,7 +122,11 @@ A pseudonymous `device_id` distinguishes your machines without revealing hostnam Attribution is **inferred** (timestamp-window correlation, the same heuristic as `codeburn yield`); the resource attribute `codeburn.attribution_methodology: timestamp-window` marks it as such. State transitions (a commit merging to main, or being reverted) are re-sent automatically on later pushes — receivers should upsert by `(git.repo, git.sha)`. -With `--attribution`, normalized repo remote URLs, commit SHAs, commit timestamps, and PR URLs leave your machine. Commits in repos with no network remote are never sent (there is nothing to join them to). Without the flag, none of this is sent. +With `--attribution`, normalized repo remote URLs, commit SHAs, commit timestamps (span start times), PR URLs, and the merged/reverted booleans leave your machine — plus the same pseudonymous `codeburn.device_id` resource attribute the usage spans carry. PR links are shape-checked client-side (https, `/org/repo/pull/N` path, bounded length, max 20 per session) before sending. Precisely what is and is not sent: + +- **Commits**: only from repos with a network `origin` remote, and only for sessions whose own project path resolved to that repo. Local-only repos, `file://` remotes, and Windows filesystem paths are never emitted as repo identities. A session whose project path no longer resolves never inherits the repo of the directory you happen to push from. +- **PR links**: sent whenever a session captured them, even when the session's repo could not be identified — the PR URL itself names the repo, so this adds no information beyond the link the session already recorded. +- Without the flag, none of this is sent. ### What is NOT sent diff --git a/src/sync/cli.ts b/src/sync/cli.ts index 89ab4de..a48561c 100644 --- a/src/sync/cli.ts +++ b/src/sync/cli.ts @@ -22,7 +22,7 @@ import { } from './auth.js' import { createCredentialStore } from './credentials.js' import { readSyncConfig, writeSyncConfig, deleteSyncConfig, updateLastSync } from './config.js' -import { collectUnsentCalls, collectUnsentAttribution, sendBatches, sendAttributionBatches, batchCalls, MAX_PER_PUSH, type PushResult } from './push.js' +import { collectUnsentCalls, collectUnsentAttribution, sendBatches, sendAttributionBatches, batchCalls, MAX_PER_PUSH, MAX_ATTRIBUTION_PER_PUSH, type PushResult } from './push.js' import { batchAttributionItems } from './otlp.js' export function registerSyncCommands(program: Command): void { @@ -300,9 +300,13 @@ export function registerSyncCommands(program: Command): void { process.stderr.write(`[dry-run] ${unsent.length - MAX_PER_PUSH} more calls exceed the ${MAX_PER_PUSH} safety limit — a second push would be needed\n`) } if (opts.attribution) { - const commits = attributionUnsent.filter(i => i.kind === 'commit').length - const sessions = attributionUnsent.filter(i => i.kind === 'session').length - process.stderr.write(`[dry-run] Attribution: ${attributionTotal} facts total, would push ${attributionUnsent.length} (${sessions} sessions, ${commits} commits)\n`) + const toPushAttr = attributionUnsent.slice(0, MAX_ATTRIBUTION_PER_PUSH) + const commits = toPushAttr.filter(i => i.kind === 'commit').length + const sessions = toPushAttr.filter(i => i.kind === 'session').length + process.stderr.write(`[dry-run] Attribution: ${attributionTotal} facts total, would push ${toPushAttr.length} (${sessions} sessions, ${commits} commits)\n`) + if (attributionUnsent.length > MAX_ATTRIBUTION_PER_PUSH) { + process.stderr.write(`[dry-run] ${attributionUnsent.length - MAX_ATTRIBUTION_PER_PUSH} more attribution facts exceed the ${MAX_ATTRIBUTION_PER_PUSH} safety limit — a second push would be needed\n`) + } } return } @@ -351,7 +355,12 @@ export function registerSyncCommands(program: Command): void { let attrResult: PushResult | null = null if (opts.attribution && attributionUnsent.length > 0) { if (result.outcome === 'complete') { - const attrBatches = batchAttributionItems(attributionUnsent, discoveryDoc.max_batch_size) + // Safety valve, mirroring the usage-call cap + const attrToPush = attributionUnsent.slice(0, MAX_ATTRIBUTION_PER_PUSH) + if (attributionUnsent.length > MAX_ATTRIBUTION_PER_PUSH) { + process.stderr.write(`${attributionUnsent.length} attribution facts exceed the ${MAX_ATTRIBUTION_PER_PUSH} safety limit. Pushing first ${MAX_ATTRIBUTION_PER_PUSH}; run again to continue.\n`) + } + const attrBatches = batchAttributionItems(attrToPush, discoveryDoc.max_batch_size) attrResult = await sendAttributionBatches({ endpoint, accessToken: tokens.access_token, diff --git a/src/sync/push.ts b/src/sync/push.ts index 36c2253..a0ffc01 100644 --- a/src/sync/push.ts +++ b/src/sync/push.ts @@ -197,6 +197,13 @@ async function sendBatchesCore(opts: SendBatchesCoreOptions): Promise 256) continue + let url: URL + try { + url = new URL(link) + } catch { + continue + } + if (url.protocol !== 'https:') continue + if (!/^\/[^/]+\/[^/]+\/pull\/\d+$/.test(url.pathname)) continue + valid.push(link) + } + return valid.sort().slice(0, MAX_PR_LINKS_PER_SESSION) +} + export function computeAttributionRecords( projects: ProjectSummary[], range: DateRange, @@ -577,20 +620,42 @@ export function computeAttributionRecords( for (const group of repoGroups.values()) { const remote = group.gitDir ? getRepoRemote(group.gitDir) : null - const attributions = attributeCommits(group.sessions, group.commits) + + // Privacy gate: only sessions whose identity came from their OWN project + // path participate in commit attribution. A session whose project path no + // longer resolves (deleted/renamed dir, non-repo session) inherits the + // cwd-fallback identity in buildRepoGroups — attributing it here would + // egress whatever repo the user happens to be pushing from, with commits + // that session never touched. Fallback sessions get no repo and no + // commits; they still emit a record when they carry PR links (which are + // session-native and safe). Excluding them from the competition also + // prevents a fallback window from stealing a commit that belongs to a + // genuine session. + const ownSessions = group.sessions.filter((_, i) => group.ownIdentity[i]) + const attributions = attributeCommits(ownSessions, group.commits) + // Keyed by object reference: session objects are unique per group entry, + // whereas sessionId strings could collide across projects. + const attributionBySession = new Map() + for (const [i, session] of ownSessions.entries()) { + attributionBySession.set(session, attributions[i]?.commits ?? []) + } for (const [index, session] of group.sessions.entries()) { if (!session.firstTimestamp) continue - const attributedCommits = remote ? (attributions[index]?.commits ?? []) : [] - const prLinks = session.prLinks ?? [] + const isOwn = group.ownIdentity[index] === true + const sessionRemote = isOwn ? remote : null + const attributedCommits = sessionRemote + ? (attributionBySession.get(session) ?? []) + : [] + const prLinks = sanitizePrLinks(session.prLinks ?? []) if (attributedCommits.length === 0 && prLinks.length === 0) continue records.push({ sessionId: session.sessionId, project: group.projectNames[index] ?? session.project, - repo: remote, - prLinks: [...prLinks].sort(), + repo: sessionRemote, + prLinks, commits: attributedCommits.map(c => ({ sha: c.sha, timestamp: c.timestamp.toISOString(), diff --git a/tests/fixtures/mock-idp.ts b/tests/fixtures/mock-idp.ts index e873b6b..d70b9f5 100644 --- a/tests/fixtures/mock-idp.ts +++ b/tests/fixtures/mock-idp.ts @@ -34,6 +34,8 @@ export interface MockIdp { revokedTokens: string[] /** Authorization codes that have been exchanged */ exchangedCodes: string[] + /** OTLP trace batches received at POST /v1/traces */ + tracesRequests: Array<{ auth: string | undefined; body: unknown }> } export async function startMockIdp(opts: MockIdpOptions = {}): Promise { @@ -52,6 +54,7 @@ export async function startMockIdp(opts: MockIdpOptions = {}): Promise issuedTokens: { access: [], refresh: [] }, revokedTokens: [], exchangedCodes: [], + tracesRequests: [], close: async () => {}, } @@ -59,6 +62,20 @@ export async function startMockIdp(opts: MockIdpOptions = {}): Promise const url = new URL(req.url ?? '/', `http://127.0.0.1:${state.port}`) const path = url.pathname + // --- OTLP traces collector (records batches for push tests) --- + if (path === '/v1/traces' && req.method === 'POST') { + let body = '' + req.on('data', chunk => { body += chunk }) + req.on('end', () => { + let parsed: unknown = null + try { parsed = JSON.parse(body || '{}') } catch { /* keep null */ } + state.tracesRequests.push({ auth: req.headers.authorization, body: parsed }) + res.writeHead(200, { 'Content-Type': 'application/json' }) + res.end('{}') + }) + return + } + // --- Discovery doc --- if (path === '/.well-known/codeburn-export.json') { res.writeHead(200, { 'Content-Type': 'application/json' }) diff --git a/tests/sync-attribution-cli.test.ts b/tests/sync-attribution-cli.test.ts new file mode 100644 index 0000000..295350f --- /dev/null +++ b/tests/sync-attribution-cli.test.ts @@ -0,0 +1,157 @@ +/** + * CLI-level tests for `codeburn sync push --attribution`. + * + * Drives the real commander action against a mock IdP + collector: + * - --dry-run --attribution: NO telemetry reaches the traces endpoint + * - push WITHOUT the flag: no attribution span names on the wire + * - push WITH the flag: attribution spans arrive alongside usage spans + */ + +import { execFileSync } from 'node:child_process' +import { mkdtemp, rm, writeFile } from 'node:fs/promises' +import { tmpdir } from 'node:os' +import { join } from 'node:path' + +import { describe, it, expect, beforeAll, afterAll, beforeEach, afterEach, vi } from 'vitest' +import { Command } from 'commander' + +import { startMockIdp, type MockIdp } from './fixtures/mock-idp.js' +import type { ProjectSummary, SessionSummary, ParsedApiCall, TokenUsage } from '../src/types.js' + +const { parseAllSessionsMock } = vi.hoisted(() => ({ parseAllSessionsMock: vi.fn() })) +vi.mock('../src/parser.js', () => ({ parseAllSessions: parseAllSessionsMock })) + +function git(cwd: string, args: string[], env: Record = {}): string { + return execFileSync('git', args, { cwd, encoding: 'utf-8', env: { ...process.env, ...env } }).trim() +} + +function makeUsage(): TokenUsage { + return { inputTokens: 10, outputTokens: 5, cacheCreationInputTokens: 0, cacheReadInputTokens: 0, cachedInputTokens: 0, reasoningTokens: 0, webSearchRequests: 0 } +} + +function makeCall(key: string, ts: string): ParsedApiCall { + return { + provider: 'test', model: 'test-model', usage: makeUsage(), costUSD: 0.01, + tools: [], mcpTools: [], skills: [], subagentTypes: [], hasAgentSpawn: false, + hasPlanMode: false, speed: 'standard', timestamp: ts, bashCommands: [], + deduplicationKey: key, + } +} + +function makeSession(id: string, first: string, last: string, calls: ParsedApiCall[]): SessionSummary { + return { + sessionId: id, project: 'app', firstTimestamp: first, lastTimestamp: last, + totalCostUSD: 0.01, totalSavingsUSD: 0, totalInputTokens: 10, totalOutputTokens: 5, + totalReasoningTokens: 0, totalCacheReadTokens: 0, totalCacheWriteTokens: 0, + apiCalls: calls.length, + turns: [{ userMessage: 'x', assistantCalls: calls, timestamp: first, sessionId: id, category: 'coding', retries: 0, hasEdits: false }], + modelBreakdown: {}, toolBreakdown: {}, mcpBreakdown: {}, bashBreakdown: {}, + categoryBreakdown: {} as SessionSummary['categoryBreakdown'], skillBreakdown: {}, subagentBreakdown: {}, + } +} + +let idp: MockIdp +let tmpHome: string +let repoDir: string +const originalHome = process.env.HOME +const originalXdg = process.env.XDG_CACHE_HOME +const originalStore = process.env.CODEBURN_SYNC_TOKEN_STORE + +async function runPush(args: string[]): Promise { + const { registerSyncCommands } = await import('../src/sync/cli.js') + const program = new Command() + program.exitOverride() // throw instead of process.exit on commander errors + registerSyncCommands(program) + await program.parseAsync(['node', 'codeburn', 'sync', 'push', ...args]) +} + +beforeAll(async () => { + idp = await startMockIdp({ rotateTokens: false }) + process.env.CODEBURN_SYNC_TOKEN_STORE = 'file' + + // Real git repo with a remote — a recent commit inside the session window + repoDir = await mkdtemp(join(tmpdir(), 'codeburn-attr-cli-repo-')) + git(repoDir, ['init', '-b', 'main']) + git(repoDir, ['config', 'user.email', 't@e.com']) + git(repoDir, ['config', 'user.name', 'T']) + git(repoDir, ['remote', 'add', 'origin', 'git@github.com:acme/cli-widget.git']) + await writeFile(join(repoDir, 'f.txt'), 'x\n') + const commitIso = new Date(Date.now() - 60 * 60 * 1000).toISOString() + git(repoDir, ['add', '.']) + git(repoDir, ['commit', '-m', 'feat: recent'], { GIT_AUTHOR_DATE: commitIso, GIT_COMMITTER_DATE: commitIso }) +}) + +afterAll(async () => { + await idp.close() + await rm(repoDir, { recursive: true, force: true }) + if (originalStore === undefined) delete process.env.CODEBURN_SYNC_TOKEN_STORE + else process.env.CODEBURN_SYNC_TOKEN_STORE = originalStore +}) + +beforeEach(async () => { + tmpHome = await mkdtemp(join(tmpdir(), 'codeburn-attr-cli-')) + process.env.HOME = tmpHome + process.env.XDG_CACHE_HOME = join(tmpHome, '.cache') + idp.tracesRequests.length = 0 + + // Configure sync against the mock IdP + store the refresh token + const { writeSyncConfig } = await import('../src/sync/config.js') + const { createCredentialStore } = await import('../src/sync/credentials.js') + writeSyncConfig({ baseUrl: idp.baseUrl, clientId: 'mock-client-id', tracesPath: '/v1/traces', issuer: idp.baseUrl }) + createCredentialStore().store('mock-refresh-token-v1') + + // One session in the last hour, working in the real repo + const now = Date.now() + const first = new Date(now - 90 * 60 * 1000).toISOString() + const last = new Date(now - 30 * 60 * 1000).toISOString() + const session = makeSession('cli-sess-1', first, last, [makeCall(`call-${now}`, first)]) + parseAllSessionsMock.mockResolvedValue([ + { project: 'app', projectPath: repoDir, sessions: [session] } as ProjectSummary, + ]) + + // The push action reads process.cwd() for the attribution cwd — run from + // a neutral non-repo dir so nothing can come from a cwd fallback. + vi.spyOn(process, 'cwd').mockReturnValue(tmpHome) +}) + +afterEach(async () => { + vi.restoreAllMocks() + process.exitCode = 0 + process.env.HOME = originalHome + if (originalXdg === undefined) delete process.env.XDG_CACHE_HOME + else process.env.XDG_CACHE_HOME = originalXdg + await rm(tmpHome, { recursive: true, force: true }) +}) + +const spanNames = (): string[] => + idp.tracesRequests.flatMap(r => { + const body = r.body as { resourceSpans?: Array<{ scopeSpans: Array<{ spans: Array<{ name: string }> }> }> } + return (body.resourceSpans ?? []).flatMap(rs => rs.scopeSpans.flatMap(ss => ss.spans.map(s => s.name))) + }) + +describe('sync push --attribution (CLI level)', () => { + it('--dry-run --attribution sends nothing to the traces endpoint', async () => { + await runPush(['--dry-run', '--attribution']) + expect(idp.tracesRequests).toHaveLength(0) + }) + + it('push WITHOUT --attribution never emits attribution span names', async () => { + await runPush([]) + expect(idp.tracesRequests.length).toBeGreaterThan(0) + const names = spanNames() + expect(names.length).toBeGreaterThan(0) + expect(names).not.toContain('codeburn.session.attribution') + expect(names).not.toContain('codeburn.commit') + expect(JSON.stringify(idp.tracesRequests)).not.toContain('git.sha') + }) + + it('push WITH --attribution emits usage + attribution spans', async () => { + await runPush(['--attribution']) + const names = spanNames() + expect(names).toContain('test/test-model') // usage span + expect(names).toContain('codeburn.session.attribution') // session span + expect(names).toContain('codeburn.commit') // commit span + const wire = JSON.stringify(idp.tracesRequests) + expect(wire).toContain('github.com/acme/cli-widget') + }) +}) diff --git a/tests/sync-attribution.test.ts b/tests/sync-attribution.test.ts index 8f5021b..4012b4c 100644 --- a/tests/sync-attribution.test.ts +++ b/tests/sync-attribution.test.ts @@ -18,6 +18,8 @@ import type { ProjectSummary, SessionSummary } from '../src/types.js' import { normalizeRemoteUrl, computeAttributionRecords, + sanitizePrLinks, + MAX_PR_LINKS_PER_SESSION, type SessionAttributionRecord, } from '../src/yield.js' import { @@ -112,6 +114,25 @@ describe('normalizeRemoteUrl', () => { expect(normalizeRemoteUrl('../relative/repo')).toBeNull() expect(normalizeRemoteUrl('')).toBeNull() }) + + it('rejects Windows drive-letter paths (never a remote identity)', () => { + expect(normalizeRemoteUrl('C:/Users/alice/private/repo')).toBeNull() + expect(normalizeRemoteUrl('C:\\Users\\alice\\private\\repo')).toBeNull() + expect(normalizeRemoteUrl('c:/repo')).toBeNull() + expect(normalizeRemoteUrl('Z:\\work\\nda-client-repo')).toBeNull() + // Drive-relative (no slash after colon) — single-char host rejection + expect(normalizeRemoteUrl('C:repo')).toBeNull() + expect(normalizeRemoteUrl('c:relative\\path')).toBeNull() + }) + + it('rejects other adversarial forms without over-rejecting real remotes', () => { + // Single-character "host" is never a real remote host + expect(normalizeRemoteUrl('a:path/to/repo')).toBeNull() + expect(normalizeRemoteUrl('git@C:/foo')).toBeNull() + // Dotless intranet hosts remain valid (2+ chars) + expect(normalizeRemoteUrl('gitserver:team/repo.git')).toBe('gitserver/team/repo') + expect(normalizeRemoteUrl('git@gitbox:org/repo.git')).toBe('gitbox/org/repo') + }) }) // ── computeAttributionRecords ───────────────────────────────────────── @@ -204,6 +225,87 @@ describe('computeAttributionRecords', () => { } }) + it('never egresses the cwd repo for sessions whose project path did not resolve (fallback)', async () => { + // The reviewer's repro: push from inside a private repo while a session's + // project path no longer resolves. The fallback identity must NOT leak + // the cwd repo's remote or commits into that session's attribution. + const cwdRepo = await mkdtemp(join(tmpdir(), 'codeburn-attr-privatecwd-')) + try { + initRepo(cwdRepo) + git(cwdRepo, ['remote', 'add', 'origin', 'git@github.com:secret-org/nda-client-repo.git']) + await writeFile(join(cwdRepo, 'file.txt'), 'confidential\n') + commitAt(cwdRepo, 'feat: private work', '2026-01-01T10:30:00Z') + + // Session A: project path is gone (deleted dir) — falls back to cwd + const orphanNoPr = makeSession({ sessionId: 'orphan-nopr', ...{ firstTimestamp: '2026-01-01T10:15:00.000Z', lastTimestamp: '2026-01-01T10:45:00.000Z' } }) + // Session B: also fallback, but carries a PR link (session-native, safe) + const orphanWithPr = makeSession({ + sessionId: 'orphan-pr', + prLinks: ['https://github.com/acme/widget/pull/9'], + firstTimestamp: '2026-01-01T12:00:00.000Z', + lastTimestamp: '2026-01-01T12:30:00.000Z', + }) + // Session C: genuinely belongs to the cwd repo (own path resolves) + const genuine = makeSession({ sessionId: 'genuine-cwd', firstTimestamp: '2026-01-01T10:00:00.000Z', lastTimestamp: '2026-01-01T11:00:00.000Z' }) + + const projects = [ + { project: 'ghost', projectPath: join(cwdRepo, 'no-such-dir-anymore-xyz'), sessions: [orphanNoPr] }, + { project: 'ghost2', projectPath: '', sessions: [orphanWithPr] }, + { project: 'real', projectPath: cwdRepo, sessions: [genuine] }, + ] as ProjectSummary[] + + const records = computeAttributionRecords(projects, range, cwdRepo) + + // orphan-nopr: nothing joinable -> no record at all + expect(records.find(r => r.sessionId === 'orphan-nopr')).toBeUndefined() + // orphan-pr: PR link only — no repo, no commits + const pr = records.find(r => r.sessionId === 'orphan-pr')! + expect(pr.repo).toBeNull() + expect(pr.commits).toEqual([]) + // genuine cwd session keeps full attribution + const own = records.find(r => r.sessionId === 'genuine-cwd')! + expect(own.repo).toBe('github.com/secret-org/nda-client-repo') + expect(own.commits).toHaveLength(1) + // The private repo identity appears ONLY on the genuine record + const leaked = records.filter(r => r.sessionId !== 'genuine-cwd' && JSON.stringify(r).includes('secret-org')) + expect(leaked).toEqual([]) + } finally { + await rm(cwdRepo, { recursive: true, force: true }) + } + }) + + it('fallback sessions cannot steal a commit from a genuine session', async () => { + const cwdRepo = await mkdtemp(join(tmpdir(), 'codeburn-attr-steal-')) + try { + initRepo(cwdRepo) + git(cwdRepo, ['remote', 'add', 'origin', 'git@github.com:acme/widget.git']) + await writeFile(join(cwdRepo, 'file.txt'), 'x\n') + commitAt(cwdRepo, 'feat: mine', '2026-01-01T10:30:00Z') + + // Fallback session has the TIGHTER window (would win under old logic); + // genuine session has the broader window. + const fallbackTight = makeSession({ + sessionId: 'fallback-tight', + prLinks: ['https://github.com/acme/widget/pull/2'], + firstTimestamp: '2026-01-01T10:25:00.000Z', + lastTimestamp: '2026-01-01T10:35:00.000Z', + }) + const genuineBroad = makeSession({ sessionId: 'genuine-broad' }) + + const projects = [ + { project: 'ghost', projectPath: '', sessions: [fallbackTight] }, + { project: 'real', projectPath: cwdRepo, sessions: [genuineBroad] }, + ] as ProjectSummary[] + + const records = computeAttributionRecords(projects, range, cwdRepo) + + expect(records.find(r => r.sessionId === 'fallback-tight')!.commits).toEqual([]) + expect(records.find(r => r.sessionId === 'genuine-broad')!.commits).toHaveLength(1) + } finally { + await rm(cwdRepo, { recursive: true, force: true }) + } + }) + it('awards each commit to a single session (tightest window)', async () => { const repoDir = await mkdtemp(join(tmpdir(), 'codeburn-attr-overlap-')) try { @@ -282,6 +384,35 @@ describe('attribution dedup keys', () => { }) }) +// ── PR link sanitization ────────────────────────────────────────────── + +describe('sanitizePrLinks', () => { + it('keeps only https URLs shaped like org/repo/pull/N', () => { + expect(sanitizePrLinks([ + 'https://github.com/acme/widget/pull/12', + 'https://ghe.corp.example.com/team/svc/pull/3', // GHE hosts allowed + 'http://github.com/acme/widget/pull/12', // not https + 'javascript:alert(1)', // not a URL shape we accept + 'https://github.com/acme/widget/issues/12', // not a PR path + 'https://github.com/acme/widget/pull/12/files', // extra path segment + 'not a url at all', + '', + 'https://github.com/acme/widget/pull/notanumber', + ])).toEqual([ + 'https://ghe.corp.example.com/team/svc/pull/3', + 'https://github.com/acme/widget/pull/12', + ]) + }) + + it('drops oversized strings and caps the count per session', () => { + const huge = `https://github.com/acme/widget/pull/1?x=${'a'.repeat(300)}` + expect(sanitizePrLinks([huge])).toEqual([]) + + const many = Array.from({ length: 30 }, (_, i) => `https://github.com/acme/widget/pull/${i + 1}`) + expect(sanitizePrLinks(many)).toHaveLength(MAX_PR_LINKS_PER_SESSION) + }) +}) + // ── OTLP payload ────────────────────────────────────────────────────── function attrMap(attributes: OtlpAttribute[]): Record { From 50c8251719cde47fcf718c7a99bfa70d6b9b65b1 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Sun, 2 Aug 2026 12:56:59 +0000 Subject: [PATCH 19/21] fix(sync): close credential-leak paths; session retraction; span/key/CLI hardening MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Review rounds 2-3 + self-review on --attribution: Credential egress (round 2): - normalizeRemoteUrl: scp userinfo expressed as an optional regex group let backtracking re-parse a credential prefix as host:path (x-access-token:ghp_...@host/repo -> token in git.repo). Userinfo is now split off at the first @ BEFORE any host matching. - Positive validation (allow-list) as the final gate on EVERY branch: host must be hostname-shaped, every path segment repo-shaped, total identity <= 200 chars. Kills transport-helper remotes (ext:: leaks local SSH key paths, codecommit:: leaks AWS profile names), residual @, spaces/colons, and unbounded strings. - sanitizePrLinks: links are rebuilt from origin + pathname — userinfo, query strings, and fragments are dropped instead of passed through; collapsed duplicates dedupe. Attribution correctness (round 3 + self-review): - Double-count fix with precise retraction semantics: when a commit migrates to a later-parsed tighter-window session, the loser re-emits git.commit_count=0. Empty records are emitted ONLY on a true loss in THIS computation (lostCandidacy) — a commit that merely aged out of the --since range was lost to nobody, and retracting it would permanently zero a still-correct server-side count. The sync layer additionally requires a prior ledgered state for the session. - Session dedup key includes project + both window timestamps, so ongoing sessions re-emit with corrected span times. - Span end times clamped like the usage builder (never 0, never earlier than start + 1ms). - CLI mirrors the usage path on attribution push failures instead of claiming success. - Identity normalization: case-insensitive .git strip, doubled path slashes collapse. AI-Origin: human --- docs/sync/README.md | 4 +- src/sync/cli.ts | 11 +- src/sync/otlp.ts | 25 ++++- src/sync/push.ts | 18 +++- src/yield.ts | 115 +++++++++++++++------ tests/sync-attribution.test.ts | 180 +++++++++++++++++++++++++++++++-- 6 files changed, 305 insertions(+), 48 deletions(-) diff --git a/docs/sync/README.md b/docs/sync/README.md index 84558dd..64540b8 100644 --- a/docs/sync/README.md +++ b/docs/sync/README.md @@ -120,9 +120,9 @@ A pseudonymous `device_id` distinguishes your machines without revealing hostnam | `git.in_main` | `true` | Whether the commit landed in the main branch | | `git.was_reverted` | `false` | Whether a later commit reverted it | -Attribution is **inferred** (timestamp-window correlation, the same heuristic as `codeburn yield`); the resource attribute `codeburn.attribution_methodology: timestamp-window` marks it as such. State transitions (a commit merging to main, or being reverted) are re-sent automatically on later pushes — receivers should upsert by `(git.repo, git.sha)`. +Attribution is **inferred** (timestamp-window correlation, the same heuristic as `codeburn yield`); the resource attribute `codeburn.attribution_methodology: timestamp-window` marks it as such. State transitions (a commit merging to main, or being reverted) are re-sent automatically on later pushes — receivers should upsert commits by `(git.repo, git.sha)` and session spans by `ai.session_id` (latest state wins). When a commit migrates to a later-parsed session with a tighter window, the losing session re-emits with `git.commit_count: 0` (a retraction), so summing `git.commit_count` across upserted session rows never double-counts. Retractions fire only when the commit was won by another session — commits that merely age out of the `--since` window are not retracted, so a previously-synced count stays correct. Session spans also re-emit when an ongoing session's window grows, keeping the span end time current. -With `--attribution`, normalized repo remote URLs, commit SHAs, commit timestamps (span start times), PR URLs, and the merged/reverted booleans leave your machine — plus the same pseudonymous `codeburn.device_id` resource attribute the usage spans carry. PR links are shape-checked client-side (https, `/org/repo/pull/N` path, bounded length, max 20 per session) before sending. Precisely what is and is not sent: +With `--attribution`, normalized repo remote URLs, commit SHAs, commit timestamps (span start times), PR URLs, and the merged/reverted booleans leave your machine — plus the same pseudonymous `codeburn.device_id` resource attribute the usage spans carry. PR links are rebuilt client-side from scheme + host + path only (userinfo, query strings, and fragments are dropped; https, `/org/repo/pull/N` path, bounded length, max 20 per session), and the repo identity itself passes a strict hostname/path allow-list before sending — malformed or transport-helper remotes (`ext::…`, `codecommit::…`) are rejected outright rather than parsed. Precisely what is and is not sent: - **Commits**: only from repos with a network `origin` remote, and only for sessions whose own project path resolved to that repo. Local-only repos, `file://` remotes, and Windows filesystem paths are never emitted as repo identities. A session whose project path no longer resolves never inherits the repo of the directory you happen to push from. - **PR links**: sent whenever a session captured them, even when the session's repo could not be identified — the PR URL itself names the repo, so this adds no information beyond the link the session already recorded. diff --git a/src/sync/cli.ts b/src/sync/cli.ts index a48561c..f6f28db 100644 --- a/src/sync/cli.ts +++ b/src/sync/cli.ts @@ -371,6 +371,12 @@ export function registerSyncCommands(program: Command): void { process.stderr.write('Auth rejected by server during attribution push. Run `codeburn sync setup` to re-authenticate.\n') process.exit(1) } + if (attrResult.outcome === 'rate-limited') { + process.stderr.write(`Rate limited during attribution push — gave up after repeated retries. Remaining facts will be sent on the next push.\n`) + } + if (attrResult.outcome === 'server-error') { + process.stderr.write(`Server error (HTTP ${attrResult.httpStatus}) during attribution push. Remaining facts will be sent on the next push.\n`) + } } else { process.stderr.write(`Skipping attribution push (${attributionUnsent.length} facts) — will retry on next push.\n`) } @@ -382,7 +388,10 @@ export function registerSyncCommands(program: Command): void { // Summary process.stderr.write(`\nSynced ${result.totalSent} calls ($${result.totalCostSent.toFixed(2)}) to ${config.baseUrl}\n`) if (attrResult) { - process.stderr.write(` Attribution: ${attrResult.totalSent} facts synced${attrResult.totalRejected > 0 ? `, ${attrResult.totalRejected} rejected (will retry)` : ''}\n`) + const attrSuffix = attrResult.outcome !== 'complete' + ? ` (push incomplete — remainder retries next push)` + : attrResult.totalRejected > 0 ? `, ${attrResult.totalRejected} rejected (will retry)` : '' + process.stderr.write(` Attribution: ${attrResult.totalSent} facts synced${attrSuffix}\n`) } if (result.totalRejected > 0) { process.stderr.write(` ${result.totalRejected} spans rejected (will retry on next push)\n`) diff --git a/src/sync/otlp.ts b/src/sync/otlp.ts index d6a042e..8df36c5 100644 --- a/src/sync/otlp.ts +++ b/src/sync/otlp.ts @@ -189,7 +189,22 @@ export function sessionAttributionKey(record: SessionAttributionRecord): string const commitStates = record.commits .map(c => `${c.sha}:${c.inMain ? 1 : 0}${c.wasReverted ? 1 : 0}`) .sort() - return `attr:s:${record.sessionId}:${stateHash([record.repo ?? '', ...record.prLinks, ...commitStates])}` + // Project and both window timestamps are part of the state: an ongoing + // session whose window grew (or whose project resolution changed) re-emits + // with the corrected span times instead of freezing at first send. + return `attr:s:${record.sessionId}:${stateHash([ + record.repo ?? '', + record.project, + record.firstTimestamp, + record.lastTimestamp, + ...record.prLinks, + ...commitStates, + ])}` +} + +/** Ledger-key prefix for a session's attribution facts (any state). */ +export function sessionAttributionKeyPrefix(sessionId: string): string { + return `attr:s:${sessionId}:` } /** Flatten attribution records into ledger-able items (one session item + one per commit). */ @@ -234,9 +249,11 @@ export function buildAttributionOtlpPayload(items: AttributionItem[]): OtlpPaylo const spans: OtlpSpan[] = items.map(item => { const startNano = toUnixNano(item.timestamp) - const endNano = item.endTimestamp - ? toUnixNano(item.endTimestamp) - : (BigInt(startNano) + 1_000_000n).toString() + // Clamp like the usage builder: end is never 0 (malformed timestamp) and + // never earlier than start + 1ms (out-of-order session timestamps). + const minEndNano = BigInt(startNano) + 1_000_000n + const rawEndNano = item.endTimestamp ? BigInt(toUnixNano(item.endTimestamp)) : 0n + const endNano = (rawEndNano > minEndNano ? rawEndNano : minEndNano).toString() const attributes: OtlpAttribute[] = [ { key: 'ai.session_id', value: { stringValue: item.sessionId } }, diff --git a/src/sync/push.ts b/src/sync/push.ts index a0ffc01..7a22420 100644 --- a/src/sync/push.ts +++ b/src/sync/push.ts @@ -209,8 +209,24 @@ export function collectUnsentAttribution(records: SessionAttributionRecord[]): { allItems: AttributionItem[] unsent: AttributionItem[] } { - const allItems = flattenAttributionRecords(records) const sent = ledgerKeySet() + + // Empty records (no commits, no PR links) exist only to RETRACT a session + // span whose commits migrated to another session. Send one only when a + // PRIOR state for that session was already ledgered — a session that was + // never sent has nothing to retract. + const sessionsWithPriorState = new Set() + for (const key of sent) { + if (key.startsWith('attr:s:')) { + const sessionId = key.slice('attr:s:'.length, key.lastIndexOf(':')) + sessionsWithPriorState.add(sessionId) + } + } + const sendable = records.filter(r => + r.commits.length > 0 || r.prLinks.length > 0 || sessionsWithPriorState.has(r.sessionId), + ) + + const allItems = flattenAttributionRecords(sendable) const unsent = allItems.filter(i => !sent.has(i.dedupKey)) return { allItems, unsent } } diff --git a/src/yield.ts b/src/yield.ts index 33e435a..79239b9 100644 --- a/src/yield.ts +++ b/src/yield.ts @@ -146,6 +146,24 @@ function getMainBranch(cwd: string): string { * and a trailing `.git` / `/` is removed. Local paths and `file://` remotes * return null — a repo with no network remote has no server-side identity. */ +/** Max length of an emitted repo identity (`host/org/repo`). */ +const MAX_REPO_IDENTITY_LENGTH = 200 + +/** + * Positive validation (allow-list) of a composed repo identity — the final + * gate EVERY branch passes through before anything is returned. The host must + * look like a hostname and every path segment like a repo path segment, so no + * upstream parsing quirk (transport-helper remotes like `ext::…` or + * `codecommit::…`, credentials that survived a malformed URL, oversized + * strings) can reach the wire. Rejecting is always safe: an unrecognizable + * remote simply has no server-side identity. + */ +function isValidRepoIdentity(host: string, segments: string[]): boolean { + if (!/^[a-z0-9]([a-z0-9.-]*[a-z0-9])?$/.test(host)) return false + if (segments.length === 0) return false + return segments.every(s => /^[A-Za-z0-9._~-]+$/.test(s)) +} + export function normalizeRemoteUrl(url: string): string | null { const trimmed = url.trim() if (!trimmed) return null @@ -159,12 +177,6 @@ export function normalizeRemoteUrl(url: string): string | null { let host: string let path: string - // scp-like syntax: [user@]host:path. Host must be at least 2 chars — a - // single-character "host" is a Windows drive-relative path (`C:repo`), - // never a real remote host. `@` is excluded from the host class so a - // rejected single-char host can't backtrack into `user@C` matching as - // host "user@C". - const scpLike = /^(?:[^@/]+@)?([^:/\\@]{2,}):(?!\/\/)(.+)$/.exec(trimmed) if (/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(trimmed)) { let parsed: URL try { @@ -176,22 +188,34 @@ export function normalizeRemoteUrl(url: string): string | null { if (!parsed.hostname) return null host = parsed.hostname path = parsed.pathname - } else if (scpLike) { - // scp-like syntax: [user@]host:path — not parseable by URL + } else { + // scp-like syntax: [user@]host:path. Credentials (userinfo) are split off + // at the FIRST `@` BEFORE any host matching — expressing userinfo as an + // optional regex group lets backtracking abandon the group and re-parse a + // credential prefix as `host:path`, dumping the token into the path + // (e.g. `x-access-token:ghp_…@github.com/org/repo`). Host must be at + // least 2 chars: a single-character "host" is a Windows drive-relative + // path (`C:repo`), never a real remote host. + const at = trimmed.indexOf('@') + const rest = at >= 0 ? trimmed.slice(at + 1) : trimmed + const scpLike = /^([^:/\\]{2,}):(?!\/\/)(.+)$/.exec(rest) + if (!scpLike) return null host = scpLike[1] path = scpLike[2] - } else { - // Bare local path (or something unrecognizable) — no remote identity. - return null } const cleanPath = path + .replace(/\/+/g, '/') // collapse doubled slashes → one join key, not two .replace(/^\/+/, '') .replace(/\/+$/, '') - .replace(/\.git$/, '') + .replace(/\.git$/i, '') // case-insensitive: Repo.GIT joins with repo.git if (!cleanPath) return null - return `${host.toLowerCase()}/${cleanPath}` + const identity = `${host.toLowerCase()}/${cleanPath}` + if (identity.length > MAX_REPO_IDENTITY_LENGTH) return null + if (!isValidRepoIdentity(host.toLowerCase(), cleanPath.split('/'))) return null + + return identity } /** `git remote get-url origin`, normalized. Null when absent or local-only. */ @@ -569,21 +593,6 @@ export type SessionAttributionRecord = { lastTimestamp: string } -/** - * Compute per-session attribution records for sync. Reuses the exact yield - * repo grouping + tightest-window commit attribution (`methodology: - * timestamp-window`), then joins in each repo group's normalized origin - * remote and the session's PR links. - * - * Inclusion rules: - * - Sessions with neither attributed commits nor PR links are omitted. - * - Commits are only included when the repo has a normalized remote; a SHA - * without a repo identity has no server-side meaning. Such sessions still - * emit a record when they carry PR links (the PR URL embeds the repo). - * - * Takes already-parsed projects (sync push has them in hand) instead of - * re-parsing like computeYield does. - */ /** Max PR links retained per session attribution record. */ export const MAX_PR_LINKS_PER_SESSION = 20 @@ -592,11 +601,16 @@ export const MAX_PR_LINKS_PER_SESSION = 20 * verify truthiness, so arbitrary strings can land in `session.prLinks`. * Keep only https URLs shaped like a PR (`/org/repo/pull/N` — GitHub and * GitHub Enterprise), bounded in length, capped per session, sorted. + * + * Links are REBUILT from `origin + pathname`, never passed through verbatim: + * userinfo (`https://alice:token@…`), query strings (copy-pasted GitHub + * links routinely carry `?notification_referrer_id=…`), and fragments are + * all dropped. Rebuilt links that collapse to the same URL dedupe. */ export function sanitizePrLinks(links: string[]): string[] { - const valid: string[] = [] + const valid = new Set() for (const link of links) { - if (typeof link !== 'string' || link.length === 0 || link.length > 256) continue + if (typeof link !== 'string' || link.length === 0 || link.length > 512) continue let url: URL try { url = new URL(link) @@ -605,11 +619,34 @@ export function sanitizePrLinks(links: string[]): string[] { } if (url.protocol !== 'https:') continue if (!/^\/[^/]+\/[^/]+\/pull\/\d+$/.test(url.pathname)) continue - valid.push(link) + const rebuilt = `${url.origin}${url.pathname}` + if (rebuilt.length > 256) continue + valid.add(rebuilt) } - return valid.sort().slice(0, MAX_PR_LINKS_PER_SESSION) + return [...valid].sort().slice(0, MAX_PR_LINKS_PER_SESSION) } +/** + * Compute per-session attribution records for sync. Reuses the exact yield + * repo grouping + tightest-window commit attribution (`methodology: + * timestamp-window`), then joins in each repo group's normalized origin + * remote and the session's sanitized PR links. + * + * Inclusion rules: + * - Only sessions whose OWN project path resolved to a repo participate in + * commit attribution; cwd-fallback sessions never carry a repo or commits + * (privacy gate — see below) but still emit a record when they have PR links. + * - Commits require a normalized remote; a SHA without a repo identity has + * no server-side meaning. + * - A session with no commits and no PR links is emitted ONLY when it lost a + * commit to a tighter-window session in THIS computation (`lostCandidacy`) + * — a retraction candidate. A session that merely aged its commits out of + * the range lost them to nobody, and emitting an empty record for it would + * permanently retract a still-correct server-side count. + * + * Takes already-parsed projects (sync push has them in hand) instead of + * re-parsing like computeYield does. + */ export function computeAttributionRecords( projects: ProjectSummary[], range: DateRange, @@ -636,8 +673,10 @@ export function computeAttributionRecords( // Keyed by object reference: session objects are unique per group entry, // whereas sessionId strings could collide across projects. const attributionBySession = new Map() + const lostCandidacyBySession = new Map() for (const [i, session] of ownSessions.entries()) { attributionBySession.set(session, attributions[i]?.commits ?? []) + lostCandidacyBySession.set(session, attributions[i]?.lostCandidacy ?? false) } for (const [index, session] of group.sessions.entries()) { @@ -649,7 +688,17 @@ export function computeAttributionRecords( ? (attributionBySession.get(session) ?? []) : [] const prLinks = sanitizePrLinks(session.prLinks ?? []) - if (attributedCommits.length === 0 && prLinks.length === 0) continue + // Empty sessions are retraction candidates ONLY when they lost a commit + // to a tighter-window session in THIS run: that commit's server-side + // attribution is migrating, so the loser must re-emit commit_count=0. + // An empty session whose commits merely aged out of the --since range + // (rolling window, or a narrower window than a previous push) lost them + // to NOBODY — emitting a retraction for it would permanently zero a + // still-correct server-side count, because the original state key stays + // ledgered and is never re-sent. + const lostToTighterSession = sessionRemote !== null && + (lostCandidacyBySession.get(session) ?? false) + if (attributedCommits.length === 0 && prLinks.length === 0 && !lostToTighterSession) continue records.push({ sessionId: session.sessionId, diff --git a/tests/sync-attribution.test.ts b/tests/sync-attribution.test.ts index 4012b4c..d4b8f6c 100644 --- a/tests/sync-attribution.test.ts +++ b/tests/sync-attribution.test.ts @@ -133,6 +133,40 @@ describe('normalizeRemoteUrl', () => { expect(normalizeRemoteUrl('gitserver:team/repo.git')).toBe('gitserver/team/repo') expect(normalizeRemoteUrl('git@gitbox:org/repo.git')).toBe('gitbox/org/repo') }) + + it('never leaks credentials via scp-branch backtracking on malformed remotes', () => { + // Credential-prefixed remotes: the userinfo split happens BEFORE host + // matching, so a token can never be re-parsed as host:path. + expect(normalizeRemoteUrl('x-access-token:ghp_LIVETOKEN_abcdefghijklmnop@github.com/acme/private-repo.git')).toBeNull() + expect(normalizeRemoteUrl('oauth2:glpat-TOKEN@gitlab.com/org/repo.git')).toBeNull() + // One dropped slash: not a URL, must not fall through as host "https" + expect(normalizeRemoteUrl('https:/user:ghp_TOKEN@github.com/org/repo.git')).toBeNull() + // Multiple @: split at the first, residual @ fails the allow-list + expect(normalizeRemoteUrl('a@b@github.com:org/repo.git')).toBeNull() + expect(normalizeRemoteUrl('user@host:path@with-at')).toBeNull() + }) + + it('rejects transport-helper remotes and enforces shape + length on the identity', () => { + // git-remote-ext: embeds a local SSH key path + expect(normalizeRemoteUrl('ext::ssh -i /Users/me/.ssh/id_ed25519_work git@github.com %S /acme/private.git')).toBeNull() + expect(normalizeRemoteUrl('ext::sh -c whatever')).toBeNull() + // git-remote-codecommit: embeds an AWS profile name + expect(normalizeRemoteUrl('codecommit::us-east-1://MyAwsProfile@MyRepo')).toBeNull() + expect(normalizeRemoteUrl('codecommit::us-east-1://MyRepo')).toBeNull() + // Length bound + expect(normalizeRemoteUrl(`git@github.com:org/${'a'.repeat(300)}.git`)).toBeNull() + // Path segments must be repo-shaped (no spaces, colons, @) + expect(normalizeRemoteUrl('gitserver:has space/repo.git')).toBeNull() + // Legit multi-segment (GitLab subgroup) paths survive the allow-list + expect(normalizeRemoteUrl('https://gitlab.example.com/group/sub/repo.git')).toBe('gitlab.example.com/group/sub/repo') + }) + + it('normalizes .GIT case-insensitively and collapses doubled slashes to one join key', () => { + expect(normalizeRemoteUrl('git@github.com:acme/Repo.GIT')).toBe('github.com/acme/Repo') + expect(normalizeRemoteUrl('https://github.com/acme/Repo.Git')).toBe('github.com/acme/Repo') + expect(normalizeRemoteUrl('https://github.com/acme//repo.git')).toBe('github.com/acme/repo') + expect(normalizeRemoteUrl('git@github.com:acme//repo.git')).toBe('github.com/acme/repo') + }) }) // ── computeAttributionRecords ───────────────────────────────────────── @@ -172,13 +206,16 @@ describe('computeAttributionRecords', () => { } }) - it('omits sessions with no commits and no PR links', async () => { + it('omits empty sessions that lost nothing — commits aged out of range are NOT retracted', async () => { const repoDir = await mkdtemp(join(tmpdir(), 'codeburn-attr-empty-')) try { initRepo(repoDir) git(repoDir, ['remote', 'add', 'origin', 'git@github.com:acme/widget.git']) await writeFile(join(repoDir, 'file.txt'), 'hello\n') - // Commit outside every session window + // Commit outside every session window: no session competes for it, so + // nobody "lost" it. Even if this session previously synced a commit + // (now outside the --since range), emitting an empty record here would + // permanently zero a still-correct server-side count. commitAt(repoDir, 'feat: unrelated', '2026-01-01T20:00:00Z') const session = makeSession({ sessionId: 'sess-idle' }) @@ -187,6 +224,44 @@ describe('computeAttributionRecords', () => { ] expect(computeAttributionRecords(projects, range, repoDir)).toEqual([]) + + // …and therefore nothing can be sent, even with prior ledger state for + // this session (simulating an earlier wider---since push). + const { writeLedger } = await import('../src/sync/ledger.js') + writeLedger([{ key: 'attr:s:sess-idle:0123456789abcdef', ts: '2026-01-01T10:00:00.000Z' }]) + const { collectUnsentAttribution } = await import('../src/sync/push.js') + expect(collectUnsentAttribution(computeAttributionRecords(projects, range, repoDir)).unsent).toEqual([]) + } finally { + await rm(repoDir, { recursive: true, force: true }) + } + }) + + it('emits a retraction candidate for a session that lost its commit to a tighter window', async () => { + const repoDir = await mkdtemp(join(tmpdir(), 'codeburn-attr-lost-')) + try { + initRepo(repoDir) + git(repoDir, ['remote', 'add', 'origin', 'git@github.com:acme/widget.git']) + await writeFile(join(repoDir, 'file.txt'), 'hello\n') + commitAt(repoDir, 'feat: contested', '2026-01-01T10:30:00Z') + + const tight = makeSession({ + sessionId: 'sess-tight', + firstTimestamp: '2026-01-01T10:15:00.000Z', + lastTimestamp: '2026-01-01T10:45:00.000Z', + }) + const broadLoser = makeSession({ sessionId: 'sess-broad-loser' }) + const projects = [ + { project: 'app', projectPath: repoDir, sessions: [tight, broadLoser] } as ProjectSummary, + ] + + const records = computeAttributionRecords(projects, range, repoDir) + const loser = records.find(r => r.sessionId === 'sess-broad-loser')! + // The loser IS emitted (retraction candidate: lostCandidacy) with zero + // commits — the sync layer decides whether a prior state warrants + // actually sending it. + expect(loser).toBeDefined() + expect(loser.commits).toEqual([]) + expect(loser.repo).toBe('github.com/acme/widget') } finally { await rm(repoDir, { recursive: true, force: true }) } @@ -326,9 +401,13 @@ describe('computeAttributionRecords', () => { const records = computeAttributionRecords(projects, range, repoDir) - expect(records).toHaveLength(1) - expect(records[0]!.sessionId).toBe('sess-tight') - expect(records[0]!.commits).toHaveLength(1) + // Both sessions get records (the loser is a retraction candidate), + // but the commit is awarded exactly once — to the tighter window. + expect(records).toHaveLength(2) + const tightRecord = records.find(r => r.sessionId === 'sess-tight')! + const broadRecord = records.find(r => r.sessionId === 'sess-broad')! + expect(tightRecord.commits).toHaveLength(1) + expect(broadRecord.commits).toEqual([]) } finally { await rm(repoDir, { recursive: true, force: true }) } @@ -372,6 +451,14 @@ describe('attribution dedup keys', () => { expect(sessionAttributionKey(mutated)).not.toBe(sessionAttributionKey(record)) }) + it('session key changes when the window or project changes (ongoing sessions re-emit)', () => { + const base = makeRecord() + const grown = makeRecord({ lastTimestamp: '2026-01-01T12:00:00.000Z' }) + const renamed = makeRecord({ project: 'app-renamed' }) + expect(sessionAttributionKey(grown)).not.toBe(sessionAttributionKey(base)) + expect(sessionAttributionKey(renamed)).not.toBe(sessionAttributionKey(base)) + }) + it('flattens one session item plus one item per commit', () => { const items = flattenAttributionRecords([makeRecord()]) expect(items).toHaveLength(2) @@ -404,9 +491,36 @@ describe('sanitizePrLinks', () => { ]) }) - it('drops oversized strings and caps the count per session', () => { - const huge = `https://github.com/acme/widget/pull/1?x=${'a'.repeat(300)}` + it('rebuilds links from origin + pathname: userinfo, query, and fragment never survive', () => { + expect(sanitizePrLinks([ + 'https://alice:ghp_TOKEN@github.com/acme/widget/pull/5', + 'https://github.com/acme/widget/pull/7?notification_referrer_id=xyz', + 'https://github.com/acme/widget/pull/6#pullrequestreview-123', + ])).toEqual([ + 'https://github.com/acme/widget/pull/5', + 'https://github.com/acme/widget/pull/6', + 'https://github.com/acme/widget/pull/7', + ]) + }) + + it('dedupes links that collapse to the same rebuilt URL', () => { + expect(sanitizePrLinks([ + 'https://github.com/acme/widget/pull/9', + 'https://github.com/acme/widget/pull/9?ref=a', + 'https://github.com/acme/widget/pull/9#comment', + ])).toEqual(['https://github.com/acme/widget/pull/9']) + }) + + it('drops oversized inputs and caps the count per session', () => { + // A long referrer query is stripped, so the link survives... + const longQuery = `https://github.com/acme/widget/pull/1?x=${'a'.repeat(300)}` + expect(sanitizePrLinks([longQuery])).toEqual(['https://github.com/acme/widget/pull/1']) + // ...but pathological inputs beyond the input bound are dropped outright + const huge = `https://github.com/acme/widget/pull/1?x=${'a'.repeat(600)}` expect(sanitizePrLinks([huge])).toEqual([]) + // And a rebuilt link that is itself oversized is dropped + const longPath = `https://github.com/${'o'.repeat(150)}/${'r'.repeat(80)}/pull/1` + expect(sanitizePrLinks([longPath])).toEqual([]) const many = Array.from({ length: 30 }, (_, i) => `https://github.com/acme/widget/pull/${i + 1}`) expect(sanitizePrLinks(many)).toHaveLength(MAX_PR_LINKS_PER_SESSION) @@ -472,6 +586,22 @@ describe('buildAttributionOtlpPayload', () => { const items = flattenAttributionRecords([makeRecord(), makeRecord({ sessionId: 'sess-2' })]) expect(batchAttributionItems(items, 3).map(b => b.length)).toEqual([3, 1]) }) + + it('clamps span end time: never 0, never earlier than start + 1ms', () => { + // Session window ends BEFORE it starts (out-of-order provider timestamps) + const outOfOrder = flattenAttributionRecords([makeRecord({ + firstTimestamp: '2026-01-01T11:00:00.000Z', + lastTimestamp: '2026-01-01T10:00:00.000Z', + })]) + const span1 = buildAttributionOtlpPayload(outOfOrder).resourceSpans[0]!.scopeSpans[0]!.spans[0]! + expect(BigInt(span1.endTimeUnixNano)).toBe(BigInt(span1.startTimeUnixNano) + 1_000_000n) + + // Malformed end timestamp (toUnixNano -> 0) + const malformed = flattenAttributionRecords([makeRecord({ lastTimestamp: 'not-a-date' })]) + const span2 = buildAttributionOtlpPayload(malformed).resourceSpans[0]!.scopeSpans[0]!.spans[0]! + expect(span2.endTimeUnixNano).not.toBe('0') + expect(BigInt(span2.endTimeUnixNano)).toBe(BigInt(span2.startTimeUnixNano) + 1_000_000n) + }) }) // ── Send + ledger pipeline ──────────────────────────────────────────── @@ -566,6 +696,42 @@ describe('sendAttributionBatches + collectUnsentAttribution', () => { } }) + it('retracts a session span when its commit migrates to a tighter-window session', async () => { + const { sendAttributionBatches, collectUnsentAttribution } = await import('../src/sync/push.js') + + const sha = 'b'.repeat(40) + const commit = { sha, timestamp: '2026-01-01T10:30:00.000Z', inMain: true, wasReverted: false } + + // Push 1: session A (broad window) owns the commit + const push1 = collectUnsentAttribution([makeRecord({ sessionId: 'sess-A', prLinks: [], commits: [commit] })]) + expect(push1.unsent).toHaveLength(2) + const mock = await startMockOtlp([{ status: 200 }]) + try { + await sendAttributionBatches({ endpoint: mock.url, accessToken: 't', batches: [push1.unsent] }) + + // Push 2: a later-parsed tighter session B now wins the commit; A is empty + const push2 = collectUnsentAttribution([ + makeRecord({ sessionId: 'sess-A', prLinks: [], commits: [] }), // loser: retraction candidate + makeRecord({ sessionId: 'sess-B', prLinks: [], commits: [commit] }), // winner + ]) + + // A re-emits with commit_count 0 (retraction), B emits session + commit + const kinds = push2.unsent.map(i => `${i.sessionId}:${i.kind}`).sort() + expect(kinds).toEqual(['sess-A:session', 'sess-B:commit', 'sess-B:session']) + const retraction = push2.unsent.find(i => i.sessionId === 'sess-A')! + expect(retraction.commitCount).toBe(0) + expect(retraction.dedupKey).not.toBe(push1.unsent.find(i => i.kind === 'session')!.dedupKey) + + // A session that was NEVER sent stays excluded when empty + const neverSent = collectUnsentAttribution([ + makeRecord({ sessionId: 'sess-never', prLinks: [], commits: [] }), + ]) + expect(neverSent.unsent).toEqual([]) + } finally { + mock.server.close() + } + }) + it('does not ledger on server error', async () => { const { sendAttributionBatches } = await import('../src/sync/push.js') const { readLedger } = await import('../src/sync/ledger.js') From 6b903a7777ef310f672f444841c2ba8e8f3239d1 Mon Sep 17 00:00:00 2001 From: ozymandiashh <234437643+ozymandiashh@users.noreply.github.com> Date: Sun, 2 Aug 2026 19:45:16 +0300 Subject: [PATCH 20/21] fix(parser): stop --provider filters from re-surfacing cached claude sessions Claude is scanned via scanProjectDirs instead of parseProviderSources, and that call had no provider-filter guard. On a --provider run discoverAllSessions correctly returns no claude sources, so claudeDirs is empty, but scanProjectDirs still ran: its orphan pass reads the whole cached claude section and treats every file as no-longer-discovered, re-injecting PR-bearing entries (and in read-only mode every cached entry) into the result. The headline stayed correct because it comes from the provider-sliced daily cache, so only the live-parse panels were wrong. By Model then listed Anthropic models under --provider cursor while the total showed cursor alone. Guard the scan with claudeInScope, mirroring the guard the durable-orphan loop already applies. Deliberately not a claudeDirs.length check: when claude is in scope but every transcript has been pruned, the orphan pass is what keeps PR-attributed spend from vanishing. --- src/parser.ts | 25 +++++++--- tests/parser.test.ts | 111 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+), 7 deletions(-) diff --git a/src/parser.ts b/src/parser.ts index f6a4656..4fd7e14 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -3736,15 +3736,26 @@ async function runParse( ? { id: s.sourceId, label: s.sourceLabel, path: s.sourcePath, kind: s.sourceKind } : undefined, })) + // Claude is scanned through scanProjectDirs rather than parseProviderSources, so + // it needs the same provider-filter guard the durable-orphan loop below applies at + // its own level. Without it a --provider run still enters scanProjectDirs + // with an empty dirs list, and the orphan pass there (which reads the whole cached + // claude section) treats every cached file as "no longer discovered" and re-injects + // it into the result. Note this is deliberately NOT a `claudeDirs.length > 0` check: + // when claude IS in scope but every transcript has been pruned from disk, that + // orphan pass is exactly what keeps PR-attributed spend from vanishing. + const claudeInScope = !providerFilter || providerFilter === 'all' || providerFilter === 'claude' if (claudeSources.length > 0) emitScanProgress({ kind: 'provider', provider: 'claude', state: 'start' }) let claudeProjects: ProjectSummary[] = [] - try { - claudeProjects = await scanProjectDirs(claudeDirs, seenMsgIds, diskCache, dateRange, saveProgress, readOnly) - if (claudeSources.length > 0) emitScanProgress({ kind: 'provider', provider: 'claude', state: 'done', files: claudeSources.length }) - } catch (err) { - if (!isPermissionError(err)) throw err - process.stderr.write(`codeburn: skipped claude data (permission denied; grant Full Disk Access to include it)\n`) - emitScanProgress({ kind: 'provider', provider: 'claude', state: 'skipped' }) + if (claudeInScope) { + try { + claudeProjects = await scanProjectDirs(claudeDirs, seenMsgIds, diskCache, dateRange, saveProgress, readOnly) + if (claudeSources.length > 0) emitScanProgress({ kind: 'provider', provider: 'claude', state: 'done', files: claudeSources.length }) + } catch (err) { + if (!isPermissionError(err)) throw err + process.stderr.write(`codeburn: skipped claude data (permission denied; grant Full Disk Access to include it)\n`) + emitScanProgress({ kind: 'provider', provider: 'claude', state: 'skipped' }) + } } const otherProjects: ProjectSummary[] = [] diff --git a/tests/parser.test.ts b/tests/parser.test.ts index 5de2dad..211c41f 100644 --- a/tests/parser.test.ts +++ b/tests/parser.test.ts @@ -488,3 +488,114 @@ describe('(g) skill attribution is independent of turn category', () => { expect(session!.skillBreakdown['telemetry-review']?.turns).toBe(1) }) }) + +// ═══════════════════════════════════════════════════════════════════════════ +// (h) Provider filter isolates claude: a --provider run must not +// re-surface cached claude sessions through the orphan pass, while a run +// that DOES include claude still preserves PR-bearing orphans. +// ═══════════════════════════════════════════════════════════════════════════ +describe('(h) provider filter excludes claude from the orphan pass', () => { + const SYNTH_SOURCE = (path: string): SessionSource[] => + [{ path, project: 'synth-proj', provider: 'test-synthetic' }] + + // The provider lives on each parsed call, not on SessionSummary. + const providersOf = (projects: Awaited>): Set => + new Set(projects + .flatMap(p => p.sessions) + .flatMap(s => s.turns) + .flatMap(t => t.assistantCalls) + .map(c => c.provider)) + + const SYNTH_CALL: ParsedProviderCall = { + provider: 'test-synthetic', model: 'gpt-4o', + inputTokens: 10, outputTokens: 5, + cacheCreationInputTokens: 0, cacheReadInputTokens: 0, + cachedInputTokens: 0, reasoningTokens: 0, webSearchRequests: 0, + costUSD: 0.25, tools: [], bashCommands: [], + skills: [], + timestamp: '2026-07-18T12:00:00.000Z', + speed: 'standard', + deduplicationKey: 'synth-isolation-call', + userMessage: '', sessionId: 'synth-isolation-session', + } + + // A claude transcript carrying a pr-link: `prLinks` is exactly what lets a + // cached entry survive the write-mode orphan gate, so it is the shape that + // leaks. Cost is deliberately far larger than the synthetic call's, so a leak + // is unmistakable rather than a rounding difference. + async function writeClaudeSessionWithPrLink(): Promise { + const projectDir = join(tmpHome, '.claude', 'projects', 'leaky-app') + await mkdir(projectDir, { recursive: true }) + const filePath = join(projectDir, 'session.jsonl') + await writeFile(filePath, [ + JSON.stringify({ + type: 'user', sessionId: 'claude-leak-1', timestamp: '2026-07-18T12:00:00.000Z', + message: { role: 'user', content: 'ship it' }, + }), + JSON.stringify({ + type: 'assistant', sessionId: 'claude-leak-1', timestamp: '2026-07-18T12:00:10.000Z', + message: { + id: 'msg-leak-1', type: 'message', role: 'assistant', model: 'claude-sonnet-4-5', + content: [{ type: 'text', text: 'done' }], + usage: { input_tokens: 900_000, output_tokens: 90_000 }, + }, + }), + JSON.stringify({ + type: 'pr-link', sessionId: 'claude-leak-1', timestamp: '2026-07-18T12:00:20.000Z', + prUrl: 'https://github.com/getagentseal/codeburn/pull/1', + }), + ].join('\n') + '\n') + return filePath + } + + it('does not surface cached claude sessions when filtering to another provider', async () => { + const synthFile = join(tmpHome, 'synth-isolation.txt') + await writeFile(synthFile, 'placeholder') + await writeClaudeSessionWithPrLink() + + _synthSources = SYNTH_SOURCE(synthFile) + _synthYields = [SYNTH_CALL] + + // Baseline: what the synthetic provider costs on its own, before anything + // claude-shaped has ever entered the session cache. Self-calibrating, since + // cost is re-derived from tokens by the pricing engine. + const baseline = await parseAllSessions(undefined, 'test-synthetic') + const synthOnlyCost = totalCost(baseline) + expect([...providersOf(baseline)]).toEqual(['test-synthetic']) + clearSessionCache() + + // Warm the session cache so the claude file is persisted WITH its prLinks. + const all = await parseAllSessions(undefined, 'all') + expect(providersOf(all)).toContain('claude') + expect(totalCost(all)).toBeGreaterThan(synthOnlyCost) + + clearSessionCache() + + // Filtering to the synthetic provider must yield ONLY its own spend. Before + // the fix, claudeDirs was empty yet scanProjectDirs still ran, so every + // cached PR-bearing claude file was treated as a pruned orphan and re-added. + const filtered = await parseAllSessions(undefined, 'test-synthetic') + + expect([...providersOf(filtered)]).toEqual(['test-synthetic']) + expect(totalCost(filtered)).toBeCloseTo(synthOnlyCost, 10) + }) + + it('still preserves a PR-bearing claude orphan when claude IS in scope', async () => { + const filePath = await writeClaudeSessionWithPrLink() + _synthSources = [] + _synthYields = [] + + const before = await parseAllSessions(undefined, 'all') + const costBefore = totalCost(before) + expect(costBefore).toBeGreaterThan(0) + + // Every claude transcript disappears from disk. Claude is still in scope, so + // the orphan pass must keep the PR-attributed spend alive — this is the case + // a naive `claudeDirs.length > 0` guard would silently break. + await unlink(filePath) + clearSessionCache() + + const after = await parseAllSessions(undefined, 'all') + expect(totalCost(after)).toBeCloseTo(costBefore, 10) + }) +}) From 15962202bd85ad6b0d1d12ea0c12d401ffb73b61 Mon Sep 17 00:00:00 2001 From: "chengchuan.zhou" Date: Mon, 3 Aug 2026 11:42:32 +0800 Subject: [PATCH 21/21] test(project-filter): make the durable-headline filter tests time-of-day proof MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The tests added in #864 seeded today's live session at a fixed wall-clock hour (12:00 local). The periods they build end at `new Date()`, and the suite runs under TZ=UTC, so for any run before 12:00 UTC that timestamp is in the FUTURE and the range filter correctly drops it. The live half of the cache/live union then contributes nothing, and the one assertion that needs a non-zero headline — the unattributed-cost footnote — fell into renderOverview's "No usage found" early return and went red. Half of every day was a failing window; a769b50 fixed the start-of-month flake but this one survived it. Verified by bisecting the fixture on the unpatched test: moving the seeded hour from 12:00 to 01:00 (past, at a 03:38 UTC run) turns the same 12 tests green, so the timestamp's position relative to `now` is the whole cause. - Seed the session a few minutes BEFORE now, clamped to today's midnight, so it is always both inside today and already in the past. - Stop the footnote test depending on the live parse at all: seed a second, attributable cached day so the headline is non-zero from the cache alone. The test now exercises the footnote instead of the fixture's timing. --- tests/project-filter-durable-totals.test.ts | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/tests/project-filter-durable-totals.test.ts b/tests/project-filter-durable-totals.test.ts index 889e460..ff030aa 100644 --- a/tests/project-filter-durable-totals.test.ts +++ b/tests/project-filter-durable-totals.test.ts @@ -83,13 +83,13 @@ function carriedDayWithoutProjects(date: string): DailyEntry { return day } -async function seedCache(day: DailyEntry): Promise { +async function seedCache(...days: DailyEntry[]): Promise { const cache: DailyCache = { version: DAILY_CACHE_VERSION, savingsConfigHash: getDailyCacheConfigHash(), tzKey: currentTzKey(), lastComputedDate: daysAgoStr(1), - days: [day], + days, complete: true, } await writeFile(join(ROOT, 'cache', `daily-cache.v${DAILY_CACHE_VERSION}.json`), JSON.stringify(cache), 'utf-8') @@ -100,7 +100,13 @@ async function seedLiveTodaySession(): Promise { const projectDir = join(ROOT, 'home', '.claude', 'projects', 'live-proj') await mkdir(projectDir, { recursive: true }) const now = new Date() - const at = (h: number, m: number): string => new Date(now.getFullYear(), now.getMonth(), now.getDate(), h, m, 0).toISOString() + // Timestamps a few minutes OLD, clamped into today: a wall-clock hour (12:00) + // is in the future whenever the suite runs before noon, and the periods here + // end at `new Date()`, so a fixed hour made the live half of the union vanish + // for a morning run. Relative-and-clamped keeps the session inside today and + // in the past at every hour. + const midnight = new Date(now.getFullYear(), now.getMonth(), now.getDate()).getTime() + const minutesAgo = (m: number): string => new Date(Math.max(midnight, now.getTime() - m * 60_000)).toISOString() const line = (id: string, t: string): string => JSON.stringify({ type: 'assistant', timestamp: t, @@ -111,7 +117,7 @@ async function seedLiveTodaySession(): Promise { usage: { input_tokens: 90000, output_tokens: 12000, cache_creation_input_tokens: 0, cache_read_input_tokens: 300000 }, }, }) - await writeFile(join(projectDir, 's-today.jsonl'), [line('m1', at(12, 0)), line('m2', at(12, 30))].join('\n') + '\n', 'utf-8') + await writeFile(join(projectDir, 's-today.jsonl'), [line('m1', minutesAgo(10)), line('m2', minutesAgo(5))].join('\n') + '\n', 'utf-8') } /** What the name-filtered live parse alone reports — the By Project panel's source. */ @@ -320,13 +326,18 @@ describe('carried days with no per-project split (pre-v15)', () => { }) it('says so in the overview instead of just showing a short total', async () => { - await seedCache(carriedDayWithoutProjects(daysAgoStr(10))) + // Two cached days: one that cannot be attributed (the footnote's subject) and + // one that can. The attributable day keeps the headline non-zero from the + // CACHE alone, so the assertion tests the footnote rather than depending on + // the live parse to keep renderOverview off its "No usage found" path. + await seedCache(carriedDayWithoutProjects(daysAgoStr(10)), carriedDayWithProjects(daysAgoStr(5))) await seedLiveTodaySession() const range = coveringRange() clearSessionCache() const durable = await buildDurablePeriod({ range, label: 'This month' }, { provider: 'all', exclude: ['drop-me'] }) expect(durable.unattributedCostUSD).toBeGreaterThan(0) + expect(durable.data.cost).toBeGreaterThan(0) const rendered = renderOverview(durable.liveProjects, { label: 'This month',

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/zeuoUremq<_wE+U|+Pb(J1F<5=H}MuxCQ5D_0Ky!uQ!36I|5JrGBQkigkU z2Iyuu9Q)lu7wf}JC>qj;TfCvvP(sF3Od#|iF$e*7ejpJEGXHEvfL)}ULy#CQfr6)N z%6dzT`I)q{Qg=#L1(Uh7I<<|aQ9Y}JG74P|(iI%Ds~A&hSt3%}+UCvg8KsH0kUo#l z6&Vv%e3bM+lR^bWx8}yGC|JhI5XIoG_LPK9UMIttnFxqY5Hv|8rU>EMD$h8nZNnf# zWq@ODMT}f*&_l%=HfTIF!1T!xBW9UFsO<p;nr@i{CD1)N zIXhA~s8L4B{KAAHOm}kh@pz7*l9_Neq{tTK_wLpe0dhghe{2&QPallf-eD4FMmpr? zU~*uY%N4Q|b!~B`ZaKZNj!Wwc zbMs(0^ZfI_^E)5(gHL?Y(|`177hUwQgKGz8=4ZAxwzqaSv5I(unj%=h!*}NAulvI1 zU-q)!{=i><;K-4?78d3Y;IGknX7dliOoDMTQodl0lOIYoH@^sv%S%g_{qpl3`tXO~ zmjj@3DG==qH{9_4_rLGp!Gj2U4!5;|&KLec#bjJvP;$!wt-)>*^#O=kk$07$)Y&0} zwr1&JHx|UOPRjRyu;u*F$KWq%p&~F(KwLQ7BGg8Uo>cT^jACO>khFys_RL;10U##@ z{g%*>aflaUArLQ^Qf4!*lI+_+=7jacm|Wu{$Y4Svcn-ssP0FppJ~x(yb&v}QZ50kU zXet{OSHwUFOXDH6%1EZ7v4Of_;+#zv@EG(H>Kc)L#8W~zcsY|5hW${3tyjbtjb~m! z?if>^HDV~b&R^FpXLdxtl_~n#M97$k0re0ZWE$H(EYNfZP~qJP3l4m`Lyw%4*K#Bg zDFe)5ZCoi`3M>Gj-X;d+GQ!NY(coc9&*UXFlo5%PyfjcAYMCYjGBs&IqzPKHb`qiG z0lNgn90sLh_J9bZ6dQ#YRuC*3$Hr)8N>?R9^xc+hAu1G84qt>IP8A|x)Jfk9B?-W{ zYx)41ztKXN2-G1`kCQ$ercbAq3;}Lo2chcWz9z<9bM%oop)9XvJYDJMoW9^SQy^e; zijZVUm_Y@QsLTShqMt5u9ATQp2X7NqNgXejBd0h$1&6#v{z`*@j-M(AN@gnxZf6i0 zr6CJNkAgB_YtzBeuI2(B44!to|enyEHfY@1HT)O@A zsaO5=7v6H|<9NpcbowO>V&dO)^Z7cn`1YO?n>!cZ`>bDm)cs%e$uFyh>f(!_~z_GK+VE*K4B?PsVIabw{{u6N0Dt#gS0;kf7{GKtlX)0n`8s(>wa z*ousy@kIhowN;8wSo6a_LEN%cpH?YyUjoXQhOn6lPXkD=ioqGt8sTbe{3d8#T90(; zgtqC5-t-S0J5fiDgm>(TpR`2eqH4iGSnfFGnv`MciNID48G^>#!&v8U_lqfpMk*J@ zCqwL<6sr+=rUG_e6(kl3?P%cHC6PQa2UPF3 zDG>0NUx1>d6_=p-BgY3PAwX*vg(D(6ua+>e83HMEamlR?E4!+yvZbp_^st zx{R%jm}TZ&%FCuYjut~4uUJ$ujH84oOZFj1x5Ypb4tl|0o)+{3!W!};rM8lgijsj! zkUgRZS@2<*W-d0%z1Klhv*|{A znSuloMCd{21`zzWrm?f)47w%TCOmaYs%$m#j+Pa)PN@|^p>mDhjqB#OEXIy#Eedyv zmzmR<-8Yu}bey`*JZq!2((zpNGnJ&O$vzckFcE{G=xeCP@w9m3U7s`ovX1*63tVwF z1bcPr1VA8}F?-EiUat=$ULl{|#Utr&yy?bY_=R71#c#j-xxe__Q>RbiyJi;`aWQ-W z`Qozp!u-Pd=U;H%`R9M%_dfbpe))gB>n=Qz{`Qk6PU1#++=+kSz=1Q)IOEWvgKKLC z@E?xxU9~)4;m&v7_KqKfcX0iGX>s|^J8ysGtA78#{mDDOb;~z#4gcVQHB=HCCImku zGhig3si#yiva>sb`@sxb!T))SKV@maQ%PYGGj`Z{&~9bvf5$$-aHKo|I2E3y?XZ%JLbVWphhY(I!=>F~on- z3}#S!{UnV&aqnK3*+~0=BtW(v2IZ#sDVZEhw1608ZnlDHMK3K&rg5)=4ARRRZ0p}tGAR}itkj^`a0s(YM>?)0Aw(|3K<0rx@V2B~Xsct-SPjjLm}HY7LzIBd zwDsn7Tu`Ir6lEkvLlHXd=0!XZW<-WXGF>!Hy#bMDJH4jhh+On!`F%N|-RjS4Eo>78huL{-4hx|rgYJ}4DSGPNR>HiKva zfbl=+N=`Q|CRQfYO4k{!Q1-k}Rv3_W9=^c-W$7T7SeCWNN@_=)` zb@=$=!lM3=4-eMErSsj{)#Z18`L1_f`;EorC47I4>#hWN7d()7mi+~X7Pr8UtLbx# zGq@dp9xprrpMRr=`|Y7|Z2Xfw9)ElQAU^V3_2t9wyyk}IJodYe96h>=hx7rZ4?nZJ z^XLMG&p#)(cc1ad3qNq<;ZNLhYHkr9tALX8VfG=#|8DDR(TicPvJ;)PqP|tGL!(Q7 zwZXD;6q*KLZ!)Jo@R)z+tXT|VSks%Qt%H-*aoE390J2q@$){EUkJj*_nYNxj(*g{+ z$&PZp6s~LH$jLZZ$pv;4R`G1_ec*}97rNfytjI)^3W!7HGL)PhA6g?>TC2rQX$VUT zI0;3{lbta;GsB1;HWN3OnJGY4MSkfr@+nS{1u_jf2bCveVai7H*}+n4cmO*+rm~99 ziOsD)Ge*i*sjS3dWqKWeRJ>*E7{Zt9meosowjzjP#AGRe;%Ui9gdJ%Jjfld9NxLWs z$4gegsC90BzhHoatr_&8!I2e<(l%NBqD%jCUHu1y59RDhki8=yv4h0%GW6*`v z)Mc@kwt@ER(J+kBgmpCf+-0MPdtgtn+Wn>`W-S<4sw9>x)&rYm5ktlzsfhsrxeG(M zrHLoQep}(8?0>=9$!q3 z-c{92MnQ8T`$u>HcIvsUP?sNmuUzot{;He!IvawxwQnPOWB~%nPny~GeNwAe!?;!f4c>?m( zAZ=&vaiWxR4)!ctD;ht00%fwE<{S}DwYF?ySQ+$SW-1)&3Y=AWY&1!l5UR47ThlFn zQ(wW!XlUE3hj%gn+Cq&$1MKq2GyE`2D>^Ru=U6g86CF%l6Phl31STOt3<8a4a&dA1 zfMmo}{XEdVj4)bRUb*GgZ~giUfBiFm|Jj$k^rh#XbGB}=N4@wodSs2iE(dIBd3kkh z?VNMYdB6i6AdX>&>*<@D@fEUg%_p`pG^)Y5jhj@A8W%S31bqB3ed5H4r~KfPU;FykZtZNYpWXnTzf4%*57vMGna}>0 zxBcOvgNG0RUlL|}>n>@s(BqG?mQ)Mi! zm^kd@){1+tm`lijwl`E`=@O7_(=;3Q8kOp?Cxj8rBK08yu3^YZHNuK?5EpoG!Fc)N zMns3oVTk~HK!m>%*RtrXDHV-&El-p3!)~(o{WiCal>|Yh29_Q3(DxvzBk{_=rm`4_ zjIE(c(z5r88!>$ zjE*F|wD3esv>7_AF&$CY?PJu5vk3iRsfK=Qh#?6?(xT;%>9&-G^%>aFdM<2<@T!sm zruo#KjA=;VG_L{QC{vtm8fL(hw|55;58K2`S`iagB5v$dbjkBwwUp?nSgcKedP0$M zr_IPpGv>MH5)5*@?}?_)$7RpCn!I&na3b;<%l^8(VkW>TDiYesOH{1wL+Vn6CZv5P`yte!YpZwA#4?6#TXB{}Xv4P(h zFi=MA^5TyS=Qg*u&ONaF#P2xo)3@D>hxg%GIQmvwA~Xd?Ya~1GG$lF41b8NB6nHk- zPh8h_c$6$6is?p!t*>Ml_9B>c!!{ZMqg@_eLT5x}$_mpxr_=M*QVFkaXxY5bzEbFM zZRKSkf_ayTq6L8tC{lX$K!8DR?0VdUoK%Vv)AcBYTwzh&QKf5&!N8{Lc-ZZOB_sjw z^yntZDCMZ&VnIFoNFweoH0d+$KC$T2f)sll?Uj`4y(&l=1%o1Xz^7mk%1RRKTwab$ zHAVJWbrBHUe0K_TNr9=Ks#|q=1SgC<{80q^u$kJ$w9qDV?EUotqhHH~ti(yyMbjeB zfRZ5>c4JQsX_|J-%>11Vg6!-@Q|4-Dtym9J+;}Fvi6L3+CivXs5tqjM(keO{hbh6x zj#mhWz~iV)2P0SII2ajY2Rij+Ak`LINura41dOf{(1lA(h}BfwvbJUbbYMB6L6x*A zp&NV?X6|C+I`9H+X6zM!0~TcvP#9GGN|KBVrVt8z{WWXJf0B zC*G4oCS}(`Du&Pj-wH|?0Z9@EuEQvyF^R3{d=irwiRnx!ollvR=SJ5OVL7wpAq{hwW|VGi=GEkN;S#xTtEAG1W)_Td9}c>P(?X1>WD>4L z(E**11l`%H3$>d?pnAW`E>i4ldvf$MRd$DZbXi7hwv2bxMibgSu33L(SrPWfrDss4 z^lHxpWG|e>5Wt?_E*)V%16`Un^ggFwoMV=y;w8|Q)1=pHf)a?XLaw7=&?}4d)7zFe z^2;IFh!88+pUkPw%`%Q^eLB)|-w*pF2#A{d{Yp+i6b7X1v$mSiG@lsM;lcmjd z)R84w@Qa=_*c4>+F>;=eN1Pdvu--vbc)(j<>M|JR7E|UI$C7DSBkA>y6=Xa|*_Hx= zW0^UJh*IF0nbpW};g6eo_K~+&N6N2pro}{UEba8 zZL(wIt!=aXnHJ2rzCW|Gw79gszVYAx^j)ui?dz_&_S%gNJSBgX7c1}tp7={}1jq;F zFgl)J8I$G#zhA{q*>m{OdShb)f&J8v|J0k``ld6^I^)F26M$^vlK;*Qo{Dqi&O2W4 zf)@g_y0Wr~JNlthLZHnx%CU&qf!1=DjXo8Ryb}PZnl_sdC974^cRNwBGGXZm3Lr6O z!jxJxR0ce8$sO<%f15VlvEqbzVv-i&NC3}qAhe0gi}M*%*f6vptxiiO=(k_^_wId~PV;l9Wg47R9oBco3H(*bZ{t=%#hsN=*fMu+Kz~>JMc=6cEve5b^1XpjExfY|5J7zfO-^F-_PwWJt3i&&>^As4$^xS zMCnyfTIf<$q?Z6H*bwnmX@d9)0xF?M2?2x^om7bsZCJwb@+1P?R8I$c_3Hy&=o zzTjd-!v-mlkuZzy0zP=bXfYt6%5HQ@Q5RyAjUW|96uj1^y0UAhHHWV^a?s}sTB@t{ z=^Z3ANT?W4T~~GM^B;fu<^1}FT7LHjRY6tg-Snt4Z_d*I%+wF8tJbUic&og~2=Er1 z?k;{lXiwHtvzOQSxIz*-ObqC4sI6Jr(t7j64<;PBV|7<|2Si}O#6N${4!i|?u)kF865 z&OCE}QZsqmSWFJ2wPYMB(v+J3Vxv+^O(I5Cly+h3B0K0pr= zvLsS4AR*6ZXtX{KSUR=i7kKCjKzRw9gcb^N45C3 z-ab|qIVq=@#3~eBRZ=46LYYj7gMDOD;0GMw|S-!hKlS>KE{s`8bENP zK$0mV8iMu9n-8|u6C0Z6@+HI}H{DejrW~9z@YHAAf9s8sGTo#q3%wu(F7)V06v?-FUpJS7cgT3uQMmu!g-i-mUEigxkmw$+b3}|{ax1tN^nzsO za*QK-5w~T&MY6WJO9|J>h968u6-0uRHd#1Pz_#8XCLr;MLG~1l0c7!d>Y|XdBiz>+ z3v{pzC{?3gXxL;r(a|vBu#(m2ig}RSfDuuPF}9==6shB1wpSOdBm+oFK6a!MQIiaW zel;UGC`cV0tEGNOO$OpXzHm8-N+pL6PDkqn%hFI(qX6(=1-jWagg^=`k>b)90*<>Q zma%;mbaI81E$0=i*hpr@(V{`$T3#(ja?3QcaX1&#^)9^Pd?^Yd9(TyfQ3{_+^r>KYz|Z$yHp z?1K^j>guNF-oS=uZ|AA0t7GuKWbq;%L_7D~@z-2^#gL&xmM>r4P~V6RK=_JmM@Q!^ zx7_~nt1k~~8r0F*89I%l$Kd2scKK%>Ld#mhQWEMhoRHBXv6dr2NjFNV+;>Th<19~? zm&;fX6U7ULFB|-zp|5%_?`6GYD72#7vK9!gO2BBen7%_`w)p+O3ie+HL}t;0^{xg) zEO-W8Ks5W)u}rfIn3X-rNMCXg7P6;E1>}fK`0%DY< zYJ*XEZ%K3@bHTMr25v#yOnD0kR7WmmezaJV3EZ84;3~qhHn6I)77yX>CS*O+sjIsX z1bd}nK$A|`l$0>bKX(%bs_61RQJ8CDcQtDwsyj-^Mcht-tT;SrGQwZPl6Z2(OiDl! zCMAj`#0=mkEQ?!~?6#e{is0gcL>a~L3L(QZco}y+;c9UYJbkk3bQPkc%O{(t$wOZ` zFRTlLC1eXcQHlhIC}9VeOh(w=5=q4i)-em3`yE*+(@qGUBwN&#a`)OqLYOHXM(mTu zte?mN|AVW!WU^vh%Z<#*2Vsi*!4>1MkbhBQ9A1KIi!M^Ql=`4E z;RjDb-J7+LH;5#qtodTj#!3{5U?o8m%H-P)BX(dTR@5^|Z;%Knd^LMCXmno%5%rSP zYOyF!;FA_d_I1!G+>}gORL*l68D%tYJ5RWIYuM7H2^0?2}GV3ZGdn1y}djWlMF+W3G*kQSXe3-Zre_x9maBo zeT@io&&WC=6x5MIx=KtqS3X4NT}qiQ zJW47mFu(;7K<~S5MZJZ76i}pGV$Gqv`7D*bvb7>JV_rivI3E2MtVCkn%32k8)|f^r zAfX9MLb+yCGig>y6*=q#{Rkt&X1yH3T{4j1o|VhQr0sND=c^c#(}=NP3M2)3L>8Av`yz2Y^AWvAY;|gGM^${n#B?X3g;tJy{{1Kzf`#DqWxJ*`7BHb z>}#=w5e{sz+a%+Lk6Vrz@*ltoz~GBE?vP3aJEA$&%}F$ZTR9i^GHgeS`nLVL9A)$X z<&+|0xRe_)2NR__+G3?wCXeBIJObeh%DPel9eRlxH%!QD5ycC#-EWRRMgTI8F+9aGj7EUz``kAoMNJ371gv2 zO&Uq1ss$f>Tl(-t2p!jW`O(B#F}dbgv?Fib(XfpS53Z;gXtWVRBU4ep_PDg$K@B2F z!1Z$vjgpcSfRcPP;dCKKQ_&MMp?;(#5@R$WETbp4qEK|s>PfYvhE8;?5XdQJve*wz zxu`~m+_YnP?2)5}O#T$7Sr<*5RFEi@n3ZrIE7++NeGHu;8i5={jFQBI3+46bnW2dp zaa>SjH&oQ6;xv_f$(tJlgp-7UX7w@^$4yQbdXmf9JF2;Z`A#iPuoe$8NjMbTpCFW_ z)CMQ=Aot&NqFWK!fnst*6HqYMK)zR5uS819nL)XygR$2tCH?#_hVJ>tR zd0%V~zbq%!`nsDXN&^npHh=+D)pe-1wYRl4x2(O+x<9=3x{THC5?bs^3* z78C#cIQ@yg{N?sLZsRuro!yF(tYqr)y=KER_u0D2gOAvm^<5UhdEB7C3wjn3)US z@~;c+ZdxG>^-}hOwk+rp+R?;STjP_wG8XdfqgxLj{YSal^bKiRl*PKY#fMY#@9Z(sDR9joe zMKyQeNV;E3)93|`b{gvFX+;iudi2W`7E6I0FDSy)%5%e{2F<7if))d$>K^iHEEzH* zAr02n9D0-=0tp5SH)P$BgvJ{!5UHR)^Lrb*3N)UgwKrv{r+8N}@nGJ{>IrDkm|7bS zpw|0Cd?|4A+;rV8fs_@zk%cQ+cg~HuEx{M=tCr~A!-{IgF=7DIChmMLtldrt4R%sa zB$%i!8rQi?DG13+LFi^BN~`%o*)8YlNhmL*tmMR!a)2n1a<}Dm>?7`r=_;kT=)Pno z5{P+i3==Ie=oM?>0FdP-hL_Aj2zF$XoJ93VF0kR7h{TG-MMRSebd?JSq!bq`r-);O zW)&cp^mYk65#5CIbFgGO5k;{-Pm2|Ulw>SKZKFHz0y|Rr-F{t?qj0|%eTgx--mQ(_ zS14kJt-0+UBkPU}CxsB@iH&1QFZ1SgoDeATF`K%Yik>PC2le%pUv_le^89r6eZIoe z!#nA9?m{)#CqUb|2CP4{i2}DTIbiG4vi7qpj%EyZkWEHI(V9kOB}fO7-m03rUYW7Q zsv}k!RNLCNTxTQA3$rs-b#-*FHhj>ene$$mIiIryhB<40hsm#AA#k6ONC`I_^Gbu`bYohh)Q7wzM7*aJx#!SMqG-H?SwI&{QUD`=QUE~_{< zRdZrvB*4*E(J;kdRmFo8l(mFoDmpipb_XM zBNQ#NRwN^oA~WqolA|@aZBt8wbhLNyMn@duj6eozYV=_P8)8_CI&k^g0@o=@&f|%i zP-hfbXX~!$WKmkSl6Y9$p@qoR6d-HHSUwOIObuVBVzD$_{OijMAns4ZDVo42WqKuU zq$pfBx>O=V#c{IO{GeB8OCj2cTQV9npwMd-Y6cvcQ8nk4N(wv1<^VCm=n<3Fs(lnqHyk!h(s59YFL%1jLx+!kda}=Ok$g0uh2X zzKgiGj!FjINKh%M7%d3E2#p*h%lo@IAJl{6QIf5lM(`kyrL>w^Mm^PBBjQGVOH{0Y zUZkL;oFp4;K4Xu(Z>vAPDGN~H>^WYt453hWUFXFe$IVH` zLj%LgdGqEy{^!U3 z^{;=ewboi&Zn^n(+wZXLw%e_>=30%7wI)@v(g2pr6?_LH>@2;E^^ZR4=*>3Ye8PkY zzy8H98Ra(A)z{Y5GN@$)iyI8O$ukR=1T4&+@^RYM*4FmrZ6jA$;gr)(JO8Zjt-j`( zIJtD`GUU5@dl)ZQS81N{-!H!K-Lt;S)BZJ;Tny;q(ONq-p+X7mk0y?>q->hB2ap;I zeo-z-m?hApX}*+vP_Y1#EXh_}iuTBek;&GrBwK+X$Atu)tI5=tT+fYq|FUQT9Fr6J zHh_M(uM0NCYr86$=f24D<~HPNYpaJ09>O&JvgYQc%a%gn3Tn`xK}hPd!Sa&34+b-# zyt7FA49yuXjXcU=7sjB$gZcFX)20Y0&M*TJqH{Tq(bfu%WQ7<53|ISV_x9!OF3BAj zy(p=wdgbKFa%?Q*kwkcy?uFeOEVN^H@JrE=2syGtRQ0 zjNux)75BY(mlT(hg9Z<3XlPLG^nn=zKgF-$b0ugy^p@cB+T;VZQOMO z3l0rYU8(Q!gvgaFvO<{p&5aD&f`=)S0wQDV`Bn%L{cY%wwKX-&q{s<(BP7B0N*al- zQdQZ!Y#CDlBz*X=VNFc~JGwgN%%0QRAw<5YK`QihYYQSIm8)weIqYUte`ZT)wOo+b z@`E1J*S@5%sd(S>)>mf2k={5C;KC(fk&%d&QxFp&bps_bE^aW?ytf7~WG+e-TkE}% z?wzk-#*#m-L8>}gRR6f zsU+j6Hs9U7l)SHlSJT8LKj9-EE!e?1NqJMMYKRsSjPk+;|ze58TAOuHYdT}-ny#F z^+pV8=OCq%9dYOdIvhHAIKSNvU6SSmSE_a?(GL{I&x4$ zTSrePIQk_Mhv?c5=Pmikzuy0O7b!a6vj^W?-DrX2Q_jk6G|ZG zn##H=j;n1p#sGvtBOf$ks+C7Qcr76m4#?bb@9ygCu?hEN8dbpCJK8&&!`)wm`&|YO z99UPcF-C|yCMsnNf_Y?-BNRKB>M>pXrjw>zx@0M5AuKZ%s;jHzB(iYfqIMf&V1jUT z`nJXV3;DoNw%mdg97A=V9THU4Qd`I4bX&O@@Vxqgbxmokunl7*4K8Xf`YR1^E#a3?F zjuSB0I9wGSbwEX1YpXNBVMxGpIc>|AJB79dvAc&eFJl;WBNlX#bboc*qqm3QCFlD3 z`nqAmhVx!Z#*hmZE?T;DDRB*EH{kqEQ-*#ZV2tWtMTN%v))r)s4`}f-6!K(ugkr!9 zx_Uah+p|Fz-G~`@TkwJ5oR|Omy1tGF6e|7eRu+QBxOP}jLB=X8h=mTkWXTesh=Ol) zaT8(b(k0{>%HY9+>DYXq%k~lZ&;EzoJ>3IrINBATZLzi$s1}-)g$kXJfeamnoa>f@ zk|3^x)NbDRUUStzSDFMQmNa}D*5bgA)DotnCQUOKVS>8kqpn%8nr@CCyHDo7rNzYwE#*gH7QsYZ zwJ`sj0dU^{qG1!sO$*Q#HvE?|)kw6^tW_YYC-rCD^-aLN4v5;VWXh_JEqqaO{8%=z z5Q9mXL3b%ah#tHLI$#E-ZGvKS+2n(Q%F&jK6&f0q1#@f*x*Z)XfI!m*JpPBh%G~)n zbFLnYnQi%E%1(@Hky(;q>Vafb8y}cNCKQEDP^+wMqHNhVVw&$6sG#!HNG{3-r)WxA z4HJ1xW$nTmY2?tV}_9xquNw3NM`=)gwLBy#>t= zh33l0=wEEz)IX%tx5?bY=#dFKxG`dA!7Z6^u1@ylOP~bbT)-Q&)NF|(vBd+fW8}JK zMRo(OJc#Z_Z=!NvpZfS1MM#(Wi-%vJCnK_GZdI3x+OlQMlP6Dp>#eu`^rwdg4IVOT1!mDl z4IJ3S#R=)^;$i5np4OI@*tnLeF7SB3W}~qi9d_v9M;vzWn03}2*fdZK4e{kQ zR{}h3#8`Ra#OF>t?j*+3ycGv+4VKl^Mbt4|NFHd2QYgN73X@!sIl?X}L@VwQOgdLDSh#SPop-+Y;)_=pJ*usx6@$pw90rY6 z$#m-cg$rJM;f2Q^eQfdKMMH-TrFnE2tfa-*imkGfWi0G3Cd``wc=)lKN#wQGT;qU) z4&G{uEmvE8HC`!DQ(M>C+A?$Itp9!TsV5$PocYk^AC;s}sPdxVL;lqYAYhW|}N;B$|S6Ow{J15-5Rj55f z)?>f{E?Kx>)3KWze&kV`ZNBNK5hH6Gc#U%fm*PxwKmE+J4?g&(rHdC29XbpIO&^4X zi{%O?^!MFwpYNV|*03Q%KA85w?RQLg|GoE`8k=;F$7XXd-P*Ez9)^WO)9vs-vT8(c(o< zKl{x8{O*2UwpHKI*uiI_%?BltkStME)tbj=f8S#B&5t|&ge|w+V#U#;=;!PU3l=PR zXUe+|KKS52o_&_i-`LPd$m*%qr)kRW0o?~5eDL?be{M@_Gb&i&K%zT~v;ix;k%~V`v7sfL;k!j-$gnR(Np%TF%T{rsE(l18 zxDihbm)FKPNzqtgrM_Urn9<|{WXk*xe58y=)mhGr0@fU6LQ>I|X=vpj1)SNmUYX&F zC_xi8Rb$3dV25gHq{)JW(xQIS&*G;=S%J@g8$D7ryO})7frPOF%6lI?8$lHGsBWDm zgE16ygq4ofIWKq6a%fD6D8M9YT7{{M6Ts9_d`92B&T*5y1m_e*W&e_Zv|O`PG}Tnd z-AHAybXc*vuVc>=xCaegP8Lyxk}N`vF3YEUNybGiSkbiFFNu49jx2H5*?9)|xliU_ z^tUPJ@4C^-!IS ztco80OnpUfb!A6yXKPnaM^_JzkIQ+@k{bxke!nxIuE2B@;dEl#a6;oH*EJa*i;Yp%X#g;Aq;+8v{e@n{X*1K?Y}-Awx~d-e6#9{$6h z=Fa^JWX|TeM6{j=Yd1Vn))Ws(lxHDfA!bVxF12^Ix3;uyxy6=8f9vQ?#%(fs#nGI4 zI4#VdH~*cfQyzZs(SN`6BIB;w>NDd^7>G|sFWzEaZIQ@)+4n7D!88E9o?2jpX zrPvm-&5ZCf|MvG-E=N3=TfcEZ=d+)htn{BpjX>Q>R`>Xrz`^~R@#bCHn zzl>BGbcU{|Xl`Ei!yo==yB&5MI%weUe)qsHfA!1G_6{BcSHH4^g${-Si(1$^i2GqQ z28^6rY4**w*!+mYk6>&wa>Vd@?%#KJ&-?1DS0_z=_@M_sc>n#z`i7didInCMS{(xG zN_u4lDZ)v5#{T>6cgUfKj@@{p;Uh;d;Z8qVvSjh}=`)`A>tFx=)RQgE%ZCgdOqVmW zwo-4cY-w)ZdDopUy6B>TO@qFeHS7B8Z+Q3JDcq;&?CDS!*AF-tv=a2tMFaj2mD#6Bp#I+>Ptrn?P(aIa5RLGfbC@G}SlmX{S zE|6mrNnGx^{Y=?(q)_gW(_lx4NQhfm2tc`vS+QoY5CBMNam{F)EeLje>0_mk2_VsE zzgr9hg)AAOP))`oBxH(_T&QNqk?Epx(ZM7VdA7~t4)`wVT!V}XrW%BV6N<14VlZGC zx8qpO(n#JNkr*5yD?Q1Aq>GBTTS!0-WFjt?lZEqUn*;W@6=ZevI+{P%Q1=^=z z#l|X0LdMRl#}Eoq;ZH_0q7cgckJ4i07NC<{r%qSgX3$C-Yn{|YiA=%N3@au;6f3Lg%$H0aW+oSUMdmKd+z~J5 z{WR0gU_&wCPfs)8jUJ_XXpA{j2A}*Sfkt{^5_~FC0IA{sQKp831z;m^yYUpye@!Y-C9Z z$FDy9HE%T&Pc4@UDc+dBNGR+^inci-RTm1PeJXZ*uc^@G?y#Z5ci4XWRaaY;t2scp zJQkEKj>=pk*NSVbzQ*r=_rRPlXX}kIHjhmzm?2oaXwg9j9(=_WSFE@Gy1F9*l|LSd zQn%^dVTYYgJmG{V|M$tOuDojQSF=ZqT!HIPA_N`}S!0yh?H#t?VaTwdm}Ai;hw{lk z0_Uf}orfND@QKHtaOD+OPJDhM&qO1`g_*jNq?No7rRs)kg;24~^Z0yQTPs)lmtFFM z<4-tt@X%pQk~TEd<1808T<2`D#a8?7yWg2-oc4puu6pssiH%K774jVR%e!$fzYX>14yYI2bNhh3e z>7|$c>$!g+fKgrj%9ri|m3l?MilbKCckg|eSsylH#IJvIpAHWAB^li2IS4%o$fI!U zufM^%>#hgv>#t8@&0J0wvr!fjRi<*b-+o)(K)@@usG{P@q|Cx3%$|GhdBDE=op-cp)r*~>u>~O@@d0$H{5g2J(%$!esxpp&+y0;p4ehD9|L-Cz4>M-l`f&R zu}0B8(RP+r!V#RA@`w-$&e`ylvWpkEX2%tC`(*-& z1-JvsP@)DS?9e)5cJ|iX_x6{QW;bs(dT4h=@8p?_K3=k1Hx6kM%$t4!DKNTwM>aJu zU(b0BAR5Nvpqo^6_AzyB!-BmSz`*7a#pDbvqt*&Lt zl?M@edY5%}H+T2ebLe9#Jh>tibIS8lcoRyBF*Kc-iUNwG=wCrX%viK-mZ411EXptk z_Vw1=V55yUip&^~>cJc*bRGfTbdzz^$$=hr=E-rrn?)1B+&A5GkG-zC=9;l%H`Hmn zzCJ;LweiN|4%~nL*I%7<>1CI{J>{(-g9qzAx-GzS)*#IzhK<;NpZ)6^>k7qK0-w{+ zfd?LN)L}4mfz9 z!GniztDBLKbS(+nZoBOfhaCR5r~Y>7C6_Nh|IiPCiop#<}!wnd3 zkb6cZ>T0$i!-;0U{r5ZN#N&Q&+0{=y^}mA$4`ON=aQKV?IQ5L%cpR^hG=u+b#f&hw zt2y2CJ5hA?TDa~3dwyfDF=NKK+BH{Q^~~S@Hg)O;JlWmNPfRTVu*l?g+iv%b-FKt> z+H0@VOdSI{n5Je7mF`Nx!d2GZH{5yFP&l`?FJI2k;;O5!{?@m?MMKh>{7yh;d2-v; zMeL`acIsVsOt|g#I~uAhd1{_7SP@z{3Gh2t9`9H%e}nZlyzaW|cG-1j#^lJLn-(4v z*l*u`C%-=V(n~LU^Q|{V`he5Vya-k3RWqxswDLZC??Y|o%$Y-n4k4=ySvzec!hX+= zMqAX?)Nirr7F;82u;GT2-kdz(u>trwpi`+HFrba`)#jUQw%vByaj!yMR1r&&n^S5g z^m}^u+h?D{4?XPr-#drr2Dpx(k71F!X8@2MdOIV=_Lk<8PB`u2i_af5dPRCQus)VU za+6Iq-FKgT7%!c2@+q^vm_?$v`XB%>> zm>RMl9W_wj1rSB-9UvZEC1x$`^47MICb~;IGptK3_ixK_T+%y?E9d15H24H1f`|A( zmjO?-DU=27hLYO}A*Yz0R=Ka3?CXq0?1%B>NzjgfV915&r%=tqAol;Tv0#f;p%G0u zVnOe>aHuRqDFr6QSRm2wkEvf_)O_v2^eM!B!s z21j6fqLUA)5H)RYv`T6clL`F19MF=((d}T&ye~qqsO+c^O{J|s`5$CM3kI|ZP}*ga zZ-x;>DRXj;3Ra7$%&Ah*xvP93$4~>7Hc6(y&vhczw=SFjjObRPoOC5s0vi;fjBS%Z z@Fp=midfBkDJ_4Ugai8k#$`m|<Yd^8~8014kI!>TqsWA{DWctUA|RHl$dOTfqvl z7(cQ9^HXu>r-qC0x;B(Ot81u7E%1V4#*gCWnpX5*B&8ZQQsbWsitae&ih-};43`oz zt{#WH7#@3}3|nOJ*?LjHT3kw{d|!##6W!sYrA6Lpk)Bz%nxlHrjD(`07r>UJh!hls zq<{n2A_*)@S#XdLTqGwVmn9k)X-8jzA~Hp(tP?~ROs4S5Q4%w{CW2WHoTAHNve1@P zkSN*20F0RHMu&|7PQTis%Z3>$BueaN&Z&sFG+1flOfMztLDx9YWxM`>uMVg*ndA}3H^=OT(cm_ zaGdKO9tPiJ+@@T}9eeDzmMvSlXu*Q!mR7Kk95#FybH2QzgXeaU2cIivQi_(+WEVwT zQBc12>K{(H^NyC5wkGC4?MZ6fGa32r!YbL48lof>-jl2o5Gg7yoa?$sKnWrtIZ<59 z|4Tc ztaJYP=f3^++apJe%D;xvBg<1206V^D%1r@WP(IiZDDbx%`9m9Twt*bivxt@X21-U-Xz(r|I^}+>T z*}h;=nDYcvS6j_9Zah&&X5b!q)RFi9_P5VG`wYKr1{g$e%)KtIgqfjsKcTR=aWDHi zxWmR46XMdbrln=s1>e8m@+*EYV$^V#W3QE%!<@7)F{yS@eDt~;k`NyjZHiWi*+uBS+k4d1`of}F^@m~xFt)MLRVt# zgu+vGJgPZ#$l%*=x$Cea59JL8!Uv6?i7Z?+XkZiXUZ9_hT4B_YM;yt`n^R6Y`Lmgy z@{T4DXberea4@rZdv+iim0MXg^>sb^8G)Lfw$fb|uJ3EAKA$xcWJ1ydw~F4Pv@IYC z+k$0Xwn#Qx;&E5<#tQsQjAI(ifS(UeB1|qTnlkAgsF=9Qxj~sgK^M`YlWx#cQ44f0 zcde}Ga7NThxpcabVmZ1@JGkfkEuCvxyPal_Xc@z^&=Fit0D#Hor5sg-*y%cp7Uo?P>{+ z4TOAHVnTa+hu7CMR8?>{ky8_6jbMu-5GMoO+_R_31<+Grhb4Sb1wU-QICyHa+Z8oc zZ9Tm$ygi42EA&&X8s6-|n^=0otL-qJ{12^Q_8cU|h*(UCw$NSC5+wv*Y%dRGV@0Ld zZkTXIFf3qs&9ZFSGUyy6yF0sh5SyU`MIU4Em^CjQXOzby?TeNy^3%Fdn6lT)=zDpl z{*2R3|KX2+G-}i+M`J)T_1*V7JK9%aS#@Pj=uD*Ud%(V{uCe+h7hm+`Q%`dHpQEq) z?QP9Oa7$ZDO??do8i*&6y*)U0aw5=oNUEy2A${BJx1D?5IWIi_BKP$fVR$UQcGIj$ zj1C$22xJ@rc05C!MnP zI_sTs;z?i5{*uQ^2+$_$HD69f7*=uq;(-S8fKzpPnwyipzPv;ObE@LaD#JG2;K2z zxZ%3%Pd($bG)Q2K(b3*Me7J6kb0+2gRo7h2iTlpG@8-@2!!m{$dM1HEe|7czdGmJP zefJ5sPZ+o9xMXn_BhD|rY-(s&cZ2otc4$rYUVHDg^2#e;e9?tZ{{8PGhK^|O(l|l= zL5}MqG_K2Y54_sW9rj$QOgfZLe&ZrB8l$USFTLSm0rH>$1d|)Rz1-2K#b_zs8Q8YG zy}pq<`hfF%eKq3*dhdwg!;d-U=n*4^9eLDIEiJ8t?~Q^BG!Q@O<6`HUtA2FOdEXy0 zWN`4OZTY;#^N?I&)C#N#pFa7>qYoc+&>`HS&;^k$h2$SA`;m(7WY9YpK=OzK`;j#h zQL2gPza$wCx${NU7dI5v3bk+1DQY{FENejs2sA{|l9WX=q7-7;iq#2)icS=+V<8EnT?FGI!2o(u$`K_Ou>%;@OeUqr1jF6`ppnF) zJEBK8Ea_jY!YGP)_*v7anG&YC5mX?fA0uHKTs3x(iQM3uHaV7C?<3?Q#?0L-oHdQ; zhJp|QEs+Y1(PoDw$?b5u(a#b85;fhUy0H}j)^C*+}Vq>-ms&KrtH5w&d_ zD>4#|MI6z}k(}o1fQd+icX6k)PT&-hu)V(Rq{-Wh z3*0FI8^@Z#RCCFw5op@@VmL(^r#RHRY1}a9tQMV&$ZWHs+ZL8b9}*P6)vH`S5#s(1 z*=ey5B!WlA6v;caQKQ)?;#(6kGl8CoWkoT)0py}N7TY7}$=6ba(rW6p2$eZ&;5pSY z7}bNYIf{ug8^Jp1%jA?}m-Dr=l4{7ZsRm+D4rpLONb&)z#DGf*DVhqp2|POLF2^H; zfr@49B<#wC#Q{@k_-mW66~ZJ6e3*c2e65kp{D@qKo!3lTN9g(HUAueQ4Mvjt0Bxq)i7 z(ALE=kJ&ON=0W>UKl^0-`4>L@_oum3YHHLEU`9>mYC;yv_j-pa zrRKHN0SX&=XS3@xSS8sti=qHTSiZ$^yLN^tOoFg$IdjjnD=Wuebl%G^z0CZkUh|^g z)e3-%0j_2l^ndl$S4}*0Mpmn%b@#JfNbluQlgUKQ9rTyhEe*MV9k1SZY z0D}#6HS4ao{>7JGy5;7Z!QE}QU9P<9>hsS#@2k0Ucw9^1!MyUxr8~~HwJyK))|(%C z_z~`-FxjfiRSwu^?|sib_gsEXzR`vooptuvZ~f=(ujbC>lGUdH)DSUQY^l-#oS>>M zqAOck+g4g}#hY%t<&Yx|@*F<*+;czv(RH8C{9IQul~pUQH2S2IPCo6l(|DwPz4g}p z;nmm9m^S0xsZ*GPrrkmDPDuwr9Y6y7-Z|g@c*YEFDk(WN)hmu3ebNahAA0zq%r6{s z^ih*1PrB>QySVPuT#VjCU~e?ARv_^4mt6ev^DlDQZ5PqHM(1jaOLF)$6+d;CMQe56 zNh|C#r#c=~4A2u&11f)X-H%_H^zWrhoAqmV>%NN1+ZzX~^|)N5*vZ(dBB?>++GOmb z0{pIg%gwet^X%{XO#RERzINMfw@!KcZQdEh<6c8Y3>iQEk^>JofCu3A-s>AYIL~Jx z+B-YB6l6xDrnY){M>}^fuK&r84>{}*0tElH*Iv8n=3AyteYdl{lY1E>MvVCOx4(1h zsi*PAUaq2VzTu{Y^B27M(o3X>oen?9Dq6(omkfSo?tUt68bIlRU~BzsLly78bQ9CG zNTDLB+dK{LOnK-03od9`x{M2Hb^;C#n5LZ%;+8{i?>F}R#`zbFXF`JaGw~2AN<5s( zG!Tt`&iBqc=Gbq#xsN{j@Tx1Xo$=9h+Jz5dueSQ?C!TQ9kw+atm^<&h(}cSxoOt~4 z+y$)VB{}NI>WsXh0te_7Jh;a*_{>J(thnl%dWe$VPNjKSGdF!KU5dqnlj~Y61~2+r zLH4sq&U;A^D=K{;05Dn~hS8;1C?gpv1eGjD1hZv5)D9k@+7B)q@5%06wobwVmy8*4 zOJ4D^(fxoGwcStclM%#3sRR`SL#c!o^~JXC69}m+FZw{>9kggE2qY;lI5!eqJZKov zDVWRs@%+gL$><>COD+>g+5`-7rI|HV;Iau2o)}ZGVu%(l)gU7!S%oC?rfRGbfj|i| zE+&8@zw0P)wQ*}wVWwS9Sk{(ba(T@ zdQPmoz8pM$9HwJsRrUP&^S*t|w{E=oCZ4^(7H@mI`|h9p{`bGLl`$;fQ_cl~L@UAOG`hx7{zKe(LF`o^~oGkeWF01zvVHZQA=hk4_%e-(bB9F1UExZMWuD0ndLdZC?6^-~WLD zC;b2))jj6V-*)S5Z@={pX6m7U`NR`{x$V~5x$VuAI)JOJyz-f6ops!IzSG^_zVX5-RfF#&z2Fltz+QsSn+%_bG6`q2S{T4@Bye zu+2`)J*NQ`kN)K`Za?r_LyZ+t;OBQ^*1ll;h1+hu6$#&M_iv0JfAQ5nF?Q^@AN}~p z-#znme8w#Hk(U>qVLd+5{>^V5MNgoYyAS3fVs?k4s%qA(FZqoyTC(ol%vwuPKoy!+ zR`ivZ$*{7Lae}-_yQ<0OswF5eGBIZvL8}r@AA%gRqhmd}~yX3kj zFjWgbbZCr`gsuB;JtMJ_6R}{A4TgJLz>U@18NE-Q!W%rFszbO&^0@*YDijH z0YkPGmKR*JkkyI2#8UDt>J(iyvl@zNqe5Z}kiS%q&e&^kqA_x&K{ZlgLsA9@kFEXFgeU*BFnz2+s!p1W>A(15);Zrl`@`weFTMP-f%SEK zU5X1r-o5R;MC!fzSg5M0FRP-(2yz$#*Ni-F!$_TZWXA44{pru{y6dhP)2B1HSXX0T z91Z486P2*-f0Im^T)AwtU+5}FB^mbw6ati7D@b{2oFAeIE)}LJd2=!)AQ$Xs%KG5} zNZ!Ht7^tpBYV_I~JqXs=Q2)UP)8Bjl1Ind~PG|@<@M;vUvU+WcH1~z$FZ$gB_cO;2nx5(E?Rj_VdvCw}=DqjayX$VdGYxw1K?goR@n3h|dDlRE z)@%iji`nIn993jI%JlxUY15}q&#iy({xrTCcl}Rp7*JEO)z(|@vdgXyJ@_YF#;A+w z)(i-=uu3Yjfae7T+dDu%azFY=9?{}j_{k@qJo)64dHFaXv^bYQpM3hsd+)tJbLMA1 z{Na!31{-X&!NnI}bnLf}t!&^DUyTzMFY(!~uC6!Vdh3%JA4P_?{Agg^;c`Qm2vd_M1#cj@NhiNOWr}|x zfD2c}hf|uyQXgf$8%0rgC#(GmfrEjX)fUASN|IrL1A-;Mj}MytrzvUHWlNUuDq$up z=p7{LqmMorJ!<6ETW^ilK6~$VGkx z$RS_MoMl~2p-y>s>Kkvo`OzmcF1h$p5cb=5zx@w7eNKuv4IlEUqZgJR6Ri*b;P6+Ao?S}6O5?>@3WnfSYNFthwiD&St$Mi<+j4hIuT*S+Lg-T>xEqY^CaUjH)CB*H!&uMg5 zh-H!yF>Z5n%0;wg{Nj*9)o^vhu@v+$n@5R*e747lU^xnFHKZNLiTumvwsvNkbzI|U zspD|B&QbhAt9zk7fT3e^dLl(8#jTLlvDX790&F@ z&N%hEXPwPiS1*p^*N`^X%t@KaSA6I80B-|lj8R|TxO{o5pA`P{pa0BXFz==tZ{@D} zxJ@?Qapzs0dHQLdYUkMvRG6$K06*2b!vtcPP%7YaSAgHuopRFYJMFe(CwHeidvCk> zj$3ZOfw%V{z=;6$Pe1+iy{YfdnKSF^Yp!MTeUCkM|Nc4WUwh5fb_!rpR|h2)`U4cH z4Cwt}+K0Sq2G5yc#|p!nx88VzA3^@|7x$6Ol~-E%m}8E;<>s5>tT+pyh4w?T`~nl+2zKQV9{K+SW9DL}s>C==z zyPZ!I?=o@U+II0}8fJXw+s8g||NSq#_yWT}cbPSg!BVxSXY%AX=FFL!IayNVJ_oRn zv`bq-Wp5}8Kem!Lte7z&QnAIhtTGY96VnH%F6ROPJdm`BI2oyw$_@aw^)0uNEG3ob z1BA#VdS?fVrG}$aLQui`Bn4CDpcD}-JwcRRBb0pOwLJdRXG}n@r4S_?{c`p4wR4m6 zvroj~x7tqb51iy;OV z^b=BHOjOmRYe%pGL@X_ZaPCaViHoF|Ts8)kVHv|tFs6}lWFRI5soX{Yca5Opo5H8B zY4OmHOj;|0ExgN-lk){Jhld(XhiynytQBe!?U!02^0hMfSgKxN<@A^#oGb)nA+N=< zwti+R^&#whWr3QE(E>x`BbJC(hT&E7O*YW!YpP7u=ML0)q?R+2D@IH;vw^(BTeIR5 z|IAtmg1b|y89mkzBrX_m9NRjy(F|Bp)=`Vz>WT$G1acSTj0fTpxt!-i{%T41R&zIy zpy1&_7BL8$1~paXi;=zYCC*mVV`O<`M8zDksJNpcffY+S&T3LEfhu1is3d?+IIZVCZBl`n#L)LLGmoV^+1dGp(d|gPU{#}$b=}tLe#X~!sx63$=o+XwhHQ| z6FOqSM2{unQ54JAwpEGqbe@XDj%h|DEOtgWbFtgYWjSp)QOvgvonp)5&&vpxT9>x@ zE7jnsHkk3sO>YNtNtB2Q)r&8@Xpe7v z0|}mr;h+%OID0y2uF3GvoN`?z!pDj=fazLTP{9ZT3cRt;l+noAV~cmU2b zsGAvjg|Q-K()y#%K70A)R}Vkzu+h>Z!A{y?PN>aWbQZvMrZq zkS*5`^bZ#Q$h}FBOem|awhH?S^fx9?o;Gb-eM3F5^SB~yPowZgoICHDu>XDs&iMF~ z*I$2i@#2NV&W#zaV|gX(x@)g<*kOmWm$B2mHfhq0H{8HXJ3}yz|Z@MPzvMEjF9@uZir(Joe`|l++RJ5|m3^|3sdi;Oo+>`PpUVtY!zaTPr-= z4-KuJEvBAu4FOUhE}pMn-qyx@llY+q&@HX4@4ff#Gtd5mchMp+c*x*2)>`xJH{axz z9B(7;>S*U;c)$G)PF1h@ZPd*twd^lC>X?n}WqJ<0Y`T0HL#%?ySY4Gze zP2?sGR@gWB1w0dP+=B5Z>)C7Qa!mu9xW8!kJCp=(5KODHbMr;BH2ADW7tLDV%f1dR zm?UzZX%))G3P4tNTTZbV#>Ym{Nh8 zypx5JikS>6H5-e&?(2*#0;=AwqAPPjMKvo1t(a}A$_{=`d|5j$4b#EUS}4HDCGUV%urSR5cS6p{fO#a@xP*Qp z3n7apsDKB_12qj@pCSor}ofopdkgUG&a`b1}A-95{@Cjmn>cK z^wZCtdfN1jHyX>qe1nbFXR;n|?e~5Pyew9Yh@cuYM{wr4S6y?h3og8Xhv+%lzwrEX zH{5g`x9WKfAW^B;NO%Arq`B+vyLa1d_nmjy1;R-u9Cy!8?`m#s)#%i~IQvm%;Z#NP zc$R?kATNvK3-p}JK;emp#~%C3MHjxm;f5QLw{5oD77Y^1S<;-*+MA1yixLR7^@UhV zu{&Y+!gU7KGXxr!;D{Q^en_dezAzHL>+ZV_Iry+KW7gPtryY0RahHex{0P4{B@jm@ z5QEaRGLb1W3QueOQ=wR#icC#aO>29{@ZlqP*^#c*kbuG7Q4mRpk3PcZRT=yb95j&M z49ElPMT-|NzGK3jd?Mk*6OW@^_!!a-JMZ%R^Aj0v@#R;%LrnKQ+-Y;xC>l#>5s2L` zqYc9M0B}Lm;)>h;kVKZIawvu>F!(hpt*_BEUy5$;nDXwsufF`sfd?Hxc1I2$!H;|S z#A|I$y=A<&uDa&<aIS~Q}-Eybvn0b1R1u96zeD4{u>E3)m?#`SIyIK~PqG#x(j ze4EqoCNNb}|IlKHrD8@lru$lsY}7z3Kuw_#wH6b;(_JUXgoBi7%2MR9_4opzk5>^Z z=BW@+?$hGxfdV~-Y63PZ6S9@*AZ6LHbAsc$`Mf6w-rljs- z3ma4g!Cw}y8S?fPFEAw#WFtUCaUrYqT^X7b-T#uLnIpj|xnK`hn5^RjM^!N|LIfFE z?opLaT)Zlo!d8gR#MC=o#xQ$%KGN0QL5I<0l*2{y94PsMXDsi5j|TSr}2xoDDjLC)5D#dLWrbK*=}JFVU2T zydErhzOf>6A}es#bC>njV0kEuaX%z$sD)ODX}DbWx%nTqqz;+S;Y=kqA@#a zBtIh6aH4baCP@Sf5j1aS(Tom?n~PFGDc?vSSj#b7#E@J$=#(H?mkE1$j#(&&Fk?6& zhpDQDi3b%&)|#1R-nRMdKmPIVl&QP!y7LJqoS44k$%HRgVw!BV2!rd^OlUF&uWM-J z!Uzzq)_7j~vA_J~wO1z1nLC>+7CmCGD@;w&#jc+`QEI&jQXpmNFmC9yd2chn-TAy9 z8BByPgK{}Btq+-KL`dfQFF0ZlwmvUxU5&6XeZU2Y9xk^lPeWjqoJ&O>Wr9n(Sfrp5 znb6G-q{tgTI_6=kop#xY%L8Pl&zSMVU;oNg$M9i;yZA^ii{*@~2d+S#efA$uKmGI> zXPgPf7MpLe;l>+%`Q;bfE761J1_-*||I))VN19%j)i7MZLtQCxVa^+J@I=>h<|jVu zGFXO0fMpG0fp|1D0PhFy>Fw(18aH&eyvc1x$ zx2Iv?Kp4zQ`x;?NNRb4dyvAQ$Suq8#3or!^7jL=VV{Q9^&aOTBrtE;u<(SdO1Nhk5 z6<1w3Zo`c?-elwT)>)fxk4?C90>U9H%oHmTx<}$^0haSOxsuDifE|)vb^t+rvZ zUYEG`G#O4}%belKdVa#8i($HGWmOkbEqX_^%A{HO_l22!*U}9)Td1-PZ1Q5aB!I;P z72ep>-qy{p=@C$~_7311ciao11^M6B+Qv(V_uOl5JV&0p4u608$zj8WSS$Li0^FGj{UEg`KFfbv(Ga zK;&jL@1Mz4N3nGjrlMk~#-djpDD=||HIr9xr5r>5?<*-JrP%STIps*=BoL2+DsJ(= zuRxM4FG%{oi>n`4cR?%@m6CSJGG%gM4K6P&tBCY)itFg z=C^m>^V(-Wdu?V{MO6*wFWbLCL%|!*pdG9*VrIQ+hRXLM*B3@y{3sycpcWZ@e0N5W z3J}_uA%pRN%_j+aACm&^TSpfwCP`;^i-Ge+Z5=O&uj0&NM{~aKVRzj5R*mN0?cRk> zVSI_Sou?(X+IlN)+X6Uk#*9ZFeUz7;^GZWLZ6cHSgT3BfJ|g=5`yV{=$U{5rxC7+1 z*I9R`U3Q*4c{2Hz%NB&jFE;hgDVXyJfIP#_95N`?oE2JIc(Ed+u#%ZRV*3PB99~6gdYmd%k$_l6!yo%UyTd z4c(PiUU|1Yzwzip57!MD%8&J+$TtlnLcTfIP{wV%2l7Ovp3jaLs*Q~ zJVK5n$dGKJbgvjSaneCTUkI=p5;UFOwZ~^{`AC3LL0)v^t+F5I;U_mXI5%q!<8K`o{ zox+Yg?KouUV8-(c7c6}E;YXOM*ZUGXIytvu0HeqLArr&;M#Z;u_^vR_MnBvZq4yBy&krx8+sVTFQWe#Mk7l4rsUGd26~K)pI{{bqPz1`k!C8Y6zQcto(xrR>@RymgS`^o|93q8~3-w#hTO`Kq zg2FWCWnG7|q+gU0sc#_*BFI}1=`^aWgfpJ=OM*@nJ4;7{IMEk2Gacm$QZxZYkPcfS z_H}?+N;8oH`M;Hdfv`!jL=_{D&oYnt$Vs5Y*9c%+W4cb(Q4Q7`)l^M@lI_pvQ8z_F zIJP8AD%*;y#ptP(493*GR3N!@v5t67aXbC=NyOjioyY}SD(f}NY)G%n#Kn9t zh+NH#%LgMy@g(5{)=mM|C{A`-NfM)=iTSZN+V^cZ4rP0OKSw4+Q@Z<>lL8rYM}iD_ z4UV&M4(mWd#xlTGi|zGMTO!HXNR$+ap<1AbUM!-Q7zr$Q(v?jn;MgVy3-ruQ5ZqI- za#4pCH7G@0F%YD2ynDG|Si6uKt{*MQSQ5+Zm?$v_HCZWSVxBWYK|^>MHKflp13hL` zQi4y?wgVJ4L{CTN&^ozY6bZ@Yv+iUWOI;+x4>H>M(&BO%A#t)o;bA1^ZbVwzO59Wm zDN02alVIkX(F!-p6p&*Q)bp#3BgVv{d5&?HA{E7E6JEVi$DxU z`Mekxfpg}}`NJO{eD1l4_V2YoguTFh`>c3z5_oUY* zO?~%W=HPggd(a>~H0|SHW!Br?bKr+g%BmJ=DMLoxnneDZV9AlIAGLnltQ6D$1IaUK zIH8kS(jb_-QIX*WgxJ}g8+mNaNiMAz%BN=Fxg;i_7cXAq-AFnZ>*aYXuCeO{&%3`X zDi^mbTWgIqneuj+mtT2h#*7(!jgxP2`Sk{pTsHE-D<04W@TC`DI^xKqc&dtb$8WUZ z`u}|PSw0O4u3uX!JDPOmGpBqdi&yN_`SW5>xFF$*cb#?C-f-g$kzdx*%IC-=SK5aMjLO458G_BHD2*l7ng2!O{8g7!Ru_QODV3M@YUY*3Wdqv-ciH(0v^_TxJGZ| z`rqEW!ey{c%MvRWl|0ebvvl!df?7n9`z%~;alMzC!@fQ^z%H)A=whCNruoT@H~jW@ z_f>XuUUbRD4?g^-FJ^sFQKyhAH7!68dZ1gE`P6jfs0%{4zP3DjuaIqWMpkXcyZ7Cx z@A4LPo^)Gh?J;-#^sb*=cf+JfulcKBx#lDxG!6MAeBM<+0=cpTfd*pDYi+px#LWDK z^WS>wP5j3&GZzX3>-IwyRB-Ig|Gf3~yZ;%x$yjFHx#_^AHSbg6Qd2(BtUS$V%}9Zp zM)DAbrrGUnIEu%wpuO33{cJM2J_Ue$OVVz?L1$m)gM9X&Vs)o^%R7SkWbxKp@c<_G zS1R}k&ca0tk>rjZ?TCjXM~~ik?1mJUx3=-&0X13A0R70r(n*J*3s@#AzWQn|{gk2IzkL(QBS?*N9wvrJAqL8fpT`yDdV9jB8E?b83|4@xV zhF(^#;qXC7d5ZEuFgPE)z*p~saHEcG#g8(k87d`oxj;}-aJmyrzSOMMoYXhHG7Yt# zwEFlYm_|K15!%1RMyMnjjjSJc^tU)n3D1pt6s96K6;A1rwWb(o8Kta46k1bJYiG%pNWM}>(SEI(Ex`@*r=Uh|wsl9MW-uK1F+`yUzcWoM#wG~%lD@;bbd*sI zLrQ@&@--xxh^F*xIn$@JmiJ!z&-WglK7ZZejU0Do%y0eA>_sgc6PRF?i2xm}dG>=V z240*ZOx)8|8cXs8)8sexs^DcxWPeVpr96nRk#q`|3Tz83qS#gfcr1@pXBAP5Zp4;l z&Ag$7(;vTEatmqAD30&AxDLl~ZuG7*W}Pu>jX{8j<9$gTl$4n+m({wi|{x|9B(Z}8W^Shb!l@B@_lK^E!r(~O%r*8LKEMw zfmcZBH!E_*Qq2aL86ST1-h1!uxbsd75H=aR5l_1_e$rhZH9>KLrimFUxpnWflqsm} zNikj+lVHOayWhiL1}4rlH4UVtDERo0fyDCmr6|2AAfVC-2+{-uQRzrPKzayC zXz8T)M%w@LJ?G5q>~n8?-?`7-ojG&*%vAF38(r<@@ z%rWL>P-&b1vNwescV!aT&jngN!&Byb!{H!Ps!&lHEOe=GOoKqGpsmxpwuL#krGbCG z5a5t4s<^p!CdZi>d37i;4O*&{MYZN3QGyUSA}jSwaO00&#cQ6+W+#d;zlD?%u~O2l&9o^}JDdKHJC!2IFSx0uOslT1 zFr-2yx+X)3#5vlK$TxyUs*0y$CBcn&!6R!N*gBg8vy@a&At!Lc^_&K70Ys%l zYNa0F%4-?VWn|uhMT)4>)Q`?+05s+&LcbAbh5RLd(q0X}~ji|So!c9eKv>MKox+i9?w6QSa z1h;cVkn6OYX1Q4>qYjXOS#yKc>OB`ns;0url&Il0W~NRnXO&0})iFaQF01DpgGs8o zLQVgP(on)z#8YHzst%$eeFE)X#XhJZJvZ99L5=`L+ft7)|;6&jSMPx-(BEp0manAXeu>&t< zR0UyrHlP&+66#g*!M8szsU%-~L5-^-QZB3}ISWcC#y>g7g*Dnz%0{%1?BDQ`{Qzr% zTsC+RV2+B7wJOZ0Y76_$44h`oRCwmuf3fQ&%T+erWYdwOMs2d`AQtwTlbNJl&6bhV zr%jnO@!hFYr?T32!Mp|P%C~FB7L#IWtC(Goj>z|G%x?`zPr0Zt+q4N)9qjftXrC#} zgm4g;;_3l|K(Aa6nk_&UCC+;>B-|dz;C6@CR?YNw=UfSR%e$A|qWzh=!xGe5#ZysDhV4(K<4 zz0R3RfZ?2ZbJ(|sahi|cG7dEhSzkKrun}8~>eiLTQ0(&q&N`;!dAKm{?eR}P_BiY7 z+$3|L%wT<=*-<^bFQ$F}` z%KIOzS-+M~!s2_@_~Q-cyV;@_=DgmnfqYZb`|rK~(QNIVs^#NsT!XMw;TWVc6Hm!b z{&1>*&CLS_4(!#tw|!?K9=b39#%aC&<5NhhEBr9-~JiyBM|y#M~BcPG8e7@lp0*%J$#{(bvV`Pp`O z>9VD7kDma964aCdwG*@DNUEVa*GxUg*(#*9npF@`rUJzAE{+F9C!KN{b2NZftXig3 zaje5%yS8Jy4o^Pu#KZ~juoezNkYNZXziOQ}O!Gv594351bpo86EQhDNgQNM;rIe7w zzu;;0B;!Q2yE0DUn^Z7KTqVnkDo|^(vVi0j0O4U>K*1vE zMW%bzBIHsvK!vA)ATP`FrO|5 z53LbGkYHVR+QJ1LKbkq4jl!9%2Y>J&Iw!qoo%wjIFS}-HK8$W|Ubb`z&CslmY~TFm zrY@bk9&z}Q=bn2G4FMW1UApA?u`kf*gKx9b@LspkdLD)I{-50=%y{R%$_viJtpgEvqo(`5)sU@1~+%5@yCi8(`L|e ztz4l8wDBO$58cnV$JhplT7bJ z{(9u02WQWj&Ff#@!pc1Bv*AXXIs|p^-iJjSW5(P%Z1~V_-MatmjGz7E@kjagY1htO zdDYJ+sX^0<0LqC5oAyoutlvVVfg>SVp{Vs?cz{7mdh0E>9B{z?eCeI;`U&6t-se8| z*>`!>al*v6#*KSt!o+tcPMS4a+$3dC-bcWT&Jo0 ze5EVG^`UPS@C^RLDO2{89!&!VZqln)-{nh|@S5A|CcX(lCnFkYDCj$&p1aS`6~_CHn14LRY26L;QuN0!yo+r%uM+3P#@=4ZOr zgEk(7*R&F4?Hab5hanMNIl1BRn$X0Xe|%a%#Y%UImrs&YCC6Ud&<;qe*RJ`-w~t@4 zaG@5LtmXw(-N|`-qThi2ue|i~*k_+5snW56kj^P23zaV8U?&u@D(I|>W7V<302Q31 zncSm**9^}R97-+*OAPF$lu=C$_q(`82tZ1@v`V7j6|!ten07AB5x}!cl?@G|5E!~z zN(a>dL#Ym>xC$Dv%1h?HMp|KMIHr>hb>$smz);5#N)=MvZ}5SZfWe@yVc_V*zl&9* z(v4U_68P>BW!W!LhKPJB2web2C#tHIa4KoZ)is#kUCA;$so+dpPTW{rvx=`}dJ#7k zw6eqsE3=^)M;We@NfT~sLHLC*m+puaD-+_tEXa~ASvw?5boDZy2KjZbR+$Yd<&3(p zDwTUN!c6krF`3q6RU{5KTWY{oRcZ+ojnSpXz|y7f3Pma%h-DljciF%)I3wpsmL--6 zkE;vOPM&~~$Hkc)Znr3~l;y}u7*rsm2qsBhS-#nD;gonOZs(Mcdd;@7J~T-zjW)|7 z;xeF9+_CJ0yxK*eECZ11zhEi4zzm3=oQuURnltOE1eQ+T5wiaTnf>}b%wx140VN_7_>s173FpOQ3KE55+TS%8>17o!P!V67Im zunUU}E96;LaS*tMt7MX)s39Z+tjGijxs`qiL*&jcLDJcC{8+(Ue$LxahR__fG}r{? z8&zRO#U^vkk($e7iE=7K9M2iFC=`LSDwQU=PgFYH88sY@uW@OV=;kHAh8&|7I{)D* zohr$S8&51iTf=FvsOqs9x6G&_bt%rK?h5!Nu#iH9;6qYs@vlv> ztdK4vPdS!l8TTY2ofDR+99H_BQ8~gYFpFqK=O~4mSs49UhE1r?t~hjS`AXKbY18@f zSOfF-d-r?Hm>bQO2 zB+4_hk}*J%hs802jb|KGhf_v^ryG}%ghXSU5I6@-QdG$lcM2dT-v|R+^wP+ZD17Qk zCm(n0*BNs%%?;3IPW86+4cA|P)m2wAx?tqTxEDrUx@tX<=$o2m&0&?XbgRux17aX; z{$xeff<+6pDyyl9WoV4|7?=2W`G6ptahL6>(&p4tPxeDC`w+;Y>+>`?>SW;|5cY{;&k{M3@A zOBe9I#i~`zYybJ~KmX<4`xr86mz%X1rBz)ZcV%aG3$s3&#VgxH$2L50V%fX6GCEd| zh$0@c*^pnKcRsSHw7kjAD*mBEhwik~j_umw@QvopoBz9Oe$P0&bJs3wRx^#E$@=cy zyGd&EdX^c^oHbK?G=w$fW$vVz7MA1L8C^_Tx6(2SnZ}}(gFD%ZCbQBFT&{G0iL4|RJhHBa z?VW)PGhztXnrP3y=GO@%0ACot8;DXW&G2Xhfh%aSdm4${&1 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%0D;9Chahf= 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