From c88216db03819cfd942e7c746e18ef143558d1b1 Mon Sep 17 00:00:00 2001 From: peter Date: Sun, 7 Jun 2026 16:32:51 -0400 Subject: [PATCH] Finalize EA architecture before strategy development --- AGENTS.md | 50 ++ Include/Config.mqh | 106 +++- Include/MarketData.mqh | 8 +- Include/RiskManager.mqh | 333 +++++++++--- Include/Signal.mqh | 11 + Include/Strategy.mqh | 1065 ++++++++++++++++++++++++++++++++------ Include/TradeManager.mqh | 92 ++-- Include/TrailingStop.mqh | 118 +++-- Include/Utilities.mqh | 39 +- MyProEA.ex5 | Bin 129438 -> 91860 bytes MyProEA.mq5 | 65 ++- 11 files changed, 1512 insertions(+), 375 deletions(-) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..210203d --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,50 @@ +\# Codex instructions for MyProEA + + + +This workspace is only for the MyProEA MT5 Expert Advisor project. + + + +Only read, edit, and reason about files inside this folder unless I explicitly provide another file. + + + +Main EA file: + +\- MyProEA.mq5 + + + +Project include files: + +\- Include/ + + + +Strategy files: + +\- Include/Strategies/ + + + +Do not modify files outside this project. + +Do not modify global MQL5 Include files. + +Do not scan unrelated Experts, Indicators, Scripts, Libraries, Logs, or Profiles. + + + +When changing code: + +1\. Keep the existing architecture. + +2\. Make the smallest safe change. + +3\. Do not rewrite unrelated managers or framework files. + +4\. Strategy files should only output buy/sell signals, SL, TP, and metadata expected by the existing project. + +5\. Explain which file you changed and why. + diff --git a/Include/Config.mqh b/Include/Config.mqh index 0b6b649..a83fe05 100644 --- a/Include/Config.mqh +++ b/Include/Config.mqh @@ -13,23 +13,43 @@ enum E_LOT_MODE LOT_MODE_RISK = 1 // Use risk percent method }; -input E_LOT_MODE g_lot_mode = LOT_MODE_FIXED; // Lot Sizing Mode +enum E_TREND_BREAK_MODE +{ + BREAK_MODE_CANDLE_CLOSE = 0, + BREAK_MODE_BID_ASK_TOUCH = 1 +}; + +enum E_STOP_LOSS_MODE +{ + STOP_LOSS_STRUCTURE = 0, + STOP_LOSS_POINTS = 1, + STOP_LOSS_PERCENT = 2 +}; + +enum E_TAKE_PROFIT_MODE +{ + TAKE_PROFIT_POINTS = 1, + TAKE_PROFIT_PERCENT = 2, + TAKE_PROFIT_RISK_REWARD = 3 +}; + +input E_LOT_MODE g_lot_mode = LOT_MODE_RISK; // Lot Sizing Mode input double g_fixed_lot = 0.1; // Fixed Lot Size (if LOT_MODE_FIXED) -input double g_risk_percent = 2.0; // Risk Percent (if LOT_MODE_RISK) input double g_max_lot = 10.0; // Maximum Lot Size input double g_min_lot = 0.01; // Minimum Lot Size // ==================== TRADE MANAGEMENT ==================== input int g_magic_number = 12345; // Magic Number for trades -input int g_stop_loss_points = 100; // Stop Loss in points -input int g_take_profit_points = 200; // Take Profit in points +input int g_stop_loss_points = 100; // Deprecated: strategy owns initial SL +input int g_take_profit_points = 200; // Deprecated: strategy owns initial TP input int g_max_spread_points = 100; // Max Spread in points (1.00 USD for XAUUSD) input int g_max_positions = 1; // Max positions at once // ==================== TRADING HOURS ==================== input bool g_use_trading_hours = false; // Enable trading hour filter -input int g_trade_start_hour = 8; // Trading Start Hour (0-23) -input int g_trade_end_hour = 20; // Trading End Hour (0-23) +input int g_trade_start_hour = 8; // Trading Start Hour (0-23), based on broker server time +input int g_trade_end_hour = 20; // Trading End Hour (0-23), based on broker server time +input string g_trading_hours_note = "Broker server time is used; adjust start/end hours for your broker timezone and session preferences"; // informational only // ==================== TRAILING STOP ==================== input bool g_use_trailing_stop = true; // Use Trailing Stop @@ -38,21 +58,67 @@ input bool g_use_break_even = true; // Use Break Even input int g_break_even_profit = 10; // Break Even Trigger profit input int g_break_even_sl = 2; // Break Even SL distance +// Enhanced break-even / trailing parameters (ATR-aware) +input bool g_use_break_even_atr = true; // Use ATR-based break-even behavior +input double g_break_even_trigger_r = 1.0; // Break-even trigger as multiple of initial risk (ATR or fixed) +input int g_break_even_buffer_points = 20; // Buffer to apply when moving to break-even (points) + +input bool g_use_trailing_stop_atr = true; // Use ATR-based trailing stop +input double g_trail_start_r = 1.5; // Start trailing after this multiple of initial risk +input double g_trail_distance_atr_multiplier = 1.0; // Trailing distance = ATR * this multiplier + +// ==================== STRATEGY EVALUATION ==================== +input bool g_evaluate_on_new_bar = true; // Evaluate strategy on entry timeframe new bar +input bool g_evaluate_every_tick = false; // Evaluate strategy every tick when true + // ==================== STRATEGY PARAMETERS ==================== -// XAUUSD M15 EMA Pullback Continuation Strategy -input ENUM_TIMEFRAMES g_strategy_entry_timeframe = PERIOD_M15; // Entry signal timeframe -input ENUM_TIMEFRAMES g_strategy_trend_timeframe = PERIOD_H1; // Trend filter timeframe -input int g_trend_fast_ema_period = 50; // H1 EMA fast period -input int g_trend_slow_ema_period = 200; // H1 EMA slow period -input int g_entry_fast_ema_period = 20; // M15 EMA for entry confirmation -input int g_entry_pullback_ema_period = 50; // M15 EMA for pullback touch -input int g_rsi_period = 14; // RSI period on M15 -input int g_rsi_buy_threshold = 50; // RSI buy threshold -input int g_rsi_sell_threshold = 50; // RSI sell threshold -input int g_atr_period = 14; // ATR period on M15 -input double g_atr_sl_multiplier = 1.5; // ATR multiplier for SL (future use) -input double g_atr_tp_multiplier = 2.0; // ATR multiplier for TP (future use) -input bool g_use_atr_stops = false; // Use ATR-based SL/TP if supported +input ENUM_TIMEFRAMES g_strategy_entry_timeframe = PERIOD_M15; // Signal/entry timeframe +input ENUM_TIMEFRAMES g_strategy_trend_timeframe = PERIOD_H1; // Filter/trend timeframe + +input int g_signal_swing_depth = 3; +input int g_filter_swing_depth = 5; +input int g_signal_trend_confirm_count = 1; +input int g_filter_trend_confirm_count = 2; + +input bool g_use_atr_filter = true; +input int g_atr_period = 14; +input double g_min_swing_atr_multiplier = 0.5; + +input bool g_use_breakout_entry = true; +input int g_entry_buffer_points = 10; +input int g_signal_expiration_bars = 3; + +input E_TREND_BREAK_MODE g_trend_break_mode = BREAK_MODE_CANDLE_CLOSE; +input int g_break_buffer_points = 0; +input int g_cooldown_bars_after_trend_break = 1; + +input E_STOP_LOSS_MODE g_stop_loss_mode = STOP_LOSS_STRUCTURE; +input int g_sl_points = 50; +input double g_sl_percent = 0.5; +input int g_sl_buffer_points = 50; + +input E_TAKE_PROFIT_MODE g_take_profit_mode = TAKE_PROFIT_RISK_REWARD; +input int g_tp_points = 100; +input double g_tp_percent = 1.0; +input double g_risk_reward_ratio = 2.0; + +input int g_max_trades_per_filter_trend = 1; +input int g_strategy_max_open_positions = 1; + +input int g_strategy_max_spread_points = 30; + +input bool g_show_signal_swings = true; +input bool g_show_filter_swings = true; +input bool g_show_swing_level_lines = true; +input bool g_show_trend_lines = true; +input bool g_show_setup_trigger_lines = true; +input bool g_show_trend_rectangles = false; + +// TP-less trades are intentionally not supported yet. Add an explicit +// allowNoTakeProfit field to TradeSetup before allowing takeProfit = 0. + +input double g_risk_percent = 1.0; // Risk percent per trade +input double g_max_risk_percent = 2.0; // Maximum allowed risk percent // ==================== DEBUG ==================== input bool g_debug_mode = true; // Enable Debug Logging diff --git a/Include/MarketData.mqh b/Include/MarketData.mqh index bf7370e..d6fd1e4 100644 --- a/Include/MarketData.mqh +++ b/Include/MarketData.mqh @@ -78,7 +78,13 @@ public: // Detect new bar on current timeframe bool IsNewBar() { - datetime bar_time = iTime(m_symbol, PERIOD_CURRENT, 0); + return IsNewBar(PERIOD_CURRENT); + } + + // Detect new bar on a supplied timeframe + bool IsNewBar(ENUM_TIMEFRAMES timeframe) + { + datetime bar_time = iTime(m_symbol, timeframe, 0); if(m_last_bar_time == 0) { diff --git a/Include/RiskManager.mqh b/Include/RiskManager.mqh index b217a4c..585d410 100644 --- a/Include/RiskManager.mqh +++ b/Include/RiskManager.mqh @@ -1,6 +1,6 @@ //+------------------------------------------------------------------+ //| RiskManager.mqh - Risk and position sizing management | -//| Calculates lot sizes, validates parameters, checks trading hours | +//| Calculates trade entry levels, stop loss, take profit and lot sizes| //+------------------------------------------------------------------+ #ifndef __RISKMANAGER_MQH__ @@ -10,6 +10,7 @@ #include "Logger.mqh" #include "MarketData.mqh" #include "Utilities.mqh" +#include "Signal.mqh" class CRiskManager { @@ -18,75 +19,186 @@ private: CLogger *mp_logger; public: - // Constructor CRiskManager(CMarketData *market_data, CLogger *logger) { mp_market_data = market_data; mp_logger = logger; } - // Calculate lot size based on configuration - double CalculateLotSize(int stop_loss_points) + double CalculateLotByRisk(double risk_distance) { - double lot = 0.0; + string symbol = mp_market_data.GetSymbol(); + if(!IsSymbolValid(symbol)) + return 0.0; + if(risk_distance <= 0.0) + { + if(mp_logger) + mp_logger.Error("Risk distance must be positive to calculate lot size"); + return 0.0; + } - if(g_lot_mode == LOT_MODE_FIXED) - { - lot = g_fixed_lot; - } - else if(g_lot_mode == LOT_MODE_RISK) - { - lot = CalculateLotByRisk(stop_loss_points); - } + double tick_size = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE); + double tick_value = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE); + if(tick_size <= 0.0 || tick_value <= 0.0) + { + if(mp_logger) + mp_logger.Error("Symbol tick size or tick value invalid for lot calculation"); + return 0.0; + } - return ValidateLotSize(lot); + double account_equity = AccountInfoDouble(ACCOUNT_EQUITY); + if(account_equity <= 0.0) + { + if(mp_logger) + mp_logger.Error("Account equity is invalid for lot calculation"); + return 0.0; + } + + double effective_risk_percent = GetEffectiveRiskPercent(); + if(effective_risk_percent <= 0.0) + { + if(mp_logger) + mp_logger.Error("Effective risk percent is invalid"); + return 0.0; + } + + double risk_amount = account_equity * (effective_risk_percent / 100.0); + + // Loss per single lot = (risk_distance / tick_size) * tick_value + double loss_per_lot = (risk_distance / tick_size) * tick_value; + if(loss_per_lot <= 0.0) + { + if(mp_logger) + mp_logger.Error("Calculated monetary loss per lot is non-positive"); + return 0.0; + } + + double raw_lot = risk_amount / loss_per_lot; + double normalized_lot = CUtilities::NormalizeLot(symbol, raw_lot); + + if(normalized_lot <= 0.0) + { + if(mp_logger) + mp_logger.Warning(StringFormat("No valid lot size: raw=%.6f normalized=%.6f (min/max/step constraints)", raw_lot, normalized_lot)); + return 0.0; + } + + if(mp_logger && g_debug_mode) + { + mp_logger.Info(StringFormat("Tick size=%.8f tick value=%.8f risk%%=%.2f rawLot=%.6f finalLot=%.6f", + tick_size, tick_value, effective_risk_percent, raw_lot, normalized_lot)); + } + + return normalized_lot; } - // Calculate lot size based on risk percent - double CalculateLotByRisk(int stop_loss_points) + bool ValidateTradeSetup(const TradeSetup &setup, double &lot) { - double account_balance = AccountInfoDouble(ACCOUNT_BALANCE); - double stop_loss_distance = CUtilities::PointsToPrice(mp_market_data.GetSymbol(), stop_loss_points); - double contract_size = CUtilities::GetContractSize(mp_market_data.GetSymbol()); - - if(stop_loss_distance == 0 || contract_size == 0) - return g_min_lot; + string symbol = mp_market_data.GetSymbol(); + if(!IsSymbolValid(symbol)) + { + if(mp_logger) + mp_logger.Error("Invalid symbol for trade setup validation"); + return false; + } + if(setup.signal != SIGNAL_BUY && setup.signal != SIGNAL_SELL) + { + if(mp_logger && g_debug_mode) + mp_logger.Info("Trade setup rejected: no valid signal"); + return false; + } - // Risk = Account Balance * Risk Percent / 100 - double risk_amount = account_balance * (g_risk_percent / 100.0); - - // Lot = Risk Amount / (SL Distance * Contract Size * Point) - double point = mp_market_data.GetPoint(); - double lot = risk_amount / (stop_loss_distance * contract_size); - - return lot; - } + double execution_price = (setup.signal == SIGNAL_BUY) ? mp_market_data.GetAsk() : mp_market_data.GetBid(); + double setup_entry_price = setup.entryPrice; + double setup_diff = 0.0; + if(setup_entry_price > 0.0) + { + setup_diff = MathAbs(setup_entry_price - execution_price); + } - // Validate and normalize lot size - double ValidateLotSize(double lot) - { - // Apply global limits first - if(lot < g_min_lot) - lot = g_min_lot; - if(lot > g_max_lot) - lot = g_max_lot; + if(setup.stopLoss <= 0.0 || setup.takeProfit <= 0.0 || setup.riskDistance <= 0.0) + { + if(mp_logger) + mp_logger.Warning(StringFormat("Trade setup rejected: valid initial SL and TP are required (TP-less trades need a future explicit allowNoTakeProfit field). setupEntry=%.5f execEntry=%.5f sl=%.5f tp=%.5f risk=%.5f", + setup_entry_price, execution_price, setup.stopLoss, setup.takeProfit, setup.riskDistance)); + return false; + } - // Normalize to broker's lot step - lot = CUtilities::NormalizeLot(mp_market_data.GetSymbol(), lot); + bool valid_side = true; + if(setup.signal == SIGNAL_BUY) + { + valid_side = (setup.stopLoss < execution_price && setup.takeProfit > execution_price); + } + else if(setup.signal == SIGNAL_SELL) + { + valid_side = (setup.stopLoss > execution_price && setup.takeProfit < execution_price); + } + + if(!valid_side) + { + if(mp_logger) + mp_logger.Warning(StringFormat("Trade setup rejected: SL/TP invalid for current market entry price (setupEntry=%.5f execEntry=%.5f sl=%.5f tp=%.5f)", + setup_entry_price, execution_price, setup.stopLoss, setup.takeProfit)); + return false; + } + + // Broker minimal stop distance relative to current market execution price + double point = CUtilities::GetPoint(symbol); + long min_stop_points = (long)SymbolInfoInteger(symbol, SYMBOL_TRADE_STOPS_LEVEL); + if(min_stop_points < 0) + min_stop_points = 0; + double min_stop_distance = min_stop_points * point; + double actual_risk_distance = MathAbs(execution_price - setup.stopLoss); + if(actual_risk_distance <= 0.0) + { + if(mp_logger) + mp_logger.Warning(StringFormat("Trade setup rejected: non-positive risk distance after using execution price (execEntry=%.5f sl=%.5f)", + execution_price, setup.stopLoss)); + return false; + } + if(actual_risk_distance < min_stop_distance) + { + if(mp_logger) + mp_logger.Warning(StringFormat("Trade setup rejected: SL too close to current entry price (distance %.5f < broker stop level %.5f)", actual_risk_distance, min_stop_distance)); + return false; + } if(mp_logger && g_debug_mode) - mp_logger.Info(StringFormat("Lot size calculated: %.2f", lot)); + { + mp_logger.Info(StringFormat("Trade setup details: setupEntry=%.5f execEntry=%.5f diff=%.5f SL=%.5f TP=%.5f setupRisk=%.5f execRisk=%.5f reason=%s", + setup_entry_price, execution_price, setup_diff, setup.stopLoss, setup.takeProfit, setup.riskDistance, actual_risk_distance, setup.reason)); + } - return lot; + // Lot sizing: use actual execution entry-to-SL distance in price units + lot = CalculateLotByRisk(actual_risk_distance); + if(lot <= 0.0) + { + if(mp_logger) + mp_logger.Warning("Trade setup rejected: lot sizing failed or below broker minimum after execution price adjustment"); + return false; + } + + if(mp_logger && g_debug_mode) + { + double tick_size = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE); + double tick_value = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE); + mp_logger.Info(StringFormat("Trade setup validated: signal=%s setupEntry=%.5f execEntry=%.5f diff=%.5f SL=%.5f TP=%.5f execRisk=%.5f tickSize=%.8f tickValue=%.8f riskUsed=%.2f finalLot=%.6f reason=%s", + setup.signal == SIGNAL_BUY ? "BUY" : "SELL", + setup_entry_price, execution_price, setup_diff, + setup.stopLoss, setup.takeProfit, actual_risk_distance, + tick_size, tick_value, GetEffectiveRiskPercent(), lot, setup.reason)); + } + + return true; + + return true; } - // Check if spread is acceptable bool IsSpreadAcceptable() { int max_spread = g_max_spread_points; string symbol = mp_market_data.GetSymbol(); - // XAUUSD/gold normally trades with a much wider spread than forex if(StringFind(symbol, "XAU") >= 0 || StringFind(symbol, "GOLD") >= 0) { max_spread = MathMax(max_spread, 200); @@ -95,7 +207,6 @@ public: return mp_market_data.IsSpreadAcceptable(max_spread); } - // Check if trading is allowed by time filter bool IsTradingHourValid() { if(!g_use_trading_hours) @@ -107,23 +218,21 @@ public: if(g_trade_start_hour <= g_trade_end_hour) { - // Normal case: e.g., 8:00 to 20:00 if(current_hour < g_trade_start_hour || current_hour >= g_trade_end_hour) { if(mp_logger && g_debug_mode) - mp_logger.Info(StringFormat("Outside trading hours: %d (allowed: %d-%d)", - current_hour, g_trade_start_hour, g_trade_end_hour)); + mp_logger.Info(StringFormat("Outside trading hours: %d (allowed: %d-%d)", + current_hour, g_trade_start_hour, g_trade_end_hour)); return false; } } else { - // Overnight case: e.g., 20:00 to 8:00 if(current_hour < g_trade_start_hour && current_hour >= g_trade_end_hour) { if(mp_logger && g_debug_mode) - mp_logger.Info(StringFormat("Outside trading hours: %d (allowed: %d-%d)", - current_hour, g_trade_start_hour, g_trade_end_hour)); + mp_logger.Info(StringFormat("Outside trading hours: %d (allowed: %d-%d)", + current_hour, g_trade_start_hour, g_trade_end_hour)); return false; } } @@ -131,37 +240,103 @@ public: return true; } - // Calculate stop loss price in absolute terms - double CalculateStopLossPrice(bool buy) - { - double bid = mp_market_data.GetBid(); - double ask = mp_market_data.GetAsk(); - double entry_price = buy ? ask : bid; - double sl_distance = CUtilities::PointsToPrice(mp_market_data.GetSymbol(), g_stop_loss_points); - - double sl_price = buy ? (entry_price - sl_distance) : (entry_price + sl_distance); - - return CUtilities::NormalizePrice(mp_market_data.GetSymbol(), sl_price); - } - - // Calculate take profit price in absolute terms - double CalculateTakeProfitPrice(bool buy) - { - double bid = mp_market_data.GetBid(); - double ask = mp_market_data.GetAsk(); - double entry_price = buy ? ask : bid; - double tp_distance = CUtilities::PointsToPrice(mp_market_data.GetSymbol(), g_take_profit_points); - - double tp_price = buy ? (entry_price + tp_distance) : (entry_price - tp_distance); - - return CUtilities::NormalizePrice(mp_market_data.GetSymbol(), tp_price); - } - - // Get market data reference CMarketData* GetMarketData() { return mp_market_data; } + +private: + double GetEffectiveRiskPercent() + { + double risk_percent = g_risk_percent; + if(risk_percent > g_max_risk_percent) + { + if(mp_logger) + mp_logger.Warning(StringFormat("RiskPercent capped from %.2f%% to %.2f%% (MaxRiskPercent)", + risk_percent, g_max_risk_percent)); + risk_percent = g_max_risk_percent; + } + return risk_percent; + } + + double GetAtrValue(int shift) + { + string symbol = mp_market_data.GetSymbol(); + int atr_handle = iATR(symbol, g_strategy_entry_timeframe, g_atr_period); + if(atr_handle == INVALID_HANDLE) + return 0.0; + + double atr_value[]; + ArraySetAsSeries(atr_value, true); + ArrayResize(atr_value, 1); + if(CopyBuffer(atr_handle, 0, shift, 1, atr_value) <= 0) + { + IndicatorRelease(atr_handle); + return 0.0; + } + + double atr = atr_value[0]; + IndicatorRelease(atr_handle); + return atr; + } + + double ValidateLotSize(double lot) + { + string symbol = mp_market_data.GetSymbol(); + double min_lot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN); + double max_lot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX); + double lot_step = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP); + + if(min_lot <= 0.0 || max_lot <= 0.0 || lot_step <= 0.0 || max_lot < min_lot) + { + if(mp_logger) + mp_logger.Error("Invalid volume step or limits for symbol"); + return 0.0; + } + + if(lot <= 0.0) + return 0.0; + + double normalized = MathFloor(lot / lot_step) * lot_step; + if(normalized < min_lot || normalized > max_lot) + { + if(mp_logger && g_debug_mode) + mp_logger.Warning(StringFormat("Normalized lot %.2f outside allowed range [%.2f, %.2f]", normalized, min_lot, max_lot)); + return 0.0; + } + + normalized = NormalizeDouble(normalized, 2); + if(mp_logger && g_debug_mode) + mp_logger.Info(StringFormat("Lot size calculated: %.2f", normalized)); + + return normalized; + } + + bool IsSymbolValid(const string symbol) + { + if(!mp_market_data.IsTradingAllowed()) + { + if(mp_logger) + mp_logger.Error("Symbol trading is not allowed"); + return false; + } + + if(mp_market_data.GetPoint() <= 0.0) + { + if(mp_logger) + mp_logger.Error("Symbol point size is invalid"); + return false; + } + + if(CUtilities::GetContractSize(symbol) <= 0.0) + { + if(mp_logger) + mp_logger.Error("Symbol contract size is invalid"); + return false; + } + + return true; + } }; #endif //__RISKMANAGER_MQH__ diff --git a/Include/Signal.mqh b/Include/Signal.mqh index 3e83044..95aabc2 100644 --- a/Include/Signal.mqh +++ b/Include/Signal.mqh @@ -13,4 +13,15 @@ enum E_SIGNAL SIGNAL_SELL = -1 // Sell signal }; +struct TradeSetup +{ + E_SIGNAL signal; + double entryPrice; + double stopLoss; + double takeProfit; + double riskDistance; + double atrValue; + string reason; +}; + #endif //__SIGNAL_MQH__ diff --git a/Include/Strategy.mqh b/Include/Strategy.mqh index b0882e5..cea0236 100644 --- a/Include/Strategy.mqh +++ b/Include/Strategy.mqh @@ -1,6 +1,8 @@ //+------------------------------------------------------------------+ -//| Strategy.mqh - XAUUSD M15 EMA Pullback Continuation Strategy | -//| Trend direction on H1, pullback on M15, RSI and ATR confirmation | +//| Strategy.mqh - Sweep breakout multi-timeframe swing structure EA | +//| Implements trend filter on one timeframe and breakout setups on | +//| a lower signal timeframe using confirmed swing structure, ATR | +//| filtering, setup arming, and protected breakout entries. | //+------------------------------------------------------------------+ #ifndef __STRATEGY_MQH__ @@ -12,234 +14,967 @@ #include "Config.mqh" #include "Utilities.mqh" +// Local enums for strategy logic +enum E_TREND_STATE +{ + NO_TREND = 0, + UPTREND_ACTIVE = 1, + DOWNTREND_ACTIVE = -1, + TREND_BROKEN = 2, + WAITING_FOR_NEW_TREND = 3 +}; + +struct SSwing +{ + datetime time; + double price; + bool isHigh; + ENUM_TIMEFRAMES timeframe; + ulong id; +}; + +struct SArmedSetup +{ + bool active; + E_SIGNAL direction; + ulong setupID; + ulong trendID; + int barCountAtArm; + double triggerPrice; + bool traded; +}; + class CStrategy { private: - // Indicator handles - int m_ema_h1_fast_handle; - int m_ema_h1_slow_handle; - int m_ema_m15_fast_handle; - int m_rsi_m15_handle; - int m_atr_m15_handle; - - // References CMarketData *mp_market_data; CLogger *mp_logger; - // Timeframes - ENUM_TIMEFRAMES m_entry_timeframe; - ENUM_TIMEFRAMES m_trend_timeframe; + ENUM_TIMEFRAMES m_signal_timeframe; + ENUM_TIMEFRAMES m_filter_timeframe; - // Parameters - int m_trend_fast_ema_period; - int m_trend_slow_ema_period; - int m_entry_fast_ema_period; - int m_entry_pullback_ema_period; - int m_rsi_period; - int m_rsi_buy_threshold; - int m_rsi_sell_threshold; - int m_atr_period; - double m_last_atr_value; - bool m_use_atr_stops; - double m_atr_sl_multiplier; - double m_atr_tp_multiplier; + int m_signal_bar_count; + int m_filter_bar_count; + + int m_signal_atr_handle; + int m_filter_atr_handle; + + E_TREND_STATE m_filter_state; + ulong m_filter_trend_id; + int m_trades_taken_in_current_trend; + int m_cooldown_bars_remaining; + bool m_trend_broken_on_tick; + datetime m_trend_broken_time; + + SSwing m_signal_highs[]; + SSwing m_signal_lows[]; + SSwing m_filter_highs[]; + SSwing m_filter_lows[]; + ulong m_used_setup_ids[]; + + SArmedSetup m_buy_setup; + SArmedSetup m_sell_setup; + + bool m_initialized; public: - // Constructor CStrategy(CMarketData *market_data, CLogger *logger) { mp_market_data = market_data; mp_logger = logger; - m_ema_h1_fast_handle = INVALID_HANDLE; - m_ema_h1_slow_handle = INVALID_HANDLE; - m_ema_m15_fast_handle = INVALID_HANDLE; - m_rsi_m15_handle = INVALID_HANDLE; - m_atr_m15_handle = INVALID_HANDLE; - m_last_atr_value = 0.0; - - m_entry_timeframe = g_strategy_entry_timeframe; - m_trend_timeframe = g_strategy_trend_timeframe; - m_trend_fast_ema_period = g_trend_fast_ema_period; - m_trend_slow_ema_period = g_trend_slow_ema_period; - m_entry_fast_ema_period = g_entry_fast_ema_period; - m_entry_pullback_ema_period = g_entry_pullback_ema_period; - m_rsi_period = g_rsi_period; - m_rsi_buy_threshold = g_rsi_buy_threshold; - m_rsi_sell_threshold = g_rsi_sell_threshold; - m_atr_period = g_atr_period; - m_use_atr_stops = g_use_atr_stops; - m_atr_sl_multiplier = g_atr_sl_multiplier; - m_atr_tp_multiplier = g_atr_tp_multiplier; + m_signal_timeframe = g_strategy_entry_timeframe; + m_filter_timeframe = g_strategy_trend_timeframe; + m_signal_bar_count = 0; + m_filter_bar_count = 0; + m_signal_atr_handle = INVALID_HANDLE; + m_filter_atr_handle = INVALID_HANDLE; + m_calls = 0; + m_filter_state = NO_TREND; + m_filter_trend_id = 0; + m_trades_taken_in_current_trend = 0; + m_cooldown_bars_remaining = 0; + m_trend_broken_on_tick = false; + m_trend_broken_time = 0; + m_buy_setup.active = false; + m_sell_setup.active = false; + m_buy_setup.traded = false; + m_sell_setup.traded = false; + m_initialized = false; } - // Destructor - clean up indicator handles ~CStrategy() { Cleanup(); } - // Initialize strategy and create indicator handles bool Init() { const string symbol = mp_market_data.GetSymbol(); - m_ema_h1_fast_handle = iMA(symbol, m_trend_timeframe, - m_trend_fast_ema_period, 0, MODE_EMA, PRICE_CLOSE); - if(m_ema_h1_fast_handle == INVALID_HANDLE) + if(g_use_atr_filter) + { + m_signal_atr_handle = iATR(symbol, m_signal_timeframe, g_atr_period); + if(m_signal_atr_handle == INVALID_HANDLE) + { + if(mp_logger) + mp_logger.Error("Failed to create ATR indicator for signal timeframe"); + return false; + } + + m_filter_atr_handle = iATR(symbol, m_filter_timeframe, g_atr_period); + if(m_filter_atr_handle == INVALID_HANDLE) + { + if(mp_logger) + mp_logger.Error("Failed to create ATR indicator for filter timeframe"); + IndicatorRelease(m_signal_atr_handle); + m_signal_atr_handle = INVALID_HANDLE; + return false; + } + } + + m_signal_bar_count = iBars(symbol, m_signal_timeframe); + m_filter_bar_count = iBars(symbol, m_filter_timeframe); + if(m_signal_bar_count <= 0 || m_filter_bar_count <= 0) { if(mp_logger) - mp_logger.Error("Failed to create H1 EMA fast indicator"); + mp_logger.Error("Unable to read bars for configured timeframes"); return false; } - m_ema_h1_slow_handle = iMA(symbol, m_trend_timeframe, - m_trend_slow_ema_period, 0, MODE_EMA, PRICE_CLOSE); - if(m_ema_h1_slow_handle == INVALID_HANDLE) - { - if(mp_logger) - mp_logger.Error("Failed to create H1 EMA slow indicator"); - IndicatorRelease(m_ema_h1_fast_handle); - m_ema_h1_fast_handle = INVALID_HANDLE; - return false; - } - - m_ema_m15_fast_handle = iMA(symbol, m_entry_timeframe, - m_entry_fast_ema_period, 0, MODE_EMA, PRICE_CLOSE); - if(m_ema_m15_fast_handle == INVALID_HANDLE) - { - if(mp_logger) - mp_logger.Error("Failed to create M15 EMA fast indicator"); - IndicatorRelease(m_ema_h1_fast_handle); - m_ema_h1_fast_handle = INVALID_HANDLE; - IndicatorRelease(m_ema_h1_slow_handle); - m_ema_h1_slow_handle = INVALID_HANDLE; - return false; - } - - m_rsi_m15_handle = iRSI(symbol, m_entry_timeframe, m_rsi_period, PRICE_CLOSE); - if(m_rsi_m15_handle == INVALID_HANDLE) - { - if(mp_logger) - mp_logger.Error("Failed to create M15 RSI indicator"); - ReleaseAllHandles(); - return false; - } - - m_atr_m15_handle = iATR(symbol, m_entry_timeframe, m_atr_period); - if(m_atr_m15_handle == INVALID_HANDLE) - { - if(mp_logger) - mp_logger.Error("Failed to create M15 ATR indicator"); - ReleaseAllHandles(); - return false; - } - - if(mp_logger) - mp_logger.Info("Strategy (M15 EMA Pullback Continuation) initialized successfully"); + ScanConfirmedSwings(m_filter_timeframe, g_filter_swing_depth, m_filter_highs, m_filter_lows); + ScanConfirmedSwings(m_signal_timeframe, g_signal_swing_depth, m_signal_highs, m_signal_lows); + UpdateFilterTrendState(); + m_initialized = true; return true; } - // Generate trading signal based on H1 trend and M15 pullback continuation E_SIGNAL GetSignal() { + return GetTradeSetup().signal; + } + + TradeSetup GetTradeSetup() + { + TradeSetup setup; + setup.signal = SIGNAL_NONE; + setup.entryPrice = 0.0; + setup.stopLoss = 0.0; + setup.takeProfit = 0.0; + setup.riskDistance = 0.0; + setup.atrValue = 0.0; + setup.reason = "No valid setup"; + const string symbol = mp_market_data.GetSymbol(); + m_calls++; - double ema_h1_fast = iGetIndicatorValue(m_ema_h1_fast_handle, 1); - double ema_h1_slow = iGetIndicatorValue(m_ema_h1_slow_handle, 1); - if(ema_h1_fast == 0.0 || ema_h1_slow == 0.0) - return SIGNAL_NONE; - - double ema_m15_fast_last = iGetIndicatorValue(m_ema_m15_fast_handle, 1); - if(ema_m15_fast_last == 0.0) - return SIGNAL_NONE; - - double close_last = iClose(symbol, m_entry_timeframe, 1); - double open_last = iOpen(symbol, m_entry_timeframe, 1); - - if(close_last <= 0.0 || open_last <= 0.0) - return SIGNAL_NONE; - - if(ema_h1_fast > ema_h1_slow) + if(!m_initialized) { - bool entry_condition = (close_last > ema_m15_fast_last && close_last > open_last); - - if(entry_condition) + if(!Init()) { - if(mp_logger && g_debug_mode) - mp_logger.Info(StringFormat("BUY Signal: H1 EMA50=%.5f > EMA200=%.5f, M15 close=%.5f > EMA20=%.5f", - ema_h1_fast, ema_h1_slow, close_last, ema_m15_fast_last)); - return SIGNAL_BUY; - } - } - else if(ema_h1_fast < ema_h1_slow) - { - bool entry_condition = (close_last < ema_m15_fast_last && close_last < open_last); - - if(entry_condition) - { - if(mp_logger && g_debug_mode) - mp_logger.Info(StringFormat("SELL Signal: H1 EMA50=%.5f < EMA200=%.5f, M15 close=%.5f < EMA20=%.5f", - ema_h1_fast, ema_h1_slow, close_last, ema_m15_fast_last)); - return SIGNAL_SELL; + setup.reason = "Strategy initialization failed"; + return setup; } } - return SIGNAL_NONE; + m_trend_broken_on_tick = false; + + int filter_bar_count = iBars(symbol, m_filter_timeframe); + bool filter_new_bar = (filter_bar_count > m_filter_bar_count); + if(filter_new_bar) + m_filter_bar_count = filter_bar_count; + + int signal_bar_count = iBars(symbol, m_signal_timeframe); + bool signal_new_bar = (signal_bar_count > m_signal_bar_count); + if(signal_new_bar) + m_signal_bar_count = signal_bar_count; + + if(filter_new_bar) + ScanConfirmedSwings(m_filter_timeframe, g_filter_swing_depth, m_filter_highs, m_filter_lows); + if(signal_new_bar) + ScanConfirmedSwings(m_signal_timeframe, g_signal_swing_depth, m_signal_highs, m_signal_lows); + + UpdateFilterTrendState(); + EvaluateTrendBreak(filter_new_bar); + + if(signal_new_bar) + { + ExpireSetups(); + ArmSetups(); + } + + if(m_trend_broken_on_tick) + { + setup.reason = "Filter trend broken on current tick"; + return setup; + } + + if(m_filter_state != UPTREND_ACTIVE && m_filter_state != DOWNTREND_ACTIVE) + { + setup.reason = "No active filter trend"; + return setup; + } + + if(!mp_market_data.IsSpreadAcceptable(g_strategy_max_spread_points)) + { + setup.reason = "Spread too wide for breakout entry"; + return setup; + } + + if(GetOpenPositionCount(symbol) >= g_strategy_max_open_positions) + { + setup.reason = "Maximum open positions achieved"; + return setup; + } + + if(m_buy_setup.active && m_buy_setup.direction == SIGNAL_BUY) + { + if(m_filter_state == UPTREND_ACTIVE && m_buy_setup.trendID == m_filter_trend_id && !m_buy_setup.traded) + { + if(!IsSetupExpired(m_buy_setup)) + { + double ask = mp_market_data.GetAsk(); + double buffer = CUtilities::PointsToPrice(symbol, g_entry_buffer_points); + double threshold = m_buy_setup.triggerPrice + (g_use_breakout_entry ? buffer : 0.0); + if(ask > threshold) + { + double stop_loss = CalculateStopLoss(symbol, SIGNAL_BUY, ask); + double take_profit = CalculateTakeProfit(symbol, SIGNAL_BUY, ask, stop_loss); + if(IsTradeLevelSetValid(SIGNAL_BUY, ask, stop_loss, take_profit)) + { + setup.signal = SIGNAL_BUY; + setup.entryPrice = ask; + setup.stopLoss = CUtilities::NormalizePrice(symbol, stop_loss); + setup.takeProfit = CUtilities::NormalizePrice(symbol, take_profit); + setup.riskDistance = MathAbs(ask - stop_loss); + setup.atrValue = GetLatestATRValue(m_signal_timeframe, 1); + setup.reason = StringFormat("BUY breakout signal: FilterTrendID=%I64u SetupID=%I64u trigger=%.5f", + m_filter_trend_id, m_buy_setup.setupID, m_buy_setup.triggerPrice); + MarkSetupTraded(m_buy_setup); + return setup; + } + setup.reason = "BUY breakout rejected: invalid SL/TP"; + } + } + } + } + + if(m_sell_setup.active && m_sell_setup.direction == SIGNAL_SELL) + { + if(m_filter_state == DOWNTREND_ACTIVE && m_sell_setup.trendID == m_filter_trend_id && !m_sell_setup.traded) + { + if(!IsSetupExpired(m_sell_setup)) + { + double bid = mp_market_data.GetBid(); + double buffer = CUtilities::PointsToPrice(symbol, g_entry_buffer_points); + double threshold = m_sell_setup.triggerPrice - (g_use_breakout_entry ? buffer : 0.0); + if(bid < threshold) + { + double stop_loss = CalculateStopLoss(symbol, SIGNAL_SELL, bid); + double take_profit = CalculateTakeProfit(symbol, SIGNAL_SELL, bid, stop_loss); + if(IsTradeLevelSetValid(SIGNAL_SELL, bid, stop_loss, take_profit)) + { + setup.signal = SIGNAL_SELL; + setup.entryPrice = bid; + setup.stopLoss = CUtilities::NormalizePrice(symbol, stop_loss); + setup.takeProfit = CUtilities::NormalizePrice(symbol, take_profit); + setup.riskDistance = MathAbs(stop_loss - bid); + setup.atrValue = GetLatestATRValue(m_signal_timeframe, 1); + setup.reason = StringFormat("SELL breakout signal: FilterTrendID=%I64u SetupID=%I64u trigger=%.5f", + m_filter_trend_id, m_sell_setup.setupID, m_sell_setup.triggerPrice); + MarkSetupTraded(m_sell_setup); + return setup; + } + setup.reason = "SELL breakout rejected: invalid SL/TP"; + } + } + } + } + + setup.reason = "No valid breakout trigger"; + return setup; } - double GetLastAtrValue() const + void LogDiagnostics() { - return m_last_atr_value; - } - - void Cleanup() - { - ReleaseAllHandles(); + if(mp_logger && g_debug_mode) + { + mp_logger.Info(StringFormat("Strategy diagnostics: calls=%I64d state=%d FilterTrendID=%I64u tradesInTrend=%d buyActive=%s sellActive=%s", + m_calls, m_filter_state, m_filter_trend_id, m_trades_taken_in_current_trend, + m_buy_setup.active ? "true" : "false", + m_sell_setup.active ? "true" : "false")); + } } private: - void ReleaseAllHandles() + long m_calls; + + void Cleanup() { - if(m_ema_h1_fast_handle != INVALID_HANDLE) + if(m_signal_atr_handle != INVALID_HANDLE) { - IndicatorRelease(m_ema_h1_fast_handle); - m_ema_h1_fast_handle = INVALID_HANDLE; + IndicatorRelease(m_signal_atr_handle); + m_signal_atr_handle = INVALID_HANDLE; } - if(m_ema_h1_slow_handle != INVALID_HANDLE) + if(m_filter_atr_handle != INVALID_HANDLE && m_filter_atr_handle != m_signal_atr_handle) { - IndicatorRelease(m_ema_h1_slow_handle); - m_ema_h1_slow_handle = INVALID_HANDLE; - } - if(m_ema_m15_fast_handle != INVALID_HANDLE) - { - IndicatorRelease(m_ema_m15_fast_handle); - m_ema_m15_fast_handle = INVALID_HANDLE; - } - if(m_rsi_m15_handle != INVALID_HANDLE) - { - IndicatorRelease(m_rsi_m15_handle); - m_rsi_m15_handle = INVALID_HANDLE; - } - if(m_atr_m15_handle != INVALID_HANDLE) - { - IndicatorRelease(m_atr_m15_handle); - m_atr_m15_handle = INVALID_HANDLE; + IndicatorRelease(m_filter_atr_handle); + m_filter_atr_handle = INVALID_HANDLE; } } - double iGetIndicatorValue(int handle, int shift) + double GetLatestATRValue(ENUM_TIMEFRAMES timeframe, int shift) { + if(!g_use_atr_filter) + return 0.0; + + int handle = (timeframe == m_signal_timeframe) ? m_signal_atr_handle : m_filter_atr_handle; if(handle == INVALID_HANDLE) return 0.0; - double value[1]; + double value[]; ArraySetAsSeries(value, true); + ArrayResize(value, 1); if(CopyBuffer(handle, 0, shift, 1, value) <= 0) return 0.0; return value[0]; } + + bool ScanConfirmedSwings(ENUM_TIMEFRAMES timeframe, int depth, SSwing &highs[], SSwing &lows[]) + { + const string symbol = mp_market_data.GetSymbol(); + int barCount = iBars(symbol, timeframe); + if(barCount < (depth * 2 + 3)) + return false; + + int request = MathMin(barCount, depth * 20 + 50); + if(request < (depth * 2 + 3)) + request = depth * 2 + 3; + + MqlRates rates[]; + ArraySetAsSeries(rates, true); + ArrayResize(rates, request); + int copied = CopyRates(symbol, timeframe, 0, request, rates); + if(copied <= 0) + return false; + ArrayResize(rates, copied); + + for(int index = depth + 1; index < copied - depth; index++) + { + if(IsSwingHigh(rates, index, depth)) + { + SSwing swing; + swing.time = rates[index].time; + swing.price = rates[index].high; + swing.isHigh = true; + swing.timeframe = timeframe; + swing.id = ((ulong)swing.time << 8) | (ulong)timeframe; + if(!SwingExists(swing, highs)) + { + if(!IsSwingTooSmall(symbol, swing, lows)) + AddSwing(highs, swing); + } + } + else if(IsSwingLow(rates, index, depth)) + { + SSwing swing; + swing.time = rates[index].time; + swing.price = rates[index].low; + swing.isHigh = false; + swing.timeframe = timeframe; + swing.id = ((ulong)swing.time << 8) | (ulong)timeframe; + if(!SwingExists(swing, lows)) + { + if(!IsSwingTooSmall(symbol, swing, highs)) + AddSwing(lows, swing); + } + } + } + + TrimSwings(highs, 64); + TrimSwings(lows, 64); + return true; + } + + bool IsSwingHigh(MqlRates &rates[], int index, int depth) + { + double price = rates[index].high; + for(int offset = 1; offset <= depth; offset++) + { + if(price <= rates[index - offset].high || price <= rates[index + offset].high) + return false; + } + return true; + } + + bool IsSwingLow(MqlRates &rates[], int index, int depth) + { + double price = rates[index].low; + for(int offset = 1; offset <= depth; offset++) + { + if(price >= rates[index - offset].low || price >= rates[index + offset].low) + return false; + } + return true; + } + + bool SwingExists(const SSwing &swing, SSwing &array[]) const + { + for(int i = 0; i < ArraySize(array); i++) + { + if(array[i].id == swing.id) + return true; + } + return false; + } + + void AddSwing(SSwing &array[], const SSwing &swing) + { + ArrayResize(array, ArraySize(array) + 1); + array[ArraySize(array) - 1] = swing; + } + + void TrimSwings(SSwing &array[], int keep) + { + int size = ArraySize(array); + if(size <= keep) + return; + int remove = size - keep; + for(int i = 0; i < keep; i++) + array[i] = array[i + remove]; + ArrayResize(array, keep); + } + + bool IsSwingTooSmall(const string symbol, const SSwing &swing, SSwing &oppositeSwings[]) + { + if(!g_use_atr_filter) + return false; + + double atrValue = GetLatestATRValue(swing.timeframe, 1); + if(atrValue <= 0.0) + return false; + + double minDistance = atrValue * g_min_swing_atr_multiplier; + double lastOpposite = GetLastOppositeSwingPriceBefore(oppositeSwings, swing.time); + if(lastOpposite <= 0.0) + return false; + + if(swing.isHigh) + return (swing.price - lastOpposite) < minDistance; + return (lastOpposite - swing.price) < minDistance; + } + + double GetLastOppositeSwingPriceBefore(SSwing &swings[], datetime beforeTime) const + { + double price = 0.0; + for(int i = ArraySize(swings) - 1; i >= 0; i--) + { + if(swings[i].time < beforeTime) + { + price = swings[i].price; + break; + } + } + return price; + } + + void UpdateFilterTrendState() + { + E_TREND_STATE detected = DetectFilterTrend(); + if(detected == m_filter_state && (m_filter_state == UPTREND_ACTIVE || m_filter_state == DOWNTREND_ACTIVE)) + return; + + if(detected == UPTREND_ACTIVE || detected == DOWNTREND_ACTIVE) + { + if(m_filter_state == TREND_BROKEN) + return; + + if(m_filter_state == WAITING_FOR_NEW_TREND && !IsFreshFilterTrendAfterBreak()) + return; + + if(m_filter_state != detected) + StartNewFilterTrend(detected); + } + else if(m_filter_state == TREND_BROKEN && detected != TREND_BROKEN) + { + // remain in broken/waiting until a new trend is clearly established + if(m_cooldown_bars_remaining <= 0) + m_filter_state = WAITING_FOR_NEW_TREND; + } + else if(m_filter_state == WAITING_FOR_NEW_TREND && detected == NO_TREND) + { + // remain waiting until a fresh trend forms + } + else if(m_filter_state == NO_TREND && detected == NO_TREND) + { + // no state change + } + } + + void StartNewFilterTrend(E_TREND_STATE detected) + { + m_filter_trend_id++; + m_trades_taken_in_current_trend = 0; + m_cooldown_bars_remaining = 0; + m_filter_state = detected; + m_buy_setup.active = false; + m_sell_setup.active = false; + m_buy_setup.traded = false; + m_sell_setup.traded = false; + ArrayResize(m_used_setup_ids, 0); + if(mp_logger && g_debug_mode) + mp_logger.Info(StringFormat("New filter trend detected: %d, FilterTrendID=%I64u", detected, m_filter_trend_id)); + } + + bool IsFreshFilterTrendAfterBreak() + { + if(m_trend_broken_time <= 0) + return true; + datetime lastHighTime = GetLastSwingTime(m_filter_highs); + datetime lastLowTime = GetLastSwingTime(m_filter_lows); + return (lastHighTime > m_trend_broken_time && lastLowTime > m_trend_broken_time); + } + + E_TREND_STATE DetectFilterTrend() const + { + if(ArraySize(m_filter_highs) < (g_filter_trend_confirm_count + 1) || ArraySize(m_filter_lows) < (g_filter_trend_confirm_count + 1)) + return NO_TREND; + + bool higherHighs = true; + for(int i = ArraySize(m_filter_highs) - g_filter_trend_confirm_count - 1; i < ArraySize(m_filter_highs) - 1; i++) + { + if(m_filter_highs[i + 1].price <= m_filter_highs[i].price) + { + higherHighs = false; + break; + } + } + + bool higherLows = true; + for(int i = ArraySize(m_filter_lows) - g_filter_trend_confirm_count - 1; i < ArraySize(m_filter_lows) - 1; i++) + { + if(m_filter_lows[i + 1].price <= m_filter_lows[i].price) + { + higherLows = false; + break; + } + } + + if(higherHighs && higherLows) + return UPTREND_ACTIVE; + + bool lowerHighs = true; + for(int i = ArraySize(m_filter_highs) - g_filter_trend_confirm_count - 1; i < ArraySize(m_filter_highs) - 1; i++) + { + if(m_filter_highs[i + 1].price >= m_filter_highs[i].price) + { + lowerHighs = false; + break; + } + } + + bool lowerLows = true; + for(int i = ArraySize(m_filter_lows) - g_filter_trend_confirm_count - 1; i < ArraySize(m_filter_lows) - 1; i++) + { + if(m_filter_lows[i + 1].price >= m_filter_lows[i].price) + { + lowerLows = false; + break; + } + } + + if(lowerHighs && lowerLows) + return DOWNTREND_ACTIVE; + + return NO_TREND; + } + + void EvaluateTrendBreak(bool filter_new_bar) + { + if(m_filter_state != UPTREND_ACTIVE && m_filter_state != DOWNTREND_ACTIVE) + { + if(m_filter_state == TREND_BROKEN && filter_new_bar) + { + if(m_cooldown_bars_remaining > 0) + m_cooldown_bars_remaining--; + if(m_cooldown_bars_remaining <= 0) + m_filter_state = WAITING_FOR_NEW_TREND; + } + return; + } + + const string symbol = mp_market_data.GetSymbol(); + double buffer = CUtilities::PointsToPrice(symbol, g_break_buffer_points); + + if(m_filter_state == UPTREND_ACTIVE) + { + double swingLow = GetLastSwingPrice(m_filter_lows); + if(swingLow <= 0.0) + return; + + bool broken = false; + if(g_trend_break_mode == BREAK_MODE_BID_ASK_TOUCH) + broken = (mp_market_data.GetBid() <= swingLow - buffer); + else + { + double last_close = iClose(symbol, m_filter_timeframe, 1); + broken = (last_close > 0.0 && last_close <= swingLow - buffer); + } + + if(broken) + { + m_filter_state = TREND_BROKEN; + m_trend_broken_on_tick = true; + m_trend_broken_time = iTime(symbol, m_filter_timeframe, 1); + if(m_trend_broken_time <= 0) + m_trend_broken_time = TimeCurrent(); + m_cooldown_bars_remaining = g_cooldown_bars_after_trend_break; + CancelSetups("Filter uptrend broken"); + if(mp_logger && g_debug_mode) + mp_logger.Info("Filter uptrend broken"); + } + } + else if(m_filter_state == DOWNTREND_ACTIVE) + { + double swingHigh = GetLastSwingPrice(m_filter_highs); + if(swingHigh <= 0.0) + return; + + bool broken = false; + if(g_trend_break_mode == BREAK_MODE_BID_ASK_TOUCH) + broken = (mp_market_data.GetAsk() >= swingHigh + buffer); + else + { + double last_close = iClose(symbol, m_filter_timeframe, 1); + broken = (last_close > 0.0 && last_close >= swingHigh + buffer); + } + + if(broken) + { + m_filter_state = TREND_BROKEN; + m_trend_broken_on_tick = true; + m_trend_broken_time = iTime(symbol, m_filter_timeframe, 1); + if(m_trend_broken_time <= 0) + m_trend_broken_time = TimeCurrent(); + m_cooldown_bars_remaining = g_cooldown_bars_after_trend_break; + CancelSetups("Filter downtrend broken"); + if(mp_logger && g_debug_mode) + mp_logger.Info("Filter downtrend broken"); + } + } + } + + double GetLastSwingPrice(SSwing &swings[]) const + { + int size = ArraySize(swings); + if(size <= 0) + return 0.0; + return swings[size - 1].price; + } + + void CancelSetups(const string reason) + { + if(m_buy_setup.active) + { + AddUsedSetupID(m_buy_setup.setupID); + m_buy_setup.active = false; + m_buy_setup.traded = true; + } + if(m_sell_setup.active) + { + AddUsedSetupID(m_sell_setup.setupID); + m_sell_setup.active = false; + m_sell_setup.traded = true; + } + if(mp_logger && g_debug_mode) + mp_logger.Info("Canceling setups due to trend break: " + reason); + } + + void ArmSetups() + { + const string symbol = mp_market_data.GetSymbol(); + if(m_trades_taken_in_current_trend >= g_max_trades_per_filter_trend) + return; + + if(m_filter_state == UPTREND_ACTIVE && !m_buy_setup.active) + { + if(HasBullishSignalStructure()) + { + double trigger = GetLastSwingPrice(m_signal_highs); + ulong setupID = ((ulong)GetLastSwingTime(m_signal_highs) << 8) | (ulong)m_signal_timeframe; + if(trigger > 0.0 && setupID > 0 && !IsSetupIDUsed(setupID) && mp_market_data.IsSpreadAcceptable(g_strategy_max_spread_points)) + { + m_buy_setup.active = true; + m_buy_setup.direction = SIGNAL_BUY; + m_buy_setup.setupID = setupID; + m_buy_setup.trendID = m_filter_trend_id; + m_buy_setup.barCountAtArm = m_signal_bar_count; + m_buy_setup.triggerPrice = trigger; + m_buy_setup.traded = false; + if(mp_logger && g_debug_mode) + mp_logger.Info(StringFormat("Armed BUY setup: trigger=%.5f trendID=%I64u", trigger, m_filter_trend_id)); + } + } + } + + if(m_filter_state == DOWNTREND_ACTIVE && !m_sell_setup.active) + { + if(HasBearishSignalStructure()) + { + double trigger = GetLastSwingPrice(m_signal_lows); + ulong setupID = ((ulong)GetLastSwingTime(m_signal_lows) << 8) | (ulong)m_signal_timeframe; + if(trigger > 0.0 && setupID > 0 && !IsSetupIDUsed(setupID) && mp_market_data.IsSpreadAcceptable(g_strategy_max_spread_points)) + { + m_sell_setup.active = true; + m_sell_setup.direction = SIGNAL_SELL; + m_sell_setup.setupID = setupID; + m_sell_setup.trendID = m_filter_trend_id; + m_sell_setup.barCountAtArm = m_signal_bar_count; + m_sell_setup.triggerPrice = trigger; + m_sell_setup.traded = false; + if(mp_logger && g_debug_mode) + mp_logger.Info(StringFormat("Armed SELL setup: trigger=%.5f trendID=%I64u", trigger, m_filter_trend_id)); + } + } + } + } + + datetime GetLastSwingTime(SSwing &swings[]) const + { + int size = ArraySize(swings); + if(size <= 0) + return 0; + return swings[size - 1].time; + } + + bool HasBullishSignalStructure() const + { + return DetectSignalTrend(g_signal_trend_confirm_count) == UPTREND_ACTIVE; + } + + bool HasBearishSignalStructure() const + { + return DetectSignalTrend(g_signal_trend_confirm_count) == DOWNTREND_ACTIVE; + } + + E_TREND_STATE DetectSignalTrend(int confirmCount) const + { + if(ArraySize(m_signal_highs) < (confirmCount + 1) || ArraySize(m_signal_lows) < (confirmCount + 1)) + return NO_TREND; + + bool higherHighs = true; + for(int i = ArraySize(m_signal_highs) - confirmCount - 1; i < ArraySize(m_signal_highs) - 1; i++) + { + if(m_signal_highs[i + 1].price <= m_signal_highs[i].price) + { + higherHighs = false; + break; + } + } + + bool higherLows = true; + for(int i = ArraySize(m_signal_lows) - confirmCount - 1; i < ArraySize(m_signal_lows) - 1; i++) + { + if(m_signal_lows[i + 1].price <= m_signal_lows[i].price) + { + higherLows = false; + break; + } + } + + if(higherHighs && higherLows) + return UPTREND_ACTIVE; + + bool lowerHighs = true; + for(int i = ArraySize(m_signal_highs) - confirmCount - 1; i < ArraySize(m_signal_highs) - 1; i++) + { + if(m_signal_highs[i + 1].price >= m_signal_highs[i].price) + { + lowerHighs = false; + break; + } + } + + bool lowerLows = true; + for(int i = ArraySize(m_signal_lows) - confirmCount - 1; i < ArraySize(m_signal_lows) - 1; i++) + { + if(m_signal_lows[i + 1].price >= m_signal_lows[i].price) + { + lowerLows = false; + break; + } + } + + if(lowerHighs && lowerLows) + return DOWNTREND_ACTIVE; + + return NO_TREND; + } + + void ExpireSetups() + { + if(m_buy_setup.active && IsSetupExpired(m_buy_setup)) + { + AddUsedSetupID(m_buy_setup.setupID); + m_buy_setup.active = false; + m_buy_setup.traded = true; + if(mp_logger && g_debug_mode) + mp_logger.Info("Expired BUY setup due to age or trend change"); + } + if(m_sell_setup.active && IsSetupExpired(m_sell_setup)) + { + AddUsedSetupID(m_sell_setup.setupID); + m_sell_setup.active = false; + m_sell_setup.traded = true; + if(mp_logger && g_debug_mode) + mp_logger.Info("Expired SELL setup due to age or trend change"); + } + } + + bool IsSetupExpired(const SArmedSetup &setup) const + { + if(!setup.active) + return true; + if(setup.traded) + return true; + if(setup.trendID != m_filter_trend_id) + return true; + if(setup.direction == SIGNAL_BUY && m_filter_state != UPTREND_ACTIVE) + return true; + if(setup.direction == SIGNAL_SELL && m_filter_state != DOWNTREND_ACTIVE) + return true; + if(g_signal_expiration_bars >= 0 && (m_signal_bar_count - setup.barCountAtArm) >= g_signal_expiration_bars) + return true; + return false; + } + + void MarkSetupTraded(SArmedSetup &setup) + { + AddUsedSetupID(setup.setupID); + setup.traded = true; + setup.active = false; + m_trades_taken_in_current_trend++; + } + + bool IsSetupIDUsed(ulong setupID) const + { + for(int i = 0; i < ArraySize(m_used_setup_ids); i++) + { + if(m_used_setup_ids[i] == setupID) + return true; + } + return false; + } + + void AddUsedSetupID(ulong setupID) + { + if(setupID == 0 || IsSetupIDUsed(setupID)) + return; + int size = ArraySize(m_used_setup_ids); + ArrayResize(m_used_setup_ids, size + 1); + m_used_setup_ids[size] = setupID; + } + + int GetOpenPositionCount(const string symbol) const + { + int count = 0; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong ticket = PositionGetTicket(i); + if(ticket == 0) + continue; + if(!PositionSelectByTicket(ticket)) + continue; + if(PositionGetString(POSITION_SYMBOL) == symbol && PositionGetInteger(POSITION_MAGIC) == g_magic_number) + count++; + } + return count; + } + + double CalculateStopLoss(const string symbol, E_SIGNAL direction, double entryPrice) + { + double point = CUtilities::GetPoint(symbol); + double stopLoss = 0.0; + + if(g_stop_loss_mode == STOP_LOSS_STRUCTURE) + { + if(direction == SIGNAL_BUY) + { + double swingLow = GetLastSwingPrice(m_signal_lows); + if(swingLow > 0.0) + stopLoss = swingLow - g_sl_buffer_points * point; + } + else if(direction == SIGNAL_SELL) + { + double swingHigh = GetLastSwingPrice(m_signal_highs); + if(swingHigh > 0.0) + stopLoss = swingHigh + g_sl_buffer_points * point; + } + } + else if(g_stop_loss_mode == STOP_LOSS_POINTS) + { + double distance = CUtilities::PointsToPrice(symbol, g_sl_points); + stopLoss = (direction == SIGNAL_BUY) ? entryPrice - distance : entryPrice + distance; + } + else if(g_stop_loss_mode == STOP_LOSS_PERCENT) + { + double distance = MathAbs(entryPrice) * (g_sl_percent / 100.0); + stopLoss = (direction == SIGNAL_BUY) ? entryPrice - distance : entryPrice + distance; + } + + stopLoss = CUtilities::NormalizePrice(symbol, stopLoss); + if(direction == SIGNAL_BUY && stopLoss >= entryPrice) + return 0.0; + if(direction == SIGNAL_SELL && stopLoss <= entryPrice) + return 0.0; + return stopLoss; + } + + double CalculateTakeProfit(const string symbol, E_SIGNAL direction, double entryPrice, double stopLoss) + { + double tp = 0.0; + double riskDistance = MathAbs(entryPrice - stopLoss); + + if(g_take_profit_mode == TAKE_PROFIT_POINTS) + { + double distance = CUtilities::PointsToPrice(symbol, g_tp_points); + tp = (direction == SIGNAL_BUY) ? entryPrice + distance : entryPrice - distance; + } + else if(g_take_profit_mode == TAKE_PROFIT_PERCENT) + { + double distance = MathAbs(entryPrice) * (g_tp_percent / 100.0); + tp = (direction == SIGNAL_BUY) ? entryPrice + distance : entryPrice - distance; + } + else if(g_take_profit_mode == TAKE_PROFIT_RISK_REWARD) + { + tp = (direction == SIGNAL_BUY) ? entryPrice + riskDistance * g_risk_reward_ratio : entryPrice - riskDistance * g_risk_reward_ratio; + } + + tp = CUtilities::NormalizePrice(symbol, tp); + if(direction == SIGNAL_BUY && tp <= entryPrice) + return 0.0; + if(direction == SIGNAL_SELL && tp >= entryPrice) + return 0.0; + return tp; + } + + bool IsTradeLevelSetValid(E_SIGNAL direction, double entryPrice, double stopLoss, double takeProfit) const + { + if(stopLoss <= 0.0) + return false; + if(direction == SIGNAL_BUY && stopLoss >= entryPrice) + return false; + if(direction == SIGNAL_SELL && stopLoss <= entryPrice) + return false; + if(takeProfit <= 0.0) + return false; + if(direction == SIGNAL_BUY && takeProfit <= entryPrice) + return false; + if(direction == SIGNAL_SELL && takeProfit >= entryPrice) + return false; + return true; + } }; #endif //__STRATEGY_MQH__ diff --git a/Include/TradeManager.mqh b/Include/TradeManager.mqh index c88b8c3..1f7b720 100644 --- a/Include/TradeManager.mqh +++ b/Include/TradeManager.mqh @@ -1,6 +1,6 @@ //+------------------------------------------------------------------+ //| TradeManager.mqh - Trade execution using CTrade class | -//| Handles buy/sell orders with SL/TP and magic number | +//| Handles buy/sell orders with explicit SL/TP and risk controls | //+------------------------------------------------------------------+ #ifndef __TRADEMANAGER_MQH__ @@ -19,100 +19,105 @@ private: CRiskManager *mp_risk_manager; public: - // Constructor CTradeManager(CLogger *logger, CRiskManager *risk_manager) { mp_logger = logger; mp_risk_manager = risk_manager; - - // Set magic number m_trade.SetExpertMagicNumber((ulong)g_magic_number); - - // Set async/sync mode m_trade.SetAsyncMode(false); - - // Set slippage m_trade.SetDeviationInPoints(10); } - // Destructor ~CTradeManager() { } - // Open BUY trade - bool OpenBuyTrade(const string symbol, double lot) + bool OpenBuyTrade(const string symbol, double lot, double sl, double tp, double setupEntryPrice = 0.0) { - if(lot <= 0) + if(lot <= 0.0) { if(mp_logger) mp_logger.Error(StringFormat("Invalid lot size: %.2f", lot)); return false; } + // TP-less trades are intentionally unsupported until TradeSetup has an + // explicit allowNoTakeProfit field; do not infer that from tp = 0. + if(sl <= 0.0 || tp <= 0.0) + { + if(mp_logger) + mp_logger.Error("Invalid SL or TP provided for BUY order"); + return false; + } + double ask = mp_risk_manager.GetMarketData().GetAsk(); - double sl = mp_risk_manager.CalculateStopLossPrice(true); - double tp = mp_risk_manager.CalculateTakeProfitPrice(true); - if(mp_logger && g_debug_mode) - mp_logger.Info(StringFormat("Opening BUY: lot=%.2f, SL=%.5f, TP=%.5f", lot, sl, tp)); + { + double sl_distance = MathAbs(ask - sl); + double tp_distance = MathAbs(tp - ask); + double setup_diff = (setupEntryPrice > 0.0) ? MathAbs(setupEntryPrice - ask) : 0.0; + string setup_info = (setupEntryPrice > 0.0) ? StringFormat("setupEntry=%.5f, execEntry=%.5f, diff=%.5f, ", setupEntryPrice, ask, setup_diff) : "execEntry=" + DoubleToString(ask, 5) + ", "; + mp_logger.Info(StringFormat("Opening BUY: %s lot=%.2f, SL=%.5f, TP=%.5f, SL dist=%.5f, TP dist=%.5f", + setup_info, lot, sl, tp, sl_distance, tp_distance)); + } if(!m_trade.Buy(lot, symbol, ask, sl, tp)) { if(mp_logger) - { mp_logger.Error(StringFormat("Buy trade failed. Result code: %d, Error: %s", m_trade.ResultRetcode(), m_trade.ResultRetcodeDescription())); - } return false; } if(mp_logger) - { - mp_logger.Info(StringFormat("Buy trade opened. Ticket: %I64d, Volume: %.2f", - m_trade.ResultOrder(), lot)); - } + mp_logger.Info(StringFormat("Buy trade opened. Ticket: %I64d, Volume: %.2f", m_trade.ResultOrder(), lot)); return true; } - // Open SELL trade - bool OpenSellTrade(const string symbol, double lot) + bool OpenSellTrade(const string symbol, double lot, double sl, double tp, double setupEntryPrice = 0.0) { - if(lot <= 0) + if(lot <= 0.0) { if(mp_logger) mp_logger.Error(StringFormat("Invalid lot size: %.2f", lot)); return false; } - double bid = mp_risk_manager.GetMarketData().GetBid(); - double sl = mp_risk_manager.CalculateStopLossPrice(false); - double tp = mp_risk_manager.CalculateTakeProfitPrice(false); + // TP-less trades are intentionally unsupported until TradeSetup has an + // explicit allowNoTakeProfit field; do not infer that from tp = 0. + if(sl <= 0.0 || tp <= 0.0) + { + if(mp_logger) + mp_logger.Error("Invalid SL or TP provided for SELL order"); + return false; + } + double bid = mp_risk_manager.GetMarketData().GetBid(); if(mp_logger && g_debug_mode) - mp_logger.Info(StringFormat("Opening SELL: lot=%.2f, SL=%.5f, TP=%.5f", lot, sl, tp)); + { + double sl_distance = MathAbs(sl - bid); + double tp_distance = MathAbs(bid - tp); + double setup_diff = (setupEntryPrice > 0.0) ? MathAbs(setupEntryPrice - bid) : 0.0; + string setup_info = (setupEntryPrice > 0.0) ? StringFormat("setupEntry=%.5f, execEntry=%.5f, diff=%.5f, ", setupEntryPrice, bid, setup_diff) : "execEntry=" + DoubleToString(bid, 5) + ", "; + mp_logger.Info(StringFormat("Opening SELL: %s lot=%.2f, SL=%.5f, TP=%.5f, SL dist=%.5f, TP dist=%.5f", + setup_info, lot, sl, tp, sl_distance, tp_distance)); + } if(!m_trade.Sell(lot, symbol, bid, sl, tp)) { if(mp_logger) - { mp_logger.Error(StringFormat("Sell trade failed. Result code: %d, Error: %s", m_trade.ResultRetcode(), m_trade.ResultRetcodeDescription())); - } return false; } if(mp_logger) - { - mp_logger.Info(StringFormat("Sell trade opened. Ticket: %I64d, Volume: %.2f", - m_trade.ResultOrder(), lot)); - } + mp_logger.Info(StringFormat("Sell trade opened. Ticket: %I64d, Volume: %.2f", m_trade.ResultOrder(), lot)); return true; } - // Close position by ticket bool ClosePosition(ulong ticket) { if(ticket == 0) @@ -122,18 +127,13 @@ public: return false; double volume = PositionGetDouble(POSITION_VOLUME); - string symbol = PositionGetString(POSITION_SYMBOL); - if(mp_logger && g_debug_mode) mp_logger.Info(StringFormat("Closing position ticket %I64d, volume %.2f", ticket, volume)); if(!m_trade.PositionClose(ticket)) { if(mp_logger) - { - mp_logger.Error(StringFormat("Close position failed. Ticket: %I64d, Result: %d", - ticket, m_trade.ResultRetcode())); - } + mp_logger.Error(StringFormat("Close position failed. Ticket: %I64d, Result: %d", ticket, m_trade.ResultRetcode())); return false; } @@ -143,7 +143,6 @@ public: return true; } - // Modify position SL and/or TP bool ModifyPosition(ulong ticket, double sl, double tp) { if(ticket == 0) @@ -158,10 +157,7 @@ public: if(!m_trade.PositionModify(ticket, sl, tp)) { if(mp_logger) - { - mp_logger.Error(StringFormat("Position modify failed. Ticket: %I64d, Result: %d", - ticket, m_trade.ResultRetcode())); - } + mp_logger.Error(StringFormat("Position modify failed. Ticket: %I64d, Result: %d", ticket, m_trade.ResultRetcode())); return false; } @@ -171,13 +167,11 @@ public: return true; } - // Get last result code uint GetResultRetcode() const { return m_trade.ResultRetcode(); } - // Get CTrade instance CTrade* GetTradeObject() { return &m_trade; diff --git a/Include/TrailingStop.mqh b/Include/TrailingStop.mqh index af527dc..59f82b6 100644 --- a/Include/TrailingStop.mqh +++ b/Include/TrailingStop.mqh @@ -31,7 +31,7 @@ public: // Update trailing stop for all positions void UpdateAllPositions() { - if(!g_use_trailing_stop && !g_use_break_even) + if(!g_use_trailing_stop && !g_use_break_even && !g_use_trailing_stop_atr && !g_use_break_even_atr) return; for(int i = PositionsTotal() - 1; i >= 0; i--) @@ -96,35 +96,44 @@ private: bool ApplyBreakEven(ENUM_POSITION_TYPE pos_type, double open_price, double current_sl, double profit, double &new_sl) { - double break_even_trigger = CUtilities::PointsToPrice(mp_market_data.GetSymbol(), - g_break_even_profit); - double break_even_buffer = CUtilities::PointsToPrice(mp_market_data.GetSymbol(), - g_break_even_sl); + string symbol = mp_market_data.GetSymbol(); double current_price = (pos_type == POSITION_TYPE_BUY) ? mp_market_data.GetBid() : mp_market_data.GetAsk(); double price_move = 0.0; if(pos_type == POSITION_TYPE_BUY) - { price_move = current_price - open_price; - } else if(pos_type == POSITION_TYPE_SELL) - { price_move = open_price - current_price; - } else - { - return false; - } - - // Break-even only if price has moved enough from entry - if(price_move < break_even_trigger) return false; - // For BUY: move SL to entry price plus optional buffer + if(current_sl <= 0.0) + return false; + + double initial_risk = (pos_type == POSITION_TYPE_BUY) + ? (open_price - current_sl) + : (current_sl - open_price); + if(initial_risk <= 0.0) + return false; + + double trigger_distance = g_break_even_trigger_r * initial_risk; + if(price_move < trigger_distance) + return false; + + double buffer = CUtilities::PointsToPrice(symbol, g_break_even_buffer_points); + double point = CUtilities::GetPoint(symbol); + long min_stop_points = (long)SymbolInfoInteger(symbol, SYMBOL_TRADE_STOPS_LEVEL); + double min_stop_distance = min_stop_points * point; + if(pos_type == POSITION_TYPE_BUY) { - double be_sl = open_price + break_even_buffer; - be_sl = CUtilities::NormalizePrice(mp_market_data.GetSymbol(), be_sl); + double be_sl = CUtilities::NormalizePrice(symbol, open_price + buffer); + if((mp_market_data.GetBid() - be_sl) < min_stop_distance) + { + if(mp_logger && g_debug_mode) + mp_logger.Info("Break-even skipped: would violate broker minimal stop distance"); + return false; + } if(be_sl > current_sl) { @@ -134,11 +143,15 @@ private: return true; } } - // For SELL: move SL to entry price minus optional buffer else if(pos_type == POSITION_TYPE_SELL) { - double be_sl = open_price - break_even_buffer; - be_sl = CUtilities::NormalizePrice(mp_market_data.GetSymbol(), be_sl); + double be_sl = CUtilities::NormalizePrice(symbol, open_price - buffer); + if((be_sl - mp_market_data.GetAsk()) < min_stop_distance) + { + if(mp_logger && g_debug_mode) + mp_logger.Info("Break-even skipped: would violate broker minimal stop distance"); + return false; + } if(be_sl < current_sl) { @@ -155,18 +168,58 @@ private: // Apply trailing stop logic bool ApplyTrailingStop(ENUM_POSITION_TYPE pos_type, double current_sl, double &new_sl) { + string symbol = mp_market_data.GetSymbol(); double bid = mp_market_data.GetBid(); double ask = mp_market_data.GetAsk(); - double trail_distance = CUtilities::PointsToPrice(mp_market_data.GetSymbol(), - g_trailing_stop_points); - // For BUY: trailing stop follows price from below + if(current_sl <= 0.0) + return false; + + double open_price = PositionGetDouble(POSITION_PRICE_OPEN); + double initial_risk = (pos_type == POSITION_TYPE_BUY) + ? (open_price - current_sl) + : (current_sl - open_price); + if(initial_risk <= 0.0) + return false; + + double price = (pos_type == POSITION_TYPE_BUY) ? bid : ask; + double price_move = (pos_type == POSITION_TYPE_BUY) ? (price - open_price) : (open_price - price); + double trail_start_distance = g_trail_start_r * initial_risk; + if(price_move < trail_start_distance) + return false; + + int atr_handle = iATR(symbol, g_strategy_entry_timeframe, g_atr_period); + if(atr_handle == INVALID_HANDLE) + return false; + + double atr_value[]; + ArraySetAsSeries(atr_value, true); + ArrayResize(atr_value, 1); + if(CopyBuffer(atr_handle, 0, 1, 1, atr_value) <= 0) + { + IndicatorRelease(atr_handle); + return false; + } + IndicatorRelease(atr_handle); + + double trail_distance = atr_value[0] * g_trail_distance_atr_multiplier; + if(trail_distance <= 0.0) + return false; + + double point = CUtilities::GetPoint(symbol); + long min_stop_points = (long)SymbolInfoInteger(symbol, SYMBOL_TRADE_STOPS_LEVEL); + double min_stop_distance = min_stop_points * point; + if(pos_type == POSITION_TYPE_BUY) { - double candidate_sl = bid - trail_distance; - candidate_sl = CUtilities::NormalizePrice(mp_market_data.GetSymbol(), candidate_sl); + double candidate_sl = CUtilities::NormalizePrice(symbol, bid - trail_distance); + if((bid - candidate_sl) < min_stop_distance) + { + if(mp_logger && g_debug_mode) + mp_logger.Info("Trailing stop skipped: candidate SL too close to price (broker stop level)"); + return false; + } - // Only move SL up (never down) if(candidate_sl > current_sl) { new_sl = candidate_sl; @@ -175,13 +228,16 @@ private: return true; } } - // For SELL: trailing stop follows price from above else if(pos_type == POSITION_TYPE_SELL) { - double candidate_sl = ask + trail_distance; - candidate_sl = CUtilities::NormalizePrice(mp_market_data.GetSymbol(), candidate_sl); + double candidate_sl = CUtilities::NormalizePrice(symbol, ask + trail_distance); + if((candidate_sl - ask) < min_stop_distance) + { + if(mp_logger && g_debug_mode) + mp_logger.Info("Trailing stop skipped: candidate SL too close to price (broker stop level)"); + return false; + } - // Only move SL down (never up) if(candidate_sl < current_sl) { new_sl = candidate_sl; diff --git a/Include/Utilities.mqh b/Include/Utilities.mqh index 4e8794c..1022353 100644 --- a/Include/Utilities.mqh +++ b/Include/Utilities.mqh @@ -27,18 +27,35 @@ public: // Guard against invalid broker volume data if(min_lot <= 0.0 || max_lot <= 0.0 || lot_step <= 0.0 || max_lot < min_lot) return 0.0; - - // Apply limits - if(lot < min_lot) lot = min_lot; - if(lot > max_lot) lot = max_lot; - - // Round to step - lot = MathFloor(lot / lot_step) * lot_step; - if(lot < min_lot) - lot = min_lot; - - return NormalizeDouble(lot, 2); + // Compute precision from volume step + int precision = 0; + double s = lot_step; + const double eps = 1e-9; + while(MathAbs(MathRound(s) - s) > eps && precision < 8) + { + s *= 10.0; + precision++; + } + + // Round down to nearest step + double normalized = MathFloor(lot / lot_step) * lot_step; + normalized = NormalizeDouble(normalized, precision); + + // If normalized is below minimum, indicate invalid by returning 0.0 + if(normalized < min_lot) + return 0.0; + + // Clamp to maximum allowed (rounded down to step) + if(normalized > max_lot) + { + normalized = MathFloor(max_lot / lot_step) * lot_step; + normalized = NormalizeDouble(normalized, precision); + if(normalized < min_lot) + return 0.0; + } + + return normalized; } // Convert points to price distance diff --git a/MyProEA.ex5 b/MyProEA.ex5 index 25453c950c9add7d28770c9634c490fa9d6b9f04..252d1c91fd1c3522c0eb5cea6bff27a0fbf877f1 100644 GIT binary patch literal 91860 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%0DHEJYABhRtkf-pU@gZ__g*XEYHYTwT7)snL+$ ziNmW?F>t?MCF{*winx%fslZFNtV40nrfJ{Qd{pa~!hoPcY{$8JFzzV|E z`O9&E`d;U!lMn(svVswrLA+%+zy^w50lzs@b?1vKHc!&f==uX$ym-3NEybY2ouh>b z$fMT*)P{wrH|zYdTXnSLyEwxqMw_wVq1dgWZW=pw1(0EYkBnPqdUcQ0K%+9N#Bd2Tt8B`E^RUp?uX&k_ynoVJ%aVL z##NW}ca@OVecEE*JUOX@s$+T-2{ zIh&sy5go|;D$&Jn18f`lnZ@|03X%q0%>=|4n^qIhE=%!7N>)`!I=swgc1DNSHr#9p z;kp-q5+AsZy-t&D=Ur`hrw_TqS^ADP$L#1R^{FJ^Xjo>2=htj2I5nA~rJ!;sKGhV0 z=;r#~dGXb2&SW3JC54Pm__7uD(jOgBc6{5>H35Yb1(a)>P+g6dk}=wPNjZoyHgAl%~TV1djQ40T2dV}})(gb@F7@J>q7KX^HMjqPEQ-7b|u zdtNzH-CD)w!12+{OCgZMSmLaM^^hS>c8n`(=2gncqDHaN73K^Q)u7iHa5oFP>9#> z;ENSEmVG9;)6EZM%4kHW>VyHf%yxV>fC9j)gueqR#MVswpFMcOPp?A#H=}Uv_)9VC z1k3hx+Qg)4Mu`yeEGer+e~B@QfCbX)vp2sN8)|1e!aZDB^=?5{^=v+7#w>=1v{(+? zc3s<G*P9w34~^?gIOY*5Z)#a#s-TXR#0BX$-qM#)nA*(QiKIU>u($ zuiZt(70mxORQDgX+xs#u)K!&S1|2;&_;_g`uUyuSU2Yy?-Pa|rpvnJOPUsrqHLH0{ zHd3UkI_<&(FGZYjYEZhCVP2b6uBt)9HRp@4n7YJHAc(0Nj#GGZ{6V~p$%C;aXqK1H z&U1G|mjM#**u&(m)*uikwpExAxQu7x=>8U3V5iFMK1N5cDl@BDU5| z0%?NHC=8UB?}zeL=<3mrM;3eMfLK8iNC0=<1!JCms}xap$nl1|_sV1yZ|0>&r5osjA^AgH84G#+f0@5Cy7_S za&3Pj(ekvXHQe|$E?|bF92P?@S5R|_Hx7gv0l7XF-~<~#GkqmGg~l!kqrj>yg^U;% zkYvZtYDtYq8#RTIiJ5l&0an7l8iE#4vkm~Q?AU8FS?%%mR;pC_YzJ)uKbsAOgjgFu z*f14$Xu46bEU|@ezh=;|XnG*q#0Gt?K#i>2L&pS+{RK+L{=to=%wiwSbnv|gpPJ@M zf3$(+7hIh;=7F%c0aW_r7njNL(0ACf;!%~0f$VFnMOoNF!n=qs*91mRq?6`a61mO# z7ZUCA@(^(Pbw3{2D+eyoSxCLvxXaSN^kP1VuK#&UANm8Lh7%XI-f;+oNUVL}em`uo z?iQVZJer&usWtJZEka}is~6cpx;(7-fcGV#K6nr{W2$jn19ps78{i1GqW^6~f}P%M z%S9HTr3ov{+%w_l;UsL$~i45!0m-1p_}|2IR@rL z0~1kK6Emfewr_WVg?n&FOePDa9YRbf5uCZhI4$P`$WAvAr^@P|b@APgAvm0d9x$j# z0SPj*)L*AcA9aQ={=@srrbMN9GzG%te9O76JCKkb^3HYDS6-XGC#j!VH_Mb94Mzm_ zN!Kt?zZJ5cO-!FOmrcHJASp!%v#+N){5PN3nwS;{4>LwEc(MYj*%ac)eUNZtM`j!92I36e*D8Yb33S4i-Mq*DTkD|-CrusChmm3LK+NGOZzER?V(F%Nq-!dMm0$B00l_~sVr z;44g`EEs9tgf;AHYvdeZ?0T0IZt>Yc{jqf#H{ZU!jE9O-RD7x!6s6`il%Lph6v=iP zr2qTd%9x-nj^PQ$aL*kw7>`+5w_s~wuf${>JHkeK@gP-&^_ZYQhdG>Gs>|tJWc0+; zu38(}HC5icI-ZDw{tA1Q-JK)W*u^O07*E`jd-p6DKb%8Ly!qzl9&M(xS^1G)60l_)#Jp#W+$CaT2I>-_y!P1*YhYok8Q}m&z1{An?{TfY_^^$rs@N z-E=h8IW(_5!Z|*&qFV#I|BhUPhjq$kU zk%pu`ye2FjdGlYF+^7x0A-=1*(r;Dcwsl#~=-aTiT0oMCy%Wz2W*TQ~pxcRlz~B3k zg1W518f29#ZR$hXkhKVN(jF&%J72nN2Q%K3$@6c~sC_YDEa+kPzX@UWs|?iBNr)Hq z*Xil*RAdMqeY*u^MDwvl=8P{jU!8=ND?U6(3tk?p8zD78xVJak;`B=0WM$L2M`8Xk82PfhkH);_djZrH6CPY?jqBCL?_t)k?o`%F^*M<-K=c?uZU zujHK9+y+$U0liB4k2*2ThlidHe|?kP5c#iUs*V|eGMWO(y@Kf4W zw<@vNwM+KDftt@RdkfMa!IO87s)$?|Van_x{c%sqEtmfdK?uigVP@LYp0M+=%%lT^ zl5VpeO9YUUYiSK3FICVLefL-pfSM~IqpRL+B{F#X5wdnj=S1M-ds{o`>lSWB>IYWL zL8QC$U-y{7KKDB{^E-?ah9m;rI%@(mOa3osR&N%JTDx{B6| z^ZO@w`8sO-U!n=yYi+59Z}sQm{YXK&LEhiV{Ius{T7xRRH+(BEiqpJ}Qod}s;im1_ z7h8MUYo7^k%{gz&7Nd--4h2iY9STH!jW}5S&Ue!B+GuM!R=j(Tma#gEJ$#Dqm$lup zy=01L;{rMF<7%LK)eTR`}4+@X>S|77_?>AdlBot*%QLgCsZl z!>)|n!0_X6$6QL#wDo8|1rEI7FUH+{LZxsS{1=w<0&0u-IOK&694en?%II%Aodx@l z4<;gpSot5?>5RbCOc)s+81AC#sRr+GoLdOBx7qTPKHk^~zCL0poY9}V6|97`%Ee-!83)s7C8=*pPGU^O-Vc$wAsHcddjH1Hp%3##qmRKa;pP)#8E zoo_YJmJ}+@X9NK?KFseG`c1w3SGTnc%ko1KY|ElJuGD&J_TgKwevq=ba{cz?&|(O~ zm`5tPf~r;MFWZ@ZAEteoo4PqE8ZyZob`Eh=vZg{k2o&qX-H3MNz!tAes9rcE>4kKa zFH^M1N%?p6p~AhzYLVI)#&)u+K?}X8#CBFx>owKGzJlzPzMjMXXH1x4mHPo=rI+Dv znHj*$al3^3lLyGgfZG$-PDddP%A_vj$3<+()mBMZZZ|J)HgrR^j&~DVl!~upV}#HXDf}iQgq@6jGhE33p_Nr_tY4S(5>QJ1hr?Hpo%%6 zAQkv%9V{0-Cwz_S5p4zGDdAry6V{g9+jZ79I=h`{b)^XRIO`s%n3Kfc8eEZmm%PY z<36n$McK^fuUIk4#-?t?ch9-OLVML^Mzm8Wu&T0-a@8bcjrSwUbiNUIhP%nAqL1aR z2YUI80z?!Cn0dOHjMYB}afvSec@)5{0<&aRI3$69#!CRna)%si=N;OnQQcMb_h&uR z7cpR@ujm=vq%p-ABrksU97?&ApgbE+0?^zd2d9?t-k0&ZeZvhux1A>a%RmUV*Fh1X zh*|b?o9ml-e^aYW%TNfPYhIM_Z4P3SqPMps~V3p)K<}R zaha|QQzwx4RUkIi@adlQZf=6Ws3$oCbOaa6UFs2!yN&zpp<@KNhG8+}mf*S8piZ9t zee(9UN9$~UP}Y#h?y`@>Wn&2{P0ibS)uDCG5iWt%zQY7b_^mFWqI-aoYT#thGSmq|9)#925xL{$F6kK2LArH-Y4!`)h{$vS)4ZitL} zPc^Kb#GDf04qtVV-`$dE9G9qM#8=N0vR|i=&P<4t@I-lQ0h?To$VOrnnbQ?8A0&+V z3%0Sse~I^|(p{i%j*#&^Zx!ilky7IjM+wlU?fCls+TB#?_Z&PUH``W8}^<5*oM$AW|1e04H4x6h%E zBH@#{-~f1gy7`Ebo!jb^D=%QMaCCg|CKs_oMOF`5`aRc;1& z`euA5s-R1fm8v58bBIku8&iDYY|Vas(PvaR5JF$a1m4SDOyXOkZXju^X>k(B`rsdJ zgyPXCR_AU-J&U8BIg;%y{cB}N+uUVi^Q^IAHrl6S66ahMi)qEcAches&9jy&L}Z=i zt%=a?bgMW2Hui`4p!#upAQq8(yq+ekf46=T*M^Xf&m2!AnGp(9K6 zU}%StQkL&;SbByik#Zc0G~ zE5C|fVGri=2=!l|@=I34(hGZun3_)e*1$IQQBDfWVTGZv<7R} zY9O`lKo6pq+(%Jqbn`KV_%;90=I`eP^2DM4l$6_KNDI3LZH0|TusDuxwV>GAB{rwQ z0%lI=?q>F^!(tpxlPzx%f}!*3V^**(8;$IYYYSJQ_V0GjjjD#q^tizA2z9x{)!R^_ z<3EOe8Ss~sIVd^**QXUE_+$j#?GV?}??m8|xdVrp7uXUvGwL=*z-kku4;b*YcJMEP zl)kM$zNEWPWpAh%=IInUBP4N-qI;-9$}HvLaZJL_7){uhZBK}e zs<_CA8Xx-!B?|GwZLhDc<38QV?;>g+#T^J1T4sIFx&=VoQ|yjDq~-d4BPb<0IRGto z0YB;Qp_Ph51;ORdz8={EC#o3fd80y>BLb$tQ8GPw=p1nG}j84JNCj8_%lCOS?Z%&)7c__lnE;_K0eQ-+q&bns65(Y^qG@QC6X*xPjqfa`=Y~w#{-DaD)cut?( z8}0}Dvp9(*>ZPy#`QEL|Q+t@X%)Z+G?g>6;t)!&u9Jz{c@Bmd}E#PCJJH$Q^q#OP- zX497qeHI+ z-BqqODV(|TF~ssMnme3$0{_k4fZoK15{0R7Ea{p^kNm2!HBzU0Guf{8RtfwZ70%?^ z10o4?_=)kGCt}7ZR*Bot;(a2o>X$Jxhgzz5d&Hwz9^C7uLOrJiQ8KNif>_Bj8cHv= zTZ4;GOz3e{%=30@-+~Qc@#&S>sGLGRP~U72MrqR(@tKxkh@M2fMXG$>I^@xZ^L zT#mGInoJ*WW)MLv*bahbEwreIm{+dX zhozAB%G)N?sA?%x(z)(vFPYH3CqXkZFvvVIoh%tAQ19PKmm9t7DlNZ~nicmj0-b3g&{WEf+& zX};*KN`%^rfdhp`S% zdPJE2QMqjHC{pFo07f&xOQ75>!nE#YKl0Ipncxv)W|OlPD~`Wk{vRXm3CB0zGI$5} z09MyxT@P6)2~}btB-8<4t|eAY^d?A{9P#j)*AS^tLN2hnZ6;5_Ha3ON4nb{D+vR?Vh4K%H(4C zl%Fv-^xM~{@5}iXomfV*ETz5Rt|5HZg|5iYf7U^LW7d&}0PmMI9Y}G~e){Opc`oY2 z@eDk=9D6kWelwr_+=H!6O)tIYAVppD#ggaz=jHSC2ZO%3Snuhr2JSg2D(dnfMjWRz z>y!BmNJ;S2e91K%zh(ycoivR-xq!erhvc_AShcK;Y}&&#sEkbA9QrLK51@DO+?55) z9}4NBYxT?9a#ys(>IS5$JK(}9L_F;AC${LRuVuPV!mU* zc55*y>U?3HMBF}op3P=?&j`)ix3;{>7`8i=NyHTe!V=&rgmE0*)^c+YaQHeY<@*DT zsep5r(tP2&E6>k~>tc1s_xLS}>+aQ)kJwEW4PM=C%-+6A*MDCaUISCL!kr zGw%i?acJJ*b}`FqwJ}t9jK?$4<{tk`E>T(?oi3QLZZ3pb?>~TamV|PS&WYXDF1VBr zgzhbe2^~~9#!|>Ut853*o<5jh_gOP&k-^L!KoK;?G;j6`1GG)pBDk0^$jO_GHVH>+1Hh#)$2((fz;9eC6#7ybZviMWvu>gbMB7^aJRu z{05ry_iq<{l|VuI=he)rW*oKCP-Gci()jlxMrr4hg>w^I=A@L^?PjR80_jq8$~Ivb@Fa|h96 z9=3tAPRXP3u)dfP4xu2l!fsG@#>UOie#FKvE*scC6gI1vw`^p2w;}~h59-wHw~{4$ zwdJlHPFxiA{+TG#h}qBISblckApnr-9a%chQxa2?}_J1NrOZw@u!83qd2$cz}?N^26JB zo`bG*p~0d2iKlPdq_>Q^w3GEwDiN5FJ-Yg*A;pRN`Z@#SW9?MpFP#zy?=FJpF)(&R zfb!+J)Z-0YbfiZGLh>X;y6S!~mQYZTm1sQ;0MlJy7y ze=suIXBlLb4y0lV3+pD%FT$I?S)cwh-L+-BsYP{~J~&IUUFFZuAVel_eC~2A77TpV zkbsKkgYyVXprTcrSQ!PiyZovsCA|51hzt+JLgVgg(Z+qm`UcV8|CmSGGmn3%Wb9a; znTT=Qb(~<=<5Kq~NH5=%Z+c{H*bfJ(IP?@xrU0S<^$N<;sl0Mn(?s)m9i=7l^(g1KV{Loz-}E}Qba9#btN z(o)yg_(z%)~(t(_4)Zg5%scG9%({V>}v6h+*X-60Vfase$NAnSI)v?!b&7kd&UrHdRJ4JMi) zbey!bgFZ3k#IdXcN?smYmO0Xi%zE^uleq)?kjspLD$?G5!pd6ywisN*isV^ z@_(+{rx$GGC*w91++6#WKF34TpiB*_`!1&cuvJPcG6JO6j%h*_IA8el)na~xLp$0G zxHp8{eQzX$TN?xM0UaKu(8JQ`R?Mvvz15<5Dj{1Vpjt~Bh=!b#Vc!LF+?t+=KGxgy zCT*H$1rq2IL#>Wyz%ZJ7?+FAUHA^<9j2_S?s|L1iKgBo`z)pD8%#AJm%eL=FslQaF z3>@&-df%8O$cy4QuC!^!u0eCb(=$pe_WxfcenPV1hschUyNc>`7RVBp<8o!yLuhV zs@-L5oxtW|yvjv1Dqhj&G%Gh0K&MP8oMvhwLGobheJ3#1+lQCf{0!J_6sOpban@e> z;1l46s7;7;6llC^LL$9U<9yD_1+_)&Iy6dJXXDCQ&h7SI4?JBG zlTKfFo$ddEg1WZ&^1;BYrXUFfw}&MeXOCq^Wu4b-Vsa9M1d++H%<*#&!p_3szW7Q} zAN`*5_K@vPv8vk^xu(S~r-gSdn&+v-uSrGwygQQ=Nj(JL3hB{pOuDGPBbXJ14Vzs_ z$yIf3#5rZ-n!p>NS*gYvgN%LGFr-8*-JHA`yX&fU&K;v71|p0CyJ2}3YppZ6Z=;&~7? zlA=}F$Lf|kfGvjS>*PhAY})+HJw}cIUJW?BADf44M@r99LHZ2$_rqk?*@@PULg2OxWl;vf?vw+F zr=&Sj9uz(TU)XXO9@OJ;)m%%Td#FR^kYe7Bqj};&AkQw`Ddb)>iYuP9b^(PI&jW#_N1 zW$Th|oS+}M=qD@v1kT^Z^9rHgNqh;g=qazskrtf!9t|*uX70T+V$C*j+OqoZvG* zRHJ==Y=Og;qs4|W&-8{JnF|GAV=$;csh3q=XweL@01Me4+jATt>86z=NSyk`DF^9Q z89#am_uZ^{5+^Ux5EG^0 zAfAqjHx-4GSo|l5jS#{DyPTZZ` z5)4KI>~6hc#|ADU&fgRgT2rl}A{eg(EobP-C zxs^rFv4TZ0cx}s2MWb&&e8+I6^-q#8+XSmCHF^hOO}S(GF575FV{TV5v#y6xwN1wF zTy;JXffd!V&(E-W>upzd^&-D*`=bX`Ev!9UsA)hPo20|kDZ+}+;h5g;J=qAeHMJ+9 zj{(-2R|;o%zIIyNr({UAoa)^@<);t4 z@Cq3eoAg;n2!G{2gXq>2EcmV8pW0eaCSX1xXbyjewIFbY0AZ`lqoDs6Ko3pCZfKEOU zVO{gm#pjV0Ogl%Wmq5M~H~fR3$oTVArg_`t)H816*lTFt6kEC(-Nmh0_*#;Le39RZ z9xnt9+a)`mJhT!Ew2ydTQXiUkx7Bsp-Ea^c(>Eqh=^)r*JtKFkK*FGA{XyGdu< z8Y&_8Wla!s?v2n2rb5L3k^Stee;ha7D2dW~*X^FZWYHUJ70b=|)<~K%FduqDGlga} z(iFHgM*tp#gf=0!Ux7eKN4!RG36Dx(hJs?OjN_n&^FL?>%9Ib$mU=vlnfH zbbO{i8|T+CuRlPULmHD6#-tp^sOjyC*J;Uorg()Un8Os#`w}qxdy~nbm769aRefL= z0KzQ>qa*ILa1IxII2&F@#T;z%`mglT6HNI_m9H%!swm>N1axiM{GTwROX<%`;QyWV*n7({UK3cPS2#LA zr+J=9hw+`=^c4;L@nP}IMldDT!7)c0kLXy%(n;<2EYD_tN+?sNHK65{zPFdpkN*QE0TT zy`(}7=C8kfVW0D;6BE7h*zw0`8cP6n?hI2X=DvCaCvR{)bUlM=eo=#@qzXZaV#O#U zqGC5~(L2ns&~c0fN9a22kr+6*!-XuES{yAnCU%ba4(RG*td-0hopFZV2l3&CKoh%> zfPty8Mbz5<|KXbOz@ru2BmIGys}K4L<>6^%+R2`st4h}&W=RMM#4Ns42Wm0{>*nI0 zPj04br2yv5J;+l14~7Bpf+uwmuEbx3J2HN~MYz#p$I%h=YNv?eImlh;cWfj2`5HJ$ z`3PyKXgWw}pun;=tqE{k(NY-Yd!n$UTat!&46@>ij21;Pw&x zDkzD;qa6H$fj&i(h=L_3_!q35^;&kyxOX#H>ew%My-fB-1c7y-iB#7j`@mRL7saP zzPH`=ReyLYw-n>VgP1dLK3)l!z=h1Y?6w-t-B}~ZLQke)BR&R3jB+YhQ_g{oX4)z!pjZsdbo*sm%3rI*HGu9m z)`;O8hyq};SFC#|+6#>gm(L7mZo-JqZYPFgSB~yaU5-153>qxF}a55Pxc_5`lZuu(a zM^_h|uiuw`w+~O*dE)nCKKXmUo@_jC${M!r`+Gi*4IVu>OQC@=jr-F3;$U z@VOU@(jW){iuLRs#b*hgaTSFsxdg(h7LBVpD-dKN>b;re!%8ldQOS9o1o>W}#6T4T z$SH&pfVQ(ANbXDEZJ(F^3>MJ(8$K!Ji15i;p2drOlU-%D2jCCc%otM}wXw04L`%_x zNJ9_L!x|a8-_jRaRx=cfMDs|+b=TZd@ggH0OboKJZ(FOb`?vliRMRMlel%4lUc9Q- z#a8)fY?VS&)Um5i^PN6lsAealqLhc2oBL~qX()xrCQe`+4K%Gq9DW%%sgC%>Ir#AD z(($`Li`eu)O~b(_rK!DoKN9FYhcrPD&g0GhsfXkN<25Iq;0TsP=wLr4(uFroQDmQs`!dRq{vC$pDG8B2oviWZfM+&PM@V z*~3laC|S{&RHcS(r)$Fe0L4FFeC^-tTtZY|vMkj7*va9`-y;c!kqSE*(w1F-LD#j-Ha2z9 zR?-!%+4E}yRI%h<6OJ89N0J*lypudq9v{?jK5!&Tp2)mV6TYgM&7D~0w5>-5zt5& z>hy_z#cy_l?EAHw*?zfbWk5*~%uPO|%ZNiVba4ZNo=}^}e)&hztVWo&-g|*vD8I1A z49N!Pv1M#lc!cqqS9p*ob4|x(Kk^P1`OvIY7$-4R zAYhSIDZZJ7>-0`Q0mWH*=br;|waB@qgVC;1uiMoLKJ9GqvPkLAKC+H((kL1{ofS4V zM-1OuFTzuVCm#NTW-An7b8=|_(MPczIgXT8d(-{gq=qN(`?$EjWM!4#ebhZ>j5sF< z&N%*P%+UPg^3;e~@h)Z;T7N7?G3+sHF$_uAx}k@*{&>cU3u?fhKG*ySkhjOrEq>h@ z>ON4d53H6^&U0cyn|a@F*)798%y=1GP3iqFt#EjnDIgYJo4dfRDmV}=nx6cX)R}TP zJO34m*bmW}OVdnI6hKWemucuKAw%o+A&;0OW0KuOv$*q(-KJ`^`Uo~3j9{kgS!e_6 zABRcAyE;_l2O5PLdY^iXljIuM(JAe?Hl3RYGL1Pyrtb+(=vS|WqDUW8_Ig5u!78xN z%`bD@w>h^SI~8jC-uj^!%Tzn|Qysd;nJ$M%WJdQMYuc_K;xOz8wf%TDEreI2YpCcT z)LxwA6cNE-6;Oz6+K0G~4}fL@J-#6#15F@_as7MmmqL#Z>vtK@P1(LGTcI*3R#`1r z%$DBxs1<9(oJig9vk#K0Vez=H*#J>^E0Q>^ehzlS_uw0Ys z;In%~m$rg6>)!=01bj=w66q||xBF!KyMzs)l7W_2MM1?yrnN7YjD{@AyQHfL|Mm^v zHE-tlIzYi=zOB5Z1fv#2>@f5Nqu;H@*P*bt+V7PE^LR--sokD` zj!Rh~xE)9y+CsvL0ANQ1Pu3E|#6A5tI+kq@n3Fx~2u>gBeo(JZ$gEru8_xC`sh3kq zSeeBf(X&2Vi@T=}(naWEc|xT;FYQzsO%!90ol%#cqptx;{JX^qhZ^Mv)1^?vkjrjo^xHRz~7D*d!C{#YwE0N$UdD|^u4MGJ>WJY7@m~CR1tDGfe;c*ec zc!Mor-^WR%2k^G749(2cUE{A%Ih{JUy>gc$ZpZgstzKEg!T4b6yY3eTDEYj2!4QDN zX>>6VF5kC~R1PQ4}Rz;_eL==6#(=#}+LxsXJZC&FNsOif{e&=9x%1`5qYrWB$< zw2(}MVfEb|AFR7tfidHGXg-~ILad%Oe?U%{Nt=i>ipgcrr~ux!Ca*MB&Wwx4@h@8` z-u(!V`3zNBfjs`TK67J~SDRD8DX(CP941HRd#o_<`Y%Ez64T#sYzYFw)fRgLeirkG zy#y?|IaIGHcs0a^Q%$C%v#`Ue<#7ho!IZB1}wyAVJ`Qs zwC-OMefV$b;YJNXmB9To*-&YKdH_*vN45}rpqRXuoY)GiKapd45eCA?SwD*|Ob?R_ zjl78078zuhPvtUTZ|YQ_`_1Z{gE7N{xM=%573ZtTZ9`N5k@{?p>A*0k%`ZmJvEKE4 z)|9WO58Qhl`=e>fmm{8w4?|ib0rFEL70!K<{Wx-i0$N&el8uw>zS0Qy`J>syCyR|J7N^h+{W12;bePkX*!&d*^0D7X>>I8W zey2Txauchi*utz3Fg=iEI48}+obZ<*yq0S730jN+#|w~?#<;&5Z(O&=57avjIB;5; zPWSt3I>M`z(K{r>JRHv4FujcDsLSpT7+gC(;LAa!)i_AsWW6=NrC|5lyHM@m9kXbj z`z{MxXzM;%`ToNTuO|ScILSSBMA@CRw=<}KJb+sO500z1f;T~J+ zla}5y?+BNaq4oO6sT^+y{DW2boLpB2J;@HQy}<~X2zZtL)Xb|}_>J#-ceuj5H=Tyq z_Ck%oH@#=SE7S{~5|$Wt{)E2_%blz;Yl9TDI981kps2ZS)_`x}cJUd;C4VkL>}#r3$a*i1 z*2dlnf(W3#Yw814)yOjFmI|NuthXvNErq;S; z0Xw?iW|AbH&_jh2+@uhBYJqIIL+NyG9=?bmeZVl44Z~H_p4NI9FT-4HeBcq)USsJN zNQ*D@&~8N9S!t|>H`k4D%{uzfVXaM;#}rVg*Y!nyz@0h;=20gkH5_i7&dnwNKM~*E z_Y4)KzGc*A+|)r{->jA_R8=4#DBZG{^$d&pHr<2Wp8C`&>n&nHQDpH|K8b9bl1C!S zVv~ML*$UAg!0Ii{JJqkLlup;xpeUgZW*Bp0Pfn3)DJ!g+G^n%va#c57Y-_MR2)*H;6J7d^#s1Xo zYSrYfp<_XMnp;a`{VXxsHDmFU~0PrrxG%UL__pjWs=TBao z_0mwLf;PU7I`HBKZb!21n0QFuY;ItC5F*M;3R!- z*s9A_aW};yqR(vmHUMnDsCuz*VuIb6&otfN(U`1!#&7jL6|@%a$)WuV&02NOavDlh zIouUsJa7RLcBW7%P~tlIl7sD-=Zdq$K`yZpngF*}RZX%$=>OSAMxf_VK(=JJ67Voj zlu0%y@A?sG1qJ%p$bK%{_7Dv0lA4C@y2jR7k-a5>ek_NZcE;mrtgrTr$c7>dKqE2% z-9xPUN{6$naaKEfv7!S%B?UK_Wzs6&)>a##emFq=mIvXxRrHFbI9#KGPBi zbL}7VzfJD2u&uX!BDf zCNJ{6JU5se9dOxt$^&)VF>TKS22o{;LWmQX={5)_?nf?NACsMaD!5NguemKOr5z?E zgho8*6`PA*JfZs**T8^zbwY1yiA+1z2Zb@E*Rxu1&a<7jzBWJA?0>>b^RbfYl<@WOT0PDn1-O{ja2c%Jis@tjfNEcDiUe2GdH4tXiHBwJ1&{_or3z&6{r`Z zI}8)VtpAR|(#g=2^6l2!ppfZHd4Q@?quSW>;Z-w@)K*s@!#`gI{{YPv;eJ(sY>bc5 zdkVAm?YDygX`4|VJ)VtEYG-GEhoY_@BTbm{{5q&C1It_Zy$Tx>ZUJKL_a;1B5Z0?{ zoHX-2xi|tBF6Ya6;wc-~6Po~RjZN2xf`jUe5Zbcd`Tkcbf+w?y$l_q0k!CwKF#Jc! zXhgIRxA13ndTSOTZw5>ZXgX_l;0_C`_`A>5d3}xnnpa>yvFh9oKA47@46Zvh$y{A)=M)Tz?$aU|ByZA~g9QYavSDvXD$)gaWhUV4#&+vZthph~ zQ=F4@HeMRI?fQ2^wA5_Ai4Zmvlf#PEPy&Q2j=Iq(tg7_Crr^BS=K=bO?&%Ad+6gr6 zR4w3>AelLi<{b|l(fQ7DVRAdg?Z>db&?=P-j2DTWh;xH}d>y%56TE{Guq$(@QDrI! zVUl5i;bcLfrnum<>MHjPs}Z@Ht(60ZAX<09LQP{r1po=?RtSVWMeEVmOS1N)^o~IB zw@$jOciND{?EAYy%Dw+OoqT&XD$SGIqIDkqGqjP&C=3D1)cb_L!d~VIrIXYP`w3C7;DnxRNLy#VN}`qH(fJS(!qzW(K&fa1l4C!brIMOJ ztIHmIXb55en$f<0QZ$Kou~dN|%<(}p8fVuvRLm*H^D8RWe#Fb$L+9iE5Hd@C_KSnH zMnX=Tr+RD-vx}e)DIn@mBG?zr29pG)Pbu2UrxNPYigm{z_IGmQjFR^0N7Z9asBE34 z+~A;ekC`$SrNKm0k=ar)CqReLs#N~mEEq#XG6?|q4!xA3o^=G}XU13@vynRF z$3b?R*xQtwnya!!c-N|9ir}E3@u!4OI{&T;ega8xgDYfatqsCZ-S;J9}iFcdeXOD;;YIjzAP^ylwzzzE+yJ{PVCMjtDerxLD5JiTb!Xe;+#w< zelk~sA{VEP>5~*Fkn~5vi`h`4-~*TY5tgx~kXsxs+xvjB4x-z-`QY=7;BplZE&Jxj zvj|gD#}ut6C_9_kauq3@=WwxpVGaag)xpDJ5)6Mb!LzOv`w$gYsdPzXB%8PpWZp@W zyk^fg{P?_x>hd=_*Sh%K#F6lmz8d}!d1d><{|wdcD~5*fQbS}9Q#N-_y?eobEo{hE zw)mfCXl{9-J;tSi|H7%5w)iHL^2o$ZR!xnyi6uN2faL^3Zy)58Y7t{N-t^Ip=P#m%D0MD~GV;(aG z!sK_4JO$d*q@Ao@UA&V+oT93E71((vR*!LQ1Rjf5Hp`8@Ft8JCjpfwL=8sQxEc8&w zmzv$%TwD1?e^#YtJt_oA#U7y)X9g2FoXTIla5#|YtJf#gO+VCM0x+xr_&<+YB5NRd z?Ix)OwQr6&Np{JV8GVi}(3P!g{es1K+j`j<#)y+~fcoo(0sK_T<#C+N8(;cDhcpQ7 zO8||{J=8VJzKI?jVIdQg3C4+I{dL+l2cs0J@4mNj-AI&v8wV+Un z*thec+z)V&Q!gH)W&85~p@fawa9u_Q*?0FXT%q=_QRk8#^md$|HbzF z;{Gm@RIWS2TPP(Oe3I&az?{O9_C4S>p6P&{_t!xv5rk7h7RQ7oeI6rab6N`Va{?_t zV%r@en1+?J#YY5ga-+U-VPW(2w zi>c!>My}cp%C448Aea!2N>h^eIw?b9hGG&}q?Cp8JR=){fq9U-bKa7f<0)Y>DPe&$ z>Z5@^t3G7C!=nG4=*XoybQ$--jVzxd?Tm_PtG0bqkB0=;($DdMC}c+(p5h*<1)<+0JVm>I3gMTB%o+Nuv)|I{cc^@De_Qwccz{4G)Nh^`0ZFqTWC-B1!RZU=Bks{ zSq$}Uy%pFxcp|sK1yA-WT>>?FHR_|y9~A%Y!Wl7{hU;SQ;^|t@lg%B|vHGE6oAIzk zniA?1g>oo>pN`Er;S2xckBAe3Mq_V&#a=mp+ZIZK(v)v6BWwY$GqUw6!BCU;Yb!Y0 zcLz;sY?Zx_g0$tw;=;R4nBRIVt57ZYn<$Lm^q;Jp5&2xlUc(-aY6z;^{k}9ebjm5c znT=w`JqPGN!1VnIrFEpU4nsy4z8UY2jMZk$xwDI8P=3r&~x!oQu6I|R$>{wKqHl^f4Rmj{f#qSbI4)ujCasMkIYS^nQYlqtiP2dHq8Rw_CK`kH=h%93*|NNGGMmD;# zAE>k<*lhOh%DXr71jeB1s<#0!9tg&ZYeOfXopmRx~Q2E>?%nE8#f^ zr8_MQa+bTl^p0{&Xp~uqHQIY-irC}&Y+mh(@QrRSl(2DH7=?za{MVy}HTAXW%aeN; zI)rS&h05JitG;dvnwkmaeGAX>)aD++MqB*bjXkMT>E-Eu1`*M;11UgOLl5T@qICj> zEY_nMwK`(uClw*EMZDcW7p`23+SDAjNw&sMir07xMAo&wp~t(ib~s$n=vboX0}*ry z+jM4(AZ1TI53gyBkX_2%pDA+p-esI{lHck1^?&$HyEG>zdRdDM1-ns?EaPnFl)Q9L zq?g1_23Xd6p>cKU6h=0ji2IAZ;_hy&+hi9yYZcMPHfHo`D zVvpDzVR4$;JF($>MI6NAzo7tvt6oFp%vne4ej(o{DC)~E*sO_#hgiyc6(zjFYDmt& zIX5BA?eFZ)gb%I(QMRw4u<;Jkj}yH=5eU%E_h0pUAu(Ka#UhV?UNp~%tRrrt-u-{J zBeM6$eUDjlCc)<9r5*6j?S6tG4wx1$1C|PU;?o8hI3lz zv5)=Mn8q5Ru8Fzbp%V0RS6EjKWmtN_8LkDN5@0hp!< zyQgG>&AYBXmH=vjVzZY6Sn1qLpbj;!$c3N*K_VIX6KmhMTcsPvJm(CN`6D#WY!Hta zdUCmJ*Ab+_8z>S4#hCDNgFsc+u5%Ctj=OmDJ>2Pg{0U;X7+@fe_I+S>N2vQKa5r9r zllcvijLsL;rSZZvc*>1ns4XcJ%yArAN~i~FSRJGHr6A--hM%%%ApVicequ4z%I`MD zsJTXWYB+)fE3J243_W4vQtFv(5wT2A+ACwR+W%(!02`B>uhZ;eBNHUtQ&E!G?erk`i?>N;^MRMRAjhX9-)bYxAA@*KM@m5la`r)%X#9g{<|E{Q^1WrjMWU zWXx=5Ix?%^be@$*c@+m2A7}t3HJcic&{w}PR?xW+=j8Lc)8g57Qp6Q~FTHr9#N{uM zS0F9yOlwtq0s0%oa3o$;-~omtg8qZjll4xuWO+*7183eIowLDMoOWu6I7wETW9?`& zb**s+CzwO`9@lYtM?N?Rw!@;WOl5Y3<9WuShM%5`CAnuR3c za$+8!{TGcDe5R8+i|9lwlY_+O-nZnCWP}KlMFP8li_i+aYrBEZ7UullgQ?esqUNS zfsY>Gw-~!PEz?ns=e)eNOJlCEBOs#{t*@QXW^_Xwr&@$9ByIwT! z9DhW#3~qXdj*b*+bOO1#)_h1Ij&Vbz&MSb&xO2N9B*B)D5o19-Aq3$JO>+%R)G@a@ zgDh^Yo4;@%1d|$vYXBtIYa1uwxxLrh@5U`?XFMSN7zDE~MX+J{k8utKcvDjG%BcnC zmF7zHH!e0J$80j4Q#1fL{TIg&juzdQem0YgwoiYM)GyA+Z#!UsX+_my1#`OF(~168 z-%2_iFBL1oA1R()rx#v`cpQBQdL(pP{1M0K~Is}ZuQ2Z zS4G&tN_yi$L6co~be1V$sqt*$@zkJYU8+_uvl{=-0y+dCT2q4qx%Q#>O(TTwN;oa_ zN1fuHq&g_Ien3Ckg`ydCE0w0^KWB$O4GjBF;9Z3%Y5E;sLR{P(cntwbROmVFhEc8F z5@&1gQrQ^$a4R-`-;+e$!Yo&O}F*;V0xCIDVzZ_{GwF{8&1Ow0!p?h5_Yee7fAoUFse!XC#U@ z#N^U5v>#G5UWk<{6<$|u!R zY|2p@0?!#d+mZP$@K`wO5-Ffp+CKMq$S;RZG9gVpk;j)zBbNF^ort0}jLnASjmIvY z(`@vz73mN^k87Mmqwzv^02^AN94e}jl;qCj1cRr7{7=2D2iQ>C4Mf2i~j6?Q$T9y+CHtX8waJF-j8 zoL7D5^{_daKAz6ajTFfP52t2R{Dr5)INw8>Xj_4bi0zyOcI2yCb*~(O2^UP5>h-5D z6S0G7^pY@S!DSRTZ6YM`JvN$*Yg`^eSTxsT6xfdf-f*dVuypQ55rQu_uPdluZ{*=t z=>8y=^39B)750F~2~3O;=KXh=jc1`fTmCFCJ-D2vw(FJ@xx!qJ$IA7-+)8`GvT5{b zpBFCOuCt9TLSr~we!c>A6+p9A(p5aiC@fm2IKjsw`#W)zMAE)zD>im9s2#&CfcP-npB!8)ZR{V;AkM4QgX#m&0B69;#3V^n@W%HOWzWP1JXCRr1t}E7U^fy z0|Bu$@9dR*;DqL{*bUFL?b@s@4U;=FYqjV*7h50x}No3zQi*Bj-axt+yr;{dPY5oyl`9+oBlWUANmV10(rCa&*T%lx&S=WOZbPKCBlRbRdLo zhP@(s=;ffml37NlLf+v{>e1o{1dQ+(hgZ@r=;mDVEL!jcf2(k%m|7cMPORvyg?)Im z!?A^b72HedMe^EUY%|^8e&F1Dhg}Wm%MPx?0hJp{+o_+ghFDt%`{MSfO-gwGs^zX6e?GT{;u9HO zkIb7FMcbRYvYM{VcQ|YsRR5OW#7&_pB;g45OpmO@3!e8BVc|ceU%`Ji;j^wH?b?*| zEs_i$7TwC$ZVwgwyJQazB>JB{&;H%o>D#C|CB{FsvnQI8uW z*J%ORpom)C0qmlIqGr6*IdTBZ0USuuF-byGxm0Fb(9Q#7)=V~L{?e$qCHrc4nsJ+(!9-kSZlP_$ z7tA(i6IicA#vlAAKXbIDPb7e8?Yn;VRNBo5R07sg7+Vm;^#g2=kYZXfNgGttyg4Mn zPPTFj@t8&7j+6g_YI;gV0;{|3tD#+(IAr!>W^I~e?ch>Xm1NZO{*T&jKh*j2a0GMI zj#^LoOfC3r64fppUdim>Q@mqyxW!{abOJ;4P4Jl#0jW0BNQ-YgIcB~YMi8{uYZ$Q)O(rC9I zO=%-Tzh~(g5alr0RWO&Vl`YsK!&Qc#5VuS^X^`k!hrG~2f+}FH&xE`!+J>ylm@1S}Oe$j#X564Ex zBuB+#YTmg`pe!374+4QA-H}(F9Y@@0!8OGtTz6}KqWc>=eY$cqL;GLSp82+L&3Gn8*XTCH35y@W z;XS5?a8)hi@JqKVH5I#@0bYNH`OyX%_JvDO_gzJ*Hf;smvJ&7#JJ`RU+K1Te!|$DM z{po~`1z1>l(xx$>MO%3v*7{`;;v-R(uLSBaFh3Bq*7i$cop&fpxH#GE9NK`=gJp=j zJX*)QiI5K)8hj5VeVr3kyt1ne9O~{0uJdXdPr(SnzGf+rN{w{`gfb5oqYByUc7G-j zrW{blDxD!i1SEcE=MTXRD40~w8)G}~5OKQ4$Bie9Nv9xQ-Z@;Y-By8_-_kXXs)OJ8 zhsG*ktQMV5H^~mdDLB0Y_&lCWaOgY$~&3ZNoX5vPke>-j*VjqQVJ$#)AY!&qPVC`QWy`d=ui83OTbPu`rW%R!5#X6(Yn3E--0dt$_NC5f3~nA+ zTX+V2$>gSd76_Cqt!TXu5U2weEXVjsG;+3I&qmJcFzn40fjmI*rJA}mXJ7N-+nE;_ zZPmb@xmYW9IM(X`Dj&`u>j4AG3;jTNqzTg3uEWjncV%3MO@cGZw8@VJB z%f)*7QIPDICQ)@%#q6zhZb#!{!-LDM-0ZFpUOZAFGl+tTE%|wX8?^e*+7UB9hJtyL zFy~!Xd``(hgf&dOd!K}J&<_D9-N`Q6+2rkMr zOy>#9Ldjnk4h%M}AqT3~uEt3MBBXRMC#~R7{ldkb zemxAUHbL3IPf0|$Ktow!99F33Tfl}`w2ILw?q5IghO~G+G8p->e)EWAe)K3L=-1Un zM~N<;0%}*1VUSxART@{>P~RhgP%rzHlrGAkmo@G-tc za{l3{93n_iw@yTakod}RGH+OB*?&z%>sP946R*V^0QE4VsY=wY-JW6PK?yhV8bXDU z95Sh1ad-II(cM&xZSY%%w@nGpT!RT?C_v^~e}w1k&rgoFPpogej1wX*F7E?r`d(kK z+J6v);J1Qc)8Fk)FcV}_uYipdO<{BW3tMZ6tk~Pl9KZVOQS`1bUk(*i)eha$181@b zi}mFU(#LxozyR`xLTA9=-+z=e8^;)0TCQzpQEF&c2I& zJ=bBtOcIgHtrnQTRfo$JdcI~hTnH@E+|!v!wh2JC5PDm6o7GMF)l=@J+NA1ChbD`` z(=L9gVtipt3j>#Tny81ej0TYa*68FpT)A(GblA3GHM_=PS*edl{xp^`QBGawS`Ppx{|1Ae=QJvZ#E9G}i{rQX zrm29^9YK?VmRX)6?UD}x)NB-KecG~ZaBxS20K%bphRlY3S4pfrKp9w3XLiE{2bnr% z!FMnSu>^iDax1W&WW%}Lh_r|ZN-_ZZEsEK+`ZP=dq)P8~?Wd6(L&xNzf|lc%Um3Qj zq%0D`%dKA<_V9f4d6U26H)*WTSU-*I!u9zb6`E(YL+vKk`RuAB;z3VBLxM~;SZ#@L z6{CNK+QhSL?fS|X%k#KHtDhy+(x{(58&?%-k2S(LdW@`JP+rP>{Cdd%n7rOXRBtI+ zeIvh)&PGrP=Ggw%&>IrNFkkz={aj#FF!LcDO!eY92NPorJT*CQx8uEl%t!D7bNJrK zir*LH0QEyWJd|c$CBY*+#24U3u4mv1PSX!mG3`p?I#Uiq$f{mCGW!W*Wz?d1X4P>KV^fzw4UZ86RIop-w4y$c2=8}WljHR@F$K}@Ke6> z;_ZcR2+k%c2cDS+-_t8IRvHbw7l7$3jTb;{0cOc{mv((rOQAG9W7eLhG2x>K{a z{>U7otTgg#*IoJsNdD|yIt%uoR|NGt?>$RzE)niwC9-$IC(#*e^**v*s@>o+CN9`& zIVdH*c5l5fY){Oh`k~u%#1y^Ml2w>?49%$W!p~)A*ZQ%=q!+GdwZtQ^pg4k@pR-&} z1tol&x)8)0dp%!F;5a50GCwbD8*|mWqwYq2&|GeMSjqPOWLk6vmK)PJpph&BmF3lP zp&N#UlDOlMzjg4&jYXmzQfkwcLI)*$Jh!}RixOa~PJ=8VdXE1&{Pe1A)`~qA||0_moQ=!(I|G4}2-joRY<$m4^Tlen3eL>a)x}oxA!@5_OZrk9gBfcxe;P6cL(i&D!{#AB55%KD_W=Ngx)ax zF&JHnU?)!iAv2nJu-V=RrsftWH>})I$NIDONq!3>ZU`SoXXq z*xWhLZyT(5{IQoLj|R=Fjo6*#MllqG|IG}hMa(ik+hiQXFlM6}mk&)1+To~1k>GXK zdmT=DLk+BqlPH42$8c9Xq*3_Jc-%3P9E6 zXUE}$QX~64o@&tx>U4W=#TtU!f%2vg%hhn}suo|CGBwdy6{I?8WcRA8!uV1y9T1-} zAO=UwKGja^GkhQMh?Fb_J;pR^xY~Bxre4`g;{DTFZzpFr9wt@^EAoSlHBgRBwtq&X z5T@vtEzr_g-GlP3-bgVFRWj;PiT@qP^X4&0r%8o-6}iLBtoPK`ZWP^?;ue7(QmG?l z{KOi`sK3lg(D`fcJpQ)XEvbPb!V~GnCsOtnQ?pwOBy!=LrA%?_yyuR(#fnt6>`vK6 zk%0ZMv?JWe&kehQ2;ds^k!gmc20^0E*QoDm?_&ZVrQ10hH+LUM?4?l_qtl z3Om6;I3hT?T}Yy?!6?j+qnls<((xaVn;>Ib)(RKJD!hoyO($wo1fFUf)OO-%-{5D* z?xr_Q*};y4uRVQyywl-p8MQK1yHr&e6;z=|q)_CIve~9q_kT!Y(rsm(Fc^*Ss&LJF z8RtmDW85IK<2G5+y(&{gK>+ddOZ#lq-v#&mp0ln7oy$w5yqIcKQ9@#6+&Oufgi56& zU>LY89=S-C=OxZR@gw$+6okEAhbmVnUYi@-6pDUiyJicQpxsv@Bf!eQ@%elC0qE5e z%+SAQLRM9Y;HYyZwN5nS=lD9xm=f9C5m-~guNc@WjCaT%j+PRupGbhXW(Xtw7= zZ`Eyjb^W!AtW?eQ>3XP*7dbu6T@^!*mW8)+R?JP)2KPm`s6ny>{W z`tbDGF_k){L|olRZ%=_GVEiA(VshZ~g%@^%P53T(pDS;#P&_c}TO2#NmDJqxE}R^P?4(PsG{*x+g%D?`qNAa~ z(;9yWJPS821Z!DL4Q(6x5AfMxhD>q$1Oq8|;J`a@?G`r*RYw&kvX=T+a9NJyiSrPD zpLcR%tlNY(1l==a227JvVjgp7Q0FJb`1s=O&LGZgGoq?w!E$=28f#Fdb$^wU9=9&ji7gI0EB;{3e!O`Quykkl>%LOd!!WhY$Bo>_4z04jL z?C4o@KLQ~U^>Zmqvh}MS0*X+Xqw#NC3nr*|?Ydw?Ss`HbBcTLGX*e>c1J&W|pA1sQ zQs`&WAwR)1B50a|AR#$t5ZAQ-HhCblFAnlGN;IHk1I&C-77iyej?*`?P}htjq-VX6 zFYgLaBy#S0ML9m_dc4oOa!glNFlxSxEzE%yrmmTHkUUt^R|C?(;l5f{&{Gx;!Ua*? zMW=`(hI8Bn{q}tgF{J6^ogD@;vqe|ffz0<(TMYi41aQBEv;&#LN>gNuSWOt#i^0L- zv2~$?O(zAm&cv{zsn6iFgOljt`?{=bG72nh;sskeR`LCKEAC{A#Jam-_)`XC3+N%+ z*f1)?G5%5hp+5~cpK9Otfc#^sq?8t)m{qbnk1Msf8Aqk^Sem`9O}YwP1*`UB$jQ)9 z%ITLbATe8zj$lOy7*g$%F$?wyOo0a_!Ro3=GZZ(cbY2nIdM*=JPNZt^?Shh{%<3uX z7HFEC^xQA?i^79is{b8^kPqx{cS?T1b25b7Z z;{PI*jbjq~1$etocf1Vy_bO{Fs98nBad88dUv}%JG>h)wz->sXV5QC&lj<5gBW!x6 zHr1Lmw&1R`tJ??D#c(^k89bnI$r@X_l*F&=I(@!qU z_cP?gNkRvhY-9(hs2z&V6qxLbu;OIK9BDv#9evcx73W$ zh{YB$V2|P(u199rVjNk}lMYSiU5NGP_tB=8T&QW!?G|{E+*owXHXN7vF{KKA_;d>R zW8{}8^Yp_59h0V@LPShE?RM?WaM`12!KAad*VxYd7O~NmuKq?#yr`m4h|8S~t-(+| zTh|uxe=I^0rgzF*Fl4iB%iN-Qal`_^0KPr@#t10IvM#9_`k4We2If|+&HBZ-+yJE< zWCHJH(dH8`R)FuQiG$mFwO^B|6euTO*Y+ak&{}wcOKIlw9H3?PqYDSt4c^Vtp2w6; z6mmiQSr}+=7J0a#2ZOZdHg@bsljik^j4V<*Hl&aVykNRgP^X}0eGt$nM0I|Le&LNY zy5uZIYn4i;XR+E&C=(ey5G}wORw)DDa&8)k!g&&-p_*V^=kcHV{+FRS%bUhIiDk_9 zU&Iuh{XIEm@k=iB+m%-Fld?QGT5}E%ShMffU?hMBXuJR2Y5h(P3q;g`-IO=(br>P>2xlVn3CZMJki8IN`>J4%sF!R6D^Lq#M7+zEKQ`Z_7y z9^0Sq%a?o`Fv^AMcQL{1Q%Bp&#Hvc6df&~ovd*$@PfKjTOKc7njGR*ORt{-Khs=aV zhGp}OET7+L+LTtps7^wA)amG&_+ygnPA9(F6q6V>+^Iw*lAxHD#S+1BR8J--fD)fUkzb^D|HkG zC;it)>i5w3-vB-NK94tCy*7@lAg7e!?C5wGwn$xHJ=WjFeDr)%NIizMO3^%L5GC$f z{+ArSL1PZCTPna`E^*)9PK5yz^3=s&FUhjKba}XZWFQhTi)VdMK1$7Pc{m-q0VpW| z&Jwc4TtNTHZ2jF>nJkUZP=DWLhgjqPu zWI^OHkWE0!Mk@l#I75Nu9@2GpyU#cgd1lLid#26G{9w@R3QrTn!+ptRak<-&cUbYA zS@2C|C$ya2L+h2r_M|7SRXP4}*l~orGSn@LW|dWI4&G})0NW==<{2G^2Yw{{lF-h| zN#01bA6z#qfo1*k%O8pSQ+7{e@GmumUKMN2ng{3%9gT37E_y*{!_X_=s{LYl z4}~tnk6RcS2h4H7b3BGiS6C$6_i*U6zP=r0oniuAe|WG$qr{<6c?n7*}>p1h|JSGA`nlDKo14iBrdO1fjs>eFj3`xnD#|y} z<^8ho*0fd855_%;(XipoQepMSF#*h(!P9@OdzXoZC4ixbRfMj@Mv5tZ zez1>i%OJUoG5oO?#Fn!TB=pR(ghWpTBc zmg}KQH-sKQuU}ZpIslKN--;V;DVE5s<(g5lNQb_pHf#b|wc+YzdX=?)d(`|AE0q1V z>EY7+mOU;DRT-}KX=iE+?uFCGB2e?8<$XTCI!yhnIa# zHqYcN|CpR;zd2>9j9qF!-_Xp=nq>i%??r_@ofV##i;Gn^fvO%`-JQAL6ZT9F6}Hn( zl$OhqI9IVx%zGQyzVB4ey`v2aTS67(UF~X07S9e&u}`!3yx_M%La|^*FB1a^UH2Qt z$9HE60MDfoMHTXuf?oj~a&z%b0jFY|0|PaOk?SfVasMk(iTGbMDN*zS`t5U3W=m_vY%A3HHpJ+`e7Nn~8(+tH+11%7k=0w6<& zoGrmM^oJ#*(2W6XRv^vw4wYyEl2qO%)<8~IlsqfXG(EbShNTRAm7H05r>2fm@@FV| zp2U!j7xzF$-r?K!u+6=GMGK*vN99s|9eo~bG--%o#Rf|S88YuF4ZfxMj)h2&u?XeQ zo5ppE>-N56ed)i}C2;X1jw;Y%EZ5g(gPqyl8WZq+!c(3|I{fn*5?t#s0+y9iL-T*@`7lBPbtT*DY-wLiy@sUl#8r{9KF`n^odA$b5xd2?S znE>(2+B#{F`Rq=SXWx{w0CdtlQD->;17T030xM*j0>-hB8OUx?#mS{=vF|@f2p8}^ zWZL(fV!F3;kwDTE8?XgXi(nd+_Fyx%t%(jyRrXF0IaY2RYVyT)+Y#{`jkxa$x?aSByP z<~+Hsr+Tlwu*S0-tTWfG*7?zSWh{lXm%koBqS(D1H1lZG=}@51Eq z9B{XT5&$&Y!W4UOfZH0PNd62>Lk(r%D`qW!nt;b)Y!;Vz8PvD{+dksE*hZ85LpMhV z5T#Id3vcBtW-0lYe8^KCDKz2TI!=O?haRX^{{~0`lox%sF$ktklWXu+hiZPtW z1#O#313^x2k$CF!{g5P09n2lK0}tNeig{H!;AEYW(iiy@N#xQl8Fqbfzw5+3V_ACA zR9Ydj;ij_X4H&lDiQ7;vr#j(VY{TZpy#fmVE@h;LrNzU{g-1N-afC!0wc2ohB_+EG z^28v0gYq&t62nJ=RIc3h_m!P3F-6rFicOnUKq-W8NO_6rQSR=){sYx2pQL&)AE3>1*@%P*90J5LN&jkkL{JDtg(#aX;Y>bv_!j#6;+`b)H@9dT zbuFYHs!>LC2%lIMtuJce2P1r`KQmiZ=;c#+lH7E*+&+nOiUp<6cO7{{TSPw!xY5*{ zVT%0b=>&n(H0xgB=RgUyoB=L%I*5-=vIVe;MPcvtsQd9QM7$~OpKYc)v|NY4p^Ab{ zHIL2Q1+&smiKErJ>Oq@z`*OfF6*%_k8vwZOhMs40eEy%^Y9mXH+S=Q6b#0X-OHhswckpW>T+)+qI#5j)UHkJ5Q`p1CNdw7Zc?R9UG#!}Ltbrw+jL9X&y zTzfF|a1`&kdd~}&E}-Dj=0JW2BxQTGJGCH0Rkr4tiP&tb-yMg<>`+fmn$Ml9*9h<9ejj==7l2dOc>C}0}ay6+snle9{D(uMj4mp;SLNN zACQ&HwBl7J(t6n2HzGj`V+gz7o1DezA*8cFDI1|5Uae30YaNK(Y!T7z1lkdN2HfLZ zPX*T}#u@${vh_UG%`i%|8ouOeJ*%;Ds#+l|LrA;31F)d?|IJoT97!E5bVCs1 z;wt1Jp5Cn}$7CCs!|3Kx*t3p*v}>Cd$n5v*PEBkrjitHz?G^er#adIY@Qz$uBy7_$ z2GWc6ih$j$EN3vou#PKhMdhq5qg081A{y__$5@>;DO`zj(h(f{T*)x@iMY&^YTvV& zB?4tV-?B_KE+q|DbdiChLMEjetp?V2y7M$S)pQ?uOP=r#hbmQ@wK)6O`!P4E&t8Jy zv>?M;PkdNbbliYhw7JCUKS1kz)9MiH8ZIU6%DRy_GR$9e+VOjeIV{?1Yd+`juBBHB z0T)TMoDWdYIK@R*N<;J1gxL0%qjLhWI)W~E<^Oc@=(9XnM2)GAiDl(PVXs6 z_$`ZZSz^j*asJ3R~78b?%b=324NoxQT`w-%A3R&!@$?!7vl^7dUoU1 z4+nCEF1HF;Im_)mZ?b;vB96#^UX4pe)LqpX@n4hV-PE9hiBo0b-{qQ>#s z=d#Sj&T%&l2&2FyDeiigc8aO%p!QL+}K(xPSp^>QpD~HC8r^Iy1DE7 zZ#VCu_I8Y>6<}amfb>YkXpUYo!k;-ntst@AQah0>Q7VJeE=-Aok?s-R7B;Ii;jL*K zgaGfkNiKxUCDt!>c@dV zUjGG%zu2m#Vh-z{CPdAD=d=Du#jr8GN)P2~`j44SAAk^cv+UXd z&U(cDJ!I9U#hQn&|B(tdT5#%BUMabNoHW?l4*zMxTkytO({BzzAUpTj<*KQbUqM{j zsG&~c{}fAKvcCs715j_}1-Lyw06Jr<)meItR+G(ehu*fDAH=VpX2@kQfG)wO{G&pi zI_D-b4j7n?j;i)2fQQPqq%Sq+F?y)qiPQPty7~Jusb#_$1FWR}~joza~L@1gk;&hajA$t4LwuY7qXGBrBHKgO+@){mC*COZrm<|+49my(2Bl>&Q6w*b8%<+-|L!L8;;^_{Nf?lM1K zT5gHZM{)dC7U9#uqH z;R2R}R;{ao_0w`FTAC(Fr%jqAish&gWVi9s5MA#v%Dx z-bHz{(5MPn;VVzk83u*9mPoNn%Un_UX|L^1){NMFBnV7UH~*3oeg1Hq(>5r8Ve2xE zRZdP);;|r6V;I&^I6s@DT#`u?3g7-N6mo)z)vKph5!d=evVOW6JY$}apQMVY2Elg0 zF%!|yEUkwtGUAtVsL$FN_)P`A|J#*cgw(Y*Er2u zx0ME>udj1_F1&AJ$jK*;5_c)G)1m+7dkiICW-cIak zJvPCM+$JIVf^UORSqYVHM}C%agnh)vUxyzR;4leqf9kdlAawD!uwuMTB+p%@9xKRY zV(ohHXvYB5eDKYGd6I*+FTA=de z`8~XG=$8GiB@7%sbTMyc8#}twCm^F7@nexJJ_fQ@er34qYZhC7eqiOE#K8PyseP&0 zKFTRz86JBa#l|(XP_M7i)WBv3YhbE2Zf^rTwyB;{Cq4a9QUGe z8@)lG^7WR~P}>Smydru>mUini3`H=8gI0k*K;agus(2ClsqCgmEL^@9@Icj8M)6W0 z6Orj{&A}s;Ny`2(17T)N>-LM?F3kD1$W%h33D{^LO(J#U8PDUvf30jpe--uIBIbjg zFa}Xedj&)7DZ4a?%FHP~-bt=DVWl)igNCT{>cwrzjVOy%jtCALe4u*nHY1BIRZE&1 ze+zV?6H+PS_qN1FXKUp9rw;zh(~FtG{siM#BQY@Yfsl;;6DQPx%Ki-ssKjqDBQy1K z72kZf5{SR{U2bpRObMA=-0lzi?D-I(2BWAyB-O`m@<;OG+avTHT7j-08+-*jK%yIA z3@%GqaQB-#l^&b(cq)3ZA%@G(lM{@G^Wj!Wu0k&O^696T+PV9i`$##>X^$S(FM$}R zk%49lpeQAQ2CUzMSd%PVlK}LIrZ|u|db>{_hd4Cgo#YkA#_1-I)>4uxu^qmQ3o2#= z`En&!$FNFZ=Z=<6pv_;w633|<_&Oq8uEC9llJ%X(0F}Sp0&%|MoAf((@`^3wiTC^W zv3myv?g`4Rnw!f-J%w*=4cH&680M2|UP*FuR4opg6{rc+Qwf+roX zUj&4l3E_B?r?eF9wF^wiMDzIF8QnU&0IblaKQrM@ZC7YaoQ^^x+tnXG@l3e&ko`)1(^y;-!QSl7=)du+=F2-PT$}o z9{M!%BDJ3QV28v+8Ise>Jz6VFtk<$L9gkWC64jUerRZEe#lt0jinbgL(Cqj86I^qpY zzQ7xx|-wH~}phH6zoG!QHZ|I{c$xipU{y&2H*F?B6zkeskGYz>#0j|(@ zQ5dn;14#SG$J!rL69H^3b2h<`+=_S&p4`0lykKM#GOgvwb$BXAU4x=9OEsAbaB>I) zG?X(tofrN}b>3aHoT}dI4do}NRl)=-m`S?>nh!um+Ro-!c3bk86KS9;7v-7+sKD0g zvv3?}zZ&0Kzj1UbbwjcQ>oS9j?i8i2}y{{>w=M_g<@ZiPSj@x z?+EYdAdUTdOh0WijU`K-7)%tRh6xMSM_ z(%u8yMq;@eKY${WRwW7ldTBx3IJfw|_U^Y!8@r(@aZR$d&0!b64U#6xQ*6><*0emF zW%K_a);1Cs7q;;JMIG5lhH~tj1hB?hB|hP4t?VEI>de@)1{0TY2c8!%YFm*BN$sTl z@P*51Fh|>UJ+8#PNKmhi)lr0o-H_{=d#f3f@;OU{SlowdsrXJ4eQ!0$*(!aLBZsX? z;ITnWaBJT_VP`YHX^xwSn2mNm?ePa`DSYr?=s3!kG|a?jO3XFDc(I)Ap|!%?;$-XC zKM?Xdv#$>TV700WpUE+S729==hH<5KLdVzBgj8VqG4zN9(OXn~K2sJsV6tDeYDetM z5UcMC`cAzX?1co>U5NT6wJk839kQfZ+9LdHvYfRDZ{k0&tN`I8Q+caA=yR5Dw5^XJ zQWEHq(hYIkUawiS58!|u3Ym{*>MzAbxJ)H4!<0vvu*DXoGm&5}sh5jGaVs`VBvSSr z#1vx>%@mlNXbtZV!51F>#P6G9o)A@yGd^)SAaCEfJFF5EqbD&XXozM9%iaSvtwkXX zM3pHeOj09&Q}+4oGOR1M;6-Vf4W00&Zuku5u_RzkHE7prR4|c3j(icdQa&#xW&mNr z%N-5K_b<;b8q?XjP$U7ntgMz&okK7IQdBl-LmU-XW8bE^zcI9(gq#23mz-lcGt`0; zO{mkwaeslFum1wd`Mt%cYWrf(1NEs~#-K)fAM{|edIiPS`U!oCJ{FUEhRw)HtSgh+ zussE6;Au?4&|bq{M3_&X$A&kh-OamLyP>ofM2~~q4hsExrh8x?&N;y4o(kXk#lio+ z3kk}W+8r+Fr1VDzmOz7rce_&kle7eANORoG`9H5PLwJkrZ4Wj;1r2h-lezxZ=2TJc z0&1u{xC>BOI5Onq`nZB_bvn}Hr6y_5MP*Q({9 zxTX{{_cgC!-6M%Tw(Z2&t(hX*`bb*8k(H^$9lsw@vUu|Iu>Rx-zSl5u)A(PwhXu6S z>Ye`#eHeOKzMgeX^elwFcuAXz3Zl7W>Fg+t4DBZ7Tg+KJbYBJ5EZ!6$QdQi7yYPg# zIQoD~v|QpT5ek-kjwp#9P{4Pj*o1|fSiEU5?*;O~sApUXy276wg$QrwogQ!;9{3%MloRBGdoH?Zs@}Z~Z z@1zX9mL{Tqn;%cIZl(`-D^&tN*7dO~1o@|#f?wiW$n!V3@;@31=`3Onp%m15Y?6hP4)B*_9ZsqWLhTUgJEIcFBG z!n2W=AH$e<4g?HXO(yeo=^0Oxa2TD@06O;!BnoXF1#ulD0WH{0kddI&LDXCw-Fxz5xnxsW~z3ghYejSL2;4We<+o>9SlB z9}L%g`0T5hGf3HkQ6F@n=r7ylWe7)2h|UFq>o2-lFlk+7i8Rjo$P#Kg*8-}r$-t-{ zvC&i2Zav7lFKYrWTlnIA7YCoXuajLFk-)3<4v|>~ip8i&Y04B`zLWYrQEKRb2jE1O zB@lU3#y)q(N@!S^@&W9OUz4+77i6~?K=PDSv~jLNR0@hzvOL<-3llB1CxMV5>IZe( zMpfaJY>qZ+aMoI+H7RvXA8{;kbJ196MK9c5+aH5J43uA7wFZOruMnt&}4`jV)lF1(tX&icCxsFY$OIpbMq#PUyKs)gPgU+=L`x zb=dLZbOd1y9u!zGt5~9$N{6#%K$>mb`DmoOcn4>p!gOr(YJtsYpL`)kY`LEvh-O_H zdqsZ8{kZcZ8AW}EJZu$`)vb5h#v8aq%IR*8I!PwVse=Wt2J|;h7uRQT==tFBmb-41Rb;XA4%V^x ziG?LVjia&%g+PZ{Q2T;|f@d=934FmjI7#&tG`}l*l0(k#d2zIC#Oa@35mh+>ai7f}8@Rij{dwI8>KqQ7d*i)Y#+#*Rl==#@XRRXfWsh(Q!Fh zaZU8DD0N(0e>TU?)1#+^|K~_%Aw`U8`bDo$kjAm0WbuF@4~ZAdn3@Zg4J`eUq`Bg# zB)aP2zV=u;mju3jDY=v8bD_9yWQHoSS(t-wBg<+M<`RW80>Algi6JnM4;k~$8<^Ce z+l>qLzUR<_Q4dWqdS3<12^CS7oEv-hWG?;jj>)nP7NG8I__8xt)x9_2)6kj@Nb55oOs0OioeZ z#+@V4{Q)83%Z%WqC64ZgkP<#)H|M=});@?uPZ3&B`kq=c?5iPpI}c6{pO~?MKf=^4 z8dUvJ6qn@adw34|kIUYmQWu7>Q>`Q`Lk4K_84(|^{EKs*`;pXK2nT&Sk-~~p^RCSd zWi~OLdTWN_(3p}nZl{cizs)@3^^^-kaCr|=2PwNKw2?e35!5Q27q3o&Nk-$gbI2nf zG#)9^h%Gp(27PaUT=z#IdsRrNx@1T^TFj^6RpTFj#X@}6a@TIZD9;^7TkkP0V-a_j zGBO^eD0v!VwN{NZ!R4r6)1+Ixu42x4X8T}5ac#gpGU4RW zB%`{Yss5$b+a&UC#W}OfRZ+hn%6TMH&d>Hj9fc^mApkD4ZbagxNg#(Cj*meMToYvn z6I#|P#9;1HPIiOrrKfQT;it#9iJWTmV(Ri4<{DdNIjSDk+|(~S21y2IC0ef6{|K127xK`A*!|B7ictG01OlRlVB@GWSWz>i`e}c$ZcuY zH(}KU2Z?A@TmPy90jJi2$)>-{)^TtMf(}o9v2@<$2PbblKpn~oeZWasdMrvzJBNB> zOYnG(VM?JWkmgc+@mP~qu^ma#CZtc2PBUn3!W@Y{II3cxi!1z8m^AxGG~PrzGxSnE zOjeu<_Y?c!jRDFLEK5ZD!hrT%F*?RNXi*tY>SoU{WWagUdE7zXPM@$sSBCHG_zTtt zso2>4_*?*e28t{Bm`dX!xzCScS;shhG{^6Jh2QJzGRX!=UtCld!SkGkb}=Ihy7rBt zV$LMZUDh|vBi5SNk{P*VXW=VLinM(TKogzz;D6o<2$S-!51Xcj(~BG>EJfDb&-bB) zuwsA#u3}3f0SuOIGd@yU7zqM23M>y3(WF!s1WC!%3#Td`bg}v1AA|6QEwaj z4-(nF5hnEjkA3zThV^_N2f#$HG_hPaTp8&m$>faJ_EwM!BSC5up;VeF0NmAq%yZ>% z``|uh*zzX?95LMyoLot^I)=tI?>AkJ{F=8-Z8rM(JRw{yKTSy~X7w_Ddg#8=>saDi z*W_ezlRvLH_Bgs=?K*w#I^7o6^yEHVfOg_#Tp&oP< zI(TC*UG@OH!NYK0E*x~Ax|Vi{ZMp=$@69@ny}i1CxoOW>^37^yGl3BNoR+aba_lA* zGS={cCXMq?_2AMLq^Jl^*+yzbyV{e7qm#ET0C-_4D{EX}dFs|cuPJ_Y)(qG`$X`w& z+3-_d2vlM|6~R%)S&Fe<>KL4lEQsm@K=7li%vIc5)dJ|ZjXm(yd^HDu7vmQ?n;@m3 z;t{qLsXcFwtU#Cn4|Pr5Kl*cNGaNup)nS}{q1p9cMG2=~y)Wr-@J}OHR`2Ajvg3S5dimvTqfOU2i0k?(zcnSwyeig|P zHOIXAXFo})g`Z(X6EX+|iR&t^eeUbne`~`#tI7NV-pv`C`?RX=RfM_zLMvtGOhF0dVS}7VeZ{b!jme02X(wWK zv=dNfp+TJ(+MO)Bt-zo4eC+0DerSw-7piOEF*xKT0*zIcp%$|c25h;Z;ST6u9iQjh zSYm1pflSGM@*C%WPD|qF4_pHN`mSF^770K+wr`;sM09B9{si*W_y}aYqk&ME2qd22 zcP_8BpIviauwq+riKySdIIDt`N`T7DCZ!!#L4tBzzP?hW$}KE#%~6^Ab;g$fF2B?D zX?tD&1A4yZ&hW-gKy@X3SnJjUy@dZ&1^R5+A87Q%ybUwq9n9`*biJOEr`VxRc#LZ8 z`(wPA6;(arESSa>!%?bRWKX+odBSN=?>!AftzB8L@L#1upY(p(_xUJK=Lu(v{Z9US z1g+(mu4e+O8O_CassZqk%H@VTm$91X8#xKao-JD#;fDD|tf-o2zV*vHad%uK0igsrdp_=Ifa=XdUc<=_&?B`MlSIbm0o!{r zWXdhH?_m$r^%TSb^Bfg;>2c;SAV!M3E}FX2xDIw?LGgsAtIt`wlSDRt&cDSE>sM{8 z0d5vtZHT`|V#y*2ls59j(5;w1#i9uAkpw5)cwrXDXh6|(e0Cgyg2^sR zerA|YU8!`?GRP)-DAiOXNQg!Cw4Z6YluNUT&pfX{#C-3^To!R9Jk9?%{N_6RX!tO~ z#O3W7@;%JGE)6h$zo2_|+Twi=W)@a;2=vStt1Jh|v^+^EzBXkr*tD8G0q1|wFhH7F zi$f%c9O!wI9xC_;*~Xrd+UvkQND*Ttux~;q5jW1@Zz^7Ra3=Afx0f`eq^t({EUQ*n zS|biL73wPBXW7~C6FjT79o+9W-i5bT`I@IbDzRr2LGYNTNdCZa1dfRHK8y-y@Cynur}ju9CRt+uY{Hs*Y!UeC}h2xedlF80pW{H`4eIHSyJ=-!){jV|SdBwJ`hyIPNyHo&2z)T612bj~U z1>*ro3b~`7sTGG0x?{0-vBP?oE6ot#+t@ohY-NAg3Qa5#lXb?iQ_#X(#5Kb+H!AIy zxUEj;UiCj-4!98}}Ch1R+q#GgKaG1&tllDmc`$KHh~3y(w8@ zBnW)SSfIoJ4j~Ln?3HC88SCaDoU{Jgwt)Qkx36ZREaUh@PxLC%nX425CX4R&Z1y}p zc1yhjuRhOnj+8voGca@RR5w?Ye)nf{vk`^n<^Kl-wV8jRTBMX}FNUpLulegQ%PF0F z0X5oM^LTWelZV8Qe;P(9#0eL?dFdv;MH+0W`B8}*piU>mQZdlxzqop{pZ8ia_lgdXe!b(rr zN~MXN0iK73#xyJ+^xU6oN(Z{cQ<6ma*bV@ifd6Tf<;#6$sJ@#qkKDskccyUt%BKr( zg1ICe^G5nxEJqY$USVxqe@9GZi#@qE&!Ntcbr`)%W=GNqZp-37JQshBA`u|9szk?I z$E`TxgukIQyK^g=SlN0$6>)7^nJkK(PYb>04;SAZdRt--Q-}EzmoR_?FJ^r4b8X=$ zeO&`ifiXXZ+6O`nE9zgYSMral2G&#y-gKnYE&;R zY{YY{fs7cC0#}IVCbfGkhWgBkdDbzQJgUc59}1fQ)~C4Edv4)F9gky&ifcAiFY{o{ z4leKuT0OZ{bbx(FFR)%;1>05O_9Wc6av2X)4ITJ3qj99Z`nN-#OO96$fE*@|$PzO~ zOxg1_yXeDdpKhKQ6&iT%0_d1qp9=IP@Hj$mHYj_gRh^sbX30@y>ZooK@GOcH@6_eT zpO}kh;{_hd|JG`KX}S*MBX`>w=C0FuA(*B43LD1o-pFLcaWIdhTm$bRGSO5Hw=m69 z4y55la@*mJ8$b(wB}H~VW2gf6kY$)eP>A*8aJs7=g9i!#lUz5EEL{Kr?91}41zej0 zi=(-r4mxdBEjwfzRlu&F#0))R}cQo8Gm=Aarl+6nel_4Aj{7Pu*m+ zs+%no4$W^X5+hrf7vt(*vJ$&dXtHw-01WCC*i>*xDcb)yFn+|Ua4kWgOq%wBB5cBX z)nJtV--u#IDgDM?{v3Y3uujSE+8Dn>PgbY^N#q$qTBh!-hQQcU zI;?uLRPps2R?T@l;_cAQTPO^kq%1^5VX9Z?h4h=5+#4@ z08eZV=R}=3{*!4Yu*fr0NW0`ZTDutFc~jMax%7n;G&J&y2ONBfE#5%lk{P|d#(COg zsyG!DCjp2+uS74a?P;zOjftRU@(ZpsLF<2p%Sp@}RRELqi-@q zDDFN^*@f9$i1~^p63`QpON-e_!>5{ndNix>22Fu3 z`+XD4vuL5PfDJLjeC=bP_-5q9m@O{may;}MS=Og4fimVqz8YW2;d;SEn3M!Cr|&dMfhcQPtSOJSD9~+d;Td zK9qCSdGPF6a|Alb#VP{n_ePEO)H}HfL6gB2S=zcXK(lE8H2zqt&@(c2(^sDXd(xHQ zIN!w(Y3DS~CRzf0_ILHI%S2x>iP56V1AxD{+M$t1cBPU#UsTLdxoCx_+%kPl#8>jw6y@IX)*^JBD;5>^2Z&yan8 zT$~t}-3JsYnj~hB^*z(TTcU5bvlK`@99poCynhBubjM(;w|Wu?Lz&O!z%ClftsT6m zzVt<{&|e}%0C$JbB82W=8RWw#z_vuqP_7fi$I@6TcOj&>+T-!L26ix5{p?bWt4uHd=>`aPV;kYpta2vQwR}g- zkYfsdiE*bTyYn=6!Ui^GxL%G^nRd4P3oig=&u(d;Yki;#E?};fdZBJ*KGX?xE8d~I zPlOAj*P;7PbJo=vcKSl39&bPaH&PRe$Gb-;P6G&x>iM2N-+Z+K@ki&7s8sa_or@w) zhgmc2hAfnm#Pw#hy@PXZQP=Gm+qP}nc5-6dwv!Xv$%*ac#I|kQw#`1N>i5>|s(WvL zUsv^i@a$*pz1En&G1i=(yy4j<%t^Akkn_n2L`ZID3lAVzgPqFNHbrPG1VwwS=1u8z z?)^Ki^;?}*mZ5C-aS~;gn{6LbvV^ePa(RRJmxE!sJpl#y<7y_WmYIp1kF0wM3N6>Y z9bR0A-b(pW#G!HBt!TN;#p&#=osT3aj&%ve7(H2HmK)r%Yw)^ZxIB?5a?Yk3FVQ5( z5}$*Pe?ik+-ve}~LQ-aT@cxEW=fmS9lJeYCsh*^{m?Ca<8y`;8G3oo2_hOBA&6!63 z?f}wjI3{wYZ2K1H6w|DttcGp6H}{0GNNLFzV@d`;ArP)^2{;o2Ue?@GJj_|8k<92v=FZC^`S4JcS_bDO;gEl1M?8y{S44ri{rko#odtD<;5NyYY zkoCp=-Fu;=g};YKP>vW!DNV^uinnDtY68gaOd_6EE+8YP{(7QhF>BadqphTGEJ$UVQ#q2Ut$vfR6O^qsI>p zmuw{qtFMz9Nr&W>O1V#(oW6TWURs7XN@aA!NPK@N+cN1FJM6ys8IcSzz2&s}=m+B% zc{HM7z3?YYDzW96fzPgoll7|$mnHpqLwnJPIdRdS`e$n-vKzchzwzt!#Yl@PK--HD zK~`FZc4l4iA@))bDN!xjfFEe50~F)X*u1nngYTT0@l4q{JBKH?J3sV4wcRjs3SMe* zD{pff2uT)bUPNWAb5Y_u+8h=+zHHcC%R`s6Rf2@O1h|%tRc(P z2;Es_lZQC&nx!7uw6gq7yc77va88r2C4m2MUJ5OIwJ@eSU8wzb^mu^hd?S_4Xap3Q z4|riTy3;|7hhgK#{@u?oIL@dy@h*I;kR5G$ZsopUom>!1$60yCds(l$ZU*wS0kW~j zUB~|~xVqJ{$$XkK#TFkV;<8bt#LQ)@swrQ(Z_NJzC>y)0o^X)w|5i+m#th9p01RL@ z+vDLv@XfvdVv@-RL+V~Ryd-f$LBvl<)J?7%Zc``%*{mwGi)&Y}pq=n*Q01bF zTPzF??aF@|l;xAYm;!dIMO4nToFheNS{QSpNF4t)q)L4R4_`}lxvyAJNuD~`Z_-9h zLMRL>*{qGKp5O1~9l%Uxhb&b6Icgtj0q+a(fFKW62UxpAPu&}5v;(#_ABDCm8(6Vq z#Fg8yjn}`#H*R0@bRi(=m`4uSe#b>u#PW`gjh1jt??WN`56QHnB79fKfc=utN&Vvo z>%nuUa-#gq2=u&-kq!R|l=YhG z6^C2S;+E zPnT@mL_;{lvuITxCK(8r11e1c}N7#JDoIPFLSG!!@R2-Oauz+~0rse`P-W>(kX=|3stQRTrTe3}47-_JYPs zE+JoCTg^NSJSY%OyjiGtsg+S7#1t9v?^lSoF243dMD}O90E@*hg0hCTTrwEM4?)Xw zI1AERhxrAO!)!%$tK7laVX^6J-~JZe1rrZ{*`5!ejwn}Q7rqh*FS#j-55iSd9Fw@ zSZhbU(R=m`9!)289s{wn?R+-QXD9wb9?ZBhS7b};*LIeGn|ry6Vjr&stiGbxo_V#*mUhx_vmXr76r$4t0; z_pNxnPE12I`KOtb=X=Y>Z<(^`hgR+1_s$hd7+AF1D7TG=YZhl1;5! zO3TU@9&4e3N3fff$hje2AOv-hwz!WwFCxPp7m#V*d%;zDhbZkg&LkXOOTw90)HGNV znWzkI?#3gnI-GGcUK%e7S3#djB7-8lQR|yIQ<2?oL>RSH{~40^?J#;ip(SO2d% z^V?~YKzr-#&wN;zldJjq?E8&_q=$EgM}G`1mMJmWa9ic@W=5ms>{1;t+F&$QGWjUb zO@|=+-hTwvcd!0h8xD$i{2?zCmWw2)v6p{Jr6+R4It-Re59zg!$YG$8>r?g)h*l<- z0E;as&Ax>`0?IrxhPOD%FiJT9WUajcu5+|5M>W{P_2U|m&BKh)46N;a$Cn)yKIyj! z-Xoo(;9itvCB>j_!RishX~G-~!KDd_dRMuhLi><;ahnL&z3`_m=v%SXue+8aPh(7I z(O0@RXhU4&Z)jRBId4S}&nJIu7MS z)+PkIB{leP88p%@j*QsGPOs@|1J3oixqg|fA7$UWa~uz85WCw79_wgM$wP2Zo_7YAKOQ{>A;AUm7Bqc9EYZ&^B)Vl6t@ zEsn`bg=S1ZXUJ*@zv(eAbx<;gt!bn5_=~nUHC5{^{9O3!VPx|91LnH@uhy4#*mWdQN0$<3Mwbkg zv}m40A1`!w<=StFm=VKVl*YA>(Y7!ihUfFgw_j_pR!y5S`L525RWV*t$e`q* z0J=W#s38aA{X2heLgEBLH~w|k?b#**AS|&*j}LaCEaVYb0rI>FMOWc(K;R6mOdsXoq zyza`%AoA)z9x-;3CyWh>4J-bB@3$ld@U(Y@fXj##!c(iZ0ToPEq52SPHJL;XO12=E ziSj-d;*6PXR=KR04tGi;hy6DDOM14nGS|7+ClYW2vI*nwTMUm+GA?;J#^}B?Z#twD zlOP(7YmP1A?B3<3^2uoNxxR@xMA#`_c$d|!phL^aQV1zNs!NP(*GKc*9oS8_cY~K(f3naK`|{dzmVk#jW{CY#oo3^muakVh6A2- zJL-c*XyuKIfk+sR2FTI?A8c_WN$|Q4zJg=ii`>HG{DGl!M$yNX1g3pwk}5(`;gZB7 z@hx%1{8rGC&STy0$wTYuUv`&I&wt^0C*erI3KAC36*(e;33jVB0ZBa7K!N&tK7z4P z6=u$%yux}(Q~AE}7cb+P?%O}qBg1Y~*m< zcbxPTPRv)8cER;Xe1mm@|E$;xbao&8&7eg!8Ix0{K+k5s>pb=CC(F4yh&b^!a@X^`%#^n`wp!JI*XDY3 z_++l$qiiK1(u#&Du$#JH@=14T=z8N`YY#%?h{B4W8WF6LMHlo?RT!7qHNHKP6vWXd z>2{ZBm@ixVWk}gUB=_Npo8qei`J733#-O=~9BNoJoa7|cR>uKPP4FQ23GJ`F6MGx9 zr4ljI0nvXe@F$bzzIJ7`C`m_xEV65R_}`V|mtuDNo-h}LCi^?moRYZu6I+Ih!$v@M1sJ7i(B zGRR~L%GG(moI$rTuPJjQ4b-V^XzIDb;b{FzI&FHHrlT0mT^#$A(lD!!newU;{&t;0 zaqRLaF^tlTC-%LhLn2H_y~93>me;q^sujJTsU@44KMvC?uY-_*W|7FJN>Wm=Ret*U z{(4e%u3#$F0KZ}ZjpX+V2PONZ23D%kL05Fdqx<E5K0yUD=GAxrg(j`O(6^yKgMktg=Bd%=r`Ne zSM=bePJ5t{%qy%iYoHQ7+FO=7bkl=aiL?=_`I11o8}llsH&XnNfd}MPKoDvr?xyvr zqIjmazPHqKu^c24{pA<#Infge(C=8~ao*hjptE5pm&Z0EI8J)s#?pw69w_Uo$&}+mx5`>w#~?>_)hFg%>eODAxPmru4DlR zloElnlkUG&3_&heMj#UY^lE*)6&l_*VU%*arLtDL-gNyTN1az!$*3R)apw;R`en?0 zerP46t3>XsZ@t%fmhu{Pq?52x`QCI;w^6>^ixW8^twP0-&>lg14FLVlG3BknRjr|I zk9fj7a3}|B;Zs2UP{01#rafG%Df3WD(QLK;{rD#@vuv{Ia`Po1rcH1UYrycn=iiWc z2+HMOAFiATKkHv~jv6;5gsUGQPX`+O8+7C4vKMY_MUGMx*yKfV^h<=no85$2huTmm zi^nfT!^k3kd@tC{eWu6sZLRs!(Z}y5ULx^MVlVIPi=xJbMctKY!C0=LxW}1$4ACD6 zVqm6ky1#-JHvooC^D)_rw1W3nz2;?N1928&B>C6wG()3W*07NNYQr<;(O{-_<;b0x zF4J#r$?o)F=Ov3?4x9R%(?Z1=b~eDUU4?k}P;SA2%UNeN^Pl~f7$6?3Z?Hp0C3k{| z^W~SxjQU?oNOBKs61Y&0GM$gedg85xfth;%l+V#tn`agOk1UcY>(6~rm>i#MnIW6w zsUi*W3kNR0a#Ew^y8p5NG^#CZEgy2BavfWIkY#lOXP%6`)NS;?H6kD?N~*&m!?4;T zKZ5z%mh;70Q)G!t>3%N}Qu_}E4Xm+rbkzq=uKBhV;=oCKBoeuwBnA@-!(h{69RB^OH(cV%+fBzoWI;A)7p4 z@c#T+Zw8+I?mF2<3)mzzC1kL2XxXh%g2Si6;+gT);;YxucSgNn=l`>s+Pg^KOt`c8 zz8lzGMuZ{t{{o)XGENGv~Qb(iV+MC=KYg3S{NIwc{D^*0T#07Li9 zWll^qtUnHLg`YFW_3gUiwP%VA5pP_2>(@y9ax?HcWYKii!X{VQS)Y|5I0Q3LQ8jq~ zmd<^iFFKSYvF_&r{;{y9DjG!qlruAf9Lo~YN73ol=VQo*jC{W$BbTU#5Zy1!K<_p>SOrsNq*Du{)1HmlqPwaNCRnax$qly3J&K?6 zA6*b$jLiRr5tHH*SSLi~rEPp^NCubXDg$9;yh~3pYk~-3IOQ*Cr6QufFF^j+2_-hy z)k|nK{=e3s07&?F;JdR;0?qr5$Zf{@w@nxo{O)PQS;kxC{#ue#O1=Y`=v-BMq(s*p ziOjS;DNEy*Tz)YIJlG>pS%Gh2QK$wUB`!HOg+beLv2Gz+2JHv+su+|kB%W{`X}AeS zrf}5{{AAvRMyH<;aXGrIN;==ha@Bba=8k}*e-y-MI5f?OpqGc8KF162y2Wl{@IlS! zdUJYgPhuf&hP^D{61DRu#DiZK&^f^lJ9yYS5~~Z{2mNC~cT~Q!rvzI9N9XYy_xmrG zV55$SjEER5>`G?7^56-e-}&aQ#(P+c%Q|&g{ld10cA@ax0W2xWM5rbp?yPiDq|ZF2 z`QL8-SNfm0DXGzDGwAEE!(JCS>{m)JkLT4W4Bh)$EhBYpSYet?n`_Y9B2YDAVHyIK zK1YzO7lopT7gKb?{Kk1sQA*EFAcG(u-E*X=uv9k~qy<#a^fIk2t*T`hf+r`7;(ylv zHEc@`^85T5lZ=b_dOH!LGy`(u!%YV8HPr5%yvHw+&JXL_Lw=qXoO?>rk+E zSb*m*7{Ct5vStx{qG{Drqc!dPH!<5xED4~sJCmQ&p0;%_>q1;0MTqYA;p; zJf-^4-z2g)-NDI;fvYyyFROAd@9;IDb88IF%-Z&2iXC46+DhVSigZ?=X7P*@#>)uN zacNulm@*L+PcD4ZO_NN)W?#yC!Uh!Zw}Sgi;QQH{U91ssHO`BhmgU>=qU@{zuB68T z$Xa{ejK36tr$1Qb9?jvcf-ipmioLHurbJ7T)TK1JTecv0#DK7X5Dq*o^&i^?iZy$WD}y)uGDAQ{X&z7`Faa0uQu zn~jV98_#T~F*lGVTQ78}V`V_W0*NNU82ejwM=#O_Zp_&YBK571-78aSK(fEw-%RE0 zw@gA4quqWNAo0y~F&ROzPg;y&wUx*9*mEIR+P!7Y;VkY7*uvKY@IGJV)zV>G50-Gk zh>OQilP^+H0FaxMtl-{^ZpQZ(s|RZhJ<;hSwJ0DH zstr3@AAz*v+Cqg^UmKr)Nhic;L0XEXXVSJIgZkJIm0g92UOk*%XD)Udfx0GyaHXC# zF2p+TI7sZNHOPPAtFpxd2vTyuBHJXJK#Z;XJEYRI`~mS0ljPalrn2cbB;-+;R;#vU zQIt4S=35yvMBA`xB;8rsy@baxltu^dmMof;xpc)=>6o#ndQGzGIW&>eVcv#xJcVZX`SwX~% z2M3Tu4UrB%ITK8lxD~wa$!X|1qu%H5n;Af&FV)|8T_7||o}wthB4B72Xw5;fVLEVQ z1(V3TZmrnh1$P14&bpz>i!#!rwNrMDnKUOxXdI%%1Q{L(x$|*5h%~jKNUI5M@xfRc zFtS8cy*c$#vbD(20~nP71_MmyJCtxAYigmEhBplBdh2za zx;~SI_lN>_+|}K1!MV84jmEe|+TwKP+!nd~Od4E`AupIoZOtb7JGgmg%0W~W;)Spg z@oHM+>K3%vXJm%Vl2XyMN21QbHp&r2fvdh~JCUguJyeK;gh5fyNt*)Wf3^Nngc0uM zmxIs>K?9qu4lQuLco*>aX-Fh`6`briC``)PVO(@^w#0z3B+QhtC}(V_7RL%Lit?TE&NK zjk98ia$c8YjOg6F;(rsiW>rph$f5oj6ANW;DkdN4H^nKVNBiIT!!+m2-fF6|>I zWy`_UDAJ<2rX}xCO&xBzz{L_8Xke_PAiHIFC+ExVa2l+US=vRd-XJ*ZFKFpJi0?38 zI*1EKaRBYLS!LrZk zag}viBqP93({g5BN33Z1BspV=XRBgCs%i)S)&FrvRHsN}eh`j~l4eK^3ErU|OA!*w zVoh`;F8)9J9~s&oe0=G8lmiqzC4TF*QCcb*u<;~!$1vW5z<;ZprZ}sNZ4izA;rtio z{%9Xqae8OG>E67Gt4g&uye=SbGGD1L+r9LO_&(X3ymae0fvr;fXp1Hf~|V8y@PcOb3g`LGsX^9f%$ zjCQ5P&7)od!s%pKgUayV4?w*~Nk?gC#l9;};_M2Ygm1hz6ACVIR-!5|qyof6I%2;5 zbdvL;h`@EbBDPS;(~eLNPzW{aV{|+NA)EIt0V)DRR}k291=($)E-Byk;|u>(`sxhJ zjK?f6FJ>4SP3bjVW>}*{j+QllEvCKvaen z1$Y>$AN})Fe-yJuzBg5*7P9^052CE6PP3oxn7L9X9(uiD*soY4LZ?Pjgp2*=mrWmJ zdD}{K4vG4q1sjy_bD8lVzl+7KEaYq5p--V&m{ygz5C`kkH;XUO;-`i23<4GC!9x5DIG_P?FV|1`FzGiG5A~PL ztM2*3n{Tnhx^HDxFpZtianblaaVxu$Luy4sj3~00*@y?u*%V8IMIdlMqMjO4|M6Eg zg0#qCFYIyvdul>hOl}EnQAEH-{;W}vLu<4KQR-;rao4@#P zygBi)Y1*pg{vWqxPs58;pknt7{k#q7J1roS@1=7K&@rd{euxB%>zaW)+x`hJCkh8g z{Y%nOv4JG9YmvJW;3^hHw1LF6DDfk_3T4d>rEAJV3MjBfRmjL?;61Xc@%T@ zfX9*u1^)R8V-DwYWjfL~E_^{%lxFKquh=KU*&a^CJ|DOB0GsEqC;G5(d9h%+h11xr z$LpX`{gV`T%+_A;sIY9t;O!I3!)#;jDxTMAnRQB3E*HYoALX~mEe6?0*l#DK&&F91lPg1MRIlUDM&9`Fj zxhOe{c5~MM?0;8I3dxNO@PSk|XU(IzqWtv{{ViY8zEL_Hh+UE!DifA9nJ2NGk&S_E z8BYfJ!ATZ&qj$Z=Wb8srVK`$YVV@=CU3zT(;oHP}(D)vJR#fDo)RU0+*1D-O=bkeH z)En#_(dolA*wC|DDT zhdbgn(@Jn(Nat9F2~#JLzoo%gfN0(r5v|v8K#)(aBpd|xi<)|C!80Vuz`e;RdAAw? zAawH$BC=on&dQ1h%4NbF&o|M>EnnrkJ?*v4FW-J~xtQ2IlPgs#6v)Ql8xGtB^XS-~ z>}s*W*5~mL%we$AhP<`ByNe28o*zQ(#s%|)iz*#-U!=Xqoa)Cf_sK!BgVKMppxABU zgQK0_N;?Z5m9`EvKxNBNLj9(s5!h`3hBhcNj?Q}zysRi2b~#(+xj%HJDq{Jvl@Zc5 zFRH7{Kn2|}Eni|?@*%Gk5-b2u$K{IvSyj?viuCXT7=`C-xHA#Y`!sv$__GFNP_n?dAijE+%YDAE%B&!CenVxMr2E=MkPtFF7 zXq99HHnMuKK-Fa}NtGihqYt=3Jif90zy1FsQvN3CD}cmYU?j4%n*b+yZWOSguDs*-A!Ld1*4%{$+$9!Mx;p0`XJ{ppPfoY5(r>ORD9Zi9H04VF0=SdD2F>`CW`woVj~x zV0$<<*a({v*CBp_JqVo{a1ez4h?b1d%!qTJAII7jIC^heLGaF}PYbheq_f|)G@f%& z+C&4+vMapAP_jV;r->?z$PFn#;B`j*{>(f?Ac@iL6O$Ic?L_#st^5Uu+7!LA!}kA= z{#Bg>l3?-UwqQ4)Hx%83b#J~8`3Nhu9|Jf7yeNVuQs+ucjfo%PP3K9SD;Kn z2fNGZ0668-Vg(IZMPN>nd85B0`u{6`!Ku;Z#);?VQ@kHT#dT_S&8dg|^WD|H+HH^( z3UEiW^Bc~1AvV~-C#RyP%*6z=0Fbs+a>f&*?8pD1lzMT*O!WK(dY_7WM58(jAE=wx zA7>{v)FXz=Ne3hkjTvisla2hCvjcXGNH6ieU@08!YM*mlIG94VAM%_wllHv296Cf)8qWle*`Y1UUULE zlR+*HDpHzszFMr%m%Dct46UX4H$C(N?|dw8l}>u|^{Nkkd{v%G4aD?SY3y5+(TBs7 zMVH1%I2%@uO%#j3v%nE``Q(0|bJ9zlvr1jd4&j)ID{djNV}_~@XMN>q;~)RTg_r!y zr1rn9$d5_y7~LF72w>~MlNvO=Oko|WfLk;dGeeDKt4XmXLTKaymUOzJ$@S{msf;q( z-!$T4BrCcbSt11xydr6KK37a#Cr=*Of$Dr{L){@%HPO&p`py+Laz+EA>%)BudhO|N z(GZP$k~t`t*!j`_Zx~;>TO$HY)&$*hg(%a5wVm4+0H=*b8vBAaC*cTf>Zj9;FOe1z z9CaG=ZSkVaD>`J>$%yj2$BWMc1)gsYp1*7i*#h}x`?JU0*KCIQoLY-+E7nTqa+jNt z{QJsVW0J1WkHV$3&D1IduO}*rCZ_j;w2G@hB)}O&vdQA)Wh@o$=rG~~I~@>m9!&_) zfZ+a(dFBFpDrZUP;#@O;F5@Byklbin4+kzMf!<3FqO5Z3JpSkZUNbQR_^IV*{-Pj6 zYXsW9M8C7aB5rcMl#WN#u}+6&cdLpywW>%epkj!q51~AK0=yMp4>uL>FtzZ(dlZn! z-pd=?;^?6|Jpwt48mXhkRf8_)jQwt_$t)dPK3^y`J&e1;`oq>~2Ab@>Rm6eDey9iL zXU2E86AU$vDctp8FCA0kqs?4j$qYq?ea-U%=B*aQm`LXLOyj6qZjxvasS#&C&gEs~ zC@xzvlOqIzN`PScRvK)&9vqg*i=t=N3D|S`skSW%0ZI({_jp!{$CYYSy$Wx2x_$Wc z3F^MP+USx-J&Jbmx5Zn+!+{&ASUhwOmjr%CIdzRk_ojL>R3`w@_2|EJM6O$6SO?o3 zfa@<`>SzMbTQY0)LcM6MV5JDlK^7MsYeDh6u{549cq}OWhy366*j#-}ZgOdP&)jds z?D3d^Li{?yhlJ2Ut~JKM3IBpckdJ`G3?j6zr&;8|wKS8;UzxPXEBV zBm0thzHO)m?ulhiN6>wcP{2|mQJk4BgQKbkytHNMe?7F-+2LZs;0^(w#?a??)tK~P zYyq|Az-2ju1#EdtS*)asQC0b5i73)}?=7f##Mz?>rz@g?DysX9xkF+OD2@?Ge8KGL zX`~qD;9eYzvVPtCUKIV0|9-R-f#R5r*(P`%js@_~|4eVU*pC1??{hVVjQR0j{2r!} zSO9mL*%_N-%5$80ydwbCAsW%kLA+|7_UKO058*da9^|{ekDtb8sg;R`t^t%qt^;1xMgh zX{4gSLd6NE%Z0ysvUhF*AvM$%n=S9SXa8A$?J^Um(}7t(T=_Brm5k8&n2v~sfY!7J zqr#{Rd)NPS{YfXow1DvDWRjzF=f5lt^m1^6gwKp~vJ!>noQvHdd>M%YWK7+a*=cnc z1$H^$ZVDZzkuxe1@HC6U2E5nG$=n)Ok>}Fq8wIop)r?tTu%ei{OB>SgM36Z@Mmi3Y zTm+8_$z%pq*4A8-&z9uCTgS>l)PKdv6gCkVm~!h;Yi|?jg8pCSAOGQBgob)F;8NC{ z7}s_d*F$^De_tB14OM$t;g^9kSIIB=;Z^^6 z?)pWq@a2x5=BEbznoWGcq`iz94lKqF5@!|@W+A{to_;*N33Kd#_Y(OBhQgM@Sb;>yQ$gInJ81Zv(Sqkw@>`1{^zU=8^3Hzv%fjB z7dKL;@n98hP3pCsG3sQosLnXfpUECco~(p$Yssw+ia3DX_${cYBU`|J*jIqjH@NEg zE3@#8?~{xx2`5BUNMG#a$N#H01N(EXg$DBiLdGo4@Ntn#71lsMqXwA6facCWS2K%| zV7gNuA@gr=q-jMRElcSx2@7Dbc4xCHEgE#)_re|zI^h&UKS{<6nnI>p@PAi-3NR@@ zS%PU#g!)*xq!hN~+2|lEbnBON6_&*MKlZ`XHmPA8reH7K}*2`t#38=9hKI2Rda(Ikh-f17UF~$ZAO74F4GSKw@8c+zD6cbLwH|invn&@l+6dTj*0NV~JWLcn z*EX76_(lGdre*DB*7@suqmyZ4yT06)jW1~>rDuVziC}xUw>Xc$H|8ds0Rd31=vS=ar;Q1wT5H{=`-7EJbbC`=+vwRWt&}{;@vP+_*=>kQrU-aqQrSAS=Ef) z4QO#^wOSAL0mGPP48+Uqfp>vwsAi>^{^hR}7PAlF!iTxhG`u9pzkJ=l7H^N*!24&# ziR3?YZ>9U5c`02ObZJycw78Q&#prmEFdQ>1VW)S_*BJ+$6c~#Yl*}NushGn4T2Aap z&dS3X2Vk_7CF(2gr-&|SjIPhlY{X|Tbzf~I;D|Y1#)#j>5&#)vRz&>OnD=~GuQOGC z^%ak9X0ku%1|qqgDIq5;@lB64s`-EVFX56Wm+g0Rw3(ZO3uV=iOn`-^ZUK%X+EB+M zyvJu>Ij+5<_(nw1daZ(gEzN?hU?rI=vR9(0+YtP?8F4A4)vZ+s5eMZfSCt>V$p%!o zvy7h?p9=8?`N=+Ob3{fHR)Bok>7iupc(Csrt?xz;*Q(x|2f5LNZxj#to6Z?=El3mz zq<%MzlI#$gIHTc!(Z{po)GQ9#0r%zjJ?0m+YFadOApJt%lr5o8Q*XSObFN882Iap` zAapyz?ljbEj!S5op)mkEZU(2N~Dp(SZ(jMt~q#=rg-$d?(G_Qlzy{(Bnh> z6N`EQ@i~jPcB0E^itGYmxC*B%5GC#+Y{TuSSc#(}s!T~AUguA8^bB+-u@PY=(P?Js zi~l4jnX~^df5+KNeRd3b9z9x5gQpJjm+L?L_hKJzvLw&>0!ttytuu+^T4*xohgB=sljp8W}*IU4mhAGe0y_rR~Qj;C_T6}oH}S|*kNhTqp!Pu8o%|2OkjQiH&5ihr7e zjJVnwxDaWHo`k<)19c-g(rH7#m_1Btt<%jD^i$mC1OqHRX+pzI*O{` zykyH}C;#WU?+UoQOk{K&-f$K}yEJq;!A!$~!-vj(+Z0pCh>YUo28pNndWyNl(+GnK zk)qSm*+c$e#+ys%+r;TsCK6qwT7hJ+-sXbp*{!?vk`(DhX1z5ppb945jsGqG>x_TE~Wm9vX+Ct?spL|bB3j0c>LhMi1QAf?6Wjoz%HBH0* zlqKlO0Y#mm#WS@U0VcSw<*^_!|GfW3Tvr?ZVAH7lZ7h>RAp)WqhgL}T&0RX`o|mo67I?zKHORQ>mnX) zn^b-b!dor9Bix+7yOke}iTqsx1S!lYjyH!X3Yf#!vdJOGCdDMvds!^>7=mb-QIm4w zKl#ra6L=)D;q22}@klAB&|Qo9gxJbNRtK$xA%F&@J&sZ%4bfjten~!(oR@BkfZn); zau+^EgHiaOcoSlmW^$yf!`8QL08~Z$YD_LE#==bUdeHBboh*nU@5^hk3`SM+lz5vOHqHDKk#87z!kECQ z;Iz9BfgLn|A}Lsi=zsDzlJh_LFMX&|PT6W#$bFD{+66gQn4T)7mAqrbs4+fFZC`0B zKz}d5m50+#sG$WZQpInB2f4vF0UCE^1A2{S1o%H7qO?4S=nm-?FjL!SYYYR9@(e}t zil*ROl#HR{5%t4_Wyo{Wm-8;Q87N=^4?p>@g0$fH`ksZ(a1YvMRKX6NgBY650?-LP zUR{_F+L9O(Oz;ZEw}1IB;uOcm<-$PCwFON^Ss^qdeA)uvzv^wWC3s3{!Lw0qVRe4Z zDR*Gv_P@z#?{U(2a%!f#?Lijn&h%6@0P--6Q7mt3n#Pnji1%uz&!SrLolWOM<+lWC zfL}5Y+DH z-4OEhrV^bNgypB&6tH9^IB(KV{?lQC+uPVlLauZ+R~QtH5Ygr3W8~}^`k|-B_)5n8J_&o!=wXcqINAA+aHsLs zV5S1!zB!{?9**Wz*#+EsTRb9kym^p^Y`UuPTI1gTl)qg8iXB?~cN@^ug_`l3B7rq7 zZ*fp$<$Pp>Hz)rz0!ateYBMvp!R{G!AiHDEd3%%^m-F%^^oKuuLQ-@5@E@&1A=}dk z#CDCd8K&1L%Sg_8&4u;^F_u+ba+?$+g@K$sklC70aKKPqPdni_8O@o$?(2R3+xj;w ztuX1#mj?1o4-)3TU;l()K4T0C92-dB&-a?1H@uPLZ2qFLi`V5vNs2)^2mhGCT|L&} zFhOz#2lKgPwr;_ebk7Ip6U=mP9a$cq6}8p={_&rxg+q*J^NC1xzl&~O~}KaeZv2?Of>pCkXFNTHmGcbkThm|4yduJg7}i=gy9VdZ z(1QGSrt{LZj;dzi{H9IlIKa+){^1{%_G9-y{x9sO;!%==;;@5r7$tzT zQrTt2;;HaB>%%SlW6FFd8-*cSqewc`V0%gZ;@;Et-wgTHP+4~JD)pyOo9SdqaEc{` zX9soq{aM%d0VtO0O9P(YdA717h1n$U=rB99r_VMLE<{1-4kx%q@)@c@ir!NG1|8Ja z%0?V~sl9Q`k6?&^YUgRLY7?#=(R82+>Q#5OYgZC8T(3_kZ<#B7+_YxcZIU_gV?7lu zYsc>gHMz=LJm&jB)@bM6h)#-!6_YUkI)&%DX-kDbw*knGXiN@(%V5Ts_<33j13VVp z4KI=cNIa4>BZfV2kvabC|7tOIW1OCb4q`IJ)7gT+DEROuuO&eyYeAtIJjlAH9RS@Y zAF5jt;2=a0-%ZK4`g!50HcpdIgXUD+Vr)?aQ-7lX|5o)Gas9jhLVg5K z>;q~?M=eP|3;S$un5l5>yC9MpL&``%ONmsQM^vHWA4b_{Z3hr`wrGyY74$VB_LD!A zoy*w$@jpN%EZI@c|L6P-_leXdd(}QAssWA^h7f`{dB80b7UdU+Zm8<(kN=2UtH-lh zQTBh=KNFD+BShsW^D|cqu63EH;DV1y#2%-G=^+UXy^CEDo^&l}LY=yYv9w)uW)sZLERML}BYi&{)_!s!3*{}leN&}f${#aB)bnTu`@ulH|B zy*Dg~Ot*8Hei^o;;g#TsA)2X-0j{hm5D|$z;6huBFA75-JxHjz|5Fs}W49XZ1Vocb zif!xp4&i02A{vQGqu#9_!_gusRRNIbkN_P_Q{0;>!?kHh?T~?{JW_B3vDgp^4H{|a z>m;6}pu14L5q|EwA|Eu?1k`!nx?g)TLYy$)K9*C&o}KVt$bWs+{n}wGHc%6mckoT{ z5@$bmng900&X+m!GU$)Mea9ISIX96ZULLf(Zuz1p*i~V0`eP`Fk(z*U4GpkBxOr~C zV}a%lZL)!=CLAl}E@sc?qEdseFQG=m6xA3+9+UHUD6z5EJuQ-!c^!wWi()w*v3X11 z?8_@*N;z&US6|fS_!|z`Nr*#G7Kf6TtgFiK0*S9x^C*t4y9j*BV0zl;IUD19DZ(8$ z->P<9H3?#$Oak>`Tv~KIzpFlUAub!`8fTQc3nLb#&`zXsz2|HkDEz>w;o`lq-7Jo0 zdtfofHnG1Fz@fNbgr9|CUWZ^VPx3#uqd`#KM3( zkbV?+DgCM&#FYYid03g+toz++jj`ghw`gP|gYDiAf1WBL#V_(s{dddL(*0`msQ@(f z&LaC@2B&809ye`fm1PDoA&-*&l_-flGIOB84tTrcR2KsJ$Nv${*v|eR{G;#d#6T%p zaK~`t*E{XkSF387~{KOj&{EwdH)3UH(+w{ z|1*DJ?^q)s&-Z^UJy*n!GKvWDPyqjk-8gxIJTO8)EX+Wnw4?W8Gxjca{`%E7Trj9N(jZ-i~|jz32XgIp&z-``-6`p2>%)XZGo?dGlI*UJCB<8GQcwkTkCoZI?z7(d0mV z$L5KJk{ln17*}-B*PU|S4$E14w|I~&@zq3A?BDWF%ff*~H>KfTB^ohq6m1*|uv3OY znOF+8Or%HG`!es3?~22>G!uLyO|9Ga8V#O37hnQD?Z^aPWaiZCuzC8;kj%poINg|2 zkqc9I!|YpVgQPZ``}odwr`F)GXwc{SeUU6<(aN}%ebCReNGqbs4W@mstb|WjL(ry3 zq`%xd6B}YIEY&{6xE%I(e*rYM4>7AS_-gr8{)sB7jXIE4#X5t?WrGHdtoTxC}P~9&*y=;{!znV;nmUA|Eu@!AM-Du*YEpxbyn8-mrK$u;Kkz0?z8s& z#^W*Ol!eZ(1!YL=4>=aDK*t_E2StR z7y$m~B=qvyuQkXqJC#ai)X%(VIyCrG%`PU+b4WXdX>KdhC3->AkKT>{lD`Y!NgSD7 zIDFI1SYr+UbV8CoIm4N~J}_5ai@}RnWaks&K5UA4Ff4I!1efRCGeToSuWHdMQ|a&~ z+!05auPS#bmc0!xNQ{SyP1Vpzj}Cu8vwHc}4?pI9J+U0yyZPH9>H#Tc*!n#Ak;Ek= zf5?xl)Lq0WuH2oV`-7UtmH{ymxeKiwiN;krPJmk;k>vaOHK7#>b7vkQa9cFT89e3# zG=J9`aB+`dfm7BlJ+7ENkQw2-I>)(Anf}7hY)SMt?+?Lw!-eYRw;| zMs2;1=_JrBfTKixs3u&5Wn7!wGUka~OXB=pf8qOwoA=tz)`Fo@>V3ImzAMf{lCI4K zXPLvzTaUcJ1qNF>Za`q;dY3h$fHZdm`EYT>V{uu#8Gm5pI^7lql@I(|Rwg;NF|^Sa2wbf;FY(EB;W8oWYS&+_wCmJRF`lnvr}?j!d1(df9ul2#~{?TrxrRs7k5 z%QH&u>9Xrb?UYyk;A4;V?2MKiDd6jkDa=l@6WIo58%-1cnA}KRxx3&^tO%AG!`n#b z$y7Ep)&;FQH)#Ik{n(GmUwdjL9+>}5ov|pF@sSjJi}U-PvyvBm7^&MKm5pYWewdD* zVt{!ovA(%88V(#w0$)_d(y-j(?QA34?7|Vqy1EHV6IV#Jm@`dZ*UjKwfF?br-}m3$ zf0?kNZI~NwG))g?9u(HIAaSipPO}#*Lik@iNo+wBF$(Wv4kCuZaa1nVv*n|t&?4bX zAAt&%=aQSvh!_@y)}Xxm;NyzYflBpgkCP3uamNR(ZlIglTTpscik0@0_|s>}0_}Dv zDZuq2A!5N@^Cy8&{v-@zhD^5O(M2V$*3X2up^6uSiTq6L?g>yolsl0r@Rr@ptlT!y zGR80-%HLVLiOXgW6f23UdfP=)6$GLJ4NZ`XNUX?R8$Gh?FcV?Ed|qfb&kTb-XIuBf zvYL(!dG|iMyrab3n&czg^J0asKEx%lXH5|P`G*Thf{zB$MGE;2o9+a5kV$TLoReH% zha9;eJG>e?N$i_snL@z?H1QB9fB295$rp249%r*);+^hYBM0Y$C<3!*E)#M8-u~-< z+dpYYCbJ&&r{kn$K4z1@rf?gMY@bq`RKY-H#Dws#suDizqef8vtbO?C4(q17&h|{r z_d1zkz~*K}968l9MXtkkV<1~ga>t&>C!f-IqWlDRwGE7q1-1_ZsAuZit~71OUxsby z#Z0xM_g!}VVg62jx1>HWJnn2;d!_WF5tJ8(jX6>|@}GbHf8&3=k3%Ce#ps;mGdulv z?u5I=AHxfOq}8Nbzxp8i&2>=l@?dro5tkn8-`(H*HGgx;KbWOiL0>?ac(Ny5d$DxT z{s;S`sHCh*l)mvT_Xp(OhN*tLg4ic_JbPh;ZvhxQ7OI@u*#xl%IyseFuguYV<= z(5)TA~I+`dHF7egBTtY=6}9_ z(NUzZXXGsltuyP=sbVn9jadM9#kGXDXW!YC#^-tfW?{x4{sA@dMCQ5rM6~+G;kUo@ zXF*C0ZW1O|$Y__a=daM`ZK3{yg>4jkCft?L0Cc-VoEm{mf7}~=s=5!gW{UwoH=7*{ zVMA2GUj#i5`%qbb%vG{8Rfgmyy=im}xS510$IAWbQgpOHzmBzxJdJ)R*Koah)HOh( zMB3&Tmmam@P7AxC3yVP16uY=701&qFnl$JM3f>%e6Azf_S9mz{&&B;x|Eu%wf46`7 zcljS9WWRUN{qwDzg1Da5C7hKC32K{s!G!XW8%3)MccRhB=y3*N8$ZQWNwP?1GvkjIONYh4Z#Qn)pF=G0>)!M3+9c35PE!(Gs)3iQ(_I@^#k&~v>Y1qUlky)d5l zhAn-$0OfD>eVFnTx=RCiX$MpYjY8qX>p&A19oZh&ryeSHCR~2P3hinAZqWY6sUi2M zcoxcE)?vN>QrHj~cYwDUBCltuRU&#gP(m>SpPiCns|Ec}u z&YkwM91=Vga`Cq@c|ljkKAkeM*^#E6oePxH)^bzG{($_8HTI?}PZCGh^ws}7|Bm?- z!gTNx`C54$WUmYfR03)5WK}-y7LIR;_HrB_qMm#hZRDge!l@DiBSQTXva9ASx4qgXM19s?V zxFd-F;gocb62@QK#9Ea!H=%Q zr3tz}TqHMTlOQ@hpt!Ozl#XNMU2TT?KQ{G2(;XQ7SKUXS&nKT}tn^NoRG~unZyV1* zmjNTR-2u_vgU4)-&Ou5`8YRQLkMs#Pp# zUjZ0;bc8dlZf36YDSE{j9%`~>2IJ@9-+$(S-hY^3bJFakcv<3Bj_;8->j)|e4>&AkXX-kt(+>1a^`kbH z@2LHrBR&S@k6(zIzV)}`rC+e@JbH~9Cp2%T_ILh^-a5UN!taD1#-%CDgVcF3qCWGm$Vy?IS*bBegkKuT;=(nEXAa72za^}fWsT9^?cD)m zHE<9f{pOHYasGc$M8GYFg=yY0=0xNU%l zLe`qFx+CH*{u(fAG7uJ=7tUhy*ZqS(f#<%JQ_x!hre&L+Q+tdA(WSS4-+$p`3XGp{ z8_yF)S{Dx`d#H@|tI$dCqUt`SN_v;21nu9<3iFO58iy`R)+XGMb1gAAMY$PHBKS^qxp)pfRVXB-+$~iQ1#yk zTdz~ZJ5>MC_s=JOh73hZ*be0drLOlhn*+bxYsc2@aTi%#bB!Y5{XVB4EdknJ^sg=B zy`MkzE_8u_T&<*Xofi8EFS?4+Cak0^aih4(6W;Vq!Eg8e;{IDM1H%Xy3WeN1B0Bt+ z;H9NBG+zCE{#6Jt!c_bPf2qObh;RHC{(Hu>ZQlwhns3@#slp9q8@Zl+MvV`X;pysFn{4s9^G}SaWzSqKec-1AQllZ{kDJAE@d|)ZUilC@cRl`dQRwf2l{0O z(VHvvd^*jSo@7di+N`f^>|5-P_2X_Mlkc)T0CRPhpif#$TRn~Dt^nKLgzD52nuH@r zHpER`b>({fIQLSsH{%HqRqD(b^q99NztFsnnEH+XNxih$9bXNN?mM|o<&qX;J`0hf zMf5iQi+|?n>vDT=F?{4@UG-SKZam;>mwLtxL4VNbg(W!?w>;#nBLaNn+Z(8NxKQRGF3fyf_3u;y3@upY?B2uS99tMKy$wuS0-_MbXpzgJc3$`cK7WobY$3NM^X``&2W+UQo`!FBYy7qWj=1x~+aM<0>=SUBY-5cHsRP%^nAF~D_p zjByVB+QLn5idQR{j6&)}Z%FtH|3cx#CQ`u>QT$gKN{e6(PL!|!6o`VZ8)sw@`u(xJ zi?&*mH!8LMlm0s&vOhh);-8OQEQMv>v+*fp|7ZRx_eWMwOiFp8xdzf7?(dnsEJFnV zh18}~m1lVC?MZ|+2^yFz{xdcFqH`KQ-ajN0HL7hMa%Dyeynl zId-RPQ{_oAJ{>#BB>EyidF=wTirNgvTKG+m+atwVhAcgi>>LYWj&A+fO8hN}FIM$S z1X{1YfU5UJ?&Z zR6n#X!e>9U$25ktX582m#b&vBPu&kYLj6 z$QO+^0TZF6uc0e75awjfF1qOr`nb2=ekM#HLF0U<@Mm6Qp8R-^pNUI<&R@K$NU6S% zyl44AbIOQfG4b>cb@iK=E#E?V`EU6r{p|{9@U?hk{2tpOK2so?8#kva&+OBCciTMO ztKgI;iBTdinfYM$_7}R8x3I^YY7FyvjoU}feA4kj9;cD!Mv9f(#m72d^+)&Fkf&-R zP!S@`{(k?9wPW4c_fP&cOg^OIH@=}BBW75K_y@=7^MC4})9eDenLEU0RHs_&=xyRl zK$^PCVIwSO57d^WdChzZZPvP6{8V1wZ>EEyN}$cE!5k{m9M6PsqY`V^{hqTd*aY5T zpUN}gYr6Ai2h?yz!x)zc^Q!{poKuN~HMuuYf`pV8Tj3W;4ow||1|(9t)dG3uCIAaW z36_tE<3ThvD4qv?1WL#R%uiRxp!tX7rs(c~KK487A8DWIvhYE4KaZCubRFvxabVpL zs7;4&5ky zCkV#dQ2rXb=4eh`3cxvTQcuUPDnY|4q{@$QQS>7AGvA!a6SDFT7f}8Tn!mCm-R<=# z=%lCM!MVfBGF*V|^Rt}gg*dcwa4A=ti**ix5wN_zu&Sv1NE{D5_)e>oD1?V+N^a6S z#mznSXj#h4lT5{(U(5x9qBiKiVN&}dIIuCxKOaZGax_a*JpxQh(F2}3-~OS0LVf7n z;nyNVg%)x7m~)3cBb$=+*CeN+{5NB{Nn%libVCJ+Qr8iMyaMyW7$kmAbcg8}MNGeuL zxxjxZJcHxddXHTwl-JTASk#Rpa)H#&OGK)5yWK*^h7eg`MEu!`W_s4FC!G_9#Z-L% z5<#Yqpp+SXzq@I9)>R2>3-EZfJ2ri0GufY?v4Z~_PMLCzA(;OCS}2Ksu2>U32w|}@ zgEF7YeAD>)4UP3}Ux-n0o;abgrX+|{Y@t3%;2~~ElE9Gu-AfNE&~qzFpOl5__MdQE zhBCVmX*0bJaMLxHcFwN1X@uqo`uCsx5;EvODn>qeGX8J+Q`38`E)<&G-soBce<%PM zC_aYoJdI)Bjy3%LnLLmnuI6d9Tt`PT4Gz@*x2RLc=urJR9DS1j`}S*;KZ7ea`PZ^! znNSjV?_Tt%xjUv=*np-vu7Ixo*_ADIZ^7lmdmG(FM^A0(CMj8_!D&kUDzMg*XSk^r z)Yd_!aGvIM1s`O4w8q3T6E0!Jm0|Wes?ihE`dCMJR&jERP^+X=oxCqvc;0K<>Lfpl zo(xA|NJEq-Kgjb=h;dPn6#@?5qn(dN@?VCK z#trBusW22E0SO4Jo%TN^b*^{Ks78zD3xs|DEX!|eL^WdSz@sLM^=P$GCH~A=4=aKp z_w?m=(v(rVTF(MsxTn5B#5k!WW-WY0mJZ6qAeC^YJ6GyMl5T%Td=&pD->?tb@ISvW zFx8e4>ho4GZK^}NDhdBSFuz^9=(G4LjRvEx1$a_WB(&)|q4%E90uyn3E(ac1Xu|`T zQJk5lmbzWzk<%=XH#C|j2U#^adF2JpB-11u{#GqHhs|tJg zu9@_$qC2(@rQlShgUN#rt-#%q0P+54j!TS^g7V@-3|o-VL@ZUZ`s-i#qkra4qNU0! h#)>Cr_c8E*Eq9xP97pPX7_EbNv~R|4Lt(tX{}94zz`l|Ah zq(wE@fE@wT=z^dCAi#g^7!>e-i5>u}fx1$^Jq<~jHwqz%^#2O}=fM9zf&b(G?{%ip z0RTgU|G)q|%KsDkpBDIkJ6}_=o|B7OFwH`yI<~t7$&H1mZA_K^*L}@#&+mULOBzZBEhc?@?^S7dZkA|zr-%ZB1stm5MumOjUW~jbo3)dX>?Q(ha z?iHkGe;T&|~<7J(uX@OUdw&gn6RPK;jy zBgntjKJ6wZ(+HuOZf~(?X`Di{z-Bfr=BUu0__bRGlE{LW!2UQU0C3&ViiIuLc zSedbwDZ5*QoAN(`%5SOg=sa)`w!Kw}y_g=y2CE(^A#@i5H?qtHOVqD0Djsz>OSn^f zUB*h;m@6J*{KgIG#VCWm)!-nX4oIjj?j}ipU}Wi_D^wm7hvtI{#c2PbEe^OYzrODA zw#x)daWTr{(`&O<#{W9{FySBxsU@rX^FwMU+Kx?Zh<#XdLN0-2N?^-oZ&Ph22LFXS z&@ZaXvdlB?*T?SiReW0Yg6~zSprSP#2Fh(pz9S}2{CQfafa%^aL?FCpFHW1j#<_0& z7?BK*Tcqda-u(OLUvW_fow`S1RS6_%Ad8lH^?mQ2>NSn(VQ2QL1X+jhS{iFlvRH?m zH&dEtOUn2)kM);=D<^Xj@uY4BWj~nYi~+p_UB{^@FQnO$vA^ho%sJBE8<;D|oQ<`7 zj%TKf_96=^ibjJswXhXO8&wQxKw<1Cy|sv zAz;@<(;>%HV}*iw8$;{6N90B~A%6~tJJ2xUo#8$S9|EvCOw94tcY3~({RW(1|D3~1 zK&oV>+;V2b@RuqfHdCgv6)`}WC5ONNvNEj)go1D=rQcbEm~Nf0uHjj*vE^2+F&%!4 z5T^(w+x7FpmzeFMj7l0nd!%^A-SDvn31r>A@tE$Wb$Ow%O<<|ZBWyFC;) z`5l0}4>92zuFvaQjkAtxHlp@zPB60S7Nb1YIKO=){hNAiZV`Gh-Puq#0oZdx6(5ru4*Sr{BsRxDz|NmtkG zq9czqn+s*s7}#}-&m@=;uA6g7#@+Ah)T4pgOy*_nTR&9VcaR$)Rr*S!?W~l!-d@S7f;;gExlzK8$P6|bhuFvjjz)#%5;iU+lQgXUIJ#(%B#3F+1+&5Bq zZ=Xx(uqJi;se_;|ePVH#{hE@(CFR9BjxN3>|F5-td`p${t;P zoeq=~XzKVbLs6o>{s3>Eh1J_F#_Fz%QZYLkQqG@Suy}mBi}R*qy%;6zTbAXFOrh*C zud9OUYthetx1b#!b#Xfy>KdI&&QRIzp(-1*@Ueba9bu#3s|{SA=uK_EAEt}1X#c{?=Q8^}u$?*4VYZw)y6Ae$wysJf5m z?9zI>7{H|zz{tfDpO9qQb!0!A_4birE&#geN*%+5Pv$4!HL`lh0m$J{N{b)uDY#W_ z=yjhzVX7&S7S7iz)E%?+nA@#aA(ZnX{O*ddfbuD$6pF?PyFv)|_rRBPnScvYU26#K zGmE;Np|P5a;N~2yO113BO_0ifqShG~w}3dK2P6_E);pBCY+t!LGLYnZC2YkTJLEr& zK#DB6sbI%2A4i87L{Y@-(5h%H_SkkmMBT**25;e7x5H5za`rx5n(}xe;y8iS8s~3{ zqX4`&s<&cLm&V&uVge6n#w5c1-^QT{U?k(zERmSB8B`r4!j8!}^&R2qPQGn5pPx}$ z4Hs!5K21fNzaqL+#l9g7O(4cXTYU~AnSD%*6fmp}-Wih(d?{BB#&mef4JDVGL$Zd~ z_~RIRpQ$^ZS2t()z}1(0^P}Fo`%m2Sx+0^K#SoIve-{!A`&|id^io9aLF&RMW`kib zBo0kMeAWuHy7D^j&Ki>dnnF2T>I!Z~Vw)ETY#9ATV{m!!YoWT7HwOr;G`6G5RyxFB zq@Zv?33J`f<-_R^v0mGIpR5f>fPR5I$! z`M#5Quvb5Qx8VfzGKGH~RiWDtQBIKXFQNA)LH!6YivbHnacQ`=>^dhhV^YQC^-7r5 zEmrW}#saPhZaTWWd8v`h$`GNR0?f3W(Ko6b39H13L0Ks~XQiwH*?#D;Qx}{3?+F6Q zJ|{KPBX0uGc+7wosj2(ps&J_R4tBe1sooCT@u8du+eP1YKNsMf&m~e+ z;*46sA>K$z6E`IYL+3ZgJ9M4x7T-U2fq|cd2G;JYXTWl^Ev&tH-%7wrmqDjolcKK# z7A$$@jX`xlY7iRvU)rTn^vFBLyA_$)j#RlzNV27?CI@G0GlqjmqF7wEyrDIw?E^|0 zQ>tlsC^#4zNX$Pyp}87uo_W!k?$f%BicS~Iv}n|yRvN^W#>Zidg^R>t^3fUf;r5|x zCz|5WTo@z~#&(J}AcmF%?uy=Y`jWbQPc5aGGcFOBBnVxlKx6>yM;283o4nxUND%q>(%Zdn9Sdt1GJ**NB4{rO3$XQoCu#=Lt2Y90MY?C5kr*&i$DGHt&mXJh8LD z{$#^MRJPymdmd6nXw8bX#T(SAQuLn-CP#CO#(Z2z`a|`GR%Lwmb=T6tn=SA{J z`;TN=_K9e3a_nRThisGRWEi7*P~q3c4mvH(ID?(s;&zXi6ezyZ@?a3WVtoim@eeNi zidQ_bb`bc`7R0^!x*{JQh%RS*T83JREU&C$FP~RA@~5RSFuoM1U;c@uGHbsd-AE&3jn{{Ye_=A4LODQ=E5{XiiZgRi2k!!z zl4JaWAk=D=iT(BwUtf9O@43?AG~_?N(PsI8YITc`u4(rglNIwxQx3Q=G?&XJWPd`H zsSht*+oY$t{dC|;&;Z5AfhcrA~X==6|e?iLwkO3P0rHHtVi(wL0bI8$PtpVAoa=>(Sm>{VAQYyI@4|&owuH~N zzYc5RNXbG=pp5q{GRquG&vJ9^wz>L5oAxYz%9zzI@U4O3p4YN#aiz^jzvJ?0*sG|M z8z}fq%ylXfwXRQ6=O$ZB^)VMcn;c2WJza~#sD#deZnFaI$6cNoVA^K|;8=@JS5{sK zT?YJJW=3Y*TcyG9<dTq>~~DzTzKa6vxkv_jJ1YZud+)rg>ID;B;_}e(AwzI4WA!vus@G;F@fwWGZq`Q}<(fTBamr6_=z@1+rjVsxz1N za8yF6fB9Ds3eM6GXE*?RcNk+wu@Q7UPg*w@$B^g>!G6PV{l-17xFx-r%?OiFFvN!* z3jsK6LEBqxT&*T_Ql2OEjI)umu*sZ+k57m^WR>!}I?(E6d`6xVx8TM4%v@p6k(v;_ zvvJ(YU)ud=HU4Jp7CaclrE0XB3UWWiO&9H3eR+00@7ob{!_6qA<~`c7xXmb!oFuqs z<9<2ccZwZ943Vgs$4XKse z1ZrQjpGqd$Qwa3nci-eFG>KZ86?9;wM2 z1Teco>>HL3dEemvcRc2)-bOnrG)OqgYAx4>{%qs}6TTG1wwy47pgiDSj$qpKDkjAr zoVxR)?qH9QMe-RrWrxG_%h&)T!h8JtOG4;5jZu;;2?tnHRrZq}Tm8qQCnTEBEulr~Os*_xkG#&qdK+xJ}^soF#u`JD>iTJvi_bost5 zw4S}@`r{~AZ2k2d+Gk}Z8QF6y-f&R;7p!b}W3!TTfX>=4J|`uYXiGU;fypxAx|WO> z(#(#F0BE$=r$s99y%u>&=R|Xy=CAMV2B-06Qq-t${^3*aL%y4=A zr;mY8o&ni=pb!_)Z}^Yvh&Q4`8w86D6Abq@Rmfc;T$`UA7xzn`ts5buRk}&w8X9(6 z?Q}~%p(@;o4T$*i@F0sPwVU^vRG0tE17-HRIaU6ZiBo>wW$7?=D7e#T=n1u&Y025k zwY??1F#Wu+N)^I^1Nbp7Por>Qu(#mbAN{4KXStNaX4!uOSkchE$^?C&DCmE06Wg|H z#)!$wic6+waTXSYfp!CUbJLM}t){Y){hPpsc3nAADo+pl#MN|2ZIlqtw{A$ZBGGXf z^)#)7(6=)VIp5EZL14qr*nv-DrIvo$*HeZrALC_e3#9gCglGo(U`LIv?uHcBgpBWE zUhE5Hj|g5#lxH~TO4cBRbfC9{{chDRqmVf#z`7s1qPgUK{1sAC(2e>g#v;UTO#T8h zTX+?biqyHWuV<2lx!;y`**8h5Ms8NeyXIp8O9K7WNF%UGx(!~9^I+TV|4cr!QO*3rnF!m?qyD()k=y-RH8ei0$B zvi^H4IP4!pR$?#LrZ5s~YE~ncf%s?FeY6;j>T&@`72mA9qQRN!4*Fd#<8&A0sCQ1Y zF*XyE{5O5gID*q)Ztcq%?&BPH12(axzU|B`2hOFB#mzMFs*`m^Ye0lZeG#XZU zCyz+x$YYp=b83-{a@iadu~T&nMg4K}>-n;@o{9Jf>yP*o0V^@pMC_agbLhVZGa=TB zsgiyZV@)lswi)WRfx9+6g4>7Me@W6y_DfRUG|9YJJ;KZSwn*QH)%vizzoebQDZ`ac zkEn}N-Kiif{)#XSk=Fth^}&P9Si7o&ywfxtLR5(1=2U4DhQake&BA>HZl+gjTevSP z25#jx>=@hF9$1@&S|Yc#f>(cEkw zW2AC6SaTLTwt#p8F)xA`@P&Fn#-@^R-{6!XZtUC2(bN8jv;C z|1=bN1G#B_Nm2^S8ynhI=sM$z@Snbi1Z$MWE)QAGO26J7DYf0-XfyC$#5$!~`b9?r zy*T8F#Nk;F=Olls4B5o~$r8Syf+q|rO_A*{^3d_JjY-6Tg5~kF?w&SyEjrR2g%+(b z6fkn;6r(?LsNUOPg>^4sYX|h0hPOczH!FWnLZDa4%emLj*ejt$*>G(9f=~Zclt9&KZ$UfecM65YEIeR2UsWo( zmT>cBXK*$?n8G$+-g`#1<5Saij}0bjCmI5#_!L{1_+Q9s=BLe@8*8JXxK5+?#qQQ$( zN;(Rzgf;ZiO5aB9qF%tfhh3VDkzPZaQZrgXk?N5+yoeA+ZhKdBIasaoN%7vt$TOf2C z1Dq)ERQ*St%xF_O^}k=OZdXUh1!sK2KddQxhWM{+-PPe%LYd);lAW3@{Pl#Sol3-{ z*2A{Om(|YY`^?chS)>ljxw_6>;j=kgSidE%q6_<}9Si~>i_eS$!d^WS;1%XGlyTy> zL*ByX*6=NCM4z=3SShGkxj0vj9Z_3xRj%QAWog-bb)#X|EV)|}W7;6I7{BY_WZ&2i zuZ9VcYcA5s$m&V{G{pPH1~A+rga%LDC4kGhkbX5eg1!3KKK)`y%~;^vxa=W=6Z(wx zi~+Z7N{Zm|O?5ovAp0XMooJRH_fq0Rcxq#-BDogKGp#4(t9@V`V`L33no-XDDH3%@ zmm?#IYzhWr;sQHge93{7yhd-E{uOe}te(sSo~d{s>VXMFIfLyqcVdQd$27Ml3b>i` zi{?AHBC-lU^>{u*}MW?aCG2j5f}1Yd#&yhk3ajP+4`7$EA&=_cZ6_3F^v##VV53Tj`8O)L19T(`e+nFUk-hlnwe|}edCYa0#U*`gw0>cz3>JCZt~v+ zNZ!r{JS<-#S|aYKAY$uS5*A_fa%daG#dnD#k=JtY(0pP0$6M!ebJ*Bx|RV6a4M3$+Zf0olqpu);|0xi8WmN(ViudTt8#^- zK@99>*8Gh<9lc=^@$G;XGr0LjH(< z{b};EWdAoyn82J)qv)cYJ$c##HM;ZSHjhS>4 zhu6amaTpH>NK1fHQUN8%%Ee}1b5W&E(S%F|7fJ)ZLLP)ab!#Wm7pm|dc~?KSV_yqF z$0b|`h&-i6gcSr06{DjM2~@By#S{Z^DkhtStF4gy=2F^H0b>h6b_^Q)f%O~0yjRom zln!F<;d1{s#IMPMd^AtTpLr{l0?PTy-pA6uXfT)uCkg?1bh>|XZF7E@>#k-~2d^OH zg?c&%pY?WLpKNxvi%Vr)v?;VIA4UJ%+1uZf2`BaMJkC(JRlhquBAdevyD>80+ufU> zj{>VnfsF3=@)dPR;whDwXv~tvZC%-mQ)URi67a}b+~|O5Al&Har)kiV*jK)cHCt@p zGEYV3_VkzbJ|_i@#|%6C+aF{pEqplT7SfonhmGn9vX}>d!)CfWsaEcMyWlwg>qk4q1Oa5avCd{ z+mcmX)R(Bhwjyl5QYQ41orNpr@+wfVeSi~Rsb1~WT8(g5`Hrn6S1WW8q8|u)nb78I zT)OsXUB=Va4r9n}&8$w=X1PW6CKuXDs@(b2v$0(oVV#YqSrwRAWypk=f8`YUMYz%O zSa%rzQ$%=YSw&?=P41jfk(Rm6hT;s=b9_MAlX0Hr;Um-4Ike|z zmOc-|4@O#ILKHBC*8pP()mhR^$)|b{GIPn_!a9~iFP_gOX&M`0FtcY2X%K&jkwGa{ zKCZvrbqSCi8z4x_IeyJ)^8Tr0blRrvIwz*xvmOz0PU>A&ogOfgNA_-&|3yNoKX6q7 zww(*5<`EFl1FY+8mXyfYp5@+|TIn`hg44|&41ag7^?%%;pVoDvG)N*EV|`14|H7?l zQD**$r%V`QsSzRWo9o9=v5Mk_=B%|zU>X(eI>j~Wxg5AlEnpZoSPHOCxZRuR(XMde z1iDFMs{w}l#R0jA(3L`?lSDXDX*n8G7Dx?1`^!!}-FQWk3evpq_>#z-LG{(8GMGq} zsnqu=!r!`Si`+R`E|_SV9dWLluD~Ntb`_0{J;{zGviN98Rp6O<|h1>p8)D zW3OsbpMJfJd!--G%j*QlwB&AsAXpPh=T_Ha9= zjAf22lUY@o@Vl!8-6H*OmLZlyA4A(SKJxpbuqup-Z!-@%WrrD<_A-HZ)KgSUJU+@YLsiS)l%@6*54P@kQDCjU-_SL!<`&V z&%jZGIOezQ{D_DqZp>8HHX%PWZ-kl0k?M5WTyg-BjM`UKVH`dl0eu@vTlY3obN(qC zI|65PUh|Zp^LycKxX2Z`CX8u1Zq4qEr#BA1;9dcy!5|e@3lI_%OmGm+N5YVs~Im4M}@QFzSPZ1t=nmyi+Z z4R!r4WT>cdda2`?m}=cvF&#w=W8plfm$WY}oK|S0#)t-~W3SG%`9RW@t~9x(O;uV& z-v1cJB7vye;k!&DOnV1y@1Jj)Q@^Rk$6Fz7<+B}arNSv^DoS_SCrQk*Y}v&-j>g=w zOt95v;6okVCT)|{+ghxrI3$xB7DpEvK7SC8t}$U8FJ!IUJ2J2UGCv?GnaqVY5H7!4 zuk+BRYt`Tei0aN1a;| z6;jU0y|TG1KkA|T-?0t@sSsU6zqd-dX|dkHq>o2_vvLgING4@^}H z1XHZ;BNm^Oil)bN{$^9JM|kZIr3iIDAdj%yJ_cql;q`qMGF;c2k37y|mw05r((#{Q z`(Y>O!|caoZ09sQEa05`io-sKP!jHect}(B1Z<}V@8776mvJSIrOashib}L>rLNR< z+^V#5T1yDGlgMJN>u3fZ!az?W^LxBMApPtYExH0Ef?muX1#wB%>EhpMq?Q`jk|;l+ zY7IBM{PxYpKJ1sGb%iDN&}q8b?rcs?KQNw%N}FQ~Z3jJnH$H>CYo@i{U5{3)L5LLK zHm)t)+z{Ga7L|r!Uf!hY-RH{ObT44?6-pHJgjgpA5{1&zI-;*n=h@Ti)h=8tW2F zdT1`=q@$%%$Q4kdrl&SZ3vduhmVyOaBq-R-*~8hmV9ua^?3{`zD4nGUoCyLQJtUY> z3AUJcJ;lSXLDYss6Wy&m)=3EXZGlA#9)7TmF%a!TjkGahr51=>y)t`V*2xF_gyoTV zUTllxpWO~siA)+}b4aW7ve15#js8h+>_d;GvB1eZ|1MwsodDAng!P}5@%{Yv z{kz{N5ap>p_jx{HQO*Jfi&bhpCbpBf#h}=<^LTPGLY$IAqX_v5e63c8& zavV5I;*+t@5%I>gm*5tjZT}L0*!q`rlLdMN+LW{ zrO{}4WSHp-VOsx2Ap$agQN3S)M}Vj?y(NbD+pgJA`O?UnH8gtwCub_)mums+RD;@7 z+6{hVZhUSDM9;;W7DNtC<*G^|9A^8`xSqYTe-tPU8W{>7K>-G{RmD0(O44T{nfPwB z5hzLrbspKT?8>BO^erby^T&FBE1(Tu#wIQTPjzJsW|kj~%9)yP0wST*ESLz|XQLQs&3r~mJge-)j8WPG6*lv?m#2xM-2xNE( zd(o3FuqE_nTMucDx({!4w={y^9_z(F7c9ZU^la4)8ZLUEnPIP1w*`N_%JKK^oE35! zwo^VLBOeGtvEt+e+p{%#F7?-Y(4!uM6V$&-*-wfeFMLje)|8&^rs-t4lv7|uh;bNY zbfUGDL#*&7{kLlBvWoH5^}$(ZwC^1nCJAM*QtaG~_IuB#fG-LGF-nj(9EGIBVGNe2gyvYQ+B_0f znxv$^?Cj{K#<&mZ05nE{t_XBD6Z_t=xB(Dw#qtAMKG86xHVnEsCs0N(4QORu+jUr2 z6YNfMm`T2g`-7u zaJlo!)Ua_xvO;`WofgLfs2>mTZb3Q}#H_&I*qwrm{3jTxoB8*%Y%PpAQ)^@oItvS| z4Hf<%yCEQYM|amns_wRyZs+h<)~%GefoN^P!XHNUCk$Jf554ho@BUNdk~`6pS@(xB zc$f#9%L(`rPd|7Kb00-gDe=->lJ-4r{G)g>8F@bX`kQ^7pk8T`zmaaiMkW1|*28s# z@qy9z4A*x$Q_1d7nr1gBg3T$zlcNaIuB16yvE}V)7I?%3-Q2hHC97Cvc8u;D%YL5k zN=l5Xam7jY>=z4H>X3w9z*FHi8DJ^m=eHm&p?{u&&-NlInKY3~U|c_{-7x^kbXIZ~ z6S!+BsA#4X`CiuIO&6hQRF4=5hALKJ*K@LzvCgl;wNR$Ik?84KHJDPmC*aGL7%j!H ztYM={gFyojw!K(g?EBP`It4h@=g|uBgJ8uw7Ypdx)BeN?gunQg$ak%*4-CKZD$88P zg~Y6k*35;<4?m^ez3CuG!--XmlvVt7ypyx|H(O3$#%%QeqIRs4>Ypl7@)0mIKNfyA ziOeny`;MthV5mfDnJcE5@{(n1UR1ZTxm@rz(%Y~&rPx0U?!VDdBAZp-uh|e38*(P6 z$J)@u5lK5qb^-VepF@?gEj9{|?fEtZbF{MnUIx+rfzX9=IY#}^)|~!J8Z|;YIeL9l>jK&_*u8+}e<*i`!VCFLo|OPY{q)td|Srp z2>f}v_?ChYbB6ml<2^HqhdTvw$=}~)QWV&}@^V|-A9t_W!yGTtjQhM0*5KUpIcNV8=BFaUGvR{fEBom5u*V@F1M@K5i!*V(>` zt87z-{amVan~1NtfM*`OZN-9d?3t_H`IyS=!iauQeZNq^*hzPNo<~CM_5?d)s^i1$ ziFjH@BJaYxrTvIBcI3b;bvFvY$qd0$WV6$wDRK6#aX^?V`(c)Q0m^U$!=asrO_O6TVriiO&xV_e)R+)6~Ve? zMvSlBI8JnsGg!GbmQo>fD4k0HjJ(ogifi{69d5Qmbb07JIR>{DXY`7{sN#0EQse@3Jc&s~B&E^N9M!tWBxgUU-&2jq1M`SGEa6tS*9IImuRA zj#{&u)O>^A-Z3IDP z@@Uih{_Ba_i=yoXhrz^7Fflez`ouqqHXY9p4hJD;A6y!(kFqBB_z4%9$P#?+vSDCPADEkYin4qpA~G{RMCxj3*4cL=D=;Pz7kAc5HFUu60!T4Gi5*?NKyMppk>N z5?Oj|^NlN`Mdlo{nvf1$l*OD*pf8z6%WL^OX7ObhIPsF9cS*2OiJSo!R@U9ZP*}gZ zjAdAk!fRcOTS_DEMaUq18;$P&5mFF^_}?amV#;33sXphdODll_m^LQ zMl!sNs@+^~no6HwD~o*APG{Tbivt+ZvWcSA*Wi<-asvm#wua|p=B1<>?- zn9#=Cc07ncTrn2zlAs@m@00+Y`>q&2<3vYYpArU!z4oUR7-~V%XJq_*5~!yBo_)tD z+oYawGB!0=GIFPB*C zKD$WaKLxQ~I1_Rx9S-ECqoGM=_w9AE&P#a~(YvvU3(4S~V?_$*=0A549*70a_SU~{ zL8KzzG%x`qFSZ{j?5LS>eK~&b*AKZ>FU&43+Ta&bkn?I&;($nuDw!5LwwT9e$b;BX~{^RN3>mPXxEV@gT{7o|x z|9w<@X7i&pKvkmix}a>iV%h=^KhHGxa;m?>L6}JQQ{9J$0(6wtOdXl($Lb@ zW8jyNGCQR&Cl|^Hlxm!;%R!AronwfLaLy%ZA$^!NeIje&*d-iD8Qv5do+sNa%Ftma zTjc$=`c8Mu`|or`>uVg)X1~JKDqcWkwS?Z*vuEuG1mVul`o{&dCwXNMc;AWy*vG2! z^HYd!-zlRcTE$}LEL9<#$bC>6Lt0ivG&bH2j^$Q9xN9Of;wB5EI4y`C^c8QyygDa^ z2MV#Jogu|^oVpJDMmTyv(wN_58p5|pw@@S9-nOZIkF4~VbC5fB1=Nj_T#}Xl_xAln zNOQt&&=4Xa00n!M4}{ZljLjVNSf#+FCq+ko8=uk}7E=PJnfoegmitt21hlAll zC+X}|iz-pQNrA<4N-TnvfsR99!>Mr|G4X_tKaQGC*}R#`>^W}Ec3@4#+GNpFztYeL z4S-;)sy;^~aRRR_!i};z#4`poWv$q&`YEcpB=|L5O{mcAhVFS$AYgh3pymcGslXL_ zd4h_%2$+2pnO4Rfge{NLw-j)kx@LTqcBE-Up&6{QDgilgu!Gxb4?K_|5!$(p#!iqa zMMQ7Q6dutf@z(g?QaK3d(qq=G=0|D8>iWD$YQj?pZTA(dFH^FL8c|!DsC7Pt73PTK z4amZlVH{_57M%b)f|4@xSCVMX78?3}iTZLU;5()=K(j8!EwGwJ2NMxCYHb%~-AK8= zo@%g>aN5*LGM`@@O>NhmTc~DN1T4*?IJ<-<57+vLixgxDDjS%B^RDqNIq2-&B6nBb z{}Z7`t1n7LHR9U-(c2^^YJ&|YnGmE_;FToMx0pw3NYPN9TK~>Z7#M`Y$bgi}M}L(8 znL`Az*1z`zu|4&X&CDP#`qER&pA$NVqH-`k*>p4*jReb2e@#HD>)ITQ<1})8F{e53 zR4Y(V&`QR|(o8rXm#g8k3g#Ll2p=G6fgo=4@tw>?3DUzcK#&ZJw+gdclaO2JF66^l zH)u_rc%#U`!UG2j>zWc0ywzZUEVQzoW;3J;lPgT>+yyFoCTRa_N_H5qkVkonva`L6 ztw%f#xhzzDP<4S;fqL*`YunL3PhUpOdcQ`A-7R8-)6RMV>($Vh@s93L``=O`Pg{m8;D4GaAo1^QyGB+(3fco84I`BZn44zDg^gIZaHsA|Gk zq|T8<8jj(IZ+rnJU$$Y-&K4DJ5P?M7$r<%Kphr&K?q+doI*7+|j0X+D-v8jkvAN{y zbDTSA^FaI*7}`fY@#n*kEu$T9)j~Z}oJiaTr%IM|fLD&>(aU@4Q<)-;oJMM#HuMaq zUvK}eqYIjGA;x_0Y_4wGJ@?%EV&6QZ)~C&>|058g710_a&73nm&k9w%Tl!?j{i+C2 z6uoohzEYX9bktVN*&|&Gx&8wKCZ=i4iS}`RJtezX?CTHJN8fD&7{NMIclN^NydGJB z3?_EaN%4aSD)q8*c8c*#;HQt!(1{(uIwI%9L2A9k5mD_B!Yh%qnKpZK39BMBVqbB9 zcSL~5Wl?;GhF8b+BgAH*5G*J%3oinGNa~HAF;k!_eUBfzaYIhZcPv;1!Sty!fnKw%wx9y8^l1d9Y z23G9P2>hCK2ZWUjWh*`vxL>8V1)?_(;*W~DU;_-IwL56F>DDG5a6g>b<+IZ9g4O$m z0{8@f>d`OgZAaP(!CL9DVNa>T^Cp<@Dp7we8uzYLMZ5@C6Ffr}X_WIvKu00$kh7Q? zE{iFS;CxgIJk}y>c#wF4HeGdp?`jQRbQc%?zDME0!bWwRuDQnW#@sC=*&&IuLv6%K zgI1!0mgcW)yO9k46mLzoTqffk!Y?L^-~k;A6M`0YZ&1qE?WVgbiI{L_#CopmFJv~SG6THrO4AB9$x86<&r@q6!R)m${^P_pzw(%7RjzT{U+&O$stL*L=6l<<_Unk??Yr-0rZQ7{Gl63UJ=&Sx z;T*3vXpbt76G!Yd6+aoXH4;xOhM4mUO`lf|(>2pji-onTB8~lP*z9|iGQOoqE5=4H ze>=O35H!;z3CLA;urNCtUNxh!KTkIAq{+>Dwn^Uyp1Vzb6@vKMV&s9ul|!kjt^)zv zE1eif?|6VMw|G^@#n9_y83YUu_Tkn#`LyeBFH{NRd221IVsKQrZ#1m3cv$kq;!Zr&qASJ1IjOu(|1( zuRkpr!+rqB-KB>)&7BQ!0Kt^RI_Ko0FAQs=W{S?lTbvI%)d}75N~2C>!L~+bTKe3z zzgSP~w<;Lol_yot)cq?|8e2a^rtNz4sA?o$urz%5M;pH*YxI)zk_C%Yapn|LaKk(^ ziw$}Q;p474r;&sb{hQA`Ww(z2Q^++AXx68KcXn&roId2g+<2-Q3hnY%rkR)))}c|! zng`pXoBD}1-z?n^_^h#{8 zu}xooJ)MbjHWqZS19YMBuW0P^(%9KgC71cgybz4OyAB}lxm(AzePBz1zpZ7pV|C8Lu8Z@8}D7d8zcu@(x6bh?^R{l4cTWvk;SsQ;~i%?3kU z><<$q>^Dpi6Hrp^cr6&Nu=!gY=!6nKHSxAB$zLO;6~SkC$p}v$s*IpAQf0^=CB+r( zKdc%Q$8f8kJU$N+H6TN>8jP}BU@r0$7Tmsk3GWoF6T*SSd@Cu zb*8J+RufBi7qYt!g#_Y8Y9qqIrYpzcecH4djTBd*px8}|4K3}GqqaNdGV(yjnGW2A z(e6>qa+lB-TZ4-Ds=M@E0^KKB#_p-$rcq24>$i)kIq-WMUnC}&)AdZI{muRcO=!(d zP%X0pz6-I~vNv?Z`~LwiK+wOq&mWDKWLRF6{KygI$$gY846*#*IqXY^WC99s&7ju4 zTG)#lpPRou9HhS11VITy3{PCNkEEwX~&u0M$OA$2x4(oRa?30Ynh$yaXnd z8=R}}g6d>wYiTXAi^;ovzkCW<{(EH*eHmAbOx)2=%l%N}>E51Pip2ijHNjNBH9|1C zjAH%7QI}$e>Jldg`uFdHNhn2>GA|h8CYLwTssG|julP2MRtm(|qUo&go^Lsyf)o46 z12`M97}rt(2t42u5u(ReVV!`OF6~g7^BHet^H|U<*m_(6RsoT3!piu7-=cDYdv+a4j_z#i;vbUycfzXTIGM zbGd$*2=lq#Y=Ad zMfUh2Nl7`ciq7@8pMLtkVd=Is`I5<>Y;z{Uu-CTx&J zkzdIv+CI&&CzGVfRB1rhJxbp)V7&(KWZFO;4ppMScIN_3kxA$Z8#tvXPMk z6Y2scOld&P5c%Jw86A5pRvhjz{2})m*_$gyfe%V+C|zLm1@3SnL6y8@Y$Tj{mHi@#v3U(|Gzm=n@#icY4d*t}(p!y_|2; zbb!pXpQb95Zr79Wq*yh6`_?Za6;Zo0FN-EWXGzQo$n{uMJ5<2eJ1qzdOIn00! z&8|3Z>|6DSc!*E(^0VXEJX76J_(HS6l+}qLVvIiu#~uTOc&}fLT+|ev%jb=5rOc{r+y?q!a^7 zL%%V3u(+W5S<}A-9ZZlEtZi6$(b+6`#G#-PHh}T;WO>J!Ivw@I#cFuSD@GAS~8o8B?S+W){fMJV8FG@|SX zY)Y4{ja157aXZBoXB@pRWI7dilpxr;H~go?79-meG7ptrxnD--989a-o;!h*Pey6e z>eSLAxXiu>6q<_L#@KW`?Rl$E7`Gp!FQPqk}!%i zVW3%I%Zo+0OyT$NK5I%+U79Am2aZ2z?Vjq)XFOt*4R{F%xfWsTh#d<-(6s2^*eY1J z*hsO(mU0tO=TLTJ7{EN|Zk|>Kx=ohv&$Iv(RbO7~`-I}LI8?t@`O;e&w9E|JjxkSN zLJE8Ob$0}Rw8XfbC@T;GgF=&*iru6Y`Xpd1g`I~fm$*w{6@LB(t|;0eBKT-W@&dnI zJ>dVQV?Q2LS|I<7Mqc&j55NxB5eBsiNLEe^uXzAqbfw#Y#s@Kr-0TnaxZGaQPS`#i z2zH}HFQn7QpRTFzp}(l&)Uz}p%O^fL%C_|cg?XB&jrIe{73?mpKK%vIg$2Co3OO2zli($z^y!SJXgmxAHEs(h_99E$34!Ik{xdfx51ci}%(8aDQb_ zA8YA-MDn&aYO3}K=@nSgTUXv9YdGo$IgScg#u32B&z6VM>0SCCZ&cFB6omWFvq5?_ zjk=Q!ad7)oyHt?^cC49BR<0j2k27@KMHB#Qssbr}*T6Ous^)t$a{(T@dAbMa+}~-p z))_LRevCyS_^n}dqd3gVFYRyBM{13P zDvct*?^J%kRUEJW3`|2%DDHw=Z*p<0=_1D7lZ>l!imK`@@+WK^E1CEQ8fz})3ns$~ zW|n&{o|*cHr=^Ixg|MP$baJRDF(79(yg$Xza#up{P8hTN@W>QH3A)zirc{YkRrG^l zQ&zKNs%G-Ul02}lllje`6*qnpvzkQ*oU$XkoEK<0FnQ9r|6CiI0ixRaT5WjhoI@M6%UlsZ2=+PLu<3*J65eK4c8r1||)|TdKqlmksbho1#*51dR7;W4meOZ-{X;m8cma-a*LI{0RI1Z~D()IdJp-`a-~n>UhR zb7?|%wRcd$NxYfuid+mdw9-fTDw4k}i|`}y1sr1sz@<#^=)ISA!B)QV)AVmC?8bvd zZ?8I|1kE&lgq@MxCv)~9cr;ofV1d*3(L(<7+SOR0JSdqTtP$1^Hpzvsu?(_W9g$jS z{%v8^4?Q|Rq=HC0E|Cw%SaUANle}?5#~rpGJ)Rt?e(lz;%E4$>BJMt59=<$X`L9mz zu2BeIJbot$R_tqhJZAJipyA=tC7UFGmu<5?pN7UC5drZbR)fH}d|THNLLBwjqs2j% zSE`l#us*i9jT z(i=Bx4lpL31*n3(woco+-6YqSbqhT2N!mcABZ3yGTzRbR=fUm3SfbjRLOP2D3#u=3v_>2?XBYtyMx@i*k@4tQj{8yu4 z7@;)k_ujE%s?3<_2e~?U0yS9~kjS-!*H##8@&%TxS}y=PU3B>jKvt2%E}telF-3m( zA)&|v8@%Yy@B^jeD+`CpD%m|*cKgVv1N!6HJ4c5+G^m?g1h_Xx)0evt^fI?6Pk-A$ zna5*)>Ss6p3yp`FC72^M3gy!Y>VyMFdnHqafS|EWAGx_i9&Mol(?J-(x8wa(0fO%L zq1-(P^70W8W*P=ken-F=*vK$KH@KZBYg;N+_0r;4yrCGs3SXULM&Z7io^aa zv0y$94s(g?@E`8Ub@*2}a`zY^Hj^3tu*q5WjGb5D1WBj!_Y3V#BOZU@G&+>v2%xw$ zVDZiT25`@^vkdk3)xQBTdTb?*kxP3H%_r-NwZ!M=mZ2s}`cJH$4P80VB=sujBABGy z&HKP@cZT+3I0;_XO={ou#oigOE9)hz`oxSjVml$ieFr< z;fIJ@d1WzmdaF1IYaCO|K><4~- zCU~IMaR`+}c3rZzmneMh^bIdO1$?btY-K_E8`yBTSJLm<7SgCaf?9pR6R1sduB0FL z8DF2OEb_EYeqPku8?>8g^(MtWVzIgrv9oG7f>78mI=K0RjrJC1hg|MAS`8z_zQCvM z_AUT%#yhS3I{v2L+}W1MLSXCrhk*R1Y|NQj@)N%ht#!pQbm5n*@1RIc+f~}nFak<1NJSir;4(u28jkEm+sh^~f>?JoQlb1Dw$h;) zd@(^6N8B=+-akS^0d$ww&B(>g2TnhmXu0_VmoQFw;sx#hvmq`kv|eB~413;TWGb6B zi0O~&nX{eoqrL>~p`sXi)0(FlTguP9o?ldE2kcULz656JcxCh&GrpYI$4VN;egj?o zbhD4uOS@@Slj6QV{0DteC0iQ#=D1zlJ%;kMbVJIIJK@L;YW`Qm<|p6x_ke;p7dzS1 zMRG=;j%UIo)ABcDW*Tr>gf57jc{O0*aFLITB1sKy0h}I&%$0_5zupSPeU}xY%!=AL zlBm=evR{!MHz5dG5Jn>IfEHr$XYIGeFHJFRfntt5|37QG7r`R7b|KI2ZrN@%(X3a1`)Ldb&JD%qm;Bc%(``QY>1wj|(gl+qu5qxpsU zEuXu#ckR%f@v4~l1B;(8h1ZwtaKcF@Tk+v1%(aazi=`k+?RmN8h-#NRoF4~L!kN7B zC7mUqS0tBFzuPrJ$P#zMo2o@FE8k~em!|)vLlhHP{qB8+2QEl3CR2PfY_Eyh^pzNx zBr$_;$+npD78eu5c4YH_=*aX!nmZgpL!-8;gm zI}3A`H^#^hta^u=Is7or+^~+Ge2G875s$A!%R>W=n8jU`7H0%z%yQtuK8wa~z45%Y z1^fBIa|hjDB08C^%fXPbG^E~9{}qQE`iH&(RF;d%itX0m!6B*)S$i^59eCqjE< zMZ@sJuaIVul;@WRLMEhlB=u)fZ?Q5+$)%BRqcx;3cLQn?`oCJk(#x0(t`8?Omdq82 zATA;`^_4;goN*Rz6?CM)J9r>$%^eCT<&^FH5<%GVr*_9{<%ra9rK+t3z2s(}3KB;j zuIkO86j1f3PMA8! zV6LrD@c{HBH(yCYuAR1$x-tx7^Xuz3i(p}L^3CJSGRk8aP_ry{^A@UHbZ9NXxe)=4bRNQjFU`e zgfw7_I@KOlQy+8Xt)a}>VUCKrMk5LC9b~oiX*%T1c~qwq$35VVzz0d8Ixm_syo^Go zO^Xf^3poJXJC2-JegXT>26CO?_%UzZv`q6% z7N3kGNZK=t7U{`VU|P85YWz{3d*BkMNc|YvT%aX+SE$B?I7C|wfWJZy-=xvdUs6Oo zyG?ywr7<$Kd&5cOK2~Lh?c;23EK$xn8!v>o=Ez_7`M780bkB?d=Eo2IwIq`Yxzr}A zqGvd?+_y!)ZXZ31upnRPj<2;6w~u!VBBfy+z0knp5@d{7=8$$1kiYUg*6Xm_?Vq1|dMv$?F zB!ZKGHvYv_OsLok79`X3!Q2D8oBQ$cOGu%X4)ukA9}LdlKo&qb0XB?0N$tB@Nj8*@ zk_Dxa2x0S;1tTOEsM#cvL(CmvnY3)9JXV{hvb(yFOT$8{#x495u*eB6^(M=*ya0i| zfG?8+0RzA5)`H*05ceVsS#<=Pc(BC2sLd=a%dfp18Ej<8GChbf-Liq0O^{o$>yAcOD9d zP%*-yqKSqMQnv=_ctNwB>K#xosR0C6;*1kf$C!?EV=vka&$V}ySU+x{>$-KyOFrlN zZ-Y&fwv%3f-_hcOADlafnEih{i(epJW}`y2I43~92(|1Y=W;S)LfpvC`kc!%)lRKS z-P+U$+&Y;Q{~ncD9DNV&ky-@?*B)du!>&;b|u09{`l)x{laoFl8Lb;oGIC z9#j)IX%$b!ECj$jN_(W^4yavb?CH)~6hsfdk1@7`eV~j1(@=h_7=~u+aE>#jBdGvh-4Z?JjNB-X3rSmutJNV^GegWR z!*}(J-QPq!t6CxGk&YyHo(*}_(E^0y;5d?01HeHHO+})3G^$!d1SR~;5YGP9eW-AC zPSs^zQvBRM;~;4V1{&NBoOb!X41ow#qA&c|6tENS8r#PD^iqjGd`JF{ZE3^)Bh90$ zx<#hTrADuuf0b@k0a>&S&>TX3b06`5*uKQ;*UV~is~gaZAtH!NoE3DxadTTsA)rdr za#iSjOwEN6SyU+~W}Q>>u{m zT(EehV=T&;c|fHvXudzl1WasZ_)}@iMmkaKT!deFAO8Yefyt-17PXIhS?Pzz=eb*8 zVr}AzJToG4gY_JCx;OYaa;4qSMrEsc>Tb>EecAL|OfNkN7Rxt4M^dA3>C}O3l;qzq z^Ww5nIDyMVgDx8J6?L;38*yqq>GZ9Fz{-z@J{r<2|78v3m_L*{r1SoyH9n7GPc7sg zi!n4I1`*lXLNpNiyzVzcmlaXAs8$gq?_I#CfI#;bdY;ukA+vYs+~o5E)9@;bMsf#t zuY>t=bo9osuncX_w+;e6g`2UChng9TFSBtoahR{MRjLLLp3)09?}$H+uTIL--qJDZ zdYG76h9Gg3Jq&8%(F&7YEm3bJ6)Woa%+_v_GS!G_Pxa zpo03Wcp0$Ya01vIig~FdET4r;s1@3+S0ZHZNg{A3>b85)4K?SLe6!6^Dig(CVkMCc zJkHL3yzfxU&P%|+Y{QF@bB;@vL81`1Vka$urP#ExyI6dj352ew5Np}@9cb0U%$!se z8n6uWCXRdx7^3k8f|egK^(EU;+6BG_nz-1w4Z|6S!e37V&?yp2tX8G488=%P;j2E1 z_eNM9!3ql3A%9GHRF_`I`T4OHzy2Ebk`fa}v{KS$1=bsSeez5Hs&!~IW+AD5Bna_jL_PQMGB+GTU!F+mfFsSdIH8zI+kNGM> zBVjzk+jxuMdS3P~lHqI0UvV(3(~(0kdgVW9X9$MLrs@a*m3l~hCl#rbvh5C$F+GzC zvo3OCk3e%t^jIHfcp|N%h;Fbj zw2!QKrDUGovS7LMASkkXJ(vJ~qBZvs05%yi@kDuMMlH^A6s_+>PDu4kI=gSdDN9l& z11bUavkE{if|%N=@9lRv{&H?=w4Hz~gKX6t`dSGbKZQUF29-5A#}yuNaQ=7J_ZO$Q99{6k z%K-jVfZzi*o<$w6Zz+c9>dqV=WW$yTm67wAJNlr;4a`^$q_*njlc6kdDgQrbL<_+%obUHdE2MSB##T0+DoYE0zq4DwIo}J8G?>N z9aD$d53)ygz~5_5ExMBtBO>ZAgr3#sEc@$fyvg+0H~4gue8m0Jfz!fdc5uVc|J(B2 zb_4uo-g&9qv{S53W2AG(Mox%OHEYq+P42&pR(OsT^V)?1@$-{&DO(JuZMPOTPMLXX z`LNOLPVT_a{1k16b7Rp?L+!473~R)~LRpW1)WlSt&1WX+^{G<;1U*r{AXoOCx;)RG zNFpeedz6qV$0ES7_Mr}{iz}dso#}y;KU?p6?ff^=gVp(z<@B58l9%uE))uaHQkIu` z7OJfuXo)fn(+(lM-j6<|HTQ-_GF$!d@w?3}sKdk4(;|TF$MA_HGL2uj*}tv35@-UD zJ2+rCICt-;b72Gx2H63XlCmfL`Ikf_=REC(XPXmvTG8L6R7eyW3?aqy|KjkdI`!Ua z%4YDbh>f~>I$&L93F{k~+ZxkcWi3fJVnD}PI&-Lot|ewYc}x7f zpnWH|PV_0n3uqC6egn#~yGDKSQ%=z0AMSCeWacydu7JnRwwIe1A9#304VcJq+@iB! z`B;*6zV#zg>@`sal`0lqJ#fGOyr$NwBXvEo0q+dkTBU&@GDa zgA&3txj4p+PQ*RuEYa;(%O6A=7(LxcA`RWLV3_M&Nt8bI2WDIO4Rl6zI@`er8{zzu zI?vKKJ|wdb2Iur6|0<)+fuhv0eNpERy!{$w#qvj-L}u*fLcLvUZt`$_wX__;|L>Po z`S{FufI4-)Q1KjR|1Pe;)Q&3NXcZ<&{$^bMoj7i7I8{+rwM36u@Gzb`%{Oe{#GQ4P z2K4C?MzVsKvIW2`GofUoK-(yAQd7jaA+$#fYJsuA^}SX2qFVQroB>bdPy z*oUbZt0kgWm@(N~>QV{8(7?^P#oR%v@TRQ$G|{}~B3R8O3 zRIRc{p(Usrom{3BlY z_TfB^LKw_SR@=AdN016n6Ma7lP+sc9zxOBbE~DdKewU=<~QoxG_VV6nwCUhr9f|kX%1pyU+2T7Er zUi9pg3Tuh7uDb$_^0>!QXoc{$fl0{(Lxm?XD#wf zKBNk~fY zjx?A3w~WhWKLl47@s9XnBM4o^n}C*FI8;%-K0wAI$zQMAhrD?^qF-hP0YZf9aCT)y z$hfMrJuB{nNH7rA2L!%A6h3+dvWj#TBGM~g7Y6gY(nON4%)B$aYSxwj$bbK>fa8OAU}oszmwu#XXJkS-luDV%bA{s z6wG^3dWT!z*qWX5(5c()((2CiA0I1mbaVzUj(`CM;3uH*5a&zPb#i%Q5~Vh?LI6%? z>N`ivK<&;S;mcGM`oF94&V0(-4{MG2H8r0|lTBA3d%XKAzDn&tVA9k(MC8$)Knyjh zQ%Bx+GFFy05NvqJV~TN8KdQ2>Fi440&l-dp@=-&JkuvCD&v*!VPzR}`PF?l}^xi(F zP*2~Z_uZ*eJ1aVPL?;-j9Qd^MX%k->`R*L~;v1fK7z#Zb0bi`kuhvPHXJcp_MmrRB*tDBKD=gn%w zK0UBA6yv!_C-4i06=#XSLw)FXnq!pxLDGs1j{NXkdBFKZM9`_Q1azu zk#C4Z-kY2z`M}344hs8q>5*X;@8}5K{c&7lRyL-bO;M(OCbsX$9R(^Lo{QA+)Sv-% ztLnxu_b%1TkW7*!4s=`rK~E2sT#-YhbtSBBhD;R5YFm60EFjSoL6hRD3xAJBB{TAX zsL|mhOH3ubQls(gEzw?8t?;^I<73t+M?dC-Q>kM#tGI$|-zivKs_CWhCdboj@v_nS$$8|Qw!i|1W^ z&>+n+Sng|VHf3--hyA-v<+#Y-H(Ud3K53U2scb6xt^a-tluIqr`RKO^)M(K`1y7Rn zEpEcvL9K}`j3S$rhr3x}xJ<1U@+}Ge2WAa*4O3U|d?*mj<9-9mxNJm(S-1dgWKffI z*yr8d%UGyvIVp)>GNWR*a7VzT{#jl-Lw4eqfTMx)2AVv5o>``VzYOL?16hVo?BowJ z2a$BPhiNzFl7%su`ElPbGNyP_z&=Dc(Ox5XQb%>@Bpz%`#iOMXJ{-nfUSGzQ+MfPeyHsq0k&UCm$H@h=#kB}OXUrtd zV775dk)eQx2Zh4MzwRbiFOGmniDy!Z^bAzaL)x8h z8%W?8dQVdSXJs3B?b|8i8Dd>UnLU57?%lSN6;diL8bg&|Nh-*aWm`uacb z-gY3q?yrRA-ieu?i|PbhNYjO=e!iEc-+Qyml3N^j^Q5gwrlE@=cG5Qc&HM=O`z$rY z#&C#~U4Nh@Q#Qs`Jg3F361pvgq)jq>eu>V*F7}rV}cbGL(i4^$a+Lo+#r@H&;TD`$WF}!|K~?_SFfne1exDTmEp( zGy?ca!3oURCEcXBR&(rolGr8XzAlHeuz=BOS_3is4z26u@{YvoG6JF;^txGJs#CuR z6B5l(rq~3ujAo>wyi<8ByOWE?`kd4B`GF>>Birt5k!`YYJtQLu6|?H@FUC*?>am4whITZmtQ! zUK7!z9*ZX_anW4Re0;6YMiKIS90{1MDn8F~yqS&upS?Ax1|WK2JQaPSy~4j;f$^Hn z9d1z=_T@Tq5G>94JB?R8WGvFb6R}5@h@(NW0YI8%Q;_9-uB(7n(_Cd-4j{%5XXle0 z@w;s!;ZEfzPlcvUh?8x;D}}jExoF^VXPqPz{UAHAIjqquRGEs6T$(HR1-oJ$$Jw72 zk)(OsQRW&QcHoLyni5m_v>qL3qd4Z;?ERYMrXw{NTPdZFv^6)?+$Ifa-idyOxp{OY za^`he!h*|#__G@{zI@@Vj9EKL)0nB&*QUMNaa8GpQT?*+XX+I?UR9;69p@x*tR`Gc zi_h=LnAV9=XDPV-cTQlN97}@vb4e&Vp%dkZye1)nKh`QCV@#^@L>L}NlutGr!guVG z(ro5Z#klQqe(gSU+(G*qH@OhYTj7a}d@AD+ykq#hAM@rO3+!!t8}UqBS;10oo3(+t z^b_*WcbK*{omt8DD{!2OMq~kg-xHQq!9s$x2;Qw9Q@FI}&vRuD2p&j0_9;DZaoc6L z1TvhKu06r@Q?cCcZW&l^O++kyzD2M) zzDCi0K_4H?Z$bKi^She@ke%%Yxtb|X4-6=0;I@c8Haf+YmsFiTCnc`#DaU&l&bjpz zZ8=_xkR}82)m)~qBWzg;aa{d+?W(Th!0Pv8=XNk1ba}1FoIgkVbIxWs((wG(fCD!J zIyePrVefk#IM}bSc9#Q%fb|uBb#5SP(EtujVq=%+t#mJ|(gNd6f}NJT361-qAl?R% zcoDLYrKh|Ae2}SR#RKObO~EgU{#Yd&^O{L}%B#~x4Ndr^F3c1L2wUm7KWB?Lsa8Yv z8ShKS7VkS=eCp*~5r?n|qH6$_kn1T)$eMAQ1_Q;d>2qP(ctHe|L3`IS;t@-I`CW_$Ggjdn$MM-EfsMv z1nBv|Cq8|&(ZX1>8pc}UeVYv9`Y|A6ou#2KZ%77=`9KFge;cCNys_&ipq+LTpjsKDRO zfm2dyBxmnm@1PD4!w^*$GZ~^%R>*9l$Y$Hy-3$*n9WQeL9h>zpn<#EF*3FF2dxKg> z<@fUg$e!eEf{=@vIVP$Au>ayBRk=TryolU{f-OhlV|-&-bhdHeTDh~jAOMbBNkx~4 z0+|Xr#jpumeiY`n7ujfcz87>&Lrfo#bYM}S>ueKk8z4xf?A zect#aGo8j|z0B`eAF?%V%~ew+hlECM0~%N%0AvF%Nahqo{;v(Bg@@cCYQ7i8acl6p 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

uDd9dZzNw}_L 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