From 998ce3003494a07b84ede8e178163d75b1315f63 Mon Sep 17 00:00:00 2001 From: autoantohaki Date: Wed, 21 Oct 2026 20:58:17 -0300 Subject: [PATCH 1/2] feat: add the live dashboard for services and pack-sentinel --- CHANGELOG.md | 1 + README.md | 2 +- SECURITY.md | 8 ++ docs/architecture.md | 4 +- src/cli.tsx | 15 +-- src/data/usePoll.ts | 66 ++++++++++++ src/index.ts | 11 +- src/sources/http.ts | 1 + src/text.ts | 40 +++++++ src/views/Dashboard.tsx | 117 +++++++++++++++----- src/views/SentinelPanel.tsx | 122 +++++++++++++++++++++ src/views/ServicesPanel.tsx | 92 ++++++++++++++++ tests/cli.test.ts | 22 +++- tests/dashboard.test.tsx | 42 ++++++++ tests/text.test.ts | 45 ++++++++ tests/views.test.tsx | 206 ++++++++++++++++++++++++++++++++++++ 16 files changed, 760 insertions(+), 34 deletions(-) create mode 100644 src/data/usePoll.ts create mode 100644 src/text.ts create mode 100644 src/views/SentinelPanel.tsx create mode 100644 src/views/ServicesPanel.tsx create mode 100644 tests/dashboard.test.tsx create mode 100644 tests/text.test.ts create mode 100644 tests/views.test.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index fdb51ad..51de9b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,3 +4,4 @@ - Added the `relay-dash` command with a full-screen frame, `--snapshot`, and Relay themes. - Added pack-sentinel and impossibleG service clients, `relay-dash.json` configuration, and `--json` to poll every source once. +- Added the live dashboard: a services table with state, queue depth, active requests, and models, and pack-sentinel's active incidents and recent signals, refreshed on an interval or with `r`. diff --git a/README.md b/README.md index 2563aaf..75e77a0 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ npm install npm run dev ``` -Press `q` to quit. To print one frame without opening the interactive screen: +Press `r` to refresh now and `q` to quit. To print one frame without opening the interactive screen: ```sh npx tsx src/cli.tsx --snapshot diff --git a/SECURITY.md b/SECURITY.md index 2a04096..cffda61 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -3,3 +3,11 @@ ## Reporting Please report a vulnerability privately through GitHub's security advisory form for this repository. Include a minimal reproduction and the affected version. + +## Untrusted text + +Incident titles, signal summaries, and service error messages come from the systems being watched, and some of them are derived from log lines. Relay Dash strips terminal control sequences from that text before rendering it, so a crafted log line cannot move the cursor or change terminal settings. + +## Tokens + +The pack-sentinel API token is read from an environment variable, never from a command-line argument, so it does not appear in process listings or shell history. Relay Dash sends it only to the configured pack-sentinel address. diff --git a/docs/architecture.md b/docs/architecture.md index 8169f48..a72b7fc 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -5,6 +5,8 @@ Relay Dash is a read-only view over two kinds of source. 1. **pack-sentinel** exposes an HTTP API under `/api/v1` with health, collector state, incidents, and signals. 2. **impossibleG services** (inference, embeddings, OCR, voice, MCP, and the ReAct agent) each expose health checks, an OpenAI-style `/v1/models` list, and Prometheus metrics that include the request queue depth. -Each source has a small client that turns responses into plain data. A polling loop calls the clients on an interval, and the views render whatever the last poll returned, including the error when a source is unreachable. +Each source has a small client under `src/sources/` that turns responses into plain data and never throws. `usePoll` calls the clients on an interval without overlapping a slow poll, and `DashboardView` renders whatever the last poll returned, including the error when a source is unreachable. `DashboardView` is pure, so `--snapshot` and the tests render it directly from recorded data. + +Every string that comes from a watched system goes through `clean()` in `src/text.ts` before it is drawn. The frame, keybindings, and status bar will come from [Relay Shell](https://github.com/relay-cli/relay-shell) once it is published. Until then `src/views/Frame.tsx` is a minimal stand-in with the same props as Relay Shell's `ShellFrame`. diff --git a/src/cli.tsx b/src/cli.tsx index b7a1989..7cd270b 100644 --- a/src/cli.tsx +++ b/src/cli.tsx @@ -6,7 +6,7 @@ import {ConfigError, loadConfig} from './config.js'; import {pollOnce} from './sources/poll.js'; import {runDashboard} from './run.js'; import {relayDashVersion} from './version.js'; -import {Dashboard} from './views/Dashboard.js'; +import {Dashboard, DashboardView} from './views/Dashboard.js'; const main = async (): Promise => { let options; @@ -43,15 +43,18 @@ const main = async (): Promise => { } if (options.snapshot || !process.stdout.isTTY || !process.stdin.isTTY) { - const columns = process.stdout.columns || 80; - const frame = renderToString(, { - columns, - }); + const columns = process.stdout.columns || 100; + const rows = process.stdout.rows || 24; + const data = await pollOnce(config); + const frame = renderToString( + , + {columns}, + ); process.stdout.write(`${frame}\n`); return; } - await runDashboard(, {alternateScreen: !options.inline}); + await runDashboard(, {alternateScreen: !options.inline}); }; await main(); diff --git a/src/data/usePoll.ts b/src/data/usePoll.ts new file mode 100644 index 0000000..4d1d3e4 --- /dev/null +++ b/src/data/usePoll.ts @@ -0,0 +1,66 @@ +import {useCallback, useEffect, useRef, useState} from 'react'; +import type {DashConfig} from '../config.js'; +import type {RequestOptions} from '../sources/http.js'; +import {pollOnce} from '../sources/poll.js'; +import type {DashboardData} from '../sources/poll.js'; + +export interface PollState { + /** The most recent results. Undefined until the first poll finishes. */ + data?: DashboardData; + /** True while a poll is in flight. */ + polling: boolean; + /** Poll now instead of waiting for the next interval. */ + refresh: () => void; +} + +/** + * Poll every source on the configured interval. A slow poll is never + * overlapped by the next one, and an unmounted dashboard aborts its requests. + */ +export const usePoll = ( + config: DashConfig, + options: Omit = {}, + initial?: DashboardData, +): PollState => { + const [data, setData] = useState(initial); + const [polling, setPolling] = useState(false); + const inFlight = useRef(false); + const controller = useRef(new AbortController()); + const timer = useRef(undefined); + const optionsRef = useRef(options); + optionsRef.current = options; + + // A function, so TypeScript does not narrow `aborted` across the await. + const stopped = (): boolean => controller.current.signal.aborted; + + const poll = useCallback(async () => { + if (inFlight.current || stopped()) return; + inFlight.current = true; + setPolling(true); + clearTimeout(timer.current); + try { + const next = await pollOnce(config, { + ...optionsRef.current, + signal: controller.current.signal, + }); + if (!stopped()) setData(next); + } finally { + inFlight.current = false; + if (!stopped()) { + setPolling(false); + timer.current = setTimeout(() => void poll(), config.intervalSeconds * 1000); + } + } + }, [config]); + + useEffect(() => { + controller.current = new AbortController(); + void poll(); + return () => { + controller.current.abort(); + clearTimeout(timer.current); + }; + }, [poll]); + + return {...(data === undefined ? {} : {data}), polling, refresh: () => void poll()}; +}; diff --git a/src/index.ts b/src/index.ts index 9186431..bacb9e5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -38,7 +38,16 @@ export { type ServiceSource, type ServiceStatus, } from './sources/services.js'; -export {Dashboard, type DashboardProps} from './views/Dashboard.js'; +export { + Dashboard, + DashboardView, + type DashboardProps, + type DashboardViewProps, +} from './views/Dashboard.js'; +export {SentinelPanel, type SentinelPanelProps} from './views/SentinelPanel.js'; +export {ServicesPanel, type ServicesPanelProps} from './views/ServicesPanel.js'; +export {usePoll, type PollState} from './data/usePoll.js'; +export {clean} from './text.js'; export {runDashboard, type RunDashboardOptions} from './run.js'; export {monoTheme, relayTheme, shellThemes, type ShellTheme} from './theme.js'; export {relayDashVersion} from './version.js'; diff --git a/src/sources/http.ts b/src/sources/http.ts index b2238d6..5b107b3 100644 --- a/src/sources/http.ts +++ b/src/sources/http.ts @@ -65,6 +65,7 @@ export const describeError = (error: unknown): string => { if (cause.code === 'ENOTFOUND') return 'host not found'; return cause.code; } + if (cause instanceof Error && cause.message !== '') return cause.message; return error.message; } return String(error); diff --git a/src/text.ts b/src/text.ts new file mode 100644 index 0000000..72f8873 --- /dev/null +++ b/src/text.ts @@ -0,0 +1,40 @@ +/* eslint-disable no-control-regex */ +// CSI and OSC sequences, then any remaining C0/C1 control character. +const escapes = + /\u001B\[[0-?]*[ -/]*[@-~]|\u001B\][^\u0007\u001B]*(?:\u0007|\u001B\\)?|\u001B[@-_]?/g; +const controls = /[\u0000-\u0008\u000B-\u001F\u007F-\u009F]/g; + +/** + * Make text from a watched system safe to draw on one terminal line: strip + * escape sequences and control characters, and fold tabs and newlines into + * spaces. + */ +export const clean = (text: string): string => + text + .replace(escapes, '') + .replace(controls, '') + .replace(/[\t\n]+/g, ' ') + .trim(); + +/** Cut text to `width` columns, ending with an ellipsis when it was longer. */ +export const fit = (text: string, width: number): string => { + if (width <= 0) return ''; + if (text.length <= width) return text; + return width === 1 ? '…' : `${text.slice(0, width - 1)}…`; +}; + +/** Pad or cut text to exactly `width` columns, always leaving at least one space after it. */ +export const cell = (text: string, width: number): string => fit(text, width - 1).padEnd(width); + +/** A short "how long ago" label such as `12s`, `4m`, `3h`, or `2d`. */ +export const ago = (iso: string, now: Date): string => { + const then = Date.parse(iso); + if (Number.isNaN(then)) return ''; + const seconds = Math.max(0, Math.round((now.getTime() - then) / 1000)); + if (seconds < 60) return `${seconds}s`; + const minutes = Math.floor(seconds / 60); + if (minutes < 60) return `${minutes}m`; + const hours = Math.floor(minutes / 60); + if (hours < 48) return `${hours}h`; + return `${Math.floor(hours / 24)}d`; +}; diff --git a/src/views/Dashboard.tsx b/src/views/Dashboard.tsx index dc957b5..5007e93 100644 --- a/src/views/Dashboard.tsx +++ b/src/views/Dashboard.tsx @@ -1,39 +1,108 @@ -import {Text, useApp, useInput} from 'ink'; +import {useEffect, useState} from 'react'; +import {Box, Text, useApp, useInput, useWindowSize} from 'ink'; +import type {DashConfig} from '../config.js'; +import {usePoll} from '../data/usePoll.js'; +import type {RequestOptions} from '../sources/http.js'; +import type {DashboardData} from '../sources/poll.js'; import {relayTheme} from '../theme.js'; import type {ShellTheme} from '../theme.js'; import {Frame} from './Frame.js'; +import {SentinelPanel} from './SentinelPanel.js'; +import {ServicesPanel} from './ServicesPanel.js'; -export interface DashboardProps { +export interface DashboardViewProps { + config: DashConfig; + /** The latest poll. Undefined until the first one finishes. */ + data?: DashboardData; + polling?: boolean; theme?: ShellTheme; /** Fixed size, mainly for tests and snapshots. Defaults to the terminal size. */ width?: number; height?: number; - /** Read the keyboard. Disable it to print a single frame. */ - interactive?: boolean; + /** The clock used for "how long ago" labels. */ + now?: Date; } -const QuitKey = () => { - const {exit} = useApp(); - useInput((input, key) => { - if (input === 'q' || (key.ctrl && input === 'c')) exit(); - }); - return null; +const lastChecked = (data: DashboardData | undefined): Date | undefined => { + const times = [ + ...(data?.sentinel ? [data.sentinel.checkedAt] : []), + ...(data?.services.map((service) => service.checkedAt) ?? []), + ]; + return times.length === 0 + ? undefined + : new Date(Math.max(...times.map((time) => time.getTime()))); }; -export const Dashboard = ({ +/** The dashboard for one set of results. It does not poll; see `Dashboard`. */ +export const DashboardView = ({ + config, + data, + polling = false, theme = relayTheme, width, height, - interactive = true, -}: DashboardProps) => ( - q quit} - > - {interactive ? : null} - No sources are configured yet. - -); + now = new Date(), +}: DashboardViewProps) => { + const size = useWindowSize(); + const columns = Math.max(20, width ?? size.columns); + const rows = Math.max(8, height ?? size.rows); + const names = config.services.map((service) => service.name); + const checked = lastChecked(data); + const age = + checked === undefined + ? 'waiting for the first poll' + : `updated ${Math.max(0, Math.round((now.getTime() - checked.getTime()) / 1000))}s ago`; + const servicesHeight = names.length === 0 ? 1 : names.length + 2; + // Title row, footer row, and a spacer between the panels. + const sentinelHeight = Math.max(2, rows - 3 - servicesHeight); + return ( + + q quit · r refresh · every {config.intervalSeconds}s + + } + > + + + + + ); +}; + +export interface DashboardProps extends Omit { + /** Passed to every request, for example a custom `fetch` or a timeout. */ + requestOptions?: Omit; + /** Results to show before the first poll returns. */ + initialData?: DashboardData; +} + +/** The live dashboard: polls every source, redraws, and reads `q` and `r`. */ +export const Dashboard = ({initialData, requestOptions, ...props}: DashboardProps) => { + const {exit} = useApp(); + const {data, polling, refresh} = usePoll(props.config, requestOptions, initialData); + const [now, setNow] = useState(() => new Date()); + useEffect(() => { + const tick = setInterval(() => setNow(new Date()), 1000); + return () => clearInterval(tick); + }, []); + useInput((input, key) => { + if (input === 'q' || (key.ctrl && input === 'c')) exit(); + else if (input === 'r') refresh(); + }); + return ( + + ); +}; diff --git a/src/views/SentinelPanel.tsx b/src/views/SentinelPanel.tsx new file mode 100644 index 0000000..422e8a1 --- /dev/null +++ b/src/views/SentinelPanel.tsx @@ -0,0 +1,122 @@ +import {Box, Text} from 'ink'; +import type {SentinelResult, Severity} from '../sources/sentinel.js'; +import {ago, cell, clean, fit} from '../text.js'; +import type {ShellTheme} from '../theme.js'; + +export interface SentinelPanelProps { + result?: SentinelResult; + /** Undefined means pack-sentinel is not configured. */ + url?: string; + width: number; + /** Rows available for the whole panel, including its heading. */ + height: number; + theme: ShellTheme; + now: Date; +} + +const severityLabel: Record = { + critical: 'CRIT', + high: 'HIGH', + medium: 'MED', + low: 'LOW', + info: 'INFO', +}; + +export const severityColor = (severity: Severity, theme: ShellTheme): string => { + if (severity === 'critical' || severity === 'high') return theme.danger; + if (severity === 'medium') return theme.warning; + return theme.muted; +}; + +const Heading = ({theme, children}: {theme: ShellTheme; children: string}) => ( + + {children} + +); + +export const SentinelPanel = ({result, url, width, height, theme, now}: SentinelPanelProps) => { + if (url === undefined) { + return ( + + PACK-SENTINEL + Not configured. + + ); + } + if (result === undefined) { + return ( + + PACK-SENTINEL + {fit(`Connecting to ${url}…`, width)} + + ); + } + if (!result.ok) { + return ( + + PACK-SENTINEL + {fit(`× ${url}: ${clean(result.error)}`, width)} + + ); + } + + const {snapshot} = result; + const collecting = + snapshot.running.length > 0 ? ` · collecting ${snapshot.running.join(', ')}` : ''; + const summary = `${snapshot.signalTotal} signals · ${snapshot.incidentTotal} incidents${collecting}`; + // Heading, summary, two section titles, and a spacer leave the rest for rows. + const rows = Math.max(0, height - 5); + const incidentRows = Math.min( + snapshot.incidents.length, + Math.max(Math.ceil(rows * 0.6), rows - snapshot.signals.length), + ); + const signalRows = Math.max(0, Math.min(snapshot.signals.length, rows - incidentRows)); + const hiddenIncidents = snapshot.incidents.length - incidentRows; + const titleWidth = Math.max(8, width - 26); + + return ( + + PACK-SENTINEL + + ● + {summary} + + + + Incidents{' '} + + {snapshot.incidents.length === 0 + ? 'none active' + : `${snapshot.incidents.length} active${hiddenIncidents > 0 ? `, ${hiddenIncidents} not shown` : ''}`} + + + {snapshot.incidents.slice(0, incidentRows).map((incident) => ( + + + {cell(severityLabel[incident.severity], 5)} + + + {cell(incident.status === 'open' ? 'open' : 'ack', 5)} + + {cell(clean(incident.host), 10)} + {cell(clean(incident.title), titleWidth)} + {ago(incident.updatedAt, now).padStart(4)} + + ))} + + Recent signals{' '} + {snapshot.signals.length === 0 ? none : null} + + {snapshot.signals.slice(0, signalRows).map((signal) => ( + + + {cell(severityLabel[signal.severity], 5)} + + {cell(clean(signal.source), 15)} + {cell(clean(signal.title), Math.max(8, width - 26))} + {ago(signal.observedAt, now).padStart(4)} + + ))} + + ); +}; diff --git a/src/views/ServicesPanel.tsx b/src/views/ServicesPanel.tsx new file mode 100644 index 0000000..f6b1c6f --- /dev/null +++ b/src/views/ServicesPanel.tsx @@ -0,0 +1,92 @@ +import {Box, Text} from 'ink'; +import type {ServiceStatus} from '../sources/services.js'; +import {cell, clean} from '../text.js'; +import type {ShellTheme} from '../theme.js'; + +export interface ServicesPanelProps { + services: readonly ServiceStatus[]; + /** Configured service names, shown as "checking" until the first poll returns. */ + names: readonly string[]; + width: number; + theme: ShellTheme; +} + +const stateOf = (service: ServiceStatus): string => { + if (!service.reachable) return clean(service.reason ?? 'unreachable'); + if (service.ready) return 'ready'; + if (!service.live) return clean(service.reason ?? 'not live'); + return clean(service.reason ?? 'not ready'); +}; + +const modelsOf = (service: ServiceStatus): string => { + if (service.models === undefined) return ''; + if (service.models.length === 0) return 'no models'; + return service.models + .map((model) => + model.state === undefined || ['ready', 'loaded'].includes(model.state) + ? clean(model.id) + : `${clean(model.id)} (${clean(model.state)})`, + ) + .join(', '); +}; + +const count = (value: number | undefined): string => (value === undefined ? '–' : String(value)); + +export const ServicesPanel = ({services, names, width, theme}: ServicesPanelProps) => { + const byName = new Map(services.map((service) => [service.name, service])); + const ready = services.filter((service) => service.ready).length; + const nameWidth = Math.min(14, Math.max(6, ...names.map((name) => name.length + 2))); + const stateWidth = 20; + const modelWidth = Math.max(0, width - 2 - nameWidth - stateWidth - 14); + return ( + + + SERVICES{' '} + + {names.length === 0 ? 'none configured' : `${ready}/${names.length} ready`} + + + {names.length === 0 ? null : ( + + {' '} + {cell('name', nameWidth)} + {cell('state', stateWidth)} + {cell('queue', 7)} + {cell('active', 7)} + {modelWidth > 0 ? 'models' : ''} + + )} + {names.map((name) => { + const service = byName.get(name); + if (service === undefined) { + return ( + + {'· '} + {cell(clean(name), nameWidth)}checking… + + ); + } + const color = service.ready + ? theme.success + : service.reachable && service.live + ? theme.warning + : theme.danger; + const mark = service.ready ? '●' : service.reachable ? '○' : '×'; + const queueColor = + service.queueDepth !== undefined && service.queueDepth > 0 ? theme.warning : theme.text; + return ( + + {mark} + {cell(clean(name), nameWidth)} + {cell(stateOf(service), stateWidth)} + {cell(count(service.queueDepth), 7)} + {cell(count(service.active), 7)} + {modelWidth > 0 ? ( + {cell(modelsOf(service), modelWidth)} + ) : null} + + ); + })} + + ); +}; diff --git a/tests/cli.test.ts b/tests/cli.test.ts index cb1a4b6..3c47ffa 100644 --- a/tests/cli.test.ts +++ b/tests/cli.test.ts @@ -1,4 +1,6 @@ import {execFile} from 'node:child_process'; +import {createServer} from 'node:net'; +import type {AddressInfo} from 'node:net'; import {fileURLToPath} from 'node:url'; import {promisify} from 'node:util'; import {describe, expect, it} from 'vitest'; @@ -7,11 +9,29 @@ const run = promisify(execFile); const cli = fileURLToPath(new URL('../src/cli.tsx', import.meta.url)); const tsx = fileURLToPath(new URL('../node_modules/tsx/dist/cli.mjs', import.meta.url)); +/** A local port that nothing is listening on. */ +const closedPort = async (): Promise => { + const server = createServer(); + await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); + const {port} = server.address() as AddressInfo; + await new Promise((resolve) => server.close(resolve)); + return port; +}; + describe('relay-dash command', () => { it('prints a snapshot of the dashboard without a terminal', async () => { - const {stdout} = await run(process.execPath, [tsx, cli, '--snapshot']); + const port = await closedPort(); + const {stdout} = await run(process.execPath, [ + tsx, + cli, + '--snapshot', + '--no-sentinel', + '--service', + `inference=http://127.0.0.1:${port}`, + ]); expect(stdout).toContain('Relay Dash'); expect(stdout).toContain('q quit'); + expect(stdout).toMatch(/× inference\s+connection refused/); }, 30_000); it('prints the version', async () => { diff --git a/tests/dashboard.test.tsx b/tests/dashboard.test.tsx new file mode 100644 index 0000000..925d813 --- /dev/null +++ b/tests/dashboard.test.tsx @@ -0,0 +1,42 @@ +import React from 'react'; +import {render} from 'ink-testing-library'; +import {describe, expect, it, vi} from 'vitest'; +import type {DashConfig} from '../src/config.js'; +import {Dashboard} from '../src/views/Dashboard.js'; +import {fakeFetch} from './helpers/fake-fetch.js'; + +const url = 'http://127.0.0.1:8080'; +const config: DashConfig = {services: [{name: 'inference', url}], intervalSeconds: 60}; + +const ready = () => + fakeFetch({ + [`${url}/health/live`]: {body: {status: 'live'}}, + [`${url}/health/ready`]: {body: {status: 'ready'}}, + [`${url}/v1/models`]: {body: {data: [{id: 'qwen3-8b'}]}}, + [`${url}/metrics`]: {body: 'impossible_queue_depth 0\n'}, + }); + +describe('Dashboard', () => { + it('polls on mount and redraws with the results', async () => { + const fake = ready(); + const view = render( + , + ); + expect(view.lastFrame()).toContain('checking…'); + await vi.waitFor(() => expect(view.lastFrame()).toMatch(/● inference\s+ready/)); + expect(view.lastFrame()).toContain('qwen3-8b'); + view.unmount(); + }); + + it('polls again on r', async () => { + const fake = ready(); + const view = render( + , + ); + await vi.waitFor(() => expect(view.lastFrame()).toMatch(/ready/)); + const before = fake.calls.length; + view.stdin.write('r'); + await vi.waitFor(() => expect(fake.calls.length).toBeGreaterThan(before)); + view.unmount(); + }); +}); diff --git a/tests/text.test.ts b/tests/text.test.ts new file mode 100644 index 0000000..2ea8b77 --- /dev/null +++ b/tests/text.test.ts @@ -0,0 +1,45 @@ +import {describe, expect, it} from 'vitest'; +import {ago, cell, clean, fit} from '../src/text.js'; + +describe('clean', () => { + it('removes escape sequences and control characters', () => { + expect(clean('\u001B[31mred\u001B[0m \u001B]8;;http://x\u001B\\link\u001B]8;;\u001B\\')).toBe( + 'red link', + ); + expect(clean('a\u0000b\u0007c\u009Bd')).toBe('abcd'); + }); + + it('folds tabs and newlines into one space', () => { + expect(clean(' one\n\ttwo\r\nthree ')).toBe('one two three'); + }); +}); + +describe('fit and cell', () => { + it('cuts long text with an ellipsis', () => { + expect(fit('abcdef', 4)).toBe('abc…'); + expect(fit('abc', 4)).toBe('abc'); + expect(fit('abc', 1)).toBe('…'); + expect(fit('abc', 0)).toBe(''); + }); + + it('pads to a fixed width with a gap after the text', () => { + expect(cell('ab', 4)).toBe('ab '); + expect(cell('abc', 4)).toBe('abc '); + expect(cell('abcd', 4)).toBe('ab… '); + expect(cell('abcdef', 4)).toBe('ab… '); + }); +}); + +describe('ago', () => { + const now = new Date('2026-10-21T12:00:00.000Z'); + it.each([ + ['2026-10-21T11:59:48.000Z', '12s'], + ['2026-10-21T11:56:00.000Z', '4m'], + ['2026-10-21T09:00:00.000Z', '3h'], + ['2026-10-18T12:00:00.000Z', '3d'], + ['2026-10-21T12:00:05.000Z', '0s'], + ['not a date', ''], + ])('%s is %s', (iso, label) => { + expect(ago(iso, now)).toBe(label); + }); +}); diff --git a/tests/views.test.tsx b/tests/views.test.tsx new file mode 100644 index 0000000..e49ef3c --- /dev/null +++ b/tests/views.test.tsx @@ -0,0 +1,206 @@ +import React from 'react'; +import {render} from 'ink-testing-library'; +import {describe, expect, it} from 'vitest'; +import type {DashConfig} from '../src/config.js'; +import type {DashboardData} from '../src/sources/poll.js'; +import type {SentinelIncident} from '../src/sources/sentinel.js'; +import {DashboardView} from '../src/views/Dashboard.js'; + +const now = new Date('2026-10-21T13:10:00.000Z'); +const checkedAt = new Date('2026-10-21T13:09:57.000Z'); + +const config: DashConfig = { + sentinel: {url: 'http://127.0.0.1:7331'}, + services: [ + {name: 'inference', url: 'http://127.0.0.1:8080'}, + {name: 'ocr', url: 'http://127.0.0.1:8082'}, + {name: 'voice', url: 'http://127.0.0.1:8083'}, + ], + intervalSeconds: 5, +}; + +const incident = (id: string, overrides: Partial = {}): SentinelIncident => ({ + id, + title: `Incident ${id}`, + summary: '', + severity: 'medium', + status: 'open', + host: 'den', + ruleId: 'rule', + signalCount: 1, + createdAt: '2026-10-21T13:00:00.000Z', + updatedAt: '2026-10-21T13:05:00.000Z', + ...overrides, +}); + +const data: DashboardData = { + sentinel: { + ok: true, + checkedAt, + snapshot: { + ok: true, + signalTotal: 42, + incidentTotal: 7, + running: ['ssh-guard'], + scheduled: 3, + incidents: [ + incident('1', {severity: 'critical', title: 'SSH brute force from 203.0.113.9'}), + incident('2', {status: 'acknowledged', title: 'Open port 2375'}), + ], + signals: [ + { + id: 's1', + source: 'ssh-guard', + kind: 'auth.failure', + title: 'Failed password for root', + severity: 'high', + host: 'den', + observedAt: '2026-10-21T13:09:00.000Z', + }, + ], + latencyMs: 4, + }, + }, + services: [ + { + name: 'inference', + url: 'http://127.0.0.1:8080', + reachable: true, + live: true, + ready: true, + models: [{id: 'qwen3-8b', state: 'loaded'}], + queueDepth: 3, + active: 2, + checkedAt, + }, + { + name: 'ocr', + url: 'http://127.0.0.1:8082', + reachable: true, + live: true, + ready: false, + reason: 'model_loading', + models: [], + checkedAt, + }, + { + name: 'voice', + url: 'http://127.0.0.1:8083', + reachable: false, + live: false, + ready: false, + reason: 'connection refused', + checkedAt, + }, + ], +}; + +const frame = (element: React.ReactElement): string => render(element).lastFrame() ?? ''; + +describe('DashboardView', () => { + it('shows each service with its state, queue, and models', () => { + const output = frame( + , + ); + expect(output).toContain('Relay Dash · updated 3s ago'); + expect(output).toContain('SERVICES 1/3 ready'); + expect(output).toMatch(/● inference\s+ready\s+3\s+2\s+qwen3-8b/); + expect(output).toMatch(/○ ocr\s+model_loading\s+–\s+–\s+no models/); + expect(output).toMatch(/× voice\s+connection refused/); + }); + + it('shows pack-sentinel incidents and signals', () => { + const output = frame( + , + ); + expect(output).toContain('42 signals · 7 incidents · collecting ssh-guard'); + expect(output).toContain('Incidents 2 active'); + expect(output).toMatch(/CRIT\s+open\s+den\s+SSH brute force from 203\.0\.113\.9\s+5m/); + expect(output).toMatch(/MED\s+ack\s+den\s+Open port 2375/); + expect(output).toMatch(/HIGH\s+ssh-guard\s+Failed password for root\s+1m/); + expect(output).toContain('q quit · r refresh · every 5s'); + }); + + it('fills exactly the requested size', () => { + const lines = frame( + , + ).split('\n'); + expect(lines).toHaveLength(12); + expect(lines.every((line) => line.length <= 60)).toBe(true); + }); + + it('says how many incidents did not fit', () => { + const many = Array.from({length: 30}, (_, index) => incident(String(index))); + const crowded: DashboardData = { + ...data, + sentinel: { + ok: true, + checkedAt, + snapshot: { + ...(data.sentinel?.ok ? data.sentinel.snapshot : ({} as never)), + incidents: many, + }, + }, + }; + const output = frame( + , + ); + expect(output).toMatch(/Incidents 30 active, \d+ not shown/); + }); + + it('shows an unreachable pack-sentinel', () => { + const output = frame( + , + ); + expect(output).toContain('× http://127.0.0.1:7331: HTTP 401'); + }); + + it('waits for the first poll', () => { + const output = frame(); + expect(output).toContain('waiting for the first poll'); + expect(output).toContain('· inference'); + expect(output).toContain('checking…'); + expect(output).toContain('Connecting to http://127.0.0.1:7331'); + }); + + it('strips terminal control sequences from watched text', () => { + const hostile: DashboardData = { + services: [], + sentinel: { + ok: true, + checkedAt, + snapshot: { + ...(data.sentinel?.ok ? data.sentinel.snapshot : ({} as never)), + incidents: [incident('x', {title: 'evil\u001B[2J\u001B]0;pwned\u0007 title\nnext'})], + }, + }, + }; + const output = frame( + , + ); + expect(output).toContain('evil title next'); + expect(output).not.toContain('pwned'); + expect(output).not.toContain('[2J'); + }); + + it('notes when pack-sentinel is turned off', () => { + const rest: DashConfig = {services: config.services, intervalSeconds: 5}; + const output = frame( + , + ); + expect(output).toContain('PACK-SENTINEL'); + expect(output).toContain('Not configured.'); + }); +}); From b506904ff7a60c068f924e9d1e9e907696d1fbe4 Mon Sep 17 00:00:00 2001 From: autoantohaki Date: Wed, 21 Oct 2026 21:29:00 -0300 Subject: [PATCH 2/2] docs: add the Relay banner, social preview, and documentation index --- .github/social-preview.png | Bin 0 -> 77650 bytes README.md | 16 +++- docs/assets/ARTWORK.md | 24 ++++++ docs/assets/artwork.html | 160 +++++++++++++++++++++++++++++++++++++ docs/assets/banner.png | Bin 0 -> 101461 bytes 5 files changed, 197 insertions(+), 3 deletions(-) create mode 100644 .github/social-preview.png create mode 100644 docs/assets/ARTWORK.md create mode 100644 docs/assets/artwork.html create mode 100644 docs/assets/banner.png diff --git a/.github/social-preview.png b/.github/social-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..4025b70c6b614881f40428001afcf7892ef5bd84 GIT binary patch literal 77650 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 9564162..4cbf6ee 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ -# Relay Dash +

