From 5fe85dc89193d852ca40f973080e08bc57bf1d19 Mon Sep 17 00:00:00 2001 From: 18086616529 <344820985@qq.com> Date: Wed, 24 Jun 2026 16:14:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=B0=8F=E8=BD=A6=E5=8D=A1?= =?UTF-8?q?=E7=89=87=E7=95=8C=E9=9D=A2=E5=92=8C=E8=BD=A6=E9=98=9F=E7=BC=96?= =?UTF-8?q?=E9=98=9F=E7=9A=84=E5=8A=9F=E8=83=BD=EF=BC=8C=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E8=8F=9C=E5=8D=95=E7=9A=84=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E5=85=A5=E5=8F=A3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MiGu.Server/Auth/RbacStore.cs | 9 + .../Controllers/DashboardController.cs | 54 ++ .../Dashboard/DashboardShortcutCatalog.cs | 99 +++ .../Dashboard/DashboardShortcutService.cs | 146 ++++ .../Dashboard/UserDashboardShortcut.cs | 10 + MiGu.Server/Persistence/PlatformDbContext.cs | 17 + .../Persistence/PlatformPersistence.cs | 26 + MiGu.Server/data/platform.db | Bin 139264 -> 430080 bytes .../src/api/dashboardQuickEntries.ts | 51 ++ .../dashboard/QuickEntryPickerDialog.vue | 211 +++++ .../components/fleet/FleetAllocationPanel.vue | 137 +++- .../components/fleet/VehicleHealthCard.vue | 725 ++++++++++-------- .../src/components/fleet/VehicleHealthRow.vue | 287 +++++++ .../fleet/VehicleMaintenanceSelect.vue | 105 +++ .../composables/useDashboardQuickEntries.ts | 145 ++++ .../src/composables/useQuickEntryDragSwap.ts | 126 +++ .../src/composables/useVehicleCardState.ts | 147 ++++ .../src/composables/useVehicleHub.ts | 49 +- .../useVehicleMaintenanceActions.ts | 54 ++ .../simple-platform-vue/src/config/navMenu.ts | 62 ++ .../src/config/quickEntries.ts | 110 +++ .../src/layouts/AppShell.vue | 46 +- .../simple-platform-vue/src/styles/theme.css | 11 + .../src/views/admin/DashboardView.vue | 315 +++++++- .../src/views/shared/VehicleHubView.vue | 150 +++- 25 files changed, 2638 insertions(+), 454 deletions(-) create mode 100644 MiGu.Server/Controllers/DashboardController.cs create mode 100644 MiGu.Server/Dashboard/DashboardShortcutCatalog.cs create mode 100644 MiGu.Server/Dashboard/DashboardShortcutService.cs create mode 100644 MiGu.Server/Dashboard/UserDashboardShortcut.cs create mode 100644 frontends/apps/simple-platform-vue/src/api/dashboardQuickEntries.ts create mode 100644 frontends/apps/simple-platform-vue/src/components/dashboard/QuickEntryPickerDialog.vue create mode 100644 frontends/apps/simple-platform-vue/src/components/fleet/VehicleHealthRow.vue create mode 100644 frontends/apps/simple-platform-vue/src/components/fleet/VehicleMaintenanceSelect.vue create mode 100644 frontends/apps/simple-platform-vue/src/composables/useDashboardQuickEntries.ts create mode 100644 frontends/apps/simple-platform-vue/src/composables/useQuickEntryDragSwap.ts create mode 100644 frontends/apps/simple-platform-vue/src/composables/useVehicleCardState.ts create mode 100644 frontends/apps/simple-platform-vue/src/composables/useVehicleMaintenanceActions.ts create mode 100644 frontends/apps/simple-platform-vue/src/config/navMenu.ts create mode 100644 frontends/apps/simple-platform-vue/src/config/quickEntries.ts diff --git a/MiGu.Server/Auth/RbacStore.cs b/MiGu.Server/Auth/RbacStore.cs index 4cbc269..32a5cdd 100644 --- a/MiGu.Server/Auth/RbacStore.cs +++ b/MiGu.Server/Auth/RbacStore.cs @@ -212,6 +212,15 @@ public sealed class RbacStore lock (_gate) { var u = FindByName(username); return u is null ? null : Clone(u); } } + public RbacUser? FindUserById(string id) + { + lock (_gate) + { + var u = _snapshot.Users.FirstOrDefault(x => x.Id == id); + return u is null ? null : Clone(u); + } + } + /// 当前用户可登录的 scope 集合(其角色覆盖的 scope,* 角色覆盖全部)。 public List UsableScopes(RbacUser user) { diff --git a/MiGu.Server/Controllers/DashboardController.cs b/MiGu.Server/Controllers/DashboardController.cs new file mode 100644 index 0000000..0b6d72f --- /dev/null +++ b/MiGu.Server/Controllers/DashboardController.cs @@ -0,0 +1,54 @@ +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using MiGu.Server.Dashboard; + +namespace MiGu.Server.Controllers; + +[ApiController] +[Authorize] +[Route("api/dashboard")] +public class DashboardController : ControllerBase +{ + private readonly DashboardShortcutService _shortcuts; + + public DashboardController(DashboardShortcutService shortcuts) => _shortcuts = shortcuts; + + public sealed record SaveQuickEntriesRequest(List? Keys); + + [HttpGet("quick-entries")] + public async Task GetQuickEntries(CancellationToken ct) + { + var (userId, scope, err) = ResolveSession(); + if (err != null) return err; + + var result = await _shortcuts.GetAsync(userId!, scope!, ct); + return Ok(new { keys = result.Keys, usingDefaults = result.UsingDefaults }); + } + + [HttpPut("quick-entries")] + public async Task SaveQuickEntries( + [FromBody] SaveQuickEntriesRequest req, CancellationToken ct) + { + var (userId, scope, err) = ResolveSession(); + if (err != null) return err; + + var result = await _shortcuts.SaveAsync(userId!, scope!, req.Keys, ct); + return Ok(new { keys = result.Keys, usingDefaults = result.UsingDefaults }); + } + + private (string? UserId, string? Scope, IActionResult? Error) ResolveSession() + { + var userId = User.FindFirstValue(JwtRegisteredClaimNames.Sub) + ?? User.FindFirstValue(ClaimTypes.NameIdentifier); + if (string.IsNullOrWhiteSpace(userId)) + return (null, null, Unauthorized(new { message = "未识别用户" })); + + var scope = User.FindFirstValue("scope"); + if (string.IsNullOrWhiteSpace(scope)) + return (null, null, BadRequest(new { message = "会话缺少 scope" })); + + return (userId, scope, null); + } +} diff --git a/MiGu.Server/Dashboard/DashboardShortcutCatalog.cs b/MiGu.Server/Dashboard/DashboardShortcutCatalog.cs new file mode 100644 index 0000000..fe38d76 --- /dev/null +++ b/MiGu.Server/Dashboard/DashboardShortcutCatalog.cs @@ -0,0 +1,99 @@ +using MiGu.Server.Auth; + +namespace MiGu.Server.Dashboard; + +/// +/// Dashboard 快捷入口 key 白名单。key 与前端 quickEntries.ts 对齐; +/// 用于 RBAC 校验(用户须有权访问对应页面)。 +/// +public sealed record ShortcutDef(string Key, string PageKey, string Scope); + +public static class DashboardShortcutCatalog +{ + /// 旧版快捷 key(别名)→ 菜单 key。保存时归一化,避免与菜单项重复。 + private static readonly Dictionary LegacyKeyAliases = + new(StringComparer.OrdinalIgnoreCase) + { + ["platform-config"] = "admin-map-editor", + ["mission"] = "admin-task-templates", + ["cars"] = "admin-cars", + ["auth"] = "admin-config-system-center", + ["system"] = "admin-config-system-center", + ["ops"] = "admin-config-ops-center", + ["tasks"] = "admin-config-strategy", + }; + + private static readonly ShortcutDef[] PlatformShortcuts = + [ + new("admin-dashboard", "admin-dashboard", PageCatalog.ScopePlatform), + new("admin-map-monitor", "admin-map-monitor", PageCatalog.ScopePlatform), + new("admin-maps", "admin-maps", PageCatalog.ScopePlatform), + new("admin-map-editor", "admin-map-editor", PageCatalog.ScopePlatform), + new("admin-project-properties", "admin-project-properties", PageCatalog.ScopePlatform), + new("admin-tracks", "admin-tracks", PageCatalog.ScopePlatform), + new("admin-cars", "admin-cars", PageCatalog.ScopePlatform), + new("admin-processes", "admin-processes", PageCatalog.ScopePlatform), + new("admin-scripts", "admin-scripts", PageCatalog.ScopePlatform), + new("admin-task-templates", "admin-task-templates", PageCatalog.ScopePlatform), + new("admin-simple-fields", "admin-simple-fields", PageCatalog.ScopePlatform), + new("admin-config-strategy", "admin-config-strategy", PageCatalog.ScopePlatform), + new("admin-vehicle-hub", "admin-vehicle-hub", PageCatalog.ScopePlatform), + new("admin-config-facility", "admin-config-facility", PageCatalog.ScopePlatform), + new("admin-config-business", "admin-config-business", PageCatalog.ScopePlatform), + new("admin-config-ops-center", "admin-config-ops-center", PageCatalog.ScopePlatform), + new("admin-config-system-center", "admin-config-system-center", PageCatalog.ScopePlatform), + ]; + + private static readonly ShortcutDef[] MonitorShortcuts = + [ + new("monitor-dashboard", "monitor-dashboard", PageCatalog.ScopeMonitor), + new("monitor-vehicle-hub", "monitor-vehicle-hub", PageCatalog.ScopeMonitor), + new("monitor-map", "monitor-map", PageCatalog.ScopeMonitor), + new("monitor-ops", "monitor-ops", PageCatalog.ScopeMonitor), + new("monitor-notes", "monitor-notes", PageCatalog.ScopeMonitor), + ]; + + private static readonly Dictionary ByKey = + PlatformShortcuts.Concat(MonitorShortcuts) + .ToDictionary(s => s.Key, s => s, StringComparer.OrdinalIgnoreCase); + + public static readonly int MaxKeysPerUser = 16; + + public static readonly IReadOnlyList DefaultPlatformKeys = + [ + "admin-map-editor", + "admin-task-templates", + "admin-cars", + "admin-config-system-center", + "admin-config-ops-center", + "admin-config-strategy" + ]; + + public static readonly IReadOnlyList DefaultMonitorKeys = + ["monitor-vehicle-hub", "monitor-map", "monitor-ops"]; + + private static readonly HashSet ExcludedKeys = + new(StringComparer.OrdinalIgnoreCase) { "admin-dashboard", "monitor-dashboard" }; + + public static bool IsValidKey(string key) => + !ExcludedKeys.Contains(key) && ByKey.ContainsKey(key); + + public static ShortcutDef? TryGet(string key) => + ByKey.TryGetValue(key, out var def) ? def : null; + + public static IReadOnlyList DefaultKeysForScope(string scope) => + string.Equals(scope, PageCatalog.ScopeMonitor, StringComparison.OrdinalIgnoreCase) + ? DefaultMonitorKeys + : DefaultPlatformKeys; + + public static bool KeyMatchesScope(string key, string scope) + { + var def = TryGet(key); + return def != null && string.Equals(def.Scope, scope, StringComparison.OrdinalIgnoreCase); + } + + public static string PageKeyFor(string key) => TryGet(NormalizeKey(key))?.PageKey ?? NormalizeKey(key); + + public static string NormalizeKey(string key) => + LegacyKeyAliases.TryGetValue(key.Trim(), out var canon) ? canon : key.Trim(); +} diff --git a/MiGu.Server/Dashboard/DashboardShortcutService.cs b/MiGu.Server/Dashboard/DashboardShortcutService.cs new file mode 100644 index 0000000..583cdb2 --- /dev/null +++ b/MiGu.Server/Dashboard/DashboardShortcutService.cs @@ -0,0 +1,146 @@ +using System.Text.Json; +using Microsoft.EntityFrameworkCore; +using MiGu.Server.Auth; +using MiGu.Server.Persistence; + +namespace MiGu.Server.Dashboard; + +public sealed class DashboardShortcutService +{ + private readonly PlatformDbContext _db; + private readonly RbacStore _rbac; + + private static readonly JsonSerializerOptions JsonOpts = new() + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase + }; + + public DashboardShortcutService(PlatformDbContext db, RbacStore rbac) + { + _db = db; + _rbac = rbac; + } + + public sealed record QuickEntriesResult(IReadOnlyList Keys, bool UsingDefaults); + + public async Task GetAsync(string userId, string scope, CancellationToken ct = default) + { + scope = NormalizeScope(scope); + var allowed = AllowedPages(userId, scope); + + var row = await _db.UserDashboardShortcuts + .AsNoTracking() + .FirstOrDefaultAsync(x => x.UserId == userId && x.Scope == scope, ct); + + if (row == null) + { + var defaults = FilterKeys(DashboardShortcutCatalog.DefaultKeysForScope(scope), scope, allowed); + return new QuickEntriesResult( + defaults.Take(DashboardShortcutCatalog.MaxKeysPerUser).ToList(), + UsingDefaults: true); + } + + var keys = ParseKeys(row.KeysJson); + var filtered = FilterKeys(keys, scope, allowed) + .Take(DashboardShortcutCatalog.MaxKeysPerUser) + .ToList(); + return new QuickEntriesResult(filtered, UsingDefaults: false); + } + + public async Task SaveAsync( + string userId, string scope, IReadOnlyList? keys, CancellationToken ct = default) + { + scope = NormalizeScope(scope); + var allowed = AllowedPages(userId, scope); + var sanitized = FilterKeys(Deduplicate(keys ?? []), scope, allowed); + if (sanitized.Count > DashboardShortcutCatalog.MaxKeysPerUser) + sanitized = sanitized.Take(DashboardShortcutCatalog.MaxKeysPerUser).ToList(); + + var row = await _db.UserDashboardShortcuts + .FirstOrDefaultAsync(x => x.UserId == userId && x.Scope == scope, ct); + + var json = JsonSerializer.Serialize(sanitized, JsonOpts); + var now = DateTimeOffset.UtcNow; + + if (row == null) + { + _db.UserDashboardShortcuts.Add(new UserDashboardShortcut + { + UserId = userId, + Scope = scope, + KeysJson = json, + UpdatedAt = now + }); + } + else + { + row.KeysJson = json; + row.UpdatedAt = now; + } + + await _db.SaveChangesAsync(ct); + return new QuickEntriesResult(sanitized, UsingDefaults: false); + } + + private HashSet AllowedPages(string userId, string scope) + { + var user = _rbac.FindUserById(userId); + if (user == null || !user.Enabled) + return new HashSet(StringComparer.OrdinalIgnoreCase); + + var eff = _rbac.ComputeEffective(user, scope); + return eff.Pages.ToHashSet(StringComparer.OrdinalIgnoreCase); + } + + private static List FilterKeys( + IEnumerable keys, string scope, HashSet allowedPages) + { + var outKeys = new List(); + var seen = new HashSet(StringComparer.OrdinalIgnoreCase); + foreach (var raw in keys) + { + var key = DashboardShortcutCatalog.NormalizeKey(raw ?? ""); + if (string.IsNullOrEmpty(key)) continue; + if (!DashboardShortcutCatalog.IsValidKey(key)) continue; + if (!DashboardShortcutCatalog.KeyMatchesScope(key, scope)) continue; + if (seen.Contains(key)) continue; + + var pageKey = DashboardShortcutCatalog.PageKeyFor(key); + if (!allowedPages.Contains(pageKey)) continue; + + seen.Add(key); + outKeys.Add(key); + } + return outKeys; + } + + private static List Deduplicate(IReadOnlyList keys) + { + var seen = new HashSet(StringComparer.OrdinalIgnoreCase); + var list = new List(); + foreach (var k in keys) + { + if (string.IsNullOrWhiteSpace(k)) continue; + var t = k.Trim(); + if (seen.Add(t)) list.Add(t); + } + return list; + } + + private static List ParseKeys(string json) + { + try + { + return JsonSerializer.Deserialize>(json, JsonOpts) ?? []; + } + catch + { + return []; + } + } + + private static string NormalizeScope(string scope) => + string.Equals(scope, PageCatalog.ScopeMonitor, StringComparison.OrdinalIgnoreCase) + ? PageCatalog.ScopeMonitor + : PageCatalog.ScopePlatform; +} diff --git a/MiGu.Server/Dashboard/UserDashboardShortcut.cs b/MiGu.Server/Dashboard/UserDashboardShortcut.cs new file mode 100644 index 0000000..7d39f3a --- /dev/null +++ b/MiGu.Server/Dashboard/UserDashboardShortcut.cs @@ -0,0 +1,10 @@ +namespace MiGu.Server.Dashboard; + +/// 用户 Dashboard 快捷入口配置(按 user + scope 一行)。 +public sealed class UserDashboardShortcut +{ + public string UserId { get; set; } = ""; + public string Scope { get; set; } = ""; + public string KeysJson { get; set; } = "[]"; + public DateTimeOffset UpdatedAt { get; set; } +} diff --git a/MiGu.Server/Persistence/PlatformDbContext.cs b/MiGu.Server/Persistence/PlatformDbContext.cs index 96ccc08..361f332 100644 --- a/MiGu.Server/Persistence/PlatformDbContext.cs +++ b/MiGu.Server/Persistence/PlatformDbContext.cs @@ -1,5 +1,6 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using MiGu.Server.Dashboard; using MiGu.Server.Wms; using MiGu.Server.SimpleFields; @@ -18,6 +19,7 @@ public sealed class PlatformDbContext : DbContext public DbSet ContainerLocationHistories => Set(); public DbSet ContainerMaterialHistories => Set(); public DbSet SimpleFields => Set(); + public DbSet UserDashboardShortcuts => Set(); protected override void OnModelCreating(ModelBuilder modelBuilder) { @@ -59,6 +61,21 @@ public sealed class PlatformDbContext : DbContext modelBuilder.Entity().Property(x => x.QuantityDelta).HasPrecision(18, 4); ConfigureSimpleField(modelBuilder); + ConfigureUserDashboardShortcut(modelBuilder); + } + + private static void ConfigureUserDashboardShortcut(ModelBuilder modelBuilder) + { + var e = modelBuilder.Entity(); + e.ToTable("user_dashboard_shortcuts"); + e.HasKey(x => new { x.UserId, x.Scope }); + e.Property(x => x.UserId).HasColumnName("user_id").HasMaxLength(64); + e.Property(x => x.Scope).HasColumnName("scope").HasMaxLength(32); + e.Property(x => x.KeysJson).HasColumnName("keys_json").HasColumnType("text"); + var dateTime = new ValueConverter( + v => v.UtcDateTime.ToString("O"), + v => DateTimeOffset.Parse(v)); + e.Property(x => x.UpdatedAt).HasColumnName("updated_at").HasConversion(dateTime).HasMaxLength(40); } private static void ConfigureSimpleField(ModelBuilder modelBuilder) diff --git a/MiGu.Server/Persistence/PlatformPersistence.cs b/MiGu.Server/Persistence/PlatformPersistence.cs index 9b6cab8..1fe3a42 100644 --- a/MiGu.Server/Persistence/PlatformPersistence.cs +++ b/MiGu.Server/Persistence/PlatformPersistence.cs @@ -41,6 +41,7 @@ public static class PlatformPersistence services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); return services; } @@ -51,6 +52,7 @@ public static class PlatformPersistence await db.Database.EnsureCreatedAsync(); // EnsureCreated 只在「库文件不存在」时建表;已有 platform.db 时新增实体不会自动补表。 await EnsureSimpleFieldsTableAsync(db); + await EnsureUserDashboardShortcutsTableAsync(db); } /// 为已存在的数据库补建 simple_fields 表(幂等)。 @@ -99,6 +101,30 @@ public static class PlatformPersistence } } + /// 为已存在的数据库补建 user_dashboard_shortcuts 表(幂等)。 + private static async Task EnsureUserDashboardShortcutsTableAsync(PlatformDbContext db) + { + if (db.Database.IsSqlite()) + { + await db.Database.ExecuteSqlRawAsync(""" + CREATE TABLE IF NOT EXISTS user_dashboard_shortcuts ( + user_id TEXT NOT NULL, + scope TEXT NOT NULL, + keys_json TEXT NOT NULL DEFAULT '[]', + updated_at TEXT NOT NULL, + CONSTRAINT PK_user_dashboard_shortcuts PRIMARY KEY (user_id, scope) + ); + """); + return; + } + + if (!await TableExistsAsync(db, "user_dashboard_shortcuts")) + { + var creator = db.GetService(); + await creator.CreateTablesAsync(); + } + } + /// /// 检查表是否存在 /// diff --git a/MiGu.Server/data/platform.db b/MiGu.Server/data/platform.db index 3eff1fb4166f2b0198b281e0ffd557ebe9bdd49b..1d1e6fe08769c77e88b68c30b585788f64a7d664 100644 GIT binary patch literal 430080 zcmeFa31D4!edl|wBx|#!n_V#uv8<3fh8%PD#U_C4D8agxopZ15m3)_D z#V!>72Hi-yKb`wO-}C$b{=fZq`oZIiYuR+ZymBsDo3^!Uw1ENb#naQ8rtRWuk*}kC z4e+&(uOYsg|7y)|di-~nb};|!4hRP7Ul6ie>wjDS!iYBZ#i7~ZcWIv+{0r^9{IBxA z!@Gv3P9CUfi|5nqb*rygV(AOf#kJ+)=Y`jvTU|(&&#y&`=d+d71#|Py6HgC~jZ7Ur zT>G}YYf-$EZF+ZsyU$h@qovg@zaBq&YHs$--1M2*Bgf~aXSz_$Oy4mvKFzJjV5F0OX@+vCeo znx(UAUEZEQzqEw_teUGjx{`5UJ^uJY+VlNmt9NHh8CRH@2KKpo=T2=rj^;-+2wLlF z`}oFtN4kObGPrDU`F!__A6q@XoV>dG`;GhS`T_Ih{dIl+RCX>};rg2xt$Am2uUpH` zbLVT>>((}Idt&^+{o}(^(cwyasKu6BHdE`3olh=|j7%LnR(oUEV^=MlU0hvTUU{tZ zwrRdQT4j$liJ$RSYh9?rj=OX}wedxBFTo#cQ5W=2WlPZ-%+cDAZ5Nn(G&{d`=CKP| zmp?v|A&;|{t_p8$dVI}iJDVe|dc5C3V6=Vw$qU&^#N+7l>E+u!w%zIFiz`XDwV%qO zV%;5ia$5}hiqYYz;~1g zIkoKy9ayx(Gj1F;O)fd!Sbh&qYm&6sw97S)E~nj|c=H-3qI2CyPWL(?=FY>+J=jg1 z0>vqJg-?Ou>Zia4A8y@E8*hv}Wepamz?&9&Y@_C;+k6T%FVcK>sLG~l5y)5Kssx1iB%xK00{ae7#;D8$Ee)RGSzZotmm&8@N&I+ODTN zd1~m6pIUlo#ABYP4C9bt^d*SW zbBpJT7xVRRSifoDy7}ExyT@wx-(M_c_wI>nbKAFqED!X^3?1DuvP=&>*VOaaOB~xz zZQl=OiSFu0j!b{z+dp*VVxDI!16w}WI%K*B1J^bkr{lsdd4Kh>)wS$g`6>&m$-?%G zjkPVzG@~FjvRIEJ3yd5uVu^;On^_QmfnmjNR4iKtm4lY z*grTwR>i*{@&DSyCp7-A{wV|$0tx|zfI>hapb$_9Chk+UCS>Ogf!Fu1et<;Q+D2Y?ua=b)$JT4q%ai|mGk7C<$ecMZpP^bO+H@tpk zF`YRyQ{@k4?wr{u=%ym((2Q@pftA>vp4dT1T0v;)5x>!`%rm?&@_nM?{86)7qbO!L zG}E|^wl|84Rk^LUzbWb|4$aK!hS~PpqLhN)PQUV^YumH0ycpbV`LDd_`A58Ip<69W z-=Ij=79Y*{4Yi+*dbdL}tziBc@*iC9kYOG)oxn6azf3cL{?SI6@gd_4Rc^n?g=k$@ z@+vx9_x|Yo#c1jEZ;<$Zt^P6M|NqpPT&-Urpb$_9Cy)5Kssx1QY^a zeF#YWzlw*ai2qOig~tEYKZSroKp~(IPzWdl6aoqXg@8gpA)pXY2z&)0@c7Q!4fFGR z=5O4;`(&dSe`;#t+A8S?Rl@I=kuo8f1Vv^4r+@NCKKafMOq*qjK;PJXM}ihapb$_9Cz#RfvGZ|Est(%J}~n zlK{R7K~lG@5Kssx1QY@a0fm42Kb=Y zH0P%uGVh#;8`IJc&G61@b2xhWQ?uN^oO{mu8}rRCsrGjdnc+dpvOU8IH>&+Fwg#df zI)8C#>5A0<7oTJshG_(i9067T|JAt3)jcZ&6aoqXg@8gpA)pXY2q**;0tx|zz*iaq z692E_zbWGX^&yS_tA7dsg@8gpA)pXY2q**;0tx|zfI>hapb+?qMqvH1+Kuz%K1@vP zKB=8NIjT*JjY>;^Dme&MS^`u_F(5~x%ox~G+<$3~Kqms*GF{hmJC^^KvHx}gRsa7L z&CcrP6aoqXg@8gpA)pXY2q**;0tx|zfI{G_2my)zSMgs+{C{BbLt6b+yr_Q)0fm4< zKp~(IPzWdl6aoqXg@8gpA)pZWvO{2fdf>YGJqND8ajenBfA{W*YpaCgkDPo+rxgB^ z-~TP2_?D+X@!p^Q#M^&#+B~xSx?|~5wmGzQxmR$%8==(yz)txZd`uF4X}d9DNX_i6Qy z@uL1I1QY@a0fm4bE*u6^6ywJ2W7S}Wk) zg=SC4)h@ptKYD6z_RQS$nb{-9=cZ?%dU|MV(;XK-1%De zy0wklo)|yyiqYYzp~s&-=({&jZ2z43vOA9x;%?h*;2FytF*Rf+Xdzx&Cai# zdF(>g<&TeK`SMEk(pBNKO%JpAq-S$Be~y09KY1ZriFmkOKD~Uq$0j_zd~qe| zw)Rt5RIIxrhi;2~pSrlCl;X7x9JaKa6gY1=6gGZ6+>56+sJ6{aZCB{PMI9bP<7{X? z$m5OW_h5!5NsE)ZT;u3++U=nYEU23oX}&vDWm7eYpYh&mU8utryJuzjT$8(d zY@&9ut{dsha)m3kh`L@!$^LdVxGCzkCHr47R9$u1%B9`5LX)3%Jh@mKncBOz_NILs zJ0e2=ERK@mn}JLDy!icPvUKBbI&g0fk=;X7_u%un^I|vk(0)%ZudJP1Niz=rZVIvz z=2tTjF; zt;x}e7w`Jkoj#>R#? zcH-{2hcJ0B=gKqFCr=bsd7DzdbtP=9nYP8u9LTR7nR@=-+WOA+J1LQpy(6nFe!8Kt zu=x|m9-NaR`Tcd53WVlc zmnjokf7U@P%p!%lo-W&y8K=v;=^;8!;|=Qmq0xmXSzN;|?j|+*N**Ovu7X(cuNj`Y z@Ah6|rO9ZeWNH3%{ZrRWj7;s{Uu)9_H~H5#ez@jRmfv{qGI_r3?>aF3Hu?HOmUOXW z=g%*8^FbZOiS!8GjV^zwc)4`Lb+u=%ikm8&9G<#=e=lC%V4#wjH-5Z!{7`vRZr8zG zIG>-=c8*LPI8b}j;f*sOX}V!IyBAh>UAie+q?frX+W+v1ZHtXVw3oo|ZSnU}B$YV7 z3gZ0!@#-f32KR5Zb2i@CscE%uxZ?4T^|{?6QyJRjV!KYZ!Nr$)kX!!5&B|qSolSe} zmd2*qth`maa7(Z2PA*2S;hO<@Y?pijXiQ3>!)uTnR?CP+T$ag zFWyvqR~L@Ac>p(lIF@eyj1BVLeK6V}+_;nofQ=tSzw54ruL?x%>zTQ8dgEvQ^uW4( zhapb$_9Cx<1%dSgwd?2i?798= zJ?*Uts!RcRAX*~9c((DMPrm7GpZXVX`_!9$?33T~_6rHg$9Z&dY3<6kD3JR9TK!|x z|5v#)MWYZ<2q**;0tx|zfI>hapb$_9CiK){l-qoEjaP=@SBRvb;zz5*wzx|s!m6Y^c`MzgwM&Q5>g+duT_pZt+ezVidqW}~e3G|lR7xRO!dPrdd1 zpLp~4O*d2Zr$6&EZ~OFnfABL;eaEMM?!BM>_v@efk)Qe0Tfgs=y)5Kssx z1QY^S4FPHEU&W0yD1=qKFGc_VDo%^i{{Mtl|3v)@_0L_k8&nro2q**;0tx|zfI>ha zpb$_9Ci@4c`0Dx!0fm4< zKp~(IPzWdl6aoqXg@8gpA)pYrdI(7Uzi+#NmDrx1*a1Zg)S~DSztOGCGrTbJeM$~W z`~Qnt{fk#`E$Ye&0fm48=NZN!!%+GE&j@4n#|i<3fI>hapb$_9Cy)5crZJaC!OvAJOU` z`I0VIeYiqEA)pXY2q**;0tx|zfI>hapb$_9Cy)5Kssx1g;1I(*N)Ha-{nIT@f_ZMHB)G0fm44_bLy5onY9`PI9$~?mhBj2ab2X+vIrX3je#PFS3U3*v?|M9WUjomg{ANj74J;Ogb>~+T;T3B5?cVQ`8$QQGvbaf$#Ru}f;#bAGigmR8k`)y{O^hFS^2U85Q~USVzGZPOikGrYm)-Qk*ECjrX7a)$J$KLS{P8o>`}beE)=iY<+r_Fo{Ql8s z>0-9!gD<&u8m&bQ7&cwv62j!{;`wZ~@Ab0tk1Q>&p6&Os%WG$|m3~Bvs|#tCM;DjY zX5fZ1bN9}j+KS*x7OiCqYm4W$F06#+;sx%n`};>vo;ZEx)GXJYo_XND%`7`J{lKYX z_s^bsc>2D%ho|qD;Tax)FXpF*rxuUaw1Ul7U$eBx<)e#h%f-(Nn=i4jyp%4;Ob)}d ztOc{jo6mW2e(%WC(WA9DngzS{AnoziZJSxK2W4YpOiwSSn;CPu4U(;hv;$JWJ3Zax z;4K%~!obtht=+bnvT>Q2E-XAfUGVVczuC%})6*L~+>fxq!~Mt_Jlv10;NgBmEgtU7 z!aRc2h3ve@m~I3~i^(^CS_8c{Cg1!%>>ADtPu;)28@p~2WDDk|AD_4L_1dUN{*_xt zrrg_W>r+k1{@Qb^3#)6(E72p_>cY|GG;9CGOgACkPE`EW%(Tes_Fu!5GjhF|1Fw1Z z$W+K@Ufc0AX946`+WwdO8lT!aGuq!>DF2}I2R7b2@aQcgQ~v(i`kwZWJcsmHS&Wui z_qp+#>0URwLAB*hH-6u`)o<9ttsbbY?`{9wWcmDBguGp8eQ@hndwYFyi)_nBx87)d z_T$$+YjkS;+QYTS`LOcX7Th*S7dF<*#TqL*mM+}iK!tCQL~F^}6Uz&y3z$wUclq;Y zS6cGre_ZR4c35+HpBu}bxpR7^wQ~8Xv3U8mx&E00>vOwDrm|zT^~K(hESz1GP4L*l z$qU&EfTXi)oo~KLcuPkfy>#78`nC)Ay3HoJ+-++q+{cldN2U_)Bdd5HbB|`{*Uq4$ z^}dZgmwOu<*R6UNtv@)h{*tMYsYkepa}{r*jZJ&s#HrlRS^+wwNes$q^<2!j48$XotuEi}I5teYEma*6)mg}z-T^}UIH{D%e{?_>-M;d$BpNVOx<-? z?TOVw#l5(itt_O`>e+ZXT1gjH&n~a5B^TFLyZ!!TV@;)<)s3n&_@<|e_qQsy4Si`f zS-y~M)|49Wh()^a^{dP0H^1A`IA8Iq(j?;p3dy) z5Kssx1QY@a0foSqGXgsY_tcJ@d`Ktxe_(uY&sh1rRrde?YfV}IU(OFttxX}I5Kssx z1QY@a0fm4mS?3wbY*|1QY@a z0fm4VIDUeEn1PKd%3N{rBo0ssDQY!}Xu9f3W@&^>^2Qxc>e1chuine{=nf z^~WdYXK#DnwfiS%ML2fyq>&_!>HDs3(Q6cG>pUz^UMvx(`(WBl*SIH zlk9wU@WGYii~Mx(zQsqQwUsD&^*u#fz$1&%>g-aqa_-F8m2CB_Zk~Q@buBx0@bn^G zAaS<^;v$Z`(3#=*ezOvALwX$E}>)}0$=<@@Wcm0M=u=CPio4l7TBL=Uap z(i1NVV=IeO%QdU5e2IQ1_b)%1-AxxD<4P|(ykT;Ft{w2$PE0qZ>0@lBy5q){EZfk- zke-l%9lDX1cV71F%DJP_%0DLLhpuPs`}R*AXfjKbx(;i^vlX#+Gse;7=PA7@W81N5 zQyKYgueGnzVXx$t2QIFie(Zd5YI%)zOF2!svIg!)mY0{Z=zL#x=u5C}UMGv+d+qHT zi;tbmv`pQ$>9*;_k*CLr;jsAB@-5p+W_J$6{QBksl6^L*WRvl!O*9V5?A7tJ}31MR_k&n~a7!6Pl46IMC9 zvax*X`IBqo_a8~nfPJe zZA+HC-CFnYEP6CMeKuRlPi2qNI_)a)h*O`OKelgQOQwW&-~>^o8)1;?PL>6F;K#Y{ z1#uJ^MxJF^7ioCU^2)217W1{%E!>mQPVMxCEK9GrOu1_k+;4MR%MRk)vm;w~ydXlR z1fCvPcBK2Ukvoa+1fkKBwcBJ0+%p@mE-zhNLmaMTiL|l0;_J63Cg<KcM2^2q!g531=EKd@g^rnq8j3V6*e1y0g+F6`zUUmD?xrI@Voh;VeJTn(y2> zIUgbfHw233rMZdlcFlkt>iZ7Iy_xGt>Zg&LM@e9(o7a5z#dGH#1L6xy(fLw#^TTo4 zYOY;{Gyb{b#d2Hn&vjGNP6Iv9ES4KY7QK>9S5HkZcO%y}~Usd(qhB{6aeyJ6V{gZlotcz*cnaTn~&e)Q!juY3`hJCtXhV`)P~2`0}$^wsag3 zlCAt>arB*|BEP5V8%LxQXMX6UdKibkz-{P3jvUEDGYnEULnv<9hfR(y<#&rmmXO*@ zO}TNUnAsTNbZl3p96t_hc3hm;0G{&_=bY$v9)zJ6C$1GlZKq?CliQ@-RaaVPhvk4d z+>+Eb@CGR=lbgZN5eH0cr=D)+fn()i=J{5dv*(Z3yUE&Vm*&i zj5L%jWDFWs7};4KXR#5we&?kZGUjF3*+pR9D$ZZNm|hKOe&>KN&h8fTTQfY%-MJ-ljR{dej=RDW&#SbfjrPfxyO@{!3GPTn~2`H5eic*n$RCSEeJ zch?to{noA@-1Yihr*<9KrS1Ia&iC$oYUe9=+B?U`|7iS!&-=&_*(hV~Es{owBozI*VA!LJ>}b20D-10NXpj)8RG z@W6Go&(waQ_Pw?9wYl0Y+FxqFF3XqH2wTh?u_}`!MV33Rt4B$Uo)YJY9U6|~#KuBF zXmAekM07vrY=w{=VET+k@XaW+EHg~P;Om4Chel|dwu7-0dWhQ4(gSicbT5sg)U(4Z z&Z1Y9grOPbk*`NaggCG)oAb}g_1sR4Bsa*raI#kxgjr&x5nO8<&^SrRL1}rh9%W=} zgkF;2&Ui&hh`C@}kseA`h?Au-dVo5RdDv~47siegd~HFPI#HZrZ$z2+F!ChBzC$J@ zf#u|m=LSKNJX{jmhLfjaSy|k5#6XDRj83hDkq`!4>X;7|go&GbqJQ{a!WC^3rgdWR z=a`Wnr)iM6=F1DhI1g_;0 zXreq}e$0Z@jy=aPqWpA8Xd97lpkb$(XjGAHFDbNvTP!XV?`;2ArUk46~9vZrlHszEw2Wg~x}AOw2u1Lus%%CNiz zM;^E>r?ioTaE5oXLC8=5M6j3poamOxQ%@PyVdO3h=toWvL?;SDKaDdZ$aO1;1S5Ge z9zc1Kl?J(IVJXM=7ld923E4hrVq;fWfoNgAhsthbXz!UH8TRp#(B~NNc+9}Y6HaqI z^let+hOTS42B4?+6@+eX=IGJ7X9l@uyoXAc`{=H6(v&gU~PxpSQ!1qdiN+ zki`DYY%?>x*vNv+KUNSr3GN=*1vWd?u{;+$!eR>rft4DT>4$;yl9JF1^MFtF(u9w8 ztc0AVn3v4v6t+T=ocwzWLK}x&05U;@TgkBiGcs`{U~?yC%!hkscuz?f11zouS9U5} z0pD4~l3_;ntA}sRGv-P{*UBt-KlDxZb&QZ;KVs`32JA45TsQIWE(lG>NMSoY$uk%? z_YE$_uR;{Zv)&=$|hJwJtkj|d@XXO;nLYhVvXk9*J%Raf1Abcud)gOF|I0sb6r zY$7vqH?e^-HS;`qQ9+pUj19aOd6=NXn=p55!gc7%JiX91Tt9hXL5QS{10;@X`toEF z^ytuuP(^bbsy-UOli$@Kv}40U0K}l~#7Ml@bTi%dy*%d_G}t09C<&u93NYT?Bm;1^ z3EX2jY}dfI zcgo^4F%u*6OTsWgkUH!p6G;(~hlhATkb0a%nd1OR>J@}h;-@K+B6GwkY9THH^aeDv z%w%(<>^aLV2_wtqLI|6To5>w~kMc0X%t<5U7kabrl!SJYh!e-fLCGVOXKk^~;~4Oh z*x(|8T@bRw5Ju4xL!JUQDXmZQP7kR`Tn z21sbKI^-+%&*2K3EVsfggx5ky|8CI)Q;SGkMl#m;om;J#b9D zB=p@Rk8(asHkZxg;oM-)awNEUntBMeJ4-^#=CP*YR)TR;^!y;Up$_9bihMf>!sK}+ zp%JIJn!r)qteIWxLT)C-VI1Qxu`Ktw1)&|dF^UEond>0K(YzVkq(^oV^B6In?eIWB zXxSlx-NE(Aq2-w90_+VF?S?bf2}97a?Q?UPt|u;21Fb$tIbAdSM*;*VUADhL zXoOj25=DVs+1KEhfk}3OcTj%bDjx~5ON6WM$9s>o;)jzZxcc! zaONQ^czPo2#s3>bUceRcDwybNR+h~)2<AFyp-C z^wBwu*@Y3e&RNT&4^Uq0$cXJMy|pBCbH3+Ur#W{W!MK5Fqy`$H&+%kON%rgpVPe4Y zr6xffgePM=iSBvq-@unyUgj+gLS!?n7{?icgaDf!24SZA$crT6v`jW7J$mhC}uz#H8+Jdk`gyWi$uzw_>UJzFB-A|T;{hj0!1z`oh z^sa)if-`t$L0G{JJ6;f0aDk4Mg#A5@qa|T~AKyqp*ydTorgRPr&JUyker=O;-eo5u zGd%|-p8bc_g0nd(#oZ3sFe!fr# z4wvvnX-Q?H#3bv-E+;J8k-g%&XpolnKcUuz+Vwqxj0hzn;jARU?;d%Q)z6`16RqYD zwzVIDx;VJ3xPm1$0rgFqtJNQv{8tlyGI3zn*_}T){^#RI#=d#9s^b5WEV4DetK$Eil3-N)znLG>ifyR) z|0TIn>ni@Q;{V1WJg@z->ef~Kp8-rN{@*$0a$Uv$uXfU^ivMp-8Ez%!lnHVw{@)`j zdR@i;H*(Ft{Nn#!)+JZ2EyJjxzTUmMwvpFzh0>uU|NpxB+j-UI+w%YasQ&T#@7Dig z{nzThT>rWHPu1UF|2O0Yd|&*;MZ!;(cY}3@<&zvt?zl(L@RZMh#dhkV$F%} z;;zMIjK4LM^g-8Hzkc@w$sUbVT3Z6|A>l*((~`7DgawCVDiK-YoHR%vdnK!sBt)vp zQD)g@D-SiZ$u3C?GQC4iaEN$JOB-tbYJKMBiTRh`c6*sW!>Wj4BoY#|ObHW7B4kJu zk~lGO8XWF9Ifb1wP`0Gcv_0X|OUtj7%7N%Sv9xCX=4CDNrm2bfxxKfSc`~v{8<#cV zxG;63rgf)qxNoHN- zlA+;vd>48~pc{$rCyAE@grs|+*7ih8<8vjMi&mB%>s_4CYk`wDfL=3qiv<$o3rHZ6 zm?R6dh?bKRAt4BAC;Zs9ZFft0XcN7bI^eYUSe#uEappO# zh0ZJM$cNQZc6+VwrU{XMjdVppPAXT3VH4}+5fh6bIgRLrNyt7ScuuBP)@yxj@~?u< z(raPUyC&x6Z`)H=1+lPzgo4ZnDa?~J6rQk@NyIuyITAqO47R%n=DROOMM6BqN(jD7 z7r1@VeCtk@*gA0y^4;7>;;rZbqSlZ{!D*sLlpTbD?WC#OrR-<(65CJSdoC_5ZU5xm zH9kQh*llHIJ{Y>h^nG#}sV6`PhU8CBr9|EbIb|fDgl-$@balj!aD%8)LqFj}Wt`xAX;y415rM3Ziv970_7+3oPXv=D$`iU{ZV3umI0N3xcoaal^}?qSj2TkEsQ_B2@# zN%4|el*4gkL6R5;^NGB(!!F0J4-suu%J4;41X#$L58#4THbr%2w2M=^Cs&IVN}l1Cn!Bmr;P z9GlMC))Cew@XGCT^z8ET>bCapO@ln#+iq)`L1a0ZMKNhwRB)ialc+~EvQK_d9*~Gc zRd46BVoTBY-Psx?g3mxDy?Fq^vTuJ`@P(W+4H8jYQi4dllEfDlX1Fo=mKN!`4oY&o zMW@;#SXzv?;r8uS_}c5S-dYpQq)|G@(hLqzsw(w7rN|uZ&cyVM>Coqst4dN_?D~yk z48!`&6GwQ>o{&WT`-_5rhaP_|-=BE=>v(e>hU{yJ^lFgyuNH*$_4WEh}To= zFX8op_2={Y%JrLgeNgHIQZd>O-p9+L6dv5MTjKvWYQLe?PfWgZ;!_jmu9clXy>sXI zy<^`r`ir9zBQG0%*N*?O4 z=tncd_29*1CG2~C$)7?}AuYB$gSMEUA${&%e(m{wvaz#^yv-`^Ot5agXc9HCRm*B- z{S$RNFMX??$m07*rOr$0zvdUcP}Xd2)NPv;a)zs|xh#h&inlA-&)dBN^DY>sdFTtn zR7hs-d2*4#I*y7QWwDnQ!_!LMFRiw^vZ-SoTdF8jg5 zlk?GSev4U>{#o9gm))`@TMAa&EgX%O7ULEAK@>XJ+bZ?TDt7ga3P3aI zpQhio)}{k&6O*iL^d%5aNt4?z(RH`W8jdd&mko!6NR|o(1D#o8i?Z1|m3nz3w!3W8 zqou;Wy&IMDX57DgVe_*4Yf@Lb;PS95b-8-$)UQxUv3bo+&ABNMTNoDyQ6=?syNJ&@ zlejrrO*qV`e|bme)o*qpY-aZAzVhwf$E*#*-*%wwDfF*C>3kns7{2XB?p`~4ReM7{ z&yv0o`&!&zp)h9iJv2p4i-Y9&DO=}UX}H+N@BWvw5{mzTeC_Es=heDx_av zpbBhSc>ijl&I|9P3S9N&+s_wy(<-Ky!mNHZOr4j1sk}MbH!`!`{plQ(RX1FLav)VG zsH(c^S?SGIT1L%-bgNr%yUW&fIr`hIz6#}Cy^sEC!G`Uw_xX2X6E%HI0<+V<%B(ZY zr5)EM{jQD`C-(ntg8B7@$q!FHZ{m%+KD+A#b^RmbuO9pTvBRTpqiTO)_*aH+*>Pd$ zqeJH4_qWCWuYw;y#s5|OU&a5Wzh%>>xUS;=%`@c^YniC8BP zRs4UW)o3qkyBCBi{@){Ku@`VE{=bSZMaBQyn?`SOF10DgD*mtH|Ltm1r_)Tu|BH6F zD*pdZBL2U%QT`UUXv@uo&!}JErN=p2#{b`|)sIeo$HYe__Uw9i=ex$gFn)aOdq@9Z z^v;np!*AX32Rm*biU!{?@bQ6}+ShCE?PT_^-!(5?4_o0qD@n;9j9uNN9UAE?B%aeP zg=S=4Y|@gB_G`|TT)3v|v`wgA8p>M_pC>WrHfKNGoccBA>E&N(IcnQn{dZ>P__VIBGwuaUM~(GBjaZv(c?_to8kyE@^Gb$41= zsdWYz^jGcI3U2d~d$7_~6#mv;S@+cS8zUEJcH6HrUFCI`6$J;Iqb)9RtZtX@_upD1 z6>S92jS5}zIz;PQO4&yG?UfFmKlj(Ma3p=lRv%1@A>LViYY9{4c&ysAYRz3*refu_4 z+3Bf@zn|qTnMe@u!K} z+xDMySEgQ#rqmH- zVh*Ewq>zXgH>60$bwZ@3qgrxf+97G=L%Iy5v*{+6IzEtXvlJ?o*1Z)?3ix$>JT zyXZbo^LH8{NHYm~y(3o)=9T2kt7Py24dU%B!ext^)ed*1)&kpQn!}{a&+gMV?0hE4 zQp_iFZ!?+oBO^B>lNKTjRbnJ0?=T&&Gt+EVaSLVTa!Nq9h5Jzw=Qp}LNUkEo!|3Hf zul!V6i%5%OQt732eq?2-jdV2n);xFeQdD;GUhZA2zxauV#YNgGo6B=Xhf-Li+cJHC znqDS7P<+n=!02c4jn8z2&JUm^bVSsbx6#H&S8q0#^Tb1PNVPI^^IUWp#^<>VbdetT zG6{mg5GMWSnN%3d=+@5naOok1!rt^QHYH{UdB3ee%GMJv7wf2%2TfBay35OI4QV$| zc_vecD80=+*JUmaqYdIMwccB{ZA-{sy)@{u#%obS8S_Wzo{bR`aPV$0%n+N;cX)AZK!>bs)wW(iM92$zYTfEWKBDp|YeX4+@X>G$zZft}zC z;NKSD_dfA}gce&Te@>%*hPkkN_%GV7P2VsCbw`NG&H=9SeF8*RCmHL#Ke|ko4~Y9%j=sW5y1c%;>TMwLP{}?kG^05!@B6>;|ET{;G|;yAKkA)-{BpH zDLOnE7K*uz4(}&HlrmbJi5%tpKb{~%(dl`|=xzwv=(MxpEbt@7rA4rs@0auc7_8>` zxJW`*#sqnEiez*S^E;Rx$Cy%?C=`|R|4^P7VuZL$i;;N@U=Oi3nG#CR63bvxl^>V$ z|1xGYik8B9crx%beKIeZU<%eywj>J!CX#>z1B__w1?x{|Hn)tKV!RuJ}krt7N#hH6kSwsk1*|>x#LDT|Bnf9F|ERwD#ZrGgkgF%bED{r zgrY~AJsECW&i`XN3k_Eo*P9`=vG3W15kE4Qjqp=ri2FRPcKXErm* zLz%w_e>01ZtSQDR74!dC2RotIfMU($jJBd#3=_+kZ3k+ocS%&t|Dy>M2ap{~n>L=c zEwdisc@87XWP+QpidoG6vuxi8X&3<)h!W%bn0TyOx6O#WtXTSQmh=B;(P_fFXp_|1 zOLr9%2n)xh?OASwh>a~bE9U=Md}PYu5_E74!cX-;@^v zQJGB28hs=MvuhZH#e7OSL75C3b&L6b7M)$fgh@LLloWW_SIo5Y==0(*1TxC8CW2!A zAM0VNBm7_njEuu*LThJoH%|szl_{vGnSL?vc1rWpI5H3EgcoJ@a zd23!d{}1~Sh1%AU@SF;W5X2t4Feh!umyv<&vU2`k?&mxKrXI23&A%J%-XV`WhTFq$%!fZapzv zCn2DK+pL`bmqj51xeyI(75I@+Yy6?Zv14&Jv^Vsa`dVJmX9^)$TljdyjRNE5IN%b4 z<}yfa`k663PCi;jiD$@SW*zcmWR@Fa{kSd00$QOfSeWJfztoCy1Rq0lWrU=3rwZ6Z z9F0koGyRVNwqZH{kAX>yEn|7i#sePu^hG9pZ5bTPlwCS*G90^{|Ch)i#wpF?V$X0$ zGt~_0B;`qFG^$PFsGR?ofC63Wc-BlNL}VjzLjyKP=Hwn)F1d!~{J&U)7t`uIm$7zq zL}Q|0AjgLdE(SwOg;$EZMqXiVuw79MkY?z~w2VYF<0MNEE0}*?IsXrlU`DhK&2S;W zJv92|oB{A8Vk64Q2n3z4`z=|>fzB`}K7_saQyG91w*8oSzLnEyvQFfqFD^-q?0vkWVoN4T=aUR z4==+pBZe*;#r!{$Ub8Nv{x~$*VQeY3D}xSYhqKX1h4l=tnEz)o)i&@Eq$0gUnj!3E zG^Mh>(&tzzmZ_ouWapi~QkC3XA!F(jhBI*!y&VW{t$I z85BroN;Dpt8oH^$fmF=@tI}n=nEzL$@pUo(uS)ajV*X#1X3#gucCFHwxt#x3p+Ryv z|F1&h;&T39h2FvC{J#ple9QTN6&mR_=Ku9?WLwVvtI$`roc~v$!D~7HuR_Dsa{gb1 zwx^BxfBoB!mh=BAGzKl_|5fPHSQ%C`F}R^-NOj?twfJxjw$Dg$tj${a2ca?ZNHfRXBYGTVk|yJ z`q491#6yaTC)OvrD5Ft1mQ5sgG5^mLYUBXURDw8&Hbe-=Ew&LIqiG|IzmF-Eu^$!l z|BA!4k|j0HU7jBJfL8xl{eAVP>#wRi^_`P{Jo(d;Z<%~#@`aN(PJDjimnYsa@tTR3 zOzhqDgj!tee%Gm82X<*YKT4l~r*^(_r@eE0{Ex;zIR2gE`S@MqH;jF5?3c#g zK6YX3-mzOp|9bQ{N8dI24Wkc^-a#jU-y3<)$deO^e z;PAk8wa?Ukq4vGC^R>C!E!tmdzm6xF?1I|o8MTd%A1e#ZierHRiYTy5TSaS5Y^Jy4 zwKGcl-*7XA6Z@z#asR0@~P6l!wCxe-y-`VW*V)G@ zo6I6dvfS-d7@~MEj~>P?yl_}G6aZx=_5%~-{nGx&*g&}f z8F6ztmWK`EqNYWlL6qHO*n(5q|6=-KJFx9Us4`UmgF>b_6TM;bMwsP+U)ui!Y&bn= z_=?8I6#)}1A9EB-(Tw?UVpOI5Z=C`brTt%_v0!QcS7_(wmsV!~270CaU!iMV zY5!Mf5Lep&jFV3=IuWsA9htZcP&+Y^Vh4G~=y@j!O8dV;o3qmXuh3zvwEu(t9lc8X zze4Y<(*Cc|uBx>ED>R5I?f(j$nM(V=LWyB%|5vEzEA9UZ1$3qTU!h>FwEruVhL!ez zh2pEy{;yEsRNDWDg?Y&1h!^%h>PkR(h4acN!m}hfG4ncww z8rBn_F=GO1=p~WwmiB*yWkt*j^-g?dICt^Ks2xuvh zCBA6RYx35J@Wno{th}`UL(-ID)Dn-_6siJh2znbhlKg;6(I?_)Htc^}=CPm$qH%H- zGU)-2YtG05Oapq!XIU1O_J0uPo+!h(o6vhi?9*jF!mPw`g6BL44X?ESaq<$$5_`08 z0CLU}!tg{Fafnn{=;L;2|C4JS5Oyaxh>nM%iND^D@MZ=+5W1nA#Yt)ZV*%$f1C8%nN`~VL;#76;8+$D z#F5bvWC4V_L83QNGa^!UUfTa8kKibjSUV;NR}>wWyT%j?17b~pW|#IqdJDD!AuvKp z0L}}M0(`&t%80=wIQF83{mNBq%Dc9euh==nH1eMVuyxHw6f9zxuSFou_kCp@-?3PKBJm1IY> zaW(+_!Ck`?VPs?N6SoRof3PIP#0X*OG_}#13m>kJrxqQS+)k8NFdEoDI6r1EP9Vjo zV>*bWBa(l}BSe$4FfGE=lth+veAk28DebSc`bX>Utv^+NW!eJV6Q7;3HZm2JQuCqw_#14pa2;9 zL?6)52_=!_nr3kxS(dB4UtB2;ql{4IVS&Qx!Ca6Kg)k9T5+MpK`CIx z*x2%IK};KYTr>(TH>6* zl#+3D}(Ivp5eS1Oav90lZBlje}R(Pa|6B4#0Pbwj!7x|-oTS1AG zp$-CTK|;}}K@!lxMzb8;ZZJ4LdPn=#f|5{*#OHKB5fMqM9trWRBP0luAvF+}uJ)#q z64@qOmfqmp5$<>758}W^r^F9N3@lBwH5Kr$DE1`rK;)sJJy}wkqzh0!g1rq&gwkcUWT10|u**E$ z_pYZsQBYcG#ym&fB0$Ecb8l=O9RW%3Z4I>B(w>N$WenN!Zem>Iu?|O zcBUIrBbJ8#8w$dVzvBQTK8>*8&>~!lv}Y4x5lXMyG*7>=B!pS%U;&>Iy@ETqwt?(S zIq*1hBOa#v`hpNnNn?p?;(tR1vPFtSV?x9+VN~K6vHJ}LVS*ME!C)+=;36=`y2oh( zlM=dS0BG`9Nk|$6;u0As`5HupIPYC{GXVt(gVhK&PZ|!^J=h5c$)qUC zkjR%HZzH)_5K4S8m6(~NIACo_poVM1yqrb!N8xB(D+uvJV2h=aSRqHP9E=hGm&l?S z;eB+|bhRWzYP*CzQMQ0byc>Lyu55OO+)F-d@MUt|*2 zPAPVIO-V@bTU>_(w%CkFKB7g0?_<&@QbWcjCdq|@5FetQNX(LyAodLpg`Fy;C``&^ z1{IthE|-Kpv1&d#A+?9Q=JS~c$@WHZ#6QaInC|(45C`5ZSLWoll z&x&t`=L$ksIA2`vnLKM(;;J^8JTSNu!J;;4^-Cq8&pb?W8cbXKcVtPS_3>Rsx~cS? zL32o6T@sQaL1Gt|kYfVr$ks--;iVzP+9D+>@V~x6NbefX2I`&oXp)=|lJE#fJ0wz} z;>Gr2LFf>-4mlM#`4K=i9w72Pz$j(7ql>XP;wM`9t2>0Hg%Ml_(#){kTG!)l95Dc_6#_4ANb}>1YeFwAz)!A zB_ZPg6a^g|c!0<)w2TMw<2+B*~Sad~)R3J&=2@%gBdL3zK z#09i>6_j>pW(Iqk6chjrIBQVdk=7BXTZnQ-vWxZuC8a~$U%am(q|s4vjx%}>M)A=! zdEo42?Ozp?Skky@iRmybP!##%JLY;Li|mx#1dcfE`wL1Wp&*5#i+Ta>pcJyl8Ena% zL_{kBPy4=-lAYqAZpJc>5KRD9wj?J6Cnu|9tJ$XZPNBp<=^?UZgYl?2z7Xp?O!*s^ z1jc|nv$g-Lq%sYF@$Of)ok?qu~Kzxa-P2RBJGbmu^OM@i}74#!=K$sn7YER$IN z&|vqFfk{?Zo@j4xQo`V<50Y$-l7-yJ(634Ch(b;)#vWSQ+e%6UlZ|2#veN*7xDI;_ z7dXZzI0Oj#(AB=TphSU&*Ezru2CP%g9gZ6!21r!I6PkXaeNTf@JkNxAPyl$E=mTO3 z>D-Hp4#n=Y1MRy@N-xbgVbK#2?ZhqEZY~%08MO-2ldqjc+FJ`s89T@>M2=&@!JneE zqQariJD6%_1Wwv_m6S25)ZB*+aI)d0qJc+dv4Lp7CH{X)`{xZxlIytHKr~yjA9-4c z7afC@WG9Y`%!{@Ev!q0g_EB>p>?PJI79j&`C7BTm5Gm}Nw)PgnaKB7CDpoYl2&08h zmp>*|1--?O<$IU21`yXKL>)D3J|ZM3TjL;)OXMk(Gpq zNy(`Laa0oRJtZY6Uns6*p2)mRGEdQd@jh6-%Un;gvg|b1-d$4CqK2o4Cq$CI>2k)+ zpnIbhl12&{UJmWw6qG@V1eJ_L(mJ7pJ(2UAL{5gFCu4(@C+%OCln5b?U~X2nVSsA{ z&Bfz1BfFK7gB*ypA1f$*W}xAtAnDQPY?g2ksvpxw$sR64Y7XxeGI8>PIn^7zCt>3TPK$0AgZ=1EUL$< z4R`9%7IA&wOPL4T?7zdRD&#&l@91=rozD(7YnJ*H7WQk!({qi-WIXrY=EzWv!oF$O z{npsAesd|yE}U6Bmvt*4?6t<*Um|PVnE6YHy>G_%cGg&_+Nak#_uebBi5o4)c-|Ef z&Nr`fOEF^`Kc22$^4)8Nx8Ad9lBiW7(|z*_H*sWZKy0hXn~n1fI*G2|GRHXVW-jLyui&JFIokE{mVjo;kWZ{8HU}cSC!@U&+G3XXRg$0o^_N#&aGLxSXOC-FT!J3cn#(DikbqUfk@;IUZWuUSPF-22A!^*K=lN`t{+m#{`eCLVZN% zbu~e2@qVk%PPGn4y_PxiVp(RRIFMylsLrUm%**Qx&})&;dXY@(ZgkR>MfR@@>Ac9z z<*jXPbf3XM=b0CBYV4aT8!NE53e_l`7uPy{H%_+JGe3PcTcU7gX*FxKv^cW7yp%=f z+Zwg>La=_<1g$k2MYk-nLM6=RMK;@PwC#`nwYI%hbmI%yxBK>O><=6Y{Yq{&uc&!M zl>4@Y6r1>Hc782ed8nxaT+%bJ*Shu|7WJ@gUHvP3ItDpx zd2uZiWto>W3#r!Bs@FdF&t^cQ4l73$V{FRkqfv!$Q8<#w$jTlv{dAxL&d-+H;u3*5YwX{EA#&~COx zq1v#5$k*&!n%8+vmnc-v)bJUfw6q7cPix~x#%~_`)3Fbay@SmCd&X`V{fp6G9ewBI z=)`}U_{oWHo%m-H-o&n5f4u91yWYGj-F0a6rK8g$Ul{q#ksla&-N=cN=M4YN@JEJ! zc=#KKPYvI(Yv+3KQSzP zYa~|VTqFU>_YErH@u+>ipd=-PG!926&xJq$^#Bt0CX#PU@vBV%nHOlED=G0eMg;3D zyn*=hq!3FYD+H*?5yGQ}r&s%IgOcDiu}wUec!~i>-a8pu{Iv z!sMQmby6P*F2451B_-Kf`0dHyzG<0KO{X7%poC4 zVv;#fkfm+sKDC0Wsr^AoNwT&B8>QSD&xl9}Rf_ee!rw7I1qyp zaUkv;egRoRL3ox4R~kgd{80ONNokP+LFhdtl))Y0qmB$BnB=~Z$Urv-+}_%MEht$T zzGJf2VlrmnCCRqH?@f`rNw6mOsh-jPpOVs$+z!bKp*Wg)20{Xv^e!N+LyDTIvoW-f z6_hNRd;v0#L&;#rX-uXG`$!5O2viatiEZtp1*L@3;AOUhP;wz*cWJK^6Rn_8P@Xy3 z?+GPQDwB#{3Ym$&!b=%fr=URRfxCoBiKU03_PYfoi7>=@fF+cuqeCf2!~t zjR=Dh)r++MTu@SRZPI0dLJC6CQ~|(CndE^bv~HBX8KhEZ|EZv)l7-@1l6nY!5b7nK zL>P<+E^I>GsY#sD(LPdAhKb9Kg1n?=I3&=(KvF7CmJYlWdugcs$C8pfN`|ipimcO< z?=oH}MRUQF7=e{(zg6ivQL80O?bl06o8oq2mt<#2z?Vc5s+!?`(hLcsN`NWUeyyM+w~Hr6 z3PL2i!ys)drq2qYH`vC2G9;Awt0iSBIhSx9(hZc@mW2NaWnwu|q8&?~rS^Z9l*ly1 zK4s4G=@O2jT9<4QnzGSR0h!1h{fC0mCoqp*MEZ|NT9T1Sl9lplHY|1IHj(yB`<0TC z3Tw&LNsGJ>!hI5$rm~+JFiN!~ppk z%Oz!supq`t`3(ErXBShrVzN7OqJ%_FDe=;NsidSmr^#m$p%tE&h?xY?$aEk^lvC2| z=Grfol+u+8{>lR9nmwcNkBKFITfEkah>mKUldBBO?2KRPZ#0D3mF~+ws;0o z-o!yea~q;?KT%Rv&Hhsn$S+j{5=DmKErDw5k z`|E;|-eTn3&~OG($;pMlqeKmLfbb{jRPZO9{8uGqL{=NC^GFTmnj|RF(2G1Bl94D* zBApUV;4g)eWS5wh29n1tS&9iESn}#bUqT&8$SI^-i}n`g zoT#fIw98SM+1j6%lyvfO5gIfJfRacxA54Y|tpJGiN?(k~*ZzA+X<)b^Y3W+P-Yojm zl8J(#AdQYZYg!rk+MgAaXaH2QNhUmrQDmp0tVkfA=1LivLWxvNYJXZ%(rk&tRC+aW zb|4KTdB7m`n=BfVLk%-Dwf|ozJ+dHj$yMNO_NEk!k;lf>Ntw)DQlU*d)PBC8B)yYF zf21Nu1@9y035{n+1}Q2)y8|cf=Ss>lQ$SJ|h|iOi%QZP0Qex#CV<9<~pU0ug2dAP1kvuBe8hvl55=8k#fEkwdp@NbO zCFo;~O0 z2Za(15)G5=AM(D1L(nd035P<+sZF{d+=Hb3se&@4V^G2~5|xj$gY++2;mCPJRu09G z8TyR&fr1j%OLA3#MVeaC;1sDyZWoBVtG$rLMM}Mmgl$6vL04SLe z(tef`n-n%uk=RDkK?Bj?__bO|8PWp-?So!G@F#hk9Ik*y_7nY%I2G8fHLakeP=UT_ zBo)FpToYTSXb!_kNUt**eNxV>{X;=19iK@5gM%EjAhM{~o9MJAkBH7=l40X$e_vA4 zBup~4d7HgSiVNbS=ztcAsG&aB^0og}QWDjXEN?O}*qi7JlJ!9wB9}xK`azKc6={E0 zQc5l(`o2Z0AI^93fXH_v38%;srQK8*7~0Ksn(REe-KS|cB66G!G|Eok?i~9d6QO~0OU-kbJhmB;{s{Vhf|DWprr~3b?{(tly zwK!>{?~aM{1Jf86JRuJXVQH#HtpP1_(&Q#Nxm5o@vElHSO1(Pu|Fo*2jEqWnr>y^1 z{r_+PQ7DH$n$Vgw3#V1Gl*^R$|J&*RCr&av6#-R##LVzJ(WaOt%gy?KdVk|ydwqm9>($x66sQv3y8qyC>jm$dXV@Wn~gND5G;fLq#+(We5pc;2Z0r$SqLMo?*7 zII4));7XyK8wUsV%arNmW&J<3CPnmAx>Dd|$5lb~AXCg}6;8O2uwZO9>i>x=(FTG- zUfh>-0Fn|pnK_3Wl4uRx0sP>fe*J&kR{u|F7(L*et z351=L_5ZkaXiA5(B_yhZr%fW~wBN>yLl+M^&PkW@vi{%24^2q8XavW;E=uS!=^;x! zAJvEi^%jybXhiu!-}k@jKun5g#?k01@m@a)ozfFiVrNm~?zM~(V_9D&5)rLQf1 ztD-cGhIX{hCkKKa6e(zAjrxD8=jkpTPj7L(y0H>EQ*y0*iskCr%U*fay}ve(B+i7Q_mhY>iiS>gnyTA4laIZP8urdrTt^0 z{y(8Y(w0UKMKqqs03~ufGK<Vyx|4*=xs2TopG6L`}OT9H{gFLM%@$ysH zY!~(aIMFG~%P@F3AT;OE7Qs)7`hPMMIH3tP5Lm#wD#LL|r@$$k z;9Hc=fs7z3>i?x_Hk*jVn^Yjx37f{! z5{3K?`i;|hGB=9)f10?Hkib4jrNIvI5ZUs$PI2n~Z}#p4+Oqp94}6`Pr&q!_#+XTn zLY6K0Np~Jpno6U~mMzw&gTCEOBJcR#`=k*`}g)_xDuknXw?vxvpTc+e=Q4b8I5SmGoq>{ zyNC~Zw->#6UE}fSW08sIL}_8eazk$2>tO?-C4`2er*C}JOkH=B&HodZU>0aT)z!XC zP%lt@bXAZ@4F8$JY&5g^|5hEijI_cL#6X_swA(uvH9jNG2=Vn{ZII3X>zz?7_fkl6 z`-Emzy+U6UMS@zA;NxV-=Kl@-k$J~s8HV_wAx%dF6`7#lz==ugG)L`h{-0zS-H8YQ zG~ogy*8KN@sg3CP;_;YQZe{cTek;AiXs!$cO@=i`+e(Yw9EE4=l{o?5z^4) zi4k7&|9&F%MI*X|D+sGM?Xi6RpZqB{QS`pUV>M`2^d1NknMUt2gpe|&`TW0zeHac< zW(uMW?NLW9MUv21;b=;vyF1M1|4Fq9q$X^cl~}lVOGZIsFxWC9!p*w1o6rB_%rr?R zXqm<2xF%9`j5Mv#fvjQ)No$bL|NB-LL*|vu6vw`X^qWJD|4KX*=sy^Y^ZEY}>x+Jo zCTIizf!%a=XhhTmR_i?GwX*?C-W3`%skQ>4f))onk;0$rYN2Z{j)_Xt^7((AEpxWP zIEy_aPzNnX%0kNA{5B;GXHE7K)4o<$WE5ywezj3jr>GXBwo8pj6gP`{KL3x@g>ogN zgc6bn91S@AO&_%F?sQ^|DCa-1X^DzB6v-`IS&3b!e?iZY&@PUP!z7KS1s57^7*rWz zaSd47TV05#*c}T6#45ZSI`tfU&2k){roeZ>ew3|66|UTwjno zglDJl zAN6!u{9;>O0fm3o(0;Gi^Z9?3nj)X%bZZa5T6nm5wcQh4a_2u*bMAJxGh#Xu*$pZ|AbqA1=O-3Z?u zdrxlZzsj#d{2=tzM)~|dn+!27^oBKD_5k%hr@6GC z!w72U^Z!meAI2UCma0W*jbmDoG0?2#zcofvYUT6)WY}mE1_NM%$dtLA(E7yz5mB_f zDWqcwW%K`;Jxgdb#XA!?5b12JNHpvP zzV+C%`Tq_b3IsNvkei9T#fk{!XN_OY)(JK*tFV0jzY}v-nJAF1c^u)PErX5_V$g~O zIzTwc+5EqImPW_<&<{pMBuyTWI5qxN=$X(8Yv=R-Xq3K`h!u`Ewv5D99ufkD{4Eqc z6cKy*{J$&rARwPb?8Q$=xlB&xn0kBp=MK48NzK&qe+(micis zuY%+cvLfw6KBSdApI;eyqkI=)E9&*I)X+p_5by(fF7yb--Q>A*KYr+&3=TMu5P(R; zORQ>6FWxNhshxUqA-}TC zgHe`-v61w%E8V^v zMgmiuPTdbUHqE>55FChBr ziBYH3yOt3aBKB8Uo_HTJ`=pay85~_2?NTtiCu?fL&M4?e-oP7Hj}_9+u7t56X_3qc z00IAB3O1GnDp zr;nm&eHy8W_Z3MvkB3PZC5~%JBm38nl2s)2>`GF? zA);qO1R7%!z?vUeRTDT|dqPr>zHCyT3N~mC4kH^wBXuC1=Ky`$ zr4g91yw^LhmLmO>A%=sWd^Po=O${Y?=T|m_EgKj@VsD~|N7+0CXw(}uVoDIJe)9J0 zN`%%?2tdhZy!n8!GghC>NhxJN)bRt~mR$)dRnKYwWrk$6h;`zDKM07G7=>_Ya#wz( zM6n~YlIMzw!RqhDo3|1t0b>yTZ688P4>BK3eOM5U51%C0o!r6BZCd}%90y4s7gBW$l7rxrysO};R@ z5~5bq(-2y%HEd+N7_t-~9=j5!m#QTBg6zr;3S^jx(%bcojEl*wW#PDusb}`Eu25CF(Ff8~i}#NoW_S0Gvfqb1a7@_E^nKyR?1hvALm8+mN%eT3AkPfJb#SZ^n9 z$*y#iu`+2od^4BADC1&_gtuKAAfXPPB%hmIsd#`4i?0lDtfjz|YVvVBQ|_JiCb`h$ z&DoVkB5eM6)d5qDgm8;kwBZMZ_^djqb&}7?uM7z|Uz;UaP>f)C2@oZD zQ+8!dU8M9ikrQ9jyNNs_V9rp`qhYKGko>l|GQ3@&{J~d`x*{qx=R1+oSlL7}JyS1v zV}7M4vJ0s@+IA?b5y66#uG*;UX{opVTrGKL zb|pMa*(MB9i}OjHOhmmMxGc4T>Po_|nLL$U*$4r6vCixB?6IRLqyaIJ+zp@!S=Q2% z*_ABsoCRWxiJ@3a5y9jc;XJP&5T#8!c_P13cTNE=42JsJ(9x~l^vPg@fE-rD<3{p$ zTxk=#QyZLnrKRT=N&*53r~9ptRi!y$AIq);1uE!*Eg#WFJJEg0Z9odje6ny3isaG! zN_!#FNU4k!5-Rn|Lxm`nbdsH_)XpTim|uyGFPaV1miwxw&`suMAJB)gJ| z9n)who9jK1SH=C5duqMQ@3I5tnDmo}^D8x$$nx49&H>;7el=u_xTTN=UST#dOdg6W z-T266wHX5>l`A^AjO#d>jjZbtNp0H6ZP}HO=$=s_2%z{X0Q>EHW9@utB{am0MlU&+ zU5TYlo>NnVp_aGgT$E9R0KyN=)R*+Mn`~@f2@H+ytP0nD4P8_C)H z%C1j~SD^3ZjAI+^w`)Lvf~;EzxTH2YlU*rRQ@ur~jsv9C^B+D1NYgL_olUQ*JxNaI zSHct+9fE=a-jBT}OOWE~4jJ^7jCA_Rsr<@rOx?*?!d%HABrb6k4?m=I0?5;186_vP zD6mI60nQ z>Ei&)2t_9rr!7V(%q|Aph+t6NcI2aqBwf*Aa_PVH`F}YrkQSq2wO+!GhC{w; zVR1d-$z;0hBmg+)L}Xr4Y7JX@t=seens^;@{}LB9pi@f9*Vi=HPKwFQHuY=Mp8q`i znT}2HxIrcn&k3!s!2LpICaF?sGwL=k^c(q=^%@6)*mxm29fPyFDmp)g7NgUne(B}& z|4MO%S9EIS`l4zSwWCn)Wv>v}%_ABxAYRUwVXp%?^dhHDQrR|zC=l}@E+ z`TW1h=pMOp`Iv*&`^-EPoNU3uq2p{I#(n-;_S?fBzNQ)xTzw-VA0AuPZn!y8CbO+1 zZvR<+rOaMt=NyU5jCG$})7Oky#6Zo3=1xBUFNe`2!_$EZ`$kcO8O$?Z9c%|ROH+?0 zpZ^C+o8)z6lW(K5N8ZO{QnC^@<@(<6k8wW#Pa9d0?HG3``0W-1_}&2{`z4A$j2|=1 z=l@M%gFe*2PKb#9idGu#0Y*sS83=|W&i4HOL?IDpB)!-PvzPFete_u zAXZDrrc1*7_85N$ajREjbwr}Asr0McS2|xq8i2ZVoX|iQQ==3j%-vD?Zc60y`Twrn zEgKAL3F$5;N}29No)VdvLz0ku+RW$wyV_D@IaC%zq5aI@oB;pHf3RT)Dw*$)&;NJ% zJRrSz*ziFzXc)T#3c{}lE~l3PAUAjy9v6#eAYgZx&;Pqp z`eTyNE{<9VexFrZX1Y`n#8g3m`TReCQW>QRWf0_NT8?&{)$hbtjDegaDf#@r7e;*} zlFNp#9b>0~WCfNahCwtC;)ePBzg_|{4284~k`JYW;Ud)rm3OUO!-Qmi^Z9?JE*eG% zkZfQD~_f<~j^=dx#)qO)r< zSew~tX$V4I0-#fYwfzJoT_d0W2SbT+(G~Wh-KR_z^T3)0W7!#ik=h`i|L;oJkU~X{ zaJ`3j1W!X97_lq7)2IYkR>?oiA51R;Bsrwv8#i&U2L;z&HNN^uGhgW<)|G#(kpBm)1I*=qs z#N-3+Kt{twY_K;oT1%MW(y);)4e{7CM;!y>?fHLh#>ipf0nkyb%LqVv1{0hbCqDZK zibel6R&tMm$2fF|9N2Lp1b<5K#cY!ULt70$H@4^h34+9EI>0ng(QLm1Em172tD2>U z_OLzw&$J84K@P^?)wWa6gBSqr4)L*hWQk!npZ^zosIiE3CiX>!;J-Kx{Y)kue2i+(9aeV?&iZ2n7@NfU*M& zwC(wSgiUlZM?W<+Hwy%S9Y|oDDBxjqaC7zf{J*4^uD=$A){9fd3X!|`ui6g$l;ksJ zw*Nx*+XpBO;dc#iixpz6$aT;MCqMy0MBzfXJ^#;-*PFx+a`1Ye(IID2#3~LUt0%kh z7W4Uk-AOiqAq@a)iJu8g#2u5k_J|0{4zbDd`G2BLSS$c3?U{()acn3WECbRlnox$* zC;9w;tSX0Az_mdyL4?rm4{(Rr6d?rKIgK=*|M$qw8J`Dg<^X}V<@u5qN3N`n4O(mE z^Zx)E*d{PT=hB-Gd=w4OTS82MwuLoUE1&-dwd?dmnUkqG4B-$`25kw)0lZ8*v!CYk z|ENqBySD^Y@s`5K3xIAd!PYxAXvZ_<^Z$NzaAKSY@kw)BGB&7lP@8VRPjB4I=l?@J z%1pe|QjQW=dh;kxadi96ATPayeEvT)vO|f%GKxGz!_J?PiOOf?KXGvONBR6eST33i zSjl0*hlh$<6HO+q1<(=bzB_1d&;L(EsXhi6l<9Z_ocT9wU(z zRJ^D+MG2HrFD;xA!(j#lx7 z$d5zX`wY?&2oy&U<656-d;VWi?EO%DlbYC@-jYh$Ex=;~O4Bi}oBu!k=%FVL|J0$? z>UwJ#04uZt_ox4V_@`DY4zA_}xcNQ*U-C=TiWD5)m}O?&sJ@&%iW5p2sFJ9jvcx1K znL!yHQgGx^3i_9C;RuDXla?u3j^GPUiOLK4wvp-5T+JF9M2Ey0~da zrr1foH@{MwJkWLxeA%8(ZS+??kr>vi^?>!wQIe6&MovC~Rwou2Kk8LrhEt6ki&hpz zjz+CHOujq&ne=(2x`CBOl^UK&jm-;rIZm_Rl6s^c5_nyRK~HS7J+ zNr8MwJ(5pmS0emt3|W<#{tB!YlH~!t_Hc&MrAq6`f16)f!y~hT$kX|nkad4X($7j3 zJcKzw<0$#|>`EeuboRvGVVo#BM(`HAi9^)0Wu$jO)(pWuB_J+|D9m(ELr%2$=ItweTHi3!7?l#+9d)qUc;t5d zc3-fYd{cfU#J-m4>H!5E^fJhR>0@xlgar}6dL#M9{7M=~2*tK-RP}LKpi5GBbDo9Q zoROkI^4qg3)viu>zdedD(;h*@l+J3Gik6z?i1^7j+>tUFz6$7qF|i_aZqe(=*$qL8yKNtzLyD}8AdO^wvup%3hFoa|8>1+~k zlG9o9Uzc4OI;)`^sxR)hhprwWE}xA3rNIYSq^S7u>`KX#fs;7uB0r$6B!{z-rDPob zK#Bl{0>4`&65hn?TDA!@# z8;!Q)dUj=Gf7n!Ew{fxn7O$V0&D5APgldsLMj8$hl5TUg~3>W&Dk#xz?BnqZ# zMcP;LE6rpD707gi?;dc0@g{Mn1D@%F0`=dLYuS|owulw3rSU#vM?rzDPkEL;5JI-T z`qlhO5Yb3KyVFpzSWCWp&?|Hf^&t@^@FJ3z^DE(R-gPJ*`Px>Cx8!GrZWoGlutd`2 zN_M3WV#NT?5JN;8j}1z&w7hW~GJv!g^3nXtuH71lTm)H1v4EJlr8#9Z1aX+saq>0! zl~`v0R$@rm$>qDE()$KD`D#W^bc0%QIlB^%&IE$5ZN*ui7O68%h2z)_I*J0Xp1hP@ zDeV^fb+-8xcp@)AB_`w;n}Ql$!XL@>4~*D%2ZiKIW|Pjk4-aZmuaU6Gnyfmdu_-#v;#-vj$9tRxnI{CVo3v zJst5VgKCjI$NLnaEN5Tc4T#-(p;>iDk*B9b~+@pU$p~y%O$=dI{FN*K5sZgEL~jU#6ASO@1oB zQW=MOkO zaivy*Oc+U!RIhJ@g%sQ|=Vq`bqEsFXYe|}2xzF6&{AWrl1WGfK4lOlXBr8rkCoE|- zpA*oVd{uts{<3tlpBeRYkW|GndoxVik<5b0Vquy$({t}6U!Gs-tTgEZX^r)1J32e$ zf_PiDtfYZ-c=Bc0m2pS}qah#!Z(dGIn=tl~=9)s+{7xtNaDL@~O&sCuiJS&ar8a~; zx*&31F(kkWNUhUo46f`Z&t_L5vIPGXHWyiEGtfknc!Cd#l?0T~@hJH~ex+tuusLHe z$~THs-dJG_`r!z|!-Mht{`^W`kS3q=Na>?>5v&st3g-tksYiXZ(@Wl$U-_Ss%d7>; z6jEfsdv%|YcH@XTi#1#|qDEHOBzZc!Psx)+PsNu88!iTFgTNeFCmZ(e z@Ek>I<%1w;`KSrh>^c8m0YFAxQdWz`7@WwJLZnrxNS6;F#WiyN{}3rYDr3x|SYc6; zn3J^J9Vi&uRQ&s$ZT>%Vc^x4A7}%VgBvdOSQcE}V-bry%2-xQTD|B&Gm2))<)-6XR zmN6C}Mml-W#m1cf?|TQAia)bFM}8?wlFF+en;-#nBW$`4X6weNDF%D6EIkZ-K{N`E z5wBJ<_|ZeE4Y&FKW_~%D`|V76ohT9g@fua&L2=Moke_e!{}nQRLkO-)Q8e5lM?)V@ z;m15&N8$Rq&Hq_;Af9Fmpc?Z?aTMDZLH9>an0-oJB71wS4f22Es3u!%A7xnm>1N9Xw9;A^v z`TMPH{y)}o=8~X_^_DCQ?=$D!g$cRQ)Jc7t{|}-ep&rOgGzEFnJ25OR=oZc1C?lKA zZT>&XV6^oK{(AvVXzSAudAu}h*#N9EcANh%v6AP+jYVcg**$vozNR0hEH;1#)9qw$ zDGf5O^=U33@RW!_p%;MjS|e_2GhrvTvnyqFA#-Ha#R<)z(pvHj+-uw~T?WtI%C1C< zHgyAWmZL>h8a10`V!4_^#V@DszRmv!nyV7DA2WvtcGI#_A4;tjS=6AZ%e&40@2SAl z&>8vJo6pdP45=OWhy5b%ph}fo1%q&MQ@w`?=2|h1tO9pvb|8p4yA&LR)_6}Q6bZPNA^CYlu}Q3M+G8Q zh{U<(|6@-8o>B67qdEWIVkM>#+rBmDFtlHO?S94 zz#7P+KpC(MR_a~Z69HkOvmuxVHs_|TI+&Mo!jn#POzV5`gt7-^zwR zT!ZvzRNPF~o!QT=u_+U|(R>&fQ1S<5amFh}2 zRt}c^HveDW9-ume9c#}Z09*5VPryfw4at$!+u!E@YyM$HX}O171M%R%Hsriob7Bo5 z%{U!x^Z&7XRgs3p0&7wVIYG5cw4MyEfYr2j({27g%8AaS6CvUOusSL&m=^@k@ruW! zMX}BQR|=suK_8GH1mwvo<-&9rq zru<50bG&r?AU`u^+y-8gRfo(s>d`uA^mG0{Sqk8|NUNf@emR+oAv$uL#DF?I1|D;PAZ{GP1t#fn>Y}{RY8X7tO z-@)sTN4^vzGVT*b6YMN-c1=)MO^!x${(n0r79}%Ke)|ZLYWLV881}~F$CgiP&i^-( z51N$PO7La6u{VXr)SCtHkA=M2od2(79G?$Y%6C`KI$?!}iYk_-onRk@ z-Gyl*X$y9BDD{BmMmhiA5KKVJzDyL?-V6p^^y=}khVB5O?$mxXzPpA?P=#W4Eanv2 z@KN{TEEd7=&y4w*1kCyWp|%o(F$iF>>SBt=7nX$TXvqt>L-n@#|6WlL>F^YytBN`A z8_0ttbqz3~L{?mpH`Gz_FzmJB&`bfzw*Yw>zn?z6igukHtsp8G2Wc+`!UjS7Zw>C!POJK~% zrkus0*kZ5<(v|c7T`5fJ|Knl?I)*ff5kTug7?6XTp~Aq=`2Rdj6d1rG!Y{tNQcX;@ z{$xL)W+$gM)0*-B;oIs7r;s_}s1cyICh!9M(bv^jPUFgq|1Vg2M7swU&pry8s6H7m z!rIbk2GlyWk7dzDGHj7#dMC0AQ=WM~kHvysXL*?I%=!Pn)&Kv`zyGgXFy@X_2>}#o z(QqM{q9P=vCkx|FB`#gs&_93Ep`Si<+r#I+b>o*dKL6}T&-}!hL#JD(UOV}hPo6&U z(6%2{M9q>J@YxqpE`a1)DNG!e(J)h<0pUc z=mRIOCZ}KbUte_SHxB*8-kSL*e&(*}rP<`%^G}_>m|LO}0T91-1=XLukzO68*GJC| z$5+Squ6JyI;%Yj$GJY(*esS>XwJWdP81J}J-r5MWU%dK)X@538$1!@_sxW()-EsfLhnYL~KFN^u%H_$8!n>Do<(>?|SKr(2H~-*l zbnf|!chrk7v4>W~>YLx0*2t_%Gb`!bLHGLbiS+uFPgL{vYqQ}w?woIa<6RpY8=)tG zRJ&`3Wc34FT=qN9Eko~ZtaDm@y)V5t8)Pp%cR6*>d+F7zzULJ$eQy@%ulL^jv-I5a zFWm8kZ^+D+vwPpYi?I6Mm;9iMMgLs-;s?_!uNl){IZ@w}6YKvv=u^l(RhsMV0 zo6i?ZanIt-ZYJBW_pY0>kBF9c-2R6765or!$>LovMa#l9+HF5QzWU;gmv-LuO<3&f zz3sQozUtib><5Rtkt}w~o)VmtTJ6%J}KaH^%oq_0qLhZ@9l3*VExgbN}N@&s@AN zyW8(&@yP5eBZ7BJFL?Kk)8Y%hWdwirr3i`73|_sF4zDbT7o3pPt$IyP; z+Buf?9u#X9pW*S>UVix#i!a=N+c`ZSy_~+f)}H|9fX2iskc`;#27F@20-A z`dRYjQ$)sec;oW5tM|>%{u|f%tnZpn?RvqqJ$oU}{yR!>q#%|JBdwJ2%y>|U-HLJNfdoEV< z`QpSx3g1nmYxONJ2g58Kuju&f%$|+getYS*cP9gU2Dkn6Wo2J>@Xs^xOIL5`Z0=T> z?RvrV!Py5K{O9Y%o$rC1u=>vDrCTXm@vlCvUVUcp*h|;0y*hr}vA@p`kk|j;cj&f< z&VAFyFK&F^+3}g5I&=JV@6?TxKYjA>iT5A>1IPa1v9m|tcjS8x|I*=e$@7Q4@76W? zv_5^wra6E9wt04spvtpa>&eVDOiQN-C=GfyJsBmt{zKdU zy8KhJuYT{+0a=7+M@?0UYkT(fk#FC%G0(U4>~^KjF5do9zFm|F!)v4Q`(GQsHh%2d z)zN;REf35-5qWHV=QK2KvMZB!@y6%L)Odi~D*JAZw+Nt6g8SKgrUw!ZMS6{6D9LaiVd}Z>1@$lNm#@9bl zZ8`VQ>_#A@?P4qMfx^D{FiSD0^d&5#o3PP+FEbjmS0i66$_&(=U8(iA&KD1$pxB&U zkGsCJSVS1$yV3khcfF#9e)h_>k4Md)Ue%wULl^s2_t$4%8)(&pfwgnj`;~X~XRk!Yc;`-TPRn!G!H3m1y)x0Qw6J(&cJ18r&zEB)(&}!r z7^`po@z>I+HJmQ^-V9vMH{uE_q;i~yma=2QO7QWPNikM0x+-k?0I0OTKq@} z;m5q*b>3?AJHB-ksR+1uX!c^%8>Ka}hbgc<-+z%jR<>mF`u`ga-S*_U@7(y?8=rOd zE6@DE>A!#aOHMs^^7ozi2PaM+fA-iXkN(4>Z#nYv;U7)@P4eKOZ@6{+{~7$R(}%X6 zS$ugWXvyD(nme5fBq2mDL%WD^#I+C<8Ly2-dwzKb5!YH<@6EE19rR}sWOf1ov}a<( zV2GF%k~0{}P4fe!W_a_heuCw=28=CGt9j11U)fV@>pgMbckO^Q2>U%;q|gJ1VJ5_B z)HK}Y5eZ4ew7$9c`rht4OZsxc!L{r2l3>5?`+=>eqd>cF=h(y7YhaKC>C()A48*)8 zUXytUqpSvthi-oLecxQ5Wp8|P~1Do2%dTS_tmq)fcaf^OrqeD*IN}Y;IjzJPRi=q)v_?Xt{vM zP{ScwgLzJUnPv>T^;ts);lBLD9{IFdlrExn5c-tVNgXg*&Df& zTjk~=!4^zE^F31x{K}l z*h}fv7snSrc1=SBMTDmKiN{O z{s>FkxAZjCA?W?B$72mOi<1?L9`BfT2t^7*TsCe$G)T-OXen^bbqcJ${dJq6y5sd- zTaN{VTaXj2B9lZ;R&r^v0Z{bO#zPm8jR-N4XpyYG`S~$bDu@r7omk&`)Tg-p&f*}5 z*+xcphIB&NB!s=_=$H>5hn5B%dB@i3r-@H7Ot0ru9O&YcuU)xP4a4H0t&34u++Jij z4Z<5WDq%r*VA#(hMg!bj`1WEK zhfiXrh8D(*HnELBhm1`{Xk8)ib8uMw42!$iNl;Nm_u$q;5jP8x0&x|(Juyxa20_vu z>)zy|5xkT%0$n5j+v;0hikrn7uM`^UZao;m=X{YP??Ien^#iO3K6z&U`1qA7V4}{} z1F>8-i{-KhwUE`fzPMb945*@2)7iS<&P#~yUert0-+3w8SB&Gv{Qsq+$3H{;zjbPS zr}t48a0yAc|JcPl?m4{vl@(b@@v*a`CHd9nv5V(F{}z9=^tQKmX7ckLf98(8{TaI? zNE*l)$GV=M3S6IX{HxOOAGF-|_+_2=*0)1NQn1IhpRkU!Vl)1S-g^Ed*E zIyd>#4Nv=)Tm13T8_G9O^5cEK@$I+xBgK>ES^FFkNd8#MpS*pqe==_$CExRaKXl(- z|IpIoeYdr9{#N%|dc4K$mi(@sKYFVVQvRdk8{^@PYgxZ5`HrKn9J=$)Wc_;0{@}%9 zFWkQFr!Soz<+Ld<*?evPNuS~TUAK5IrTbgxeI~zR$(*lm|H+vCB5y##jba=FYY3bI zL7@{`DWD%J6U>@hY4Q*AD``ZLx@0O%9=FvCjRr-9L1IqD{GG#qA^8W{m8Ol&4*TE3 za0>S))bgk~QTL*fNCcJoQu6onE1NM-XTmf_6lrmoXETRvP>wPl0Y#`))EG$%?!yfLS+uw$@{7ii>E|4 zp>LG@t?bG@0Hnz;=U46yL?*wKU%5N#V>HNyw>&N7;W>@Z^ zHcK-7f91rk1yS;sv!A(#!Xx?F{L0hw;BEZ8?FT z&RmF_hR|)ax1&@H=@YU56h%7}GLt_YD})F!Q<+Rik3<2CE5_gb!LahB^+CsyN8^v@ zSCYw#ehewRP&9~>DW{wF@QzIQP&;Rm z{8)A+t#?A=dJYU-s5wB`GT#vj{v^#Qvy)*>el)+56b^+0A}q>D3MSMXs2Y(ep(!KM zJAmuSpUST^gU;Fp@)#a?W2$JObng^#PEi~OSoD+sKD&~cOc)nHhU3KO5Nhz#XxwrN zA$;JlrP1&s*_9n~s%?jwn#u_qt|$IXh^P_pAW=!(w43~Jb|ph! z+53f9rnG_&a(D+Meh@%rdjgGvn$0qQd1Cocke#Q zu>cXw)q^tWVNn0?G?E|6uVir(V#Y?b6UnTj&*_8nW zHS{qgGww59WiLc&NhMLZZ)C>7$sfwEWIJKiZ#J5tKA7ofnhl2?QQ{fnB~yz@{$PG3 zjRSUMIwB+r^`~P2l=(cyB`&}D9w{h<5(`P<)`X8UZ@6_d!KYZfXPJFih|DQbi z8%OUwGCKT6l7F1scj(KP>hksfb^5-oJA>v{z~K5OyKe2(71LUp+d+fjcW-@Zba3z7 z>EMp{5QJ8A6^rut)ojM?*=#y&zk9e3Z=DYexuB;||LS3kls#Ug`34q~$Q$*nsAQ{LR^EP94r&yLm4u!IT}nDUd?uU*XLr4Bx+Xdl2I9DOS=RPTR$MUr&gS z(dJ5L6Ykpjq6j><7lCIF8Ne+APf$m4tn?GF-Wb1pZythn9eLaJg6V~=FBJDn4MS|4 zT~m<77d>ZtF2?Ec57|-ylD09FYVS6824CuwYiU+v?|;H-w6fT7d0~pzF@=-M7#3z}Dx*_ARDC_G0I= z_!#TA?*cYjP3U}d>n*XYin*@6m<%o6|9n^6YFSmRws7~>=Y~i`A(pcj1Ej^Ln3LE_ zyCLTQ?7vLTg{?Qo!CUAo?8Ss>@ov|=^I`|!_f#d@@{X;~iJ1TPotQt`gELeq=Fi`B zakB+ou!`x?hqm4n34byAq}9KxKh^5jy%_k*OQli{UUTcWMXW3a6-G4ack|6!{RB71 z%IZcHp4@t4uw9DOhCAP`CSI#=yU6o%o`~gLdi#~9Iqj{_4hq0MJ7goSV!N7*t$vbq z6o6_7N3E?lIG##L51Y1KJ9XFHVkIz%|I74&*jh} z(=-fC!c0e-A}qN}?$%&Q*lX_=9I_&y75PV{q?!w}x2i%*G7pfuu>Zl-rUe@uI9M1; z78H`OXl7x&j!l_Yp`|^w%^#>xoCTCI#GYyNi@TmzKJ8k4{_{ra-gHckj z$m)bRQ}VF9Y6n!Efj4HLm`f$4E%NG3^4Rd{kXt58PN8_B1HlqlgP*MUsI`V5ee>an zB~ndb?#_TOPnD7q#&$HIb??1&Tem@Jmy?6ONn_MxTfttgF<4ytOM$txcb}~^8@V_O zwB`JrJ0wl3f?gR zfZ0NPy4y?_-}L&GzDSJP377j;-q&YPm#0dFrSyqYd`u|>6Ni4W4lJ>5;jZ1xG3+ZRhG3PnaGQ-v(KYEo;Z7lf^ea-=NFqs=T`@ zR`$DRkd%*{FW~4t_mOsU!on_;YnT6wwOoWWb3C{@koxENdW97)+d_z2YEdhCY9BZLyXnJ_3_{Sor@Q!bi! zXtMK^X5S90r)Kb$wDj_Oldc&eZrGhhkU^{^ajI@sCd2e*7zr{r;oBdi0G)o;mz&$^V+X@z7Tt zJACvX9R0DQ-*WWJj@FJIKk|=`{KS!OKk`*aT1QSF{-?`x0n_@{XGMG{8qj<3cfZy5 zE$W`?qVwZhx5d{j!I*onnqPg>yL{bh%ZImZoeTK5{PHo3!zUi`+2-O1h^@p`DvVuB zF*O-Sl_#L*+3P`^h>ve=L}R%SwH=WhXiK&?NAMJZ0CS2RA~qJoC?&!mJgRql=Q{{y zv1;Bs9*;hd4O>(bmLJ(V>p4mR4eN~elxaiBAIf1X{FBCAjJW}mAZCaB*={vAtS<&k7Nwhqg||313Via+zv79K*pe1Q;^E zxY*4`4v0no^sq&5u_acX@Rg#b4{x1}%)FSWXF|yc)DXmwz1^0c{i zJeswowh%XY(=-l%$W`J=uv^1J84Mg&xvU|VYU=qJaDXWZU7%wbYpv)3HQRJMuyE-` z$gW`15F@C|aM&2~itX?nTZ0&_I)979pfb#{vvo9((n4Qn)D-B$W{~BV*KMRnf(yrM zaslOhhHDHrT5uL(YDdJSS6S5j`n3Z6Go3y>)8t%t41sXz%>ZuWvzD zD#v;MR^kch?#u3TdXGt`8HvG&+!tqC!*r`x{<@G~t%CH0**Dt&C7RK2 z9KxdQ-e%1ho(C{9LJxq2BqzvjKPtP06p^Q3ytsY24T65S zLR&pF4El8*sbj{-T*muhc)I%i-yC_QZdFlT9-Mt+17mtk zfAfBfpC(5J^eSq;-Nvpz*aP0a!dhi{q!t9$0(U zkM~`OS*K}D8^frQTXp^qb?o|`XxpV^a|~WlzgiPVZhqfc22+uONN?7QLZk3H)1x+x zHSB9O)-9A6uhMGdINlTy>m9>=>6)TD3xF#Njf(EQHR~=OIR-dn=vr6k26U#($V zch-u4UO;`UmARbLRcZt})|wa~W!B8}yl$WpuEEN9jj+{-OMk^&uThoN=tN}{r=VfWB9N?5oXLfHCo~4l3 zNX?^n=;Nu6JxD+w>JH|{z%sbfV!$pGdvJs#V2R)$fyfD01@rYI&5pS*=SPsQM6ISk-G%YPPV%} z&;VU?))$3ZES7E|1#4xpk> z(7HnJ;q32?NqBVVkOSxEaW;YNwkN(KIOxF!X-^>^5T z?W+6|Z}%lialb#oO~cW2j)wZiWT1A&L?YW!2U6F_rml9LZsj{@)KblCL}TGpBxW`LCmInE!R;=kvb~ z|B2oHO77kZTHvauHV>~p;otMxv^UMQI(NXvPRMh%^@~+bK%*KNi(V7^s8y#_#&oc4 zSFHPK1y#*bDH4X~E?*zN_qCVzokG%?lIesq7Wdwyo`z?%sTClFug98i$%27JFw{

