From ad8dfa27d7958ca66176466562aa23361f2d68d7 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Tue, 28 Apr 2026 21:09:12 +0200 Subject: [PATCH] Initial commit: multi-symbol bot with backtest engine and RSI trend strategy Co-Authored-By: Claude Sonnet 4.6 --- .env.example | 10 + .gitignore | 9 + backtest.py | 321 +++++++++++++++++++++++++++++++++ bot/__init__.py | 0 bot/alerts.py | 77 ++++++++ bot/broker.py | 22 +++ bot/config.py | 51 ++++++ bot/loop.py | 168 +++++++++++++++++ bot/mt5_client.py | 130 +++++++++++++ bot/paper_client.py | 341 +++++++++++++++++++++++++++++++++++ bot/risk.py | 60 ++++++ bot/signals.py | 91 ++++++++++ config.json | 33 ++++ engine/__init__.py | 0 engine/backtest.py | 169 +++++++++++++++++ engine/data.py | 40 ++++ engine/indicators.py | 40 ++++ engine/metrics.py | 109 +++++++++++ engine/optimizer.py | 62 +++++++ main.py | 52 ++++++ reports/__init__.py | 0 reports/baseline.png | Bin 0 -> 158999 bytes reports/chart.py | 97 ++++++++++ reports/improved_default.png | Bin 0 -> 124920 bytes reports/optimised_full.png | Bin 0 -> 121420 bytes reports/walkforward_oos.png | Bin 0 -> 116636 bytes requirements.txt | 3 + run_backtest.py | 224 +++++++++++++++++++++++ run_multi_symbol.py | 163 +++++++++++++++++ run_paper.py | 234 ++++++++++++++++++++++++ strategies/__init__.py | 0 strategies/rsi_trend.py | 138 ++++++++++++++ 32 files changed, 2644 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 backtest.py create mode 100644 bot/__init__.py create mode 100644 bot/alerts.py create mode 100644 bot/broker.py create mode 100644 bot/config.py create mode 100644 bot/loop.py create mode 100644 bot/mt5_client.py create mode 100644 bot/paper_client.py create mode 100644 bot/risk.py create mode 100644 bot/signals.py create mode 100644 config.json create mode 100644 engine/__init__.py create mode 100644 engine/backtest.py create mode 100644 engine/data.py create mode 100644 engine/indicators.py create mode 100644 engine/metrics.py create mode 100644 engine/optimizer.py create mode 100644 main.py create mode 100644 reports/__init__.py create mode 100644 reports/baseline.png create mode 100644 reports/chart.py create mode 100644 reports/improved_default.png create mode 100644 reports/optimised_full.png create mode 100644 reports/walkforward_oos.png create mode 100644 requirements.txt create mode 100644 run_backtest.py create mode 100644 run_multi_symbol.py create mode 100644 run_paper.py create mode 100644 strategies/__init__.py create mode 100644 strategies/rsi_trend.py diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..1dd9f6a --- /dev/null +++ b/.env.example @@ -0,0 +1,10 @@ +# Copy this file to .env and fill in your values + +# MetaTrader 5 credentials (required for live trading; optional in paper mode) +MT5_LOGIN=12345678 +MT5_PASSWORD=your_mt5_password +MT5_SERVER=YourBroker-Server + +# Telegram bot (optional — omit to disable notifications) +TELEGRAM_BOT_TOKEN=your_bot_token_here +TELEGRAM_CHAT_ID=your_chat_id_here diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0988811 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +__pycache__/ +*.pyc +*.pyo +.env +.venv/ +*.egg-info/ +dist/ +build/ +.pytest_cache/ diff --git a/backtest.py b/backtest.py new file mode 100644 index 0000000..aaad9b9 --- /dev/null +++ b/backtest.py @@ -0,0 +1,321 @@ +#!/usr/bin/env python3 +""" +RSI Mean Reversion Strategy — Backtest +====================================== +Symbol : EURJPY M15 +Period : 2024-04-22 → 2026-04-21 (~2 years, 10 277 candles) + +Strategy +-------- +Signal : RSI(14) exits oversold (<30) or overbought (>70) zone +Entry : Next bar open after signal candle +Stop : 1.5 × ATR(14) against position +Target : 3.0 × ATR(14) in favour → R:R = 1 : 2 +Session : 07:00–20:00 UTC only (avoid thin Asian/weekend hours) +Max pos : 1 trade at a time + +Rationale +--------- +RSI reversals from extreme territory have decades of documented edge on +liquid FX pairs. Entering on the *exit* from the extreme (rather than at +the extreme itself) gives one-bar of confirmation that the bounce has +started. ATR-based stops adapt to current volatility, keeping the R:R +ratio constant in volatility-adjusted terms. +""" + +import sqlite3 +from dataclasses import dataclass, field +from datetime import datetime, timezone +from pathlib import Path +from typing import Optional +import sys + +# ── numerical libs ────────────────────────────────────────────────────────── +try: + import numpy as np + import pandas as pd +except ImportError: + sys.exit("Run with the BellCurve venv: " + "/home/jonathan/Projects/ForexBots/BellCurve/.venv/bin/python3 backtest.py") + +# ── constants ──────────────────────────────────────────────────────────────── +DB_PATH = Path("/home/jonathan/Projects/ForexBots/data/candles.db") +SYMBOL = "EURJPY" +TIMEFRAME = "M15" +RSI_PERIOD = 14 +ATR_PERIOD = 14 +RSI_OB = 70 # overbought threshold +RSI_OS = 30 # oversold threshold +SL_ATR = 1.5 # stop-loss multiplier +TP_ATR = 3.0 # take-profit multiplier +SESSION_START = 7 # UTC hour +SESSION_END = 20 # UTC hour +PIP = 0.01 # 1 pip for JPY pairs (e.g. EURJPY) +INITIAL_BALANCE = 10_000.0 # USD +RISK_PER_TRADE = 0.01 # 1 % of balance per trade + + +# ── data classes ───────────────────────────────────────────────────────────── +@dataclass +class Trade: + direction: str # 'long' | 'short' + entry_time: datetime + entry_price: float + sl: float + tp: float + exit_time: Optional[datetime] = None + exit_price: Optional[float] = None + exit_reason: str = "" + pnl_pips: float = 0.0 + pnl_pct: float = 0.0 # % of balance risked + + @property + def closed(self) -> bool: + return self.exit_time is not None + + +# ── helpers ─────────────────────────────────────────────────────────────────── +def calc_rsi(close: pd.Series, period: int = 14) -> pd.Series: + delta = close.diff() + gain = delta.clip(lower=0) + loss = (-delta).clip(lower=0) + avg_g = gain.ewm(alpha=1 / period, min_periods=period, adjust=False).mean() + avg_l = loss.ewm(alpha=1 / period, min_periods=period, adjust=False).mean() + rs = avg_g / avg_l.replace(0, float("inf")) + return 100 - (100 / (1 + rs)) + + +def calc_atr(df: pd.DataFrame, period: int = 14) -> pd.Series: + high, low, prev_close = df["high"], df["low"], df["close"].shift(1) + tr = pd.concat([ + high - low, + (high - prev_close).abs(), + (low - prev_close).abs(), + ], axis=1).max(axis=1) + return tr.ewm(alpha=1 / period, min_periods=period, adjust=False).mean() + + +def pip_diff(a: float, b: float) -> float: + """Signed pip difference a − b (JPY pair).""" + return (a - b) / PIP + + +# ── load data ───────────────────────────────────────────────────────────────── +def load_candles() -> pd.DataFrame: + conn = sqlite3.connect(DB_PATH) + df = pd.read_sql_query( + "SELECT time, open, high, low, close, tick_volume AS volume " + "FROM candles WHERE symbol=? AND timeframe=? ORDER BY time", + conn, params=(SYMBOL, TIMEFRAME), + ) + conn.close() + df["time"] = pd.to_datetime(df["time"]) + df.set_index("time", inplace=True) + return df + + +# ── core backtest ───────────────────────────────────────────────────────────── +def run_backtest(df: pd.DataFrame) -> list[Trade]: + df = df.copy() + df["rsi"] = calc_rsi(df["close"], RSI_PERIOD) + df["atr"] = calc_atr(df, ATR_PERIOD) + + trades: list[Trade] = [] + position: Optional[Trade] = None + + for i in range(1, len(df)): + row = df.iloc[i] + prev_row = df.iloc[i - 1] + + hour = row.name.hour + + # ── manage open position ───────────────────────────────────────────── + if position is not None and not position.closed: + hi, lo = row["high"], row["low"] + sl, tp = position.sl, position.tp + + hit_sl = (position.direction == "long" and lo <= sl) or \ + (position.direction == "short" and hi >= sl) + hit_tp = (position.direction == "long" and hi >= tp) or \ + (position.direction == "short" and lo <= tp) + + # if both hit on same bar, assume SL got hit first (conservative) + if hit_sl or hit_tp: + exit_price = sl if hit_sl else tp + exit_reason = "SL" if hit_sl else "TP" + pips = pip_diff(exit_price, position.entry_price) if position.direction == "long" \ + else pip_diff(position.entry_price, exit_price) + position.exit_time = row.name + position.exit_price = exit_price + position.exit_reason = exit_reason + position.pnl_pips = pips + # pnl_pct: risk was SL distance; TP gives 2× risk, SL gives −1× risk + sl_distance_pips = abs(pip_diff(position.entry_price, sl)) + position.pnl_pct = (pips / sl_distance_pips) * RISK_PER_TRADE * 100 + position = None + continue # don't open new trade on same bar we just closed + + # ── check for new signal (no open position) ────────────────────────── + if position is not None: + continue + + # session filter + if not (SESSION_START <= hour < SESSION_END): + continue + + # need valid indicators + if pd.isna(prev_row["rsi"]) or pd.isna(row["rsi"]) or pd.isna(row["atr"]): + continue + + rsi_prev, rsi_now = prev_row["rsi"], row["rsi"] + atr = row["atr"] + + # signal: RSI exiting oversold (cross back above 30) → long + long_signal = (rsi_prev < RSI_OS) and (rsi_now >= RSI_OS) + # signal: RSI exiting overbought (cross back below 70) → short + short_signal = (rsi_prev > RSI_OB) and (rsi_now <= RSI_OB) + + if not (long_signal or short_signal): + continue + + # entry on NEXT bar open — peek at i+1 if available + if i + 1 >= len(df): + continue + next_bar = df.iloc[i + 1] + entry_price = next_bar["open"] + atr_at_entry = row["atr"] # use signal-bar ATR for SL/TP + + if long_signal: + sl = entry_price - SL_ATR * atr_at_entry + tp = entry_price + TP_ATR * atr_at_entry + direction = "long" + else: + sl = entry_price + SL_ATR * atr_at_entry + tp = entry_price - TP_ATR * atr_at_entry + direction = "short" + + position = Trade( + direction = direction, + entry_time = next_bar.name, + entry_price = entry_price, + sl = sl, + tp = tp, + ) + trades.append(position) + + return trades + + +# ── metrics ─────────────────────────────────────────────────────────────────── +def print_metrics(trades: list[Trade], df: pd.DataFrame) -> None: + closed = [t for t in trades if t.closed] + if not closed: + print("No closed trades.") + return + + pips = [t.pnl_pips for t in closed] + wins = [p for p in pips if p > 0] + losses = [p for p in pips if p <= 0] + + gross_profit = sum(wins) if wins else 0 + gross_loss = abs(sum(losses)) if losses else 0 + profit_factor = gross_profit / gross_loss if gross_loss else float("inf") + + # equity curve (pnl_pct accumulates on balance) + balance = INITIAL_BALANCE + equity = [balance] + for t in closed: + balance += balance * (t.pnl_pct / 100) + equity.append(balance) + equity = np.array(equity) + peak = np.maximum.accumulate(equity) + dd = (equity - peak) / peak * 100 + max_dd = dd.min() + + # annualised Sharpe (daily pnl_pct, then annualise √252) + # group trades by calendar day, sum pnl_pct per day + by_day: dict[str, float] = {} + for t in closed: + day = t.exit_time.date().isoformat() # type: ignore[union-attr] + by_day[day] = by_day.get(day, 0) + t.pnl_pct + daily = np.array(list(by_day.values())) + sharpe = (daily.mean() / daily.std() * np.sqrt(252)) if daily.std() > 0 else 0 + + open_trades = [t for t in trades if not t.closed] + + total_pips = sum(pips) + total_return = (equity[-1] / INITIAL_BALANCE - 1) * 100 + avg_win = np.mean(wins) if wins else 0 + avg_loss = np.mean(losses) if losses else 0 + win_rate = len(wins) / len(closed) * 100 + + # trade duration + durations = [(t.exit_time - t.entry_time).total_seconds() / 3600 + for t in closed] + + longs = [t for t in closed if t.direction == "long"] + shorts = [t for t in closed if t.direction == "short"] + + print("=" * 60) + print(" RSI Mean Reversion — EURJPY M15 Backtest Results") + print("=" * 60) + data_start = df.index[0].strftime("%Y-%m-%d") + data_end = df.index[-1].strftime("%Y-%m-%d") + print(f" Period : {data_start} → {data_end}") + print(f" Candles : {len(df):,}") + print(f" Initial balance : ${INITIAL_BALANCE:,.0f}") + print() + print("── Trade Summary ─────────────────────────────────────────") + print(f" Total trades : {len(closed)}") + print(f" Open (unresolved): {len(open_trades)}") + print(f" Longs : {len(longs)}") + print(f" Shorts : {len(shorts)}") + print(f" Wins : {len(wins)}") + print(f" Losses : {len(losses)}") + print(f" Win rate : {win_rate:.1f}%") + print() + print("── P&L ───────────────────────────────────────────────────") + print(f" Total pips : {total_pips:+.1f}") + print(f" Total return : {total_return:+.2f}%") + print(f" Final balance : ${equity[-1]:,.2f}") + print(f" Avg win (pips) : {avg_win:+.1f}") + print(f" Avg loss (pips) : {avg_loss:+.1f}") + print(f" Reward/Risk : {abs(avg_win/avg_loss):.2f}" if avg_loss else " Reward/Risk : ∞") + print(f" Profit factor : {profit_factor:.2f}") + print() + print("── Risk ──────────────────────────────────────────────────") + print(f" Max drawdown : {max_dd:.2f}%") + print(f" Sharpe ratio : {sharpe:.2f}") + print(f" Risk/trade : {RISK_PER_TRADE*100:.1f}% of balance") + print() + print("── Timing ────────────────────────────────────────────────") + print(f" Avg duration : {np.mean(durations):.1f} hours") + print(f" Median duration : {np.median(durations):.1f} hours") + print() + print("── SL/TP Breakdown ───────────────────────────────────────") + by_exit: dict[str, int] = {} + for t in closed: + by_exit[t.exit_reason] = by_exit.get(t.exit_reason, 0) + 1 + for reason, count in sorted(by_exit.items()): + print(f" {reason:5s} : {count} trades ({count/len(closed)*100:.1f}%)") + print("=" * 60) + + # sample trades + print("\n── Last 10 closed trades ─────────────────────────────────") + print(f" {'Entry':19s} {'Exit':19s} {'Dir':5s} {'Pips':>8s} {'Reason':6s}") + for t in closed[-10:]: + print(f" {str(t.entry_time):19s} {str(t.exit_time):19s} " + f"{t.direction:5s} {t.pnl_pips:+8.1f} {t.exit_reason}") + + +# ── main ────────────────────────────────────────────────────────────────────── +if __name__ == "__main__": + print(f"Loading {SYMBOL} {TIMEFRAME} candles...") + df = load_candles() + print(f" {len(df):,} candles " + f"({df.index[0].date()} → {df.index[-1].date()})") + + print("Running backtest...") + trades = run_backtest(df) + + print_metrics(trades, df) diff --git a/bot/__init__.py b/bot/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/bot/alerts.py b/bot/alerts.py new file mode 100644 index 0000000..b45b3ee --- /dev/null +++ b/bot/alerts.py @@ -0,0 +1,77 @@ +""" +Telegram alert system. All sends are fire-and-forget — a send failure +never crashes the main loop. +""" + +import logging + +from . import config + +logger = logging.getLogger(__name__) + +_bot = None +_chat_id = None + + +def _get_bot(): + global _bot, _chat_id + if _bot is None and config.TELEGRAM_BOT_TOKEN and config.TELEGRAM_CHAT_ID: + try: + from telegram import Bot + _bot = Bot(token=config.TELEGRAM_BOT_TOKEN) + _chat_id = config.TELEGRAM_CHAT_ID + except ImportError: + logger.warning("python-telegram-bot not installed — Telegram disabled") + return _bot + + +async def send(text: str) -> None: + bot = _get_bot() + if bot is None: + return + try: + await bot.send_message(chat_id=_chat_id, text=text, parse_mode="HTML") + except Exception as exc: + logger.warning("Telegram send failed: %s", exc) + + +async def notify_open(symbol: str, direction: str, entry: float, + sl: float, tp: float, lots: float) -> None: + arrow = "🟢 BUY" if direction == "long" else "🔴 SELL" + mode = "PAPER" if config.PAPER_TRADING else "LIVE" + text = ( + f"[{mode}] {arrow} {symbol}\n" + f"Entry : {entry:.5f}\n" + f"SL : {sl:.5f}\n" + f"TP : {tp:.5f}\n" + f"Size : {lots:.2f} lots\n" + f"R:R : 1 : {config.TP_ATR / config.SL_ATR:.1f}" + ) + logger.info("OPEN %s %s @ %.5f SL=%.5f TP=%.5f %.2f lots", + symbol, direction.upper(), entry, sl, tp, lots) + await send(text) + + +async def notify_close(symbol: str, direction: str, entry: float, + exit_price: float, pnl_pips: float, reason: str) -> None: + sign = "✅" if pnl_pips > 0 else "❌" + text = ( + f"{sign} CLOSED {symbol}\n" + f"Dir : {direction.upper()}\n" + f"Entry : {entry:.5f}{exit_price:.5f}\n" + f"P&L : {pnl_pips:+.1f} pips\n" + f"Reason: {reason}" + ) + logger.info("CLOSE %s %s %+.1f pips (%s)", symbol, direction.upper(), + pnl_pips, reason) + await send(text) + + +async def notify_status(message: str) -> None: + logger.info(message) + await send(f"ℹ️ {message}") + + +async def notify_error(message: str) -> None: + logger.error(message) + await send(f"🚨 ERROR: {message}") diff --git a/bot/broker.py b/bot/broker.py new file mode 100644 index 0000000..79662f1 --- /dev/null +++ b/bot/broker.py @@ -0,0 +1,22 @@ +""" +Broker facade — routes all calls to either mt5_client or paper_client +depending on config.PAPER_TRADING. Import this module everywhere; never +import the underlying clients directly. +""" + +from . import config + +if config.PAPER_TRADING: + from .paper_client import ( # noqa: F401 + connect, disconnect, + get_candles, get_tick, get_account_info, + get_open_positions, get_symbol_info, place_order, + ORDER_TYPE_BUY, ORDER_TYPE_SELL, + ) +else: + from .mt5_client import ( # noqa: F401 + connect, disconnect, + get_candles, get_tick, get_account_info, + get_open_positions, get_symbol_info, place_order, + ORDER_TYPE_BUY, ORDER_TYPE_SELL, + ) diff --git a/bot/config.py b/bot/config.py new file mode 100644 index 0000000..36a4ee6 --- /dev/null +++ b/bot/config.py @@ -0,0 +1,51 @@ +""" +Configuration — loaded once at import time. +Values come from config.json (strategy params) and .env (secrets). +""" + +import json +import os +from pathlib import Path + +from dotenv import load_dotenv + +load_dotenv() + +_root = Path(__file__).parent.parent +with open(_root / "config.json") as f: + _cfg = json.load(f) + +# ── strategy ────────────────────────────────────────────────────────────────── +SYMBOLS: list[str] = _cfg["symbols"] +TIMEFRAME: str = _cfg["timeframe"] # "M15" +LOOKBACK: int = _cfg["lookback_candles"] # bars for indicator warmup +RSI_PERIOD: int = _cfg["rsi_period"] +ATR_PERIOD: int = _cfg["atr_period"] +OS_LEVEL: float = _cfg["os_level"] +OB_LEVEL: float = _cfg["ob_level"] +SL_ATR: float = _cfg["sl_atr"] +TP_ATR: float = _cfg["tp_atr"] +TREND_FAST: int = _cfg["trend_fast"] +TREND_SLOW: int = _cfg["trend_slow"] +SESSION_START: int = _cfg["session_start"] +SESSION_END: int = _cfg["session_end"] + +# ── risk ────────────────────────────────────────────────────────────────────── +RISK_PER_TRADE: float = _cfg["risk_per_trade"] # fraction, e.g. 0.01 +MAX_POSITIONS: int = _cfg["max_positions"] +MIN_SL_PIPS: float = _cfg["min_sl_pips"] +MAX_DAILY_LOSS: float = _cfg["max_daily_loss"] # fraction of balance + +# ── mode ────────────────────────────────────────────────────────────────────── +PAPER_TRADING: bool = _cfg.get("paper_trading", True) +PAPER_INITIAL_BALANCE: float = _cfg.get("paper_initial_balance", 10_000.0) +REFRESH_INTERVAL: int = _cfg.get("refresh_interval_seconds", 15) + +# ── broker secrets (from .env) ──────────────────────────────────────────────── +MT5_LOGIN: int = int(os.environ.get("MT5_LOGIN") or "0") +MT5_PASSWORD: str = os.environ.get("MT5_PASSWORD", "") +MT5_SERVER: str = os.environ.get("MT5_SERVER", "") + +# ── telegram secrets ────────────────────────────────────────────────────────── +TELEGRAM_BOT_TOKEN: str = os.environ.get("TELEGRAM_BOT_TOKEN", "") +TELEGRAM_CHAT_ID: str = os.environ.get("TELEGRAM_CHAT_ID", "") diff --git a/bot/loop.py b/bot/loop.py new file mode 100644 index 0000000..584d1e8 --- /dev/null +++ b/bot/loop.py @@ -0,0 +1,168 @@ +""" +Main trading loop. + +Wakes on each M15 bar boundary, scans all configured symbols for signals, +executes trades through the broker facade, and handles daily bookkeeping. +""" + +import asyncio +import logging +from datetime import datetime, timezone, timedelta + +from . import broker, config, risk, alerts +from .signals import check + +logger = logging.getLogger(__name__) + + +# ── timing ─────────────────────────────────────────────────────────────────── + +def _next_bar_time(now: datetime) -> datetime: + """Return the UTC datetime of the next M15 bar close.""" + minutes = (now.minute // 15 + 1) * 15 + base = now.replace(minute=0, second=0, microsecond=0) + next_bar = base + timedelta(minutes=minutes) + return next_bar + timedelta(seconds=5) # 5-s buffer after bar close + + +async def _sleep_until(dt: datetime) -> None: + delay = (dt - datetime.now(timezone.utc)).total_seconds() + if delay > 0: + logger.debug("Sleeping %.1f s until %s", delay, dt.strftime("%H:%M:%S")) + await asyncio.sleep(delay) + + +# ── daily reset ────────────────────────────────────────────────────────────── + +_last_day: str = "" + + +def _daily_reset(): + global _last_day + today = datetime.now(timezone.utc).date().isoformat() + if today != _last_day: + _last_day = today + logger.info("── New trading day: %s ──", today) + + +# ── position tracker (for can_trade check across symbols) ──────────────────── + +async def _get_state() -> dict: + """Read paper state for daily P&L. Returns empty dict for live MT5 mode.""" + if config.PAPER_TRADING: + from .paper_client import _state + return _state + return {} + + +# ── trade execution ────────────────────────────────────────────────────────── + +async def _execute(signal, account_info: dict) -> bool: + symbol_info = await broker.get_symbol_info(signal.symbol) + if symbol_info is None: + logger.warning("No symbol info for %s", signal.symbol) + return False + + tick = await broker.get_tick(signal.symbol) + if tick is None: + logger.warning("No tick for %s", signal.symbol) + return False + + fill_price = tick["ask"] if signal.direction == "long" else tick["bid"] + + volume = risk.calculate_lot_size( + symbol_info, + account_info["balance"], + fill_price, + signal.sl, + ) + if volume == 0.0: + return False + + order_type = broker.ORDER_TYPE_BUY if signal.direction == "long" else broker.ORDER_TYPE_SELL + result = await broker.place_order( + symbol = signal.symbol, + order_type = order_type, + volume = volume, + price = fill_price, + sl = signal.sl, + tp = signal.tp, + comment = "RSITrend", + ) + if result is None: + return False + + await alerts.notify_open(signal.symbol, signal.direction, fill_price, + signal.sl, signal.tp, volume) + return True + + +# ── symbol already has open position? ──────────────────────────────────────── + +def _has_open(symbol: str, open_positions: list[dict]) -> bool: + return any( + p.get("symbol") == symbol or p.get("s") == symbol + for p in open_positions + ) + + +# ── main loop ───────────────────────────────────────────────────────────────── + +async def run() -> None: + mode = "PAPER" if config.PAPER_TRADING else "LIVE" + logger.info("Bot started in %s mode — symbols: %s", mode, config.SYMBOLS) + await alerts.notify_status( + f"NewBot started ({mode}) — watching {', '.join(config.SYMBOLS)}" + ) + + while True: + now = datetime.now(timezone.utc) + next_bar = _next_bar_time(now) + await _sleep_until(next_bar) + + _daily_reset() + + try: + await _scan() + except Exception as exc: + logger.exception("Scan error: %s", exc) + await alerts.notify_error(str(exc)) + + +async def _scan() -> None: + account = await broker.get_account_info() + if account is None: + logger.error("Cannot fetch account info") + return + + open_positions = await broker.get_open_positions() + state = await _get_state() + + if not risk.can_trade(account, open_positions, state): + return + + now_str = datetime.now(timezone.utc).strftime("%H:%M UTC") + logger.info("[%s] Scanning %d symbols open=%d balance=$%.2f", + now_str, len(config.SYMBOLS), len(open_positions), account["balance"]) + + for symbol in config.SYMBOLS: + # don't add a second position on the same symbol + if _has_open(symbol, open_positions): + continue + + df = await broker.get_candles(symbol, config.TIMEFRAME, config.LOOKBACK) + if df is None or len(df) < config.LOOKBACK: + logger.debug("%s: not enough candles", symbol) + continue + + signal = check(df, symbol) + if signal is None: + continue + + logger.info("Signal: %s", signal) + success = await _execute(signal, account) + if success: + # re-check position count after each trade + open_positions = await broker.get_open_positions() + if not risk.can_trade(account, open_positions, state): + break diff --git a/bot/mt5_client.py b/bot/mt5_client.py new file mode 100644 index 0000000..6b7a85b --- /dev/null +++ b/bot/mt5_client.py @@ -0,0 +1,130 @@ +""" +MT5 broker client. Thin async wrapper around the synchronous MetaTrader5 API. +All blocking calls run in the default executor so the event loop stays free. +""" + +import asyncio +import logging +from typing import Optional + +import pandas as pd + +from . import config + +logger = logging.getLogger(__name__) + +try: + import MetaTrader5 as mt5 + _MT5_AVAILABLE = True +except ImportError: + _MT5_AVAILABLE = False + logger.warning("MetaTrader5 package not installed — MT5 client unavailable") + +ORDER_TYPE_BUY = 0 +ORDER_TYPE_SELL = 1 + +_TF_MAP = { + "M1": 1, "M5": 5, "M15": 15, "M30": 30, + "H1": 16385, "H4": 16388, "D1": 16408, +} + + +def _run(fn): + return asyncio.get_event_loop().run_in_executor(None, fn) + + +def connect() -> bool: + if not _MT5_AVAILABLE: + logger.error("MetaTrader5 not installed") + return False + if not mt5.initialize( + login=config.MT5_LOGIN, + password=config.MT5_PASSWORD, + server=config.MT5_SERVER, + ): + logger.error("MT5 init failed: %s", mt5.last_error()) + return False + info = mt5.terminal_info() + logger.info("MT5 connected: %s", info.name if info else "unknown") + return True + + +def disconnect(): + if _MT5_AVAILABLE: + mt5.shutdown() + + +async def get_candles(symbol: str, timeframe: str, count: int) -> Optional[pd.DataFrame]: + if not _MT5_AVAILABLE: + return None + tf = _TF_MAP[timeframe] + rates = await _run(lambda: mt5.copy_rates_from_pos(symbol, tf, 0, count)) + if rates is None or len(rates) == 0: + return None + df = pd.DataFrame(rates) + df["time"] = pd.to_datetime(df["time"], unit="s") + df = df.rename(columns={"tick_volume": "tick_volume"}) + return df.set_index("time") + + +async def get_tick(symbol: str) -> Optional[dict]: + if not _MT5_AVAILABLE: + return None + tick = await _run(lambda: mt5.symbol_info_tick(symbol)) + return tick._asdict() if tick else None + + +async def get_account_info() -> Optional[dict]: + if not _MT5_AVAILABLE: + return None + info = await _run(mt5.account_info) + return info._asdict() if info else None + + +async def get_open_positions(magic: int = 234001) -> list[dict]: + if not _MT5_AVAILABLE: + return [] + positions = await _run(lambda: mt5.positions_get()) + if positions is None: + return [] + return [p._asdict() for p in positions if p.magic == magic] + + +async def get_symbol_info(symbol: str) -> Optional[dict]: + if not _MT5_AVAILABLE: + return None + info = await _run(lambda: mt5.symbol_info(symbol)) + return info._asdict() if info else None + + +async def place_order( + symbol: str, + order_type: int, + volume: float, + price: float, + sl: float, + tp: float, + comment: str = "", + magic: int = 234001, +) -> Optional[dict]: + if not _MT5_AVAILABLE: + return None + request = { + "action": mt5.TRADE_ACTION_DEAL, + "symbol": symbol, + "volume": round(volume, 2), + "type": order_type, + "price": price, + "sl": sl, + "tp": tp, + "deviation": 20, + "magic": magic, + "comment": comment, + "type_time": mt5.ORDER_TIME_GTC, + "type_filling": mt5.ORDER_FILLING_IOC, + } + result = await _run(lambda: mt5.order_send(request)) + if result is None or result.retcode != mt5.TRADE_RETCODE_DONE: + logger.error("Order failed %s: %s", symbol, result) + return None + return result._asdict() diff --git a/bot/paper_client.py b/bot/paper_client.py new file mode 100644 index 0000000..bdf9cfc --- /dev/null +++ b/bot/paper_client.py @@ -0,0 +1,341 @@ +""" +Paper trading client — drop-in replacement for mt5_client. +Simulates fills using real MT5 tick prices (if MT5 available) or midpoints +from the local candles DB. State persists in paper_state.json. +""" + +import asyncio +import json +import logging +import math +from datetime import datetime, date +from pathlib import Path +from typing import Optional + +import pandas as pd + +from . import config + +logger = logging.getLogger(__name__) + +ORDER_TYPE_BUY = 0 +ORDER_TYPE_SELL = 1 + +STATE_PATH = Path(__file__).parent.parent / "paper_state.json" + +_state: dict = {} + +# Try to use MT5 for live prices even in paper mode +try: + from . import mt5_client as _mt5 + _MT5_FOR_PRICES = True +except Exception: + _MT5_FOR_PRICES = False + +# yfinance as live-price fallback when MT5 unavailable +try: + import yfinance as _yf + import warnings as _warnings + _warnings.filterwarnings("ignore", category=FutureWarning) + _YF_AVAILABLE = True +except ImportError: + _YF_AVAILABLE = False + +# candle cache: key → (fetched_at, DataFrame) +_candle_cache: dict[str, tuple[float, pd.DataFrame]] = {} +_CACHE_TTL = 60.0 # seconds + +_SPREADS_PIPS: dict[str, float] = { + "EURUSD": 0.8, "GBPUSD": 0.9, "USDJPY": 0.7, "USDCHF": 1.0, + "USDCAD": 1.0, "AUDUSD": 0.9, "NZDUSD": 1.2, "EURJPY": 1.0, + "GBPJPY": 1.5, "EURGBP": 1.0, "EURAUD": 1.5, "EURCAD": 1.5, + "AUDCAD": 1.5, "CADJPY": 1.5, "CHFJPY": 1.5, "EURCHF": 1.0, + "AUDCHF": 1.5, "CADCHF": 1.5, "AUDJPY": 1.2, "GBPCAD": 2.0, + "GBPAUD": 2.0, +} + + +def _pip_size(symbol: str) -> float: + return 0.01 if symbol.endswith("JPY") else 0.0001 + + +def _half_spread(symbol: str) -> float: + pips = _SPREADS_PIPS.get(symbol, 1.5) + return pips * _pip_size(symbol) / 2 + + +# ── state ───────────────────────────────────────────────────────────────────── + +def _load_state() -> dict: + if STATE_PATH.exists(): + with open(STATE_PATH) as f: + return json.load(f) + return { + "balance": config.PAPER_INITIAL_BALANCE, + "positions": [], + "history": [], + "daily_pnl": {}, + } + + +def _save_state(): + with open(STATE_PATH, "w") as f: + json.dump(_state, f, indent=2, default=str) + + +def connect() -> bool: + global _state + _state = _load_state() + logger.info("Paper trading — balance $%.2f open positions: %d", + _state["balance"], len(_state["positions"])) + return True + + +def disconnect(): + _save_state() + logger.info("Paper state saved → %s", STATE_PATH) + + +# ── price helpers ───────────────────────────────────────────────────────────── + +def _yf_ticker(symbol: str) -> str: + return f"{symbol}=X" + + +def _fetch_yf_candles(symbol: str, timeframe: str) -> Optional[pd.DataFrame]: + """Blocking yfinance fetch — run in executor.""" + if not _YF_AVAILABLE: + return None + interval_map = {"M15": "15m", "H1": "1h", "H4": "4h", "D1": "1d"} + interval = interval_map.get(timeframe, "15m") + # Request max available to give EMA(200) on H1 enough warmup + period = "60d" if interval in ("15m", "30m") else "365d" + try: + df = _yf.download( + _yf_ticker(symbol), interval=interval, + period=period, auto_adjust=True, progress=False, + ) + if df is None or df.empty: + return None + if isinstance(df.columns, pd.MultiIndex): + df.columns = df.columns.get_level_values(0) + df = df.rename(columns=str.lower) + df.index = pd.to_datetime(df.index, utc=True).tz_localize(None) + df.index.name = "time" + df["tick_volume"] = df.get("volume", 0).fillna(0).astype(int) + return df[["open", "high", "low", "close", "tick_volume"]].dropna() + except Exception as exc: + logger.debug("yfinance fetch failed for %s: %s", symbol, exc) + return None + + +async def _get_yf_cached(symbol: str, timeframe: str) -> Optional[pd.DataFrame]: + import time + key = f"{symbol}_{timeframe}" + now = time.monotonic() + if key in _candle_cache: + fetched_at, df = _candle_cache[key] + if now - fetched_at < _CACHE_TTL: + return df + loop = asyncio.get_event_loop() + df = await loop.run_in_executor(None, _fetch_yf_candles, symbol, timeframe) + if df is not None and not df.empty: + _candle_cache[key] = (now, df) + return df + + +async def get_tick(symbol: str) -> Optional[dict]: + # 1. prefer live MT5 tick + if _MT5_FOR_PRICES: + tick = await _mt5.get_tick(symbol) + if tick: + return tick + # 2. yfinance last bar + df = await _get_yf_cached(symbol, "M15") + if df is not None and not df.empty: + mid = float(df["close"].iloc[-1]) + hs = _half_spread(symbol) + return {"bid": mid - hs, "ask": mid + hs} + # 3. DB last close + try: + import sqlite3 + from engine.data import DB_PATH + conn = sqlite3.connect(DB_PATH) + row = conn.execute( + "SELECT close FROM candles WHERE symbol=? AND timeframe='M15' " + "ORDER BY time DESC LIMIT 1", (symbol,) + ).fetchone() + conn.close() + if row: + mid = row[0] + hs = _half_spread(symbol) + return {"bid": mid - hs, "ask": mid + hs} + except Exception: + pass + return None + + +async def get_candles(symbol: str, timeframe: str, count: int) -> Optional[pd.DataFrame]: + # 1. MT5 + if _MT5_FOR_PRICES: + df = await _mt5.get_candles(symbol, timeframe, count) + if df is not None: + return df + # 2. yfinance (returns all 60d; truncate to count) + df = await _get_yf_cached(symbol, timeframe) + if df is not None and not df.empty: + return df.tail(count) + # 3. DB fallback + try: + import sqlite3 + from engine.data import DB_PATH + conn = sqlite3.connect(DB_PATH) + rows = conn.execute( + "SELECT time, open, high, low, close, tick_volume " + "FROM candles WHERE symbol=? AND timeframe=? " + "ORDER BY time DESC LIMIT ?", + (symbol, timeframe, count) + ).fetchall() + conn.close() + if not rows: + return None + df = pd.DataFrame(rows[::-1], + columns=["time","open","high","low","close","tick_volume"]) + df["time"] = pd.to_datetime(df["time"]) + return df.set_index("time") + except Exception as exc: + logger.warning("DB candle fallback failed for %s: %s", symbol, exc) + return None + + +async def get_account_info() -> Optional[dict]: + return {"balance": _state["balance"], "equity": _state["balance"], "margin_level": 0.0} + + +async def get_open_positions(**_) -> list[dict]: + """Settle any TP/SL hits, return surviving positions.""" + still_open = [] + + for pos in _state["positions"]: + tick = await get_tick(pos["symbol"]) + if tick is None: + still_open.append(pos) + continue + + mid = (tick["bid"] + tick["ask"]) / 2 + ps = _pip_size(pos["symbol"]) + pv = pos["pip_value_per_lot"] * pos["volume"] + closed, pnl, reason, exit_px = False, 0.0, "", mid + + if pos["direction"] == ORDER_TYPE_BUY: + if mid <= pos["sl"]: + pnl, reason, exit_px = (pos["sl"] - pos["entry"]) / ps * pv, "SL", pos["sl"] + elif mid >= pos["tp"]: + pnl, reason, exit_px = (pos["tp"] - pos["entry"]) / ps * pv, "TP", pos["tp"] + else: + if mid >= pos["sl"]: + pnl, reason, exit_px = (pos["entry"] - pos["sl"]) / ps * pv, "SL", pos["sl"] + elif mid <= pos["tp"]: + pnl, reason, exit_px = (pos["entry"] - pos["tp"]) / ps * pv, "TP", pos["tp"] + + if reason: + _state["balance"] += pnl + today = date.today().isoformat() + _state.setdefault("daily_pnl", {})[today] = \ + _state["daily_pnl"].get(today, 0) + pnl + pnl_pips = (exit_px - pos["entry"]) / ps * (1 if pos["direction"] == ORDER_TYPE_BUY else -1) + _state["history"].append({ + **pos, "exit": exit_px, "pnl": round(pnl, 2), + "pnl_pips": round(pnl_pips, 1), + "reason": reason, "closed_at": datetime.now().isoformat(), + }) + logger.info("%s %-8s %s pnl=$%+.2f (%.1f pips) balance=$%.2f", + reason, pos["symbol"], + "BUY" if pos["direction"] == ORDER_TYPE_BUY else "SELL", + pnl, pnl_pips, _state["balance"]) + else: + still_open.append(pos) + + if len(still_open) != len(_state["positions"]): + _state["positions"] = still_open + _save_state() + + return list(_state["positions"]) + + +async def get_symbol_info(symbol: str) -> Optional[dict]: + """Return pip-value per standard lot in USD.""" + ps = _pip_size(symbol) + base, quote = symbol[:3], symbol[3:] + + tick = await get_tick(symbol) + if tick is None: + return None + mid = (tick["bid"] + tick["ask"]) / 2 + + async def cross_mid(pair: str) -> float: + t = await get_tick(pair) + return (t["bid"] + t["ask"]) / 2 if t else 1.0 + + if quote == "USD": + pip_value = 100_000 * ps + elif base == "USD": + pip_value = 100_000 * ps / mid + elif quote == "JPY": + rate = await cross_mid("USDJPY") + pip_value = 100_000 * ps / rate + elif quote in ("CAD", "CHF"): + rate = await cross_mid(f"USD{quote}") + pip_value = 100_000 * ps / rate + elif quote in ("AUD", "NZD", "GBP", "EUR"): + rate = await cross_mid(f"{quote}USD") + pip_value = 100_000 * ps * rate + else: + pip_value = 10.0 + + tick_size = ps / 10 + return { + "name": symbol, + "trade_tick_size": tick_size, + "trade_tick_value": pip_value / 10, + "volume_step": 0.01, + "_pip_value_per_lot": pip_value, + } + + +async def place_order( + symbol: str, + order_type: int, + volume: float, + price: float, + sl: float, + tp: float, + comment: str = "", + **_, +) -> Optional[dict]: + tick = await get_tick(symbol) + if tick is None: + return None + + fill = tick["ask"] if order_type == ORDER_TYPE_BUY else tick["bid"] + info = await get_symbol_info(symbol) + pv = info["_pip_value_per_lot"] if info else 10.0 + + trade_id = f"{symbol}_{datetime.now().strftime('%Y%m%d%H%M%S')}" + _state["positions"].append({ + "id": trade_id, + "symbol": symbol, + "direction": order_type, + "entry": fill, + "sl": sl, + "tp": tp, + "volume": volume, + "pip_value_per_lot": pv, + "comment": comment, + "opened_at": datetime.now().isoformat(), + }) + _save_state() + logger.info("PAPER %s %-8s %.2f lots @ %.5f SL=%.5f TP=%.5f", + "BUY " if order_type == ORDER_TYPE_BUY else "SELL", + symbol, volume, fill, sl, tp) + return {"order": trade_id} diff --git a/bot/risk.py b/bot/risk.py new file mode 100644 index 0000000..d6b5d34 --- /dev/null +++ b/bot/risk.py @@ -0,0 +1,60 @@ +""" +Position sizing and trade-permission checks. +""" + +import logging +import math +from datetime import date + +from . import config + +logger = logging.getLogger(__name__) + +MIN_LOT = 0.01 +MAX_LOT = 100.0 + + +def calculate_lot_size( + symbol_info: dict, + balance: float, + entry_price: float, + sl_price: float, +) -> float: + """Risk `config.RISK_PER_TRADE` fraction of balance on a single trade.""" + risk_amount = balance * config.RISK_PER_TRADE + + tick_value = symbol_info["trade_tick_value"] + tick_size = symbol_info["trade_tick_size"] + if tick_value == 0 or tick_size == 0: + return MIN_LOT + + pip_size = tick_size * 10 + pip_value = tick_value * (pip_size / tick_size) + dist_pips = abs(entry_price - sl_price) / pip_size + + if dist_pips < config.MIN_SL_PIPS: + logger.warning("SL too tight for %s: %.1f pips — skipping", + symbol_info.get("name"), dist_pips) + return 0.0 + + lot = risk_amount / (pip_value * dist_pips) + lot = max(MIN_LOT, min(MAX_LOT, lot)) + step = symbol_info.get("volume_step", 0.01) + lot = math.floor(lot / step) * step + return round(lot, 2) + + +def can_trade(account_info: dict, open_positions: list[dict], state: dict) -> bool: + if len(open_positions) >= config.MAX_POSITIONS: + logger.debug("Max positions reached (%d)", config.MAX_POSITIONS) + return False + + today = date.today().isoformat() + daily_pnl = state.get("daily_pnl", {}).get(today, 0.0) + balance = account_info.get("balance", 1.0) + if daily_pnl / balance < -config.MAX_DAILY_LOSS: + logger.warning("Daily loss limit hit: %.1f%% of balance", + -daily_pnl / balance * 100) + return False + + return True diff --git a/bot/signals.py b/bot/signals.py new file mode 100644 index 0000000..f2a8885 --- /dev/null +++ b/bot/signals.py @@ -0,0 +1,91 @@ +""" +Live signal generation — applies the RSI Trend strategy to a freshly fetched +candle window and returns a trade signal (or None). + +The logic mirrors backtest.strategies.rsi_trend exactly so live and backtest +behaviour stay in sync. +""" + +import logging +from typing import Optional + +import pandas as pd + +from . import config +from engine import indicators as ind + +logger = logging.getLogger(__name__) + +# ── signal result ───────────────────────────────────────────────────────────── + +class Signal: + __slots__ = ("symbol", "direction", "sl", "tp", "atr", "rsi") + + def __init__(self, symbol: str, direction: str, sl: float, tp: float, + atr: float, rsi: float): + self.symbol = symbol + self.direction = direction # 'long' | 'short' + self.sl = sl + self.tp = tp + self.atr = atr + self.rsi = rsi + + def __repr__(self) -> str: + return (f"Signal({self.symbol} {self.direction.upper()} " + f"sl={self.sl:.5f} tp={self.tp:.5f} rsi={self.rsi:.1f})") + + +# ── signal check ───────────────────────────────────────────────────────────── + +def check(df: pd.DataFrame, symbol: str) -> Optional[Signal]: + """ + Expects a DataFrame with columns [open, high, low, close] indexed by time, + with at least (LOOKBACK) rows. Returns a Signal or None. + + We check bar [-2] (the last completed bar) relative to bar [-3] (prev). + Bar [-1] is the currently forming bar — we never use it for signals. + """ + if len(df) < config.LOOKBACK: + logger.debug("%s: insufficient bars (%d < %d)", symbol, len(df), config.LOOKBACK) + return None + + # M15 indicators on full window + close = df["close"] + rsi_s = ind.rsi(close, config.RSI_PERIOD) + atr_s = ind.atr(df, config.ATR_PERIOD) + + # H1 trend from resampled M15 + h1 = close.resample("1h", label="left", closed="left").last().dropna() + ema_f = ind.ema(h1, config.TREND_FAST) + ema_s = ind.ema(h1, config.TREND_SLOW) + trend = (ema_f - ema_s).reindex(df.index, method="ffill") + + # Use second-to-last bar as signal bar (last fully closed bar) + bar = df.iloc[-2] + prev = df.iloc[-3] + rsi_now = rsi_s.iloc[-2] + rsi_prev = rsi_s.iloc[-3] + atr_val = atr_s.iloc[-2] + trend_val = trend.iloc[-2] + + if any(pd.isna(v) for v in [rsi_now, rsi_prev, atr_val, trend_val]): + return None + + # session filter on signal bar + hour = bar.name.hour + if not (config.SESSION_START <= hour < config.SESSION_END): + return None + + ref = bar["close"] + + if trend_val > 0 and rsi_prev < config.OS_LEVEL and rsi_now >= config.OS_LEVEL: + sl = ref - config.SL_ATR * atr_val + tp = ref + config.TP_ATR * atr_val + return Signal(symbol, "long", sl, tp, atr_val, rsi_now) + + if trend_val < 0 and rsi_prev > config.OB_LEVEL and rsi_now <= config.OB_LEVEL: + sl = ref + config.SL_ATR * atr_val + tp = ref - config.TP_ATR * atr_val + return Signal(symbol, "short", sl, tp, atr_val, rsi_now) + + return None diff --git a/config.json b/config.json new file mode 100644 index 0000000..af1d296 --- /dev/null +++ b/config.json @@ -0,0 +1,33 @@ +{ + "symbols": [ + "EURJPY", + "EURCHF", + "GBPJPY", + "CADJPY", + "EURAUD", + "EURUSD" + ], + + "timeframe": "M15", + "lookback_candles": 1200, + + "rsi_period": 14, + "atr_period": 14, + "os_level": 30.0, + "ob_level": 75.0, + "sl_atr": 2.0, + "tp_atr": 3.0, + "trend_fast": 50, + "trend_slow": 200, + "session_start": 7, + "session_end": 20, + + "risk_per_trade": 0.01, + "max_positions": 3, + "min_sl_pips": 5.0, + "max_daily_loss": 0.03, + + "paper_trading": true, + "paper_initial_balance": 10000.0, + "refresh_interval_seconds": 15 +} diff --git a/engine/__init__.py b/engine/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/engine/backtest.py b/engine/backtest.py new file mode 100644 index 0000000..7897ea6 --- /dev/null +++ b/engine/backtest.py @@ -0,0 +1,169 @@ +""" +Backtest engine. Strategy-agnostic — the Strategy object owns all signal +and position-sizing logic; this engine handles order simulation and P&L +accounting. +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from datetime import datetime +from typing import Optional, Protocol + +import numpy as np +import pandas as pd + + +PIP_SIZE: dict[str, float] = { + "JPY": 0.01, # e.g. EURJPY + "default": 0.0001, +} + + +def pip_size(symbol: str) -> float: + return PIP_SIZE["JPY"] if symbol.endswith("JPY") else PIP_SIZE["default"] + + +# ── trade record ───────────────────────────────────────────────────────────── + +@dataclass +class Trade: + direction: str # 'long' | 'short' + entry_time: datetime + entry_price: float + sl: float + tp: float + risk_pct: float # fraction of balance risked (e.g. 0.01) + exit_time: Optional[datetime] = None + exit_price: Optional[float] = None + exit_reason: str = "" + pnl_pips: float = 0.0 + pnl_r: float = 0.0 # P&L in units of risk (R) + + @property + def closed(self) -> bool: + return self.exit_time is not None + + @property + def duration_hours(self) -> float: + if not self.closed: + return 0.0 + return (self.exit_time - self.entry_time).total_seconds() / 3600 # type: ignore[operator] + + +# ── strategy protocol ───────────────────────────────────────────────────────── + +class Strategy(Protocol): + """Minimal interface every strategy must satisfy.""" + + def prepare(self, df: pd.DataFrame) -> pd.DataFrame: + """Compute and attach all indicator columns needed by `signal()`.""" + ... + + def signal( + self, + df: pd.DataFrame, + i: int, + ) -> Optional[tuple[str, float, float]]: + """ + Called on each bar when no position is open. + Returns (direction, sl_price, tp_price) or None. + direction is 'long' or 'short'. + Prices are for the bar at index i+1 (next open). + """ + ... + + +# ── engine ──────────────────────────────────────────────────────────────────── + +class BacktestEngine: + def __init__( + self, + symbol: str, + initial_balance: float = 10_000.0, + risk_per_trade: float = 0.01, # 1 % per trade + spread_pips: float = 0.5, # half-spread each side + ): + self.symbol = symbol + self.initial_balance = initial_balance + self.risk_per_trade = risk_per_trade + self.spread = spread_pips * pip_size(symbol) + + def run(self, df: pd.DataFrame, strategy: Strategy) -> tuple[list[Trade], np.ndarray]: + """ + Run the strategy over `df`. + Returns (trades, equity_curve) where equity_curve has one value per bar. + """ + df = strategy.prepare(df.copy()) + + trades: list[Trade] = [] + equity: list[float] = [self.initial_balance] + balance = self.initial_balance + position: Optional[Trade] = None + + for i in range(len(df) - 1): + row = df.iloc[i] + next_bar = df.iloc[i + 1] + + # ── manage open position ───────────────────────────────────────── + if position is not None: + hi, lo = row["high"], row["low"] + sl, tp = position.sl, position.tp + ps = pip_size(self.symbol) + + hit_sl = (position.direction == "long" and lo <= sl) or \ + (position.direction == "short" and hi >= sl) + hit_tp = (position.direction == "long" and hi >= tp) or \ + (position.direction == "short" and lo <= tp) + + if hit_sl or hit_tp: + exit_px = sl if hit_sl else tp + reason = "SL" if hit_sl else "TP" + raw = exit_px - position.entry_price + pips = (raw if position.direction == "long" else -raw) / ps + sl_dist = abs(position.entry_price - sl) / ps + r_mult = pips / sl_dist if sl_dist > 0 else 0 + pnl_pct = r_mult * position.risk_pct + + position.exit_time = row.name + position.exit_price = exit_px + position.exit_reason = reason + position.pnl_pips = pips + position.pnl_r = r_mult + balance *= (1 + pnl_pct) + position = None + + equity.append(balance) + continue + + # ── check for entry ────────────────────────────────────────────── + result = strategy.signal(df, i) + if result is None: + equity.append(balance) + continue + + direction, sl_px, tp_px = result + entry_px = next_bar["open"] + # apply spread (widen SL, narrow TP) + if direction == "long": + entry_px += self.spread + sl_px -= self.spread + tp_px -= self.spread + else: + entry_px -= self.spread + sl_px += self.spread + tp_px += self.spread + + trade = Trade( + direction = direction, + entry_time = next_bar.name, + entry_price = entry_px, + sl = sl_px, + tp = tp_px, + risk_pct = self.risk_per_trade, + ) + trades.append(trade) + position = trade + equity.append(balance) + + return trades, np.array(equity) diff --git a/engine/data.py b/engine/data.py new file mode 100644 index 0000000..f51cb0e --- /dev/null +++ b/engine/data.py @@ -0,0 +1,40 @@ +""" +Data loading and resampling utilities. +""" + +import sqlite3 +from pathlib import Path + +import pandas as pd + +DB_PATH = Path("/home/jonathan/Projects/ForexBots/data/candles.db") + +_RESAMPLE_MAP = { + "open": "first", + "high": "max", + "low": "min", + "close": "last", + "tick_volume": "sum", +} + + +def load_candles(symbol: str, timeframe: str, db_path: Path = DB_PATH) -> pd.DataFrame: + conn = sqlite3.connect(db_path) + df = pd.read_sql_query( + "SELECT time, open, high, low, close, tick_volume " + "FROM candles WHERE symbol=? AND timeframe=? ORDER BY time", + conn, params=(symbol, timeframe), + ) + conn.close() + df["time"] = pd.to_datetime(df["time"]) + df.set_index("time", inplace=True) + return df + + +def resample(df: pd.DataFrame, rule: str) -> pd.DataFrame: + """Resample an OHLCV dataframe to a coarser timeframe. + + rule follows pandas offset alias (e.g. '1h', '4h', '1D'). + """ + agg = {c: _RESAMPLE_MAP[c] for c in df.columns if c in _RESAMPLE_MAP} + return df.resample(rule, label="left", closed="left").agg(agg).dropna() diff --git a/engine/indicators.py b/engine/indicators.py new file mode 100644 index 0000000..84aef0a --- /dev/null +++ b/engine/indicators.py @@ -0,0 +1,40 @@ +""" +Pure-function technical indicators. All operate on pandas Series/DataFrame +and return pandas objects so NaN propagation is handled automatically. +""" + +import numpy as np +import pandas as pd + + +def ema(series: pd.Series, period: int) -> pd.Series: + return series.ewm(span=period, min_periods=period, adjust=False).mean() + + +def rsi(close: pd.Series, period: int = 14) -> pd.Series: + delta = close.diff() + gain = delta.clip(lower=0) + loss = (-delta).clip(lower=0) + avg_g = gain.ewm(alpha=1 / period, min_periods=period, adjust=False).mean() + avg_l = loss.ewm(alpha=1 / period, min_periods=period, adjust=False).mean() + rs = avg_g / avg_l.replace(0, np.inf) + return 100 - (100 / (1 + rs)) + + +def atr(df: pd.DataFrame, period: int = 14) -> pd.Series: + hi, lo, pc = df["high"], df["low"], df["close"].shift(1) + tr = pd.concat([(hi - lo), (hi - pc).abs(), (lo - pc).abs()], axis=1).max(axis=1) + return tr.ewm(alpha=1 / period, min_periods=period, adjust=False).mean() + + +def adx(df: pd.DataFrame, period: int = 14) -> pd.Series: + """Average Directional Index.""" + hi, lo, pc = df["high"], df["low"], df["close"].shift(1) + tr = pd.concat([(hi - lo), (hi - pc).abs(), (lo - pc).abs()], axis=1).max(axis=1) + dm_pos = (hi - hi.shift(1)).clip(lower=0).where((hi - hi.shift(1)) > (lo.shift(1) - lo), 0) + dm_neg = (lo.shift(1) - lo).clip(lower=0).where((lo.shift(1) - lo) > (hi - hi.shift(1)), 0) + atr_s = tr.ewm(alpha=1 / period, min_periods=period, adjust=False).mean() + di_pos = 100 * dm_pos.ewm(alpha=1 / period, min_periods=period, adjust=False).mean() / atr_s + di_neg = 100 * dm_neg.ewm(alpha=1 / period, min_periods=period, adjust=False).mean() / atr_s + dx = (100 * (di_pos - di_neg).abs() / (di_pos + di_neg).replace(0, np.nan)) + return dx.ewm(alpha=1 / period, min_periods=period, adjust=False).mean() diff --git a/engine/metrics.py b/engine/metrics.py new file mode 100644 index 0000000..bef62b2 --- /dev/null +++ b/engine/metrics.py @@ -0,0 +1,109 @@ +""" +Performance metrics computed from a completed backtest. +""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import Sequence + +import numpy as np + +from .backtest import Trade + + +@dataclass +class Metrics: + n_trades: int + n_wins: int + n_losses: int + win_rate: float # 0-1 + avg_win_r: float # average win in R + avg_loss_r: float # average loss in R (negative) + profit_factor: float + expectancy_r: float # expected R per trade + total_pips: float + total_return: float # fractional (e.g. 0.12 = 12%) + max_drawdown: float # fractional (negative) + sharpe: float # annualised daily Sharpe + avg_duration: float # hours + n_longs: int + n_shorts: int + final_balance: float + + def __str__(self) -> str: + lines = [ + f" Trades : {self.n_trades} ({self.n_longs}L / {self.n_shorts}S)", + f" Win rate : {self.win_rate*100:.1f}%", + f" Avg win (R) : {self.avg_win_r:+.2f}R", + f" Avg loss (R) : {self.avg_loss_r:+.2f}R", + f" Expectancy : {self.expectancy_r:+.3f}R / trade", + f" Profit factor : {self.profit_factor:.2f}", + f" Total pips : {self.total_pips:+.1f}", + f" Total return : {self.total_return*100:+.2f}%", + f" Final balance : ${self.final_balance:,.2f}", + f" Max drawdown : {self.max_drawdown*100:.2f}%", + f" Sharpe : {self.sharpe:.2f}", + f" Avg duration : {self.avg_duration:.1f} h", + ] + return "\n".join(lines) + + def score(self) -> float: + """Composite optimisation score (higher = better).""" + if self.n_trades < 20: + return -999.0 + return self.sharpe * (1 + self.expectancy_r) * (1 + self.total_return) + + +def compute( + trades: list[Trade], + equity: np.ndarray, + initial_balance: float = 10_000.0, +) -> Metrics: + closed = [t for t in trades if t.closed] + if not closed: + return Metrics(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, initial_balance) + + pips = np.array([t.pnl_pips for t in closed]) + r_vals = np.array([t.pnl_r for t in closed]) + + wins = r_vals[r_vals > 0] + losses = r_vals[r_vals <= 0] + + gross_profit = wins.sum() if len(wins) else 0.0 + gross_loss = abs(losses.sum()) if len(losses) else 0.0 + pf = gross_profit / gross_loss if gross_loss else float("inf") + + # equity metrics + peak = np.maximum.accumulate(equity) + dd = (equity - peak) / peak + max_dd = dd.min() + + # annualised Sharpe via daily returns + by_day: dict[str, float] = {} + for t in closed: + day = t.exit_time.date().isoformat() # type: ignore[union-attr] + by_day[day] = by_day.get(day, 0) + t.pnl_r * t.risk_pct + daily = np.array(list(by_day.values())) + sharpe = (daily.mean() / daily.std() * np.sqrt(252)) if (len(daily) > 1 and daily.std() > 0) else 0.0 + + durations = [t.duration_hours for t in closed] + + return Metrics( + n_trades = len(closed), + n_wins = int((r_vals > 0).sum()), + n_losses = int((r_vals <= 0).sum()), + win_rate = float((r_vals > 0).mean()), + avg_win_r = float(wins.mean()) if len(wins) else 0.0, + avg_loss_r = float(losses.mean()) if len(losses) else 0.0, + profit_factor = pf, + expectancy_r = float(r_vals.mean()), + total_pips = float(pips.sum()), + total_return = float(equity[-1] / initial_balance - 1), + max_drawdown = float(max_dd), + sharpe = float(sharpe), + avg_duration = float(np.mean(durations)), + n_longs = sum(1 for t in closed if t.direction == "long"), + n_shorts = sum(1 for t in closed if t.direction == "short"), + final_balance = float(equity[-1]), + ) diff --git a/engine/optimizer.py b/engine/optimizer.py new file mode 100644 index 0000000..9b3a6c7 --- /dev/null +++ b/engine/optimizer.py @@ -0,0 +1,62 @@ +""" +Grid-search optimizer. + +Iterates over a parameter grid, re-instantiates the strategy for each +combination, runs the backtest on the in-sample slice, and ranks by a +composite score (Sharpe × expectancy × return). +""" + +from __future__ import annotations + +import itertools +from dataclasses import dataclass +from typing import Any, Type + +import numpy as np +import pandas as pd + +from .backtest import BacktestEngine +from .metrics import Metrics, compute + + +@dataclass +class OptResult: + params: dict[str, Any] + metrics: Metrics + score: float + + +def grid_search( + StrategyClass: Type, + param_grid: dict[str, list], + df: pd.DataFrame, + engine: BacktestEngine, + *, + verbose: bool = False, +) -> list[OptResult]: + """ + Run every combination of parameters in `param_grid`. + Returns results sorted best-first by composite score. + """ + keys = list(param_grid.keys()) + values = list(param_grid.values()) + combos = list(itertools.product(*values)) + + results: list[OptResult] = [] + + for idx, combo in enumerate(combos): + params = dict(zip(keys, combo)) + strategy = StrategyClass(**params) + + trades, equity = engine.run(df, strategy) + m = compute(trades, equity, engine.initial_balance) + s = m.score() + + results.append(OptResult(params=params, metrics=m, score=s)) + + if verbose and (idx + 1) % 50 == 0: + print(f" [{idx+1}/{len(combos)}] best so far: " + f"{max(results, key=lambda r: r.score).score:.4f}") + + results.sort(key=lambda r: r.score, reverse=True) + return results diff --git a/main.py b/main.py new file mode 100644 index 0000000..ae2012e --- /dev/null +++ b/main.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 +""" +NewBot — RSI Trend Pullback forex bot entry point. + +Usage +----- + python main.py # paper trading (default) + PAPER_TRADING=false python main.py # live MT5 + +Keyboard interrupt stops the bot cleanly. +""" + +import asyncio +import logging +import sys +from pathlib import Path + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s %(name)-24s %(levelname)-8s %(message)s", + handlers=[ + logging.StreamHandler(sys.stdout), + logging.FileHandler(Path(__file__).parent / "bot.log"), + ], +) + +# suppress noisy third-party loggers +for _noisy in ("httpx", "telegram", "asyncio"): + logging.getLogger(_noisy).setLevel(logging.WARNING) + +from bot import broker, loop, alerts, config + + +async def main() -> None: + mode = "PAPER" if config.PAPER_TRADING else "LIVE (MT5)" + logging.getLogger(__name__).info("Starting NewBot in %s mode", mode) + + if not broker.connect(): + await alerts.notify_error("Broker connection failed at startup") + return + + try: + await loop.run() + except KeyboardInterrupt: + pass + finally: + broker.disconnect() + logging.getLogger(__name__).info("Bot stopped.") + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/reports/__init__.py b/reports/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/reports/baseline.png b/reports/baseline.png new file mode 100644 index 0000000000000000000000000000000000000000..b3486524b0ce159bf0721fdc9bbdcbfd2979b671 GIT binary patch literal 158999 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 btuy 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
U6sq)04leOF8zy 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 s9rCr$@Bg(dXYOK}zx&UqXr)l3W50#t-Kv Path: + closed = [t for t in trades if t.closed] + + # drawdown + peak = np.maximum.accumulate(equity) + dd = (equity - peak) / peak * 100 + + # daily pnl histogram + by_day: dict[str, float] = {} + for t in closed: + day = t.exit_time.date().isoformat() # type: ignore[union-attr] + by_day[day] = by_day.get(day, 0) + t.pnl_r + daily_r = np.array(list(by_day.values())) + + fig = plt.figure(figsize=(14, 10)) + fig.suptitle(label, fontsize=13, fontweight="bold") + gs = gridspec.GridSpec(3, 2, figure=fig, hspace=0.45, wspace=0.3) + + # ── equity curve ────────────────────────────────────────────────────────── + ax1 = fig.add_subplot(gs[0, :]) + ax1.plot(equity, color="#2196F3", linewidth=1.2, label="Equity") + ax1.axhline(equity[0], color="grey", linewidth=0.6, linestyle="--") + ax1.set_ylabel("Balance ($)") + ax1.set_title("Equity Curve") + ax1.legend(fontsize=8) + ax1.grid(True, alpha=0.3) + + # ── drawdown ────────────────────────────────────────────────────────────── + ax2 = fig.add_subplot(gs[1, :]) + ax2.fill_between(range(len(dd)), dd, 0, color="#F44336", alpha=0.6) + ax2.set_ylabel("Drawdown (%)") + ax2.set_title(f"Drawdown (max {metrics.max_drawdown*100:.1f}%)") + ax2.grid(True, alpha=0.3) + + # ── R distribution ──────────────────────────────────────────────────────── + ax3 = fig.add_subplot(gs[2, 0]) + r_vals = [t.pnl_r for t in closed] + colors = ["#4CAF50" if r > 0 else "#F44336" for r in r_vals] + ax3.bar(range(len(r_vals)), r_vals, color=colors, width=0.8, alpha=0.8) + ax3.axhline(0, color="black", linewidth=0.6) + ax3.set_xlabel("Trade #") + ax3.set_ylabel("R") + ax3.set_title("R per Trade") + ax3.grid(True, alpha=0.3, axis="y") + + # ── daily R histogram ───────────────────────────────────────────────────── + ax4 = fig.add_subplot(gs[2, 1]) + if len(daily_r) > 0: + ax4.hist(daily_r, bins=30, color="#9C27B0", alpha=0.75, edgecolor="white") + ax4.axvline(0, color="black", linewidth=0.8) + mu, sigma = daily_r.mean(), daily_r.std() + ax4.set_title(f"Daily R μ={mu:.3f} σ={sigma:.3f}") + ax4.set_xlabel("Daily R") + ax4.set_ylabel("Days") + ax4.grid(True, alpha=0.3) + + # stats annotation + stats = ( + f"Trades: {metrics.n_trades} WR: {metrics.win_rate*100:.1f}%\n" + f"PF: {metrics.profit_factor:.2f} Sharpe: {metrics.sharpe:.2f}\n" + f"Return: {metrics.total_return*100:+.1f}% MDD: {metrics.max_drawdown*100:.1f}%" + ) + fig.text(0.5, 0.01, stats, ha="center", fontsize=9, + bbox=dict(boxstyle="round", facecolor="wheat", alpha=0.4)) + + out = REPORTS_DIR / filename + plt.savefig(out, dpi=150, bbox_inches="tight") + plt.close(fig) + return out diff --git a/reports/improved_default.png b/reports/improved_default.png new file mode 100644 index 0000000000000000000000000000000000000000..67f0dcda241015eee6f6e060c438ad111a0cb6bd GIT binary patch literal 124920 zcmeFZby$_#*EYHgwu&Nd6&o->r3D0OR79i%=?)Q)?k-V55dq0Xhje$RAX3t?Xiz|E z(cRye=-$8geCImfb*}gPasGMN<=)ha=b3ZNG465S_ndCxPX&kwFA-ue7$U(Zk0dad zzwj6gLF>`K;5QaU#c$vXhdIBTxulVnxs|%9CPq}<+*sepTwmw;RZC4%GaVyCW_rdu z^z5`(Uz(d6n{hBO82tMTdLvV9hMSMu<>6h989$LX!(h&zM*khqj%bs>9Kc`%A3cz= z4#f{x*`Mv)-CJ0jjk`rbL2-8SDrw^D<+$fjW;357Rp!KK-^-mM;9qcDFy*gywUs_a zLnvf){i&U})KXucvX*mWRwHFf=U4Ov~zm`rt;W2GfbE zQ*aG`9uar8Z2$QlgQ*z%SaI^-ALp+fiwN64k3AA6j=cyW^TFQ;FVgIUk3 z2~~-Y!#Lf)cy@FerWk`M)5=wVt6~r1w0df{HrpA>Znpf>ongwIp{!*Ery4QssFwpJTiYEPaW zD6(i56USWl*}iIc>OA zzW&pl!(lT=SP{n6qJb_yLANuB@Z?FE=g&Vo?yShBs+1~htv%n@A!b<18aGH!Idj-0H0!Bl8Zbdl+iPtMEM>+o7t=_ILV;^LoRY{v4+)h`4yYkRt$xcK?8 z$E8I3jYYy^$DWPV`&-Q9;-+Bg*DiE)qnJwFOO%Wk@+sS#qFKTBNFFwFT1}zyF(YBzb~0yfJ?#*^HxL6?M#aUYduVbT`S+K)5^Btk`WU65GNLqrXArR!)>=J1z{r{D@5Yr;({(0 zfPk&kuX3GSUl=J|)yY*@fhn8L>ob&m^B0j+ni4w!0YM^so^DH|bCK0tngF?jRD{E7 z(9=*h?`abVD&rt#`2Q=+8m#t9K1yYO5tHHb24MO3=S>fm7WY}!c#&K6&3>RsyTfWU zs5Hv>iz}RB1je6saUqmWwXA=pn?(EXa3_}<3G1a z$jOap6>@4d_9Wv(O!^$#Vg$cg;FPh`3)C_xFY&#(4I>K@l9C=FMrG_c2bfU9?bSXb z!x>mGbl*5+o4-mW8E4Hk_>SE1JNph?WJ~BBb6@44QqM}Of;NpbeV!a{-}C)nKh(whK;}U9oJ&* z4T4$TYuCQWK@zH2``WGzOF80##Z6OBO-8;=_2wq0m2K+g>a;&b32I5t#9?i~%0{MIu+6A^C+=w&2NgRz`_KsG&6`ud zLX5g#5<6f#?eodmO=H^H+DsjGp!RIy%6G>yKcKQ;t{BqN1NUaJvw|Dvbj`v;5EU(a zyX+qr7&y(^9xrB^wK7an4Fvshj{y>p56of9g zM3S@SHapq*aEoL#Z)O4*RMQ^3`D=1(uAIS?+*N&|@!pVBtdRdQKD+r>vBQJeYc3{` z|A{W#xv!XS*y%5;5;V8U_wJ;$t!+^aPML7~SBUoIy5`2Rpej3h|2w4K9EGr$aj~_cA8_(vI_UL!f<@bLU{0E}spT;}JKSJ;LF&o%4j zPQhX_J3ei@JP`#e^)?5G0;+^H*C=<;Q8(G5suV?MPmVq9U1C;VH_4h@Jlmx87#dr%GWi`xq3KD zdn4A6&J=lO3w-x8StS#fpFe+|B_&ODKhH2V{N+tByIGv&+~7>NBP6v=2q<%$vK7g& z@?zQBw})$j0~yM|3HKxdC z-!&TKTA3Z_i{+-K7MkhHmra&Qm5O>u0Ckm$jZLnuuC6!FAf#-2QMe{TUC?%=Q_ zyxVt%)+o5SmEjJ%qP=*MGBWOzt_|AtW@@|}S^49F;^=h-hepAqV0-NjY;YXA}T`T^-7V*c)d0HGP^F zA}=zAM2nDTOIArKG*hcFSjo%g=htKTi7Sg+MKgJQTu=G6FYIzt#!+ZgygKk$Mkb)f zp=@_kFMlS&`scCynE+b(pLqkq45g!49`RI+low(2Eqi8F_cpP8tPzfzi4Cmz1C}9u ztb5zzyvliX-@h-jg(*jhxY?}YUi#6m zCvNOD1JoJm)l0Wv*8;rSpSQ3a^!4l43#fePFF_ixyD|dsan>~D?;DQ`444gi?_v!A z4JoUvEsuXG9D>y{W)}{_S-|xhACBI!o>vnMzDw0iwGEXb!D6~=^2a-J`uPsiA^Rnd z*RNkMSD#n4)=P-J4iN-ME};7P!un>3%~F5wR7YZTdiic|DmNEbf9ykTfZMh|T+T1z z%K=1A^<>8jD|(S}_fzY6lJm|kE-j8V40y8GF2BS^yn(lcg_z{Dw`=1W70DHreQ#x= zm5+o*hIW1xA-WL43`kfA6$mS4Yc+P{8>s@oqrqt?msq#XaF;ID)2u*pnDFA=HP%U2 zD$HtVmPwXAevY=~h8LH_aOU{gzyFSc6+6+uP~HJ$GzE|{r0t$D+j<=UPW-d!DF}g_ zJ$?FT+v<1b=9f?}>%V_D&q-A(l#rK~_oU*3dG+)6kA)jlfNb0eUz4id5z|moR%@1r zTF&&wLQJzZGmcpiduQw$XZ^m_kVC%WoweEGxv5yJ3Ux~+0Ir1ds`k%lWYeTf zO|w|_yCdPb(y;DV3wG-LY23MY+eWEIO#}S=q((L3V`Hf(DJh!`pfLUFI(Ov?z6%<& z5xcEm`KHsSPjiu#-#H*BKhn4s#TJoGk#Dg~IFgG~p)r@cRj0X=**_{%>hJCSY+`r& zfjZ9+1fO8NW5nj#oa#hIQ<;(DV)46eC~LO!Uyd9n?IOw9qn1u8$nBvyJ_8GQVs-Dp z_!JxG_|`{1<ZM`XsLTr|MN34mi#YqJBnwkx_=15+8t zjpESu=`pD?`;F(Myy=sxrqe_1Z_KqJcFpt}W*m5J7GH$dP&brp@c1o{hhnV;ZE8|e z0gPONUK?&<^r$MC9X`|k&6iNzQ^OGs`*q{L1*R2miG`a>HIC^wQvoLM$pKiNPgwiu z)2RWd$+`nYxg*&_0D}R>%TA!RXaiVn;B^MTzv)4{In+3vJ$LS=U@(`Bskh^gFOq>W zeg<5OA&tRz)L)}@*BEk7jCXH48!c$~D(SSdf^D!t*bd+^uFPR;F_mq9#l72KapIOQ z*8utyr?mP*Zh!`*YvisorzKw8_onC~mlm{pwyXHbbKO1UK1V)mu1xDer{)E28sj#vYa&`TM`K6#ghjbQh@1;%bgl`Jxrm4E4 z^tuG<(DX!WboG@D$_;|=gE=N6kMk>LI}#-g54?Ev=xy|(J~U8K+<@c0m9aN$YE^~l8aeRY)s4q)cm&jA63e|`vd_gMAB78 z%A4?Icz(`luP@aAx_X2*6z!lN>i`tk7{SYnqv~N|V#={zc%HvnDTVhZ090$a0XUu; zz*^x`mfM=L!6ksd6!P@t-8_<^1Q;5y^NysX(C&=$?onkjt}6ga8b}I}Ns)_!hNvLN zV5m$PR!HNL9JH~9bCZyN0R@$Ct@UMTy1NoxmYIJrKAd=v9x9Zw*3kVws<=< zJbYFrcLf@GYbfkQC)yY6OP&YxenoCMr3v4#tn-;gZ#o=a$d)hn0Ew#otfSfA|7qn z2mvyvhe{7As_xu1>}P8XWUSIugzuep?O||K7Zw(#`U|ra@(pJK!{=I}_=0&HiXe?n zW~oA>!eKS5L_IF4U|6~$<3Y+P1E|U*#{nQ5EJt6%;u%(en37RZQ9?pOZQ z3$liYLPJQEX~MnS!nX+*socx6IdKC5JjrTqP)JM+m!s2;0P*R|Z_@o4R8{ha9E%a` zz^;ZE770Q?Bml_~!@IlAH&?Rs)cIf%@F>Mn9rCF%s6DJ z`mEEn-Zz3-4TAf45Tqx5jCf-w0X0Oqv0dc0%~9;cK@q`@pA7^yW^;FIZe?d}Xxwfa z8tZakbXMx+cK9J%lx_UFY%$X-4ba?k6&8bSiUKVix9xHZP!)*)4(nqb;A-gGLmvwW zO!pU>#c~z3Ek*2Y3qbzH1u<)1K@=7a8cO9nn%b?FLNo1BXnAcXW3g8ZVCoSddQEV= zgmb<;s8I_Moha`KZ+*PTtn_*r@)0!)OXnCD_eG``?{7X0osjUbg5<)zG3ra-=i=&0 z4aoGk_ElxOncU6cH^fT4j_W^;?95jYdqx1@ob#_pgWjnZ+PQGa&{gQKfKWBtwyz?( zmjKn5!+hdXG#xv;e0s^^hXzN0Z%b?rS|;4in_NvbzHU^-&6nu2U$_l-5(FD-C#yZD|h&qArA~|!$ciPcmb9uiP z$~ECAo{S5*YdTu1q)L43*nX!Ay+y#2y;w?CRvBjPrteG5*Wu>rRS#Rjm-{CHVOr{K zL4%0!Wlb}x=d%OFD-c@K@SiM%zf`WSG=x7yCk+#m1Tx(ug`}kCTZmvrYgmq020D*MN2jf-E51=GR4wxj|(#3~*=PwX!R# zs-&YI6Af68cp#E_b#5q~jN5kIwie=GUh-xY`7LLZXD}EWpd~{bHz#jlS$Ext;TL|Q zQr&39{C@B}+RsP7e^@`|jEeN{$1vZ1Q2qYl74hHy^+hj0BAQ>h`sbNYz#2$MPz3&d z{BKYGZ+*i5yy*8>{`cnRe@5?rM(_W+V*e*1{$EGLy_>#*@DIeF`4w^Ws;k4lli&Sg z7dS0bZY)#R%F28D`Ne>$tP46Apy|aGV+ui3{ZP(Fg~7zc1nEjHgd`n#28vKtl%{d% zYb&Qv;=L;Npp0z)Y7Q3xCf=|;>e2;uN>BnayRe;vgpZ2tB&A^6r)zwuPi`X%t^%xX z4n6CBqsZ!B{TU=|%3HVeK=T4&B>JXka12!WX^?H6+1r;ie?xjQrtsRn{{HH;<@UOX zDsfZ`bgyI6*G6^VRfu;3vI%tPL?l>wa?Z9$%PLd))=`8s#(~H z$hZ4#?JLzkioPEeVDv7K%Kc#sKv8)JJ?As%ZI$w%XV&d6$h>sVFa@-XX}4S9w4E-15xQ;(sOUg+cYs_DeGZ=w`X)%^CUh=cn&r^-vUPpqG#8UU*+>-?|uRlgElwRpvCBcCetC z?CxwO!}Mgy(Ov@NTei1r2iFF8VFG}fjb|p{1NbBa9Qsv2YTASz(R``#Ua~~25Rz@7 z8$%ES;JJ{i`lyXQnvz|w-!6!4agbJQSEgcN@O1z)2nh@Os$W2wG-}+qxA57qJaGjD zY*;GFk&zMUL4^_w zuPi3pVk<`Og$VzOsDPHo3^G*b!blAZXdS3QZv}x$*g^z&f-qLY{)u%Ph(`{`?Shf% z;<++kKV>&u!m}Ga`m7Gy3pHe3{y{;L3HU7#%A|)G^`TdVCden|z@fj+E{K$jgZ;o3 z6h9WAr%5@?p8%0ABr4h&$fyCF?Pt`I`7HNnM~vBigicM#RehgDIS|vS+X=y&3o=md z%hrd`pG$*a0n5SsM6{22r`rE*fBB1nAz9Y+=} ztllwdiF`mmjduXL7Opn}=}MryJcQm5;a&Q8EcX1oF+#^=UO{F998SzIsG#~x0MJKxxo>)JYiN%`5SFER zkQOs75=ong5k+{pgo6=E}|YBi^F%iAt6yjL-kYPSC0E~N|$zvs9ETo}N^C7eK2Hs(iku-)o zG@H|UJ`y#Vf-WH^+sVPbkSv`nV`Hd6{1Y#!%8~uf8mDCDF@;N?dzr703QS2@4BnVE zov;xCTDaa(6{TQ5(ccp~tc{nv{Of!zyg}++SIHN|+{>RRbiTYM07PDXWd$ea5CbM4$WClY zf6s*Cb`%SY)yt%VUDelj?k2+LU`&7W4j9Kckk)-hCH#L08m1p1AYd;O6Bcf;*bCJg z_djgsKLCx{^^nG233;d`1?lm)LkXIU%3A}gymSc!$%Q|WAI^zd45mpJTnmBxiR=$JiSuEut^96=oG{gnX0>ohlRb<`nVDnz>sm0j4Pqq{XAz^_GKV{e~yeCA8-OTL}Q>B)MrGp z)6SQH6JViqhnoZZ1{za!p`zg% z->Dot|GU>&4|3WbA%`rFQU{VCO+v7$j_kM{py{OZ4V4Akz6UXL8!iE1S^Px9-P6<3 zUiDK20~1r*Gv!sFVP8VD_>3MM`0z7GJG_-dR_U4`;=yylY{Qi=2JZ}%uVsq47lN<~ydBHSmiv%+Xv~K! zfpSFpGngPOmM5Mmn>Df^Rcsm3D|^!JiK-T;zjxIu4|k?2%7XM~nRqlsCN-GDVv0iW z665o?0rbjKa`z0Eel-@&7EPNkj@DiGYCU6TTnNNUDU6d(49e4Bwj;|Yzx(nN%st0N z*C6)61rn_%Sd%j_auSQxIg(Djl4Q7Q)oJ7U*46bJe>t}#S%H9 zYO;Ft_oX|a7NCxT$x3jpY%A@t=as~BbPA)r;}C?MU@6hm(wg!XAbSSt7%&{Dp9acF zR5Jdl^uvb_y_;&tDv;0*JfZ|ph*Dr#LimC#->5ey@x~S3m?Px&8BcaNK#L56q85*s z0!m7LAck>(rVuBO_)NGp-Hrrr^w|&+lfW>EuS|6+doDofpaHo8xaxLL3(^x3ZiCNh zaw<8!3lxPbdf#mti0<`ABGMFOZ(wqKM{PJnI05|urH6P~B)dbYLxc_@TYwM(Qc4oY z<7FTZ;6kdCHGo>ih!_3Wd_R;9vOCtHva%A@b;!qph_wVh6L18O*el=-ndp>NZOm?l z>p>p98;?JV1Am2#lf%PmJ0s+KEl^BD^$KK8HFK|pBJ2tIK>;`p4%5;1XwAa?j~6wk z<_}T}0*Q%ohNj}@qSbAHrt9n0+~D~E?3WA}6Yp=*3$h+NH92J>67E2=4c~es zAfN}N2`X8J+|EV5qsoFtQ)1VCDMdwrp|)GlAP2GOyR=0P7{r<~q*w9a!v z#3PGj3{vr6vQ}1%7dzs`$dUd7N>n^DMW_<*(<jT?)xA!2f5e2 zJ#d@&cW#ON8VV*(D1rWsTJ4CtZVKbvvV8)diy5|hZO@Iq!Q3CVnM#ab21R}f)-ueh zIAl3Us-nM*p_uK{f2fsoVZdKeeD4srS)J+A16vo|b67f35HJ|Wx)&E*e@s6>-~WDK zX{i4{`*8^uS1{tXfO=B={LaE)R^j;m<&JLqo+Ran0dFBGuVcSnO-$u16QHQi-@l8f z5?9SZ5`llJ#D^+0-)|9PRDbLqs*o+%!_1S+@?z{=w#3wGzkinka!Ma zpWg*HiWGE79mr9(yS*Vnj4wbu@$W}T#hnv192V?V9P7MW+5!IllvQ_xa{qHhk(jdH zpu~&COqz7D+6A~y!nWvCKB0JKjLMHIiy1P?JtNye7hSLU)=B9)ocV_pyw9WW8ikdO zrx{SNbui=&it4*eKy~f4TN~zT%fHkideRkj<hKq17XxLho=bfJZ3sZjuVC}z)RJ_DfLHEzS z)xKNGvY;%D@vfdsq_ZK#I5AsHNd<|-DV0NpmetjeFSblY9DYnpjKp+yj9(97F|6)s zurIcN5SRnjLonc}`Y4?@H@5_M(ip}mdzn?g1ytHxVAP>9fn5dyw<002IhY>jvr)B5xs& zg+gWut||Vrt|BSec`ff^jn%X*g$}2(HaBw~sKBW>ZfJIAMrx5)N>1(5hOD~rwx8V5+vmvIeDc883e#X1|<7aFj`Wz zt^c|3vtDL~GL<%Av`xBE_TJc}?hssL7eY_ZrIB#%q z7#@&AZ_x@8@d_A-UN(nw12duRyalGA-_1UY*7plueZ+8gppb#TA`n@}MI(5Wi>>Cm zUL81;qt$o`26fON0>lJ<@V`rf_LHmKOopBVj0+ArM0Ak@PJ259WDI|TWX`myQK+nP zwrx!YR+6R^P%g+}2CNDaH$mV-CQ41Fpt}$|HI`5mme|hxM05-?Ewh4=RIc0*cpv1S zrW8c(J&`(_;fe!Dqk~{tV?#FS2`KdQ->7V*gHkgtvzxw%%A4!UPv2afnO^UadU!_E zs5|3JKC=fSv^GAnD%}3s13G`ZWo)vkfG9Qq7Qy7cbh5hgnhV!FIYz>+O(L0khu>67vx(V03Nmz zQSTroZ#eAjtU&{sf!l=EKN4A^5mfIl!D+XFB%WGTLz9~3fLM+h!fH+eb`!n zjCycwrK~57sIr~I%7b~G$|w@WB6tj?osjDqKt!&74--I#UhfO(^4X7}VMoq!Q0pfx zzbhIR^7rK%;XtK4_NO*&cc;gv*xFbW`Lqklmn53T$d44eBgPZ=gM0l~xkyp|U6*w|PdSY?Pa0juF~!t2Yh9|4x*Z0>Fdi(VW+u}Od>65tt9 zPFmP!RlpR4jGik1usC|b#bJg-;Nc2qmCNt)Pj!=243^q~wedDGWg(FrA`pqsL5;Ic z54u4;qDX`uk<1J7GY$0WB5)H{hb;+u1bp(0hE)0`f3Jc2$AVY&;#kRVsW0U5HYu>^ zi3O19kp9eOWE04sEOQNO*APg%c{O8uYn*n5!@##LbaFZ>;TeIu%7ovVsfG>mrAU`M zI$(k0yDo?z3|Q+Btia;H^}+~@SyHXTIVotTAs@w~`2wtkt$X1Ej0TWWo#3T}n+jOJ zK6D`*SC7`F~B5N3QoFD%3eCAK^?D+=!?+n$d zC4z0V)TZjSLywWJZh%qpxiA{MkS!7CI3W*>8|f)=%dkA1Digl6^1sAca}D}rP>WZC zL&y(#jA#$s)J!LrRhTVZQ$dRm8fyu#i{_Y5N+8-}t=~*6(Ie{4x*{JLD0$1^0+=S> zTYq;Wun#~TlGRXN0YiTWEJ2V%N4m$s0PYj>{{2y}nwUF!~nip>> zKM|CE{`^b0*I4}RwTKvVK|)^&sP4BJ7eZyf{j75_(-Q3Ie5>v2zb8Q7RRBEyCo8nS;g+;d~uf%RHB^{a*gtZlx-fYhLPy-c?g*Ui4|K zslMGbfHijs>oHHvcQPVu+skd1s_M>C^*D6@l7*;c?Z`|<%@Di;ACQpk;Mi75!Xt_) z59#X215uRQr+w?YJCzqdKixU^*@BUis6PUy*IqnI;m$|M=KI#dE7Fbv!a)rVED;^> zRnR+!?Nk;69ojuJ8M;s2KS;DLnu90KPDtC@J zQ?OA;`$&Iz@BmQN>WcBf*VXn9vIL`k{P^I-u&E#%e)iX{hEfhV-5k%8ki@R9tEGEZ z%WH;6OC(WDKKUS@ZbXc;+MDO%JdfFXp50@#1_H*E=0QM7B?pbp3i0N_J(^2Hk%76F7*K%3n z1BLCNlg!arr|wxd7cn}v3C=<FVA z75#9%yj*dJcmnnv*h22_1Pwim6T7xt1q&{Kf_ra!sc6KL^DOMwfj46dxTM#U6$|E- zB-qa&1J^783%SJj7v-CZwD-t6HrcjmY6;a22mH+n7-+5gn+FHMz>akYRi&xr`5ln+ zysJ8wg*jRZL*;fI863cRZMH|rOBpAau6p^VJC!K2m3Ezw%8?4<()r5cWPS0#LjZB` z5)%6*9{U0wNYX&LBl#b8Bbh6HNCC1D`Ds+Fe-NNL2+qnbu-C-_a*+VF2AmtnUQl2% zvJ7Si)E)s1unBaCa#jd3=QndLeMAPh=MiRt*E48PA1&mgc&QJ#@Y3zYhG0&sw6^wk zl1sLUB710K8@T3x73j>=5D>6~E*-K_G-MndKpDENpIsUlwZ8{m69faQ*s(C8-}hVM z%z`gzCi9dh8j6!?a#q%HDAVFSMsuK|2hal;k3QMwySux$gPTgJ7wu{==>yJN5gAE^ z6#@JV5ts;Dh<8dsFRsP+8jT!+ zwt#hW9kwh1xO6`2MZ_IE_FiZRiKH{{?PzUsGWi2B54UE zg9MNsl945pMc1#72OKY5ZLz|+utLGiA_hK_t}kznTKr$pwz(jW}9z0 zo(H55P^DsGYXv*7q-NL4K)az&M=mI|0n!rR9R(jv4P6@~_g0Wi?!u-C*dFw4q#Md^ zJV1sCm-8wu$WsFzuVi3DE-`C;47ZzQ$LcW6AUX!5w*B_NaU&L-)UnVWAW#nspClCP zMJLJMvokEYD)J73tVT8I`$q|-s#ytMC)x8KPIF>ze}qe%MBFJ#-u-6HiAFa% z_4;bEE$k9Az#5L37`B&i0TQysXVwt1XXzvV58!#iTrsdVq9y|^1pcWrzdx)@GrF>A z`nwau)W|e7^Z2ar^iuA&!>kPSu7}@$e!;Ta?{&|==buh_{+?8~&CpPgzaz(sPJK5r%UcvH%Aa=ax4g3u}G$r-q^ zUTFxww`l)(cCstbUq`{Vf;xmn%I8I1%vtLz@=x0(0=mZaZe|>U_EGY)QLch!Uh}j& z(-+;+W!}q@RC}vL|8$?jlzHW6IH~a^@qD>gEfNCOG`_nBxduD>k(P~}GbAllYd_DK zwYyuldw_)QSn{c79ON0?88jLVcMf1#pfin(ysD|GiCXqAUk20H`RfG5#IO`VRsGut zYx;A`sS_2qX`0xULyy-NqpiGICjDBpGg_bU_;DI@RoQRBol!}#En6fmJ0(m8Z4(h~ z9b5HRbCc_DC|3-j{mDpHgIza>EjZl^dKq@F(g_g86y$fGEZ(ZNZv%gKV|GiB&2RpBR3z$ZBF z7apDltF5?1>%yv#{_d468lWHFzI`h(hpqbqc`*!`?;di!qf8E49ls|g>I0^D>mYh($Pw&Nl z*qm3`3!a3WemBQIFe}m@FJsRS@TU^i`xeMDP5!s7ld$W}l!i~{i673qa&mwFUL1-O zFkjJ0Pkm0GIYTK3;Jxh9B~x{#AbW+4C;yn6tlf6J_2rMfJ?K_VA@6}_5Hmf#Sbq@9 zvROZ?gTcmzUi;LeZ@IysRzvcqo3(b+AmTh&ETK)DYkE8#cNW!C-Gwk=TabWgi-~%gBpGGedw_F8wv|Qj#kso+C&%q>SnyP} zl<;QxsjPob7xz?E`F1@nJ=I`PxnFDoxfrD1f{Zao1NrWDwE6wdq@PG z!Wc@A^gR30R`J)D*e>#{p5&Ie-QdLH;KS4PayU1^Ftd`ZJlC-5NhwIeoOoQ70nwYg z1@b++OPdQ_A`bbtXmFEi2ef5EqVicaU#Y{8!IW#A zRiDWW)pP72Zwe7jYd?P7c)M6HVK&_NreIOvWVq7VF^zjLA4>XYkAqT|kt zc=ILK`QVeM#pY2Ro{Ur-Ract4HH#;5zW;M3!YfrX$D_(E@20iJsSbxxxpm52)1cGY9goLI*$=%u8^OJP;;rKAoz3Ci`w!UO?UMJOon>{nWB+@* z0feDrqm9t_*E~vAj@vJp>0KP1=Z(nGkBSM@c_#XsVP=A*4s={zWBuF z*9;!k1JCrFSC26X?@f})Nbpg&D;;#lJi&)Hf6=;dz~t#|cFhg!`Gfxn=-||&g6`~C z7Q8j<#cq5=alFM~{UYB~QzzXeao#6(&DOU`zpKy5hqR?im~xEC6lRkAz+$$8s%;3> zLSE#p8`91@Y1(i%-~S_j!JNqWO%{jZwqb~T-}xSB^bt@SU;I>L?mEH}_28yxNuFA# zX=!*_5M{9%nMk)(?ww&NN8KlHwwG4tFa{d68jC>cR?i0srK z99V zK0>zGWh(D6_T29A9KCDfJ11*}BMG{k-?9+=&LqRQ4@~}1J(G#p#+yB|nHmQ16#+QE zK>9C6R30_wuSmNd2<`?lfJO?I+hwo9v@O|yWIFC^8GP!8d;Kz;-|lY=fH_{z{rS{w zV>jSLm|(+hcnN(*4{mYsE@_P3{N;i~*PUMCj^S^={PMWl=^qh|n3mIgRPs)fJWrIr zR(Uj|qH?2b^-I7B7lI%u&TlaxQ-3W86B?g+NfPJ$+uO4rL$L};uZYjT2@9{>GyN%H zd*&$dxHqR6nY#4f^wCUI>1$U{u?-O`NM|L?kOU~@dz^TRqbfX7(8T*!CHJ-NNjmE} ztVqpTgllj|A;;esB?1K(ovX)2r;Ome;c+++;xqlSo&;`cmUz*I?P7Oma)Z9B_sDdc zrSqw_(O+#jkhO}&1gwM34v;9T6-LhJ4(c_n1E*`&} zHFTV>>&lPVXKyVScjQ-IX3GqcUQ514sdBgDN4C2Uy_X)w#j0?7@uB=9mp}D$Tfw9& zglXJ*vpT!3LWYiGuO{rKAjyq``HQuVjpHfQ$IrSPn>S0&IR2IJ1{D9R*@9o59=HBW z*PrskE%7-b=U4w_22<{7)@3?Ga)rLrj^=!upz~V(JhRzQoU~>(^}AUA!APMXO6(_U z@w0IpwTo8PlX&+4@9$ZSR$%lyL|CGi#}AU-+7iY;pyk&|mml zYbV?0Nm(D|&45ZZ`>&3TM|9;z>=g)B4nxcNbmgF%#`gZ6fmVy5G9{-51x`T#on24;#M}DF$r`>{LJ{QByOtz%>qlhpc~cQQkb@?G#n{`~02AkH(JH z1G%pJ2FZuJ-ux;F6oIvM&gERz6;~=o=d7A-s}G;dX4nO@*rh#!mNpJ?M?T2d>^ff0 zQb5S0eMHIm+w*`d{kHt#teju(J8@MHP6h>C^8u09oo8~-`omJhwTKf33a|b-#OL;n zP;w5d6s=a?kaz2bcQhYu+`+|rGrFX-91`DLOv<47?ic9uf-%H=V_TOmFYuJ_)A)-V z-ab17P8#WYOP`)#KhH7_@%%7uAH_65oO$^qU-f32UgxVa8qD5 zZX2r!?9R5*DD$!GtbMnSKkH)j;>C;f_zS0h7ONI93Qx)MK6&8Ry+QIPZeB6HKGNwT zOIe>HTl{Xr_5z0Ri%pVni25kU3Z?uT?Ry=^+K4Qym*>(?pOK^he8|W{c5GWTXh$;z zNk5==BRd${1&FV{yR;rM1)|vsqSk6Z?JM_Swg)~3Hj{Z9sRCo)3KDq=bZ6*L66m>s zk5CBTy25Vy2*}%rw1S_6a0E#rknOe$)#v>K0s^Laz7mD#ovLFGOCtA88sM*Bq?TRZ;oW?HERrKggq}=KrSUnDfHUj}Fj_=|K{Q zofEftcvQgZ7!BK7QegksG5(P zqiY66rZ-#L3q1z}Dm{1uV37P~%lCEy2{{N#u2D4}P2iu7ejVF#HGCd(+wMeH z#v$X2#wYP)3VvIs`7o!RpuYanFW|%X&z9&{nFikwA`*aU2X%ysmiD`51W5apu*pA{CGhiQ$AfgNV zRgQxZ7Km=(L2k}~%?lmBWJPYbg{}i=Cjm9tPYx95d>($@i*VDC@3rQLQb00q(tgrF ztc7$eGo>!W#eqAR$Va&;`mIxT*Uj;-$Gu%J@0J$GmFuSy^Mcrkt$UQ7Y3zT%e-he~r(l zGhi+bOc|kvI0G^covNkg50<8C!$rfh`P8uPK(?}#dA)x>Um*J8#p)hoQv~l^o~q!S zFBS|i*7`$mqzuq2v2e=5LDF$kO=8^xkvS$vgs>TK$|66ZEw-mpt`uyTrcW34z&}z} zB&wcCq{x_2+Rcq%i<9-0&zB)5!a0!-FUlEION<}5xoPf|omfBkn-;%yM-HqMw1Yb? zGFoDA{g_WQ*hJjH7@w-eHJj1gn}nEknh;6(u)41vCm`Cz#nrLyVBV=&gR=#sz(?1| zN<~HG69c>O3TLd~ECH{YmH!hN{~>-$%r@ZKKn6u7f~m44s1nk<@_~j|~O+F5G{l(|x+(q^<;8@K1&`}hyx7Df#*@*uSWUrw^&(<8UyqV32A-(Z}}&taa32=YpN8T|nrLzl5#qF=*SCU>lH-lUZWm;6hX~vQk5; zF-Jxcbcluw+!#0y;)aKX&A!7P*a;fCH~jC!AE23#;`}6Qbs7 zJ(hC3127x7Hyd-e`eojHJ$b*UYTth1OjV0JbUSHdXW8y5z}DOflHtqSzPD6po}4ZKe|_bn#&qJBbD`2**#6;@ z^Z)2&s@~W&+kP!-WcXeDx$Y|OnYOH$TqjLlQnDcysr-8g?{lo&3h3xoVYpAYu`_Mf|FP zcrBtr{IrcbZcoN)e)xd_oC}4VLok2H@ClL@a=k;rTDG);%f^&UWDhZ|G^WvdrSrS` zEvgAUNub;+-|{`NW98s_{dMdYS%TWS1GjxH7H8KhL66$mu+Xp{^OZEt=%kxv2x49E z7@@Nm()wVkmBHoP#k;p52A@-TSsAIz^PfkT@%0?;g1S;)@GsNP=*g@FJ3p&lX#RCA zIERX_Ml!2; zP=5oCML1{zW+xWb4>djgQ?TC)J$>2*{QU|Xax)FCsZNl6;?a?B!Fp+}V6H>U$S4eL zk9qYxOF%YL{bpk!OJ%$U6%~wp*Nn%T&WWnyLit$%%1?Q>gJKzJ+AXd{j}8U?BB9%i zu?l>6NYnX|pR$wctc8ZCZ2<{MKD^Uy2mX_I+qKzL&`+sv-h2!;>2h$o(pyZlJOGn_ z;jAx^s4(1Uqi+lR5pC0)fE~JB;DK=GfQ*g7sJu}9(QAKk^w#Rf+Q(|+KO4e=IBYV_ z2mKnA_QhdFj&EHr9{Za0f1HpklYGf2T8sj zyfE^+Tn2-16*i74Ik5T$@V+0NeX=zM+uH_`yn89)22pOQ=fX)U!SB&G9Au`B{9lyIg>g#0*MS?wZtqwn20 z+r1px$!h6IAECVKlcvF^+Z{c5NwcQn`4UyQEuljfog|&@)CdUhIiZcGO;MMP^ZVu( zxRFaD{UE+fbN~Fobp`K3#ZWgJUNB8UmQW}#j)Ep^WN{PRqZEP=B&IsNaMCCo)rbzO z-M3<*WADyeT-Xl|HR8(84@HV{)s3Up#Om%|aaI<5`s1alSPBJ>Vd=c+8Cs4{q0-lD zb~n;}6y1|!{G0p&v1QsqB7532Uo42YrMqpI?`DfRgczx5^9sya{4e(2Jebyt17frP!iVw9GA(Kzf#84?Qzv_s(6RtT0slyPLzJ~A!2 zu|nkGQXzdx2$NxLqWL_&!bCmUB9zFG->hh^d-HsWh|b}CX>!S>^v#JgHnk?sYs{DO zl_e?Zsh$1yN-jA{EqYN)&RGp}ZqPlPBb>c&H&tzmXO;pErsXgmAkF&8>%ft z{yZlD;g3ShgcR5es$=sgf&;=Ma-Cp9J!)--694o$=QMQ(A+spK{OKx`6w$gD5jhBk8PZ<=Z!J z3=uSv4d1oOjd;hQ$J-w-<@+`Sp{>4R&!tXwfayn-+%sBjGR94X?7b(CTIs1;EYnKg z@BQ8TcHPCQDb0Dt1)Dkb?H5{&R4IOLj@nrM0U8cs9~7L5Odql_v!rCeo2Mr%@te|< zBQk5E&3D{xcwp(7s8oLIV@71eWOwequA5i%{@4xky7FkX8y+h;H=wyn&ifq}-~rBD z-fMXOPvQ2+XhPUB9?34`m2y~ciofPk!?*kIgU;v57Y*F{u6~L0n(_VI*agx45z#Uo zFXk?<7eC^)_|mR{+XDKm=ArlREyV@`RU>Wj8GW>FK!~3-Wy)e(#urig+?s-GVw{ha z&d#a5YkeZXS4frtdgFjtOzkpm+ZLyoggt}ofb}Isn`Mv7845( z9z15SBvMI5F=^7mp-muo{H`7z3L&pC=t6m$HsOyr3cmELT2QMKJ*e}?P18^P40o@L z=c`!tJxtaj*=sj6qYv6O#Aj-&j7Jqc^RV0-sY9jS7FRS`(cY(zl_keYRk!i>4aTCR z*(*weI{m>rrz*tQp^zUmfvQ`~aqja2I4$oXK~;tI?At3KlY{zdBz`7OKscZVLzBGN zaw^^}>8BXb@L}Pr1IZpbKQx>z_%rVu{Lt#)l5UaPp>tVS>g$TLdQnG@^nBTGyM2$A zYR_$1?r0&I(=rDRW_9UrOAwx}k|VR|u6$m4OZ4%}YL>^%9Uf!PWq1dzonl4IHE>Xf z@G!!g#Wa5kAtN}b3h*8|WMUEl@>vL+aGHTUk?!NUX;m1g*kHs$X>t<#YBD@lQmu)x zg7X`C7h*X5`% zP8+64c?cPyWI%Lb(Y8R0GFzP*u4 zZI#VflMMB}nnkUPU*WIToc(?)BVP?0CK?gDr|6<2?^?w zWxc%>vwo8A?#842o4h6qbH;2izBu$^%k1^bZEUQQ%Wi5b_}&A_QDlnMXKuQkr5!fM zXrgA^-F5t2#p&70O|*{4>m&4!=~8QR(UZx@+Wh zi91FsCc%!=Q*vAqLS6^Gn(bt|H|Ic}=o0=+kD-sNrSEUo|gVkKo_HHx`U=oIiC&)dSkD!*jc)<=DuR$rbJ zQq0Wg+cpv_-CwXILg$=XOw@^nTf!{?>)+^xNz$*U9vHm=p8L{G9p6ea@*9`DwxnOo zy`B2PxeA6nTaZJX0$ZIJ_)zFk^u;Rt_U1a-|Bzld`P;P(sa3*wOHF#qLaP@XlVn^g z__EjM_3e}mpM7*jY9OmH&+^iiIOVI4@{Y|SpEJhP^IEf7$XA#ofKcE-3I=Me_t&nd z9FT}d9EyS5bibZ|@cc81Hc?+Hjb3*;iSMC9zG7S|;MxgWHWbrSwyLaHOs4}@v!KEz}nm|ypcf5F^C$5a6u=g zf}_JTRo3A(mexO1gruvC7PSQ)Ejp)fRD7_Jtx@&@{64y&sTZ_nv=F8S`k!zCU{|bq z3*hI+d$*DC+`XMChX!WCxB~V83Sftkn*rc6a`qy|8#%edA;I=@6c8a|%V${~9O|o` z19xOC%oHO?Bq8pL0AIMV&R4sXJVr^ji;S3mASgIE6bUL77vQIkb^yN{QGxLX+mA3h zLiKTcToKjAMfT0fjB)00ow39G-u>6s%MLt#O&WI8OG<=W4ovDRtA#>z;mVa-EiZ^D z2;y8Q{-ROQV|RjMySlnG60{L{5l#h7;SW%nRj?B?S>)yjxajdfTgpM`I}|~gtLkYT zRh_8U#1QjtOmKp?GFk86zb`zMQ1uwhKP{4XLc5~bV~v7EoN1LP-7z^}Ktwu<*OA{9 z00?rA=l)3{d5!jw%-Q`h+clRX_mHnlp9PLL)h5;g6|BoS{kgzfqGcT;M&}W1y=` z2KS!KG~D?OJadBdpmny4t^R4fF**goZZ{+r&G1|(0j9dsR0x6!)ESy#F!EC+ zVG`TlKMZgoi*1@zw>Q@GU6AERV!SV`h1DH8vSG z^QO*SCUhZT$jGQc1!@;jR18Rc0nRL%VUz~9hJ{Cx%3bqu8K1OvPY)_5i;M~4S>SHo z_v=8)-0r6hX^f4(9?G4PNc+*(?;^I&d+y7y6WmM8$MLr0GAXrU%=JiJRL)X>?+I#B zQMh?SB+O)qfXEOC%43YU7Jk~Te{PZ$j5f&aW^ZIA2!Ookp1~P?-PQFYw6{-5jDO>p zDM;2fL;VfFyhW+S1=38oNE~n)K%Wk8@3ec`XL_<_O^qkERVEz7Gf}|SMT!Eze?8rE z85)nFGYzio67dRZ3C&UD4^Tb+aAP~i^ff%1>{lx!xB_>sD|(}`t#|onhd+DXTR#hG z(Kg*-x0U7Uu-|gA0v|i}Qk_u9!TF!o+#eH?kVGLc;}{sDG3U?a&4`+8Mbvjy=$U1| zeF&yGZEF0U%&BRzlHDy#j>+hpD9ShYAp~}O#hcwYX`{$&>FA5E-hl$4uVLdPO9EuZ zctzKVRzvGyF~_#}b-XS8O8}d_mStL`V{<&_2)zHKQJ9t?C-P}69nCq45>gdh0x*;P zS#BDYiZ&?%AI|WfOFc-6+Bt_}=gFzCLfJvLf1G@iW!oP0T4$+q(1NUjX}=aK@dvf+ z<@@Y#VZ&BVSp|P)V_lxkwW;|ptmGdri9P7%=aFG>Ipg(zh-cn!HB&8PvC9?}_aU8M zuy}C@8aUJ?=RxSO5dQ;ev`u*Bc-Uh)kCu0|53*Q?0WyO!KV!wUQMtpB2ft&f==1Ez z0PghuNexhH1A^<2`}PZY_;%>{^4}h0Iopfr6`6&Yh+1zRc<9bw6`VoAJtO#?u~QW= z+^0}`VG0P9ouU&6^O{^wzBE0TBv%gn4r@+^40$V?)Bki_XHtKON#gYYfjKqRwe$1E z7d{!hJ*hFAd-MtdIz*!msu^bgN-!QTwqRf9HT_vBqDQKX)jz+84A=YUknB?DFaniI z`hAb@cc3#Hhf20d{>}+;NBE3T5|32e>f?O93U<=@+n; zAT7X(tSkKT-_-@nn$EZWzZaaKE|7}JqF|;VplovIC$p%*JWQENj@9?U1({_w-+$Pd zM##~zHh%w9_>1s-2nYx56?)Dt?6OG04qMy*y$G{Fd8L#$>k(|-jj{5`;#g=*N2=yc(-nS zUOq^swjjBi{|WH)T*D$g`=e7((UJ)UvoX0jvIvJU~1$QIkAdX@F8a0X3wY1HwoCDx&b3p}ZDl6KWIm#=ZbIRwK&!IAMaA;*AOQf2eSc z_;h}hayf*itUKGxO5p%>wn`tuP9j|7Sa?X00u}JomtT5IDsE~8R3f^mi!Gqz2Q&-l zgZKSL4W$bZQZwB!@>NpuC5Yd<(7~#*D3T-FC8W40r>q6f8(FP1HF{EdQ%6p-rz&El z_BhY{NbVnCmE@RgHOBA}y+iYHcHE2^Gm2oTPs|K>`J6<`NjF55Es8nlx_WFWg~;Z9 zIqILvU|f5pyCnZ6-!)Sd*qS~(xCGVd7Wna#A?Gz$S5GF01oC(Q2>#j~nsHfVK$JS~ z(}UCgTMXB-f?qfvQ#%nD8^2mHb-d#?)WBu31hSqc*9|DK3ca;-n$$Cmz2v3YO$T1o z^w|%8;Er0E67(Ot?1&JIYm@ihFW=&|c}>xQ1(vf<5N;cPf9HAa`gKK|FR+qz$NuBEJ4S@liZkZ5M*D_K!cPw-f;rVQ^m1fpl9cRd z`y;_lwrG3^_6_8EO%PwQV`ati^i`(Pd)q}0PSqX{^*Mb>KCs>y{p=aY??+;evpC53 zjhoHBH-f%nPmJcaC1gkMO})}_1AbQ#YAc1W>Dl2S`uLiZdo8O4Kc=BXTse?FJRm`76M49-wEq5& z83zFedbc}m&fICgu9P&_;o9iS8GkO}qiJdr8H>v5*c$fX5J^J>vi?~`r`g78lmx#t z(e2v5=ZW(2ix|D#jCHtOtRv{H*sx+lECpdH4Dkj--E@`!_8&=-eaGEVJf8L4i>{2p zxQ9!#1+QzzWJ=f*F93`9qx{dvuQG)2X=ET$`T+kwclBQuVMkW(Ui^T2;h#5De8F=U zx_1Zv+<%=Ip)(37;GXwu-I-Tpiu{+l5}KK;P^fLGlu#6@Pr! z->H7gV2LvUf@EKI!vo-V(nPDCK)D@HF#!_!$^(Y^e`HdNDSY(_Mah9j41pZ7Hf+}M zl(dqa_6P_BBke;p4A5XvG={2zZTL~V%X{2brKj`%^#rlAl zlb;oaRxOmz(E0)j{frD)Xmh1vvq~A>`BSlnXR})R=#Z~IrxhMOfIX|^!Ja9^GAInL zzW-eP>5WsA9w72lk4o$DPe{g5;<)PB6srYeyx;Hn#!h$h^vy3@vf&lHhD9-Ljuojk zL8)tcO68cEEE9*}GGm8EN*0l5Nov_zLG!H4vD2pb*E75KIXD3lO%mV}FlmzYsrB-B zP2c8AV?15Q3wW@`i1Eo*{q}eeI_?3XAn_pi|KnLSr-QCS$r7a@Bcp>i3y;mfj=K1a zNGPwyHf>H8X(S0PMeIu*;poJ=XV;?!HBci^+l0UOchHrkHG*F-Jj9~%Ax5PUeuzVYaWP@UEv)x5AYVx{OR6SF>>HyhOAe(b-_`)7A*TR-JR}C~MgtX_ zXUp*-?|-&}V1sY){Crg>h~Zz@fPi@!yHr6&-|G1OfBp55t>S!1`l82;S(j9Nw~nUV zc$+4$Y>?{~Bq@UCjC^UKwF5q-FC>mHb7O>8kZ4_=_>xf}q-4dR?-^~#>9tnS=`!BQ z4r;^X2hXK6jVAKEA9K#PR&!^qZS6W$Es)1Td_9W zj+w5-zvtZ*wYcUtm*Vl_Yr)hJ!A$Dg(=si6*Vm8yO!DOd$RPeOIXN3~E(rz%e%em% z?W~as)~Yku1^+(bi@%JHor5i=J2)!l^|>D#i$ct+uxjA6lyip|3mJ28A^KyRrsMcu z>c`H3IRhTsKHwH)(n1^-)Ib}$94{G?U#(9W zdXhl}-dqB$Yy^75G(Wy$%Ffm;g#On8A5BC^@EyJJ69m|4B~&8$b2ZOU)WS=8Y-UY= zg@70WLiDaXg$w^w+f3a^0ML<~7~xE0`5+lWP^pyoi2y*dbp^AP9JOojiCTui0XrP5 zus7(QNaO=l7dt;2fRIO4nH10CcO>RVjW@?U5Co+kXyQ-=H?s#g9jRR=Sey^3aak1? zEF=X|e_jMrGz!1dJo9ED5jx4Frp{Iimpzm*+C>e^b~kpWUi^ZBw;O?wkTW5QtNN&d zrAThpC=|%W3@nEO3gyrMS6*Z|mBI|f658cP#MMP;P8R}-NfUIe)N^W!aVg);f!qKQ zMJP~9FcifQ9MjSL328X7U#UM*tvEVXy1;HC6d@7y_ajOxO!c(Dd?oG|f4i&Z80Qu2 zo<@u|y#QNRBn4wg#?=thl3oL*mGGHwdnrEx?Zn~C z7k)eu1s(Iq=uR*yN50-Kh}yZIQaG@-zV{^oHDw1)nz3m6CvrT(uKfgz;5Th%2)%5O zbd|sg3tj~x)vdS;OBPv_5VLE)Ey8Ld27qSB0>&4UBTl}F2wp<4RT*LvyU~NsF+_Qo z9R${Fa?3N6`RUS8P_{5x$J(`P7h12xq5~DcATwHnztrIp`Ng_{gH;HDG|k&AV=^Mc zKvLTXG7{^*$A#Mwz@f`G(!&%L#Z8Dmh{{YHXmFOHZi$lwW_H3WE5)uFmmj&B_&Xm+vgv6;7-@bLhrWKWRIhfL7Cn!T2 zLS}S>@Yn1?{uYZ`OmIjDwdBM`V{V%UD2g3~n@Wi@t9+hUXK8>kH{q*Tj&V4g#x3K0=yGvxAtb7HKR9q-7kZ1qv%D!Q zRH+T*H5f~%Vw z+3>83e%9_)W{)dj2jLnPCkmLg{wK$_G$NGrsB!zHq_WXp1Mi2#|ArM*sfb0Oxot#U zf`0&HBpxPnFJfHs>#*JkS|-~99d&(sU|~nyPS>r=)LV9#XW%n>jCliY3GY@oq`&nJ zD%PAhiaPwH6>x~6HNh>=e$ZzvDnOAfy!WQSGoE+vye&TeQoqKzkG;T9&Z>edXF-I8 z`Q?iyOQ#DfXlls{?|-j9UE#K{)FMswXCFM&7H_Q66*RdPon-%b>ElCs{+SC*WEHP| zwUJ+(SEqYB_geHlUzTrvcG&7*wY7R%V;7jpo~hufS`f)+es%Y$#lzwuvixP{Hm&}; z!tN6VZG+B-$@27-PISNhqt25VZR^<3Pud*O`xV|8p-$OhkpuqzEr@@aOC%eT& z1S+n!mk*fVu;6Ng?(jKN6&00?058qe_=J(4S-_Z*T+`eh{nu9x95gaA8hd5`T}4n} z%dQuJZFR|kB`aG5ONaVGE4T|%hexupkmWxAW})gy@c%{6e7lVKR~LH_K8N4|t^gH! z_$;Zi=rNY6;IG{dTZssyzyy>K3+joCvcNhX+q5La?bJVmxL1|pVn1 zo1%9P!h;Q@?Y(r~;c1H&J-A;pS1(A@Tezs(JQ=@_zWn25 zu>Pb9!LF0f_`oE-3ba<_&hG-D0p*foozqp)98M(G#>f6?;F;V052u|x;6x;UNPgqT z*9Qb;3;)q@Sr+pCl+mHxdMAdIHgaVSHMGas8zimUGx0Rd&| z739z7ZqQvU9Y`~5(l-&RXD;T~IPJzYH=k#&1XsQ*W|(>G@L&iE5_r3nQkk&2P*n0PC5ji>rY5!up+^@ws~(*&dFBTk`Kmv+ zaZVXf^81qNIG*A+CXcxIm#lS83AzN2pU0scw-Xq@ym!^ai)jWX$vQSYY28no_mm90FVsv~B9-|c zp#5l}0_<;D&yd%DfPY#72myA0Y;(||r%g;gtm#i}UvIvNSqnd(RHLS6LZ7fSj+ zsLm!-u;UR1UaCc|I0QsJGGE5?BHtDcSYEGbo{-iyo|WK;5_2<^Ig!vAGh29hd8sT8 zc~d9?pEU!i0EFXvzR&1YM^rFJt<1xYu_d7F)9~;MBi3M3|KOU|RMB`BJNNfODoREb zTeBOY9F8)6g#^7iSt=SR!|N{`y-TA!&S2QK>xc@+(NT0`_5JK=Dd3FfEO|5xbwD5iA@VD~JPjav9}w zffqVlJD~J7DUYt{z|5muifr#-?tULT=eMbtN*n zDXhj|y|TNL4UT&0F#q!C-?|CF>`@E3P8&N~87C&Kn&1)riu1Kw&v0gJ(qie=IzK{O zIBH}h7I1#KDJCE%nyTp)?mwE^ObgE5*+N_|6e^P6cHmBA*aTi!r4#aqI*y!O#eHm2 zO{h&z9TMBLs|M8dOF5=5`t=DFU|XR5fH6`QYVfcHsn+1P#p#Evt&<=O-MRDxoFR)n zSo)ki5)#@6cXoS|rRcMKQCTF;N~rfz!!2VRjsED&1Yb0@b-=94HkpHm{oFIDu&$Bv?Ie zXUmE$%*QTkHjh)C;k|8Xwt~wFo4cbp&}t>G`BqlT@jj?`R(TClk__Y^a$a&%W?~v1{#}={hY@@&5j(D!ozciV@(tKXn}Q z@@eyO5ku+R)4#@@zA0&aqSL}}bYh);qR-hv!Y=EyFUuVGa>6XD(9?H$X!*GNFH;B9 zvxn0Xch8sLzO{M%79E3gbHwIZIfhSie$CV#MfV&}``?Nddb_1@4&$}@uKFSUjxrzB zCYQD8kLsgm%yd;tEc@Z@+tc)Cn@n892LrQ1jJ4|zeJ&saLl9V{+e*(CU=n{bufY9?bsU zjqCn3uqOv6cx>8HBC{h#1A`I6>%R=4{DV(qW~C+P1CN<>%qrnKoCt+%t&9=M*KDx8d%` z4Qf|x2mQO$l9-`|rv)cY6n8zWnU-vQB3;NCgyo)3#9I9%tBn^ONhwM1S<>BEFmgI!@Vd@nEOzi_afbKCqM0p_wxl^G*8YE;}U+z)jGr3I%l42P37|+I;vdrr?^I)&MrOn z@Z-xdlp?q+YsvuMUgOjTq*K}VKcbC2EMn9>g_WpV!#?{FDjXRQ`Xvd28e_R~<=c?7p zZqvp9<`MsdruI{u`-asNmd2X09vm!st6M&I;lqs{Ue6-Ja&LsF>t_}Ge6q{FY0imy_6jH_k)E#JDH}Rc{K_) zM=1*jeVadnx2yfl!so9SvXTsa+E)5KUNgn|&IPygw=*Mc1kd0PTO0bkAIv|vWi-yn z5NEb9GIX5JNf$TOCQ77+45Q7 zXNlgtBVn`0J))2?Ctymkt*TPhY9=yvz$quPvVzK|_&R-w_B@;i zA2K6zxpw}sw0>I2@i9LfkL|>Qg=@3hJMNuuGB2;r%?+xq+v7489c~^OXpht=7tLU8 z|36Z#(^8l>yDH2Cl{|J$X*xe&`b3iOKXp~Ut`R2n9=G4t{kN-?|KT4r%pYF-oSkgT zrTjZM&(>|a;PC}Z)~+u%&kc5cg2nRY=%DD=bX)%m0mqIP1qY563K{d}W2moAu$z(U zzm5M<=@%Au$Hs5xWH?zb^m~q7-1+%SCcnVbrn|TLgBD8V1x5>OD|s3?B7kEs=KVwO zoxd_iL1tr7k+OE1u|5C9JYBbs#Zn8^ql3Rz6a`;Vu1vOkk~M9A5cfK@PnrW)BWGD1 z@(C8Q;oLSXIWk-f$2}e>AT9o>awqo2<-3C~D%;Am>$hwax}`3wu=R^&UiXhkPeUu0 z(Q}!xeIEYi>2YT9T59(5te#gMP9By$>8r<+=A>G=pnpr`IX&-(V~?puiB`g-)Y2h0 zP0poamCD1@+Xk%tomUh`o0alv_Nkls}7R97g{IQmP* z-r4jQotpL>|NW=ujT7%<^;h|O#=KG(k~^`M9cL&VoZkOK#~`I?XG`LTu|NN0jye5` zshl%C@5tfM_UHY#T0Hkz$|_{7P}movlIFE;=h(@`D0acbOq4tuAMv4CLTU2wu=~PW z{%5S5Io5D)$y_l)gTuuvb244bs2N|?!N+0gk?^)-)w#_N?sD87E37jlPkg|)8W|_l zeiz)fxYd3qqpdBe&gOUJ^!|5c6&DfZjNZ_e$#g%S3!>uN+ru0N4sa}AXY>bm9w#t! z?2gZ@{p$Q$>obW$_|A8$gW>RYXCd(QXa!?grRqgP#mH1NM8>y&91&aI>ke>r><4HyyA7i zzwdI*1DkTYzOOE#;DE=UYuBRGmqOV^0$LGdJc?>;a(({Ya1_PL%A=qYMMx>>Ublax zwQhNtA94r#q0T@U@$aSj2K636h&dwE1wz#IYKFi&(fgAUqN5M(=dkpqR^HGOHN_Rl z7op-cVq{DFZX_|c0s~ih7L0Qou=EC_(-jKkZ{I_uF*ZBwg@1TtvdkRuzWc;q0eFy{-M&il z_^&ow?hNUUSsFT@Q{!%S5VBU6mSxiCpF&mXvIJqkwI&>fZ z$RB-fVyI%mnCFt9-Y74SQXVeO)PJRM^6#8edlk11+^I5l(1{x&`&J(OQ7I2eHLw>Z z3(wQ$nU(=Mqp^dK>x92e-gRkmC>USV@c=m8e2pR4o4jl9HSYWQ6%=f_cSKdE*-_Wo zPkd$J4Ob^Mjb?mUGEInCkIpPimbJCDP8r%tE^Ke5a*PXT4naN~`?YV+5ER4ud9f#1FzXDOgPU-@?M_KZ{I6?;Nu!AyL`uMOmYc=;$^PUhe`-1<4G zsBNyJemGyZjEoO6txHpH?~Nq8bFS-WU(Jm%dZvGUzrr;pk3`A46oHC5p~9ZnFo%dw zv9ddh0(Ne$j;tDx80L_Yde3cEo*3jU!D!jtKOuwvKfYFnQqc8{mWrfDhj<+o$P z%qj$wV_C@JBJ+zA3oO9j z=n`Oo)ib$_aKVHst2;w~8YId@votMX1P`nt+yc4o4~O9aZRuD1ph&{c2SsSJa=QuU zjd}(KE-mXq4-XXUfdZ}LJH_UUa=Yf$PrpRg+>2*-*|@x0(foS2tz?drJ!f#x6Xozl zo+2kV#!lbByv1Ux*EfVJ%PW5i-||KvG|VmcU9L*FO7>y*M{9<}!uTy;rFW;RuBG+JGS`W-vst8YW!lUFrKr83CKa73VvEZs>qg!lamu>)i>#^Nb7jN zfo-%(zC#lIJv^AFJ|}M0wFX|HtfUl#<`OJ`s^Kx!sGBZu3;r!$QYNgsig9&e`wI<4 zKAY#tt9}$JKHa0;Ez*Bs_R?AAgOR@_JhUx(!Yn6yjkzc?o*dncE1-e_9XI*n11%nP zsE~UyNzkw>3k|i|aSrxL1n(Jx#7<2lhZf8lwnRmOL|Q+~Vpu*y+| zO`+=fISn5FtRD=U{{83km4gkwjXDXe9(Keiv4wFc{jK}QIt9XUsUHHs-@9ktE}iwM z0TL7+CYY1ly8WnHbFxq$kBTWEr7TujV|32V$&`}>Spo`pv)JP{kew)+9Kr<~ca>``nT?1yMg$7zv8P5xA=m{XQE@tnwgF8aAGx3v-Mo^5$qb_tWgfRn zI*-Y>=q#R^`R_1Jh*N1!N|C&n97P47sECm{LACwBQ(}++QG#lQCHy>{4*A^8SwGO} zrkJ?N1i8VWJh|`N_4s2iFRHr~?0`tU8w1;vD^ySn#%|Z!03Sfpc!C zf;5tA2MJ$0I?kqHSNN1<9s;bA*ADJ(?+XfU_BD)S%=!m8h}pwHp75c0CD&!l;=^wV zOm@w5p2}Rz`nw=bMqX~xIrqshq!9sz@y{M$RJLB);pm&9(-0FbYj6Kz=+{k$A83WK z-%EQjV{P6u0rN#(E3FXAbSmYPb1KVT8#F$AMQiwh(T^Ha>y=f)g35l`F$MmU=38xc z&>P#uOuY^vW|XYuY|WA0$kS!qb={Ve^;BqM)#e?_t>$a*L<+{wboKl08Osj-Hr=pU z>(Nu&@U0rp^P=XboEJ{EJ^M`CR@Lw0fHAMK`cnI}EVlExpG`F_VZAK|v&Zs0#y`6e zQXdNWTpZ@6WT>Zn@c`TBl-FYi?FZpErQLrRD<3Sk-tGK4uB*4Uu4 z-^F70DDAC}j|x-{JEuC(^!f3g=fM>X2Jd1cjz#=M9vJtN5TrAjEb6}U$n;33o@aOWDT4tiK}zDh0G_svadg_G{r z0x|3EvVR`zoI(iRoPwyS75N9}{FmGQz|9(%r{vjGvFM@Cn$2^*KP?^1H&{Dgdi6Np zdnTcl`aeEj5D6X7jw)Q0yc0Ra=p~%wKR9@Y!HCvgtybT;U;KnBO>9o72QHd5!I_-X z(@K0M9oPNW@Oskle&BZc%KhkLX5{ZR&B>D1ub3bF2R~UdYr^KdT-u_OAfP@+^KVA7 zh0;RFN9P}HXFg7M+H+i`T}O54gY6g13$LgxHk~T}uPAFS50Wf~`#h|t2M@TzXEbh9 z-M==%hRvsNrdXIu6OoWp>&43b^>t&H&5Rz&j$iwp?1>JKjO3CD>y56|GKw=*?Toc* z6?|Ibaa(7;6)xWSb%b&L-(fmA6FIr#zG+=sE0y)*^bK@VDozPh1x||C@Q;e!m&DNP zyjv^}OFh%-z0W6W%iEL3TCAV8EjPg0GS7Mxj~GkZKX5B|CN0g=YA9-H=-t<9`KsF@ zJksFa{+#P;y*7P5q;c+H^ly*bs_EKcaZK4eJ-5{p#@_Dub~WfgC%qBm4bFYASM5}C zy?S^4tlq%QjlaKVz5ig{zN`^o>&oHvap$xW_v%=^AG%U)GTW}*FI)FtV@jZzyBkZD`uh4Y!rh8;TduJCBdI&gR{x^#8yWz4lBlcYxe z>wK%2n`5Vm$STB}!Wt5W4kc{}qKMkMuWm8(?k1@&=V|6LLXP%0YLY^Mam-4K!hrc=oC;H>4`D}h$&N1=$Ix(@MVD&&Vc&F;YcK?C~FQ#>x)}3|Z zJWg^uFv_oVOmWowk8eKffF42~QsCFEvpQf?&glX31}GRSIh<>Wu?7udjMz-Zw5$K^ zjr37j9Mp8n&u{6+6NQDk0BZOfwWTB|DVIkY;h#+qD9WegeR!LqH%fA zt|=Tr*ZGsBk*y?%ZDGug0ThsiSmk%CnL{|-*Qlj6#H~%$>FHEE2mMXGmuTvwY@jX) zICHrIFT^6PRBULr17}$jJvETjM%dxiPRwq8FCn6 zko9Q>jC^ocw-ROCM=unGXG>Grr4v`rqw*iZEqO9u0Qsb&vlDG?R}bQ#otZL7b=H5@ z?c+v{AtE9|S||Pd0JR3={}o2k9%UK$zr;vRqRB|jTnG<>sS3?h6Sd_)yr;TrmlM4fgwv9K(HP!mjO|${n?42O;HW{s8E43u1#)6_ z)l||3MEZxWZEf3bz_<-4LI~}^)@8>Tm*u;0h?SzG`dV5L)qQ}4e%v?yJ<sgleKKrJ5QZuhZ?NGXC^dM=CWt}bFkU4+-} zt?eo8;_I?O-u44$+Ye#$Z7}cFW$%FQNJskwXhSbgLAP`qV`dC4voX^TRkzB%!J%aX zCRNEL7VTfEqy-V23WMe-Z1=lsGy4DxXY;^DSUaS~xO!Le?q2p%*cU7nvx*Qw2NXH5 z4Lx-MSfqNi+KC5>z=PGD>2>FhF%>t3P;kcWXTN*52~^V=1EbF;2deywtvgDFi{E7T zs>Yqkl0a>5bNxYw-(H@&H$ueQ(@fr? z+mHHWE_m_oOmlQ1a*jZH-|NOKLZb2v>fD+R)O~NG9SvOvx(@H|sX*sB%%siiT+qf> zXuJSJ_t+({o}U@L-iGmBm#u-`ZZGw)#l2h(ge5J$(QKvTqg3#*_p$pkR}CF9cr`Nk zCKa)7;*3h(!$ z4Wig}PhE=3HC}+3YF>PJ|5BDdv?Ib=0}y*}W9Ke42+#pD<6=%!YKP3aY&THRUE7yA zR^ev{pj2~bb_Ndr;nJ-F!$1y!uBR?F1FGrB*yDrja}$!a>HOF$lRb6Ozi*|2%98n& zf-@YSeYWeZss~klEA=F-fV(71PVT9YPD9tghEIvLtEP!DQ$dqJr>+_6vU39^(%=3D z+juFf9&P_(*N8HH9mkZ}$Htq4vCF)ykvF{o7xFUFCnnQ{24{}(U zU-YAy9-*=ajkAY(u!kDKcu{66bp(YW7l(mbT}D z=e{`t4*jz0vJV7`@6@%9c+bbkSJi%%KQc8_CYYD6`AWMfB`oB000Knm5rA4Cr(|qu(1(ZK-_9p`y5B}&v23;*%UP@#DQ6s%%L~eQJR~F=c9SS&JdiUn&-b> zne{0o@@x=~UI7{;6~l{hqgLt>9I4az9YCY`-a8-+4@m$n>vgGF>Rp?r(2o8KB;Q=N zU>n0gBwGIP9ptDoY?Uajr`SoT!48}>B4aca-v>(js4>3XDQb^8S!*?Ao|W`@5Int= zlpjpzioO6uaP#$Pl7G}lBF}?F6;uOu5Sck(YVdM%lTWsBi{jCK1=S?bfgfhh7CQir z5d?wOmwG~*;~B4gLAo(S?{YeVaFIVn6N2e^6Ch>P{^cnKmlqdLj+DFjzq&OohVL2U^|p{|?Zf;@6KEkwzTwl@b=0mOs*V$j z<~#Ovf`BE>MoPT!!tc-*9h^c!ib+XHSdWDWY&cm&@c})*`LlpV(q6U6iGkJaW$pI8 zVnpOYn|s@|O2x_Ju3iq7^@WHz!SpHR+jK@_^@#68-keFEzO&W=1dNL1KCZfoH za?cD^{=+`w+Ip!|DK^RCoxPvuulOCx@4bt$_Q8`U(rn7?$@Jo5<{XI#B9M~m1rD9y zo0GpQp&4v{m7XoS67N^8-b|+BBwt9jY9$-p5i>LFx8HxA@4Bx2XE#omS*FX~&jy7K z93En{)nYe#&v}k=4oRU4;M)D}j&j&|Vx-MnjRwk-ENp;9*!~QtUmc_x31TZ4(_Xjt z%CdPkY#=SNrd7qr6of^q1@My}5NxRc8N%tX^3J+RHT!_07om9^%^cAA4`OisTGis5 zA*z`o)^L^1c*fj+m@OVZV`F2PEF43#QtWa3v4dJ#T5i9YxLP~{?s(+8eE6^@&CqG{ z*I$l^in`!w4?`1VS~{(*I4Gq%x>zF;O8$zXcL6>)8r)JUOvOCS?$mfYxV(DWQ&D0PfxKw*)M2 z$>Q*)3JSK`Vo**ew6q0OiZhmRjK2lVgI=l=s%E0-Vap0v2!Nwr)brUTmAx zzV1cew;6ZOe{+T1x<5grr;3V-s7k|PqdpeAtl4;jHU!2Tu`iOz4lyoH32yFaXx`Wo+yecY8A2Og4y$sVmx6G#`4@)EEYB3U|1ShLiU4NkRAt8OA}A+W zg@|<*S`7k*w53^XVlm?s_cnxVYJAR<xG3&zSr0LgKF+!hoe{j?Afz!%+8J+fhoRbUs5YZ<5=jN!hWfPD~ZVD^0fIEb1)r8 z!YrmA1$i-MOC2+*!?Ls>jZw-yTBxW`3?t}8^MX7C6&G{T`|Fo`1qPZi{ZL%locITk zkC0YWS4M7lOqT0*^Mcr_ujjv12v@o2=rb$q>~5{`H7`b-NrVcfdxBOYtp1+8s`P{&n**$1yj=M4RzxL7uue)(jB$ zFaL86Ns}5XSXFDrpLPUKQsR8(d8Cqeu#I0Ce1;R$V-Ve-5oEc!%|u&?CFZCz`2__r z5#{C~E?m|Vk3JEmJ67I|;mcWJ+Y(bB@ho2uC*wZ0-}W=d%k9Q*^LCmXZ=NrbWdTpD zBWfEqZglV3KR!dho3q7@rr}cDuMqnH4mJ^Fsd+J3E0>!T|ArHS_K5+=2bZwc!^|eY zqL4+I)p}?hr3HukvLs%;c#As7qR;j3*4^Af2@2qLJX&DldVlO4-0hI48X-tq#5bcr zq+x}5xsJ=EtwlP)Nuf5HokQG`|kZ9bdzT!PrEF_n$ZQ)LvFw)D&R5+}(4g zxm_#BV&NlHa{&K!{mJs4YuUohDaLVN( z0L?=Vuh!7arlZ=EIjmg8Y`*T&6_D2X*RqW%ZE$Iqs|T z5qMLksHJs}PVIBsF?5obMj`AEx*!M~-Sp4GzS>{sN&W!FQ!_lXN-3HK*cG0d`nm1& zKl`x>auJgVa2wx`-GrDd@C z3C=I0*u1XWhH96k$#RfB0hUv5Esxm)Ih;`!naMC(*t(APYxKK&_0S zZ&s!D&!mq}|5GQB{GBap;x_NsH$t(1?4o%EQ%_(26NkJ;c0s|M{+-T%4E0%s|LkA! z@kj0A1q%?y#g%s3r)$HK?P+%(Nn)sm%u>KkO?tSDu2{c z#9_H|7=IMkOzuT=&2`_u|A4kg<;Q!;knjS;R9jo!abb+jqa_u|Vm)|1A{+k* z*pZV(Qgk$WS{a)M9sS0fSaMlp6(Yg4Ky5k{*=>hS8j;#gSHc9b+00?!4i(lx&Z5@V zpuUXAJb>gHBkyWLv{`iITE$dieD=3iOS@S=&96EA@n}rJ2(RUr_>>;i2 z?%aA7d1X-ZaKeU=i5<99yB*nh$)o*q!01v0_hR>>Y6>;xLNrH{;q_jGJ|taZ6#{qa z`eY2ANGoZPFa;ZIFw$u6vo@-1dF&AWYVq)3^>8D&O@Wky1BHh?_ayqSlN5@iyCc<` z8wj7XWWtvDv`d!wl3DD&d3E4Q9KvEkUjkUgMSEC6!LN#Zglv3&AkAl&HJ9KKcB7PI z{Ille?{C)yn*Nwj9|4ZD@75$^*2h~k79JBc0_04TMT>W9T#C<2OqeoT2?6&7@jwC~ zM5_;Kwr~6CciEf>SU^ikkzA}j;fDD^q!~@S?h=|>%@+>JkwG!FR%0({aZ>ih(=~*G zoR)VSwzU31d)V#D1NDq14^*U=KL|ZS)1dD16E~?T8L&sPQ4`jCzu+z+di<~OjRCsm z)Xw}OU<76)KSlCRGZXcWZV>UBzk3}lg=vZEiFE91%?N#cn1i*ehNmvI7pwtYrwFs5 zIN8#e#DcMW;W4Wey-;k~dAnw?s@;C^uUfdU7Ih2^cAVd#<03@cJ<||%oi#ZVTw7tT zKLP+~p3UZbpPyffbyfc3$PJPDC9FaeF^YcJVGngYG8$p7)+g-mz>6!gf-Dj~TeilR zp>xI=a@?g>^{69NUFghvd1~^^CHIM|o8v2>iqsdPWn~qW$0!mRBA_SeI3M{49{=SP zVjck){hLNzbMFWn`!IP>Hlt<(aA3%cTqSDp1gqm>&N*PA*jK2#T@%0^YIH|#Bq`_G zOG);P)vtNs*PD3z_0+CVUaWNsom(V@qoe^YG~uAvl7k4$_kvMtBVQGi73Z`y{5pSe zn(Ku5XE8vE(IKjd-6horPfbgqHV4#63Me}g>a}KvC%LgL$}d1kHkD6`_gw zp{WdVK;M}hDm2VTM|Y+rw%Q$hIWsaF$6;v%%pv&^XiT~k3aB9=DUj0W>W<7*A+FP5 zg{6Ov=1aR}Sf`fyc`g;{ACG9^K?N}mk_I;Updv`+CqTPr;e6I=@=`%WHr-sK40z>Q zWT$)_QzxXrDvWF4Vj9}!SI(lpe^o#(6wwxpE_T2-JqjHOCUF6aO^`$hXq27^JNukj z3y6TfK=mft0;%`~We-+8C|~xFg_#j7;(%5)HMMInFGaOoud#blv;|Z`%!Nx(?ZVh? z(7s&IVsmtFU4pau&6_vRpv(0=_zu*?FdY&8I|99Vmcl)Pnh^9NAX$RJjd}PkYDhhO z`qUhk0DDZdtgr{og&eMxT&g9X4ZD0Us0UVXWPq|Z=2iAw{> zL_)axV^AUkZOni{$czr|S3~#S3gSZpgL&2Ny5ZBr#JgxP>2tyK>G&ozasnDnK;P(T z1j=dZ5C4ZdP_GSxFI*2$fj+_#DQIrofMXWKVR1bSN@s+H)dB7pPd6|(4=R3WAHu3S zF;ud(1p_XWuxYll+U&!N0!kj48w!fSX>k6d)UCF`HmnoEE|1E;e_Q9VgLvz>Ut@QG z^tOJ5hf~v#ssD&eBa3??!qA>Hf7qItw*+SyV#11lKwfR|aLsymfzumzcmew zxPUibUmu%W0YRDzl5MwLxnFwR{=Lr)edF%#Zi5n=mTd-@4ZX=MJ6cDXkq{gEb|1j= zh$IRtG8wr-K=955vBqKtf%PJ1}!O3;3oH zPw9LkN?@>X9XhV>;rLo>=6*#=D+-8J4I7(`Z(UvIfK58)3wN{y13CE!rtA0S&_cgz z1pMda;>A-8ryU_08i2CAqbIxp(Cx`Gpmp|tWPER_BzJQT2;#v8GrBU68sK`8?%&Il z8yAi0%lQJ0{aT^C3*D2DUTe&VL)bLyg)X4}KNlGoC?k;!=#+eNnFq<7Slq&JdCB)( zaM8;~+n<2Y;J=`)1*x}{NHo1#Y-}tNhQsM_88JPlzLyTEE7{E3im`_jpmbm~_W}AW zh>>3mGE@K`wS%lCDX+_>ua)sC&etX09MRqO&woiAFIGpz|{Tkr3WDplI#TAo9(I zZt1GPE#xW-`BlJv6-0&}NEttlY70WAF&U1Pz+Ej=Y9PV`fi5vfgn&Y77Ob=W#!;AB z?=9``sY71f1Edm=nF6m7K>wyg5WTiku^Iu+yzgKhZ+zjEx}K4fVjpXSrq0SmHb)Z_ zJgy^Z9+a7F&~64jLLI^zm_|Py2B5}w&oH;YfeZkU>*shnoJi3jDcXsh^v+mr%mB!VH>6$$JT#z z6ycGRBFtcq>}|tE?46Bd+!wnc6{*|HP`@SFh9rie?`G|MWR1lSBF-#a<7wnsvszM= zz@iEj-U8x{!0--0qGL-2nX}Q-Nb(GlHpnZFdS}m`m$UPhg9n5;9{x`&=k_$D_2lb; z&qfC893+j&0F%#9s$HzvpuIT?3qsm^ zt)ELo+gvPg@NPPk^0u&tpp<$pY94r9`qvxA%0IKxjl}3-L6xQli3-vxfzk;Qfj^L< zO7P|)fsux1`F^v7K;S{L_=Gnw{>mR=%??Mk{=uNYd)JpfBE^EY@h0CuwShj-)DcEW z;C!eHZE=_*T>h{G2x{DcQ^b-t)?9eL$>R|&EL!P5tLSP>d_39ADu_!zhRo~zX%_CU zGIwE+WY)`MemT(ZNSYUM)|TTlBGht+zOC4u4rU|{4HKdpAnO!f_7%FqDEn7AoFKm_ zSNypP4*oG&!&5%LFXezv#@;p|(~I2o*EcQ;W7tnbI?1UM;Mw- zp9`L{tO!JK?BX7BmsHVd{tX@Ha+StD@P8Jn-f@QT{0kuASp`*)mt1Piq-fhfV4ACo z|MzCK zj^uZ+k!}%|?_Av0Z>q2+Lah(nFZ43dO`Go`_&k&jkHhO=z3xHZ+@sIL5N#w_|3WHg z-_)^kNBMXIt>itt;(zR|L)ldqqP}KTwb}g33Fn zfUy1tz&5Rg0_OpaWecjUd+R0DNLvqH|941ivOppvz1}YwMs%v0Jt73?&p-KD068qv z{F)aGlMl{B-pw|&FH=O&12iK47Wy9QRjBBpmMwv&Rz9|Z#yU5ip$WHl8c^Smem=`ay;CP#ZIdd;m77yo8!oUJ&G5R>b`K|fwZ}^!- z9t#$vp7WP?XTAUR5>gb0dY0+xVR2XGZ`SZ)08U5HHZjQs#lt?Dx-Y)#XCc39VMv96 zuPqpY5OA-)q@lD6VFQuQ!#?O0{si}SSe!2H=RW;l(bCiuyEh;PzcmX@itj*`paauO z@AbP#%~P{3C@T>fVFIlLOZ_#f(M>2FLEhXrTzb#H3TAWXf7g&mPd_ui->FFdIC~ZH zLCC3a|J>oBf2afZb#eEXI^tO%XA@vfJw9(gwjpx6KKS%!Bv(+62)6KZtP>8Qu~z^T zL5|)4E<{8TL=QwjlgRVy&!G0`mww8!RtAZH7z|KUbSj;pZG<3}uw+qT@f7uVptJVA z!yEu&KjFv+?v)YobPcI76j_Oh%!v7b(2Pi|6q*zKKzQo!?`MRv5Apuy+3BxCKD-89 zg@58S;0}X!3*a|lPW%hDO9Fh(yP+W?1Pd*u`r>ix;bM*7DTaN-{(_!iH{;VJ2wxA$ zpTl;ni(>$}nb$Bj)Fb?X@*AK}CQ$D}2#P~@i7GQF#mqKxpht?%D2}ZZLQv06IRhV-viwu+Tw`~C?*@C3MhZTxdOSZiAkQ`zinFh0~%;( z2mM=aGlk`lzaqc~KuW$ptJBPUe(^U`bx6{_w&w$r} z#Bx3Yp9cVl_mLkV94AgiridB?_mgX1xu%QEEC9uFrU9WPyub-;4Gy?R_i8TQSR>Uf zCGACY7!DOq8W1|JU~yv${H$|c76*qwi5}77AbHCG7$Pqh*V_hhl&iyJ zmft)~sC0}NIu=}fOJ+c&LUN&8I%{_+>D63(_IEe7;EdxsSLr^C+JQhMH9&zE@^Kco z7m(A~z+hZ@;eA(3QWCTzkq<$8qEylMG7$jOS|WiYSdnP>|ALMQo;|f%T*2Jpzd;&a z1mY30g+Lb2@QMz$@P z9%ljS2bdr=DD*m^!Rzqf=00L+!_Syx0|O|w@?*$f^p^5dJxO#LV|L5ob4cq>|zK?RB)Kw^rkv2HmL^d`y|2nM@ zJ&{GYThPJ(xgws2&1{AZ@O#ow+TDlRHyyf4<_%#Q&<6tDCT$chfHhnwgQVF1^P|8( zEL0a1d;&I54$rvIvK&=1gckqWe&1R?}=kNj$=zpx#VJ!V{ z4i!<*@BRhL@f)P}_w@dU;{j2Fn8uB28FiCjiy%${h{E19--Wp{mkKJZ%>T*o|K|fz zf*&Qx3xK*hLCpGVGGO6a=>-kwik|(?$79qFaP!Q!p$$(!veQAvr*49u&j5hE{^w8N zf2tMAVA@~?5Ql>qz$4>V|H>|CT~{^&5mdcz3cx+ua3?x9Z}!#m(AGsztak~v9|0np@lpYR2WZ?plV^;xbpHrthMv6t$mjS} z%czoN)3vq;j)dXzNz)=#-SU71DzZbuT#AGkQ{CGxY;tE8hS)tTR^Gg8YH2T$dH(FI z%o7VYIu*^o8>YJ7Cck{1=OOf$Y3;dYaeAMZN!}4<>TP{GR6fh=M(-PBbtSs(|_(H4}G_JxEAe(!5{mEgO@yYpMae+ng}`d33*R=i^G{}EMvE#iE9^yp~D?SZp}XU*nsakM9aIMhb10nVW_x^^O zrKOePu4_)>2|{CPOlTfqYFS}-ZK$K#Dz@cS=sbEnk)Wd1|3L@dT30=d7) zrylh4BK5+rZ%G!$IH{@o5}mohI`V@UhNFYXBl>?ZeccZaP=Kl(K57jDK|BsYt;H3{ zN-zCY&E*x2FLar-8P(9eG{?}W9sWhQsPabDX9})r^%YH7l38Yb~6Pc*Q(P+EU6hnonyD<7IK4^P%CM9TW7Ck zbbYt(g9yfU=Ak+Zw-=|9ti&X)=5rH)X8ZxMBe(hZU&aZ{$IXf7QuSH>8?WAU5Mv?u zM@a$y-?Dl!fGAt$_mJ0B`9Cr{I3Jp>rkfXsP5(`E1v*n3KJIL0MWCQw;tncgB zf@I$|w3A_aD!+ksd1hF1vUQ_I)EtDG_P9S9x3TwNnDv>G_%69%hHihxwkHcis}Y`~ z7~VQ1D5(yRU3S26MstAS*I51md1KJLkt^iZn8|-iSG*!SO<5##?~oM`N|l-Y?b671 zf>tgHEo`%1OBoi{xZR(Uw6+zwKAi|XDlW=cN0Zxm z6z?r!dUt~PuW094(LKp!nNXXn-TD~YF<=@-NeW~rarK6{ns7IeV&TV_uZv#FdhRbZ zpYko3aiW2bTRcMXq2VY!o>X4{y9imE8U4*ie zx^3#^Ur3{BU3362z~;u;{y^_NylsdT`UZ$PgR z7Z~M9VVfOhiG%0fR@LyBRM0eavnrr5;!@T%4xb<~U!q`lA>nuaH>hNOm}{y#_kqEY z!f~jTLfC~Ena%qSQDB{PiMrgZEhEs6e)Cq+1{NXxd`i7?{Kixtf|x;sy%fYXvv`R(f3RvqRoDI{A>x#!i-;&8MnJuU z)$NMeDK$dKcVy%{*jONGzKOdKymADgYxRPF=ys|&LNh)_c zf7XNXi^`fQ_h(`@=dg#>4g^>7%4)zpC2|9>3oD7XQu8x z-GSj1fHN(3yRY|_t!>Vvbn?1`{`FvD?CV{P#8ZOP>dxhVTIy++v2o+yWrtgeybeqY zQjQ!}TJ~qG$CJ?LeIk2tTNG#Y$CMZwWB#|kJU+6!)PSZgPe@wfp?3P>K<$oHD+=F7 zM)!&8rDjj8O`LTmYc&heC3{SaIUa=^l_sc*zx#URQS7V8OP&)y{Y{8PRmAi=9|*fS zYX+Rc*bXviitI@_Dm=g0%}t#5=@$h??hn#;q_=xCn_V@FM^y?i?75%`tvtEN<0Q)- zU11C_Nt4%mvRwPr3EJh)At6~elax-7-@%mW&<#E_;48acYDzJ3SL+zrP|&C=M?to& z%X5XTEt;YRKH4p>+==fS2iTk#W+;#S)b{_v>$ot<8R`YRFz<(cB`kK;rmDmS- zAa$pZ&59t-FIbiBv?qmn|Cs}+1{p2xYfsStM$~0t7#v4s4_{r+~C*| zQmveOb1OAGcUbG$!7V9ZljJx>MhH!jG7|P(jV8^E&pQ z&nDGSqwIBxePBC|&+1H%^GI1vYMd8y-rjtU5BJ548WyJRPySXZ^AD){JmwQz@T8e0 z_5`MU{;GQ)I@*4Fm#}pY*(~C5P4Ph*qH7y73{NFN{C&L1KT0#-9Z& z#+y5_I%N{eU50KKn`nI<<;gl1qQyoBStrtIztEO7?vLCAQ7YR*p^U5qqA{9f$5-YO zuz8gGmP9p1C9r>jbTsn$5pzRI$4r!l?6_&>@YS4N^EXdFPl8%C>it$~%h3s;gJ(=Xnw=1t}@k-?%e1!fvi{1{869ha9<+d3?bx1l z&hmx(!8WbmO-=Fwk;q9s{A;rRWaB@Q?3r+Pg<=Y;u= zB-M3jeYUiR4cb1NwzUSt818I#(>~T%Yw-rHaMKXjyHB~~InqGNoFo}*l z{qvLsO`DA2PswHL#^rNX&9=izx}ifq8)!nkzE$;#41Q=?%8Kc!N);&i4#s=vogU=p zH&j)7nr3)3p*H7?jC+f1lI}f{?b{?+X=rTMW$^y{z0c`A&#Z6rYvumjvHl4ws0xyz ztM&=cUb1s>U-{#jSPPYnrdHO4#&4Q%4Y;WGvPZ1+53ll6IZ}N=XUpQISnl(wvp?G3 zzu$6yxN2dcnqfnkNs@5h+u{Sg(nT|R65Y@fE0e`B%`I_$3%2@GQxLL;&4{p+M@Z4~ zmZcT%RIQrM^2+MULLd8;wQPz)hFN0Av#dvy86YNW3VnP(yU&?O3gu#~bLU(55(9H+SM!zhQIrUJ~El zcG$Y#C!fyc2Gwg?EsF8lYcbgYOXY7@+IMeSxeGjevgbJ|br(;d7)VEHwl$c(^a4Hv z-mjoRQ&&Ne&!}L5OpNr+GlmkaZ|*d;bi~EJG;^23I5-^5uT9)Y3AS>`kyH0qUZFdo zyF1M1G%a5Unc=U#{zVZ?l04o<51Jgd!&ajg=fe-Qn_JGn6*63yirn*jTrNgvD0JS@ zkIVi*rjoJk6-dY&~`%-bdqy6EiYm8rafxUdbqyrJ#F=)uh-FEpJ?)j~NyGc4d;JtbIj-6if#x7O4 zJTdj9xXG{}5^VmCK0)A04;j`MW>+k;TzNXqtI9#k$D=?0SMv5F4{aE9;p^tWnTVxu>*ibea}D6gqr*3|H{Z=p?tv;3i|on2Itqg zhAOU5X{la!n=s|(Rry}^$h6IIfEYjLq({p3>EyzaD_LLL%u`i0izn_2rdIlzx*r6N zc6EFtR-_!0-4U`AX=tjpFV5c4?R4lKsZ?wDYgueVKio^i_;3YN=F!dizC!mtE=`BO zTs|ZII8U-iEoHLAI(FZ1tf3IuZ%d7Af(%7m^9XJvXm0%MS~aQt$J!yWgi*JaYJ?x8l%`)7eUK_DOakK0xH^)a%@R{!~ii_?;tI zupxTH$sXyIjq+i^Vp_klY?%dlqS6*Ft>o=%Kvmb)!QvJ)&C|fpyi_6+w&f|i9b`&8 zc5CPQ96@Y_zVKVh(|j$}Cp%|NLOKfk-;EC}`1&-G*IKGikbW_YuN21Q4xy9yDzmn8 zncr29W^+G5^}&Ei!$0ACCNCR&0(%&$P4`Y!J#A@SpnB^&g7frRC&b27I1pX5uW_>8 zamG8!pTgG1R2STOs>}#(i#^Fp-|I)EzJ4v+#4xA-Jei}hD+7TG3gaOGUFW9xS}Zri zWgn3Bv8Yt;@W-jWeXFTk`0(OS51s(LLaoCYSynotF@u=x+}>w*oFrl4Qy~!}+?{iM z%kTY&CuH*U#yC|~HCx{H_A#m&^X=_^F<``)wZCKOwOXB?<^&*>?Q6pJt?(n(jFqp?)EU8Jn>L5NVmmKj@e#i6Sq$%3L4bwSTW2o7CU8I zn4NjiXU~b<)}?7t=ACH6NtbGAHc|z0&cmlkTYKcMd|U(27%}tEw*y$GbB(!8MAoXb z5L>n|nQr2-C$HfXoA8|t1|Hs3buSS!Gl|Ew6Zv+4i*hurfG`#`~5e7X5bziIC|!hvOpc=Kch` z__G^1;XVG|unmc3x>uwBS7jjLm&bTh)u>uatY6qqv!@c-dY{AeIKA55^}C;T&T*5d zGTETm31o71`msTUIWnMSqLy>qnM|iU>$CN~Rzp77sAuK)viq?hc9M{Q7>$J#V-L|F zW22A;=0cOSb83#C+yq|IRz>H%}e(>dX<)O6<;XIhp@kDVtY!kj|??Jy6%_U2e4#yo0gD#_hP z#g}BSN*xy`AN!N+UvHs8S48$?YAC~p$SKwK`4o>)Yx*{aE>-sJx+F$1hX=QenUfAV z(eYu)zy5_5r%tw-8}xlaX6oan`JFF3ov=IO68d@8afUG=k~ajNem-Y1SQW1%ps`r` z>P59V+&Wf*jsT*^8I#{`k#bMGY&*|mi`^kN+2^(Pm*)DW{%D(cBXe(f<-GipypK{d z0vL`Ip4gaJ5C6E^1IlKssN!C85afwuRxb32{us$1=WQEC?*9l9@p;sGZ$wW(1Pp3U88 zzu0U6{mq=&$j1tW-jCakwr|WEZ2Q(VxYE0K=wr&Hx!3w&mhlV59KF!;cn@t{1UW=x zXda%gcp?%sYyd>^0Ly9oO_|>ZWku)$yX@PNP8_|Rwx#FLxyEVF@^^T_PB^&rwJedu zgqNK#U}q zzSoRuLr))1q>l>V{~qU2%NOl!ElxPkJ6DI__0Q?a`Ln2xy z0w8z+u+bGD0CO-c`C95UaW`ZaNQ7N5>dZy652U(={ISsx5wRW4^%|vu5%wSr{g|q@ z^AC@nz}w^ZDFc*TF-MBlmEch0ijdk3%O0Pb?J_?Pd6KalLwDSg`N%lnc1V+2Z3aUH zhrgIbsonL17=E>s!>kv;27(}1i^NdDOz%DjxMl!7Vr{Vm*q*z}4QvXMF4uvN~vw1~Fxl_VlN!7mIQO8`34IfVQG)C4e9EiV)IiAxCBS`?q zA|zploc>HHSl5sK`zcP+MmzcUD?IP=@w{<_ZG)4t#XYLTu1VfF>gd8NwI? zxDAQZz!i$Q#A}i=FW#enR^M@{)RWXGSjMgXoDfkYGm*3+tIEZ;q6BF8+Xp;bdCS5}cFAq+>XhnpYD26;cK`cVL;ihG{aq~g2cDwzxBJz8QjDD4jK&S|B&6Nu)1k$P)P9f?4FZsq*JUEF z?Q_Vs{Tq_fc#%pplw#{~q{!vUZ}pzr+&aFVhb5hsAD0I`ZK1xb78VJ49 z=s0%2*6%BC?x>pN4YRW=xy?+rs9w|i)?vKTMDY7!qGL7PG^x|1+L|vTdndo*%;td= zTpC|Ldv(7fpJ1d~6xkapvrSXxa7L z;T4PGD4-H}kKO#enK{dDb5eEWgP^U;&R^Bm$yQtTiDl;`7ismLwO;se)kk^efC|&L zRDHf9IM}3$rp}xW`uYlU(^EDlS4!>{<=GpnomEbbh^{Rj$l=rMn!K1EFuC0FG^TB1 zUUP5!wvN?Q)B7dd!hqo1*!sB-qEcmq(Y*5)swSgJUZVSrg?}AG7JcWPnG~Hh~L^+ z%0n3Se)4jJZHHmIUH1i0rOF1>ujbqq(s@Q;Foa-5*eU&GqP{O(RjF4uMl=;S_Z~Ml zuiXD>VR}Q(SRjPEs?Kq%E`R%-@{cSMW+6_k5tE>n_crvMbz3F&apF5T9o>dIwN&ZX z=yI!d*QBOXJbz4nO#Ceyv>qE9%?szv;(3@2Y21bi6^1rvl=i~sSo{XR-gpU@SvlQY zZTa-Q6IiWq_AI6Y@N4?XqhUl?0=iXD(o7COZV(19_!#HqxI1_5*a3Lxxs;1lk*Oar zdbdF3g{k-p0Hf`UHvko?6M11P9Racs00x9E9l8tR|IhR)htah{;q%O-W{!bMlJp>p zVp5nWpYSmM=m)`-_qJSIk5BY;dbO~uuPzO+tGh)QOnrz-v*h1&U%0XPa`=qm4eei_-uU~~YuC%u;OrLteXfz|!u;eZ;fcNLc-&r^qb&GyI0^ca8 zcMm#Rb$;{9na{SK`9Ko_wDH^5%H5QGs|gjXo`&y(Be&GEbT#+=`TTy2t_T|9TFskR z8qByzvH@<#4cqccIn2pGQHJS)poPHuTPYlqttp1`qcCb&j zfaQ}8y9e1ie?zv#5U%H7^OeZd=Ob(yqQwD>9R$0($+;76xhrFLt@Pt!;!b=Nk^21d z7PSle#w`n*y3in|9?3(;a-f!-@ZhN(Y(l_aU(*gdtX2?%tC_E3vlCipa4A!0Ky;uPFcEJnGodspBZctuc1B`_xl14(ZZ|)xKKt^I$0oZ&opy`e0+@MlWDB&XM&~iO%rK&b% zxRujhpb!XCdUZ4u=iIWjTXIq3ynx@*Hw*l%c<9Tgg(<1hfb1cka(Snt6Y+d}lZI6S z(v6W@u5H?tN@6ByuY0U>d+-$9t1?tE2bQ1L>~HTrkKKk)LZ!DQm*)c2VJzxUid#sS=9d!Nph&*y0|#l;DyL$* zmbfu2r0F<$Ie%V-Cdzh^mp#&Z1g-up5QIWbZa={PxkU_^q1nF_`Sg@AmoV=VMFK!!E8Ye zA-;j;_-?EahU{}lg9@~+{s5>B3Gp1t1-SGJQ090Iax_1m+vOH;T42_)txsCF$>lU3 zF;yq-%PVj77wEXGZTf7}8^p;bee9#B!}pOJ6-|5)6*QS>*n7=2F)#Bz`=`k;Nn>PD z*^(hEzATM~z`kXE<{AWH(=tGHpMw)V1$rh(vj+UrtNbV-i2`S2~v)u(M61=gsa=;*|bgII(fxY{=_*X(>LTl$Ms3UvlJi<<5UvI&B2xpPe zMd$Iq%?*chF+dgHL%2o?;lLG?h62NGSOWCj1EY!M&fXAJKN2^zYb>!H;#Y3Cf+fEm zuM~(}@v#ghNbYtJYn_XaJ!rKO-U2U z>g;hjYie4u+|T!(O_h7-1RtFYB?B_}9X12h8;MgM#`fdJ?@tHgj=$xNOdS$QOgKLE z>d4V5BJ#IYn?>O`_3Vcs2WJ_MX%*`6jR zFCGKNq4u{Drv3-(m02jT#5U(oT}yPu%e(_?pFJuMN=PnBKJde8Luck3?{RpV9%yy| z9U3^jd4APv%}2cJ=i8T%w`x^-9*&npc^V2ZO!lRhfOv52f)XI<_JC3~hgkoloFw=| znM=Hv>Mu%+++a;Fa}dqjyAD>i1c_pcV6RfFwA&bP;291XyMkuwRfzAsm@6loqz(ltq?@ zi0q8i$Q5`mgPBd;V|TM-e&eH$Ume3X99!iN*n6HLf4n4+Jr>|VnI7agLL#Km>(Jj_ zO->VP*y3AKag@!!EG1|dY+CM5gi9cUnO?*+2JW&o7|BbI2Xl6V5EcOEfS_ZDsG$H~ zTLVVm9OB=CPyn#P51%x@4-`%)j~5HKb1*rUlyltV)SN>AYG9!A$PYQbqaG7+D#!ea zCyv~g0JbWnn^(SQpG*(1)Y<*<2OE!r)By-3y?|+cgGAhr*Z?#Nk|8`?2D*_&&NhQN zIQ_mIg@fsOTdu>SFc2?*jn#ZUGngy>%xCfMOL< zl>=&Ji2941Ws&K-Xd`nfs3Mlv9mEHce=ko@;51PjpY~rpCC426o!O{>ZsDataD>PC zr4;55JyG-`1EbVbY*mUrlD=fG!=BKTJjfN2-8klCwPcde&crp5S5{adyH0e8&QnRuplS@x_Hd~iqP8F>5@~^IIxL8BelfP?cRC`Cqm|Zk{ zC{?TsU&p*;^&NgWo?d+c&oG`ArcnRj4CAM}!ZDhf7M3&JH}4b^vb*W@6ZFLu;`)pd zkk;^Zy7q$#m?L#bj1w%45S+oNe#ML<7-uIMWfWevT6+0=@Mc_05~pXSC?%zwm{`6* zSmWGKRaE#9DHW{UJPg1No*y>|8^2$l(={wBD>RsFxR6VF1-j+qkEg!9)Jx}Obzq*G zXxJddieI+{+)FVs4eKf3++kW_U3JmFHz3Y)XvwV2;b{H&-lKE#(;HT_CEdfsEZ-+~ zFEQ1}r1i3|tV`D~iu|*}3ugLsjKj^JI`BN%1nML8*-&Q@+KDtir^i=3db}!c~oLk=kF~OvEG&);3GWpHYll zuFV*^LErhvDaJ6+<`yZn3ZtP6T)KFY}=Vm3f$#SMrGNj zW2H2o>4tc8drfm!vFG>pclytjZdOr{N6c|EhPpJ^K!;bZBKZf0Q|WHG{W|Tw(7q2= zf3YNf!cj=w=cV_F>XTUXP!WfYJ?Dp%ze$Q~K4V5C_=DsldY@fbNHpY!DZ|Z<=!lT10>TuNlXp6#0* ztu1_=e%w`?42!GGRA=QmlljHG56#Xt4s5u;@0jw~4#6Bh%v$O+nepU{LyXw=o}I(n78-ze4LPRCNS-nwt(kR44fHgng$Jb6bisO z)gUR2SyS*8{MmL!#YAVpLj3H7Ds)ayC!OzLK4M>s+R)Z^_{e|^gtS!l~m;`7`2#Go)qV_#_NN`{@Vg2QL zR&&$OaM(3{8=c~SLh(I?1^!T{6Y*L{vFDA2nJt>EwJNf4k_?9pvNUYHn$J^3$oV0M|Sb z9eW7?)pA?{RONeAZ7vE=2icIWRHe7v6lhrFBuSGcs! zba1M+;p6g^UH3P&wFbSMCZ&}rbp8hw_?}|pN~Ep)<`$L~EnTT46(k3*ES9?dzWB((HSt6_*?0mx9%yx^p~@G@BtXZvZ1@L!%FQ^gES*a^bLVpo zPntJTxI0d@$1*We6V>>R)NM6;-}Ec5!)xi}$^YFwqr1R)R_w{>sbRZP%Mev!Oo8FE zZC%+4E3-Ae=69Ln5xvv%fCc^6$JR4;{pWA=&ubVMHB-wTwf25MVW^k94B&CTXO4xl zGk07FEn%OJvYC*Az<{>>f!2$;8`cc_?$Io+4J}Q9^*@A zS{@C9l$)h~T$m_2mHq%@;gMi|m}sE@45Tpn*UkrLR{g5ASHuerYih7Q-FyL1bu~a= z26br2RHT{5|70$0=o;>}AxhTI9`lQG{5#SqCriDcoO`uz*tu0uRs&-rI?!@nsC2mr zp0tI2q4VnGuMxHO^H&5T^>j^qEyjuQ)&=X~i$7MzSvqb59Jga9R$GHLJhfF-C8XBL zuHp!Ie`FSi9+Va+4ToK^|M8qoowx)(wpa6Iz~B`Lp7H}#cS=fx*=mRMF4UieM`mBX zAYLwy;rk}GW?6+Q5&(+OJY&kEb+d0Lz*9g!XHa}!5~GeZ@(7m$Stqbr8embPb+jju zvnVS!I#=$l!}a6vKzH>$#j>3&J>?Lvqul7FDt!s>8^dZmvtzXN$yn~XGhozAac?tE z(7tp$$QWKPhKZ@C#H6xD%0AfQv-w+4Y=8R$edc)ee(tKs;xGT7aT`Q9A-FkY5W@oc zD2U$G4cguSBEa_@l2uVGPo}uhd=S$MR&rW=evm6!y2B0&&aVGu1KrhDKu@?<^5!`_ z`$@W)j303H`@sVb7&*Infy*A33hF@u;~7zOY(ZVzwkI>Ty^}~z%qjW+R&y*xv{*o* z%Q1^2==Zob8K&^WlIuDP-_89=6?-<5vNL8Iz<0C-Rt!+M;=o2O9XxkX*%pmMT%k{s z!%fkgIyY|Ia(RzY^LARFRB(B=;@rGsH`dS@egLC3|Mbt6@OHM>!xjd2?(A7l2iIIG z+=rn*o29=h*|unSU$byS&|(4(8%TZ%s(@r;JW}64yc#6213Dof?xKm*g9({59-;KY zAI=(K!AFGhBW^$W&{}O)nT>M@*eF=>3?{{H92MGdWak$&)^&a&%Oaz<>!%bq%noJV zyALLJ>@y8Jg-Gkq!*kATZEo)5O-oEc-e&}$(w;_?9xo8h&^9p01U0~ZW_COS*}d_39^Ss>M44;=K=Y94(PI=f@6rj zD?|xo7j)7b_4dH<3YAW5&H|wa&j&42UC>l%WbRGAr*)WuOXY<6XCe$wIw6%_dH;rY zc^!tiD?c(@49j$OiuQPAznOieD2wL4=OzIMfctlj{Nyr^=uIfn7BFn)ri#KPZDyM9 zBO=r-5Cf5p&3Dq_Jl{2b_(VBOI>n47?uI2Iv z@lDA>)6CI{7!yVvlmhguULa86l?op2XYhWV>uA@>el({atdu(3qG2S1v%*{I!>uIe zmQ6DvU&((Cav*ue3)L?g>VV+pJk>FbgVR9X;k9S_Urg?H$_`+Q-N-WnaUPtPQoc6} zv<`rxCG zyx|a~y(ZeN%bjX}pym?nLvN^_?5=%9V%D$}x?yv>f^I(urVmeB6R~}x+4&{aX#LY; z3&ZrD{0R_iaMXv(P+BbPx8__URoeE7?$Nqbm?C=BlbP*U$QEhPqbVaN8rX4QvM#Km zdhOajUkjk3-g+nmf}0~_h;xKHxCn3(JPS<*(FK~Np5j;W00ZX;)T(zv*$i}I&w;A~ z3)~0%elf^k2Zz@@wIpBv3Y~-qx{A&4-;eu?DOKS@onP@~Lq^8cDba_5xgqfm4g}F# z9rzw$a~8wUequ+y7;#Ac3Zb)(8X12g#n?t1(XtjNw>jl#SNqO?iC-hjLYIUl7O&u) zQupt9LdA*f@PO4Xtb)jm=Wf+tKt=9j)?Yvp6{w{aYY9!-9C{tBQ@#uy2>j3_vsYbe z4kZ1{Y%5QDj9Sm=MLvka_6U{?rGS{R5vT&P&jF6_elu76PiVWk4<)*R#25&(-T=ue zlr{hbYTjO1I7Bg_ZBCJ9Z&P>EXwv=HVfYTIZ=6 zFZ>(?Y&{TSLK!HO=&`u9xn6akzJd;#L6KEBird>16_0+8Y#-~mivp8CZV zkq&TfSQK)sDD%oi(g$op>6$M z_#oipS~{f0$Q?JtKfnUC?&}@&+jirX>Yu*(oc)}Ru9a^4l#;C@r!w*M98MI+#~4UP z%z_d}#OFq44==JQngA~Vy99>8VGK&T<)}f3nEgQi&xOVXP)PBmO844M{$<73UIT2e zLIujy7P=+-p(^k7Ch5}3m@ba{QXAjkb-u1J0TAiiLd}Fi&GJ;6Geu67vgf@Z(IKzC z^q@H~5XU+6EZ^~m;pI0cJ7~$AEo+6qB@qjw+^z`@DP+4AHMU~^R zE8_V>Z~yT(Up1XoXNksZHjla$>p#(PfCBFQG2n_o(Cq;N%gPU&5R(eZy{T0wOK zC2MD)a?R7c`X>6S&icD8B_#?~ZOjQ3ssq8y)_ST2yG)8FH|X0DwRFvk)9dPXk&edK z5(iV{AB?0QV0g;t_5w)`q5&AVLpa#{db}!*o-SWk%wZu}3h0I>*M$LYa`{=TU z&L&gis~0Njhit@n$rYclDMs^Md=j3bsXb48`;!il{@pAAp4^Xor8jRV*p%BTzCDz} zb4~FHKIMMKH`+t&l;1j*jwb3~KFw}PkV)_v$41#hBNaRMwdK zjg>Mi1QWIX_MLm_Wm><@kD1hRla#~0F$EJ;P4LA*gREhOyqzqE4nNR*%GAngF+^X?Xy z#)TECGsnj!aq*A&L4QJ}(L!p6j+&8=ERWWQdI2cBU-vxn+On@sF{{TMXXI#|oYs$j z;bWxh7`zh@aJX_>JRvRClh0VHF`^~U>YDzY;qJSd1WQe=N#RuN)V5TUiuAkeKXeIi z%vVAqK9n=lu}ybxULhCY&z%bu$rV;@>8hN=ouZsaDiIH$Dft|vrIFJF>Tc&=tm^o| z7B2b`P%N$hM~dI_xwyaM60%`j>i8OjJJulhzzo;k^E>jtB>ai=+mT09d&CJxvjDnS z;@_6OPHR*2dZzD`+Rsv)IU8GUo^@YZivwC$$qyYz#*M%3P7V-+pY>zW8f#i(3V`LP8|W={51b28sl_moGoW@rsDtV3EH66<%95v~E95 z^X;eQe|3Ok8>Kqq6BDgDtl05L(>2D!%vCJ4;w^s5Fii= zgV$DuRESl5h64B}pPl!D$}{eMeqn*hIY|cDjDL~9u=M%F-maI=n>tFRqVi0NUO9X{ zh?z9s@$O4%A00J4XWN}$egvI!JS?WWH^`y($+>K=Ak;F*aq-n+o+evs;p9_5E}qik zC6>X`WB$s0u?pO1!0_WP!^-v@n`dhmIw9l{cw1%|KX1-+o>Of2@?-1!n>T;mlJBTg z1Sxz9!-al1S{bHJ>W17`m#g9|5%-xj`yf^kY`Hvg1j8RrOAfUXdPjuGacK>R{P;4Q z^Hn6FK6SG<=*nMf>&9)RWR8`P8hdcF_&m~BC~(q!;)HiJd}k2{7Cd2s>f}-lcs=r* z$okD|y;%f;H+-SB)A?up)~TdN*_rp8-!HK7e|Wx43IAv`^zqGcuRM9eDrO3_gn8@twcT{s}q-VMJt}b*PcPYC`MU!TG@m4}N-1y~bK{&v7&bl$e(55+LP~NiUL<9xT&l zHKU}QSGlv|W{h-T%;q4=Kh=JpVjpO3SC5=Sa|7E%o&E?`s;Q3zCFLbCqF35+c(WUsIs_5BvrOJe_&|W z>E~W6{4STYXJ=W1Hnkg~1mq_XKM*0uP9vjW?mHz3O!ykb&=>~Wp{nl4nDCgk2_^ck zFO(plIhr5(*`7dczbcos(%TIE?pqyc;a6i4Bpm~IRu7zB$7Efde58E$c>z(G%-w>e zyT^8PWM|1pN@}5&{v#TFL{Se~@M$QgZRxJ5d7%YDB*gj~ZgQHH%YW?Ugx*tlqTqc~ zTCec!HTI_apS69FBz-My5#Ns5uWdTG;2A8I)5eSws2+? zl!{4V1noTz+IcZ_U*A-Ir`#q7JMvPgAmsaiJE8)=4cn@E+o~pdPH+F5mA`c5NlTBXD&mR_4Bi_hT%=*g2+F9dHy3A12 zhNn(vc2*07Vn}3|$@&F{45B7-%Z#7tp_g6=yL#@jX*Eb{yr-P0p~tkSS4-S_ z7OmlB@Smw2@afO2?y8{4vysN-6OBt>i#ZW#a8BxArMJmPv>2w9+E2k9ZGhmzFFaeb z%nU}&W$!O9#$aNMv&G$b*j8Pb!tgt*)03bKDW5d%t?YTS8LE*bNI08&Z`0Mi28(U# zPIi2aZ z0tR5t88Et=AbdTwZhXx;x5V?6pCRRngq+8gTWF~|G?3KOS{+Z|>#0+x==GB#T&eLQ zhVRs>$F37h#$&Tf?Jxh+lY3ig@0MU|TL!IaD16viJd8!`g*fH zGFr0-&EoBkc~m(lDkd(9F4N^__|Ah#)sNY=%~S)6z}TU=Y$q1!4or*UgnjFR9`bt1 z>HmeDi1p@v+p!dz^ewiDc^AJ4EFr(+X3P(T?*_5Y_-6%qnCo7PiLCEfPCLnX{p7hF z4|l}Z6etV~nx~#97{?Is)fw-I6W^fFG!o>oIL|oDm*~Bj8I`qTH2MPc7HWb>==5Uw05nz*V$5C z0gQg1-N4@Iio1;$-Do^GPL!pOn^|F9&s(F6>6wQ7tI-%^?1q)K49{5G-qsrqi=sZh zc@(`d=hD@7jSU;V8LT!rd3-1>`vp^6!lJUwRymWSmsQBmFqL|!HO@m77r2iqFn*y| z{fiiW=kO$GM3Rs;4&9JgRG$*n@cG(a33x9De~3=}k$q@2g#9Da8f*<*Mp#lkL+|+f+zpXE`ev7bSLV6)XWwVzzl6r^9sV%G%{Rb}uh9_wmaZVmm&{GTUFS|j&FWmixBJJhL@Iu-g9eKA_&9@H>J{tJ=F;C{i z(SFzbUKlg*(07vPar929l*Ylq!EUgxBB7}~SK0BXqQL})z&6G4I=nsKlk$@?+=R@0 z)69bM{u;E-jPYb-e~Fx!x_IOvgZjRUI6~4q+8{o(u|GU~0c$&C#H0117O`NfcaY{6 z7G&A>#SFbURWsMP?6FZWyB8zfr;w_tzw0UgoSPm&g)91ADM$>JjhsTL>DW zLr+&tk$DiI56MuL^umJzQ)T({E_Pnnx~N#A)a~fGyA90{nj~j2B>g)?FBS>ER2=>) zLt-qs9nhI4-T|O+CJVBgUepW$Jido;kZ5l$hC~ip;SsplGkY?lDqkS@vx-yj!zryd zN1HA)R9+#NOKW+iO+8=HC~RRvo|^;MWQ98ojPHZHbp#j+-_)taq{$CO+?RO$S>>Ns zG9yxY6LM#XxVprS+)?^1o&0?U$wzjQrksmEbQAZ0DM0ON(M@2MCki>8ildV0Q4H@jhDeCSXlOt@7fA4B&*i))FY|3u)#+~emW_;Q`_ zvI?=uHOq`;xSdIvzNKNR^VN|L_@2he9DaPHj(wHp4A1F`vor%$I-mH>;3($5%ZgFw z6iNBa9r z6Rt^S0z-05?&XN9owvX(;T~CL1I^flx|++;68BG%e1ur{9>|?)!;RW;?AWmkt7W-G z;GkNr^BegJ+ybBRjv!*&4VKTjduGD)ACPUgPD!5gdJ2QjVvn**zDtN*Y4&7J!Z#hn zG<0}w#|CN*Jw(R<1|#EJ(~6uqb(VJRFKTFC#-ZW${l+O{IEj^F4A0gC=@V<8*%dSl zR6Vqnd!ar25ypLvg%f;H{wu4`n^hT+dqal}=Z0z%Nphpka0M#zC!V>TQUFjOp`{oUs*VgSc+aLN@I%FTXht^*fJZVq}kA@S2LTBZMbj+nSOO-90_A43(;p{aBm?s5l|Vw+^mS^(0vn#Gwk1W`)o9w6X`@5lL5*bS=r)2CcSn>`q7d^_OK<_a6QuV)k>k zdfMc+v!tO3eqsrr#27>ov*&zbZC}6sERifLf##6hF0!9{ulj{nlR`W+fgvEa<*&c~ zLR23|%zLQOR<#r{!Uyyo8|Cj=yJh4K1=xtKpaUBa78VwYj+u*EJK-H^D$Tm)at2C+ z5N!J>kk9Sh0GV@0Z9RmScmzER@FKz!6QwTa2%a`Hnf+aM)#wIN&~|a5Y)R~%2WV1F z`du5U9w5j*Qua6sBWZBXPoR>BaAbm?HO75Fw8%eiUi0n%5R3o*d%f_(vAU^)fo#Jn z*;BzRogFQq#uli6yRkF&SAKaWjT*T!XiEmTD7(x9?#o3ZBTse;YA*&2_i6 zH&tiuMdyao5UPBD{X;@$*AmvYZQH1ufmQT0jr&fHI;({{m87IM>mN%P`0+aXk~dpG zNK8>g?&72#f!dfW+!P&M2FtlCL3`^~eXOF(&-Y@yw}z@1ju#Lp$P1K*;!f0wmefrP z7cO)R7z;2Udgq=otE*&gxJFdw_nAMpO|kJ~J$f{6$%7G7Q!_?wMya`lMQ%a-&k)|h zfdLY;qLYE)#RUD|p$KyIT_{~MfC_9{w0>+f^*#W-@^N>cfXeh~ah?uU4QET6@MrnE*o|Ufs02 z7aLy`{GMM>K@|`ZI=sV+A^ALfL0@rnGvAxd`Vo1z$0p8IcoZKY_w@Q-2M%aHkmIXb zut1k@@;7lfR@_6hR{m5a20+2CZgX0$#C7oTSVhnnrKTR_Yr^NH=0Emm$xJha`caS$ zIDdmP8gDwKxdFGhn@%kFD5ec-K^(KS{~?U%5NEl zpp$yHu_Ghb*?O z*?zw?oA`GEey1vovJ(#!M~Y?6P40+Sv(;3x*T~6!bbHOn5N6~p;Ze4zF%JNG00_eB zRoN1xl)78n+Kz!J16@{YTQ7&L6j_-E7)K~reximt8~B=#Ciw1{n#3_adi3a{Be5~g zp^RQzo%>SqsvA<@%&Pq<|95A7yN<|>+O{1Uhc1YC4T#o>{90!iwZwcYGduoB@%FHi z1EKmY?c)@Wl;{_Fp6dH#adM5e;+|DG9Z3iJ4CM?Bb5tGmuI^6e|Nf=tbk78kYCRaG zUjO>x!TwJBR;BDsJj!WbxKoHQ!_!Qf%gb(wH-tmZ6ex|hHvWl z!aYMv{2lU@IJ2_c;D&M!tv3ZNJPSyrzG$c}QMm--PGTVq7bh^P?t0HuHkjs^u^`6# zwA}P5eq2-y-+A??DTf#8xUQ_Cj@sPLSZyTFP+lQ6xV&^MV~>k=xL^F6Jxc>$_|%=u z-?7|9X5>P8hsHUY)WFp2KrhJ0sQ21}Zj;F>$bDkZFT!PuA>mCTTC4OYF+37uY;&UW z?Pl&dy>2z9%bzi8_$(S;uS6V8vc4Rv2ffk&kx4fpT+qlyhxIFu_q`mCO-5T*R@N1$ z>*V^%F^pC1=MjV*{(V?p~&Joz;qnI3_?S@L7Pp>FiEFAs|!*|-Lc>s}eRz@gQzx9n<6f^3TsMTX$TVsv@=5l;g&uIqFFbpT^nfubo0m z967>{9}?}wrKK9bk9ZM`oY{1luacMZt$4?Kd5k|>7wnlJm(LlFnHgDkC!!Ym)wiZn z{kkPfzlw)8nL1^B*zI+4^6=#uVrxw&FeF4dy1tG+>kqpqDX#RI-&zrB@2Eby-K(9+ zn#R!GTw5HU7xCMYcj|G&Qq56!LYI%8e`aFZ<-iTQMxH2Z$shDY55h$ciK=e;9Cqg? z=gDukrU(h)krCIp&VA(g&Fj(@^;C4)eX98@^rV-nG{;P>*S>a!DIirk+75Hac4@q4 zbR?%;&%`O?+xLfWS{6c{iF^Fyqj&S@sjZZmjVY)`Ir}xW9+pBP6w(KDcor?hi*Jnd2{PK1sO z2SZ>Eo$bKp&sQfM4tc=2B_Oa&O4{h^>vvl2aTR~xm0O~tq+_J}=Y6&5BjosNMEA7`ht{-r~LV8lD!|7HgrYZIXdd5aW>Gc&6ZlAacbSUY!P*RM^5C-g%6J$ z2%M)rG|53cUW)0KbQ+}SD{KLNw}XEkyYT(kTfQlhK76AuZ3XwG8Q$KPxb|g}%u9Lc z5)Z!GL)C`*>+fye>KIykvVCf9#Hda38&7x1Rz9JbclwO7)XL3QwafjqH;g=kq#ztV zU>H*TR(#4MziV4V=dV3z=;bjwoaWv%e^U)-KmRfEq0&pkzp*Izr#oh?4}Qfk{O&OF zk)!kuJa35AVG3~%-4+_-YwHC^ujELxOV8Thq3-gi7wfr&KI6A1W8n&+nWGl5kMcfx z)^S-^Wkzj!)1NqbWS4Y9L3;k3Go#bhb`xDvTIe6G+Js5;^tQRHM`tv{cR8MpAw6ir zr_2LLi+j`#Ki-VOkr7T1;*Oc!c*k>XBd^VK8TY<|%w?J4Bj4IXOK`zjrICO33_na< zOnz|M$gdbVyg1S5VY-;c^*$=dn2jFu@RZymJeW=+smS@`riZxW>~;G`mafEJTDm#! z5^p{ky@gor@a5YlEPgsNqNZcHuc}UjM}A3vL2I+rh)va~{cb~1Piao|LSEk7OPBn4 z&M+r<%pG|?-{oq4;~08JPF}f{lL^%v?UrtG5j-14A%Bc{+H4Z;~ zvC%{ji67y+KK3)}Yo*1eU?SPNayK@pq|{NA0A4UJkMi<1^vyd2H<(!dk1YyBm+eZ> zplaQdLxWC4t)s3r@By1-MkWX@XzrPnKRE^p?rd}bm)IG*yEwT5TPS3E{g|=FX`lQ@ zBU~7rCli~}HFR|gT~aPyytwrIzb>v@g}-DWWw?w*1r~_qjdSg6ZM%9ihm6@IIyMvXl(E@R;%(C!ZQ zg%3py0Vb|2U=YV*(=g2T=#TdH%Q61G|8!sXM_KlmTlCtF^XypPKQ>F|F_Qjk|MkN+ zVQ8^m@+;@(Jry#c3mKX{PmV7Aqy{%+J8G#QwaQ{qn=F#HWZe*NKy{ohkOu&vw+W=B zKp#2oc+|6}O6QDNL|FeT6Pr{_5q_5;wtv*a($R4m?5C-fh^fGUngiV{VF?9A=$Ybq!SxGf#zV z8i1E4R<#=b5*k#TVm1IY&P&NaB8Y%fN`%2(j>7$msR@qEF$N=j`l*n2S4CB$QJ2Bm zj!9E#{mm%U*HPoCJ{83t(nS|8 zy!yg@W2Q3d&fBJ@o z#-Ynznt#AYsBx%nODwSK(U3kQqrs4n`j1!5efbg-v9>7jgA&ZxFpuAch=sPjxjIi^ z=FB_Pcnr}gff?mCnO6U0?qON;&Rumh5&+l+>eqta2C*R2pylTV0=`J-o&JPiAR%q@ zKV$4W#8_;F=+UFWK8`(y9JEX z1==r0j{o=~+31lYYaMg!*qJ&ynS1UIMxXf(k?&{R5@&q{7fS{XF3Lq z&(bFCRY=uS-vgvH?$p$nBE}-cb63#q{BGUaU6TQPTNlfOY+QZ)q3)K-JxB~nce$w# zw4I^;Q~0IV`SX;(L8z&JyPtx72(i4U9+Eg8T^YHSVn8KYT{p)#$KxMSfO7y1BRrL~ z-&3}L5qj;~wQ$5LwEVyw*=BG5SSI!ROrq9Wr-VTSgp>#_T$l*7CK3@dvTc9f=AftQ z4eI|$=n5i#YQ_n^+n_d-aClp80L6gzt^{HtKyc8h|3HL6yr3c#BZkR-EJtAV7s;?bi=8`+1^Ax8+$ zd$=(C)b#^OPAx~bhA7o$KN#!zZv51_2c&c5*qZ^UO|H1QYNF?o0cfp=i;KV3ltY-! zZD-zqMk5z5UzVSCesOhAe8#Wn>p(vSw_ufTL6&R_a>CaS5XCfwvkR^4ErVc<0#A*d za0?S+E~^ePGtShXuE0CT#lR29!xY>CE&40W4``@o*HkL&qb|tE@#$2($g~6Z z@FtxAu#2#VhsWaV3b2Y?o)lzf%c8H`YWC&>2kxZ;NTJ8RVs0qDa^=Suljmj4E;$e1 z@zfY&uo`~_bDH8`ICpjngdI0<8|UaLTNm{p6xW6!*aFPovhVDqSr~m}YWpvZtx-S` z?LOk@pgC}zO73(~l|x8UpuHc`)d~gAUR@RxX3?M=tiWPFb25Y-l}zUv1d?EZCkOL}$(FvykXr_Xm>76#fbIxqq! zeGt1M!mV7IQB{lLe~=r!W$_;2&Cip=TJsw32!7uyiwc4Hr{+mM$4vyGb=+LmK}Z<& zeM&j{xkytEJuh!eEglmo0g(AHGZ2qv_p9r0Ne6O)LaaKt81GUF+P=KRL`ItDyWwvz zK|g59VK2q+k-I&J=7#alR~2*shZkni{r9ybDq+kgO`Ny__+p>T)-if2NS#IOdwH(z z&Se=nv|L-hGU4u2o|;M1RoXnSAE-jF(EV2G;QP8!dxJyFK-3~g6m-BRd8;WGyE{22 zr2w9pkyAieGq#J@1qB7;#*eS-Gp(9qhP7jkM>>dQSU%$qhI8g#kHKOr+FL7+r&aZt z)KL#)OW;@UyqPJ_jR+`NoDIDk<${imBT4vpC$D3b8;wu~G^TYMh()6XWD^Up7zngm zqfL7IMwZ2Exe1=9AEV(7+a6U&jse&6~ZMhsilgG{3xd?b?sHO}BEtdxPxE z$e}yRBhc6>|IP66}PL1xIcd3ot!gc2&k$Uv9))pR@HH-R`gBTqN!wQT3 zp2`^j7&Sm5>GE%E8Vz{GE>F~te?5!L-4d3yx-?<+`_0Ufomx$}iPLmu^F*uZHRWi( z7>=wDv7QKG>WnGJ19JOygD^uaFS{~VQG;)5nbu>NFAnOK=zRxfgR zgidXP`7;5%q|;i5o^F**l{72ba%LH#;dyK z5`)Lu8K<(Q`I#I!63qk^=VP-gM|hRRy2%XAZcrFW6AXJQH6)9xZ!O+n}f{96(F7kv$q#H%)M(i$gQF}v;+YS{j zAdHi(^{I#7T)j**+?GNKYG?vOb_j+Aj)Ko)6yu=QydnBw9P!VL%KbMeZ!a2z`&s?% zpSwoZtQ1s6v{9KRWJcW})9Mn(GIY?7DvVmP5#<5NH&8kmewxS}Qpd$TB#cDLFp;43 zk|%+p?wBC!XDrxGY6@f($M3nEcy%A)&5 zi-4C|lo2iOhPVX#p5)GGUz!f*&>1??q97C*H^T8(!ak`q7L;UY_La}!sChMW;*9Ss z8|zk1t|-j@bF9n_Rp)8b4z84$A|%JGcI712<_2&+XRNW(+17Knd5mNjYzO+S{CVlh zm16MpZew%CB-o5rFt@46Ff6G)nn;zP)(A1c|8vCrV3fO=tp46sr?je66&abhiX%KV zgIDLP$59<8xG=@&`PoH=y1WiEc=zsGTZ7l!j*OHj5srY*hGm;vI9QRa{n*^ohMG{MZ@c3@`H(o5ficSLDL%sWeT(I$?rbZ$e3o#Cn)`0-n%pL5=$~1SX>;x6mt$#G@Yt}(7qX~!vLkkRq&w`ZPH49Uy&ocL zQ)@dsYJN%qH1|5)Z#sT|I|FrSPGCuHN7Cr>FWoWDGl;c|tcf-oF;o5Sx~Ar}WQ-_k zhtHcm=iA(#j-&bJ`KCIO>GPJd%9BRWd4x~Ll8>_~F-pr7`ipkmZFWlTzaArPy8Qgh z+pu7QwYPcNymimH2tC>*I(4Y5(QK{Hf}rzz8waU{a8KpXc9y3=&;kF z_JXlON447*UM}Q#z%n+@U9$P6DKik%wlV_|M*Q`V5G!Pv(5o4n*i9%1cD5v;srusV zzyJRGCiamu|9GR+qH(;ufp6bxB8u>}2t&XUh>5&7+YJ$KTrC`PS*{nG2Qiz@5E7h# zeDEZ4siT44(J0u99WRGgoZmD^nPyj)Wbd2su*P_Azcv_yfO2fyj)G*OlM-5D5^ zS@Y&uF$19|Qi>V>kF(c_N||T=Xnt3TJDUS1I0^Tm!g-sQw-Ti@tJ!&fUz}x}yJN?W zEpTYBFy&EF;g(F@RY)v^3RP&QsP;{_z-@bht z+32eL$dY<#Ut!vTrE?2qNl*Pf@T>?N(ETv<$%~sER&ZQW;HT}_b>J(EsoQJgc7&I& zZ+d%A`H-GpQ0u8$g1TeV%{O6_8MPK&_3z^>6W}}tVPnX)Z>jkFv#$@X zEV@wUCQ&@uD4q+8Xb1I>Tj&lagn$i8&=6F<^5KXw4Y8(R1lDTY^4vtD%n$kT2rm~E zs0}-cgwof;XlHp8N^8^8w8z$nVbV1|+a=v(3BRka2W$UX zDyTnO0A*eD_Ff5qWhFxPb+Q8*pisbxCG5j+{XlG4L5SOKWo2og zUFBlB;*IOqx7|8FElXQKEJ6O<4j^rc7Ch zLMa8X*9)A^D|=pQ07F3@s#eJlQ}!SSj4tPCE^xalt;4X4;pUlw4{8laaSQy-RHzHQ zg9FW{s^gMu$Vh*KaK4~l$S18Taby&O%)Mndh^qe!7xml(3f#XC6Wu^Un@5jTgsYDp zN7n;8A3gqOu$j@bG5+s`XehV|fYCAee}T0|KlXozjyn?ne;qpAMWA(oC7dXo+p--` z>Z$ct-|rJ3vb@@j#h4DG$Ozx;ExbD4;V4j8~|vf=#$VF z!a@t2%n(#uqNpGcSPIM<^uqU~9f$om;O9*UJ5sbnT6XvY3nT=-i4%2UwQ!w#oG=d) z1mfmTGCzQ5(DnB$oqD)h`p(WzU%Y%t#0S;xk2^M$RR;i&<*G&z%W}-v@c=OMyZcvw z-y)~nny~Ms5$B?hk9unlHE|?OMp$Y|6m4P8-3}y! zXs0lqDsHj$%e=Zf##G46yAo+mw*pk>b>+zyXtKfh{IWZg&Ax+erlc2pLNV%m(ULaO zHvYXeJTdz;71VuGw9=vGWDx}ZyEUrW7jQ-)X@q6;|io_t9fQJ=A) zm^8gHm=WUc?iPo($^NWEDF`f$kG~R#TSag(q>YcKSz${@=y?y~=9y6bP}#U~;}4Js zb3kcgst&ZhqzWlMRZb>)^{Tf2J&T;%d-CyV@M_?aim?D$zw5Lc7w$}mzl0sZYwqao zN!=C6Q4wPiKz45Wd}}+eo;Ce0iv5;wFgTU3TM{TI5b2$NQYSPxI0i9^RmIb7XfCdc z7#O&sEOlUhhBzhnd&Cor>Jhk;eJ_-3Rva#3me>)-N>};S)qsd!58)5m_kL1Y7#iOX zF(TuAm7vtXK^qr>pavod=Lt<{YC1|4_Xt(Y9{GeoUkvU&-OO&_ya;rFsW9=sdXPPL zVhg@1qId^#&Jqh3{`IYYzLLErrqJ`5vt|j*pC50NIj9ffwGz@r2!FzJWzsg|x#^V} zt-h;2o@jwzFG*27^bdq75^dtfI+{8i~uDLvh5kAFx zp7JM6Ij_N}288F=5Aci~3tU)BQJ+(JsiVT>4A5Ks3rd*Lo<$Nr`a2&#UTK%REamAF zcNCZ8M!k>^<{)QqI5or$?p9nU!u!hRRRH~Lt>n#fd~F}T+lqeD;#j_#a&W!!Qhvi7 ziNJz{dk!hi%kBf11c6;$T|6ZeaC8Uzpmgh7{}9k9Bn2>03^Px zV=n)Ulzh_E)Z~^MtUeaeK=;o+kmv!RqD6WR#M*#d9zTBEIt76I3Lvo?*$rTdmRpH> z3>+W!hrfUS?$)^4y5bNI505uf9!5_`jh|t08~OjNRk%xEQaC*VkL*>I2TZ2R>%)5y z8&Hr8X_lo-=6b}+CA6AhHU(UR0Z|c||3~SgyOa||&*^0TGd-jVf)^ z&fnea`O;mW zJ`_Vzs3iM`DE>aafVL8vKz~X$&3C_txUSJl&_trE0y#iESQiC!AD*Y`syAlLnES5M z8@iDwe~6km*Y0A2ZUmTbtE<%ueqjgQl~U;#MAf~Pcof)mc4lTKQHDXLj&^FTayeJ6 zLW`5+1WDds$@cpN%u)OL!iCS_)}yKOJD25>s_hk&E)`&znuh=GNy%ifK>`kJJ=2P~ zr2zocN9yB%oB-6X4G~=`og8>dNqm%CYEVrCkVKX31q5^slRFP%!{N2=C5cEFUfVSy zlm*?C-~2thG2_zy_OGwFxLhRSd+QX%6Ka`g@?G{#VcdiX+LC>CCZ)ggR}=~TNTu{0 zs|fHy7oI&J^4tq*Uyh>cSOBYc@lvHEB;M{!TCR*OfC?vpI)cB!-yo~JcX?Dzi8RVl zamN9^Lmb&<%eD}YgV}%&NFQ!sT=GN;*fa?FHm#z-wDlpg`~udaN}K9tgl*Edp;l$b z_U$wTQ6wXS1z(o1?@amS{B`H2HGr%99_4!^2toh~rGbGZI{?PHA|$_Y+WB=JkT9;O z+E-_faOxpaUc1vAW1-#ci2`)$8b3>fR>O+NDci;5rXAbrR-IKq)^H0@y zl>fxRz_2>p3SNTjZZH+V=<&ejy}RZ(_dG*7C%IICzYevp$KNG?Lg@@F3JWdnsczuw ztINiVs{muvgLFz6W6}vf@pyci3iZT5GJq6PFdJr{7`l^wkdr|)+~eH?)S7}6K_3F~ z0A6}`$9FH%XtD)U^uG+X2Yp~T#b zu~Cd2F@-ec02zrdUc9*4)nZ;tU6j?KpxA^7 zm4~_l%GO>#fTUC&z=g{W17ANS05;}HvCCglXC3z(qxJ0SwuJrpN7M zl;M_X%B`+AwoZ1w!xto74l;${38cik9PYLG6cc#;0CpSw8d*{&EwQ5-O8&HSFV=*m zpxoifNi~GiixHAhuKU^qr~6N z{zUWK3Tr!9osv~ZoV$D?fIZHEDzSh@Y07>1@u|2o* z_?!S}%VHxL7Qn-?qK*yVTbO(;)BXWtV6XawUH{>M50ivK^6UaaWH-)t@4C)BT$->i zZl7%aC&UkxfXS?V8nZdG@$MooP~vPUDquJtz)so;C2}m{Ux3$Cw`-$}lz#<-n-Kox+#NlRqFa2G+zRO6b6zA?vAs(Pyte&b||9+)Q`H z6WJllusVwZU8YX{X4G0yHB0SR{bCw6c7C40r+chfKCP_-iiYUHa}vTRZjD1gt1x?W zy9Z&9F7I5oZ<@%OnqQU9kiM#zHt92rX-RiX+^vu5Dt78Z}FifwAp#hFM@tlluQAoqN zWj_dJmrRjMPfO)PWWvAiF)0ilXC5oTQN@OZ3gH;+5xbFWHUOgvB+a4^A1IYqTDpr> zgb2xazBF9tyIE$v_3zh##Pw%JZKxYrKgQl0C}E*W9N=9aU~{QDd8xd-e6=HX-riEh z^HYT*AceFI{$&xV{sNq1Sy+EM0Z3kq1$)2j*w5E@*1$-Yn??ZIq{^s|NI%S+pBCc| z$I&sMW(HYIwD(xlkk?&?tLzc)SMPYc_|__`TWmHPjk6h4FoLwCKGLp$EtLV%u7!UP z*IZd?v}Zdiy6gwj5*kT3X*==H$cIM&qGI>X3BfKr`JP={YQIo30CFKHsf1LP^rs9g zBd!1$3=b(~6C;okZ3;(AbwL;?LeSKW>TJmc3pC)l^qIt?+@mD(3`l~efAJU}`-?Zu z9L`h;<*l%+CD4z7UiM0mBZ^c_!`XM>xrXNnnH}(^IzJ%lk<{4%Nfy{g|0*nr?eo=F zt@`AUa#IC%i%1&_u zgO{re?yl*Ff4j%7E|0iWL;xhcF|6L5K!b@!g!o(ACZjLHvL6xtc6GG}NheMS)VeB2 zNom7r?JVtUPH^cwNX;`~^Tb4N*TZ&{Kq71r>lcV34-dY(MOrb4Hh!UlM-<=@%lg9G z?2b$miy^lv;_AFmdO*RzlXB}DOn1oKc;)*|2sb6xuC1A&Kla}Ha3S`BoR^A%W-}kv z2&gyuo>*p)>5}*M?J?tBvwHvwtWJ3&`OY}<{1 zbKAv@!RNGO_tqo6n5*KPa4-Gkex(PJ_3+N3&XubhAVo(8ffhJLK`@2j+D>L0@2##XTvrjTrG zvSagZ%DKf^VWAm)ed8FHbRtJ!Hebl|{5VTT9Tz}UROE&@PYZ!E)aKrG);7I6WB*>(^YnKWWs%U0^F-~jHC+5(ZnQKzN2|iSHE=lsv>+uQQ}w(H&V8a>`(iD@+<8 zd!{#O(j@jh_>}?m6>JnC<*4i{r>+?>q9^Wu&ct3ZceQmeg3DJsXeUvsVG&S=`U%y2 z+HS#sVJQ7-T_R*gLP{(P@nc+-ccU@YNYHA#S=&&wrKw~$W@q7wg@j|3*HXld#m_w4 zP;{R+^lo_Q^^D)#_=z_=FYhDDo|dx+90bb4*&T50S`FV75Z=By4xv0XqtG;JB}O6! zBldRAUAQVpHW}vR<>?_p#e#^JQ+&X5Xst2^snL%~2$#8|Xv1dHFIzFtp|^($9KinQ zoW|K(7$9%2T#f>AF&37?(iIbp9v`~iSiK>nzu$;+&I)u7$(_3lDh4Naf;6?MC~(C} z&{Gz_@x7-lllr%U9tYm`%IN*kT=X&z;@}%1v-4VpV-Z?k5J6{GibqG)>`yT4n zr3#+GNJpW>m3@zD2%V>Je#7(aJ2!T`?n-VLyz*#ip@Tsg)CfAKe%2MCoup&)*`}4K zo-}ZF=$Us6zHMB4G0F7JcHYPN9(?A`9gsevnYBSu`G=vjNw8i;i>0Bz<;+HGH090n zGUy#4VOiPI+E}m*^Sov&piiXbVsLAkN*{zNb(yTTXwi$}#_ymVWv6(+l|keZB^P@f z?i>3abf2D{dz}tfKG*H72Im`fAmN*8sMSbJ!n6v-%+T*ABi|#Y7C0>7;j|au3;CJRO- z&K#Ba0!&p^V`9>AY3O<|r=3>c-10DWPKLTPhEPh9>=8S^>#JSPu( z;%jb52s;9t=QHOmhL8_d`g4*#ZU$|*DDcZx^hBIj5|oeRY&2$HpL=>aFU3w~L&$I$O*(0I}QIkEXToM$l5H@}`U6~+f%Sb+V(3pXiz#;ldH zziB|YPk!a1+!xC1uC{vH6Gfyous0bzUa4zrf7UTr|pB7upp6=`Y- z8L*7h;js4eDiswY(ye5I1E2+6hU1m?KY=hs!FeV}QKd|{!3Y7y4p?>vXxaft-!ihf z2Zj_7ImveF<)2vK&-3yD6!H&Z=Idd%zbF6a-|#^@rYwGHRlW)k>Pn70czr2mTJ@v&C_zQw*7Dk7A1MU&i z4=%wwd4taw%ausumMB!g@q38kZ^6c=8`>-E3P?x^6N;+?cSU%$mQrW`8js&@#wVJS z0cDfoL{2TI98NR~VPf2JPOFovt7~X2VBEf*c`%fX3QmGN0iQ5_-7wUaSc$L^zV;Ch zz5vUy$Lp|!-~mzTK)2kI((i*2!wk~W(J=^9bANpB-Q1FA*lz04xoIa>4S0e%T}~ox zF6fpiw*pdvi?jJ_b%{;O}t7(?^zj)Ya9AUx5^eQ7$tO-m6@}NtD_+#zKkE>AI!NrA}3+dE-Q;oxi0^<9Ft$)h`xn=$R()^k zL%g$7Q-78_z-`vMd>P#$->P#p3v+_{$Z=C!WBku1Ic%7rZUHbGF_~7}VNdPDm}a z_YxVJ*wpw!5XVJFORHnoR9?k?3+T$t5)x|oRfRxzbBI!MmU~D!>D5&~Lm35huefnzX94yywW^|APpXHeUWgAH%L9XAoeh!)*g=hTwA=TaVdB@3}o7K1Yed-ho)iKMHYG@j{JF{iCAaw-N0}f$Bhl=s zxiZZF;5VsikS-E+G;<6*@(DTOY#?QegQWgswJYy>)c$Ly8Zkh3i5t|Sl6chqRHI3A z4^o4p)mrA4M`si~pwhbUoz^#kLnT>>SI6@=+>{mExojs?UG&EPb8e$g&!22aHB9A= zE4Y&F%j}z{ysQ5B0MCGZL)$^o*r@=3sP372WQnboGDtOysOkRf5hryZNIj*?XdBkS z8g4D}$el7I<^Ru%z(&9Gf7vqJk@)Y~GS0Vw1d&oW(6pUI0TvO7fq?+3phf&|Knas8 zoRBDkeGLI+Ltx&#SVVG`CmG!haMr|L57y9#h> zj1f>Ofg_SJNQoSjDbyp9_~2(?5`_)&FhHYUnM3{RxRVD1^GV0evvY)pmNgkDY(1d4 z57;h}fzG(2G5Bu8Q%KB2K#t@PBHy`+wg*DpsmlPNdDuUGff2G2jT}I_)r9OR*uRBf zYg5W_k0|kBJWr2M-fFyv&ww2`5|t}1{=hf5_z;s2$sO1SEGvP$h_N6o`B(<7K}iQl zf7nL$DWPbBoO#bta2~_| ztY3hq%f44wSjf{m6<|10ESE$|$-*^vAOw(v$O`=8S20!cD2BFDT&{Ayr0|5;g9nnU z#doBBj>xjwTzr(Zy`^tjolV1fSN7)p{v5vbQMKQ{YqG7Z)@b>xddxL}__7}?FWjZ~ z-{eLL=mq|Uo9^&to)f}v_$i+i0i1u9Z}7a=mExqgqdp z|HCX&u?ey7A?2B-N|zt00;r287G?UBk0?z}}aihug(34S1B@uNH?9*D$UltgYMApO+KR;1)20l%{E zA$85H{soszn+;(9S)vrWF)%bPj!euNFF+LbKoXB+v&9G?qgJ-O<7cbw#U^)`$tqCo z4Mthrm)*bNKpx5QT}s6<5DUwFY>m?}UU5h|ASZuu?nc39zl*K=IM3)vP0QuFV!k&}pOrnwt|}hf2)BNq?YoGlL|J1@!sVF*Y%V>iZ9i)G7Xi=*U=>E* zB>YxlZ&4`l7_lu$4FPK`MnP`#ziAYRZZzeH{qJqiyjrep;f|B{AEi4P2wPAkjv@!( ztVyYJ=?~n)dFCl&-UNbvEzZ63zIye^fBuaKQLOD)J|L|euu~ZQ9;1!vkv3W53!%&4 zVd=oJo2!1(?RwAQs`S+ITIzWS=}@>Vs)mcwcO7snUR%3_G9hp*^10e}C9$`vYxfZP<(?dQtwUw^%~62;BswfUh=$e)Nt z&8TWU>tTDlvCnYL8BVscK+m(bTgY9Vt{PSovDskC@%nEHa!QS7GN!v8_*~CZ^1SRy zwG$(B6ZQPVQByf*=7-#S5fMm)n-B$r3YjrCauTJ}az~vUhKA6>gw92jzefz7jBuT} zl~n08=gEk(0#EIYEanlkyxzyAR7JzYQ`Oxs1Z(`Ds5=>&T>0|c^UfD1-VJ?1H5~3V zLLEF*2?CIuS>1)Kf;Jm3Ntb@xep!Qfh}5h zpX_o$?muzwf@BmXt{S<>h|^i?eXYXIS%&*d&*g1NX(OM;|AoulC8-n%1F!B2?0NxS zU$2g)i*H+pwZvX+n*Q$&EQvlbBzRn>4xc?dhHHSFbzP>Zj>xlCXI;Db&$&IX3>#PH zh3EDWn~4$L5l+_{IZPLGRa?Sd2ip$+rp=LifssESUH`9Z>o&|Q4>l5ib0szMNT7&d zhS#X8ibY@atmKKrYN?XNZ#pKoeYpQJ$mRR4HurzrR0e}>n`G-3WUk_{a{9apeq;WJ zLzaKL(0};a|6|1abWn&I2^Kwqny%;_53X_nGG1$S>xwlct6DNboxfhRjp6z#+lC!{ z4B;^w;MGW;SwHHff-0(Uw&_E&lphxpX@H$cV2KWsXyj#~q<3E?tx1j?If$*5fS*y2 zR;}7waTn}{0QXb$L6y@ZgTA~Q)XH*WT2h|2St9=)Ym9EDK8DbBKl!`Qg5)mX>1+dk zN*%&`>dJOefyJXClKj;l+*Z6lgW!C}BShbU8O8A1&PhFrL0(%XefnQMY z0X!X~e%AV^_S~eFP;flz3HI-3ClzhSK7fTp%miSj<7Xlbe#?_!!O)kM_0QQKcK8Y3 zh^jccqh?jaktfWhy>1gaQ|uS1vczR`?Rf8e#1_iTezHpB{wCqwj+ctY&%PYwc&#M< zD+x3X8^BFI+QR{jr_WQg&hBuVKYKP;TN7JL2|$+^MY}o@u_2N0Edn$=$Ig!o*?a?N z=n@J*)&NN(z3*Ap0D%7K3KH|0ozOoZp=z?O)ok9>Yt@g=Y}fzmxpuH>wQCZCj8jQEjmXbuNiCdT&cPvDL{B3yJ#GsQzDJt)m!l%HAEZb`SBD$9zyl>lwG|@HQj|K(zDU*R|EqJ&b$Y(uX zoOJnVe1hRS=^x=L{OkWyb&PKoLWz~gIyP55M~yuE{V2p>eAB0wklHMQue=DZxR)OP z$g}xoLAilcOr!w%CO5&4cvg4IlHg>dg(wPohThM~CkI`Hxr$FU%_FKP5~q-#Faa%E zA1lo$7vWh17_0>2Q~f)(ETVnF$1mHplpfKBehM-z z>V$tGANC}QtCJ*fDzlQe#seGv0|-V~A_YLbt>DitV9C8MH6p)@QDcPEB^yXGsx8YP+le1X}!;u8!>=E(F5ABQS%YbUx{hTAyRCO2IqAu466!Os9x z?RWF$u6zN%D{q^kdE+|$-t5}#rMii&T5w~DrDRTl#^IEu)>}4wi3+Q{^T}AWV29y= zwBMUfJ;O3Sn-lJRA)WcvOKb*=qaqznXt@l%>*BX@8~WnQjnwv)_kB6>%&9dFq?CG+ zi$rz|EDuX37WeKXNO&yOwUd*=XFO!uI3XvBJ=FdhE}Lg>8d7c~G5+Jx8_^FtbX4y{ zn3s^sVgUoAeNKnDU!TLHJRj^G@s!*U)mFFKxPn=~v;Pn7|Aw(cK#!Z_;1u7K4mWr0 zJvuI71wkGhm26>4$xD}Zr#$fOt=_EDUbo7x%AxHs5g91=gIbA)f$|nV$U~==gg<{e zS0bJ#3ItUc4o4Z1jM4Evi(&0X>WFF;h;Bkgis-jC9{oYc15wQi=_O&h8%xr|EFXbO zHI`DbF9{7}LO!;sRwG0iL5hQyGnB#LWv8P6{HRkDeJA~o5%Vjmhpm8Wa1aOj%5Fp( zI`CZxz6HfO9ur>*OoA3U?nIk0GSO6^wKJAZM;{@Crllg4B-*$+0g`Q2|J^_%ly>F$?k755Qz@e%_dAIw_ACrBXdvE;g$13DlYA$ENL z(a^1Q=eV1hGiRmP2p1t$L2uIYw~(W5c=+Q8to#6Xk8iMQ+##3ICbtVI0} zYG96~=@2yqQ5*RPwMLYLX4uq0`WrW@hJsIYhBN@+6iJ*{EW*PWppH)E4^eGc_l5EW zDtGC7$cy+h(Y&TQKT*NC&2*}$O6jNJcxpo@QhOjVYl39_5V(E>EL6H?Kjl;W&HavZ zBM`}%VUwGv1x=ch4Uv81UO)980x{@4O(^O{LZpp#=u85P4Lw9*H<4}JikJHM5!ap7 z*w6tf2HJ?g%wPKHWJL@u=o%w6!P4ij<-foXBRmcp5mA+qvF0jxkP86>iVF9=WuGC{ z-3_-d8aL(`07Mmb#FUDl%DB!KWBwPrQ> zVdVr3=&Rf#A*6uU5e$uOFxVYu9k!BQ9VsSY&ACe@K(r8sTQvBpe2`yb z=zkyZP?_#RoW}D~7Kex0T)ukqCe7FYoL|;<% z0SbqU)`K#cf<`AeLz})@$;+*5sNKSG_|lV`7{gQ2-+yB-nQX?TI;<@Nco4X-I4dqo zX33H_$y)+sj6bH@S&-1LKUZE+Zwi_f2$^Yhz4}9pzUFxc=>}qQ|JzrF1F;pv@-G71a+7fI5n)%^4=6EfuOPdb=r-PnI*wu`ua!!;<>*Rf;dE-wJJ^clYPKDJE1XQzalQEM?{m>?0YH1!PmGAC!_~QzWP< zQNWKz&D-b*jzf}&O40oM{UboNJA!T?Tx-<~-Y?SR5(GI>Q3w#CrXMZ_BDe&R>j`Ec zLkf8Fns25-bt-hZZsRLNF5sIoMUUPn%;7^20$#<@oY45Zco=vOpGaLiDPILGq@;+g zA-n6Jfd9j-1w~mS071*&1AWinw_JA52eXrQhF4|(i@G-t$8vq!hP7I)R;`BBAf?c7 zs}Q0n3eDVv%u^_12qE)OtAUEpZOmBaSs61|LZ)P%GDH$W=FH!IsAcX|TY>5`H0cMC89r5;_**gb0Xs z&BM%*UPPod5%e625VO4U)^isy^fUJj$<17_`k57;*gz!a0OHHw3S4ugQQ`-oR}R5z z(wSZd1Z1x1^Z)07JmDxUJz8kt8Qt$+`d0pbzLkWs*o9n^PGm2_pq4)g%SH4^><_gD zlstdaJd0*<%F1)Mkb5m6GPQV}*g)C0FCM3@sGWQF?o<0P4C(fRQAl3~5*<|hdn~-z zbb}`N`?LsrwXf}xAA0aJsk^!REgVd!<_LHAKWh6uh@FM0=G!qo;oqu9-n_}=7f)1U zJTduYI^mr_jA>AfQSIahL5ma|&{~Q)TRvmVM6AukZx{qxxMK11=MShnkA%4X)pFa9 z0=drZ90EcLSv-%+D*0EKXvc+Qt=jefB9lF_fi#!FlcoI##)X}KB&;`g^G4}dtEu_+ zd=wx3WBqzRN@R32!wbnJ1U}X}n1b$+f22OUyuX-Pg|bAJ7=3X}2wygO%<4iJ`-?n_ z$%HY9H3!C(otF9TJ{`V!liJ+0h>TT`(5dh9@!xIM3MKD1zGSw!VcqDA!qt!=^?iSz zGD=ofFVkG5BJxWw3Mf<^gEL4ONe3rLF=y8;RmHtMx~hDaJR)7L)c>e%1L}YT4V8J7 z_DHf-j;{Y1M>(AMuNpB#{f$E6H;%?^@>GII_ceJ5YXP*RMf8T)OF?h&8s{QHG(HfU zNNx&Fu$2#anosB|erQ|X^dlTq%v>Ix5ynU>+ESF2!lPYGY$h#&u*>(Hb9)ayC20jy zx2#uygRFyHK%N03jyVY`Ngm`vUrzs%qyE>Z$y2|r0ByHKJ(m!Kws31CfGtnRwT#HA zkx)McJJK%U}v8A@J`vtBavdstA43j<@pQS)co?)l&`?o`WF)UzvoX$Tt+#L2zwFzP1w1zM|)f#Oql@mxcS)OpKC!! zM_IPficJjJG2yj<1$7Z!WlBJUd;r!F4+1MtgC4@KOiSU^(#Nj4-BDl7i@A5e6VyPq zBC1T|2wI6KEh7ZQk~9m5nr!Q_GynWb)7Divo4Y_FCqj9wRCsMqKR>_NByjrJHF95& zARgTeO&tIE#L{)WLFk3B>;Tx;_?@z_d|(%}2pB3QS2mwmB{6~d^#*AOzjR>3O&7s5#>uM9U6gXMlc*ccvGJHvwd`4yEM9yJt@=Qzc=;Fi5*Y6TxL0@{A}`} zaNL)BO{Uw<%^vrr2(({wG}LtGTF2fPeUF!ZGQ+@4EC>mjI1LrX%e`Wr7aW}T2ETCl zt=J{K>SU5;zjb%Oe zzzFU;SoY=*miN7}69PI@{1{P%@4FTSI%edlYoPc*QkwdkzjLpFiPH;pFZI^~Tg zw5t4qdhO;MVkazia>;h}o-oht?P~Q)Y#Qy@r$!yRp=4a-o80!v!K37?p<`9E1fr;~ zOiQ6Mo#LZs61&iswud?c%6no%iTCWx%-()Tt8szsCLzyqe}nJ4f!K+m#p1~{tD%v5 zB3$!tSof+G2k$UuHf3Ol<%{~{y-_oV?GdNua$Kc($iT>0WJA?oFU0PLE-xJkaW&P< z&?>(XdX+V6Q9YerE#Jy(Oo*8wc0x#>8$U9+ju=ony7(P~Omxg_GGTWjnx@9@v2knU z+N2cyD5l`gHzPz}bKQ-RjeL-smuEToRRvw1@57vs+|$UUpM4fOOW#8NkC-_2`0q+e zN`#`sNKi=HEWi!iZ`z(ax$fs! zB7Bg)cumgc;mzz(UcXc2Qu3NY6`2wQ5ckR2#ez0-F z;r?+=)NsVoqoboK`>R0zU4V?%;Sdp>+U6X+E}wyuIor?O)ZS|G`hN@+>X2 zjTD*Ocf_>aJ3Krb&AIsbLp`NlCGD5VpKX5m=_W$taC(o}f57x|!kmVwOOsnNbqTwE zc$JqHL}azUB|V;9DJcPT_W^ihLOp>-MG^@2Y~Z)dfKnOSER7SDfCf~1Ma0M1X5G$- zr#-x&`IHmHkWt8YKI_)$VGhCC(`Q8)pJ(vo?qQ`?SM^skpR_(@TK;0gC- z-K{FUpc95)ApP+kJ?Et_$*Ssua_ku-K0`LF-q#VS9KCocW#+vfJAlZAwTnz*X7D%ZX^QfY;J ze!ory#y+#Y<+0*slk#kZ_yOT$x;HESj>9Oi%R88quAfQkGrJz;LZg%f`gOPYg}a8A zIb3+F_k7t)uaLP4@%`j8EC2JEFZZsT72UchY&itL^u(?^X7DZ$uy1`F@s0VPRnjoOF#C`);)J^Nhen3#xo*u4bsnKN0Ot zdckjPW@kmulnnU0ShI-J5E2-&TUzwiezKm>lW8>LqsS>qhfLE&9?4@rPO( z%c~zP=C9j0XV*C+lHBxfy?%t^Y$Oi?;XE=#$UY9c+T6mz3+<`sq}3XJPj>Ut%kz!$ z#zQNPLgN7-k?HWkzyF=?(#ncw63c3$B#CA+84y6u8|h^q_Wb8Pp6C59`~3n{!T|_) z@C#`aIOQ=do%W@7oG{mN{%=P8_Dw=A4>q%DrO&}cBb2B`B2E(sTRi@@bF9uT^Mak3lH!OZmT^qeP5d!jiWV*W6G0K^X-%oDye(Q@6F@#&73c50~1HC6MM!c!|>yu4Y zQ6{(A^PU3f4BCgqq?QMqnmMJ@%pR_FGa;#d5H$qO^V21X?O18Q@@7QmrLE4FksA^D zh5;6?4vOkLwA?S zH?`{Vbcr-1HF|Z~&A(8ja&R@41q{V^cv2*<9xahCPM?uJRZ`EWZ!KESC?{pT{Pfj^ zXbPL!oz=NR`xaB2GWyo<&B$G#O(4WuSnH50%^>|*ySbdK^B14B#+!fDP z<(gYr%RWpl!)~XGRWqDX-_KWM$o=!coQT`Zw81#1r${GoyBOW2hnynGVZqb6zkCz> z`;G26zW=;z9{tQJI|T?%OdL4qS_rLVAmBs*Te$Pm_NPB$1PQIEKS{$Y(i#fYk6Y81 zLZq0<%y|kM>PKWcaa-4tg^XYZ2#cnz4AArwu>;9y$!vHgQfNhHMC8EB0*@r;6%u#+ zjT>j{4f=m$k)5ZeAnkj+Fk0Q%*vPyTo6yNVMLI^5EHRsxMh3X!MJ1DuAtlaYIrKpV zK=*Ugr9*TcXYcL{{Lq@hdlS8{@BZ;K2J~Eg+~NBLLZG7<0DX+o38s+g6{yTM5=vI* z%VqX=$+CB@`nilY?jXILM*r{V)Ra=JY~+D{4BKXZf^BG^TV#c z9Cxt^jpfmo43uDB$~tPWMrf{d@z-9=ak|K1k&&%&KTq*FPf(Tym94ZR`TqAK2OETq zcgBjWl$A@EJoS2L#YTuOL7SFjf$dMp11=rH%A1>+J-6O^f|he*F`rUeSXgM77abjq zj)**alJ^XIKuyIH9o4J19Pod+f73pMRn?E2cQ9RbNY%^x^l8SSoh~Ih#>MwYZ`eao z-BtO{7vm|~gLXn}8jT)C^wB&I8CI5><=qb3^YB+Dr=B5QQ0Xd}Dmh*#(ylt>ZM03) z+GKo2VvNFY#ALWt)jU^o)4b`Wjd@8F*5=-ul_d%(1Nw?+UV?VRr~ZD!S|?l4f)fZT z&}y$WeDM6c5FrjKomEy{!G` zoXUosSw*dZ1jJkO(KR2rcwR6HUl z`QF-pV!EWHB+v$2D18v5IWnlSk4ks~IBwANSnIB<2iO`)Q3L;=H$C8n`$Qa7}dBTZ+KEZKF zjB0H|-o>*sN}lq2H&(Yi+KiYjEj2i$x3*6qwkiJi1`$7mHjAb1<-Xj_L%Ea8Y6GCugb{3w# z!qZbLP+}~7_39*&t>@NPY}QPDl1;wTzIeLK(|`89n7~Fm4_@INYYGout=aVFO5z|O zto*lwKu;BM5JXJ{eeT5C|8NlJ70^Eyg%wfr78y*OuNGxNGpCukwY3sp6f%ei?zrsW z8bZeb$427yJ-JLW<_S$@8I;%yPfxL{ro{}k=f&f3^~2_|D?fWeFuVgQDgI0){`-PF zJUmeEk#2AwMnkk{N@ay<_*?c^JE2v5-4upk;9fn3972#tbVM53;C7aQ$ z8X+=L(3cpUm{7=fnD!R1&{HpPQU~~cf#9TdF$B&kudlCffBO0X&Kb6b1V9B@%&qm| z(LRTpI)7t+f^2ir6ik>2lj}A~o55x*ftU`c!czuie;+E1G+C9k=;FQS>C~o2DU?sl zy1Cm<@RG)sU8ON_%4WmuLUPlfP^_hbcgXjZ;UYU97)9FP7Zg9B=Wv5M!d4R#lj7R; z7Sc<-tMsimo0l2Xy5$J-a4pRC9`s!ngZ<>SYqXB2Ql3NGxf>Xkk9{=r9h&!JCc>`L zE3FxcDoolTN72uH1d#E8GNR`$#+#y7X^4qC{$<-tTR{T2y{q&~Ln40U8yrWA`-oH! zp5j)T8~RL3VukQvAcu0u!NFk-noqT%-nV4}u?vsA0~%op!F;@CVQ~n|B?ERc&Fm4I z+}=V+-yod7PAi!|PB>h+`ru=k8_-G2-iwp;6i&)0NXWh+Yz`Zb2Q)=PFmy6hL%vq_v9+PAys{;*Klolf8Q5c8_9TxiYw-VSdbZP25yO$m!gHEC>aKz zb_M%PMvxt4+LS8I)NQPWiD6Ma4()aWoN@vJ=ieh=~_zBc$fgT4D)fDC$JRQ@)x&ET)h28 zzDx^Q+cSt9KwGY@ zoV&X_Q4YpZdhe5FPUUyA?jkeQU>)T^-UQr|1QJ9)y2j*i-ht|k&kQ7UKm{ji60%4# zXj7-C9M( z-SZz-0ko8AK{?T1BqXr2C&fx+L#%7Mz4xlKuh*6C{T$_&zWtzw-^$;9+pBh-J3wE3 zxwN!20hGu$p()oJPwdkg?t0RnOd*OKBx`=--%4hh5Mzt>FrY#ad8Hz z8@q#*tE;OC%vcjGoeYB7%;P~E?`@c!)!Ypc14Eb=LKBR2!}*4tpwi$wwJZxKK@vSL z7j<3+yb;#>gcy`&s13~4t<5gDcw@*`dOv%gxz%}kPHeRKC>Y<1l*zB@TR0oD9XI} zgO$_#gc7JL)#FW#jY_C1%RlDTJ+F(WO-P@Rjj06(5Rwp4`WgDUo09)q04yuctmW*a zF|`I37;3K(IJsYlU>X9J{KW-(M~KuA%Jph`_6W?nFSgBPb+W$ifqi=g4fUXP^RkL+ ze`8#E=?}6VknXD}6aL=0oLsW`bsZ(oItoVR5w{3aLJG909ka{ctS3vtMox2cm$?V; zQvjGJc9Rk`!DZJJl76N0M$&~Dfckg#Rr6XB!6w8c@`yIqvIt*9!&s)p^;k`8T+)RC zyB&jPJGrj+F3;7bgQ+EG!Xe~bdDN)MfK>wO!cTkx>KOfdC<`_Wjk#@ZJLYeI&mtt( zM!KW6ZjFI8gDaFFWQ)Al4nwd=(m<9W9J@>+aM?jJf`CcH>9|Ho1#0>TG>&k@gN3xF zkmz+IFCnvp)-nmo8#N}8(dIq9z50bQ8wwR0hs}ui85!*Z8e=~!qS)1YHqH?*oat^h znThaBh?m)WlP!^(n@gcWgH&e4l+t|1(AI3idZBAbRdi1yDWE$)} zzoz)ZB-!v_Q5YbcAqnqq>vj+!f>^k3H|yQG;Az=?|MnDeBwKs6w+=_hC2I)zaH=U1 zSytduBV& zR5&P0n-(~z-IrZ-fQT?tYmjS`0_TUu#v{#IcGbrR7>Q6Oj#ZiGuH^+0MX$hLk;k~Ux>FMc-1c|T@36Z&_rDTdlUd&b7c_IY^ zZtL6DRy8n{ufrdI0b$sEP@=WY9l(X zeP`vKoLGifxexn^SmU!ojXQ^6Ig*KfH40dA5JNhQVyeK=qsnR86<)pwQYqxkG~@}{ z7QOC>ISnUazL=>V8?AYCd8o&Wj~Ntw&D!F%Un_T0G$u#VBG9ocWb^H1*a83!+QRHW zH#if4CRgXsXSHPz^}QHa!?&qBr~`U?;UKP)>OC}dmWt_|_eZ1>j@ypLoVmY|cTM4V^T-ST z6#q9N6rwIzb3=RfXz?*87$C$1tSXx8CAv|A};K>e!$Nbp;$=MA0aCZrHeSv_gC9*qv51Wju!r+#YuJvV=KozG6@> z^^Xb)G9u?Y2jdv)K9Z4$cy>FD$i2l+xLLm*Yzc^rpvpQ=PXux|wZ78x45e9R^G z?FbGGd~Z@nQbUjrY+IrPECd*kq#)P|=s`^w;u*kt4i2IA*FY)})jJhr zp0yyh&evs-!+Zx;oeO7vBdhp+Bvj;t3>!ibju642*%Ih0e6EbP>-2AJSr(#1;uimI zk}io5vmWuKj{BMs^p056EI8}0Xzv1~vH)MA?*K*9bI4WQfOKw0 z`0tEZPX_hNa3saj!OgF2T8mTlnu;#vb`Li_*Dgl&(#V@jz2z;O0@>I$_V(Msy*vzs z7vnq5&c${Ix`VGFj3@@_?0k1`U!Q?|oP4Rju%lf<31+6hCa3gcPmivRt?f1}&LMP8 zJ$93cHUXA#4rQP<)MDfvUDwwjix?quM8e6WUm#77xYPv;i;9Zg2JpqpfcH&=tE7Y5 z{+M+ww@!fedDF4;$8RSm56dM#O-@eEJMHk%Oqy##{L8#Z#G3nAq4&IZ@l5USzP;_= zY%qbA{}8+AI?tZ_FUZ;dm%Op#M}Q}EO?3D6`X!7=h6<~L-ED zm~8T4Xn}mxlMXwOs#u$|mUW)}QRRN-gH=`bHtxt*$4*eVzmZiQW$IKx7M4(*2Nn4^ z{fIB*0bR;9BhaBx5%y&&DH90N)3C^45q;u{*RDOo*^k6YHUxNA=Eoh1%GKBhhYq{B z+3WZtQK=$r2d{3eAiBb6c+u~mTh=LX5)b0r2ke>bvnn{Tge?PBK?T>LR@qw!jrw7@ z;x0VB73=n+Ku!rt9}dMe)+Bo{#Pj}8ZDHYQ{GdF#295uGY7EP7fSL!5nUxJ_o>A{Tl(kQgdpTw2khh2sjWD~* zuz`0lF{NK^=B3tPX-KaN6s@R85xroKAfg$GOCW@==aYHbCF{tL1(bdiu-}Qsd97PU z6Na%7@h(Ez#ZeT@%E^h>DW#EdIh*npUm>*v;(94SQh%#6!2NZi#L>NNKKX+Ht%ff|!>g$Vzef#3do&O%obYSLz@%m#%$RQ|*WXQxvLr0`O z#K0n%B3R%mI};v|LtxfH5f9LU$GHE^2= zm|sH%V88&%fkI1ef*_Ch&sw-@&KVSne9$fx3t%$t+Q-*+5W>1X(sh<7Z^N^uFrEgC zLE58;ssP$a2pFdT&!nDZewOg-p^pYd8K&Oe&0cP9)7#L#gj58^1A;5dZWR;Z7P?FC5Q>r(S&9LIRy|81F$3F5Aig~Gm=Q7+G5!dS$v9XAd3pI;RkILA z6Qe<=`f9q<$JcksFiZF&lCA$5Drz_G@&u>|EdnqpC61f!33CmgD378;xIz)jPZ8^wBD1Frok4X!VrsIT9{Z^uO zhFmNjzKp0Pp10rhA;(%8pRGp1dKjt01@9Q<+xOQ3`xX>B9tWPAebmFpvD}FW+y<#M|?n(l!oS8EuJZn!XdQt zlf4cg`x6o=r)K^|V1ub*5k-{Ic8pK_bz<=aX|90GBQj6m(WYUu%jph+7Vzy>Ia~;l zrgKFpQ6WLOx}VvUFlyk7(sawWfS?pu#sFqN#;L|5dm{x$MDwKQ8lgkhff-D(4pn>c;2m(=Qq}fvLF(Tp*ZEbvz=#;}? znE9>`B4iJA_5sqQP=UJebC^PbOeICiZoG|KPx=LH+rIBX;7Zw{9g7|mM<7xD^&}}L zI5C7rBwJZ2XJFA_c_Kk$ErVSkvN^YJpT33LopXWPxyhhPKzpXVJtW`L^!F#X*N-18aO%OSR&_Db};Z_9{j^o zorj|R4qHGN2FBmHNBCH|wUxNC`=hEF={BgiRy4+;c zhQy-|l6C;ig&O!hOzRw{M|G(*_~7~skk+>7k~-q}mvXtQvuobGupIC;|6DO$$1hD} zGFETi{{&Hogx$E34?#!}TWn8uA{R_&Mrfy0S-1^JUFXY79j#~$WIH((QBt72_Y4ef zJ=&`{RZ`9%Emt7&g5N%#CLINcmWfhJSDXG%kG0MDDelbxHi59M(2Nre8&X4-y~ZeAcfXEjb3R9B^flm5O(H% zbcUscg}vSl;!VGoi4suW^nSqVuK;TJ(BP)XW2&m>19O-RrHxq^iztWQ!SL&ixOti;jemOBga>BoJu z;S`*0Dt1T>V%12rNuB|4;25U;8y$H}FXNEk^&uq$9^zB~YZHF)K$(`_bASe_gSD!* z75P>;{Pn;OH*HFZ5WP?4$oOl0Kr0HcRPBJrQ>5VwAJ;3l!sh0y?p^BIIld7Mg!nlH z+EOKD8VNAQYysWC9=c-XmOkviN&y<9I5*O+4BQRm+tYVM@xj^GA%|ALkP$LRg&;Oy z8X9@!BkK5kg>dV{?rZV?=0S}S8bXXSgD%gq@ zAb^aTAK4fVJ05^&p|9MF0tKXc`Og4j0Lu9@qnM zmJ|I7uKfD%f}RI_wf7~hRyZ(aD2!10K>5zL83{uU!8{C)ikCFdXaUlOK@1#1bhunC zMV2uk3zFAJXqrG67c(SM3=Y7^&`=vCLYCP2a5Jq@^Aa8zs@JYvdk+W_Geubgr`FSP zGm-#TS%%<%n6iyNe1ek0_d(Uzf&@MUxkp-IXm%b4fwZ7t!AV3Jr~EvOoFe3Y1QLAi zwA8>4?;ek=rW~VYu$>g(rAdQT4``YMQvxc`MSlZM8xfzWZ_q4iZmjoz25+*6@ahqd zk=}opCOLRgA8t)yP7HA(AH}AZPf+Gb)h5U(c%1|#ya3iT5nCnk0Gi(}0LwRK3q!bNF%&NcxjeJtU)q+rEM? zdTvq&wIDg;_T1*QWm5<;e2||Rw`D5;M$52s1NMUHQ}M9>F`%!JnMkDh43>j@6_FQ3 ztJ{E0QNI0@3G(FkyD#^C{kp?w2YG@wUpz*3N*eHh&>P_S10a?KFinOQ06o133@-gB zly^@64^aZvV+jjL1V>N+Z-mR&8QW$>gQ|ovRTkJ5knFvIQ{3}M%1y8VKn*@e3tA2e z*fZ&KzDDs zzCCF&T6&4)5_^KpLD~}$@?)CGSEh}0JKg>N^Cin53ap-MBa@$>PlUt>Zfx)JE8V^S z+IjQ8ZLanAt^TiU2l|`$`fPpSLBe8&bs*x=@GFz+R-It~{DX%>hyqwtz^3WeVz|r` zaUXwh0m&s(lAk=;N%rN_T~oSeguFL%j?~kg&=NQ*=ALA3Zl!=DqVQbnEFz|+V?;V& zXVDLCOYS8A@)+DOuz8|0>0&U`C%=7uHPKVPn1+;hdb#HV*bLA27gnrLuL;hX>iH6& zc=o{-C4^*REo4_!k#q)J_rIV>Y(%tD^6Vv@vQlCdAC^)2>6$*2*6L5px;vU*myAC5 zFmOL?8*T_65UVEL5qRDFgensK-Mj66fv(|(jR~hx)}5g3_w3MIF;+m?)Bltp62sTX z8#j9_8HjJcV2rW%2KrqE$Fn|tdE2;*j@rvwaGW=c1(Q18|6pmcF?YPj)!k$eLw2Hb zhV8WT_~g13FDvLV3XzdR%|sLn)yH{ibc%;p^J$*zDVDMmd#F<_R;0Jv&%# z!7N~RYUuH(K~F%(MtW&ka|EhO3`uOLpB&@drr(@KpEh?Ndu7eHP+~Az=_NPVn$8=~ zA(L>;+}XG5u(7hVldZXm_oBr__Fn10_?r&4KF5^SrDj+C=1~`8x{rOQrbb>zVmOz2 ze%NCR2;8^}wPYD&@#=h&x^SRAUcT>-d6A45jplw3KbML_Ds4lViK|N{_lqwM^~A;qOx1#vf8n<6i3KXLkjBt6c-J zih&$c=f^Euou4x2t&BO@7GOAM*mkCb&?sLn{Ad?=7Jo8ylGom0*SD^MRXG>8SaN4a zJ?xJ+2%p)~6JETqpK2FxERi}|;2vD}Wq5Dwl}EQ)o?ni|EGt&(M1S3d-XX`sT6NYl zpI!f2^&nEUXOtFUd~B+}TX;CI-ncbORDr{V#L zwJY@ewh8mXh8f4%kTb#7So(m&mhSn?)td9d+f8I{^n@Cz<~XG~ukY7qlmjj(893ou z{E*Qw;5om=(C&HLFWgM+Ugr8ZTHv*@_+oqsFdX&@|J3(snIB%W#>?m1?ZNhbnRfp3 z-IuO2SHFq*#5Y`cJhoY>C1HhpimcS$&v}VW*(DQ;~*c91=Glc*h!NoC)VM zYBW{MD<1sh742W6$N6M6AEVLGE!{1HChggY9xEN5zK%3vGj8~$EGYVgxPr+O>EE0T zT%SHWXwhnZa36-pi$k11sD&AHt@xPe}ahicjV7&11g%(P@3Mx1x7AdPj4r zVPm_RL2wI`Ju0y82tfwnYN2}sM`E8d4@e4r> z<1;of7?CtF{nAO=xbcYz=d@1Q6)y|tyLShILqcN=3hfN_So_$i4BSGh@6vSc?~Y25 zWqq*!_}pJf9WU6Z*^bAQL)S6JO3#jahMJlLz9FpEzxR-sf|E+xso?A>MW-7g6E@M| z4;VNp)EUb{MackuQSRx_iY1vEN`C8%d%k{(Se#%<3UNH3|7h(FesM?PZBbx?=S^9y ztWVIO-gdbWZdyFAGm)#E9~iMW*|Mg2>@UOmgh$!euf(HkF}ARk<+0ui)Up0bK5Q?c zT@ZR;F*m<|L`pQ>sO@5NicW*HoPOX$mStRJ;g`FZL~PHc$0;c$1vOXpXAHM+ zP~+579~7CT8_GA}+*p2n)Aws=4)$%f{Zz<0W??<{R{KuR*M%%GhLPrRswWf%2MesOUepu+;P6dDADi}lSCGr1U=pzp<$UpmrMab1&4!mRe~jxGU%Qr3Sk+k5 zH0q*2>cHFTO*3QfHD|ufb8RV?6gD1Cxf8%=`kWFwzdi9l|GSVsIg2<7Uk*sWp>K z4O7Xkm2Lumu$Fe&?R(RfGd1p%ykM7Tdpb|Gz$$FkHQsUMI)e}E<;DjaPkZmNS5*H! z_e#3@yB*Er=9O`bGd;?|>vLmfcRdX#xR%vER3`X3_6cJ!+ zXCKc}3&x4KnlS3}_|m|uDyhnp0ZOb|?-8A?&KV{h#_Y4Y)vGZ=D}GqCtx`{g{_Sw` zk=C?lUjW{Z0U<~<6yud37r;O}@DJm?oHF zdi&g(h3{-tN3GVg2-k7DD(*+4m7;Hb!G@l z{HZKiyXf-3s;eSKWk>mp<0p=6pGB zwl~x$YEfjgaTT>e-&i3@SX+y3;c#I5_>%h`8%yqv;2TtqM9y(d1uTa-!$* z*W4p2{r*w-zPe|x%Hw1b!$xNdbj%VkKw|Z8pX^&|9pmZ;`1=|LkM)l$8l|4mGG~+D z8Ol4WQ{%2ai-H|y2&Nkiv-Gz-Po$LA*DLgtc^_o`Ditb}%&~Y;?shgGJMLP+MjONDCsge zw^vkjVMz{3?BNfuDyG1zpK-BWhIY>B(8=W@EUX>J1?tnx9CgcSDoIIP*_#}cx^DzU ztz6F%(9)h~y(pt8yp40FR7-dIErKS96&O4^Z+B7b3fw*FcLj+7(I-Pa8fxf`(hUcH zqsqRbyYX=A=<|TX2@F&FX4j;C=0q{xw6Vs}F*{8os&^*Be$m%HTEZ`8Yn%dCGAl*emL2tLVa|$z5D2uOEOWqgbap$P*Ou{+$g_DZ|_3C&3_$+-*1P{CJ z<>m0h-@H7$u~#Q%zgp104OPWzBMnrmRNgQT+F1(#ygv7W1_|G6tLWpdg^YBhlnji#kEN z_2Nn6S?j(Ef9;UH5_&9-4aw2%0}Utbr&#J;sXfJ%Bz_epe<2ZL|QES!s zrmfehO37`W@D>iEneQs%?DX|- zVqh4n3*}gQAk#YS!Sf$^8fB{#s4{c39i`isGondWUY^5LlM5R}Gzb!aWX_rdb zdnU@m8SB|&5tclkd~Q*-tTG@+d3)pBZvEcH{MRDF+T*WoyELpLc%A110tMp#_v=oU zMjSTykY?Y(f(rKGKZffbTg=#1tlu)IY1*v3C!aalG(R}z^TX|L%gg0z!dchoS7~Zh zFAPeVUg@vU96#Cdmumi{IAZk`Z_It#rd#H(p~5@+rEKc+QpuE{#x~!P2{_k8uEjT z3SH@Gy2WmN6YZ^oeCFf7N`5zR7VewPr?5d;N55)iSz%k7Rzm2fp^$T4`HN+SZBdD> z^vnx88)jalY>_VQI-4+Qzw28Vc3Nagq^rn8E|$B$S^sAHmD&$iA6Ne}J!aVL%d~pc zDxc_Rmj=@h>{NFD4iT9u5-s1H|9f2tIA$@+KXbWejY2~68NPUhnw}dNirlg`PA)ah zH*uyu!SU5ihyE!UYe&A%D}9naoTy|xaskH7NhS9bUz}oHc1MPPI=6aC%(->5^2CST zm1vaB6Xf$grf;R5=X6@sBe>=-k@ZHc&a7p$W>FXS9dZMc!?9Y^HSAkGr62P~HOAKV zrWv-K)2-|Z&q(Iuo5&e{d9vQ1PSG^oC^lBa-F<9K$b9?`;<-3%o3g4S)(L|Tws1XZ z7wTv@((NRhWw^Hfdwq8H^&S?^iz(vMqcgEL3f6ZyylVn&CeE;DG%9Z*8}lGa@aVw8EaCus;}vm@O1O}rRQavNlP@|o{UuT1&+;34d*uCm0ArbSE+ zstTnJGMpBvzVm#~r>_36;Tr)_FbZE1GdR;N=XdMA?F{~+9I@zI1#pCBF&~= ztJ!qez=2n{?pSa~-NV4l!y~;atN!3!=G68=A@ws?Lqe9T|$!W^s4VtqT=z8f#~Qjx```=2PG zb5nu)$W=}lbbA+aeCVo#e!wfT-hceX(9<=jKiU0Q;KT}Xd8I1hN;AwvNLaCteXaN2@PdoE^VhrT9@|WqExbN!x!5V^6Fc)DB~M;lL**Cw z7i9==5mP!yw$lOsUra)PTWTNes)Lq*JYlm_u?81k_=L}yglgl z>(qRkhn!?`{fpfEu2yE;)QSGipQy^qfZcb0sSE4lphdJ=-%7t+%TKa;#l*HJc?HR` z2!_aHs);`4+! zMRsoK_13|{78+v=N$-)Ir5A-s9OL?#CUjaJF!F;Ud?4Y^cddK@~8~ZJQAy$ zV}jD+#6aBzm>^n&_C6_tS2Uk&t9j@CM$AdJ5MEChgvcyu2saHIW5SdM8XJN;F=A>| z$#P&sWU$5J1Z*dJ`+P{jHJRJOi{}un!y=~J+LNak`?JZOP4>~LWsKtn+_l|r--_{> z)KjTKZ z6Isua-Zve>fGRB`&-WYs?Gv1l5`GQx!VcdSzuaAB7D`_eU96nwyF7{#Xj4BaVUElS^l%8$#rAG-~6lv-83W@UX`k#a0G-LCU zp-k>cZf?r2F^0jPThga)p3TAg2LSxVoVedVTDI{?h3$iQneuflStTihNDy%yDtTAD-do9+j-F#GC91;Tl<%Ed=1`30 z;z#xiVcEwIt=zA)kkUWnRB)zB{<@i2^`c#YzAq$Y5Us=*m1NK&f^#NI;;YyWeKs1H zY$F+ffPm0!ysg8JWl{fu_V28J?)$6#795}H&!w@4M6D<%&y1u3PiV{Elps!DMrjqu ztBu6)6|bZ@3rVD4a0U0qo(~F6ydT-5Uzc0Tk!`)04^%`pncpcz-T#R4!N^?u%`{84g1dFlD(xca{3}{YR2s9HhsLB_q z&sNx!m7RU1x~9H=;nluuB${>;UknYWU^(LIJ1v8SSYm#&G>TK{{w@1Y8yR9$KPMhb zw=Z9vsw=OpCuyS0C(Re9@Sy5K00gNYQ3O;}-1+$Zk}uYmEEoM!IF%iP7?9s|DUY7` zA>Oi6;ogG>HEAjZV#Gb@$t)Jd40BFCi#9Uo2Z+rH(FiYeS)gy9<|7j5(Gi$4}{y3=$*sxjHfunIQYKw74 zL+8iviNZ|H;}$_(dw|GVET{*h=pEP4AD-$@cI&G(`lg>3(sp#&AhFmH!arKJBg8~K zLTiwdi_?aF?WixVYz1g!&{G;LH*7g@sd}N@G(Yp}r%jJHT8T~?d%C7d(292icJGrK zK=OIsV{E3UI(M5$%$1M7lromQ89v8;Ai#HCXq>M^MpY zdrN^wGjFi5DxXZ_)J$LJt}&tEkn;^xS=^Li!;5^U0A5i*4&I=Bs5rXrU8^P8K&??T zRtun6(mr{yh1*#TM-a#-#it++u*dbmnYEniSyG7sd4}W=6el+*0I*5dnO04`({}F_ z%fOAic7>3O0@^}TsSbQIE13k%&l>|7+E}!@q|bla)z=7NoocF%UXZWwL(?B7aMO== zV78j-?&#~|-`S`hlefx)59N?FD0E_gK(w4K9XWQVU;*!^7u;GlO*_z_Z_xZz;q0%P z7nGG>xQ8AO-=OIsSNU7wVf}s^KBsh(l%hwhsU8hnfsq7gMh=p`=yAFw!y>t1E}LrP z)D|Jkk{kXg^oF6?#gVYP70ky31lWwWu(YkpH&S%!m3o%XJR44&&DdWI2zXy6EMW7O zg>bs6sKjoR*6gZoNqI_N?uRk%C=bxCcUJ9r;O-7M!}>h6z2xrQyM3P%TeHo^eEZV9 z;Er6CyR>107)Oh?!m>RX=~&}h%X7q}U3S>RC02dlGXb^&GnaB#yB~elp1bqf!ybJ; zpUP{*MQ>p(9gd``-|w+V+|_!e`oxkFLF=@D4{h4ghxgtEuJ5lm1^k$=z(m%?gvFrZ zJJoR3PR_Mi3uKt|FX$hn%2dllmB3M5NK{fA`10H~>Lk>E=wEeqky47vL z>jROwPPS=Q%~x&hqg`vw=4aNENzdnQ2ppugEV+feANa)yUJG=Z0z{su^==k4>#sPZ z|Cp5({)+GFw-mC;khn&x+pl|LYg6v^}#VG)M1ff^1T0Gon z3fb5kCpnroS0bd;68)kn22D5fXVNr1Y)Vi-I&xJZaNRJQ=;VPJ%c3Bg%9>+yjb?4R zmTEw~GgLJbKA^j7%2+LtR^<97M+oQgW}WMga(dG%5v63Rop-Lps@&r&ta+zS7jC>h zH~j}Dcb!WP7`_copw;l~o>ykXr<89!fe)Lu^RMYY9)6^o zsWYyK&hw2_kl-E$eTM1Y3CWCw^-Ka$T4z_6p~jgoh=@DQu5B+|s^r<#D=5_C(ugMN zr#3|sSkhhT2WVBd9emSfaiFHeThXN?=)G zyMp-9=~;9*Cbv$BNGb&!HZg3E_=|$|OF(Uhi9CwWT*^^a$wv+i>;V(a#UtdxG%u^9 zuF^tQRA-L0&pst7Tbmamhfu3qxRA=P?$b~%QIO<6R?+wWkN^{b5D z-fY*i=Pb_r_p0AyIQ87z@>AfxXaKYuq9+MW^Qye; z@t#28uSb*tx+J1N()aRJVN2eWbe?RoFCyBYCr)}S^N_|q_)FY>)qRk^EVu07zO{Pb!>OU5>sHs#@ zy*T6X-ZU_SZ8xuMkGS9aV!p9-r^1F`_kEpl`tH7tMd&GuQ@~R|76Ysu7fBdo+4sIU zLA~L?<8-4jb5iEwRDZ6B$NPh+`!9X0FVA|7f%_=TP6cOxen*~ETo8&pm!IpY0el~pi=Hj4^u2kO4pVJ^$sxlA656?>|*mmcHQsSuN~f7D6Sib|*cNkjKk6U&sw;@0-5Q zwcscqGr#^nG3WNPL3T{X9pppTGRN9IY-N)h(jvuf{oA6d#@oS9EGln^nQvu@6?@zw z?w9xk2%lWrIpcJP`s5KoQ}7-0na6HF@JrrPRk5sWQkE^GVSL26xN?`$Gv_nzc zev6PU!|IIqTU;6`R~WWzNt!E)iyPJtE#dHOBE`w^nOTI>&okncQ}4&Np)wg|Zj{`; zM!@wgO5%J*ZD%_c535@b{i-&Yih6y8y9J8u%^K{HqxIYS<~8QiwWpi{kC#N>w+%f$ zs6YEIuj*@Wk8@&Zi;J3buHN8nE)Cf+SONiQvmS0m1#(TO$+XSuf{?1? z`Zx@#83R#B8R9S9ENJf=btd5#PHy_;a{l>zr~9iJDohPUtmbsq&TAzw=E;iY+nN(@ zgJDCI>*RdCDzc*}D@`}XWS0#a80QR<->fa$gqj53jcRj8o^kEeF>1~8P0^N}RfR-V z0erjqZk8KNF3!#aH9Z`pZl9=;DYGYkMoP|U?i`|7X)BFnY>^kvoj zamSFolELBd4)xwF1)!_BNQRoaF)DC~hbsHJxQM(5W1y_{SR#to3l&Z+nMM;a$@_wi zTPptHn^1$woPQa_8tT$48Hll2XPQ=%HFlD5rbyZLMNa(G$~I=#T^CsRG1t za{3~+jf1&f8A86LW?uR_42J? zPVi~J9gJ9K7&zzb)x{4)05;}&lI(mO?_3cJ6=rrImq1VImxlT2?q#iBPgD5~U*|%F zSn)VoI&I7x)aahBAxOq*3xIBJ9e@RfcDuwJgPR>`$^C-)vHN|z_P~n1FI}#)NQrgi zbFaDYs}dz~zhhuW@nPLxEAvG9s|D~#%fXNdF|uf46vzLb{8?3-sj-6QOf3%`H9A@G z44VaHi`_lPQ~HL+QlV$1CLMtMHdHe1X_MK>+Q*s=Sr44m8|lZYfcy(C_wXpdUO4deMt8*dCEwiDa(f!=>3ldALP3FgP4SvMbel=;N zRMFO{Y2?HCS!QouEl|~Di0+#9QQ-k$C6dM&NzRHMe0Ox|eABUGeqFSO$xOGPN2iDK zG!4%WPZ|?gfw91fGL(JaOzL{!cVR!*&Tv>{ zQjr@6mGtT*bJ~e)i%U|ca<9t(_i=Qub^T+D?%(b+i3>=~d10bh-CYZ0x(uf`esQm( zY#rIAf}6g5b{^G5h9}kneQ!pV__QwDf_c)LOLT4#-K9C+{=orEpz}hkj+cctm`fdl z&hrbfwu3{3p_=v&Px#_5^g?>mLLskAXni%bkfAk~@)Ku|>`JhnMzP_S7H1t+1g0Nc4w)p7oFe4aA)S(q@bP8ubO z!w9&xBt-)ntYbQXyxLiB$r~BU->2~EYCbqo#G~06M45c(RLQ_JuO`z9?EUw?AJK;< z$pShSAMw1&^*rg!;SvBe1ojzE&dBq>>TYSqDi6PEbeS;FB8p9FyCOb6_T5-J^tx(Y z-JCE$*CkCq=pjsgO&?7kST)wmFBLdfPlWZ?3#e*V$`@ekC>=>DpxHcRcs05(wwc8H zqgCqATqX-D8io>8w4NtmJYP8_h_&t|zo@>kKVp(TEXY7C`SnNwyzWoe#D9@LHRO$= z%z&TKQCG*6Wa%-|s3pE^i!)Lg`9wH9p_t>bzVzBPQ|vp?i*Dcc5ZlLE{vY~aY&1j5 zO?ob{>ybHLuC&ydJI#*bOWcfE#nF_Ad=Q>vLYA6!1}d;=1|d~`IC>7;y@l%8?bBre zY&CZPY!&d@+0XRz5fXxZ4|ia(QX&{yrEjn}6P5vn1381N_$x9)p6$)K(`?PwK1@($|XDd)OBZ> zDJ*oYdiq+RJqBY!0qW#A-Q0z_P{w*kE&G@xjK548Mr?uWeY47@iJbB^$?6cg5md^; zm}?8o!%Ludh@Cu0A#DSneoyau-NBSxIUSE1U}d4i{H&D)j1-OCMM3TH9T^vuh{f95H|D)<72i-SMc^wzgSNID5>xx;-$WI0g?O1*VwB% zn3)eQ$q%M_LDrmeS-_(!B;8}NDTOWZN#4sO!Q&ZXop33!1JB<;O(hsf*V=*O1BrQQ zvr`&~oqe@sJ@52A zDSJ}b@H?QoUi?SnrTqq4w)^9W9~;VJ8^mjFD{3C}(>%4;zk4e-Mz>{?19DnGh--Ji z#+lQD6G`4kOiSC1uY{1GJ)fw<2+v5S2@Z+pXS$8pZT*Kc_DAAYPD*#EVc=8y-($B2 z7%=jBTirV}a;EY3m9CXJx$0bBAe;z=e{93rIBQ#B-~HWNv5~#@WJ5#IYt#B89bLp3 zirjsp*|~v7cXow+v1$_djYX{4(sJTrbrGgj7beP1^rtdX|lTRELo1$zhfu#jBU^{<&2P zlxUD^jsw8+Yw06@M-c+&Y5?}2HkzBh8%u;4F*Ggpx5G`TtW(BPo9{YsfN0krDv0e7OOyP0BV1ki+}yoOmHQ5Ai>>4 z&Y_NF_^5-~vmJ0N(!9KgyIye_;ql^cZZvDK5o-#z3%R|1cbw)f*NTlJ#-ED0=uET= z8@^(h9q^eDly16-An`)+h1_L4ie!6=jKt>PW^E_=jax)zU@+Wc)RgcWTY2~$nZyuL z96*b5eteqj^v{#R=*wwkC(CbAZszv%Q~*PF#-h+gsQUc7y){ff^73zqQ37}74_0E8DN>g+Is>A45#1sY&+ zUikx$GZslQO@xNnsn+W5!?^%D>T>Ss8~ZjUre5!;)r8%}*dnvwH}@O%Kt#!5_Knqt zW*RC1&5Umauu@>px`pxc-54pKz z2507m&5Ri>FqeKrcy)eCl2-SR$w9=o%gO?t8VUN9l%g#AGu1 zRjk%<&c4NqVCog7slw8igg;lsM^MXR$jti=g0^HzkXF|d1x6CJ8QBuk^ygeS0SxfW znnGI6ueqMJRxl!GTNAs<2He@NLAmHMU}rz%S>bA&E$yi|d)KP@cz|t82Yy>?Ok4H# z;SiTcdC`1E%vGA8#QnG>-YTRc5yr@=zQk;6~T2M{5%+h;q7t zcE)bCs6+xTQO6Amp+69-^Uc>}W+)zQmGuJbHdHP0v4?-%5LR4u#(y*!p!{c*C-F zh*e?wOib!JR|ed4)(y(%y6E9BODTH@ACD}6Aq%||7Qb-Rh2~WfkJq(?a-2P9q9*3& zRG!@(LR+^VbgrP(R|o1&wW`8VdOyi4u`v94}W-t0luQ121__^Ns^z* z1yk}yLDWT<+4QEY@N3C|f2ha{m!emglB{{>-g?Q}cP}a4>P+{uns<#_R94Yn8URX+ zQ#9T_+|nJHs^fJW966%uZsBlad!uFj1LrBIs)@?p-rl+9K+5eeZ!Pt7VYlR!*EBrI z(IK_0M*fAMM}fEU*>b%)=E7j)?^RN1Y<)MEL{_nsV?6;YjQzV=oU&DA$U4n<8ell4jF!yIBgM9V>zwP_8o3bJyW^0KnbpM=a* z$-8oBrY)aokXi&~9AZu3FC^Ui@&R@`0Dr0D37&rF@L2sdg6dA^&-4`+U!MCjLEg2m zZzK;TRlqErvH%`)ao-mbr!otM&0yjVj(kHYOv$z1C8z?-gWx+`$gJuY2-IP*qbW0x zB<21Gzj>}C4DS5;^)&WtM8xv%{{eZreBJ+doYeiLf81Say_(+fwiI29{o~k?qC+Py F{TKFkRq+4- literal 0 HcmV?d00001 diff --git a/reports/optimised_full.png b/reports/optimised_full.png new file mode 100644 index 0000000000000000000000000000000000000000..4b9d6da517458a622b889880f1dbca87e9765026 GIT binary patch literal 121420 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%0AwD5r2ApBBCjl(vDSsCLpD)(=@+?c`3xvuNR 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 M#T6cA-`9WnUqsyS9{>OV literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..337be56 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +pandas>=2.0.0 +numpy>=1.24.0 +matplotlib>=3.7.0 diff --git a/run_backtest.py b/run_backtest.py new file mode 100644 index 0000000..452376b --- /dev/null +++ b/run_backtest.py @@ -0,0 +1,224 @@ +#!/usr/bin/env python3 +""" +Main backtest runner. + +Steps +----- +1. Load EURJPY M15 data (2 years). +2. Run baseline RSI Mean Reversion (original strategy, no trend filter). +3. Run improved RSI Trend strategy with default params. +4. Grid-search optimise on in-sample (first 70%). +5. Walk-forward: run best params on out-of-sample (last 30%). +6. Print full reports and save equity-curve charts. +""" + +import sys +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).parent)) + +import numpy as np + +from engine.backtest import BacktestEngine +from engine.data import load_candles +from engine.metrics import compute, Metrics +from engine.optimizer import grid_search +from strategies.rsi_trend import RSITrendStrategy + +try: + from reports.chart import save_equity_chart + CHARTS = True +except ImportError: + CHARTS = False + +# ── config ──────────────────────────────────────────────────────────────────── + +SYMBOL = "EURJPY" +TIMEFRAME = "M15" +INITIAL_BALANCE = 10_000.0 +RISK_PER_TRADE = 0.01 +SPREAD_PIPS = 0.5 +SPLIT_RATIO = 0.70 # in-sample fraction + +# ── parameter grid for optimisation ────────────────────────────────────────── + +PARAM_GRID = { + "os_level": [25, 30, 35], + "ob_level": [65, 70, 75], + "sl_atr": [1.0, 1.5, 2.0], + "tp_atr": [2.0, 3.0, 4.0], + "trend_fast": [50], + "trend_slow": [200], + "session_start": [7], + "session_end": [20], +} + + +# ── helpers ─────────────────────────────────────────────────────────────────── + +def divider(title: str = "") -> None: + if title: + pad = (60 - len(title) - 2) // 2 + print(f"\n{'─'*pad} {title} {'─'*pad}") + else: + print("─" * 62) + + +def print_report(label: str, metrics: Metrics, period: str = "") -> None: + divider(label) + if period: + print(f" Period : {period}") + print(metrics) + + +# ── main ────────────────────────────────────────────────────────────────────── + +def main() -> None: + print("=" * 62) + print(" NewBot — RSI Trend Pullback | EURJPY M15") + print("=" * 62) + + # 1. Load data + print(f"\nLoading {SYMBOL} {TIMEFRAME}…") + df = load_candles(SYMBOL, TIMEFRAME) + print(f" {len(df):,} candles ({df.index[0].date()} → {df.index[-1].date()})") + + split_idx = int(len(df) * SPLIT_RATIO) + df_in = df.iloc[:split_idx] + df_out = df.iloc[split_idx:] + print(f" In-sample : {df_in.index[0].date()} → {df_in.index[-1].date()} ({len(df_in):,} bars)") + print(f" Out-sample : {df_out.index[0].date()} → {df_out.index[-1].date()} ({len(df_out):,} bars)") + + engine = BacktestEngine( + SYMBOL, + initial_balance = INITIAL_BALANCE, + risk_per_trade = RISK_PER_TRADE, + spread_pips = SPREAD_PIPS, + ) + + # 2. Baseline: original RSI mean-reversion (no trend filter) + # Simulated by using trend_fast=1, trend_slow=1 so trend is always 0 — + # that short-circuits the trend guard. Instead we reuse the same class + # but force trend filter OFF by setting trend EMAs equal (trend ≈ 0 always). + # Simpler: use a tiny fast period so the two EMAs are always close → trend~0 + # Actually the cleanest baseline: subclass and override signal to ignore trend. + + class BaselineRSI(RSITrendStrategy): + """RSI mean reversion without any trend filter — take both longs & shorts.""" + def signal(self, df, i): + if i < 1: + return None + row = df.iloc[i] + prev = df.iloc[i - 1] + if any(df.iloc[i][c] != df.iloc[i][c] for c in ("rsi", "atr")): + return None + hour = row.name.hour + if not (self.session_start <= hour < self.session_end): + return None + rsi_now, rsi_prev = row["rsi"], prev["rsi"] + if __import__("pandas").isna(rsi_prev): + return None + atr = row["atr"] + ref = row["close"] + if rsi_prev < self.os_level and rsi_now >= self.os_level: + return "long", ref - self.sl_atr * atr, ref + self.tp_atr * atr + if rsi_prev > self.ob_level and rsi_now <= self.ob_level: + return "short", ref + self.sl_atr * atr, ref - self.tp_atr * atr + return None + + baseline = BaselineRSI(os_level=30, ob_level=70, sl_atr=1.5, tp_atr=3.0) + bl_trades, bl_equity = engine.run(df, baseline) + bl_metrics = compute(bl_trades, bl_equity, INITIAL_BALANCE) + print_report("Baseline RSI (no trend filter) — full dataset", + bl_metrics, + f"{df.index[0].date()} → {df.index[-1].date()}") + + # 3. Improved strategy — default params, full dataset + improved = RSITrendStrategy(os_level=30, ob_level=70, sl_atr=1.5, tp_atr=3.0) + im_trades, im_equity = engine.run(df, improved) + im_metrics = compute(im_trades, im_equity, INITIAL_BALANCE) + print_report("Improved RSI Trend (default params) — full dataset", + im_metrics, + f"{df.index[0].date()} → {df.index[-1].date()}") + + # 4. Optimise on in-sample + divider("Grid Search (in-sample optimisation)") + n_combos = 1 + for v in PARAM_GRID.values(): + n_combos *= len(v) + print(f" Testing {n_combos} parameter combinations on in-sample data…") + + results = grid_search( + RSITrendStrategy, PARAM_GRID, df_in, engine, verbose=True + ) + best = results[0] + print(f"\n Best score : {best.score:.4f}") + print(f" Params : {best.params}") + print(f"\n In-sample metrics:") + print(best.metrics) + + print("\n Top-5 combinations:") + print(f" {'Score':>8} {'WR%':>5} {'PF':>5} {'Sharpe':>6} {'Trades':>6} Params") + for r in results[:5]: + print(f" {r.score:8.4f} {r.metrics.win_rate*100:5.1f} " + f"{r.metrics.profit_factor:5.2f} {r.metrics.sharpe:6.2f} " + f"{r.metrics.n_trades:6d} {r.params}") + + # 5. Walk-forward: run best params on out-of-sample + opt_strategy = RSITrendStrategy(**best.params) + oos_trades, oos_equity = engine.run(df_out, opt_strategy) + oos_metrics = compute(oos_trades, oos_equity, INITIAL_BALANCE) + print_report("Walk-Forward — out-of-sample (best params)", + oos_metrics, + f"{df_out.index[0].date()} → {df_out.index[-1].date()}") + + # 6. Also run best params on full dataset for the final picture + full_strategy = RSITrendStrategy(**best.params) + full_trades, full_equity = engine.run(df, full_strategy) + full_metrics = compute(full_trades, full_equity, INITIAL_BALANCE) + print_report("Optimised Strategy — full dataset", + full_metrics, + f"{df.index[0].date()} → {df.index[-1].date()}") + + # 7. Summary comparison table + divider("Strategy Comparison Summary") + print(f" {'Strategy':<35} {'Trades':>6} {'WR%':>5} {'PF':>5} {'Sharpe':>6} {'Return%':>7} {'MDD%':>6}") + rows = [ + ("Baseline RSI (no filter)", bl_metrics), + ("RSI Trend (default params)", im_metrics), + (f"RSI Trend (optimised, in-sample)", best.metrics), + (f"RSI Trend (optimised, out-sample)", oos_metrics), + (f"RSI Trend (optimised, full data)", full_metrics), + ] + for name, m in rows: + print(f" {name:<35} {m.n_trades:>6} {m.win_rate*100:>5.1f} " + f"{m.profit_factor:>5.2f} {m.sharpe:>6.2f} " + f"{m.total_return*100:>+7.2f} {m.max_drawdown*100:>6.2f}") + + # 8. Charts + if CHARTS: + divider("Saving charts") + charts_dir = Path(__file__).parent / "reports" + charts_dir.mkdir(exist_ok=True) + + paths = [] + pairs = [ + (bl_equity, bl_trades, bl_metrics, "Baseline RSI (no filter)", "baseline.png"), + (im_equity, im_trades, im_metrics, "RSI Trend — default params", "improved_default.png"), + (full_equity, full_trades, full_metrics, "RSI Trend — optimised (full data)","optimised_full.png"), + (oos_equity, oos_trades, oos_metrics, "RSI Trend — out-of-sample (WF)", "walkforward_oos.png"), + ] + for eq, tr, me, lbl, fname in pairs: + p = save_equity_chart(eq, tr, me, lbl, fname) + paths.append(p) + print(f" Saved: {p}") + else: + print("\n (matplotlib not available — skipping charts)") + + print("\n" + "=" * 62) + print(" Done.") + print("=" * 62) + + +if __name__ == "__main__": + main() diff --git a/run_multi_symbol.py b/run_multi_symbol.py new file mode 100644 index 0000000..a6ca74c --- /dev/null +++ b/run_multi_symbol.py @@ -0,0 +1,163 @@ +#!/usr/bin/env python3 +""" +Multi-symbol backtest. + +Tests the optimised RSI Trend strategy across every M15 pair in the database +with at least MIN_CANDLES bars. Ranks pairs by Sharpe ratio and prints an +aggregate portfolio equity curve. +""" + +import sys +from pathlib import Path +sys.path.insert(0, str(Path(__file__).parent)) + +import sqlite3 +import numpy as np + +from engine.backtest import BacktestEngine +from engine.data import load_candles, DB_PATH +from engine.metrics import compute +from strategies.rsi_trend import RSITrendStrategy + +try: + from reports.chart import save_equity_chart + CHARTS = True +except ImportError: + CHARTS = False + +# ── config ──────────────────────────────────────────────────────────────────── + +MIN_CANDLES = 1_000 # require ≥ 1 000 M15 bars (≈ 6 months) +EXCLUDE = {"USD_JPY", "EUR_USD", "GBP_USD", "AUD_USD", # OANDA-format dupes + "EUR_JPY", "GBP_JPY", "EUR_JPY"} + +# Optimised params from single-symbol grid search +BEST_PARAMS = dict( + os_level=30, ob_level=75, sl_atr=2.0, tp_atr=3.0, + trend_fast=50, trend_slow=200, + session_start=7, session_end=20, +) + +INITIAL_BALANCE = 10_000.0 +RISK_PER_TRADE = 0.01 +SPREAD_PIPS = 0.5 + + +# ── helpers ─────────────────────────────────────────────────────────────────── + +def available_symbols() -> list[tuple[str, int]]: + conn = sqlite3.connect(DB_PATH) + rows = conn.execute( + "SELECT symbol, COUNT(*) FROM candles WHERE timeframe='M15' " + "GROUP BY symbol ORDER BY COUNT(*) DESC" + ).fetchall() + conn.close() + return [(sym, cnt) for sym, cnt in rows + if cnt >= MIN_CANDLES and sym not in EXCLUDE and "_" not in sym] + + +def bar(val: float, max_val: float, width: int = 20) -> str: + filled = int(round(abs(val) / max(abs(max_val), 1e-9) * width)) + char = "█" if val >= 0 else "▒" + return char * filled + + +# ── main ────────────────────────────────────────────────────────────────────── + +def main(): + symbols = available_symbols() + print("=" * 72) + print(" Multi-Symbol Backtest — RSI Trend Pullback (optimised params)") + print("=" * 72) + print(f" Params : {BEST_PARAMS}") + print(f" Symbols: {len(symbols)} pairs (min {MIN_CANDLES} M15 candles)") + print() + + engine = BacktestEngine( + "MULTI", + initial_balance=INITIAL_BALANCE, + risk_per_trade=RISK_PER_TRADE, + spread_pips=SPREAD_PIPS, + ) + + results = [] + + for symbol, n_candles in symbols: + # pip size is embedded in the engine per symbol — re-create for each + sym_engine = BacktestEngine( + symbol, + initial_balance=INITIAL_BALANCE, + risk_per_trade=RISK_PER_TRADE, + spread_pips=SPREAD_PIPS, + ) + df = load_candles(symbol, "M15") + strategy = RSITrendStrategy(**BEST_PARAMS) + trades, equity = sym_engine.run(df, strategy) + m = compute(trades, equity, INITIAL_BALANCE) + results.append((symbol, n_candles, m, equity)) + status = "+" if m.total_return > 0 else "-" + print(f" [{status}] {symbol:<10} {n_candles:>6} bars " + f"T={m.n_trades:>3} WR={m.win_rate*100:>5.1f}% " + f"PF={m.profit_factor:>5.2f} Sharpe={m.sharpe:>5.2f} " + f"Ret={m.total_return*100:>+7.2f}%") + + # ── ranked table ────────────────────────────────────────────────────────── + results.sort(key=lambda x: x[2].sharpe, reverse=True) + + profitable = [r for r in results if r[2].total_return > 0] + losing = [r for r in results if r[2].total_return <= 0] + + max_ret = max(abs(r[2].total_return) for r in results) if results else 1 + + print() + print("─" * 72) + print(f" {'Symbol':<10} {'Bars':>6} {'Trades':>6} {'WR%':>5} {'PF':>5} " + f"{'Sharpe':>6} {'Return%':>8} {'MDD%':>6} Return bar") + print("─" * 72) + for symbol, n_candles, m, _ in results: + if m.n_trades == 0: + continue + b = bar(m.total_return, max_ret) + print(f" {symbol:<10} {n_candles:>6} {m.n_trades:>6} {m.win_rate*100:>5.1f} " + f"{m.profit_factor:>5.2f} {m.sharpe:>6.2f} {m.total_return*100:>+8.2f} " + f"{m.max_drawdown*100:>6.2f} {b}") + print("─" * 72) + print(f" Profitable: {len(profitable)}/{len(results)} pairs " + f"({len(profitable)/len(results)*100:.0f}%)") + + # ── portfolio equity (equal-weight, 1 trade at a time per symbol) ───────── + # Normalise each equity curve to return-fraction, then average + if results: + min_len = min(len(eq) for _, _, _, eq in results) + normed = [eq[:min_len] / eq[0] for _, _, _, eq in results] + port_equity = np.mean(normed, axis=0) * INITIAL_BALANCE + + total_ret = port_equity[-1] / port_equity[0] - 1 + peak = np.maximum.accumulate(port_equity) + port_mdd = ((port_equity - peak) / peak).min() + + print() + print("── Portfolio (equal-weight average) ─────────────────────────────") + print(f" Return : {total_ret*100:+.2f}%") + print(f" Max DD : {port_mdd*100:.2f}%") + + # ── recommended live symbols ─────────────────────────────────────────────── + live_candidates = [r for r in results + if r[2].sharpe > 1.5 and r[2].n_trades >= 15 + and r[2].profit_factor > 1.2 and r[2].total_return > 0] + + print() + print("── Recommended symbols for live trading ─────────────────────────") + if live_candidates: + for symbol, _, m, _ in live_candidates[:6]: + print(f" ✓ {symbol:<10} Sharpe={m.sharpe:.2f} " + f"PF={m.profit_factor:.2f} Return={m.total_return*100:+.1f}%") + else: + print(" (None met Sharpe>1.5 + PF>1.2 + ≥15 trades)") + + print() + print("=" * 72) + + +if __name__ == "__main__": + main() diff --git a/run_paper.py b/run_paper.py new file mode 100644 index 0000000..019d885 --- /dev/null +++ b/run_paper.py @@ -0,0 +1,234 @@ +#!/usr/bin/env python3 +""" +Paper trading runner with live dashboard. + +- Immediately runs a full signal scan (no waiting for bar boundary) +- Opens paper positions where signals are found +- Refreshes the dashboard every 60 seconds showing live P&L +- Press Ctrl+C to stop +""" + +import asyncio +import json +import os +import sys +from datetime import datetime, timezone +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).parent)) + +# ── imports ─────────────────────────────────────────────────────────────────── + +from bot import config, broker, risk +from bot.signals import check +from bot.loop import _execute, _has_open +from bot.paper_client import _load_state, STATE_PATH + +import logging +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s %(levelname)-8s %(message)s", + handlers=[logging.StreamHandler(sys.stdout)], +) +for noisy in ("httpx", "telegram", "asyncio", "yfinance", "peewee"): + logging.getLogger(noisy).setLevel(logging.WARNING) + +logger = logging.getLogger("paper") + + +# ── helpers ─────────────────────────────────────────────────────────────────── + +def _pip_size(symbol: str) -> float: + return 0.01 if symbol.endswith("JPY") or symbol.endswith("CHF") and "JPY" in symbol else 0.0001 + + +async def _unrealised_pnl(pos: dict) -> float: + """Current unrealised P&L in pips for an open paper position.""" + try: + from bot.paper_client import get_tick + tick = await get_tick(pos["symbol"]) + if tick is None: + return 0.0 + mid = (tick["bid"] + tick["ask"]) / 2 + ps = _pip_size(pos["symbol"]) + direction = pos["direction"] # 0=BUY, 1=SELL + raw = mid - pos["entry"] if direction == 0 else pos["entry"] - mid + return raw / ps + except Exception: + return 0.0 + + +def _cls(): + os.system("clear" if os.name != "nt" else "cls") + + +def _bar(pct: float, width: int = 20) -> str: + filled = int(abs(pct) / max(abs(pct), 1e-9) * width) + filled = min(filled, width) + return ("█" * filled).ljust(width) + + +# ── dashboard ───────────────────────────────────────────────────────────────── + +async def _dashboard(): + state = _load_state() + positions = state.get("positions", []) + history = state.get("history", []) + balance = state.get("balance", config.PAPER_INITIAL_BALANCE) + + now = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M UTC") + initial = config.PAPER_INITIAL_BALANCE + total_ret = (balance / initial - 1) * 100 + + _cls() + print("╔══════════════════════════════════════════════════════════════╗") + print(f"║ NewBot — Paper Trading Dashboard {now} ║") + print("╚══════════════════════════════════════════════════════════════╝") + print() + print(f" Balance : ${balance:>10,.2f} ({total_ret:+.2f}% since start)") + print(f" Strategy : RSI Trend Pullback | {', '.join(config.SYMBOLS)}") + print() + + # open positions + print("── Open Positions ─────────────────────────────────────────────") + if not positions: + print(" (none)") + else: + print(f" {'Symbol':<10} {'Dir':<6} {'Entry':>10} {'Current':>10} " + f"{'SL':>10} {'TP':>10} {'Pips':>8}") + for pos in positions: + upnl = await _unrealised_pnl(pos) + try: + from bot.paper_client import get_tick + tick = await get_tick(pos["symbol"]) + current = (tick["bid"] + tick["ask"]) / 2 if tick else pos["entry"] + except Exception: + current = pos["entry"] + d = "LONG" if pos["direction"] == 0 else "SHORT" + pip_str = f"{upnl:+.1f}" + sign = "🟢" if upnl >= 0 else "🔴" + print(f" {pos['symbol']:<10} {d:<6} {pos['entry']:>10.5f} " + f"{current:>10.5f} {pos['sl']:>10.5f} {pos['tp']:>10.5f} " + f"{sign}{pip_str:>7}") + + print() + + # recent closed trades + print("── Recent Closed Trades ───────────────────────────────────────") + recent = sorted(history, key=lambda x: x.get("closed_at",""), reverse=True)[:10] + if not recent: + print(" (none yet)") + else: + print(f" {'Symbol':<10} {'Dir':<6} {'Result':<6} {'Pips':>8} When") + for t in recent: + d = "LONG" if t["direction"] == 0 else "SHORT" + pips = t.get("pnl_pips", 0) + sign = "✅" if pips > 0 else "❌" + closed = t.get("closed_at","")[:16] + print(f" {t['symbol']:<10} {d:<6} {t.get('reason','?'):<6} " + f"{sign}{pips:>+7.1f} {closed}") + + print() + + # stats + if history: + pips_list = [t.get("pnl_pips", 0) for t in history] + wins = [p for p in pips_list if p > 0] + total = len(pips_list) + wr = len(wins) / total * 100 + total_pips = sum(pips_list) + avg_w = sum(wins) / len(wins) if wins else 0 + losses = [p for p in pips_list if p <= 0] + avg_l = sum(losses) / len(losses) if losses else 0 + pf = abs(sum(wins) / sum(losses)) if losses and sum(losses) != 0 else float("inf") + print("── Stats ──────────────────────────────────────────────────────") + print(f" Trades : {total} | Wins: {len(wins)} Losses: {len(losses)}") + print(f" Win % : {wr:.1f}% | PF: {pf:.2f}") + print(f" Avg W : {avg_w:+.1f} pips Avg L : {avg_l:+.1f} pips") + print(f" Total : {total_pips:+.1f} pips") + print() + + print(" [Ctrl+C to stop] Refreshing every 60s…") + + +# ── main scan loop ──────────────────────────────────────────────────────────── + +async def scan_once(label: str = "manual") -> None: + logger.info("── Scanning symbols for signals (%s) ──", label) + account = await broker.get_account_info() + if account is None: + logger.error("Broker not connected") + return + + state = _load_state() + open_positions = await broker.get_open_positions() + + for symbol in config.SYMBOLS: + if _has_open(symbol, open_positions): + logger.info("%-10s already has open position — skip", symbol) + continue + + logger.info("Fetching candles for %s…", symbol) + df = await broker.get_candles(symbol, config.TIMEFRAME, config.LOOKBACK) + if df is None or len(df) < 300: + logger.warning("%-10s insufficient data (%s bars)", symbol, + len(df) if df is not None else 0) + continue + + signal = check(df, symbol) + if signal is None: + logger.info("%-10s no signal (RSI=%.1f)", symbol, + _last_rsi(df)) + continue + + logger.info("SIGNAL: %s", signal) + if not risk.can_trade(account, open_positions, state): + logger.info("Trade limit reached") + break + + success = await _execute(signal, account) + if success: + open_positions = await broker.get_open_positions() + state = _load_state() + + +def _last_rsi(df) -> float: + try: + from engine.indicators import rsi + return float(rsi(df["close"], 14).iloc[-2]) + except Exception: + return float("nan") + + +async def main(): + if not broker.connect(): + logger.error("Broker connect failed") + return + + # immediate scan on startup + await scan_once("startup") + await _dashboard() + + # then loop every 60s: refresh dashboard + rescan on each new bar + last_scan_minute = -1 + try: + while True: + await asyncio.sleep(60) + now = datetime.now(timezone.utc) + await _dashboard() + + # rescan at each new M15 bar (minute % 15 == 0..2 window) + if now.minute % 15 < 2 and now.minute != last_scan_minute: + last_scan_minute = now.minute + await scan_once(f"bar@{now.strftime('%H:%M')}") + await _dashboard() + except KeyboardInterrupt: + pass + finally: + broker.disconnect() + print("\nBot stopped. Final state:") + await _dashboard() + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/strategies/__init__.py b/strategies/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/strategies/rsi_trend.py b/strategies/rsi_trend.py new file mode 100644 index 0000000..b4c41eb --- /dev/null +++ b/strategies/rsi_trend.py @@ -0,0 +1,138 @@ +""" +Trend-Filtered RSI Pullback Strategy +===================================== + +Core idea +--------- +Use the H1 EMA(50)/EMA(200) crossover to establish the macro trend, then +enter M15 trades only in the trend direction when RSI pulls back to an +extreme and *exits* that extreme. This turns RSI from a counter-trend tool +into a high-probability trend-entry timer. + +Entry logic +----------- +LONG : H1 EMA(50) > EMA(200) [bullish bias] AND M15 RSI crosses back + above `os_level` from below (RSI was oversold, now recovering). +SHORT : H1 EMA(50) < EMA(200) [bearish bias] AND M15 RSI crosses back + below `ob_level` from above (RSI was overbought, now rolling over). + +Exits +----- +TP : entry ± tp_atr × ATR(14) +SL : entry ∓ sl_atr × ATR(14) + +Session filter +-------------- +Only trades during [session_start, session_end) UTC to avoid thin +Asian-overnight and weekend conditions. +""" + +from __future__ import annotations + +from typing import Optional + +import pandas as pd + +from engine import indicators as ind + + +class RSITrendStrategy: + def __init__( + self, + rsi_period: int = 14, + atr_period: int = 14, + os_level: float = 30.0, # oversold threshold + ob_level: float = 70.0, # overbought threshold + sl_atr: float = 1.5, + tp_atr: float = 3.0, + trend_fast: int = 50, # H1 EMA periods + trend_slow: int = 200, + session_start: int = 7, # UTC hour (inclusive) + session_end: int = 20, # UTC hour (exclusive) + ): + self.rsi_period = rsi_period + self.atr_period = atr_period + self.os_level = os_level + self.ob_level = ob_level + self.sl_atr = sl_atr + self.tp_atr = tp_atr + self.trend_fast = trend_fast + self.trend_slow = trend_slow + self.session_start = session_start + self.session_end = session_end + + # ── Strategy protocol ───────────────────────────────────────────────────── + + def prepare(self, df: pd.DataFrame) -> pd.DataFrame: + # M15 indicators + df["rsi"] = ind.rsi(df["close"], self.rsi_period) + df["atr"] = ind.atr(df, self.atr_period) + + # Build H1 trend from M15 data (resample, compute EMAs, forward-fill) + h1 = df["close"].resample("1h", label="left", closed="left").last().dropna() + h1_ema_fast = ind.ema(h1, self.trend_fast) + h1_ema_slow = ind.ema(h1, self.trend_slow) + + df["h1_ema_fast"] = h1_ema_fast.reindex(df.index, method="ffill") + df["h1_ema_slow"] = h1_ema_slow.reindex(df.index, method="ffill") + + # EMA spread: positive = bullish, negative = bearish + df["trend"] = df["h1_ema_fast"] - df["h1_ema_slow"] + + return df + + def signal( + self, + df: pd.DataFrame, + i: int, + ) -> Optional[tuple[str, float, float]]: + if i < 1: + return None + + row = df.iloc[i] + prev = df.iloc[i - 1] + + # guard: need valid indicators + if pd.isna(row["rsi"]) or pd.isna(row["atr"]) or pd.isna(row["trend"]): + return None + if pd.isna(prev["rsi"]): + return None + + # session filter + hour = row.name.hour + if not (self.session_start <= hour < self.session_end): + return None + + rsi_now = row["rsi"] + rsi_prev = prev["rsi"] + trend = row["trend"] + atr = row["atr"] + + # entry is on next bar's open — approximate SL/TP from current close + ref = row["close"] + + # LONG: bullish trend AND RSI exits oversold + if trend > 0 and rsi_prev < self.os_level and rsi_now >= self.os_level: + sl = ref - self.sl_atr * atr + tp = ref + self.tp_atr * atr + return "long", sl, tp + + # SHORT: bearish trend AND RSI exits overbought + if trend < 0 and rsi_prev > self.ob_level and rsi_now <= self.ob_level: + sl = ref + self.sl_atr * atr + tp = ref - self.tp_atr * atr + return "short", sl, tp + + return None + + def describe(self, params: Optional[dict] = None) -> str: + p = params or {} + return ( + f"RSITrend(" + f"os={p.get('os_level', self.os_level)}, " + f"ob={p.get('ob_level', self.ob_level)}, " + f"sl={p.get('sl_atr', self.sl_atr)}, " + f"tp={p.get('tp_atr', self.tp_atr)}, " + f"fast={p.get('trend_fast', self.trend_fast)}, " + f"slow={p.get('trend_slow', self.trend_slow)})" + )