+ Relay Dash +

-Relay Dash is a terminal dashboard for the services we run. It shows open findings from [pack-sentinel](https://github.com/dispersal-wolves/pack-sentinel) next to the status of the impossibleG services: which models are loaded, how deep each request queue is, and whether every service is live and ready. +Relay Dash is a terminal dashboard for the services we run. It shows open findings from [pack-sentinel](https://github.com/dispersal-wolves/pack-sentinel) next to the status of the impossibleG services: which models are loaded, how deep each request queue is, and whether every service is live and ready. It only reads; it never acknowledges incidents, runs collectors, or loads models. ## Try it @@ -15,13 +17,21 @@ Press `q` to quit. To print one frame without opening the interactive screen: npx tsx src/cli.tsx --snapshot ``` +## Documentation + +- [Architecture](./docs/architecture.md) +- [Artwork](./docs/assets/ARTWORK.md) +- [Contributing](./CONTRIBUTING.md) +- [Security](./SECURITY.md) + ## Development ```sh +npm install npm run check ``` -Relay Dash requires Node.js 22 or newer. See [the architecture notes](./docs/architecture.md) and [CONTRIBUTING.md](./CONTRIBUTING.md). +`npm run check` verifies formatting, linting, strict types, tests, and the distributable package. Relay Dash requires Node.js 22 or newer. ## License diff --git a/docs/assets/ARTWORK.md b/docs/assets/ARTWORK.md new file mode 100644 index 0000000..f8011ca --- /dev/null +++ b/docs/assets/ARTWORK.md @@ -0,0 +1,24 @@ +# Relay Dash artwork + +The repository banner and social preview are drawn from [`artwork.html`](./artwork.html), an SVG composition that uses the official Relay mark and the shared Relay palette. + +## Banner + +`banner.png` uses a 3:1 composition. The left side contains the Relay mark, product name, and a direct description. The right side depicts the real application structure: the services table with ready state, queue depth, and models, and the pack-sentinel panel with active incidents by severity. + +## Social preview + +`.github/social-preview.png` recomposes the same interface for a 2:1 thumbnail. The description is removed and the panel labels stay large enough to read in repository cards. + +Both use monospace interface typography, restrained terminal borders, and only the data the dashboard really shows. There is no decorative-code, robot, or chart imagery. + +## Rendering + +Open `artwork.html` in a Chromium browser, or render both images headlessly from the repository root: + +```sh +chrome --headless=new --hide-scrollbars --force-device-scale-factor=1 --window-size=2172,724 --screenshot=docs/assets/banner.png docs/assets/artwork.html +chrome --headless=new --hide-scrollbars --force-device-scale-factor=1 --window-size=1774,887 --screenshot=.github/social-preview.png "docs/assets/artwork.html?social" +``` + +The banner is 2172×724 and the social preview is 1774×887, matching the other Relay repositories. Upload the social preview in the repository settings under Social preview. diff --git a/docs/assets/artwork.html b/docs/assets/artwork.html new file mode 100644 index 0000000..06b93bc --- /dev/null +++ b/docs/assets/artwork.html @@ -0,0 +1,160 @@ + + + + + + Relay Dash artwork + + + + + + + diff --git a/docs/assets/banner.png b/docs/assets/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..7a64a8064d93d69b123ed82ea73a26a2cc5a7476 GIT binary patch literal 101461 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 z z?OLXO57xchEREmHm8`i!wTgkgF)OO*7THE_IpmO#&?`^Pz}ALS1?bI8Ximf~EFK*k zAjV+28I>65fmM=si&p97g(x^Y0xFX0mde&K*9K*)eRc+q>C~v59}S-Dpj*2(wD8)& zmLx-JIZ!>x$jdHc=T}0?N#kAiVut!ock*tpYX##6l|`}Xa4M*oUk>hKvQkJeW|`AD z+e+7KHxgR(srtFjIC*9}-rA8Hh(;SSJTG}H&wa4@!`quJipFBXsPm3U!FWJlpFj|_ zt6P0k@IkI!0=!ohem8q;RfbYx+?*CsVLVFEw9r(Y`yr+VI00+OO8???0TJetm}xR7 zmrz#4B~RgD64~S-_TyPsr3D8D%giEAKCjS0PixltweGk#jCE6u9Vj`7x+YHHL2&zq(3WrT5!CmCKL!r|2G#rKMTtV;6^Xpat_IRnp0 zz9wj}x+0|Xt;fJlA+(Zc*+1@M_~(~pY>ZZjEMR&dF3?pe8vtmmwg z)Z;0Fh|vib%8x*(1t5OKUM)P-fjBcS-Kp*-z^U>N#~@0ZDzQD=XnaO2zMNcKJ3%e# zo2K-w-kCQAp#}~1TZIaS+x?)NDv33iaw`99uN4cEKLVdgP?HK_gJE_*Nbt@XEt1iH zKJLhuq@@h(E)G3%s$(`xu^k`&S-+q8kOU2!uKG7VaYmG@za>8+BOaM{vKsC@2@lWH z>H$gpH#!p8oqnr9nX*D}?v3Y6s(w-!#r)+*&c*If3SIwj0Th-5JcRvYEb(Xi7K5xZ z*(%$#fGkDuPJR;0#!{Mt@KO21|At1MaCmh3CMe6E98)4e{$cv?yup9KkthFQJDym3 za7Sq+gt+WgM03Z}-ww+gEZp#L#aVIv4cGr1>Q_y}bMA}XVe_8&HqZ9ZfNU&9H2nuI zVXyj|A^qKlQ15MTH7J9?bV0WT1_p0xWLoDxMP*oM{O3sDU41YgfVX@%n+pyUop;Bw zu~pj)Tz^)Dz(327@;!AdxV0gLSP0o;45}!eIfrhy=wF%m&p^(3fdkj>Q%c$DJ)los zA_}AS80L{Jn6F)8&HwCU@*ZfSgY!B}M@CeRz8KASn3P@1WbUG{d;e^8?UzB<;9MCp z)vx?5CvFepr~Un6ya2|0(*J>g+-^Th@(Sp-r)`q0zQ;jPPS4EQ4sdxhEB((NSDqzZ z-PIMmYa%2gzn|?uEJ2apt&*Sq&()T)(-jol+lq}x`eYt|gpKHmQYaEq?i~6zRFS?= z_iv&-7vkVk*#&?t;4G&u=2$0>+zbRg!=!HydR?hsu6 zp51qP#lB2-ib%Bn;48qLX^EnP@0Jao&t5pdMN2|d4}3+vwr38w{pimOJsuu~1WlO0~=$Kftlo;%R8^DDU}}MOOh??_hhwbed)e$z0gY9c&L+q z*IYKo84FAM>C$(+A$K;#;y%AErxSicP73)LgwKj;K z1(EXeegaLrJ@@tBn7R&b(Bh$#HOMseHJQ|io(X;X6?PB}InE7noswpjXXYz4yr7ki za-OC>zDRjs;CNf0{=9*gI0r^wB+k@ie}?qojnstEempkKbAl43d%t?Rcj8z zkq%4znyDdH>FRxBeV$l-%8o(l0&j+vM$d^n7NEe76PrH3>G;#Fw_G zq}5;vsCt;HcFkUwSj2n?)O!4F_VRhQX5p&LmLNxkt7BJ=4WLq|Ti3(&H)Mk5`zn5r z2Z&8Yx>kNrax{-8iyOr`2on6+6Dyl37m!P=)JSzO9iw|Vi1?-;Z0SCt1jZ0teXYu&vyrw#j}_8G^+ z6J|V$ZkG7TqH;9u4GQjcgJlL<1}qsm`#n)_C4g${I}ZI0jM&T|i z-%q*WDM>%5f2)u@vN8u^)k)~rHvGf~(De^R-3F!uOkJO9m`{YVIEO?DF%$lXUdLIt zQqnu6Dx7C?w2WR+B_Lo4Fzw?CF8S@b58#Ox%x+BPR{#@`knH6#%a9Rf^NJf(K#doU{JWWlzB%+E?2bSi-WTac;}0gHD7IEguw}>LKUXeSa}E>Wzndo zP$n>IBXe(8$m*#HR??uf#%xiwmu0Fz7S!zE|74bDC#WPb{0 zG1)M0{J(Q0#R>n-l~|#5|Pe%v}e>L3mXNM>Se^X*B!OlehgclQvHtzpJ|iQhf{=2xJjsaO+JB8O#xG|_rKt;)`)*GNyiA?oImbN! zvES&Dgb8?BuMVzlm#`7#Ih{6U#z&%1#~P`R?+XpJq~t%gBU__kwWSjVZB3_R;T#mo z(lAK51|rU_Z=5pklS=3q`|d;+b9L_cKt%5K5B3Hl)tisd?Z4223)M61KgMM#5LPBr z)+79(O1Orya+pdVuxaqw^nm1ISe-7c<#@}yaIyFQ#GYUV5yi9L&jY|~;$I&(1buB) zN9uj?CFohHD~7)-c78?0?Z_R)(jW(3EbGis>j4Y4G(a)o45;kTcTLebk;TP8U2T6^ z$yKMm(^#vX2oo9kl6S?F3{VK&$`*9%w2#MAyD*RD<;CN8J-BahuwH}V*PQa-Ug_+Q z0ETsgc}c312Kkyq4wYY;Rw&HkqB-%y%w}DeMhvC4$Da`L<2jLV<@P>6$Wwgs+_5yH_^XmR)%J zP?zLoHd~ca>6{R4Q6DyqOA|v{=eYkOkPow>jv(`-y@Q{*1)*{qwKpQuQlrcGF@10P zgJ>SuTs^LVe4IzMkEQx`R%YiZ=uR(=OES$H+j-?vQ0NQFLYN22MvR$^RtM1xZ@ECBhezc#Y7(K0}@)hd7=An zCkKzzgHJ-Bg;JVu*HE6VHEu1b=743!w&s~Yo`h0VI>H@BcxufJ3o-W-WlA5g=5juc zys{-M>Akx)EgIQmIypdw*F1ZC7~Qlz_i=%(EV#~u| zb~Roi97vVNFxI9@KT9&<;q8&%U7P|Ao~%qcQi|MtrCYE$G$o$#2D1E3R+u=Gef!Ba z-aZKW;iFcYIgA#zj9TjI(!>cz@I0<^UpJ9d#A2m(^O0Ya5m~c6@|IO~+g7H!aynnG zV)^^H8B_Pn&zbAnx}v1gr!1>{j|^giwc^T9wqA;ZW{&byNA#-gfF&hx0{vk>=a-){)J>I<7~EQ!aB@ zSs(oo>SE>Lh&_VX!v#t^mKNlvi2YqofxBVvNv6H2$!Xl%0~_#X8v4nO zZObFN^f;Ez_{a~sNGG+Axj7-WPy0rGSGZ5Yk1CV-{)Mw_ng8!_7N`H8kM^1@ZTd%bQZ z6eZ=jv6IG5NrJ;d4|IIyR`=F9qkVQt%(hzFJ4aeCJ-%X`+Wa&hz$UJ0YsLccEhDGx z6-rb1tfFSr?Ao12Q36L@LMv7Vt3Q102d_h%6vIjj0O((2a)X7yOht6h{V(rK#eGvx z(&F)5!L83Wv;Azt8!p!&^WhQ^tE~-X&C;(NWEX1ft1Q2Xd>nvCxtj-=jXkv_$nkn* zNVY05S3aiF478j-k%jph@{klbxO>ANvSkYJIV~?$VMWZDemx|`A8c+kD?#tb5HCn! zaayxTkLgUJxlD5Bq<~D4(DKerR((I?)IB4qGpNV}TCK?+lNtxIr(@BXB_&?-pV*Cg$6*uw+^Qc|d?%OD`*qht$Zw&P`}ox#k!j<+9LsdxbEz8Mj= zDYDW1V`kf)Iw0pthzR7kOYECwjfXSwB;`fo2tG6Q6Q<^mZ@*%*Em&1%h0kA4>Lv#;1#%VLY-qS4| zxaJj;#^KCY>xMSeaqXR5L4}h2IKi(hEPrsheKA1D)fTwl9 zj@0Lj3e=g)?{yKD8)|i^lmNp##>4>Z{E9b?d%b)&HIu z+r0Q}*8M3jr|3-KCdu{syP@2>g~7=#!8P!aj-J&k%8^B8QraMx52$clqA3UG z7Rl9w8>ls>xH~7}j!)l6amwLVVj#>0Wk$&8D8Y_cE0M@qh=lum?KBT)2RufbkrP$w z6-&rhlYi;=tlBGPru}oreq~}U6U(}kGJ36WNP_G%GR{flG{hL_6l4po<_v91N*DHg zeWg;bV`pa`P}+5}>|_4qb%KYUhF<%|$M&yP7isMk|GOGk$yTe}@+XKF|k7lm|j zLjQ|&c}V*CSf$JdkbuARz)8!}9!5$`_9;|ts(J)d^rf=2UN8yk%_i`#;H*w(dkGht zZ*B5lT>_Kvg*RY3jZ)+9wFBCCD7cBK)L+~rfz1_`E?3g8Ug{P6$Q$;~&=HtvlHN%j zRO8xwbaD=Bd){1OTT*UHe#l%xeVPu08(u*xV?@Q*53}MhBkDVz&*AG+^3_#IJ^kjV zc7@&jV{1v9>%^JjQnernH)-Edox-GR)T&CPX%#tWp=z=y)zS!n0djHyFZM4H|72mP`(NCPJ<=Eb$c55zA6#nxAR1Q z3Vmq4e`t|!Mdox%_JCQArJX}qYG576^VXV~Ox|&&2_Nc*bZ>>+lE|+fPtw#dVs|T^ z(Kn5)bLkm-d$CMj{DnkWBq7kD^ADFr?%|bX&m|y zPBO`JY4yYY_2A~D=k0|YEAWBwcpt<><|xJUrsQ?S{_%4Dr9;W9#jo!L-7Is4#Yq!4 z0+&|I>MG5D4J=u$@o|O%TUS)UILIKg-~xxbDmr@s0V#7VBizc1NfAIx?2ZIOj>ei5 zN5kv+QVhUJpEh0a?oU&KK@>k}_tI#V%2@cA%^qbws;j6*2R@mEEu5f}!Z{T8w^y># zT@~zXb6hZjkkHF9nO=6spTs`uD1Z=*qR!72#1n5Dn#}J;v0*)LVm-wKaZX`BgF6~e z*8Alm&qz^9;)au|l!{zWv&D-)^=Xv($$0bguYW2bLj{{tLFA?W9{LV*Gn<)+tR(KS zCP|oFgCsMTgo;4A`+-eSLx-t7GtJv)jOOn~VDEgUA1Z~-7Ws`&NY`88a(^_PP-%p$ zx5&FiepY$OOkf8S*mioBYTsRSx+m3iXH+cc!Ucv~01aIG)ReqmhEe|MCr!Q*oySd2 zZaL#ShF@c}^B-dm z8`>=z_lTXDz$4dVGNl9a0RV$lErb~_BTYU@#egCHv2vcnHV-mqTD(#KjyYj)>Ri8cIE8)pv0N7o6Ei?em9kk&HM zguA_#b`G))J&SY8^J3177=b%wy?;O&P#8%Z1Z)>#-D!cACo(m&8s?jGwgp9erZ(+~Zn&M2ktM9-K*;-!C-gnlyZXGs_ zY|sx`F0ZXAtbEsy-Z{h9B?a9T#Ht}n)`-8`4i2X;dvCj?w-2AsCP?{B_A8c2RxLJd zM>Dr1G$23tI9q$a6S!X0w-(oxN`4ui;O8pP#IHbV=Vn&)M>g)Yg~nV5*A0KB6oQ*I zL-t-Q!EGs>1V>9s7PdJkP+%aBD+#s$8IXwdw7>Zdr)JLS&y9|8Gbpvqj8IkAghS%co?8WxHqW z$4XyK$L(61Dv}#;f~#kn%=psU40;yLSC<<0!=ona@l`&Da?F*y+Df8|(Q5TJdOXk-y_BajPK@Fuz*)t3Ky=(W`*HQvj6#sc?NZ4(hov>F)w%p6*`U&b z@05NNC0;-SK^dTcld6v+(XJHdLrNVt{Qm^|bY#=#R>U{e5f8!j}+BcJe^OhnTlh<9m@o)tf<<0X8l5M91ZPfhb01 zLH!l8qMC~X&#+si@tviYp$+)^b+jSTf%jgTjzQKirqKBY%l!!kL{N((ozev<0R80v z*oUM8sQe>dA)|+-OuN&B%o9{FZX;dChFWdVgS>)d)UoSbvave! zB|?CSqU0QJm-~;bsZEFl@omR}$30~)EZpdZ6pbEBY3eyzjfg416T_&(wVi0UB6_D! z-+eS8{g-$}Fm*|Wy{chAq|4Y-ichFZ^KlUujpo6)_$2)ck(#M=Z174W5rWXlER)TWRZKhmtNTJ+axdUDf=ff{X}61*(M*RpAab%J%%Se}A;Wp=~9JUJ+&j3LLEy7x|Y3+e7Gq-00-bdGe z3ApCJ6!~S$8)K!#wa(PLH3wly_tFHK2bqoOOmA~2{N`f@M@G)ECAn^}+%+SrajYKH zN_8n-Z;VL_)g|T2S$55}*l8T;@%_soMezUWkfOmWs&DE+q2QbgNr#m5wl&(?bXqVw$33&PVOqVcV9Xz)PYy4B>>`257d=s8r1^dCTg0$k-c<4 zsF9%qY-36vH5$y9;Eq3d$faPUX|aBLCckk*eLRqbegwbz+3UWMRW*{~yZk zuEmLS)6y@A4_ge=1Cws--+gXzRa@>_Nu4Uo-tq~wuS|4lXSX{}pxIPL`UO~}>KU3X zyJ!gf{jj65K9lyy5nhu^Nv~G=zQ+*9b-q-Yer8$HEj-tY36ZjC=W7@#`hGK-iYYtp zZJikM=hv+H1XZo%gT=2sK?NuLO9t)?l1gJUzQrtz=)1R!0^SRQ?P0CPFpoR)^W(nn zwUx+V!sJraSh4%TWCN20)P?17Lm7GHum1FSyeM^ZDx^!%2ijZ=)YN@^(Z~0yQ1k4O z&GbESK0+oNW*NiNcNZch>xh4*EFUP`Q4v|45ZdFu>Mws2x(V0Uv0fRk6;Csk(taq& zpVp)py~9*0SgJzieD;|dX})%!p!Cz?TIC+S!5fe-01q&m4tn}4DxQq_BdECYkR7m9hmC7cQ#CY+h9azB*iv78h%io?wCSBGplPVFv;0FR<-6Jb@989g zfum07NuSF|$)em$Qavn$u)hnkFF>{Lm`DU{XYLWMZqw#DEnG(rkV#4mTSA<>Em}>W z1->(G7i)hE4lV2p)hx&zvleqj&8S~A_`p7%u z6dWchvMGI}O_TS%mT!xFZixdbK%1NU^b^z2Qvkj1<;Sqz8CN zjcOLfORWvymSWN1>7DeL^Q3B(+?@!sVg%l#jQC`hgXp)GzvXI+-2~ji8Tx&U@R@s& z{?nc874C1-S(7Al`IYc`d~&~vSo=jx4zXUQ1`phS-DgdS*+zgDnc)}qzcQX2lf?`Z`2zTBxI z$T0W+gPh9WqgWLFFXU9DT?S7xg(SI{37-q$mlPSSd;W$?UQns)p0Z*Tl^RBS z(uSM$#4}m@^z*|<(IcNUCbN(-wMD3F@~ zk4;M2Nuz2`iqk=IAlG`W0vq$W8YvZ{)A1zdsCN6LEwi{dFT1vU3)jW~Im(S?A0fd& zdf`wUpYF$w_%=iPz|pkj$P1M`wo7%3sgR5r*%MGmzn!^oGMyR$ow^mLM_hi{V2_Oi z*>Rt-{zF;)vC$B^SvD+Ki*(PRKvoI#ox!quJt1;Slx+2z-~YQY(ZDT)y&c!y?<>F4 zno3twUkEVxiLsk}i}9kSG1#0n9L;K(dlxi~o3%K8)2i8E*F7Yy*Wp_(tfu1AI0IXJQP}qG% za{Zci5alBAyW<3tCjZsf9{^;2$)nYAr<1SrZYX7Wrwh<@(=-d+JP#QvI@09{{rxcE_6=u5{@R2y%Ho zh1|9gn<{zIF6lJW>3%(bz>Qd_R~ehKbH<>(KDqv!gWP41`t}H0W&-`~LkfZQ=ZFsM z6mG`mPB*md4|s6>dq>AAoE;o`;UkgiaCUYUS?w2-+*?vo(%0AbFoBOP@>E;=nkDY59_x{Aiiu*fbo@c*>-}7<2ab*^u^4B3pVn1s(mk18V_a;7y=tW}t zLNI|lu%wK@bzW*}>S3Wj2;Tnscx>#gLS6xMPXa$eN}RB{*rt6<*m53HtZufnq`XHs z+%#2uiJ;OLd^ByJF^#m>y54(wKsuE>{PjE=?sV)?+dk%~YY~9fFT82+wQHi(G*3O_ zzWVyYX-H7d7_YwRduKjQPIUWpRjtdkPH}0+XO_L~+W8uAIlx!n%&akZde_jrKK-5L z#9q4@9aAKipr96m*bw)F2b&R}=P3M=rsg})j=fItWXYB5*Kc#hCdVB06z@%xm~$|F zeERN^n&9ftmm8Dft~QlSkoyT6%G5PAGgqRe!8jeiBp-Mjkefx`Q|8fqtL2W!B*97a z!|(Fo&9$MdcLl{Lq@V2X@8`4Uaqnvb&m=?!EVhL-1dN83B3qDnR&K+FV)_r->*F!K znG4)QF8jM)EVJYD+Vef*;~k22hr!7q_(M~bbKlbyrh!wF+O;+q+=c`1d&J1-_>bRD zCB08;AV=q(&^=und6^rZ{X&j2km5OqGb7G@GczVFn=83ZuQ?t(c(E}5 zAXGRB2>SFn%&cPRV?hDOIq>UW=Ipj*RB>xlS=I+Q6fKL?19eQ2g~4?esTb%)_Vvym zKeE8v^N8!9*4Ea|%?&XXi)X=&c={LK+=%6k)YVAlHT!`yURzCLW8;d73W`;!G1AX9 zXN#TP_SU@Ie5((=-={CXhGtnCsvSq|2%CTpG|X_lhZ={B-90@;>0oKBGk$H@{ba*J zrMvqkltfzm$o8|n{mL1KlegPUl9e+DCvW4sZhL?2hXrhm_sSdDHr_wjtjQ6)+iRc3 z@+&H5U6{Xd#^O>+E~$kyyGo5DON~G$#8p@CphZC8smDJL7yR;c_U1Z32ltz|td;_4~M4`*tlpiaVL; zb>Tv%#nQ}X*taLr0u*wIogLS;J}75e6aA(=1zELjmKAgRj`N7_Bf$=?Qn{k}!556* z(|PsNdEbY;I8PCdD-z`~s;x)MP*>TECv1Rk;p{$+MieSeLwD_TD*KMWhV<2bSIogs z5aoZ^=)nsfy($`gz)}!v@b9b&>&`6{64OR2*BF=jIkn>Kd8%sR{nze^iHWEn{Ea-q z#>~Pc8m6(CdPD&mZ33oXIA^lV)Ua)rL+P{2@+#N*(;kKp@)7r0mO|h8wo&gHyd$j~ z{#Q8Nuv#<8ZoH^tgo@|EgP(JAW)z7W>Ukh);$+|M+1`S`_0oA-p3U`f73wo7rD)xt zkyLaPB4Dq%KlS3v=T|mb0-c+l?9sOzRZRv+Q>>E$LD>;0b(PTlaKSt?z6lDsh#}X? ze30jSJ*(vOq-6unE`Rd7E!Dl*w$)L7Ncn59i*VB!=;`qz4o1Ox-ZNi$joZa~|9%md(E`!|CKd-SU$={u%RJIE% zq+dR%V*)=H<}=ir=1y=z#&i)Z1v5NLGS%n-MV%bXFP+>S{@J|+B5^_Q zy`I%@dWS>hA8bxnT}-K@Ja-QIJS7iJP~)bd90he@CL09~{HVQxNoxJ~HgmC}ojmJ$Dw(2BDO-7GX&i zc6!2pCgXd0_z+tBWhX8o(7pPv_7n3h=4$3E%4n>vt}ZSv)`BOT$8^hnnNx1}Ys_$w~ zZ=|%0**C}7b5&6+QlBnO%)s_vzd8TD5WTYEGTR^~FaLir_LgB$eP7rxii$`nNJuIO zNOz|+(%s$N4TAwlBhoo^cQeFD2+}olNq6_aFz-=+|Lc985ASuo=K~+O&YW}h-fORQ zuY0dBf_;INE$7=Mk(i5(8>oKbk71JHN%Cdq;2>c&{$0MKLWoORQl%Ce@;0u|_k5p@ zIOKdy&~;sg4&zTlCZGyTEFg<%>2kf;P=Op)T5(Q`2E#>Nv>5y!2Q*yASVW`X6ob^F z4zI<@x%`f;P}|88jS=!T2~_PG^S%_0LP-Q*yf&YtC`0cN`UVD)89;Y1rq#-)kY-ri zISq%)YBwN(5g~8e!h(Yy@odkS`Wia4J;5SoB>sW868XJ(_*X*!&DmZ+78JGCa&e$S zb?*ceI4vqn)PM;nS`Y#h>)X*s7rV0)ot3~=f5DHk~{*yLhF? z$i;OrZ8ZH1mX^_mfEBAD<{AmHEZ0M09US}A-(g>3x7{X#g4lMpN|ly{8((w&A#zc& z##Sp==NVaU_Ol;%VboTH(hPJ!!72IWC>2x!0=FrJU{AY=g8kAq@bcg*4q@b7Ego(3 zbZy35a($GCC`#>9P9Z?34}UNJ22@Wo1ai5zti<_o5_;!)vMQ+}ve<(5_=#sJq+Qr7 z0)Tr5$17bVJdQ6}gR#l@71Q_?IFs*DpUliHg&P$Ek|soA9Q4<+*h~O*%7Dumjmo_l zQP(^$FOI>ED>(tn$xmUo&O@oFpHYpbfPryDXv z)h1e$oY4HxROI}w_WK3~@aoMS92V>Cw8l_YS63Sx7IoFt-|oKO*fvfjUda6Y>!Cd6hU$^`2!m*zPUT3o3- zEQ-qz@D#k9F=JyJ>wHN{X1C}WGhbmfl3AbO)>2h<+!=f(S${-B&1L0>pzjAYf^s{WbB>xTSp7Dx`ZGLIqL2O1wP>4q#yCwjCt*#DlY2}-&U`0wI2>1Dhatp5=j$3>NP&$v( zVRsnL`61cv+JTTsXVAt#B3Q^zGk5H7R5gktPm1W8@;6V}eghzet==SJtOJsO>I0xj|VZPr3x?Txn83w6jkprT?f1tJ}t9g2Ms+hqqLFe;}!i=Ff04&vca-V{xrGO zjRBxq{2-ur>C2Bu2sRHEE3_(q|M>9(&~p9e1;})&jAh}rTXlW~8kI(Og%A3;cz6;A zI@;Rj>^o1*#_cqA^8RS@U}z;WV5+Rwu08CWeH4m2S7*cFF;}+(EMJsMrsdW2f8lFh%daWWy`!F>F@;ky0({d3Sj zqXu0j+mWd$ZeC7p&Pb2FX=-ZP2w!D>fvbc0X>Wx9nm%4h(7y|~Q1L_o4 zp*bPH2pkWK2ZKt?Xy`YTju^FBt$+VOJA?)z;1@ctUj5zhAN8U~^IhovhRe71Z7{1+ z#V+)Tqg=eM$2My7)%cA)k!v-=e=hm$a}?kLc#x>d`a*XBM+h~Fm8Sk$`kqV$OaqdW z8>kA8`t3okC(n~Mkde@&PT3~5 zW3(L+-{5nfQ66IjHfzH7RLb3srn66tjb76gfQBX&@H|)C+f*$FwCJ><-$kr6IiJUA z9y(C1)M4IpTUo6=9DYTi{MDUFi0R-sTYPJEwPrV-UiOU&|5XCix70(^Ax%uJtskoYLmV+dMJmlG~y9cyW@dYj^ zJ#h~>&@qOeR0G@-V3qIs^y&KM<}*$*Az#nRuJkjw+--jFMB#{e@ubH#>1!ctV`ZK(V-Ui_!MW1d56w@7 z_Kz}_E99v>n=zG+AxEqPE@Ke!xxvrRMnr&yVMdQ0x#M0~nwX3g$Dv>5P8TXAkI(AB zRCOv@`etjb@{$xB3WH*K=@PQD+i-S31;nUy?kR#k{lggoZmzCCR)RvOd}YKHzszzi zc8|MHna|?r+>^En(}7f;M=r?_Qak z{|j;3#eriF#P@N!p1a$`>(*g<-=%RQ3PKBVWdbBo8Yh9SsH-dnxYm?_zrVJ#LT#%Q zXagNp$ol@Af@QZG5DnXN>oHcqi+B6|8>E7hX=oVG)oE{U&+oba+E&T7e5uOiizvS8 z;VHlsw5P|vmG1x;6!kdN;7jc4ni|}C^{G8M*SqTzh(ZLlP(`s6Q5?3tXImUD9nUVw zl-EjUu)|#4pWHNEZnsV{kJ(s{BeV?SU2#Dalmc-;mg}r-rgkU>^w47P6h4?(lA&=w zIG=00s#SX@AtZwp%|@FxV=m)W^X<2CutE7q(@8!;%*!KiQ7WRQwsDVaPLDI$VZLE< zi$4I(@7B?vZS7K;)0LZ>`~4#79&1A~Fr*xEtt&a4#at`YVY4?DkpjKU-nuK@VXp)rQ$R`8#^3Z)Cj=gDHD4(6WE>{ta2^sd^-Rh z6y_Td5h14_hflM*zb|-{;1h_rxLT{VL`TUNJF3xX|KWB^3#mjl7;+kt>n6Q__kfdr z+LL^ujKd#)+QhqtBs7MFd9ij=HQT!8G*j38#9m58)AjU_iPxZm^SoZVn zi_;?`fIAHPQrE1ilT;y-5EL9dxgw#pdqEB8D)Yqxk61C`oqBrt>|u|h#5!=p!QA~a z60uxHYl*0_o#cstHv8YySa-uOj=(cbcA+#1lRrJj7!LSn)td}E8gu85(cJD0eGfk^ zhXct)Mkn**XijnfAm)4lY$-7uWI)^wP6 zyoe0P5x)KgYuDVW1cTtR3&o$szc@HJNFErpdXMqyMnp!+%ga3XSpEIm_CLi#bvGep1p;I1rI2q2XmdL-e#?5-FIZ4GOmv_gH#eB6I%<|wW79Ctx9qM z&p~g6!M`-Dio`}Kuw7LWpOnhGVOy|2iW%dI@e-v}y~tU|fm(eZ_vJ-5<*fmCDX zn0d;JW8Vj`u=pnb0o})zIP0{&@QWL z3e0pV*Gg&3IB(qy0qAki!QN=tdsCn>>|{fEQ9d56;zFN^;SeAI+kh>l$H7q%anRor zm~Dx_qub+jQ&&YoJdZmlVrHf(Qrwi8f_94_oP>+HE=*-ewl`BNY5L+so&^1RhF@*l)dQfg!Ao}X1VoD<8y zZFD-&atf@9OP`}RA4$BCaX-+P z#JV%m{09$f{m2d^WbgBXybK4=1GWp41vh}u#xxtfwsh*mnhDy^g-Sx{e9U$^^*ukB!1t>6KUiXfH&u(ix zsL*rTLbFq^uyf*Nj&jLmf`(CEt4o=!N?KHDfPhZ?(s-i0NGsDphQ=hBkV*@xHE$Yz z27=4>IH$zoprO)fi$P+lBl$QgF~Sn!NW-NeG? zU1IBQ1cOtMuR-hd`_MZm((UxqV$O?i_1NShkeJH2sEWV_n*SeFcX65z{v~47Nn4I- zkucy$+HK)f2QBg zugM5$jPX6*Yd?)$H?;DyJ>JK@vV8!4%)yP4QY&K{a(-*g{{)ki*Xxk9*ry^hOis!- z1a?O=DiKK{GHj5KTTlCwNIFLSUNDgRQr^(eaFI9_;4tT_s3H;fw*gm+TNKX$dud`t z8!%~$x5I0{SQG5X%=PxMdfV-JYz>bJj^|~)fV9TN&O~o#XU^q(*xA;I7O}DlBqct5 ze`SZxRtb*&>=3_ZeV#f8l$W$ToYBJXd0x3S>cC@cX*o5vj67&09Q3^l%O6Mt)jMaS zq_%++vzb-ZEO(KSxJjzh?fwY+D<=r1mkM@T%5jf$fn(1BkdQUfd;KeF>et4zBhZAf zJ|3>%?b3}OeWGU?#QG)zvABUh-H$(fFK!8XNlI|qIWt{q*InmvbTOj@R={9fR?L2u zc{zOhSemBIsQ0j}X|3K70cxs0Omdf#!-)xGtWxpbWBEL`=+C}4?=_$YqVUP@x?9qe zB5ACvt3KqUGqt(E)jhg+iwg`G(n#Dk;qhRt~cKWvy$j}-1V%Lfv2 zqvyzfK&tNd`IK_MvQA94CYT-u&q^h{V%4~qeUv}e%Uhg0pX;Q3OwXMW@h$DDo|MzfC|3%10`jf!a@(R<1cAnh z?+{0+e7%9UokvLa*_R(tMw0=G!V*ZV27)3r#ws3cxiQD#*PeBbxJ3{fpC%;E4fA{0 zaM0%?@Z|apPtV*Uo}DUi5eO2Ox0~pqKEcF%dR(bzms<_^-wJ{DcOD0o4;6x74SJ1{ zZy7kwU^{UMnp0c5AV0rb!;TItLP)ah;WuJ_kKOa}e7VQAH2nO!;l;b$g9fjfTbUP= z`!R_*XXXo;zxXD^$EOSF4gL1;IJ~Cbfi=egFdre%Ql{VR+8z3W=2hALlf0N`0O@jn zguHj!jV}iK!*{|d0-uYXaX}ingGNLWJTsyhe>zE+V?w7py7X)4dq_WRnXeH4=W-z_gnKJf;KO6&h@H_7+vUO!Xo%x+3SA*flfz9m3vT12e#Xb zX)ov-CP#$5VgIuoyx*aOBBVLr534iy*p(}y=izHLSZtKubNgYR#-E)2c%#(ZCXzJF zT!cq*7GD{2zF>JW!E@i{koUCUI_+z&=A~A7fIJ;y)3LmU{?-INV~4BvThmK}FgZT| z8s#S5pv%$wQ5}f)pwGqbX0wmQ*snc~`B%DUZtR|AkeXBVST^2nz>WG>FCZslbqr18 zy+H{gLaO0zV|<%ZI$&Gd*I!C*D_ZgW(o|ySpqWg|6;7rtX#gF4Eb`no-!|>`+;Oq* zJ)F~S%;xiSPH0m~k4iYbh-sHkKp{bMM3j;pgB6a!!p85@?SaPvJ5o#%Km37 zCu9~UeFm9eoaUS0Oiwa>RC~zpvYj!jeyW~N!aGk4(FG8A9^j-OO@ zI2{SCtlM`_+7lNi6%z>U>4J=O<%h|6>aQ343OLb8`~dy^Cg3(G9FCF9+xM+${r@iH z%m4e*;IMgXe@jFPKNO;J3D!?-TL1q_r9y{2xD)ZadN2yBM?ScF9Tb%CG3eDJ^qlU; z*gt}GCG|!%v&9`4X0)m+HRk!@C7z)H0k+7Iu@!H8yj2?s~`|%MJ+*|sFkEgkr58b)_Dt*}uC0kC3oo(y7)oo^6gJ;riURmu@ z)Z5zZBp+2G=GDcHnWdwJZGTDGyHdX(-K;h=t^(PpP!*#*4A|skhJc^r!B;zUqNld+ zJZFwgQY}h{ln!X;G8UCA-sHBp2D6PDppM3ul#~QrQzdVXyWBi}oNr;F8^WwhEZ|rc zRj;tsXy-FUIOe#Tl$&ezqZ{QwJZZks@h2H?m3JTR5W&>m%iXvt}3stflNtHxg z^(Qbq%HpZ1{Z{!w-MzA={z>yr0(GrDFLzmz%#N3Ym3M4yg55{i???^-L0vwn&H7E_ z{f7?{%8zN7b!3M3HMxwM+@Bc5Hpy^cGotI3bEEgzt?;xY9kZKFhdAU_KBoaIFX;Rj zFFy^O5eALN7wNb)ysMB8-SROocniKX?ZtTeHUz~w=dP#HL)~exP3bXf&;pAAEzSD$ z_=4oZgHye|5k*!XvmC582rR>Byij5+Feuz0vTs+S0&3oFSZj0`c+{JHA zFd^UglM6fF%qAEIw~4m4Yh>goM|MDX_r`vWg_Bv<>__=j!M;A(ICdiTlzsTc9@CQh z!EQZ38N7%(7P?jvWD9nGWs3rbQ54$RwFt`m@!T?n<|?o*wEIQ|;xuhr5`*cw)YBw} zmY0ocb(DYRtVSd;b3-#TuO&IfDp{r6P0lul2$}V>gmYvYS=rc9cx_ez-j|};k?aA= zVhV#Ys6C%dhiuVV(-jWCu-az(KqF%8h?rz3c(yIeY~zBV#bfBn7;trmF09tc-QcSz zqV}DjC4c3G=~?(oWX(bAQ_&<>6Tf#rmjp5uENJ+Zp>x8kUO_`J13JZOxMcJL5l^~7VOG_VSL{d)v?DI(vrPG}WwUT>y zzI;G%;{u*!AU4WlbV`~mR7np%t%T~>I)i1(N(M>|2W_edL1sXc^^L? zH<%$+l#uAI$`;ouH&h7Dc$7uhd{U(=>^VCU`7M#QrO7*`Z@SM%JHN|@If%E#dFQ2M z@_b%az^P>R+tFZ!wv#4dbqO(}K8uNRj`1lE-&rErsTAINr(lKxOx^b=kdD_hLTRP+ zjr)Z?jrN0#erCyn->TiRAr1aCy+ni?`jI&c1*ObnzS?aWoCw6!PhA(opIzf3X&R2r zYKmAwBzSTYhqr9ACjE;v8_l%D%ikE3Sl}v9$NA)#w-Shno}a-tQr^pK%=Uz6zW&9U zr&ZC0t)=(dvBMOiSP28z^%I@HeoC>egs5+FM}4-CgvbTfS=h)17A3yiw1o_6?KSDc zotH=2=g$jFUwB~JqgOjSXB&Eq``AaDwh6m*v{~L7P!@pt>fR(yT?V<|0af0+y=f{@ z58f8rJVFtTdF{UQ0JC8+)N5^sOh|UR^q1TS@_@tCTArwY2D6|{>I!NgdZetY3vpU* z|5dN8G5F*7<__Sx@uFT5ipVI)I-C@opOfHF2#zwkvjGQ62dnr!6#$SrT|Z(O3Dl|m zKtlG(hB?G~f2Nw7JGG37Ca!OMLKl&HI#oVz)*CfZR;%)0Jo5Le+rSy6I;o%J$Qy42 z(gDsgGMnN~NY9g#c?o}VcQ!9eZW62WnGAO$T-TRqW`+{r^t_B_Y&Az2FP zYQ^eSF7ix!rpV8|bRQFlrOh=~bMjpuGf^CaNx%oCC7Lb`o3x+45>IH;SOMuE9?UGU zrS3HxXt@Z@e8a!7D!N=>fAsk(AdI=&!SIDN3JN9;fy=IA!IUD^H0e=hcd)Aa{XArj z*z_Zje4CCu{<*Ay!QygYA+v7X)3As)zPrV*rD>&eV)YuG>bb$Msi^^Cu0=wPJTr5R zR{pg?7%>tbKSE}@sG>p`B=}-N-&evxLBS^_#G~hM|NA&YU_Jk*izAqN zl)#sSgoI@xksK;05_D?Bu-wO35^OQ++PY>Sh>6>cm(l2aIY z%;Oud_>q=uoeMWwa?eu%DiP~C$2U=eN`W~hwh_Ze({h$;KdA~+56O(xQDB+q=5z=& z&MQhc42>|7jZB~MUC-g$Ii{o0T|>Ue2%Q;$nRlD-}K1z;9#VCraaAnt=r>50WbEV-x9U8 zx6KU=X1&ouUYCqJ?6B>#W{xe(uY=s|?39p1m#yJX;6R#DS%2Z>c#{uxYAQM@kK!evJ;=slCqfcDTm7eWoT#9I0-oCV$sak4jR*FT>Qt`Rxn=uxaE=IC+x zNPSUT3GZK8@ZdMZr)AN4OMROE$(y-j_^pmZFq?=GIpP)7i+q?-ij)PXe}jK{Z54{^ z3FZUVM?CrJygyW6bUxAQC6%lV;g#uP22g@TTXaUVmiI7<684K0pSgnI<#!b#WxknJ z>rNvEJeJ50{PJ8|Jw507J*D0@O1cWtwc)A^<*jmVKe_TKzC6cBDppS|@%$1Ij1eG1 zuBoqLaCIs};@c$ zBkH2loa3ge?S@XbeeJ36RfV)EeKRWP@p(qv=e2n+@WHlHOo0_fGjE;q^m=tmC=2r^-RnYZHz^Q6?&R6JTGTTQif zwypL3LC(Eux&*V{$PI0`P^r1(3(307>y6*Pc^%-KIRaW0`YC6fXD(=~C8hP{Src@E zR$Es~Mr(Y|uODoaIVJ{`x4CVsP?_4YncE|ilCT!rO-2Vk4WD-BL-u11Y%+jirbRQH z8`4q6Jt4;-7w2tLW$0NWACoLI!^)xjoANY5oCml~9>@}uhsIA`sb8IUW0UmqP)6=m zdcK;v+A(pr!Rw291mr~JpRX(2nqZg0zHTxlv&7h&6y5J(P-~n9Do8W`mX3NurfDF7 z{9tFs)qv`zz`xOQt8xCA5L9aQJ|Im|X@!d%*BTiUQfN_k=^*WED5K$+LjO#)TvF2@ zKw8MZ2aduceJa{dS}rcW((KOwkg zL5^yb9X?r4A*_2~t$Q2ePRrDkD8-_?$$PNzyz(--J@l}@y9OGg>wv%Z3Gaz^<0wD! zNFbc75x2E!bU6_PMX-T2B`d9pRM7w4Bgkg)F^9OGmPWjWmYO7HVs&-czDi^C*vIz1 zfsy6*g9ss`Ty06G=g(QkhLT%gAr$8;h2pe3M~iW5YM+6>o`GTeQ6jzwp$2 zT}T{BR=6@}VUIn(?1Y&R`+PC`;TW|X0a(cEa427H5#Hi4A5Zwn_}K5Lt?{*BI?DO8 zW~~9s5v1Rs`hXU#uHVc%VbPLO$8=EDn$|4VICW4gTAbz6yJCuRd*~H5&9ICtexmLP z;_i{>xik3qykXIH$jgZz_f+E@7!q}WcRxAwZK3YGPCj;3%ZDNJqZRc~WM-TCi*fJA zk6QHTDzu_WQgt7rq0uoXSoVMqR$Ot8y<-n}5zd2*Bm`{atOI-FRXNb{(y%W>$ttA$ z97T{+Xmxv*)L|D!N-N0U%+%(pN2}*cAU*uV5^FvKu^YjR`gC$4ZD>;F9q-HTfJ|Gb ze$XjmrSX}ZlezGqhPmKA$ewU76{@*eX>Ahz>0HY3K%0gBfvLz@b7AiWB|U*DzqW5v z^5)?XCYN+(_y4$n30K_N;F{Z7`y!)Woi4%3L&hfOdfg91%!ZoelalWl%1IhPtNO^U5Bm8w3v1kbvhK3#eDCI0IEgcVqyxIlEo=y)t0%wl~#1LhGN|TB? zt#7EN;a62tb35Nwk#`%5^b7Q&k(*Cp)<{UmJ1bBC7o5zQZdh#W>>OaqEXhN4R8+Ec zp2$kRr;>tiI|o<$R^PUZ_-{{pEgM|y*N*HS8;m}oU(8;bu55?zY8e3sssK)-?Jr^( zS1{dVx%x0ezWN47)ms?PM;MDocKlM3*-`L5t(AY(z!FBwaUK3H_<-`*&4#l>qhHJL zsa`Etw>W|z>4#F|6MAL~@=$PfIEp(MLuHoaKquC0=&8xfSq6BWXF*-V+i9&g!B!mZ z!O*Z3IrCc)YYK0mJ&y1^qpY?4bi{}pJ9A^f-cfone9~qR>r3W}TJCs&HgV=QlWst`S~YZUq6w2QQFD=Jxr@xf`gaJx^9=)?F1| ze@e2G9#gAG52o>3*KU{-)-pn}35Yq+MR`D93U2*e`zCy8h*&FB1 zSZiyIymGai%I1;d_d_X^_LhpaUD2useG+d(D9oK25-oquA>g#F{CT%yx z+1aCbhV=hMGC=FQ+Hq7(yKv7p8T^68UJwDkI@dBZ@;~$Jdp%-_IMD5^9;nX)erIThwZowGzXQBaeQ-4yvodkb$7CkeC<+;(F<@}2O4U@+7r2|Li z)d;Q7I$nvkzSo0`N#|)CYC%`5;8v91Y#-krFk2n&bGcqPErOd+&ar!XdVo+bAiWqT z=HAnNe7)}x<^-U}+n)Hmh;mh{!+=6A&d}s?sc)dEaAmEBuP@? zSRqdnXT4=uL8GyXK=f4c5fAsJMx$sI@z{;8^bFL{ zFS{Z4Ob-tJSvw-6WFhkih11PaVH6`4?K?a5MQ*BU@mnDL$Kp*bW!kjZK!lO-TJa4@ z(WT_~o~|ra+gjB{mKyXd3?t;$=IR08G)AeqorGWsJp+_H(Co7Grx8y|m}{+hzlh^q zs-dAOLT2{Vq>rNIaPY=(?i4odI{Tfc5?aNzH!=uUum&N2e$V;JpG*&N+=!~YXH=O_k=B?@xN;?7VafJR6*1JblREezw4zn&^hk1=+t#Px z-S%1}!&NFdBnw%G8{~e8;+dkRGFvOsTzZ)^-4FiVD_N4B9SwUf^cvE7H4#8N5k8>q zN9C6sSI2VM+Vpd3L+kSJe#JDiq*~tpwlM=KXWM2h=Ww~g!sCCk)>j(5`r$$($6O=9 zqC4-TvZT4!^H4DMq$=EzmSL!+m4*LMvD8bUyZDwH)IiHjom*7)0iitgD~5L%@#JGK zs_+3M(E@6+bVO>Z?cVz;1EnoFHg@cIWeEt|gYTAB-XFy&Jtaz|Q!AVkux^ram6esX z{qUh>sE)4%%&z_V_~c}&?457#PulJnB0g1G@gJwQ%wb{4n>nv`sh?ZxniP@aqY=D( z`CT!Gd~SKUGNwRsV0^-$s1Ak2u=Zg_^x42ObW0wM(h3FEiC-%gbx;Sb zO4;7}%heBCgAO;6P!}mu_kx{!hg?DxDvf5sP|&*;FX7A5v#827EbH?6^{EvnCo)I> z#r!6gaSLjTdL~C@hJJpe+LX_D``qV&Tj92aYsjft3(~7be*8l>4SoUXe3EM<0Kp0X z+wrFKo~l*r-qf^U<>~97+Zlfkwise3T9jv+nwoNnj4qy@zPII#=tM7<$8r@Exb$Do z4i7W)(}cLQRb(tSx!^(g-EVFR!Qx_Kh`YPcDZn?q5-Mo6{*d;#eOESryhVqMI7XR= z$~z>kmSYT7Hd_m5{DdM=YuI*dUWCfn*yX`|5exl3CI$|epX=MehNomRA^k=wzX$!F zKJ42cJP7%Xbn?7fVke8yx8W`*OpHR?aozp&^I!`n-aKl9hIbYYDR}^(6pa8zgWvEK ze07T2!&qjW%?AZ-wkt9t@3;t?F<=~QY(AH>TcNRI^G@xOKSU$JtQ}nwaoapVHieOh zQOy^3I@>J1lj{?ct`HR*={jXSJ-^);wMM5!%BS;e*kB>}5YorITa?E^ZNcZU@-xX08wV@`kWLv&{;xQlm3aoufcWrj@;{3#ecOfU z@#+zOSEu>>ldCu3aor^~9|So1fX3NbkDnSqf-bVqyO!?9X4FgBxUzy`s`Bq679PV? z)?9!HK6#MgJuL~(ck&Cw)pEIh^>jnMea|!{eTUmS`F(776wUB$|?54dPWWWX%Z-n>;R}%yv7aL*Id3|xq{$~nC zMn?3ewEU(Mjg?8$za5_%45teVSq+os)GMU%v|X>t0Z~?2)I2rjJWs8=wkcN9V+l^> zh`R%1t|*QE7=DLz%$zIu+*~x#ELkZ%nMkI#fq??&#r9aP$UU#eMnC>T;uPem zKdrQMP6h-55%6;K@+|!r_8?kU#GPjwh&dZI5tmisz38PF2?@F1Gdg;9b{ZP3EW-W- z8+O&_34~0I8W1TxxeTPyzQ0(1cZdR7esB>cH``@|Wbu1U5CJSu`5X5!wzQ78;_iH$ zFS4Ru-&%<3#>dBbl9YK1ovF&B2W`?8X8tjkb^*JnK<1f< zQQ-K+p{0dvzG@C#iaZTH!HZEDZSR@&zPLKDomfB(wUG=>hJ*)eN!knXQD`92W}+aL z9Jl4@cAAoM+;MwT!VnJ+j~ngrCGfQ$H8XCj?p+l$xGpq&SZa?O4W=_w)7sV_0>LGt z3OrQa?D^lu8EoQ7U@)@2lf;S9u*N*BK8kA$o6B-{Z|@dRvOwCA z)}wQ6(H}wW+yP;qh=l!l!6PGsgKtMkR9^fZ=UFy&t1I6WYYs%-|CA#Xs7Ify_xJZd z4|HHljfxtYsWywD5K;8~mB66I4Md=w#3=zjRp=DF`J4*)R+MK9OY%DJF%yrElPD-? z00CKMoshI@qO!!)gA3s%ReZT&ZtIFBn-{tMjkx>#Foz2RBcc%O(=%R!;Qv1QMJkHC zylW2AU}&iWG`=qT$Tv5ZO1d3+?^W(jE{|TFsN6**IJEyS7gts z|7q=rSmf8^A83lHPD+~26!P=jpV?Vom#9mOP03bx@b=G401J2cbyO0Kv}YK<^)f+) z!t9|zOuvCJ##Dz-|7dM{*bR;F8^c>TGr)Rxyzh8)KDpkfG&47c+ht;I&Iu%F2`{sT zkBUkwgK?4fSG@oimm;v7u`L51I&VUC$(ZZz?e$y#^`bj#MteSzj3?2ZJmP068T;+F z6O_rYHE8?moOH~;Kx!1xM$zpYCVH0>Uys6U#<3*<#?uW-ubsyYPV=C>O@$mTmQPt| zr9$HK!1T`+#(Y9#xwyMyCKHMNI972Pm&TZ+KDwaLKkyl9N_varK=#i= zEy8+P2;P?tqQx8hp558m*>WGJp`UU|MOyFIJYF|9=x3BEB`4ATHz6pC4+l(ae$u_R zH@>!#(T4zsXv)X{2H}{G9sPrYz(QmRfJaQLLka91910b&_B(7xMpM6yKA#3Tc8_Xn zYhzLfr++j#CFOO_8wmx1aRn zjihjVbr-UtEd*vO*1Ei|?!1l54g}vRY)HGgjWThY=^jIRs>y1F_>1_r9EO83bW zfl>*^`<+6tENv7i-?-g3LN-x-y?G!R&XyDc%N=*wop2paZwAtY6a+zcz{D5ioxuhBLBD6*&rq66YmwXheFSqBeHW%zXMxB%_l68mR*34 zPa##X_*R_I8WmqRl4!@w*)C!%Jw3zf(Z~$43-mCnprYasRy?sBc*V4nce2(?vM^`L zsivl8#H2}N*EusYBW^NgR~beTeq_GT3_5@VDG~uJSB3!<9H7piSSl%bztg^K@epf1 zoSG%dc@KyGaRFUuH~<*?KW7*Z0rqJ`mQ6l7M{y+-_ga-ORd)WC;n@`nq?{-To^)qc zUOgWrnJ7@&+gkmA8TXH<4q_ga(A1pTWJ;6Wx`E&9(u-_^0QP&XjCG2Vii#?&ox43C zfG%%uvCXe>F^ucqPDFv2e%pF|#Tc`NjOv!GRBj%y>KF!m3t)I0?ChaaA%1=$C*3a} z`kHkHp_AHWBrqRY!a|Qnv&FfX5m;@iVcJ0DFQ9jyEG}_^HYPcHJW*LYH#e}5ub-5b zlAz?N??DUjRpZodv}Esl7){c6yQ%^C>9B<8Yx`K9Bv?lw@;>9uj^5fuD3 z3$3Wh6v&)WcYn`G9V;^hI?nEKQ=m~yz230`1M&U13KwoJ8QcN73!iu&ipn@R960sH z1mK-v?X&{2;p*TJMo`Cidk);(e*AeetyY`S2zrD>*Q^tl`_jY%i-vyl{r)JRtuvaHD0%J@pOxyoVlYb1hqgHrC zNPx>!#b+M~WqTy5(!a4V>vmM>6Ju?@(Bx83P#~cO1SUewh_DD2wRXa?&bc5og`b4}JHCsy&fk7k;7uF$b4D7j_bMhll>Q zW#EtG$7dIfRaLKbN86u>Yi=6k1PceiuOp9Xj%RXl32kAZl}@dJ{(hM)Az-cA(ZJT9 zd>5c<^}Z|%?E!MN8I@K88_};g5{a?|8l8@!mgN371uw*sumROai%a;W>Sc3;2_)IS zx}+rB`YZ89VGkVroKqMq0_a+PUl}srjmOV`3tN(Qk{6z=`B2(dz8!BH|`IFiB2U{%T`xcUyz5& z*128mYJ^FM)%~d6jN}@uy?sw>YiFmFE_2r_avuwvp>lHho?A0vXl`sSO@KUrzpGhhp@{bKX`uaEm6Uc@968HVPFBMaiHDG8>`eDV7 zd|^b$YF&cqv3nS(9~^jplhu@Lovj2G&XuC-@{`xl)I40Q<*^4Pb7QyxhH|K@>x=b! z+S>MauTox3PEJZ-=nJ&CtkFD2ePi_UaPU>s!0~@?w?@sDD~*g)2w_GnIj+k;eDbt8 zqJu90uI}Rl(67bCJ54TYPtQq#CGfv?&LPW4pHqrTSRNXtnR9VkO z-BS1;3y%#00K~z*PFGL<&&zjqfP^XCfFD2(4HgM^B+)~97e0?&SWf6uCWhJneZZ4! zxd9;DU`9`54mdZ$`y4ed&LV$(Gjtboa0op=M%I z7^uB1e&J@jkp9Cg7ue#)3mv1Q-(~`q@yersxW(@7pnt;;yt{8H(w3+b-zZiu`EX8h z@xXO^)Z|}AE&$KIJcrc%_|+Z%K_8Co^ZDbaT-T(S0$Z+oj71s_jjQ+pb$U=MLZc~Eu zWut9h^hieETqA$I`fB)*-#T;1>UptRe*T>29I)wt&`d?7Qtx4czke$l#v=)VpFeR_ z)l|cn7n(o-$BuV!ezZ)%5P9JUEPWEQ5y)XIr_gHf59F4R?umXiP`&w_NtsU>!W?ce zR>RIwEbvyh3P?CRyP)+A^R+Eh$^hMLBnczV)&3>App51|hj5w>)*Tz(MARpB#D_bG zE7+V2waKBsb4~J419r?usuSs&+9TZZ=BB2>WVSD&jTldpt*xAt>fH7&nf^%4%Zb7o zw>qXhQ$SVjZAoWM7nhbYv>IIl{*g-d90!LL&D*!n7pv>)NDl z{{lh~80sq0xXib|HBcSEpvZe52ZfrNIL^%_7) zix@pzjOO2mb|D4Mkb(tUT}88x){Ju^B_l(nc~bWxVyWH3?!7l}0$;E&2^=6< z(H}kBW#4(IZh85;|owRX+*Ch0d8QD~Nq+CpwAcd-q+a)e)5!;4p22 zGEvdsH#bp4D{CukKY#<`j-`&7?im;?zR#T7Mn_LiPe+FiJgj<`B|$md-|Dy4<3S($ z=VbT+YKM8s*#g?+RDX?=0ku%~Y{2UX3l(+e%2xF_>Z8ag1-K8Ur-4h(T3Vicvf-Q7 z_kTZDlu93sd|*&t{T*YR;M)uFpApb9ZDsAsj~Z_g|RrI zc6yazBP7okMg1(vYx#Dr2kx5SK}qlVk|$5=Py#b^J}&p5u^Z` zOK553k)79F{&&yczY2m=90u~`8B%2*SZnu`FpVTT4xqy56|pa0Y=69>75HEg!<~Wm zuff&7pON|aixU<&KwlvFJ69pNU9?L2+=4o4mmfvHA_PWL;4H5H@|pkMJ(|$V>Hg;^ zw(NuP94}s%7PGwE4fGYzlK11^nlvc7>RLdA18`*tyi!5#;gk2KGFxJ!N>%VJ3E(Ex zq?ZOd_&*Da=qXyT*zjfsRtIQ%d$t`L2@@(wNc1vIGdv}v{PR!I5mw7zg`tAJ=b=PR zz0B@xUYEqpa2_>9r=ncuKFH}bZAVQw?nB-G+Di>h_S;e!NPz3#ihxW&-Xg@xP&2=RhDOkYnt>U-PlT%C?{K)B?0u zlAqB1Lr5w+0^l!CyMK13619I9kOfY4)dt8!)4u(!y!H{&A3ok6S^IC9AeqHpVQ>X>-80o(^7HKiRNLm(T!rS`iwQhfq3V>@@@xg+} zzklsM79z;TnC}|d$`Gfqv^Tvb*GCF@*lp*g(mymnY5rTLdDPa<;yc=7>cF0V=z5#o zBgmO7T|u6Ri))-6U5rrNSjhVGRliZBPGa}5O4z{UNM>c62HrONzwT5YX+X-?$Ne4O z^8)_+^v|)eOw+M_oVm;d8(YM$UcKnD67%H(2$8RC%}{_5!8AHqh8oOYsv49>iW26! z67E9NhQt1Pn}R*Ndz6*Z{o3Hhq)X=zzCo%}X-jJZ%+|C_%q>Z8s8)QQj` zgsRXG%*lh=$_qUHJ)FNM)XdDTuc4r)f&%y{uqSI; z9#6?{5b3-#^2sUUG@|uVd1^`VeRfh`ud`-&b(TFUt`DcOHRdAS!U)CAT#%?gckTkH()a>ZqZLx}ZeODoOn z9rb(b8mRxiZ1e$s{&&^BuKw^Pj*fgo7EA+x%y=A;6A32*_M0=v2(DF$$Mnm#gs7kZ z0G~5c`!EX|d z_VPazG*Doz(TwY&}R&mcmy1SV zwiI9tOnJ=Ai(ImqJn!3_3%e=LbJrlV|*7( z47)#yO46G>{M^(1&~-mLh)DRK82x+tXwZYN%y(OqLu7)XpGr$hTbi$idf&KYt27U| z-5yf@F?;`AAD4QS#R=7-zo`B2H~kGLKSb&D*+}=dUfH2s!-N*blg58y_wV))5=hgq z_H1u=JP|v+i|p;`WT%K(-&!Hh1~W1s{Odm*|L@k&Pa(_&_I^plFS>u^ANXF}|3qDP z3I0Ft@Rbz?_x_Iyc=ZJk;G%K9misXEn|PMLg)iu zb*g;aq^~^puSbdguO~eQp0wh9{Q^~8&*0{2$||<0?#cftctreorq;;;2BF!-<@9ok zxb%H8G^70dUN<&|$Q{&~?jI`67#GV9vOoW7Bi|PsZVUw}d~r6Grv0qkmghTW-?-TS zE`o1(S%DNyX>p<^usPzB|Xtz`3vTsIT>}3C&Ju~u&`8=F|zx!?>~pv z;EuNdv6{LyA7pn6bY%4TvHy)}n?$Z*NK|VJziZF3r4$@G{mzu``Q|!-#y|68P4=aO z)1rn5h8!9KOvt4oqW`UCj@X+w9(j$dRXfL++|$2ij6dh3vb*%ta>O>d6YT!8e)m-? z{L#M!0(maR?5`T`u{qgyg#xMnB7FDQRAL(+ov`Z;gqVq1B4060FF^MhB^AyyynUJRQ%s5 zlo_>1HxLyUub{py<%#_F8~QW?N=}h($^n{uNHdt56OT9jb+U7ysPZHX0_AQ7GIJ+= z^ZEPZqhmwJW^tZB} z-+$3jNU}1ymO|^B%h&=zYF=0EP0ZBMI(1W$Cx<}_gz+M%fKV0PfFD&77Aw)T_dL~i zp8x}!?&j|e!=C3{qlQPT$nidQC)(}Iq||Gilm;K}?|uK@f1iE%Ijq0t1MiDunvD2I z^4&kFOn0>)$Lyhih~1+90IHl}K+LD3S3cv^I}dC*1H2=E00{#8KzT1eC8d?&1i%p> znVs*G^_`*cpJ`LC@h^bh3}Yqc4?hoBU|6e;pZWdugxc@bf$u341)g^^vU&~o(3fyzj}o>4_}(u+5f6OLuJ(V^1MrJ z^O2h}2)>bNOY_Jf%nfZA6yW)wv6#yj(uOlt*w8ZJ9vCgylo5#bd+U%hj1YNJ-siEq z#C(nM%U2i^YfTke?MiS_GkF>*y7iZzvGLtuu3uokSoCP&CoH%TM)zsuN8N_1tL(pS zZg^v~#R@s-sl|x*wi_bPUORg=KSrtFK~pdMSO3B_&MSukKZ>7Al%}12P=rcw#3RqL z0ujkfiM{?6t&&7LU(RwmNy45T$S_yEvs9(|7z~nql11L~yS*^*B3@^eu$G!~EC<&m z{fVpIloI#MORX8Qvc~lvQz~i-nQ&_Gcz}En_9xDFXeHOE?lrg+LTrm$ zD&))}_mjF_xxfX_s%v2fRA8MuEuK0hj^R3BpL3;X2{NV8tAic#J?pDr|yu22< zeQYw|?o#LsZYh2?J>L4jJtdoOB1*;VY0lkM7`REFvAM-%GNTjaQQwpjJVpwhlL0+U zyn#MC4aZ%LhWz~edzL!3_DkVvdwVDcZs~uH|0naZq<%R{i%UX&&;IL8heoPF9MCH) zNg|lkl71WyN_@J@jr(>!HJ2eLVfp#F-!eFkwsqQU)P;h>!z1myRfVqCQl`zeoGN3-oD)q-s`%JU}RIr9y|E6 zmr`0IUr9K~SCzupS_1c4v#zV^Qd`nU0@kBaZrigCcJ(@q6CnYk(Se4?L6P_u+BU)4 zJw6N9s@bP*Q#7MHdXw$2BBH(P?`;XjnJ1Y1Shw4Q-3xgyB~yFZDO*;4!vnl5sry;S zndR`;t5>DSvBs5`aBE;nX<1oE&XqqZ`|(4&4}`ted+HEdyY#+(=!d4v%|5Sk9-~>$};sj}3$> zB`JahtiYE7+Bp3$eGY#^FE1sf^WlWmApfoRgJ*LuMml)DhGIx|^fSt(vm#*3@~@Em|2|20crBmas!zuy0fw%eBoKDiVtRKAm(R#jjuhbBeMh^X(}zSjOh*=Eln-}5 z;_z>-^?BMzzBoT}d3gq0c|zk{rE2`9xY*csHP^@c_Bv|Z#>v@Xq?&Qb;J6}NDpB2d z*Xd#H>ii|#slG*GLEQK&SNyDPaunA3cCa}&YZ&vSVqliZTmXAmKUXSK9OEF+{jn!*7IA> z5j_s@AKatz9yTOSJv-)EO+!Fw9ws-|uMz77J@kTN--V?=p(U{u0YCGo`o=-2wzHTv zLw_&2_IRm&@pXuhgzGZoFBX_FwV-iY)1OX}dV18B#2waE_blec;$x@?1lj9bpWXkX zfnNL!aA&$UY*$$d7V%P7n@fl0d^NXMZ|4Y&Au(+8g6|}4il4<5`NN`!S-YmbSk4B$ zlj)YYyDlyQ5~|gYO{$iSrs)YoMB^;;2FbrRQAA}&e|tDP-{-PpbcfxG6k(aGuV?5A zSo=a^_V{E=_=fX`_sjYZ!#g6Ob#*~3bnEm7OX%~=(*TM6kZc?Kfq!45^D_!F-J^yo=fUGdkN-;A=w{nAZJMjs7QhSv)g=gz4w}#pNnmoR>pFz*gjNkVU4Y z9e81x%)p;I?Xt@BZs6&*QC*91Vur~p_DbvY42~HDuMgER&YAB5iZ0j$O)M;giXnWQ zLGy&3g}r^>9i9*v7ys2#t$1~tnb{U^$PxX`;xmbE(Dk0#$O`102`6~WWoZkG{3SRj zO+v124X|%}@b(N&0{SjYX%dFriEmm@#`NWPCdMfK39f5O@G*o4Pr05)pOBXKgQlnR ze-C~6{ivv((}MuKOlmpu2@iO>e&$2%{rkK~?HH(;wP_j%0B}_8z6Dh>FB*4zt{(pR z3F~*N^jjf{ZhIM+y`C`xQ0@u-;(zrGw`i2xsq7F%b-{Dz-jNh|@D-9ReO~yrW3k+@ zm@hc>kouI^77!mz|MGDZwgXV$G^v`t7v=rZT@Um8=f~6`E3?`NtdBIey zhJk%kolw@U&iLIX}J<-vSnAA=g)p7_%yMvUv=pn zHO}iA_LRQS@cM+h9)iGTkX_uvQXU5u<{3WfsW3@a2VJ!|-VCr^`FE~Leb3IVD^#n` zRvUOPcbs%L08S&iO(hSooklw1&$+)`ahUPUwOI0*lj%L3oSinMRv%kDmfkKjVJmUYCoe*LgqlrK>mfhB?kiO3BWN9v@*jkeieB5a;^hVPl~chr6}0 z8>=NGF82~<&EhnZ;F;lopnB{Njt*=`V!Y-X<^{LYmm|z%m^Yd(_0mKxLVM(vu4tUp zu~+QVhJ{Jh!^155YeP2aCPV)!u}dKRak=lWV-rP1d;c^=g^Rq~;Uc0cQAC#ptkr5= z&^~iBYZbN>G=H@FSa}Q3SpZW0a>q`%{2d`BV-tNk{!wM z3-a6Q3=QSQV#?H`4pdkh5{_&&+JFTI%E{7cOlF1#ue0F;^*H1 z+mEw1w7f=KsD%UdI_aXDN2!e{WAgBqxI#t(qOlUJBk^2@KK<5~@B~00^In8|#gf%r#z138&zcgJiCJk{qlOKhHt-pum)=dinw)MUxNq=(nN>- z;j6V*Tvbc+PFdOy{8+u)g7Qy6Hl}AQ5S3HoioVd0cV>5a=IVR@VCqDkgvP_K{V*hf z&_l{|+9qYsV`Wq^iwkqeSyNaNPt3aJDM64;(`X!KR7S0Sa?03?%o~)YtiLI*=RTwchn%$+yfSjMLMtDQ09mX`(VGsyYW zsC2b&JtkXji5%$CNdoK+7lG%tvB;r9z){(9`}G$;IRu15eZJOw^6IA7Bz>=WBw^?K zcjrS(qW{2#Oe3MYAKyZ|<>J7RSI-M22^<~dHOa}u4c@q#Gp!k!D=zUJB^qBvDSD&N zNThEWI}Oq8Ww&E#4#Gj`?Y%IiXfAG30Z!jH?Q`ERm$KDLrjoC#*e=aY9Mdw%%EgzLGABFp z=E(<2fCJj+LEg$->V?^mDKl}*5VyWlImHQs!V=P3nyMeaHceB{O1?(Y+=*?}>IYAw)Ad6GcMC>2O&azvg&x}pO0J6QGMDYs%$S;`#LFey<0BUx>++2mpJT`m_=khm zDyPf!=mkfWV;Sod3RVRt(VW#%mAi}9{fJ{Od^M{7+AuhP`3*-EdezrBn6)uM*_oFW zGa<>!#&pvk`8yxC$hwpt*Z4O;8|7juQ)giV91?(l!1-)}MwPt+N{e9<-_2DCK-%WG zXJO^)8=$z_Q7x?KibD!N0%&gGv_EZ_ z(UzfRlQy*kYIk|*)I+yfmbsAR)6vtc(9?M=5x08j*MdPJxJ^7yKh~;Qb($5zyHh2I zj{bidg7dg}-b2|(lp?`Sa}&o(jlQn87toy1G8{cH#_D;5oNU8RK6-I3ZmF6e?Z(p_ zv*^{DTe19wO$v8Y2TWbVFWf^^V^ResXT!7gKP&)T4~5TzQr?wu!FqI);oLlmgU;&^ zdT34+;dPrGG(MPZ{+GHl>WSqR>KIl3-OW-G!LXjm z@u*&X>p%z8a^}q9ZeclZ$u7wn!+Eb6TZg zhI~Slf3qk8#JasfXjLEWb!E7=Jum}9;!_0rTJlD`)x5k~H+OsdL=+#1x+iU7@-ric zUE1}uV7{1zmX6K(Fk1AgpF%)KFA!3-v31u$F%6o0RhCj9ch~~|Tk!QjtGxKn!TIEl zG0DQbDJzvy69@Be)kpi8>AXH?M1ELATyQf@B&KDb7BOlP^FLlJHbJN_AJU-VrB=^2 z9(QzTw{v@w6C`ehdIhU*wv+pulkS}pbqTqLh=tHt!#Vnu5W5N@eVLFv4y4PH!}^XS z`*K_fKcPpkS;T+3mw1F<%|p2pHxe%oz5-iCXS|tvBo5hp*nW%@H9l_ zfjvGq9MjBpr;8$ogXIhh=1rZbQwe0t-^0$l)AKT}w^@S&Msp_NO|}ZVt-)Bjd+!&O z-ucOM&{i0Um#{dp;-riIH2Q5*)1KQB@!=0$xjN+f)6RF$}~wpSaPc9yeg zYfGh}tfX%$OH&*FZ<-V+a5?rZ9<6QVBp>d-8;Vm|D0JA$p7XL@Wxo%unBC%*R^M@n zs@8sfJ7y~s54{!+_<$Kt{@^!mxzEsHx&;okAfrv_&Kk{}&#BTkcYLiRsb+%yYVTAn z0S}tC-uWGyqp@7yH6ZlR*2h`2b@Hpghp%^ntDk-au=+>42h1cgrnc|M)$9ca_Pq08 z!E&tXGII-AtPi86a3}phDrCP&sq3)S{3g-KNuACG9Pk(CkkR2ilNB+cUqnGrX*agc zoCL@wxWoP}*GR0=y=*C;T&fP2N=;_&X=XnWXVZ40iW?N~A)H=x3MRqNu#6UL730_^ zPjS~2MtgoOPkS>HoSiz<`09T(yUadO9sx5e#KCW6nBnfGg+#88nU8K-ak2wrJKiID zA6$it$Y9^%VUxbG>2269VEos<-!FA!OW%w--Pcmt6pWCQ{RHmGgH1myvsXrjo!f7W z7D@F{rVi-6@R#lQJ@;;V!D3ouw0qy8s3HH!_7|0ro5zGm|4^+Ii)rC}fqkEw8GD0o zPc#Q-2bGVECEo}3^9=SinT7c>%fux%sX-PTR!zBnS1JK9Z{C|jJ%~G7*F)Rh_t~aq z9lQDykKgl4OSp$5{(zeVR-X-WDbS7Z=;U-GK3J@eE6DEl*5Z%1ZpC z;3~6?lx9mE_S(vuR{}skwH=aI;+l80!JB*|S%o%URvDRO_C8xCEg0~D!gwWjjUMCC z+{CB<1$bdk4jhR)b{zX9AQewBfDA^)_iD3D(U|b>tX7)V01}pI;I@5uK!Aouy3Qr`esrSljiF2KRP|d@P zW-lXvm!z+!8JiMdg~^TKyHapw7;Nh9;Fb60&d87bF=6JQrTm!Bh}hh;nXAfxxs^d4 zJC0ymR~nP7d2o%!fAaTuFPc`!TQmmTVJww&X{VbD>~4=Z8XC%5P;Yle>6zQ%M%n&R zpWfzqqyYF;!WsPiGie74p~-{$6%3?C!WD!U=rzF%DqHE3B1(lfeJCXVG)FJ|#&?gH zR!9H39j(+&?rc*?&<_FRl=%vVK&z@cT>$bsS_y90y6EKl5`mZb?n(Unr;&HJJEA4T z--m9ok?u?jQ)lx*K{Vpu3x?ZdYvU5|*$-aH#mi+H&WSM6Mn!rv`}BS*gcDr{>RuGDtf5!ot}ZZQe3cn6{hT?~3x z(D-uto;2}R;(qx|M1vI9EzDhBRD1MPO_mtHU|k!UpAHeH(aU*1PuL~qiT?ez(Aaj6 zTlnUHcYE~83QZ6!aZ<~8J)6*&)GA`L9qRJe`Tl`Qe^xyh4hsru^Ew-e$=UdCk^m2n z3mw1Rvp21qv?76_LT~e8iy)JxjRzu$o@CD(x0oDc2IX=U;Zt<4GRc)k*{>!a2KvWc~9 zmXK1LCC=*dZC|w`gCIPh$anK(7!&Iew=Mly6f+(V{ExX0~{Jnx%N*ES<-yE*THz9X2Qbsu1z z*L+Y-AxG(Q{ZUm}xg(YL06z+~uB}Hw3jpyuP2kDmOE%h_HEocsH;+mKDh)I<<8z|1 zQciIee#|2$BEm-yZa_(4d}^(UpYi10kc7|G1585p@6&9|)(12jog*ls*YzbO=J$u` z>5Ys|X5-l=me}_SG6^H|er&5*1N232daV9|U9+1J$S2D7s-h$6-W1>S7t;uV5Q199 zy2DJCsjSJA?u%p6ET#TG89ci{6IZbNAbw0F8$w>Fd%>-6RKwQcJsPd8=aD%Ch&N_Qbn)| zC~t_``eWM}y?{KxyBeh~;UlGweq6=It|dvD@5?=tnVxv)0)f~K;BWjN7to#*iZbC< zF~A?168QM5sUYM3FY<7q8peuD*PD+^d6K18-G&IfI~XWNf)||4G-EXb(E6vVecd9X z@e8oZM51LGLnGVW=E0%2V6qlMZ%5Iy*{P+4mFa~JrO5Py%R6Uf#}@a<-IP0sM!PTi zOCAajR>n3vkF&Y%UcwSR|2yR2qhXX|TRX1StxYOJWJP#~rt)OBog!V$JnTsj0w1W+^0c~$SDUi?zq|-j~fO#Z*c~S$-2|BSG-V5b6a^<7uA3?C0nD?!i_snZOcf+o?@bt)>K;hk04puRa?6$J@NxW$RvYb1#$iDmo z#TbyNPu4R*kAO&mvb0t;V*5Xm-3@k+XN6*#1jX*Z^coq#>3=o!9d_x3yz%}ywFCp0 ziFM_PpEdf94>cN=2IqUhX}UqoV)=`+;UkKWFy$8w!iuIx0zPz&Lr1+ z6NBXKkDWuxzARdOBR&-KhtAhT#Q&@X!Arh&?0VI3ZJqS zv}=wRyQGhY5-E?(=ln2I^Cxa59`F*Wlx1CxY+||7UG>7CvpxQ-v7=F93;6D|hOBDd z?rw;W!-}DVPm_B_FYv3yYE0}*w5z;)mrI~fOZw4&BTINO)uz-fW93J-E4N;ZXzO+U z?xp?&yDoukQQqrwf%=-tr^LeH})0F47eJ4RrLMH&y|Lank>^L`4mfHC*!Rbrhk*5^=PfMOtd^VH%P_-tj~$S1rO(P{E9zVQY)WbgRgeMDWG~W#jlbu(ngN-VDicP~z=ICS@;CO>Hrt*}nV2g$3uR z)pcc2B@(V)kF5Fv(HXzHcRhH<6X2&wCP_7c}Us! ziNz#s9;!M-VCTq-IC)d`V5^e8g{eacE`Ed~cWA##n?~ zE_2np$Bve_aXa2(e6#Iq!3y2ID}IZJH15VAVu!jf3EnUA?y$+(@`+c6nM8ex7qL}o zy=A1^&k(D9rOlO4+JblW=>{oO$lerGOBgfdOx4o3wcGvR&0Q-K#sTi$nu^?zetvi} zNqJ?G_3DJZfvS^eD~VM#XT+1Eq!jxa{X(2rPDWoYbQG|6$+CH|Wy(?h?-VRvE-CCm zjI|9n`?F*vy7&l?IqN&zBf5n5@y65+WNnFy6IRl1sKqPVWCK&n zlv|!HtFVqqsfK*J7N4X%wl$Hd7XPmf_~bk>=+J^UMp)NDfLjLNrPyg;EE)D&ZzlER z^L~xpcYQt15Zz7{n74bxb>CzJS2cDIQNks~zGj>0c(9(%I%j_PUm8zR<#zAK5XcRg zVBAiKAL3;ZfF0mx5x=><{`&DDRk*!*>vyzN3)io;0ZsK>(&cGHx%Dd%*I&s!Sd{AP zkY@SXlv>Prl?3Gf)&=o)S@cZ_=@@m6$ZC$AqxF>uza}KH-NPH>)Ak@Bz(5T)w6cPB zI_VD-r`=5GSqa|z`N{kFK}MYJx4dWODyOWQk0EqZK6tbr9r3>s8_$zEQ-LHVsfEX; zrO8kr{Bvo!-#Z+8r>f@V7u7bWp!RLod1qQ%fh4DM_WAZ$jFa#Fi_b7U6HQp@vK9mP zpXR`$tqXWn@~$Z0e_KeO&R=rnZ@}5g?`ODMWc*c@+$;|%sS>p$y z5s}RKATwp}2ISaAB2A;ExLCoTU9_ffRZN5H8m~U;Ie%JHA<{nHce6gdR*gEt!)=Ee65L=&^^4o3ec+jaP*2JQBq>$}HMQG(3|K}53tW%g z1$uYc^=OeOxN6jt@snN$>iBdUqP zw#d=I@X^4A6Nr`P{D|(tH?U#p9o^8L?Uk_Ki5<0%56WG^!>X=PJP?oS)oS49TVN%3p4Dm=GZ?d_oQ833moqTd^0VELP`6p7%}0N z!k^jZ?Rc#@?$I%-u8f^-viSSW8L&%hcx=q}n%Y%XDw$zZl_vX8wGH_R&ITYmrSor= zIKM#-yRzo$%`pTJS6BTu=iBA5vX&Q{y%Y6AE(9A++#3+h+j5^uk>blde17xHj4ngK zQDHdS7qW;TyDtTkTTT)=tJe!y1oX+E;750~fiiXZfULikp9=<$Jp_v-NNOM${7j9-rC}8&a2M2&>v4HP&sUaKvPc}HY`AX&&T!HLOYr)E7~McX+@Kn zO2<>pM+^6Qs8Z@wjl-n9$Q~eIXyam@@RK~qE!n?fH^etJ_$CkY2v9b~y<0yeFUsh2 zyYZ%_%O$`@vj0XRv79^m>7b>f%%I^aAocOM#mZtnu?t0`O#Lcy#E7m7Ov)X$)`5BA zs>98!!41(()pZpH9C*_8!wgKy&EyVPf-?7xbS}Q51nT{r^6}iKR z?Z;a_bSiucB4NLCYpxBpnWn7Ly(X?@O5XW=5T8|<{S?%AW+-2v_}=EKLdLI}sbqt` zGTX@1M|L9i!9(E#6O-`5b38j>+GT$C!fcwpgn*oq+V!E`M0xk%bBV`zo|Ww5hp02# zQIk%iqxLnkUq_V<&~}_M!S1(TM+&#I{|GRE9FJ-B(#qeoxl50ug zzp<~|8>e>bAzyLV=w)xP`CMq1SW^LUs*aDZn&e!0QE)jkvteK}|JlaY0fsc6EqMvD zd-$2v!TqJkpEyNZI!0PS^TepCy`%D)0cqwIChjWGY9sW5Bfv-J=`s{LQ2vI-1|c(K zZ1TAIJxZnWz(T#Ks@5QqM+y&>JLNLt9l*fTpVZ!3+q~VA-|KPuM4e@onszDXDM$1J z26SE|v&q@FL~G+eS}vv#gjTP1gmt&-_vtElGYWKL#Mvf?XE;%Iv``)=XY%}xVzn*z zcEJL#9Z!~W_gh73;0F9m;cO_JK_W4_zUQCcnyaQ|r~cSYn_FYL&0fl*4r+gL*x`wG zLT6bqsxl={a$N| zF>q0=@bhU_JYj}v#Z09+M@Lxj6$ZKvt4zm1WU~?NULBQTZQ- zf!mYW8RE*#`pFd)Z}vSMjcbcwb3o23xUa;tj}XXuqb(yPe#ES)B;!7U-H9aqnAKT5CsMPReiMl4%{hD)|5~x-1cNIffIM)o2nGb}U z#jMy(JXR3)yi_6fkYgeKQD3+S7-|kcjh&*9#az?+*CRozjpIUGxV2=-RtJ%{IGjq9 z)I?+U^TJ#3pnH2(&<%e^8y}a@Pu?#`H)mWt8()-Sf{%5J6SroUVXsjK37@k$XQ#^F zS3k)Z*GO(|y7{3CO%@>TJkYrt12xifPWBsA88F*MRz5(G39;CGK3lF4h!mzPpPR2X zu|^ABgLP`txhK-As-`oY99q+%SM~R@dpZ3lHMA;yYL$>scdPD&uj>n=saDh8AIVub zToZ>H5%n?LrqG4(qP=@46%{$}34#=7d})C&b1|!(?ycn#f}~&Hs}~PW>5v4>Www*k z>8)qGJ%76WWb-`&Zz(z?+v%Z28LIk*Q6h$f+0=CGKOCFBm?Ji*F)iEQ_Gc?J{r{k_ZazJA`sdE40clZ7+K|UIp z&HTgwenG9&)D;7kCsl%r|K+M;_3^&6W{-Xue8kq?)#0Zt07ck^`pHzW&xGbBYX`z63zioZ;;JtwxxC4 z;V_wP^Mcg=!odRBc#pR%r8`sA9ubhh!a-V_KINo*gpH+(HY}K9GD*ktqdVCkziYX5 ztwYhd-|sApwly{0-#E%i=f)^8WqcQdqHpZahFnp({6nLChn4FTa3}K z4GUEddN0;toO}xJKchr;b1pJ`eyfdtN%*?b14Xak6r1BM#az|h?LGE_Uc@ilY^1d0 zeb!Q?>76n7?Du2qaZ(3c5@)kTEb+{gCcj5^%^Kp1S}1>bFGek=lIC|ZPV%iDtvdMK z;!-BAuGOoD7W^(XJ_m?6{*_l-+W_&eM7*s-(!hJl*$3LP<3ax^Z2pM`@254XW$${k zF|_s*OQ?gbvjaj0V03enR^`e`V3LF4Bg_k2nb;m$*?d~fi~aCOz+%lpi*AXnSMc8@ zq>mY=KEMmF(mU>|js5qH=|ir1J#Tup0UX#*chb-s=9ay@@U*HC%EFDgcieDc>1G44 zP0mN5@hs$ktq(ltqNdArP`Vsiy4wSp2V95X00qKo7?kgC>%rdB{X3o41nu^?s-^a7 zB8^y;9diAsEQ|?n%!pUv+V>59n7j{6NXpDK06uniZlg+^O}FM)W=N_SaNS*9z}A@l zECk_FmAd|r{Qz{&U3|KlOp~f-mxO0_On_ndbRpap z9tb|6L%3Ds1tY>)t`I5p8MNc;>iNZ%Rjo#Az9L|ASjB3`Tt+$AiyLQS9)!;E8N#3! zEgJ>r6B=3_&ID93>KUqyJk3kIlyG}6LOZjNoe{^$+01m9a zjpt#Cx`uDCsq4_Y(jLgxcu*hzC`w#0F#!36H=)-GGg|gHD@g9`K0o044&*-BeTW0h z!v!Qji}ZijY6WfiT@$ZnBdU&z7ni}4PQ`M!8x}&83F(}ay)R2KMrN6;MI|3I)i`)` zO#4nyQ&&{Jy~D`~eoWKo2#{F(z$e;ymz+0jj)FfdH-uZvHau*!l_>wD?ELBDY1s%v z{2Za_VX#SyYGB11b7*=5^iB%enzG8iD?r?jYWsPTM9)cBgi}4yN1K~_YZ`!vs?Req zzbBr%bRIZCS84#azcgMCFpIM$jLWrhhUS?zwA}c5`V^F0O161p4GXBh1{K!VWAug( z&uphdqibuDD#eJo3)Sl9AMuPSgl+D=6VxqwnE?lbTX~fz&8t(1D7nJuK19qikpG; zXY&3=jrWE{IMmg20Q&`!5-IBXqQ(mOc}ECXjL;Ac3;vuRU~>B$>c6^j!gkubzLbxQ z=IZ-*do6}C`B+C`HQD)T$+Me+(|#EFUlizs4}~n>s}#mn>``U;HBWl{e$O23RFU_O zV2GxI9&GcPG9>wjoe#07TC@n8m{y$sY5sCedp#^wvMu1de{RgZ;&JsW(lmLnc#c?S z7;Ju;<*hzM=i9QqTGYcP=G-UlJ>#f7z}!}GsAi%>J1%07H2?MReJYHWhK-Z75~FqK z^$73QlFuFI$)*$ddQdw3#AmbY0Yw3Pgd{d)jm%8yWEe z`VgKzokyCY(Y3uaBh1Nh{85M$2Xt^scz)OV~_1gWG%@)53)hh z$7i7lfJ-Ut$~BWB1|tU?^OK0Zi+Ygtw3v@_wDBRi`09$9+w;LmZ->=3Tk2)d@`%Ip zmKUfhoIYhD<_WrC^{S9r%6Nx&!KTYDi~D1-Z|*zrV;+C@;)%8oPI__59?D_Vp-rc0 z?;^GS!pmjdl5gH-%$xe)Zg@kY2DOq<%gjx^rwvBO8g9t4H9xzC<B{3&k%yvc1@j2vTM0^e zg7)r3I_G?kYRxy$1apUCWhf&fl_-C_cu98JW}9F^%_%@J{u#;P??VYp#iFb_+7t=- z%;!Z3kwqOWnmjh=Ieo-5?F9)r48OZ~)xzJI>0gtS2;BMGm4S`?mV5FnleWaGYL}!ZBJ5Nmum3Hi4t;e%Ad^&P zF;|!*^6eRdvcmk3GDqm_*^9VBj1$ylm9;C$sG0@mp#0Lv?~5l+Ecg$G?U|kM;9scb zoQj`poU=LQ;yRlqjE}S;v(eR=N;$R;ziD;~uM7q%=RI283rG@}J3XXmKF692Kp(I1 zhDn`yedWdr8SaKGeMu=nC6G*mma$yy!tDkW7Nhl=Hyi_l&JA9@%N83-ffNf!{HN|w zFNuyzj6W^+dVphXRbu+wsU@Zl%_Df3&1%61^$%x>4?DcWc*Sm)LkXV~(v8J9Fq+xM zTf?btM&VW&5R6f<<|Y4jxk7R>&2ms?t7?#ZT9ZzAO%4CVS>msx@YYqq4x#aErt1UX z;s}|gihtuhx%R-NWn)LKZ2%G1a&Jh71#-Bds|E62DoS7>VdTuc%49#>kDE5ZNU?nk zIjdJKn!$ZhTf1Dp_Bpj_FTVuQZ8>YwN{Ng6hX;;oK+cmNjaImQZ6h6_i@r<+um6N} za)qo{Z&z!ucS&2sds016$aRRetRmAG%1{LSx%li5&o+Gn=7N>eALDx<_P&@)uxdKruK2vJ%{Mzob$Hv z2hTQ_dz2(P#aBvGVUDhgd66}rh}K0H$lY`5N*WFzHUs@b&#tU3``Acvvbx!E=uhU7 z`Q{x(RdbB(yX>-JL1tsCL*Kyt-9_(AMOOM960Ilvhz1+$3Tu~z8h?C`4nhK*obmz! zM|~Yz97J%qDr8`C2IcFbWbFJLq!u~yRL^`IM{wg<)X$1Qf$5&~NWcn#PF08U_aMkL zS1cW)+YjHksZeev)?4!pU+>)VziaDDCP$vvQ$OKwUga3g>wTuGD!I&MoHeZ9=s`;i zYHWY7^>#i^bus89>iH_~1C}(kuu4glIY4MRHy6#>=_e zoI13;gN?09YJ7+O$Mtm;ob(CD328PVcqcuozc z)dT4qAB_31oI^ZvGGNBYawf0U4mm`;Zu$zP6qB>?)Liu_3Y$W_4DxR^1Outc+d^eq zWPApI^d)ufBDmM)u8w0GiKA(wpneX(c(=w(L6Z)swzDmqoP<^OppAuCl**@M9e>5@ zb249iuu!|@#K!w@g7smV&585m*Wvnny3U7lF-k{1d$|7OtCA*n!P)O9*`@K|UHV7^ zJH0UJ!Mkhqw2Qy@rhQUtPVB~yPmggNX|$>H6_O`z!19 zj%WW`m>?Po@zZ>OMj3QJ zi#q;M-f^IeMW}o$C>GPuEWO}xY2IG#NQ>8#RdswsNV{RD0?0o&-yU4%XLechs8Xxu z#I0yqt#awAKdAOT-(4N;3Wxl*wm_$Ia|$cm%0(1OlJ!oZ(d4S-IOi9s6w{7Gfm1s@ zatkplEOi9{nB5u6YBNv#m@s`Jhk4TZl>lR7YSSXwhNSg6s=S*(map2IlrU%Q_)sU? zt#v4PAcE5*l;qDSMN(oI^&^gEv2Q}s$O+2ZVs4X-bTFF&WbV4P)nElscU|aiytokb z>po9eX`6B)vkt{Rs19*lPV<|aW2RzAZFbMt$En-9uJyHEthKTIb)U|oi^9#U!pWML z?2#8Q58k$a5&lBCa{3HzYi&H3C&AsSsI*guhXApE~Jz$19eX8zvuHAvlG@*oe!|X4AH(0qds0h9G%2scwF>K)yMfpy#qo1Z#o zk5_d+^3C@&wS%nbo|_H_-KKu`B-$o31(#!H0yp-R@nit5p=yLky9V8)!`R$1xx^HY z4eIyRQPT^q_-YyArB}4&NhWN7>&bg5CmQ#J1f4AonNEDj1nsVd8<%wqyC%}R4*T+Y zm!u3Mta>OniI<%&lPN`ypRZEbr?skH!zb*}8E+gE6?tgIchL4fZWPjr`sQpUduK!x z*-p`JjOiR=8Hs%FrI90haB@rp@D^RO$ePf-DOIZC{l#{NptP$AK4}?M@^@iQ8!trT zQvmmy!I4R`%J;-cpV*8H&+8l9eiR}FfY{ib7?T8YdVd3Y)`#A(*7AJ`_fHn?j%w@CCMXuh>y zBqR_*a7Y4y;O+r}ySw|~Zo%Dx4(@Kj-QAtw?(XjHZzp;Fdq4Zy=RN1lhyK76Rn=Wn z)vMO})xGL%4Qz*lEzeOV`nwevO-Q1r6%`cpS1_I)H@s7_2=?(uz*tNUH6e$9e0TF< zp^K&_$_jbbHSg1nVK*pyX{CY9MeE1qt3C2SqNYnF9S{+uXD{Df$n0m$Ll!%Z)~te@ zXHk`@&g20r7v`@aZyVk(0K%gRbA-FG3JS4ci`>UgR|)n+bpxfYjU41_HF@%OFN{QU z9yqf$b!#@tojxg_oL+2K`W6uUB^Ak9cW79{<N_$JJO}NC9#;=8tAl>Y{=&Dw%O$=MeIN zfv+BRss|}H8^$n*g_ADyQy%>RaQ;SAH?uXx50W|Parv!$`MLSe zT48DqN05TzHZ>8*CJx@(A2xK{cl8~_a_Hz><9yKDSM*{Kst{ zz>P7Gk+%wRGKSk@*VRR34&zZuJLxJl`2!i4l#c%v5HRX@X>TCe>Q<_7e{d|Np01Sb z)v*ci6H|h$`W4?@RNP@3F}%)ts%)^G!K^KvuSHOqH7$Lh(!#3aTLRqw$A z8vuv>!4LdI^}c1c)q#*Yw^G#5&7)RS@js_7AksfiFJBm5pl8PG&&^a(Is+m4DWnEZ z$oP)hZ?q#R#^YF`NPs-n#EQN`X7C>$0MHn>9A)kr=Ww7b8F9_igGv$-s;NtA3K547 zS)<$itOgVyaShbb;$q@Cg=n+%p$F(PON7j)21M|G)euzldwnRk*o&=LXmy+L%D91m z-~f8NTW#1hyTY+!pkv1WPP2om5B}k#U%KbduO4VQT_47mNd7#djbWkOtV5*;LJJ9K_1W1S)=(<1&?;>?yzViQ*nO`zSvC4Uv;~Bb#y+#D92|rvo`1gZdLl=?t^G=1cAT9%f|0)T{=`7Jsz+587)bS4;10r=;C~=l@xct~nLc*4g zf8yJ}A3R{6y&klMY`*9ZX!(z%t!m}K@5XuDUoU++a0m>B)s&;J;sfIJTtw2Yms`dG=xfVIqqj!Og~GjUg$qQ3_qVa%*V9>`LreWxh)@=38FZRyS^?heX^z>dAk~0=-HB zzE}-9mg6W2Sc{sPZoWiC`IkVFk>@B(12~_Kg|;+~keabN3=}ZL>HJR!?r(E>K#1GkkH%dPIyD3{(Ud+*i=jj}9>8X>MoX)LJ zIDW9QvKVAS@+sY{(DH@n}b5eqkv~i)jtaZE{hEEKu9(|O3esfY& zeSqpiRbw72FJe70%wMdAktA8Qh22DKZCqCC|GCk^xOdWSuWK&zr@oK$e~TJ0V8T8DPF>RAGxwOLv{P_tIPKp^G_%Sa zFq3>)@yF3KW7E2f&K0azQL8}9?H(W>=yIST!ItR9K-~oaKQA>vmQ=^fKg7v$SFAR$ zAV%(h)3TtBkhH# zmbShc6_1C+Y4?L(*cWE)_?9-b4AFT72KO)Vr1QptO~Wxr5;#4F!9+rtvfqBJtf1AZz-0z^R<7%i zM|Y-*R&Bn=51Kd(HQ%A5dz|owYMfgeOFVJ7faYCczS?W(URkhER0hBQ}UtZ_m1eN*j>TB;G{X6$BnIMdxQ_q0ZZ8VylD-=FB>%zw>ezJyTdIjoC4_ zn3>kDjLE^A%~poqY8CON;VW6$56||q1(f_xo-vyMhx=9x98*~vc24M6^Tly_((df) zz~RmulsnBz#298Wba7o`$)RhpI`3F?J=KXp1@~P>J)F?ooyDy7y#c}p)>d=|SF|O? zL?=Ckt_n~TymRSNvsH<|i73B}fr)5hp6c`Sl~sg4to^eXvrq5W)N*8u=IUpvpC zVx9B6ZT6bSBQ}SnSX8;#nH^GXEa2t4?J#@^tI=X`HFw3&=Z=-3NDlp)^>vgr%rd7d z`A6M(3H2sA%5o?5Ng1e8zb*m%m}#j`#u0IznrU^yM6w2IDj_$1Llh+E@;8)OoRGfR zIR#5Oq3J6bztVRDUS%LxLucIE>RUHAHFNAfTx+)IN~{-Mh3RG?aP)VXE=Ou1>W}&V zrb${)&<2W9{1MT=_3M5Z&fCd(39(abLM_10IDJ&~29x}Xv(3rq?cEV`NogcpBQHxf$C zRD}8`X{-9#n-RGJgio=b9Sk>Dv->5ZJD}%I)cXM$nt~1Sz@K#fpu%f5seR?)t;3NRJ8ZL zv5+Exl??2e?A1cva#WqPY-Wq_<%8a9&BTwb#&dyw0`-nI_9tP5C^*ZP@l=pErn=_5Cs6qV0$FfYJD%Ep0NsL~DRl6^gN^0MNn0Jz% zA_8qaNnkTokwXSSS%*2}RlD_-(-aOGjPU+PxGfzt1_JbB(N&}bTW0F=gCz{waLjz{ z^TrbT*nL7ex;h)LuxLuIE#1b&_V*E7?vgNJMZ-!pE0oO9%-gJs!e{7uYCI?p)<+6k4RsV!G5zt9)Gp zLT6dVVi>=;V9j0!+p-XM>BSub2GrNDJ>8F^1IMxAx;nSA@Z_n1!zfC4f9*K8PUUT# zQdI@IpJbJxQT3~9y}%o}cAz-Dovs7GtOuvnoV^X|z^x(U<#b>T6efFx!rRIq`v zOAV}3sHhKW*skTRA2XQ=ssG1@3j)He(;8c&m9>`iDP-F;U@Ercc(k5xtCp}UPRyB3 z_f1;<1PP*DrOacDnp~vYUYA#h$N%pZX()5rizr`YZLYkzN%mx+ItF ziUrO=L}npm?!j>sm`GkFM8a(f|e3Tyd!7l1b7VIHFEC{KNeq6yldV zDB2WCW{3vadA@GsI(Kg8^fE~zzb7^*NhOuCb$mpUKz*$ZA{po;BA zsC0WSJfiDgqM81wji~?aI&#`^*n3O!omoYw)}fUmc#FLIHa(ZYfW>k*s6C9PvR#{2 z{^8R##>r4E`ng9>7_|*|Rzklk ztn+GLJa#ghY5bgaa@1~=>T(~y9X=5I@nZemoI4ZvfzjbTPn<%8ZM#^n2i0?o_pwfj zx+wAT~b_3`or-4JQy`ty7%Hm%p;v_7TBMT12Bj8^b(wv}qm&63-2w+Sg;amJy@Q!R2M3)mtp0pe<(WV|%2I+YxX6C9 z98s4%OrCP}v_!7*`Op4uRIGDQUMvXtj4GsX1vtjwcvtY+yP#{GBP;GB>(fWb&oR;Z zk51>0zU*`Z_QG1DXlXxVscI1uP6lMuO%%j5>wqQwpfOP6cnPJIEV_B zd#tcHY{Nfa&By-(vn1JiYb>nu)%ZL9DpY#YbUg%iN&r9Do3CKc^uO}XI}+lp?K7pO zJtC$KymPbIKAX)0OmZ_*R;VbfGW|-ajf0}Y`2w@0k7iz;!Zva!8;CekQDrdgYc|jv zd9-cAmRqq~V4E7!9v|Il8aBS>*PLq+@UF9ysqpxYfEgK0K<6?7t6@;2{D~Cz!Tu}= zmc%fV?P`^zrWnO)&!H_CT`i~2U&FUI&YW{RPsTXs-l0i>P4Pazz~2xs!-BFD*)1&v zjIC=%7N@XK4U5KC)tyS=+8^)xO#7pb!TAc`zlW=4n#k;f^`=OjGU>MiKkfM(Y@Lkc zUVHDunFy7x8Iz|GBsClPAm5o zHqV=zUInK6QN=gXTQ4ODZ>9S17nhbErY1!ekV+hH@hQnWz^T{cQ7T69@(jDnHP;t_ zdJ4lN)qni(o>Gl5=uZ2|W|_+-;yAcX+-Tl?bA|cKrKSo0=^9lIgBe_Tl$Ae_rmWs@ z&OiBXpSFQ^B32?rO3|Z|QF__R@khPaT1zusq?QoFwwa8p>J% z4F+{cC^|+lfw@%H>09O7`M@&nZW~HbFeqC9lEll}u0mF%p-FgfdT9XKi9Zsf)nvGV z!C3yWQ)#iNPzp@ld4T{9Q2t85{hUC6j-!cNF1pd(I!+|NOZ0-aDg}#2XSL4^;{&G- z>$&`qy$y6`X?2`pP&?Q6ynOGmqrVKl>^|S*ols=Z|-rq zM)lQ%WpM7gl-k@7uEV2aNQjv^Zv+_0@A2z~3{Rrc@_dDz_-%rW@?re$!Gz_q{zb znn312v6~4|Zn#9XPPKuB6*TRC|VT^WHL@^D%4a!d=NiV`3-h9LVDq?dObN#*Mld(~y z_aVyd-ZXdh$)D|gDK?2Escx#3mdL1yK6@Md^N(SOc+Pf;ry5Ezi_5PuBN0bOG!l2# z*G)r#6dM~(KU%lmB!73B^zMTO2Xr$;-=sKcodqkHct3-X$26(7^m_z{HA@=;Ywg?l z8!3aaBVVg>OTa1|Q zP(}JA48J5pP8HcIe({KIjK=j{Mo-$-XJ3$-CfWV-frQ3GXT$2fh}ihzX7d75QP@OZ zhvoRV-g+&Ojvu~W`9(sb^-u#tK^R9(3g(zn5RgRn?P^8L1eoySn~Z6T1>ju`m%WLa zAmBwksn$-t+UzrQSe=v^b+O5!#NU-D0BQeUoQHpwr;K%@uG4|X_d)`5APjz>Y9SW4ykj`_~`kxwbnY zgh}A0;Gy~QF!yPEpstaH{MpU%=&@Rm8TLgOmCqsKTG($Ic0o+HIJ%p(|8XCK8D+v$y{> z@B&sc9lC%Ec|0?_OoSLe$}$Ftw==@-4X5&I-DF zJ>FfBP1ZPxg2_9BNE4}9w(-Wk*ID&Sp)n}Zq1Ylm94}bYnb6l=#R-I0Y(5yBb+ocr zc2myVojUUdg#v0%9h~(!KzXW8Qp8#Q_IAzdVx~|6GT}hLU!Wcw5%LLMSMjq*<_-Vo zR;d{L{2pP!60z}Fq0T4rv#ipU?}_d=a(8p;<9x|VMX-vKxe*4*;6T&j7*+gkvqr^V zaAb0BTg;fPFj%@$Jw!bZj58bjQBbJ;W{Jx)5Q^vv0GziL1Qe5iRdPjzw}?>2W# zlHBXa-OqXtRVm4T)7cQtCk67=Iq~3p=&|ukwY@&b$YqCZWPq~TSr1B_Qo)F;qAm1a zhy&RaogO#mFoOg4u46+bhnOg6jNJo`q>w4vjO{xK3NpP62Wk&gv*WTv=pyGHui;)ZJ>N@3mb^wr-#KK)C@z8<+n%4+sVV^z;Qx{kUG4y7B zZ!+QN_`8;&ha|#1E&x%oP6P(*nDDAw#@hERgbQbX<0DgT$~>tCkrv-1l)wK&O{EDA=&#G2KYG3c?ZFW8hVY#POiCT&_R4m-)6+- z6`k!m=@18MqlCFope=nuj#!tFc=U}wnYLw72y0~4Et1}aVNuXC@u12E;7|X2md39g zg-)8UTVZUKbAF^s$SwhK>Dj$oPxCJ7rJrDc^~^Ldn!C2+TxS$dagg&wV)DL}o#WJe z-#fs2az#<_kE53R1YK0WAZR*u(nzxRO&g9`>g|7g0Rl7MYWHkDu^76#`3=0BA25u1 zv8`#3sf-T*?7x|7d7Una6)TXCtD9g`^TZ#CF9xU9$#~IV9liXZFdK5Rj()*otsy+# z*Q&UBx#F7z{F!Q<%S|NseA+z--%v=%R)B0z5>^qT&?HZXTRfoy(&t!n-*KUS^ZSzXqKyn^8D^TD`9F@bYtie$#TIev^f;XUD(^ESnX z$zVeBmHD2iHdqk~s_X+lQtP71!XK`RQ!5xnhbUR9^Yi2?dxj`^r5X{SplhMhOKpZb zJPLx^6!7Hcl00Dqxj~(>Rjw?g%HSiMiC1nAdeR5jweBwEeN%WE#|vgPZ;d>QCQ^Dr z1DRw$hd9i}Z?w~<9U1j_fm>MlZA1n(>Z~;9Z7zXH*&UmXP@@x+et!JyN8~S8rI**G z<@wF#`YO=BtysL1*Ryl+Sg!mxSNh0*BMP)%-iQ(@^al}lrhLvpL5O}-&uc)$iqmiY z$*GH~uV72BZ``*h{qW<>J)OP)$#^D)d4?1xi9LI(z1j(=jzwi|K6`0eW4Kqc-da)S z?HI!zK8Ff1sYE@2xPc)G3Q>Ml@jNm*Pzd*y_^h4`X^)EH&U^-HSML_S{o zaX+UD;o*6{VFP}!W`r<}pJDF>$-D?xBZYN$#n$9Z;?Q{qOXUpAxLh+KnUFoICyxFh z?b=rMh)cf|UH)M3i{@eoIn>g7290z#$yj2F9<0Z&aYvYeiqElOe}g~oL*s!JF9j<#idZm) z7IrXVWoo4{0W|7KGjc8M;Ufw8lg}@IZS>B5%ms6*xjZ9ta$I96VvgJvpE|;WVEbHO zhJ?xQ-#b+v*{2SXs0afI3(>2;`t)MHrsm{x7H@DJOroOcC7@Z#aMyW$+hXneEyTZR zB9M?DgqcDDo5mfvkOV~%=CN6vO(r8XG?yVkbbd^Th9LrOdfN<76E8$va8y%@8+J^L zBGb6$``(FavDvMUAG15rP=L%uX+&*B=R|a{9|5!OS6oLT60goA$YF=ky&s>k zLp>+9yKOznH|-ZmFEXb4tFR(DHcwOo*yx}6Wp7r#q-+mP3piC75Esq0I^(;s(@VK( z)8e6BiV{ENP`x{IkbRuKIo(HWM74-P-i3?bgE~rLUiAA=2ZRDC{t0V!%C_L$@H{b3 zH;oy(`C->og7xTmKL$(ZOuZMnY4vw`S-d8d6*yLzI+vg%an~zlL)f!tdMa#5ndyQI zu~?PBsQSwB<>|G?V7Ku&#Rx*#7eB9B*MsXVJgR7q)G`G|ST*t@DfMI}vpXFDv0~_& zTcuj5413CJ9>wus+$xV?K7j!@W0ODVi1Y7bx8KYJ6q!tUcsoui8th z#^Bb`GRG;Tls(s|Zsttv#)H%(QylC+lQ@N{ffkpQV5lQfdz#p|^($LbaTF{jBYL@D zqbj0K+E<=m9|&&`DK^DQPGiQG$9>iyHW4|^{B`F{wLqG;d7z_NVPFEi`jH#5u!SYU z_G&%isCeodm^DK1CbH)Zt(G^rE~zNTsI}2PrALbgNy~v-7e4dGpW7+dwH`V3A+sSqvIDp@VnTBt*$Ma|8 zsCH++y17-a*{%t-V*XV-g0{`r?Qxja1+5o6+cRvuez(f>@m*x1+>7M~r%4S4Cv4Sz zVcnv`4`^?+NmA+s5H_2wR^>EwGjU8F^@=Fh)P+_r16?*?{u=$V#3 z@#Jp(=!J|c;#1G7ZIF|fh$L6i$o=KJOlUz45u+Za7bm3GGXs>S8p+R3@C=pw=MC@F zTjG@X4mOWDKPK&=pka%{s?l2Q`#^X=YOJUyeyp`Gw+@9Fu`FPok$3l+b42AW5XcAj z4Ux-AZ|nuRZdU56|8PjQlM)>!2R!eOkLvvLlI^*#eG=?Zrv=c6QboRHD(I@xSyhwbHB3`kbCvZbZ zlmYAWtL!`~A>K?hUx8W9HJMsoA7f+Vz*K=H-^w`nMpg!c>Gk_Pv_|I7aCf5RB-CCJ ztuM{r2&gzTlnYGEloC;{JNBtd+b8xU@zou^klk{0!|%O-7W+Qt=Xc0bw3HS=M=mlf zI7A%NG85kucx<6jim2*Tj9SbG4o!SwjL7OL2~uoH#EcUldDFDho5NP{g(d&&02Gau z8CxIThG2Da7mj~N0=*COfEb&BqB>8u6Jpx&w6%unGT%QGq_bUZOS-S= zun*Cb1}`BwEYIaRUUiE=Wk{`!r8q2oSUj?5r?#F;X{n8psyRFF#CbI_o*WZbv{-8~ zSJWiwXfS7>u$Ldcr3St4jYdKJbWc|gsmAm$IwK-`BhZt#j38#8_Ri`jClv$39!S(p zRaU5r@2&z>WW4=~zjKMWi<#ZJ1a~E6WTU<=Zzws!07nJAygz*ViTh-o)<)Z>)EYu5 z*`B=Klfh^(uSX)QBifXgl5tuB@ENmVQwF%V_+?&=n$9!~Bp6k&_Mn~5}+&##tJ6zp7x96G8&BBZTvDywEOle7B;KkzTrk#B# zYy!ES)doXKg_>|$aox-gb8KEIZPvqUf5(R5427yzlQ@JMYaA7**29Pzx=3$%C1F7= zI$x#d);Z1vx+>PVom9G*R$EqH8DiYe*M6c(^J8uhjl_6ZTerL7i}n(mZrvHNumbMg zZ%lhg7Jscl;?1KyDKB(Riq`tOd*ioZG*Vk9iaykjo=z0dkGF6#^1iFw|*I?W%|tE(Xz)3_!uc9cPz&v$1mgU6E>%ilN`%W?kHplTUNeS8?%pR zFeJq?7hM7h`mv*eQLc^?H5NbpuNdBcWrZcjRH9NJT5Q(#TQ@>tl3E=xy==-lmbl*3 zFqkB>8q^>C|T5@<2TWR%*CHsZZXpP}Oi=9GL7+AkY11 z`$%Q`1&%qJ)AncR*1p6u-3d(p1d)Bz3AM#LQ^@(d!T6uf z5%k#zKZ8~#KQbgr=;)r4OlyjKZUs`*1se)^sNSDWy5v`As~%RAeF$+#a^8S_)Xia> z$27K(J;@FLu?7c09iOQ)xC6lvexk;pr2B>f>ZfE4X=N3SD`C4U0u>7-|_>_VhGT=F*YVa;nZIOmQ3ea+de<^Ay;D(~`AOnfAT@iiJOL%eNV z({5S4<%y^`MdaiOjNQA5P<~D>ZJDZAnk-sv73ou8FD+*qD_ASt%ZG1#K4S}dJpU*) zwDLV&#kAYhO!QK|lcJ=-&)Fg&H#2S|u~{-KmuRz_`n{{Wx$6cn+{T)lay+J=PHG%f zRRQ4c0z@t@670-owB8XvjWQi{kU6s1UmIzFJzJ4lwS9Qcf@dj|)@QT`8D<%1bP%O? zaSd%8h~5+!=^#KHZb2+6CWb1SMdbkzYO!H=GHXE*>hnkynUrAdyy6#^dn*pd2QaE3 zALxeW1O-W{-WShf&07xBdKc|gP;%aQVB-FPXLdp2u`DBQ(&ojK4~m8qEeFB>0`f$5 zYKeP#h%IouOE_QhHj;u@qFjpe5Zh2`l_-r z{VOkQ!LxnRH+f-3zXIoBsHvm`$XCh3rq1H*(jZ!xm)d+A{(VIAAC3jbQdk{F$f=K{ z!RhSl?}h3$tVa6hlIeFk(tv#U`fBsZGsfREV!xL$2u};2QJ8svZc8qHM`oMvCV$iK zm5f_zS`qLs1jmyJSP0b|&HS`u9ur>VB-KCtn_}991X`eSdq-~NWUs0CSSA(JOVkvdfAEK(H>0ZXE8YE>; z7B&64SMQ%-=bs8Zar}YqTM?^yT>NhTexV4y9{pcEPtOHhq4of)iqcG&AIX6p<@GNn z4C3+?(0VUfvwHo3wy)Xz^5B4z!oU8Rn+t%i?34S+W90h+IDewV<-0IEQ~yIO|I>ef zYOdOlNf|3;CgQgY=-&d1sYd*jQ21M57ZsqOTFgBH1Kdd|3ll1K-v9g2jq(AH&Mn_p z0Z1<>ER~58*Qcq!NL}(*5bAFQ_kc=9@E69T$ zTo0G#g_atADNjQ?tw;U`MEa*M01;`+TTy1cC4;v|4S+Jl9&T^`jaYqn1$2ewrSWz( zDf&&;LH0_i!FMpAZ-fLP!p|fBHh8#B6ZAKq!`}+uK?1I#DuLF`=bJ;f@tEO7s-%V+ z$$xgVe~Zv!{|?LIrjjauh?A3h2(a}^5y{Bap~sQ8?@RedI_Y;wTVzzI^a$X`ZOBpd zY;56yWs`D+pMN;k;myLO5r?G1|F^n7*LQCX8a%g$R|-GWJZ*;(%2bOlsE}2M?YBrc z(H;gR1^)9J;RY<8(ubLc$(e--r&n#OXMlq?$^O7#e#++xvg?bvc=*XnagxZ253*+o z3WghyRBfEPJ3S4Od!$Vqb5zty;3zQDDJ_-e{uIt1(|_S|Z({EwIRGcVv50nc#OJ!u zM)(tX@)R`tjcrL=?ft>FOlr&S^}|-x251zL?+(@n3y76!1dFXW2(}g9%zO-0e?Ji| zkQPr;h!Ka8T<5}EQ9zv=;-5JOE82939(U|plXsv-0*Z`RB)D}L{iFOT0R&WY6Q z2DlfzmZ`s4|7=Zpgo?tgupUZeIDoTV%y=TBaErD~&X^eJ6(Y=A5zXfL>AJr%2<>f9 zWODc3wKgpvVVhS&c!7Uq{>NaF=`E061*d7~$*K8TrwxXu9w!KyWAhs)TrGSWMh zi1(rhgiy`>FW6dGEVoTdZ>?ebz?xVtzTC9{sL1+VN*47@?AV{=Z7QzGXV&FihjU2yU z_ycZ@yI9X>AWUrg9jP_ynY-cuaPm7FqfrVexH`qpI4!lQwF@y7m(oWQ z<>t=A@5Z8%D7_byOBK~?a5_soteB$?AN4q%h;7AqrTH^!+eCXRLJdVmfa;%nW|$Hz zn;1x)a)!p3p`d?R1k*!t3|oq2nb;~tCPgNaQxYi-FLOd+c7MD!<2h~0KUj~DzBK6@ zAhk`re5Xm5$ekmNm(*lB=I>O?Q4r~L79KPAT>^@#0!7M4?>290cgUZq zh6UEge^ZjjV|(y_du*X-H*y4cWCqMBVFelNXA4s6kPWk?#u~-F&arFo@wL0*%y2?oEO+kR&?*In z0cwuf4W28{H$0PrN&$F*6J&CE?Me;RM#LJjr&4(p@HEY0l7(6{+8yugv)`*; z)8Xmjfv3QlR!=8Yh;*X4&W@xw$+VVeg~5~-!j9Y_7(KX=ZbcxT)~*5d8}a_LBD8H7 zc^^P9Pw87d$9ODKDNqq8+N7^;S7bDu%vMYxQrN)mdf#V<{03#Hl%sJP@kwJLxDS%~ z?g9ttnJ?NBD%nNS;get=6_G2-e}aYUTjKL$&I1J&!hBBi1Bf{6uixHH#@4e7nDG&! zY+*@j2{6a#5g%JteNnl8*5`Qu0Pt8J|JKFXgzNXA*mqnpHTGargh=h5ohMFF zNQs=2e0#N<64^5(NPVkR#)gL|ckSxjr)}}83$iBG_Q9VeE)0h?6(re!xe&NwG6Xhg z+BVa`META0VVw-LQi~uX`N^&)tFlD-JEml<5}esUUcQ?Q|L^vHIsy#sGO-kDXlcjykN&}dc~)p$H1N8pB4Y8IKCA5N1jzB>!Ylm-i5&0&*kc8MmsI1fC2 zxcRKM{T5A3wXZcK02w%-F<7T0*HlZcmNtim(Yey%lv=@fb(FDtPf$`&KOR7M$JMen z7Eu4RdN#b<5s&^U0zO!H}_u7iDwE)uaw zlYbr+fL#k8xzUJ@ROvh}1Ts*Yh?WCM)S^G8iKEEUD?L2W!mYT#;3XX_peaoJ4Ek*O z9#3A6o}?}81dl6K92X~|6+5TEuYf3%{Jzb%K{DDqQ__P~1}AL`CxKPp3ADj6_bAi#YHR=dB?+JG zB4z~El!^Y(vYWlPj_F#&o!3C5TJuFPw4AqMW-_8JvjelU6`hQv0UK4ykL6UZenHSZ zQRu6Yn`%ZpdMnk()LE2P-;uDBUi^N`#wVp@P&VS91puJt5rU2i`qkfF*x-Y;D?hN` zR0km8>I2Nk_eJ1%Fa5;NY6L(eM(yc-5>FCfV03hdSM>H4q!6pjjG<9=Yv*jdVfwoS z+!W6!+mE0Fd;WbKDo>MpDRT2I0)(=uH|G$sCO z+5EtNND>4EgFsMrj(|qgUiOn(_* zF64WU53uk^ zQWliqFsH#%8(ebEi~N0$qChO>CNo3Cb2G^*R-Kq&of~h4nFhYV_uy!>ln6TM z@vLse4tAmeXd988?FZkIAP!9QX`>s~8~2m01Ifo&4;!ZAOeaXr^G*M`Tc$hoNWq!g zk^q*cgNAxkbUdTV=^P2wgD!r|EgvH7Kxfi*Z0eOLE!;T4G+7+fPA-l-_cp|1Sq!N4 zJAtnrQLla9?y`-DFZp%BG^E*ay&i)-xWN97!Rm zfO94PEV8|WvemSXcA;5*A8LM1q#=*Wh^X|Wk&I~mLaj9OfAw18?4!w?^+WhwOCZrV z;h0_f`xS>k{psOO|F_u1u;s`;!^89UM~uc%5=HF2PUZiRsQYG->HoeW^EI*fBC(Wh zV|2JgLwkw&8QuaPd%TY^=IJ~$$+kZ6@j^9V0Z|w>Unm|a?+Jyyhy>Bg$pWmk6WG#3 zIO5abRYIe)?s~8SLawpYY@N#;KW0vW({DOBv2V-832yTUPL0+@8p(Pd1``t9ckaqx zq2A0G`?i;e(#49tno!!JT1M)d;_aC^!-QN zqnja~yGt~-RNE8EcCS%rES>}Tgm4YNq6BRR}6l4D}()UhW!vH?G@5og@}74e`OZAlm))I zddw1duu9(HVv1vHlw|X<52Y&dwq@>oi1<%h1~K^;711LpyNdfHPku_x(K@@FyoMG= zsW0Y>sw9eV(Wp&6#wMt-j;1xmm!%$!6z>E60O)ci%ZXQD9@E{Cfz2Vqaf88ZXP=ZW zgg%5_`75=Ww3;#Xu4C)UhqC9WI zkD`5<-1($8!Mhn8V@Ush*&J-{=498)&0jF3FpWv^j`v}eE!Qp+SEDKwY+Ua5au`n% z=e}81FY4^w;7=cI|H$r$Fn_BwSR>yHwFANtWZOV1G%8Ky1QglwIaLzYX!=oJ#GaeC6es9HR)_E8K@#*YZtk>d)yN_iX zk5w92W;t+ix_g+#vqzXP*n+WnuG&S2r(yvg=oc2^(yjEIEXYQ)qK@UK&5Sf?~{`}+TD*T!? z)hUYsil8Ev%xP;Y*SBtm8n5s+%jsu=hC{7U39#%?vs>z^XXOTZOx1wWv?HqU-J^NCbCSrV=d&(cKdJv$Z<3eT&dP`M(TDsySn*`vtcwJV;N zvjy$*;gV}RV^3pvr?%P1C+o{zq)Ur)BLchKKkJrba)Pxu7*E&gn{5iZ3}~Vn2#Kp{pWKpaD(#9_6$j;_W?nzs3Y~`YDV7x)t7AG_UXZ)4SC-w`F zUXSuyml$0JC^}(ww0UDhkL)_37t#2GI87ueJwy&!Tz^QNVxa8t9zM9KK#cb4GJ3#D zfmzJ@B2rgzFmd%_upnN0$>4#ci1bvwcEhWZ=WD%B)gvT`f|g`*a4N31BNWJ_(?O$?Fj)Ccr*G%C5 zUW1+Y`Ko12Qc*Z;q3Npy!&%_$)zmnIiE{K&DX6ktOyxWY*ZRPqafB|om*`UztlWaS zaIT!oc#OQlD4SsQ0#$GsR}LE9E8nA5>Z9p~nuTdYh>Wk}8?J_=hIH}_(9D+RA6S^P zNmLwvQ>|<9By98(fgJQED}vd)u4p4^w)xgKP>eVWcQk@VAuLO0ziaI zAOD@pxTVbI;ckF8KkD$B3>|RH>Jv?OPnC^vdAX7ytHa+3u{B&2>ZnxZytfE}C{Wd@ zSE2FBeR8JCiGnb}@O_bH709h2*tL&;EHT@L_#8|1K~B@lMoE-js@Gh(4z$478~^C} zF(mFL%AkkZlzv9yYHbxc(VimOwyj&@w_$+#%clI^?o*7fcitcoMgsihtJp&C^(9rJ z4acyL+3xWEVjhvobs-=1@%u$vEK(Gi!DOm! z_SdaY+Jw&^trd@IbjG2jGkiaXr3FS83YHf)=&se(OwG(`oj)4B8Zo*(m%;eH<5DVJ z9iqS~L~U7uuM^=f7?{r@Kl?L~D=YFkl<)r7Hz_LSL{rg;voz9ZtUfovl^IxKw~EL_*&+kq^#^7@7#$)*Sfswxi8{KqVJl zB%ldMbBV<1MR-t?Z1;QNNkI}pyE;mMT0v*8s83;?F-9>#Q(R6Y0SKQKl(DxCTYBEp zhU}M;=U&E6G!Z%c9E^ryNxflj$!ka(2;){ZcO$-Rb%8BVkGIC`p@~=gKh5RF@yKxq z>FiUd70D6C7?PYj_@g@%STlj;=e~c0Q$~-K?^Ygq6^y)mu&nSMQnB z`Ut$ay-1WWm1!P`hk8LD*0W&?^0PaBS_aQFmtR(vPhz^wnGPQ>MW7yScB}n9H75>V zJklkr**|TQY44V0M3t`E+l53W9Lbay%bHwv1z_=*PGqr8SRFc3B#n8T*uoa;g>rHB zhjJ!2Em^d1SW<2e%E zX`fsR;6VEWUE$C6ttly`w==`0>z;zlr^N88tY>WhkLZs)Ykb+1RK2rge%bT8gC@6r zfmR^Md}vymUR&@E+6r#*u`>~lKaRDQL==BY9Ik!xyT(uqQcupf{)c!@c%7E`h2bTT z_@Ml-!l`Cei*~6K&w{txE*WCI@#nnMF*(r~k}H>6bBmX7hf|~8yg<8KAGb<3$%Wn% zZsMnmg}V`rlI2KDCMCx9EQO|e0J6zZXKl1hp?*77IPKccPAdR1$s3!gUCSF3^JqmHSb> za)wbPs+3zJa||~#&)YvZE+AQ2rM}zEuGN)=vZY@gNU3ncWUydqTPeS+(}VD#ZL0g5 zp+nUFi>A>^R)JsH2Z;p|T#2)w)1U97uKur7&mI4W_|^Yu?>nQKdb)nGfr^Mo6KQ`z zsX{~qlxhP61f+L@AWeD=5Q-v2iXb3_8dQ1-0VyFs2uPETlu%OWy%Pu}lndzdJoo)@ zKfZUpcddIqWaT91%$eDHW}n%={hK{kFK(vL-B^!#o+!v*Wfh*g{`xPgN0(DcMKi@a zrbe2F->h8DgC1*Lzf#tND=TyN`KRwo`>b11Qppn))?`J8N7rvM3dm`tEYov%2tH3t zNXYg&|Fkd_Wjr*HBvQ&G*qrQL`<`H|wGbGQ=W3MgcDyLXoa%WVuduirU9B7VX+*TT z5xp6&TpxZF71Za}*V`Aov9YKt4d75ZFz-tC`u;wm{d?RwLY!W&Rn>X_6Y?a_)?Ffl zC7uy%en%O4vsQONQg~sB>*yLS&+Cn6o~c`EN~+AqY@YP=&<&d$wqcx1#6|B5=c@}; zue#_m?%tceKy^V70I_OLcX;rSGcB1(__Lk_=+fcBcf`VgwzTSNl^VkkXJ2$jcqiub*`a+WSEJq@(^`FyxZN_j5yJ=&!nf$_0pkld$B*d2D$x)+A64% zdP*=wxg{M;9F8FxPeMiUo%;N!2<(fX_XwhgsYKWGle+}EN%xIc#mNFawXQ&L>e4I8c{Dtd{lQt_Cdk||B1B@y*C zqGCT;c_i(#B84dB@wJ=nCFg(~2F@wcFZDBpAt69JG4M#B#Boer8TjyzoFCD1j_LsvWDM-vy; zGgiT_%p!tsW9ln^U0bu+VSgHAJU5ZPV337rQkHnu)6lhNlClx{KoF9ZCBFn{z3+`Z zJ3XHlDn0rcAMF54hY9e%h*kWhv3P|C|Ct7-;!9m1zPu@}diC=NU%H47#2AwUv5tH& zfvHsHk}9(RZWL?)G;J+D^*R*u^-g#M3u`{P4}BFcixwgnU5nRs`r>$owi~2>7CMq# z>JM3&&XHzSNlCtbmS@saDtf6+fUV`R3VjT;RLVQ(%#Y0TcH57~ml+3?u;(~Erk3+R z26SNyIef*%)|oW!Z&E~U*%+0I2ILDIB8^o75ns5DJ1L(DGy?)Gc`5wP(8;vAvj&5R zDgVg?F~4a!0{Zm!pID8~^tm9(`Sz)s%dTwf{5AY`#ZF=@I!_DK!hmsGyDyRQJihXCW`<+{+#FMxV+z}KqlP&!!s#v7=m8LHs$ zv+5#$su_zSo$EDoiSR3z&`L?}!Z#Y$jXSMNU znq9!sF^}#KFW@Ek?46hht%MREm37vNuRmW{vXrMZicxE(u5S$tquKKQanu8oi|h+^_GRFJh0WFt zM003OE=hOQK-lde)nK_~8&$&g(vYdK*o2rZLU-xKq0d<1t;suSG3?XOw~}jRnga!G zCTad#MWPwTmc5K@#>f^ARP;fO;tqxe+%^+30(4YY?clf{9J#Pygf0P)e>bvCA1@MI z@~u*qo#$#!MTz>a#b_KpG@gckxz!^Mb?}N z3a^}AUv4Rs$W8Bgz+kP`FKM@seEw-;$Ojs%w5ZIZ{NC#opQ|Y7vyocNkHBh+j}$`} z18<;Th5o*t2TRS zppEjCtoa~~(lh7Hy#BhH6gM&|r*P*0$LVHV`&anClbPN<-uw$1P`uN)+x@Ha<^A~? zMH_ST{zH~%9Iv1&f=}+~%DcQze<4u{3We7%UfgFLI3tLQ+S|aD?Pr{&2;urq8T}Pi zKZ4tqnH+N(9O3X`J!30NeGv-o<9wH=KGpG4%Ipm+hqx%lMy&pmbL!=dzX9Nr@$%R3 zo?g%Jc<$dcrmx3)hx{qz`18WGs(*jyJI>$quan1Tj??b`>$v-Kdj=7CA_qe)x2NeNC1J_2y0Aj9>*pV?MOT=`9Y<% zVw-j>`C9FU=otA`RZ(EYWC3UMl9e|ye5e)I7qz@=Nk!oVtS z&6nXUF~k{R6tJqv7v5THYt*uO!PzZwd*0%qinP-irz9P_EtuK>HO`sTLD zGVBR0Mz$L7T{n2VA5K-xl?+3QzGur&Hf!&o8vBl4CK5i=!a_Src;8W1O^oOzNtd`t z_z*>r(7q@wTwNT`xJfDE3)OWpBsY-fe!FJSop!D|209TblK(BW+_J%?&ifjo-zO57 zjz+bT0!9^90#jZeSe4?~mhwmAV{~!uo$MqBAw%6CE?LbE1#Nh98lU1OpUNh5p-Bqw zJKKiWGSc@Fq2glOH;p9NVH}l-9Vt*ciO!vHnlVFdppQ9hUf3HsJJGU=#`g3w`GX5Z zgmo9gUNhZA?87s)s-TeFWe+znO9c3&)IjKQ*pgt1k>znKf|$ zkKQo1=pFYxoOg4grgIzpxqADpTtLn$wk2k-8uX@?_)26lay&#uY;ih@zhYt8;)Ss^ znI!b7EvjnrMHULHFPOz;Q!L=H}kw3uD-cHq1V;Ox$j}I6|6S8m!zWiwpQ>R zt7DP^hkfp_>C!P*)6AWnQ+tIUXL3KW(rfDwnI}KS^EKx*LizH{3O!`xuEvNIw>)l% z?^f3XAd`ss{rx>;G)JVCTz>jIvUH84*x3af2nZ; zxl(ucHb5BZd-sOzyW_1kys&Ai;PVTDUSF{H$e-DvTK)#>23O!{q07|)8)ET zPS*y_yI@1hNgXW)Xn-JWEio~7KN%EfAp`g^_I_e6HuX*4WADts)z;zbz9RMkTlgyt zbu#lkj~r+`LOrJ`QFZGW2cU>=s)w9G$v2Vm;@fsQh3JR8b`cflIh$=%bV+fo>w6+> z%df5hUv2q@BO(mlmT7ezuI9@9X0be;oiCKkJ}*=QRIl9D*-NPq^3bWtaa1|W;au&& z*gSx&1+!RgZNS|m800p*H0t0+C8bu;h{%;V#+2)&(U;8(=jWH%E7TbIfr7K${$BB@ z2kjWy5&_IMDKBH|gItX!!OPSvaBlu|TxdN>!}33$3jBzUND}fB@EjpGzM1cqbgf6T zvACfx`nkzL_TE_i_zkIiVI?ng__l2u?J+yx+2gm^y2J_F+c&9gl)o;EEp4Ak_a&Ed zUma$Wbz4u?j;M!Jdged z(6kI_(`V7=$Q$#X7Q67Il zZ@h!dC6(ioln6JxUrcaGTPwTM5Cm1b^WTz+#Iqp`cRBT)gxlh^ZXsa4GGWw?m#7nD zNMC1Bue!-wiiV0K|LhYK19m!x>JjS12O&;}bG)M$TjlO+QOlfqV`j>8$Ftuo>RI1X zDb0%zqQketQS%@DW$6YvyOAIbznoc>dag{ran@0hUm8j+t#SvXXr~I}$eIJ8`Ccq7*PG<9Ow=6sJ@BkG3e)#MtxxDh1TFwE0 zCZ}urxsd-D^|rTFHVtrptgWfVPA!5}0S3UCFq8=!%J^3A?8iE+yH>-owoW$oZyA#- zz4GFLZ$tWvaJq>eUJkFFu{k3);<>o4I4G=oW)YHd#c&>1u$j=A^vI*>1NIK{Y|f6A zv5T0*198a_?guUk8KxtKjB&-Ve^AnR2}F2#aaY2Zx1SArXj)spXS=?*B;*rNy;(|# zZA_xyB2u+Y*lFtI(F?s-U0uO6H?&Yvn;NdgRlWDSi}mE?!;n=F2gtAI=Adw+ijEr@ zB(~iCrL=M-ENo)$%@;;W_PX~OF!9WpWtsh+=GUF|dqE6&|IiFD#+Qpj94!^{84A2A zBpmQ*1|^ECZ#(r{JJ0 zerd3kdmug@W0iN8C0ed<+xSWeKeAfzTvdLfgh7F?Xs4o0!d&@H7$HT$_S2$kI*fV_ zB~nx+^xWW(NnKUUYO3fMinihn++yIJA!Umx#tV2sB6D9lTi}mpL3iNM#@|Qd>jl7B8+)aD77WVVOD{r zt#AM?HIsPEF+mNF+qjmIIU{=J#G*p#V9}1Put;nQTY;vMEv9QBbGbK3g@6!k#eQD; zu`*H_cl^e~%M(aQD)jm%I6(+Sw;)Xuc`BK(fO9={*fPs-m-xp=Dz$D7hL8d!YU3k@+k(iLX#>LUPVCGtt-k`9WVRRM!?>nHsKlUm7ji zT;uZLVU^R6e-}3r*e!h6_0V6N&`RwKN)5 zaL*wYu7e;9x0P(QUhapuYs|`VOy*-XRbfPow!_<^ny^-z01Jy=h249)2w^GX8RWfz zn@7K_?8FnN-`V}*)0b>7C8Juux7iFc0n6lnpUb?WXkd64F1Pf+F6(9q@}EiPl5e*M z#uklYk$zmaA9-nZp4zWln- zH)vg3LD(plKa8qjUK$AXKOlwb`LQxTTGiYV1)%Wb29DMG0b@-_Io$p`g*`Z*uv*P9 zU)yBN@k*6HSb+1v4b#&Nhq6Nu-6nMAR+$V{#+4hR=9(Ulr1m4|MCEOaet5-f&jy1I zce*}Pu^l?3wD)&kb41jvnN8*BK~Ez9?K;KBks;agykA*)2CxR{!nLb9D( z=!0*PZ54XMH7b$~V|7o>fyjaRU4F}RQfCze!wB|Y(wl#4vjkd1?9zU%em&ar`}4w& zh(#1!u|U1Dt6p!P>eWy_0zy+u%H9v;cJ=%6Gpc{Q`cWY=^z7=OLt#8E!o5b6N7ufo z8yskQc&8{N{MM(*s2>}YIXBWWqy=4&>+c!uKzvg1UkXaNCJ9$mz1NK}F8;dqQff*&r2>WNQIDL}yl+y++$ZFWnIYYX&y)`^_ zYj6}#nRs?YJLbc)obX_uW1_61&qO=OG;378o2q4Wi~uW5Dy9R#4fmTt1}BxAHqX?d{B1g~SFs4)*8>U zZomdKn93Yf?W!vu8M4=l zH&Z2JT#9)l|pSxj1YZJ-Za7x6fV{n;p#V!PE^ztsaog;D>cLwX#dPu4m z14@;pig5#gr^!45y=3A<6VYPCU*ii~RU^+)gIvfGsEL}Z}fyR;e3I6;JI>*-=CX}`+uqCkvAw-3+p;fgHGpBmy!p4d4) zE@^Qk91KSn4De(p%tcQ8a1iu(c2tpHrkBP)SG8F2<=dx`<%ThIAU+&eFVXya*(e`^ zN@iO$@Elkj{`z?I`mu#d23wn21!~O7JQOHD0hR^h(mUKn-fkayEk0@a2xcsjgwCdE zD-0D>h{jVpvZocfan|S%>x}~T+vw$#Bd-E&_DS3=N6Y2v7aXto{Pncgvx$dJVz>iX z2waYrXTUR}S&mWJiCAsImFeM5@(SomVHV3??)JZV-9(p1N2_2z-dQI|fv>P%WJT9Z zvB>F_=<1hA4%UfjemS;J)AUz3c*2e-)B+6yfVA;G$i&Y!I?sEOmF|+fx~ltxXwPRs z<;p2@);mmARg8^0#TQw126Q%Hhxs&HaXJWxLqYwl9Y$Y^=hjn&;afrlss>psPcNxb zA>^QIb$$iV9hdRCd1Hkd~8mI>O;A6Q(RX= z`-G&0$Rd&vYHZXG-?dMA9CC0q@B(xfBPB)LNvqmv7zEN`BSHpBH0>KPy)A9oH}@ew z{l(@s5jkFC@sTEvxZX|`1%k~gZjN{%O-E=8)kc0Z6kGb_4QFaa@7Kg>AyO!d#wy1I zha`Ye&R1EhRU=`pv^fJZ!i`V9v6V6aTSap#jRndLb0;MrS%ap2K_xCs)yKfe^D1vh zh7c0$U#ok$O1ng1{?&yGCdWQyF#ks8ePM(lOmkky`@%q2B1$hXen%(#btkj!^R zxWaB6=ixHBAz%}ay?V&yctpAU7!spSke14(%XG}&Ru5P@$opi3bpLg(ii(EYPqk(q zzVSvFbg;aQu68d+3 zYI|kiTWCPww+-$3@pRRp&e2hzn#Cf5eRF%bXI>Ouq1ygl0qLi|?fmZAVCt`zV z)K`qMy=!ys{ea7(VZrIg9S(3o&e{}VS&-_OpIgk4vE)*@`5%Fgr+|)KH~h`YEMb{} zT*i#PEG7(_-9!J)$Iu_sdH|Kyu&b4vX(jxovII478lv*j%>YUZ+Ly+S;c0e|JosT_ zoF)PmdZ6dL9}>uTuD~O~I&R+@Wt%Bji31`nHW!=3cFBFY9_tp1Mn_ba1k-_@1wM5`sFRvWP-QbypRzXi= zQ%lR9Rk%&AK+Q@?w6dqp9l6zAQl$XTt!+>M!K)Y3Kecu>NlZ>sSOH7;e5g+<-W4be z_7IP--k|>AZT&U~F^+#Nm^L(IUNwEG{lOV-`_66ECOVN(bEQp~8$z5zmTB`~kGr#r z0fp&Pu7%Y$+dI5n-uPk+U;V)YCqZyk<%NXQW!qvM*1`B8&18p)Y%Lg+lz;J)DO_W? zon8WHt#?b&R30_Wzp9l2&EI#>w8+TttMx~=e%+dW?E&8YRGeajy1z|J)%h=<>}{-u zKieP@TtXhWLs_6bK6|$j>bV<P=ZnE~cpI3|?rwZ;^|w+R<^sW^qcZ=)eNdCoh`?w!^kGkD6vQ98hORdX4XuZ|k z{97x$9=YbVb;ksXkxL6qw`xqwZQX2}$0IeZK=tm##|v_@t}RU%rk2ngHmHksgA>}i zbppJC=}6#ow38mW?R>oO?li;@xLH1|zS`kP-sTtCOCaySfzjmm(}WlNa^VLHAanGB zQNa38K$`JhCjh`!@r<~L_Ik2EM~33$JHid$+!Mac*3Ywl^;Wje99Q9^MbNydzW|{x zDsLd=`sN2(WSXLvD87^1p7c-o%vEfjrJ~NW@cP{A zl5wro--mT2>nXQ%QasyKo1d6phYqKW0X}WbPqRGfY#BffsAJxESrcBhBwshDQeL@u z*W19*u<%dk$suWYdwp=x)~ zOkhh7bG5oS<7!7<`?i3$zY26&MZ=-3pVMo`-fz-TUXF_*37hO{@$6oX3h?^HXpFF1 z)KTy%=z@*BLa7zu-h+|um!4!4crW>`f1I8bl<|wWL~f9?z=Oi0+P4c2*aIYRn$4@z5fivV_X z^u3xWvH6&?z;GXMT`4%=gZ1UDk1-$tS^ZVE8cdeu zG!j0QzEa>|7nYR17t9(v296n9j(?uNo3@qlF3!W;rJ`3uk0ZL%K4l=rE$a%~3rqHgP zIO<`cs|1yvV|rUhf4a_aYSArLsbyGEObBb~420d5Bn`)!A_W72XeJJ{kRNA8gw9ZP z#-ME>AbWtfD>L4M5uCKSfL|G_kEv;b!TG$*J3m7O&uJkmS=%tyoYY>ZM~sBm8#Qs& zh1crbd)MppKyr?YHTS1fRjtXpaV_}~N4v+kOA^#=D7g6E0Go%te&VSz@8ojL&L!Xm zu~@e~6#WEGnCZswuV2WnQfuLIMA&-DBT-+MB|lz{Wmd8h zwIAbV4dUII3{m-IK|;RW`y;*EoWv+^F-=GsKfj~5FIi;q6YDTPdd8&tvGq^W-Qin! zt!Cb?)Lait|0l@@v>vP!JZf$^!mgxLj9b*z!3!e(uV0HY0S;2j)_#)%=I4>Ns~u!A zndOf!e@`{0GU&RA&pc(u{uZ&I%6!-EbV%=zKmQn(nG^%qxDiw;Dyh5CzsQ(MRQ!pT;xg|tfGgCOfg@v&se!z-) z>?TN_d1=}2Kv8G&#|x!+H*w{Xl2wMJSuj=u2u(={(5BF0J#N6ge=V>5S~;StSMdso z|GDfww7exo4sS2Kf(n{{S4Bf{<6jGeUm3S2=!6KJrPoNPsChZIH+`D`;r^m{T=Ph) zkW+=6eAET~3E-Xn@INLx{C^<;{oneCcenQTe8_tZRX!~xD*F296X`mmth%m14wqL~ z>9yGY1lX_q2Fx$oEi;__?HE*CY(PiX+f9ISh&26C%Hw;8>e6}h)8TV(my1h#<0%B( z7O)leCx{CINdWM=7U!QjoL{WLxzwWEj>ztwC&UAuL5C6faXLCbKR@9?Z;`FPH7Pzmi0KcZ zPM67x7f!A-i|x=+?1YM{8`_Zjhp~8}Y}r3C^czng)uq!*!<_+%F8*!Z(K$I z2isdFp_=8Z<4Kz9y-n0=B0_(r26exTnY+=8506j{qOuF8scF7^PnMZg!^^nMc0v-Q zqyPaM>!E#CW~0uh%!tZxYMAv=PWu50ItK$Tshjo&lz0BLmRESbv3~jZVU+^>x=D<5 zEZ;QcbFD%{$pmRorEmq*j;Zfr`pN$kW)IklsCfyfvSss^N_|UI8DwH@nwnbGBWsdNx53w`1L;OKhiRO1_BKZTY<4TL{_zKjXbMR#g61hZkR}x zD}yH>VB|A(5aLU@I}%T~ek()5>>_sf1RyY=vm(?FRncbXUWd`9q)So|p zqYhGE92Vtz@UN18{`}b`mcFo1b6-??zvza{!AWfIoh`S0bEJF~*s41TJ2(g;bx@&D zGXK7*Vvn3fYerfT2JI9Y{06mjX#q}6Om^kP0eif4LKjp@-S9AT+Wq5|yF4i@vMP*B zOs5Ha9$y+CFYTum(;WHjc}P!p_SlGFv9h0z8;mLZ_=wma<2JkH4%*&yKN-^$TAvtf zasG;%4kOi8A)(uwo4&q#2VL#UTwj7tRhNj_Bl~30S|rP-$Mk;v_3KfD`O5r?D-elu znbr)&`XS*6y_0e-8oU(RD@-KQ%9$nV)Wp`ovfzk8 zk8e6vVa3HCKMt2_)0HMJoaCOosD#JkW$?!`wgx&yCtm*Z>c-{ok*jf#tdx^>QQYbH z&n|U|_x^WA*1eh=rx$E(ZJ8kZg%1Qz&c>MNkI8dZ%`Z+)PL6kB$3w^Z-;A{X7YxPU z8O%xT|KH-H{TFlh|6B2Y<_6XsQBhDF9W`mIEFCME@?_R~jzUmpidg