m!>1`84X{R-54%DvMO*>llt5?cWHhd8J0j()a=2H2M zTOEiSmdOaROHjs{>kAl0A)reqJ{{~G)Tr>S_ol#@C+;ZvkE|Ks(cnb7C{__P9IT~ng);_Ec_Z#sxb}h_ORPs zQR)p#Sy^?2wC)rF<4x~GllEkSiQJaFk79ifM_Q&eb*c)L-cLGc(rsA1zL(#0X~5?d z~fp0hz)z^-O7itc;>lR}Y(VS-R9>pZ6P!G;F7DQ5-{+!WtK*fyk74UdXyg z)M}@GGnBP(dQ~8hyw2F;5#0(;savg{QVIC%0a&jBlTUW|}2H zsf`m2!J~Z3?7|`$I`w-7WF})mf3Un^znhj$pcT}e>Tsm?6#P<#(%o!Vn+uKjI21z`f|1yHHoOwFrX1ur8L&*LXQ+ zsciCm`p6XiQl`qb`*nGgusv!-hNT^9Ujj^dsTtpK*UF34Z+^wmc`(oL&=d-DsYI9J zfKuy{qEzumBSr(?|dP(Fcyaa`=Z2A4)DB`p&)7?XT~eX?=%k%<96w$Rc6&QrSF`6gHz^?x9lA1 zHl>&TybKLEE!}1V&anIqR6s@Zr%6RAW6LC-$qL}6a_$%UqU^K;f zqof?PJ3weFzi%BO*smcdxj zzYVE24ELCVOJ^$||9k87W04#dbP@KQgApxX#L9T}1du^1waI2pYTF*SnqAVLrER++ zIjo8tGJP#xbTP(&Hzbupes1$t*kU@1X zdhObkae8%Ek-}Xsm^P+2qS`4q+=f9lppEx|PoyXPX3TbHC(^J{y=zrLzBvr*jIGd`% zYVV$2j~D;u9RhThnG$;p;_G#Z6~PGnkRdE+jt%jJsYa%I0?cz^n} zas1bJRA~YnY1H_F82Oa5bVDAck)|=RAOhCYL3_N0FSm63O9;bPs8U^^=_{IurP?8) z1d@}(sAI^&{JbVs8~LC5d6!TJyUuh?!d0x6NMv&a>tJ&5ho{$K$roS>;RxFsb$A%2 z0hA+pp-w*8oD9+->34HRyLY5_Ah=@5SBR`UIK3JNX(9C2#oFQt0AlVltZ6}2;1rSI zG<)V1L{HKqt8<%M9i+KYa23jb7pE`BE+}XuJa4*)My<_>i5FOfiF%waV~;!z!V>|( zVNET!vZZDl4iXMRgQ1DhY1G#s(Zz09v5>^h zs%Z4}=||%`6fE@aV2D{~FR)1!{sGYWAi#)j*?4T?x6xU{Xk7XZ+ZaX_Qd#Zk*DN9! z-2u#q#jz3uuO#yerdY%HQXW?0=-p&^xq9`_i|BIXsjlnt$nFiH!CYX)N7kOWys zOEt}k4B%g4KLQEog&1jGedEP~DZ*zFda{(E5(SUE{{Q|%w>@(12LAtlJbUrXcbxwD z(;Mdh{~-PUHy!`#V}Io6zdCyNk*_`c>BAezGl#za_0{%k{?xQKn?!b4n)|5N$F=TY z+T7Cfgazz$Y{iTkN)acNR&a`&Jao-d47tt3GeeSX#-I!io291^>LH!8D#w zzit{(#XO?`*y`zFSRgpy-YXJY{-dh#(I1g+^bMuaFv0Ti9 z>iv+4vI*4}QGt%2jrDHbTH$6ypKkRTbJKD;2<}RKORMv#vTwm~+)-pu_(6nI&7q)U z3&{*89i9Cq+FyMsq%6(F6)V0n2ZKvnI-O~$A-)$gvehqr)xlm`>Icvs?`~;=hO6?N zueBGywABx@xPnSRMn!Wjt*xvDS}2i>`@0*sl>+-5oG!g^k-d6Qy|oo&^b%IB^x4%; zZv87S-F_sqk6(V(oCf08T(frHbgkN3nxV3>;{4x(x!vmfUXG19DEj`2JT5M7X@Wjq z8i+FUzpK~Y>Kk7ypi8gb%BglRs}Ox{5ur)zrz5i zjOUuy|37-@whQOJb>pvWyy5I~XMXSL|Ks#KPJQ#qzkc%YiN}tA|FK^`_SU26ksmw! zza6e8-*D(h*HrS={cC~%TGTNxI(^sl*;qJ*I*pW($YqOR<^;};l#3G8#zg18$*r_o zZ~E7(U-qpR&d!Uka_KatABf0#=T7UO1J4*Y;6?N;RNFB~nyRrgX?y;*lR>w&X5{;( z$XPJG=1IbS@g44+zCRXx(Vjs#XLzatG^nY5Y6iqOMu6=OhdAnNv+1U+{s!{}U)0@| zv}m51zAv)*Vl=RmGUeqgOG1Z`3ucbOwb39Ez^tY-X1QBmhcB*LHKnLud5Un~^qElf zDw?U}(uW4@wAe$K23JP$nqm)_Z)_U*(y1IRO}wn={8n0TU!1--)=Pcoj5T=K?$n!@ zm)+3WH6dcX_z#6QGg{Cu4b@w(m*oICPCqt&wo+N03)A<+RxKp6S*NGHn!Sk{6IHm$ z*~Ea*2L`&E23R{yz4QQ;CkyvYpN`uvW|P6w1N4}fq}G%%<;yy`;Tup%G=0=H z_P9<;@TN%f{_F3-(b%a)_AAWXHGOvw9Ewr<4sUJ*IxoAWm* zAD2qM70bM;QTq$icg6YCEaG^77!3IlBBL>=*1#xNW?hby(H%EhLk26ir1TWaqu>}< z7tkM_UW%AfFp|h~@d^M)YT`MI8q8tRdQIoO%iM+ww{frCW6D8uk($$YTH;FXxolde zXKPN#cmS$1E|L~JLe=I-tkFj30Q=VTVq%Gxg8IC0s$`kJefm_q{DQ~BGzB-^VA_DS zs_1C$oAp6Vzw|h~w+9rZmvVp=E4?BrPj~ucEc61p?$8k)Ya#N#h?NqwbaY25hejFu zd=SWztO@073)G5`q`Rk2c+VvmvSY4t(!`!Owhp{*MGk;u9Jc7qdP=cdIA09l^Y>ir z&dTt|3)9DAAiAJ5V9WdR1}jHR|IzBuz(9MU4FvLKTNAA5rMq32Dk{W)ikq*H&d{Ge z7IcO?c6foEj%l>9#CF2GLy8y_-oBwls-Al0JK~j^@i$#XIk$X^KNug?Z_o6!+fO-OS6B~@#r6(UW}8n6u+JB2!LiQ z+o+h7ql{j}B*vs?h`wQ%o}xtQq+9`#9(3?-Odp9HvFHMKI$c3fhCY@PYAunDq{PtP z)Q=hW{dP6QIIVrOZs8sY9}dbBYF zhih0nyVMockuUQ4|1TZ7?ZI>3i2wgNXJ0z=r%wNy)4fwSPX73be|e&F{9BLx!m&3V zeg4QFKK#$k|9{h=zjStV_WskKd+J}F`t+&af9jP}PoDaMlm8l4@P|&`IQg!VUwq=< zp7@(5{^*IXJMrEVUwZsEkN>UXf8zLWKmLK^Z#(w?9Q(V+e&pEiIQGF~@3@tNz~P_T z_$M2GcH@&9U%k=UID7Wj&i=WxzcYU0va`VHpFRD3r?2o8RE!$G++nZN)G@=QnTMzr zQ@WuTZ?=ovWom|QOeh$8ePv!=e1aXyPEnUur2F(VnS68K>;67hhzsLKHZdd zsKrws>pHwG5VLe=XMI1>(lhOmZ3=FB? zTS|22r|M!Abn)toSH`(a&3@BM8#9F`?5kMdoB~Njdc`psrOWP~jl;wcgmG{D2C~4b z7x;3@1+2(vX!|d$cmFJ_Hw&C@&^5;p>=EoJ%Q`g2Nf{y64?+yJF{;&DYjC>7H+>+u zTyv)M47r7QDIwKrQfx({OT$oV*hJ|iGrCzD^}{(Jj5O9T*5?bnIE_HkRb}ThW$48c z%r$5aouf5Nr5id@J>s+2;88%2Qq$?kvFrBbQUz2wthG5)f?h0DL9{rO6r2tFH4}8L z0qSe77X#fP=4Gi5V7{wY`O>Xd^sZYo)n?i4chKsklR?kWSDWOo?8}%yLu3)Op`+cN zyld&)SzPEXMSGYqLKxQ;fb)Qoy8@TEp_P$b&?MO@-Uoa3l>!H0r7E*IMi5rm|;PRo*>z zC4Kpo$F5wfYCNVtQ=(ohQDg@7ez%RvMsRE>^BM*gAZxK@S@Cto&GzJ0-X5hFpJQH? z!nw_v0yXN5IVA?JWh1bz?X^Qt$GS0S8qA~`N5?KsReLwV+9FpJEh|zQ>&=v=l*V@I z>U2DG28E3?3&%}!4S`=sU>dzqHycF$jI9AGgEa1*MU`4AtJ%6wnnOZ?@)r19FNm=< z83OM{R#%<##fUv1U&(&yEzgmQ zB43FGkquy0F*fqRjDTC%s_*PWm2-2*8@NWuSTNVr9ZW`p&5Xo_~+C9et!F(&-v%r-|^4)Z2$is^3V5f|GO{q&lmjtmHz&)zn}H@2eW^AQS+&q zHYe?&jbV74;@9d-ZFy-`SAsnBP~7r%tJf_PsjG(wqoP`fuV>>hB7Te3G|4wLRdW%%zHQsk&Lmjd` zFBo^7Qm;4DEB%rHk0W`cki9uU&2NM%Z~t{7rw2Gb*t&9D{7l@sF^*QauJdsaY7Ej0%tFFD@OcG>w;>EPhwtqlbB?Ma8Yd3+qNnca(ts@8en_*wX{v8C1mZE8LpnU2&GukuvGcMIHiM*|SO!g% znnzqSe!R5UOV3gD5aivB4NQUU=Cwz#@HO#h+SGz~6jOygk{V`uyR6^Rc3Y0HxL@Z% zW^u{q!}t5W=G%44X0G1kW{FHRcw=l1bs{YrkPH4` zk($$mn)APW-?Zw2^xE&}*a4_{dewox6Z3_=hBA;{^6L98K)eEmto-g9_eG@HhL7T{ zqqv44DSHgiS0jRB7)=>#Yj#FWTXwJ}O}shMIF2epkDB+!O>ejD+_Y8Q8i(tS9cjqk ziIg^?9I6v%rqS5zOqSO5e5u@g(-k(r-mw|y{kH0tyQZhs>l=5R1SzV8!{dgfCiOnx zo$MOipq!e_w_+)LR4eaw?>kgL^F~J8ZkIw0GJq&9ooYHed!vw%7z}y9V0v}dt?Qfc zjA}X=dH?^Dhi-f7+;?sKosG{s`@u8cd-`vje)Fl1p8Sy$zhVCWL&tvL=-)p2MMu8+ z@DC>cI(hWaCvUs^_5HP5EkA9|K07eC+joePi3F+uGTL1ChQ1zHJ`D&y9)H>}s? zb}M`NH)YV5UVZ+Rs%FpLF?&N$%Zh$D)LTnj=e|G8RL&y^hlxu+Dglqw>!wS+p!qT_ zPK*jITJM>C)*?peemgz+gqE_Cx;4Z*96)C^BglhjjT3<`Gi&GResQyvVuTlFw*|$c zBv3f&jwU?`k+WA`Hzcc&l27JqRkuXA;j(F4y)25eVyEF#`B8EI>|FSQ7Q+YDZKsF9 zw8@Xq+a6#w_4JVyz1`-drAdM+w|M(YnRF?ZRbIQ?H`@q)O2PQ-fkQfz(BkTQ1omvf zPvJHitVIAT9gR>7Yy?9x3~oxVLjI~%q>#XO>0ZtAW%-UdynG&LL>bEGjf9Lna# z4K21cb-?-@^Z>@TFU-zFI4njEcqZxtIy@SK;KcR9#(ku4?3|-s~T3R^s1N)|M zcmOT7{_J!>PS$1G4}r1saQh=rLq?i z3w8Y-jy~Ey<`n^fWPQhVkbc95>2}tDIqTQZL6a;Wn4R=cb8wT=wT^R)+;9Y}her;z z4$TU>MPm&(uHB(Oy5@XcdZ>c|Iv<>!h^B2xv6E8wh%B8JGgDfVTgnH>T8IOx_IbFB zx@+`DZq8s~;?<*Uv*U5_7F}oP8t!wC2@O(z90eix53n`0MRvDqc1|r@# z)Mm%xWtUD}Wd1hijm=tJq0(?`UNG{J?ti_l^THeR)?2rfzEwIa+L?ZHB+JEkD}h%4ITk?Jh(&~? zL}q-;U|qLniVmW+tc|tw$`9(!+tY7~#ZnM2K+SwHTjq4yN)=K~Cex|dv%_dg8L$Lk z{fjSs>CTJAvct)#fP%48|37+ey73n_j-P${%y*yu#nW#&_0q{7JMk}0G>*S|>@OZW zbo9w1zvu8T96pu2`_LzMuj9AwjLfePP9FE6OQvN^CbL2e;5Uvr^jR%1C{&D_;uuaJ zoc^|0w?*P^a%D75!(OHn86!7Q!~M7waxJ~g)@alouK@+;M^5SMA3(-_|MZPfEEOWC z@+Z__=-OZ$((WDN;;DFt`rHr!tzGl}E6(@QT_0fk^1&(i z@*J=Ljph0nU$G@@ch`iC6{lzEnW|!jJ~@TMe56!qdjNQm{1#y7-0Uh-2SXiLLJGaM zU@nnalONvt0V=P$@0~(u`lVpP*0Ry=Iz4&Pir@@TDeXBufr^ZwV9b;*7K6#W@Lr4} zl@Yl*Qy>kp$_{qdGJV^kSHaaFjL~~RsLVV8dhAe)hyp>^)E2AQDixx4{V9BgaZz#S z-C^IPLUXe-2qt$doixBP`U-8Vn}LyqHT~I}Alu3-ipDg9XG$Sc{gaOBB#MV2eAzdP z=635Ms4>xowtcs;8$4dUU)zN#gy#8DA==`Io;jvC8zCEE_~Idu0PAwb8Vbmyw{^xU(CWCMohe}EsghW?##P9TQm`-|Z>?MK8~~|{V59@bIy79C*7_}v`s!4=ADU*E zOra%dL~&pa$AscI4Ymhtqepn03+hNlj%-$6PEzKT#fn{e5QNLl6fpC|yd4C?AU!%_ z4=|!O6S)P+Wq6oH)Q^GVMw4u9Z4DTF({8O+^J;Sned(8~30@LI8ZA~0OUOuV!FeQe zHk(@Id~GIU-Zs0%^eW4U+7#S!u{3$+MZP%hqiN{R-gh!K{;b2w;C)(oF5@6m!%Tum==+L;1iE|sia zTFs^c6J(7*VRupo4l-iOqKVg0XWYUJS%X~6Uw;7_U9ZyYr8b4REG+h>W>Ux+_Xy-8 zuE-tn6Tuf4!yHFiVez`SJLi#caj|DubtTH})5oTPv6N$BV+0#=yD%a5Jc_>K$oL-z z1}&SBA*t~ii0;<;Znc5&!6}#}owv**q?`P}W1$L_X4+?vE@reL)GaBpYU$r zKBZ0AoH)M;Z%AIVQccy|3*nZu)`q!tb=Q}*<(87c(lV%a8j+V(NB=Bk^{eVUT zoHw%vLChNMMr10#@|P};ukc)Y^+r0pG7hEX9c8n91C}2kXIbvUp^0f^nOkMl<;81P zE82)|G0TIua8Yje*CbY1z$@_mgQbBqj2%!98=K|o znB?9qUhhErrB6{Q()=(N#&V+A9I`fN4<%-YAf7`;e?qpHMoB?qzhTT~^+U`vl_F8h zqE6+te~0(trIL6kf0elgXmP|&KwZ1Lh9_w0-* zHV5F)rfPXY-$bURH_@*HT*7OSizEle;hGa_@s_jqJh@Ssy6?32S{$tfxYZmquoXB# zbs9nX6xSoIrQV2{E$f=})4dLnWsAH@T3s!(Uo7VQn`ym+&u`XQP*F>0!3}urdGWm- z_$AC~_e6i$DL+3npK02+!2WLDi|L%hFOg{?xTL)%Z;nj0Eu<{cq5fgo<{XwbO(Bey zfT8(`x=SYO87impPwUs?oGp|I^{mKR=){Dkh5P_Y$7vjo%|}Ty%ia1e0j3n(E6T+m z_}UndFS>BeKK3m~)d?jc{ckU=F zH5K`WQXxZvp$E(ZD}mvuy=CQn_W5jJssO>(oc7O4ga=)4@qQz^=u)G|JyY%(XL05z?`eMA!- z+)LDo+~PXaYw>uhJjOqG1twZ*m^PWx4hF{mkzwU9492AL1Ko`9Hjv%xbS;(s|4EDI z=_4N%@XM);`n1udf?jW;$hI26&NP@nGy()8r!i7-tNog>Tngx-Sn$=QHhKO3sYAED zqg!oc^Ly*G~TN6aVhSBgZGl{>;&TbF_bCdiZA#pG(GvK6U#4 zI{jzh1fM?p@v~oi;>%Bb?(ttd-aPh?kA2Uvr+5B3zVTfC*U_Jx|MeN80{+1CiRs$| z;VRh2WS&!lOtnquxb%hHc%+IQ?{`S^r#+Yq)*V4B;z=ncR?SJibNaSm{uOLGgYTTu z)vPsebT9+LSFdKWjFiX-xz0h`TmcakXlO+gx_hU0Eq0#URB&|XbSXG=M2ATH>tG(k z(}$8t!UNqsb)GZqxdQ$Q*2r5UVi%BqTQ`p4c73yx+3A_Ja9pbCl%ZPEogwzZnj?QX zVjm3P-*AN(-i3HL~AimEImOX*uLK)Kle?)Bmn19SR|-Ct|^UZ zR!3OWVc~ZTKTWm2LjR|?Ao4RG;3?f~)dBE>(>tOxDhT!MX3O{s`TkyDrT8I+v+;G1 zF1oEzsGun_R=@Bfk{2gs=}8WnRo|R`vE-{nS!@$(Z_o`>Scfx2NAl(WqkIV^XpRVU z>WHm=vPiy4Pf{uVb@%l4SVM(&aT~@Jp%bASU!-Ls14&f5)I-ETUhDw}b`et8zTd}7 zkm-Ka6;DpTC|+`D`4AIrcR~fV8HzX~aPJ@n{3(eJt#^5Db4{#SddUa9T<)2EVPpbD zg&Kw%Al}G!L%uNNPkN+^4r#0nlvVKod(+R4vS?fSDf&tjltdflvw=JBTZbv@ zOZOmoUFw}0AZrMXE6SoMORK}}TGP*q?O7OK!WiL276+pu*i%r3MU7G8QnE~ODyj~p|CaTkZ0)-WHCM>nK58Kh{vd*dev)cBFg$J?t8`Z-fxQQ`Dm+g13Q?dIuTDk`}V5`~!Hk z@9ake<00BYa}6e4WHCGV*1}%Ba(QswbWVl{JaIK*d^OIgdHw(4L$^J2?zN5oY2(P* zhtGWS^rufBKJ}iH-*w`zoj7*z#IeES=UT7G)p*85^1 z7K!wP+(oRyg@ddE&R=C)}Zp)U{c4x&31+(Mln+Q_XMcOIGN;xVVoXp5&-?lNjTgW7#lVZ(#miQ1 z)x+nb=RkJ0u`iMSq*9DXO;rVewADdj#eOQzkjGw1uf90G__1r3N8y|NzVv$fay5au zHSrC~Y!GU1T^32`AE|UnS{m#M_+UrMXBNRc*_sDh%2TUVEqV7ivb-X$QQuX78MZQD z6|EkLhM6~7rmZ1lrGwVAZrF2emUnQJrfFl89qdIHg~l!USOFTT#nWiWIp;;`w2K`= z4QxDG1E?%-;T7YC`&HsJhinGkGtNr}L2J8fEyi+8=A{d9mU=HWE!yX_<= z%|>^uo@s1qDy!icuWn+rXg%vSH%5cBTbryotFky$Fmg&?q1qk%*jLB$DSrsL^+4V| zs2NOXHKI`ttlextUD~>b6aAsZ53zV`m2Uh1zr%wciJYM@Qq)}=8BHLBKZGX6j7T)l zN7UpdgqCZqU>vP}ih0gZ90KJuu_|gyfpqH9(^QE)2 z_=|k4;)(gkz9NpVVhT#Ur(og0&GlD9r=2es<;Ny?Xi_6#*;*6u*B)O7Fh1J&@;J7N zgt;*uHb&CRO`=g2f0#n#>Ja8Gdu$2D^>ui9zIck)Utzj@@yp=4rBN>Yct>k^Dc4|f zEyO@*i{3x`GwUWK=hlhT6d7EB>kdl>detc?_dgs_r-0KNBl&)?E>d3ZqQ9!n%(Bw7 zXKdHNKiQ5orRmL4XD4~C$k(#@p)BI;ka(Fv))>$?HaktOXC|o4Ls6QO^8G7TPSeepL!x%B&KM3)Q_L{q13ONhM)&X#& z9{%8B;y`qpd2YP#jQuUghoWmM0UW7*)wE;QL5%Akq*4}mUjP5>q1)bn?mIUA;>O{# zkJA7975)FOJo$%C{PPp{9Dn85&mH~EqnD0+_u+qZ_`c-Ep`U$yE`J4Pu)qJ`v^G`t z?g&CVbLsw!v*5!KUB}wEh0c;G7|N$8gcAwf0#dr7875p-s|ekls(bsT^-rLKUpS>h zSfeu0*sG(9fN0GGDawmwvn*9S?*kn4f`9u|h1)E3PWdYtr57DdyacR6h%cQW?@Y*9 zGf5xS5O+!d?~2!5U8A%%RoC`Q<#@M8G=!oEYCW76;$(Y{KvLj3ij6dKi5x9P#})6n z()~DXPgSq|QZmE&m&LIzb*^cp7}qiIW7*!;#1=GcE~s(5|kj!QdLpBsidMUh0FRn4S& zk~X#xNwlX~T8k=cs=oZ}Tvcm)U_89`vGMg!R69{}*Hi&pZo70lU21z+417TZ6toPl zUG)*RdWt{lSCe$bt}LElhvvH9ZI|v;rTTn{R!l^UIyH`Ho3(%%DeO2q8lXd}FEoh5 zBWg{ywKiF=id;NZo|f6gUG0@N#>nP)f^E^N34pyev7!+l0xCZSclji&Otuzpeetzd zMwPm6syuzF#6r{d>=>Y@1ZAr_Ds^=GT?@X4;f1V@eLP&c|0T4hC^0JHqg|LraaulZ znBW+k$IOY=98jAY7qBvh=qcu~oG9P1OT>JFd>rz+DjIZd;R^o$S=a|Eo$m|Cx? z)OOchTIVUjnmv-!=G}xjG+zy#U7uz}X(3tIZBbtugb@Kjny4>gL<(U9Ye$!a)n&W8 zhS9yED6L57{K8aG`h1Do(uMoh>n7Ajx}o-|5&D!=`zGH@v(fDVov9^Ma*k*$?$c7T zRbg@Tj;VUIUtaT8IZ7IRW{$3r9fkq`jrj=|8N7uFq0S}F#rz;G-Eeh_{DG+&^o5cm zCym+=h6rVgiHOc4S0zpQEHtJ^6T>6yLRN>x^?UTW>fAWHQ`IP;-69XL4^54-c<6^{ zJE)YVNH`V)kF-Mcd)Kx678_^T7Om7YYg4KkpaQ3 zKC!6r(o&hP^z7BIlUaQ7`n9V!vK5p+PBp>i(dqL6#9Y|<5QtIrUda8CHg-P2Qau+W zTl&)0OEX=yZV>!tASU}52O&{&&-A&-#R`U3hqey-h#1+AW((Kl3wZPM?0^)Td7Vy_27R;={*3b?n!Ub&h_= zkzYP?{_vM2KXm9{?Qi{l;6H6zv&e$6Ft?nfracP5;LXM)^uA(J&z9-yF*wh(+G=`1 ztD{xy_96qS5M*syQU4!%?*T5yS>Aomb9z6vWLdU~Wmz`1Y#)1jvD{=8Tkf{xMzd#U zXKjHRM>1dtW%m$j=q+)mp(K=0LN6vjAe0a~B$QAB0YV_8y@VISo9}ne?9`oSyYhY4 z_Zo9yTRb!S%v0`u|NmEpGW(PqfCMXf9U)Ams7gvHsD3OL(pijX3*4rdfQ{L0!Pz>F zJOjJ;O3801tZGt-Ojd2FMl%xDCPh}HaQIiKx&U0me(Oxs9E65Ls_l3eFK@kBE_6^> zfww|7A7h!kF@gC!tgz4}KzvN52VM{GZZb*Cwf`fFUcQOb9f}@g%6Q-O#ZXrz9Z7j% zc_|@*$PHR~d=-lFH3}hKfN=aH2;(-GrOlfqTpv;O@7;3T= zIP{`7)3bYmTX~%PlC3wyjs!UYE+YWsX-+gnK@z|wVUr~l1(~5(4uz1v?alLlPqENx@NKm#NmIc`&-Ho{f-T-W=B=^^2|(dmw1L zr{x$pZz4(=OR5|Jk0n%q1f-aTo&oGKAefV9-f9m>bI)-t;l1oyj!39vJp;3qWzxn= zAEQKv8tnS;eI%$v2ABkmgXt-x0c9yN1)~{o ziF^vxqj95RcKva`o;$A=vp6W?%j9e6TAI2afTg5e0Ek1bBs}RHACsUY?nz9Nct<|L zEDkR1jsxbwBRdYzNPT<^;?f=`df<0h@fj(i984be;-#GQK$gfj31NesralEy-7W)^ zoc`n6VU@Z{^iWU<0hSuYdy>bNW@=)qQsYPSfGGtvz>pWA(oMd)F+IdhK2CKI7hWmq zXRA-0o&n*Inok-Dt2lqujse^NBLliVD;*GJo5V+S%B^Bu!l=g&&vV;uk&l7nN@W{$ z$B0JYb}?lIp+U-%v9N3_O`mL~pzHf?m5(9k^*E)ji@TWpmMwuHo~@vNz@MV|QFN$; z-%TmPPZ7!{jhCmKDZ1X?CG}<>l9k8R?auEMjT#a!*?h*%kgqNmX@8^*k|Ns_wW}5^ zRk*0a5g9uv-pms;D!@U`cZ4QVL&(^9&COMF50mm_JS@vZWeZ-SDXht+0ERkIyZf znYqH)HS%6#@#~9kU2H7gzIegn*upm#-m&oXg@-R>7N+LEGym@SXV2d?Uznep`}?`~ z&pmIhI(N~`DbxQv{fX)Or;kkUp58F^Z&RP1dezji{wf1TzdibAqt6_DdHBBIxz&8o9Fl{NYzm`(A`U4pWPI3iuC@NPVvEmA0^P48VU_Jv59hLUgnpsi5 z?~bg300A*O5d};r0?<@slDWu0vPTP@RWz$9^>TM4#%z`VFI9J3#sYY?6qPU!%CBh$ zFVreEQ@zX?NrI^a0y1ipTkPViWI%~c3s?qq=ZGUyz0@7a&CX-$7vW!^-9}uMGLubN zCfc`TL8xe}m$)Ng7K2fSkD+uzl(uyEkp<0j@hFxqn7OQau{)A-SX{`ZjMFehy&82= zPW=M7*FxM1_?vo>J2C}wFlho@A^CNFxKg0NDrdu03ym~ku%ddQGZL>9q8_kH($d`q z5HeSr;q?&ZoG?Ib1emv=e$N>RqzRDJ)OK*}B*{jSFvVFhOST1&Kb=nH zih7PSl6;~CbQo2~PC5}s2c%1YPbmd~Y=$-&GozmEjwELacgs?>CW^kw`71%d$9X6C zYguLVOMJqhil7kThS9+7^lsCxQ7AHx8Wct9>F&r1rHWa06P_#1rWl<85V<1a zD8)M+9139}OhLD437G>uh3YBpNQnIaAOyG9$$*nVu9T@Eqp1_)I9rx-RrO?NB&wra zmSuq$gZN=I@<_(!0Mz_vp5(1Z!5N2#cO z#~Eqc*xnpCQ;JL^=80rr9)wrQAoHaNbY;{N-H~~=0T`qdt~Ym=m^^(IHLev>utr*w zL#3YJjD(68le4sxr?HO(kSuM5(_g}W2Oo#H6C>|)M^bA{`4b5AW!_1}$Pz~-&u6i- z5XV%&c~g&fMnc042&04D&G{@L!Ac?|%Lp&JAwb9GBtOm_nYAjy4JxI+jHHgAHYir9 zfYDAXCwH!@9_x$*QX4d93+_;>1?f{jyNMtsz7`SCI@3rviP0?12<1lug8qKwAjm^01MSf=4_c=BWq+Y0Xso z-I4hW*T7mr{)q-A7sw^%s@mj~>AEG&R#f-6BQuq>O;$MzHK)WFkcy`0Vz_cp=g^FD zkM4FyQfEfJ*^(v0u`YOLk>TK@R48GvfMQImnlqAeSlGp+>stf~AG}nuD_qqSYQLJQ zf$>#PwmTA#UOs*aOnA|jRQ;I1Ph;6rL|#f~;K3=VsxvZQzz`z(R1*eK+HmC-b5^hh z=+uFc8bPKkXC!hePbz_z$lb(l!K$K)%ZBcP1Qx0W30A?f`W3g`26LPSLkgw%c6q00 zdd%}GG)*Ot-)rgtc_)}}c7d`r0?-r@ptZT1)Ch|3$z#XU6IU#&4?81~$N+*$?JP!9 zj=ZMaj>-~;ssdyvQ{XIp$Q@bbVB>kww8IzWQ3hp;^}-|r(=yF}t+M){Gcp5EaEWi{ zd@@gA4W=GY-kv3RPc9DlOZ5SFWC8vQ>=0<{I7?}6Dd`KuJ_j3y45uyC+~-sg-Y(ud^aohgy?0Qj+vOFbopMwmKer%=q)=CDfdk&zq;00Oas1Tr1TAhgZG48)>ktpe~2)Cj0| zJ0r0b?G%R`6OwsS3l3xk^#nz%EfN=yY1K07UG7L+Z3r~6lB8*l9t390sRG#=n9Uk} zyq2Z@Oh%II0M-P72@w&iC?ysqq+A3Xq%JXye#)52bVh=gPYi;N!nAPbp_LdZB)n!Z zCn5l-w2ZpT8JRJ26y9?#9K^i}u>i_;^B4xXD%p%Ob$FJ#(;1nzAQTf;rxGO*+(&@} zK`_(bRIW%>2Vz-0(j8f#oD6#&&Bcw&A#Sl^#m-=TP&dS%GU^e|NIJei&7~xiKo#GP z0Yp`cs65NWe5XdYTu={}kw`tPZu(+?JK`*f35=D_0-y;A^V-s8s~+Z#MBhv6VZI0+ zFF6>J@-)INVX$OCsKys8rPM>+ky*0Bha5RA;tz^_~?nv0m zgwYu}zO8`EP)bSPB!qLn1MNU zlRJ_xN0rg$Es{ZW1AQ!TI|4e0_k*4&l+}&SNNh4zqKHk4JV4IN&Bwk(g4HbU5hppP zZg57TnKSS%q0}G)0J8&G1|toVDbOKr!}3}!sq3AQ`AU%h9io+@O<7MV#G~Jq^{~bmC0LdwKAOyM{2PMV|nO*u;iY+s^(5Iw1D-I3CwPQ?MVRoDz^u>{~xz!btD zK$caqc&69Pkbu8>^xHl9|2l7cxN(69=jXBH2!(lwUcTyH%RXdZ;Dt{TV)l+@M%FM7 zus2tfJ!Oxj(iG?&5;B>JI4%|ZRpV!}c12`BhW_~_>|Jg`jV>lw#0jLr8-wA3_Nk_f ze{x6SV#uatQsS#)KyYLE37d;WpIn)fTQq*^j>ON-a-;-+4sD8xzz-42tY%WnLVVLs z8~^Bx1Uk(|xf4VX0Jsw3+O&mPDuvo9r#O~*%lL^q5{XzP!~_%!H(KZwDYC+-60=N7 z1Q5B#kKK`JbRh-7j%R@Z$rl0CfI(TKC4#G!Ef$R*IU}*IpbNE@s&c`xiIG8aerY_$ zvZGUnWRLL=?np{^nIonxh6m^ucugtr5%_7!5ukjeqTcwSJ2KA|Vq$ciA_1kc8ao>I zm35{IUL2gf@dI~cmOv`08KUfB8wpuE0N{+Q!X!r-6Fz|P_wL9HdY8+Zu_d!DK5j`G zhuC2;u6U_cF~0ANBrHn-5w;Uxk=z8PSV0O4)CeCh>M)l#zUPk2n~mmPwAdl4*R$9SMHF$cwZodIFCU zy$Xu5Nf3$aX(9qE#^1Rk)8G-ak@&2vl6W{}L3JZ;&o`xjr7=s!x1EukR(_JgD1?Zt z67eaD5rBJB_naL`DkL%1PRzpUc#?qaijiOCWI6ERDIJONm+v=+Bt^| z#|CA+5QqX=ialxBXb$xacO;3N8i#{EQ6ykqym~MT37UX&MkItYpHYA7j?AG79S8wo zq{(1vmBF>5otN@|!8pv~tN%@NBqfd*m#AYI$un45m_2D4@c^_3R;8l8?u-Ok2U&-N zl=a5q;ml)DEg=tCP<&oasQQ{a66yprF%AHS7(IbKl_z3>6GCMfqL%tN^;LHyz?R}$ ziar*}z}=+EgN?xaz$L)u%c-w8BMGC}66k?anpL70mgCOKrn&B16=GNEtopJ$lE;du zNBC<++F(g=u0go7aS2JtC1<3t^hhqAD3NGBf$u{?bC&3x!SZLFs_KjGNRBpL zDztHf?u(bg9*MNEP+bWAEF#TPUvNiC5u^MtDO&bDN9VLu3~{F^SVs)nm7@B*GZKqU z&=0Z92q%z0$BBODzE<99hrewoz@fPg+`&&Nc0(jEl^9*vSnHi^XhZ% z$aFS~rAotxM4f<`#}kt#5P)&;Rm&J?w)(5)NK7SQF%Y7xJpLT&kyA&Qk?M1}VY#{L zv(88f5J`B3cnEh>3{GOSd>g)H2^9z6PDy>n9Z4@CA`QJO(wklgejTHW+CjW+5(msz zeY!ak8O6syG|R7(4B=D}Z7g8QgD_W4(YvZX<&Na4h~-9BgpqXBbKg-QVwuoaNfeEU z+g~~(2_EExUYXznyNNT4Z^{1@2&)w#zrv(Ut4}&3ivY<~@NmF7;)~coLH9}%^MXsD zh7*OEp+4b^WPX;@1)LQ!VIoW1I93S-A}yZ4ITvc`FWiw_gBpP`X2-9C62XkQR#Y7d zwmu*% zHtsAc0NpK?fN)TyBq4-DfC#I?Wm{Emb4CKXTE)`Bo)U3OF)6ng{ar;0pj~O|D3#Tp zx+ALu*6JJ1vALBhv^pAkk|GCvK8@ zi#sw8mcEGiyj)PQgN2ixK(@$j1Rh3gO1;?~NpuRQ3(rAfof6_D30dI-rF%)dAFHa~ zm`|&l*rsH2BS%|2Kx^0Bvny=;*7*XaNKmqXmT=D6`@xUkZxjzWPGfQ z`eSz_O+`p>aej~?DXuyL`67%eHc4WoDfLEYWD&zvPv2#qRePmI$?3g za>TMRW`Mg|5G9LTRgJxg@vX0*MI;}nf-Gz>?ZmB zty9mL{MX676Yrl`96vht4OjqPGV;rjz3MG$ov||Z(6Q9mL^OM!92Z#p`pAO%q57bD zfm>CeYU<*JDYeS@2|o^i`|6bw=7Sb~(jZ;rfI~GNJMTSs@II>Vk1d61go zVF26B?39%$xgX8W7-rT*jfQ?^L1~+hH8jAgowYJKPcvt;=3eI3xhf=iZn2v0&>gvA zzj<`~0dx7_zI&GKqxbl0*uulsZV}h6Ovv#IwzrF-l;nvf+>xMJR!4r=ZffgR#^(c0 zSk^G#xe6vawOG4WXzjYIwrn@MlUK%AxR6?tENO?zo9OJkIJ>)W!_ynfUa-Ha6}P9pc{y3a~p?A|}r;ZWavb zHq131KTi`zu%ANg(V+k`I>7{gxBv6y`u|Te79YCsz{2c&ZSJ#krP)849i4f^^hc)G zP1PrVGy_5bzNjYqO+9?J}8yo3s-===7Qcss&Fjp@Lq*v8{*5rycdE@w zo|jhG55>LN(6~darY7+cbq{vu%CO{l>aC_h?#8;t?XthVtxj&QV?A2({NnrT$k{HM z;M(1bvm3X`>iH%|rHdN4#!Yeo&UWcKWNMvjHltJX_A`0`LQ%xS%if~(5~e%7 zaU()x^LqbgO4Cz^64B&|#e_(36$TDUtZ&@l%+Wt?T@;C2^eRpVN@ zAZz?{D2?zPN`RB67rh|+I?~g%o7F<&8vGcqGg}s|bGdPJR-PXd2;k1W+3jX@O5x7W|Z$)MORl zy8|Fd3jHbTm1YZSwWyaPTwF~RK+R4}-NntNKxqvuOfG0##ckcvq|#n^D`Q|N!Ny4AYnO>8n^IDe~xB)^DsoG58bn7^7a!pY3)2jDLAH|57*9 z1b;g(Jg#V4&5gWbWK>m+zvdgd z{ZBo+vQ;8WenA!8k`Ug}%$1=}MLIMEbBgkNS{Lbr0+R_p5*NPXTW7g{z8 zJRwLof;a`J24O0qeYA*z&_z2ANJZd{<#ouA(WG-UTIEIpog;9;-eb#Tt^AD-x*8Jx zsJ^DYB&+6^($Ydr%aE{E0$U_eG|*B?0EhraLl-DiI&_#P?@lzpOyG2|LfVt+=QA;n z6rFVgEHIO&3(pc?Sc`#U1V>4{XC+%9<>4U z0_+f|NkLZ=f*v4407e0M!{(BK{RF;RUUSUcXl`g`-EtYUo8F1_b7em_dUY!WY68pB z{%_M;POuqV3l3gMz!-rx0nCY{RyX^(&%FCq^T56R6}_Kc7ZDJe6euc%Dy?qxThq!8 z*D)>4U?YGvMT=lfI)-CZj9!{AK?DRBVZb?_BT;%k01h+`7*f)PS#n@4>G%h)nm*LD z1bAy?5Yh#WnS_CFI>i#O3UPU6RiWL=#A)h*B~MCXJ+sH~{%b zx6$VxL-X$<ko+vIpE#sr7VLy>425fpKDt5Kf(Y4SQn@ep!X!7x^_bD zrhDys?S7`WR6k2HrFk!lR!9MxQv!bt%rg;k+>A01eRQ2>YFRMU;40B%hr;O#)K9R< zJMJ+L-ED7w?BV@Y^N?lVXfB%v`_FC6*3YEyGqlmE0`P})S{4NE12iFN_5^wp^eCDx z!I$6)g$h51on2d~Z;`vP+7l|EOp(L_qzQ-%&K*bu0;vV>D_AL%g$kICMuo>SSjWt} z{T7g3^7C8jXNW}E;^n@9(5MwF&_jWVz>b=dUjeEO=oql?Xk7*US0m;UBub$Bw@dZM zK6CkQ`&eH&@J;p2a_~aaME?saBrte%1DEKD1{H_aL-09h-pzor79(AZ2)2=W*aH_#>QKX~MTeeM2Z_61(2 zV@Qqd9Zqr73H41fu_j_Um_D$7!14&rFf}4*GMfD9KnFxZm}X52#4}{a*qO#XpDx3?qg%&L_ zShwm_eS^p^zbOSQNDL#cC!mC2!f;a&xByb8fDZwT7E`lQPB>J-Depk#)6ODVTVF4A zvP}vn&JoS|u&!~e3xXvBM-R9!z}*3(0^|*NLm(wY*T=hql7Kw`Z%iQd{qlhRs*G0G z*NL&_yDXGZfPe(p1)vuA2Fw!iAfQBP)(FsWfZ{ZIDQbKpAO>++vh`CV9$OwL9{7X> z=~-|l!0!dg3ETsqH7&LkZuP!AHafKr?5`}F$80CPz3Y&afGqc~H0SH5aOgr80W@Dg zwScMy=oionFbc{ALDvIoir(oWK*Z_Lp-Z|2Qoz%H;oZjiTCs|PlLssXH43(XWjV+R zO-!^DaNt#V0mM2=K6yH;s0#+SHdn*-|6gk?+6!M?xP1PVbHAOtYxd)_nVDxze{(uL z_58_SOkO$hrisb%d&mB6?BdZ^jZTg{MtxZojn{VR{MS!gxk8*JU%3D+Vp-r161H%T zH3cQ0+X0}LhY=17#|9=Tv;y_jbPq`(`B_bZXiq%A48SiM&(sqrAssbf zLFEP-hPDS?3!rZc)G`Mjm_x3B;Q1G@*4P9Zu~;#RdqV3STCkXYVy46BSy)XAQ8p;R z2SpE}9dJ`1c>%~o{J^q9=ut~iP|j+iT0=K9!PXc`z5PkF4Q=1N#Xn_PoR<_f21udE z4J=5aAD}!!LI6J+SmXEy`b7(rgHwchQ~#~v>uDC+v*m2h#04W9z#x##q%E7nj}23* z2mombEG?g*gT$d3AHj}rsj*YIEpQ?~}v3=R}{JOxl3D>Z@*r5YR+ zMId2oI@>Vi`NX&5CF3P{1K1H+M277uzZ7b zPb}Umr!81GpnZU^V_x8@3BVf46@YJu4#6cN;sBzMW?phdhhiaZIwoqWNm>h`3NYg6 zO+l0th;m`fE>W1xCFN2IwF$+O$>(3ErbMwj&U?S*bnB0b9`GA?K-k2tC13=Hg@9!O zYYg~2ioO5{IHCg_WsTV#*8@(NvUcp2Bd(LzpI30!GEUx>CI6!01sB0wUjm&UErq)R z$`?ut7G{bPt&EvYX?8RgT?nZKEV`Z4Vq3>Z1BlG)%NyPJ7;#4Zwk+Zvp#5Qm)7yrP z2^A|E475;4LyJW)!SNc}Md6a1QKmUS-`J)jVyOG=n}DxFsY-wbOh6*5LSzcpqmAtV zns*-J1uW&{bLidJKo&RmdFSEB9U5e(A97e`c!^6}#!Uh3$_A4Y3^^kBpgjWj2(qr@ zzaKUinc!C&=l?NhrIeF(3lu2mn zgV*EFACSU#KbeDt0&f7YautHFtSj0Xuv&t|MGAU>waXUFm_h1!8Nt!?g=0UF&GnBK zW#V5MwzB2|C4w4<78c|}AU?=VWJ|bkG;*b5`|SC)Q3rBJ*Ja(K7rUM(8vRN;iumt_KV+uOp^sD$AVx?9XX39z~9IotU>UE!EP2pj^sPx z$(qpW@khfj=jZR1D9>45YLljcY5_WRXt?l!a=>bF5s=^fE3D0cE>=4RXW&?ael0pF@0_`|OK2Ad1*3BP|JNCd)rHS2 zq~>2b_v<+m|9{=gbEf}edf(LRCVx3;O?-Ib?D3VcpO5Vs{m|%!k;kg!vQ8|whKBby_kuL2psR1F{wvEk~c*Xc{ywI%NvS8y{40}JTW zDPccL3r>207l7GcF;hT#!fMpz@^L@6SB@S&aPKkOx2^iJt5(UW07l^vVYWh$1h6SgVKt2b9hJgNaEE>9n7w>QU(-6NP7lg1qKnPwNfGc`D9R=3 z3NAWCQml9ZRBO0131FnFU@~j$y#%XyfPnQG^<8ojHhIPg1rdV%4Q4O32jV(PES6Ro zVW1>^|2s|%h@osBuf%c zp$3b$efJI!`1?^=r`InRGsN#=1G`yRAtjF_mjSwILSj(UrP)Bj0T5=Gnw5*1A;H{a zV>{DOw>xVm)-OZ81)-Dzk#m3wsMjb7x_ki~WOf){NpRySkEp1Peu;!U{YLVF zT@{36k|(y4s1}|tfg%TFKSkVv&_JmWx~HCv6uJTfw|Z`^Uo6|{JBN^F)F8J(Kc&QM z<6ntaa2qJnNaNPPt6^!<60z+(9-iS+eVdrU;mN|afo_F^Q}DFm!-Q)VG8A}tQdQ_J zAecsb-ce$)igF_@r;#KQ)Jc!pdDf3}7IAvgw!UY?Mi=IF)5^WgBYYw8)f6&pQA2dW)1 zVvsauEs94dVN1YHB%c7#8<6HrhlZ)fYRAmr44rhRQaEm|Tl28!SUS$H`xw@CmI za!#SZg@%hdlp>50nT*DY@+KD25`!54r_@ujW`1@N_ZBuZGI&+Es_`RWbcN=D$OJ@` zQ~|(OTI?WigQMnp5;tsL#)|OjnR=+A6aW7d;|s>(BNjfguxb8TbDx{b&i>xa_h-(U ze%jQ(Ox-g1fyomm4v&9+{Oqw8jQ+>yzLEEioTLu%K>z=#ZxOh^JA>r8m9;3)Ln)H` zcbq@C7lE={f)hpPm2v8AO;)o-VAa<*R*N6*R~rZc3+dz<+m4$HOPs^tghb2>?=FOD z&_5*~&!`_RM-!-un-3qOR;7QB@{GnR5r*5m+XDe5Os&MDC_$2HA0~>WP^2${@(@V5 zpx4$+FD?v&+`$m?x{VWYNP-P2Bl=3%`%4+@6++w&UoX`SaF0Ns%`&E{nz&=sAqicm z0c#xAHHakb3b0;a%Vf!fG}gv0%oQZy2hBRmN`|YPEo2K-O};I@j%@V6Afy`_Fh|@H zllbL3?I)7sLQb7Yo(adX5V$@oYfgDoW%BqF>*AOVCN z;X+8oQo^fu^&h5(;L^)I29Mbo2(?%8d;OBeFqzB;;CLPAq+4jATyy51Bv8+`)Z=CNqQ0 zZ-oLx2{my;E~_my;EcF4h`>;tMEVMPf0|HkLc07&Al`!`}BVP|R=b+Z% zmd1!=MSM_Qx-T-tDghAa4RK+xwTK&Wx#<8Zv&fYKzI>Zy4zeP_GBO!ee*)bkUAWRuS}1Z( zQ;;E28;<{4%Ve^aq;txeJJzBZ2gsPLuRqz@YcB`}FC<;Ta2-NS%?@K%FA3u_N{9Xc zNMwcOHu*@#_xi}a$K=iohC;c%PIdS#L0W<~~-<G@U^mKG^lO2P0 zU|-M8|3A@K+`I6mh4K0QbAL5=#%z7&do$ao-!;8B_4vteP41ZZqw(L2KXU9NV`q*& zedM3u|NEd?Z9H-MKd1j}`rve7>Q__mnR?39w#i>les=QrC-0oxH1Umz7f;+YF*p9H z@p_vuLH#7@47f7byc(T^ow$pmXDenUgfz(@yS8P8EMX`<0sCb~rsU|ny0i5Mv>Mi| zkTw+X|7LE#)&)&-@-$ly*Fe1yC#^WSLf?X>qp>3^bn?Vv(aQlBZ0!o^!aYHa2JIpp zIjEE8)w*DQoyP5b)oH9-Aw`HW?^U8fT7q04Zdo>^{{Sv<;^RPA&_o9bEp)f0E{5+- zEp!(Kj%S>_Lbk9R^lVW6P48+UM@E`RbPifzLaRd=qTup|ovmSRpmI zE2z6B0h|Gu7W{>328}PQ?~vV-(9eKeQ7J+;uJdeXvU!RBU@HT1Kt^UX&9SXnAl;im!4Wm zvM`q@y^#upTA^%H9 zb){n`Lyr>%XTIGu1FJZ6MfM)B?IZj4AGE#O+d~K)Jw~Dst^}_Jk|PL;v$W;VM#1$U zHC?H|bxn3ZM?A7>m3u-VcB5+d3A9gdxGtxzkQk)+%RhYSluZbTg-c0&P?h!s(;^sT za$U38GTD)oCXx}i-3XEndiYkakQU@-_`3?>c%FPOOC{9THF|{0v>z;GvT4f#?7-CK zk)k)lkKgv^LY%%rQt-~eCb2O}s%8n)g>;DvOHhhk#S}-rWUT@nq~)3>benJ|!UxWw za=5@NC+VpJeP)I1V5siPrYXlxNqmpAxP+J4VeSAzugtxri^HyUMuzAcSY!PP2|?k3 zZJHrA_~ivE(FD*Or?o23Bq`hktbl5Xa6z_YX|8Adlm+4B0UVf(E2IUtZ_av}mFYp@ zP76udBI zC3#trIxy*31Js2!j$Aer{7KNPLk|9&wF0PCIq<3}HP03C0!fiO*#at;OzF;nc)nmt z;0kz%sM(Y-$K&BauUi3TE0h$%)u*BW8Ims(o5C5S%sK^nlmHP(^B8H?wjOlgYxzQD zfX=2v=|kln|Kf~S~>C}~Tx6f*@9mT^ci@6%TVXe&rd z+FX!giCXz;RvHbeWM0ZNo}y>j=`8U+JEd`>qn9MO!2>(0^@prDpj!ckoQaAp3OG|* zI!TBz$sE&5=`uweH8gLv(pJudgz=Cs%+?j~w{8nyq-?BCGf#+_WQ_a|U@v6?%}dmI zQkYY+v$={U$KmLZz+ef=nszTAKIDR{xyF6p8EH5F|1D$jz{0l|((^Bv`}y3S*|*Q0 zFjJX+VET-y7ft@xJTY(fUWpb05hO?74(L(WWx~kz_tNm2%JT>Adx@c``MaSCCro zw^RA-6)4?883(4618*clH3G|(%P=`~IpPYKAh2dg!s^oN2{vRf(P4!0PhElLO*)gL zAbuKj0ntf$G2SY~crkaSf|_y#+Rgy7$N<2Y*Bn6i-i3tf;Ek52ufX)SXY*Fyf1zAD zpQoa$n#Lf{VP{B!49k+VO^ua=lSbpectMe1@i=`$xgY1P>=l2(uQ#HD8fa5MEGStJ z&$%q{B$y!CN+m-#QyLdlQ>mA**WuM14xrZgD>uuM?(z4#YJ)o?XeE@-kbVdAt0d|a zKr*a#I+!wPO`B5dk_O8DX4^XaSbO=t8!AVSnShlE;Fe#U)|0D~Te(Smf4}s*Ms*zR zqFG5ia>eZ$Cl%@(GGf$-&;*$)r8MFvCc;BYdpu0hGgfYtc?b6jN+On9%T&07M;5*Z1MusFDBybQ{ys0zoZ>&iH8dXQCG5T$t23kCEN zdD^^kEeX${7`H}!H^m;fw4}O-1Q1y)W$}12z`m8MX1SWxO)Zco_BKqEEc#zm)bCofG27D}g* zmm*EGSOj%gU}ZWx<3kB`pT0tu?)IQvf)WL;22I!LvV^9Jlsn@#k}f98DeZPdM7z4S z?!pZRJa^LyUAlK}UhjJZ)L&Bf;j~_{xl(08^Mtg+QqxL;9q&w|{(}4BN4x{?Y!J%K zjVpBQ3VfGmk(KdF^0IE!FAxq&Nml|)d>GnHE>!?ZT@!$m^A}Qcd+*tAAAoUuP?dc4 z3az_lNVS#df+-WPO40d;$tZoE2*M?)1OVOLq)$OJ!C(yonG>Gyz)+oYEA;OYDD~G8 zfY>}t+RTmW+Z-wlZ*c`<)RD%s(8W*4Z9(jPCOEVY4lFy zsB{-`O|vYpp@dl|RVc8rv_D5>i|4KkExRKA|2pGpV{v)my9*c1zi3{~*|T4pP0hS| z`hQQ~G4+1%|6eqzCLTHdvGMcAo5F}}k?k^cZf3h-PAtQ8c0FwwI> zDwm}!NW`Z}H4}waoEV^P3t3Fzz!URUJA49wUK|Xpb)hb3a{;bZi5|fsT#!pP81~p< z#04qtWKJ2IlxhlS!bqsxn^T|({TAtdox=@vkmhh|yfay%#fa)8GJ>?;vq~ICpdhIW z5ftwdk^QWxxjwBH_%OnhTkAm1K?3TDNamL-k^hrkHx6o9dQ}9ip$5KIu~w#Uw9w9S zjZ*f8_I4;bXKft>x@>?9LAOyVCDflF8j;~5fI@_amJb3yHbD19(r`)WBhhIM2M}UI z9qc)*M$dUInFOO{Rwas@x$6#K5N1UU@D|DZRw(U^-u2|r&afQU)pfz3+p^iqzm?2F z(XP>ilq+Potqz_VIFaPNVD>H8RCQJ~o>ffGa4ZE^X6I2KF1r_t_S8B+bbA8QZRk2^ zL8T#;-aM%s7U_sB3luf2X3)?AH={8Yz3UN3?`0dObdbWw6YEE1a%=rH!{P^_5-ifZ z)ael#qb-lp@JyzXu?dS+XkSX+)7HryU~&ig$v&T2UzSPv{OP4KC1!#}Rsb%W2p#Sm zAskkW)HC(Dpz@bB?uj?4K-xLBmj^M^&*V1MA0zQ4-LAPseMi#*ER`@vYk;5;o5KPuksc?SK*vO$mWe#>9o2)$YZmoDkhlY+ zujcB&$z_Aik`i6)CXve}Y0<{_l2C7Ird0U%_hy62OWbdwucXa7vTv2gL1N^0%>wfS_B1xP{by3Ka{E zE@2kJgTS>HOmsl0pU+ZKR>&{GMnnuv za5}(v0-vA&(lTJ)5Q`*nOoZkCV8jV$)rGAWs6x( z1Egs}#gcq6+n%t27jARCDx12^zX@b0Gcd3$)hZSm0X`aHJ=o${Lv$YkgbPeo@;sxP z>KGlvidHPvEnM!P%nS`dff=ZipxPjXQRag0K!K=5>5sIiWy-NhdY2&(A%h|A*JtV# z=W=@Gf+%#l&=I^QU}uOl;- zg|p%R`{~@S+1Jeca^~UF@0mVv>hR=8CZ{KkjDK%@@7O!WP9A;I$UlzUtlnb$+PFUA z{5SuleojMzLqTV8B@NI~iJJ{>1>)L4+^%9Y)Up&fm*~N%>5S3f?21_$4@d`*-~Qv$ zOAVq!W>6VcNej9rYMJ6@grszbmCBrCa@;o1eL0$$IyQzS&DD?m4q7R;r9t=z@Br_^ zRe)wf!O%@YQ;xXi7}I86X!~+ys$ff;8;xK{v?zvkj)wI(?m{uutEeA51cE9 z&EwdwR3(D&n9JA%i4v4g$SEI+J$6Eau8vT6szM_r$b#e!Q)q8$nz(l0gi#G!pd%mV z0l;b7PiycD_nHPR90JeSG$z2ng$f5eE5ejw#0oJa5D@@17fEvhQ?KPrb9Z!T3j5@S zv~X)luJslEa56R2%zdK1B$CdesCmAP+S#O;DfaoPd6OAH=iMjLcbIMbQq}x zT-}^dSCtA>`hh3}b_VgFbS4~j_7qO&0t}K(ZP2@s4HTeMXx30EoOt0EDv|65uAFvu zBK3g!l`=LcN3DKaplt@!erp=iu@O4*@VyWl1Lr#rw;kC7VkiJDK@(WR(1Pa9g8w72 zZ9Oi;2DDMr4O%ts-0Tws(jRKkwa&y~T*4nJQJ+cu2J(TMXp>6?AToJkf$H)N`(XKo zOA@%$kQR=hfXt+q9z3$zk`2-;vKCAa7~8m~X1S09%_`SRxq2W?hE{G^KdnJC$Mzs% z3ne5F`BL_u65vu~9Hl6D@qng-{7@=Fc&N$1#lnv4{%``fr#I;42$6uA5E-V(wSis0 z6~-2)YXWiy5X))jfI<>12#tdmKcJ2wFqEpJEe$$5LXG0U%md(ulR_&8+isFlqFoGK z#_~}j3;A)|p7uZp2Iq7b{p=?<=<&ERBzsH?u31zr^u1DFLU{syspN(VDa!7PIRehn zD;0~;1k)Q(3O%Gjo5w9d*%sHiSOA?I=xM5Ra}^uKD=b7DMLCWIICnIcUEeo6oQkc@ z4Vpb}3&2CU&P)&LEBIceJ%A!2+5=?bG^&)+8M79q+?gv zGYDI!iRc~#<9tJdwvSLomEtg9$pmS-0I-@H$gI)T2(?%Sv`PL-Y0A7?r{-r=2MDyT zYtZ;{TL5cHqAg1mD=`NuOvD1iV$H!8UQN|%MVnH9q7E)2c7p@`+&?ve>;K_U$E|DVj=0{;K$GtZs=$@Iljub+&}Tqq~5bj!%I)Q{l*yFbbQ zAL5_Y>!&tI?n*mPv$4#=R3K)Uft8l%T#j5X#chIeBncaur79FtB;SlgMLbyg;k*Xv z-CaRpDkPXzMW{nKTrxSVuQK4tfWv06ZpzG0hlt}&E+kcsM?LDM2HDxf-a3?p&{B93g;4M^Jmb)q>&Ny~O0yE{5Wc7iB zg!rjYE#$gONDtipeoBM1@0CFj2{S9;2_TrUyVz@Lp8!y@R%EMu}yYsUDY zyMD__W*cOGLoDH-7ZE_DKZBA2+^KBVX@Dm!SIpCQSt>*MR7_B6fngQ2KlFnvxTZnA zcY6@Kmg!Ke4?av9(h2w`1Z)X>Aixmm$pfpMoOJRz6Z1Y0a093AH#Erd3h|jIOdMDu zpn>RQ#Jj5ytS&=Gyp*M8gcg=`n%H{s#9~4?Sh;~PGtO*~^o9P)D=mOI%F4lGvSib1 zNo-Gu&w$Zjy4e)1c>;^AS-1r6GbCKxlepua!yrKQmC$dH2EKEPAKMV92aDEOQD(@! zwDdcm-|&tw>M1+MO4S(7?dLf_#A9`X%y6i)9NY{-eaJds4aB12_(?iq36=$lqSM6O zbeIs)yhH*Kd@q$PYZ^{I*l&2ZNxIE<^a0Vj4^ zgG6ws35{+f8^BWX5tu3B@FIe#zM)~7W_aqKAz^Rhk_Yzz+i6Hi;FB68f%k+C9k3Lb zN`$*%qh?1j-^(`6B*iU&hhs*;#FBh@Jqs^%BL+BW=QPL#?+I}GhznJ#Tv#G|nC-c; z#3BhM<5tl5gGow9g(icLFs~surEYGJ5)S39Q3ya~5N;_z)xlh8hNsuVUZM~(!`)4l z0LDvR!-R_)Y&y3507WK?4f4bxrVMylY1jn!oRSGNZB_Vg1#K*y2E>%oZ7{SuxM%~r zwx=~n4`YRTk#GxzK>>CauxepO1w@)iIP((3JIEhNtyjCWoVXuD2?i}T$QJ{!@2idi zMXcn21T3EW%cT|6yAr5(aLVFj2>o92&bopn(7Jusq%Af`4a1S>Ikk|mQ&|gI0JO5W zWEBFclmZJjDU5prE#NAOP00&_2a_2vynAMYMDT5a_iyD3cB+V52(~Ln%M^sAGNu49 zD1=hrS0)gYyhN^uTH8Fdg2xS}48>_nH3~bR61D(6ipf21dqayi@J-#^xJxR+ ze402bn=e>t;!ot)(Gp+$h0;V3y3NwWRXjW-NYj@imLfi@O&$ zEc|@oBkHt;7cAUqylr7={I=Xg%{Q=#X=*>H6_^V_ny^N$6GR}o`Eq;&m=GEoz%>Zf=o6%Xj{= zB%yTjB|OWa@AQ+2)}?wA+qU^E%`XRMK3qe2PL@Z`?)Zp*EhW&gfvw)G+q&Rq{AUhu z1UH|p`Kai4N5jc)sI}eyi1W~`d45Et?*V`vL|>^qMF8L-N&^W5z$9$8e5A+jlpm*b^^fEK;oP*ft{U)mfg8sKA7&#pG8y z$1_W+{cm#oBJi5mlzAxMVWLSAPpxaw^9fT-mUrXwb?0@MX-pwLA%#(pcrb(O9u|*c)%BRBD#!UYi)sqCyc-7^8LPOG`_>(6#3g}M$Qwb$?Lav9vle8^El2T z6Fa@$eL^jBwL~Dc8y=E|>SFG>NW<3gfwXFh!dGxpL=?6g>dC>KOhZhn*0ENSJ!Sk$ zSL1ydsGi><0~0KPhzwNgTf|h-BVif%>J}N8^n@b=U*6TrLo!fp7csRtyqXCw4`kpS zEh11q+<2fx1SSmjMWA|NiwH~@-V}kCw1~ijv3e0`e7{8mCOjV%fyTGt*Lh1Lr8t)4w<3}?itBmc&4~&sh$4?mh`q(Q}b>#Z7 zTgNtx{$TWt>J_7p8qJLS=i(<9pT4+#;kOG9jC^3>*utd?6Z2o3f7$%Q)P?h#=6*2u z=DFp$ZF3W|Ump40*;mg#YBoLd>zR+wJcoF|$mZ#E_|2Fx- z$)`?kn;f0^mDO@q_V|@!iH}jpyTbkNzg^On8MOEs637rsRc}jPGi3 zZ=FZ483%kOX5U8N8602dTsgd=Nf=h@uX5w?6~x}9j~Y3>3F_m;aloP5Ka{Zd>Xt5^ z3uf+LBlSL3VsktM(fNa$((=#7o^4EG@OA6;hqRA+ae*(512e{!C-S9^1ESuLWx{dy zCOYBZDeE3{`EFai_7Zj??ybdsDr7uI#k2bTi zj6E6bsB5d$xcjT3-^lN`#JFN_NtA+Wvd1TVd8ir$0mM;_%-j>Xq4N~A)Bf~g4sblQ z7Cpeh_5>ov6%YF^<>3osKiT==rk$ns?BwxFVr$*`aj8rX`jOUM&P%dA&%w9HjK7ju zZ0q?25ecqV6?sYgr0PD!E2h3_S>4`?!1JE-Pz_YE=U;X9&G@}uKH2%z)>=%pqs%AA zgR5;nxw-Gg2W8qAGm(?p_Q{);ufx<@)yr{nrY%Rs11(ec^>R}D$Agom?%l?`qxamt zpzXZGqw8PBG>JZ0{WhjGJ2@18g+7phvN38?ja{zuk2oo zDOdHX7s=e>5o6uYcpJ8*^L_;%#6!*fx}5#m6i+ckf6GdWx2$F1TdV>7bAd{K8iv=F z_!W$q5jxF&r92xK&uyL!8^gbgjkzWMp>3WGMOq$({nC;>(?1%7T-42Zo?IV0)g7Ol z#-?parRksY1+po>7B}4W&$%9k@i$lT)b_6DsE^DXx{Mda9UcA8a|R<3XLZ^Ro+soS z5dm$VZwb7pyLR%9c)qROJCf4PPq~zr#O+7@OJZ>xMLHS$m6H;%l0&Udu{n3XymQ=6akrJQY3g8fO@5G`S@=rV_X+dWK=9Q(8}+ce+O?9!T;T#Y^+`ptWn52?*~6o^(egdT5I#Kkba!a}#`e(g%N zsQwT2dMS_Ia)e03dw1}w?ImVtf0A>~Z()zM=PgO<-gn5l`S3AH)YKm%uv-k4b|2kh zuNa?}6Bf6IwXcY*xjw>fE?>|ZoZoLA-G0DaKDh6mW&7wo#^0s*?A4lU7XNIZ`iMPlrCDzSqbX#$6ok7dBPOfA^%$n)`A?#qG+XkXJoo8y2kY zSECke;A1zP`TAnrcv5%IhBn!qx%!>BKC=%6(YdzD&=u-WxRinBSGVcNrthXfqZA^MJB-=y6~2oFsF)j&t3tDyjJgdJ~?_7*zYap{=p z5gWv7S?!5LYD;~Mpp*EJ`}sl*v`3m$EWw?k_g4Tlb2QiFi$JLWTnRXP@`glDa7cVc zjRC(Aqo-+}SwBhoxO@PrJa}vQ6mUa%h-vAnq4yoMbC6O2Q4u%+`dYi}G;=lDJ@$dx zUf-DPA29W_`f6#VUh8!z<@2RNK2Ik+IAV0fWoS7E-;cgl`0KNotO*!`2Ei-VNfl@W zCyvtp47b)-2}Mb;;rT+IM&+y^J2FFHHUJgiUxC+z#RrnMnr_2`UPrl3E}Ykpw|!0h zM7BKu*3RdETei})qY23ssFQTwmH{ERa)lIVFd5)pW9S0j< zAWngDDqW*_SOYx}cQ+k90t*P^YzC27gAfoM4Hc5+zKE1*bz%BDiKo=ZMZEZsw>dkLhN_CY zTa$gZ0rm$2SEx#InOZ81;I=eCdvWnXw3VG61oZag`k2gZizk55A zYXUnoR|VpiYPtekVa-goVB>QOMZ*1M>qWwxR3DYS49yIrXG<`t0hr=;zzt$%pvf$j zP`ddFc1=0fbnRI$QH?R^yw=u7M9=yJtT}i|YFTgxEO0vohzLE4{sQg-ED5meptROV zzL=g3x4HT&*3+0 zSd+ly18^W+EET{p$(Mj&!4_C5BaxBL0HT74UM|}j@R~sSxn@4%Zg^(j+9%7F`(#@= z=*Zx+%7c$74vB4{LyAlq#10cy@H7-xnpq}nIe*kY;g;+FKiXKd7QO)f->c{TaqimL zcg~(N^SJ46OqZsfG5If(w@-Y0;{5R!)1|*-^p&F{BewcWb*k~`v4=12>*=rhxsCG$ zg2QLKH-RdJh7YgC4t{S9f`S#cr!tiS}KC83=eD;7&r|uXK=D)_uSJJ_`1z3pjTnp-z`|*I9Cps zFYW-&Mn`e(AtT0#Oc8-8)wm1!v}snrO9UNVgYJ`Xzy>FpKDDt`q_OXi!+2CHl)-~3 z6)N}@Vy&>a<)tjBu@<1kC6sHj{)$QCVZ>e5HqK$~0B5q)`zimCEakgx$Z`(1obgjg;mWsrMKwC43vVd>`(QcX; zMzxx+X>1a2YN4w#G<)u(#zVw9@oB`(Yzo{J;HOiC9J-d12+VU9$|i{)q-yXh=wPto z)(LmRt^DwpuNT`S*EmZoV?Tf)G)K6KpgM!Q&%6Y+2}=NAvjPS(KwXerC7-&a8ys25 zgsQIoCC{41nF6m9+?I5n6$2Rt;C?~D0tu5l!qF_|06YUm&Z@<1mxPXmVce8ejV)pq z1RD+YRUV?ZC9rikjxblirV6iL7V12RLIv5qlDwc%yI`E^tpujP zo5Wg&?5toTYRaiv4zlKiKIhQUi{uRZzrbr7>ttfVO|h^@as*BYcM_*SRUqzA5hSs| zJxv!2`AiZcVrXJRyA!82PDSR0WD8LLn0e5TSi-lCZHKOP;6#ZZLlFS6hGtV;nHQSl z;5KNcaf;aUmw5Jk89Ef~x*Q~kpswb!qzNE26}aS72K@RAlhc^UfrLr2=L08KD^1XDk_`1zZ6~R*m?bO1OCjd!s)F!xM0nwd>+&WvbH1Ppimo6Z=64gO8w_f<>&U!t)Knj?AvDVo4sOoaptR&znQsz#+=zY z{p0CBp1ynf+^Jto{pr+^`8(&&p8JQnH!MD|xU#ro&R+Om3-4Wc;?z@vzefLM^sS>0 z8{IVW-I3Rh+%n^>DS>_>u9aBN?gwm)aAr?tZztH(ohId%#z8#YNtB1!oDd z=K5a7>n|GLqwO8?9<-9Wj?|uBANA9N>V4D_X)8*!Dba|QP?u2)8^{Y zvUu@E_Kv^q<~R@C$g{d4OYLvBDYksMoF`qWkoJX9Td2C5cZBQJ^|fgsamRd8 zCk|;Qnc_iRnX0E0gJov}-PY;b)kpfjj(;M}HaZ#B`lC)3&=}`|7P5Lj*Fk4-dO6yl{-@U{5Sb;}$ef{1efl=CYaE$-R z@tCf&zx6Svx8L~pJP+wg`&%Dsf*^iCW~eI%Z+*(!y3MlVxehyaYJg#1eh&CvlA;G2D%NcuO4A zyDzipA=mIGT@zxP`6T41j2DRif2n$mG5N&B4=&ahuUPo6$!!ZCTsW%UzL1~)<^22S zpD=&f{N&uH=YDVQ+PQ_<&&HnDc@97UrKWX~X zsehmPz|`X=KRi_i-S4J}Q^&tM{)+KC$Il)6`PkdXj*eY2HUYl>D@PBEZX2B%`O?TM zMrtEz^;_}$>t)Hp(s|;B=We*647+3%_8jPuC_JI$n1Y=uJPxoir)tDB%jvYH^fbBz zf#_vNI^|+hrHeATi}I-p2u`L`>CAbl)J3HHQ^cjAV$WnwPaaU;CVATJn=f<&VoaXc zD@Au1NmoFKA?%nX0@-{^^%A72?nHXhG0=x@>6mK@99~vmy^g2%j3gh$)~AC|WKzA2 z`f_%hDm=~GqM;^FDHy-V@r+KNw>;B~zuceaA)Tq&@{otn^C|f$T?f48soPI2@Q|)~ zD*8}Z@gL0am`;n!W5F?MYH;wDbYP=ULelG*BHOTusZj-m0+-n*Sp!lAQU9UB@ycdMdNAq_dwTs7e=0n0`i9I@M ze~&lO{rqKXm$`i4K2^aV-J%1SOPB+HBqffa7U_F>JlV}R>^yqx$yf8+y0~n@Z|ftn z#)mHDRh^W1Xa}N(rP?5;Plr>KFcZ%V5E#c2POcW@K>MuYlkec*YVFyCN6{@2OE$lg z=XC+Vb3U>~|@q<_YyXtA7H=O@p#py((tC--RKl@ebfDQ>TF zby5W4g&j0x@VQJOnjk;IbxfL<6{hF+ z7HZ;?y*q6DVb6|$`>1n;jsM-})2`~epy$Up=wM__z7dfEIxDb=EZdjKVEpp!ebUn3lruc z_N740XpZu9xFgf1^yyHBU9p7Dyim!SHIM}832VB)-Fte@$GcFz>Vw@s7P_wLJ(uFV z=@7ET*9oM9^J~$=s@{18kL&QUqmKtCHFD0>TTA2gGim%Lc}3XJ2*C@fXYs{aQz7v| zN5+g6<*{CV&lN7mF6KF1iaGXkanr(h-sL>3vn^U5ZnY~)@&a9Ey5$84A+b$mUZ8`6 zi@hMSLB{8|@ubcwi9Z>&NYus)IUhRnLY@tdmzWmn+D@T?(0KFiTg?Oa+QyqZ1uTMR z98*Ny+Wn7kRh$+_bs5X2jc-Li#C^tBh`;1~YjM$9o(zC2)M|;{=<*w_4~k!&n^-X} z(1m+EsT2$WjJJ#x^$!{1FXN`yqZWjR!eF5jM+0SSEuRd1QmBLrg zJz&hZ+Jft$4HLu`&$VieS9J;^29kn>YGSi)xs26qCwU_ewR#_q?EbLxqs?+Y3z^T{A^qduEPMYKz0g|w3!Zu;{coRM&In9;zG(k3-zLBc=P za;nu|_Mk_DWQO{4(SdPV1TSD1`_<-SclO}^gpwG>Te)}IBu4C~{OvQo#Kw2)bwmx5 zCn4Ijq4e1AH7$!!82yPO3k$~N{FBGHO4h=<`6thRV&R&F|FiJ1#iR4zo_WdSd(@lf zJ}~w>v+tY!o3Z!KPK|zb?pN~%$G*9@zAD?^b!WYN$i}N!#sqZhWnq8iJ)YM({0Nge9uhTD4 z7tQ`+V)I;CePr_a<4+m;pwt3{|FfOyVO`aPR1Xgred$a1IPURfmyX}54ekaVLZXN4 zW&GSg(>l)8r9HFP3u3h{P~_H82S35@HH$SbzI^;PZ3fVpW`J@Qx_bMT&HMHV(cZCb zgQ?CdSS6joldwubc6#^z<)g>;?O(RbgJemr95=NYmf+{b<8wDEv;<+XRqVf}ZO~*( zAI@!Gpv=8pB&^zqrJ3o+um!7COY{*x(T>vcoT^k$c+QcDUbuq;sk=tOiAcD%!JWF` zGVWB{L!Ef1d}+VbZ?-}BcY9;vmI8ZSmMvN*6$lTXNmSYc&%J8=PHodk!g_@+P&5>> zH8WmrA!TXpO$=A}pEH~g_wWku1}a{^8d0QkRD*>~6h*PFm@_+bdIWNmW9#UvEj?fG zh@EjppGCyi@YOoUpu<-)^GM$L^npXWJ<;9|r|L7ysgGa4)>H2zpv#rp(4)=_ZZ0e4 zR&=c&3Mpt`^>Ni` ziMx4I+kL+69@{>U^rmpJ{RyS<+cvM(X- z`e?l*p3Xz@aI_)1_*MqtrBIOWCA{TfBCT|}r>LS2eOGKx)k7CvWXyTAE4=lN^SM#+ z0v7LRhu-6y$w%36@v?WAXFY836UK$R#?9!~hIlh#dX68hT#FFU)&9kXI}T*9W==dgj4NUM zH7~rl3s&-oEOPaPx@BhmMMg$lXUyL|fBM{a=3X)P(76q>-aMBPlb@P=>f}X>kDB=H!~+vgn8=L(`}jN6b>oM| z(~BP-``OrA#;RkdjecYFrK9^s$45Rea%|*u^)(Oq?}i&{W-47@V}oNdKR-VmU;>8! zp8$F#o3*M|0Ti)9sX{e<3Dl$tuqI1;S;R|{6VwX@4>mR8%V`^%n_U%tsNWeHz{9SF<_=0X< zB}yQ;;p&v3Xg~~0ZT6=9#C)ma6|UWIJ@3-hc69l!(D&`UoY(2<{F7c6Y^7WG|Ii)0 zK-ZVi{so@3uXf8Kw>^uFeh$oxU=qF+X?(W_spg0&E2&RlYPZP75(Z+?Zjyu9CDR<~WuOLU>~HZO5*(;Y)FjR%Q&OrJ4;n{ZouQ5vjoU}O3HA(SLTbkp5!3m$g@{KkusSK6kx*rx~2 zUQcz>%`V$xp|2P0IA9(;vg5$vqqZ8kni+I?DuNm8xW_znx4r$bhpAdPWZ5^G%jQAj z4VUn$xRdK8(6k@J`Ep`Udl5P9vj9oEz|*dkx|@66-euN2-pqkq%RSe&&BrDmsKF+k z-jaNIm*O&bSP~c4-+NHq(AU$Rti4e_ysZ)sK0NqsKXYPyvWHy@p7(a`G4k}L>Evcp z?Xvm1hN99oVrrib^<)~aiTNXb&wQAu9qrY5u(ZcTe-%OlD@Bi{-eLORN?%Y34 zerE19a}OKYHMd5+ZsL8jUmm?{;@6WG&%S8(dgFz&v+AzV6BjQS|H91YW}Y>3&5W9U z$JkX9kDk7J{62Ns$mfi&s~=CFHTK4-?@!%7@|>x?i$}+PrrzZKMdZR*_^JG_|DTnKsV$v!RyaDD(0iKoKZhii-`SP(!=#bV zadfA;M>3Xel|Xb75kcMz^IU%oAJW!nkG>=HA>o7M817e%{l2j(`boRSVc_U~xs!$U z2QFuhZEY>>9NnV1cXM>whhMZW@Kdwujn}isPk?jE7#V~b4gsg&}61>;gi~`1MMfZQ3+#xOV5zsF?uUs*m-J+ zU)W}DM*lJhn=<0=8o%mMtOnPLS2<$U_(x=Wd%Hfm0l_PpyJ-AF-*51|gHPRKe3w{X z`)G{*DtZ(7I?8kGD&Ess1}AP>#3J~lL@zsw;owDq1a$r0&kQLuIKXQ{C>jURp6zRO zqT3u29ecgF{2nm_bmne*GoZOeR}HO-=0>K{S#taKMCfx81-J1B!^;R?!iCb6Iw!1B zaBfKF8t?7#Mh8!O!5ZUD16E`Xq3mKf#btMPkv;HtIFL(jz~XT|en#-TA2%qYDBHX4 z(K{2oBJ95Z5xS_0l&Jq9VXM%0z@H*wEnYtpi96}VW5ln%39;6a%I@|>61=~9Sf!-o zRJyQI|DX2GJywqEuH&=!Vc)lt+OZQSj(zQfG>>uS%$diTfDn%2xTXOTQj-^u&YYPc zQJ%7sG!X)^EFeG>)KraHiANEjiqd}&OC*Q?0+cmv3o;*{hUo?6+*~Y+N-1 zX*(9Mn?*ZZ#kO9b<&@Wh9BcPTa_ld|xo@jy8?5S?4c@g5uWD7t&8q2K@={DhE^;g}Tp1;y zwv1sa@&nh-q@nqQ-xjuShAm- zmpYz+Q3R$c@D!N<$)gAY4W%R4K4XZNhfmf_u2dRP+ugd@Nw_>tecXsl7W5)g1->x! z?U39;HyXOo1snF;#CN&XJc2>6;a<0ktbVs!n}_AKPIAPfPa58*lAMJjdibw^GciKr z1u)Ah7t+mCC||?!#m(-G_h~DZZO>eE@~4eXgarW)j5`YUGiazJoN=%!^3ptbpHk?H z{a9r>-ZKr#_HE))auX@U`cD~dv}1>FGh<0o%8Nn&d$&EOFvM$mjANgXN$Te=^| zBfK_E!*R~p;;~J1o+Cer#42)I2x6QdbhHiWA8HUAM&1avF*uDgcr)DqB^_3SBEm6N zWNd)dN;_|Q!YIL=rJeQjFmRx{cij{vh&(t_&0C8d50j@QaIL}kW9_5_eFxR*cqbn> zL{F6)@E`<~P~FEN^lV=4 z>)B^(O`vSe70ljlq=km;?&;@Vd^UUF>6fyzV;X$S_hnk)b{}ejyLsKm^bhHnGQU8=W1Dr1jTz%acu{0yjSbEO1Q)q)6a9PvM>h zBnTIUch^waCB6@vmw<$-iHiEZm*f68GPDuIiFIW#!{_Z^+xkx!g07PVK^N!C`wYR6 z4}Bd(>=I88nSBoJV;H8|#o`VtLvfvz^DH-T+C(15E*a%KR&aAk5oFNW0;mK5CG>Ct z!m|_>Kp!iMGk}jR-?NA67kJv+|J9F~@a#nS%7m9iN@$36A?qX#f>1e<3WR50`Z=)A zQM7Y-#x?e9dF>w7iH9MhuAj#7Rfbs&a@RAYT-dLWu+h(uQWCkbA2b-TdWVD~Ro6J( z`8IysNUJ1%gBc8mBy&4d3Bj4eBrH*_vW51c+Et!*b8n1|s7_NpszVeR>~d)8K0-&lQuO@V(I{p?T?_*HA$r}Kby zPt#g%p@98LNcVV`+>llH!ohV<^&ppzDw^*s78$7*kp0+gG@ZmO@re^)T+DGRu}@84 zSf2_HTr0JVt(LbpM%VWY$9xsWKnI*haPHcUf+v#*3oVimrDB`VA*@yCG-y#F3|*Ue zD$Av9UO@Lm5Ap&wu?vA_3Xu^WP&V<5C(H@w6H^9&Ej7eeW$C@n=>N>_?DuF9>d{PiaR@OibQ5np#>|DF^=_&)) z^cE+t_$QC-g~?5@>`Q9Cz{dYBHO;C~#BHaLQL<1r9HkiSJ>)Q#6A| zN2!NUU&UDfg+}OzCT}=899N&)pXTwwF3(6(k?i9B5{P!SO<@tI63T!?GW6^`5Pp)T zDXjOqdh7D>RZftQVvF~pl@1^6_1WfcDDT+Ma|4xX2cE(PlKx^^a5g4l%OWpGaD~G* zu<$bj9j@M1N@$U|u1-8fb=$8Ke-}=!dUHct=WQad^`4=a-#m8c z)=uj$%M?6BIlw%^(KGtXZ$8>uS7I}6?O0(t=GI^Bm2t0W5kw?%(H3h-B zzUJMBzAwicjFG^!rUasUp~X^5i72yzA<3}X2UXKpVNkTlB^GGJ+kz9E)}#tQ#Rvx1gD?nS9Vw;qY@MjU@l zgu{*2b_v`{4+{C3Qlwd$h}?B;n61c!;cmC1jGBk*NLM-3w&T@gGE+K!9_r5$fu?L7wEh_=C!zRUMQ;kGquDBsSz&ug@TVrZ8&w zbU}HAOT^B?AP;YQzCK#gBk|^yr z*x%8hXo|-0TJKt;jb$>ErjDb?skk)b6hf{q31T9nOa@w-;(!cy*2byQmO=jixOM2U zjjwE+SbufxZ`aPQerDx=R`TVqE}vfdm4jbDcReRBMWaW9GU<5xqqB{pz}u^ za4QbIv-78W+9c|=s7m2Uq?0E^2g0}*!sj>)amMBnM3{Rbba(!xA4F8O*`=ckWoYqs zl}o)>n)wwlh&5>eAtrRqUX!+a!=CWi#0&RY6<%B*RXYP?hndqy4BRu`y_x*Bll+$&t!QhaxIlNJ~$kXw<`ZUi?YxSUHZH*1{IM6 z79`A7?vt6Lv>uEhyf)%P;iO)`d((^?j6Y?OSym6PzcDe*5XQ+aEnYVD%fqFa<0mS! zb)w8{4abayNzH?Z9xDl(BOBUq&GGe=P2X#}bbV!I`9kd~L9dW%p9#mbF?tD^W#osM zj(nBKtp4^2ZJnv1JKUw+d*RFtrPvaJX*c3JUD8|5q{%2Lmg+qBavkD2M)h?h!l|8Z zikR^Gx-@y2(=QbwNt6&-KqTmx$kipUB%L(9!Kv)LFeo|9 zad@7jn%ZD#wwuASg*fe`;o&aLV{oxcy~dy9$O;S79~ojQAyRNXxpA0FGfPAldAtmb zN2w{yRKaieNS7vYZNMs2Ouc9=?2L*P!C#2%a;kqBlN&+kCb^gFP*~8lmdtcBCD(On z5!2%;pPX`HxTCe5`)16L@Q&sTL9|23K5^4Pc!ULG`N>D091-3$b>?GTy1`WI%Y%iU z7djlrbxkG4#a+ajT$BkIKcmLryK-;$IK3X+*`*I$YpXNY$gHExZ0Sn;hj02Xagx*U zcbRbwg`3F+6Ee<54=Jq)o2S)?%`Tl`NKi|)_30drzI$)5_JVQ=<$afeTP*j zSZQ#ZlE~5S4;$-uUFn%UnK}uz21?Cz|0!zPO47k(b`uAfM)U`F8S|)a+AwXkudtr! zUNrBq9K;GeCd0Cvxega+(I0nGAq6;mhEkDF$02C-9;X}1T4CJ2bLf4GzxV&zm%zRR z_9d_{fqe<=OJH9D`x4lfz`g|bC9p4neF^MK;QxUH4lmqzV)#& z{MwvKd8&aXeU_TGxW{2xpIu=L5L&cRO{^bTw;yfgpZ`B&!E+`rNDKe_OO%gO4O zSHFDdtw}$fll71FZR^v!3G*Yn{eeCH|NC}i>1xDTC`(eyQv(1#HTT=rzn<%C6~$(R zOL&SeePeg%j&jVnRv8>_4_klCH$5-`K3(mbs3Z@Aa(!yX7;w+e|AqC?EU}J00~p`V zVAPE-Vx-yM`SdhkN1e}44R+M|xrJY{erR`?uJQ>~Rm}lP*T1)hGN~cOeX>2GUe&wq z{QBbIwr{ZB8}EZt9&asKo^!uP*!h_Qy0b9>-ex6PzG5&vWBum=ZT;E=w^LKA{%oc7 z`sK%7XnjLvkLOYAeLyvLhQ1zt^3^EN7X0<0sX^`@I{25?H+BTjZaTu&8?oM;8HlF! zt=3?wB|27TVZt|7$+Uc9UvGVk@{M&~UAkc1e`aocyQOMjl@_2nMr{hUGlvRKkKOtk z%crdScSj#A&!TIc(sFst`jd+wHSLa!Wcpo$Z>pF#J%~?R0b>3TB?3|kp z!mRs&AeCCbzxpNXBNM#lp(}gg6ZbuRg;u=ItY3WUVR*jwfV({Q($Mtb`0Aat&so>h z`3+|UB=*?)3G16Je{XF_+xnh?f!mSnqi^ZQ{@T$1>+ps}d{e~DBYUQmb*sLsa>M-q z=b0IRqy6&wo7P7s`90McMiH0qnjzs^=L?oK*YaFd+r1xWbgrlS`&Nas{IJfNdF%QN zPt{MXzRK9HY8;|-2J^572={SUSD}Vk|J+_;<O+H0%2Z^Z%)t|NrxiQ|qs-y}x#T^|LGgyYl$*UoRhBdiCJf znE!u$@t+pYFZ|iU@%h*0zB#8lzuQ@`(mkf&{ITu{*UV^?19T!)X_|pSqav3{h(2DL zG;>Wlh}?(;t_eWXP_*eshmHv|?tHSCArYy|if7{3j1#k{01_FS=8WQKFt&15NV0Ix zz+@M%Tzc`L%k76qjyY!j=C)!NN$8Z7cd)D2>NTrnF^B;|XEtlcN`$HJ<}9Y}X%4K0 zZt=q9V(xH~HK`l!=490%n9v4B3v4;Ya)E>aT8=Sdj>pIiQ!k(!>ZY~rZ3COr-{We+0o z?ZrU22-yWpc#Ek5C6}dScH^1kWLVN;887qFz-gE)Z4l{nw(kxgQ^;k?3lAMX6bz~3 zMew@(URUV{@cWe4GlJ>N_^&=ptoUedqSg&Q1l0^@;CfFhK z0Fq>O9MplB336}}^O!xJ9fE}Iv1Yqtod!6CsIQEwK)7^6+?t!SLhYqsGXZ%N*=eNM zivj}40gGYmv9{l^Nw2c_mF(fm`h0x(+1J_!SVzH4xmcH-?=dM%RGMoBoI&IQ27#p` z4TP=-(q5K}5$vd9@1!{7tfY4buqo6Iia~qf#~@aNlcF<&&%mlaxR-f~GscV)+!$D< z@zUGn1)|VHWriXaoM_Yf7VuNfRR~-FI|>8F1W2dBPf=K)I0UGK)!Ho1*+*gpbNpdP zwmW8w!nM)|P${80g$EG0>q$ZwgV26BpDnvj@(~ z4(_@s{@ck`Pk*)7f~XSJLK~Ld6w5F+NO~wp>;q&jyqpaHpEds^lwLTZAltohi8atR zm^lru3Y=)Ab@s5xtlY8Z6tIw$Dcl^W4E#fDKLdp$Z(97UbYpycKg}}qEdZ>XuMpq` nn%Z9}2mXl1W>)+oWj5M84M>fjIwEg~8FpHos25&ZS?T`+)4L{) delta 242 zcmZozAk}byV}i6G69WT-5)i|H*hC#;My8Dkv-sKgfnt0dn*>-6FmtdtZf3t=%*f3D zgL&gS7Us!|*tnfsJjfrXh#P@-l`(LRtZuhvwXv`?o7%avvUTDqO#GaX#l3L*z5x?;@ zJM*Rwj1N?S4&Y}qVcPx# diff --git a/frontends/apps/simple-platform-vue/src/api/dashboardQuickEntries.ts b/frontends/apps/simple-platform-vue/src/api/dashboardQuickEntries.ts new file mode 100644 index 0000000..8cec182 --- /dev/null +++ b/frontends/apps/simple-platform-vue/src/api/dashboardQuickEntries.ts @@ -0,0 +1,51 @@ +import http from '@/api/http' + +export interface QuickEntriesDto { + keys: string[] + usingDefaults: boolean +} + +const MOCK_STORAGE_KEY = 'simple.mock.dashboard.quickEntries' + +function mockStorageKey(scope: string, userId: string) { + return `${MOCK_STORAGE_KEY}.${scope}.${userId}` +} + +function isMock() { + return import.meta.env.VITE_USE_MOCK === 'true' +} + +function mockLoad(scope: string, userId: string): QuickEntriesDto | null { + try { + const raw = localStorage.getItem(mockStorageKey(scope, userId)) + return raw ? (JSON.parse(raw) as QuickEntriesDto) : null + } catch { + return null + } +} + +function mockSave(scope: string, userId: string, dto: QuickEntriesDto) { + try { + localStorage.setItem(mockStorageKey(scope, userId), JSON.stringify(dto)) + } catch { /* ignore */ } +} + +export async function fetchQuickEntryKeys(userId: string, scope: string): Promise { + if (isMock()) { + return mockLoad(scope, userId) ?? { keys: [], usingDefaults: true } + } + const { data } = await http.get('/dashboard/quick-entries') + return data +} + +export async function saveQuickEntryKeys( + userId: string, scope: string, keys: string[] +): Promise { + if (isMock()) { + const dto: QuickEntriesDto = { keys, usingDefaults: false } + mockSave(scope, userId, dto) + return dto + } + const { data } = await http.put('/dashboard/quick-entries', { keys }) + return data +} diff --git a/frontends/apps/simple-platform-vue/src/components/dashboard/QuickEntryPickerDialog.vue b/frontends/apps/simple-platform-vue/src/components/dashboard/QuickEntryPickerDialog.vue new file mode 100644 index 0000000..d0576bd --- /dev/null +++ b/frontends/apps/simple-platform-vue/src/components/dashboard/QuickEntryPickerDialog.vue @@ -0,0 +1,211 @@ + + + + + + + diff --git a/frontends/apps/simple-platform-vue/src/components/fleet/FleetAllocationPanel.vue b/frontends/apps/simple-platform-vue/src/components/fleet/FleetAllocationPanel.vue index 798cdf7..3b04b29 100644 --- a/frontends/apps/simple-platform-vue/src/components/fleet/FleetAllocationPanel.vue +++ b/frontends/apps/simple-platform-vue/src/components/fleet/FleetAllocationPanel.vue @@ -1,18 +1,25 @@