{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "bc83fe61",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Area</th>\n",
       "      <th>Room</th>\n",
       "      <th>Parking</th>\n",
       "      <th>Warehouse</th>\n",
       "      <th>Elevator</th>\n",
       "      <th>Price</th>\n",
       "      <th>Price(USD)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>63.0</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>1.850000e+09</td>\n",
       "      <td>61666.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>60.0</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>1.850000e+09</td>\n",
       "      <td>61666.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>79.0</td>\n",
       "      <td>2</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>5.500000e+08</td>\n",
       "      <td>18333.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>95.0</td>\n",
       "      <td>2</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>9.025000e+08</td>\n",
       "      <td>30083.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>123.0</td>\n",
       "      <td>2</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>7.000000e+09</td>\n",
       "      <td>233333.33</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Area  Room  Parking  Warehouse  Elevator         Price  Price(USD)\n",
       "0   63.0     1     True       True      True  1.850000e+09    61666.67\n",
       "1   60.0     1     True       True      True  1.850000e+09    61666.67\n",
       "2   79.0     2     True       True      True  5.500000e+08    18333.33\n",
       "3   95.0     2     True       True      True  9.025000e+08    30083.33\n",
       "4  123.0     2     True       True      True  7.000000e+09   233333.33"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "\n",
    "df = pd.read_csv('housePrice.csv')\n",
    "\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "91965f44",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.DataFrame'>\n",
      "RangeIndex: 3242 entries, 0 to 3241\n",
      "Data columns (total 7 columns):\n",
      " #   Column      Non-Null Count  Dtype  \n",
      "---  ------      --------------  -----  \n",
      " 0   Area        3242 non-null   float64\n",
      " 1   Room        3242 non-null   int64  \n",
      " 2   Parking     3242 non-null   bool   \n",
      " 3   Warehouse   3242 non-null   bool   \n",
      " 4   Elevator    3242 non-null   bool   \n",
      " 5   Price       3242 non-null   float64\n",
      " 6   Price(USD)  3242 non-null   float64\n",
      "dtypes: bool(3), float64(3), int64(1)\n",
      "memory usage: 110.9 KB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a320f648",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(3242, 7)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape\n",
    "# n * n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "63a47ed2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Area          0\n",
       "Room          0\n",
       "Parking       0\n",
       "Warehouse     0\n",
       "Elevator      0\n",
       "Price         0\n",
       "Price(USD)    0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.isna().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "c5b68981",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnkAAAKZCAYAAADETT0jAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAnDNJREFUeJzs3QdUFNfbBvAHkN4FBcVesffeFUs09hp7jxqNLTHqP4kx9h6NRo09ibGX2HuJvYuNpigISBUVQTrfuZcPZGUhguDurM8vZ052ys4O193Zd9/b9JKSkpJARERERDpFX9MXQEREREQ5j0EeERERkQ5ikEdERESkgxjkEREREekgBnlEREREOohBHhEREZEOYpBHREREpIMY5BERERHpIAZ5RERERDqIQR4RERGRDmKQR0RERJSL/v33X7Rv3x4FCxaEnp4e9u7d+5/POXPmDKpXrw5jY2OUKlUKGzduzPLrMsgjIiIiykWRkZGoUqUKVqxY8V7HP378GO3atUOzZs1w+/ZtjBs3DkOHDsXRo0ez9Lp6SUlJSdm8ZiIiIiLKApHJ27NnDzp16pThMd999x0OHjyIe/fupW7r1asXXrx4gSNHjrz3azGTR0RERJRFMTExePXqlcoituWES5cuwcXFRWVb69at5fasyAMtkRRUT9OXoLX++qeRpi9BK835O2c+TLrILTBY05egveKiNH0FWmvvjJKavgRSoI69F3+SscOcla0xffp0lW3Tpk3DTz/99MHnDgwMhIODg8o2sS4CyTdv3sDU1FRZQR4RERGRUkyZMgUTJkxQ2SY6SWgTBnlEREREWSQCutwK6hwdHREUFKSyTaxbWVm9dxZPYJBHREREypSYCF1Ur149HDp0SGXb8ePH5fasYMcLIiIiolz0+vVrORSKWFKGSBGPfX19U6t++/fvn3r8iBEj4O3tjUmTJsHd3R2//fYbtm/fjvHjx2fpdZnJIyIiImVSyChw169fl2PepUhpyzdgwAA5yPGzZ89SAz6hePHicggVEdQtXboUhQoVwtq1a2UP26xgkEdERESUi5o2bYrMhiVWN5uFeM6tW7c+6HUZ5BEREZEyKSSTpylsk0dERESkgxjkEREREekgVtcSERGRImmytlYP2o+ZPCIiIiIdxEweERERKVJSEnNVmWHpEBEREekgBnlEREREOojVtURERKRI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j4iIiEgHsbqWiIiIFInVtZljJo+IiIhIBzGTR0RERIqUlKTpK9BuzOQRERER6SAGeUREREQ6iNW1REREpEhJ0NP0JWg1ZvKIiIiIdBAzeURERKRIHEIlc8zkEREREekgZvKIiIhIkZjJyxwzeUREREQ6iEEeERERkQ5idS0REREpEqtrFRLk/fVPI01fgtbq2/Gcpi9BK204UFPTl6C13F45avoStFZxs0RNX4LWcn9irOlLIAXqqOkLIO0P8oiIiIiyIpFz12aKbfKIiIiIdBCDPCIiIiIdxOpaIiIiUiR2vMgcM3lEREREOoiZPCIiIlIkZvIyx0weERERkQ5ikEdERESkg1hdS0RERIrE6trMMZNHREREpIOYySMiIiJFSuKMF5liJo+IiIhIBzGTR0RERIqUBD1NX4JWYyaPiIiISAcxyCMiIiLSQayuJSIiIkXiECqZYyaPiIiISAcxk0dERESKxExe5pjJIyIiItJBDPKIiIiIdBCra4mIiEiROONF5pjJIyIiItJBzOQRERGRIrHjReaYySMiIiLSQczkERERkSKxTV7mmMkjIiIi0kEM8oiIiIh0ULara6Ojo3Hnzh0EBwcjMTFRZV+HDh1y4tqIiIiIMsSOF7kQ5B05cgT9+/dHaGhoun16enpISEjIzmmJiIiISJPVtWPGjEH37t3x7NkzmcVLuzDAIyIioo+VydPUorNBXlBQECZMmAAHB4ecvyIiIiIi0kyQ161bN5w5c+bDX52IiIiItKdN3vLly2V17blz51CpUiUYGhqq7P/6669z6vqIiIiI1FLt9kk5EuRt2bIFx44dg4mJiczoic4WKcRjBnlERERECgzy/ve//2H69OmYPHky9PU51B4RERF9fErpAKEp2YrQYmNj0bNnTwZ4RERERLoU5A0YMADbtm3L+ashIiIi0sEhVFasWIFixYrJpm516tTB1atXMz3+l19+QdmyZWFqaorChQtj/PjxciKKXK+uFWPhzZ8/H0ePHkXlypXTdbxYvHhxdk5LREREpHO2bdsmh55btWqVDPBEANe6dWt4eHggf/786Y7/+++/ZZO49evXo379+vD09MTAgQNlv4esxFjZCvLu3r2LatWqycf37t1T2Ze2E4a2KFO+HipUaQJTU0uEP3+Gqxf+QVjI0wyPNzQyQbVabVC4eEUYG5shMiIc1y7tR8BTd7m/8xeTYWGZN93zPO5fxNULe6Frrt2Ow7qt0bjvEY+QsCQsn2UBl0ZG0GUd2zZCz84tkNfWCo8e++PX33fC3ctH7bHtWtVHy2a1UbxoAbnu+fAp1v25X+V4ExMjDB/QEQ3qVIKVpTmeBYVhz4Gz2H/kApRmVI8G+LZ/czjaWcLVMwBj5u/Gtfu+ao8tX8IRP49sgxrlCqNYwbwYt3APlv79r8oxI7rVx8juDVCsQPJn6r53IH7+/SiOXEz+vClJvy4NMeyL5siX1wpuj/zx05JduOOmvmxKF3fE+CFtUbFsIRQqYIcZS3djw46zKsfo6+th7ODP0KlVTeSzs0RQ6CvsOnQFyzcdg9JUq1EXdeo0hrmFBYKDAnHi2D48e+an9tiKlaqjXfvuKtvi4+OwaP6PqevfTZ2j9rmnTx7C1SvnoCQsG923ePFiDBs2DIMGDZLrItg7ePCgDOJEMPeuixcvokGDBujdu7dcFxnAL774AleuXMnS62YryDt9+jSUomiJKqhZrz2unNuN0GBflKvUCC3aDsG+bQsQHR2Z7nh9fQO4tB2G6OjX+Pf4n4iKfAVzS1vExbxJPebQnl9VglmbvI5o2W44fLzvQBe9iU6Cc0kDdG1rjDHfv4aua9qwOkYO6YxfftsGN08fdO3QFPOmj8KAkTPw4mX6v79KxVI49e8N3Hf3RmxsPL7o6oL500dh8OjZCH3+Uh4zakgXVKtcBrMX/4HA4OeoWc0Z40b0QNjzl7h4VfWHkjbr0aoqFk/ohBGzd+DKXR+M69MER1d8ibKd5yAkPH3ZmJkYwts/DDuOu2LJxE5qz+kX/BKTlx2Al2+I/FwNaF8L/ywZgmpfLMID70AoRbvm1TB1dGf8sHA7bj94gkE9mmLT4pFw+WIWwl6kLxtTYyP4BoTi0Olb+H5MZ7XnHNHHBX06NcC3szbD83EgKjsXxrypvRERGY1NO1WDZW3mXK4Smrdoh2NH9iIg4Clq1mqAHr0GY83qRYiKSn8fFmKio+X+FEnv7F++dJbKeomSZfFZuy7w8FDO50lg2XyYpHffGFooNjYWN27cwJQpU1K3iU6rLi4uuHTpktrniOzdX3/9Jat0a9euDW9vbxw6dAj9+vXL0mt/cNdYPz8/uWir8pUbwcv9Ch55XsfLF8G4fG43EuLjULJsLbXHi+3GJmY4c3QTQoJ8EPk6HMHPvGUGMEVMdCSi37xOXQoVKYdXL0MR9MwbuqhxXSOMG2aGlo11O3uXonvHZjh07BKOnLwCn6eBWPLbNsTExOIzl3pqjxeB277D52TG76l/EBYu/xt6+nqoVqVs6jEVnIvj6KkrcL33EEHBz3Hw6EV5vHPpolCSCX2aYs2eS9i47yrcHgdhxKwdiIqOxeCOddQef/3BU0z6ZT+2HbuFmLh4tccc+Pc+Dl9ww8OnoTLQ+37FIbyOikHdSsoqmyG9mmLb/ovYeegKHj4JwvcLtuNNdCy6f15X7fF33H0x97d9OHDyFmIzKJvqFYvjxPl7OH3pAfwDn+PwGVecv+qBKuWUVTa1ajeC6+1ruHvnBsJCg3H08F7ExceiUpWaGT4nCUmIjHydukRFqgbKafeJpVTpcvDx8cbLF+FQEpaNcsXExODVq1cqi9j2rtDQUNnM7d1ZwsR6YKD6H7Iig/fzzz+jYcOGsklcyZIl0bRpU0ydOjX3gzwxR614cWtraxQtWlQuNjY2mDFjhtynLURWLq+9EwL9HqbZmoRn/l7I56D+Jlm4aHkZ3NVp2Bnd+v6A9t0moGLVZhlWQ4vXKF66Oh55XMulv4I+pjx5DFCmVGHcuO2Rui0pKQk3XD1Q3rnYe53D2NgIeQwMEBHxNkNx3/0x6teuBPu81nK9aqXSKFQwP67fVk6VpGEeA9QoVwgnrniqlM2JK16oVzlngg5RPdmzVTWYmxrj0p0nUFLZVCxTGBeuq5aNWK9W4f3eN+rcvPcY9WuURvHC+eS6c6mCqFm5BM5efgClEPdIxwIF4fNE9T785PEjODkVyfB5RkZGGPHVJIwc/R26dOsHe/v07ZZSmJlboGQpZ9y5fR1KwrJRdseLOXPmyDgo7SK25QQxBvHs2bPx22+/4ebNm9i9e7es3hVx1kcZJ2/dunWYO3eurDMWzp8/j59++kn2/Jg1SzWN/i4R6b4b7cbFxcPQMFuXkyFjE3P5IXrzJkJlu8i+Wduov2FYWOWFo0VJPH54C6eOrIellT3qNOwkz3Pn5ol0xxcuVgFGRiZ45HkjR6+dNMPayhwGBgYIf/FKZXv4iwgUcXq/uZpF2ztRDSsCwxS/rt6JCaN7YfvGmYiPT0BiUiIWLd+KO/cfQSnsbcxlEBz0XPXzJNadi2X8Bfw+KpYqgEsbx8LEKA9ev4lF54nrZaZQKWytk8sm9J2yEesli2a/bFb+dQIW5iY4vnkqEhKTYKCvh0W/H8Q/x5VzvzEzM5P3T5FtSysqMgJ2dsnB67uePw/FoQO7EBIcCGMTE9Su0wh9+4/EujVLEBGh+tlMacMXGxsDT4/7UBKWjbJNmTJFdqZIy9jYON1x9vb28nslKEj1nibWHR0d1Z77hx9+kFWzQ4cOletidrHIyEgMHz5cxmDvO0ZxtqKqTZs2Ye3atejQoUPqNtHL1snJCaNGjfrPIE9EumIw5bQ6fV4fXdonB4yapAc92R7v8rld8pf481B/mJlboXyVJmqDvFJlayHgqQfeRKW/8dCn54uuLdGsUXVM+N8y+cMlRefPG6N8mWL434zVCAp5jsoVSmHsl91lMHgzTTD4qfJ4EoyqXyyEtYUJurWogk0/90aTocsVFejlhnbNq6JDyxoYN/0PeD0ORLnSTvjh6y4ICn2J3Ud0t/YgwN9XLin8/XwwdPgEVK1WB+f+PZ7u+MpVauDB/dtISFBf7a1LWDbaw9jYWG1Qpy4rXaNGDZw8eRKdOiW3TRa1nmJ99OjRap8TFRWVLpATgaIgYpNcra59/vw5nJ2d020X28S+94l+X758qbK0b6O+Tc+HEG3nEhMTZK/atExMLfAmSvUXdwqx/dWLUJVCFG35zMys5K/RtMwtbODoVBpe7pmPdUPK8fJVpGw7YWtjpbLd1sYSz9/J7r2rR6fmstPFpGkr4P0kIHW7kZEhhvRrj9/W78Gla/fkvr0H/8Xp8zfRo3NzKEXoi0iZhXTIq/p5EuuBYR/2IycuPgGPnobippsfpi4/KHvtju3dGEoR/jK5bOzfKRuxHhKm/l7zPiaP6ojVm0/Idnse3s+w9+h1rN9+BiP7tYRSiC8rcR82N7dQ2W5mbonIyPcrG/GFGBQUABtbu3T7ChUuBju7/LLNn9KwbD6c+KrW1JIVIuO3Zs0amSRzc3PDyJEjZWYupbdt//79VTpmtG/fHitXrsTWrVvx+PFjHD9+XGb3xPaUYC/XgrwqVapg+fLl6baLbWLffxGRr5WVlcqS01W1grixiEyco1OpNFv14FiwlGx3p05w0BNYWosbyds2eFbW9rKXrTjfu500RNbP31c57aooc+KLWgyBUr1KmdRtoj1m9cpl8MA94zZiPbu0QN+ebfDd9JXy+WmJ9nni/Z2UmJTui0tfC4ccyiwQu+Hmhxa1VcumRe3SuHRH/efpQ9rmGefCPSE3y+ae51PUr6FaNmL91v3sty00NTFC4rvvm4REWT5KIe6bgc8CULRYyTRb9VCsWEn4p8nWZUaUZb78Doh8nT4orFylphyKRVTtKg3L5tPRs2dPLFy4ED/++COqVq2K27dv48iRI6mdMXx9ffHs2dsOnt9//z0mTpwo/1++fHkMGTJEjqu3evXqLL1utu6iYiDkdu3a4cSJE6hXL7nHoegG/PTpU9nFV5s8uHMODZr2QFiIH0JDnqJcpYbIY2gke9sK9Zv2xJvIl7h17Yhc93xwCWUr1Eet+h3gfv8CrKzsUbFqc/lYlR5KlqkJb88bSErSns4muSEyKgm+/m8DXL9niXDzioe1lR4KOrz/Lwql2PHPaUwe1xceD33h/v9DqJiYGOPIycty/+Rx/RD6/AXW/rFfrvfq4oKBfdpi1sJNCAwKk1k/4U10DKKjYxH1Jhq373rhy0EdERMbi6CQcFSpUAqtmtXGyvV7oCSLN5/Bpum9Za/Zq/d9MK53E5ibGmHDvuSxm0Q1q3/wS5mNS+mQUL5E8k3MyNAATvmtUaVMQdnuTmTuhNmj2+HwRTf4PguHpbkJerepjqY1SqL1V1m7mWnauq1nsPB/fXDX3Reubr4Y1KMJzEyNsPNgctks/L4PgkJeYsHqA6llU6pYcnsc8SPAIZ81ypVyQtSbGPj4J5fNyQv3MKp/KwQEhcshVCqUKYTBPZth56Hk96JSXLt6To57F/jMH8/EECq1G8DQ0Ej2thXEPtHW7t8zR+V6/YbNEeD/FOHhoTAxNkXtuo1hZWULV1fVbJ2RkTHKOlfC6ZPJ7zclYtl8OnPXjh49OsPqWdHRIq08efJg2rRpcvkQ2QrymjRpIkdfFlN0uLsnZ7G6dOki2+MVLFgQ2sTH2xUmpuaoUrMVTM0sER4WgFOH1snOFylVrmnzrlGRL3Hy0Fo5tl77ruMRFfUK7vfO476r6j9AAadSsLC0xcNPoFftPY94DBj79hf03OVR8v+d2hhh7lTVKhhdcOb8TdhYW2BQ73awtbXEI29/fPfTb7LzhZA/ny0S07xnOnzWEEaGhpg+JbmBbIpNWw5h05bD8vGMBRswrH8H/G/iAFhamMlAb91fB7Dv8HkoyfZjt5HP1kIOcOxoZ4XbHv5oM3o1gp8nf56KONqqZJ4K5rPC7a3fpq6LQZTFcub6QzQbvkJuy5/XAn/83AcF7K3w8vUb3PF6JgO8tL14leDgqVvIa2OB8UPbwl4MhvzQDwMnrkJoePL7pqCDatnkt7fGwY2TUteH924hl8u3vNB7THJNyfQluzBhWFv8PLE77Gwt5GDIW/ZdwK8bkoMhpXB3uwszMws0bOwCc3NLBAc9w/ZtG1KHRbGyslFpImNiYoo2bTvLY6Oj3yAo0B9//bFSDr+SVrnylSGS4Q8euEKpWDaUm/SSstKCLxf9+fvbmx2p6ttRWaO3fywthmU8xtan7rSfcqo6P7biZrqdef8QX7Y10/QlkAJlNPvIx3DuwCiNvXajz3+Dtsv2N8GLFy/kMCqiAaFQoUIFDB48WI4TQ0RERESala2OF9evX5ejLy9ZskT2phWLmJdNbBOD9hERERGRAjN548ePl2Pkie7AonGgEB8fLwftGzduHP79VzlzKhIREZEyKanjhWKCPJHJSxvgyRPlyYNJkyahZk22kyIiIiJSZHWtGNdOjOnyLjGEiqWl6mCgRERERJ/yYMiKCvLEoH5iYL5t27bJwE4sYlRmsa1Xr145f5VERERElPvVtWLUZjECuZiGQ7TFE6OwiLnZ3mfeWiIiIiLS0kyeCOiWLl2K8PBwOTWHq6ur7GHr5OSE4sWL5/xVEhEREanpeKGpReeCvJiYGDmBruhc0aBBAxw7dgyVKlWSHTFKly4tAz/R85aIiIiIFFRdKybWFZPjuri44OLFi+jevTsGDRqEy5cvY9GiRXLdwED35jIlIiIi7aOUDhCKCPJ27NiBP/74Q46Rd+/ePVSuXFm2yRPVtaKNHhEREREpMMjz8/NDjRo15OOKFSvC2NhYVs8ywCMiIqKPTSlt4xTRJi8hIUF2ukg7ALKFhUVuXBcRERERfaxMnhgqZeDAgTKDJ0RHR2PEiBEwNzdXOW737t0fck1ERERE9DGDvAEDBqis9+3b90Nfn4iIiChb2O8iB4O8DRs2ZOVwIiIiIlLSjBdEREREmsaOF7kw4wURERERaTcGeUREREQ6iNW1REREpEic8SJzzOQRERER6SBm8oiIiEiRmMnLHDN5RERERDqImTwiIiJSJA6hkjlm8oiIiIh0EIM8IiIiIh3E6loiIiJSJHa8yBwzeUREREQ6iJk8IiIiUqQk6Gn6ErQaM3lEREREOohBHhEREZEOYnUtERERKRI7XmSOmTwiIiIiHcRMHhERESkSM3mZYyaPiIiISAcxyCMiIiLSQayuJSIiIkVKSuI4eZlhJo+IiIhIB2lNJm/O3zGavgStteFATU1fglY6uea6pi9Ba42YXlfTl6DF+Ns2I+uPRH3UfwnSDd9N1dxrJyZp7rWVgHc7IiIiIh2kNZk8IiIioqzg3LWZYyaPiIiISAcxyCMiIiLSQayuJSIiIkXijBeZYyaPiIiISAcxk0dERESKxExe5pjJIyIiItJBDPKIiIiIdBCra4mIiEiROHdt5pjJIyIiItJBzOQRERGRIrHjReaYySMiIiLSQczkERERkSIxk5c5ZvKIiIiIdBCDPCIiIiIdxOpaIiIiUqQk6Gn6ErQaM3lEREREOoiZPCIiIlIkdrzIHDN5RERERDqIQR4RERGRDspWde2yZcvUbtfT04OJiQlKlSqFxo0bw8DA4EOvj4iIiEgtVtfmQpC3ZMkShISEICoqCra2tnJbeHg4zMzMYGFhgeDgYJQoUQKnT59G4cKFs/MSRERERPSxq2tnz56NWrVqwcvLC2FhYXLx9PREnTp1sHTpUvj6+sLR0RHjx4//kGsjIiIiyjSTp6lFZzN533//PXbt2oWSJUumbhNVtAsXLkTXrl3h7e2N+fPny8dEREREpJAg79mzZ4iPj0+3XWwLDAyUjwsWLIiIiIgPv0IiIiIiNZKSOBhyjlfXNmvWDF9++SVu3bqVuk08HjlyJJo3by7X7969i+LFi2fn9ERERESkiSBv3bp1yJs3L2rUqAFjY2O51KxZU24T+wTRAWPRokUfen1ERERE9LGqa0WniuPHj8Pd3V12uBDKli0rl7TZPiIiIqLcopD+D8qc1szZ2VkuRERERKQDQV5CQgI2btyIkydPyjHxEhMTVfafOnUqp66PiIiISC2lDGWiqCBv7NixMshr164dKlasKGe6ICIiIiKFB3lbt27F9u3b0bZt25y/IiIiIiLSTJBnZGQkBz8mIiIi0hRW1+bCECoTJ06U05clsXSJiIiIdCeTd/78eZw+fRqHDx9GhQoVYGhoqLJ/9+7dOXV9RERERGpxxotcCPJsbGzQuXPn7DyViIiIiLQ1yNuwYUPOXwkRERFRFnAElVwcDFmpvujUEIN7NYd9Xit4PPTHrGW7cNfdV+2x3drVQ8fWtVCqeAG5/sDzKX5ZcyDD45WmY9tG6Nm5BfLaWuHRY3/8+vtOuHv5qD22Xav6aNmsNooXTS4Lz4dPse7P/SrHm5gYYfiAjmhQpxKsLM3xLCgMew6cxf4jF6CLrt2Ow7qt0bjvEY+QsCQsn2UBl0ZG0GVNGzdAy5bNYW1lCT+/AGzdvhtPfP7781CzRjUMG9Ift13vYuXq9anbP2/XGrVqVIOtrQ3iExLg6+uHvfsO4skT5X3GWDYZ6925IYb0ao58ea3g/sgfM5buwl039f/GpYo54ushbVGhTCEUKmCH2b/uxqYdZ1WOMTc1xtihbeHSqDLsbC3wwMsfs5ftVuS9mWVDGu94Ub16dYSHh8vH1apVk+sZLdqsTbNq+G5UZ/y28Si6DVsA90cB+H3BSOS1sVB7fO2qpXDw5E0MGr8cvb9agsDgF1izcCTy21tD6Zo2rI6RQzrjj62H8eX4+Xj0xB/zpo+CjbX6sqhSsRRO/XsDE/63DKO/XYyQ0HDMnz4K9nnflsWoIV1Qq3o5zF78BwZ+NQu79p/B1192R/3aFaGL3kQnwbmkAX4cb45PQc0aVdGtayccPHgUs+Ysgp9/AL4e8yUsLdS/Z1LY5bVFty4d4OX1KN2+oKAQbNm2Gz/PXIAFi35FWNhzjBszAhYWyipTlk3GPmteDVO+6owVG4+i89AFcH8YgHULM77vmpoYwS8gFItW70dw2Eu1x8z8rhfq1yyLSbP+QvuB83Dhmjs2LB6luHszy4a0Isjr2LEjjI2NUx9ntmizgd2bYsfBi9hz5Aoe+QRh+uLtiI6ORZe2ddUeP2nWn9j6z3m4P/THY99g/LBgC/T19FG3ehkoXfeOzXDo2CUcOXkFPk8DseS3bYiJicVnLvXUHi8Ct32Hz8mM31P/ICxc/jf09PVQrcrbOYsrOBfH0VNX4HrvIYKCn+Pg0YvyeOfSRaGLGtc1wrhhZmjZWLezdylcmjfF+QuXcPHyVTwLDMLmLTsQGxuL+vXrZPgcMVj64EH9sP/gEYSEhqXbf+36Tbh7eCI0LAzPngVix669MDU1RSGnglASlk3GBvVoiu0HLmL34eT77rRFyffdru3U33dFNm7+yn04dOoWYmPj0+03NjJEq8ZVsGDlPlx3fQRf/1As33AEPv6h6N2pAZSEZfNhxCAfmlp0qrp22rRpqY9/+umnDI/T5mFVDPMYoHzZwljz9wmV6710wxNVyxd7r3OYGBshTx59vIyIgpLlyWOAMqUK4++dx1XK4oarB8o7v19ZGIuyMDBARERk6rb77o9Rv3YlHDl+GaHPX6JqpdIoVDA/flvHHtdKZ2BggCJFCuHwMdXPj7u7F0oUzziI/7xta0RERODCxSsoVbLEf75Go4b1EBX1Bk/9AqAULJvM77sVyhTG6r9U3zcXb3iiWoX3u9e8K4+BvryHxbwTAMbExKF6pczfY9qEZUNa2SZvwYIF+Pbbb9XOadu3b19s2bIl0+fHxMTIJa3ExHjo6+duE0Eba3MZlIQ+j1DZHhYegRJF8r/XOSZ+2QHBoa9w6YYHlMzaylx+MYW/eKWyPfxFBIo4ObzXOUTbu7DnL2VgmOLX1TsxYXQvbN84E/HxCUhMSsSi5Vtx5376ajpSFlF9Kt4zEa9UPz+vIiLg6KD+81OyZHE0qF8HM2YvzPTclSqWx9DB/WFkZIiXr17hl19XIjLy7Y8HbceyyZituO/mMZD32bTCnr//ffddkW9icPPeY4wa0ArePoEIDY/A5y1qoGqFYvD1D4FSsGw+nBbnlZQ7GLII8tatW5cuwOvVqxdu3779n8+fM2cOrK2tVZYw3+vQdkN7u6Bt82r4+od1aqsQPiVfdG2JZo2q48c5axEX97YsOn/eGOXLFMP/ZqzGiAnzsWr9Xoz9sjuqp6nSpU+DaN4xeEAf/Ll5238GbB6eDzFzzkLMX7gM9x+4Y/iQAf/Zzk/JWDYfbtLMP2VTgHN7ZuDuiUXo162xbD+dyG99lg2lylbq7ODBg2jVqpUMzrp164b4+Hj06NED7u7ucpDk/zJlyhRMmDBBZVvtz6cgt714GSl779nntVTZbmdrmS67965BPZthaO8WGDLxN3h6K6caKSMvX0XKwNzWxkplu62NJZ6/k917V49OzfFFVxd88+NyeD95WxYiCzOkX3sZ+F25fl9uE/tLFndCj87NcTNNxo+U5/Xr5PeMpZXq58fK0lJm396VL58d7O3t8NXIoanbxJey8NuvC/Hj9DkI/f82eqJdX0hIqFweP/HBzz9NRYMGdXDk6EkoAcsmY+HivhufIO+zadnl/e/7bmaeBoSh39e/yk4aFuYmCAl7hSU/DZDblYJlQ1oZ5NWqVQu7du1Cp06d5Dy2Iqv38OFDGeA5ODi816/YlE4cKXK7qlaIi0/AA4+nstPEyfN3U7906tYog7/3nMvweWK4lS/7tsKwSStx3+MpdIG46YohUKpXKYMLV+6klkX1ymWw92DGZdGzSwv06d4a3/30m3x+WqIq3NAwD5ISVfPniYmJ0P//L3dSroT/H96kXNkycHW9l/qecS5bGqfPnk93fGBgMKbPmKeyrWOHtjAxNsa2HXsQHv4iw9cS75c8eZQzwhPLJvP77n3Pp6hXQ/W+W696GfyVyX33fb2JjpWLlYUpGtZyxoJV+6AULJsPxxkvMpftu2jz5s3xxx9/oGvXrihXrhzOnj0Le3t7aLuNO85gzpQ+uOfhK8do6t+tifwluOfwFblf7AsOfYklaw7I9SFftMCYQW3x7cw/EBD4PDULGPUmBlFvYqFkO/45jcnj+sLjoS/cPX3QtUNTmJgY48jJy3L/5HH9EPr8Bdb+sV+u9+rigoF92mLWwk0IDAqTWT/hTXSM7CkX9SYat+964ctBHRETG4ugkHBUqVAKrZrVxsr1e6CLIqOS4OufkLru9ywRbl7xsLbSQ0EHA+iaE6fOYGD/3nji8xRPfHzQolkTGBkb4eKl5M/PwAG98eLFS+z956DM8Ac8C1R5vuhQIaRsFz8S27Zxgeud+zIbaGFujqZNGsLGxho3brpCSVg2Gduw/Qzm/f99946bLwZ0bwJTUyPsPpT8vpk3tQ+CQl9i8e8HUjsklCzmKB8bGeaBg701nEs5yfuu6EkriIBO/HZ8/DQYRZzyYdLIDvD2DU49p1KwbEgrgrwuXbqo3Z4vXz45zdnw4cMVMXftkdO35NhMInATgyG7P/TDl5NWpTYKLuBgq9Kmo1fHBjAyyoOlPw9WOc+KjYexYuMRKNmZ8zflmHiDereDra0lHnn7ywyd6Hwh5M+nWhYdPmsII0NDTJ/ytvpN2LTlEDZtOSwfz1iwAcP6d8D/Joo2VWYy0Fv31wHsO5w+06ML7nnEY8DYt1VOc5cn97ru1MYIc6fqXpuy6zduw8LCAh0+bwMrKyv4+flj2fLViIh4LffntbVNl8nNjMjyOjo6oG7dWrAwt5Bt98TAygsW/yqHU1ESlk3GDp9Kvu9+PbitHAzZ7aEfhn6T8X1XjHX3z/pJqevix7ZYrtzyQv+xy+U2SwsTTBjeHo75bPAiIhLHzrpiyZqDiE9IhJKwbD4Mm2BmTi/pPcc8GTRoEHJz2rPyTcdm+TmfCkcrZd20PpaTa7S/s46mjJiufvwxosycucd7DWWdx79LNVZs63/7TmOvPXiUanMURWfyUgI3ERM+ffpUZvDEgKVEREREmsARVHJ4CBUR5JUqVQp+fn5ZfSoRERERaWuQp6+vj9KlSyMsTDnd1ImIiIg+NdkaDHnu3Llyxot795KHUSAiIiL62Dh3bS4ModK/f39ERUWhSpUqcgiEd9vmPX/+PDunJSIiIiJNBnm//PJLTr0+ERERUbZwCJVcCPIGDBiQnacRERER0UfywfMGRUdHy3kn0xKDpBIRERGRwoI8MSr9d999h+3bt6vtZSvmcSQiIiLKTZy7Nhd6106aNAmnTp3CypUrYWxsjLVr12L69OkoWLCgnM+WiIiIiBSYydu/f78M5po2bSqnO2vUqJEcILlo0aLYvHkz+vTpk/NXSkRERJQGZ7zIhUyeGCKlRIkSqe3vUoZMadiwIf7999/snJKIiIiINB3kiQDv8ePH8rGzs7Nsm5eS4bOxscnJ6yMiIiJSi4Mh50KQJ6poXV1d5ePJkydjxYoVMDExwfjx4+VMGERERESkoDZ5iYmJWLBgAfbt2yeHTQkICMC0adPg7u6OGzduyHZ5lStXzr2rJSIiIqKcD/JmzZqFn376CS4uLnIqs6VLlyI4OBjr16+XnS6IiIiIPhbOeJGD1bWiR+1vv/2Go0ePYu/evbINnuhNKzJ8RERERKTQIM/X1xdt27ZNXRcZPT09PVltS0RERPQxseNFDgZ58fHxsoNFWoaGhoiLi8vKaYiIiIhIm9rkJSUlYeDAgXKWi7Rz144YMQLm5uap23bv3p2zV0lEREREuRfkDRgwIN22vn37Zu0ViYiIiHIAO17kYJC3YcOGrBxOREREREqau5aIiIhI05Kgp+lL0L0ZL4iIiIhIuzHIIyIiItJBrK4lIiIiRWLHi8wxk0dERESkg5jJIyIiImVK0vQFaDdm8oiIiIh0EIM8IiIiUiQlzV27YsUKFCtWTE4PW6dOHVy9ejXT41+8eIGvvvoKBQoUkDONlSlTBocOHcrSa7K6loiIiCgXbdu2DRMmTMCqVatkgPfLL7+gdevW8PDwQP78+dMdHxsbi5YtW8p9O3fuhJOTE3x8fGBjY5Ol12WQR0RERJSLFi9ejGHDhmHQoEFyXQR7Bw8exPr16zF58uR0x4vtz58/x8WLF2FoaCi3iSxgVrG6loiIiBQpSYNLTEwMXr16pbKIbeqycjdu3ICLi0vqNn19fbl+6dIltX/Xvn37UK9ePVld6+DggIoVK2L27NlISEjIUvkwyCMiIiLKojlz5sDa2lplEdveFRoaKoMzEaylJdYDAwPVntvb21tW04rniXZ4P/zwAxYtWoSZM2dm6RpZXUtERESKpMnBkKdMmSLb2aUlOkjkhMTERNke7/fff4eBgQFq1KgBf39/LFiwANOmTXvv8zDIIyIiIsoiEdC9T1Bnb28vA7WgoCCV7WLd0dFR7XNEj1rRFk88L0W5cuVk5k9U/xoZGb3XNbK6loiIiCiXiIBMZOJOnjypkqkT66LdnToNGjTAw4cP5XEpPD09ZfD3vgGewCCPiIiIFEkp4+RNmDABa9aswaZNm+Dm5oaRI0ciMjIytbdt//79ZfVvCrFf9K4dO3asDO5ET1zR8UJ0xMgKramudQsM1vQlaC23V+rTuZ+6EdPravoStNaqaZc1fQlaq2LPWpq+BK3l+TJrPfeI6P307NkTISEh+PHHH2WVa9WqVXHkyJHUzhi+vr6yx22KwoUL4+jRoxg/fjwqV64sx8kTAd93330HRQZ5RERERErpeJFVo0ePlos6Z86cSbdNVOVevvxhP9hZXUtERESkg5jJIyIiIkVSUCJPI5jJIyIiItJBDPKIiIiIdBCra4mIiEiRlNTxQhOYySMiIiLSQdkK8uLj43HixAmsXr0aERERcltAQABev36d09dHREREpOjBkBVTXevj44M2bdrIgftiYmLQsmVLWFpaYt68eXJ91apVuXOlRERERJR7mTwx4nLNmjURHh4OU1PT1O2dO3dWmZeNiIiIiBSUyTt37hwuXryYboLcYsWKwd/fPyevjYiIiChDSqk2VUwmLzExEQkJ6ec39PPzk9W2RERERKTAIK9Vq1b45ZdfUtf19PRkh4tp06ahbdu2OX19RERERGolaXDRyeraRYsWoXXr1ihfvjyio6PRu3dveHl5wd7eHlu2bMmdqyQiIiKi3A3yChUqBFdXV2zbtk3+X2TxhgwZgj59+qh0xCAiIiLKTWyTlwszXuTJk0cGdWIhIiIiIh1ok7dp0yYcPHgwdX3SpEmwsbFB/fr15Rh6RERERKTAIG/27Nmp1bKXLl3C8uXLMX/+fNkmb/z48blxjURERETpJCXpaWzRyerap0+folSpUvLx3r170a1bNwwfPhwNGjRA06ZNc+MaiYiIiCi3M3kWFhYICwuTj48dOyanNRNMTEzw5s2brJ6OiIiIKFs4d20OZ/JEUDd06FBUq1YNnp6eqWPj3b9/X856QUREREQKzOStWLEC9erVQ0hICHbt2gU7Ozu5/caNG/jiiy9y4xqJiIiIKLczeaInrehs8a7p06dn9VRERERE2aaUmScUE+T9+++/me5v3Ljxh1wPEREREWkiyFPXg1bMX5siISHhw6+KiIiI6D9wxoscbpMXHh6usgQHB+PIkSOoVauW7G1LRERERArM5FlbW6vtcWtkZIQJEybIDhhEREREuY2ZvBzO5GXEwcEBHh4eOXU6IiIiIvqYmbw7d+6orCclJeHZs2eYO3cuqlat+iHXQkRERESaCvJEICc6WojgLq26deti/fr1OXVdRERERJl6NxahDwzyHj9+rLKur6+PfPnyyWnNiIiIiEihQV7RokVz50qIiIiIsoB5vFzoeHH27Fm0b98epUqVkkuHDh1w7ty57JyKiIiIiLQhyPvrr7/g4uICMzMzfP3113IxNTVFixYt8Pfff+fGNRIRERFRblfXzpo1C/Pnz8f48eNTt4lAb/HixZgxYwZ69+6d1VMSERERZRn7XeRwJs/b21tW1b5LVNm+2ymDiIiIiBQS5BUuXBgnT55Mt/3EiRNyHxEREdHHyuRpatHJ6tqJEyfK6tnbt2+jfv36ctuFCxewceNGLF26NDeukYiIiIhyO8gbOXIkHB0dsWjRImzfvl1uK1euHLZt24aOHTtC00b1bolvh7SHo701XN19MWbmRly7+yjD47u1roMZY7ujmFM+ePkE4ruFW3D439up+5Pct6h93rfzN2Ph+gMo6mSPH0Z2QfO6FeBob4OA4HD8tf88Zq3ag7i4BGi7UT0a4Nv+zeFoZwlXzwCMmb8b1+77qj22fAlH/DyyDWqUK4xiBfNi3MI9WPr3vyrHjOhWHyO7N0CxAnnl+n3vQPz8+1EcuegOJWnauAFatmwOaytL+PkFYOv23Xjio75c0qpZoxqGDemP2653sXL128HBP2/XGrVqVIOtrQ3iExLg6+uHvfsO4smT/z6nUl27HYd1W6Nx3yMeIWFJWD7LAi6NjKDLvujUCIN6NYd9Xit4PPTH7GU7cddd/b9xt3b10KF1bZQqXkCuP/B8iqVr9qsc79KoMnp0aIgKZQrDxtocXYfOg/tDfyjRqJ6N8e0AFzjaW8HV0x9j5m7HtXs+ao8tX7IAfh7VDjXKFUExJzuMm78TSzefVjmmUfVS+Hagi7wfFcxvg07jVuOf06ozMikFy+YDKCSjpqghVDp37ozz588jLCxMLuKxNgR4PT6ri8WT+2H6il2o3mUqXD18cHTtZOTLa6X2+HrVSmPLojFYt/MMqnWegr0nrmPv8omoULpQ6jGODUeoLIOmrkJiYiJ2Hbsq9zsXd4K+vh6+nLYWFT7/FuPn/IkRPV0we3wvaLserapi8YROmP77UVTvvQiuXgE4uuJL5LO1UHu8mYkhvP3DMHnZATwLeaX2GL/gl3J/jT6LULPvYpy65oV/lgyRAaJS1KxRFd26dsLBg0cxa84i+PkH4OsxX8LSQn25pLDLa4tuXTrAyyv9j4qgoBBs2bYbP89cgAWLfkVY2HOMGzMCFhbm0FVvopPgXNIAP47X3b8xrTbNqmHSqM74beMRdB+2AB6P/LF6wSjktVH/vqlVtTQOnbyBweN/RZ+vFiMwOBy/LxyF/PbWqceYmhjj1l1vLP59H5SsR+vqWPxNF0xffQjVe82Fq4cfjq4cjXx5M7nX+Il7zT94FvJS7THmpkbyPF/NSU42KBXLhrQuyBNiY2Ph5+cHX19flUWTJgxshzU7TmHj7rNwe+SPEdPWISo6FoO7NlV7/Nh+n+HIeVeZkXP3DsCPy3bg5oPHGN2ndeoxQaEvVZaOzWvg9JUHeOwXLPcfPe+KwVNX4/iFu3Lb/tM35Pm6tKwFbTehT1Os2XMJG/ddhdvjIIyYtSO5vDrWUXv89QdPMemX/dh27BZi4uLVHnPg3/s4fMEND5+Gwss3BN+vOITXUTGoW0k5g2i7NG+K8xcu4eLlq3gWGITNW3bI93v9+urLRRBT/Q0e1A/7Dx5BSGhYuv3Xrt+Eu4cnQsPC8OxZIHbs2iuHHirkVBC6qnFdI4wbZoaWjXU7e5diQPdm2HnwIvYeuYJHPoGYvng7oqNj0aVtXbXHfzfrD2z957zMzD32DcaPC7ZAX08fdauXST1m//FrWPnHEVy64QElm9CvBdbsvoiN/1yGm3cgRszcmnyv6VRP7fHX7/ti0pI92HbkBmJi1d9rjlx4gB9WHMDeU65QMpYNaVWQ5+XlhUaNGskvKDH7RfHixeVSrFgx+X9NMTQ0QI0KxXHi4j2VOe1OXLqHelVLq32O2J72eOHohTsZHp/fzhrtmlTDul2q1QbvsrY0w/OXkdBmhnkMUKNcIZy44qlaXle8UK9yzgRkIsPZs1U1mJsa49KdJ1ACAwMDFClSCG4equXi7u6FEsUzLpfP27ZGREQELly88l6v0ahhPURFvcFTv4Acu3bS7OepfNnCKsGYeN9cvuGBKuXf775oYmyEPHn08TIiCrok+V5TGCcuu6veay67o17lEviUsWxyprZWU4tOtskbOHAg8uTJgwMHDqBAgQIyg5FVMTExclGRmADoGyC77G2tkCePAYLCVFP7IvvmXFx9tkS0oVN3vNiuzoBOjRERGY3dx65leB0lizhgTN/W+Gb+Zmgzexvz5PJ6HqGyXaw7F8v/QeeuWKoALm0cCxOjPHj9JhadJ66XmUIlENWnIgiLeKVaLq8iIuDooL5cSpYsjgb162DG7IWZnrtSxfIYOrg/jIwM8fLVK/zy60pERmr3jwF6P6K9XB4DA4S983kKC49A8SIO73WOiV92QHDoK8Vn7d5lb2vx//fmd+41YRFwLq6cZhy5gWVDWhfkiV61N27cgLOzc7ZfdM6cOZg+fbrqRrsKgH0laLPBXZtg84ELiImNU7u/YH5bHFkzGTuOXMbaHafwqfJ4EoyqXyyEtYUJurWogk0/90aTocsVE+hlhbGxMQYP6IM/N2/7z4DNw/MhZs5ZCAtzczRsWBfDhwzA3Pm/IOL16492vaSdhvZ2wWfNq2PguF8Rm0H1JBGlp5ShTBRTXVu+fHmEhoZ+0ItOmTIFL1++VFmQt/wHnTM0/BXi4xPgYPe20bLgYG+NwNAXap8jtr/v8Q1rlIVzCacMg7cC+W1x+o8fcPGWJ4b/uBbaLvRFZHJ55bVU2S7WA8PUd6p4X3HxCXj0NBQ33fwwdflB2Wt3bO/GUILXryORkJAASyvVcrGytJTZt3fly2cHe3s7fDVyKH77daFc6tapicqVKsjHYl8K0a4vJCQUj5/44M+/tiEhMRENGmTczo+U48XLSNlr2u6dz5OdrSVC38nuvWtgz+YY0tsFw779DZ7euld9Hxr++v/vze/ca+wsERj6YfcapWPZkFYEea9evUpd5s2bh0mTJuHMmTOyZ23afWJ53+yHlZWVyvIhVbWCGK7kxv3HaFGvYuo2UZXcom4FXLrtpfY5YnuLehVUtrWsX0nt8UO6NcP1e9644+GrNoN35o8f5OuL3reivYm2E4HYDTc/tKhdRrW8apfGpTvqhzX4kLZ5xoZZThprRML/D29SrqxquTiXLQ3vx+nLJTAwGNNnzMPM2QtTlzt378NTZO1mL0R4uPofGIK+np5s+kDKJz5PDzyeqnSaEO+bOjXKwvVBxjMBDe7VAiP6tcaXk1bhvsdT6KLke81TtKhTVvVeU6csLt3xxqeMZUO57b2+YWxsbFTa3okgpkWLFirHiG3iGPElqSmLNx7EprkjZTB29c5DjBvwmWz0v2H3Wblf7PMPDsfUxVvl+tI/D+PsHz9iwqB2OHjmFnq1q4eaFUpg+I9rVM5raW6K7q3rYOK8zRkGeD4Bofhm3l8qw7WI9n3abPHmM9g0vbfsNXv1vg/G9W4ihyXYsC+584CoZvUPfimzcamNy0skty8yMjSAU35rVClTULa7E5k7Yfbodjh80Q2+z8JhaW6C3m2qo2mNkmj91WooxYlTZzCwf2888XmKJz4+aNGsCYyMjXDxUnK5DBzQGy9evMTefw4iPj4eAc8CVZ4vOlQIKduNjIzQto0LXO/cl9lAUV3btElD2NhY48ZNZfcMzExkVBJ8/d/eD/yeJcLNKx7WVnoo6PBhP+q00aYdpzF7Sl8ZrN1180G/bk1hamKEPYeT3zdiX3DoS/yyZr9cH/KFC0YPaotJMzchIDAM9v+fBYx6E4OoN7GpnbgKONgi3//XOBQrnNwuNPT5q//MEGqTxX+exKYZ/WWv2av3nmBc3+bJ9+a9l+X+TTP7wz/4BaYu2/f2XlOyQJp7jQ2qlC0ke+o/ehoit4vnlyqSL/U1ijvZyWNEp7engeFQCpbNh1FATkX7g7zTpzPvTaotth++LIOsn8d0g2M+G9x280GbYXMR/P+dK4oUtEdimnfEpVte6P3Ncswc1wOzx/eE15NAdBq9CPe9/FTOK4I/EcBuOXgh3Wu2bFAJpYsVkIv/v7+p7NNz/gLabPux23JMPDHAsaOdFW57+KPN6NUIfp7cRqyIoy0SE9+WV8F8Vri99dvUdTGIsljOXH+IZsNXyG3581rgj5/7oIC9FV6+foM7Xs9kgJe2F6+2u37jNiwsLNDh8zYyy+zn549ly1cjIiK5XPLa2iIpTbn8FzGuoqOjA+rWrQULcwvZdk8MrLxg8a9yOBVddc8jHgPGvg1E5i5P7jXaqY0R5k7NfMxBJTpy+pYcE08EbmIwZPeHfvhy0krZ+UIQwVraLH/Pjg1gZJQHv/w8ROU8KzYexm8bD8vHzRpUxKzJfVP3LZo2KN0xSrD96E3ks7XEz6M+h6O9ZfK9ZtQKBP9/oJruXpPfGre3T0ldF4Mei+XMNU80G5o8s1LNCkVwZt241GOWfNtN/l8M0zLoxz+hFCwbyk16SVpSt6jtAZFGmX3aPdAyMlz98GMEYNW05AwJpVexp/aPYakpD8K1f5Ye0j5Jrsk/8jXhf/97+2PgY5s1aw50cjDkc+fOoW/fvnLuWn//5Cl2/vzzTznzBREREREpMMjbtWsXWrduLQdDvnnzZup4d6KH7OzZs3PjGomIiIjSEZWRmlp0MsibOXMmVq1ahTVr1sDQ0DB1e4MGDWTQR0REREQKDPI8PDzQuHH6Mc+sra3x4kXGw0UQERERkRYHeY6Ojnj48GG67aI9XokSn/Y8hERERPTxiFpTTS06GeQNGzYMY8eOxZUrV+SwIgEBAdi8eTO++eYbjBw5MneukoiIiIiyJMvD7U+ePFmO+yUGQ46KipJVt2IGCxHkjRkzJqunIyIiIsoWpWTUFBHkidksLly4gK+++grffvutrLZ9/fq1nM9WDB5LRERERAoM8gwMDNCqVSu4ubnJqc5EcEdEREREOtAmr2LFivD2/rQnlSYiIiJtkKTBRUfHyRPt7w4cOIBnz57h1atXKgsRERERKbDjRdu2beX/O3ToIHvXphCjP4t10W6PiIiIKLex40UOB3mnT5/O6lOIiIiISNuDvCZNmuTOlRARERGR5oK8FGKMPF9fX8TGxqpsr1y5ck5cFxEREVGmRFMxysEgLyQkBIMGDcLhw4fV7mebPCIiIiIF9q4dN24cXrx4Iac1MzU1xZEjR7Bp0yaULl0a+/bty52rJCIiInoH567N4UzeqVOn8M8//6BmzZrQ19dH0aJF0bJlS1hZWWHOnDlo165dVk9JRERERJrO5EVGRiJ//vzysa2tray+FSpVqoSbN2/m9PURERERqcWhkHM4yCtbtiw8PDzk4ypVqmD16tXw9/fHqlWrUKBAgayejoiIiIg0WV37+PFjFC9eHGPHjpUzXQjTpk1DmzZtsHnzZhgZGWHjxo25cY1ERERElFtBXsmSJWX7u2bNmsnFz88PNWrUgI+PD9zd3VGkSBHY29tn9fWJiIiIsoVDqORQkCc6XJw5c0YuW7ZskePjlShRAs2bN5dBn5OT0/ueioiIiIi0Jchr2rSpXITo6GhcvHgxNegTQ6jExcXB2dkZ9+/fz83rJSIiIkrGsZBzfsYLExMTmcFr2LChzOKJgZFFBwxRbUtERERECgvyRBXt5cuXcfr0aZnBEwMiFy5cGI0bN8by5cs5ry0RERGR0oI8kbkTQZ3oYdukSRN8+eWX+PvvvzlsChEREWkEa2tzKMg7d+6cDOhEsCfa5olAz87O7n2fTkRERETaOBiymK/2999/h5mZGebNm4eCBQvKWS5Gjx6NnTt3ps58QURERPSxhlDR1KJTmTxzc3M58LFYhIiICJw/f162z5s/fz769OmD0qVL4969e7l5vURERESUW71rU4K+vHnzykXMYZsnTx64ubll93REREREWaKQhJr2B3mJiYm4fv267FUrsncXLlxAZGSkHARZDKOyYsUK+X8iIiIiUlCQZ2NjI4M6R0dHGcwtWbJEdsAQ050RERERkUKDvAULFsjgrkyZMrl7RURERETvgdW1ORTkiXHxiIiIiEjHO14QERERaVISh0POmXHyiIiIiEg5GOQRERER6SDtqa6Ni9L0FWit4maJmr4ELcXfKBmp2LPWR/2XUJJ7265p+hK0ln6r6pq+BKIsYceLzPFbkoiIiEgHaU8mj4iIiCgrOONFppjJIyIiItJBzOQRERGRIjGRlzlm8oiIiIh0EIM8IiIiIh3E6loiIiJSpCSOoZIpZvKIiIiIdBAzeURERKRITORljpk8IiIiIh3EII+IiIhIB7G6loiIiBSJ1bWZYyaPiIiISAcxk0dERESKxBkvMsdMHhEREZEOYiaPiIiIFImDIWeOmTwiIiIiHZTlIC8uLg4tWrSAl5dX7lwREREREX386lpDQ0PcuXPnw1+ZiIiI6ANwCJVcqK7t27cv1q1bl52nEhEREdFHkK2OF/Hx8Vi/fj1OnDiBGjVqwNzcXGX/4sWLc+r6iIiIiOhjBXn37t1D9erV5WNPT0+VfXp6etk5JRERERFpOsg7ffp0Tl4DEREREWnbOHl+fn7y/4UKFcqJ6yEiIiJ6L+x4kQsdLxITE/Hzzz/D2toaRYsWlYuNjQ1mzJgh9xERERGRAjN5//vf/2Tv2rlz56JBgwZy2/nz5/HTTz8hOjoas2bNyunrJCIiIlLBTF4uBHmbNm3C2rVr0aFDh9RtlStXhpOTE0aNGsUgj4iIiEiJQd7z58/h7OycbrvYJvYRERER5TbOXZsLbfKqVKmC5cuXp9sutol9RERERKTATN78+fPRrl07ORhyvXr15LZLly7h6dOnOHToUE5fIxERERF9jExekyZN5CDInTt3xosXL+TSpUsXeHh4oFGjRtk5JREREVGWJGlw0dkgz9fXFwUKFJAdLHbt2iWXmTNnomDBgnIfEREREb21YsUKFCtWDCYmJqhTpw6uXr2K97F161Y5m1inTp3wUYK84sWLIyQkJN32sLAwuY+IiIjoYwyhoqklK7Zt24YJEyZg2rRpuHnzpuy/0Lp1awQHB2f6vCdPnuCbb77Jdi2pfnZ7s6ibo/b169cyQiUiIiKiZIsXL8awYcMwaNAglC9fHqtWrYKZmRnWr1+PjCQkJKBPnz6YPn06SpQogVzveCGiUEEEeD/88IO8wLQXc+XKFVStWjVbF0JERESkFDExMXJJy9jYWC5pxcbG4saNG5gyZUrqNn19fbi4uMhOqxkRM4vlz58fQ4YMwblz53I/yLt161ZqJu/u3bswMjJK3Scei/SjSCsSERER6fKMF3PmzJFZtrREdayY/Sut0NBQmQhzcHBQ2S7W3d3d1Z5bzCImZha7ffv2B11jloK806dPy/+LdOPSpUthZWX1QS9OREREpERTpkxJreFM8W4WLzsiIiLQr18/rFmzBvb29h9/nLwNGzZ80IsSERERfShNDmVirKZqVh0RqBkYGCAoKEhlu1h3dHRMd/yjR49kh4v27dunbktMTJT/z5MnjxyurmTJkrkX5AnXr1/H9u3b5ZApor45rd27d0NTRvVti2+HdYJjPlu4uj3BmOm/49odrwyP7/ZZfcwY3wfFCuWH15MAfDf/Dxw+c0PtsStnjMSI3m0wbsZaLN24X25rUqcizvw9S+3xtTpNxPW7D6Gt+nVpiGFfNEe+vFZwe+SPn5bswh039UPglC7uiPFD2qJi2UIoVMAOM5buxoYdZ1WO0dfXw9jBn6FTq5rIZ2eJoNBX2HXoCpZvOgaladq4AVq2bA5rK0v4+QVg6/bdeOLz38MD1axRDcOG9Mdt17tYufptg9rP27VGrRrVYGtrg/iEBPj6+mHvvoN48kR5Qw590akRBvVqDvu8VvB46I/Zy3birrv6v6Nbu3ro0Lo2ShUvINcfeD7F0jX7VY53aVQZPTo0RIUyhWFjbY6uQ+fB/aE/dNm123FYtzUa9z3iERKWhOWzLODS6G3zF100qmdjfDvABY72VnD19MeYudtx7Z6P2mPLlyyAn0e1Q41yRVDMyQ7j5u/E0s3JNUkpGlUvhW8HuqBGucIomN8Gncatxj+n70CJWDa6zcjICDVq1MDJkydTh0ERQZtYHz16tNopYkWTuLS+//57meETtaiFCxfO3d61YsyW+vXrw83NDXv27EFcXBzu37+PU6dOwdraGprSo11DLJ46GNOXbUP1DhPg6v4YRzf+hHx26q+pXnVnbPnlG6zbcQLV2o/H3uNXsHflFFQoUyTdsZ1a1UXdqmXgHximsv3iTXc41hmgsqzZdgzevoFaHeC1a14NU0d3xrINR9F+yAK4PQzApsUjYWdjofZ4U2Mj+AaEYv6q/QgOfan2mBF9XNCnUwP8tGQnWvaZg/kr92F4nxYY0K0xlKRmjaro1rUTDh48illzFsHPPwBfj/kSlhbqyyaFXV5bdOvSAV5ej9LtCwoKwZZtu/HzzAVYsOhXhIU9x7gxI2BhYQ4ladOsGiaN6ozfNh5B92EL4PHIH6sXjELeDN43taqWxqGTNzB4/K/o89ViBAaH4/eFo5Df/u1n0tTEGLfuemPx7/vwqXgTnQTnkgb4cbyy/v2zq0fr6lj8TRdMX30I1XvNhauHH46uHI18edW/b8xMDOHtF4bJy/7BsxD19xtzUyN5nq/mbIeSsWw+jTFUJkyYIKtfN23aJGOnkSNHIjIyUjZ/E/r375/aMUOMUlKxYkWVxcbGBpaWlvJx2v4QuRLkzZ49G0uWLMH+/fvli4nIUjQe7NGjB4oUSR8gfSwTBneUAdbGXSfh9vApRny/ElFvYjC4m4va48cObI8j/97EwjV74P7IDz8u+Rs373tjdL92KscVdMiLX38chj4TFiMuPl5lX1xcPIJCX6QuYS8i0NGlNjbsOgltNqRXU2zbfxE7D13BwydB+H7BdryJjkX3z+uqPf6Ouy/m/rYPB07eQmycahmkqF6xOE6cv4fTlx7AP/A5Dp9xxfmrHqhSriiUxKV5U5y/cAkXL1/Fs8AgbN6yQ2ar69evk+FzRI/zwYP6Yf/BIwgJVf0hIFy7fhPuHp4IDQvDs2eB2LFrL0xNTVHIqSCUZED3Zth58CL2HrmCRz6BmL54O6KjY9Glrfr3zXez/sDWf87LzNxj32D8uGAL9PX0Ubd6mdRj9h+/hpV/HMGlGx74VDSua4Rxw8zQsrFuZ+9STOjXAmt2X8TGfy7DzTsQI2ZuRVR0LAZ3Sp4W813X7/ti0pI92HbkBmJi1d9vjlx4gB9WHMDeU65QMpbNp6Fnz55YuHAhfvzxRzkKiehQceTIkdTOGKJW9NmzZzn+utkK8kR9sZi7VhBBnohGxZfc+PHj8fvvv0MTDA3zoEbFkjhx8e0HXvQCFuv1qpVV+xyx/cQF1RvE0XO3VI4Xf9efi8Zjwdo9eOD19D+vo0OL2rCzscSGndob5BnmMUDFMoVx4bqnSlmJ9WoVimX7vDfvPUb9GqVRvHA+ue5cqiBqVi6Bs5cfQClEu4kiRQrBzUO1bNzdvVCieMbB6udtW8tU+oWLV97rNRo1rIeoqDd46hcApRDvm/JlC6sEY6JsLt/wQJXy7zcIuomxEfLk0cfLiKhcvFLStveNqFI9cdld9d582R31Kmdv7C9dwbL5tIwePRo+Pj5y2BUx5JyY9SLFmTNnsHHjxgyfK/bt3bs3y6+ZrTZ5tra28gtNcHJywr1791CpUiU5h21UVFS2xpZBUgKgZ4Dssre1Qp48BjKblpZYdy5RSO1zHO1tEBSW/njRni/Fd192QXx8ApZtPPBe1zGkh4sMFN+t1tUmttbmsqxCnyf/G6YQ6yWL5s/2eVf+dQIW5iY4vnkqEhKTYKCvh0W/H8Q/x9W3cdRGovpUBGERr1TL5lVEBBwd1JdNyZLF0aB+HcyYvTDTc1eqWB5DB/eHkZEhXr56hV9+XSl/ICmFaC+Xx8AAYe+8b8LCI1C8iOrQABmZ+GUHBIe++qSydp86e1uL5HtzmOr7Rqw7F0/f6PxTwrJR9hAqSpCtIK9x48Y4fvy4DOy6d++OsWPHyvZ4YluLFi2yNbYMbMoAeZ2hTapXLCmrdEX7vvfh5GiH1o2qoceYBfgUtWteFR1a1sC46X/A63EgypV2wg9fd0FQ6EvsPnINukj0rBo8oA/+3LztPwM2D8+HmDlnISzMzdGwYV0MHzIAc+f/gojXr/EpGNrbBZ81r46B435FbAZVcEREpOEgb/ny5YiOjpaP//e//8HQ0BAXL15E165dZQ+Q7IwtY121Nz5EaPgrmXFzsLdR2S7WA0PC1T4nMPQFHOwyPr5RzfLIb2cN33NrU/eLX6SLpg7CuEHtUbzJcJXnDurWQrbJ23fy/SYd1pTwl5GyrOzzWqpsF+sh7/zazorJozpi9eYTst2e4OH9DE6OeTGyX0vFBHmvX0fKQSstrVTLxsrSUmbf3pUvnx3s7e3w1cihqdtSpvz77deF+HH6HIT+fxs90a4vJCRULo+f+ODnn6aiQYM6OHJUe6v203oh3jcJCbB7531jZ2uZLiv8roE9m2NIbxcMnbgCnt7KqaKmDxca/jr53myn+r4R64Gh6T9TnxKWzYdjIi8Xgry8efOqTM0xefLkDx9b5gOqalM6QNy49wgt6lfGP8evpH7ZtqhXGcv/PKT2OZduecjjU4ZDEVo2rCq3C3/uPaPSxk84uuEnuV1dm7tBXVvgjz2n5Q1Nm8XFJ+Ce51PUr1EGx8/dTS0rsf7n7uxNnSKYmhghMVH1I5eYkCiHVlGKhP8f3qRc2TJwdb2XWjbOZUvj9Nnz6Y4PDAzG9BnzVLZ17NAWJsbG2LZjD8LDVZsDpKWvpyfHPFIK8b554PFUdpo4df7t+6ZOjbLYsuffDJ83uFcLDO/bCsMnrcR9j/9u10q6Rbxvbrg9RYs6ZVOHOJH35jplsXyr6jBMnxqWDeW2bH3DiPnW+vbtiy5dumjVrBeL1/+DTQvGyqFLrrp6yWybuZkJNuw8IfdvWjhOtpWbuvBPuS6Cu7N/z8KEIR1x8PR19Pq8EWpWLInh/1sh9z9/ESGXtETvWpHp83ysOo5X8/qVUaKII9ZuOw4lWLf1DBb+r48cr8zVzReDejSBmakRdh5MDpAXft8HQSEvsWD1gdQGwqWKOaZ2cnHIZ41ypZxk72Uf/1C5/eSFexjVvxUCgkT5BKJCmUIY3LMZdh66DCU5ceoMBvbvjSc+T/HExwctmjWBkbERLl5KLpuBA3rjxYuX2PvPQcTHxyPgWaDK80WHCiFlu+ic1LaNC1zv3JfZQFFd27RJQ9jYWOPGTWX1DNy04zRmT+krg7W7bj7o162pDO73HE4uG7FPDLHzy5rkH05DvnDB6EFtMWnmJgQEhqVmj8X7JupN8via1pZmKOBgmzrUUbHCyW0fQ5+/+s8MoVJFRiXB1//tj0G/Z4lw84qHtZUeCjp82A9ebbT4z5PYNKO/7DV79d4TjOvbHOamxtiwN/nesGlmf/gHv8DUZfvedvIpmTy2opGhAZzy26BK2UJ4HRWDR09D5Hbx/FJFkjt5CcWd7OQxz19G4mmg+tobbcSyIa0L8ipUqCCrXEeNGiV72YqAr23btrLaVpO2HzwvB/b9eVxvONrb4rbbY7QZNB3BYcnjLBUpYJ86arRw6aY7eo9fhJkT+mL2xH7w8glAp5FzcN8z6wPUDunuggs33ODhrYxBXA+euiXHNhs/tK0c1NbtoR8GTlyF0PDkL9WCDrYqWTkxrtnBjZNS14f3biGXy7e80HvMcrlt+pJdmDCsLX6e2B12thZyMOQt+y7g1w1HoSTXb9yGhYUFOnzeRv6I8fPzx7LlqxERkdx2Lq+tLZLeyVhmRrznHB0dULduLViYW8i2e2Jg5QWLf5XDqSjJkdPJ7xsRuIn3jftDP3w5aaXsfCGIYE30nEzRs2MDGBnlwS8/D1E5z4qNh/HbxsPycbMGFTFrct/UfYumDUp3jK655xGPAWPfBrBzlyd3WOvUxghzp2Y+HqMSbT96E/lsLfHzqM/haG+J2x7+aDNqBYL/P4gv4qh6vymY3xq3t7+dzF0MeiyWM9c80WzoUrmtZoUiOLNuXOoxS77tJv8vhmkZ9GPyD3klYNl8GHa8yJxeUto7chaIL64TJ07g77//lgMiix6J3bp1Q58+fdCkSZMsn0+vZMfsXMYnoXiB7A9rostaVs7WCECfhPMPtLvJgCbd26aM9qGaoN+quqYvgRQoyTW59ksT+g4aq7HX/mtD8g8ObZbtb0nRFq9Vq1Zy7BYx/9rq1atx9epVNG/ePGevkIiIiEi5E15ozAe3+g4MDJTTnP3111+4c+cOateunTNXRkREREQfN5P36tUrbNiwAS1btpQT5a5cuRIdOog5O71w+bKyGtkTERER6aJsZfLEXGti1gsxF5sY2LhmzZo5f2VEREREmVBKtamigrx9+/bJmS1EuzwiIiIi0j7ZitJENW1K71rR4SJlHtuAgAC8/kSmaCIiIiLNStLgfzqbyfPx8UGbNm3g6+uLmJgYGfRZWlpi3rx5cn3VqlU5f6VERERElLuZvLFjx8p2eOHh4TA1NU3d3rlzZ5w8qYx5OImIiEjZOIRKLmTyzp07h4sXL8rpmtIqVqwY/P2VMeMDERERkS7LViZPtMcTE7m/y8/PT1bbEhEREZECgzwx08Uvv/ySuq6npyc7XEybNk3OYUtERESU21hdmwvVtYsWLULr1q1Rvnx5REdHo3fv3nIgZHt7e2zZsiU7pyQiIiIiTQd5hQoVgqurq5zOTExlJrJ4Q4YMQZ8+fVQ6YhARERHlFmUMZKLAuWvz5MmDvn375uzVEBEREdHHDfLELBfvS8xjS0REREQKCPI6der0XseJThjqet4SERER5SjW1+ZMkCeGTSEiIiIiHRxCRQyP8vLly9T1uXPn4sWLF6nrYWFhssctERERUW7jECo5GOQdOXJEzk2bYvbs2Xj+/Hnqenx8PDw8PLJySiIiIiLSpt61QpIIoYmIiIg0gFFILsx4QUREREQ6FOSJnrNieXcbERERESm4ulZUzw4cOBDGxsZyXUxpNmLECJibm8v1tO31iIiIiHITW43lYJA3YMAAlXV1M170798/K6ckIiIiIk0HeRs2bMiNayAiIiLKMmbyMseOF0REREQ6iEEeERERkQ76oHHyiIiIiDSF4/Vmjpk8IiIiIh3ETB4REREpEme8yBwzeUREREQ6iJk8IiIiUiQOoZI5ZvKIiIiIdBCDPCIiIiIdxOpaIiIiUiRW12aOmTwiIiIiHcRMHhERESkSh1DJHDN5RERERDpIazJ5e2eU1PQlaC33J8aavgSttP5IlKYvQWt5vkzQ9CVoLf1W1TV9CVor8dhNTV8CEelikEdERESUFex4kTlW1xIRERHpIGbyiIiISJGYycscM3lEREREOoiZPCIiIlIkDqGSOWbyiIiIiHQQgzwiIiIiHcTqWiIiIlIkdrzIHDN5RERERDqImTwiIiJSJGbyMsdMHhEREZEOYpBHREREpINYXUtERESKxHHyMsdMHhEREZEOYiaPiIiIFIkdLzLHTB4RERGRDmImj4iIiBSJmbzMMZNHREREpIMY5BERERHpIFbXEhERkSKxujZzzOQRERER6SBm8oiIiEiROBhy5pjJIyIiItJBDPKIiIiIdBCra4mIiEiR2PEic8zkEREREekgZvKIiIhIkZjJyxwzeUREREQ6iJk8IiIiUiQOoZKLmbzY2Fh4eHggPj7+Q05DRERERNoQ5EVFRWHIkCEwMzNDhQoV4OvrK7ePGTMGc+fOzelrJCIiIqKPEeRNmTIFrq6uOHPmDExMTFK3u7i4YNu2bdk5JREREVGWO15oatHZNnl79+6VwVzdunWhp6eXul1k9R49epST10dEREREHyvICwkJQf78+dNtj4yMVAn6iIiIiHKLUjJqiqqurVmzJg4ePJi6nhLYrV27FvXq1cu5qyMiIiKij5fJmz17Nj777DM8ePBA9qxdunSpfHzx4kWcPXs2e1dCRERERJrN5DVs2BC3b9+WAV6lSpVw7NgxWX176dIl1KhRI+eujoiIiCgDSRpcdHow5JIlS2LNmjU5ezVEREREpLkg79ChQzAwMEDr1q1Vth89ehSJiYmyKlebFC/dAKXKNYOxqSVehQfgzo09eBGWPLbfuxq0GAV7h1Lptgf6P8CVs2uhp6ePclXawqFgOZhZ5EV8bDRCgjzx4PZBRL95BaWpVqMu6tRpDHMLCwQHBeLEsX149sxP7bEVK1VHu/bdVbbFx8dh0fwfU9e/mzpH7XNPnzyEq1fOQSl6d26IIb2aI19eK7g/8seMpbtw1039e6ZUMUd8PaQtKpQphEIF7DD7193YtEO12YK5qTHGDm0Ll0aVYWdrgQde/pi9bDfuuqs/pzYb1bMxvh3gAkd7K7h6+mPM3O24ds9H7bHlSxbAz6PaoUa5IijmZIdx83di6ebTKsc0ql4K3w50QY1yhVEwvw06jVuNf07fgRKxbD7ctdtxWLc1Gvc94hESloTlsyzg0sgInzqWi3rseJEL1bWTJ09GQkJCuu1JSUlynzYpWKQqKlTvCI97R3H28GK8fBGAes2Gw8jYQu3xV89txJHd01KXUwfnITExAQG+rnK/QR4jWNs6wePeMXk+cbyFZX7UaTwESuNcrhKat2iHC+dPYuP65QgOfoYevQbDzMw8w+fEREdj+dJZqcvKFfNV9qfdJ5ZDB3YiKSkRHh73oBSfNa+GKV91xoqNR9F56AK4PwzAuoUjkddG/XvG1MQIfgGhWLR6P4LDXqo9ZuZ3vVC/ZllMmvUX2g+chwvX3LFh8Sjkt7eGkvRoXR2Lv+mC6asPoXqvuXD18MPRlaORL6/6sjEzMYS3XxgmL/sHz0LUl425qZE8z1dztkPJWDY54010EpxLGuDH8Rnfhz5FLBf6aEGel5cXypcvn267s7MzHj58CG1SyrkJfB5dhq/3NUS8CoLr1Z1IiI9D0ZK11R4fFxuFmOiI1CWfY1kkJMSlBnnxcdG4dHq1XH8dEYLwMB/cub4bNnaFYWpmAyWpVbsRXG9fw907NxAWGoyjh/ciLj4WlarUzPA5SUhCZOTr1CUq8rXK/rT7xFKqdDn4+Hjj5YtwKMWgHk2x/cBF7D58BY98gjBt0XZER8eia7u6ao8X2bj5K/fh0KlbiI1NP8WfsZEhWjWuggUr9+G66yP4+odi+YYj8PEPRe9ODaAkE/q1wJrdF7Hxn8tw8w7EiJlbERUdi8Gd1Peqv37fF5OW7MG2IzcQo6ZshCMXHuCHFQew91TyZ0ypWDY5o3FdI4wbZoaWjZm9Y7mQRoI8a2treHt7p9suAjxzc+359aWnbwDrvIUQEuiZZmuSXLe1L/Ze5yhasg78fW4hISE2w2MMDU1ktiou9g2UQl/fAI4FCsLnSdqgPAlPHj+Ck1ORDJ9nZGSEEV9NwsjR36FLt36wt08/XmIKM3MLlCzljDu3r0MpDPMYoEKZwrh43VMlQ33xhieqVXi/98y78hjoI08eg3RBTkxMHKpXKgEllY2oUj1x2V2lbMR6vcrK+TtyA8uGSDM440UuBHkdO3bEuHHjVGa3EAHexIkT0aFDh/98fkxMDF69eqWyxMWp/5X/IYyNzWUwIzJyKq8fHQETE8v/fL6NXRFY2RSAz6MrGR6jr58H5at9Dj+fW4iPj4FSiHmHRdmIbFtaUZERMDdXXzbPn4fi0IFd2L3jTxzYt12Oj9i3/0hYWlpl2IYvNjYGnh73oRS21uYyIAsLV33PhD2PgH3e/37PqBP5JgY37z3GqAGtkN/OCvr6eujQsiaqVigm15XC3tZClk1QmGrZiHXRPu9TxrIhIp0J8ubPny8zdqJ6tnjx4nIpV64c7OzssHDhwv98/pw5c2Q2MO2yc981aJuiJergZXhAhp00RCeMmg37i0e4c3UndF2Avy/u37sl2+499X2MPbv+QlRUJKpWq6P2+MpVauDB/dtISMj5AF5pJs38UwbF5/bMwN0Ti9CvW2McPHkTiWw1TESUbRxCJRd614qgTAx8fPz4cbi6usLU1BSVK1dG48aN3+v5U6ZMwYQJE1S2HdvzPXJaTEyk7DRh/E7WTqxHv5Pde5eBgRGcilaF+90jGQZ4tRoOgJl5Xlw4+ZuisnhCVFSULBtzc9UG82bmloiMzLxsUoie1EFBAbCxtUu3r1DhYrCzy49/9myBkoS/jER8fALsbFXfM3Z5LRH6/P3KRZ2nAWHo9/WvspOGhbkJQsJeYclPA+R2pQgNfy3LxsFOtWzEemCo8nqW5ySWDRHpTCZPEFmJVq1a4dtvv8Xo0aPfO8ATjI2NYWVlpbIYGmZ7yL4MJSUm4OVzP+RzKJ32ypHPsTTCQ59k+tyCRapA3yAPnj6+kWGAZ25pj4unVsrOGkojArzAZwEoWqxkmq16KFasJPz9fd/7PZAvvwMiX6cPfipXqSmHYgkJDoSSxMUn4L7nU9SrUUbl76xXvQxu3c/8PfM+3kTHygDPysIUDWs54+T5u1BS2dxwe4oWdcqqlI1Yv3QnfRvdTwnLhkgz2CYvc+8dWS1btgzDhw+HiYmJfJyZr7/+GtrioftZVK/3BV48f4rwMF+ULNtEDoPi631V7hf73kS9gpvr27l4UzpcPPO7ly6AkwFeo4GwsXXC5bPr5HpKpjA2NkoGlkpx7eo5Oe5d4DN/PAt4ipq1G8DQ0Ej2thXEvoiIV/j3zFG5Xr9hcwT4P0V4eChMjE1Ru25jWFnZwtVVtardyMgYZZ0r4fRJ1TJVig3bz2DelD645+GLO26+GNC9CUxNjbD7UHLbzHlT+yAo9CUW/34gtdF9yWKO8rGRYR442FvDuZQTot7EyJ60ggjoxBTPj58Go4hTPkwa2QHevsGp51SKxX+exKYZ/WWv2av3nmBc3+ZyDMANey/L/Ztm9od/8AtMXbYvtWzEWHmCkaEBnPLboErZQngdFYNHT0PkdvH8UkXypb5GcSc7eczzl5F4GqicXtksm5wRGZUEX/+391G/Z4lw84qHtZUeCjoY4FPFcqFcDfKWLFmCPn36yCBPPM6I+GWvTUFegO9tGJtYwLlyGxibWOFVuD8un/4dMdHJHQ5MzWxlD8G0LCzzwS5/CVw8tSrd+UzMrFGgUEX5uFnbb1T2nT+xAmHBbzujaDt3t7swM7NAw8YusrNFcNAzbN+2IXVYFCsrG5WyMTExRZu2neWx0dFvEBToj7/+WCmHX0mrXPnKMqB58ECZQ2IcPnVLjon39eC2cjBkt4d+GPrNqtTOGAUcbFXa0omx7v5ZPyl1fcgXLeRy5ZYX+o9dLrdZWphgwvD2cMxngxcRkTh21hVL1hxEfEIilGT70ZvIZ2uJn0d9Dkd7S9z28EebUSsQ/P9V2UUcbZGY+LZsCua3xu3tU1LXxaDHYjlzzRPNhi6V22pWKIIz68alHrPk227y/2KYlkE//gmlYNnkjHse8Rgw9m3twNzlyT+0O7Uxwtyp6sdj/BSwXCg79JLejXA05J+/Vdvo0VvuT4xZHGqsP6K8avKPxfMlO7tQ1iUeu8lioyzTc7iksVKr03qMxl77ytFfoXNt8uLi4uS8tW5ubrlzRURERET0wbLc28HQ0BDR0dEf/spEREREH0A76iJ1rHftV199hXnz5iE+nlVCRERERNooW+OWXLt2DSdPnsSxY8dQqVKldFOZ7d69O6euj4iIiIg+VpBnY2ODrl27ZuepRERERDmCtbU5GOSJGQ4WLFgAT09PxMbGonnz5vjpp5/kjBdEREREpNA2ebNmzcLUqVNhYWEBJycnOSiyaJ9HRERE9LElJelpbNG5IO+PP/7Ab7/9hqNHj2Lv3r3Yv38/Nm/eLDN8RERERKTQIM/X1xdt27ZNXXdxcZEzXAQEBOTGtRERERFliHPX5mCQJ4ZMEdOavTtunhggmYiIiIgU2vFCzIA2cOBAGBu/nWZLDIw8YsQIlWFUOIQKERERkYKCvAEDBqTb1rdv35y8HiIiIqL3wiFUcjDI27BhQ1YOJyIiIiIlDYZMREREpGmJTOXl/Ny1RERERKTdGOQRERER6SBW1xIREZFix8mjjDGTR0RERKSDmMkjIiIiRWIiL3PM5BERERHpIGbyiIiISJE4hErmmMkjIiIi0kEM8oiIiIh0EIM8IiIiUuwQKppasmrFihUoVqwYTExMUKdOHVy9ejXDY9esWYNGjRrB1tZWLi4uLpkenxEGeURERES5aNu2bZgwYQKmTZuGmzdvokqVKmjdujWCg4PVHn/mzBl88cUXOH36NC5duoTChQujVatW8Pf3z9LrMsgjIiIiRUqCnsaWrFi8eDGGDRuGQYMGoXz58li1ahXMzMywfv16tcdv3rwZo0aNQtWqVeHs7Iy1a9ciMTERJ0+ezNLrMsgjIiIiyqKYmBi8evVKZRHb3hUbG4sbN27IKtcU+vr6cl1k6d5HVFQU4uLikDdv3ixdI4M8IiIioiyaM2cOrK2tVRax7V2hoaFISEiAg4ODynaxHhgY+F6v9d1336FgwYIqgeL74Dh5REREpEiaHCdvypQpsp1dWsbGxjn+OnPnzsXWrVtlOz3RaSMrGOQRERERZZEI6N4nqLO3t4eBgQGCgoJUtot1R0fHTJ+7cOFCGeSdOHEClStXzuolsrqWiIiIlEkJQ6gYGRmhRo0aKp0mUjpR1KtXL8PnzZ8/HzNmzMCRI0dQs2bNbJUPM3lEREREuUhU6w4YMEAGa7Vr18Yvv/yCyMhI2dtW6N+/P5ycnFLb9M2bNw8//vgj/v77bzm2XkrbPQsLC7m8LwZ5REREpEhKmbu2Z8+eCAkJkYGbCNjE0CgiQ5fSGcPX11f2uE2xcuVK2Su3W7duKucR4+z99NNP7/26DPKIiIiIctno0aPloo7oVJHWkydPcuQ1OYQKERERkQ5iJo+IiIgUSSG1tRrDTB4RERGRDmImj4iIiBRJKR0vNIWZPCIiIiIdxCCPiIiISAexupaIiIgUKSlJT9OXoNWYySMiIiLSQczkERERkSIlavoCtBwzeUREREQ6iJk8IiIiUiQOoZI5ZvKIiIiIdBCDPCIiIiIdxOpaIiIiUiRW12aOmTwiIiIiHfRBmby4uDgEBgYiKioK+fLlQ968eXPuyoiIiIgywUxeDmfyIiIisHLlSjRp0gRWVlYoVqwYypUrJ4O8okWLYtiwYbh27VpWT0tEREREmgryFi9eLIO6DRs2wMXFBXv37sXt27fh6emJS5cuYdq0aYiPj0erVq3Qpk0beHl55eS1EhEREVFuVNeKDN2///6LChUqqN1fu3ZtDB48GKtWrZKB4Llz51C6dOmsvAQRERHRe0kE567NsSBvy5Yt73WcsbExRowYkZVTExEREZG2dLxISkpCWFgY9PT0YGdnl3NXRURERPQf2PEiF4ZQET1q+/fvD1tbWzg4OCB//vzysaiqDQoKys4piYiIiEiTmbxXr16hfv36eP36NQYNGgRnZ2eZ0Xvw4IGszj1//jxu3rwJCwuLnLxOIiIiIhXM5OVwkLd06VIYGBjg/v37ctiUtL7//ns0aNAAy5Ytw9SpU7N6aiIiIiLSVHXtwYMHZQD3boAniGrbKVOmYP/+/Tl1fURERET0MYI8MSaeqK7NiNjn4eGRnWshIiIiem8JGlx0MsgTbfJsbGwy3C/2iWOIiIiISEFt8kQnC339jGNDMZyKOIaIiIgoNyUw3Mj5IK9MmTIymMtoPxEREREpLMgT05URERERkY4FeQMGDMidKyEiIiLKgnhWHubetGYpoqOjsW3bNkRGRqJly5YoXbp0TpyWiIiIiD5WkDdhwgTExcXh119/leuxsbGoV6+eHBzZzMwMkyZNwvHjx+U2IiIiotySAPX9AyibQ6gcO3ZMZutSbN68GT4+PvDy8kJ4eDi6d++OmTNnZvW0RERERKTJIM/X1xfly5dXCfq6deuGokWLyh63Y8eOxa1bt3LyGomIiIgot4M8MUZe2mFSLl++jLp166oMhiwyekRERES53fFCU4tOBnnlypVLnZtWtMMTmb1mzZql7hdVtw4ODjl7lURERESUux0vRMeKXr164eDBgzLIa9u2LYoXL566/9ChQ6hdu3ZWT0tERESUJZx/IYczeZ07d5aBXOXKlTF+/Hg5dEpaooftqFGjsnpaIiIiItL0OHktWrSQizrTpk370GsiIiIieg8KaRynlCBv3759ardbW1vLOW0LFCiQE9dFRERERB8zyOvUqVOG+8QQKqK93po1a2S1LREREREppE1eYmKi2kUMmyJmurh58yYHQyYiIqKPU1urqeVTmbs2pbq2efPmWLJkCcaNG4fZs2fn1Kk/WPHSDVCqXDMYm1riVXgA7tzYgxdhvmqPbdBiFOwdSqXbHuj/AFfOroWenj7KVWkLh4LlYGaRF/Gx0QgJ8sSD2wcR/eYVlKZajbqoU6cxzC0sEBwUiBPH9uHZMz+1x1asVB3t2ndX2RYfH4dF839MXf9u6hy1zz198hCuXjkHpejduSGG9GqOfHmt4P7IHzOW7sJdN/XvmVLFHPH1kLaoUKYQChWww+xfd2PTjrMqx5ibGmPs0LZwaVQZdrYWeODlj9nLduOuu/pzarNRPRvj2wEucLS3gqunP8bM3Y5r93zUHlu+ZAH8PKodapQrgmJOdhg3fyeWbj6tckyj6qXw7UAX1ChXGAXz26DTuNX45/QdKBHL5sNdux2HdVujcd8jHiFhSVg+ywIujYzwqWO5kEaDvBTOzs7w81MfJGhCwSJVUaF6R9y5tgPhob4o4dwY9ZoNx8n9cxEb8zrd8VfPbYS+vkHqupGxGZp+9g0CfF3lukEeI1jbOsHj3jEZMBoamaFSjU6o03gIzh5dAiVxLlcJzVu0w7EjexEQ8BQ1azVAj16DsWb1IkRFRap9Tkx0tNyf4t0fM8uXzlJZL1GyLD5r1wUeHvegFJ81r4YpX3XGtEXb4frgCQZ0b4p1C0eiTZ9ZeP4i/XvG1MQIfgGhOHL6FqaM6az2nDO/64XSxQtg0qy/EBz6Eh1a1cSGxaPQtv8cua4UPVpXx+JvumDEzK24cvcJxvVphqMrR6Nsx+kIeZ6+bMxMDOHtF4Ydx29hyTdd1Z7T3NQIrh5+WL/3EvYsGQ6lYtnkjDfRSXAuaYCubY0x5vv076lPFcslIwpJqSmluva/eHt7o2DBgtAWpZybwOfRZfh6X0PEqyC4Xt2JhPg4FC2pfiy/uNgoxERHpC75HMsiISEuNciLj4vGpdOr5frriBCEh/ngzvXdsLErDFMzGyhJrdqN4Hr7Gu7euYGw0GAcPbwXcfGxqFSlZobPSUISIiNfpy5Rkao34bT7xFKqdDn4+Hjj5QvlzIIyqEdTbD9wEbsPX8EjnyAZ7EVHx6Jru7czu6QlsnHzV+7DoVO3EBsbn26/sZEhWjWuggUr9+G66yP4+odi+YYj8PEPRe9ODaAkE/q1wJrdF7Hxn8tw8w6UwV5UdCwGd6qn9vjr930xackebDtyAzFqykY4cuEBflhxAHtPJX/GlIplkzMa1zXCuGFmaNmY2TuWC2lVkHf79m188803aNeuHbSBnr4BrPMWQkigZ5qtSXLd1r7Ye52jaMk68Pe5hYSE2AyPMTQ0QVJSIuJi30ApRLbSsUBB+Dx5mGZrEp48fgQnpyIZPs/IyAgjvpqEkaO/Q5du/WBvnz/DY83MLVCylDPu3L4OpTDMY4AKZQrj4vW37xkxjd/FG56oVuH93jPvymOgjzx5DNIFOTExcaheqQSUVDaiSvXEZXeVshHr9Sor5+/IDSwbItKJ6lpbW1vZi/ZdkZGRiI+PR8uWLTF9+vRMzxETEyOXtOLi4mFomLO1x8bG5jKYERk5ldePjoClVcbBSQobuyKwsimAW1dUB3xOS18/D8pX+xx+PrcQH6/6N2kz0ftZlI3ItqUVFRkBO7t8ap/z/HkoDh3YhZDgQBibmKB2nUbo238k1q1ZgoiIV2rb8MXGxsDT4z6UwtbaXAZkYeGq75mw5xEoUeS/3zPqRL6Jwc17jzFqQCt4+wQiNDwCn7eogaoVisHXPwRKYW9rIcsmKEy1bMS6c3FHfMpYNkQakpTIos9ElqOqX375Re12KysrlC1bFuXLl//Pc8yZMyddINizS1180VV9lY+mFC1RBy/DAzLspCE6YdRs2F88wp2rO6HrAvx95ZLC388HQ4dPQNVqdXDu3+Ppjq9cpQYe3L+NhAT11XSfkkkz/8Tsyb1xbs8MxMcn4IGXHw6evIkKZQtp+tKIiEhHZTnIGzBgwAe/6JQpUzBhwgSVbcf2fI+cFhMTicTEBBibWKpsF+vR72T33mVgYASnolXhfvdIhgFerYYDYGaeFxdO/qaoLJ4QFRUly8bc3EJlu5m5JSIjMy+bFGLonKCgANjY2qXbV6hwMdjZ5cc/e7ZAScJfiox0AuxsVd8zdnktEfr8/cpFnacBYej39a+yk4aFuQlCwl5hyU8D5HalCA1/LcvGwU61bMR6YKjyepbnJJYNkYZw8tqca5MnqmRz4nhjY2OZ+Uu75HRVrZCUmICXz/2Qz6F0mq16yOdYGuGhTzJ9bsEiVaBvkAdPH9/IMMAzt7THxVMrZWcNpREBXuCzABQtVjLNVj0UK1YS/mmydZkR1fb58jsg8nX64KdylZpyKBZRtaskcfEJuO/5FPVqlFH5O+tVL4Nb9zN/z7yPN9GxMsCzsjBFw1rOOHn+LpRUNjfcnqJFnbIqZSPWL93xxqeMZUNE2ihLkVWpUqUwduxYmc3LaPoy2RD7xAksXrwYjRs3llk7TXrofhbV632BF8+fIjzMFyXLNpHDoPh6X5X7xb43Ua/g5nowXYeLZ3730gVwMsBrNBA2tk64fHadXE/JFMbGRsnAUimuXT0nx70LfOaPZ2IIldoNYGhoJHvbCmKfaGv375mjcr1+w+YI8H+K8PBQmBibonbdxrCysoWr6zWV8xoZGaOscyWcPqlapkqxYfsZzJvSB/c8fHHHzRcDujeBqakRdh+6IvfPm9oHQaEvsfj3A6mN7ksWS26TZmSYBw721nAu5YSoNzGyJ60gAjrRlPXx02AUccqHSSM7wNs3OPWcSrH4z5PYNKO/7DV79d4TjOvbXI4BuGHvZbl/08z+8A9+ganL9qWWjRgrTzAyNIBTfhtUKVsIr6Ni8OhpcntE8fxSRd62Ay3uZCePef4yEk8DldMrm2WTMyKjkuDr//Y+6vcsEW5e8bC20kNBh7fDW31qWC4ZYZu8HAvyzpw5g6lTp+Knn35ClSpVULNmTTlciomJiZzx4sGDB7h06RLy5Mkjg7svv/wSmhbgexvGJhZwrtwGxiZWeBXuj8unf0dMdHKHA1MzWxmYpmVhmQ92+Uvg4qlV6c5nYmaNAoUqysfN2n6jsu/8iRUIC34EpXB3uwszMws0bOwCc3NLBAc9w/ZtG1KHRbGyslEpGxMTU7Rp21keGx39BkGB/vjrj5Vy+JW0ypWvLAOaBw+UOSTG4VO3kNfGAl8PbisHQ3Z76Ieh36xK7YxRwMEWiWnKJb+9Nf5ZPyl1fcgXLeRy5ZYX+o9dLrdZWphgwvD2cMxngxcRkTh21hVL1hxEfIKyblDbj95EPltL/DzqczjaW+K2hz/ajFqB4P+vyi7iaIvExLdlUzC/NW5vf/tDTwx6LJYz1zzRbOhSua1mhSI4s25c6jFLvu0m/y+GaRn0459QCpZNzrjnEY8BY9/WDsxdnvxDu1MbI8ydqtq85FPCcqHs0Et6N8J5D76+vtixYwfOnTsHHx8fvHnzBvb29qhWrRpat26Nzz77DAYGWfvF9c/fqm306C33J8YsDjXWH1FeNfnH4vmSnV0o6xKP3WSxUZbpOVzSWKnpVflKY6+d5LoC2i5bDeGKFCmCiRMnyoWIiIhIIziESu4OhhwbGwsPDw85Rh4RERERaQf9DxmCY8iQIXJQ3QoVKsgqXGHMmDGYO3duTl4jERERkfpMnqYWXQ7yRMcKV1dX2RlDdLxI4eLigm3bMp4hgoiIiIhyX7YHp9u7d68M5urWrasyzZnI6j16pJwepkRERES6KNtBXkhICPLnz692AGR1c9sSERER5SxlVJsqrrpWjJF38ODbwW5TAru1a9eiXj3tmoOWiIiI6FOT7Uze7Nmz5Xh4YgBk0bN26dKl8vHFixdx9uzZnL1KIiIioncppAOE4jJ5DRs2xO3bt2WAV6lSJRw7dkxW34oZL2rUqJGzV0lEREREHyeTJ5QsWRJr1qz5kFMQERERZU/WJ+36pGQ7k3fo0CEcPZo8cX1aYtvhw4c/9LqIiIiISBNB3uTJk5GQkJBuu5gKV+wjIiIiIgVW13p5eaF8+fLptjs7O+Phw4cfel1ERERE/4EdL3Ilk2dtbQ1vb+9020WAZ25unt3TEhEREZEmg7yOHTti3LhxKrNbiABv4sSJ6NChQ05cGxEREVHGOHdt7gR58+fPlxk7UT1bvHhxuZQrVw52dnZYuHAh35JERERESmyTJ6prxcDHx48fh6urK0xNTVG5cmU0btw4Z6+QiIiIiD7uOHliKrNWrVrJhYiIiOij4owXORfkLVu2DMOHD4eJiYl8nJmvv/46K6cmIiIiIk0FeUuWLEGfPn1kkCceZ5bhY5BHREREuYtDqORYkPf48WO1j4mIiIhIB3rXxsXFyXlr3dzccv6KiIiIiN537lpNLboa5BkaGiI6Ojrnr4aIiIiINDtO3ldffYV58+YhPj4+Z66EiIiIiDQ/hMq1a9dw8uRJHDt2DJUqVUo3ldnu3btz4vqIiIiI1OMQKrkT5NnY2KBr167ZfToRERERaVOQl5iYiAULFsDT0xOxsbFo3rw5fvrpJznjBREREdFHw0xezrbJmzVrFqZOnQoLCws4OTnJQZFF+zwiIiIiUnCQ98cff+C3337D0aNHsXfvXuzfvx+bN2+WGT4iIiIiUmiQ5+vri7Zt26auu7i4yBkuAgICcvraiIiIiDKRpMFFB4M8MWSKmNbs3XHzxADJRERERKTQjhdJSUkYOHAgjI2NU7eJgZFHjBihMowKh1AhIiKiXMWOFzkb5A0YMCDdtr59+2b1NERERESkTUHehg0bcudKiIiIiLKCmbzcmdaMiIiIiLQXgzwiIiIiHZTtac2IiIiINCpJGUOZaAozeUREREQ6SC9JjIlCqWJiYjBnzhxMmTJFZZgYYtlkhu8blk128H3DcuF7hnITg7x3vHr1CtbW1nj58iWsrKxytfCVhmXDsuH7hp8p3ms0i/dhygpW1xIRERHpIAZ5RERERDqIQR4RERGRDmKQ9w7R2WLatGnsdKEGyyZjLBuWTXbwfcNy4XuGchM7XhARERHpIGbyiIiIiHQQgzwiIiIiHcQgj4iIiEgHMcgjyqaBAweiU6dOGe7/6aefULVq1U+2fM+cOQM9PT28ePECukT8TXv37tX0ZeisYsWK4ZdfftH0ZRDpBJ0P8i5dugQDAwO0a9cOn3pAIr6cxGJoaIjixYtj0qRJiI6Oxqf29xsZGaFUqVL4+eefER8fn2uv+c033+DkyZP4mFatWgVLS0uVv+v169fy37xp06Zqg7BHjx591GtU0nsl7dKmTRuNXZP4txs3bhw+hc/dtWvXMHz4cChdbgSrHh4ecHR0REREBDSpV69eWLRokUavgd6Pzgd569atw5gxY/Dvv/8iICAgw+PEFL65+YWvDcSX1LNnz+Dt7Y0lS5Zg9erVcriYT0XK3+/l5YWJEyfKTNuCBQuyfJ6EhAQkJib+53EWFhaws7PDx9SsWTMZ1F2/fj1127lz5+QXw5UrV1SC+tOnT6NIkSIoWbJkll7jU/qspF22bNkCpYuNjdXaz13KteXLlw9mZmbQJtoSrIo51cX3mfghJ2zcuBE2NjbvlXHes2cP6tatK6ftFM+vUKGCyg8Hca6Uv1EkRmxtbVGnTh35d4ppPtP6/vvvMWvWrHTbSfvodJAnvuy2bduGkSNHykyeeBO/m8U4fPgwatSoIcerOn/+vPzynjNnjsx0mZqaokqVKti5c6fKF/yQIUNS95ctWxZLly6FEoi/UXzZFy5cWFYzuri44Pjx46kTpX/99dfInz8/TExM0LBhQ3mTSuvs2bOoXbu2PE+BAgUwefJklZucyDaIG5C4cYgbhIODA9asWYPIyEgMGjRI3ljEzVGUuSb//qJFi8r3hPj79+3bh8WLF6NSpUowNzeXZTNq1Cj53kmRciMVx5YvX16ex9fXN935RXmJL6h58+apra5Nqd5duHChLD8RAH711VeIi4tLPUZ8GYr3qnhviffY33//naWMgHg/inOL93cK8bhjx47yfJcvX1bZLoLCP//8EzVr1pT/PqJ8evfujeDg4A/+rKS4ceOGPL/44q5fv77MRqS1cuVKGWiKL09x/eJ6Ujx58kS+9u3bt1O3iepfsS3lbwwPD0efPn1k2YvrKF26NDZs2JB6/NOnT9GjRw/5b5g3b15ZFuK87/NeSbuI97Q6mZ3/2LFj8vP0bpX12LFj0bx5c/k4LCwMX3zxBZycnGQZifdi2oBSvG/EZ0/cZ1K+hFPO/z6fydGjR8vPpL29PVq3bg1t+dylfB5EsFCwYEH5by+8+34XZffll1/K+4koy4oVK+LAgQOp+8V7sVGjRvLfXnx+xX1M3HN0LVgV9xzxd4tyyypRo9CzZ0907doVV69elZ9JUe5p7z2CmK9d/I1+fn64ePGiDFL/+OMPeR9LmyQR/wbiM/vXX3/lyN9GuUeng7zt27fD2dlZ3jz69u2L9evXyyxEWuKmOHfuXLi5uaFy5cryS0u8qUW11/379zF+/Hj5XHEzFcQXW6FChbBjxw48ePAAP/74I6ZOnSpfS0nu3bsnP8Tii1UQVbe7du3Cpk2bcPPmTRmMiS+E58+fy/3+/v5o27YtatWqBVdXV/nFLLKkM2fOVDmveL74MhE3EhHwiZt69+7d5Ze7OG+rVq3Qr18/REVFQdPEl4K4Ievr62PZsmXy31tc/6lTp2R5pCWuVwRva9eulceJYDgt8ZyWLVvKG+d3332X4WuK7JmoHhX/F68lAsi0Pz769+8vb6YigBH/Hr///rtKwPU+ROAmzp/2NcWXfZMmTVK3v3nzRmb2xLHiRj9jxgz57yp++YsAQt0XSVY/Kyn+97//yaodkV3MkycPBg8erJJdEAGP+NIU70nxZS5+EKS9/v/yww8/yM+iCELFtYn3pngPCuJvE+9jEcCKjOaFCxdkhlV8YedEVuu/zt+iRQsZ/Il/y7Q/FMWPTxGYCiK7KoLngwcPyjIQX6ziMyI+Q4II7urVq4dhw4alZhVFMJOVz6T4nItrE/9W2vK5Swk+RNAvfmymDdxSiPvtZ599Jq9dBBTi31m8B0WmSRCfJVHWIni5c+eOLFcR9InAVteCVfEdI35IiR8DWbV//340aNAA3377rby+MmXKyGtesWKFynHiB4T4G8UPhnLlysmEhvieED96370ntm/fHlu3bs3ytdBHlqTD6tevn/TLL7/Ix3FxcUn29vZJp0+fluvi/+LP37t3b+rx0dHRSWZmZkkXL15UOc+QIUOSvvjiiwxf56uvvkrq2rVrkjYbMGBAkoGBQZK5uXmSsbGx/Nv19fWTdu7cmfT69eskQ0PDpM2bN6ceHxsbm1SwYMGk+fPny/WpU6cmlS1bNikxMTH1mBUrViRZWFgkJSQkyPUmTZokNWzYMHV/fHy8fL1+/fqlbnv27Jl87UuXLiV97L+/Y8eO8rH4G44fPy7L4Ztvvkl37I4dO5Ls7OxS1zds2CCv+fbt22rPuXv3blkOW7duVdk/bdq0pCpVqqgcX7RoUVkuKbp3757Us2dP+djNzU2+zrVr11L3e3l5/V879+8aVfPFcVxBRAuxEisbxUoRkkKsUgiC+AsUexVUUiko+AcIKthYaGcpWiqixkSijdjYpIiFhkgINv5EjIVY3YfXfJll9rqb3c2Tr0n2OW/Y5zF7797dmTsz58znnHPTezdu3Oi6rbdv3079bszPzc1Va9asqT5//lzdu3evGhoaSuc8f/48XXd2dvaPz/t+x37+/Pmv5kr+3Pj4eOP4kydP0nu/fv1qzNEzZ840XUOfHDhwIP17ZmYmnT8xMdE4/v379/RensuHDx+uTp061bIv7ty588e4/f37d7V+/fpqbGys41wpX1euXEnHffeDBw+6vv758+ervXv3No5739jTjnYcPHiwunjxYuNvc8t1SrqdkwMDA9VSMd+8c2zz5s2pv0rMkTze9ZV16t27dy2vb7ydPXu26b2XL1+mz+QxttjtyBw5cqQaHBxMx/S5de7NmzfpVW+H+7Fnz55qx44d1bNnz6r3799Xjx49qkZGRtLx6enpNMacPzU1Vb169Srdt5MnTzZ93/DwcNNvsDZt3Lix5W8ux+m1a9eqTZs2VZOTk23bON+1jL0NGzY0rV1Pnz6t1q5dm9aCYPmyZlWfYndoJ0wpAAWBXG2nWyagCyNlpqenk2JDkSmx6xwYGGj8bfdDFSSfU0QcXwlVlFQbu327Qzl5+iTvgCkSdnoZifrCQJQR+D81wU4v43w7PNK+3C5QeDJ220KSwk8Zu1j0qk4tBnbNVBZtpRAISwq5jI+PJ1Xq7du3q+bm5lK4i7piLORwCyWkbFuGGua6wpTzVdpm5MFkFQJ2zJOTk40x654MDg42jlNU24UJ22F8u8fCx0KZdu1CR5Q8Kpm2UQq3bt2a7pvQjX6gBjk/5xsa38LT/2auoOw37c3333cbV/W8JeOqlxQIqopxnJVi94FyDG3yW3MOU0YfzFdwkudKiVBsnW6uT7GTC0WhpfTcvXs3heRzLhVl7+rVq0mpoc7pQ+kTnUJ93c5JKuFS0m7eSVWwNuRoQiuE6UVOjOFW6H/rlz7N8G98z8zMTFKjFhvXp0COjY2laMWXL19SqgeVv11brDHskXuW22L+Zaw/xknOkZNyILpgzhqHlL/Z2dmmOdgLfielWX9TIo1Hc8V3Uig7ISKm2ENqQY5iGMvG6sePH9M1g+VJ3zp5nDnG2kAsJ6cBfevWrcZ7Jmcm52EJm9Ql8TwRyNOqJoWfLLAWd3kZjP1yR1s5DeCkkv71k3DPYsE5LMnVvOXf6KZwYbHJhttCbFxwqIQmDx06lBwF4RaGXNhEmMIClg2tEEppTDPyUjiy+pPhrre/m/5Z7L5wjxlGIU9OG0MBbRYGEn5xTE4YZ1C40Yuh5Axy7vxdD2f2OldatbnX+y+UjjLNop5HJJzHAI6MjKSwnxApB0Luo9/JySmdgIy2djNX5qOb65tfxom1wziz8SxD9NYPTq3QXs4NZewXq0iivG9LQat51+1vM+869b8QqNBmnezk9ouzSlDg7C0E/Wyu5lQRublSJIw7T6DotKHI869cA/O9WQ6pN8F/zMnj3MkV4ojZrZTY5UtqtjOpUybVZ8NYR24IlUByfmYlPoKC8ZRLeOHChaRE5JydvCOzkFGC8s7SIiOvyGTPE935nFyL10qgleGmYllIjZXsUPSSXyn36/79+0k9k3zvs50cvXbIlTF2JyYmGuqLe8NRW4hhpdb5rDyczNDQUMpdoypwOKiXdufynDiAKCtz29HNXOkG48o4OnHiROM9f2cFMTtK8tCyQlgWYWSc5xpe8pq0mZNHFZWnRX2QVL7YdHt9igkDbq4YZ+UjnbRXsYZ8RhiPU1NTTSqq+UnxK1kpc7Jbh7kVVGCqpP5o5SDpf3l6C73+SnJWrTX1tcCYs1EzZvL6hVzoo5K2xGbD6/Tp0ylXVp8avxT++aBA+q7yaQE5X3u+zVKw9PRl4YUdl8lAjZHcWr6EdahXrbA4UukkkEtW5rwJAd28eTP9nWV0RpBUb+GR9F2vQl0pKIgQOrRwMfgM4+joaFo0JXnboelDcGpVEZL9OQYPHz5Mj1/hJJaLy0qDceDQusceLaOys9fkdAZe4YV+USW50MeL2HhI5ha+5IRx9vy7nYrYySBRJDlEpRPm3x6dQyVyDgPCaOX2SyRXhNGJbuZKNxhzVC1jUNWiSmdOs2tD24WWcsGHog6PbyhR/GQ8cogVgJj/OUzHuWIcOVHCVVQRzi9jynloh3CpMFT5+vr16x/ndXt95+kfavHx48eb1E5rCgWSwqqNjP2nT5+avkcSv2gB5dnvYNT7dU6WGK82JtZtfaR/bVKsU1DkpN8UWhjrxpB++H8UXmRn1ZwpHbxendVWlM5q/ZUVQpsc57TaGNY3PsYa2imHeUxR8DpVIkutUOVPICnHlSIhm4lc5BQsT/pjJajBiWMs67sYWCw4aaTxVjBwHDc5EgyFyi0yt8dEwAJ87NixlN/nGUJUkFLVW0lYqCyG169fT8ZH36jqs+AwmBzZnA8mJCccxvkQ5h0eHk4OYN3grjS0hWOhctYmgNri3veKijSOnvw6Br2uunQLBVreIsN29OjR5GxzqHoN03DghHcYiZwHmY2m3Jr8qBW7cE6WanHKEWeKAtYNneZKNzAcQka+U74iB9TjT8q8WaFwhoy6SVmuV48ygp4fxpDqNxuXXPXHiHlGJsNs3uaKQTlz8ylvnAj9U748VqhOt9d3H+S4WndyVW3GHDLnhMi121iq53dyerXLPcoh9X6dk3WolULeNlDar8ozzy/3nOPPeaLgcoQ4/WWaTr84q8aH0Gq5tpgzolUq1uUJuq5rsklsVE6lEFbWbzYgzrGB9Bkb3DKvlipsQ0M5t+Ew90Su2FJrQ4lNTT1SFixDlrryIwiC9nz48OGPCtUgCP4uraprOx0rq2vx7du3VAWucn/dunXVzp07q8ePHzeOv379utq3b1+q1FVpu2vXrkZFN1TLe+LB6Oho0/eo0j537ly1bdu2VNW9ffv26tKlS43qeLx48SI9AWLLli2pIlZV8/79+1Mlcv0pAl6rV69Olba7d++uLl++XP348aPpO1UuO/63n5IQ9M5q/1lqRzMIgv9BDZSfI5HbbtruW8UlpWKhuX5BEPQHnuwgpUKUZSmRXqGAyMO+g+VNXxZeBMFKRfhEQYz8OGFaoRIh5HDwgiCQLqSoQspF/bE9fxPrkfzbYPkTSl4QBEEQBEEf0peFF0EQBEEQBP91wskLgiAIgiDoQ8LJC4IgCIIg6EPCyQuCIAiCIOhDwskLgiAIgiDoQ8LJC4IgCIIg6EPCyQuCIAiCIOhDwskLgiAIgiDoQ8LJC4IgCIIgWNV//AMxFcRG5pqKbgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 800x800 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "corr = df.corr()\n",
    "\n",
    "plt.figure(1, (8,8))\n",
    "sns.heatmap(corr, annot=True, cmap='cividis')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "d1991d9b",
   "metadata": {},
   "outputs": [],
   "source": [
    "X = df.drop('Price', axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "79714f18",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Area</th>\n",
       "      <th>Room</th>\n",
       "      <th>Parking</th>\n",
       "      <th>Warehouse</th>\n",
       "      <th>Elevator</th>\n",
       "      <th>Price(USD)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>63.0</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>61666.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>60.0</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>61666.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>79.0</td>\n",
       "      <td>2</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>18333.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>95.0</td>\n",
       "      <td>2</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>30083.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>123.0</td>\n",
       "      <td>2</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>233333.33</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Area  Room  Parking  Warehouse  Elevator  Price(USD)\n",
       "0   63.0     1     True       True      True    61666.67\n",
       "1   60.0     1     True       True      True    61666.67\n",
       "2   79.0     2     True       True      True    18333.33\n",
       "3   95.0     2     True       True      True    30083.33\n",
       "4  123.0     2     True       True      True   233333.33"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "0f13297e",
   "metadata": {},
   "outputs": [],
   "source": [
    "y = df['Price']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "6d6663a2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    1.850000e+09\n",
       "1    1.850000e+09\n",
       "2    5.500000e+08\n",
       "3    9.025000e+08\n",
       "4    7.000000e+09\n",
       "Name: Price, dtype: float64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "aad2804b",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split \n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "e5ce5202",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "model = LinearRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "39fcc117",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: #000;\n",
       "  --sklearn-color-text-muted: #666;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "}\n",
       "\n",
       "#sk-container-id-1.light {\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: black;\n",
       "  --sklearn-color-background: white;\n",
       "  --sklearn-color-border-box: black;\n",
       "  --sklearn-color-icon: #696969;\n",
       "}\n",
       "\n",
       "#sk-container-id-1.dark {\n",
       "  --sklearn-color-text-on-default-background: white;\n",
       "  --sklearn-color-background: #111;\n",
       "  --sklearn-color-border-box: white;\n",
       "  --sklearn-color-icon: #878787;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: flex;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "  align-items: center;\n",
       "  justify-content: center;\n",
       "  gap: 0.5em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label .caption {\n",
       "  font-size: 0.6rem;\n",
       "  font-weight: lighter;\n",
       "  color: var(--sklearn-color-text-muted);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  display: none;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  overflow: visible;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 0.5em;\n",
       "  text-align: center;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-3) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  border: var(--sklearn-color-fitted-level-0) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-0);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  border: var(--sklearn-color-fitted-level-0) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-0);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".estimator-table {\n",
       "    font-family: monospace;\n",
       "}\n",
       "\n",
       ".estimator-table summary {\n",
       "    padding: .5rem;\n",
       "    cursor: pointer;\n",
       "}\n",
       "\n",
       ".estimator-table summary::marker {\n",
       "    font-size: 0.7rem;\n",
       "}\n",
       "\n",
       ".estimator-table details[open] {\n",
       "    padding-left: 0.1rem;\n",
       "    padding-right: 0.1rem;\n",
       "    padding-bottom: 0.3rem;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table {\n",
       "    margin-left: auto !important;\n",
       "    margin-right: auto !important;\n",
       "    margin-top: 0;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:nth-child(odd) {\n",
       "    background-color: #fff;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:nth-child(even) {\n",
       "    background-color: #f6f6f6;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:hover {\n",
       "    background-color: #e0e0e0;\n",
       "}\n",
       "\n",
       ".estimator-table table td {\n",
       "    border: 1px solid rgba(106, 105, 104, 0.232);\n",
       "}\n",
       "\n",
       "/*\n",
       "    `table td`is set in notebook with right text-align.\n",
       "    We need to overwrite it.\n",
       "*/\n",
       ".estimator-table table td.param {\n",
       "    text-align: left;\n",
       "    position: relative;\n",
       "    padding: 0;\n",
       "}\n",
       "\n",
       ".user-set td {\n",
       "    color:rgb(255, 94, 0);\n",
       "    text-align: left !important;\n",
       "}\n",
       "\n",
       ".user-set td.value {\n",
       "    color:rgb(255, 94, 0);\n",
       "    background-color: transparent;\n",
       "}\n",
       "\n",
       ".default td {\n",
       "    color: black;\n",
       "    text-align: left !important;\n",
       "}\n",
       "\n",
       ".user-set td i,\n",
       ".default td i {\n",
       "    color: black;\n",
       "}\n",
       "\n",
       "/*\n",
       "    Styles for parameter documentation links\n",
       "    We need styling for visited so jupyter doesn't overwrite it\n",
       "*/\n",
       "a.param-doc-link,\n",
       "a.param-doc-link:link,\n",
       "a.param-doc-link:visited {\n",
       "    text-decoration: underline dashed;\n",
       "    text-underline-offset: .3em;\n",
       "    color: inherit;\n",
       "    display: block;\n",
       "    padding: .5em;\n",
       "}\n",
       "\n",
       "/* \"hack\" to make the entire area of the cell containing the link clickable */\n",
       "a.param-doc-link::before {\n",
       "    position: absolute;\n",
       "    content: \"\";\n",
       "    inset: 0;\n",
       "}\n",
       "\n",
       ".param-doc-description {\n",
       "    display: none;\n",
       "    position: absolute;\n",
       "    z-index: 9999;\n",
       "    left: 0;\n",
       "    padding: .5ex;\n",
       "    margin-left: 1.5em;\n",
       "    color: var(--sklearn-color-text);\n",
       "    box-shadow: .3em .3em .4em #999;\n",
       "    width: max-content;\n",
       "    text-align: left;\n",
       "    max-height: 10em;\n",
       "    overflow-y: auto;\n",
       "\n",
       "    /* unfitted */\n",
       "    background: var(--sklearn-color-unfitted-level-0);\n",
       "    border: thin solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       "/* Fitted state for parameter tooltips */\n",
       ".fitted .param-doc-description {\n",
       "    /* fitted */\n",
       "    background: var(--sklearn-color-fitted-level-0);\n",
       "    border: thin solid var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".param-doc-link:hover .param-doc-description {\n",
       "    display: block;\n",
       "}\n",
       "\n",
       ".copy-paste-icon {\n",
       "    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZD0iTTIwOCAwTDMzMi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw2Ny45IDY3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNDQ4IDMzNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4ek00OCAxMjhsODAgMCAwIDY0LTY0IDAgMCAyNTYgMTkyIDAgMC0zMiA2NCAwIDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OHoiLz48L3N2Zz4=);\n",
       "    background-repeat: no-repeat;\n",
       "    background-size: 14px 14px;\n",
       "    background-position: 0;\n",
       "    display: inline-block;\n",
       "    width: 14px;\n",
       "    height: 14px;\n",
       "    cursor: pointer;\n",
       "}\n",
       "</style><body><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LinearRegression()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>LinearRegression</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.linear_model.LinearRegression.html\">?<span>Documentation for LinearRegression</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\" data-param-prefix=\"\">\n",
       "        <div class=\"estimator-table\">\n",
       "            <details>\n",
       "                <summary>Parameters</summary>\n",
       "                <table class=\"parameters-table\">\n",
       "                  <tbody>\n",
       "                    \n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('fit_intercept',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.linear_model.LinearRegression.html#:~:text=fit_intercept,-bool%2C%20default%3DTrue\">\n",
       "            fit_intercept\n",
       "            <span class=\"param-doc-description\">fit_intercept: bool, default=True<br><br>Whether to calculate the intercept for this model. If set<br>to False, no intercept will be used in calculations<br>(i.e. data is expected to be centered).</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">True</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('copy_X',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.linear_model.LinearRegression.html#:~:text=copy_X,-bool%2C%20default%3DTrue\">\n",
       "            copy_X\n",
       "            <span class=\"param-doc-description\">copy_X: bool, default=True<br><br>If True, X will be copied; else, it may be overwritten.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">True</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('tol',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.linear_model.LinearRegression.html#:~:text=tol,-float%2C%20default%3D1e-6\">\n",
       "            tol\n",
       "            <span class=\"param-doc-description\">tol: float, default=1e-6<br><br>The precision of the solution (`coef_`) is determined by `tol` which<br>specifies a different convergence criterion for the `lsqr` solver.<br>`tol` is set as `atol` and `btol` of :func:`scipy.sparse.linalg.lsqr` when<br>fitting on sparse training data. This parameter has no effect when fitting<br>on dense data.<br><br>.. versionadded:: 1.7</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">1e-06</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('n_jobs',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.linear_model.LinearRegression.html#:~:text=n_jobs,-int%2C%20default%3DNone\">\n",
       "            n_jobs\n",
       "            <span class=\"param-doc-description\">n_jobs: int, default=None<br><br>The number of jobs to use for the computation. This will only provide<br>speedup in case of sufficiently large problems, that is if firstly<br>`n_targets > 1` and secondly `X` is sparse or if `positive` is set<br>to `True`. ``None`` means 1 unless in a<br>:obj:`joblib.parallel_backend` context. ``-1`` means using all<br>processors. See :term:`Glossary <n_jobs>` for more details.</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">None</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('positive',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">\n",
       "        <a class=\"param-doc-link\"\n",
       "            rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.8/modules/generated/sklearn.linear_model.LinearRegression.html#:~:text=positive,-bool%2C%20default%3DFalse\">\n",
       "            positive\n",
       "            <span class=\"param-doc-description\">positive: bool, default=False<br><br>When set to ``True``, forces the coefficients to be positive. This<br>option is only supported for dense arrays.<br><br>For a comparison between a linear regression model with positive constraints<br>on the regression coefficients and a linear regression without such constraints,<br>see :ref:`sphx_glr_auto_examples_linear_model_plot_nnls.py`.<br><br>.. versionadded:: 0.24</span>\n",
       "        </a>\n",
       "    </td>\n",
       "            <td class=\"value\">False</td>\n",
       "        </tr>\n",
       "    \n",
       "                  </tbody>\n",
       "                </table>\n",
       "            </details>\n",
       "        </div>\n",
       "    </div></div></div></div></div><script>function copyToClipboard(text, element) {\n",
       "    // Get the parameter prefix from the closest toggleable content\n",
       "    const toggleableContent = element.closest('.sk-toggleable__content');\n",
       "    const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n",
       "    const fullParamName = paramPrefix ? `${paramPrefix}${text}` : text;\n",
       "\n",
       "    const originalStyle = element.style;\n",
       "    const computedStyle = window.getComputedStyle(element);\n",
       "    const originalWidth = computedStyle.width;\n",
       "    const originalHTML = element.innerHTML.replace('Copied!', '');\n",
       "\n",
       "    navigator.clipboard.writeText(fullParamName)\n",
       "        .then(() => {\n",
       "            element.style.width = originalWidth;\n",
       "            element.style.color = 'green';\n",
       "            element.innerHTML = \"Copied!\";\n",
       "\n",
       "            setTimeout(() => {\n",
       "                element.innerHTML = originalHTML;\n",
       "                element.style = originalStyle;\n",
       "            }, 2000);\n",
       "        })\n",
       "        .catch(err => {\n",
       "            console.error('Failed to copy:', err);\n",
       "            element.style.color = 'red';\n",
       "            element.innerHTML = \"Failed!\";\n",
       "            setTimeout(() => {\n",
       "                element.innerHTML = originalHTML;\n",
       "                element.style = originalStyle;\n",
       "            }, 2000);\n",
       "        });\n",
       "    return false;\n",
       "}\n",
       "\n",
       "document.querySelectorAll('.copy-paste-icon').forEach(function(element) {\n",
       "    const toggleableContent = element.closest('.sk-toggleable__content');\n",
       "    const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n",
       "    const paramName = element.parentElement.nextElementSibling\n",
       "        .textContent.trim().split(' ')[0];\n",
       "    const fullParamName = paramPrefix ? `${paramPrefix}${paramName}` : paramName;\n",
       "\n",
       "    element.setAttribute('title', fullParamName);\n",
       "});\n",
       "\n",
       "\n",
       "/**\n",
       " * Adapted from Skrub\n",
       " * https://github.com/skrub-data/skrub/blob/403466d1d5d4dc76a7ef569b3f8228db59a31dc3/skrub/_reporting/_data/templates/report.js#L789\n",
       " * @returns \"light\" or \"dark\"\n",
       " */\n",
       "function detectTheme(element) {\n",
       "    const body = document.querySelector('body');\n",
       "\n",
       "    // Check VSCode theme\n",
       "    const themeKindAttr = body.getAttribute('data-vscode-theme-kind');\n",
       "    const themeNameAttr = body.getAttribute('data-vscode-theme-name');\n",
       "\n",
       "    if (themeKindAttr && themeNameAttr) {\n",
       "        const themeKind = themeKindAttr.toLowerCase();\n",
       "        const themeName = themeNameAttr.toLowerCase();\n",
       "\n",
       "        if (themeKind.includes(\"dark\") || themeName.includes(\"dark\")) {\n",
       "            return \"dark\";\n",
       "        }\n",
       "        if (themeKind.includes(\"light\") || themeName.includes(\"light\")) {\n",
       "            return \"light\";\n",
       "        }\n",
       "    }\n",
       "\n",
       "    // Check Jupyter theme\n",
       "    if (body.getAttribute('data-jp-theme-light') === 'false') {\n",
       "        return 'dark';\n",
       "    } else if (body.getAttribute('data-jp-theme-light') === 'true') {\n",
       "        return 'light';\n",
       "    }\n",
       "\n",
       "    // Guess based on a parent element's color\n",
       "    const color = window.getComputedStyle(element.parentNode, null).getPropertyValue('color');\n",
       "    const match = color.match(/^rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)\\s*$/i);\n",
       "    if (match) {\n",
       "        const [r, g, b] = [\n",
       "            parseFloat(match[1]),\n",
       "            parseFloat(match[2]),\n",
       "            parseFloat(match[3])\n",
       "        ];\n",
       "\n",
       "        // https://en.wikipedia.org/wiki/HSL_and_HSV#Lightness\n",
       "        const luma = 0.299 * r + 0.587 * g + 0.114 * b;\n",
       "\n",
       "        if (luma > 180) {\n",
       "            // If the text is very bright we have a dark theme\n",
       "            return 'dark';\n",
       "        }\n",
       "        if (luma < 75) {\n",
       "            // If the text is very dark we have a light theme\n",
       "            return 'light';\n",
       "        }\n",
       "        // Otherwise fall back to the next heuristic.\n",
       "    }\n",
       "\n",
       "    // Fallback to system preference\n",
       "    return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n",
       "}\n",
       "\n",
       "\n",
       "function forceTheme(elementId) {\n",
       "    const estimatorElement = document.querySelector(`#${elementId}`);\n",
       "    if (estimatorElement === null) {\n",
       "        console.error(`Element with id ${elementId} not found.`);\n",
       "    } else {\n",
       "        const theme = detectTheme(estimatorElement);\n",
       "        estimatorElement.classList.add(theme);\n",
       "    }\n",
       "}\n",
       "\n",
       "forceTheme('sk-container-id-1');</script></body>"
      ],
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "bfbfbb84",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Area</th>\n",
       "      <th>Room</th>\n",
       "      <th>Parking</th>\n",
       "      <th>Warehouse</th>\n",
       "      <th>Elevator</th>\n",
       "      <th>Price(USD)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2896</th>\n",
       "      <td>84.0</td>\n",
       "      <td>2</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>80000.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1278</th>\n",
       "      <td>133.0</td>\n",
       "      <td>3</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>266666.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2107</th>\n",
       "      <td>120.0</td>\n",
       "      <td>3</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>266666.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>321</th>\n",
       "      <td>55.0</td>\n",
       "      <td>1</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>83000.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3236</th>\n",
       "      <td>113.0</td>\n",
       "      <td>3</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>105666.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>809</th>\n",
       "      <td>120.0</td>\n",
       "      <td>3</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>166666.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>472</th>\n",
       "      <td>73.0</td>\n",
       "      <td>2</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>86666.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>764</th>\n",
       "      <td>80.0</td>\n",
       "      <td>2</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>156666.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1721</th>\n",
       "      <td>105.0</td>\n",
       "      <td>2</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>33333.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3160</th>\n",
       "      <td>90.0</td>\n",
       "      <td>2</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>111666.67</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>649 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       Area  Room  Parking  Warehouse  Elevator  Price(USD)\n",
       "2896   84.0     2     True       True      True    80000.00\n",
       "1278  133.0     3     True       True      True   266666.67\n",
       "2107  120.0     3     True       True      True   266666.67\n",
       "321    55.0     1     True       True      True    83000.00\n",
       "3236  113.0     3     True       True      True   105666.67\n",
       "...     ...   ...      ...        ...       ...         ...\n",
       "809   120.0     3     True       True      True   166666.67\n",
       "472    73.0     2     True       True      True    86666.67\n",
       "764    80.0     2     True      False      True   156666.67\n",
       "1721  105.0     2     True       True     False    33333.33\n",
       "3160   90.0     2     True       True      True   111666.67\n",
       "\n",
       "[649 rows x 6 columns]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "6d455578",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred = model.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "49fb45c8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2.40000000e+09, 8.00000010e+09, 8.00000010e+09, 2.49000000e+09,\n",
       "       3.17000010e+09, 1.35000000e+10, 5.64999990e+09, 1.98579999e+10,\n",
       "       2.25000000e+09, 7.50000000e+09, 3.95000098e+08, 2.34999990e+09,\n",
       "       3.69000000e+09, 3.48999990e+09, 3.69999990e+09, 1.53500001e+10,\n",
       "       1.19999999e+09, 5.99999999e+08, 3.66600000e+10, 3.90000000e+09,\n",
       "       4.65000000e+09, 4.64000010e+09, 9.00000000e+09, 1.47000000e+10,\n",
       "       9.30000000e+09, 3.12999989e+09, 1.64000001e+10, 3.60000000e+10,\n",
       "       7.40000099e+08, 2.34999990e+09, 1.41999990e+09, 9.99999889e+08,\n",
       "       1.06400001e+10, 1.49999999e+09, 9.99999892e+08, 6.00000000e+09,\n",
       "       1.70000010e+09, 1.19999999e+09, 9.50000099e+08, 4.83999990e+09,\n",
       "       2.40999990e+09, 8.09999999e+08, 2.04999990e+09, 2.00000001e+10,\n",
       "       8.49999894e+08, 2.19999999e+10, 2.25000000e+09, 1.58000009e+09,\n",
       "       2.10000000e+09, 2.34999990e+09, 1.37499990e+09, 3.00000000e+09,\n",
       "       3.81999990e+09, 3.15000000e+09, 1.76000001e+10, 2.69499999e+10,\n",
       "       6.80000010e+09, 2.64000000e+09, 1.90899990e+09, 6.30000000e+09,\n",
       "       1.25000009e+09, 9.00000000e+09, 7.49999988e+08, 4.50000000e+09,\n",
       "       1.07499999e+10, 1.25000001e+10, 1.23000000e+10, 1.37999999e+09,\n",
       "       1.35000000e+10, 1.86000000e+09, 3.48999989e+09, 8.70000000e+09,\n",
       "       1.52250000e+10, 7.97499900e+08, 3.60000000e+10, 5.70000000e+09,\n",
       "       1.59999989e+09, 2.19999990e+09, 1.44999989e+09, 5.85000000e+09,\n",
       "       3.60000000e+09, 6.29999998e+08, 3.95000010e+09, 8.31999990e+09,\n",
       "       1.11999989e+09, 5.00000095e+08, 1.71999990e+09, 3.84999898e+08,\n",
       "       7.87200000e+09, 3.65000010e+09, 9.20000093e+08, 3.39999900e+08,\n",
       "       6.50000101e+08, 1.15499999e+09, 3.99999990e+09, 4.29999892e+08,\n",
       "       4.50000000e+10, 3.45000000e+09, 9.99999990e+09, 1.10000010e+09,\n",
       "       1.50000001e+09, 2.70000000e+09, 4.20000000e+10, 2.15000001e+10,\n",
       "       2.49999999e+10, 9.80000099e+08, 2.49999990e+09, 1.63299990e+09,\n",
       "       4.89999990e+09, 1.75500000e+09, 1.74999990e+09, 3.60000001e+08,\n",
       "       3.50000101e+08, 1.25000001e+10, 1.10000010e+09, 2.07999990e+09,\n",
       "       2.64999990e+09, 1.15010009e+09, 5.58800010e+09, 1.08000000e+10,\n",
       "       2.90000010e+09, 1.02000000e+10, 3.26400000e+10, 1.56999990e+09,\n",
       "       3.35000010e+09, 1.20000000e+09, 7.50000000e+08, 5.30000010e+09,\n",
       "       6.26400000e+09, 2.49999990e+09, 6.09999893e+08, 8.70000000e+09,\n",
       "       3.50000010e+09, 1.86999990e+09, 5.90000094e+08, 5.17499999e+09,\n",
       "       1.55000001e+10, 7.10000010e+09, 1.58000009e+09, 4.52000010e+09,\n",
       "       9.59999999e+08, 2.79999990e+09, 1.85000010e+09, 6.30000000e+09,\n",
       "       6.30000000e+09, 6.90000000e+09, 1.77099990e+09, 8.40000000e+09,\n",
       "       2.52999999e+10, 3.69999990e+09, 6.05000100e+08, 1.49000010e+09,\n",
       "       9.99999990e+09, 8.40000000e+09, 1.31499990e+09, 2.40000000e+10,\n",
       "       7.85000010e+09, 3.24999990e+09, 1.55000001e+10, 5.55500010e+09,\n",
       "       8.69999993e+08, 3.05000010e+09, 6.69999898e+08, 7.40000010e+09,\n",
       "       5.85000000e+09, 1.28000010e+09, 5.49999901e+08, 7.59999894e+08,\n",
       "       6.00000000e+09, 1.62000000e+09, 8.60000010e+09, 1.29999999e+10,\n",
       "       1.44999990e+09, 8.39999993e+08, 9.50000094e+08, 1.05000000e+10,\n",
       "       2.70000000e+09, 5.00000010e+09, 5.00000010e+09, 5.79999899e+08,\n",
       "       6.42000000e+09, 6.95799990e+09, 1.67000010e+09, 1.92999990e+09,\n",
       "       7.10000089e+08, 5.19999990e+09, 4.74999990e+09, 5.60000010e+09,\n",
       "       1.85000001e+10, 3.29999999e+09, 2.79999990e+09, 5.49999900e+08,\n",
       "       1.95000000e+09, 6.09999990e+09, 3.35000009e+09, 5.70000000e+09,\n",
       "       1.44999990e+09, 3.50000001e+10, 1.41000000e+09, 4.65000000e+09,\n",
       "       2.85000000e+09, 3.15000000e+09, 2.10000000e+09, 5.19999893e+08,\n",
       "       4.50000001e+08, 4.10000010e+09, 6.99999990e+09, 4.29999990e+09,\n",
       "       3.60000000e+09, 2.39999994e+08, 5.30000099e+08, 2.30000010e+09,\n",
       "       3.84999990e+09, 1.10000001e+10, 3.50000010e+09, 8.49999990e+09,\n",
       "       1.85000010e+09, 1.35999999e+10, 2.79999991e+09, 2.19999990e+09,\n",
       "       1.20000000e+10, 4.37000010e+09, 2.03000010e+09, 9.99999900e+08,\n",
       "       7.79999999e+08, 7.53999899e+08, 9.80000010e+09, 1.72800000e+10,\n",
       "       1.61499990e+09, 6.35000088e+08, 5.07999990e+09, 8.99999999e+08,\n",
       "       7.50000001e+08, 9.99999990e+09, 1.10000010e+09, 8.19999990e+09,\n",
       "       3.50000010e+09, 1.44999999e+10, 7.59999888e+08, 4.82600010e+09,\n",
       "       8.10000000e+09, 1.89000000e+09, 1.50000000e+10, 1.49999999e+09,\n",
       "       2.40000000e+10, 3.80000087e+08, 1.14999990e+09, 4.10000010e+09,\n",
       "       5.60000099e+08, 1.15080000e+09, 1.20000000e+09, 3.39999999e+10,\n",
       "       2.10000000e+09, 6.80000100e+08, 2.10000000e+09, 1.50000000e+10,\n",
       "       1.55000010e+09, 3.80000088e+08, 2.90000010e+09, 1.44999990e+09,\n",
       "       1.20600000e+09, 2.18499989e+09, 8.49999990e+09, 5.00000010e+09,\n",
       "       5.00000101e+08, 1.70000010e+09, 6.99999990e+09, 8.19999990e+09,\n",
       "       9.89999999e+08, 4.64999999e+08, 1.61000010e+09, 5.00000001e+10,\n",
       "       1.10000101e+08, 2.97999990e+09, 1.14999990e+09, 5.70000000e+09,\n",
       "       1.34999999e+09, 2.03000010e+09, 5.49999990e+09, 1.05000000e+10,\n",
       "       1.95000000e+09, 1.89999989e+09, 1.62000000e+09, 1.38000000e+09,\n",
       "       2.18000010e+09, 7.29999891e+08, 3.87999990e+09, 2.57000010e+09,\n",
       "       1.58000009e+09, 1.68000000e+10, 2.07114990e+09, 5.00000010e+09,\n",
       "       3.30000000e+09, 3.24999990e+09, 3.84999990e+09, 1.85000010e+09,\n",
       "       4.20000000e+09, 2.79999990e+09, 9.99999990e+09, 4.52000010e+09,\n",
       "       3.35000010e+09, 8.40000000e+09, 4.29999990e+09, 1.11299999e+09,\n",
       "       1.29999999e+10, 3.00000000e+10, 6.24000000e+09, 2.02500000e+10,\n",
       "       7.20000000e+09, 6.69999899e+08, 7.63200000e+09, 5.55000000e+10,\n",
       "       1.98000000e+09, 3.30000000e+09, 2.85000000e+10, 9.29999999e+08,\n",
       "       1.44999990e+09, 2.34999990e+09, 2.00000010e+09, 3.24999887e+08,\n",
       "       7.59999990e+09, 1.26000000e+10, 9.84000000e+09, 5.10000000e+09,\n",
       "       8.25000000e+09, 4.50000000e+09, 6.59999992e+08, 4.25000091e+08,\n",
       "       1.85000010e+09, 1.11999999e+10, 1.25000009e+09, 2.40000000e+09,\n",
       "       3.50000010e+09, 5.30000010e+09, 9.50000093e+08, 1.57500000e+10,\n",
       "       1.71200010e+09, 3.59999999e+09, 2.00000010e+09, 6.00000000e+09,\n",
       "       1.87500000e+09, 2.15000009e+09, 3.84999999e+10, 3.80000010e+09,\n",
       "       6.00000000e+09, 1.95000000e+09, 5.10000000e+09, 3.85899990e+09,\n",
       "       1.56999999e+10, 1.09800000e+09, 3.65000001e+10, 7.94999999e+08,\n",
       "       1.65000000e+09, 1.50699990e+09, 8.40000000e+09, 6.00000000e+09,\n",
       "       2.15000010e+09, 2.85000000e+09, 1.70000001e+10, 6.50000010e+09,\n",
       "       2.75999999e+09, 8.79999990e+09, 6.20000010e+09, 3.75000000e+09,\n",
       "       8.30000010e+09, 1.29999999e+10, 4.95999899e+08, 8.49999991e+09,\n",
       "       4.80000000e+09, 9.00999894e+08, 1.40000001e+10, 6.95000101e+08,\n",
       "       3.80000010e+09, 2.79999990e+09, 9.50000010e+09, 5.60000010e+09,\n",
       "       7.48500000e+09, 3.60000000e+09, 5.30000010e+09, 1.40000001e+10,\n",
       "       9.99999898e+08, 3.16680000e+10, 4.80000000e+09, 4.59000000e+09,\n",
       "       7.50000000e+09, 1.89999990e+09, 1.55630001e+10, 4.40000010e+09,\n",
       "       2.61999990e+09, 1.44999990e+09, 6.20000010e+09, 8.00000100e+08,\n",
       "       7.80000000e+09, 3.00000002e+09, 5.39499999e+10, 2.70000000e+09,\n",
       "       9.99999990e+09, 2.04999990e+09, 3.20000010e+09, 2.30000010e+09,\n",
       "       1.19999999e+09, 3.99999990e+09, 4.70000010e+09, 2.19999990e+09,\n",
       "       7.89999886e+08, 3.99999990e+09, 6.00000000e+09, 1.74999990e+09,\n",
       "       9.29999999e+08, 5.10000000e+08, 1.28000009e+09, 2.19999990e+09,\n",
       "       2.15000010e+09, 2.90000010e+09, 1.28000001e+10, 1.49450001e+10,\n",
       "       3.30000000e+09, 7.29999990e+09, 1.20000000e+09, 8.49999989e+09,\n",
       "       9.36000000e+09, 1.47999999e+10, 7.79999991e+08, 3.50000010e+09,\n",
       "       4.09899990e+09, 2.87000010e+09, 7.70000010e+09, 9.50000100e+08,\n",
       "       2.00000010e+09, 9.80000010e+09, 3.34500000e+09, 1.73000010e+09,\n",
       "       8.00000093e+08, 1.92000000e+09, 1.29999999e+10, 3.00000000e+10,\n",
       "       2.00000001e+10, 1.83000000e+09, 9.50000010e+09, 2.19999990e+09,\n",
       "       2.75000010e+09, 5.85000000e+09, 3.84999898e+08, 3.99999990e+09,\n",
       "       2.60000009e+09, 3.90000000e+09, 3.30000000e+09, 3.24999990e+09,\n",
       "       3.09999990e+09, 1.92999990e+09, 5.19999993e+09, 3.90000000e+09,\n",
       "       8.69999999e+09, 2.00000001e+10, 3.39999894e+08, 2.37599999e+09,\n",
       "       2.36000010e+09, 8.00000094e+08, 9.09999990e+09, 3.30000000e+09,\n",
       "       2.79999990e+09, 1.70000009e+09, 3.99999999e+10, 1.37000001e+10,\n",
       "       7.49999992e+08, 5.09999992e+08, 5.49999990e+09, 1.20000000e+10,\n",
       "       7.40000010e+09, 7.13999998e+08, 1.20000000e+10, 8.15000090e+08,\n",
       "       2.49999990e+09, 1.12500000e+10, 1.55000009e+09, 2.00000010e+09,\n",
       "       3.21999989e+09, 1.38999990e+09, 9.00000000e+09, 1.08999989e+09,\n",
       "       5.49999899e+08, 8.88999990e+09, 6.46500000e+09, 1.20000000e+10,\n",
       "       1.43999999e+09, 3.05000010e+09, 1.04000009e+09, 3.69999999e+10,\n",
       "       2.39999999e+09, 1.44200010e+09, 8.09999987e+08, 2.19999990e+09,\n",
       "       2.10000000e+09, 7.50000000e+09, 6.50000009e+09, 4.25000010e+09,\n",
       "       3.15000000e+09, 6.00000000e+09, 2.99999987e+08, 3.95000010e+09,\n",
       "       6.20000010e+09, 1.17999999e+10, 8.90000010e+09, 3.09999990e+09,\n",
       "       4.40000088e+08, 1.39500000e+10, 2.96000010e+09, 1.17999999e+10,\n",
       "       1.05000000e+10, 8.99999994e+08, 2.40000000e+09, 2.07999990e+09,\n",
       "       1.03500000e+09, 7.29999990e+09, 3.84000000e+09, 3.69999990e+09,\n",
       "       3.90000000e+09, 3.50000010e+09, 1.29999999e+10, 2.89170000e+09,\n",
       "       6.50000101e+08, 1.21499999e+09, 1.50000000e+10, 3.05000010e+09,\n",
       "       2.25000000e+10, 1.04900001e+10, 8.19999990e+09, 2.40000000e+09,\n",
       "       1.59999990e+09, 2.00000009e+09, 8.90000099e+08, 8.13999990e+09,\n",
       "       3.39999999e+10, 7.40000087e+08, 8.10000000e+09, 6.69999989e+09,\n",
       "       3.57000000e+09, 2.60000089e+08, 8.60000010e+09, 6.80000010e+09,\n",
       "       2.25000000e+09, 4.50000000e+09, 6.99999990e+09, 2.00000001e+10,\n",
       "       2.60000010e+09, 1.14999999e+10, 5.25000000e+09, 5.49999990e+09,\n",
       "       2.46000000e+09, 1.40000001e+10, 8.34999990e+09, 1.29999999e+10,\n",
       "       6.50000101e+08, 2.64999990e+09, 6.30000000e+09, 8.19999894e+08,\n",
       "       7.04000010e+09, 1.10000001e+10, 9.15000003e+09, 8.70000000e+09,\n",
       "       1.17999990e+09, 6.69999990e+09, 2.45000010e+09, 2.40000000e+09,\n",
       "       1.07000001e+10, 2.10000000e+09, 1.87149999e+10, 6.00000000e+09,\n",
       "       8.67999900e+08, 2.94999990e+09, 1.95729990e+09, 6.20000010e+09,\n",
       "       3.80000009e+09, 1.89999990e+09, 9.20000010e+09, 1.50000000e+09,\n",
       "       3.90000000e+09, 2.19999999e+10, 1.31799990e+09, 1.29999990e+09,\n",
       "       1.20000000e+09, 1.86000000e+09, 5.85000000e+09, 3.09999990e+09,\n",
       "       2.79999891e+08, 3.59999999e+08, 7.50000001e+08, 1.02999990e+09,\n",
       "       2.25000000e+09, 5.25000000e+10, 3.06000000e+09, 2.60000010e+09,\n",
       "       3.50000013e+09, 2.49999990e+09, 2.27000010e+09, 4.14999990e+09,\n",
       "       6.56000010e+09, 4.74999990e+09, 1.11999999e+10, 3.20000010e+09,\n",
       "       2.49999990e+09, 2.19999990e+09, 1.20000000e+10, 1.01199989e+09,\n",
       "       3.96999891e+08, 4.50000003e+09, 9.99999990e+09, 7.20000000e+09,\n",
       "       1.50000000e+09, 3.15000000e+09, 8.70000002e+08, 2.28390000e+09,\n",
       "       3.50000001e+10, 8.99999988e+08, 1.55000010e+09, 5.39999999e+08,\n",
       "       1.64999999e+09, 1.40000001e+10, 3.02400000e+09, 6.20000009e+09,\n",
       "       3.00000000e+09, 9.75000000e+09, 1.65000000e+09, 7.89999990e+09,\n",
       "       8.99999992e+08, 1.83999989e+09, 8.60000010e+09, 2.39000010e+09,\n",
       "       2.68800000e+09, 2.07000000e+10, 2.70000000e+10, 1.55000001e+10,\n",
       "       4.55000010e+09, 2.46999999e+10, 7.14999898e+08, 3.50000010e+09,\n",
       "       1.18500000e+09, 4.10000010e+09, 5.00000010e+09, 3.27999989e+09,\n",
       "       1.10000001e+10, 9.30000000e+09, 8.40000000e+09, 2.30000010e+09,\n",
       "       5.00000010e+09, 2.60000010e+09, 4.70000009e+09, 9.99999902e+08,\n",
       "       3.35000010e+09])"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "9cd03992",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2896    2.400000e+09\n",
       "1278    8.000000e+09\n",
       "2107    8.000000e+09\n",
       "321     2.490000e+09\n",
       "3236    3.170000e+09\n",
       "            ...     \n",
       "809     5.000000e+09\n",
       "472     2.600000e+09\n",
       "764     4.700000e+09\n",
       "1721    1.000000e+09\n",
       "3160    3.350000e+09\n",
       "Name: Price, Length: 649, dtype: float64"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "018a3d63",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "score model: 0.9999999999999999\n",
      "Mean Absolute Error: 63.34013955931083\n"
     ]
    }
   ],
   "source": [
    "from sklearn import metrics\n",
    "\n",
    "mae = metrics.mean_absolute_error(y_test, y_pred)\n",
    "\n",
    "score = metrics.r2_score(y_test, y_pred)\n",
    "\n",
    "print(f'score model: {score}')\n",
    "print(f'Mean Absolute Error: {mae}')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
