From c6da51a4deeaee31cab7f6af201ba9bd35a83a50 Mon Sep 17 00:00:00 2001 From: Bo Yuan Date: Thu, 12 Dec 2024 14:29:20 -0500 Subject: [PATCH 1/2] write demand weighted as a function --- ...ite_load_profiles_from_NYISO_outlook.ipynb | 1322 +++++++++-------- nygrid/preprocessing.py | 83 ++ 2 files changed, 795 insertions(+), 610 deletions(-) diff --git a/examples/write_load_profiles_from_NYISO_outlook.ipynb b/examples/write_load_profiles_from_NYISO_outlook.ipynb index fc644c1..b487d64 100755 --- a/examples/write_load_profiles_from_NYISO_outlook.ipynb +++ b/examples/write_load_profiles_from_NYISO_outlook.ipynb @@ -9,7 +9,9 @@ "import os\n", "import numpy as np\n", "import pandas as pd\n", - "import matplotlib.pyplot as plt" + "import matplotlib.pyplot as plt\n", + "\n", + "import nygrid.preprocessing as ng_prep" ] }, { @@ -25,7 +27,7 @@ "metadata": {}, "outputs": [], "source": [ - "def add_load_weighted(hourly_load_zonal, load_ratio_zone, load_bus_zone, \n", + "def add_load_weighted(hourly_load_zonal, load_ratio_zone, load_bus_zone,\n", " num_load_bus_tot, zone_ids, num_load_bus_zone):\n", " num_hours = hourly_load_zonal.shape[0]\n", " zone_load_bus = np.empty(len(zone_ids), dtype=object)\n", @@ -44,7 +46,7 @@ " bus_wload = bus_wload.sort_index(axis=1)\n", " bus_wload.columns = bus_wload.columns.astype(int)\n", "\n", - " return bus_wload\n" + " return bus_wload" ] }, { @@ -92,593 +94,236 @@ " \n", " \n", " \n", - " 38\n", - " 39\n", - " LEEDS\n", + " 0\n", + " 1\n", + " MILLSTONE PT\n", " 345.0\n", " 1.1\n", " 0.9\n", - " 1.04100\n", - " 0.057140\n", - " -74.001\n", - " 42.042\n", - " 2\n", - " G\n", - " 0.00000\n", - " 0.00000\n", - " 1.00\n", - " 0.000\n", - " \n", - " \n", - " 40\n", - " 41\n", - " ROTTERDAM\n", - " 115.0\n", - " 1.1\n", - " 0.9\n", - " 1.02634\n", - " -0.058833\n", - " -73.780\n", - " 43.086\n", - " 2\n", - " F\n", - " 0.00000\n", + " 1.01517\n", + " 0.084533\n", + " -72.057\n", + " 41.005\n", + " 1\n", + " NaN\n", + " 0.00\n", " 0.00000\n", - " 7.00\n", - " 1.250\n", + " 0.00\n", + " 0.00\n", " \n", " \n", - " 41\n", - " 42\n", - " ALBANY\n", - " 115.0\n", - " 1.1\n", - " 0.9\n", - " 1.04000\n", - " -0.044794\n", - " -73.628\n", - " 42.702\n", + " 1\n", " 2\n", - " F\n", - " 3.70000\n", - " 1.34949\n", - " 1.77\n", - " 0.170\n", - " \n", - " \n", - " 44\n", - " 45\n", - " PORTER\n", - " 115.0\n", + " MONTVILLE\n", + " 345.0\n", " 1.1\n", " 0.9\n", - " 1.04349\n", - " 0.068892\n", - " -75.240\n", - " 43.131\n", - " 2\n", - " E\n", - " 0.00000\n", + " 1.01090\n", + " 0.070801\n", + " -72.297\n", + " 41.298\n", + " 1\n", + " NaN\n", + " 0.00\n", " 0.00000\n", - " 2.56\n", - " 0.170\n", + " 0.00\n", + " 0.00\n", " \n", " \n", - " 45\n", - " 46\n", - " COLTON\n", + " 2\n", + " 3\n", + " MONTVILLE\n", " 115.0\n", " 1.1\n", " 0.9\n", - " 1.04781\n", - " 0.107949\n", - " -75.051\n", - " 44.428\n", - " 2\n", - " E\n", + " 0.99170\n", + " 0.069934\n", + " -72.010\n", + " 41.478\n", + " 1\n", + " NaN\n", + " 0.00\n", " 0.00000\n", - " 0.00000\n", - " 0.23\n", - " -0.425\n", - " \n", - " \n", - " 46\n", - " 47\n", - " MOSES W\n", - " 230.0\n", - " 1.1\n", - " 0.9\n", - " 1.03000\n", - " 0.203842\n", - " -75.211\n", - " 44.654\n", - " 2\n", - " E\n", - " 4.00000\n", - " -0.03268\n", - " 5.28\n", - " 1.000\n", + " 0.09\n", + " 0.88\n", " \n", " \n", - " 48\n", - " 49\n", - " PLATTSBURGH\n", - " 115.0\n", + " 3\n", + " 4\n", + " MONTVILLE\n", + " 345.0\n", " 1.1\n", " 0.9\n", - " 0.96523\n", - " -0.019481\n", - " -74.134\n", - " 44.699\n", - " 2\n", - " D\n", + " 1.01125\n", + " 0.071567\n", + " -71.798\n", + " 41.275\n", + " 1\n", + " NaN\n", + " 0.00\n", " 0.00000\n", - " 0.00000\n", - " 2.08\n", - " 0.170\n", - " \n", - " \n", - " 50\n", - " 51\n", - " CLAY\n", - " 115.0\n", - " 1.1\n", - " 0.9\n", - " 1.04000\n", - " 0.148847\n", - " -76.261\n", - " 42.939\n", - " 2\n", - " C\n", - " 1.41000\n", - " 0.20685\n", - " 7.31\n", - " 0.750\n", + " 0.00\n", + " 0.00\n", " \n", " \n", - " 51\n", - " 52\n", - " ROCHESTER\n", + " 4\n", + " 5\n", + " CARD ST\n", " 345.0\n", " 1.1\n", " 0.9\n", - " 1.04193\n", - " 0.338821\n", - " -77.482\n", - " 43.312\n", - " 2\n", - " B\n", + " 1.00618\n", + " 0.041062\n", + " -72.078\n", + " 41.760\n", + " 1\n", + " NaN\n", + " 0.00\n", " 0.00000\n", - " 0.00000\n", - " 1.95\n", - " 0.000\n", + " 0.00\n", + " 0.00\n", " \n", " \n", - " 52\n", - " 53\n", - " ROCHESTER\n", - " 115.0\n", - " 1.1\n", - " 0.9\n", - " 1.03000\n", - " 0.314252\n", - " -77.777\n", - " 42.889\n", - " 2\n", - " B\n", - " 8.33000\n", - " 1.73977\n", - " 7.28\n", - " 2.500\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", " \n", " \n", - " 53\n", - " 54\n", - " NIAGARA W\n", - " 230.0\n", + " 135\n", + " 136\n", + " ERIE W\n", + " 345.0\n", " 1.1\n", " 0.9\n", - " 1.04080\n", - " 0.470054\n", - " -78.352\n", - " 43.125\n", - " 2\n", - " A\n", - " 11.15000\n", - " -0.01298\n", - " 0.20\n", - " 0.000\n", + " 1.00058\n", + " 0.344137\n", + " -80.295\n", + " 41.665\n", + " 6\n", + " NaN\n", + " 0.00\n", + " 0.00000\n", + " 2.70\n", + " 2.23\n", " \n", " \n", - " 54\n", - " 55\n", - " NIAGARA E\n", + " 136\n", + " 137\n", + " ERIE S\n", " 230.0\n", " 1.1\n", " 0.9\n", " 1.04000\n", - " 0.457442\n", - " -78.591\n", - " 42.996\n", - " 2\n", - " A\n", - " 10.95000\n", - " 1.48655\n", - " 9.39\n", - " 1.320\n", + " 0.354729\n", + " -79.953\n", + " 42.133\n", + " 6\n", + " NaN\n", + " 0.70\n", + " 1.74600\n", + " 0.00\n", + " 0.00\n", " \n", " \n", - " 55\n", - " 56\n", - " HUNTLEY\n", + " 137\n", + " 138\n", + " E TOMANO\n", " 230.0\n", " 1.1\n", " 0.9\n", - " 1.03000\n", - " 0.469485\n", - " -78.743\n", - " 43.312\n", - " 2\n", - " A\n", - " 4.10000\n", - " 0.87207\n", - " 1.72\n", - " 0.440\n", - " \n", - " \n", - " 56\n", - " 57\n", - " HUNTLEY\n", - " 115.0\n", - " 1.1\n", - " 0.9\n", - " 1.03000\n", - " 0.448956\n", - " -79.125\n", - " 42.911\n", - " 2\n", - " A\n", - " 2.98000\n", - " 0.03534\n", - " 2.40\n", - " -0.060\n", - " \n", - " \n", - " 57\n", - " 58\n", - " GARDENVILLE\n", - " 230.0\n", - " 1.1\n", - " 0.9\n", - " 1.01010\n", - " 0.429147\n", - " -79.133\n", - " 42.714\n", - " 2\n", - " A\n", + " 0.97073\n", + " 0.236539\n", + " -76.266\n", + " 41.715\n", + " 6\n", + " NaN\n", + " 0.00\n", " 0.00000\n", - " 0.00000\n", - " 0.84\n", - " 0.380\n", + " 1.10\n", + " 0.64\n", " \n", " \n", - " 58\n", - " 59\n", - " GARDENVILLE\n", - " 115.0\n", - " 1.1\n", - " 0.9\n", - " 0.99669\n", - " 0.387214\n", - " -78.797\n", - " 42.561\n", - " 2\n", - " A\n", - " 0.00000\n", - " 0.00000\n", - " 7.05\n", - " 1.980\n", - " \n", - " \n", - " 60\n", - " 61\n", - " DUNKIRK\n", - " 115.0\n", - " 1.1\n", - " 0.9\n", - " 1.04000\n", - " 0.466474\n", - " -78.828\n", - " 42.234\n", - " 2\n", - " A\n", - " 1.94000\n", - " 0.13180\n", - " 2.37\n", - " 0.080\n", - " \n", - " \n", - " 63\n", - " 64\n", - " MEYER\n", - " 115.0\n", - " 1.1\n", - " 0.9\n", - " 1.00715\n", - " 0.253904\n", - " -77.592\n", - " 42.409\n", - " 2\n", - " C\n", - " 0.00000\n", - " 0.00000\n", - " 1.43\n", - " 0.250\n", - " \n", - " \n", - " 64\n", - " 65\n", - " GESONIDGE\n", - " 115.0\n", - " 1.1\n", - " 0.9\n", - " 1.04000\n", - " 0.274991\n", - " -76.978\n", - " 42.629\n", - " 2\n", - " C\n", - " 0.91000\n", - " 0.51625\n", - " 0.91\n", - " 0.000\n", - " \n", - " \n", - " 67\n", - " 68\n", - " HILLSIDE\n", - " 115.0\n", - " 1.1\n", - " 0.9\n", - " 0.99000\n", - " 0.222411\n", - " -76.714\n", - " 42.150\n", - " 2\n", - " C\n", - " 0.66000\n", - " -0.00140\n", - " 2.11\n", - " 0.410\n", - " \n", - " \n", - " 70\n", - " 71\n", - " BINGHAMTON\n", - " 115.0\n", - " 1.1\n", - " 0.9\n", - " 1.00000\n", - " 0.193979\n", - " -75.789\n", - " 42.330\n", - " 2\n", - " C\n", - " 1.34000\n", - " -3.73660\n", - " 3.71\n", - " 0.530\n", - " \n", - " \n", - " 72\n", - " 73\n", - " PLEASANT VLY\n", + " 138\n", + " 139\n", + " KYGER\n", " 345.0\n", " 1.1\n", " 0.9\n", - " 1.03292\n", - " 0.028582\n", - " -73.641\n", - " 41.580\n", - " 3\n", - " G\n", - " 0.00000\n", - " 0.00000\n", - " 1.00\n", - " 0.000\n", + " 1.01000\n", + " 0.512743\n", + " -82.212\n", + " 38.940\n", + " 6\n", + " NaN\n", + " 1.15\n", + " 0.18439\n", + " 0.00\n", + " 0.00\n", " \n", " \n", - " 73\n", - " 74\n", - " MILLWOOD\n", - " 345.0\n", - " 1.1\n", - " 0.9\n", - " 1.02708\n", - " 0.005199\n", - " -73.769\n", - " 41.304\n", - " 3\n", - " H\n", - " 0.00000\n", - " 0.00000\n", - " 1.02\n", - " 0.000\n", - " \n", - " \n", - " 74\n", - " 75\n", - " RAMAPO\n", - " 138.0\n", - " 1.1\n", - " 0.9\n", - " 1.04944\n", - " 0.022045\n", - " -74.861\n", - " 41.078\n", - " 3\n", - " G\n", - " 0.00000\n", - " 0.00000\n", - " 0.50\n", - " 0.000\n", - " \n", - " \n", - " 75\n", - " 76\n", - " RAMAPO\n", - " 345.0\n", - " 1.1\n", - " 0.9\n", - " 1.04639\n", - " 0.013917\n", - " -74.311\n", - " 41.174\n", - " 3\n", - " G\n", - " 0.00000\n", - " 0.00000\n", - " 0.50\n", - " 0.000\n", - " \n", - " \n", - " 76\n", - " 77\n", - " BUCHANAN\n", - " 345.0\n", + " 139\n", + " 140\n", + " TE\n", + " 230.0\n", " 1.1\n", " 0.9\n", - " 1.03539\n", - " 0.009526\n", - " -74.120\n", - " 41.360\n", - " 3\n", - " G\n", - " 0.00000\n", + " 1.04132\n", + " 0.527267\n", + " -79.283\n", + " 41.952\n", + " 6\n", + " NaN\n", + " 0.00\n", " 0.00000\n", - " 2.00\n", - " 0.000\n", - " \n", - " \n", - " 77\n", - " 78\n", - " CE UG\n", - " 345.0\n", - " 1.1\n", - " 0.9\n", - " 1.02000\n", - " 0.000000\n", - " -73.424\n", - " 40.773\n", - " 3\n", - " I\n", - " 4.66019\n", - " 0.74010\n", - " 20.00\n", - " 6.000\n", - " \n", - " \n", - " 78\n", - " 79\n", - " RAV A-3\n", - " 22.0\n", - " 1.1\n", - " 0.9\n", - " 1.05000\n", - " 0.142620\n", - " -73.264\n", - " 40.379\n", - " 3\n", - " K\n", - " 10.00000\n", - " 2.57345\n", - " 3.00\n", - " 0.000\n", - " \n", - " \n", - " 79\n", - " 80\n", - " NORTHPORT\n", - " 138.0\n", - " 1.1\n", - " 0.9\n", - " 1.02320\n", - " 0.011011\n", - " -73.145\n", - " 40.852\n", - " 3\n", - " K\n", - " 7.20000\n", - " -0.00078\n", - " 4.00\n", - " 0.250\n", + " 0.00\n", + " 0.00\n", " \n", " \n", "\n", + "

140 rows × 15 columns

\n", "" ], "text/plain": [ - " idx name Vn vmax vmin v0 a0 xcoord ycoord \\\n", - "38 39 LEEDS 345.0 1.1 0.9 1.04100 0.057140 -74.001 42.042 \n", - "40 41 ROTTERDAM 115.0 1.1 0.9 1.02634 -0.058833 -73.780 43.086 \n", - "41 42 ALBANY 115.0 1.1 0.9 1.04000 -0.044794 -73.628 42.702 \n", - "44 45 PORTER 115.0 1.1 0.9 1.04349 0.068892 -75.240 43.131 \n", - "45 46 COLTON 115.0 1.1 0.9 1.04781 0.107949 -75.051 44.428 \n", - "46 47 MOSES W 230.0 1.1 0.9 1.03000 0.203842 -75.211 44.654 \n", - "48 49 PLATTSBURGH 115.0 1.1 0.9 0.96523 -0.019481 -74.134 44.699 \n", - "50 51 CLAY 115.0 1.1 0.9 1.04000 0.148847 -76.261 42.939 \n", - "51 52 ROCHESTER 345.0 1.1 0.9 1.04193 0.338821 -77.482 43.312 \n", - "52 53 ROCHESTER 115.0 1.1 0.9 1.03000 0.314252 -77.777 42.889 \n", - "53 54 NIAGARA W 230.0 1.1 0.9 1.04080 0.470054 -78.352 43.125 \n", - "54 55 NIAGARA E 230.0 1.1 0.9 1.04000 0.457442 -78.591 42.996 \n", - "55 56 HUNTLEY 230.0 1.1 0.9 1.03000 0.469485 -78.743 43.312 \n", - "56 57 HUNTLEY 115.0 1.1 0.9 1.03000 0.448956 -79.125 42.911 \n", - "57 58 GARDENVILLE 230.0 1.1 0.9 1.01010 0.429147 -79.133 42.714 \n", - "58 59 GARDENVILLE 115.0 1.1 0.9 0.99669 0.387214 -78.797 42.561 \n", - "60 61 DUNKIRK 115.0 1.1 0.9 1.04000 0.466474 -78.828 42.234 \n", - "63 64 MEYER 115.0 1.1 0.9 1.00715 0.253904 -77.592 42.409 \n", - "64 65 GESONIDGE 115.0 1.1 0.9 1.04000 0.274991 -76.978 42.629 \n", - "67 68 HILLSIDE 115.0 1.1 0.9 0.99000 0.222411 -76.714 42.150 \n", - "70 71 BINGHAMTON 115.0 1.1 0.9 1.00000 0.193979 -75.789 42.330 \n", - "72 73 PLEASANT VLY 345.0 1.1 0.9 1.03292 0.028582 -73.641 41.580 \n", - "73 74 MILLWOOD 345.0 1.1 0.9 1.02708 0.005199 -73.769 41.304 \n", - "74 75 RAMAPO 138.0 1.1 0.9 1.04944 0.022045 -74.861 41.078 \n", - "75 76 RAMAPO 345.0 1.1 0.9 1.04639 0.013917 -74.311 41.174 \n", - "76 77 BUCHANAN 345.0 1.1 0.9 1.03539 0.009526 -74.120 41.360 \n", - "77 78 CE UG 345.0 1.1 0.9 1.02000 0.000000 -73.424 40.773 \n", - "78 79 RAV A-3 22.0 1.1 0.9 1.05000 0.142620 -73.264 40.379 \n", - "79 80 NORTHPORT 138.0 1.1 0.9 1.02320 0.011011 -73.145 40.852 \n", + " idx name Vn vmax vmin v0 a0 xcoord ycoord \\\n", + "0 1 MILLSTONE PT 345.0 1.1 0.9 1.01517 0.084533 -72.057 41.005 \n", + "1 2 MONTVILLE 345.0 1.1 0.9 1.01090 0.070801 -72.297 41.298 \n", + "2 3 MONTVILLE 115.0 1.1 0.9 0.99170 0.069934 -72.010 41.478 \n", + "3 4 MONTVILLE 345.0 1.1 0.9 1.01125 0.071567 -71.798 41.275 \n", + "4 5 CARD ST 345.0 1.1 0.9 1.00618 0.041062 -72.078 41.760 \n", + ".. ... ... ... ... ... ... ... ... ... \n", + "135 136 ERIE W 345.0 1.1 0.9 1.00058 0.344137 -80.295 41.665 \n", + "136 137 ERIE S 230.0 1.1 0.9 1.04000 0.354729 -79.953 42.133 \n", + "137 138 E TOMANO 230.0 1.1 0.9 0.97073 0.236539 -76.266 41.715 \n", + "138 139 KYGER 345.0 1.1 0.9 1.01000 0.512743 -82.212 38.940 \n", + "139 140 TE 230.0 1.1 0.9 1.04132 0.527267 -79.283 41.952 \n", + "\n", + " area zone sumGenP0 sumGenQ0 sumLoadP0 sumLoadQ0 \n", + "0 1 NaN 0.00 0.00000 0.00 0.00 \n", + "1 1 NaN 0.00 0.00000 0.00 0.00 \n", + "2 1 NaN 0.00 0.00000 0.09 0.88 \n", + "3 1 NaN 0.00 0.00000 0.00 0.00 \n", + "4 1 NaN 0.00 0.00000 0.00 0.00 \n", + ".. ... ... ... ... ... ... \n", + "135 6 NaN 0.00 0.00000 2.70 2.23 \n", + "136 6 NaN 0.70 1.74600 0.00 0.00 \n", + "137 6 NaN 0.00 0.00000 1.10 0.64 \n", + "138 6 NaN 1.15 0.18439 0.00 0.00 \n", + "139 6 NaN 0.00 0.00000 0.00 0.00 \n", "\n", - " area zone sumGenP0 sumGenQ0 sumLoadP0 sumLoadQ0 \n", - "38 2 G 0.00000 0.00000 1.00 0.000 \n", - "40 2 F 0.00000 0.00000 7.00 1.250 \n", - "41 2 F 3.70000 1.34949 1.77 0.170 \n", - "44 2 E 0.00000 0.00000 2.56 0.170 \n", - "45 2 E 0.00000 0.00000 0.23 -0.425 \n", - "46 2 E 4.00000 -0.03268 5.28 1.000 \n", - "48 2 D 0.00000 0.00000 2.08 0.170 \n", - "50 2 C 1.41000 0.20685 7.31 0.750 \n", - "51 2 B 0.00000 0.00000 1.95 0.000 \n", - "52 2 B 8.33000 1.73977 7.28 2.500 \n", - "53 2 A 11.15000 -0.01298 0.20 0.000 \n", - "54 2 A 10.95000 1.48655 9.39 1.320 \n", - "55 2 A 4.10000 0.87207 1.72 0.440 \n", - "56 2 A 2.98000 0.03534 2.40 -0.060 \n", - "57 2 A 0.00000 0.00000 0.84 0.380 \n", - "58 2 A 0.00000 0.00000 7.05 1.980 \n", - "60 2 A 1.94000 0.13180 2.37 0.080 \n", - "63 2 C 0.00000 0.00000 1.43 0.250 \n", - "64 2 C 0.91000 0.51625 0.91 0.000 \n", - "67 2 C 0.66000 -0.00140 2.11 0.410 \n", - "70 2 C 1.34000 -3.73660 3.71 0.530 \n", - "72 3 G 0.00000 0.00000 1.00 0.000 \n", - "73 3 H 0.00000 0.00000 1.02 0.000 \n", - "74 3 G 0.00000 0.00000 0.50 0.000 \n", - "75 3 G 0.00000 0.00000 0.50 0.000 \n", - "76 3 G 0.00000 0.00000 2.00 0.000 \n", - "77 3 I 4.66019 0.74010 20.00 6.000 \n", - "78 3 K 10.00000 2.57345 3.00 0.000 \n", - "79 3 K 7.20000 -0.00078 4.00 0.250 " + "[140 rows x 15 columns]" ] }, "execution_count": 3, @@ -690,35 +335,10 @@ "# Read NYS bus table\n", "filename = '/mnt/Bo_HDD/NYgrid-python/data/grid/npcc_new.csv'\n", "bus_info = pd.read_csv(filename)\n", - "nys_bus = bus_info[~bus_info['zone'].isnull()]\n", - "nys_bus_wload = nys_bus[nys_bus['sumLoadP0'] > 0]\n", - "nys_bus_wload" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "# Load bus and ratio calculation\n", - "zone_ids = nys_bus['zone'].unique()\n", - "load_bus_zone = np.empty(11, dtype=object)\n", - "load_ratio_zone = np.empty(11, dtype=object)\n", - "num_load_bus_zone = np.zeros(11, dtype=int)\n", - "\n", - "for i, zone_id in enumerate(zone_ids):\n", - " load_bus_table = nys_bus_wload[nys_bus_wload['zone'] == zone_id]\n", - " load_bus_zone[i] = load_bus_table['idx'].values\n", - " if load_bus_table.shape[0] > 0:\n", - " load_ratio_zone[i] = (load_bus_table['sumLoadP0'] / \n", - " load_bus_table['sumLoadP0'].sum()).values\n", - " else:\n", - " load_bus_zone[i] = nys_bus[nys_bus['zone'] == zone_id]['idx'].values\n", - " load_ratio_zone[i] = np.ones(len(load_bus_zone[i])) / len(load_bus_zone[i])\n", - " num_load_bus_zone[i] = len(load_bus_zone[i])\n", - "\n", - "num_load_bus_tot = sum(num_load_bus_zone)\n" + "bus_info\n", + "# nys_bus = bus_info[~bus_info['zone'].isnull()]\n", + "# nys_bus_wload = nys_bus[nys_bus['sumLoadP0'] > 0]\n", + "# nys_bus_wload" ] }, { @@ -737,7 +357,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -747,14 +367,13 @@ "zonal_demand_2018 = zonal_demand_2018.pivot(columns='ZoneID', values='Load')\n", "\n", "# Distribute load to buses\n", - "bus_demand_2018 = add_load_weighted(zonal_demand_2018, load_ratio_zone,\n", - " load_bus_zone, num_load_bus_tot,\n", - " zone_ids, num_load_bus_zone)" + "bus_demand_2018 = ng_prep.add_load_weighted(zonal_demand_2018,\n", + " bus_info=bus_info)" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -763,7 +382,7 @@ "" ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, @@ -791,7 +410,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -804,11 +423,11 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ - "def process_load_2bus(zonal_load):\n", + "def process_load_2bus(zonal_load, bus_info):\n", "\n", " # Rename 'Period' to 'Hour' and get TimeStamp from Year, Month, Day, Hour\n", " zonal_load = zonal_load.rename(columns={'Period': 'Hour'})\n", @@ -820,21 +439,18 @@ " columns=['Year', 'Month', 'Day', 'Hour'])\n", " zonal_load = zonal_load.set_index('TimeStamp')\n", "\n", - " # Get data for model years: 2030 and 2040\n", - " zonal_load_2030 = zonal_load[zonal_load.index.year==2030].copy()\n", + " # Get data for model year: 2030\n", + " zonal_load_2030 = zonal_load[zonal_load.index.year == 2030].copy()\n", "\n", " # Distribute load to buses\n", - " bus_load_2030 = add_load_weighted(zonal_load_2030, load_ratio_zone,\n", - " load_bus_zone, num_load_bus_tot,\n", - " zone_ids, num_load_bus_zone)\n", + " bus_load_2030 = ng_prep.add_load_weighted(zonal_load_2030, bus_info)\n", "\n", - " zonal_load_2040 = zonal_load[zonal_load.index.year==2040].copy()\n", + " # Get data for model year: 2040\n", + " zonal_load_2040 = zonal_load[zonal_load.index.year == 2040].copy()\n", "\n", " # Distribute load to buses\n", - " bus_load_2040 = add_load_weighted(zonal_load_2040, load_ratio_zone,\n", - " load_bus_zone, num_load_bus_tot,\n", - " zone_ids, num_load_bus_zone)\n", - " \n", + " bus_load_2040 = ng_prep.add_load_weighted(zonal_load_2040, bus_info)\n", + "\n", " return bus_load_2030, bus_load_2040" ] }, @@ -847,16 +463,18 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "filename = '/mnt/Bo_HDD/NYgrid-python/data/renewable/2023-2042-System-Resource-Outlook-Forecasts.xlsx'\n", - "zonal_load_baseline = pd.read_excel(filename, sheet_name='Load_Baseline', header=1, usecols='A:O')\n", + "zonal_load_baseline = pd.read_excel(\n", + " filename, sheet_name='Load_Baseline', header=1, usecols='A:O')\n", "zonal_load_baseline = zonal_load_baseline.rename(columns=zone_name2id)\n", "\n", "# Distribute load to buses\n", - "bus_load_baseline_2030, bus_load_baseline_2040 = process_load_2bus(zonal_load_baseline)" + "bus_load_baseline_2030, bus_load_baseline_2040 = process_load_2bus(\n", + " zonal_load_baseline, bus_info=bus_info)" ] }, { @@ -868,16 +486,18 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "filename = '/mnt/Bo_HDD/NYgrid-python/data/renewable/2023-2042-System-Resource-Outlook-Forecasts.xlsx'\n", - "zonal_load_lower_demand = pd.read_excel(filename, sheet_name='Load_LowerDemandPolicy', header=1, usecols='A:O')\n", + "zonal_load_lower_demand = pd.read_excel(\n", + " filename, sheet_name='Load_LowerDemandPolicy', header=1, usecols='A:O')\n", "zonal_load_lower_demand = zonal_load_lower_demand.rename(columns=zone_name2id)\n", "\n", "# Distribute load to buses\n", - "bus_load_lower_demand_2030, bus_load_lower_demand_2040 = process_load_2bus(zonal_load_lower_demand)" + "bus_load_lower_demand_2030, bus_load_lower_demand_2040 = process_load_2bus(\n", + " zonal_load_lower_demand, bus_info=bus_info)" ] }, { @@ -889,16 +509,19 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "filename = '/mnt/Bo_HDD/NYgrid-python/data/renewable/2023-2042-System-Resource-Outlook-Forecasts.xlsx'\n", - "zonal_load_higher_demand = pd.read_excel(filename, sheet_name='Load_HigherDemandPolicy', header=1, usecols='A:O')\n", - "zonal_load_higher_demand = zonal_load_higher_demand.rename(columns=zone_name2id)\n", + "zonal_load_higher_demand = pd.read_excel(\n", + " filename, sheet_name='Load_HigherDemandPolicy', header=1, usecols='A:O')\n", + "zonal_load_higher_demand = zonal_load_higher_demand.rename(\n", + " columns=zone_name2id)\n", "\n", "# Distribute load to buses\n", - "bus_load_higher_demand_2030, bus_load_higher_demand_2040 = process_load_2bus(zonal_load_higher_demand)" + "bus_load_higher_demand_2030, bus_load_higher_demand_2040 = process_load_2bus(\n", + " zonal_load_higher_demand, bus_info=bus_info)" ] }, { @@ -910,28 +533,31 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "filename = '/mnt/Bo_HDD/NYgrid-python/data/renewable/2023-2042-System-Resource-Outlook-Forecasts.xlsx'\n", - "zonal_load_state_scenario = pd.read_excel(filename, sheet_name='Load_StateScenario_Policy', header=1, usecols='A:O')\n", - "zonal_load_state_scenario = zonal_load_state_scenario.rename(columns=zone_name2id)\n", + "zonal_load_state_scenario = pd.read_excel(\n", + " filename, sheet_name='Load_StateScenario_Policy', header=1, usecols='A:O')\n", + "zonal_load_state_scenario = zonal_load_state_scenario.rename(\n", + " columns=zone_name2id)\n", "\n", "# Distribute load to buses\n", - "bus_load_state_scenario_2030, bus_load_state_scenario_2040 = process_load_2bus(zonal_load_state_scenario)" + "bus_load_state_scenario_2030, bus_load_state_scenario_2040 = process_load_2bus(\n", + " zonal_load_state_scenario, bus_info=bus_info)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Comparison" + "### 2.5. Comparison" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -976,12 +602,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Save the data" + "### 2.6. Save the data" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -990,30 +616,506 @@ "bus_demand_2018.to_csv(f'{output_dir}/bus_demand_2018.csv')\n", "bus_load_baseline_2030.to_csv(f'{output_dir}/bus_load_baseline_2030.csv')\n", "bus_load_baseline_2040.to_csv(f'{output_dir}/bus_load_baseline_2040.csv')\n", - "bus_load_lower_demand_2030.to_csv(f'{output_dir}/bus_load_lower_demand_2030.csv')\n", - "bus_load_lower_demand_2040.to_csv(f'{output_dir}/bus_load_lower_demand_2040.csv')\n", - "bus_load_higher_demand_2030.to_csv(f'{output_dir}/bus_load_higher_demand_2030.csv')\n", - "bus_load_higher_demand_2040.to_csv(f'{output_dir}/bus_load_higher_demand_2040.csv')\n", - "bus_load_state_scenario_2030.to_csv(f'{output_dir}/bus_load_state_scenario_2030.csv')\n", - "bus_load_state_scenario_2040.to_csv(f'{output_dir}/bus_load_state_scenario_2040.csv')\n" + "bus_load_lower_demand_2030.to_csv(\n", + " f'{output_dir}/bus_load_lower_demand_2030.csv')\n", + "bus_load_lower_demand_2040.to_csv(\n", + " f'{output_dir}/bus_load_lower_demand_2040.csv')\n", + "bus_load_higher_demand_2030.to_csv(\n", + " f'{output_dir}/bus_load_higher_demand_2030.csv')\n", + "bus_load_higher_demand_2040.to_csv(\n", + " f'{output_dir}/bus_load_higher_demand_2040.csv')\n", + "bus_load_state_scenario_2030.to_csv(\n", + " f'{output_dir}/bus_load_state_scenario_2030.csv')\n", + "bus_load_state_scenario_2040.to_csv(\n", + " f'{output_dir}/bus_load_state_scenario_2040.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. NYISO historical demand (2002-2020)" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ - "# # Read load data: 2002-2020\n", - "# filename = '/media/by276/Bo_SSD/offshore_wind/Data/Demand/demand_base_zone.csv'\n", - "# zonal_demand = pd.read_csv(filename, index_col=0, parse_dates=True)\n", + "# Read load data: 2002-2020\n", + "filename = '/media/by276/Bo_SSD/offshore_wind/Data/Demand/demand_base_zone.csv'\n", + "zonal_demand = pd.read_csv(filename, index_col=0, parse_dates=True)\n", "\n", - "# # Distribute load to buses\n", - "# sample_hour_load = add_load_weighted(zonal_demand, load_ratio_zone,\n", - "# load_bus_zone, num_load_bus_tot,\n", - "# zone_ids, num_load_bus_zone)\n", - "\n", - "# sample_hour_load.to_csv('/media/by276/Bo_SSD/offshore_wind/Data/Demand/demand_base_bus.csv')" + "# Replace negative values with 0\n", + "zonal_demand[zonal_demand < 0] = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
39414245464749515253...73747576777879808182
TimeStamp
2002-01-01 00:00:00238.60000977.765108247.234892262.97893423.627014542.394052762.0000854.802198216.971831810.028169...238.60000264.0000119.30000119.30000477.20000491.0000931.9420921242.5894562680.2342262680.234226
2002-01-01 01:00:00223.40000927.480046234.519954248.38661722.315985512.297398758.0000781.087912207.887324776.112676...223.40000244.0000111.70000111.70000446.80000453.0000879.2083091172.2777462536.2569722536.256972
2002-01-01 02:00:00212.00000885.974914224.025086236.01487021.204461486.780669750.0000714.934066197.535211737.464789...212.00000223.0000106.00000106.00000424.00000431.0000830.0205931106.6941252393.1426412393.142641
2002-01-01 03:00:00206.20000878.791334222.208666228.40148720.520446471.078067748.0000709.263736190.985915713.014085...206.20000217.0000103.10000103.10000412.40000422.0000800.4470441067.2627252301.1451162301.145116
2002-01-01 04:00:00205.40000881.984036223.015964229.98760820.662949474.349442748.0000705.483516191.197183713.802817...205.40000215.0000102.70000102.70000410.80000404.0000790.6390151054.1853542253.0878162253.087816
..................................................................
2020-12-31 19:00:00246.556201207.734025305.384175325.68773629.261008671.730956675.9467915.283682250.582331935.507369...246.55620411.9453123.27810123.27810493.11240715.75871119.2835431492.3780572860.6564502860.656450
2020-12-31 20:00:00237.667881162.988860294.070040316.57508828.442293652.936119665.3796885.863933242.140690903.991910...237.66788393.8276118.83394118.83394475.33576692.85071074.0405001432.0540002771.6757502771.675750
2020-12-31 21:00:00229.322701112.474401281.297099302.42840727.171302623.758590653.3130864.251424233.139148870.386152...229.32270370.6922114.66135114.66135458.64540671.41221027.5727291370.0969712684.4918502684.491850
2020-12-31 22:00:00219.185121064.788677269.239423289.93786026.049105597.996836646.4921828.592044224.478063838.051437...219.18512357.2132109.59256109.59256438.37024645.1492977.8586571303.8115432593.4490502593.449050
2020-12-31 23:00:00208.990721018.127491257.440809277.27074524.911043571.870912643.1291799.422073217.120225810.582175...208.99072345.8135104.49536104.49536417.98144619.0511931.8475711242.4634292493.7070002493.707000
\n", + "

166560 rows × 31 columns

\n", + "
" + ], + "text/plain": [ + " 39 41 42 45 \\\n", + "TimeStamp \n", + "2002-01-01 00:00:00 238.60000 977.765108 247.234892 262.978934 \n", + "2002-01-01 01:00:00 223.40000 927.480046 234.519954 248.386617 \n", + "2002-01-01 02:00:00 212.00000 885.974914 224.025086 236.014870 \n", + "2002-01-01 03:00:00 206.20000 878.791334 222.208666 228.401487 \n", + "2002-01-01 04:00:00 205.40000 881.984036 223.015964 229.987608 \n", + "... ... ... ... ... \n", + "2020-12-31 19:00:00 246.55620 1207.734025 305.384175 325.687736 \n", + "2020-12-31 20:00:00 237.66788 1162.988860 294.070040 316.575088 \n", + "2020-12-31 21:00:00 229.32270 1112.474401 281.297099 302.428407 \n", + "2020-12-31 22:00:00 219.18512 1064.788677 269.239423 289.937860 \n", + "2020-12-31 23:00:00 208.99072 1018.127491 257.440809 277.270745 \n", + "\n", + " 46 47 49 51 52 \\\n", + "TimeStamp \n", + "2002-01-01 00:00:00 23.627014 542.394052 762.0000 854.802198 216.971831 \n", + "2002-01-01 01:00:00 22.315985 512.297398 758.0000 781.087912 207.887324 \n", + "2002-01-01 02:00:00 21.204461 486.780669 750.0000 714.934066 197.535211 \n", + "2002-01-01 03:00:00 20.520446 471.078067 748.0000 709.263736 190.985915 \n", + "2002-01-01 04:00:00 20.662949 474.349442 748.0000 705.483516 191.197183 \n", + "... ... ... ... ... ... \n", + "2020-12-31 19:00:00 29.261008 671.730956 675.9467 915.283682 250.582331 \n", + "2020-12-31 20:00:00 28.442293 652.936119 665.3796 885.863933 242.140690 \n", + "2020-12-31 21:00:00 27.171302 623.758590 653.3130 864.251424 233.139148 \n", + "2020-12-31 22:00:00 26.049105 597.996836 646.4921 828.592044 224.478063 \n", + "2020-12-31 23:00:00 24.911043 571.870912 643.1291 799.422073 217.120225 \n", + "\n", + " 53 ... 73 74 75 \\\n", + "TimeStamp ... \n", + "2002-01-01 00:00:00 810.028169 ... 238.60000 264.0000 119.30000 \n", + "2002-01-01 01:00:00 776.112676 ... 223.40000 244.0000 111.70000 \n", + "2002-01-01 02:00:00 737.464789 ... 212.00000 223.0000 106.00000 \n", + "2002-01-01 03:00:00 713.014085 ... 206.20000 217.0000 103.10000 \n", + "2002-01-01 04:00:00 713.802817 ... 205.40000 215.0000 102.70000 \n", + "... ... ... ... ... ... \n", + "2020-12-31 19:00:00 935.507369 ... 246.55620 411.9453 123.27810 \n", + "2020-12-31 20:00:00 903.991910 ... 237.66788 393.8276 118.83394 \n", + "2020-12-31 21:00:00 870.386152 ... 229.32270 370.6922 114.66135 \n", + "2020-12-31 22:00:00 838.051437 ... 219.18512 357.2132 109.59256 \n", + "2020-12-31 23:00:00 810.582175 ... 208.99072 345.8135 104.49536 \n", + "\n", + " 76 77 78 79 80 \\\n", + "TimeStamp \n", + "2002-01-01 00:00:00 119.30000 477.20000 491.0000 931.942092 1242.589456 \n", + "2002-01-01 01:00:00 111.70000 446.80000 453.0000 879.208309 1172.277746 \n", + "2002-01-01 02:00:00 106.00000 424.00000 431.0000 830.020593 1106.694125 \n", + "2002-01-01 03:00:00 103.10000 412.40000 422.0000 800.447044 1067.262725 \n", + "2002-01-01 04:00:00 102.70000 410.80000 404.0000 790.639015 1054.185354 \n", + "... ... ... ... ... ... \n", + "2020-12-31 19:00:00 123.27810 493.11240 715.7587 1119.283543 1492.378057 \n", + "2020-12-31 20:00:00 118.83394 475.33576 692.8507 1074.040500 1432.054000 \n", + "2020-12-31 21:00:00 114.66135 458.64540 671.4122 1027.572729 1370.096971 \n", + "2020-12-31 22:00:00 109.59256 438.37024 645.1492 977.858657 1303.811543 \n", + "2020-12-31 23:00:00 104.49536 417.98144 619.0511 931.847571 1242.463429 \n", + "\n", + " 81 82 \n", + "TimeStamp \n", + "2002-01-01 00:00:00 2680.234226 2680.234226 \n", + "2002-01-01 01:00:00 2536.256972 2536.256972 \n", + "2002-01-01 02:00:00 2393.142641 2393.142641 \n", + "2002-01-01 03:00:00 2301.145116 2301.145116 \n", + "2002-01-01 04:00:00 2253.087816 2253.087816 \n", + "... ... ... \n", + "2020-12-31 19:00:00 2860.656450 2860.656450 \n", + "2020-12-31 20:00:00 2771.675750 2771.675750 \n", + "2020-12-31 21:00:00 2684.491850 2684.491850 \n", + "2020-12-31 22:00:00 2593.449050 2593.449050 \n", + "2020-12-31 23:00:00 2493.707000 2493.707000 \n", + "\n", + "[166560 rows x 31 columns]" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Distribute load to buses\n", + "sample_hour_load = ng_prep.add_load_weighted(zonal_demand, bus_info=bus_info)\n", + "sample_hour_load" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjEAAAG1CAYAAAAIpqWnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADZ3ElEQVR4nOydd3wUdf7/X7vpCckmlCSE3nsHIYB0EBSxo6J43nF6d556nPr1zvMK3imov7NjRTwLKlbsRnoJpBESSCWk103dbLLJ9p3fH5vdbJnZndmdmS35PB+PKLv7mfl8dmfm83l/3lVCURQFAoFAIBAIhABD6usBEAgEAoFAIHgCEWIIBAKBQCAEJESIIRAIBAKBEJAQIYZAIBAIBEJAQoQYAoFAIBAIAQkRYggEAoFAIAQkRIghEAgEAoEQkBAhhkAgEAgEQkBChBgCgUAgEAgBCRFiCAQCgUAgBCSchZiGhgbcfffdGDJkCKKjozF37lzk5uZaP6coCrt27UJKSgqioqKwatUqFBUV2Z1Dq9XioYcewtChQxETE4MtW7agvr7ero1CocD27dshk8kgk8mwfft2dHZ2evYtCQQCgUAgBB2chBiFQoFly5YhLCwMP//8M4qLi/HCCy8gPj7e2ub555/Hiy++iL179yInJwfJyclYv349uru7rW127tyJQ4cO4eDBg0hPT4dKpcLmzZthNBqtbbZt24b8/HykpaUhLS0N+fn52L59u/ffmEAgEAgEQlAg4VIA8q9//SvOnj2LM2fO0H5OURRSUlKwc+dO/OUvfwFg1rokJSXhueeew+9+9zsolUoMGzYMH330EW6//XYAQGNjI0aNGoWffvoJ11xzDUpKSjB9+nRkZmZi8eLFAIDMzEykpqaitLQUU6ZMcTtWk8mExsZGxMbGQiKRsP2KBAKBQCAQfAhFUeju7kZKSgqkUje6FooD06ZNo3bu3Endeuut1LBhw6i5c+dS77zzjvXziooKCgB14cIFu+O2bNlC3XPPPRRFUdSxY8coAFRHR4ddm9mzZ1P//Oc/KYqiqP3791Mymcypf5lMRr333nu0Y9NoNJRSqbT+FRcXUwDIH/kjf+SP/JE/8heAf3V1dW7lklBwoLKyEm+++SYeeeQR/O1vf0N2djYefvhhRERE4J577oFcLgcAJCUl2R2XlJSEmpoaAIBcLkd4eDgSEhKc2liOl8vlSExMdOo/MTHR2saRPXv24KmnnnJ6v66uDnFxcVy+JoFAIBAIBB/R1dWFUaNGITY21m1bTkKMyWTCwoULsXv3bgDAvHnzUFRUhDfffBP33HOPtZ2j+YaiKLcmHcc2dO1dneeJJ57AI488Yn1t+RHi4uKIEEMgEAgEQoDBxhWEk2Pv8OHDMX36dLv3pk2bhtraWgBAcnIyADhpS1paWqzameTkZOh0OigUCpdtmpubnfpvbW110vJYiIiIsAosRHAhEAgEAiH44STELFu2DJcvX7Z7r6ysDGPGjAEAjBs3DsnJyThy5Ij1c51Oh1OnTmHp0qUAgAULFiAsLMyuTVNTEwoLC61tUlNToVQqkZ2dbW2TlZUFpVJpbUMgEAgEAmFgw8mc9Oc//xlLly7F7t27sXXrVmRnZ+Odd97BO++8A8Cs+tm5cyd2796NSZMmYdKkSdi9ezeio6Oxbds2AIBMJsOOHTvw6KOPYsiQIRg8eDAee+wxzJo1C+vWrQNg1u5s3LgR9913H95++20AwP3334/NmzezikwiEAgEAoEwAHDr+uvA999/T82cOZOKiIigpk6dahedRFEUZTKZqH/9619UcnIyFRERQa1YsYIqKCiwa6NWq6kHH3yQGjx4MBUVFUVt3ryZqq2ttWvT3t5O3XXXXVRsbCwVGxtL3XXXXZRCoWA9TqVSSQGglEol169IIBAIBALBR3BZvznliQkkurq6IJPJoFQqiX8MgUAgEAgBApf1m9ROIhAIBAKBEJAQIYZAIBAIBEJAQoQYAoFAIBAIAQkRYggEAoFAIAQkRIghEAgEAoEQkBAhhkAgEAgEQkBChBgCgUAgEAgBCRFiCAQCwU9oV+t9PQQCIaAgQgyBQAhYKpW9MJlMvh4GL3xQ0IAFTx3GdR9nu29MIBAAECGGQCAEKLvPVWDNnhPYdCDH10PhhWfTSgEARQWtPh4JgRA4ECGGQCAEJPuPlQMALhe3+XgkPBGUBWAIBGEhQgwh4DAYTZj36ilc+xFRuxMIBMJAJtTXAyAQuPJhUSMUjSooGlW+HgqBQCAQfAjRxBACjl690ddD8JpKZS+ezagMiu9C4AeKIvYkAoErRBNDCDi+vtjo6yF4zfpX02Hs0eNioxKf3jLP18MhEAiEgIRoYggBR7cm8HNpGHvM3yG3LEicUvt44sRljNuVhq/Kmn09FAKBMAAgQgyBNwpau/Gnw8UkYdcA5tNfykFpjHj8YL6vh0IgEAYAxJxE4I0b3jgLk9qI4qYuHPnVEl8Ph+BDhPTvMJlMkErF3X+J0SfxiCEQuEM0MQTeMKnNTqoV1Z2+HQghaPlfQT0mPPUL/p1eDkAiSp8vZFVh/K5f8HJOtSj9EQgE9hAhhhBwtDaQ0Gp/RKUzCN7HUwcvgdKa8N4PlwXvy8Jrh4oBnQkvf1UkbEdEFUOg4XKHCoteP41Xz9f4eih+CRFiCAHFp8WNgJHM9v7IP09dEbwPyhS8156EWBPo+PUX+Wit68aLXxb6eih+CRFiCAHF0z+X+noIBAaUNlFjFtOikFBBUviRwA8qnQH/PH0FpR3BpalVqnS+HoJfQ4QYQkDR06ERtb+9uTWY+txR/FwpTFE+nZJMUJ4ihqBECBzu/eYiPvypDNe+lu7roRBEhAgxBIIL/vtFITQKLR78+IKvh0IgEFxwqaIDABFuBxpEiCEQWGDUkomRICzEJYZAh6pN7esh+DVEiCEQCIKiMxLfFQLBUyREuHUJEWIIBIJgvHK+GpP+8TP+ekK8kOhARd9F/KMIBK4QIYbAO8QmTQCAR4+W4MUviyAxAQd/Kff1cAgEggPXfJiFGf89Do0+cOdsIsQQCDTsu1iH1LdIlIM3fHW00tdDIAwgTDb5owJ5URaTy8Vt6GlT4638Ol8PxWNI7SQCL3xc1OjrIfDKM59e8vUQCAQCB4y6fsFF3qvFWFm0D0cTWBgCOIkk0cQQeOFYRZuvh0Ag8EpzjxZ/+IlkSSX0YzKZ0Eu0PH4FEWIIhAFGVlMnFuw9hf8V1AvelzglGoXhpgM5+Pk0qVcTiAgVD7dw7xlM3/UL6rqED3uuVPZix/fiaIQD+TklQowPMBhNMJGU6YFF4Gpbnbj3o1y016vw1McXfT0Uv6axrsun/ffqjfiwsEGUwpoEdnQ0qgAjhVdEqGh+43tZOHY2cH1VxIIIMSKj0Rsx7bmjWLD3tK+HwiuOa3y7Wk/bLmAJoqKTmp4guzZByo2f5OCfB/Kx6YNsQftpUmkFe17/dLgYL4qw4APC7TP+V1CPSbuP4L1LwmsuAeBYTTsOV7ehq7lXlP4CHeLYKzJflTVD36WHoiu4F5LSDhWWjUjw9TA84rxc6eshEAgoK2kHANRVKATrQ6HRI/Xpo6AAVO3eBKmUv31tWlUrvj1eBQB4ZNFY3s5Lx5OnygBdv3abT0W3RWP570+E11yqdAbseDNT8H4ckUgD16BENDEEQcio7/T1EDzmtrcyRO3v81I5bvksFwqNOIItJVAG3Ys1nYKclyAcuXKzyUyIJaxSIV66/I9/viJaXwAgFciLpEOkOcCRHwubfNIvHxAhxoZnzlVg5ovHkd/sW1t4IEI5FH7Ze6jYRyPxHkojbvTB4+/nIjdPjvu+Eyms2yCM4r2tvluQ8xIIBGGpuNzh6yF4DBFibNj3XSlULWrs+CLP10MJGE7WdeD+HwugMxBHZW+paevx9RAIPkIsLVwwkkNj/hXag00iCVzzS7BBhBga2utVmPTMYdz3QwHJ/OiGe1/PwOEztTh3IXDVkf5CZ6fG10MIWMRyuhSKl7KrfT0EQantUqNa2Yudh0vQoOL3Pr9AfNgGNESIYUDfrceR9Fr8+UiJr4cSGPgoeqe5R+uTfoXAILIZK5h44XCZr4dAcMDWV3TTOxm4bl8mvjleiS3vZwne954z5chq6hTs/EIpYgpaVcKcmAWBOpcSIcYNp4qbfT0EggsutgaRHwbRUA9YahTBHU7b06ZGT5vZ0be9nt+FmqLZPx0/V4fbXznLaz9iUN8tnjO0I1cC9B4kQowbetuIip8gFkSKGai0qQJzFzxQIU+q/0CEGIJgGAQK5bXFRLcNIzBSHqC7LQsSH1/uvbmkDAEhOAnUGpBEiCEIxuwXT/h6CAQH/nNa3HwaYmEQKTruv18IUxDSGKgrCA0mkwmzXzqBZ78Sp3imL346oXxiJETHwxkixBAEo7edmOI4QeYvj9F2Bq45RqUzoLQoeKrAZ8mV5pT5AuUjcuTolVZR+rFFIpFAKUBYvC8jt00BWiCOCDF9iFGVlMA/QWVNCqbvQmDNL9XtPutbiIVLBCuyHRfy5OJ2COBQdh3m7DqMR3iOXhUqEzAbAlUbSISYPtKqxN8JWRJc7fj+En4tVrZWgt9CaY3QCbwCEGUPBxg0CYG84dHojVj6djp2HiapI7zBomX++lilj0cSOGz94gI2fMB/XSgixPiQBc8dQ3OPFsfO1uHEuTrUBvDkSOCHQA1zHEik1wtXkFFoVr57Do1VSnxznCy+BHHJzm1CWUk7TtbxW+KAkxCza9cuSCQSu7/k5GTr5xRFYdeuXUhJSUFUVBRWrVqFoqIiu3NotVo89NBDGDp0KGJiYrBlyxbU19tn21QoFNi+fTtkMhlkMhm2b9+Ozs5Oz78lC3J8ULDQpDZCbehPcKbSkWRnbnFIqheYClDfQdKlD2yaa5jrwvFlTQhQqwRBQLp1/f5DPTyvc5w1MTNmzEBTU5P1r6CgwPrZ888/jxdffBF79+5FTk4OkpOTsX79enR39yck27lzJw4dOoSDBw8iPT0dKpUKmzdvhtHY/8W2bduG/Px8pKWlIS0tDfn5+di+fbuXX9U1pAJvYNLUHbgOnYTAhO8IkhqlbzSwTSqtT30wCP6FkP6FK97qTzzItx8WZyEmNDQUycnJ1r9hw4YBMGthXn75ZTz55JO4+eabMXPmTHzwwQfo7e3FJ598AgBQKpXYv38/XnjhBaxbtw7z5s3DgQMHUFBQgKNHjwIASkpKkJaWhnfffRepqalITU3Fvn378MMPP+Dy5cs8fnUHyLMckLxyPDhDhoWC3ObeI+HZCH+srIXfE7Ik9emjUOkNPumb4H8IGZ2kaBSuuC3nx/HKlStISUnBuHHjcMcdd6Cy0mxbraqqglwux4YNG6xtIyIisHLlSpw7dw4AkJubC71eb9cmJSUFM2fOtLbJyMiATCbD4sWLrW2WLFkCmUxmbUOHVqtFV1eX3R8niAo0INFqg8sEV9DSjU0fZSOzsdPXQyG4wGQKjqrtZe2kcjrBzHelzegNwILHnISYxYsX48MPP8Qvv/yCffv2QS6XY+nSpWhvb4dcbg5zS0pKsjsmKSnJ+plcLkd4eDgSEhJctklMTHTqOzEx0dqGjj179lh9aGQyGUaNGsXlq/kFRI7ijiHI/Ij++mk+Sopase1dYYrkFTUEbsVfMTJAs+Efhwox6ZmjaFfznyckGAjUfCMDnR9OVmPeC8InKKV4dpriJMRs2rQJt9xyC2bNmoV169bhxx9/BAB88MEH1jaOjoMURbl1JnRsQ9fe3XmeeOIJKJVK619dXR2r7+RrpMTRkmCL3rxQm3qFUfO7cuz0d/JELPbpKpGZTqmDsUeP585ViDYewsDA18tBICaN9Mq6GxMTg1mzZuHKlSvWKCVHbUlLS4tVO5OcnAydTgeFQuGyTXOzc+Xo1tZWJy2PLREREYiLi7P7G8g8mFaEsX/9EU+ll/t0HELnPSF7PgLftKv1mP3UYV8PQxRsN8XvXKxnbkgQBV8LMYGIV0KMVqtFSUkJhg8fjnHjxiE5ORlHjhyxfq7T6XDq1CksXboUALBgwQKEhYXZtWlqakJhYaG1TWpqKpRKJbKzs61tsrKyoFQqrW0IrlFq9PjhZDUA4H8/9DtDr34vA0vfThd1LNN2H+HNf+CrMmfhlkDgmx8rWnxeaFIsKJuQlNyGTt8NhAAAeO1k8Gv3+N7WhnJp/Nhjj+H666/H6NGj0dLSgqeffhpdXV341a9+BYlEgp07d2L37t2YNGkSJk2ahN27dyM6Ohrbtm0DAMhkMuzYsQOPPvoohgwZgsGDB+Oxxx6zmqcAYNq0adi4cSPuu+8+vP322wCA+++/H5s3b8aUKVN4/vrBySvnnSvttqv1qCozJxnKb+7C3CRxNFXGHgN0RgqRXkZ0vJ1fiz0HC9w3JBAIPoUKqlog4nG2QYGOBpWvhyE4fN8enISY+vp63HnnnWhra8OwYcOwZMkSZGZmYsyYMQCAxx9/HGq1Gg888AAUCgUWL16Mw4cPIzY21nqOl156CaGhodi6dSvUajXWrl2L999/HyEhIdY2H3/8MR5++GFrFNOWLVuwd+9ePr6v3/FTRX/xMhNPV5fuLEYbbYghACeZbwrEr49CILiCLwdWX1oQhJgJSLI7z2jt1fl6CKLQpeXX34+TEHPw4EGXn0skEuzatQu7du1ibBMZGYnXXnsNr732GmObwYMH48CBA1yG5jUGH4VMPvtZv3Yh0Lz6Nf4QjieiQNau1mNIVJho/REGBnwnzyMQ/BmfJ7sLVtrrg1uNJ8RSn87Shi6VCjhJi+gJZ5s6m0AgEAjc4VtfQIQYkfFVivHdZ/sdxvgK69aLqL1q79bQfyCiJuajgkaSG4QQsJR2BPdGjRAYfF/Cr2sAEWJE5lhZq/tGXuIoonx3pRnfHq+yvn4lswp88HUxu5uRj5vM6AeG9v0/XMbad866b0gg+CG3/C/b5ed87QcC0OXOLxgoizHfbggD5XcLCCiBFBv5zfZJwk5l8JMPQmvwA58YkelsImnagx22mkreFmuRLKI9rb7RAhMIQkKEmAGAwQ+0GITg5vNS4aPH+Ire8zv85GuRRGsEMaio4zdrOBFiRMYX88TX5wOjBINH+MkCEAgIGU32+Pu5gp072KHITUzwAf88fcUn/eq7dDha3c7b+YgQE4Q4CkqqdganWMKA4rULzkkQ+SBYKjpzJdg0F3wpugItVQQTJpMJB4ubfD0Mwfj4ZKXP+j5VQ4SYgMXVxCfYUmD07aQiaOG+IFtIhEQhUGRVsFkr2Zqt+Fj0TSYT9D58PoPs0vHKnswq/PXDC27bVSp7caHZexOJRMhUFH6GkUfTMKdkdwSCJyhcVAT2GjILs0YolxKx9DDBWPF9zsun0N3S6+thEGj4/mIjq3Zr9pwAABx/YjXGy6KFHFLQwOfGh2hiRMbVNBxojosSlouKVEB1iS9+sWUkzJoAQM/DTOxrAeZICf9FVd/OEsZs6e+cqu3w6ngVz+n4/ZliOX/OvUSICUIEzZDrAcFiI7fQUNnp6yF4hFBXQRlkmYzZanx6dYG/6FRfUfB+zty84KhzJvaspTGK51umM5pg7A38+xcgQgzBC/xLVCL4imv/lyVKP4KaJQm8+ikQuCOkxtqRR46UiNaX0BAhRmRcmWD4mkJMLNTcB4rY2XtdwdacRPAPhFqjWmsFdNy24Zdy4bNdcyHY1vz8Kv61MgT/pLiR31wtXLl0sYW3cxEhZoDy90/yvT4HxXIWF9TXJ8gWEiHJrvbOZu8tvf5Q9ZzACNvn2Z9wF96fVuWF4Bt4P0dAcbaBH6GZCDFBCBufGMrHYdcE8akq860Q4y3u7tjzciW2fJqDfB7CXX3N/NdOid5nAMowblHpiOBMhz9c6k4NPz45RIhhwdr3M9Gq1vp6GAFLYYtw1XMpLX+T1Ok6Bea/Kv7i4UuCKVHd7fuycOliC7a+J46PjpB0NJCK0wThcKV1u9DchYV7T+O9S/zU2BMaIsQAyGh0rdaqKG3H778rFGk04iCmN8sbv5SJ2Jvn7PgoBx2NZPHwV9zds8Yes+OvTqkTfjAEv8Cd+x/x26PH1c922zsZaKvvxr8/uSjoGPi6NESIAXCw0H1q6aZO4SvABlqeGDVLHwdKxNBBb9D3sFdvqgIsvFYXINfAH2A7twbY4+oWUsPJnoH6exg5zIP+ABFiWNJQrfT1EFgj1t4jp9i/okXEpEElfD0qPk093Qy+AcFWMoDgBeRe8AoxQ6S9Raf3/aaGr1+LCDEskYjwgAfazo5iuQIGoxOxGN9oV3oFb+cyiVYcIPAJvrt14OLNAsf1PvA2qaeYlq+mANqUu4MIMSITVCZats+swbuHO6NRgfZ6Zl+V/Rd5ckDzM2Hrp0vBW0HXE4Lq2SHwgqCiucjTQTDWBnMF8YnhETHvVUkAqRz9hTv3nnP5+dOHxHe6DpagniD5Gj7Bv0ReAh2BJBcEmk+kt2gM/Mw+RIgRGa2B2Rn2xyv8ZTEMKshK6zVUEPyGgeRzQCBwZYDJMHgzo5qX8xAhRmQqLzMnHPvoSDkvfVxqCvxkX1ygNOIntAqW+YZNiQp/gYTLEhxxd/+SBc5/6VbzUwuNXOMgRE2yVAqOPsBClv1BVPF2shErLT5bUYmIVL7nYps4dbvEIFhl9KymTkHPT4QYgucE6UPHhpvfzvD1EAKOwBL73OMPgiGfBNr3UWr0uP2Vsy7bSFiUYCEIy5376DNoE8deAiOiSfSBNuvxiKk3sBJCyXvpy2YEkmDhb+akQCyY6C+09HhfxqW6230CUm/8qMjl5Qeh58oBKcSYTCasfT8T935rTqvsN5ORnwyD4B/wtWZXKntxwwtn+DmZD/EzGYbgBW/n1Xl1vMFoQkZ9Jz+D4YkubWBtbHwPPw90KC9nCTA+K5WjorQdFQBwwxxfD6cfnvKUiCeTEakrEPi4oNHXQxCd2i41RsdF+XoYgUUAPc43HDyPogL3GcPFFHwVPDmqErgxIDUxCp5KgBMIgU6w5qa4+/M8Xw+BICBsBBhv4Vo7SYxAv1a192Y4f4H4xHiB473mb7b2gCE417+gQxokzo1cvkWbQviCrWTeIIjNdf+jd5IdyAxIIcafaVIFj6RNIPgKMeRrv/Gl44lgrNpsEDEVgrf3A5uyAy21QRRSztN5iBAD/5qMUp8+il49yfNC4M+36QcXNZh69EYoNeLY8q967RQ05N4miMjDH17w+Fg/WhaCFH7EmAEpxHgqtIzblcbzSOipUnqnCidaboItrirWLn7mKGb/+7AogrOqRY29F2oF70csajt6fT0EXtEEWNoAVujF08R429NAm7aJT4wP4CO9PSXwnfr/sipRVh88ZdYHMqIIoyZAYgKK2pmrhPOJTiT1vrpdI3gfFVeYS4gEInzk83ghq4qHkQxMBprihwgxXuDLcjGh0WGCnTu/uQuvHypBb5vwEziBMOAZaKsOC147VMyqXXFzAPh2kOsrKDVXFFDwYMoekEKMbxHuySjvDC71NheePFUmqhMfQXzEMpOq9EFoVvEzjAFUeFQsgjHdwYs51S4//+uxUq/7IEIMiANXMPDxz1fw15OXfT0Mghu8edTECmlWqIkQQ+COWAEigeQc/+pXRS4/58MXb0AKMT4NJSQCk2DkVCt8PQTCQGKgeWLySCCEc4s9QjYh1gDwfmGDwCMJLAakEBOsiJ18y/+nocCmtVEcZ1sxKWzq8vhYv5usyAPgMZXNwXdvi6XR56k6TdDgd/OCGPi7+chTUUQdQGpGAgs8nK0+K23Cyv3ncLmD/UIhlj0+I2fg1XHig2BLgtler0Jdl/BZlcWEuPn4hgEpxPgSIe/zzy5yUzP+4adCr/obJIvw6niCMPzl/QuouaLAXZ94nujLHxFL08jWt0Ei4qKV+vRRFLQGQEQPB8oU/h6IwO0Ce+sTQ6yTnjEghZhgjWHh6vH/0+kar/oLCRmQt4/XiBVF1akUNtReqdFj9ksnBO3DF/jrhnpfXp2vhzCgEFtjz7bEmT9lmPcHBuQqRAWp3o9k6g0M/nSkxNdDcMKTefHvp8rQ1ezvu2n/5eOigW1a0xiCaztp8lL8DdJlSXAGpBDjyJUW/3Iy8/ReJgJ6YPDjyWpfD8EJT6JFenXB6YMl1l7gyY/yOLX3ZlylHPyjxIJsuoDaLjXWvJeBD0nEkceE+noAvsB2um5Va3G5uE3EzgempHH3oXwcuGmur4cxoOCyRkiIRT6o2fj8KV8PgUDD9i/yUHNFgX+WdSAuKdrXwwlIBqQmxjbVcVkQFXHjurPxdtkycdB/pmeRnQaB4A2eCpoXWz0Pa+fC9R/niNJPMNGm6PdbI6ZZz/BKiNmzZw8kEgl27txpfY+iKOzatQspKSmIiorCqlWrUFRkn7VPq9XioYcewtChQxETE4MtW7agvr7ero1CocD27dshk8kgk8mwfft2dHZ2ejNcKx09Ouu/1SJWOWVLoOyJu1uC56Hjo4aH38HhRgqE5GMEzxAjPPtiaxcKCloE78efqe8Up2Yd8Z2xx2MhJicnB++88w5mz55t9/7zzz+PF198EXv37kVOTg6Sk5Oxfv16dHf3hwfu3LkThw4dwsGDB5Geng6VSoXNmzfDaOy3sW/btg35+flIS0tDWloa8vPzsX37dk+HSyC4ZNVbZ309BIIbcmoGdkZmttErvkChCb5SDVw0zQCQmdMIpQiboRe/LPSq9ECw1ZjzSIhRqVS46667sG/fPiQkJFjfpygKL7/8Mp588kncfPPNmDlzJj744AP09vbik08+AQAolUrs378fL7zwAtatW4d58+bhwIEDKCgowNGjRwEAJSUlSEtLw7vvvovU1FSkpqZi3759+OGHH3D5MqmPw4Qfz3F+j1Le4+shENxQUtTq6yEQGPAk7Nff5ytPzDu13eJoY7wpPTD35ZP8DcQP8EiI+eMf/4jrrrsO69ats3u/qqoKcrkcGzZssL4XERGBlStX4ty5cwCA3Nxc6PV6uzYpKSmYOXOmtU1GRgZkMhkWL15sbbNkyRLIZDJrG0e0Wi26urrs/tjgbVgcgeC/sF8miIo6APD3VZ8jwXjLibWeeFN6QNXqP5mSa9u9d0ngHJ108OBBXLhwATk5zk5ccrkcAJCUlGT3flJSEmpqaqxtwsPD7TQ4ljaW4+VyORITE53On5iYaG3jyJ49e/DUU09x/TqiY1IHZ1gqgUAQFp0f51XxRAgeoIGa9gSZYMoVPQ/3NCdNTF1dHf70pz/hwIEDiIyMZGznmB6coii3KcMd29C1d3WeJ554Akql0vpXV8ec3bJT7RsnznK/T7NN4MLtXwZPWn9PFhSyCIlLs0imCoLnUBzXZKMfC6aBAichJjc3Fy0tLViwYAFCQ0MRGhqKU6dO4dVXX0VoaKhVA+OoLWlpabF+lpycDJ1OB4VC4bJNc3OzU/+tra1OWh4LERERiIuLs/tjIiO/f3xiFb4DgKzGTlbtpD4MfG9QaWAykQeLDVnnm3w9BJdIJMAVIjhzxl9lM7oQ63u+ycfDh4t9MBp7PJlGg9GUz3Xm1CiCq7CnL+C0XK5duxYFBQXIz8+3/i1cuBB33XUX8vPzMX78eCQnJ+PIkSPWY3Q6HU6dOoWlS5cCABYsWICwsDC7Nk1NTSgsLLS2SU1NhVKpRHZ2trVNVlYWlEqltY1X2Og+g2k36e1X+amyFcuePoaFr5/hZTxi09Ckgi7IPO+95faP2OXu8MQcQDKu+paspk6czmzAd8erXLYLpjnOE+a+chIHBniJh2CGk09MbGwsZs6cafdeTEwMhgwZYn1/586d2L17NyZNmoRJkyZh9+7diI6OxrZt2wAAMpkMO3bswKOPPoohQ4Zg8ODBeOyxxzBr1iyro/C0adOwceNG3HfffXj77bcBAPfffz82b96MKVOmeP2lCfT892Q5AKCjwf9SlLPBoNLjnm8u4uAt83w9FL9B0UY0MVwJlDW/3UdmcTr8WavS2dSDv3+Uh7ufTRG8L0fN/vcVLThc3oqX1k1DKCmYKwi8lx14/PHHoVar8cADD0ChUGDx4sU4fPgwYmNjrW1eeuklhIaGYuvWrVCr1Vi7di3ef/99hISEWNt8/PHHePjhh61RTFu2bMHevXv5Hq6oeJvn4XKHCntzavC3ZRMxfFCE0+dkYwxkXZIDt/h6FIGHP+cgERt//Sm6/Dgho5hm+UDioX1mTWhsRCh2r+JvA+7pPXq4WsQSOyzg477xWog5efKk3WuJRIJdu3Zh165djMdERkbitddew2uvvcbYZvDgwThw4IC3w3NLnlyclNxcYHJJuf7tDOiUOuRUdiDzD1c7fU6mEd9yx1d5MJkofH7bfF8PxQplYHdXkBDrfvxViCkt8q8FiOAM02NU0CDOOvPepXqcq+3AO9fOhNTBubJBpcH9b2WJMg62yOu73Tdyw4AsAGlLdQA5PuqU5nIJTbUCPRD+OntzwjdfokmlRWaO2e5evaEXY2W+L+am1xqJdEIQxXeJKGLMMGkWJDxbkph+7n9/chEA8OKwWDy2eJzdZyVt/pfQk/Im4U0fxEgnImwLuLV5aOvmc666+1A+3sqr5fGM9qh04qcpr1T24r1L9YJEX6ltSmZoBHQufju/Fiv3n0ODyn24LaUhOYk84VIT+02CL2tuBbrgQAWhgM10TcSoEr//Yn/9wZIW7zUcosDDzzLghRilHznHWfhbmuuQSQkFwcOg07Ma8OxnBfixgv9U7/d+exEz//kL9ubW8H5uV6x54RT+/clF/OdcJa/n/bS4EWv2nLC+5vPSOF7nPQcLUHNFgWVPH8Ocl0/ydh/4wjHTZDJhxbvncPehfNH7dkUZByFm3q7DaFX7PkzW16H0ntw9wRhHaFtIVexUFf/59GL/OIJPPmRkwAsxF8r8z87c3eNesHqa54UYoBeKH/zgPO/9nMww7xhe/L6E93O7RGeeVH4pos/67ClPfJjH6/lseTaTOXxWKe9BLk87LrraN5XKXrx6voaxYJy3E+WB4ibUliuQntUAg9GEDR9k4m8nfV8bjev3+qnc93PI+udO8JJMk6mA4dr/ZWDqc0fR60XhwYFGg0318HYRKonbEjAyDA8DHfBCjJjwaRfNrung72QuoHQBtl9ioZ7UBtBE/G1+f36L/GZxndDXvXQaL35ZiD8ftRc2TSYTZr90AsfPMWfFdsVDvxShrkuNbl3/ddidUYmyknZ8klbu1Zh9gcpP7qfvylto3+cilM3ZfZT2/YrLHdAotHjjQi2K21T4qsw+GSnJ+GzG1kLmy6/nSUHOQIUIMTxd64+LGpFW5dr0wjUldbBj8pHPRnu9fR6clh5+d0l8Th+26ukbXhYvCeGa9zKs1+d0if19fbqh06MKvxa+P1GNLe9no6K939HQ9t++wlP1/1f59BWFe/VGUX2/vsqrd9/IHW42LSaKwrX/PYVH3zuP7yvohSaCM/UVnbyez91ebeCIMESI4YWiNhWe/CgPv387231jFijlnk3oA+nG9Zbbv7xgFV7qeVb19hqMuHrfOfzjVJnX52qp7car582+QxKaC8yXdsZ2B6kzmlBZ1q/pc7wf+djlKRpVMNqcp6rVt0JMq1qLybuPYs17GZyTPRppfg+D0YTpT/2CGf/6BRqRNDUNlUrB+7CNdPrpcr8Q48/J7ujQ6I34qbKVd78V21tByNw5FR2unxdFr06wvv2NAS/EcL3N6G76PJuFxFXae77D7AjO2O5QWtVaVCvpNQZZ55tw95fe+7JU0pz/2VPlqKtQ4KOfr3h9fgB48ctCxs+e+fQS72amRhaRT3xgG7HB5HcjFnvOVsKg0tsJb2yhW6sae7SAgYKEAk43KJwbeMnLOdX44z5+Nk1csL1mXRrvtEy+uOItPVrc+VUe5rx4Ag+8k41ffXdJsL5+qhDOV8rgJrLr0kVnLZnYgiYfmzg2kGWVB2wl7r+e8J1jorfRavUtvlfpe43Nj7DwqaNYtecEmnu0eCff2X+jrtn77/tVqbOTsKJH3F3QrfsyeT3ftoPiVOc2+pN91Yv53Z1m6mR1u+cnZ+Dlr4p4PycbbOeYs9n9ZrRACZe+68s8ZOQ0QttXePHMeX5rKtn+DC/+VMrruW0JhF/7k9PVovQzMIUYCe0/eaFKoIRCjnlB6PIOeHtja0WoqCpm2KHlFzpVp8DuLwqcPlcrvf++h0uddzye7Oa9waDiN02AvEmc2lk/nO3PQ9RY1W8K2X2uQpD+spo6semjbOTI+TW7qNTOGgnbpzPQfCxfOV/N+JmEoT6FJ0+1LxafWsd7m+drY6v5FfK6+8Jx12Qy+SS/lzsGphBjA2dzEs0BbO8nbxIevX3BXpNQ54fZF9lwoLjJ10Poh4dskf7C7nMVvE0wdA7X132czb//AIMT6Ts/8aPNdBzvtnezUFLUijvfFT71ujSAi1G99GURoxk2hOFr8bmmmkwm0XOs8EW+XRmb4JlfAGDxW+mY8a9fUNrBdpMjzvcfmEKMbT0Zjr9ze18ehSaVFmP/8TMm7T6MbhGkU0fnwc4mZyEmEKbNTi/t6O4w0dQKokAFlcBCxzvfleJX31x039BDigparUkCA8RygP87bi8MGXvM9x7fmis6pDZPo69/rpxG7pon2xwntv5K3vrB2EInpphMJsx44QRm85jI0RZtp8DaZtulxc8eFKmXK0RrbTckFPDsGWE0pZ4yMIUYL3j8qNnOmfr0UUBvgr5LjzdPCHtRyxW9OM0iKZ8Yqa0vd6jwxInLjEmx3HHsCv8ZgN1xotK1T4I3UQRGPxKO8i977nvB5if43w8i+XuxLFrpjq+O8p8Qki0Fbb5J++648OfIlXjPg+tmez+csxGC9jOcyxNxg84kktGkhLpdA1WLGs29/pdNnQsmtX/kDwp2iBDDkR6t806kp03N6ljKwz3ZuudOoK6C/wgHT7j29bP49Jdy3OlhZM/Fi/ZJsn73o7Ovird8c6UZ43alWV83KV1H23izZFZcce3/MuvFE7zsKN/Od1/Hysgi0zMT/hYi64+2dy5UdfabYy418OuD4yqS66bP7J2y08o92zT4Qomg0Rtx12vn+scgxj0pUBeuolTFICIhQrBzS8SoKMqBAS/E8O0f1dqtxcaPsrDvonM0zBeXuHnC64wmXPOhf5VOt6jkL1fxI1T9cob/IpM7/5drV/zQUXByxNOJHqDP3WJLd0svCtr7bchXvXHao372HORf2PMES84aodH6kYbLW4oL+dU+drvIO3PxYjMrgZcNJpN5/tlzkp9UAU7nd7jEpQ65T249cB6f00T/8Ysw99njx3xbPkMqoKDB9sxGvTiC3IAXYrjexO5a11d0orSoDc986px/QMFBPbru/UxM/lcaLhezzzXgqaYHECdqyF0uEJXO4H1iML2J8zZSyKrTQL8tuq5LjZbaAKkuy8CLXxZCDJ/VAPaLFZwqpWvNLx8CrwkUPipqwuXiNpQUuRfCVDQaam9pqlbi8fdzeT+vkFimnm9OMdc88xV8abZYy0cilawJeiHmTD3P4a7e3Acc1D7lpe28+QawYY+LQoN8sfo9+nwmO76/BI3eiJn/OYJpzxwRPTJB6IfAsivyZ92CkNlFPUHoa/JUukONJh6Fpm+uNAuqOeOj0KM7KIpCG4esr08dYk7IyBafJAPleao5Udyn9aXRJIqVuVlohNTyeELQCzGPfeMfangA6OE5MofPirJHafKd8A2TX8+xs3XIa+0C9CZQGiOUOnEf9h8uChv27V+PPD0/lrG//lc6hF9Es3jO5XLFYeHn00nZ8fru3M9/5Xdb9CL4WxhNwAUWvjyW+kmmXu5zm6PmWIz7SmiU8h7GWmy//cF/1iJv8DMZJviFmJ5WflOoe7Nf1fFsI6ztVqO2S82LhO9qJ/5Uejna1cJGCrzPR/E6D/igoAGKRmGTu1mc/PxN22HLj5nsK1Jz2aF7SrtNHyfrOjBp9xGvznfNq258kby5NCwmdcdklZ7SqtbiyY/cO9V7W8bhyZ+K7TLyMnGpmT/zaHZ9J2/n8iVdDJuw9KwG3hzW2Uwl5YpeQbTafMowkfHeOyAHvRDDN0qBF3Mu5Mm7sGL3ccx54QQAz+Zhy0NVU9XJ2OZ/P1zGgqcOC6oOPXeZ3vdH6Jo6eU381h2i45sys4r5d9/6/06smeeK3p5i69Z07+sZ0Hd5LjgpNXqfh7s+/BM/ZQLeYSnse/vUNNeyey741Ab7W9SLp7iah/98uMTu9eCUQYKMQd2hwbrnTmDTgRzez83ndZowIs7rcxAhhiPtbsJ1bRHat+OjXPOEZkngVFTAPQpi0wd9ReRY+N/8/idbuze/E053i7Mq+XSdAkveTOe1H0e8cYbmQnOPlpOTttiER4YCAFbsPeO2baAtNXP+450Whw9yLwgdZWOPSaQY6e9y3WtrmPg03/Nj+eSPaWYBs1LZi4ut3m9qTC5qgjV0Ojhle/gwOV5dprVGiDmnuYs/6wYf8hARYjg+63oDe8HkX2fKcbZBgbou843bwbPZosvDhHO21FUocLKOnfPzmUviTsS/+SAHbfWBHc0DmHcuPQb/d+qb/v+OsaqfJcbyKFfxqBFiCNe+wFP1b8tEfMdXeXjoF2aNC13Fc859sWxnmaWELn9g4DAfOpKf7zr1gVj8eLIaTSot1uw5gRteOGOdr4WA73B7C2/ksTcHe0tefjNvWnk+7s4BL8QYOTqkSSTAeZZOh4eLm3HXa+dw9e7jjLVIvKG+opOX89z7egardpYcMUJj2USKkR5eiNBQOgKhFExvO7sd1gdnhI9k28tT/aSfK5kXjWPV/O1ST9S2IzOnEd+fqGZs8+El7zUPXSzv12yeHaOZ8LYQ4a++vejyGolFsU0up6wm7347MYR825/dYDTh9ePlzI378LbsgC1T/pmGx46VuG8oAgNeiOGKqkWNW19mZ+Jorunf6Qmdi4StNoUvhDRf1wi4E3JEqKrjtlxpVfl1eDUA6LTsd1ZiVDuntEbk86Ap+cM72YyfvX6ohBefjlCpFM0q9z47vTxE3R08zq6Uwrk6/8jw7Y5TGfUur5FY7HizP/2Dn5U8osUy//bqjZj45M9Qs9iAeJMnJrOx075/CvjyiPdlPQoKW73WUBIhRiSE3onf+zZ9DpZApKRN2GghsUnP8g/bvys8CZEVmlveZqch9AZ5b59A5oVQ3lzbhTa1eyHm6wweMumyjHA09q3EQvvG8Hl2f/Hr9dZPjstc7+l3thy2et85l+34oFWtxR2vnhXk3BIKuPE977LSDwgh5up95/Bvx+RWIiO4cC9iYjyhETNba+VlcTRYP1f4XmUeaHA19XrCdW9n4Ecers2JCvemKYNKL5rp5IJY4coiTDt8XB8uuPDLZXc8h7Y9HtY7q+noxaTdR1hHkXmKRm9EmcD5e7qaiSbGLXUVCrz3w2U0qbSCh+wy4c85QgjC8+KX3mc0HYgI/byqOzT44/9yoPXCQRVgH31kMZ18d0VYp9Y8kZxmvfWJsaDRG3GCIeHmH9/vTx4oRmFF2+KdnuBurp/y7FG8kGX2K9N4aJotuNTiVdoBthgoCrVuylz4mgEhxFhIffoo5r5y0id9+1uVYH/GRAGHyvwjcoHgW34QQ3NhoPDjyWrh+7Hh8a/9P2cQG3RqfrRlv/nukp0PoR19JrSj1e2Y/I803PK5Z/WU7vkmn1W7MxXtHp3fgru5XtupxWuHir3qQyz2ZFTiiQ/dJ1f0JaG+HoDYqFp8I1X++qB/3whcETJy6MmP80GZqIDLR+IP3H0o39dD4JWPLvgmkzOBHRRPRf7OXXBf+uMvPxQCJsrjnDunM9n5pplA4ebPAqvwpFB8etJ7512hGVCaGF/S0RBczqqCQgQYjwkEJ2Iu5OaJm5so2BA6T4wEPJn8GHL5WBDDjGSBooALXtx33vrUELgx4DQxBAKB4EuUPCSpZAOfJQFc8e+zFYL3sevMFcH74Au2Moyv/DP9nWplLy43sk8RQIQYAoFAEJE5uw4DIcLrGue9eAL3XD1O8H5yaoTPSdPc7R81vdhwsYVdxNC/RI6YDZTgklV7TsCkZe9cTcxJBAKBIDZuzCd8IEZSQgAoKRLe+VoqkbCq3MwH3kZcPfXxRVbtPv7Z/7VL7gqnPp/pe58ZIsQQCAQCwa8RMxFeZ4/wocu+QCrAj/jGNyU+jyQlQgyBQCAEKZ9l8ZAl2A8QYgFmoqU28IvOisnLZ4T3iXIF8YkhEAiEIMXbbKj+QtrpGl8PgcCAViQHciaIJoZAIBAIBIJHyKv5K33QruYeuUeEGAKBQCAQCD7n7i+5J4UlQgyBQCAQCASP4SvnTXltJ+djiBBDIBAIBEKQ0qQyh9oLmSeGr4SHnoyQCDEEAoFAIAQp9SoNAEClE84Bt6qjh58TeSDFECGGQCAQCIQg5eNLjQCAF06ImyFYLIgQQyAQCARCkPJdhjk8vUslXBK/sxf5KdTqicWLCDEEAoFAIAQp7koH+Esfdx/Kh7GHhFgTCAQCgUAIMNKzGjw6jggxBAKBQCAEMfNePYUeZeBUAucCKTtAIBAIBEIQo2hUidpftVK8chdEE0MgEAgEAoE3Hv6pSLS+OAkxb775JmbPno24uDjExcUhNTUVP//8s/VziqKwa9cupKSkICoqCqtWrUJRkf2X0Wq1eOihhzB06FDExMRgy5YtqK+vt2ujUCiwfft2yGQyyGQybN++HZ2dnZ5/SwKBQCAQCKKg1fOTwZcNnISYkSNH4tlnn8X58+dx/vx5rFmzBjfccINVUHn++efx4osvYu/evcjJyUFycjLWr1+P7u7+0uY7d+7EoUOHcPDgQaSnp0OlUmHz5s0wGvu9m7dt24b8/HykpaUhLS0N+fn52L59O09fmUAgEAgEQjDAySfm+uuvt3v9zDPP4M0330RmZiamT5+Ol19+GU8++SRuvvlmAMAHH3yApKQkfPLJJ/jd734HpVKJ/fv346OPPsK6desAAAcOHMCoUaNw9OhRXHPNNSgpKUFaWhoyMzOxePFiAMC+ffuQmpqKy5cvY8qUKXx8bwKBQCAQCDzRoNJgxKBIAGarDBfKFZ770HjsE2M0GnHw4EH09PQgNTUVVVVVkMvl2LBhg7VNREQEVq5ciXPnzgEAcnNzodfr7dqkpKRg5syZ1jYZGRmQyWRWAQYAlixZAplMZm1Dh1arRVdXl90fgUAgEAgE4fn3qSseH7vuuRMeH8tZiCkoKMCgQYMQERGB3//+9zh06BCmT58OudycsS8pKcmufVJSkvUzuVyO8PBwJCQkuGyTmJjo1G9iYqK1DR179uyx+tDIZDKMGjWK61cjEAgEAoHgJcKVmnSGsxAzZcoU5OfnIzMzE3/4wx/wq1/9CsXFxdbPJRKJXXuKopzec8SxDV17d+d54oknoFQqrX91dXVsvxKBQCAQCASeELBgthOchZjw8HBMnDgRCxcuxJ49ezBnzhy88sorSE5OBgAnbUlLS4tVO5OcnAydTgeFQuGyTXNzs1O/ra2tTloeWyIiIqxRU5Y/AoFAIBAIwtOr7w/O4eoT4w1e54mhKAparRbjxo1DcnIyjhw5Yv1Mp9Ph1KlTWLp0KQBgwYIFCAsLs2vT1NSEwsJCa5vU1FQolUpkZ2db22RlZUGpVFrbEAgEAoFA8B8aOtTWf4tpTuIUnfS3v/0NmzZtwqhRo9Dd3Y2DBw/i5MmTSEtLg0Qiwc6dO7F7925MmjQJkyZNwu7duxEdHY1t27YBAGQyGXbs2IFHH30UQ4YMweDBg/HYY49h1qxZ1miladOmYePGjbjvvvvw9ttvAwDuv/9+bN68mUQmEQgEAoHgh1TXKftfiCjFcBJimpubsX37djQ1NUEmk2H27NlIS0vD+vXrAQCPP/441Go1HnjgASgUCixevBiHDx9GbGys9RwvvfQSQkNDsXXrVqjVaqxduxbvv/8+QkJCrG0+/vhjPPzww9Yopi1btmDv3r18fF8CgUAgEAg8I0a1bDoklJjGKxHp6uoyRynt/BzSiGhfD4dAIBAIhKCm+tnrAACr38tAVVmHx+cxaXtR9/JWKJVKt/6tpHYSgUAgEAgErzGZzOUGAsqxl0AgEAgEAqFbZzYp+XWeGAKBQCAQCAQm/DpPDIFAIBAIBIIjUh9IFESIIRAIBAKB4DUSmLPqE00MgUAgEAiEgELaVxrIYDSJ16doPREIBAKBQPArKB6lAMupmqqVLtvxCRFiCLySMrrV10MgEAgEAktCIvk7l1TqutizEBAhhsAr4t/CBAKBQPCYAE93S4QYAq8E+PNAIBAIAwq+52zbatZiQIQYAoHAO1JS6YNAGHBIAfz5cLHofRIIBAKvDE1QiNLPhPF1ovRDIBDc8015C2o6ekXtkwgxBAKBdyiRvKPmJlwSpR8CIViJi+vh7VzlHb2i5ogBiBBD4BuKuPYSxGNNwkkkjhBH60MgBCNzEwt5O5cPgpOIEEMg+JqYoRpfDyFgiZRqMShcXPU1wU8J9fUACBIixBAIA4/E2HZfDyHAITFxBCAmnmwG/AFKZHsSEWIIBB9DQQJJhK9HQSAIR7hM3LBbgm9o69HDRHxiCAT38Jkq2x8YP4JE2XiKREI0MQSCPzB+cJTofQbZUkDwB25f+K3gfUjDBe9CNCSgIAvv8vUwApbBEcSx199JHZ3j6yEEJFSICH3wGIzx5qlKlFeK+zwSIYbAOxsGHxO8j5Aw8aqkCk1QxnNRwLrZ6aJ0JQsjAqC/c8/wTwTvY3RCA6QxwaWV+9OSfb4eAic6m3oAnbhzMxFiCLwi1hQSEhI8QkywOqaGSvUi9RScv1+wcPVMcbQwD455C39f+P9E6Uss5sQUQJbEXx6XYIQIMQQCQSCCUsdE4Mi9KR8BAEJjhd14REq1GBNRL2gfvkBony+xElMKdf2JEEMgEAKaDUOP+HoIBBbExpB8PgOZt1N3CnJeIsQQAo7oITpfD4Fngk9jYd7diWPmGRLaKUo/AHDTgp9F6yvYiAjV+noIBBomxpT7egheQYQYgiCExQmXF2LP3H8Kdu6BwI3z00TpRxKEviqbhxAhxlNIKDw3JJHi9LNcloHYRLU4nQkAEWIIAcegkOBTSydGtorW1/VDfxK8j0kJFQiVGATvhxA4BJ++UVjCIsVLELg4+bxoffENEWIIBB8zLKoVtwz7GhPH1+K6ecKHp4vB2OhaxIZ2C9rHxrknBT0/gV+IHoYb4moyA1fEJCWzCMIQuM+E6MyMK4ZUAjwx8b8wUcCPWOvrIQUE6wcf9fUQCASCjyGaGAKBEJDEh5Ikd94ghoO8bYV2sq/hhlihz5beAhUixBAIPmaETW4LaZDM9NNjiiEJku8CAKPGNOPexZ8J3s/MyWWC92EhLFT4ZIQhUpvcIMSx128J5GeVCDEEXrHU4RD8mRDpoROjunRSmHhOvWLwf8tfR0q4HGESsTL2Cs/fJ+/B1bKzgvfz57F7wWMpG79CrK8Vlyic4780WrBTBzURCcI5+RMhxoesnJXp6yHwzsjYBvM/BJ6xIsNFyjkRpAuKkEyNvgwASI0Lvvub4J/sWPKx9d//b87fBOtnzuhiwc7NBJ8FGpkQ2ok4IsxsurxlwY+8n5sIMT5EjKJoALB61jlR+gGA6bGlAIAd0z4UtJ8/TX0d4fHihSAKSWgQaSxsCZWY8Pq6//P1MAh+g3AL5dK4LOu/QyXBUVdt1OBGAOLk14mQatw34oFrh/yCt9f/mddzEiFmACBmkilLTwtj8wTtZ0xEPXbP3yVoH2KwevZZUSddoevXOBIpFUdj9p9VuwU9vxQi/G4kVtTvmRknniZm5/hXRetrTmyBaH2FSvjdfBIhhkDwIXckfSFqf+MS60TtTyxSwuWCnl9Mh+vZky6L0s91oz3L3DxsVKxHx4WFBH7yw1Xxp7Fl/i94aOm7gvazdEYuokXaAADAuMga0friGyLEEHhGvFsqXCJsiGjUYB1+NUfYiBSxVd9T4q4AACZPqBa1XwIL+tSYD495Hf+3fK/g3a1NOIWnVu7hfNzRHake9Td2UOAulLbcMPRHTI8WViPz65QPBD0/HUKWORDSGkCEGBokkQgq1W6wBjbGhAhf70OMiBSxkEQANwz9DgDwlwkv+ng0AUSYWKFw5v9JJcDUaIFDrfvmt5ERTZwOmzU7EbLIMI+6vDHxO4+O8wQha7eJQbCkWhADIsTQ8MbyR/D6KuKQ6AkmPw/nmT0nkX1j//4qnBmZLPfryXHYaM/MFEITIxPH6VHqmWzgEU8t69fAUBxWge+3LeLUz4i4fiEpNqSH07HesHyssJFx0mDMeROgX4kIMTSESw2iOSQSxOW7O9lPwpawwGAhObrF10NwSaJMpLK9HKFEmtyXjM8VpR9ptL0GJiRKmC84a3IZHhj7liDndocfy+p+RWRC4EdGEiFmADA8olm0vkZF9DuOipEoTkjGyvzbCfbXm6dwan9b8lcCjYQfBvrCExMqTnX28AiHhUugPCQ7x+4V1TlVXAJUbeHAv+c+7esheA0RYgYAaxNOitLPjfPTMCmq0vo6PCrwoxH8mesmDuPUXhok+TPEZl6yeOGnYhAVEVyCBZ0MJhVAyAgZ1H9OUULu+0gaJFxG7yFhCsHObYutWZFviBAT5MiSxLFDXz/vMK4f+pPde7+aJk4yP6EYGtHmk37ZboxHxQpvfgmLC+fUfsrEKo/7kvipLubeFPvEjS+vfUKcjoMouEB8+Bdi4uP6C46K6Vs2UyZObpqkYe2CnXtanHBpA4gQE+QsSMq3ey2JEqafG4f94PTeKJvChoHIbUnszS9v/e4qLFqQDABIGSfDwvnJOPKX1Z517OKpjEsyF2+5a9MkJMVE4Ll75yNmGLuLyjUkffK0Ifj0N1cBAJLGxCFc5lqgGTJcicfGveT8AUuz4lVjEjiNTywcF6wIif9pMm5eO55Da9+ZQoTIsi2lkeX9qaDhzFncNKa+IjpM+GhPISBCzABjxURSz+aeaye7/PwvV7+KfesftuZw2bHkYySPdL1LmT5kEL64bQGOP7Ea5363HF9uXYBJCZ5ViwuJZF5kLv15NaqfvQ7PrDR/h9unDseYxEGszss1JH3MkBgsTJbh4q4NyPjdMsTEuA6fmTy4gnaH+t9l/3B53Eu/WYi7Nk3Ck0vZL8Turgdf0An9oRJuZtJ/3DmHVbvhHMOdLUQNjsTza7j5R9kSGSWeA/u4obW8n3P26FKn94SuBcSW61ePxbyR8aL1d+Zva/DW765C2TObROvT1xAhhhBY8KBiX+JmUpkcVW63GC+Ny8Iz059ibH//lqkYHWde7cbL7AWXN+6/ivP4rp18jFP7+GhhYnP/u24qAEAWGQapVIrNc1Jctr835SPa9xNClS6Pu2lyEp5ZORlSqRSjJsSzGptY2V/pdvRcTQk75oxk1W5lfDq3E/eR+fAKhIZIOWpj+omJFMehmAvz5yWzbstVqATMgh9XPFHurBo3FP9YPhHJY+I8OJo7o+KisHHcMISHcF/ahUxIJ6RQSYSYQCSU/ePkeOsEeuh4WLS9OnrlrCyGlsxsGDOEr+EAAP62dALjZ9eOH4b44TGcznfTMG5JwV65djoGJbo2Kc2c7Jw8bey4RpfHOCY1+89K1xosPmqifLB1Hqt28RGdXvclJu/+fonrBh5G8j18ywzrdXpx/TSPzhEZym5OiIjvH2Terg0e9cW2IvPXt5u1mp4yJsp1duDblozmfE5PFuLIECnCQ6TI/MPVQFjgL7cTpvbPnRbTtq8J/F+VZ8Jl/p/pMTSSuzpixqQriEvsxc2J3/A/IAaEkL7njLB3ctsw5DDrYxfON+/uQkOk1n9z4e8rXsBdV3EPU757yRja9z0pxtjUdAg552+FVtsfNj8sKgKFj6xxedx9o95zeu//JtD4rwhFCLtm42XR2P8HNws+gPtHC1u7hm/WjXUtOD+15FnO5yz9z0Y8smgs5+PGxdubdMKk7DQZcyYMtv47ITIM1c9ex7lvLjhqNZlYkHDB6b0lcTkuj9m1fALeuP8qXPRQGGOLrUIkJJzdchs12N68x2YeXZk6Es9sZ7cBYGJewkW3bWak9GuUjv1+KetzJ0UIl6OKCDEORIT330BC1pIQi8Rwc4TNI+New0tz/8p7BVFv2cEx14ljmHByeCteWPN3xvY/PbbS+u+hg/p3kgdumsupX8BcJG1N/CnGzxsaPkV9/QGn9x9bPI5zX3Rcu3IsikseQ1dXHq6UO9e8mT6T3oFw4vhaDApxNhmIqpVj2IB/+rDzRLh2zBC7XT8dnuQfOf7Earz/x1QU/vsa/PX2WcIuYH0L1h3XTHR6j45hYdzDaCPDQiCXf4fW1qPW9x6+ZQYkka4lxvtG7ufUz5575mHe3CS8ff0szmN0JCGC35DeHUs+weLY85yOueOaiZBKpbh2/DBuJRQ8sCctGxFP+370UObF5b/zn7R7vSbhhEsz+v4/LMEHN8zBXTNcm3sdcdTObhpy2G2JjdGyfo3vsCj26sP5g/I5jY0LnISYPXv2YNGiRYiNjUViYiJuvPFGXL5sHzpFURR27dqFlJQUREVFYdWqVSgqKrJro9Vq8dBDD2Ho0KGIiYnBli1bUF9vH8miUCiwfft2yGQyyGQybN++HZ2dnZ59S5EYP3kwHr5lhuD9LJuVxLrtugRu/hUWoodEovrZ61D2zCaMmuBZ1MiwMNchyvev7+i3F7PcpdCpo+NDu2haAtdcPRrThw7C+MmDIY0Kwb9WTLJ+FhnGUjXgBssi3NZ2HKWX/47LZf+CXu/sA/LnW53vCy426HuunYw3NvWfw2hwDp2/fzG9xufR8S+z7seCWBEV84fooNM53yc3XjWK977Gy6KxatRgDAoPxe/njWa1gIWFc/e3OPv3tch5Yg3+++sF2L2y/56b5OI5ipDSZE5180hotS0oKv4zLhX8zvreI4vGomrXRpfHhTtoXu4Y9Tlj248fWoo7p6fg0B0LkeBhzSRbmPymPGVpHPdABdtrAgBTZwxldRxXzXJYbBhiw+l/s/w/M5vKHDcXEVI9nl/xT9q2s2YlYi2DefxpN5qZO1Oci9vKBqsY2+/YPAU7F47BmEkJuG7VWADAZ39a5rIPMeAkxJw6dQp//OMfkZmZiSNHjsBgMGDDhg3o6emfUJ9//nm8+OKL2Lt3L3JycpCcnIz169eju7vb2mbnzp04dOgQDh48iPT0dKhUKmzevBlGY7+WYNu2bcjPz0daWhrS0tKQn5+P7du38/CVXZMYyy03SGyiWeWZkBKD479J9Ui9y5V9m9nviDzJZzBpQg3O71wFAAgPkeLUjiVACPcTudL6hMaasFiyCwCQ+YerUfava7gP1AXXrhyLN/sW/eO/SUX5PzZg+CD7ncNVC4Z71cfSRSlITUlAXd37uHjpPuv7JpOzluBPC8c6vTdiCHMmZccCdv9eMYmhZT83TkpCSLTzls1x0XLFnddMRPWz1+GHu66CsusiensdfAs81N1GxTlHwHz9pwVIP7sUZ9IXg6Lsv++eVZPw+n1XYchI58irQcPoo6z4zhAdNViHh2fSp83/y9Wv0r5/16ZJGDEoEsOiInDrlGRIpf0/2Ih4bvkNts/9kvGz9ctHQ6/v5HQ+JiZEMuf2WTaC37B3LveiUNheEwC4ez47gZmr4+s9Kx0drfvnUK6Ot0NCO2nfv2ses9P43W40M0PDOpzeGxxN3w8A/GP5RISGSHFqx1K8vtE8tyZFc8sjJQScfsm0tDTce++9mDFjBubMmYP//e9/qK2tRW6uueYHRVF4+eWX8eSTT+Lmm2/GzJkz8cEHH6C3txeffGJOfKZUKrF//3688MILWLduHebNm4cDBw6goKAAR4+a1aIlJSVIS0vDu+++i9TUVKSmpmLfvn344YcfnDQ/fDMrvl9rdOesr9wWR8v700qkPb4SeQ+v8rrv6CHsVOSeeJ5zITmqBdE2mgqpVIrwQcJWpwsPkSIywf0qxHYieWPTDLvJSiqVQtl1EZWVr1iFjM9vm4/qZ6+DJIKbVsZynf7et6Mru/IfVsftuWceJkzp9yuICmUOeX5j8Z+xaJYSw0bFcrJ1n398DaRuzAm2jB7bH9YbPzwGe1abzXtqdR3On78ZGZn2vja/2JjnbHHnJDwiXm73evniEUimzlhfOwp+UqkU100YhtwHnftjygEya6xzqK07rrma2cFz78LHGKtJT44qp33/GRfOz69tms5pbLMGXaJ9Py4p2mkjQ7Es8MTkh3XfEn41JN5g5zDqwebJFU/dNdfpvbtnpOCx22bi04eX0mpMmRgz1vU9/4/lE+1eL5xm1vi4y7fExL2LDzq9d8d0DzdiofSbzIfGvc7pNCF+kJDHq9VQqTSrzQcPNk/MVVVVkMvl2LCh39YcERGBlStX4ty5cwCA3Nxc6PV6uzYpKSmYOXOmtU1GRgZkMhkWL15sbbNkyRLIZDJrG0e0Wi26urrs/rxlbcIpvLP2zy7bhIZIMXUwuzwdfCJQuROPcFVEbPUs+utFx983u5/kmaIbZtnYd3+3ZSptm/Pnb0ZV9auorbX3CbhzNTeflVfm/x9eXfsXTB/K7brfOT0Fx36dan3tKnW5VALsmpuLnD+uoLd1M0weCZFhqNy1EZW7N0GWHIPURa53Y/+YtAeDhmpASYCXb55tff9cxira9lMGD0Lhv521ZiNjGlz2c/OIb+xeO/ok0ZngLIyeyE4b8PtR+2jfv2rBcOy5h14QfPs67/082BIbHobtm9xr1Cww7b4T4vqEfRcLyIjx8fRjiKHP4E3nCPv1n692OT5AmAiV0Yn90XzRLDY2XPjVrBG07z+4YAxSUxLwx3nMQq2jOemfk5/Frxd/StuWLqT6fzfMwUM3TcexPy5n7OPG+WmMn10tYz+XumPCaPq6cLJQFa0v6Eu/WUjbflScQNlTOeCxEENRFB555BEsX74cM2fOBADI5ebdVlKSvc9GUlKS9TO5XI7w8HAkJCS4bJOYmOjUZ2JiorWNI3v27LH6z8hkMowa5alN3X5iCJUYsXh6nofn4tgzS8HEYOjGjOme+yyMGO3aU5xrTFFcNLMd9e7hzrsHxrYzUnBx1wa34cJ0PDD6LVwz5xR+emwlnnAR8gwAlVUvIzvnBqjV5iiNp1dMws5bZiAyQY+Nc0+47UsqcZc4zvWFnDU7EdJo4Fej3Ox+HU6j1fZft97eatdjlEpxcecqfHqLay2OVAK8Mv9x5D85E6tGmTcjjqYdRwaFh6LsmU0IiTGbrhJHKLB9+Mcuj5kSVW7Vaq5b7vxs5l/8NTRaOYxG5981PNR+mtox6UOnNoDZd+CFNX+3C1f+7E/L8Plt83HndG5Oj2zyET2/+l/czgn3YeqeY//Ujhzs/eIyP8l9bhMuESps2b6g//64cSG7HDt0zJvaH8kojQphpWUJdaHl3jTCORJyuSyDtm3mH8wCYG9vFZqbfwBFUYgOC8Gji8dZF/6EFOdNkGPpFm/54030Yfc7x9ObQ5m4aTJ7P0w+CItjr/n3WIh58MEHcenSJXz6qbMkKnFYjSmKcnrPEcc2dO1dneeJJ56AUqm0/tXV8VeB+Lcj/kf7/tm/r+WtD3fYJmcqKWFXu2Usg7rz31PpK5cmjjRBEgXcnHgIer0CjY1fwGDopm1rNzYv0lWbTPZaHFlkGPL/tIrzecKlBmxN+spOO6LXK6DROgu9FGVEd3chSkvNUU1SqRR/Wjgary96FLclHuLcN1e+37YI+5Y/zLjTZiIjc7313729FcjLu4e3MUW4mAk0GudMsuEhUlz+23qc/fta7JnxL2t2Y1e8uOrveHjZPry7eXbfefu1Nz09V3D27DKkn3Xepe7dMtP675GjmzErpsipjYX40C7sX/kw9m94GNXPXofFw+Otn+l07aipeQdGo32k1rP3zMfyxSNQ+p+N+OxPy7D+qk68sepRt99nSJjCpdM7RVGgKOffZdoM75ympbRzoL0Q8/JG+gU7KlzDqg/HCCettgVqtXMZES4RKkwMHRmL6mevQ96uDfj4oaW4fWq/iWRsvOeanhuT+vMtlf19A61fGhfmMJj3HLM6J46Otf47I3MdCov+hNbWX5yOy/gDs0aGDd+w0JT93+LxePLO2U7v81ldfO5c/gWcd+9ewLqtR0LMQw89hO+++w4nTpzAyJH9knJysjn3hqO2pKWlxaqdSU5Ohk6ng0KhcNmmudnZ6bG1tdVJy2MhIiICcXFxdn+eQDcVMznHjhhEHybnaTTPpCGVjJ+9d/d8RCQYsHneUbS2HWVsZ8u4OGaHvSHD7dX3D98yAx+uP4+3lu+ELFSF02cWoqT0r6wEppExrm3DV880q6rpVM90u/7QEClK/7MRw8fKnD6LDXMvVFk4fWYhzp5dBr2e3rRoL6B5ltPGaKSfDAyGbtoFjBv2N57RaK/x6lCcRacy18s+LPSP1dGZt+wKvdAbGiJlfAboiA/twpyY/orQVdWvObUxGDqd3ps6eBBCY807s3XD3WvKmDiTfhXKK57DyVP2JqQ7pg/HgZvmIjIsBIuHx+PRGZfpo4VouMuFpuD4iYk4fmISTCZ7p+abZrH3Y9ix5BMMTVHi+0dXYPniEZBGh+LV681CXW9v/3xRWLTT7rjhgyJQ/ex1TtqHByfQOyo7ku1Q9yv9bCrOZaxktakBXPuLPLXSnB5g9MR4VD97Hc4/uAKA2RTq6Ej829kjsGB+Mu65djKy/rGOVd8WRkY04qmVe5D7rw0uNSyO3Odgjr5xfhqeXvUMYkPoTXF7ljyF1BkXMG1aGL7+89XI/L2zcNKpdA4DjwwLwfLF9OYtd0QPicRcB01Zd3cJCgofRm+v/bzv6LfCNUGouzQYHvloupF9J7LMEQRwFGIoisKDDz6Ir7/+GsePH8e4cfa+BOPGjUNycjKOHDlifU+n0+HUqVNYutSsdlywYAHCwsLs2jQ1NaGwsNDaJjU1FUqlEtnZ2dY2WVlZUCqV1jb+hsmktS7Ie2+c6aY1EDrIedF8aMybjO1TUxLwxqJHcNOw70BRelBeJpL74+S3rf/O/dcGPLJoLNS9VU476pbWn73qBwDuGf4R3rxvHs790XnnoKXRlADmB/zIb+yTniWOUOD2JOaIDfvz9pteyq78GxqN86RqNPVrkNg6Rjoib/7G6T2Npg6nTs/Fhby7PDonF3Jzt6Kru5DXc57Pvc3utUrF3WGWb/L+bzX+evXLvPoF8MGIuH4hbpjNDtx2sW9u/tHumPvn2pvTbl7AbEJYGpeJ52b+A7OGxeLATXNR+c9rMGtYLKqr30BBwQPWdi0tP9He439aOBaP3zwciAB+u+QAklzko5HarBtMGpbubnYVlf85mTl538iIJry57hGcZPCzsBuTVIqvti7Av1eYC55WP3sdXvjNQiyeno9/rXze7fEjI5owJIpbUMKTSyeg+D8bEZ+swsJpl3D90J8wPJw5knBYWDt+O+J9vLdBhflJcU7RTwBQV0evzbf1DeOSl2xogrO5MOf8jWhp+dEuUhIA1owZbPf6Hjem38Sh9lFLjg7KjiwezX3TLnEjeXDJ38NJiPnjH/+IAwcO4JNPPkFsbCzkcjnkcjnUavNiIJFIsHPnTuzevRuHDh1CYWEh7r33XkRHR2Pbtm3mwclk2LFjBx599FEcO3YMeXl5uPvuuzFr1iysW2eWtKdNm4aNGzfivvvuQ2ZmJjIzM3Hfffdh8+bNmDLF80JnbGCbFnvH5inQ6Tqg1ytgNGpx4uR0HD8xGUajGnOGudcCPb3o3y4/nzJ9qNXnAIDTBKXX92uyHrxpOm0tEFko865pTEQ99m94GJW7N1kf8g7FWcb2z90yGwiVYP0yZ3+G6xOdK1jbIpUAKT1PYVB4//exRBllZDKb5AaFhyLj7+swdmwjfrvkQJ/Zgl2yvvb2k9Z/y+WHUFD4sFObnp4rrM7lCqPB2R/IIgR0dmY7fcYFCcvsWufP3+xVP4C9EOeoDVGrq70+v6djsRAbHoZJUcyaSj5RqdhHQEptrtHwvoWlre04Tp2ea9PKWSO3/w9LcOOacXh7/Z9x3RBmZ04mKipfcHrP0TRr4Z7pMdi/8mGkxrm+H1dOZH7+LXR2OjsAp4xz1pi6I1xqgIf7BtwyOQn3j3wPoyOczVvuMJkMaGs74TY8PTosBC/M/hv+MIpLZmj7L8R0PZgIj3Qffr79qi8xdmIUPrxtrnPvlPl4R03MWButBp1225F/Tt0DaRQwZWIVq6zMf15En5/KwrZFXzu9x2dcCich5s0334RSqcSqVaswfPhw699nn/UnzXn88cexc+dOPPDAA1i4cCEaGhpw+PBhxMb271Jeeukl3Hjjjdi6dSuWLVuG6OhofP/99wgJ6bfDfvzxx5g1axY2bNiADRs2YPbs2fjoI+5hgK4yI3rK8/cuwO1Jn+FM+iKcPrMQDQ39km19PYsxhkkwLIy+Cu+/Vj6Pvb+Zil/uWWz3/tlz9lqM5YnmHakkIgSPLR6HT3+1yByiHC7BkBQlUka34roh7p3E6HYNjuReuBNx9UtxaWsL9uWtgWyYWRiRRALXzzuMYTT5Bhxp6zOBXT2nEpJI4P6ZH7g9BjCrxf8x+Vm3E7Aj3Sr7HWNXlzvnbM9mVHdOsHSwz+/B7lH3ZAxOPflBqKSFuvr3eT9nfcMnrNsqaVT/XHDcCdOxdswQvLR+Gq8ZtJuavoTJpPNYq7gt6TNct2osYyQKAFCg0NNTgcrKl61O2On3LcUXf1qMbYu+woxJV3Dnom9Y9ih+pem6+v/h4qXf4nzurbyf2/G5rql9h/c+VsWfxpc3Se0EEzY8dddcjJwQjw9vn++2baRUi31XP4zHx7MrS+JuDRkf5ezW4OrKcy1nwakID5uHQyKRYNeuXdi1axdjm8jISLz22mt47TVnm7iFwYMH48AB5xTuXDn5++Wo0UmweHg8xv71R7ftE8I6XX4elxSNrVOTcex4fy2aK+XPWP+t1tRZ23U101eHfXvVTsbzj46ox3IWFU+vjv4Yi+9/yBpBMDcpDjkPjEB2zma3x3LFolGoKPsH5pn0yOvairZ/tKAgi1veCwB4cMJh3JtkL2AYDN0IDY2FojMH0dHjEBHOLoOmKxxV+O4RRogxmQyQSu0fs7Y2ln4dHASLsivPYPy4nQgN5VZski15eb/CnDn7nb6LEFRUvIDRo37N6zkvX/4Hr+ez4HiJuAiUdH4SbGAKR6+ueQN19R9g0KBpWLjAORurO6QSWJOY2WI773e0n0JV1csAgE5lLubP+whSqRTT47rQlXAKaxOYy3L4A5Z5wVFbwQdXyndj5Mi7IZWaTXEN9a7NNhYsa8XS0dyL2TJBUUZIJP1KgV/NGmENL69lOsgLho2ORWstveY/mqbkyYThtSivdA5nf+f3i53ec0fQ106K7nPWA4C/3u46J8SkCTVYGZ/usk2Im+RLDX07vo/uXoDkMXH4991zcfUSe+ctt7sv68zouq9N44chKabfdm1RJ3oCK4e9vuFIJUBijGdRCXQmkozM9WhvP4MLF+5Aevpij3eSjj2Jgbvf/FzGSpqFjd33MxnZRZIAQF3de6iqeoV1e0fcOSF3KNLR0XHGZRu+MJk8j3ajQ6l0LhAoBFKJxCnyyRUXLtzBuu2x4xNg7LsfmPzIAMBo7KHRJHn3LNiaspU2Gk2FwtY/SXytij9iq43R6pj9aGzJfHAF/rzsLdydzF3wZIL7Js47vriLWXtH54eVGOX8XkRCBDaM5b6BDXohxpbfzxtNm5bdwl8nONuZPWXOsDhk/uFq3DNzBD66cS5+eXwlxkyMxv2p9jkuwuLMi0fUYBv7qYeLuKc7OwCormEXtSAEOl0rGhv7H2AuCwET3M0j3H/z2rr/2VWTpkOrldPUBmLXV3OLa18jR3p6Kzi1t8f9mCiKm43fGxwjeryhp0c4XxoJw79tcZfThy01NWZnfO5O/Z5qGSkUF/8fqqv3CtKHTudsUudnA8OO/Pxf866R8STgIjosBDNj2DlMA0BZ2b/d/k46Pb27glCM5BClCADRNnm2tm+ahNBBYXjt9rke9T2ghBgAeOHOuZBGSTB8FLcaSd4yZfAgfHPrIKeKq3+f9xxmTynFk7P7Pe3pcgqwQUuTz4MtfNVh8RTbKChv/DP6Fwxu5/Bk7rxy5Wk0NNJn7HTZl4i71sZG5uJ+XCks+hNv53IHXaQNn9Al1fMIhxuHLpy/uuYNXroymTR9XYpTf6izMwtN8q/R2OT+HvLkntbr7X3pTCY9jp+YaNU6dXVdsmqf+KK7uz/Ev73jNC4V/IHX84uBWl0DpZvUCmyDAvgiNESKsmc24dl73PvcAMB8Wb929D8rJ6P87xs80sIAA0CIsY3iAcxF8r6/7TienvZv7FvfH7EybSK7XWx0pOc+AW2tR5zeGxnRhD+NecMuhO9ymTkTKOe13IvF3/F3osPgZR0TiqLQrWJOVMYHBYUPWXoTtB9uODpOcD+DJztUvb4TJaXsEiOyWYT41I64o7jkL16fw1KPSW9wvrfP5271+vwAUFjUvwhKJBKcy1jBy3npkfT9V5wFio2gZ80p5FFOJPt7rq39uPXfJ0/NQM75m3DyFPtaRp5Al8jRK/qeUz6c7V1hMDpHRQpNVfXryDl/K6OmPDxEijumD7cvrcGwXE6JKsdDS9+15gyypVtVivb206zHFfRCTHnF/2P8TCoB7lyfgpTRrdg5jtnJGADWzU5H1GAd9t08122fx45PoFVTGmmqG/OJxIvLyUb70xUXhp4obsUS7Y7vps94ySdaraeTknBCj/OExn7C1+k6QFEUK4dt27ByAFAoMln3w5bi4sd5PycdtjtmT6mqNhezq6t73+kzlYq9+p4tWh1zOY+WFs+0q3b0bVLYhO6KZZax5BDiQ7vINpFeIFBdzY/2zXP4F3QrK19EV1ceGhpd++78Z+VkRA8xm5eWTWF2cZg76BJGRjjP19nZ19lsRt0T9EKMOwenfy4dhv9M/Y/btOl3Jn+OvQsfY130j24nyXUHNXlsvPkfbH1o3WUQ4oHCabHuGzHARtvjPZ4+vMJN+o6OpVwy+VZU/D/09JZ7lHDOUhuKFSwXvSb5V4JEdjhiMmnd+hu5w7KbY3KE5VvI06hrGD8rKHwAXV3eCWY9PebK2ZfL/unVeVzR1cVto2ExcXmc9MXHWMfPG+bfobIvgisYoVhoZC/sXIU/L3sLvxlBX+eMT4JeiHGPt6nh6dFpnb2vVT3sk2hpNE3Yu0aN1BkX8I/F/6Vt47zbEl7NbAj1og+WE115+fNemC4kMJn0NM609Bj6ktXxP5m5gv2Er9N3QNHBPUstRVEor3iO85hcVZO2YDDSp1/nAl0dHkcu5N3tdT+uz38Xf74xcK5y7EjO+Ru9clpvazsKleoyuruFM8nmnL8J1dUWJ38Wzt7WNjwIMT6Qg8TyL+IbdxtiYbVa7teASA7Oyt6WZxmgQkz/0+J9fRt61BrnXTCXDK5nzy1HVelv8NsR72NsJP2O+viJiTAY+hcUPjLQCgu7Waq+4SN2SQPpeqB0jCm+6bBEdF0q+KNH/bHCwVfJsqNmQ1vbUWi03JxcGxu/QPrZVE7HhISY88uwCUfOzWUfGkxHd3cJcs7f5LadbW0gofBWO8J15fXWgZ5tpJM3idYqKv8fSkqeYJW0T6k0h1zzM/cIMxfn5d0DhcK77NlsETO6ykJPTwW6HTS1NbVvM7TmAZ4TY5ZXuC8f4YoBIcRUVPwXHR39KbVt7dNGUXfg/GNbP6WNZWFIbzAyVcNkAZtJ0YKqp8yjPkwmHScNRFWVuSR9Zyd/iaYccaw3wzkjLceJsaT0r9DpmGvk0GO+ri0t7mtlmbysOZWds9kpMoW5L8/9yNiYby/k3YnmZm6h7N5QWckuCyoT5RXMNYlsqfByYWATkQQAyr4yBGp1Hec+HP1ohIra61CcxYW8OwU5tzPM36Go+DHGgrHce7E4EJuQmbUB2dn2WW6ZNH5czYW0fZv41V7V1u7z6vgBIcRU17yJvPx7rDVRbCdhIScwE88Xm44ORTpqrZoHzwQMLmGM+nBxbhkNC3MDHVwXPTH8dGpqmAt7sqG2bj9PI2HGkoW1Sf4V62NMJi0yszYINCJLH95FRLW3u88g603ouJTjwtskd64jwwVOfk4iwKs5yUdkZV8Hufw7KLsusrpfPEUuP4R6nkpqWIRGV35j3d1FTs9PYxP755uJunrh/Fw8EbIGhBBjISv7Wqf32Dgp2WI0alF25WlWbZua2FVc9pYr1vFwF2La288IHsboCYpO/iNr6LBNzT2QUaku2wjD7GhtOy64yYfrmBzJv/gbnkbiHqkkcBdyz6Fs/usd3V6b9jxDpSpFUfGfcf78zci/+BtW/lrMuP4ltCx99dx3Y454zMv/FWOT7JwtTlE+jhGMnqBzEYXnLfkXf8v5mAElxADeq9Mys9az9rnoVQsfxWGhvf0MoqPHcz4u/+K9/A8moAguIcbRNs7+uCIbYZgdzc3fe9QXF6qqXvHYGVboXB00PYrcn2vEKLdg8fEJkXpQhsTGFKnVNjMmjuRt4WeJxuM0DYC7e0DZ6V1xUUd63WTptnUx0OnaodF4JqA5OpML5Uuq9yDT8IATYtg4FLpCo2lg3ba21r6Mu5C7/vaOUwgLc184kmBPb2+5V34XbGlm4WvCB462caE4l7HW48zSXGGTF4UOoRMr+jvnc28TvA+drhUGgwoyGbtMrUy40m5zqTHliq7uQlbtvEkm6G6T7Jgry2QyoEWk58gbp/LsnC12r4+fmMSpMryQDDghxhFKII942r4E3hmK5RnvX/tN7/E+QsU9hYUPerwY+yNqdbVofZWV/VuUfqqqXkNDA/cyEhYkLM1JfNVSYovQYcSuEoqyob0jHS0tPzF+zldeopycG3g5jyu4ph+oq/+fXXCGsHCfuSnKxJioUajK8FwZ8EKMXP6doOfnu/YHE52KbAgVougIJVJZDooyiWISyL1wu+B9AOAU+k3oR978jeB99PRUoLLqZZRe/rvH5xgawU4VziYCjE86FBmCnt/gxQ6foijku/DrsCBWiLTXsNhI2ppiWls9iyj1JJLLk2Pq6t5HQaFYQpZnDHghxhMbHBdOnpphl8tFKMRUnZ9aOgRKZb7g/dTUvBWwyajoaGk9LJgtmeAdnhacDJH0C9m3J3/B6piKSvrklYIh8D2n5mBit4dCV1c+q5Zsa4Dxghd5UNo73Nf8OX5iktvU/e5Qq2tw7PgEbgd5oKmvbzjA+RixGfBCjBhwzgviId0sbb7eYgqRIPcCPwX0XFFR+QIqKl4QvB+x6OrKc7ItE/wDPhzcJW5Kl/gK7xxV3dPVledhjheKdZ4uo7FXNEdtb4I/Wlt/YZW2obT0bx73AcDDZKDcr5GnmX892axVVe31qC8ixIhAZeWLojiPihmNIVZfYuRIEROVqsTXQwhINAz1j3yNxC77t/9Np1ptC+oFzOvhDeHhSazb6nQtOHFyhl3SUqHgGqXnSGdfAkB3aLUt8HcPQ3dJKRubvqRdC1pbj3Duq7LKs0SQ/vfUBSnBVKGVQBCbs2eX+XoItLB15nVELKGssuoVUfrxxOzb1naEU1JLitKjoPBhzv2IzaWCP7Bql5srji+ekJSU/AWNNPnQuGcM95xQ0Xoa4LS0Hvb1EAgEgoBQHEJzS0s9dyDmQmPjQVH6UXVx98kru/IfAUYSOKg1tQiPSBStP6HKOsibDmFEir1AJlRfdBBNjEj4SzgagUDgD4mHEYHt7Sd4HolvuVKxx9dD4BXx0iGIaE4SKAVHpzLH2V2Co09McclfPe6fCDEEAoHgIaESsbMCE8TgxMmpvh6CAAgnMDU02hcMpc6/x+n4piZ2kX10EHMSgUAgeMjkqHIMGa5EWIgBg0I8K49AYI/B0OnrIfCKJ9W/PUc4IcbRB8aguAzIYgTrzxYixBAIBIIXPD+LmIrFhK8Mvv6AkMUULSiV+ZDJ5grqp1Jd/TqSEq/DoEFTAABVY8URYABiTiIQCARCAKHTCZugNNgoKHzQ/A+By9JkZV8Lk0n85KREiCEQCARCwECyXnNDK3CyQ1t8kWGdCDEEAoFACBgu5N3p6yEEHBcv/Q7+nljPU4gQQyAQCARCENPWdlSkhKsiVQe2gQgxBAKBQCAEOZcKfi9CL+Jre4gQQyAQCARCkGM0Cp8CQNGZKXgfjhAhhkAgEAgEgtfo9Z2i90mEGAKBQCAQCN5DGZ1LEAgMEWIIBAKBQCB4TXHJ4zhxcrqofRIhhkAgEAgEQkBChBgCgUAgEAgBCRFiCAQCgUAgBCREiCEQCAQCgRCQECGGQCAQCARCQEKEGAKBQCAQCAEJEWIIBAKBQCAEJESIIRAIBAKBEJAQIYbAK01Nk3w9BMIA4tLF9eSeIxAGMESIIRAIvNPbGydKP0plMjraR4jSF4FA8D+IEEPgFwowGkMF70avixC8D7Ho6Ejx9RB4R6MZJFpfCgURYggET6mumitKP0LN2USIIfBO3oVrBe/DaBJeUBKL1pZxqChf5Oth8AplkqKtbZQ4fVFkGiMQPEWrjfH1ELyCPP0EfpEAarXM16MIKChfD0AAenoS0N42WtA+5PIJgp6fwA8XL27A2fQ7Be+noX6q4H0QPEeoeY4IMQRe0WmjBe+ju3twwO8eHNHpIkXrq0s5TPA+amrmQKuLErQPVfcQQc9PB/G/4U6XMgkmETSnNTVzUVs7U/B+xEKvDxfF1CPGJqqxcTIkAp2bsxBz+vRpXH/99UhJSYFEIsE333xj9zlFUdi1axdSUlIQFRWFVatWoaioyK6NVqvFQw89hKFDhyImJgZbtmxBfX29XRuFQoHt27dDJpNBJpNh+/bt6Ozs5PwFCeKi6EwWvI/8vGuDTn3R1jYazc3jRemroGCtoOc377olUAp8LyiVSYKe3xaVKgFll1NRVLRGtD4J3DAaw1BTPdfXw+CN3p54NDRME7yfTsVwwfswGMIFOzdnIaanpwdz5szB3r17aT9//vnn8eKLL2Lv3r3IyclBcnIy1q9fj+7ubmubnTt34tChQzh48CDS09OhUqmwefNmGI1Ga5tt27YhPz8faWlpSEtLQ35+PrZv3+7BVyQEHxLo9MLu8i1oNMJrfBQdIwBIUXZ5GcqvXCV4fyZTmMDnt+y6JYJqmHp74wU7tyN5FzajuXmi4P1kZtyKHlW84P0AgKp7sEfH5Z6/3qPjaqrneHQcN4Ta7/sAiflZKitbImg3en2U4H0I6bfG+cybNm3C008/jZtvvtnpM4qi8PLLL+PJJ5/EzTffjJkzZ+KDDz5Ab28vPvnkEwCAUqnE/v378cILL2DdunWYN28eDhw4gIKCAhw9ehQAUFJSgrS0NLz77rtITU1Famoq9u3bhx9++AGXL1/28iv7D2I4wIqNZQrpVAi7C6+oWIjOTuF34j09CYL3YRvNpRBhVyQmdXXs1fvBGKXFFb0+ChcvboRaLXx0V17edaAo7os+F+HRYBDn3jaZ+pcyIYUllUr4+cARMcQyITUlAKAUcK7mVTyqqqqCXC7Hhg0brO9FRERg5cqVOHfuHAAgNzcXer3erk1KSgpmzpxpbZORkQGZTIbFixdb2yxZsgQymczaxhGtVouuri67P39HpRLHpn9FYCmbts8rAu8edNEouLTBfUMHrpQtdt+oD4MhTJTfznYh0enY+xR5MqGKFTFkoalxMuu2YgiMntDaMkaUfvR680JiNIbhfM5NgvZluS6ZGbdyOq6Rw/UEgJZmcZyvszL7v0dt7SzB+pGLmlhRPJu5Rh0r6PnV6lj0CKQ55VWIkcvlAICkJHupKykpyfqZXC5HeHg4EhISXLZJTEx0On9iYqK1jSN79uyx+s/IZDKMGiXuZO3PGIzCmg8sqNWD0N3nbKnRCPtQeIpczn4SrqmZA73AZiuzGrf/MeTiAFl2eSmnvnpU8SgtuRoAkHt+M6djPYWiQji1b2iYItBIPKeiIrjC3wGgvNwszBsMkVB0sNeQVJSz3wS0tY5GTU2/VkTI3b7BYJuDRBjdRW9vHNraxoCiJNZ5Tkh0fY7xOoEd5AGgt1foiFIJLpcuh1w+ARdyr+P1zIIYqiQS+5uIoiin9xxxbEPX3tV5nnjiCSiVSutfXV2dByM3k5lxK7Iync1l/oLBII5QwoUzp+/G+ZwbOC9avoC1YyuHjZCnvh/Ncs93dnoDt+RR+fmbrNent5e71kNo/yB50yRUshQYzp29XdCxWDCZpE6CrFAmhfZ2cTZeXV32CzDlwaLPRjtVUrLSTrgI/NQLFPT6SJxNvxP5eZsE7amtbSQqys3+cbamMr7p7vOLoqgQj0yLXNDponGlbCl6ejzzxWKC118nOdnsB+GoLWlpabFqZ5KTk6HT6aBQKFy2aW5udjp/a2urk5bHQkREBOLi4uz+PEWvj4JO578hvF1d3EJkPQ2pbWqaiPM5W5CTfQOL1hI43k5i7Fa0Wu67FI0bf4OGhino7Y2zOnKez9niNnQzNFTXf34RnIEBczg7Fz8ST8Jcbc9ffsX9LtxT08vZ9Dv7tHfsJlKj0bNdvUbDLQWAUumsEc67wG0nWXBpHQouuRec6xzuMS6Liqp7MPLzNrJqy4eWtL5hutfn4Iu2tpGi9GPZP5s3AsIu+CXFq22EZ+H6shXGtCKkxxACXoWYcePGITk5GUeOHLG+p9PpcOrUKSxdalZ9L1iwAGFhYXZtmpqaUFhYaG2TmpoKpVKJ7Oxsa5usrCwolUprG3+ktGQ5crJvFLyfK2WprNt2tI+wE8jYqo67uwejonwx1GoZNJo4nDnNPTJMCH+Sqsp5dq+Li1dxPodG41rAray4Crnnb4CxzwynVstQUz3P5TFll5ciM+M2lJYsx/mcG3Dm9HZkZd4iyK5dLp/Q5xQuQVHhWvT0CLPDvVy6DEWFq1FfNx2FBWvcpvcvu5yKsjLn57OkeIXL40qKr7YTsCrKF7psT3nhKpCTfQuyMm9Gff005Odf47KtySRlMNmxX1S02mh0dg5HZ2eKy6zMly6ud7ovjUZ2Wk2tNhpFxavQ3c1us+Loe2T0QLOr6h6Ki25+Pzp0AV0uxDd5Hbj0WlG+EBnnbsOli2z9BftFAIVCOMd6Ia0HnIUYlUqF/Px85OfnAzA78+bn56O2thYSiQQ7d+7E7t27cejQIRQWFuLee+9FdHQ0tm3bBgCQyWTYsWMHHn30URw7dgx5eXm4++67MWvWLKxbtw4AMG3aNGzcuBH33XcfMjMzkZmZifvuuw+bN2/GlCnC2sy5SqOVlfORk30jzqbfgdbWcaL4gnBx/mx2cKxrbnGfi+Tc2TuQn3ed12Fx7tSGnkj+Rgf/HlX3UDR64EfhbmHlSmvrWOj1kWhtHWc12eh00ci7wN33pOwys5Cal7cJV8qW2jmFy5vc+/nQCaHVbqI4lF3DAEhRVbWAVX2ilpZxtNqeNjeZe9vaxtq9bmx0nXmVTlBigyVSRqeLQVXlQnR3OWtZbDmbfpfHGlmLk25DfX+ej/Z2Zo2BUukczWfrT+KK7KyboetL/lhUuNpte9sxmftmFzlyNv0Ou9ddbn4/OuRemE+Z6KRZfIVI6CiRcBdiCgrWem0O6lImQa9nJ/w1Nk6DwRDpUQ4lIavBC5nWgfOve/78ecybNw/z5pl3po888gjmzZuHf/7znwCAxx9/HDt37sQDDzyAhQsXoqGhAYcPH0ZsbP/i/tJLL+HGG2/E1q1bsWzZMkRHR+P7779HSEj/zuPjjz/GrFmzsGHDBmzYsAGzZ8/GRx995O33dYvjA+6+/XRoNLGC596w3GA11bMBsI8SsITvWkwc7hIb6fXhToKCO1z5J3S7yEWRnXUT8vOvQVPTRPT0yFhJ63T2+4oKdrlVmhr7H1KmKsuuUpcXFqyhTXWffuYuuNqdM4WCM5mCXOUjUXUPdXqvqWkS6l3ct2dO3037fn3dDMZjAEDLUSBn9ofi+ttI0O7CRNDiYVLA8zk3Or1nETa4Ulq6jPGzxsbJuJB7PUqKr0ZDQ//9pNXSmzGbmuivd6ObRGednUm4dHE9bH/fjo6RjNcbAKoq5ztdJ7ncdf6bzs4kpJ/Zxssc193lfP96g1I5DE1NzpuYXrVrbav5d+OGo8/SBRYpMrSaGJxNv5NTOo3zOfbme4qSIivzFrfHca0cX1J8td3rHo7RssVFKzm1FwrOQsyqVatAUZTT3/vvvw/A7JC7a9cuNDU1QaPR4NSpU5g5097WGxkZiddeew3t7e3o7e3F999/7xRNNHjwYBw4cMAaLn3gwAHEx8d7/EXZYjL1P+B1ta4neTPOE3RV5XweR2QZy0ykn9mG2lrz7oxiKd1bVITnc25AxrmtbqNtSoq53ZgtLWNd+ifk59H7D5h3dVJ0dyWi/EoqLuRuwfmcG13uVgGgnSFEuLaGPqwy/cw2VFYsQHv7CLsok97eBBQVrXJS2VdWMpsyFIoRuOKgBaiqmudWY8XkS+LKx4SLyYSiQlBVuRB1dc5+CmZtC70QQVEhOJ+zhX1HLnAnDDCZHgoZnKzLyxdDoRju5ItkFt6ZhaL2tpFoa3XW/GRm3kJ772dm3EZ7HlfaMABobRlPmwvpzOm7UVG+GDpddJ+Gyf1zWn6FqS8Jo2mtu3swCi5toNXguPp9bIUqCxQV4lIzeaUslVFApRPEr1xZzBi63dHBzn8l49xWVLKYRy9dpPcDam0Z5/I4pTIZGee24szpu9HS3N+214Vp1nFe71ENcSkwAhbtjdQpnYYr87yaRgBzFzCRmXErLuTaJyF0penu6Ehx0oC6w2gMsdPetrePhpxBALeF7lliEtw9IehrJ2k05t1PS8tYzsdWV89HZsatjFoPpoiU+nrPnN5cOWnqdNF2N7LKxlTjOoOmeUKjqBCHMERn9LoIhknRjONuQi6fgMuly+3eG2V0luYdQ+pKilfQ7ur0+kgUF9Grw/X6cJxNv4NRCKupmYtzZ29Ha2u/Y2l+3kZQVAgaGqajuGiN00TQ0T4KGeduh0YTA40mBulntoGNv0Ne3ibotFFobRmDBhbXmikqg2lnDgAZ55y1W660WgBQXbXArtZKV9cQ1LnJmaFWy3Dm9HYnZ+TsLPo8JUyF/LKzXEfzdXUl4nKff0lV5Tykn9mGM6fvZpycdbpoFBasQ031PLsF0TFPx0L9BEhsHGApmKNicnM3o/zKVThz+m6cOb0dekYTrBSXLq5Hff00GI0hqKqaizOnt7PKzltQsJ4m06nr+yc762Y7AdWdj1pj4zRknNvq9H5lhWu/IToH5tramYy/d1sbvUN2RfkilybyokL7MgxGYwjkTZNdbJbcP1+1tTNhMESgoZ7NJpKeThYlL8zzocQuUKKkhF6Ya20dw/Dbuf4+tmYgy2JOJ2RbYHruANdO83p9lNNmytW64HjdLLiK3Dx3dpuTFrTCzX0IOLs0AM5uAd4gfFUuH5N34TpER0thNIajpXk8Zs467rK9rSYGMN8c1VXzkZJS5tTWNsGSPRJkZtyK8RPOIzGxmvVYe3tlGDy4kfYzxxu0pXk8QqQGdHUNQ29vPDSaGERG9ti1YTKNXLhwLebP/8nuvbLLqbQ3my0q1RCcO3tHn4mK/uGNoZwFpZ6ewcjMvAVLlnyFHlW8Wx8JW5TKYWhsnAqlMtGtOttoDEdpyQqUX9EiPFzNKrMoRYUgJ5tbOL2qeyiysrglCausWIDxE3LR3DwOrS3j3EZuGY3hOHN6O6RSA8LCtAAoVj5E9fXTYTKFQKFI4ZRZNSf7JsTFtaKnJ96lZs1kCsWZ09sxcmQhxo7LR2dnMooKVztN8BFUKLQSg917Lc0TPEp+ptdH4czpuxAWpnVaHOcaxyLJJEMXPrR7v7cnAb0sk+cplclQKpNR5UILxwTXujNabQzSz2zH0KE1GDyk3q0wApgX2zOnt2PylLNISqpE3oVNUKlcm2Xy867FktQvra9bW0c7RT+548qVxSz8rezngXNn3Verzsm+EYuu+ob2s56eeNTWzLa+LixYwzhnuzKhAhKcOX0X4uObMWv2Ueu7en04LuTa+6k1NU1CSKgenYpkWpNMU+MklJczBynU1c7AqNFFTu+Xliy3u1+bmydCqUy0bqx7emSIiVHa9DPZ5camtHQFhiXau1SUX7mKcT51HcFHP393KlLQ1DgZwx3WO4sSQKsdhJzsG605f9iZGJ37kjdNxsiRJYxHmDWD1SzOPQCEGEBivZgKxQg0N49HUlIlY2u6xEJ0UmPehU1wJYXr9VG4XHo19LpIjBhZ6vQ5nTNqVeV8lxfWHomdLTgn+ybExCgQHy9HV9cwGI1hjItYj2oIMjNuxZLUL6FUJuLSRfZRBmwk6GmGESgJbbB7T6+L9ijCyexl76wwjKYi0CvR0h5jMES41TqJTUPDdDQwhKXONYxFg7QDrVLnLNMmUyi0WvaPqUXzxB0JJ0fN+vqZqK9nXhSHmWSoD2n3YBxMOOdrsZBMxcN3+bk9C39taxvDqP1gouzyUpRfWcwqVN4s+HF73s6dvR3x8XKEhuqgUg1mnc+jumouUkaU4mL+RrD5PTSaWJw7ewfCwtRYdNW3aGsbhZLilZBITE7CsEIxApkZt0Gvj4BUasCy5QcBmM1itW4dn6V9kWFJiI9vhl4fgcwMZ60WIEW9i/IY7pIdVlfPQ0PDNDuh8czpu0A3b9lGoOXnXYtlyz+1vq6q4u6G0NTk2ryacW4rUpd+7vIcS/WTcS6sX2gpL7/KSYixjYh11MwVXFpnJyjaYhudGUmFQSPRAzCbzIoKV2HGzJO0x3V2st8cDAAhxh7zJCDF8OHltJ+zyY6Ye34z62RhlZWL0N09FFOnpVvfq6mew5AaW9o38VAAJFiw8FtER7OdniXo6WE/8XgyybFlqWGKkxDjCeZiiPQWT2kQFXqTmaIRRYXTCjGBSgIVg9H6oTgXJlyts8Em865VYnMviH1XiBt0K/Eo1w9bjMZwtLez15JaqKub1Vcji/7Xn2wYjjgqGufDKmz6CoPRGIb0M9v6tMwSRlOXXm8225tMYR7NWebyJBTj+BzJyrwZsvhmtLWOZRmhKembT+/GrNlH0NgwFWw8NSzFHUeOLEZR4WpWG8Qzp7f3CXvsPEEMhgiUlFyNadPOADDXr3KMYAujHO8pCbKybsbixV/bjZWJzs7hjBozV6HeHR2jcDb9TjtBDkBfmhL2T/KAE2JMplCUX0mFvGkypk47g6goc3Xtjo4UKDpGuBUCOjpSOGc7bW0dh9bWcTA/SGZHL9cE7gIdT8XYLSqeUFS4GvEJjYzhmIkmGSQAVBKNV/34CxJIEE+Jl1wx1hSJbqmwv90iw0R0SLrdN/SC6UZxkpzZkmJMQGOITaJO36QO8UOYn/kVBrNm0FaIscBnhu/tmhW4HNKI7DC6DSr7OUmni0Eri1QUdH1wrefWLJ/EmLU7nArFQsN4Oy0JwL0idFvrWJxpHcv4eSicr4FOG4PS0mWYOvUsK+d/hWIEursHIza2w+59ixVkqmEEqkNanI4zmUJx7uztGDGiFLJ4OUqKV8BgiARAr2WnI+gde5lQqYbgfM6NKCpchdramSgqXOMyP4XFide71ODOWW1dYYlecZfPw58YZvI8U7KFjo6RqKy4ivFhvV63wGtByZ+IpaKQYkrAcr3r/Ch8cZtO2ISROzRrIIUEQynv7wVXTDAKWyndlumGkdisXYBr9Y4qf37vw6kG9/l4CPREIAyzjeIU6xSDwdQgTDOORKiX+brcMcZE71/V2jIeZ05vZ10uIj/vOqSf2YbuvrIWtpneo8CsZTIaw1FbOxsFlzb0CTDcGLBCjIWOjlF92VhdT0YXcq835wnhMSFQopsFX6lMRvqZbairne2ynT9h2ZiGO6ko+UMCCa7S8xei54oUo/CVlYdSsZBAgqnGEbhFK3zVbKFNcbYC5lzDWNbHuXseHAmj2UEKxVLDFCRT8YL3s9wwFTdp2eU98hZP+/m1xn1CPTqu1bnOes0XyaZ4UfoRGgoUJJBgiYFb5XCuSCHFWh0/lb8pKgT5+df2RTz2P8+DTcIlgR3wQgxb9PrIvqyl/C0AW3Tui93xoW6dZ3CdM4FPLKrJG1l8N29IpGS4V7OK83FL9OwnhAgqDCv1wteIsV30Yyn2OxFPBKypBnMYv0TgYm8WuAgxySbhBUZPmGlg1r7yaU2yCP5DqFiPBQW2zDaMwRAqFrdyFJpHGYcghMOysVDfH40WKmBx2Fu0/TmXrtPxn6fLwkqd+DWjxNA6Jwhszk40xWGkyayhGcRhjmMDEWJoGGkcjJE0+U4ClXiT8P4WI4yDMd0wEkMos7NlHCV8MTE6W647ZhrZmwPnGcYiBvw+cI7cql1ipxnh8p2uNnDLLr1YPwnLDGaT1Z1a5oyzfMLl+8RT0bhOy24BmiiiKWmhgXtYuCfYpifgIih4wlUGsyYznorhNNddo5/Luu0i/QTMMvY7CssEnBMSqP7QZKEWfZkpGhNMSRhnTMQSvXAp+i1MMpojdOjSVvCNkNfGwlL9FCzRT8b12gW8npcIMTRs1M/DRg4Pq9hw3YF7KmVHUxEYZIpk5XuwST8PSw1T7CaQIQKqEL2B7e5zVJ+teLVuBuJMrqPWIinPkjd549AbzXFym2Ucbb0+0eA+MbLx2UkyeVaM8ir9REwyDsdwit29zaQhM/IcvZNsincSxLZpljO0pmeBfjxmGdxH/Szz0idqKUst4wQj97o6jmzQuffTm2McayeMRbjwi/AGT589rlCgzKYX/SzMNHKP4uLC9doFmGLs05oKqImxzIUSSHjXkDgSjlDMNI7ifWNIhBgeWaSfwLuUSccKDiaOaCoCg212KVzsxbdoF+MO3TKs1s/AbzT0GR5dIYQpZpHeflfsiQ+JO8HhXs0q3KlZZt2dTDAlY6sbZ9ir9dOwVZuKhfoJuEezEts1Kzir6tky1BSLa3XzEAIptmtWQGYSZhe1WjcTv9asxijjUKzUTbdOqkzMMYzBOp2z/5a7BW+FfhpmG8dYJ2t3KvswKsRpYi+7nIru7sGoqnT9/P1WsxZbtakYZ0zE1XrXmqxQSkp7D9sKgO6Wl3AqFPOM47DYMMmlH9ci/UQnn5soil1dJwklwZ2aZZhuHMXKFy3FZB+BGc2yH1tGmYZgqZ574VUhFkpPBWeuUCKGoiVR8dZ7nIt/Yap+Mm7VLmEdJGA7F441ci/oyRahBFiACDFOjDVyq356rW4e7tGsxG80qzHHOBZJAjv/SSkJBiHSrWbAgqPac77BfejgDs0a/Faz1u7Gc+UMyuRzYys80XGVfiJn34xwh6wACVQMVuu4pye/xsXCGooQTruFeFM0xpiGIY6KxlzjWIQjFBEIQzwVg99q1iKMoy+AK+Hnds1S3Ki7yroQRSAMq/Suv/9Uwwj8VuOcTnyL1nW22NGmoQiBFNfo52CSabjbHeFCwwREwXlBHM0Q/WBhsoNwNNHkWvN3k87ZIbW5eSLy865zWeF9tsEcuRJHRWOtfpZboexe7WrEUuyeM8C+AN8C/XhIKAmutfHPcBUSPocmqmazjt2G6Dfa1db79XrdAowyMv/eEkqCyUb7RGJTje4joiYYk7DDZiMjgcSjEPfpBv7D4q8yOJt23GmrPdESOy7EUhZz143aRRjHUThwbD+UisUkA7vkbzOMoxBPxbC6po7MF9B30hPTP1uIEOOA7S6FzQ43xTQY4QiF1Oan5ENd68iN2kVYpJ+AW3TmBc7dwmBhVJ8z1QbdHCzST8RwN5qYpfopnNWXrm5+pgX5Ju1VmG0cgx3aNbhJexXW6mbhRq17Z+AkmvFPcLHordfNtgoRd9qYAUaYhtAKrHdrmAvh3atZha1a+2JmiSYZbtW5LhbIJGRsZvD/cKUpioXzojqMisPtWnpNUTQVgeUG+l1ZIiWzc7x0hGv0j6v7hmnXTjduCSSMv80QU6xLf6vhxnjGzyx+ILYw3Z8JbvzIfkPjeGsyhWC2YQzu1azCPOM4/Fq7CkOp/sWSaSK/W3M17fvu/BS2alPxG81qu989gRqEa/TMAvqd2mVO1ymRcq3JuEY3B6v1MznNC4sZfEbYCj7utGQWbtcspf2dprvxfdusW4C5hrFYr5uNCJaajvUOWsZfa1e7FcpC+sxPjveL47lsWaO3zx4sgQQrDa61k+OMiZyjvxzH5LhBpMPWF20HS+38eJr1kE+f06AXYmJN5h2KJyG/t+gW4yr9RExmkIItGUMd4WJGsRRq61HFu9w9DKYGYY5xrPWBtRW2XKkOw/puzNGmoZhjo7JnwtUkc7PWvuryICoSv9GscXnOeCrGyTywSTcPQ2wm9yFULMaZEjGUimN8MKKpcNyoXcSo3fmtZi1W6KfZ5am5UXsVxpiG4R7tSvxKswoxNmYAKSRYp5+NX2n6q3bfoVmGSBdqz1CEII6Ktn4fmSmaVSTEGBO9di/Zhf/HXTQLW6ILtXksFYUdmjVOWrE7GIQbC3ONY3GvZpWTX8ENDALlPTa/ly3bXQh/ADDNOAKT+yKjZhlG42btYmzXrGDUdCRTCbhXswq/1azFJpvJebUbrVM4QvFbzVpco5uDCcZk/EazGr/VrKXVRAHm+3OGTfTRKONQ3KtZZd0sMCGFFPdoVmK8oX+C7lQMx1WGiVZhRUozvTr+riONQxBJo72y8FvNWlxPozG7QbsIcVQ0bR+A2dHekcX6SYy+UEy/z2zDGKtvGB2O1z2EkuK3mrV2Dr22sNmRL9ZPwhRjCq2g6AidUA8w5z6xEIYQLDRMwBjTMDtfpK0Mz4vMFO2knZVAgqUG1ya1qD6/NSmkWNcXxjzNMIJxTtisZc6BNZpBwyalJFirn+VkJrxNy7y5Mudycr53XAlCOzRrrCbRKCocEkhYRYjSPbPDeMwhJaEoKihzTnZ1dUEmk6F458+IjohCCKTokKjwdUSWy+PW6mZhnMlenWeCCe9FnnBqy/TgA4ABRpSFNDplW3Q8/kD8N0gZUYqG+ulY2301fgq/wNjWFgoUGqQdSDDFIAaRKAipRVbYFbs2m3TzMMLkPJn1QIMvIzKhlxit792oXcQqOZkRJo8iJwww4lB4NiYYkzDf6Nqk9W7kMeu/V+tmIpaKRAI1iLVmwAAjdDB45LwqFPXSdhSH1GO0aSiSTDLEUlGsJnQTKOhhLqQYjlC3QigFCnXSdgw1xXL+/l2SXsRQkayub720HZXSZsRR0ayEY2+hQEEPI+Nu0XLPjDEOxXoXmgi+UUY0Qb7yCQDA5dJl2FJ7H6vj2iXdkEs7MdU4gvXzVC6VozxEjpX66bRmO1ssc5bMFI1IhGGcMRHTjSMZhR4A+CY8G23S/izLN2gXsVpsbJ9XV3OiBQOMeD/yJO1n8/XjMM84zno/qaDBwcizGGKKRbvN2ACzdtmVRpoChR5ocTDyrPW9mYbRmG8YZ3cfUaBQI23DENMgDEIk9kfap89nmkctVEmbcSy80O69KCocG3RznH4/DXSIQBgkkDjN2et1sxmFGwu2vzVg1mjHUdGMc2NG6GUUhdY7ve/qOjVLOvF9RK7de7a/tQY6hCHUet86jolNX0aY8D+aNdXCpq7ZWPLSLVAqlYiLc30PDgghJjaiXzXcLVHjs4hzjMdt0S6kVa/aXqjhxgRs0s9jlTRMDR0+jjzj9P4t2iVIoGKcJoBjYQVolHZgqX4qckMr0CVVWz9jgw4GVmpBChTqpR0YbBpkp6HwByy/yWTDcGvKcgLBFZZ7ZrRxKDb4SIgpLV2GG1gKMf4KBcq6UWErmColvWiSKjDZONylkETXV1FIHYaZZEhyY9KycCmkBommOEQjEnEs/ZW6JL34PjwXG3Vz7TTATJwLvYzi0HokmGKwSj+D1TEAkB9SjfNhFYihInCnll0EW1pYHupDOrBUP4WVqa1a2oKj4QUAzA7wk0zufWUchQymNc6WCqkcJ8L7K3O727CnhedDLu10+uwW7WK78HdbKFA4FVaM8hC53fvJpnis7J6K6S9vYiXEDLjaSbFUFH6rWYt6aTvSwvOt78tM0RhnSnS780gyyXCdU+pxZqIQbr0BtNCjXdqN4aYExglirb4/c2Ip1YAuqFn3BbCzawJmVajFX8bfWK2bibqQNreqWgKBwC8SSDg7YcqoaMiM3CPkJJBwDlX2pKxAHBWNu7T0fkd0LDVM8WjumWsci7nGsZyOuUY/F716LetAgrGmRNYbWgs7NGvQCy2iEM5ayJxgSkaXXo3csEq3uZtCEYLNugX4OOIM1BKd9X0JJWEUYADz9V+ln4H5hnH4KjwLRokJt2lTIaOi0Y0edl8OA1CIsTDSNAS/1axFu6QbnZJeTDC5dsZdpJ+IS6E1rB3O6IhAmJPd0hUr9NNwFpcZ7cvBygRTktvrQSDQETwVtQgDAQkkgifU9LSPeUazaY8td2mvhgkU8kOq0CxVYrWDgzITcVQ0fq31PEP1gBViLAyhYlmpC+cYx2C2TbIwMYhFlF8n3aNDa+xFRIjw2R8JBDrEto2H6vo1t6pu/9RsEghiIYXE7PNodN+Wvz4JrAmmysnCQX4jgnj8UPcW9Cat7wZAhSI//xoUF61kXe13IFKrKvH1EAhBChFiCLwihqDXo1eiW98heD8Ez8ls+V6UfnoMSpySf27NBeQLP6/urkS0tw8sky8Xvq19HYWd6b4eBsGH5LT+LNi5iRBD4JU2bYPgffzS8B7URvaOX/5OMO5Se41d6DV0u2/IA+3aRtymTcV63WxM8SBTKRvUhm5c6jiFup5Sxjae5KJyRG/SuW/EA2n1+/FNzWseHftl9Yuc2muMKnTrO3BZme1Rf2z5uuZl/Fy/X9A+xKRL146SzkzB+9GJoMk0wSTYuYkQ40MU2mZfD4F3eg1KQc9fqyqFntKhRV0raD9i0thb7ush8E6XrgMn5QcF7eNSx2nrv6MRgTGmYazSHnjCd3VvoESZiXMt3zp80u+Fw0cl4G9rX8M3Na/hl4b/cTpOa1SjqruAdXulvg1aUy/ONn/DqZ8TTQdhpPQ43PABq/a2i3CzwM+s3qRFl74NWa0/CtqPWKgMnShQnEGnrkXQfk41fSbo+c1QqO9hzpnmDUSIYaCiK5/zMUpdG6f2FEzWei7z9cLVrWjV1Al2blt6DF3oEEkwK+nMELyPWlUJalTFgvejNqqQ1+46YRSfCKnaPS3/Ej/V74PW1MvZ5Md1F12iFP4e4MIkI7v6Nkz06JUwUgZoTb2cFq4y5Xl8V7sX2W0/ocfQ5ba92kZDVt97mXU/FEWhRVMDAFDo5G6FhSvKXBR39ufkalJXsO6LKxkt31n/Xa0qdNHSO4TWJtmS234YFEwoU+a6b9zHkYYP0KKpw/GmT1gf06FrwlfVL3kyRNao9Epkt/2Ehp4rdteKD4gQw4DKoGDV7rIyB/kdJ3C+LQ1pDfth4KAOpkBhkWECbtOmcgplA4Bva/eybsvlhvaUz6qew491b8FEGQTtp0PbBAAwwYhfGt7jfDwXDU6rph657Yc598GVVk29aKYXAKhUXUJm6w+cj/u+7k2Xn+uMGjSpK+yEl8vKHFbnLu3MQpe+DT/UvcV5XEJzpvkru9dM951toc/Pq57H+bZfAJjv2TQWAppS3+rR+PI6jlnV9cebPkZpZxZ+rn+XsX2xwwbAnWN0XvtxNPZW4JvaV+3edycsXOg4CgOlt3vvpFyYXX9tj71JtlDh2gfHE+1nfU8ZVPpOzsd5wlfVL6GXhUBqy0n5Z+jQyXGi6RPWG9fDDe8DAAyUjvWz6gk9BiX0Ji3SW752ulbeQoQYBtiGal7qOInLymxUdF8EAJzjKGVKIIGMiubsEGsUWFjwBDFK1RuofiGxU8d90j8h/xQn5Z9BZ9S4bas2dkNv0uK0/Au3bY0mz65HfvtxUDChvvcySjozcaWL/a6LK3qTFl/XvAwAqFEVuW5Mg7tJ9RTNAiVXV7k85qvql/BNzWu4qDgJwDzZfVb1nKAT6tnmb/BZ1XP4rOo5Vu0dFzx3992JpoOgQKGiOx+fVT2HI40fQqlvw5fVL7g8Lqv1J7vXnvhD9Bq6cFFxEl36dsbvV9Gdb/c6m0EzV6rMxuGG91HWlYMzzV9CZ3J+Zrg6cDerqz0SoF1BtzFxJWC1axuR0fI9SjqzcLjhA1T2zd3u6OFgKj8l/xxnmw/hShd9GRl32M5zrjbUJ5sOIq1+Pz6reg7N6mq7z5xNn/Zc6jgNha5fc26rNWMDV1MkF9yN3RYixDBBARoWzqOODktcVKb+GLLNZnF35GjjAc7HNPX2L24NPVdwqOYVVsc19NrXh1JozSmr0+r3uzVfXGg/AsA8kR6qZe6vrqcUhYp0a19N6kp8VvUcPq96Ht/XvkF7zKnmz6y7Glsudpxk7KdDK8flrv7F+pLiFC60H3X5HWxh+5tZ+LrmZbtdNxut1BdV/w+n5F/gi+r/AoDLhb9DJ2f8jI4aVTEMlA5aU6/TZ/kdx3Gs8WPGYx1/azoNjuXesOWbmlc5mVActRaOhNhkt41AGE40HbSaXBxxtfH4vOp56Ez22blLlVnQGp0zdtsKN+4Eo8+qnsNX1S9ZzeNfV7/ktNmo772M6u5CVHfbL/wXO07YLXJ01PQ4m1tLOrOswjLtMaoinJJ/zmhC/bn+XVR2X8K5lm+R3nzIZf8AcLrZeZPRY1CiWe18HY41HsDRxo9goHS4pDgJhU6OUhsTUXrz14z9XFZmo77X7NfRqqlDj55ZqJGrq1DfW4YObSPt567Mxw099nNcq6YOTb2VTu2ONh5As6YGSj29G4Or57uup9TJHKszaaybcboxWQT/n+r34VDNK6jvvcxaiNU6rKWuXC++rH4BcrXz92ViwCe7Y4bCscaPsS5lOyiYEBkSY/epxtjr0U7pRNOnWD38zr4e+NdcNPRcwYiYSdbXjpEvNapijBnEXI+oS9+GaCoO0aFxaNc2YkhEits+220ikth+p8zW73DTmD9ZX7tTaf9cvx+9BqWTevpI44cIkYTBQOnwc/1+bB33f4znqFXRR5bktx/H3CH91bOZdgEUKPQanc0+X1e/BD1Fb0bs0Dbhi6r/4rZxjzl9ltP2E80RQHlXHibGMVeTBfqFic+qnkOIJAxTZIswK4E5tTrdzrSw8wzWRN3lsh8TTJwmFLbktP6MStUll206HRbQDq0cxxo/QkRIDNQO16HHoMQPdW9h86jfAzBPhEbKgGGRo7Bm+DYAZkFX6yAonJF/iauTb7V773DD+6BAISZU5iQ0W2jTNGBo5AhEIgxxpih0SdUYZRqCDAYBxhU/1r1D+9zoTBp8U/sqbh/3F7v3CxXp6NK3Qa6uZqWRNVA6nG//Befbf2Fsk9Vm9m8ZG8suy6otn1U9hxnxyzEzYRkAoKzrvNvnWa6uQoumFuNiZ6Nd04C6nlJcNew65LSloUvfjpy2fu0Q0/OjNnTjuzr6TQUAq2P51Um3IiV6AgD66MlufQe+rH4Rxr655ZT8c6xM3urcn1EFANa2yVHjsTL5Nqd2ttFb1aoiSCWhaNc0QKlvQ5gkHPERSWjV1GFC7FzEhdunBMhu/Rn1NBFwFkFtwZAN1rnB8flwRGvqxRn5l5gkW4jkqLHW97Naf0A1gyY2v/04tMYeTI/vr+adVr/fTlCy3SzW9BSjtbYOVw27DklR9CUhjjR84LTZ/6XhPWwcscPu+zf1ViKj5VvOVoagF2Iae8vR2lmB5Uk3M7ap7ynD0MgRkECKiBBzUTEKZjWexQ4cExqPzaN+B8AsAbe7CCUu7szA9Hj6MugtGhvpmIMMU91dyGqCyWz9AdGKOCwYsh6FnWfQqnGuYPpNzWuIDInGxpE7nD6jYBYYYsMGI0QSirUprhc5R9g4FprhpoXqYthtUKCsqlfKRRjfoZpXaNXhANCpb8VnVc9hSMQIaPomKi7YCjAZLd9hVsIKNGtqQFFG++ttwyn554xmiQvtR9CmqcfcIWuchGfAWVtmpPQo7jyH4s5zGB87B4uGbnQ6hs5BuVVTjx/r3sF1o+6nHcfnVc/Tvk/HEcZolf7r/EXV/0OoNJzxOjhi+3j8UPeWVZ3vKMBYsJiibGnV1OFE00GoDApac1ijugLnWr5Dr6ELEdJINKkrrQKFK+faY00HEBs2BLFhCdiadAur7wMARxs/woqk2xAeYk4Dr9DK3frfnZZ/gRV9i2WPQQkTjIyLkLeYKCOkEm61kwCgrCvHKsRw6cvWv+h7BoHEBCPy209g7hD71PSOvkpMZLf+hJkJy53MaLYYbTZHcnUVPqt6DpEhMbhh9IMu21pwpaG0NVfpKZ3VXyWtYT+2jnvc+tn3dW+6Ndle7DhpFWLYLPaN6go0qisQHRKLEGk4tMYel8+fgdKhQHEGRYqziA9PQoeuyW0fvcZunJQfdBK25epqnG0+ZGcas0CBws8NzH5bXAh6Iaa48xx06EJdTylGxUylbXO2pV9l6XghLPQYOlnb0AsUp1GoSHepFQC4xc6Xd+fbCTFMpigKJnTp23BC/injubSmXloVvuUMBkoHRZ9pIKv1R4RKwrBg6AZW47QV7vQmLYyUgXYhdnQAFkIrpTaoEBU6qK8/5jzYFqdaV4KpLUcbD2Bdyt20n9X2lNA6rpV2ZmFq/GIAQFr9ey6dOClQqOkpRk1PMRYP24yxg2YAAA43fIBJcfNRoDjNeGy7xll9XdGVz+ibojIo8FnVc1iRtBXDo83O5d/UvOqksbClU9uC+IhEAEBjbwXSm792KUBaMMHEWoAB7O8RNqZdJpjMOxbqPHQ07Na3IyaUW5bedm0jDtW+guSo8ZgRvxTZDNo4W5rUlfi+9g0MixxFa77hE4qieEi6zf+zbLu5kKurkd78Fesdu9bU65GDvu09RxfRR2eu5ILtnHda/gUrR14DpcPnVc9zni97jd2cSgGYYGIlwNjybe3rCJOGi56INOiFmC59OyLDwmAwOUvPrvHuQaRgQl3PZYyKca6GWqA4jdEx03FZmYNhke7LrzON52LHScwZvArf1r6OG0b/EW2aeq8dfh17sZgh2AoxdueiKFzpysWshBVQG7pR1pWLOYNXoVZV4mQWsuW0/EuMjJkMnVFtXfg94Wjjh7h+9AN27325qh63njT/5sebPkFUyCB069s5nbdd22A1J7DlouIkipUZnFPk2wqrCp3c7aLnKBzltR9HWRcbJ9n+K+9KgDG37BdYzjR/yeLcnkGBwre1eyGB1C8d2b1Brq7kZKbrNXYLLsAA4jjne0JT32/VpWundSAXCrO5NpT2/tOaevFd7eucIlKZ4BKJ5K/XSGNUQSNizSQLQS/EWGjV1GNc7Cyn90808ZOQ69TcVlSl9GJy7SAsLTTb+c61fIPIkBgsS7zJbsEr7sxAcWcGhkWOoj1Xh7YJ0aFxVg3GiSZ6rUqpMgulyiwArtWZTBQpzmFGwlK79zpitfhwTg1MUiBKK8XUmliEGqQoUJxx6XNh4diCFtxuI4iXdGahW69Ai7oWWlMvrnRdoFXH2qIxqpDT9jPGxDD77nDHLAyooo34ZnkjbkxP8TJ/jv1EUjhOifGNMYjWhsIooRBCSdAVrUdcb5i1jSsBpnyEChMbnMvWM2ncvl/WBMUgHe75xdkOfbLpIBYO3YiizrOC5Mwo787HooiNrH4/bzf13mhgxMD/XPO9xf0CeWJeK1bnDbN7z2izSRSilpXOpLH6OYmNqz7VHpifbanqLkBESDSjcy7BPUEfndQRq8dPS+SoVhUgq/UHp3wcTCYEx0gBJuqG9eLAhlpUpZjNM2WjVSga2y9Va4w9jKaM6mR6k86Rxg+t+VAAsx9N5XD7yfyL1ezT+3+3vN/EQNnMuoWdZ5xCAHVhJpj67gp1hAl5k5XIma5gTPJU3pVn97ouyf53M2ukSq3mK4sA8+k6zwWIz9bW4cxs9w+9bTptE2VA/TDz2Dpj9WgazM6scWBDLbKnOatHHaf689M68fnaBnywqQYfbarF+9fW4OuV9JEJjny3rBHpc9pxfD6dD4b9Mvn+tTV4/9oatMt0MIUA729yNpU0a2rwY/3bnAQYpt1d7mRnf43K7os43PABTsk/ZzxfZwxXzSeQPqsNjUPYPXcWeiMMKBwnbJZoAOiJ9G9N0IXJCnywsQZKD353W3L7IviYwm0/WV+HmuG9+GmJvSnFBBN+qHsLP9S9LZigEWjauOYEjdPv5Eh2208utZmKQdy0PGdntaN8hArps9gLRQapcCUBxCDohZifl8jRMliL8hQVqlVF+L7uDbvwXscHI7v1J1R1F+DQcHYx88cWtcIQar8A5ExX4PKofmGJTlr/flkTSse4SnBmv3iVjLNXN5pCzIt5c4LrxfjC5E50xPVPbDXJvbhgszC1xtvvmpj2YUbK4JTk67Oq55DbfhiZ0zvwyfo62gVVG2oW4OQO49SG9z84ujATLk7stPmUeX8rT9BAHWFCxYgefL/Utc3WQOnw9OBXsM/0FrojdDg5r9V6+l+WNOODjTX45SpnD//aRLPAlbZYDkMoheJx3Xj/Wsfv1v9L2X5mKyRCAny4sQbfXM0szOhCTeiQma9PbbIaBzbYOwJLJP0nrEih2fVJgB9Tudmu37+2BnXDmHyi7NsVTOzCoRUNTkKnQid3uah8u6KR9n6gwyihkDtZgYqRPTi2kH3un8Yhany+pgHnp3WyPsZTvljdgM9XOzvJs+HQCvYbDk/6ODm3FZcmdIGSAodWNHJawBypVhXiUM2rKFCccfqseGwXdGHm57ZlsNbp+vYYlOgxdDodd3x+C75bxu0e9YRP19XZbdhccW4mNxMyVz7YWIOfU5vRMljLOM+4I3eyAt9ezf53o0DhyigV0ue0o3wUew1m2hJ2Y2sYqoYmrH9D7m7tsSVrunB+MsFvTupbA87MacOERmcHU0eqVAWoUhVAN8yIr1c04ObTzn4Pymg9ZL1h6I1gnsQzZnUgY1YHwvVSqDK+x46+sOZTc1pRNcK8gKQ43GfZMYWIbXBeqDThRlA0l0odYcLPqc2IVodAG25CpE6K5PZIjG6OxpjmaBxe1IzGYQ43mgS4NLELlyaahaIH5DrAZrPNtCNXRRkAtfMC0xNpQOlYemGMklD4dEO9eb2XAPf+RB+C1zxYi7xRSqDPv9IkZVZpH7ZMBhKgPV5nFiAoYF5ZPIYqw+3aWoWLJAAzaMYnBZqGmndL12YmAwC+WF2Pnih6zdn719ZAYjIft/wSu92LSWrW/KRd1Yx154ch1GS/b/hkg71wYAil8OWqepgkgD7UhEVF/b/Fmbn0E29rgg4fXVODcH0I4npDsanvu9iSPa0DkboQ5E3uBGAWvu2vR38/HbE6HF3YrxVSDjLf59owIyL0riNXfl4iR/PgfsH44kQlVjBo3PMndqJ4XDd0oSbrc2oMofDJujpsO0pvarXl8GJuNWV+WiLHWHk0LkzuhCGEgoQCfpVGf0/a8um6OkAC9EYZ8cGmGvzqZ9fHfL6mHr2RRoQYJTCGmH/Xg2vrsKRoMMbKmecgTZgRvVFGfLy+FpPrBmFR6WDmPlbXI8QkgSbcCH2YzfMiAcpH9WB5wVCXY+yJNOCLNQ0Y2hmOzefsyyXYaqGvjFBBG27EIHUosqc5aOVY2tJqk83n+2R9HbYdcX9du6L1+HplI6QmYENOEpI7Il2274jVoWJED7ThJmjDTfh2eSNuSKdPDZE/sROlY7qhiTBB3qeNtZ3jK4f3YHwT/TXKmNGOslEqLL80BKFGKcY0M9fKoqT2/24aqsGBDebrWpPci+HtkVh+if4aKQbpkD9JidqkXkACHF3QgnW5ibRtP9xYA5MECDH132u233VueTzjGAEgZ6oCbfE6nJrbipX5wxjbfbCpBpQEGC2PwpoL5rH8nNqMhK4wxt/alpIx3ZhcOwgJqnC3bbkS/EKMBYn5go1tioaE5uHriTTg3Mx2rD+fZH2va5DBukgOUYZDOUgPQ6h58hvREoW2ePe2X12YCV+uqMHX1IPmaCQXD/6/Rr+BewvNE+THsYfwR+3vrGYcncReTWzrK9Hbt+j2RBlRMbIHFSPZS+ESynFA7J3GKlJUjAurfSf2L22leXOP9n3mTunExfgGXC8fgyV92tSvVjagO4ZBaJQAeVM6AQCP9AlCmSHsa5y0DNaaBRTKQZNCA+Wh7lI+VIMDG+sgMblfOFXR/b+P48TEhDEEUIcYoY40Wu/ZaE0IpJTELIDSfK/3N9VgdHMUWuN1uKqsv8/vGHZ/n60xL5yzKmSI0oWgYZgasT2hWFCWgNLR3cic6Xq3dXhRM6QmCUJMEjQN1Vh39Y7owk34cGMNZpfLkNwR6bSItcZr8VMq+8iQ6uQenJ3VDn0YhRYbAYuSmH+De10IJd8ub7TTGlIS+8XB1iHzmcjnkW6jlbO9dpoIE07Ob8PKPGAczSJZl9iL4/PNmwR9GIWi8d2I0oZiZlWcXbtTc1tRNbzXrQDBtAGz9HVqrllb0xavw2dr6nH78f4Ag4sTlCiYoHTSMNPx0TU12E7jlwWY59S0xf27fF2YyW7DAJgX6PZ4LZYUDrEKBd9e3QRIzNrmtMXNGNkSBUiASXWDnAQHZw0poIjT48fUJlyX0S+cVQ3vwZk5bbDdQ3T1Ceefra3D7cfMwtXpuW2MQszl0SpA0r+ZWJE3lLbt9wxaJ4tWFwDKR/ZAG2bCWgfhpHBcF847CIv1iWpcnNiJOX33XHucDj8sbbKbi+jmifzJSkgoCeZUOEfQ1Sb24sooldXEXpXSi5rkGiwtGELrm2eZF+uS1CgfoUKbzDwxK+L0ODWnFSsvMgtAAAAJcHJ+K5ZdGoL8SUpMrB/E+Du3xGsR18p+oh04QgyAovFdKBrfhVsvOM8AX6xxofLt2/VboCRAfRI3271Jws3u2C5p78+bEA5URTSgMawFKXp6iZwvuPi9X5zIzRch7apmLCqNx7lZ7lWL3TEGtCZogb450GirnTFR+H3WqwhX1+DVNS/SHl8Twt3nxp0AwweUFDCBYl1t2eOszpJ+4dZVG8sumc11N4UAphAKF6Z22r1fMNHG1GmiMLZ1CKqHtQNS+7E7aQVd9SU1T8KAEtOqY7G4eDAahqpxdGFL/+RtojCjIQVlyc34fmkTrrfRKFwZqcKkevNkfHK+C/OKpF/DNqtShpqkXmgijNCFmRjvh/zJShSO74JJSmFatQKyuu+gNnbj/DL3GZBPzWvDqXltiO8Ow9rziTg/VYHapF6772T53c5PU1gXtBCjxPwMsLwdLAs0AJyZ3YahynCMlkejcHwXSsd02y2AtoJvhE6K/9/emYdHVZ0N/Hfv7MlMJhtJgJCwbwIqoMgm4GcFlArVWmstFZfWuCCun621RW0ttJ+tWq17S6m1ilsrIkpRdllEFgnIIpCQhCSErJNMZr/n+2OSSSaZJBMkmMHze548T+bec885713e+973vOe8HlP0uiqggxUTSrjwy2T8Oo1Pxp5Ep4FPLyKev8YPhtRqI7Z6fUiPrh1zEr1faW04NdO1RWlNOtfgU/C1Y2SdTPLy8ZgyNFV0eN+5TFqYMbR5RAUT9qaQn+HEWq9nf9/aiB+GG84v59NR5YBCeqWJ4lR3pyK9C9NdLJ1xjIv2JTOk0MbGUeWRP0AV2DW4ht0Da7C69G1/zEVg15Bqvuzr4IIDScF7Gtg5pDqi0aOpsOncCjadW4HJq3JdBG+oUIJlmpPXu5683sfoUWXiii2RvcAQ9OiunBBU6MU93Hw+tIp4t54Bx+PZ188RlKvBay/qAtDxYs3At8yIicSe/jXk9+w4PqArEErbD6HHoJGf4aRvaTx7+zlAgT/1epUnjt0HRPKgRN3oKfepJc0VJcDIY72ZmndjcPgmAqWpbt6f1PEXdMQXfMMmg0/l5s+DGVe9lmz0PgW/oXWfv+4kxOyyJMYeG0pSfQZ641SWD/kVxclNL+tacerBpM3l61+awrEelRgCKm5ja6OjPSPm7eMlfL/318uc3MjpmrZ586bZGAz/g+urD1k66aNOHbuwvILfpiQTaOEq3d+3lv3NhywbXvS3rf8xwnwhk4vghfELKEl207PBa9NZaYQKe1oa5ZpgRFEvym11zNpzKW+OXYkjPujJaXzZqlpT8kGvPvqXf7XNxzstgvOv2DWaPu4bMLj288wl4WkUovXINeejC0+QXmXiSO+gd3bbOR0ktVXo0ICZWedkprOeu9KbvrzLE72snND0XAfaGXFsHI4tT/RSnhgetBqN56cRX4RnvrkBCJ3/0GzkUFYdh7Kim3UUlLVjQ6kthNoUetDIgNJUPAYfRSk1rcp2xoBpxGPSWhkejeh9CoNOpLO/V0nYufMYNXw6DUMgeo/IyaSggZp5woLT4qcqof0g83pLcPj0ZFKzEY2GLmidWG/xW2nENFeRzb8qe9Q0ubcGl2RwSd5VPD9laadOaDTM/fQ7uAz1HBjROqBq46hyep+0cKhPLQezatlT66AyIfiwl+ub+lqva/+h0fsU/Dqt1ddwS76u82HO5+PIqp1CvfoVeuNUfKZmO7/me3Fbwl44AaVaMfXmAEavjstzx4SV0Ws6/JzeWQu3rf0RwtywPk3DEO6VB3/DzrQn+WxAPgAbXauI95mCq3EO61z9lTYvybVGwMhleb+GhjjztdmPc7BXeJxHoMUKVZfXORni9TLB5SZOO7UTfNunf0SoeorMS1lxfnB2WqRzeK2jlgNGI1+YTa32tYXB8D8AWHQzydkyk/RAHqR0cBCwqKycK5z1fL/WycOpybxna+3SBvje9otI91+Hg/cQ5gubdmgCR7wvZMQc6V3H4CIrlbbwF+V3nPWsjm87lqE5P9p2KQlcGfxhhB/tmcqr592P09KknJu/VJoPVdxY7WBJYvhQUHtklyXRx30DAD5L8IYaUpzGpQcuZ92gVezr0/nA2NJUN6WpkfWE0RscanSb/Bi9OgI6LSpD6Q8nK4h6/pMmmL/xEXzGZIzuUjTVgt9op1z3Jm9f+Gn0gnSAvc7MTz6bFzpvOtdO/jL17+3qvtm1dW3eY+0x4eBA+lb24V/j1nSoW0+FUcd6M6E4uIpvgeXv9K7ph844BYC9Sc+yaWjkNBiNDPJ6+coYfdzJLZ8/BcClhw7xzCV/Cdt3LKOegcetVHdyhlQk4/F3BXUUFL2MwVfD9l6vsnVQ9DkGO+JbacS09eq++svf4SY4PJHun0PAksnPPhvNC+MXRCx/KgwpTiNenUV8AK7aWRim4PU+pVVMS6W92TBWlFZBQr2JH+1eBIqOpeffx7QDI6HhPTSw4nwmOAeyeUjkVPRtrSLc2HJx/RF6xQ1gk20XigYZvh/hNYOeyOPvmeWJFKVWR9z3auoKrq68lL+l/afFnuD1ceidzBlyNz7FR3ZZEjOPPNKqjl5Vdo5mRPrKOLUX/OwdFzYZMC0YXXYPvapf4z9jPqNe1LO5rGW/o2PNmDKu3TwDnTncIJt27JfYXU8ytuBi1g76L/szS1nnWUWalsqhmh0wDBaWVxIngrIV6jtvXV+54wKEGnzsM903AEEjZoNnNT1Fz7As2g9XVFGhqlzduycznU7+aY/8Ur7wSF/GHbsSVGu4EQtoDWk82mPTsULszQyyczxe3rNFLpvuD+YdS2B22PafbJ7BG+NWowCHezspS/bwzpTj1DebGj23xsH/VlZTqaq8a7PydHJixDYUDe5cdxs+S+sVvufufoK/j74Pq8dIeUI9WnPPZTO1cm9VNdOd9fywd2v3enNm77iAPjXn4be0Tily2Vd34LMkMuXYcPb1+d8IR4cz0OulXKejWtf2ffGTT6cTp14e+r1sxM+5du9i9D4Hz056uN0X84y6oF4ytFmiAU2gD6jMyB2DzxgMTvaam85DauAHwOkxYlId8Xx/3+/wNbvNApbR5GwbjdGVz58vebLVMT+truGuqhoeLa9EB6yOs3Bvg2fpzydOhnmZAL6TO4KhFd/jUNJ79KsPpmq5bX0v9MpAdqe/zsZhh9rsX1+vj1ura/hFWvuB1hA0xhoNGIAs17zQRxTAiKo72UT776K3j5ey1WzGgOCmnm24xBuIdzVbw8oymJzNT7Ji8KMhfb31nEpOJnooyKjnsZMVfLfOyRaLmdszgiENY11uPre0H3SdVGtmxt7xFDAHFPAZkziv/C4GnHyf1yZEn+y2Pb6lRkwLNMHt63+CZgZjwjxEoArV0BTodvvan/DKxNfwRnD3d5ZLDn4H0XDdA8assH0pznhOJLbjxhRNCrO9YYZJh4ZDQ/6TG3Y1ZLlt9nIZVTkfR8Fi9ma1/rrrXdWDcd5+7MjOJ6UunhNJ4f3ZUracXnED+NPgtfzgsylt97Whl7O+epQXUiM/eP/qsZI3Uj8MfxG0wKN6uXnDlaEv/JZclvdrXkxbEBrjL3QeIM2czW595OSCcZpGvRrZRZqz9jowX9SOPJDhvZ6cLddz0tM6e3Cyw4KKQnlC+8OTdXEBDPGRV0AeXXYPmhmmFI4hL+1eakUNq44vaep/s3uglz/AAK+XIxG+vBrd9hD0MM7YO5FiexG9vJHTJTioCctl8n5hcKpqiqaxpvA4KrRpxIwuuyfsJdIZflZVE2bAAFxTW8frCTbyjOGvy+yypDbridNdzuydTt4atym0rbmX5OWSE4xxB93WyZrGLTUOBnu93JHROsZsdH52RAOmkXk7g9d++ZBfIVoE3G/LL8TYcI3O8Xp5obSMnIY29uQVMKpf+DPf0/tj/BHO3S8+/hFV8YkAaLrWnrCLXC62WizoAgpvFJUwQPOiBxyqyqTsyKuAX7JvWJgBA3Dt3sUA+A0JZNQkUJoUPtMw1R/gfyur2G80cm9VdWj7q8WlzO3V2kBrPtzbWdL9fmyaxpvHSxnd4jy15PvbJpGqtU6+2Bxvs6SHjeTmNcUtNZp6l9Y3eQ7O8TR9NKZXW/nBzrn4LEPxmQgZMADCfCE+4JzqOzinIRl0pI/d10pKSdAE0/MKeDbJzt8SI6epMHt1XPnF5E4vepJTVcMRo4HV8XHcUONABSa4g9639ryBwwszuLjoF+EbFZVZXz2KtncjL138Fn49HMwO6v/vNRiwk1xu5lUHn51ZznrqFIUJfduecTb387vwRljZ3KZ8F7NnHe4WM3wzfT7ur6xmuWpunKzaIWe9EXPTZ7/HafkAoQg+GrEdp8XXygC4bO8oNPNYAFRdMujCpzZq5jHcujmLd0b9uSkuQhPcte4e/MberOn7BFMLHwKCLsCPh+9p0+Bp7gJv+eq+dtd83jzv2TBFklBvYt7WO6gwf0GaeiU0PAMpDgvHE9zhX06aYP662yMq4JqAwK5TKPQGPS2Tjv+cvVkLaOmVUpVUzj95N41Lquh9Dvb0eJUEtx6BE7/wUuDcj0vnIUm0nVSTZjUn1VqosjUpipzNT4KiYnUV4uj/Z5bbTWEytzTP2jJgGrl129MsG/EgVTY3m8veQ0HBOcrFbWuvp9Z4gn+OX43Zr+enW36Fz9j0IlwxaGG4l6gDA6Y5idp4AgSzmOdseTps34GE5xl08hxOWov4dNBeTtpbBOtFOQw0e+ckjllzQ78T6k38pTQ82u2xwqfon7adnVo6dwwP3nPXbJtEmncWmzP/wu7sQq7e91tQVQZFmAmfXm3Fq/OHefk27nUitCTeKLsnWF/fh0Gn8VB5Jb9LbXvab0f8dP3VvDz57dA9m5tXwOojP2U1MCVrKQUVw0mMO0FqQgnLj5cggCMGA9/LDMb9/M+Bie26AVK0a8jZcg16117+Me4fofiVVYXH6eUPUF7Ti9zy73BBr3exWmq52BV5qKVvRXTpJC7IG8L6wbtDv62aFmZkev0G+tXqoOFdrzTIPLLhBT2opO0ZHVXxrb2BT504iUtRmOWsp7K2B6vKv0ul5VI+AfbW7ea72YsxGSO7/pMdFgY7ctqVZ84XV/DC1PAVzP9beBwDMKVCxaEloVe97DsxFZPOSa5nHUsTbDyREnympu4bylDHbe220Rbb8wsxC4HHa0FTzGzOL6Q2YOEdu5mXUlsP+3RkwDQS7zKEhv8ucQY/Lqpq00mIO4lOF9SFCrDxWBG1qkJaIEBuXgGHDAbWHXkRn6Vtw7klF33Vn62DgukRxrnc3Ffm4NXidwG4Nu527qEkzIjZkl/I+L59SHZYuO7zHxCwjO6wjVHHerMnOxhLdX9FFTc4gg+1D6itTeffJx6it34PF/Zdwb1V1eRU1zAugpHRyoBphmqaTM62yfxr1P/iiPegD/t4hvuaGbPxQpAUCFAVwft348YrIhowjczb+UdeGHcXqAqvlJzgQrcnpPsv8NTz57ZPQxiKEOLU/O7dHIfDgd1u5/9uXI7F2BTrcsD+PDe655BmCSqSmcNub/USao9DthcZXHtrVGXrtBVsGriDgtTKUFxN87aSdQqTbU125HvVDavZjnyQepO31ReNDpiVGNTiy6t9odeOwXWQlye+xMSvBjOojb6pQLwKtS1Gi0ZZVPqZmm7AUp/GNmdrA8xT8wpCawps/delRdy0I/LMoNkNffQG3HxYG6xb56sjYGh/DLrxuI3lX/HEuD+HDMFor4/i/oyDCWvoXWElzpqDonRsox+Nf4Wh5ZdG/GprDyH8BDx7UQ3ZqLqOFV2F+hZug5vVI3Yxd8vs0Dh3u3jX8tqYD/j+5hHozZegM7T/dWryvc/TF3/cqfu5kXxlERmVwS9+c9K9bZYrNv6TlaM+Z3RBNhfWqBirv0+9pW1F1YNSJiQGleh71T5Mrs8ZOOjP9DvZgxURvFmNfFf3CzJTDuLTCcb2DcrdGbn0vlqevfhhdAGFd7fb+VA8GrGN55KtrOwfnPFk8Kn4dAHmr7sDn6V1zrOWxLsK6D/8Qf6gZRPnM/Oop5ANJ57Brw+PuYlzlzLa/DdG9NiBTqeFjJg7Ni4moI/OhTVTeYT+6V9QXNmPf3sjP3fN+c/Qh5s+DBpm80XDOVnX41J0nKjribOi41QmOT2u5phZ5T7dKC7N/1VUbQCk1+3iwqG/o0TVMaA8mer6DOyWMt50Pduq7GXJN3PVkHDd0Zl7odFDMrvIzIT908mzXhLaN9n/NAoaA1KDw6i+gAl7fDDItuUHQ7RtjSo3MuGr/4u4/70hD1OSXIsiBHvyC3nJMQFfffuJgltiMj3NjQkb2FdyMalxBfzb+0fGuP7ODsu8sHLpdV/w3exFPJNuYWmDF1UNwAObL6JGf12H7RjdJfjP+znfrfRjqk3io4r7ccT15QeWO8kt/w6Ts/+JQe/HR9C4Ob/hvs6pquHqMo13Kv/RYRsTvH/h/KzwYaXni9/E6ffywJIrqampISGh/diyb50RAzDeXEqauUmxflO0ZcS0h10XHFVynKaVoqM3Yv6K0Jqi5dt70TUaI56Am49qo4/baDxufVUB1crpmXUjiQ4tUIW39l/oTWPQW6L3SHVEGqWMT/zmn7WOsNUfpTauP3GuAuot7RuLX5fRrr/jUxVyTTd0aTs6v4tNfZ5lfEnnXpLdEbO7GLe5FzrXLv4ydUnURtmpYK8/ynfTH+eftX/tsjYA9P76VgZvVzBT90t+P/wk+41Grt3R2khsj151n1FsvbDDctfF52DQeYiPq0YFnit+KxR71xETvc8iUNlsbErW6/I6ozZizvrhpEicgeVAuoya05wltOW5qPB3A5s20mqEki5F1SVhst8elubg20RtXH+ALjdgAHa2+GLuKgJ6y1lhwAC4zcFVYQOW88nZdn6XtlUT17/LDRjgjBgwAB8GHmdULow6hWOjMWAAXnc2LAnQ6KzvRGzPp8Y7O9epFpz1uZMioaiJ33QXui1HPLGdDExy6nxbDRiJRBK7fEuNmI5zKH1b6QZ+mFNfpVYikUgk3yq+nUZMF9Rp9pzEVp/fBTWHkybWYXe0vS7B6SLJ+wX22vYXVopEb9N/Tn9nIqDzn9pqnPF1hSS7dp3m3nx9EjwHO31Mqje6TOsSiURyttLtjZjnnnuOfv36YTabGTNmDBs3tk4R3x5/u/BBVL2LF8bd1akXX5ruv5gIrqNiq80P3+n/GGttAZb6xhV3NdymHtTG9W0qowWwG3bQI7ARNdC0rHKaWEd637dR9G4UXfh0yKXn3xexL+liDaqxDp25hjJlKjUJg5u14yfeWYDOcBAH7+H3ruVAwvOYXIfZ1Hsxr4y9OxidP+Qt0oYu44XxC3j5wrvJHfw0Wef9EWNC+NLnL4xfwAvjF1BlPJca26DQdkVEHmZK9W4NRho3xIcf98xptlegaC4SlFx2Zb1DmT44fTOu7jiK6kNvCc4C0PmcHE5qWmQtoEU2nhIdB5rK6C0gAqjUkeTeTbzrOHGeotD+5PpdvHnOz3lh/ALWDnwOgyc4WOu09qHS0jimLgA/SXzedJx1EybrMZJTP8FgLUJnrkYfV4EpsYA46wH8ce+ycuBC9L6mmVotr2MrhCC+rgijt7rVLovlKCZ7EQ7TYFSjE3NSPj16vk9W4j9IE2vDyiqKE0X1kTx0JSZ7EeXGCaF9cXXF9DB/TI/AJiye1itBZ8a9SZb9VQZcfi8pwz4gaeCH9AhEXnAs0ZNLfNxeFLUhELfh2ltri7BXt2/YZg14ln4XPQpKAHv/DaA/0GZZm+sI1tpj6JUKLNamxRdVv5vEmvZXieipW8ngK29DZ3Kgt1SRoW8/xYHOX4/VtJdU7xbQAsTXFaH31nYoD4DNtBdF5wElQPbIJ8m0vBWxnNlzEov7BAZPNUrAi632KKo/OL1e760jsar9jw+L/igofnpmLCPFtwNFtB0AZ/DUYPGUoPM5QWtaa0Og8cK4uxCetheTM3vLSTN9QkLWBrIzXiZNWxu5oNCwOvJIYgc9fJ+GrVPViL2mfeO7T+JrxGfswpxygEHjf0G8p+P8UgZvDTpfLSZ3FQmOyItyNpclO/1lEg3bGztNsn196J5tjhrwkOjYjxLwAD7inEUkOvdh8FSHysQ52865NmjCg2RPepyehvfJUFe1Wc5Weyx4vzRHC4AWINHxJTpfPXF1ba/AnObfgF3bAyJ4XRVRT6Lzy9btOPIxeGrQe2uJry1ECYTrIZO7ArOr7bxhZm85cbYDKDovGcnvkU7bi8/ZXEeD95kWIMGRh736EHpvHSZ3B6ksGrD3W4vB4yDBcYRk5xcdlrfVRp/7rlvPTlq2bBlz587lueeeY+LEibz44ou88sorfPnll2RltR+A1zg76Yrf/pCZhT+lzlhFmfUY/SpHcbHVQLI+aL+9X16Lpm9adTDT+jrOymH4MgPUlY1pq/rTQpwK30loWvhi5rDbyS5LYlB5L/Zluvjel7eQoP+Sat95RLFOJh8NeYX85OC6IjlbnuaVCx/Ar/Nic6dw/a5fA03TDYeWjWPqkR9xrkVHX1PwXOzSFfHQ4N+Fjm+Ot/olNNG08J058Z42A3CbZie5+Kg2GDu+PfNDdvT5KGLdAMcS93IXQeNiVd0K3P7pwXPkLEYRAqc1urU7GrGLXH4/Ibh4W9/Kkcw4eEunjm+Lg6mfsXbQa3zv84tI910XmjXRGQyeGuLrT+CypOAxt78mf5pYR5kyFYPPgc8Q/TL2jde5d80gvvtlx4FzKe4dVJhP7X5vbGtO7t1k1PUL25eqbmRiQnBK6//pNzOg4nx0omvmE6h+Nwm1BXgNNurj07HXHMFrtOOK67qkqUZ3NV5zYpfV31kEghfH3x38oQniPUbm7n7iG+2TJDbR+eqw1RVTb0nFa+7E+lBaABT1a03QOGtmJ/3pT3/i5ptv5pZbgi+gp556ilWrVvH888+zaNGiqOrYUz6L/XYXKmYCgSEIu4cpXg0a1meoNZiIF+BSBPsNAeLiR2Hpk88Txy+hzu5CB/gBqwgm7nMoglRNobwxo6yAOAH1LXxaaX6F87x6zvUGT/F6sw+LAKcSPKxIH8AiFL7Twjg5llbFZUd/xc58H2tMOqa6L+CdeA+lOhcJmkJp8yRpDV1QgJ4Blen5cyi3lNKr7GK+0gfou/dRHAn7cLr6s9TqxthsIC1PH+BcVSNfD30bHHK/sO0KlXjC7grLFbmgOly+pTYPff06rJrCEUOAeKFQrmqU6QSzm8n0T6ub1IBKkbFpeu1zCS7cCiRqCmahkBJQ2CP6cVdDeyah5zmbmwRNYbQ+nQBQqPdy2KARUAQuJehDsTTIP9inwyAULnYbsHIIY6Cav9jPDbVXoNP4o92F1vKZEkHTME5T+FmtmTx9AAXYbfSTpKnk64NfwkYUalRBYkDB37DC5H9Gb2XqIQf9HVfwVLOF/BQROcemVYOL3Ab6+1TsJjvVJjuvWt30DHgJAHuNATL9KhU6jdSASrKmMMKrh8B4ehjW4DT0Y3GcAQUY5dVx0BCgXgWDCC50ZQTGePRMcoffTy2/UDSC9/lhQ4DZ9U0rwVabBpLs2o0wCt6NH8HnJj96aMqopDRVqAAXePTEC4WxniYVssISoF51YQDq1GDZ3zdbmMhXcz5VikqNLsAai4+AArUNqzXrAX+E82bSYKgvKK+/4dlprFGj2bkWYNcUbtIPQo/CBrOPowl9GOzV0SsQYLXFx1S3gSP6ALmmQChbLgKmuQyU6zSOGgL0CKhc4zThVATxQmFlnJf9hgAZARWPIhjs0+FFcIk7uEry6sR4MmqPU2IycMCaEJIHBXQCAs1k0gkIENQXdziC+qdK1UjSVHYb/eww+alRBcmagirApUIAwTlePVPcBj6I8/KlIYAB8Clt32uhjA2qgtPi42Wbm7SAQkABtxKss1wnQqdAAQb6dFxWb+BVmwe7pnBcr+FtvO4Nz4kvUl5WATZNwa4pWARk+3UYBWwy++nvVynUa1SrAoOA9IBKtSrI9Kv0DKh4FUGhXqNCFViFQq0i8CoCr0LoWVUF9PGrlOs0PAr08quc79VTo2psN/mxagq9AirFOo0TDbmf4gX09+nwKzCr3kihLkC5TrDH6MevQKUqGsUK6W6zFjw3CsH2rnWGr5L8V5sbm6bgU8CrCPr6dIz36DELhVyjn5FePS5F8H6cl0K9hlUoONQI/oHGk97wv00oTHTrcSqCowYNjyKoUgUqwXvFKILnoq9PJaAEn/FKVbDd5KdGJ0L3gF4Eqw5A03PbIOQQn45Z9YZWiXV3G/1sMAefw/4+lb5+Xeh9BRAwWKlOGsxLNjdG3JiEgl5AjSpwqCJ4b4tge6M9wXs0eNFaL6vxss1NtSrQE+zP5fVt53d6O97DSaOnzf0t6baeGK/XS1xcHG+99Rbf+973QtsXLFjA7t27Wb9+fVh5j8eDx9MkuMPhoE+fPvS5+01UU/hUtj8ICxOU4AmfhCNsnyrA1KBAzgTno+MZ4rkbJzuNJQjNjPBH/8XdWWzDfg6A+8RMfJVTmIyeRcThQnB50keYM94HoHb/4rDj7s7/F4GGzM2Krid/zprTZhubCPa/3l/HZQ2ZfY3J6zGlfxix7pbHran7iF9bJ0Qs0xFJgaBCzTdoIVl9jlG4j//olOpriT7hCyy9Xwcge/cfKNALHKeQYThaVBE0WvL1GtWdaKdRdn/dYFyFN3VYXieCiijPEFT4ncHY40NUQzXu4h/SMuJsseMzJiVcCrR+1iRdQ+O1b6St500i6a5onnoKn/pBbHtiysvLCQQCpKeHJ7FKT0+ntLS0VflFixbx6KOtV+WMxP8pbn6Jwlu0jmXQFHApMDorkfyKeiqdbcc7TBncg08Pl+PXBLdO6Y9Rp2LQqVQ6vfx9c35UfdlFoEm5ezt2e/9kfDY6VaHO7eetHUXEG3U4vdEvHuPMuwO99RC+yokAbMTPfJzkoeGrvgBr8j6c1YO5dFg6ozJsrNtcxLnDe6DXBhAo+BJFl0Jhi9VtG79qrhjVk1qXj807P2SkeSyb/BtBf3FQtKrx6KyH8NeeA8DNk/rx1015oTqykuPIKziITW/naWP/DuWYN6FvxHNcpRNUNbyE3aVXYkjagudEMF/Mvd8ZzOB0K5/sL8Ph9rFqX+vYkY7w155DwJVJwJXNXlPQQLNbDAzvmcCWo8FElBcP7sGJGjdj+yaxLa+Sgop6vIFTm7quKbDbFPn6zjmvF+/vKUGvKnj84fW7S67CmLwBd+nsiMe2JKDA9mbJElOtRuq9AQalWSmqcnHZOensK3awp6im1bHekzNbbbt0WBpOT4CnD/RmmOcE1d5KsLUeEuxpN5OdEofXr3F+VhJxRh27CqrxBjT2FdVg0qtUutpeJO+mif349HA5B09EyKnQBia9isevYTaouH1dt6RA70QLfZItnHB4KK524fFrKErE0JIQRp0a1b1iM+vJTIoj1WokwWJg8sBUKuu9VNf7WFMxgWrPSep9HgKe9hNQdkR2ShzHq1z4NcE9lw5Gp4KqKmQlx/HsmsMcLXfi9Z/eczg6K5EjJ530sJkornZR3wn9NrxnAl+WdA9j+dw+icw4J4NjFU4Ol9VhMqh8eriCUZl2Uq0m1hwoa/vYTDu+gIhKlub3TFKcgWqXD7vFQFZyXMTn9XTQw2biZG303hIIZhuJMuNKp+i2npji4mJ69+7N5s2bGT9+fGj7448/zquvvsqBA+EBg215YqKx5CQSiUQikXQPGmNaY9oTk5qaik6na+V1KSsra+WdATCZTJhMrbO9SiQSiUQiOTvptlOsjUYjY8aMYfXq1WHbV69ezYQJpxYvIZFIJBKJ5Oyh23piAO69917mzp3L2LFjGT9+PC+99BIFBQXk5LSfUl4ikUgkEsnZT7c2Yq699loqKip47LHHKCkpYcSIEaxcuZLs7OxvumsSiUQikUi+YbptYO/XpTOBQRKJRCKRSLoHnXl/d9uYGIlEIpFIJJL2kEaMRCKRSCSSmEQaMRKJRCKRSGISacRIJBKJRCKJSaQRI5FIJBKJJCaRRoxEIpFIJJKYRBoxEolEIpFIYhJpxEgkEolEIolJpBEjkUgkEokkJunWaQe+Do0LETscjm+4JxKJRCKRSKKl8b0dTUKBs9aIqaioAKBPnz7fcE8kEolEIpF0loqKCux2e7tlzlojJjk5GYCCgoIOT8LX5YILLmD79u1d2obD4aBPnz4UFhaekVxQZ5tMUp7OI+U5dc42eeDsk0nK03nOlDw1NTVkZWWF3uPtcdYaMaoaDPex2+1dfvPodLozlmQyISHhjLR1tskk5Tl1pDyd52yTB84+maQ8p86Zuuca3+PtlunyXnwLuOOOO77pLpx2zjaZpDzdGylP9+dsk0nKc3agiGgiZ2KQzqTyjgXONnng7JNJytO9kfJ0f842maQ8Xd/OWeuJMZlMLFy4EJPJ9E135bRwtskDZ59MUp7ujZSn+3O2ySTl6fp2zlpPjEQikUgkkrObs9YTI5FIJBKJ5OxGGjESiUQikUhiEmnESCQSiUQiiUmkESORSCQSiSQm6bZGzKJFi7jggguw2WykpaUxZ84cDh48GFZGCMEjjzxCr169sFgsTJ06lX379oWV8Xg8zJ8/n9TUVOLj47nyyispKioK7c/Pz+fmm2+mX79+WCwWBgwYwMKFC/F6vTErU8uy5513HoqisHv37piW54MPPmDcuHFYLBZSU1O56qqrYlaeQ4cOMXv2bFJTU0lISGDixImsXbu2W8rz0ksvMXXqVBISElAUherq6lZtVVVVMXfuXOx2O3a7nblz50YsFwvyxKJOiOYaNRILOiFaeWJFJ0QjT6zohMrKSubPn8+QIUOIi4sjKyuLu+66i5qamrB6zoROaOxwt2T69OliyZIlYu/evWL37t3iiiuuEFlZWaKuri5UZvHixcJms4l33nlH5ObmimuvvVb07NlTOByOUJmcnBzRu3dvsXr1arFz504xbdo0ce655wq/3y+EEOLDDz8U8+bNE6tWrRJHjhwR7733nkhLSxP33XdfzMrUnLvuukvMnDlTAGLXrl0xK8/bb78tkpKSxPPPPy8OHjwoDhw4IN56662YlWfgwIHi8ssvF1988YU4dOiQuP3220VcXJwoKSnpdvI8+eSTYtGiRWLRokUCEFVVVa3amjFjhhgxYoTYvHmz2Lx5sxgxYoSYNWvWaZPlTMoTizohmmvUSCzohGjkiSWdEI08saITcnNzxVVXXSWWL18uDh8+LD755BMxaNAgcfXVV4e1dSZ0ghBCdFsjpiVlZWUCEOvXrxdCCKFpmsjIyBCLFy8OlXG73cJut4sXXnhBCCFEdXW1MBgM4o033giVOX78uFBVVXz00UdttvWHP/xB9OvXr4skaaKrZVq5cqUYOnSo2LdvX5corDMlj8/nE7179xavvPJKl/a/JV0lz8mTJwUgNmzYECrjcDgEID7++ONuJU9z1q5dG1EBf/nllwIQW7duDW3bsmWLAMSBAwe6RhjRdfJEojvrhOZ0JFMs6ITmtCVPLOmE5rQlT6zqhEbefPNNYTQahc/nE0KcWZ3QbYeTWtLoqmpMCJWXl0dpaSmXXXZZqIzJZGLKlCls3rwZgB07duDz+cLK9OrVixEjRoTKtNVWNImnvi5dKdOJEyf46U9/yquvvkpcXFyXywJdJ8/OnTs5fvw4qqpy/vnn07NnT2bOnNnKZRsr8qSkpDBs2DD+8Y9/4HQ68fv9vPjii6SnpzNmzJhuJU80bNmyBbvdzrhx40LbLrroIux2e6fq6SxdJU9bbXVXnRAtsaIToiGWdEI0xLpOaFxZV68PpmM8kzohJowYIQT33nsvkyZNYsSIEQCUlpYCkJ6eHlY2PT09tK+0tBSj0UhSUlKbZVpy5MgRnnnmGXJyck63GGF0pUxCCObNm0dOTg5jx47tUjka6Up5jh49CsAjjzzCww8/zIoVK0hKSmLKlClUVlbGnDyKorB69Wp27dqFzWbDbDbz5JNP8tFHH5GYmNit5ImG0tJS0tLSWm1PS0vrVD2doSvlaUl31wnR1h0rOiEaYkknREMs64SKigp+85vfcOutt4a2nUmdEBNZrO+880727NnDpk2bWu1TFCXstxCi1baWtFWmuLiYGTNmcM0113DLLbd8vU53QFfK9Mwzz+BwOPjFL35x+jrcAV0pj6ZpAPzyl7/k6quvBmDJkiVkZmby1ltvhT08p4uulEcIwe23305aWhobN27EYrHwyiuvMGvWLLZv307Pnj1PnyANnG55OqrjVOuJlq6Wp5FY1gnNORt0QnPOBp3Qsnws6gSHw8EVV1zB8OHDWbhwYbt1tFfP16Hbe2Lmz5/P8uXLWbt2LZmZmaHtGRkZAK2surKyspAVmZGRgdfrpaqqqs0yjRQXFzNt2jTGjx/PSy+91BWihOhqmdasWcPWrVsxmUzo9XoGDhwIwNixY7nhhhtiTp7GB3j48OGh/SaTif79+1NQUBBz8qxZs4YVK1bwxhtvMHHiREaPHs1zzz2HxWJh6dKl3UqeaMjIyODEiROttp88ebJT9URLV8vTSKzohGiIJZ0QDbGkE6IhFnVCbW0tM2bMwGq18u9//xuDwRBWzxnTCac1wuY0ommauOOOO0SvXr3EoUOHIu7PyMgQv//970PbPB5PxCDLZcuWhcoUFxe3CoItKioSgwYNEj/84Q8jzvCJNZmOHTsmcnNzQ3+rVq0SgHj77bdFYWFhzMlTU1MjTCZTWBCf1+sVaWlp4sUXX4w5eZYvXy5UVRW1tbVh9Q8ePFg8/vjj3Uqe5nQU2Ltt27bQtq1bt572IL4zJY8QsaUTmtOWTLGkE6KRJ5Z0QjTyxJpOqKmpERdddJGYMmWKcDqdreo5UzpBiG48O+m2224TdrtdrFu3TpSUlIT+6uvrQ2UWL14s7Ha7ePfdd0Vubq647rrrIk53zczMFB9//LHYuXOnuOSSS8Kmux4/flwMHDhQXHLJJaKoqCisrViVqSV5eXldMhPhTMqzYMEC0bt3b7Fq1Spx4MABcfPNN4u0tDRRWVkZc/KcPHlSpKSkiKuuukrs3r1bHDx4UNx///3CYDCI3bt3dzt5SkpKxK5du8TLL78cmkGxa9cuUVFRESozY8YMMWrUKLFlyxaxZcsWMXLkyNM+nfJMyROLOiGaa9Sc7q4TopEnlnRCR/LEkk5wOBxi3LhxYuTIkeLw4cNh9TTX2WdCJwjRjY0YIOLfkiVLQmU0TRMLFy4UGRkZwmQyiYsvvljk5uaG1eNyucSdd94pkpOThcViEbNmzRIFBQWh/UuWLGmzrViVqSVdpbDOpDxer1fcd999Ii0tTdhsNnHppZeKvXv3xqw827dvF5dddplITk4WNptNXHTRRWLlypXdUp6FCxd2WE9FRYW4/vrrhc1mEzabTVx//fVRTV3ujvLEok6I5ho1p7vrhGjkiSWdEI08saITGr1Jkf7y8vJC5c6EThBCCKVBMIlEIpFIJJKYotsH9kokEolEIpFEQhoxEolEIpFIYhJpxEgkEolEIolJpBEjkUgkEokkJpFGjEQikUgkkphEGjESiUQikUhiEmnESCQSiUQiiUmkESORSCQSiSQmkUaMRCL5WjzyyCOcd95533Q3JBLJtxBpxEgkkjZRFKXdv3nz5nH//ffzySefdHlfnE4nDz74IP3798dsNtOjRw+mTp3KihUrQmX69u3LU0891eV9kUgk3QP9N90BiUTSfSkpKQn9v2zZMn79619z8ODB0DaLxYLVasVqtXZ5X3Jycvjss8949tlnGT58OBUVFWzevJmKiooub1sikXRPpCdGIpG0SUZGRujPbrejKEqrbS2Hk+bNm8ecOXP43e9+R3p6OomJiTz66KP4/X4eeOABkpOTyczM5G9/+1tYW8ePH+faa68lKSmJlJQUZs+eTX5+fmj/+++/z0MPPcTll19O3759GTNmDPPnz+eGG24AYOrUqRw7dox77rkn5CkCqKio4LrrriMzM5O4uDhGjhzJ66+/Htb21KlTmT9/PnfffTdJSUmkp6fz0ksv4XQ6ufHGG7HZbAwYMIAPP/wwdMy6detQFIUPPviAc889F7PZzLhx48jNzT3NV0EikbSFNGIkEslpZ82aNRQXF7Nhwwb+9Kc/8cgjjzBr1iySkpLYtm0bOTk55OTkUFhYCEB9fT3Tpk3DarWyYcMGNm3ahNVqZcaMGXi9XiBoUK1cuZLa2tqIbb777rtkZmby2GOPUVJSEvIiud1uxowZw4oVK9i7dy8/+9nPmDt3Ltu2bQs7funSpaSmpvLZZ58xf/58brvtNq655homTJjAzp07mT59OnPnzqW+vj7suAceeIAnnniC7du3k5aWxpVXXonP5zvdp1QikUTitOfFlkgkZyVLliwRdru91faFCxeKc889N/T7hhtuENnZ2SIQCIS2DRkyREyePDn02+/3i/j4ePH6668LIYT461//KoYMGSI0TQuV8Xg8wmKxiFWrVgkhhFi/fr3IzMwUBoNBjB07Vtx9991i06ZNYX3Jzs4WTz75ZIeyXH755eK+++4L/Z4yZYqYNGlSq/7NnTs3tK2kpEQAYsuWLUIIIdauXSsA8cYbb4TKVFRUCIvFIpYtW9ZhHyQSyddHemIkEslp55xzzkFVm9RLeno6I0eODP3W6XSkpKRQVlYGwI4dOzh8+DA2my0UY5OcnIzb7ebIkSMAXHzxxRw9epRPPvmEq6++mn379jF58mR+85vftNuXQCDA448/zqhRo0hJScFqtfLf//6XgoKCsHKjRo1q1b/mfU5PTwcI9bmR8ePHh/5PTk5myJAh7N+/P6rzJJFIvh4ysFcikZx2DAZD2G9FUSJu0zQNAE3TGDNmDK+99lqrunr06BFW7+TJk5k8eTI///nP+e1vf8tjjz3Ggw8+iNFojNiXP/7xjzz55JM89dRTjBw5kvj4eO6+++7QMFW0fW6MsWnsc3s0lpVIJF2LNGIkEsk3zujRo1m2bBlpaWkkJCREfdzw4cPx+/243W6MRiNGo5FAIBBWZuPGjcyePZsf//jHQNAI+eqrrxg2bNhp6fvWrVvJysoCoKqqikOHDjF06NDTUrdEImkfOZwkkUi+ca6//npSU1OZPXs2GzduJC8vj/Xr17NgwQKKioqA4AyiF198kR07dpCfn8/KlSt56KGHmDZtWsjw6du3Lxs2bOD48eOUl5cDMHDgQFavXs3mzZvZv38/t956K6Wlpaet74899hiffPIJe/fuZd68eaSmpjJnzpzTVr9EImkbacRIJJJvnLi4ODZs2EBWVhZXXXUVw4YN46abbsLlcoUMlOnTp7N06VIuu+wyhg0bxvz585k+fTpvvvlmqJ7HHnuM/Px8BgwYEBqG+tWvfsXo0aOZPn06U6dOJSMj47QaGYsXL2bBggWMGTOGkpISli9f3ubQlkQiOb0oQgjxTXdCIpFIYo1169Yxbdo0qqqqSExM/Ka7I5F8K5GeGIlEIpFIJDGJNGIkEolEIpHEJHI4SSKRSCQSSUwiPTESiUQikUhiEmnESCQSiUQiiUmkESORSCQSiSQmkUaMRCKRSCSSmEQaMRKJRCKRSGISacRIJBKJRCKJSaQRI5FIJBKJJCaRRoxEIpFIJJKY5P8BSeNoX85KO9sAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sample_hour_load.plot(legend=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "sample_hour_load.to_csv('/media/by276/Bo_SSD/offshore_wind/Data/Demand/demand_base_bus.csv')" ] } ], diff --git a/nygrid/preprocessing.py b/nygrid/preprocessing.py index 7224cb9..113f5c7 100755 --- a/nygrid/preprocessing.py +++ b/nygrid/preprocessing.py @@ -6,10 +6,26 @@ """ import os +import numpy as np import pandas as pd from typing import List, Tuple, Optional +ZONE_NAME2ID = { + 'WEST': 'A', + 'GENESEE': 'B', + 'CENTRAL': 'C', + 'NORTH': 'D', + 'MOHAWK VALLEY': 'E', + 'CAPITAL': 'F', + 'HUDSON VALLEY': 'G', + 'MILLWOOD': 'H', + 'DUNWOODIE': 'I', + 'NYC': 'J', + 'L ISLAND': 'K' +} + + def agg_demand_county2bus(demand_inc_county: pd.DataFrame, county2bus: pd.DataFrame ) -> pd.DataFrame: @@ -141,3 +157,70 @@ def get_building_load_change_county(county_id: str, df_county_saving = df_county_saving.rename(columns=col_rename) return df_county_base, df_county_future, df_county_saving + + +def add_load_weighted(hourly_load_zonal: pd.DataFrame, + bus_info: pd.DataFrame, + ) -> pd.DataFrame: + + """ + Distribute zonal load to individual buses based on load distribution ratio. + + Parameters + ---------- + hourly_load_zonal : pd.DataFrame + Zonal load timeseries + bus_info : pd.DataFrame + Bus information + + Returns + ------- + bus_wload : pd.DataFrame + Bus-level load timeseries + """ + + # Subset of bus in NY control area + nys_bus = bus_info[~bus_info['zone'].isnull()] + # Subset of bus with load + nys_bus_wload = nys_bus[nys_bus['sumLoadP0'] > 0] + + # Load bus and ratio calculation + zone_ids = nys_bus['zone'].unique() + load_bus_zone = np.empty(11, dtype=object) + load_ratio_zone = np.empty(11, dtype=object) + num_load_bus_zone = np.zeros(11, dtype=int) + + # Calculate zonal load distribution ratio + for i, zone_id in enumerate(zone_ids): + load_bus_table = nys_bus_wload[nys_bus_wload['zone'] == zone_id] + load_bus_zone[i] = load_bus_table['idx'].values + if load_bus_table.shape[0] > 0: + load_ratio_zone[i] = (load_bus_table['sumLoadP0'] / + load_bus_table['sumLoadP0'].sum()).values + else: + load_bus_zone[i] = nys_bus[nys_bus['zone'] == zone_id]['idx'].values + load_ratio_zone[i] = np.ones( + len(load_bus_zone[i])) / len(load_bus_zone[i]) + num_load_bus_zone[i] = len(load_bus_zone[i]) + + num_load_bus_tot = sum(num_load_bus_zone) + + # Distribute zonal load to individual buses + num_hours = hourly_load_zonal.shape[0] + zone_load_bus = np.empty(len(zone_ids), dtype=object) + load_bus_idx = np.zeros(num_load_bus_tot) + load_bus_load = np.zeros((num_load_bus_tot, num_hours)) + n = 0 + for i, zone_id in enumerate(zone_ids): + zone_load_tot = hourly_load_zonal[zone_id].values + zone_load_bus[i] = np.outer(load_ratio_zone[i], zone_load_tot) + load_bus_idx[n:n+num_load_bus_zone[i]] = load_bus_zone[i] + load_bus_load[n:n+num_load_bus_zone[i], :] = zone_load_bus[i] + n += num_load_bus_zone[i] + + bus_wload = pd.DataFrame(load_bus_load.T, columns=load_bus_idx, + index=hourly_load_zonal.index) + bus_wload = bus_wload.sort_index(axis=1) + bus_wload.columns = bus_wload.columns.astype(int) + + return bus_wload \ No newline at end of file From f76bad40a3fb581aea4ea41e4675a4fc7e5db234 Mon Sep 17 00:00:00 2001 From: Bo Yuan Date: Thu, 12 Dec 2024 14:31:11 -0500 Subject: [PATCH 2/2] fix: update README formatting for consistency --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 545b7a9..c5aadb2 100755 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/boyuan276/NYgrid-python/blob/main/LICENSE) ![Python](https://img.shields.io/badge/python-3.8-blue.svg) ![Python](https://img.shields.io/badge/python-3.9-blue.svg) -[![Python package](https://github.com/boyuan276/solar-farm-design/actions/workflows/python-package.yml/badge.svg)](https://github.com/boyuan276/NYgrid-python/actions/workflows/python-package.yml) +[![Python package](https://github.com/boyuan276/NYgrid-python/actions/workflows/python-package.yml/badge.svg)](https://github.com/boyuan276/NYgrid-python/actions/workflows/python-package.yml) [![CodeQL](https://github.com/boyuan276/NYgrid-python/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/boyuan276/NYgrid-python/actions/workflows/github-code-scanning/codeql) A python version of the NYgrid model.