From b7a4e0291f3caf68be99f8db57fe4127d15602a1 Mon Sep 17 00:00:00 2001 From: Hillary Kipkemoi Date: Tue, 30 Jul 2024 04:37:51 +0300 Subject: [PATCH 01/13] move the visualizatoin and analysis functions to a Class --- .../compare_benchmarks.ipynb | 219 +++--------------- src/benchmark_analysis/__init__.py | 1 + src/benchmark_analysis/benchmarks_analysis.py | 72 ++++++ 3 files changed, 108 insertions(+), 184 deletions(-) create mode 100644 src/benchmark_analysis/__init__.py create mode 100644 src/benchmark_analysis/benchmarks_analysis.py diff --git a/notebooks/optimization_techniques/compare_benchmarks.ipynb b/notebooks/optimization_techniques/compare_benchmarks.ipynb index 08c4daa..f3ef3f4 100644 --- a/notebooks/optimization_techniques/compare_benchmarks.ipynb +++ b/notebooks/optimization_techniques/compare_benchmarks.ipynb @@ -20,17 +20,26 @@ "execution_count": 2, "metadata": {}, "outputs": [], + "source": [ + "from src.benchmark_analysis import BenchmarkAnalysis" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], "source": [ "\n", "results_folder = \"data/ragas_results\"\n", "# Load CSV files\n", "df1 = pd.read_csv(f'{results_folder}/bm_baseline_benchmark_results.csv')\n", - "df2 = pd.read_csv(f'{results_folder}/bm_multiquery_retriever_results.csv')" + "df2 = pd.read_csv(f'{results_folder}/bm_embedding_model_bge_large_results.csv')" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -38,27 +47,27 @@ "output_type": "stream", "text": [ " Metric Baseline_Average Prompt_eng_opt_Average \\\n", - "0 answer_correctness 0.689010 0.722619 \n", - "1 faithfulness 0.863333 0.893690 \n", - "2 answer_relevancy 0.846870 0.903490 \n", - "3 context_precision 0.980000 0.953595 \n", + "0 answer_correctness 0.689010 0.655881 \n", + "1 faithfulness 0.863333 0.878864 \n", + "2 answer_relevancy 0.846870 0.906868 \n", + "3 context_precision 0.980000 0.945903 \n", "\n", " Baseline_Highest Prompt_eng_opt_Highest Baseline_Lowest \\\n", - "0 1.0 0.994883 0.229628 \n", + "0 1.0 0.998523 0.229628 \n", "1 1.0 1.000000 0.200000 \n", "2 1.0 1.000000 0.000000 \n", "3 1.0 1.000000 0.833333 \n", "\n", " Prompt_eng_opt_Lowest \n", - "0 0.231443 \n", - "1 0.500000 \n", + "0 0.229624 \n", + "1 0.333333 \n", "2 0.000000 \n", - "3 0.583333 \n" + "3 0.679167 \n" ] }, { "data": { - "image/png": "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pkwZANq1a8eMGTNo1aoVJ06cIGvWrKxcuZIDBw4wfvz4F1qQTkRERETiU2JXRERE5AO2ePFinJyc+Oyzz5663cbGhpo1a7J48WLu3btH6tSp+fjjj/Hw8ODq1avxZuvG7rN27VrGjRvHwoULWbNmDUmSJCFbtmx07drVvIja81SsWJE5c+YwYsQIunXrhqenJyNHjuTSpUsWiV2AhQsX4u7uztKlS1mzZg2VK1cmICCA3Llz4+TkZO7n5ubG0aNHGTx4MKtXr2bq1KmkTp2a/PnzM3LkyP+MKUmSJGzZsoX58+ezYMEChgwZQmhoKBkyZKBixYosXryYjBkzApA/f35++uknevfuzfDhwzEajXh5efHjjz/i5eX1n8d6WS1atMDGxobx48dz+/ZtSpYsyeTJk0mfPr25z5IlS+jSpQtTpkzBZDJRpUoVtmzZQoYMGV75uHXq1OHSpUvMnTuXu3fvkiZNGsqVK8egQYPMC8A5Ozuzd+9evvvuOxYsWEBQUBC5c+dm3rx5tGrV6nVPXUREROSDZTBpFQIRERERec/8+uuvfPTRR/z444988cUX1g7nrbl06RKenp6MHj2aHj16WDscEREREXmHVGNXRERERBK1sLCweG3jx4/HxsaGsmXLWiEiEREREZG3T6UYRERERCRRGzVqFCdOnKBChQrY2dmxZcsWtmzZQrt27fDw8LB2eCIiIiIib4USuyIiIiKSqH388cfs2LGDIUOGEBwcTObMmfn+++/p27evtUMTEREREXlrVGNXREREREREREREJJFRjV0RERERERERERGRREalGJ7CaDRy48YNkiVLhsFgsHY4IiIiIiIiIiIi8oEwmUw8fvyYDBkyYGPz7Hm5Suw+xY0bN7TQhoiIiIiIiIiIiFjN1atXyZQp0zO3WzWxu3//fkaPHs2JEye4efMma9asoV69es/dZ+/evfj6+nL69Gk8PDzo168frVq1sugzZcoURo8eTWBgIIULF2bSpEmULFnyheNKliwZ8OTNS548+cueloiIiIiIiIiIiMgrCQoKwsPDw5yjfBarJnZDQkIoXLgwX331FQ0aNPjP/hcvXqRmzZp06NCBxYsXs2vXLtq0aUP69OmpWrUqAAEBAfj6+jJ9+nS8vLwYP348VatW5ezZs6RLl+6F4ootv5A8eXIldkVEREREREREROSd+68SsQaTyWR6R7E8l8Fg+M8Zu7169WLTpk388ccf5jZvb28ePnzI1q1bAfDy8qJEiRJMnjwZeFIv18PDgy5duvDdd9+9UCxBQUG4urry6NEjJXZFRERERERERETknXnR3OSzq+8mQIcOHaJy5coWbVWrVuXQoUMAREZGcuLECYs+NjY2VK5c2dznaSIiIggKCrL4EREREREREREREUmoElViNzAwEDc3N4s2Nzc3goKCCAsL4+7du8TExDy1T2Bg4DPHHT58OK6uruYfLZwmIiIiIiIiIiIiCZlVa+wmFL1798bX19f8OrZAsYiIiIiIiIjI+8hoNBIZGWntMEQ+SPb29tja2r72OIkqsevu7s6tW7cs2m7dukXy5MlxdnbG1tYWW1vbp/Zxd3d/5riOjo44Ojq+lZhFRERERERERBKSyMhILl68iNFotHYoIh+sFClS4O7u/p8LpD1Pokrsli5dms2bN1u07dixg9KlSwPg4OBAsWLF2LVrl3kRNqPRyK5du+jcufO7DldEREREREREEqhiPRdaOwSrMAAtvDLilT0dLq6p4TWSSu+THOlTWjsE+UCYTCZCQ0O5ffs2AOnTp3/lsaya2A0ODub8+fPm1xcvXuTXX38lVapUZM6cmd69e3P9+nUWLnxyse3QoQOTJ0/Gz8+Pr776it27d7N8+XI2bdpkHsPX15eWLVtSvHhxSpYsyfjx4wkJCcHHx+edn5+IiIiIiIiISEKS1NGWPO7JSJIsBTb2DtYOJ8FwcnKydgjyAXF2dgbg9u3bpEuX7pXLMlg1sXv8+HEqVKhgfh1b57Zly5bMnz+fmzdvcuXKFfN2T09PNm3aRPfu3ZkwYQKZMmVi9uzZVK1a1dynadOm3LlzhwEDBhAYGEiRIkXYunVrvAXVREREREREREQ+NM4OttjZGDC8gfqeIvLqkiRJAkBUVNQrJ3YNJpPJ9CaDeh8EBQXh6urKo0ePSJ48ubXDEREREREREZE37EMtxeCezIFvK2cnXfpM2NjZWzucBCOfRxprhyAfmPDwcC5evIinp2e8GeMvmptMVDV2RURERERERERE3rSIG6etHYIkII4Z8ls7hBdiY+0AREREREREREREROTlKLErIiIiIiIiIiKSAF26eh2njAX47Y8zL7xPm259afzVN8/t81mjVvQYMOJ1wxMrUykGERERERERERGR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nTqRPv2LF3QWERERERERERF53125fpOPytd55vaTe9eT+SUWSXsWAwa27v6JkRNnEh4RSa7sWVk2axyVypYGIHXOEs/cd92P0ynjVey1Y/i3d3Xub1NUVBR9+vThn3/+IVmyZHz88ccsXrzYvHibNb10YhfA1dWVvn37vulYREREREREREREEqysHhkJv/5iNWtjZXBLy9Htq567/U1wdnZiS8DsZ25/bgzu/72gXEI+97epatWqVK1a1dphPNVLJ3b379//3O0JYRqyiIiIiIiIiIhIQmBnZ0d2z8zWDsMqMSSUc39fvXRit3z58vHaDAaD+feYmJjXCkhERERERERERN4Oo/k3kxWjEBGT6fX/H7R52R0ePHhg8XP79m22bt1KiRIl2L59+2sHJCIiIiIiIiIib0dYZAzRRhMmTcwTsarQ0FCA16rV+9Izdl1dXeO1ffbZZzg4OODr68uJEydeORgREREREREREXl7giNiOBP4GFcXZ1xsbCHOU9gfsgiT8b87yQfDFB7+9sY2mQgNDeX27dukSJECW1vbVx7rlRZPexo3NzfOnj37poYTEREREREREZE3zASs+/0WmVI44Roarrzu/zMZgqwdgiQgdiFvLGX6TClSpMDd3f21xnjpKH///XeL1yaTiZs3bzJixAiKFCnySkFMmTKF0aNHExgYSOHChZk0aRIlS5Z8at/58+fj4+Nj0ebo6Eh4nEy6yWRi4MCBzJo1i4cPH/LJJ58wbdo0cubM+UrxiYiIiIiIiIi8Lx6GRTNixz+kSmKPrRK7AExymWvtECQBydBp/Vsd397e/rVm6sZ66cRukSJFMBgM8Qr8lipVirlzX/5/goCAAHx9fZk+fTpeXl6MHz+eqlWrcvbsWdKlS/fUfZInT24xO9jwr6+XRo0axcSJE1mwYAGenp7079+fqlWr8ueff+Lk5PTSMYqIiIiIiIiIvE9ijCbuBEdaO4wEw46b1g5BEpDEkj986cTuxYsXLV7b2NiQNm3aVz5hf39/2rZta56FO336dDZt2sTcuXP57rvvnrqPwWB45lRlk8nE+PHj6devH3Xr1gVg4cKFuLm5sXbtWry9vV8pThEREREREREREZGEwuZld8iSJYvFj4eHxysndSMjIzlx4gSVK1f+X0A2NlSuXJlDhw49c7/g4GDzsevWrcvp06fN2y5evEhg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P1evXn31kxIRERERERERERF5y+ysHcDrGDFiBMuWLWPv3r04OTmZ2729vc2/FyxYkEKFCpE9e3b27t1LpUqV4o3j6OiIo6PjO4lZRERERERERERE5HVZdcZumjRpsLW15datWxbtt27dwt3d/bn7jhkzhhEjRrB9+3YKFSr03L7ZsmUjTZo0nD9//rVjFhEREREREREREbE2qyZ2HRwcKFasmMXCZ7ELoZUuXfqZ+40aNYohQ4awdetWihcv/p/HuXbtGvfu3SN9+vRvJG4RERERERERERERa7JqYhfA19eXWbNmsWDBAv766y86duxISEgIPj4+ALRo0YLevXub+48cOZL+/fszd+5csmbNSmBgIIGBgQQHBwMQHBxMz549OXz4MJcuXWLXrl3UrVuXHDlyULVqVauco4iIiIiIiIiIiMibZPUau02bNuXOnTsMGDCAwMBAihQpwtatW80Lql25cgUbm//ln6dNm0ZkZCSNGjWyGGfgwIF8//332Nra8vvvv7NgwQIePnxIhgwZqFKlCkOGDFEdXREREREREREREXkvWD2xC9C5c2c6d+781G179+61eH3p0qXnjuXs7My2bdveUGQiIiIiIiIiIiIiCY/VSzGIiIiIiIiIiIiIyMtRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRSRCJ3SlTppA1a1acnJzw8vLi6NGjz+2/YsUK8uTJg5OTEwULFmTz5s0W200mEwMGDCB9+vQ4OztTuXJl/v7777d5CiIiIiIiIiIiIiLvjNUTuwEBAfj6+jJw4EB++eUXChcuTNWqVbl9+/ZT+x88eJBmzZrRunVrTp48Sb169ahXrx5//PGHuc+oUaOYOHEi06dP58iRI7i4uFC1alXCw8Pf1WmJiIiIiIiIiIiIvDV21g7A39+ftm3b4uPjA8D06dPZtGkTc+fO5bvvvovXf8KECVSrVo2ePXsCMGTIEHbs2MHkyZOZPn06JpOJ8ePH069fP+rWrQvAwoULcXNzY+3atXh7e8cbMyIigoiICPPrR48eARAUFPTGz/dlxESEWfX4krA8to+xdgiSgFj7+pRQ6Dopcek6KbF0jXxC10iJS9dIiUvXySd0nZS4dJ2UuKx9nYw9vslkem4/qyZ2IyMjOXHiBL179za32djYULlyZQ4dOvTUfQ4dOoSvr69FW9WqVVm7di0AFy9eJDAwkMqVK5u3u7q64uXlxaFDh56a2B0+fDiDBg2K1+7h4fEqpyXyVhSwdgCSsAx3tXYEIgmOrpNipmukSDy6RooFXSdF4tF1UiwkkOvk48ePcXV9dixWTezevXuXmJgY3NzcLNrd3Nw4c+bMU/cJDAx8av/AwEDz9ti2Z/X5t969e1ski41GI/fv3yd16tQYDIaXOymRtyAoKAgPDw+uXr1K8uTJrR2OiEiCo+ukiMiz6RopIvJ8uk5KQmMymXj8+DEZMmR4bj+rl2JICBwdHXF0dLRoS5EihXWCEXmO5MmT64+MiMhz6DopIvJsukaKiDyfrpOSkDxvpm4sqy6eliZNGmxtbbl165ZF+61bt3B3d3/qPu7u7s/tH/vPlxlTREREREREREREJDGxamLXwcGBYsWKsWvXLnOb0Whk165dlC5d+qn7lC5d2qI/wI4dO8z9PT09cXd3t+gTFBTEkSNHnjmmiIiIiIiIiIiISGJi9VIMvr6+tGzZkuLFi1OyZEnGjx9PSEgIPj4+ALRo0YKMGTMyfPhwALp27Uq5cuUYO3YsNWvWZNmyZRw/fpyZM2cCYDAY6NatG0OHDiVnzpx4enrSv39/MmTIQL169ax1miKvxdHRkYEDB8YrGSIiIk/oOiki8my6RoqIPJ+uk5JYGUwmk8naQUyePJnRo0cTGBhIkSJFmDhxIl5eXgCUL1+erFmzMn/+fHP/FStW0K9fPy5dukTOnDkZNWoUNWrUMG83mUwMHDiQmTNn8vDhQ8qUKcPUqVPJlSvXuz41ERERERERERERkTcuQSR2RUREREREREREROTFWbXGroiIiIiIiIiIiIi8PCV2RURERERERERERBIZJXZFREREREREREREEhkldkVEREREREREREQSGSV2RURERERERERERBIZJXZFRERERETEKoxGo7VDEBERSbSU2BWRNybujXloaKgVIxEReTNMJhMA4eHhVo5EROT9ZGPz5CPpggULOHbsGPC/a6+IyIdMX3zJi1BiV0TeCKPRaL4xHzt2LOPGjePy5ctWjkpE5NWZTCYMBgM7d+6kZ8+e/PPPP9YOSUTkvWMymYiIiKBHjx4sXboUAIPBYOWoRESsK+7n61OnTnHt2jXu3LkD6MsvsaTEroi8EbF/dPz8/BgzZgxubm44OztbOSoRkVdnMBhYtWoV9evXJ3Xq1Ny/fx/QzbSIyJtkMplwdHRk1KhR7N69m1OnTlk7JBERq4v9fN27d29q1qzJJ598go+PD4cOHcJgMOh+VMzsrB2AiLw/Fi5cyIIFC9i5cycFCxYEICwsjMePH5MuXTorRyci8nJOnjxJx44d8ff3p23btub2e/fukSZNGitGJiKSeMU+DRErNnlRtGhRIiIiOHHiBAULFrSYrSYi8qGIe43cs2cPP/74I/Pnz+fs2bPs37+f5s2bM3fuXMqWLRvveiofJv2lFJE3JjAwkHLlylGwYEHOnj3LpEmTKFy4MA0aNKBXr17WDk9E5IXEzoA4deoUnp6etG3bluDgYJYuXUrNmjUpUqQIw4YNs3KUIiKJU2wSYsWKFaxevdrcXrhwYerUqcOgQYO4d++ekroi8kGKvUYuWrSI7du3061bNypVqsTXX39Nz549KVmyJK1ateKnn37CYDCoDq8osSsirybuH5Do6GjzP7dv346vry8NGjRg//79fPHFF5QqVYotW7Zw5coVa4UrIvKf/r1QmoeHBxcuXKBbt25Ur16dZcuWkT59evz8/OjXrx9Hjx61ZrgiIolK3HvHK1euMHv2bJo1a8bnn3/O9OnTAWjXrh1ZsmRh165d8fYREflQ/PPPP8ydO5dJkyZZLEperFgxevToQenSpfnqq6/YuXOnvgQTJXZF5OXFfTTO39+f0aNHExoaSp8+fWjdujX//PMPXbp0YdiwYQwcOJCmTZti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0qVLh8FgYM2aNdy5c8c8y/d1NG7cGE9PT2rXrs3OnTu5cOECy5YtY/fu3e90jCIiIiIS/ymxKyIiIiLyL66urri6uj732ODBg+nXrx++vr7kyJGDKlWqsHbtWjJkyABA6tSpGThwIL1798bDw8O8rMPrcHBwYOPGjaRIkYJq1aqRJ08ehg0bFivBLCIiIiJiMJlMJmsHISIiIiIiIiIiIiKvTzN2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVEREQ+UunTp6d58+Zv3bZGjRrvNqA4btu2bRgMBrZt22btUD5Jev5FRERE3owSuyIiIiLxwK+//orBYODAgQPPPV62bFly5879gaN6t06cOMFPP/3EpUuXXlk3b968pE2bFpPJ9MI6n3/+OR4eHkRFRb3DKN+vbdu2UbduXTw9PXFwcCBFihR8+eWXLF++3NqhiYiIiEgco8SuiIiIyEfq9OnTzJgxw9phvLYTJ04wcODA10rsNmnShKtXr/Lnn38+9/ilS5fYvXs3DRs2xM7O7h1H+n4MGDCAcuXKcfz4cdq2bcu0adPo0aMHwcHB1KtXjwULFlg7xPeqdOnShIaGUrp0aWuHIiIiIhIvxI93uSIiIiLyxhwdHa0dwnvz9ddf4+Pjw4IFC56bCFy4cCEmk4kmTZpYIbo3t3TpUgYNGsRXX33FggULsLe3Nx/r0aMHGzZsIDIy0ooRvj9hYWE4ODhgY2ODk5OTtcMRERERiTc0Y1dERETkI/W8NXaPHj1KmTJlcHZ2Jk2aNAwZMoQ5c+ZgMBieO1P2r7/+omjRojg5OZExY0b8/Pxi1Xn48CFdu3bFy8sLR0dHMmfOzPDhwzEajRb1Fi1aRKFChUiUKBGurq7kyZOH8ePHA0+Xmqhfvz4A5cqVw2AwvHS9VS8v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0iVMJhMFCxZ8o74cHBwoVKgQAQEB1K5dGwCj0UhAQAAdO3Z8rT6io6M5duwY1apVAyBDhgx4enoSEBBgTuQGBQWxd+9e2rdv/0bxiYiIiIiIiIiIiMRFb7wUg4+PD927d+fYsWM4OTmxbNkyrl69SpkyZahfv/4bB+Dt7c2MGTOYO3cuJ0+epH379oSEhNCiRQsAmjZtarG52qBBg9i4cSMXLlzg0KFDfPPNN1y+fJlWrVoBTzdw69q1K0OGDGH16tUcO3aMpk2bkipVKnPyWERERERERERERCQ+e+MZuydPnmThwoVPG9vZERoaSsKECRk0aBC1atV641mxDRs25M6dO/Tv35/AwEDy58/P+vXrzZufXblyBRub/+WfHzx4QOvWrQkMDCRJkiQUKlSIXbt2kTNnTnOdnj17EhISQps2bXj48CElS5Zk/fr1ODk5velwRUREREREREREROKcN07suri4mNfVTZkyJefPnydXrlwA3L17962C6Nix4wuXXti2bZvF47FjxzJ27NiX9mcwGBg0aBCDBg16q3hERERERERERERE4rI3TuwWL16cv/76ixw5clCtWjV++OEHjh07xvLlyylevPj7iFFEREREREREREREnvHGid0xY8YQHBwMwMCBAwkODsbf358sWbIwZsyYdx6giIiIiIiIiIiIiFh648Tu0KFD+eabb4CnyzJMmzbtnQclIiIiIiIiIiIiIi9m8+oqlu7cuUOVKlXw8vKiR48e/P333+8jLhERERERERERERF5gTdO7K5atYqbN2/Sr18/9u/fT8GCBcmVKxdDhw7l0qVL7yFEEREREREREREREXnWGyd2AZIkSUKbNm3Ytm0bly9fpnnz5sybN4/MmTO/6/hERERERERERERE5F/eKrEbIzIykgMHDrB3714uXbqEh4fHu4pLRERERERERERERF7grRK7W7dupXXr1nh4eNC8eXNcXV1Zs2YN165de9fxiYiIiIiIiIiIiMi/2L1pg9SpU3P//n2qVKnC9OnT+fLLL3F0dHwfsYmIiIiIiIiIiIjIc7xxYvenn36ifv36JE6c+D2EIyIiIiIiIiIiIiKv8saJ3datW7+POERERERERERERETkNf2nzdNERERERERERERE5MNTYldEREREREREREQknlFiV0RERERERERERCSeUWJXREREREREREREJJ5RYldEREREREREREQknlFiV0RERERERERERCSeUWJXREREREREREREJJ5RYldEREREREREREQknlFiV0RERERERERERCSeUWJXREREREREREREJJ5RYldEREREREREREQknlFiV0RERERERERERCSeUWJXREREREREREREJJ5RYldEREREREREREQknlFiV0RERERERERERCSeiROJ3cmTJ5M+fXqcnJwoVqwY+/bte2HdGTNmUKpUKZIkSUKSJEmoUKFCrPrNmzfHYDBY/FSpUuV9D0NERERERERERETkg7B6Ytff3x9vb28GDBjAoUOHyJcvH5UrV+b27dvPrb9t2zYaN27M1q1b2b17N15eXlSqVInr169b1KtSpQo3b940/yxcuPBDDEdERERERERERETkvbN6YnfMmDG0bt2aFi1akDNnTqZNm0aCBAmYPXv2c+v/9ttvfP/99+TPn5/s2bMzc+ZMjEYjAQEBFvUcHR3x9PQ0/yRJkuRDDEdERERERERERETkvbNqYjciIoKDBw9SoUIFc5mNjQ0VKlRg9+7dr9XHkydPiIyMJGnSpBbl27ZtI0WKFGTLlo327dtz7969F/YRHh5OUFCQxY+IiIiIiIiIiIhIXGXVxO7du3eJjo7Gw8PDotzDw4PAwMDX6qNXr16kSpXKIjlcpUoV/Pz8CAgIYPjw4Wzfvp2qVasSHR393D58fX1xc3Mz/3h5eb39oERERERERERERETeMztrB/BfDBs2jEWLFrFt2zacnJzM5Y0aNTL/OU+ePOTNm5dMmTKxbds2vvjii1j9+Pj44O3tbX4cFBSk5K6IiIiIiIiIiIjEWVadsevu7o6trS23bt2yKL916xaenp4vbTtq1CiGDRvGxo0byZs370vrZsyYEXd3d86dO/fc446Ojri6ulr8iIiIiIiIiIiIiMRVVk3sOjg4UKhQIYuNz2I2QitRosQL240YMYLBgwezfv16Chcu/MrzXLt2jXv37pEyZcp3EreIiIiIiIiIiIiINVk1sQvg7e3NjBkzmDt3LidPnqR9+/aEhITQokULAJo2bYqPj4+5/vDhw+nXrx+zZ88mffr0BAYGEhgYSHBwMADBwcH06NGDPXv2cOnSJQICAqhVqxaZM2emcuXKVhmjiIiIiIiIiIiIyLtk9TV2GzZsyJ07d+jfvz+BgYHk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559/VqpUqSRJQ4YM0YULF5QlSxalTp36Dbx6AAAAAAAAeFeYDMMwrF3EiyxZskTNmzfXjBkzVKxYMU2YMEHLli3TqVOn5OXl9dT6jx49UqlSpeTl5aU+ffooXbp0unjxopInT678+fO/1DHv378vDw8P3bt3T+7u7vGWRUZG6vz588qUKZOcnJzeyDkCiI9/ZwAAAAASWqHuC6xdAhKRpPAUNt4fL8om40r0QzGMGzdObdq0UatWrSRJM2bM0Lp16zRnzhz16tXrqfXnzJmj27dva8+ePZZJuPz8/N5myQAAAAAAAACQoBL1UAyPHj3SwYMHValSJUubjY2NKlWqpL179z5zm7Vr16pEiRJq3769vL29lTdvXg0bNuyFk1BFRUXp/v378X6Q9OzatUtubm7P/QEAAAAAAADeFYm6x25oaKhiYmLk7e0dr93b21snT5585jZ//fWXtm/friZNmmj9+vU6e/asvvrqKz1+/FgDBw585jbDhw+3jBOLpKtw4cJPTYoGAAAAAAAAvIsSdbD7X5jNZnl5eem7776Tra2tChUqpL///lujR49+brDbu3dvBQQEWH6/f/++fH1931bJeEOcnZ2VNWtWa5cBAAAAAAAAJLhEHex6enrK1tZW169fj9d+/fp1+fj4PHObNGnSyN7eXra2tpa2XLly6dq1a3r06JEcHBye2sbR0VGOjo5vtngAAAAAAAAASCCJOth1cHBQoUKFtG3bNtWtW1fSkx6527ZtU4cOHZ65TalSpbRw4UKZzWbZ2DwZQvj06dNKkybNM0NdAAAAAAAAvN9Chnxg7RKQiGQYcMzaJbyURD15miQFBARo1qxZmj9/vk6cOKF27drp4cOHatWqlSSpefPm6t27t2X9du3a6fbt2+rcubNOnz6tdevWadiwYWrfvr21TgEAAAAAAAAA3qhE3WNXkho1aqSbN29qwIABunbtmvz9/bVx40bLhGohISGWnrmS5Ovrq02bNqlr167Kly+f0qVLp86dO6tnz57WOgUAAAAAAAAAeKMSfbArSR06dHju0AtBQUFPtZUoUUK//vprAlcFAAAAAAAAANaRJILdpOJtjseSVMb6AAAAAAAAAPDmJfoxdvHmtGzZUiaTSSaTSQ4ODsqaNauGDBmi6Ohoa5f2lKCgIJlMJt29e9fapbx1/+XcW7ZsaZlgMLErX768unTpYu0yAAAAAAAAkjR67L5nqlatqrlz5yoqKkrr169X+/btZW9vH28COkl69OiRHBwcrFQlAAAAAAAAgBehx+57xtHRUT4+PsqYMaPatWunSpUqae3atZYen99++63Spk2rHDlySJKOHTumDz/8UM7OzkqVKpW++OILhYWFWfYXu92wYcPk7e2t5MmTW3oBd+/eXSlTplT69Ok1d+5cyzYXLlyQyWTS4sWLVbJkSTk5OSlv3rzasWOHZXmFChUkSSlSpJDJZFLLli3/9dzMZrOGDx+uTJkyydnZWfnz59fy5csty2N7wm7btk2FCxeWi4uLSpYsqVOnTsXbzzfffCMvLy8lS5ZMn3/+uXr16iV/f/+Xen3NZrOGDBmi9OnTy9HR0TLZX0Kf+7/ZsWOHihYtKkdHR6VJk0a9evWy9NQODAxU8uTJFRMTI0k6cuSITCaTevXqZdn+888/V9OmTS2/7969W2XKlJGzs7N8fX3VqVMnPXz40LJ82rRpypYtm5ycnOTt7a369etLevL3ZceOHZo4caKl9/iFCxde+/wAAAAAAADeNwS77zlnZ2c9evRIkrRt2zadOnVKW7ZsUWBgoB4+fKgqVaooRYoU2r9/v5YtW6atW7c+NZHd9u3bdeXKFe3cuVPjxo3TwIEDVbNmTaVIkUK//fabvvzyS7Vt21aXL1+Ot1337t319ddf6/DhwypRooRq1aqlW7duydfXVytWrJAknTp1SlevXtXEiRP/9VyGDx+uBQsWaMaMGfrzzz/VtWtXNW3a1BKaxurbt6/Gjh2rAwcOyM7OTp999pll2U8//aRvv/1WI0eO1MGDB5UhQwZNnz79pV/PiRMnauzYsRozZox+//13ValSRbVr19aZM2cS9Nxf5O+//1b16tVVpEgRHT16VNOnT9f333+vb775RpJUpkwZPXjwQIcPH5b0JAT29PSMNzHhjh07VL58eUnSuXPnVLVqVX3yySf6/ffftWTJEu3evdvy9+LAgQPq1KmThgwZolOnTmnjxo0qW7as5fUpUaKE2rRpo6tXr+rq1avy9fV9rfMDAAAAAAB4HyVosHv27Flt2rRJERERkiTDMBLycHgFhmFo69at2rRpkz788ENJkqurq2bPnq08efIoT548WrhwoSIjI7VgwQLlzZtXH374oaZMmaIffvhB169ft+wrZcqUmjRp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31JERERESgIFuyIiIiIi/69y5cp07tyZFStWYDab6dy5My4uLpb3ExMTSU9P59VXXy10XHZ2dqF2Db/m6aef/o/vnzhxgqeeesoS6oqIiIiI/BoFuyIiIiIiBfj4+DB8+HAAFixYUOi9O3fuALBt2zaqV69e6L3fswGak5PTf3y/YNsGEREREZH/RMGuiIiIiEgBHTt2JDs7G4PBYNngLF/Tpk1xcHDg/PnzvPzyy/c93t7eHoC8vLw//Gc/8cQTLFmyhJSUFFXtioiIiMh/ZGPtAYiIiIiIFCW2tracPHmS77//Hltb20LvPfTQQ4wbNw4/Pz9WrlzJ6dOnOXbsGPPnz2flypUA1K5dG4PBQFxcHNevX7dU+f4eb7zxBtWqVaN79+7s37+fM2fOEBUVxVdfffWnfkcRERERKf4U7IqIiIiI3KN8+fKUL1/+vu9NmzaNoKAgZs6cSZMmTejYsSPbtm2jbt26AFSvXp2///3vvPvuu1StWtXS1uH3sLe3Z+fOnVSpUoW//e1vNG/enFmzZv0iYBYRERERMZjNZrO1ByEiIiIiIiIiIiIiv58qdkVERERERERERESKGQW7IiIiIiIiIiIiIsWMgl0RERERERERERGRYkbBroiIiIiIiIiIiEgxo2BXREREREREREREpJhRsCsiIiIiIiIiIiJSzCjYFRERERERERERESlmFOyKiIiIiIiIiIiIFDMKdkVERERERERERESKGQW7IiIiIiIiIiIiIsWMgl0RERERERERERGRYub/AHoJMOe8W20UAAAAAElFTkSuQmCC", + "image/png": "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pkwZANq1a8eMGTNo1aoVJ06cIGvWrKxcuZIDBw4wfvz4F1qQTkRERETiU2JXRERE5AO2ePFinJyc+Oyzz5663cbGhpo1a7J48WLu3btH6tSp+fjjj/Hw8ODq1avxZuvG7rN27VrGjRvHwoULWbNmDUmSJCFbtmx07drVvIja81SsWJE5c+YwYsQIunXrhqenJyNHjuTSpUsWiV2AhQsX4u7uztKlS1mzZg2VK1cmICCA3Llz4+TkZO7n5ubG0aNHGTx4MKtXr2bq1KmkTp2a/PnzM3LkyP+MKUmSJGzZsoX58+ezYMEChgwZQmhoKBkyZKBixYosXryYjBkzApA/f35++uknevfuzfDhwzEajXh5efHjjz/i5eX1n8d6WS1atMDGxobx48dz+/ZtSpYsyeTJk0mfPr25z5IlS+jSpQtTpkzBZDJRpUoVtmzZQoYMGV75uHXq1OHSpUvMnTuXu3fvkiZNGsqVK8egQYPMC8A5Ozuzd+9evvvuOxYsWEBQUBC5c+dm3rx5tGrV6nVPXUREROSDZTBpFQIRERERec/8+uuvfPTRR/z444988cUX1g7nrbl06RKenp6MHj2aHj16WDscEREREXmHVGNXRERERBK1sLCweG3jx4/HxsaGsmXLWiEiEREREZG3T6UYRERERCRRGzVqFCdOnKBChQrY2dmxZcsWtmzZQrt27fDw8LB2eCIiIiIib4USuyIiIiKSqH388cfs2LGDIUOGEBwcTObMmfn+++/p27evtUMTEREREXlrVGNXREREREREREREJJFRjV0RERERERERERGRREalGJ7CaDRy48YNkiVLhsFgsHY4IiIiIiIiIiIi8oEwmUw8fvyYDBkyYGPz7Hm5Suw+xY0bN7TQhoiIiIiIiIiIiFjN1atXyZQp0zO3WzWxu3//fkaPHs2JEye4efMma9asoV69es/dZ+/evfj6+nL69Gk8PDzo168frVq1sugzZcoURo8eTWBgIIULF2bSpEmULFnyheNKliwZ8OTNS548+cueloiIiIiIiIiIiMgrCQoKwsPDw5yjfBarJnZDQkIoXLgwX331FQ0aNPjP/hcvXqRmzZp06NCBxYsXs2vXLtq0aUP69OmpWrUqAAEBAfj6+jJ9+nS8vLwYP348VatW5ezZs6RLl+6F4ootv5A8eXIldkVEREREREREROSd+68S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GcHBwTRo0IBOnTqRPv2LF3QWERERERERERF53125fpOPytd55vaTe9eT+SUWSXsWAwa27v6JkRNnEh4RSa7sWVk2axyVypYGIHXOEs/cd92P0ynjVey1Y/i3d3Xub1NUVBR9+vThn3/+IVmyZHz88ccsXrzYvHibNb10YhfA1dWVvn37vulYREREREREREREEqysHhkJv/5iNWtjZXBLy9Htq567/U1wdnZiS8DsZ25/bgzu/72gXEI+97epatWqVK1a1dphPNVLJ3b379//3O0JYRqyiIiIiIiIiIhIQmBnZ0d2z8zWDsMqMSSUc39fvXRit3z58vHaDAaD+feYmJjXCkhERERERERERN4Oo/k3kxWjEBGT6fX/H7R52R0ePHhg8XP79m22bt1KiRIl2L59+2sHJCIiIiIiIiIib0dYZAzRRhMmTcwTsarQ0FCA16rV+9Izdl1dXeO1ffbZZzg4OODr68uJEydeORgREREREREREXl7giNiOBP4GFcXZ1xsbCHOU9gfsgiT8b87yQfDFB7+9sY2mQgNDeX27dukSJECW1vbVx7rlRZPexo3NzfOnj37poYTEREREREREZE3zASs+/0WmVI44Roarrzu/zMZgqwdgiQgdiFvLGX6TClSpMDd3f21xnjpKH///XeL1yaTiZs3bzJixAiKFCnySkFMmTKF0aNHExgYSOHChZk0aRIlS5Z8at/58+fj4+Nj0ebo6Eh4nEy6yWRi4MCBzJo1i4cPH/LJJ58wbdo0cubM+UrxiYiIiIiIiIi8Lx6GRTNixz+kSmKPrRK7AExymWvtECQBydBp/Vsd397e/rVm6sZ66cRukSJFMBgM8Qr8lipVirlzX/5/goCAAHx9fZk+fTpeXl6MHz+eqlWrcvbsWdKlS/fUfZInT24xO9jwr6+XRo0axcSJE1mwYAGenp7079+fqlWr8ueff+Lk5PTSMYqIiIiIiIiIvE9ijCbuBEdaO4wEw46b1g5BEpDEkj986cTuxYsXLV7b2NiQNm3aVz5hf39/2rZta56FO336dDZt2sTcuXP57rvvnrqPwWB45lRlk8nE+PHj6devH3Xr1gVg4cKFuLm5sXbtWry9vV8pThEREREREREREZGEwuZld8iSJYvFj4eHxysndSMjIzlx4gSVK1f+X0A2NlSuXJlDhw49c7/g4GDzsevWrcvp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MXr37s2jR4/MP1evXn31kxIRERERERERERF5y+ysHcDrGDFiBMuWLWPv3r04OTmZ2729vc2/FyxYkEKFCpE9e3b27t1LpUqV4o3j6OiIo6PjO4lZRERERERERERE5HVZdcZumjRpsLW15datWxbtt27dwt3d/bn7jhkzhhEjRrB9+3YKFSr03L7ZsmUjTZo0nD9//rVjFhEREREREREREbE2qyZ2HRwcKFasmMXCZ7ELoZUuXfqZ+40aNYohQ4awdetWihcv/p/HuXbtGvfu3SN9+vRvJG4RERERERERERERa7JqYhfA19eXWbNmsWDBAv766y86duxISEgIPj4+ALRo0YLevXub+48cOZL+/fszd+5csmbNSmBgIIGBgQQHBwMQHBxMz549OXz4MJcuXWLXrl3UrVuXHDlyULVqVauco4iIiIiIiIiIiMibZPUau02bNuXOnTsMGDCAwMBAihQpwtatW80Lql25cgUbm//ln6dNm0ZkZCSNGjWyGGfgwIF8//332Nra8vvvv7NgwQIePnxIhgwZqFKlCkOGDFEdXREREREREREREXkvWD2xC9C5c2c6d+781G179+61eH3p0qXnjuXs7My2bdveUGQiIiIiIiIiIiIiCY/VSzGIiIiIiIiIiIiIyMtRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRSRCJ3SlTppA1a1acnJzw8vLi6NGjz+2/YsUK8uTJg5OTEwULFmTz5s0W200mEwMGDCB9+vQ4OztTuXJl/v7777d5CiIiIiIiIiIiIiLvjNUTuwEBAfj6+jJw4EB++eUXChcuTNWqVbl9+/ZT+x88eJBmzZrRunVrTp48Sb169ahXrx5//PGHuc+oUaOYOHEi06dP58iRI7i4uFC1alXCw8Pf1WmJiIiIiIiIiIiIvDV21g7A39+ftm3b4uPjA8D06dPZtGkTc+fO5bvvvovXf8KECVSrVo2ePXsCMGTIEHbs2MHkyZOZPn06JpOJ8ePH069fP+rWrQvAwoULcXNzY+3atXh7e8cbMyIigoiICPPrR48eARAUFPTGz/dlxESEWfX4krA8to+xdgiSgFj7+pRQ6Dopcek6KbF0jXxC10iJS9dIiUvXySd0nZS4dJ2UuKx9nYw9vslkem4/qyZ2IyMjOXHiBL179za32djYULlyZQ4dOvTUfQ4dOoSvr69FW9WqVVm7di0AFy9eJDAwkMqVK5u3u7q64uXlxaFDh56a2B0+fDiDBg2K1+7h4fEqpyXyVhSwdgCSsAx3tXYEIgmOrpNipmukSDy6RooFXSdF4tF1UiwkkOvk48ePcXV9dixWTezevXuXmJgY3NzcLNrd3Nw4c+bMU/cJDAx8av/AwEDz9ti2Z/X5t969e1ski41GI/fv3yd16tQYDIaXOymRtyAoKAgPDw+uXr1K8uTJrR2OiEiCo+ukiMiz6RopIvJ8uk5KQmMymXj8+DEZMmR4bj+rl2JICBwdHXF0dLRoS5EihXWCEXmO5MmT64+MiMhz6DopIvJsukaKiDyfrpOSkDxvpm4sqy6eliZNGmxtbbl165ZF+61bt3B3d3/qPu7u7s/tH/vPlxlTREREREREREREJDGxamLXwcGBYsWKsWvXLnOb0Whk165dlC5d+qn7lC5d2qI/wI4dO8z9PT09cXd3t+gTFBTEkSNHnjmmiIiIiIiIiIiISGJi9VIMvr6+tGzZkuLFi1OyZEnGjx9PSEgIPj4+ALRo0YKMGTMyfPhwALp27Uq5cuUYO3YsNWvWZNmyZRw/fpyZM2cCYDAY6NatG0OHDiVnzpx4enrSv39/MmTIQL169ax1miKvxdHRkYEDB8YrGSIiIk/oOiki8my6RoqIPJ+uk5JYGUwmk8naQUyePJnRo0cTGBhIkSJFmDhxIl5eXgCUL1+erFmzMn/+fHP/FStW0K9fPy5dukTOnDkZNWoUNWrUMG83mUwMHDiQmTNn8vDhQ8qUKcPUqVPJlSvXuz41ERERERERERERkTcuQSR2RUREREREREREROTFWbXGroiIiIiIiIiIiIi8PCV2RURERERERERERBIZJXZFREREREREREREEhkldkVEREREREREREQSGSV2RURERERERERERBIZJXZFRERERETEKoxGo7VDEBERSbSU2BWRNybujXloaKgVIxEReTNMJhMA4eHhVo5EROT9ZGPz5CPpggULOHbsGPC/a6+IyIdMX3zJi1BiV0TeCKPRaL4xHzt2LOPGjePy5ctWjkpE5NWZTCYMBgM7d+6kZ8+e/PPPP9YOSUTkvWMymYiIiKBHjx4sXboUAIPBYOWoRESsK+7n61OnTnHt2jXu3LkD6MsvsaTEroi8EbF/dPz8/BgzZgxubm44OztbOSoRkVdnMBhYtWoV9evXJ3Xq1Ny/fx/QzbSIyJtkMplwdHRk1KhR7N69m1OnTlk7JBERq4v9fN27d29q1qzJJ598go+PD4cOHcJgMOh+VMzsrB2AiLw/Fi5cyIIFC9i5cycFCxYEICwsjMePH5MuXTorRyci8nJOnjxJx44d8ff3p23btub2e/fukSZNGitGJiKSeMU+DRErNnlRtGhRIiIiOHHiBAULFrSYrSYi8qGIe43cs2cPP/74I/Pnz+fs2bPs37+f5s2bM3fuXMqWLRvveiofJv2lFJE3JjAwkHLlylGwYEHOnj3LpEmTKFy4MA0aNKBXr17WDk9E5IXEzoA4deoUnp6etG3bluDgYJYuXUrNmjUpUqQIw4YNs3KUIiKJU2wSYsWKFaxevdrcXrhwYerUqcOgQYO4d++ekroi8kGKvUYuWrSI7du3061bNypVqsTXX39Nz549KVmyJK1ateKnn37CYDCoDq8osSsirybuH5Do6GjzP7dv346vry8NGjRg//79fPHFF5QqVYotW7Zw5coVa4UrIvKf/r1QmoeHBxcuXKBbt25Ur16dZcuWkT59evz8/OjXrx9Hjx61ZrgiIolK3HvHK1euMHv2bJo1a8bnn3/O9OnTAWjXrh1ZsmRh165d8fYREflQ/PPPP8ydO5dJkyZZLEperFgxevToQenSpfnqq6/YuXOnvgQTJXZF5OXFfTTO39+f0aNHExoaSp8+fWjdujX//PMPXbp0Ydiw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ISZOnMjcuXMBSJcuHQaDgTVr1nDnzh3zLN/X0bhxYzw9PalduzY7d+7kwoULLFu2jN27d7/TMYqIiIhI/KfEroiIiIjIv7i6uuLq6vrcY4MHD6Zfv374+vqSI0cOqlSpwtq1a8mQIQMAqVOnZuDAgfTu3RsPDw/zsg6vw8HBgY0bN5IiRQqqVatGnjx5GDZsWKwEs4iIiIiIwWQymawdhIiIiIiIiIiIiIi8Ps3YFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERH5SKVPn57mzZu/ddsaNWq824DiuG3btmEwGNi2bZu1Q/kk6fkXEREReTNK7IqIiIjEA7/++isGg4EDBw4893jZsmXJnTv3B47q3Tpx4gQ//fQTly5demXdvHnzkjZtWkwm0wvrfP7553h4eBAVFfUOo3y/tm3bRt26dfH09MTBwYEUKVLw5Zdfsnz5cmuHJiIiIiJxjBK7IiIiIh+p06dPM2PGDGuH8dpOnDjBwIEDXyux26RJE65evcqff/753OOXLl1i9+7dNGzYEDs7u3cc6fsxYMAAypUrx/Hjx2nbti3Tpk2jR48eBAcHU69ePRYsWGDtEN+r0qVLExoaSunSpa0dioiIiEi8ED/e5YqIiIjIG3N0dLR2CO/N119/jY+PDwsWLHhuInDhwoWYTCaaNGliheje3NKlSxk0aBBfffUVCxYswN7e3nysR48ebNiwgcjISCtG+P6EhYXh4OCAjY0NTk5O1g5HREREJN7QjF0RERGRj9Tz1tg9evQoZcqUwdnZmTRp0jBkyBDmzJmDwWB47kzZv/76i6JFi+Lk5ETGjBnx8/OLVefhw4d07doVLy8vHB0dyZw5M8OHD8doNFrUW7RoEYUKFSJRokS4urqSJ08exo8fDzxdaqJ+/foAlCtX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MlGwYME36svBwYFChQoREBBA7dq1ATAajQQEBNCxY8fX6iM6Oppjx45RrVo1ADJkyICnpycBAQHmRG5QUBB79+6lffv2bxSfiIiIiIiIiIiISFz0xksx+Pj40L17d44dO4aTkxPLli3j6tWrlClThvr1679xAN7e3syYMYO5c+dy8uRJ2rdvT0hICC1atACgadOmFpurDRo0iI0bN3LhwgUOHTrEN998w+XLl2nVqhXwdAO3rl27MmTIEFavXs2xY8do2rQpqVKlMiePRUREREREREREROKzN56xe/LkSRYuXPi0sZ0doaGhJEyYkEGDBlGrVq03nhXbsGFD7ty5Q//+/QkMDCR//vysX7/evPnZlStXsLH5X/75wYMHtG7dmsDAQJIkSUKhQoXYtWsXOXPmNNfp2bMnISEhtGnThocPH1KyZEnWr1+Pk5PTmw5XREREREREREREJM5548Sui4uLeV3dlClTcv78eXLlygXA3bt33yqIjh07vnDphW3btlk8Hjt2LGPHjn1pfwaDgUGDBjFo0KC3ikdEREREREREREQkLnvjxG7x4sX566+/yJEjB9WqVeOHH37g2LFjLF++nOLFi7+PGEVERERERERERETkGW+c2B0zZgzBwcEADBw4kODgYPz9/cmSJQtjxox55wGKiIiIiIiIiIiIiKU3TuwOHTqUb775Bni6LMO0adPeeVAiIiIiIiIiIiIi8mI2r65i6c6dO1SpUgUvLy969OjB33///T7iEhEREREREREREZEXeOPE7qpVq7h58yb9+vVj//79FCxYkFy5cjF06FAuXbr0HkIUERERERERERERkWe9cWIXIEmSJLRp04Zt27Zx+fJlmjdvzrx588icOfO7jk9ERERERERERERE/uWtErsxIiMjOXDgAHv37uXSpUt4eHi8q7hERERERERERERE5AXeKrG7detWWrdujYeHB82bN8fV1ZU1a9Zw7dq1dx2fiIiIiIiIiIiIiPyL3Zs2SJ06Nffv36dKlSpMnz6dL7/8EkdHx/cRm4iIiIiIiIiIiIg8xxsndn/66Sfq169P4sSJ30M4IiIiIiIiIiIiIvIqb5zYbd269fuIQ0RERERERERERERe03/aPE1EREREREREREREPjwldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROKZOJHYnTx5MunTp8fJyYlixYqxb9++F9adMWMGpUqVIkmSJCRJkoQKFSrEqt+8eXMMBoPFT5UqVd73MEREREREREREREQ+CKsndv39/fH29mbAgAEcOnSIfPnyUblyZW7fvv3c+tu2baNx48Zs3bqV3bt34+XlRaVKlbh+/bpFvSpVqnDz5k3zz8KFCz/EcERERERERERERETeO6sndseMGUPr1q1p0aIFOXPmZNq0aSRIkIDZs2c/t/5vv/3G999/T/78+cmePTszZ87EaDQSEBBgUc/R0RFPT0/zT5IkST7EcERERERERERERETeO6smdiMiIjh48CAVKlQwl9nY2FChQgV27979Wn08efKEyMhIkiZNalG+bds2UqRIQbZs2Wjfvj337t17YR/h4eEEBQVZ/IiIiIiIiIiIiIjEVVZN7N69e5fo6Gg8PDwsyj08PAgMDHytPnr16kWqVKksksNVqlTBz8+PgIAAhg8fzvbt26latSrR0dHP7cPX1xc3Nzfzj5eX19sPSkREREREREREROQ9s7N2AP/FsGHDWLRoEdu2bcPJyclc3qhRI/Of8+TJQ968ecmUKRPbtm3jiy++iNWPj48P3t7e5sdBQUFK7oqIiIiIiIiIiEicZdUZu+7u7tja2nLr1i2L8lu3buHp6fnStqNGjWLYsGFs3LiRvHnzvrRuxowZcXd359y5c8897ujoiKurq8WPiIiIiIiIiIiISFxl1cSug4MDhQoVstj4LGYjtBIlSryw3YgRIxg8eDDr16+ncOHCrzzPtWvXuHfvHilTpnwncYuIiIiIiIiIiIhYk1UTuwDe3t7MmDGDuXPncvLkSdq3b09ISAgtWrQAoGnTpvj4+JjrDx8+nH79+jF79mzSp09PYGAggYGBBAcHAxAcHEyPHj3Ys2cPly5dIiAggFq1apE5c2YqV65slTGKiIiIiIiIiIiIvEtWX2O3YcOG3Llzh/79+xMYGEj+/PlZv369eUO1K1euYGPzv/zz1KlTiYiI4KuvvrLoZ8CAAfz000/Y2tpy9OhR5s6dy8OHD0mVKhWVKlVi8ODBODo6ftCxiYiIiIiIiIiIiLwPVk/sAnTs2JGOHTs+99i2bdssHl+6dOmlfTk7O7Nhw4Z3FJmIiIiIiIiIiIhI3GP1pRhERERERERERERE5M0osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISz8SJxO7kyZNJnz49Tk5OFCtWjH379r20/pIlS8iePTtOTk7kyZOHP/74w+K4yWSif//+pEyZEmdnZypUqMDZs2ff5xBEREREREREREREPhirJ3b9/f3x9vZmwIABHDp0iHz58lG5cmVu37793Pq7du2icePGtGzZksOHD1O7dm1q167N8ePHzXVGjBjBhAkTmDZtGnv37sXFxYXKlSsTFhb2oYYlIiIiIiIiIiIi8t7YWTuAMWPG0Lp1a1q0aAHAtGnTWLt2LbNnz6Z3796x6o8fP54qVarQo0cPAAYPHsymTZuYNGkS06ZNw2QyMW7cOPr27UutWrUA8PPzw8PDg5UrV9KoUaNYfYaHhxMeHm5+/OjRIwCCgoLe+XjfRHR4qFXPL3HLY/toa4cgcYi1r09xha6T8ixdJyWGrpFP6Ropz9I1Up6l6+RTuk7Ks3SdlGdZ+zoZc36TyfTSelZN7EZERHDw4EF8fHzMZTY2NlSoUIHdu3c/t83u3bvx9va2KKtcuTIrV64E4OLFiwQGBlKhQgXzcTc3N4oVK8bu3bufm9j19fVl4MCBscq9vLzeZlgi70VuawcgcYuvm7UjEIlzdJ0UM10jRWLRNVIs6DopEouuk2IhjlwnHz9+jJvbi2OxamL37t27REdH4+HhYVHu4eHBqVOnntsmMDDwufUDAwPNx2PKXlTn33x8fCySxUajkfv375MsWTIMBsObDUrkPQgKCsLLy4urV6/i6upq7XBEROIcXSdFRF5M10gRkZfTdVLiGpPJxOPHj0mVKtVL61l9KYa4wNHREUdHR4uyxIkTWycYkZdwdXXVi4yIyEvoOiki8mK6RoqIvJyukxKXvGymbgyrbp7m7u6Ora0tt27dsii/desWnp6ez23j6en50vox/3+TPkVERERERERERETiE6smdh0cHChUqBABAQHmMqPRSEBAACVKlHhumxIlSljUB9i0aZO5foYMGfD09LSoExQUxN69e1/Yp4iIiIiIiIiIiEh8YvWlGLy9vWnWrBmFCxemaNGijBs3jpCQEFq0aAFA06ZNSZ06Nb6+vgB06dKFMmXKMHr0aKpXr86iRYs4cOAA06dPB8BgMNC1a1eGDBlClixZyJAhA/369SNVqlTUrl3bWsMU+U8cHR0ZMGBArCVDRETkKV0nRUReTNdIEZGX03VS4iuDyWQyWTuISZMmMXLkSAIDA8mfPz8TJkygWLFiAJQtW5b06dPz66+/musvWbKEvn37cunSJbJkycKIESOoVq2a+bjJZGLAgAFMnz6dhw8fUrJkSaZMmULWrFk/9NBERERERERERERE3rk4kdgVERERERERERERkddn1TV2RUREREREREREROTNKbErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiJWYTQarR2CiIhIvKXEroi8M8++MX/y5IkVIxEReTdMJhMAYWFhVo5EROTjZGPz9CPp3Llz2b9/P/C/a6+IyKdMX3zJ61BiV0TeCaPRaH5jPnr0aMaOHcvly5etHJWIyNszmUwYDAY2b95Mjx49uHDhgrVDEhH56JhMJsLDw+nevTsLFy4EwGAwWDkqERHrevbz9bFjx7h27Rp37twB9OWXWFJiV0TeiZgXnZ49ezJq1Cg8PDxwdna2clQiIm/PYDCwbNky6tSpQ7Jkybh//z6gN9MiIu+SyWTC0dGRESNGsGXLFo4dO2btkERErC7m87WPjw/Vq1fn888/p0WLFuzevRuDwaD3o2JmZ+0AROTj4efnx9y5c9m8eTN58uQBIDQ0lMePH5MiRQorRyci8mYOHz5M+/btGTNmDK1btzaX37t3D3d3dytGJiISf8XcDREjJnlRsGBBwsPDOXjwIHny5LGYrSYi8ql49hq5detW5s+fz6+//srp06fZsWMH3377LbNnz6Z06dKxrqfyadIrpYi8M4GBgZQpU4Y8efJw+vRpJk6cSL58+ahbty69evWydngiIq8lZgbEsWPHyJAhA61btyY4OJiFCxdSvXp18ufPz9ChQ60cpYhI/BSThFiyZAnLly83l+fLl4+aNWsycOBA7t27p6SuiHySYq6R8+bNY+PGjXTt2pUvvviC77//nh49elC0aFGaN2/On3/+icFg0Dq8osSuiLydZ19AoqKizP/fuHEj3t7e1K1blx07dtCkSROKFy/OunXruHLlirXCFRF5pX9vlObl5cX58+fp2rUrVatWZdGiRaRMmZKePXvSt29f9u3bZ81wRUTilWffO165coWZM2fSuHFjvv76a6ZNmwZAmzZtSJcuHQEBAbHaiIh8Ki5cuMDs2bOZOHGixabkhQoVonv37pQoUYLvvvuOzZs360swUWJXRN7cs7fGjRkzhpEjR/LkyRP69OlDy5YtuXDhAp06dWLo0KEMGDCAhg0bYmdnR3R0tJUjFxF5vphb2bZs2cLQoUO5cOECBQsWNCdwCxYsyIABA5gxYwbNmzenWLFi1g5ZRCTeePa945YtW0icODEbNmxg7969mEwmpk+fTu7cudm1axeBgYGsWrUKQAkLEfkk/Hu93IwZM9K9e3eKFy/O9OnTLdYeL1iwIN27dydz5sz88ssvHzpUiYMMJq24LCJvqWfPnsyfPx8fHx/q1KlDmjRpgKez3ZycnAAIDw+nbt26mEwm1qxZozfoIhLnxCR1ly1bRvPmzenZsyc1atSgQIECgOU1DaBv3774+/uzY8cOUqZMaa2wRUTihWfXgPTx8WHVqlU0b96cDh064OLiQmhoKKGhofz44488ePCAdevW8fjxY1asWEGtWrWsHL2IyPv17BdfUVFRREREkCBBAgC2bduGr68vjx49YubMmeTOndvc7syZM2TOnFmfr0WJXRF5O3PmzKFXr15s3ryZ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k5CQQNu2bdm+fTuXL1/GycmJN998k2nTpvHhhx8yb968Audo2LAh69evV6grIiIiUszd237Bzc0NDw8PkpKSyMnJoXfv3pw4cYIJEyYwYcIETp8+Dfx88yAFFiJSnOXk5JCWloarqyuPPvoomzdv5sCBA5b369aty/r164mMjGTevHmEhISwe/dujEYjOTk5ukZKiaKKXZH/Qd5fH29vbxo2bEhAQACxsbH07t2bWbNmMXDgQNLT0zGZTJjNZnbs2IGnp6flRnO/ZvAiIiIiUrwdPnyY8uXLU6dOHRISEvDx8eHNN9+0VO42aNCAf//73wwfPhx/f38cHBysPWQRkb9V/haH+X399dd069aNJ598krFjx/Lcc8/94jlUqSslkSp2Rf6g/JUWeaFsWloazZo1Y9euXfTq1csS6mZnZxMREUF8fDylS5ema9eulp5o+Y8XERERkeIrfy3N/v378fLyYtSoUWzdupUGDRrQtWtXzp49S5s2bdi3bx/u7u5kZ2dz/PhxhboiUuyZzWZLqBsdHc3HH3/Mzp07SU5O5oknnmDFihX8+9//Zs6cOezduxcADw+Pn62GVagrJZEqdkX+pFWrVtG9e3ccHBzo168fGzduJDMzkwULFuDt7Q1AUlISXl5edOrUCT8/PyuPWEREREQetPxVaFevXqVSpUps27aNrVu3EhoayqRJk6hcuTJLliwhICCADh06kJqaytmzZ2nYsCG2trZa5SUixVb+69vYsWOJiIjA2dkZR0dH3N3dmT59OlWqVOHgwYP4+vri6OhIRkYGubm5/Pvf/8be3t7K30DEuhTsivwJaWlpVKxYkd69exMaGsrNmzfx8vIiISGBkydPkpubS1paGn369OHWrVt88cUXenooIiIiUsLkD3WnTJnC999/z8iRIy0VuZ9++iljx47lpZdeYseOHdjb2xMfH0/16tUt59DSYhEpCb7++msmTpzIlClTeOyxx4iIiGDNmjW4uroyb948qlSpwn/+8x92795NWloao0aNws7OjpycHOzs7Kw9fBGrUSsGkd/h3o0uSpUqxaJFizh27Biffvop5cqVw9/fn3LlylGjRg2ef/55OnXqRFJSErt378bW1pbc3FwrjV5ERERErCEv1H333XeZP38+nTt3toS2RqORzp07ExMTQ9WqValevTqnTp1i48aNBc6hUFdE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Yu3SpUt89913zJkzh2effZbo6GgmTZpEQEAA8fHxjBgxgpycHDZt2kTz5s1xcXGx9pBFRERERERERER+k1oxSLGWkZHB1q1badmyJYmJifTo0QM/Pz+GDx9OcHAwY8aMwcPDg8jISCpWrAio/YKIiIiIiIiIiBR+qtiVYs3R0ZGOHTvy8MMPs3PnTho3bkyfPn0AsLe3p1evXjg4OODq6mo5RqGuiIiIiIiIiIgUdgp2pdjL63N28uRJbt26hcFgICMjg88++4yOHTuydetWbGxsMJlMVh6piIiIiIiIiIjI76NWDFJiHDhwgJdeeon69euTmZmJo6MjR48e1QYXIiIiIiIiIiJS5CjYlRLl6NGjREdHU6ZMGUaNGoWdnR05OTkKd0VEREREREREpEhRsCslmkJdEREREREREREpihTsioiIiIiIiIiIiBQx2jxNREREREREREREpIhRsCsiIiIiIiIiIiJSxCjYFRERERERERERESliFOyKiIiIiIiIiIiIFDEKdkVERERERERERESKGAW7IiIiIiIiIiIiIkWMgl0RERERERERERGRIkbBroiIiIiIFRkMBmJiYqw9DBEREREpYhTsioiIiEiJ5+Pjg8FgYNCgQT97b8iQIRgMBnx8fH7XuXbt2oXBYCAlJeV3ff7y5cu0b9/+D4xWRERERETBroiIiIgIANWqVSMyMpL09HTLaxkZGaxevZrq1av/5X9eVlYWAJUrV8bBweEvP7+IiIiIFG8KdkVEREREADc3N6pVq0Z0dLTltejoaKpXr85TTz1lec1kMjFjxgxq1aqFk5MTTz75JBs2bADgxx9/pGXLlgCUK1euQKWvh4cHQ4cOZeTIkbi6utK2bVvg560YLly4wBtvvEH58uVxdnbmmWee4eDBg3/ztxcRERGRosbO2gMQERERESks+vbty7Jly+jVqxcAS5cu5e2332bXrl2Wz8yYMYOVK1eyYMEC6tWrx549e/D29qZChQo0b96cqKgounXrxvfff0+ZMmVwcnKyHBseHs7gwYPZt2/fff/8O3fu8PLLL1OlShViY2OpXLkyR48exWQy/a3fW0RERESKHgW7IiIiIiL/z9vbG39/f86ePQvAvn37iIyMtAS7mZmZTJ8+nZ07d/L8888DULt2bfbu3UtYWBgvv/wy5cuXB6BixYo8/PDDBc5fr149Zs2a9Yt//urVq7l+/TqHDx+2nKdu3bp/8bcUERERkeJAwa6IiIiIyP+rUKECHTp0YPny5ZjNZjp06ICrq6vl/cTERNLS0nj11VcLHJeVlVWgXcMvefrpp3/1/ePHj/PUU09ZQl0RERERkV+iYFdEREREJJ++ffsydOhQAObPn1/gvTt37gCwZcsWqlSpUuC937MBmrOz86++n79tg4iIiIjIr1GwKyIiIiKST7t27cjKysJgMFg2OMvTqFEjHBwcOHfuHC+//PJ9j7e3twcgNzf3D//ZTzzxBIsXLyY5OVlVuyIiIiLyq2ysPQARERERkcLE1taWEydO8N1332Fra1vgvYceeogxY8bg5+dHeHg4p06d4ujRo8ybN4/w8HAAatSogcFgIC4ujuvXr1uqfH+PN954g8qVK9OlSxf27dvH6dOniYqK4ssvv/xLv6OIiIiIFH0KdkVERERE7lGmTBnKlClz3/emTp1KYGAgM2bMoGHDhrRr144tW7ZQq1YtAKpUqcI///lP3n33XSpVqmRp6/B72Nvbs337dipWrMg//vEPmjRpwsyZM38WMIuIiIiIGMxms9nagxARERERERERERGR308VuyIiIiIiIiIiIiJFjIJdERERERERERERkSJGwa6IiIiIiIiIiIhIEaNgV0RERERERERERKSIUbArIiIiIiIiIiIiUsQo2BUREREREREREREpYhTsioiIiIiIiIiIiBQxCnZFREREREREREREihgFuyIiIiIiIiIiIiJFjIJdERERERERERERkSJGwa6IiIiIiIiIiIhIEfN/DVgu5dKrUYcAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -68,177 +77,19 @@ } ], "source": [ - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "\n", - "# Load the CSV files into DataFrames\n", - "baseline_df = df1.copy()\n", - "prompt_eng_df = df2.copy()\n", - "\n", - "# Drop the unnamed index column if it exists\n", - "baseline_df = baseline_df.drop(columns=['Unnamed: 0'], errors='ignore')\n", - "prompt_eng_df = prompt_eng_df.drop(columns=['Unnamed: 0'], errors='ignore')\n", - "\n", - "# Define the numeric columns to focus on\n", - "numeric_columns = ['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision']\n", - "\n", - "# Calculate summary statistics\n", - "summary_stats = {\n", - " 'Metric': [],\n", - " 'Baseline_Average': [],\n", - " 'Prompt_eng_opt_Average': [],\n", - " 'Baseline_Highest': [],\n", - " 'Prompt_eng_opt_Highest': [],\n", - " 'Baseline_Lowest': [],\n", - " 'Prompt_eng_opt_Lowest': []\n", - "}\n", - "\n", - "for column in numeric_columns:\n", - " summary_stats['Metric'].append(column)\n", - " summary_stats['Baseline_Average'].append(baseline_df[column].mean())\n", - " summary_stats['Prompt_eng_opt_Average'].append(prompt_eng_df[column].mean())\n", - " summary_stats['Baseline_Highest'].append(baseline_df[column].max())\n", - " summary_stats['Prompt_eng_opt_Highest'].append(prompt_eng_df[column].max())\n", - " summary_stats['Baseline_Lowest'].append(baseline_df[column].min())\n", - " summary_stats['Prompt_eng_opt_Lowest'].append(prompt_eng_df[column].min())\n", - "\n", - "summary_df = pd.DataFrame(summary_stats)\n", - "\n", - "# Print summary statistics\n", + "# baseline_df = pd.read_csv('path_to_baseline.csv')\n", + "# prompt_eng_df = pd.read_csv('path_to_prompt_eng.csv')\n", + "benchmark = BenchmarkAnalysis(df1, df2)\n", + "summary_df = benchmark.calculate_summary_statistics()\n", "print(summary_df)\n", - "\n", - "# Visualization\n", - "plt.figure(figsize=(14, 10))\n", - "\n", - "# Average comparison\n", - "plt.subplot(3, 1, 1)\n", - "sns.barplot(x='Metric', y='value', hue='variable', data=pd.melt(summary_df, id_vars=['Metric'], value_vars=['Baseline_Average', 'Prompt_eng_opt_Average']))\n", - "plt.title('Average Comparison')\n", - "plt.xticks(rotation=45)\n", - "\n", - "# Highest value comparison\n", - "plt.subplot(3, 1, 2)\n", - "sns.barplot(x='Metric', y='value', hue='variable', data=pd.melt(summary_df, id_vars=['Metric'], value_vars=['Baseline_Highest', 'Prompt_eng_opt_Highest']))\n", - "plt.title('Highest Value Comparison')\n", - "plt.xticks(rotation=45)\n", - "\n", - "# Lowest value comparison\n", - "plt.subplot(3, 1, 3)\n", - "sns.barplot(x='Metric', y='value', hue='variable', data=pd.melt(summary_df, id_vars=['Metric'], value_vars=['Baseline_Lowest', 'Prompt_eng_opt_Lowest']))\n", - "plt.title('Lowest Value Comparison')\n", - "plt.xticks(rotation=45)\n", - "\n", - "plt.tight_layout()\n", - "plt.show()" + "benchmark.visualize_summary_statistics(summary_df)\n" ] }, { - "cell_type": "code", - "execution_count": 4, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
MetricBaseline_AveragePrompt_eng_opt_AverageBaseline_HighestPrompt_eng_opt_HighestBaseline_LowestPrompt_eng_opt_Lowest
0answer_correctness0.6890100.7226191.00.9948830.2296280.231443
1faithfulness0.8633330.8936901.01.0000000.2000000.500000
2answer_relevancy0.8468700.9034901.01.0000000.0000000.000000
3context_precision0.9800000.9535951.01.0000000.8333330.583333
\n", - "
" - ], - "text/plain": [ - " Metric Baseline_Average Prompt_eng_opt_Average \\\n", - "0 answer_correctness 0.689010 0.722619 \n", - "1 faithfulness 0.863333 0.893690 \n", - "2 answer_relevancy 0.846870 0.903490 \n", - "3 context_precision 0.980000 0.953595 \n", - "\n", - " Baseline_Highest Prompt_eng_opt_Highest Baseline_Lowest \\\n", - "0 1.0 0.994883 0.229628 \n", - "1 1.0 1.000000 0.200000 \n", - "2 1.0 1.000000 0.000000 \n", - "3 1.0 1.000000 0.833333 \n", - "\n", - " Prompt_eng_opt_Lowest \n", - "0 0.231443 \n", - "1 0.500000 \n", - "2 0.000000 \n", - "3 0.583333 " - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ - "summary_df" + "### Analyze deviations" ] }, { @@ -251,23 +102,23 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -348,7 +199,7 @@ "# Create the Altair plot\n", "chart = alt.Chart(deviation_melted).mark_bar().encode(\n", " x=alt.X('question:N', title='Question', sort=None),\n", - " y=alt.Y('Deviation:Q', title='Deviation'),\n", + " y=alt.Y('Deviation:Q', title='Deviatizon'),\n", " color='Metric:N',\n", " tooltip=['question', 'answer', 'Metric', 'Deviation']\n", ").properties(\n", diff --git a/src/benchmark_analysis/__init__.py b/src/benchmark_analysis/__init__.py new file mode 100644 index 0000000..4614fac --- /dev/null +++ b/src/benchmark_analysis/__init__.py @@ -0,0 +1 @@ +from .benchmarks_analysis import BenchmarkAnalysis \ No newline at end of file diff --git a/src/benchmark_analysis/benchmarks_analysis.py b/src/benchmark_analysis/benchmarks_analysis.py new file mode 100644 index 0000000..e656482 --- /dev/null +++ b/src/benchmark_analysis/benchmarks_analysis.py @@ -0,0 +1,72 @@ +import pandas as pd +import matplotlib.pyplot as plt +import seaborn as sns + +class BenchmarkAnalysis: + def __init__(self, baseline_df, prompt_eng_df): + self.baseline_df = baseline_df.copy() + self.prompt_eng_df = prompt_eng_df.copy() + self._clean_data() + + def _clean_data(self): + """Drops unnamed index columns if they exist.""" + self.baseline_df.drop(columns=['Unnamed: 0'], errors='ignore', inplace=True) + self.prompt_eng_df.drop(columns=['Unnamed: 0'], errors='ignore', inplace=True) + + def calculate_summary_statistics(self): + """Calculates summary statistics for the specified numeric columns.""" + numeric_columns = ['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision'] + summary_stats = { + 'Metric': [], + 'Baseline_Average': [], + 'Prompt_eng_opt_Average': [], + 'Baseline_Highest': [], + 'Prompt_eng_opt_Highest': [], + 'Baseline_Lowest': [], + 'Prompt_eng_opt_Lowest': [] + } + + for column in numeric_columns: + summary_stats['Metric'].append(column) + summary_stats['Baseline_Average'].append(self.baseline_df[column].mean()) + summary_stats['Prompt_eng_opt_Average'].append(self.prompt_eng_df[column].mean()) + summary_stats['Baseline_Highest'].append(self.baseline_df[column].max()) + summary_stats['Prompt_eng_opt_Highest'].append(self.prompt_eng_df[column].max()) + summary_stats['Baseline_Lowest'].append(self.baseline_df[column].min()) + summary_stats['Prompt_eng_opt_Lowest'].append(self.prompt_eng_df[column].min()) + + summary_df = pd.DataFrame(summary_stats) + return summary_df + + def visualize_summary_statistics(self, summary_df): + """Visualizes the summary statistics using bar plots.""" + plt.figure(figsize=(14, 10)) + + # Average comparison + plt.subplot(3, 1, 1) + sns.barplot(x='Metric', y='value', hue='variable', data=pd.melt(summary_df, id_vars=['Metric'], value_vars=['Baseline_Average', 'Prompt_eng_opt_Average'])) + plt.title('Average Comparison') + plt.xticks(rotation=45) + + # Highest value comparison + plt.subplot(3, 1, 2) + sns.barplot(x='Metric', y='value', hue='variable', data=pd.melt(summary_df, id_vars=['Metric'], value_vars=['Baseline_Highest', 'Prompt_eng_opt_Highest'])) + plt.title('Highest Value Comparison') + plt.xticks(rotation=45) + + # Lowest value comparison + plt.subplot(3, 1, 3) + sns.barplot(x='Metric', y='value', hue='variable', data=pd.melt(summary_df, id_vars=['Metric'], value_vars=['Baseline_Lowest', 'Prompt_eng_opt_Lowest'])) + plt.title('Lowest Value Comparison') + plt.xticks(rotation=45) + + plt.tight_layout() + plt.show() + +# Example usage: +# baseline_df = pd.read_csv('path_to_baseline.csv') +# prompt_eng_df = pd.read_csv('path_to_prompt_eng.csv') +# benchmark = BenchmarkAnalysis(baseline_df, prompt_eng_df) +# summary_df = benchmark.calculate_summary_statistics() +# print(summary_df) +# benchmark.visualize_summary_statistics(summary_df) From d6dd57de926e6e5714e51e540bf15f5338ffc175 Mon Sep 17 00:00:00 2001 From: Hillary Kipkemoi Date: Tue, 30 Jul 2024 04:41:26 +0300 Subject: [PATCH 02/13] move deviations analysis func to Benchmark class --- .../compare_benchmarks.ipynb | 395 +----------------- src/benchmark_analysis/benchmarks_analysis.py | 41 +- 2 files changed, 50 insertions(+), 386 deletions(-) diff --git a/notebooks/optimization_techniques/compare_benchmarks.ipynb b/notebooks/optimization_techniques/compare_benchmarks.ipynb index f3ef3f4..773f673 100644 --- a/notebooks/optimization_techniques/compare_benchmarks.ipynb +++ b/notebooks/optimization_techniques/compare_benchmarks.ipynb @@ -77,8 +77,6 @@ } ], "source": [ - "# baseline_df = pd.read_csv('path_to_baseline.csv')\n", - "# prompt_eng_df = pd.read_csv('path_to_prompt_eng.csv')\n", "benchmark = BenchmarkAnalysis(df1, df2)\n", "summary_df = benchmark.calculate_summary_statistics()\n", "print(summary_df)\n", @@ -94,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -102,23 +100,23 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ @@ -176,380 +174,9 @@ } ], "source": [ - "import pandas as pd\n", - "import altair as alt\n", - "\n", - "# Calculate deviations\n", - "deviations = {\n", - " 'question': baseline_df['question'],\n", - " 'answer': baseline_df['answer']\n", - "}\n", - "\n", - "for column in numeric_columns:\n", - " deviations[column + '_deviation'] = baseline_df[column] - prompt_eng_df[column]\n", - "\n", - "deviations_df = pd.DataFrame(deviations)\n", - "\n", - "# # Print deviations DataFrame\n", - "# deviations_df\n", - "\n", - "# Visualization using Altair\n", - "deviation_melted = deviations_df.melt(id_vars=['question', 'answer'], value_vars=[col + '_deviation' for col in numeric_columns], var_name='Metric', value_name='Deviation')\n", - "\n", - "# Create the Altair plot\n", - "chart = alt.Chart(deviation_melted).mark_bar().encode(\n", - " x=alt.X('question:N', title='Question', sort=None),\n", - " y=alt.Y('Deviation:Q', title='Deviatizon'),\n", - " color='Metric:N',\n", - " tooltip=['question', 'answer', 'Metric', 'Deviation']\n", - ").properties(\n", - " width=800,\n", - " height=400,\n", - " title='Deviations for Each Answer Comparing Baseline and RAGAS Scores'\n", - ").interactive()\n", - "\n", - "chart.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
questionansweranswer_correctness_deviationfaithfulness_deviationanswer_relevancy_deviationcontext_precision_deviation
0What is the significance of cherry trees in Wa...The cherry trees in Washington, D.C., are sign...-0.148794-0.1666670.0000000.000000e+00
1What is one of the events that Hillary Clinton...Hillary Clinton will be participating in a pai...0.0036410.000000-0.047002-5.000000e-02
2What role did the United States-led coalition ...The United States-led coalition conducted airs...-0.161420-0.800000-0.010703-3.333223e-12
3What can viewers expect from the season finale...Viewers can expect a 90-minute season finale f...0.0887890.000000-0.001650-1.666678e-11
4What is the significance of the Tunisian jihad...The Tunisian jihadist's significance lies in h...0.0378650.142857-0.008536-3.333223e-12
5How did the undercover FBI informant play a ro...The undercover FBI informant played a crucial ...-0.0189200.000000-0.0231330.000000e+00
6How does the new Red brand aim to leverage Rad...The new Red brand aims to leverage Radisson's ...-0.2983670.500000-0.0634590.000000e+00
7When are the peak blooms expected during the N...The peak blooms are expected between April 11 ...0.2652770.000000-0.0757550.000000e+00
8What is Zhanna Nemtsova's opinion on the Russi...Zhanna Nemtsova has no faith in the Russian in...-0.0056560.3333330.000000-3.333223e-12
9Who was one of Putin's harshest critics?One of Putin's harshest critics was Boris Nemt...-0.0018160.0000000.000000-8.888779e-12
10What factors could affect the selection of the...The selection of the new Senate Democrats lead...-0.121892-0.200000-0.005866-5.714429e-12
11How did the USS Sterett and USS New York coord...The USS Sterett coordinated the search for the...-0.026646-0.0333330.006821-1.071443e-11
12When will Hillary Clinton announce her 2016 pr...I don't know when Hillary Clinton will announc...-0.131306-0.083333-0.863718-5.000000e-02
13What does King Abdullah II think about ISIS es...King Abdullah II believes that ISIS's establis...-0.335270-0.2000000.0066101.900000e-01
14What nationalities were the Bardo Museum attac...The victims of the Bardo Museum attack include...-0.1602890.400000-0.021907-3.333223e-12
15How did W Hotels become a pioneer in the hospi...W Hotels became a pioneer in the hospitality i...0.0561340.333333-0.0569250.000000e+00
16Why were the first cherry trees in Washington,...The first cherry trees in Washington, D.C. wer...-0.071330-0.3333330.0080682.500000e-01
17How can the government protect middle class jo...The government can protect middle class jobs a...0.0359320.0000000.0012121.365079e-01
18Why was the Bardo Museum targeted in the terro...The Bardo Museum was targeted in the terrorist...0.279804-0.5000000.000000-3.333223e-12
19What is the impact of reversing Section 66A on...Reversing Section 66A of the 2008 Information ...0.0420720.0000000.0235505.158730e-02
\n", - "
" - ], - "text/plain": [ - " question \\\n", - "0 What is the significance of cherry trees in Wa... \n", - "1 What is one of the events that Hillary Clinton... \n", - "2 What role did the United States-led coalition ... \n", - "3 What can viewers expect from the season finale... \n", - "4 What is the significance of the Tunisian jihad... \n", - "5 How did the undercover FBI informant play a ro... \n", - "6 How does the new Red brand aim to leverage Rad... \n", - "7 When are the peak blooms expected during the N... \n", - "8 What is Zhanna Nemtsova's opinion on the Russi... \n", - "9 Who was one of Putin's harshest critics? \n", - "10 What factors could affect the selection of the... \n", - "11 How did the USS Sterett and USS New York coord... \n", - "12 When will Hillary Clinton announce her 2016 pr... \n", - "13 What does King Abdullah II think about ISIS es... \n", - "14 What nationalities were the Bardo Museum attac... \n", - "15 How did W Hotels become a pioneer in the hospi... \n", - "16 Why were the first cherry trees in Washington,... \n", - "17 How can the government protect middle class jo... \n", - "18 Why was the Bardo Museum targeted in the terro... \n", - "19 What is the impact of reversing Section 66A on... \n", - "\n", - " answer \\\n", - "0 The cherry trees in Washington, D.C., are sign... \n", - "1 Hillary Clinton will be participating in a pai... \n", - "2 The United States-led coalition conducted airs... \n", - "3 Viewers can expect a 90-minute season finale f... \n", - "4 The Tunisian jihadist's significance lies in h... \n", - "5 The undercover FBI informant played a crucial ... \n", - "6 The new Red brand aims to leverage Radisson's ... \n", - "7 The peak blooms are expected between April 11 ... \n", - "8 Zhanna Nemtsova has no faith in the Russian in... \n", - "9 One of Putin's harshest critics was Boris Nemt... \n", - "10 The selection of the new Senate Democrats lead... \n", - "11 The USS Sterett coordinated the search for the... \n", - "12 I don't know when Hillary Clinton will announc... \n", - "13 King Abdullah II believes that ISIS's establis... \n", - "14 The victims of the Bardo Museum attack include... \n", - "15 W Hotels became a pioneer in the hospitality i... \n", - "16 The first cherry trees in Washington, D.C. wer... \n", - "17 The government can protect middle class jobs a... \n", - "18 The Bardo Museum was targeted in the terrorist... \n", - "19 Reversing Section 66A of the 2008 Information ... \n", - "\n", - " answer_correctness_deviation faithfulness_deviation \\\n", - "0 -0.148794 -0.166667 \n", - "1 0.003641 0.000000 \n", - "2 -0.161420 -0.800000 \n", - "3 0.088789 0.000000 \n", - "4 0.037865 0.142857 \n", - "5 -0.018920 0.000000 \n", - "6 -0.298367 0.500000 \n", - "7 0.265277 0.000000 \n", - "8 -0.005656 0.333333 \n", - "9 -0.001816 0.000000 \n", - "10 -0.121892 -0.200000 \n", - "11 -0.026646 -0.033333 \n", - "12 -0.131306 -0.083333 \n", - "13 -0.335270 -0.200000 \n", - "14 -0.160289 0.400000 \n", - "15 0.056134 0.333333 \n", - "16 -0.071330 -0.333333 \n", - "17 0.035932 0.000000 \n", - "18 0.279804 -0.500000 \n", - "19 0.042072 0.000000 \n", - "\n", - " answer_relevancy_deviation context_precision_deviation \n", - "0 0.000000 0.000000e+00 \n", - "1 -0.047002 -5.000000e-02 \n", - "2 -0.010703 -3.333223e-12 \n", - "3 -0.001650 -1.666678e-11 \n", - "4 -0.008536 -3.333223e-12 \n", - "5 -0.023133 0.000000e+00 \n", - "6 -0.063459 0.000000e+00 \n", - "7 -0.075755 0.000000e+00 \n", - "8 0.000000 -3.333223e-12 \n", - "9 0.000000 -8.888779e-12 \n", - "10 -0.005866 -5.714429e-12 \n", - "11 0.006821 -1.071443e-11 \n", - "12 -0.863718 -5.000000e-02 \n", - "13 0.006610 1.900000e-01 \n", - "14 -0.021907 -3.333223e-12 \n", - "15 -0.056925 0.000000e+00 \n", - "16 0.008068 2.500000e-01 \n", - "17 0.001212 1.365079e-01 \n", - "18 0.000000 -3.333223e-12 \n", - "19 0.023550 5.158730e-02 " - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "deviations_df" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sum of Deviations:\n", - " answer_correctness_deviation -0.672191\n", - "faithfulness_deviation -0.607143\n", - "answer_relevancy_deviation -1.132394\n", - "context_precision_deviation 0.528095\n", - "dtype: float64\n" - ] - } - ], - "source": [ - "sum_deviations = deviations_df[[col + '_deviation' for col in numeric_columns]].sum()\n", - "print(\"Sum of Deviations:\\n\", sum_deviations)" + "deviations_df = benchmark.calculate_deviations()\n", + "# print(deviations_df)\n", + "benchmark.visualize_deviations(deviations_df)" ] }, { diff --git a/src/benchmark_analysis/benchmarks_analysis.py b/src/benchmark_analysis/benchmarks_analysis.py index e656482..b9147a0 100644 --- a/src/benchmark_analysis/benchmarks_analysis.py +++ b/src/benchmark_analysis/benchmarks_analysis.py @@ -1,6 +1,7 @@ import pandas as pd import matplotlib.pyplot as plt import seaborn as sns +import altair as alt class BenchmarkAnalysis: def __init__(self, baseline_df, prompt_eng_df): @@ -12,7 +13,7 @@ def _clean_data(self): """Drops unnamed index columns if they exist.""" self.baseline_df.drop(columns=['Unnamed: 0'], errors='ignore', inplace=True) self.prompt_eng_df.drop(columns=['Unnamed: 0'], errors='ignore', inplace=True) - + def calculate_summary_statistics(self): """Calculates summary statistics for the specified numeric columns.""" numeric_columns = ['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision'] @@ -37,7 +38,7 @@ def calculate_summary_statistics(self): summary_df = pd.DataFrame(summary_stats) return summary_df - + def visualize_summary_statistics(self, summary_df): """Visualizes the summary statistics using bar plots.""" plt.figure(figsize=(14, 10)) @@ -62,6 +63,39 @@ def visualize_summary_statistics(self, summary_df): plt.tight_layout() plt.show() + + def calculate_deviations(self): + """Calculates deviations between baseline and prompt engineering optimized DataFrames.""" + numeric_columns = ['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision'] + deviations = { + 'question': self.baseline_df['question'], + 'answer': self.baseline_df['answer'] + } + + for column in numeric_columns: + deviations[column + '_deviation'] = self.baseline_df[column] - self.prompt_eng_df[column] + + deviations_df = pd.DataFrame(deviations) + return deviations_df + + def visualize_deviations(self, deviations_df): + """Visualizes the deviations using Altair.""" + numeric_columns = ['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision'] + deviation_melted = deviations_df.melt(id_vars=['question', 'answer'], value_vars=[col + '_deviation' for col in numeric_columns], var_name='Metric', value_name='Deviation') + + # Create the Altair plot + chart = alt.Chart(deviation_melted).mark_bar().encode( + x=alt.X('question:N', title='Question', sort=None), + y=alt.Y('Deviation:Q', title='Deviation'), + color='Metric:N', + tooltip=['question', 'answer', 'Metric', 'Deviation'] + ).properties( + width=800, + height=400, + title='Deviations for Each Answer Comparing Baseline and RAGAS Scores' + ).interactive() + + chart.show() # Example usage: # baseline_df = pd.read_csv('path_to_baseline.csv') @@ -70,3 +104,6 @@ def visualize_summary_statistics(self, summary_df): # summary_df = benchmark.calculate_summary_statistics() # print(summary_df) # benchmark.visualize_summary_statistics(summary_df) +# deviations_df = benchmark.calculate_deviations() +# print(deviations_df) +# benchmark.visualize_deviations(deviations_df) From 665a595dc9d04c50cc938e054153aa878b0a741f Mon Sep 17 00:00:00 2001 From: Hillary Kipkemoi Date: Tue, 30 Jul 2024 04:51:59 +0300 Subject: [PATCH 03/13] add len of split_docs for testing purposes --- .../reranking_crossencoder.ipynb | 770 ++++++++++++++++++ src/rag_pipeline/rag_system.py | 10 +- 2 files changed, 776 insertions(+), 4 deletions(-) create mode 100644 notebooks/optimization_techniques/reranking_crossencoder.ipynb diff --git a/notebooks/optimization_techniques/reranking_crossencoder.ipynb b/notebooks/optimization_techniques/reranking_crossencoder.ipynb new file mode 100644 index 0000000..00a1baf --- /dev/null +++ b/notebooks/optimization_techniques/reranking_crossencoder.ipynb @@ -0,0 +1,770 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Import modules" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import pandas as pd\n", + "\n", + "os.chdir(\"../../\")\n", + "\n", + "from datasets import load_dataset\n", + "from langchain_openai import OpenAIEmbeddings, ChatOpenAI\n", + "from langchain.vectorstores import Chroma\n", + "from langchain.chains import RetrievalQA\n", + "from langchain_community.document_loaders import HuggingFaceDatasetLoader\n", + "\n", + "from langchain.embeddings import HuggingFaceEmbeddings\n", + "from langchain_community.embeddings.fastembed import FastEmbedEmbeddings\n", + "from langchain_cohere import CohereEmbeddings\n", + "\n", + "from dotenv import load_dotenv" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from src.rag_pipeline import chunk_by_recursive_split, RAGSystem\n", + "from src.env_loader import load_api_keys\n", + "from src.ragas.ragas_pipeline import run_ragas_evaluation\n", + "from src import display_df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Load API keys" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "openai_api_key = load_api_keys(\"OPENAI_API_KEY\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Initialize embeddings and RAG system" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# embeddings=HuggingFaceEmbeddings(model_name='sentence-transformers/all-MiniLM-L6-v2')\n", + "\n", + "embeddings_model = 'text-embedding-ada-002'\n", + "# embeddings_model = 'text-embedding-3-large'\n", + "embeddings = OpenAIEmbeddings(api_key=openai_api_key, model=embeddings_model)\n", + "\n", + "# embeddings=FastEmbedEmbeddings(model_name=\"BAAI/bge-large-en-v1.5\")\n", + "\n", + "# embeddings = CohereEmbeddings(model=\"embed-english-v3.0\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Setup the RAG system" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "rag_system = RAGSystem(\n", + " model_name = \"gpt-3.5-turbo\",\n", + " existing_vectorstore = False,\n", + " embeddings = embeddings,\n", + " clear_store = True,\n", + " use_multiquery = True,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--Split 1000 documents into 5030 chunks.--\n" + ] + } + ], + "source": [ + "rag_system.initialize()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(rag_system.split_docs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Doing reranking with CrossEncoderReranker" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "base_retriever = rag_system.base_retriever" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.retrievers import ContextualCompressionRetriever\n", + "from langchain.retrievers.document_compressors import CrossEncoderReranker\n", + "from langchain_community.cross_encoders import HuggingFaceCrossEncoder\n", + "\n", + "embeddings = HuggingFaceEmbeddings(\n", + " model_name=\"sentence-transformers/msmarco-distilbert-dot-v5\"\n", + ")\n", + "\n", + "model = HuggingFaceCrossEncoder(model_name=\"BAAI/bge-reranker-base\")\n", + "compressor = CrossEncoderReranker(model=model, top_n=3)\n", + "compression_retriever = ContextualCompressionRetriever(\n", + " base_compressor=compressor, base_retriever=retriever\n", + ")\n", + "\n", + "compressed_docs = compression_retriever.invoke(\"What is the plan for the economy?\")\n", + "pretty_print_docs(compressed_docs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Doing reranking with CohereReranker" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "base_retriever = rag_system.base_retriever" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain.retrievers.contextual_compression import ContextualCompressionRetriever\n", + "from langchain_cohere import CohereRerank\n", + "from langchain_community.llms import Cohere\n", + "\n", + "llm = Cohere(temperature=0)\n", + "compressor = CohereRerank(model=\"rerank-english-v3.0\")\n", + "compression_retriever = ContextualCompressionRetriever(\n", + " base_compressor=compressor, base_retriever=base_retriever\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "rag_system.final_retriever = compression_retriever\n", + "rag_system.setup_rag_chain()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Using LLM cohere and cohere reranker retriever" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "# from src.rag_pipeline.rag_utils import rag_chain_setup\n", + "\n", + "# rag_system.final_retriever = compression_retriever\n", + "# rag_system.rag_chain = rag_chain_setup(compression_retriever, llm)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Test the RAG Chain" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "question = \"Who was one of Putin's harshest critics?\"\n", + "result = rag_system.rag_chain.invoke(question)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'question': \"Who was one of Putin's harshest critics?\",\n", + " 'answer': \"One of Putin's harshest critics was Boris Nemtsov.\",\n", + " 'contexts': ['Moscow (CNN)In his first substantive comments since Kremlin critic Boris Nemtsov\\'s death, Russian President Vladimir Putin on Wednesday called the killing a \"disgrace\" and lashed out at what he called \"extremists\" and protesters. Nemtsov had been one of Putin\\'s harshest critics and had been arrested several times for speaking against the President\\'s government. The 55-year-old opposition leader was gunned down Friday night in Moscow as he walked across a bridge about 100 meters (330 feet) from the Kremlin with his girlfriend, Ukrainian model Anna Duritskaya, 23. His slaying spurred thousands to rally in his honor in Moscow, with many calling him a true Russian patriot at his funeral Tuesday. Nemtsov isn\\'t the first of Putin\\'s critics to turn up dead, with others including Anna Politkovskaya (who was fatally shot) and Alexander Litvinenko (who was poisoned). The Kremlin has staunchly denied accusations that it\\'s targeting political opponents or had anything to do with the deaths. The',\n", + " 'be heading an opposition party and do what I\\'m doing.\" Opinion: The complicated life and tragic death of Boris Nemtsov . Critics of Putin have in the past suffered miserable fates. Last year, a Moscow court sentenced five men to prison for the 2006 killing of Russian journalist and fierce Kremlin critic Anna Politkovskaya. Business magnate Mikhail Khodorkovsky accused Putin of corruption and spent 10 years in prison and labor camps. Late last year, Kremlin critic Alexey Navalny was found guilty of fraud in a politically charged trial. Russia\\'s official news agency reported Monday that a request by Navalny to attend Nemtsov\\'s funeral had been denied. And before his death, Nemtsov had been arrested several times for speaking against Putin\\'s government. Kasparov, chairman of the Human Rights Foundation\\'s International Council, suggested the killing was linked to the Kremlin\\'s own insecurity. \"If you are popular your critics don\\'t have to be shot down in front of the Kremlin,\" Kasparov',\n", + " \"Vladimir Putin's most outspoken critics, was shot in the back on a Moscow bridge as he walked with his girlfriend near the Kremlin in February 27. The three suspects visited by Tsvetkov deny they are guilty and have appealed their arrests, he said. Putin has condemned Nemtsov's killing and ordered three law enforcement agencies to investigate, the Kremlin has said. He also wrote to Nemtsov's mother, saying he shared her grief, and promised to bring those behind the killing to justice. CNN's Matthew Chance and Alla Eshchenko reported from Moscow, and Steve Almasy wrote from Atlanta. CNN's Elwyn Lopez and Karen Smith contributed to this report.\"]}" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## RAGAS Pipeline testing the rag_chain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Ragas Testing with Langsmith Tracing" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--LOADING EVALUATION DATA--\n", + "--GETTING CONTEXT AND ANSWERS--\n", + "--USING LANGSMITH FOR EVALUATION--\n", + "Created a new dataset 'cnn_dailymail_evaluation'. Dataset is accessible at https://smith.langchain.com/o/6691a6dd-a70e-56c0-8f45-a1f64338d797/datasets/8e291ee7-635e-40c2-ab54-1d2e8897e5f6\n", + "View the evaluation results for project 'baseline_rag_benchmark' at:\n", + "https://smith.langchain.com/o/6691a6dd-a70e-56c0-8f45-a1f64338d797/datasets/8e291ee7-635e-40c2-ab54-1d2e8897e5f6/compare?selectedSessions=a58cdd46-9bf6-44ae-9ea4-f0853631205f\n", + "\n", + "View all tests for Dataset cnn_dailymail_evaluation at:\n", + "https://smith.langchain.com/o/6691a6dd-a70e-56c0-8f45-a1f64338d797/datasets/8e291ee7-635e-40c2-ab54-1d2e8897e5f6\n", + "[------------> ] 5/19" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Error evaluating run f591f3a5-4864-48c3-ac91-409ab305f428 with EvaluatorChain: APIConnectionError('Connection error.')\n", + "Traceback (most recent call last):\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1558, in _request\n", + " response = await self._client.send(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpx/_client.py\", line 1661, in send\n", + " response = await self._send_handling_auth(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpx/_client.py\", line 1689, in _send_handling_auth\n", + " response = await self._send_handling_redirects(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpx/_client.py\", line 1726, in _send_handling_redirects\n", + " response = await self._send_single_request(request)\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpx/_client.py\", line 1763, in _send_single_request\n", + " response = await transport.handle_async_request(request)\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py\", line 373, in handle_async_request\n", + " resp = await self._pool.handle_async_request(req)\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_async/connection_pool.py\", line 216, in handle_async_request\n", + " raise exc from None\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_async/connection_pool.py\", line 196, in handle_async_request\n", + " response = await connection.handle_async_request(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_async/connection.py\", line 101, in handle_async_request\n", + " return await self._connection.handle_async_request(request)\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py\", line 142, in handle_async_request\n", + " await self._response_closed()\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py\", line 257, in _response_closed\n", + " await self.aclose()\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py\", line 265, in aclose\n", + " await self._network_stream.aclose()\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_backends/anyio.py\", line 55, in aclose\n", + " await self._stream.aclose()\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/anyio/streams/tls.py\", line 202, in aclose\n", + " await self.transport_stream.aclose()\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/anyio/_backends/_asyncio.py\", line 1202, in aclose\n", + " self._transport.close()\n", + " File \"/usr/lib/python3.10/asyncio/selector_events.py\", line 706, in close\n", + " self._loop.call_soon(self._call_connection_lost, None)\n", + " File \"/usr/lib/python3.10/asyncio/base_events.py\", line 753, in call_soon\n", + " self._check_closed()\n", + " File \"/usr/lib/python3.10/asyncio/base_events.py\", line 515, in _check_closed\n", + " raise RuntimeError('Event loop is closed')\n", + "RuntimeError: Event loop is closed\n", + "\n", + "The above exception was the direct cause of the following exception:\n", + "\n", + "Traceback (most recent call last):\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/tracers/evaluation.py\", line 127, in _evaluate_in_project\n", + " evaluation_result = evaluator.evaluate_run(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/integrations/langchain.py\", line 210, in evaluate_run\n", + " eval_output = self.invoke(chain_eval, include_run_info=True)\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain/chains/base.py\", line 166, in invoke\n", + " raise e\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain/chains/base.py\", line 156, in invoke\n", + " self._call(inputs, run_manager=run_manager)\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/integrations/langchain.py\", line 80, in _call\n", + " score = self.metric.score(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/metrics/base.py\", line 105, in score\n", + " raise e\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/metrics/base.py\", line 101, in score\n", + " score = asyncio.run(self._ascore(row=row, callbacks=group_cm))\n", + " File \"/usr/lib/python3.10/asyncio/runners.py\", line 44, in run\n", + " return loop.run_until_complete(main)\n", + " File \"/usr/lib/python3.10/asyncio/base_events.py\", line 649, in run_until_complete\n", + " return future.result()\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/metrics/_faithfulness.py\", line 263, in _ascore\n", + " nli_result = await self.llm.generate(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/llms/base.py\", line 93, in generate\n", + " return await agenerate_text_with_retry(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/tenacity/asyncio/__init__.py\", line 189, in async_wrapped\n", + " return await copy(fn, *args, **kwargs)\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/tenacity/asyncio/__init__.py\", line 111, in __call__\n", + " do = await self.iter(retry_state=retry_state)\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/tenacity/asyncio/__init__.py\", line 153, in iter\n", + " result = await action(retry_state)\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/tenacity/_utils.py\", line 99, in inner\n", + " return call(*args, **kwargs)\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/tenacity/__init__.py\", line 398, in \n", + " self._add_action_func(lambda rs: rs.outcome.result())\n", + " File \"/usr/lib/python3.10/concurrent/futures/_base.py\", line 451, in result\n", + " return self.__get_result()\n", + " File \"/usr/lib/python3.10/concurrent/futures/_base.py\", line 403, in __get_result\n", + " raise self._exception\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/tenacity/asyncio/__init__.py\", line 114, in __call__\n", + " result = await fn(*args, **kwargs)\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/llms/base.py\", line 170, in agenerate_text\n", + " return await self.langchain_llm.agenerate_prompt(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/language_models/chat_models.py\", line 724, in agenerate_prompt\n", + " return await self.agenerate(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/language_models/chat_models.py\", line 684, in agenerate\n", + " raise exceptions[0]\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/language_models/chat_models.py\", line 883, in _agenerate_with_cache\n", + " result = await self._agenerate(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_openai/chat_models/base.py\", line 741, in _agenerate\n", + " response = await self.async_client.create(**payload)\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/resources/chat/completions.py\", line 1295, in create\n", + " return await self._post(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1826, in post\n", + " return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1519, in request\n", + " return await self._request(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1582, in _request\n", + " return await self._retry_request(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1651, in _retry_request\n", + " return await self._request(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1582, in _request\n", + " return await self._retry_request(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1651, in _retry_request\n", + " return await self._request(\n", + " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1592, in _request\n", + " raise APIConnectionError(request=request) from err\n", + "openai.APIConnectionError: Connection error.\n", + "Error in EvaluatorCallbackHandler.on_chain_end callback: APIConnectionError('Connection error.')\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[------------------------------------------------->] 19/19" + ] + }, + { + "data": { + "text/html": [ + "

Experiment Results:

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
feedback.answer_correctnessfeedback.faithfulnessfeedback.answer_relevancyfeedback.context_precisionerrorexecution_timerun_id
count19.00000018.00000018.00000018.000000019.00000019
uniqueNaNNaNNaNNaN0NaN19
topNaNNaNNaNNaNNaNNaN31f949c4-1476-4eb2-ae11-f23eb62af6d3
freqNaNNaNNaNNaNNaNNaN1
mean0.7064390.8518520.8877680.965509NaN2.434766NaN
std0.2032500.2434700.2251740.083576NaN0.693174NaN
min0.2296240.2500000.0000000.679167NaN1.334236NaN
25%0.5798770.6875000.9184371.000000NaN2.051280NaN
50%0.7437231.0000000.9344251.000000NaN2.481985NaN
75%0.8326331.0000000.9633211.000000NaN2.726066NaN
max1.0000001.0000001.0000001.000000NaN4.482909NaN
\n", + "
" + ], + "text/plain": [ + " feedback.answer_correctness feedback.faithfulness \\\n", + "count 19.000000 18.000000 \n", + "unique NaN NaN \n", + "top NaN NaN \n", + "freq NaN NaN \n", + "mean 0.706439 0.851852 \n", + "std 0.203250 0.243470 \n", + "min 0.229624 0.250000 \n", + "25% 0.579877 0.687500 \n", + "50% 0.743723 1.000000 \n", + "75% 0.832633 1.000000 \n", + "max 1.000000 1.000000 \n", + "\n", + " feedback.answer_relevancy feedback.context_precision error \\\n", + "count 18.000000 18.000000 0 \n", + "unique NaN NaN 0 \n", + "top NaN NaN NaN \n", + "freq NaN NaN NaN \n", + "mean 0.887768 0.965509 NaN \n", + "std 0.225174 0.083576 NaN \n", + "min 0.000000 0.679167 NaN \n", + "25% 0.918437 1.000000 NaN \n", + "50% 0.934425 1.000000 NaN \n", + "75% 0.963321 1.000000 NaN \n", + "max 1.000000 1.000000 NaN \n", + "\n", + " execution_time run_id \n", + "count 19.000000 19 \n", + "unique NaN 19 \n", + "top NaN 31f949c4-1476-4eb2-ae11-f23eb62af6d3 \n", + "freq NaN 1 \n", + "mean 2.434766 NaN \n", + "std 0.693174 NaN \n", + "min 1.334236 NaN \n", + "25% 2.051280 NaN \n", + "50% 2.481985 NaN \n", + "75% 2.726066 NaN \n", + "max 4.482909 NaN " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--EVALUATION COMPLETE--\n" + ] + }, + { + "ename": "AttributeError", + "evalue": "'TestResult' object has no attribute 'to_pandas'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[7], line 4\u001b[0m\n\u001b[1;32m 1\u001b[0m experiment_name \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbaseline_rag_benchmark\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2\u001b[0m dataset_name \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcnn_dailymail_evaluation\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m----> 4\u001b[0m rag_results \u001b[38;5;241m=\u001b[39m \u001b[43mrun_ragas_evaluation\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43mrag_chain\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrag_system\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrag_chain\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_langsmith\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[43mexperiment_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexperiment_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8\u001b[0m \u001b[43m \u001b[49m\u001b[43mdataset_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdataset_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mupload_dataset_to_langsmith\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[43msave_results\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\n\u001b[1;32m 11\u001b[0m \u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/code/RizzBuzz/rag-optimization-cnn-dailymail/src/ragas/ragas_pipeline.py:86\u001b[0m, in \u001b[0;36mrun_ragas_evaluation\u001b[0;34m(rag_chain, use_langsmith, upload_dataset_to_langsmith, dataset_name, experiment_name, save_results, dataset_description)\u001b[0m\n\u001b[1;32m 0\u001b[0m \n", + "\u001b[0;31mAttributeError\u001b[0m: 'TestResult' object has no attribute 'to_pandas'" + ] + } + ], + "source": [ + "# experiment_name = \"baseline_rag_benchmark_1\"\n", + "# dataset_name = \"cnn_dailymail_evaluation\"\n", + "\n", + "# rag_results = run_ragas_evaluation(\n", + "# rag_chain=rag_system.rag_chain,\n", + "# use_langsmith=True,\n", + "# experiment_name=experiment_name,\n", + "# dataset_name=dataset_name,\n", + "# upload_dataset_to_langsmith=True,\n", + "# save_results=True\n", + "# )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run Ragas tests locally" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--LOADING EVALUATION DATA--\n", + "--EVALUATING LOCALLY--\n", + "--GETTING CONTEXT AND ANSWERS--\n" + ] + }, + { + "ename": "TooManyRequestsError", + "evalue": "status_code: 429, body: data=None message=\"You are using a Trial key, which is limited to 10 API calls / minute. You can continue to use the Trial key for free or upgrade to a Production key with higher rate limits at 'https://dashboard.cohere.com/api-keys'. Contact us on 'https://discord.gg/XW44jPfYJu' or email us at support@cohere.com with any questions\"", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTooManyRequestsError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[40], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m rag_results \u001b[38;5;241m=\u001b[39m \u001b[43mrun_ragas_evaluation\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[43mrag_chain\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrag_system\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrag_chain\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[43msave_results\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43mexperiment_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcohere_reranker_with_llm_openai_gpt4o\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\n\u001b[1;32m 5\u001b[0m \u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/code/RizzBuzz/rag-optimization-cnn-dailymail/src/ragas/ragas_pipeline.py:87\u001b[0m, in \u001b[0;36mrun_ragas_evaluation\u001b[0;34m(rag_chain, use_langsmith, upload_dataset_to_langsmith, dataset_name, experiment_name, save_results, dataset_description)\u001b[0m\n\u001b[1;32m 85\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m--EVALUATING LOCALLY--\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 86\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m--GETTING CONTEXT AND ANSWERS--\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 87\u001b[0m testset \u001b[38;5;241m=\u001b[39m \u001b[43mget_context_and_answer\u001b[49m\u001b[43m(\u001b[49m\u001b[43meval_data\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrag_chain\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 88\u001b[0m result \u001b[38;5;241m=\u001b[39m ragas_evaluate(dataset\u001b[38;5;241m=\u001b[39mtestset, metrics\u001b[38;5;241m=\u001b[39mmetrics)\n\u001b[1;32m 90\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m--EVALUATION COMPLETE--\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[0;32m~/code/RizzBuzz/rag-optimization-cnn-dailymail/src/ragas/ragas_pipeline.py:142\u001b[0m, in \u001b[0;36mget_context_and_answer\u001b[0;34m(evaluation_data, rag_chain)\u001b[0m\n\u001b[1;32m 132\u001b[0m results \u001b[38;5;241m=\u001b[39m {\n\u001b[1;32m 133\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mquestion\u001b[39m\u001b[38;5;124m\"\u001b[39m: [],\n\u001b[1;32m 134\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcontexts\u001b[39m\u001b[38;5;124m\"\u001b[39m: [],\n\u001b[1;32m 135\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124manswer\u001b[39m\u001b[38;5;124m\"\u001b[39m: [],\n\u001b[1;32m 136\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mground_truth\u001b[39m\u001b[38;5;124m\"\u001b[39m: [],\n\u001b[1;32m 137\u001b[0m }\n\u001b[1;32m 139\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m question, ground_truth \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(\n\u001b[1;32m 140\u001b[0m evaluation_data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mquestions\u001b[39m\u001b[38;5;124m\"\u001b[39m], evaluation_data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mground_truths\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 141\u001b[0m ):\n\u001b[0;32m--> 142\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[43mrag_chain\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minvoke\u001b[49m\u001b[43m(\u001b[49m\u001b[43mquestion\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 143\u001b[0m contexts_list \u001b[38;5;241m=\u001b[39m response[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcontexts\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 145\u001b[0m results[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mquestion\u001b[39m\u001b[38;5;124m\"\u001b[39m]\u001b[38;5;241m.\u001b[39mappend(question)\n", + "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/runnables/base.py:3562\u001b[0m, in \u001b[0;36mRunnableParallel.invoke\u001b[0;34m(self, input, config)\u001b[0m\n\u001b[1;32m 3549\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m get_executor_for_config(config) \u001b[38;5;28;01mas\u001b[39;00m executor:\n\u001b[1;32m 3550\u001b[0m futures \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 3551\u001b[0m executor\u001b[38;5;241m.\u001b[39msubmit(\n\u001b[1;32m 3552\u001b[0m step\u001b[38;5;241m.\u001b[39minvoke,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3560\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key, step \u001b[38;5;129;01min\u001b[39;00m steps\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 3561\u001b[0m ]\n\u001b[0;32m-> 3562\u001b[0m output \u001b[38;5;241m=\u001b[39m {key: future\u001b[38;5;241m.\u001b[39mresult() \u001b[38;5;28;01mfor\u001b[39;00m key, future \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(steps, futures)}\n\u001b[1;32m 3563\u001b[0m \u001b[38;5;66;03m# finish the root run\u001b[39;00m\n\u001b[1;32m 3564\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", + "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/runnables/base.py:3562\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 3549\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m get_executor_for_config(config) \u001b[38;5;28;01mas\u001b[39;00m executor:\n\u001b[1;32m 3550\u001b[0m futures \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 3551\u001b[0m executor\u001b[38;5;241m.\u001b[39msubmit(\n\u001b[1;32m 3552\u001b[0m step\u001b[38;5;241m.\u001b[39minvoke,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3560\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key, step \u001b[38;5;129;01min\u001b[39;00m steps\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 3561\u001b[0m ]\n\u001b[0;32m-> 3562\u001b[0m output \u001b[38;5;241m=\u001b[39m {key: \u001b[43mfuture\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m key, future \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(steps, futures)}\n\u001b[1;32m 3563\u001b[0m \u001b[38;5;66;03m# finish the root run\u001b[39;00m\n\u001b[1;32m 3564\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", + "File \u001b[0;32m/usr/lib/python3.10/concurrent/futures/_base.py:458\u001b[0m, in \u001b[0;36mFuture.result\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 456\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m CancelledError()\n\u001b[1;32m 457\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state \u001b[38;5;241m==\u001b[39m FINISHED:\n\u001b[0;32m--> 458\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__get_result\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 459\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 460\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTimeoutError\u001b[39;00m()\n", + "File \u001b[0;32m/usr/lib/python3.10/concurrent/futures/_base.py:403\u001b[0m, in \u001b[0;36mFuture.__get_result\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 401\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception:\n\u001b[1;32m 402\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 403\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception\n\u001b[1;32m 404\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 405\u001b[0m \u001b[38;5;66;03m# Break a reference cycle with the exception in self._exception\u001b[39;00m\n\u001b[1;32m 406\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[0;32m/usr/lib/python3.10/concurrent/futures/thread.py:58\u001b[0m, in \u001b[0;36m_WorkItem.run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 58\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 59\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[1;32m 60\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfuture\u001b[38;5;241m.\u001b[39mset_exception(exc)\n", + "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/runnables/base.py:2875\u001b[0m, in \u001b[0;36mRunnableSequence.invoke\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 2873\u001b[0m \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m step\u001b[38;5;241m.\u001b[39minvoke(\u001b[38;5;28minput\u001b[39m, config, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 2874\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 2875\u001b[0m \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[43mstep\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minvoke\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconfig\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2876\u001b[0m \u001b[38;5;66;03m# finish the root run\u001b[39;00m\n\u001b[1;32m 2877\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", + "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/runnables/base.py:3562\u001b[0m, in \u001b[0;36mRunnableParallel.invoke\u001b[0;34m(self, input, config)\u001b[0m\n\u001b[1;32m 3549\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m get_executor_for_config(config) \u001b[38;5;28;01mas\u001b[39;00m executor:\n\u001b[1;32m 3550\u001b[0m futures \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 3551\u001b[0m executor\u001b[38;5;241m.\u001b[39msubmit(\n\u001b[1;32m 3552\u001b[0m step\u001b[38;5;241m.\u001b[39minvoke,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3560\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key, step \u001b[38;5;129;01min\u001b[39;00m steps\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 3561\u001b[0m ]\n\u001b[0;32m-> 3562\u001b[0m output \u001b[38;5;241m=\u001b[39m {key: future\u001b[38;5;241m.\u001b[39mresult() \u001b[38;5;28;01mfor\u001b[39;00m key, future \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(steps, futures)}\n\u001b[1;32m 3563\u001b[0m \u001b[38;5;66;03m# finish the root run\u001b[39;00m\n\u001b[1;32m 3564\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", + "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/runnables/base.py:3562\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 3549\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m get_executor_for_config(config) \u001b[38;5;28;01mas\u001b[39;00m executor:\n\u001b[1;32m 3550\u001b[0m futures \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 3551\u001b[0m executor\u001b[38;5;241m.\u001b[39msubmit(\n\u001b[1;32m 3552\u001b[0m step\u001b[38;5;241m.\u001b[39minvoke,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3560\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key, step \u001b[38;5;129;01min\u001b[39;00m steps\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 3561\u001b[0m ]\n\u001b[0;32m-> 3562\u001b[0m output \u001b[38;5;241m=\u001b[39m {key: \u001b[43mfuture\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m key, future \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(steps, futures)}\n\u001b[1;32m 3563\u001b[0m \u001b[38;5;66;03m# finish the root run\u001b[39;00m\n\u001b[1;32m 3564\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", + "File \u001b[0;32m/usr/lib/python3.10/concurrent/futures/_base.py:458\u001b[0m, in \u001b[0;36mFuture.result\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 456\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m CancelledError()\n\u001b[1;32m 457\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state \u001b[38;5;241m==\u001b[39m FINISHED:\n\u001b[0;32m--> 458\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__get_result\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 459\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 460\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTimeoutError\u001b[39;00m()\n", + "File \u001b[0;32m/usr/lib/python3.10/concurrent/futures/_base.py:403\u001b[0m, in \u001b[0;36mFuture.__get_result\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 401\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception:\n\u001b[1;32m 402\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 403\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception\n\u001b[1;32m 404\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 405\u001b[0m \u001b[38;5;66;03m# Break a reference cycle with the exception in self._exception\u001b[39;00m\n\u001b[1;32m 406\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[0;32m/usr/lib/python3.10/concurrent/futures/thread.py:58\u001b[0m, in \u001b[0;36m_WorkItem.run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 58\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 59\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[1;32m 60\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfuture\u001b[38;5;241m.\u001b[39mset_exception(exc)\n", + "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/runnables/base.py:2873\u001b[0m, in \u001b[0;36mRunnableSequence.invoke\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 2869\u001b[0m config \u001b[38;5;241m=\u001b[39m patch_config(\n\u001b[1;32m 2870\u001b[0m config, callbacks\u001b[38;5;241m=\u001b[39mrun_manager\u001b[38;5;241m.\u001b[39mget_child(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mseq:step:\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mi\u001b[38;5;241m+\u001b[39m\u001b[38;5;241m1\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 2871\u001b[0m )\n\u001b[1;32m 2872\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m i \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m-> 2873\u001b[0m \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[43mstep\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minvoke\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconfig\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2874\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 2875\u001b[0m \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m step\u001b[38;5;241m.\u001b[39minvoke(\u001b[38;5;28minput\u001b[39m, config)\n", + "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/retrievers.py:221\u001b[0m, in \u001b[0;36mBaseRetriever.invoke\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 219\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 220\u001b[0m run_manager\u001b[38;5;241m.\u001b[39mon_retriever_error(e)\n\u001b[0;32m--> 221\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[1;32m 222\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 223\u001b[0m run_manager\u001b[38;5;241m.\u001b[39mon_retriever_end(\n\u001b[1;32m 224\u001b[0m result,\n\u001b[1;32m 225\u001b[0m )\n", + "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/retrievers.py:214\u001b[0m, in \u001b[0;36mBaseRetriever.invoke\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 212\u001b[0m _kwargs \u001b[38;5;241m=\u001b[39m kwargs \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_expects_other_args \u001b[38;5;28;01melse\u001b[39;00m {}\n\u001b[1;32m 213\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_new_arg_supported:\n\u001b[0;32m--> 214\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_relevant_documents\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 215\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrun_manager\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrun_manager\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m_kwargs\u001b[49m\n\u001b[1;32m 216\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 217\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 218\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_relevant_documents(\u001b[38;5;28minput\u001b[39m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m_kwargs)\n", + "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain/retrievers/contextual_compression.py:48\u001b[0m, in \u001b[0;36mContextualCompressionRetriever._get_relevant_documents\u001b[0;34m(self, query, run_manager, **kwargs)\u001b[0m\n\u001b[1;32m 44\u001b[0m docs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbase_retriever\u001b[38;5;241m.\u001b[39minvoke(\n\u001b[1;32m 45\u001b[0m query, config\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcallbacks\u001b[39m\u001b[38;5;124m\"\u001b[39m: run_manager\u001b[38;5;241m.\u001b[39mget_child()}, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs\n\u001b[1;32m 46\u001b[0m )\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m docs:\n\u001b[0;32m---> 48\u001b[0m compressed_docs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbase_compressor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcompress_documents\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 49\u001b[0m \u001b[43m \u001b[49m\u001b[43mdocs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mquery\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcallbacks\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrun_manager\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_child\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 50\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mlist\u001b[39m(compressed_docs)\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", + "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_cohere/rerank.py:106\u001b[0m, in \u001b[0;36mCohereRerank.compress_documents\u001b[0;34m(self, documents, query, callbacks)\u001b[0m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124;03mCompress documents using Cohere's rerank API.\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;124;03m A sequence of compressed documents.\u001b[39;00m\n\u001b[1;32m 104\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 105\u001b[0m compressed \u001b[38;5;241m=\u001b[39m []\n\u001b[0;32m--> 106\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m res \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrerank\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdocuments\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mquery\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[1;32m 107\u001b[0m doc \u001b[38;5;241m=\u001b[39m documents[res[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mindex\u001b[39m\u001b[38;5;124m\"\u001b[39m]]\n\u001b[1;32m 108\u001b[0m doc_copy \u001b[38;5;241m=\u001b[39m Document(doc\u001b[38;5;241m.\u001b[39mpage_content, metadata\u001b[38;5;241m=\u001b[39mdeepcopy(doc\u001b[38;5;241m.\u001b[39mmetadata))\n", + "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_cohere/rerank.py:73\u001b[0m, in \u001b[0;36mCohereRerank.rerank\u001b[0;34m(self, documents, query, rank_fields, model, top_n, max_chunks_per_doc)\u001b[0m\n\u001b[1;32m 71\u001b[0m model \u001b[38;5;241m=\u001b[39m model \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmodel\n\u001b[1;32m 72\u001b[0m top_n \u001b[38;5;241m=\u001b[39m top_n \u001b[38;5;28;01mif\u001b[39;00m (top_n \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mor\u001b[39;00m top_n \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m) \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtop_n\n\u001b[0;32m---> 73\u001b[0m results \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mclient\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrerank\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 74\u001b[0m \u001b[43m \u001b[49m\u001b[43mquery\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mquery\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 75\u001b[0m \u001b[43m \u001b[49m\u001b[43mdocuments\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdocs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 76\u001b[0m \u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 77\u001b[0m \u001b[43m \u001b[49m\u001b[43mtop_n\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtop_n\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 78\u001b[0m \u001b[43m \u001b[49m\u001b[43mrank_fields\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrank_fields\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 79\u001b[0m \u001b[43m \u001b[49m\u001b[43mmax_chunks_per_doc\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmax_chunks_per_doc\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 80\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 81\u001b[0m result_dicts \u001b[38;5;241m=\u001b[39m []\n\u001b[1;32m 82\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m res \u001b[38;5;129;01min\u001b[39;00m results\u001b[38;5;241m.\u001b[39mresults:\n", + "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/cohere/base_client.py:1606\u001b[0m, in \u001b[0;36mBaseCohere.rerank\u001b[0;34m(self, query, documents, model, top_n, rank_fields, return_documents, max_chunks_per_doc, request_options)\u001b[0m\n\u001b[1;32m 1602\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m UnprocessableEntityError(\n\u001b[1;32m 1603\u001b[0m typing\u001b[38;5;241m.\u001b[39mcast(UnprocessableEntityErrorBody, construct_type(type_\u001b[38;5;241m=\u001b[39mUnprocessableEntityErrorBody, object_\u001b[38;5;241m=\u001b[39m_response\u001b[38;5;241m.\u001b[39mjson())) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 1604\u001b[0m )\n\u001b[1;32m 1605\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m _response\u001b[38;5;241m.\u001b[39mstatus_code \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m429\u001b[39m:\n\u001b[0;32m-> 1606\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m TooManyRequestsError(\n\u001b[1;32m 1607\u001b[0m typing\u001b[38;5;241m.\u001b[39mcast(TooManyRequestsErrorBody, construct_type(type_\u001b[38;5;241m=\u001b[39mTooManyRequestsErrorBody, object_\u001b[38;5;241m=\u001b[39m_response\u001b[38;5;241m.\u001b[39mjson())) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 1608\u001b[0m )\n\u001b[1;32m 1609\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m _response\u001b[38;5;241m.\u001b[39mstatus_code \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m499\u001b[39m:\n\u001b[1;32m 1610\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ClientClosedRequestError(\n\u001b[1;32m 1611\u001b[0m typing\u001b[38;5;241m.\u001b[39mcast(ClientClosedRequestErrorBody, construct_type(type_\u001b[38;5;241m=\u001b[39mClientClosedRequestErrorBody, object_\u001b[38;5;241m=\u001b[39m_response\u001b[38;5;241m.\u001b[39mjson())) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 1612\u001b[0m )\n", + "\u001b[0;31mTooManyRequestsError\u001b[0m: status_code: 429, body: data=None message=\"You are using a Trial key, which is limited to 10 API calls / minute. You can continue to use the Trial key for free or upgrade to a Production key with higher rate limits at 'https://dashboard.cohere.com/api-keys'. Contact us on 'https://discord.gg/XW44jPfYJu' or email us at support@cohere.com with any questions\"" + ] + } + ], + "source": [ + "rag_results = run_ragas_evaluation(\n", + " rag_chain=rag_system.rag_chain,\n", + " save_results=True,\n", + " experiment_name=\"cohere_reranker_with_llm_openai_gpt4o\"\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "rag-optimization-cnn-dailymail-hiPg4Kip-py3.10", + "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.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src/rag_pipeline/rag_system.py b/src/rag_pipeline/rag_system.py index fbca3c6..d95501f 100644 --- a/src/rag_pipeline/rag_system.py +++ b/src/rag_pipeline/rag_system.py @@ -38,7 +38,7 @@ def __init__(self, use_ensemble_retriever: bool = False, use_multiquery: bool = False, chunk_size: int = CHUNK_SIZE, - chunk_overlap: int = CHUNK_OVERLAP + chunk_overlap: int = CHUNK_OVERLAP, ): self.model_name = model_name self.llm = None @@ -65,8 +65,10 @@ def load_documents(self, file_path: str = None): documents = load_docs_from_csv(as_document=True) self.documents = documents - def prepare_documents(self): + def prepare_documents(self, len_split_docs: int = 0): split_docs = chunk_by_recursive_split(self.documents, chunk_size=self.chunk_size, chunk_overlap=self.chunk_overlap) + if len_split_docs: + split_docs = split_docs[:len_split_docs] return split_docs def initialize_vectorstore(self): @@ -131,14 +133,14 @@ def query(self, question: str) -> str: result = self.rag_chain.invoke(question) return result["answer"] - def initialize(self): + def initialize(self, len_split_docs: int = 0): self.load_documents() self.setup_vectorstore() self.setup_base_retriever() if not self.existing_vectorstore: # Setup a new vectorstore - self.split_docs = self.prepare_documents() + self.split_docs = self.prepare_documents(len_split_docs) self.vectorstore.add_documents(self.split_docs) From 80f6effaf25548a360f8cd56595308b9fd529041 Mon Sep 17 00:00:00 2001 From: Hillary Kipkemoi Date: Tue, 30 Jul 2024 06:20:00 +0300 Subject: [PATCH 04/13] Add Class setup for cohere reranking and add to RAGSystem --- .../reranking_crossencoder.ipynb | 131 +++++++++++++----- src/rag_pipeline/__init__.py | 3 +- src/rag_pipeline/rag_system.py | 39 +++++- src/rag_pipeline/reranker.py | 39 ++++++ 4 files changed, 172 insertions(+), 40 deletions(-) create mode 100644 src/rag_pipeline/reranker.py diff --git a/notebooks/optimization_techniques/reranking_crossencoder.ipynb b/notebooks/optimization_techniques/reranking_crossencoder.ipynb index 00a1baf..058ef53 100644 --- a/notebooks/optimization_techniques/reranking_crossencoder.ipynb +++ b/notebooks/optimization_techniques/reranking_crossencoder.ipynb @@ -23,8 +23,19 @@ "from langchain.vectorstores import Chroma\n", "from langchain.chains import RetrievalQA\n", "from langchain_community.document_loaders import HuggingFaceDatasetLoader\n", + " # Reranker imports\n", + "from langchain.retrievers.contextual_compression import ContextualCompressionRetriever\n", + "from langchain.retrievers.document_compressors import CrossEncoderReranker\n", + "from langchain_community.cross_encoders import HuggingFaceCrossEncoder\n", + "from langchain_huggingface import HuggingFaceEmbeddings\n", + "\n", + "# Cohere reranker imports\n", + "from langchain.retrievers.contextual_compression import ContextualCompressionRetriever\n", + "from langchain_cohere import CohereRerank\n", + "from langchain_community.llms import Cohere\n", + "\n", "\n", - "from langchain.embeddings import HuggingFaceEmbeddings\n", + "# from langchain_huggingface import HuggingFaceEmbeddings\n", "from langchain_community.embeddings.fastembed import FastEmbedEmbeddings\n", "from langchain_cohere import CohereEmbeddings\n", "\n", @@ -37,7 +48,7 @@ "metadata": {}, "outputs": [], "source": [ - "from src.rag_pipeline import chunk_by_recursive_split, RAGSystem\n", + "from src.rag_pipeline import chunk_by_recursive_split, RAGSystem, Reranker\n", "from src.env_loader import load_api_keys\n", "from src.ragas.ragas_pipeline import run_ragas_evaluation\n", "from src import display_df" @@ -68,21 +79,40 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# embeddings=HuggingFaceEmbeddings(model_name='sentence-transformers/all-MiniLM-L6-v2')\n", "\n", - "embeddings_model = 'text-embedding-ada-002'\n", + "# embeddings_model = 'text-embedding-ada-002'\n", "# embeddings_model = 'text-embedding-3-large'\n", - "embeddings = OpenAIEmbeddings(api_key=openai_api_key, model=embeddings_model)\n", + "# embeddings = OpenAIEmbeddings(api_key=openai_api_key, model=embeddings_model)\n", "\n", "# embeddings=FastEmbedEmbeddings(model_name=\"BAAI/bge-large-en-v1.5\")\n", "\n", "# embeddings = CohereEmbeddings(model=\"embed-english-v3.0\")" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Doing reranking with CrossEncoderReranker" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# embeddings for cross encoder reranker\n", + "embeddings = HuggingFaceEmbeddings(\n", + " model_name=\"sentence-transformers/msmarco-distilbert-dot-v5\"\n", + ")" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -92,7 +122,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -101,85 +131,122 @@ " existing_vectorstore = False,\n", " embeddings = embeddings,\n", " clear_store = True,\n", - " use_multiquery = True,\n", + " k_documents = 20,\n", + " use_reranker = True,\n", + " top_n_ranked = 3,\n", ")" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "--Split 1000 documents into 5030 chunks.--\n" + "--SETUP NEW VECTORSTORE--\n", + "--Split 1000 documents into 5030 chunks.--\n", + "--USING BASE RETRIEVER--\n", + "--SETUP RERANKER--\n" + ] + }, + { + "ename": "AttributeError", + "evalue": "'Reranker' object has no attribute 'use_cohere_reranker'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[7], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mrag_system\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minitialize\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m50\u001b[39;49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/code/RizzBuzz/rag-optimization-cnn-dailymail/src/rag_pipeline/rag_system.py:182\u001b[0m, in \u001b[0;36mRAGSystem.initialize\u001b[0;34m(self, len_split_docs)\u001b[0m\n\u001b[1;32m 179\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msetup_base_retriever()\n\u001b[1;32m 181\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39muse_reranker:\n\u001b[0;32m--> 182\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msetup_reranker\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 184\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msetup_rag_chain()\n", + "File \u001b[0;32m~/code/RizzBuzz/rag-optimization-cnn-dailymail/src/rag_pipeline/rag_system.py:139\u001b[0m, in \u001b[0;36mRAGSystem.setup_reranker\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 133\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m--SETUP RERANKER--\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 134\u001b[0m my_reranker \u001b[38;5;241m=\u001b[39m Reranker(\n\u001b[1;32m 135\u001b[0m retriever\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinal_retriever, \n\u001b[1;32m 136\u001b[0m top_n\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtop_n_ranked,\n\u001b[1;32m 137\u001b[0m use_cohere_reranker\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39muse_cohere_reranker\n\u001b[1;32m 138\u001b[0m )\n\u001b[0;32m--> 139\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinal_retriever \u001b[38;5;241m=\u001b[39m \u001b[43mmy_reranker\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minitialize\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/code/RizzBuzz/rag-optimization-cnn-dailymail/src/rag_pipeline/reranker.py:31\u001b[0m, in \u001b[0;36mReranker.initialize\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 30\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minitialize\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[0;32m---> 31\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43muse_cohere_reranker\u001b[49m:\n\u001b[1;32m 32\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msetup_cohere_model()\n\u001b[1;32m 33\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", + "\u001b[0;31mAttributeError\u001b[0m: 'Reranker' object has no attribute 'use_cohere_reranker'" ] } ], "source": [ - "rag_system.initialize()" + "rag_system.initialize(50)" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "5" + "[Document(metadata={'source': 'cnn_dailymail', 'id': 'a4942dd663020ca54575471657a0af38d82897d6', 'start_index': 0}, page_content='(CNN)Share, and your gift will be multiplied. That may sound like an esoteric adage, but when Zully Broussard selflessly decided to give one of her kidneys to a stranger, her generosity paired up with big data. It resulted in six patients receiving transplants. That surprised and wowed her. \"I thought I was going to help this one person who I don\\'t know, but the fact that so many people can have a life extension, that\\'s pretty big,\" Broussard told CNN affiliate KGO. She may feel guided in her generosity by a higher power. \"Thanks for all the support and prayers,\" a comment on a Facebook page in her name read. \"I know this entire journey is much bigger than all of us. I also know I\\'m just the messenger.\" CNN cannot verify the authenticity of the page. But the power that multiplied Broussard\\'s gift was data processing of genetic profiles from donor-recipient pairs. It works on a simple swapping principle but takes it to a much higher level, according to California Pacific Medical Center'),\n", + " Document(metadata={'source': 'cnn_dailymail', 'id': 'a4942dd663020ca54575471657a0af38d82897d6', 'start_index': 803}, page_content='gift was data processing of genetic profiles from donor-recipient pairs. It works on a simple swapping principle but takes it to a much higher level, according to California Pacific Medical Center in San Francisco. So high, that it is taking five surgeons, a covey of physician assistants, nurses and anesthesiologists, and more than 40 support staff to perform surgeries on 12 people. They are extracting six kidneys from donors and implanting them into six recipients. \"The ages of the donors and recipients range from 26 to 70 and include three parent and child pairs, one sibling pair and one brother and sister-in-law pair,\" the medical center said in a statement. The chain of surgeries is to be wrapped up Friday. In late March, the medical center is planning to hold a reception for all 12 patients. Here\\'s how the super swap works, according to California Pacific Medical Center. Say, your brother needs a kidney to save his life, or at least get off of dialysis, and you\\'re willing to give'),\n", + " Document(metadata={'source': 'cnn_dailymail', 'id': 'a4942dd663020ca54575471657a0af38d82897d6', 'start_index': 1611}, page_content=\"Here's how the super swap works, according to California Pacific Medical Center. Say, your brother needs a kidney to save his life, or at least get off of dialysis, and you're willing to give him one of yours. But then it turns out that your kidney is not a match for him, and it's certain his body would reject it. Your brother can then get on a years-long waiting list for a kidney coming from an organ donor who died. Maybe that will work out -- or not, and time could run out for him. Alternatively, you and your brother could look for another recipient-living donor couple like yourselves -- say, two more siblings, where the donor's kidney isn't suited for his sister, the recipient. But maybe your kidney is a match for his sister, and his kidney is a match for your brother. So, you'd do a swap. That's called a paired donation. It's a bit of a surgical square dance, where four people cross over partners temporarily and everybody goes home smiling. But instead of a square dance,\")]" ] }, - "execution_count": 9, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "len(rag_system.split_docs)" + "len(rag_system.split_docs)\n", + "rag_system.split_docs[:3]" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 15, "metadata": {}, + "outputs": [], "source": [ - "#### Doing reranking with CrossEncoderReranker" + "base_retriever = rag_system.base_retriever" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ - "base_retriever = rag_system.base_retriever" + "test_q = \"How did Zully Broussard's selfless decision to donate a kidney lead to six patients receiving transplants?\"\n", + "res = rag_system.rag_chain.invoke(test_q)" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ - "from langchain.retrievers import ContextualCompressionRetriever\n", - "from langchain.retrievers.document_compressors import CrossEncoderReranker\n", - "from langchain_community.cross_encoders import HuggingFaceCrossEncoder\n", - "\n", - "embeddings = HuggingFaceEmbeddings(\n", - " model_name=\"sentence-transformers/msmarco-distilbert-dot-v5\"\n", - ")\n", "\n", "model = HuggingFaceCrossEncoder(model_name=\"BAAI/bge-reranker-base\")\n", "compressor = CrossEncoderReranker(model=model, top_n=3)\n", "compression_retriever = ContextualCompressionRetriever(\n", - " base_compressor=compressor, base_retriever=retriever\n", - ")\n", + " base_compressor=compressor, base_retriever=base_retriever\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ "\n", - "compressed_docs = compression_retriever.invoke(\"What is the plan for the economy?\")\n", - "pretty_print_docs(compressed_docs)" + "compressed_docs = compression_retriever.invoke(test_q)\n", + "len(compressed_docs)" ] }, { @@ -204,10 +271,6 @@ "metadata": {}, "outputs": [], "source": [ - "from langchain.retrievers.contextual_compression import ContextualCompressionRetriever\n", - "from langchain_cohere import CohereRerank\n", - "from langchain_community.llms import Cohere\n", - "\n", "llm = Cohere(temperature=0)\n", "compressor = CohereRerank(model=\"rerank-english-v3.0\")\n", "compression_retriever = ContextualCompressionRetriever(\n", diff --git a/src/rag_pipeline/__init__.py b/src/rag_pipeline/__init__.py index 48ff3fc..823440f 100644 --- a/src/rag_pipeline/__init__.py +++ b/src/rag_pipeline/__init__.py @@ -1,3 +1,4 @@ from .chunking_strategies import chunk_by_recursive_split from .rag_system import RAGSystem -from .rag_utils import rag_chain_setup \ No newline at end of file +from .rag_utils import rag_chain_setup +from .reranker import Reranker \ No newline at end of file diff --git a/src/rag_pipeline/rag_system.py b/src/rag_pipeline/rag_system.py index d95501f..8e65c8c 100644 --- a/src/rag_pipeline/rag_system.py +++ b/src/rag_pipeline/rag_system.py @@ -17,6 +17,7 @@ from src.rag_pipeline.rag_utils import rag_chain_setup from src.rag_pipeline.chunking_strategies import chunk_by_recursive_split from src.rag_pipeline.load_docs import load_docs_from_csv +from src.rag_pipeline.reranker import Reranker from misc import Settings @@ -30,6 +31,7 @@ class RAGSystem: def __init__(self, model_name: str, + llm: Any = None, embeddings: Any = None, collection_name: str = COLLECTION_NAME, source_file_path: str = SOURCE_FILE_PATH, @@ -39,9 +41,13 @@ def __init__(self, use_multiquery: bool = False, chunk_size: int = CHUNK_SIZE, chunk_overlap: int = CHUNK_OVERLAP, + k_documents: int = 5, + use_reranker: bool = False, + use_cohere_reranker: bool = False, + top_n_ranked: int = 5 ): self.model_name = model_name - self.llm = None + self.llm = llm self.llm_queries_generator = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0) self.source_file_path = source_file_path self.documents = [] @@ -57,9 +63,12 @@ def __init__(self, self.ensemble_retriever = None self.use_ensemble_retriever = use_ensemble_retriever self.use_multiquery = use_multiquery + self.use_reranker = use_reranker + self.use_cohere_reranker = use_cohere_reranker self.chunk_size = chunk_size self.chunk_overlap = chunk_overlap - self.k_documents = 5 + self.k_documents = k_documents + self.top_n_ranked = top_n_ranked def load_documents(self, file_path: str = None): documents = load_docs_from_csv(as_document=True) @@ -120,14 +129,27 @@ def setup_multiquery_retriever(self, retriever): llm=self.llm_queries_generator, ) + def setup_reranker(self): + print("--SETUP RERANKER--") + my_reranker = Reranker( + retriever=self.final_retriever, + top_n=self.top_n_ranked, + use_cohere_reranker=self.use_cohere_reranker + ) + self.final_retriever = my_reranker.initialize() + def setup_llm(self): - llm = ChatOpenAI(model_name=self.model_name, temperature=0) - self.llm = llm - return llm + if model_name: + llm = ChatOpenAI(model_name=model_name, temperature=0) + self.llm = llm + + return self.llm def setup_rag_chain(self): + print("--SETUP RAG CHAIN--") llm = self.setup_llm() self.rag_chain = rag_chain_setup(self.final_retriever, llm) + print("--RAGCHAIN SETUP COMPLETE!--") def query(self, question: str) -> str: result = self.rag_chain.invoke(question) @@ -139,18 +161,25 @@ def initialize(self, len_split_docs: int = 0): self.setup_base_retriever() if not self.existing_vectorstore: + print("--SETUP NEW VECTORSTORE--") # Setup a new vectorstore self.split_docs = self.prepare_documents(len_split_docs) self.vectorstore.add_documents(self.split_docs) if self.use_ensemble_retriever: + print("--USING ENSEMBLE RETRIEVER--") self.setup_bm25_retriever(self.split_docs) self.setup_ensemble_retriever() elif self.use_multiquery: + print("--USING MULTIQUERY RETRIEVER--") self.setup_multiquery_retriever(self.base_retriever) else: + print("--USING BASE RETRIEVER--") self.setup_base_retriever() + if self.use_reranker: + self.setup_reranker() + self.setup_rag_chain() diff --git a/src/rag_pipeline/reranker.py b/src/rag_pipeline/reranker.py new file mode 100644 index 0000000..526eab5 --- /dev/null +++ b/src/rag_pipeline/reranker.py @@ -0,0 +1,39 @@ +from langchain.retrievers.contextual_compression import ContextualCompressionRetriever +from langchain.retrievers.document_compressors import CrossEncoderReranker +from langchain_community.cross_encoders import HuggingFaceCrossEncoder +from langchain_cohere import CohereRerank +from langchain_community.llms import Cohere + +class Reranker: + def __init__(self, retriever, top_n: int = 5, model = None, use_cohere_reranker: bool = False): + self.model = model = HuggingFaceCrossEncoder(model_name="BAAI/bge-reranker-base") + self.top_n = top_n + self.retriever = retriever + self.use_cohere_reranker = use_cohere_reranker + self.compression_retriever = None + self.compressor = None + + def setup_opensource_model(self): + print("--USING OPEN SOURCE MODEL FOR RERANKING--") + self.compressor = CrossEncoderReranker(model=model, top_n=3) + return self.compression_retriever + + def setup_cohere_model(self): + print("--USING COHERE MODEL FOR RERANKING--") + self.compressor = CohereRerank(model="rerank-english-v3.0") + return self.compression_retriever + + def setup_compression_retriever(self): + self.compression_retriever = ContextualCompressionRetriever( + base_compressor=compressor, base_retriever=retriever + ) + + def initialize(self): + if self.use_cohere_reranker: + self.setup_cohere_model() + else: + self.setup_opensource_model() + + self.setup_compression_retriever() + + return self.compression_retriever \ No newline at end of file From fd50738028c2d74af0d145271faf15ca7b00ceb4 Mon Sep 17 00:00:00 2001 From: Hillary Kipkemoi Date: Tue, 30 Jul 2024 07:43:23 +0300 Subject: [PATCH 05/13] fix - add self to keyword to class referenced class objects in reranker --- src/rag_pipeline/reranker.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rag_pipeline/reranker.py b/src/rag_pipeline/reranker.py index 526eab5..2ed8812 100644 --- a/src/rag_pipeline/reranker.py +++ b/src/rag_pipeline/reranker.py @@ -5,8 +5,8 @@ from langchain_community.llms import Cohere class Reranker: - def __init__(self, retriever, top_n: int = 5, model = None, use_cohere_reranker: bool = False): - self.model = model = HuggingFaceCrossEncoder(model_name="BAAI/bge-reranker-base") + def __init__(self, retriever, top_n: int = 5, reranker_model = None, use_cohere_reranker: bool = False): + self.reranker_model = HuggingFaceCrossEncoder(model_name="BAAI/bge-reranker-base") if reranker_model is None else reranker_model self.top_n = top_n self.retriever = retriever self.use_cohere_reranker = use_cohere_reranker @@ -15,7 +15,7 @@ def __init__(self, retriever, top_n: int = 5, model = None, use_cohere_reranker: def setup_opensource_model(self): print("--USING OPEN SOURCE MODEL FOR RERANKING--") - self.compressor = CrossEncoderReranker(model=model, top_n=3) + self.compressor = CrossEncoderReranker(model=self.reranker_model, top_n=3) return self.compression_retriever def setup_cohere_model(self): @@ -25,7 +25,7 @@ def setup_cohere_model(self): def setup_compression_retriever(self): self.compression_retriever = ContextualCompressionRetriever( - base_compressor=compressor, base_retriever=retriever + base_compressor=self.compressor, base_retriever=self.retriever ) def initialize(self): From 5790a1139b5707720696ce08b71b328da27db76a Mon Sep 17 00:00:00 2001 From: Hillary Kipkemoi Date: Tue, 30 Jul 2024 07:44:05 +0300 Subject: [PATCH 06/13] analysis using boxplots and summary statistics --- .../compare_benchmarks.ipynb | 445 ++++++++++++++++++ 1 file changed, 445 insertions(+) create mode 100644 notebooks/benchmark analysis/compare_benchmarks.ipynb diff --git a/notebooks/benchmark analysis/compare_benchmarks.ipynb b/notebooks/benchmark analysis/compare_benchmarks.ipynb new file mode 100644 index 0000000..7d6a4c9 --- /dev/null +++ b/notebooks/benchmark analysis/compare_benchmarks.ipynb @@ -0,0 +1,445 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import altair as alt\n", + "import seaborn as sns\n", + "\n", + "os.chdir(\"../../\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from src.benchmark_analysis import BenchmarkAnalysis" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "results_folder = \"data/ragas_results\"\n", + "# Load CSV files\n", + "df1 = pd.read_csv(f'{results_folder}/bm_baseline_benchmark_results.csv')\n", + "df2 = pd.read_csv(f'{results_folder}/bm_embedding_model_bge_large_results.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "| | answer_correctness | faithfulness | answer_relevancy | context_precision |\n", + "|:---|:---------------------|:---------------|:-------------------|:--------------------|\n", + "| 0 | 0.712666 | 0.833333 | 0.983714 | 1 |\n", + "| 1 | 0.998523 | 1 | 0.944596 | 0.95 |\n", + "| 2 | 0.618642 | 0.2 | 0.938077 | 1 |\n", + "| 3 | 0.785931 | 1 | 0.973125 | 1 |\n", + "| 4 | 0.844 | 1 | 0.921761 | 1 |\n", + "| 5 | 0.902158 | 1 | 0.852989 | 1 |\n", + "| 6 | 0.548405 | 1 | 0.915066 | 0.916667 |\n", + "| 7 | 1 | 1 | 0.92351 | 1 |\n", + "| 8 | 0.534439 | 1 | 0 | 1 |\n", + "| 9 | 0.229628 | 1 | 1 | 1 |\n", + "| 10 | 0.64658 | 0.8 | 0.943542 | 1 |\n", + "| 11 | 0.77964 | 0.8 | 0.960474 | 1 |\n", + "| 12 | 0.486995 | 0.666667 | 0 | 0.95 |\n", + "| 13 | 0.46572 | 0.8 | 0.961726 | 1 |\n", + "| 14 | 0.544659 | 1 | 0.916746 | 1 |\n", + "| 15 | 0.770046 | 1 | 0.854059 | 1 |\n", + "| 16 | 0.677661 | 0.666667 | 0.955715 | 0.833333 |\n", + "| 17 | 0.768948 | 1 | 0.999998 | 0.95 |\n", + "| 18 | 0.806005 | 0.5 | 0.958001 | 1 |\n", + "| 19 | 0.659544 | 1 | 0.934302 | 1 |\n" + ] + } + ], + "source": [ + "df_baseline_copy = df1.copy()\n", + "# get the columns - question, answer_correctness ...\n", + "\n", + "df_baseline_copy = df_baseline_copy[['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision']]\n", + "print(df_baseline_copy.to_markdown(numalign=\"left\", stralign=\"left\"))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Summary Statistics for each metric:\n", + "| | answer_correctness | faithfulness | answer_relevancy | context_precision |\n", + "|:------|:---------------------|:---------------|:-------------------|:--------------------|\n", + "| count | 20 | 20 | 20 | 20 |\n", + "| mean | 0.689 | 0.863 | 0.847 | 0.98 |\n", + "| std | 0.189 | 0.216 | 0.292 | 0.042 |\n", + "| min | 0.23 | 0.2 | 0 | 0.833 |\n", + "| 25% | 0.547 | 0.8 | 0.916 | 0.987 |\n", + "| 50% | 0.695 | 1 | 0.941 | 1 |\n", + "| 75% | 0.791 | 1 | 0.961 | 1 |\n", + "| max | 1 | 1 | 1 | 1 |\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.Chart(...)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# analyze the baseline results\n", + "import altair as alt\n", + "df = df1.copy()\n", + "# Drop the first column `Unnamed: 0`\n", + "# df.drop(columns=['Unnamed: 0'], inplace=True)\n", + "\n", + "# Calculate summary statistics for each metric\n", + "summary_stats = df[['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision']].describe().round(3)\n", + "\n", + "# Print the summary statistics\n", + "print(\"Summary Statistics for each metric:\")\n", + "print(summary_stats.to_markdown(numalign=\"left\", stralign=\"left\"))\n", + "\n", + "# Melt the DataFrame to long format for plotting\n", + "df_melted = df.melt(value_vars=['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision'], var_name='Metric', value_name='Value')\n", + "\n", + "# Create a single boxplot for all metrics\n", + "chart = alt.Chart(df_melted).mark_boxplot().encode(\n", + " x=alt.X('Metric:N', axis=alt.Axis(title='Metric', labelAngle=-45)),\n", + " y=alt.Y('Value:Q', axis=alt.Axis(title='Value')),\n", + " color='Metric:N' # Color by metric for better differentiation\n", + ").properties(\n", + " title='RAG System Metrics',\n", + " width=400, # Adjust width for better readability\n", + " height=300\n", + ")\n", + "\n", + "chart.show()\n", + "# Save the chart as a JSON file\n", + "# chart.save('data/visualizations/rag_system_metrics_boxplots_combined.json')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Metric Baseline_Average Prompt_eng_opt_Average \\\n", + "0 answer_correctness 0.689010 0.655881 \n", + "1 faithfulness 0.863333 0.878864 \n", + "2 answer_relevancy 0.846870 0.906868 \n", + "3 context_precision 0.980000 0.945903 \n", + "\n", + " Baseline_Highest Prompt_eng_opt_Highest Baseline_Lowest \\\n", + "0 1.0 0.998523 0.229628 \n", + "1 1.0 1.000000 0.200000 \n", + "2 1.0 1.000000 0.000000 \n", + "3 1.0 1.000000 0.833333 \n", + "\n", + " Prompt_eng_opt_Lowest \n", + "0 0.229624 \n", + "1 0.333333 \n", + "2 0.000000 \n", + "3 0.679167 \n" + ] + }, + { + "data": { + "image/png": "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pkwZANq1a8eMGTNo1aoVJ06cIGvWrKxcuZIDBw4wfvz4F1qQTkRERETiU2JXRERE5AO2ePFinJyc+Oyzz5663cbGhpo1a7J48WLu3btH6tSp+fjjj/Hw8ODq1avxZuvG7rN27VrGjRvHwoULWbNmDUmSJCFbtmx07drVvIja81SsWJE5c+YwYsQIunXrhqenJyNHjuTSpUsWiV2AhQsX4u7uztKlS1mzZg2VK1cmICCA3Llz4+TkZO7n5ubG0aNHGTx4MKtXr2bq1KmkTp2a/PnzM3LkyP+MKUmSJGzZsoX58+ezYMEChgwZQmhoKBkyZKBixYosXryYjBkzApA/f35++uknevfuzfDhwzEajXh5efHjjz/i5eX1n8d6WS1atMDGxobx48dz+/ZtSpYsyeTJk0mfPr25z5IlS+jSpQtTpkzBZDJRpUoVtmzZQoYMGV75uHXq1OHSpUvMnTuXu3fvkiZNGsqVK8egQYPMC8A5Ozuzd+9evvvuOxYsWEBQUBC5c+dm3rx5tGrV6nVPXUREROSDZTBpFQIRERERec/8+uuvfPTRR/z444988cUX1g7nrbl06RKenp6MHj2aHj16WDscEREREXmHVGNXRERERBK1sLCweG3jx4/HxsaGsmXLWiEiEREREZG3T6UYRERERCRRGzVqFCdOnKBChQrY2dmxZcsWtmzZQrt27fDw8LB2eCIiIiIib4USuyIiIiKSqH388cfs2LGDIUOGEBwcTObMmfn+++/p27evtUMTEREREXlrVGNXREREREREREREJJFRjV0RERERERERERGRREalGJ7CaDRy48YNkiVLhsFgsHY4IiIiIiIiIiIi8oEwmUw8fvyYDBkyYGPz7Hm5Suw+xY0bN7TQhoiIiIiIiIiIiFjN1atXyZQp0zO3WzWxu3//fkaPHs2JEye4efMma9asoV69es/dZ+/evfj6+nL69Gk8PDzo168frVq1sugzZcoURo8eTWBgIIULF2bSpEmULFnyheNKliwZ8OTNS548+cueloiIiIiIiIiIiMgrCQoKwsPDw5yjfBarJnZDQkIoXLgwX331FQ0aNPjP/hcvXqRmzZp06NCBxYsXs2vXLtq0aUP69OmpWrUqAAEBAfj6+jJ9+nS8vLwYP348VatW5ezZs6RLl+6F4ootv5A8eXIldkVEREREREREROSd+68SsQaTyWR6R7E8l8Fg+M8Zu7169WLTpk388ccf5jZvb28ePnzI1q1bAfDy8qJEiRJMnjwZeFIv18PDgy5duvDdd9+9UCxBQUG4urry6NEjJXZFRERERERERETknXnR3OSzq+8mQIcOHaJy5coWbVWrVuXQoUMAREZGcuLECYs+NjY2VK5c2dznaSIiIggKCrL4EREREREREREREUmoElViNzAwEDc3N4s2Nzc3goKCCAsL4+7du8TExDy1T2Bg4DPHHT58OK6uruYfLZwmIiIiIiIiIiIiCZlVa+wmFL1798bX19f8OrZAsYiIiIiIiIjI+8hoNBIZGWntMEQ+SPb29tja2r72OIkqsevu7s6tW7cs2m7dukXy5MlxdnbG1tYWW1vbp/Zxd3d/5riOjo44Ojq+lZhFRERERERERBKSyMhILl68iNFotHYoIh+sFClS4O7u/p8LpD1Pokrsli5dms2bN1u07dixg9KlSwPg4OBAsWLF2LVrl3kRNqPRyK5du+jcufO7DldEREREREREEqhiPRdaOwSrMAAtvDLilT0dLq6p4TWSSu+THOlTWjsE+UCYTCZCQ0O5ffs2AOnTp3/lsaya2A0ODub8+fPm1xcvXuTXX38lVapUZM6cmd69e3P9+nUWLnxyse3QoQOTJ0/Gz8+Pr776it27d7N8+XI2bdpkHsPX15eWLVtSvHhxSpYsyfjx4wkJCcHHx+edn5+IiIiIiIiISEKS1NGWPO7JSJIsBTb2DtYOJ8FwcnKydgjyAXF2dgbg9u3bpEuX7pXLMlg1sXv8+HEqVKhgfh1b57Zly5bMnz+fmzdvcuXKFfN2T09PNm3aRPfu3ZkwYQKZMmVi9uzZVK1a1dynadOm3LlzhwEDBhAYGEiRIkXYunVrvAXVREREREREREQ+NM4OttjZGDC8gfqeIvLqkiRJAkBUVNQrJ3YNJpPJ9CaDeh8EBQXh6urKo0ePSJ48ubXDEREREREREZE37EMtxeCezIFvK2cnXfpM2NjZWzucBCOfRxprhyAfmPDwcC5evIinp2e8GeMvmpu0edtBioiIiIiIiIiIiMiblagWTxMREREREREREXnTIm6ctnYIkoA4Zshv7RBeiGbsioiIiIiIiIiIJECXrl7HKWMBfvvjzAvv06ZbXxp/9c1z+3zWqBU9Box43fDEyjRjV0REREREREREJAHyyODOpZN7SZMqhbVDkQRIiV0REREREREREZEEJjIyCgcHe9zTaWE3eTqVYhAREREREREREXkNs39cgWfRChiNRov2Rj5daOfbjwuXrtDIpwuZC5cldc4SfFKjKbv2H7Lom8urCsPGTeerb3qTNrcXX/t9H68UQ0xMDO2/7U/uUlVJkb0YBT+txeTZi54a01D/qWQq+Clpc3vRudcgIiOjnhl/REQk3w0eTbZiFUmVowSf1mrGvoNHX/NdkbdNiV0REREREREREZHX0LBWFe49eMjeA/9Lht5/8Ijte3/Gu34tQkJCqVrxU7YEzOHItpV8Vr4MDX06c+X6TYtxxs+YT6F8uTm8bQW9u7WPdxyj0UjG9G4smTGWk3vW0ad7BwaMmMjK9Vst+u35+TBn//6H7SvnsXDKKNZt2cVQ/6nPjL9bvx84fOI3Fk4dzbGdq2hQqwp1vuzA+X8uv+Y7I2+TSjGIiIiIiIi8564MLmjtECQByTzglLVDEHnvpEzhStUKnxKwdhMVPy0FwOpN20mTKiXlPymJjY0NhfLnMff/3q8L67fuYtP2PXT0+dzcXv6TknTr0Mr8+tLV6xbHsbe3Z0CPzubXnpkzceTEb6zasI1GdaqZ2x3s7ZnhP4Qkzs7ky52DAT060XvoWL7364KNjeU8zyvXb7IwYC1/H91BBvd0AHTv4MP2PQdYELCGIb27vfb7I2+HErsiIiIiIiIiIiKvybt+Tb72+56Jw/rj6OjAsjWbaFynOjY2NgSHhDJ07BS27NpP4O27REdHExYewdV/zdgtWij/fx5n+vylLFi2hqvXbxIWHk5kVBSF4ySNAQrmy00SZ2fza69ihQkOCeXqjUCyZMpg0ff0X+eIiYmh4Kc1LdojIqNIndL1Zd8GeYeU2BUREREREREREXlNNT8rj8lkYsuufRQrXIADR04w+ns/AL4bPJpdPx1iRP8eZM+aGWcnJ5q16x6v7q1LkiTPPcbydZv5bsgYRvbviVfxwiRzccF/2jyOnfz9leMODgnF1taWQ1uWY2traxmPy/PjEetSYldEREREREREROQ1OTk5Urd6ZZat2cSFS1fJlT0rHxXMB8Ch47/SvHE96lavDDxJpl6+duOlj3Ho2K+UKlaE9q28zW3/XL4ar9+pP88SFhaOs7MTAEd++Z2kLknwyOAer2+RAnmJiYnh9r37lPEq9tIxifUosSsiIiLvBdWPlFiqHSkiIiLW4l2/Jg1adeLPsxdo1qCWuT2HZ2bWbdlJzc/KYzDAoNGTMRqNLz1+Ds/MLF65nh17D5DVIyOLV23gxG9/kNUjo0W/yKgo2vcYQO+u7bl89TpDx06hg0+zePV1AXJmz4p3g5q07tqHkQN6ULhAXu7ee8Cenw9TMG8uqlcu9/JvhLwTSuyKiIiIiIiIiIi8ARXKeJEqhSvnLlykaf0a5vaRA/1o79uf8nW/JHWqFPTo1Jqg4OCXHr/Nl0349Y8zfNmxBwaDgSZ1q9OuZVO27/75X3GUIodnZio3aElEZCRN6tWgv2+nZ447y38owyfMoNfgMdwIvEWaVCkpWbQQNZTUTdAMJpPJZO0gEpqgoCBcXV159OgRyZMnt3Y4IiLyDMV6LrR2CJKArEk22tohSAKhGbsi8empBolL18knPtR7SfdkDnxbOTvp0mfCxs7e2uEkGNltb1k7BElAHDP89yJ2rys8PJyLFy/i6emJk5OTxbYXzU3Gn38tIiIiIiIiIiIiIgmaErsiIiIiIiIiIiIiiYxq7IqIiIiIvIc+1EeM5enWJLN2BCIiIvKmacauiIiIiIiIiIiISCKjxK6IiIiIiIiIiIhIIqPEroiIiIiIiIiIiEgio8SuiIiIiIiIiIiISCKjxK6IiIiIiIiIiIhIIqPEroiIiIiIiIiIiEgiY2ftAERERERERERExLqaT9z8To+36Jsa7/R4b0Iuryp0adOcLm2bA+CUsQDL50ygTrVKVo5MPlSasSsiIiIiIiIiIglaH9/O5M+c1vzzcaFctGvehLN/nbZaTJdO7qVqhU/f+XED1m4miUchuvYZ+s6PLQmLErsiIiIiIiIiIpLglSlfkb3H/2Dv8T+Ys3QVdrZ2fO3zhdXicU+XBkdHh3d+3PlLV+P7tQ/L120mPDzirR4rJiYGo9H4Vo8hr06JXRERERERERERSfAcHBxJm86NtOncyJu/IK2//obAG9e5f+8uAGOHDaZGOS+K5cpM1U+KM3HMcKKiosz7n/nzD1o1rUeJvFkpmc+TxjUq8cdvv5q3Hzj6CxXrtyBF9mJkL14J3/7DCAkNfWY8ThkLsH7rLgAuXb2OU8YCrN28gyqNfEiZvTglKjfg8PFfLfZ52WP828Ur1zh8/Fd6dmpDTs+srN2y07ytfJ0v6PuDv0X/O/fukzRLEX46fByAiIhIvhs8mmzFKpIqRwk+rdWMfQePmvsvDFiLW97SbNy+hyLl65DcsyhXrt/k+K+nqOHdhowFypAuTykqN2zFyVN/Whzr7Pl/qFCvOa7ZilKkfB127T9k8R4BXL1+ky/af4tb3tKkz/8xjXy6cOnq9Rc+f7GUIBK7U6ZMIWvWrDg5OeHl5cXRo0ef2bd8+fIYDIZ4PzVr1jT3adWqVbzt1apVexenIiIiIiIiIiIib1lISDAb16wkc1ZPUqRMBYBLUhd+GDuJ9bt+5rvvf2Dl0kUsnD3dvE+vbzri7p6BgA07WLFpJ22+/gY7+yfLT124dIU6X7Snfo3POL5jNT9OG8PBoyfp1nfYS8U1cOREundoxdHtK8mZLSstOvkRHR39xo6xMGAt1SuVxTV5Mpo1rMX8pavN27wb1GL5ui2YTCZz28r1W0nvlpYyXsUA6NbvBw6f+I2FU0dzbOcqGtSqQp0vO3D+n8vmfULDwhgzZQ7TRg/i5O61pEuTisfBoXzZuC671y5k/4bF5PDMTL3mHXkcHAI8mdnb+KuuJHF24qcNS5gy6nu+HzXRIvaoqChqf9GepEmTsGv1AvasXYSLSxLqfNGByMgo5OVZPbEbEBCAr68vAwcO5JdffqFw4cJUrVqV27dvP7X/6tWruXnzpvnnjz/+wNbWlsaNG1v0q1atmkW/pUuXvovTERERERERERGRt2Dfru0Uz5OF4nmyUDKvJ3t2bGXslFnY2DxJb3X45ls+Kl6SjB6ZqfBZVXzadWLbxnXm/W/euEapMmXJliMnWTyzU7VWXfLkKwDA6Mmz8a5fiy5tm5MjWxZKl/iIsUN6s3jl+pcqd9CtQyuqVy5HzuxZ6d+jE1eu3eDCpStv5BhGo5FFy9fSrGEtABrXrc7BY79w8co1ABrWrsrNW3c4cPQX8z4BazbRtF4NDAYDV67fZGHAWpbM8KeMVzGyZ81M9w4+fFyiKAsC1pj3iYqKZuKwfpQu8RG5cniSxNmZCmW8+LxhbXLnyEaenNmZOup7QsPC+enQMQB27T/EP5evMmfCcArlz8MnJYvyvd83FvGvWL8Vo9HE9DGDKZA3F3lyZmeW/1CuXr/JvkPPnuQpz2Zn7QD8/f1p27YtPj4+AEyfPp1NmzYxd+5cvvvuu3j9U6VKZfF62bJlJEmSJF5i19HREXd39xeKISIigoiI//0PFBQU9LKnISIiIiIiIiIib1HJ0mXoP2wUAEGPHrFs4Vw6tGzGsvXbyJDJgy3r1/DjvFlcvXKJ0JAQYmJiSJo0mXn/lm06MrBXdzasXkGpMmWpWrMOmbN6AnDqz7Oc+uscy9ZsNPc3mZ4kUy9dvUaenNlfKMaCeXOZf3dPlwaA23fvkztHttc+xq79hwgNDaNaxScLtqVJlZJKn5ZmwbI1fO/XhbSpU1G5bGmWrd5IGa9iT8o2nPiNySMHAnD6r3PExMRQ8NOaFuNGREaROqWr+bWDgz0F8+W26HPrzl2+HzWJ/QePcefefWJiYggNC+fq9UAAzl24SKYM7uZzBijxUUGLMU79eZYLl66QJldJi/bwiAguXroK5Z57+vIUVk3sRkZGcuLECXr37m1us7GxoXLlyhw6dOiFxpgzZw7e3t64uLhYtO/du5d06dKRMmVKKlasyNChQ0mdOvVTxxg+fDiDBg169RMREREREREREZG3yjlJErJkzWZ+nW/UeLzyZ2PF0kWUq/gZvbp2pJOvH5+UrUiy5MnYvH4tC2ZNNffv5OtHzXoN2bd7Bz/v2cWUcaMYM3kmlavVJDgklDZfNqbTV1/GO65HxvQvHKO9nb35d4PBAGBefOx1jzF/6WruP3xEiuzFzW1Go5FTf51jQI9O2NjY4N2gFt/2H864oX0IWLOJAnlzUuD/k83BIaHY2tpyaMtybG1tLcZ2cUli/t3Zyckce6w23fpy/8FDxg7+jsyZMuDo4EC5Ol8QGfXiJRSCQ0IpWigf8yeNjLctTeqULzyO/I9VE7t3794lJiYGNzc3i3Y3NzfOnDnzn/sfPXqUP/74gzlz5li0V6tWjQYNGuDp6cmFCxfo06cP1atX59ChQ/H+wwXo3bs3vr6+5tdBQUF4eHi84lmJiIiIiIiIiMjbZjAYsLGxISI8nF9PHCNDRg/ad/lffufm9avx9smaLTtZs2WnZZsO9OjcjjXLl1K5Wk2KFMzHX+f+Ibtn5rcW7+sc4979h2zYvptFU0eTL3cOc3tMTAwV67dg576DVKlQhtpVK9DJ73u27zlAwNrNfNGozv+OXyAvMTEx3L5331xz90UdOnaSCcP6Ua1SWeDJImh37z8wb8+V3ZNrNwK5decubmmfzNo9/usf8c5/5YatpE2TiuTJkr70eyDxWb0Uw+uYM2cOBQsWpGRJyync3t7e5t8LFixIoUKFyJ49O3v37qVSpUrxxnF0dMTR0fGtxysiIiIiIiIiIq8mMjKCO7dvAU9KMSxZMJvQkBDKV65K8OPH3Lxxjc3r11CgUBH2797Bzq2bzfuGh4cx5ofvqVKjDpk8MhN48wZ//HaSz6rXBqDH119RtvYXdOv7Az7NGuKSxJm//r7Arv2HGP9D3zcS/+scY8mqDaROmYJGdarFm01breKnzF+6mioVyuCSJAm1q1Vk0OhJnPn7H5rUq2HulzN7Vrwb1KR11z6MHNCDwgXycvfeA/b8fJiCeXNRvfKzayHk8MzCklUbKFY4P0GPQ+g9dCzOTk7m7ZXKliZbFg/adOvLsL6+PA4JYdCoScD/Zi43a1CTcdPm0cinCwN6diZjejeuXLvBui078e34FZkyvFhJVfkfqyZ206RJg62tLbdu3bJov3Xr1n/Wxw0JCWHZsmUMHjz4P4+TLVs20qRJw/nz55+a2BURERERERER+ZAt+qbGf3eysp/37qZ88SeLnbkkTYpn9pz4T5tDydKfANC8dQd+6P8dkZERlKv4GR2+8WXq+NEA2NjY8vDBA3p378S9u3dImTIVlavXpLOvHwAF8+Vmx6p5DBw5kUoNWmAymciWxYNGdaq9sfhf5xgLAlZTp1qleEldgHo1PuOrrr25e/8BaVKlpFn9WtRt3pEypYqT+V8lHmb5D2X4hBn0GjyGG4G3SJMqJSWLFqLGc5K6ANPHDqaT3/eUqtaETOndGfxdV74bMsa83dbWlhVzJ9Chx0A+qemNZ+ZMDO/3LQ1adcbp/ydTJnF2ZufqBfT9wR/vNt14HBJCBvd0VChTSjN4X5HBZDKZrBmAl5cXJUuWZNKkJ1l8o9FI5syZ6dy581MXT4s1f/58OnTowPXr159ZOzfWtWvXyJw5M2vXrqVOnTrP7QtPSjG4urry6NEjkidP/nInJCIi70yxngutHYIkIGuSjbZ2CJJAZB5wytohJAi6RkpcukZKXLpOPvGhXifdkznwbeXspEufCZs49WA/dNltb/13J3kpB4/9QsV6LTh9YDPZs769Ehdvg2OG/G/9GOHh4Vy8eBFPT0+c4sx+hhfPTVq9FIOvry8tW7akePHilCxZkvHjxxMSEoKPjw8ALVq0IGPGjAwfPtxivzlz5lCvXr14Sd3g4GAGDRpEw4YNcXd358KFC/j5+ZEjRw6qVq36zs5LRERERERERETkQ7Fuy05cXJKQwzMLFy5eocfAEZQu8VGiS+omJlZP7DZt2pQ7d+4wYMAAAgMDKVKkCFu3bjUvqHblyhVsbGws9jl79iw///wz27dvjzeera0tv//+OwsWLODhw4dkyJCBKlWqMGTIENXRFRERERERERGRBOfnIyeo+2WHZ26/9/exdxjNq3kcHELfH8Zx9cZN0qRMSYVPSzFyQE9rh/Ves3piF6Bz58507tz5qdv27t0bry137tw8q4KEs7Mz27Zte5PhiYiIiIiIiIiIvDXFCuXn6PZV1g7jtXzZuC5fNq5r7TA+KAkisSsiIiIiIiIiIvKhcnZ2IrunShbIy1FiNwH7UAu5y9OdGN3C2iGIiIiIiIiIiEgCYfPfXUREREREREREREQkIVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkdHiaSKJxJXBBa0dgiQgmQecsnYIIiIiIiLyHkk6r8I7PV6wz553ejyR95Fm7IqIiIiIiIiISILWx7cz+TOnJX/mtBTOnoFqn5Zg6vgxREdHWzu0ePYdPIpTxgI8fBRk7VDeudc598PHfyWJRyHqNe/4FiJ7PymxKyIiIiIiIiIiCV6Z8hXZe/wPtuw7Qqt2XzN13CjmTZ8cr19kZKQVopPXNX/Zar72+Zyfj5zgRuDtt3osk8mUIL8UeFlK7IqIiIiIiIiISILn4OBI2nRuZMjkgXdzH0qXKceendvo49uZLm1aMGOSP+WLF6BWhdIAnDvzJz7e9Sma04OPC+ViYC9fQkKCzePF7jdz8jgyFy6LW97S/DBuGtHR0fQeMob0+T8me7FKLAhYY97n0tXrOGUswPJ1mylf5wtcsxWlaMV67D90zLy9auOvAHDP9zFOGQvQplvf/zw3o9HIqEmzyF2qKimyF6NE5Qas3rjdvD12Juzunw7zcfUmpMxenPJ1vuDc+YsW4wwfPwOPQmVJk6skHXoMoN+wcZT8rOELvb9Go5Efxk0je7FKJPf8iJKfNWT7np/f+rkDBIeEsnL9Vtq1aEr1SmVZtHyteVuLTn582eFbi/5RUVFkLFCGH1ese6n3b9vunyhdrQnJPT/iwNFfuHDpCo18upC5cFlS5yzBJzWasmv/IYtj3bx5k5o1a+Ls7IynpydLliwha9asjB8/3tzn4cOHtGnThrRp05I8eXIqVqzIb7/99kLn/jqU2BURERERERERkUTH0cmJqP+fnXv4wH4uXbjA7MUrmTp3MaGhIbT7sgnJXV0J2Lgd/2lzOPzzfn7o/53FGEcO/sTtW4HsXLWAkQN7MmTMFOq37EQK1+T8tGEpbZo3oXOvQVy7EWixX+8hY+navhVHtq3Aq1hhGrbqzL37D/HI4M6yWeMAOLV/I5dO7mXsYMtjPs2oSbNYvHI9k0cM4Jfda+nStgU+33xnTprG+n7kREYM6MnBLQHY2tnR7tv+5m1LV29k5KSZDO3bnUNbluORMT0zFwa88Ps5efaPTJixgOEDvuX4jtV8Vv4TGvp05vw/l9/quQOs3LCV3Dk8yZXDk2YNarEgYA0mkwmAZvVrsmnHPoJDQs39d+w9QGhYOHWrV36p96/fsHEM6dONX/eup2De3ISEhFK14qdsCZjDkW0r+ax8GRr6dObKlSvmfVq0aMGNGzfYu3cvq1atYubMmdy+bTmjuHHjxty+fZstW7Zw4sQJihYtSqVKlbh///4LvvuvRoldERERERERERFJNEwmE4d+2seB/Xvw+uRTAJyTJGHQqHHkyJ2HHLnzsGntaiIiIhg+bgo5c+el1Cef0nfIcDasXsHdO/9LyrmmSEmfQcPJlcOTVt4NyJXdk9CwcHp9044c2bLg16UNDvb2HDz2i0UMHX0+p37Nz8iTMzuThvcnebKkzF+2GltbW1KmcAUgbZpUuKdLg2vyZM89n4iISEZNms2MsUP4rPwnZMviQYum9WjWoBazf1xh0ff7Xt9QtnQJ8ubKTs9OrTl8/FfCwyMAmDZ3Ca28G9CyaX1yZs9K3+4dyZ8n5wu/r+NnzOfbr7+iSd0a5MrhyQ99fSmcPw+TZi96a+cea/7S1TRrUAuAKhXKEBQUbE7Kflb+E1ySOLNuy05z/2VrN1OrSnmSJXV5qfdvQM/OVC77MdmzZiZVSlcK5c9D2+ZNyJ8nJzmyZeF7vy5ky+LB+vXrAThz5gw7d+5k1qxZeHl5UbRoUWbPnk1YWJh5zJ9//pmjR4+yYsUKihcvTs6cORkzZgwpUqRg5cqVL/z+vwq7V93x/PnzXLhwgbJly+Ls7IzJZMJgMLzJ2ERERERERERERADYt2s7xfNkITo6GpPRSI26Dfi6e0+G9utFrtz5cHBwMPf95/w5cufLT5IkLua2j4p7YTQaufTPedKkTQdAjly5sbH537zHdGlTkz93DvNrW1tbUqVMwZ27ljMvvYoVNv9uZ2dHscL5OfP3P690XhcuXSE0LIyazdpatEdGRVGkQF6LtoL5cpl/d3dLC8Dte/fJnDE95/65RLuWTS36lyhSkL0HjvxnDEGPg7kReJvSJT6yaC9d/CN+//OsRdubPHeAc+cvcvzXP1g+Z4J5zEZ1qjF/6WrKfVwSOzs7GtauyrI1m/iiUR1CQkPZuG0Pi6aOBl7u/StaKL/F6+CQUIaOncKWXfsJvH2X6OhowsIjzDN2z549i52dHUWLFjXvkyNHDlKmTGl+/dtvvxEcHEzq1Kktxg4LC+PChQuv/L68iJdO7N67d4+mTZuye/duDAYDf//9N9myZaN169akTJmSsWPHvo04RURERERERETkA1aydBn6DxuFvb0D6dzcsbP7X1rLOUmSVxrTzs7e4rXBAPZ2dv9qM2A0ml5p/BcRW2JgzcKpZHR3s9jm4GAZX9zYDDyZYGk0Gt9abO/C/GWriY6OxrNoRXObyWTC0cGB8T88xjV5Mrzr1+SzRj7cvnuPXfsP4ezkSJUKnwAv9/65JHG2eP3d4NHs+ukQI/r3IHvWzDg7OdGsXfeXWoAvODiY9OnTs3fv3njbUqRI8cLjvIqXLsXQvXt37OzsuHLlCkni/E/TtGlTtm7d+kaDExERERERERERgSfJ2yxZs5EhYyaLpO7TZMuRi7N/niY0NMTcdvL4EWxsbMiaLcdz9nwxR3/53fx7dHQ0v/z+J3lyZgPAwf5JMjEm5sUSrnlzZcfR0YGr12+S3TOzxY9HxvQvHFOubFk58dtpi7bjv/3xQvsmT5aUDO7pOHTspEX7oeMnyZsru0Xbmzz36OhoFq9cz8gBPTm6faX559iOVaR3T8vytZsBKF3iIzJlcGfl+q0sW7OJBrWqYP//x3qd9+/Q8V9p3rgedatXpkDeXLilS8PlazfM23Pnzk10dDQnT/7vfTl//jwPHjwwvy5atCiBgYHY2dmRI0cOi580adK80Pvwql56xu727dvZtm0bmTJlsmjPmTMnly9ffsZeIiIiIiIiIiIi70at+g2Z4j+SPt0708nXj/v37jFsQB9qN2hsLsPwOqbPX0oOz8zkyZmNiTMX8fBREC296wOQOVMGDAYDm3fuo1qlT3F2ciKpy7NnFCdL6kK39q3w+34URqOJj0t+RNDjYA4dO0mypElp3qTuC8XU8avP+brn9xQtlJ/SxYuwYv1W/vjrHJ6ZM/33zkD3Dj4MGTuFbFk8KJw/DwuXr+W302eYP2nkWzv3zTv38eBREK2aNYhXj7d+jc+Yv2w1bVs8KS/RtF4NZi1azt//XGbbirlv5P3L4ZmZdVt2UvOz8hgMMGj0ZIsZ0Hny5KFy5cq0a9eOadOmYW9vz7fffouzs7O5JG3lypUpXbo09erVY9SoUeTKlYsbN26wadMm6tevT/HixV/o/X8VL53YDQkJsZipG+v+/fs4Ojq+kaBEREREREREROTdCfbZY+0Q3ihn5yTM/HE5w7/vS9NaVXByduaz6rXwGzD4jYw/tE93xkyZw2+nz5A9a2ZWzptMmlRP6q5mTO9G/2870X/4ONr59uOLRnWYPf6H5473vV8X0qZOyejJs7l45SopkienSMG8+HVp+9z94mrWoBYXL1+j95AxhEdE0LB2VZo3qcvxky82a7dT6y949Pgx3w0ew+1798ibMzur5k0mR7Ysb+3c5y9dTcUypZ66yFq9Gp8xdupcTv15loL5ctOsQU1GTpxJ5kwZ+PhftYBf9f0bOdCP9r79KV/3S1KnSkGPTq0JCg626LNw4UJat25N2bJlcXd3Z/jw4Zw+fRonJyfgSamOzZs307dvX3x8fLhz5w7u7u6ULVsWNze3px32jTGYTKaXKhJSo0YNihUrxpAhQ0iWLBm///47WbJkwdvbG6PR+NZXe3sXgoKCcHV15dGjRyRPntxqcRTrudBqx5aEZ02y0dYOQRKQzANOWTuEBEHXSYlL10mJpWvkE7pGSly6Rkpcuk4+8aFeJ92TOfBt5eykS58Jm3/Vl/2QZbe99UL9Ll29Tp5SVTmybSWFC+R5y1G9vhrebXBLm4Z5k0a89liJ7dxfh2OG/M/cdu3aNTw8PNi5cyeVKlV65WOEh4dz8eJFPD09zUniWC+am3zpGbujRo2iUqVKHD9+nMjISPz8/Dh9+jT379/nwIEDL38WIiIiIiIiIiIi8lpCw8KYtXA5n5X/BFtbGwLWbmb3T4fZtHSWtUNL1Hbv3k1wcDAFCxbk5s2b+Pn5kTVrVsqWLWvt0F4+sVugQAHOnTvH5MmTSZYsGcHBwTRo0IBOnTqRPv2LF3QWERERERERERF53125fpOPytd55vaTe9eT+SUWSXsWAwa27v6JkRNnEh4RSa7sWVk2axyVypYGIHXOEs/cd92P0ynjVey1Y/i3d3Xub1NUVBR9+vThn3/+IVmyZHz88ccsXrzYvHibNb10YhfA1dWVvn37vulYREREREREREREEqysHhkJv/5iNWtjZXBLy9Htq567/U1wdnZiS8DsZ25/bgzu/72gXEI+97epatWqVK1a1dphPNVLJ3b379//3O0JYRqyiIiIiIiIiIhIQmBnZ0d2z8zWDsMqMSSUc39fvXRit3z58vHaDAaD+feYmJjXCkhERERERERERN4Oo/k3kxWjEBGT6fX/H7R52R0ePHhg8XP79m22bt1KiRIl2L59+2sHJCIiIiIiIiIib0dYZAzRRhMmTcwTsarQ0FCA16rV+9Izdl1dXeO1ffbZZzg4OODr68uJEydeORgREREREREREXl7giNiOBP4GFcXZ1xsbCHOU9gfsgiT8b87yQfDFB7+9sY2mQgNDeX27dukSJECW1vbVx7rlRZPexo3NzfOnj37poYTEREREREREZE3zASs+/0WmVI44Roarrzu/zMZgqwdgiQgdiFvLGX6TClSpMDd3f21xnjpKH///XeL1yaTiZs3bzJixAiKFCnySkFMmTKF0aNHExgYSOHChZk0aRIlS5Z8at/58+fj4+Nj0ebo6Eh4nEy6yWRi4MCBzJo1i4cPH/LJJ58wbdo0cubM+UrxiYiIiIiIiIi8Lx6GRTNixz+kSmKPrRK7AExymWvtECQBydBp/Vsd397e/rVm6sZ66cRukSJFMBgM8Qr8lipVirlzX/5/goCAAHx9fZk+fTpeXl6MHz+eqlWrcvbsWdKlS/fUfZInT24xO9jwr6+XRo0axcSJE1mwYAGenp7079+fqlWr8ueff+Lk5PTSMYqIiIiIiIiIvE9ijCbuBEdaO4wEw46b1g5BEpDEkj986cTuxYsXLV7b2NiQNm3aVz5hf39/2rZta56FO336dDZt2sTcuXP57rvvnrqPwWB45lRlk8nE+PHj6devH3Xr1gVg4cKFuLm5sXbtWry9vV8pThEREREREREREZGEwuZld8iSJYvFj4eHxysndSMjIzlx4gSVK1f+X0A2NlSuXJlDhw49c7/g4GDzsevWrcvp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MXr37s2jR4/MP1evXn31kxIRERERERERERF5y+ysHcDrGDFiBMuWLWPv3r04OTmZ2729vc2/FyxYkEKFCpE9e3b27t1LpUqV4o3j6OiIo6PjO4lZRERERERERERE5HVZdcZumjRpsLW15datWxbtt27dwt3d/bn7jhkzhhEjRrB9+3YKFSr03L7ZsmUjTZo0nD9//rVjFhEREREREREREbE2qyZ2HRwcKFasmMXCZ7ELoZUuXfqZ+40aNYohQ4awdetWihcv/p/HuXbtGvfu3SN9+vRvJG4RERERERERERERa7JqYhfA19eXWbNmsWDBAv766y86duxISEgIPj4+ALRo0YLevXub+48cOZL+/fszd+5csmbNSmBgIIGBgQQHBwMQHBxMz549OXz4MJcuXWLXrl3UrVuXHDlyULVqVauco4iIiIiIiIiIiMibZPUau02bNuXOnTsMGDCAwMBAihQpwtatW80Lql25cgUbm//ln6dNm0ZkZCSNGjWyGGfgwIF8//332Nra8vvvv7NgwQIePnxIhgwZqFKlCkOGDFEdXREREREREREREXkvWD2xC9C5c2c6d+781G179+61eH3p0qXnjuXs7My2bdveUGQiIiIiIiIiIiIiCY/VSzGIiIiIiIiIiIiIyMtRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRSRCJ3SlTppA1a1acnJzw8vLi6NGjz+2/YsUK8uTJg5OTEwULFmTz5s0W200mEwMGDCB9+vQ4OztTuXJl/v7777d5CiIiIiIiIiIiIiLvjNUTuwEBAfj6+jJw4EB++eUXChcuTNWqVbl9+/ZT+x88eJBmzZrRunVrTp48Sb169ahXrx5//PGHuc+oUaOYOHEi06dP58iRI7i4uFC1alXCw8Pf1WmJiIiIiIiIiIiIvDV21g7A39+ftm3b4uPjA8D06dPZtGkTc+fO5bvvvovXf8KECVSrVo2ePXsCMGTIEHbs2MHkyZOZPn06JpOJ8ePH069fP+rWrQvAwoULcXNzY+3atXh7e8cbMyIigoiICPPrR48eARAUFPTGz/dlxESEWfX4krA8to+xdgiSgFj7+pRQ6Dopcek6KbF0jXxC10iJS9dIiUvXySd0nZS4dJ2UuKx9nYw9vslkem4/qyZ2IyMjOXHiBL179za32djYULlyZQ4dOvTUfQ4dOoSvr69FW9WqVVm7di0AFy9eJDAwkMqVK5u3u7q64uXlxaFDh56a2B0+fDiDBg2K1+7h4fEqpyXyVhSwdgCSsAx3tXYEIgmOrpNipmukSDy6RooFXSdF4tF1UiwkkOvk48ePcXV9dixWTezevXuXmJgY3NzcLNrd3Nw4c+bMU/cJDAx8av/AwEDz9ti2Z/X5t969e1ski41GI/fv3yd16tQYDIaXOymRtyAoKAgPDw+uXr1K8uTJrR2OiEiCo+ukiMiz6RopIvJ8uk5KQmMymXj8+DEZMmR4bj+rl2JICBwdHXF0dLRoS5EihXWCEXmO5MmT64+MiMhz6DopIvJsukaKiDyfrpOSkDxvpm4sqy6eliZNGmxtbbl165ZF+61bt3B3d3/qPu7u7s/tH/vPlxlTREREREREREREJDGxamLXwcGBYsWKsWvXLnOb0Whk165dlC5d+qn7lC5d2qI/wI4dO8z9PT09cXd3t+gTFBTEkSNHnjmmiIiIiIiIiIiISGJi9VIMvr6+tGzZkuLFi1OyZEnGjx9PSEgIPj4+ALRo0YKMGTMyfPhwALp27Uq5cuUYO3YsNWvWZNmyZRw/fpyZM2cCYDAY6NatG0OHDiVnzpx4enrSv39/MmTIQL169ax1miKvxdHRkYEDB8YrGSIiIk/oOiki8my6RoqIPJ+uk5JYGUwmk8naQUyePJnRo0cTGBhIkSJFmDhxIl5eXgCUL1+erFmzMn/+fHP/FStW0K9fPy5dukTOnDkZNWoUNWrUMG83mUwMHDiQmTNn8vDhQ8qUKcPUqVPJlSvXuz41ERERERERERERkTcuQSR2RUREREREREREROTFWbXGroiIiIiIiIiIiIi8PCV2RURERERERERERBIZJXZFREREREREREREEhkldkVEREREREREREQSGSV2RURERERERERERBIZJXZFRERERETEKoxGo7VDEBERSbSU2BWRNybujXloaKgVIxEReTNMJhMA4eHhVo5EROT9ZGPz5CPpggULOHbsGPC/a6+IyIdMX3zJi1BiV0TeCKPRaL4xHzt2LOPGjePy5ctWjkpE5NWZTCYMBgM7d+6kZ8+e/PPPP9YOSUTkvWMymYiIiKBHjx4sXboUAIPBYOWoRESsK+7n61OnTnHt2jXu3LkD6MsvsaTEroi8EbF/dPz8/BgzZgxubm44OztbOSoRkVdnMBhYtWoV9evXJ3Xq1Ny/fx/QzbSIyJtkMplwdHRk1KhR7N69m1OnTlk7JBERq4v9fN27d29q1qzJJ598go+PD4cOHcJgMOh+VMzsrB2AiLw/Fi5cyIIFC9i5cycFCxYEICwsjMePH5MuXTorRyci8nJOnjxJx44d8ff3p23btub2e/fukSZNGitGJiKSeMU+DRErNnlRtGhRIiIiOHHiBAULFrSYrSYi8qGIe43cs2cPP/74I/Pnz+fs2bPs37+f5s2bM3fuXMqWLRvveiofJv2lFJE3JjAwkHLlylGwYEHOnj3LpEmTKFy4MA0aNKBXr17WDk9E5IXEzoA4deoUnp6etG3bluDgYJYuXUrNmjUpUqQIw4YNs3KUIiKJU2wSYsWKFaxevdrcXrhwYerUqcOgQYO4d++ekroi8kGKvUYuWrSI7du3061bNypVqsTXX39Nz549KVmyJK1ateKnn37CYDCoDq8osSsirybuH5Do6GjzP7dv346vry8NGjRg//79fPHFF5QqVYotW7Zw5coVa4UrIvKf/r1QmoeHBxcuXKBbt25Ur16dZcuWkT59evz8/OjXrx9Hjx61ZrgiIolK3HvHK1euMHv2bJo1a8bnn3/O9OnTAWjXrh1ZsmRh165d8fYREflQ/PPPP8ydO5dJkyZZLEperFgxevToQenSpfnqq6/YuXOnvgQTJXZF5OXFfTTO39+f0aNHExoaSp8+fWjdujX//PMPXbp0Ydiw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ISZOnMjcuXMBSJcuHQaDgTVr1nDnzh3zLN/X0bhxYzw9PalduzY7d+7kwoULLFu2jN27d7/TMYqIiIhI/KfEroiIiIjIv7i6uuLq6vrcY4MHD6Zfv374+vqSI0cOqlSpwtq1a8mQIQMAqVOnZuDAgfTu3RsPDw/zsg6vw8HBgY0bN5IiRQqqVatGnjx5GDZsWKwEs4iIiIiIwWQymawdhIiIiIiIiIiIiIi8Ps3YFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERH5SKVPn57mzZu/ddsaNWq824DiuG3btmEwGNi2bZu1Q/kk6fkXEREReTNK7IqIiIjEA7/++isGg4EDBw4893jZsmXJnTv3B47q3Tpx4gQ//fQTly5demXdvHnzkjZtWkwm0wvrfP7553h4eBAVFfUOo3y/tm3bRt26dfH09MTBwYEUKVLw5Zdfsnz5cmuHJiIiIiJxjBK7IiIiIh+p06dPM2PGDGuH8dpOnDjBwIEDXyux26RJE65evcqff/753OOXLl1i9+7dNGzYEDs7u3cc6fsxYMAAypUrx/Hjx2nbti3Tpk2jR48eBAcHU69ePRYsWGDtEN+r0qVLExoaSunSpa0dioiIiEi8ED/e5YqIiIjIG3N0dLR2CO/N119/jY+PDwsWLHhuInDhwoWYTCaaNGliheje3NKlSxk0aBBfffUVCxYswN7e3nysR48ebNiwgcjISCtG+P6EhYXh4OCAjY0NTk5O1g5HREREJN7QjF0RERGRj9Tz1tg9evQoZcqUwdnZmTRp0jBkyBDmzJmDwWB47kzZv/76i6JFi+Lk5ETGjBnx8/OLVefhw4d07doVLy8vHB0dyZw5M8OHD8doNFrUW7RoEYUKFSJRokS4urqSJ08exo8fDzxdaqJ+/foAlCtX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MlGwYME36svBwYFChQoREBBA7dq1ATAajQQEBNCxY8fX6iM6Oppjx45RrVo1ADJkyICnpycBAQHmRG5QUBB79+6lffv2bxSfiIiIiIiIiIiISFz0xksx+Pj40L17d44dO4aTkxPLli3j6tWrlClThvr1679xAN7e3syYMYO5c+dy8uRJ2rdvT0hICC1atACgadOmFpurDRo0iI0bN3LhwgUOHTrEN998w+XLl2nVqhXwdAO3rl27MmTIEFavXs2xY8do2rQpqVKlMiePRUREREREREREROKzN56xe/LkSRYuXPi0sZ0doaGhJEyYkEGDBlGrVq03nhXbsGFD7ty5Q//+/QkMDCR//vysX7/evPnZlStXsLH5X/75wYMHtG7dmsDAQJIkSUKhQoXYtWsXOXPmNNfp2bMnISEhtGnThocPH1KyZEnWr1+Pk5PTmw5XREREREREREREJM5548Sui4uLeV3dlClTcv78eXLlygXA3bt33yqIjh07vnDphW3btlk8Hjt2LGPHjn1pfwaDgUGDBjFo0KC3ikdEREREREREREQkLnvjxG7x4sX566+/yJEjB9WqVeOHH37g2LFjLF++nOLFi7+PGEVERERERERERETkGW+c2B0zZgzBwcEADBw4kODgYPz9/cmSJQtjxox55wGKiIiIiIiIiIiIiKU3TuwOHTqUb775Bni6LMO0adPeeVAiIiIiIiIiIiIi8mI2r65i6c6dO1SpUgUvLy969OjB33///T7iEhEREREREREREZEXeOPE7qpVq7h58yb9+vVj//79FCxYkFy5cjF06FAuXbr0HkIUERERERERERERkWe9cWIXIEmSJLRp04Zt27Zx+fJlmjdvzrx588icOfO7jk9ERERERERERERE/uWtErsxIiMjOXDgAHv37uXSpUt4eHi8q7hERERERERERERE5AXeKrG7detWWrdujYeHB82bN8fV1ZU1a9Zw7dq1dx2fiIiIiIiIiIiIiPyL3Zs2SJ06Nffv36dKlSpMnz6dL7/8EkdHx/cRm4iIiIiIiIiIiIg8xxsndn/66Sfq169P4sSJ30M4IiIiIiIiIiIiIvIqb5zYbd269fuIQ0RERERERERERERe03/aPE1EREREREREREREPjwldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROKZOJHYnTx5MunTp8fJyYlixYqxb9++F9adMWMGpUqVIkmSJCRJkoQKFSrEqt+8eXMMBoPFT5UqVd73MEREREREREREREQ+CKsndv39/fH29mbAgAEcOnSIfPnyUblyZW7fvv3c+tu2baNx48Zs3bqV3bt34+XlRaVKlbh+/bpFvSpVqnDz5k3zz8KFCz/EcERERERERERERETeO6sndseMGUPr1q1p0aIFOXPmZNq0aSRIkIDZs2c/t/5vv/3G999/T/78+cmePTszZ87EaDQSEBBgUc/R0RFPT0/zT5IkST7EcERERERERERERETeO6smdiMiIjh48CAVKlQwl9nY2FChQgV27979Wn08efKEyMhIkiZNalG+bds2UqRIQbZs2Wjfvj337t17YR/h4eEEBQVZ/IiIiIiIiIiIiIjEVVZN7N69e5fo6Gg8PDwsyj08PAgMDHytPnr16kWqVKksksNVqlTBz8+PgIAAhg8fzvbt26latSrR0dHP7cPX1xc3Nzfzj5eX19sPSkREREREREREROQ9s7N2AP/FsGHDWLRoEdu2bcPJyclc3qhRI/Of8+TJQ968ecmUKRPbtm3jiy++iNWPj48P3t7e5sdBQUFK7oqIiIiIiIiIiEicZdUZu+7u7tja2nLr1i2L8lu3buHp6fnStqNGjWLYsGFs3LiRvHnzvrRuxowZcXd359y5c8897ujoiKurq8WPiIiIiIiIiIiISFxl1cSug4MDhQoVstj4LGYjtBIlSryw3YgRIxg8eDDr16+ncOHCrzzPtWvXuHfvHilTpnwncYuIiIiIiIiIiIhYk1UTuwDe3t7MmDGDuXPncvLkSdq3b09ISAgtWrQAoGnTpvj4+JjrDx8+nH79+jF79mzSp09PYGAggYGBBAcHAxAcHEyPHj3Ys2cPly5dIiAggFq1apE5c2YqV65slTGKiIiIiIiIiIiIvEtWX2O3YcOG3Llzh/79+xMYGEj+/PlZv369eUO1K1euYGPzv/zz1KlTiYiI4KuvvrLoZ8CAAfz000/Y2tpy9OhR5s6dy8OHD0mVKhWVKlVi8ODBODo6ftCxiYiIiIiIiIiIiLwPVk/sAnTs2JGOHTs+99i2bdssHl+6dOmlfTk7O7Nhw4Z3FJmIiIiIiIiIiIhI3GP1pRhERERERERERERE5M0osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISz8SJxO7kyZNJnz49Tk5OFCtWjH379r20/pIlS8iePTtOTk7kyZOHP/74w+K4yWSif//+pEyZEmdnZypUqMDZs2ff5xBEREREREREREREPhirJ3b9/f3x9vZmwIABHDp0iHz58lG5cmVu37793Pq7du2icePGtGzZksOHD1O7dm1q167N8ePHzXVGjBjBhAkTmDZtGnv37sXFxYXKlSsTFhb2oYYlIiIiIiIiIiIi8t7YWTuAMWPG0Lp1a1q0aAHAtGnTWLt2LbNnz6Z3796x6o8fP54qVarQo0cPAAYPHsymTZuYNGkS06ZNw2QyMW7cOPr27UutWrUA8PPzw8PDg5UrV9KoUaNYfYaHhxMeHm5+/OjRIwCCgoLe+XjfRHR4qFXPL3HLY/toa4cgcYi1r09xha6T8ixdJyWGrpFP6Ropz9I1Up6l6+RTuk7Ks3SdlGdZ+zoZc36TyfTSelZN7EZERHDw4EF8fHzMZTY2NlSoUIHdu3c/t83u3bvx9va2KKtcuTIrV64E4OLFiwQGBlKhQgXzcTc3N4oVK8bu3bufm9j19fVl4MCBscq9vLzeZlgi70VuawcgcYuvm7UjEIlzdJ0UM10jRWLRNVIs6DopEouuk2IhjlwnHz9+jJvbi2OxamL37t27REdH4+HhYVHu4eHBqVOnntsmMDDwufUDAwPNx2PKXlTn33x8fCySxUajkfv375MsWTIMBsObDUrkPQgKCsLLy4urV6/i6upq7XBEROIcXSdFRF5M10gRkZfTdVLiGpPJxOPHj0mVKtVL61l9KYa4wNHREUdHR4uyxIkTWycYkZdwdXXVi4yIyEvoOiki8mK6RoqIvJyukxKXvGymbgyrbp7m7u6Ora0tt27dsii/desWnp6ez23j6en50vox/3+TPkVERERERERERETiE6smdh0cHChUqBABAQHmMqPRSEBAACVKlHhumxIlSljUB9i0aZO5foYMGfD09LSoExQUxN69e1/Yp4iIiIiIiIiIiEh8YvWlGLy9vWnWrBmFCxemaNGijBs3jpCQEFq0aAFA06ZNSZ06Nb6+vgB06dKFMmXKMHr0aKpXr86iRYs4cOAA06dPB8BgMNC1a1eGDBlClixZyJAhA/369SNVqlTUrl3bWsMU+U8cHR0ZMGBArCVDRETkKV0nRUReTNdIEZGX03VS4iuDyWQyWTuISZMmMXLkSAIDA8mfPz8TJkygWLFiAJQtW5b06dPz66+/musvWbKEvn37cunSJbJkycKIESOoVq2a+bjJZGLAgAFMnz6dhw8fUrJkSaZMmULWrFk/9NBERERERERERERE3rk4kdgVERERERERERERkddn1TV2RUREREREREREROTNKbErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiJWYTQarR2CiIhIvKXEroi8M8++MX/y5IkVIxEReTdMJhMAYWFhVo5EROTjZGPz9CPp3Llz2b9/P/C/a6+IyKdMX3zJ61BiV0TeCaPRaH5jPnr0aMaOHcvly5etHJWIyNszmUwYDAY2b95Mjx49uHDhgrVDEhH56JhMJsLDw+nevTsLFy4EwGAwWDkqERHrevbz9bFjx7h27Rp37twB9OWXWFJiV0TeiZgXnZ49ezJq1Cg8PDxwdna2clQiIm/PYDCwbNky6tSpQ7Jkybh//z6gN9MiIu+SyWTC0dGRESNGsGXLFo4dO2btkERErC7m87WPjw/Vq1fn888/p0WLFuzevRuDwaD3o2JmZ+0AROTj4efnx9y5c9m8eTN58uQBIDQ0lMePH5MiRQorRyci8mYOHz5M+/btGTNmDK1btzaX37t3D3d3dytGJiISf8XcDREjJnlRsGBBwsPDOXjwIHny5LGYrSYi8ql49hq5detW5s+fz6+//srp06fZsWMH3377LbNnz6Z06dKxrqfyadIrpYi8M4GBgZQpU4Y8efJw+vRpJk6cSL58+ahbty69evWydngiIq8lZgbEsWPHyJAhA61btyY4OJiFCxdSvXp18ufPz9ChQ60cpYhI/BSThFiyZAnLly83l+fLl4+aNWsycOBA7t27p6SuiHySYq6R8+bNY+PGjXTt2pUvvviC77//nh49elC0aFGaN2/On3/+icFg0Dq8osSuiLydZ19AoqKizP/fuHEj3t7e1K1blx07dtCkSROKFy/OunXruHLlirXCFRF5pX9vlObl5cX58+fp2rUrVatWZdGiRaRMmZKePXvSt29f9u3bZ81wRUTilWffO165coWZM2fSuHFjvv76a6ZNmwZAmzZtSJcuHQEBAbHaiIh8Ki5cuMDs2bOZOHGixabkhQoVonv37pQoUYLvvvuOzZs360swUWJXRN7cs7fGjRkzhpEjR/LkyRP69OlDy5YtuXDhAp06dWLo0KEMGDCAhg0bYmdnR3R0tJUjFxF5vphb2bZs2cLQoUO5cOECBQsWNCdwCxYsyIABA5gxYwbNmzenWLFi1g5ZRCTeePa945YtW0icODEbNmxg7969mEwmpk+fTu7cudm1axeBgYGsWrUKQAkLEfkk/Hu93IwZM9K9e3eKFy/O9OnTLdYeL1iwIN27dydz5sz88ssvHzpUiYMMJq24LCJvqWfPnsyfPx8fHx/q1KlDmjRpgKez3ZycnAAIDw+nbt26mEwm1qxZozfoIhLnxCR1ly1bRvPmzenZsyc1atSgQIECgOU1DaBv3774+/uzY8cOUqZMaa2wRUTihWfXgPTx8WHVqlU0b96cDh064OLiQmhoKKGhofz44488ePCAdevW8fjxY1asWEGtWrWsHL2IyPv17BdfUVFRREREkCBBAgC2bduGr68vjx49YubMmeTOndvc7syZM2TOnFmfr0WJXRF5O3PmzKFXr15s3ryZ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k5CQQNu2bdm+fTuXL1/GycmJN998k2nTpvHhhx8yb968Audo2LAh69evV6grIiIiUszd237Bzc0NDw8PkpKSyMnJoXfv3pw4cYIJEyYwYcIETp8+Dfx88yAFFiJSnOXk5JCWloarqyuPPvoomzdv5sCBA5b369aty/r164mMjGTevHmEhISwe/dujEYjOTk5ukZKiaKKXZH/Qd5fH29vbxo2bEhAQACxsbH07t2bWbNmMXDgQNLT0zGZTJjNZnbs2IGnp6flRnO/ZvAiIiIiUrwdPnyY8uXLU6dOHRISEvDx8eHNN9+0VO42aNCAf//73wwfPhx/f38cHBysPWQRkb9V/haH+X399dd069aNJ598krFjx/Lcc8/94jlUqSslkSp2Rf6g/JUWeaFsWloazZo1Y9euXfTq1csS6mZnZxMREUF8fDylS5ema9eulp5o+Y8XERERkeIrfy3N/v378fLyYtSoUWzdupUGDRrQtWtXzp49S5s2bdi3bx/u7u5kZ2dz/PhxhboiUuyZzWZLqBsdHc3HH3/Mzp07SU5O5oknnmDFihX8+9//Zs6cOezduxcADw+Pn62GVagrJZEqdkX+pFWrVtG9e3ccHBzo168fGzduJDMzkwULFuDt7Q1AUlISXl5edOrUCT8/PyuPWEREREQetPxVaFevXqVSpUps27aNrVu3EhoayqRJk6hcuTJLliwhICCADh06kJqaytmzZ2nYsCG2trZa5SUixVb+69vYsWOJiIjA2dkZR0dH3N3dmT59OlWqVOHgwYP4+vri6OhIRkYGubm5/Pvf/8be3t7K30DEuhTsivwJaWlpVKxYkd69exMaGsrNmzfx8vIiISGBkydPkpubS1paGn369OHWrVt88cUXenooIiIiUsLkD3WnTJnC999/z8iRIy0VuZ9++iljx47lpZdeYseOHdjb2xMfH0/16tUt59DSYhEpCb7++msmTpzIlClTeOyxx4iIiGDNmjW4uroyb948qlSpwn/+8x92795NWloao0aNws7OjpycHOzs7Kw9fBGrUSsGkd/h3o0uSpUqxaJFizh27Biffvop5cqVw9/fn3LlylGjRg2ef/55OnXqRFJSErt378bW1pbc3FwrjV5ERERErCEv1H333XeZP38+nTt3toS2RqORzp07ExMTQ9WqValevTqnTp1i48aNBc6hUFdE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Yu3SpUt89913zJkzh2effZbo6GgmTZpEQEAA8fHxjBgxgpycHDZt2kTz5s1xcXGx9pBFRERERERERER+k1oxSLGWkZHB1q1badmyJYmJifTo0QM/Pz+GDx9OcHAwY8aMwcPDg8jISCpWrAio/YKIiIiIiIiIiBR+qtiVYs3R0ZGOHTvy8MMPs3PnTho3bkyfPn0AsLe3p1evXjg4OODq6mo5RqGuiIiIiIiIiIgUdgp2pdjL63N28uRJbt26hcFgICMjg88++4yOHTuydetWbGxsMJlMVh6piIiIiIiIiIjI76NWDFJiHDhwgJdeeon69euTmZmJo6MjR48e1QYXIiIiIiIiIiJS5CjYlRLl6NGjREdHU6ZMGUaNGoWdnR05OTkKd0VEREREREREpEhRsCslmkJdEREREREREREpihTsioiIiIiIiIiIiBQx2jxNREREREREREREpIhRsCsiIiIiIiIiIiJSxCjYFRERERERERERESliFOyKiIiIiIiIiIiIFDEKdkVERERERERERESKGAW7IiIiIiIiIiIiIkWMgl0RERERERERERGRIkbBroiIiIiIFRkMBmJiYqw9DBEREREpYhTsioiIiEiJ5+Pjg8FgYNCgQT97b8iQIRgMBnx8fH7XuXbt2oXBYCAlJeV3ff7y5cu0b9/+D4xWRERERETBroiIiIgIANWqVSMyMpL09HTLaxkZGaxevZrq1av/5X9eVlYWAJUrV8bBweEvP7+IiIiIFG8KdkVEREREADc3N6pVq0Z0dLTltejoaKpXr85TTz1lec1kMjFjxgxq1aqFk5MTTz75JBs2bADgxx9/pGXLlgCUK1euQKWvh4cHQ4cOZeTIkbi6utK2bVvg560YLly4wBtvvEH58uVxdnbmmWee4eDBg3/ztxcRERGRosbO2gMQERERESks+vbty7Jly+jVqxcAS5cu5e2332bXrl2Wz8yYMYOVK1eyYMEC6tWrx549e/D29qZChQo0b96cqKgounXrxvfff0+ZMmVwcnKyHBseHs7gwYPZt2/fff/8O3fu8PLLL1OlShViY2OpXLkyR48exWQy/a3fW0RERESKHgW7IiIiIiL/z9vbG39/f86ePQvAvn37iIyMtAS7mZmZTJ8+nZ07d/L8888DULt2bfbu3UtYWBgvv/wy5cuXB6BixYo8/PDDBc5fr149Zs2a9Yt//urVq7l+/TqHDx+2nKdu3bp/8bcUERERkeJAwa6IiIiIyP+rUKECHTp0YPny5ZjNZjp06ICrq6vl/cTERNLS0nj11VcLHJeVlVWgXcMvefrpp3/1/ePHj/PUU09ZQl0RERERkV+iYFdEREREJJ++ffsydOhQAObPn1/gvTt37gCwZcsWqlSpUuC937MBmrOz86++n79tg4iIiIjIr1GwKyIiIiKST7t27cjKysJgMFg2OMvTqFEjHBwcOHfuHC+//PJ9j7e3twcgNzf3D//ZTzzxBIsXLyY5OVlVuyIiIiLyq2ysPQARERERkcLE1taWEydO8N1332Fra1vgvYceeogxY8bg5+dHeHg4p06d4ujRo8ybN4/w8HAAatSogcFgIC4ujuvXr1uqfH+PN954g8qVK9OlSxf27dvH6dOniYqK4ssvv/xLv6OIiIiIFH0KdkVERERE7lGmTBnKlClz3/emTp1KYGAgM2bMoGHDhrRr144tW7ZQq1YtAKpUqcI///lP3n33XSpVqmRp6/B72Nvbs337dipWrMg//vEPmjRpwsyZM38WMIuIiIiIGMxms9nagxARERERERERERGR308VuyIiIiIiIiIiIiJFjIJdERERERERERERkSJGwa6IiIiIiIiIiIhIEaNgV0RERERERERERKSIUbArIiIiIiIiIiIiUsQo2BUREREREREREREpYhTsioiIiIiIiIiIiBQxCnZFREREREREREREihgFuyIiIiIiIiIiIiJFjIJdERERERERERERkSJGwa6IiIiIiIiIiIhIEfN/DVgu5dKrUYcAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "benchmark = BenchmarkAnalysis(df1, df2)\n", + "summary_df = benchmark.calculate_summary_statistics()\n", + "print(summary_df)\n", + "benchmark.visualize_summary_statistics(summary_df)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Analyze deviations" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.Chart(...)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "deviations_df = benchmark.calculate_deviations()\n", + "# print(deviations_df)\n", + "benchmark.visualize_deviations(deviations_df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Some Statistical Methods for Evaluation: t-test, p-p-value, Cohen's d " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Paired t-test: t-statistic=-0.600, p-value=0.552\n", + "Cohen's d: -3.390\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from scipy.stats import ttest_rel, ttest_ind # import independent ttest in case the samples are independent\n", + "\n", + "# Load the data (replace 'baseline.csv' and 'new.csv' with the file paths)\n", + "df_baseline = df1.copy()\n", + "df_new = df2.copy()\n", + "\n", + "# Perform paired t-test (if paired data) or independent ttest (if unpaired)\n", + "if \"question_number\" in df_baseline.columns:\n", + " # Ensure dataframes are sorted by question_number for paired t-test\n", + " df_baseline = df_baseline.sort_values(\"question_number\")\n", + " df_new = df_new.sort_values(\"question_number\")\n", + "\n", + " t_statistic, p_value = ttest_rel(df_baseline['answer_correctness'], df_new['answer_correctness'])\n", + "else:\n", + " # Use independent t-test if the samples are not paired\n", + " t_statistic, p_value = ttest_ind(df_baseline['answer_correctness'], df_new['answer_correctness'])\n", + "\n", + "# Calculate Cohen's d (example using the t-statistic and pooled standard deviation)\n", + "from math import sqrt\n", + "pooled_std = sqrt(((len(df_baseline) - 1) * df_baseline['answer_correctness'].std()**2 + \n", + " (len(df_new) - 1) * df_new['answer_correctness'].std()**2) / \n", + " (len(df_baseline) + len(df_new) - 2))\n", + "cohens_d = t_statistic / pooled_std\n", + "\n", + "\n", + "print(f\"Paired t-test: t-statistic={t_statistic:.3f}, p-value={p_value:.3f}\")\n", + "print(f\"Cohen's d: {cohens_d:.3f}\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "rag-optimization-cnn-dailymail-hiPg4Kip-py3.10", + "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.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 103654e16b4641045559ae0d54e2a69ef63033e3 Mon Sep 17 00:00:00 2001 From: Hillary Kipkemoi Date: Tue, 30 Jul 2024 07:44:37 +0300 Subject: [PATCH 07/13] add screenshots --- ...nkerScreenshot from 2024-07-30 06-34-14.png | Bin 0 -> 151786 bytes ...ken-Screenshot from 2024-07-30 06-56-09.png | Bin 0 -> 56578 bytes .../baseline_benchmark_visualization.png | Bin 0 -> 29013 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 screenshots/langsmith-tracing-opensource-rerankerScreenshot from 2024-07-30 06-34-14.png create mode 100644 screenshots/reranker-opensource-time-taken-Screenshot from 2024-07-30 06-56-09.png create mode 100644 screenshots/results/baseline_benchmark_visualization.png diff --git a/screenshots/langsmith-tracing-opensource-rerankerScreenshot from 2024-07-30 06-34-14.png b/screenshots/langsmith-tracing-opensource-rerankerScreenshot from 2024-07-30 06-34-14.png new file mode 100644 index 0000000000000000000000000000000000000000..daf21dac66cc6e1e33adcddb94cb7564a129bdd9 GIT binary patch literal 151786 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볍i;u_YQ#BuCNqgSkou%hFMfhBv7 zN`YG4-4(rN*NGGl$Q*_{9QsmH1$u0pwJDPqLwO>?kX4tQWvd)6e){pX!5Rm(eJ&1!;*@*OoqWG42YO$M9El$t zD3O058qg7Z*b-2>fimJ0yBzs-Sa>}PG#tQQ1Hfv2WIzxBlf86u-XTxKd>j{Zj!%a} z9o%6S_G@rs@Of}0+*GxZLT^HE9A{)LXQ}9kU zxM7iUCzct;N=p@B;2mXlpMF%=%8Yv-j~=OF=D1$G<8yJ58(tVE9Q&WO02!&CDyHGM zoDQ7Zi%ey!>BAA!-x*V9a#POd)O&8Of8PilfodQtc_QLAtexaTg)bSMA$0534{?-F z;Cw!s#DuOIjt~K{g{KyYy4QvV_#@8a=v1tQdjX+G#>__Bu@J$ZS!euf<-OR*NdBMI z7;lo*?%bnV&r7L|l5_8-7m&}zdb>pyIn9xT*FmbfV$f03sS^}!gHH-HsR+lsDK-41 z-&0yJH0|Ip7Y+?lWyy(tN3qBDOiw3{jw+4rp1I>HXYh1QPR83UH$YasPjGN?UE+xn z7q5MvNg@Nx;hX)ZILP;Jf>p02KVG29SG{eL^Ptk4 zEjHLB2HNtwc+Jl6QQ`?s@k2yhiKVzs@4;ka^{o%eBF@cERU5IEK_F44C70LvsP%k8 ziy!?&Wu*yhoN>w5Ehi{aP5W+xyX?MdsrU(i$9o;XZ5z?TqUfwjmc{}ZsG!I|AU1p* z6Ijbvb9ivjH&av&@o?Sj2y)UIVXHcr9}hC_=-{adl2NwbS{|NAHs@mF%=!AsREfw_ zpvf^&ohjxm{ws&Eg|77}UBW}MZjf^H2l#gI?AcCX7-x$mcs*><7ndPf&v!Md<@N?l zTRmsR(mG$bZqgxbzX6?XReKtY3av%{SW1kK?}{dxzPaA=$0lA%DN??-TKJO+gZadg z2@h9xJ}Ah@$kc-r4K7IYQFDy1B`3I#m?)z8P>1gLYPb7JSb+N3haH3v#K7qo0Zr3l+{nSC2L!fMdecGi)CkR!vzf`g z<_jA}ma0Q9G#_^t6g;`y_!Vo%qU}9#X?!w_KST7aov3hQ$<4g_H&81nD?p@RFq5#` zXSRwNi=OrM@bZF|R)~Hs8b)l=(oESCJp5b7gTLde)CCg9y2kthV!>5t%9f9VpuwHA zei-S|5uAtlP6M^9~=9$Z{HMUK!?d^kam(1i95gf~qbzrTa; zU!P944*zd(wR&mb%{FLb_vrJ9qzS)+`0KOtgBCQnT2|r|oxaOta?=la8kPdT|8;uI zg@dcuU@}g@PvYxI-07slC&tPWn=l|LTC5Dv2WDMe)3UR>71lK==V!0-zY!YFeY2Ty zgp_dhh7DO3NJ?t+N8>XXfgeRS3q5vQkmn}^vY0+_YCY9vfZS&<=I6<4rQ*I@-NN?Y z;umPnWV+)b@ChR^km@_uGxsj9=J@EoqAN6iv-X>0Qa}7(mWYt__i8*Y271+^MkfVC zzHg42E4E;Be+v-hE$Ix%WEvi6w&$rKDp}IcYboY}UP{a{x7s^RV=q)*h z1hRQwG8S6@GawKqa>gAy=O*}HKBxW{oZe#4k62f?W)tU^ZTJ3fy((xfe=+>KMB;A= zW}+qj%OAnHskHweAxV9LzrI+_Fs+SvYx6i}vJV{vg=S%K)=mDO5)%~0{nfl}u5|bd zi?moa-$GznXt9}?AJz1po144oFKJAcX}e%hh<%zjf0ElEothjAJhC%U+r2~4w^CuE z&Z9yO_Tq|>C&R!l;S7NTVruHt!R1E_(rA@}qsN_4ZQj38sHrajd=-BIO7nC2%6=Y4 zH_#V_AOAAR%@s_v_)m{=l%EOaxPSO(2pO&iC5?2MuAC|fL~QZ`{f+!BQ9MXb9-e>} zD$Bw9e-jSWd}2yx;-XslZv=_l^h5tCEnePJ1q(u>+3er!X8%0o`fFrxBYF8xF?qMw zjS32yepZZNJ(a(i`X7>YCMi3cuk0T%@;)MpHL%0xqIhG0B(rJ)V4K_Fk_x_G$wlNC``;wy3BAA9RYX0Bpro_n zCb>76zr=-Ofzy1{uFh&>{0A>nQc}{{!&>*tGnaO1_!luB(6Y!ziqb;RFn%8D9K^}W z-o_A)op$7}IRx?9_xLWPO~ zNj*vCcZ|%fYO^D5eXL2VLCDx`42c@dI8`%qU(x(r{k~w`!}t;}ZmRP& z)OUN{P5G%&E*CT~BiiqE;~E|b*qEE^nIGqeh)B`gH88x}EGh5&8>_r(Z>A>boLQ}a zQHUQgH>)ny#qKuw6-0D#Z%#Qv1qit9oJd0iHs`+*-jkyRtxZ*}J3TaK^>}`n`4TwY zX*$M`Ycvl1zH<+N{8^*)*rdk5OU86Lw|}{NqQ!CIUBgUfkX8DZcCd~x6t;I}+Wq4( z9kHnE1A#o1&sn>|t2Ls#4VTB}9;K>OXrVnW$m%O?;qKY(AHGrFY8pku_Uu4v5^-Dc zNWt2;c#7loA!q|++k4sb;NFgOgpGQ;h#9skWr`^l9$`M+#@O8|1L;brF9R$NW=JOz zl5ZfzP!qxCBs41)2aDWF(;vP31G6VGewbs*v^U0?+wj#`-OFgge=K<|E3~O@rF1%2 zXuDJw|EfK3?{>5m)y@3hSN{1M*^EJV4??j2UHE;HoGI8D4K z$O_uyJR{p>FKvp&L%lIF!wihZo47+anY-2ED<@RE)-Hb&D9d6#U8IE%Kx6ByP{~j4 zw4fO=IC1K)Cq!!D^pWVh?Ej?a@aUrZE{n9W#srwbUc~A5Cmq^H2*F|I@2def%SqgI zcERxQOjDJ%PN26gHQ+y%DYg4iKhLf(?PO|g)mbvd4h;9R=q2uAcY>r#wQI#vE^Sh{ z56c;a?y`k&HzruwJ3FwuicvY9bNhT`$uvpfdOI2piRIVAh44_JwpBt#L8Y6Kn zXY5`0F$EH`ps`6A+o&H9GH|{_?NrhK;ttd8c(6td8?#Eo?F1brJ7LWw8!;gG>#Xj+ z-<+CHyV+53X0Q6Sn5RM8)m!b=<-7?kbOb{^`PjAls2ayzzqom26{j+o6*~!R5o#wt zRKL;Rln$3`x8M+1-*o>b{y}3CKI72URh`0|aG0*_`!8h^S=y0s?YV@A0CQ-L*|I{h znepn@)agHkZh7ukQe8I*J8`fAh8|Tm8!x!m0u~lZ5vOz7(fL2icHHj|;*~$XStF08 zK(*4HuchM7vL}OUM88=#;C9P&Q3>476G+p7?Q^0f#weHn*gK|$sDoy_bipW*%}VRA z^83J+<~2SqU9hm2u(~=a;AI(ZM+GRkJss~ ztizw#;!PJj4RY<>rV*R_C;&UtVz+6zw;>AfP}9ONfjEDX=>3$f zHuupAWpCEnpo?(^^L-lXtFO)!$()?rk?RtkP;)`U>`;Z>z%+)@nYB_+rj9Xd6?~rV zz47WRg~%wjrBLbt_!l?RTgUHwIxCdF9)DHQQTz9PUQsH7Qo+xa_=kA8G5hQYcUnagg6VD2(`QE87iX#-lZU3fCJ zP(>B7VVviBj6Zs@vh$4tF=|Dl1;MsLgu9YguZRom^TqQ`KgLrf1gCQLUIc%7KoK966Jr)bOFE^#o|?_wPg1 zx;$@B)6FXjNPnQApidosqrgx!jo0B&eL226UD5k_ql7KKT#N@bT)FYk4~?N|XaVS> zHVp8AXzgwdo-q@G2+5{8=W)R{@40G73qraL0j_8r36k#WdyovOoY?ERph=djk8bHI z-|o{n>|f@Enx({2OicMQ1Zn!WxS{raQKY^-q>c7_$O6~J;oycff2Qab4l#z=bMK~I z(#E``tDB~H#YG!$iNabU7M4&A@*jPoAw5hdUOiilc(EAe*0l z@gqb-Of#W8fGNSAVSu%Qhs_14wi74=uoS}i>Oq*;=pf8n&r6lDQ|yewEKkx957Xj! z9|Pm;dcj|U+Rl(b8I;^~G9S0Q3s@V9rF}&rHyBZ16XqC*o+)4Tes|c4Wq&1pqx}b= zL$G~JS+8=oj4SVyzRfp0=5>5vx?`uO$(ZKg;^;+nCcB?wJsdf?@Q4OYEnI&bEp!+K z5q1SM%Klk;B@jQDp(-Xm3m}Xf62lrW9x(HZF&wIXMgS8Mm7AbqH_13BHe}chYDeiH zkHaGv$crYW49g{G>%E%VM6DFVkN4V7yW#g+t%?+PJ(TPf#e{4%KGHL9U9@_&5%W=P z=7b?!f9-i2o97=rGCf zJjb3XFc}>fA<~?kyWW%Pq+<{W{f_8t{drD1YmOue)QOQQ#SqilR5+eQ zL+4Da!9hpzI=j6o-_qZtLwh&^tOOMG{To6;!gwLh7i2{v!KpnZ z7anEWGf^rh_A)+Sc6#<4JSh{6Ok-I*pb}a;pdT9;%efgz!G;f%z<-tE)qwI z!qPaXvX^vM$0+;Q*ec6&#=+uP3Lq3@NHKdq4zJrXUF8FBh-lZk_zRNsFp$$=Oafv)W10-CGY6V-155QjdM+Ea~l*tL2Ur0pZLhUYN=;_>!Q(9u}&iPw{(lueZ|aajVg{m0c`i z2HR4E#Cz*QoJxO$ODC>C6aSAqmsgAX159P*IABr^z00HICz8ZoZ{AK0ylJ-H-WlTL zZR7B8V?}M)2lMMczq)e2I0nn6x_4}EYu`)&tiZnxlVd_-FZ>wasCV(vV-k&>C61Y+ z$JhBb97qQ0gc<2IAGs>oqR}+HFcOZv`Qd%09iHFTK=GdsLj&Kl^>_R!L6yD_dqDW-$pwSxHV!aVf!3Bu zkpeQ0t6Oe_uq&_`{Fa+ux}H*ExbcNU&S*_@ZcXtS|Etu73-U98_nqv<$7frgVQt8k z9(q8eCMK}4PRpCboP;usC(eiZbC+AIOuk0}MZBGlr^PTk=y@+f{(~#3gUDnk{i+Hq zubw~mVU41R_h-f35|I?X$#&67-US!YTt0LbfT)D~w?P%x}MaZOvu6iSEn|s3YbrCdt5)J&xi8E!)cEK7E zV2?&b>Ls*pHxmXqQ8wvjMta5jOfYk?YUP>O3gOw8(|srMc(g|s+314mn=nu7QO#9c z!bH`=!=M86Oioi;pLcII$diXVx9C#Jbw@UxRyZ_7cA@K9$RUJ7Fk@o&c9E!zPi6x>xNGvlR)4gzdU^PB z7+#@c**bm;2Jw5d1=j1^6^X;Uhw+}qu1b=(x0J0OyWcw7M-A_!*Fi_$N}OzjT-%7k zfIPAK%cytK+i$Pw+{sE%pa^kZj+mXj6{TB|+ncW!YTaMFDzw|5t-UWfiC9+}Z1;Ut zzt-nr#q1)`coQ;_1aiIQoFj!LE&Qbc!R^~E^*`*wF=cGHMl9K=h!7}lMWFs@Cq})* zX)+T8`K5bqHdOWp;@X5lL0x1&Jni=Qe(ci6!*1?a+Fg)?yxV&c=9a^Sjk*?^SU2o^ zILKoxdWwciKXFH_5>A|AknJzMTBv=<(!_m_^Z!qCE|xv^IPCgOaMc9{qPetWwYkF0NuH|gBRP4J4)1&RlZ>ioWM~AQa9|9}XaBy%WZPcbru^Qtg z8fZ(LjnjJmpwS;-HG5cbqBSRZb$})R6VuGEF$+DlDzfQD6mtrQ*L1|0(^h`QePf$@ z&fn4Tdt|w5TfQgsVg2~!yP;L-(d<;^3GZ7Dqa=28@cEEX!r+y(!?`bPNSVTA;bC9O z(-9#a5S?Gltu-3a%U;2=D}^?K?|JHY@=fHX1_h%}kW_KCf4)`>^ucMiK7267TzAx8 zu*s5P0FZMhtKTfMbF$g$;K8vu;k!3$AwJ>`n){{ePv567iQEF3p(^L% z5ba;u`epjT=~(PRY>keQ@h@$RU1A6CJxJRxU$zV1L6kaEEJZrZJ?Lq~f#14TW7n8( zaY6V=ak?L(U1BnB=8#dVab+PYU0TSiWHR#x#%AQe(S&);jjK^wWKC=wOTRnfX0&Awy|RpcfP+8)VHO~`}R(8e-;gZVA7A0S^OD13uHE~9XN z^?p`6AR@h_{t*pkD%-MZ*PD?jGqt46l2#wEQ0vDq61_NB5l{AtU!pto%lPq!_y!je zd3=9hg9FX}wzs5u3IsMyga#m10G!6U+8fhxyOETFMopG#f~PMvqe*ahlU6t4UG1#; zOjIauYqgaOog>=4?UvIX&S-%Kgc6M@d3AQU(U{8|rc~~mMmef}p+V?QPZ4*WrvUw|_^1N1tr4&Lgc@e7{fyosf;4I`DCSZN;mqg7iQ}`CFNb**G~lIX*o{ zXWm>69q(AT>p*{kYkjpN*aEzsl5<1_QSVS3ZNKhHEeHUwxhJ5LDku$DE#UGvkOxyy zsk1UX`4{W-Y=CNFO{vq5?^Ue`ai`tFsB zc!r5j>P}l7pC~v6keC)7Q(9Q|3%b1N6Vb@es0dw;S4sf9GUlg@ z8h86-v?X ztp@*aA@{d2rv4hjN8Z+xyTwo@@>rRzf!wR++wU&AkB=~SeQEpQ9h`txd&E07UTGA^ zy^ym}n=kvxMOlI8Zr>yz`O%=_pNW^P^X^OhcMxnCs?o3;d*hyaAMmgvt$Uz%W`;aui6_48q*N6 zto9HWTCvXt1|TeNzfIwS*P1ed!3X1?-yM8Qio$G7P!enUprm;mQR;2**QVo1W_T%Z zmPa}3iJz`~&>gu9&NyL<88^J01Om}M3W8ZTJUE@L#(HJXW3`y`;ba(7X!V?`!`gTD>|+6J~w^%Tts;IAo@lITp)mlVE8;sXaM@Js;cL_q>KFJ4DKp;hY=JExoSERR>$vccL`rSL8AE|kCrFLTR+~O_XGS*(&7=39pg|erDTw#UEjQa zHQ76p#CkMdXnR>|)c{4*lG^yj4-&X?@7HJPU*s*3UIGr)1oeefe&@iS+hm zc#r@MrqDAav{8=hJERZqK8xGksBA|{Z zG|+cLjXn>3d@L*a?C-Ij|2>MMDARi`$+qJi_zvtV7VN_iaAK+2c!vynuYH+4MXdG%8$kg_RV*5mWLe{%Tm zbx(|1p5^b`|8qK$;L4l)Tatg@3tmo3OVoM_bjf!u?HyN0U>YACzy43GKd($^|C7zX z_qy$rXd_Q=OD-dlzCuB=AV^(1g1NC=Te4uYp1&;;Ng12?@n<7&CuI4v?4~$X%KX}& zywS1EG0U?8GQ;-w#Q*}LE~qs3IU@Rou^6K{1`9p+jjqb+PO8O0AH-7wbI(E8tz!>y z2lbdCq4(c5#0nA0`bp)%#rP>^c!0!#Xy%iCuj{Tr`oL?Z&K0&{osxnIj6L;lW3S!j zUjGIN+3cf>)1eZn7@AXc2rO}TXImXl0j8V`65jWt?Z%cH-J5#Lb!y{YNSwV#489&d zCH*18%58KUYbrvUAYFPHZ0He?6;wu-sa3liF|0kZaN|cGhG=FWH5MUrGQ86o01|!G z21(dG=xZE{-BDwuD~=|8cngTO_4d$IZHm_s)_iAW1%swc4{b?jCk*}wc|T)GBKO#a z!0h}c+iY7=-D6D=*8G7?WHVcr&OPN%V)Ro43CiSlX-Z$YbF!Ga{e}2z*L!cA= z_3S{k`@)-O(c$@47zlDgv$OKK&t5}58}EariA_LDhQjv>rwecl&zp~DTN!LW4Lw|H ze1Uz&4y5w7^~NDZ+m1+czgFFM_AO#{UN;iAG-7C2Ono-+Hm$ad&H+(8A30`eAl(o3 zy5vZqc~MYN+I|L2x%?;sHRgc;R^$)9kt#@kfr@Cv(1e$3dT$MC<-H(Mp!=XLSs1>u z+O-0T%5fCK5t62j&?P(|8-BTl7<>hhbq_nAxNy<4|K3y)xTOIS&`<|=6Tf~k1mL?K zX%#cQwyVpfbF&NzH7Sj}$t&2BzH`|7Zu;eMR&o83WChB^>yh(MhwdrY0 z(@Xi(U|f&T;SR>gC`zy5jb(FxCAh)lm2iS7T@2}-)>Pb=$1N$X86315_8j~~%ifvF zH2f@OOxSrvkVljub|*&s%b-C^1g~(`XbPi7FMG7{uoSPgIa11WUqLx*kbAM?DK%u} zE{*p`pCSf#=I#+yeJ>u|93_;`Hsu1DBeiOQGq;-eO@syy=SHKY4K?6%{BuQSiS*Wn zC=fX51&8S@d~&^bu|! zMH)qj%h4EzH`*bVaY^1XJ(vi}g z0LkNQjJ(O+m|s@Hl9-y{#||N?$nAmdh^d?Ju0Tri0=2;pw_X9GsLg0`Lmz+bFlI*9 ze_kx{=t@PCzx1&55$cKXOl<2643x{DkoGCdF!Cq5)R-j%;Kw&yy$Mroghk_mQ00%d zq;AyiO2w@Py}lBpXUG-N^N;(pHfopxy%Xvw@QvMtRx^qU6q;I0Kb;q!&%uhsZRzL4 zTmyRMdxL^+pH&AtTNB*$85oXb^Lp_`P23D0&>-N70dkdJjqNrUP zN{c%!?(R@1PNBHFySuwH#ogVZxVy{XuEmSHyUPqe?WgzVPi}H1nPetM_E~$$KF@g< z)O560Y-n1!{2#L#3q9YLlh#sh$@`Ap$sHf!UH%p?M|zjEi&%#;i$Abhd}b>$yOI_; z`!?7=j8CaQB>uc63_fWx;NB|}PR}}>LarHH@t=XbgORH<4a-C~%P9Q9g%&||wJU8` zF%%)bX3}#`6zY4dPw2}7F^}-Fly(9kh9sH~HRzeIDroQpwa8#_RX*{{z^S%H?MSOR~0 z^qNOX^s$38zSnX@GhIYg&et<8KeO+JfxIyAS4>=7!VLEnZW3x>abuvg+p6#BNx&Zz zW_3*}E=KI-TUWL%3D0=3M^yY`v-69-n&K}t6ncG;M|{ev4OM0#+shg(UnHdBQ@{4h zZk^9sb15OfGtCJJ%}li-G`hghEvWDSJD`*`iH@g|W4nO3{BgnbdkddLJUP7jx-Z;;u{}O@qq55++0EdK;jW z7H3sQJ3i}lba6He(8bYf;w|64Wu*c-KD}G3o44eiaEHXYo&k5ZH%~J4n`R^o{F29l zAIrC&p|uL*giAk;dhsLGT>a*5g68hy)Vo+gN#h8h?UBf);j#64m2*Kk=i-z=GYvEn^Vi7m12oL5y?q4K|TH&ysxe9 zy;frm7#b6R#H57A7ifgBA2_=KZDo5Agw%Uy^gQ(88V{v4X85~n8(-L>Qpd^I*wPO+ zq79Fg42)j~e}00YFr$y%6cUG(|1^qCuu~koZE^GK(g_3SOYVYaz=U+zNb8xhY$PR@ zY_!P*WOAp0WtkjgY5OmYhHvm^Y&rJwp4~rg$Uf!&3fZ{)rS18YwZmmiT~DNJ@E+Zt z2^jI7&)5g&3?-FFaoE?1STv0rd;+G$#!C1t$q%5pdZVvzA1FDcMZXhL2S82pSBPCO z*YD+j(A=9Tr{BG((I@yU;wXs9ngg{ns?4{pjs&+ZoklzKhh>rne@Yg9mc=s^(dv&t zG80>4s_Paxo{+b^Zpr!TwQ>UZnDDn&r)zk{L2=zCAHkK-^-|)Q_lq+l*otP=D*;OD z`d*T}@imv(^n0Oz#jwHCcEV?NidID+gIQ0=SLrk&(ZP%GOkdQTyKV{9#4npPH6$KAhkCk9uY`wAmIP4(bc%Xtd+zEyI)dJ>gDo98)!U zC}auafF_Ll(@b&Jo|Lb;D}}(SdN;=|4ulIniKW}ZoJvLJT2~;`V&&$BRkFh`t>Sjo zxW{8>UG24NpjX-#w=+=ZRs!3{G0TzX!MS6>DzH1G#quT&!C+0%Jx5Nhev(HXvJJf$ z9vXzmUgD^-ISk~mLWsM71chj^tw$1C+~@FkOP0mvQn{+M-?Bt?=Zruk5eOx~7m1qr z{y~%o&!HekTeM|L`2h9{KC*wE<2B0X z1gGxER?HgBbg->=Wy5h1#cJ&CvzwH+Zp`g_i0tGhxbnog)9|ofUE3FHfkzNkqJo;7 zxH`24n7npfO8R5}EW@Q&?beE}b5e=#KLgotV339RP4j^lJ6wkd+?cP9U~oYC=!A7v zPDe!vW=oIHL&_O;;D&?y(F?Xjp;UG&L}OchEm>yJON+s*$_oSq2C#v>#^dD>*<#n8^$IyH@TPRT!N0Z6b zBXBcMKl2fH*k*<16fG-)(ALdiKA4v98}*#R3RNaS>6(-6DihLlAF_Tv%hHYA6R~HW z%b~Hum7t0n$2p?-|hw8ByGizmb3cB~*>_V{H+k@YfRo zPZUP0?!{)C#EY}YD^G3bIlUgwHwZZ~BnnFT=jN`YUPWyrmMD_}g&8|g1x721DR zJ}$G=?8L%k4TOB=@z`BEcsd5~<<{*Edg)yYT^f@;&i_d&Xdw7$-5E-9fx4m!oH~X& z<4xQz`hdgX#^~T%ywv1~N03HY_$CD0NeU9m{ULIWLC3s0`B3~fdlzIPL%5v&Zj5S(!xQj>htwrVCsb5Ji|ugnvO4m z5UB?z1%#I^3^KZA4C@j1!`8nJqPY&ETR zoVOvV(c8q2ifmQ<7<@PObo%%*8C`&X*HUq&;bp57y7(r?SE? zB`S1N8kZRLif2|+(d;p1H=J*G&f7e=i>0JsyqJ?~1_fnRpBqU<5P2ldRJA~y{d!DU z#Gwz+2s-w?>#l^;atfrC6Vvc$mGQXl$W+$??0 z9Ct4-Hu%T3&2mhx>gBF(#NJ_wiy|co1mizb2P_42!Sh(&16EUf15$6}1En+zp12+# zl`wh7bViM=HSggs7_|B%V!~dnd!}Hm&Ih1GS@zO6o(6V(mDB7p2awWV>9SMNdI}r% zUO|;=kEiY4{^y`C{25Dz+ZD0KzD=8u{*zTZ^}vq)4gQrdlfwkwuRO?14>qNLZ!q4! z8+^oo-v6a}l&P~hK>vfFe{No=6a_h$<}SKa^>^APA0752tXm$bxJ#Q^-a z@xh&>nk6AeVPO)mm+EzyC6ZMQMA%WHrP`J`zF#;V6$m;8XY0VFb7js%}bXa$~!J{zCi9wjd7ccGfsRA8rXxu zmpuLS{Dk&};Ae4ZCOV#aIK6rzZHc)xp4DXX8*s zZ3W(&lj5dR3P${n{s5cPZdBR`B)VMdn?8RQ_QXrP`JtI_l2cOA9b}LU4jx8jaf%uc zeer_RLofQ@eKDK)l0~-q9=$$X6<`V_-;l|?oA2)Z1JVzE1(%8UE-^jt3&`?%i__2P z5~J7An)F|O{tk&v28Hy7%)mkZgvn|jKlgu3`NL<+xRGf|yg@6*?{>)cGOLs?=+jwB zSwN_#=u+c7@^?iKBA9w4`D*jabOL>)JZL%ax zN#i<4reogF!iI?L$Pwju(O~UkdMNgIk-x0m_nCz_yZc{Zgn_G40yZXW1I3f*+|IDsw^)9JJ7bG#B9S<1Z{&*lb-NBE2lISIF4q+NFhpniq9>%wegGtXHeddje$5E1Y z+l~Efv^^c{jHuH3xheCI$DNW1tQy2{A$EU&%L&NJ>+?&{Ga4wLJ-lcUw>9M+A^>5t zxZ*~vezth6QqDkRm%r6Bc3U*qO}-`I#fY^*Lvy%!sajU9VU zJrBfl`}0jG#WXLzH~@ZmS&ecN>z@zvSi88Qe2>@| zMx?Ncf;JlLIC_Bb$y43c_IGEg72fH^4FxT7)pw4Ris-SZBU_Fq`1+moE3V_nQfDoK zm3u@260wCPJqdhCseNvk#CEzL{k#bNYi;hs8vOd6|6%bP9LO8;dAeDTs5>S%bttUv zL$qRKnpTbT@hDM8NLRlQFkM*p9?tR^(QG=^>rf1Bh`rLHGiLIlM;Xl7X9SoSes!ZR zgQv9LwcZ|z`r-PH)K1!wOkIB78SI#pj&aCjC>6&19HCkpVpFcRefkkj&HW?#Zy=2W z!y-C5eTY=2K3^pnSH(u&)<|hB@0%?u4i4t&@ejjdOV}z}Q;?WQWf67_Hf=4n;7rVQ zuV=>*q>C9XjREs>ts^x}ZUF{xNS*y4_UZ>}SUpCn)dVTSSg>L>85hN8mG-^S8CgV; zla)siKJ^pGI=*)y_t0vH5=wv=j%h~yp467etI|v$9e$$fOI(Zm#w3d?JjZVAe5N?Z z=L9`;k?lG2_&V8m9TG7flK9;t$YDE9!J70_p*`{`xScKjo~<3WT-7}8gg#)GZM9lL zi+5F+wbEw^*1HnW*)BkH|92^+a&4USRb#+7R3Q+hjT32$M1S2OlmSNb6t)lr4GtWI z()~ej``e)q9y1Zs;LOnO<%<;&!PpKBZAGwQ9da5?B}AcWl&>MRr5GCyUR331 zN|QH3+Db$k3w8WgEc4%lV0QBV+2teNX;OEquNegpn@@M-~Btpk9 zxKQrqH?-1D18SF%`famY>di2d#M3?vAJfucU9$|e;ZW@FjqW114Fjzkfj^n#_ZLFv zD^BhPp!t`+&jBl{Byq(#S)zaw2fpV$){03BdSSGuk3_FFkgS+ssuSc2Vh$%fugNKL zlYY*@C%`~a_~3I)1}C&$nfO|k?3d}cyp79#d%a0JkGM}#_x3Z8sN%ng_zWekr#zn5 zkvbaoENPe2T(V=pC&!)?^~nzFOV5S5?Zqr5=h%8U>ALpMr5BFgA>X@iYxy#ly?;u{ zR4=4taBf&~0Su|4duA^`eUia)F?isg0w8{$Xr|NKHpaQlVa^F5^ueDc;wNtBcwqJ? zUUfw*uA4p%M(4MnJX%>$u%zuUP1CQ8u1zqtf4VlA+{Hf&)?Dx9?NIm@#d(DcPeodi zWkPGonXK`1;OJ(}rk5;IfK``_y=5=LKzQ8SeX4ozzgU1M*q_1DT~q75VY0d$DW^{i zTzoMYJm)mZk|kWgjPVQIEq&h%iGmZidcXwFt%OJBqh1ABS5+j!lV1H>pWCIcIR-{m zdoTvR)}7wvtRAc3BUxmWU;4GTq^vUg`ri67r#YvX?7jjir6?KQ$^@JclQ=4rKGngQ zvMTl+IhB<}I@8dsX2g{_vK1en3tQUqsWg|Vb0CbsR$39vTpB}SItl4;#PjOtV1I3W zg-OL*j&nuCuQ0&3xEU6neQmN*yMlb}Z)v+t?|B(EXjeU669m88clcBr32mQP3;uy~ zWJ)!bB1kDlu#||8&7Zn?pX{K%)cQT7VjpN@$__q)9Tia^2XdzwTd`4yMJ!#fDmp4z|fjf(~O=$3*O~jC(p;cC)Op#;Di;f}ZBDCkM zQJpj7vobs=_9(Dru**`0g)Rt%U&cTw|5A19y~ijUQqa~CA0|r2LwX&d7FdfBH+=c^V4g$A&MDr#uN*+d4^nR* z>j1cV4RHvw`|DNeNQ^?@VL3$`nB#8e!AA;Wok#db6m)%!NomslxRKTYx|51*Z;49* zA0()vA(I$9%m*RfDN|WI1Z4)A%;pE#`Dk`-~sy?n^*NcsvBA zc)00pR>>9LO{!iuNIziLmGlTwE)V7+sx(qiW-Q0*93I3(i9T^U!06~SrYvIsn(pHr zO)I0Q{GpS6%duh1AX>IMG$^lW%knV|@E-NigXPWJ5}}#a+$X zW^n$*4Y@NSfBgbdwCBCg14RnsXFZQnnG=$pmMM=CgBeCdNbiUCH6 z$oB)m3fkF^MU&f>9xKABq)4{4)@yizn;df$*NKJ zF6vPD5&GF-!U$`{sIt#70S&bbGJVh^Ize~)-MSdIq;hdNVTPK|wqAvtW@6;}A69IZ zL}f@BQOlYxOo3lwkEVk@)RBz8tZ?r)>Un5_&5g<()^=`q`%JG7F)&KyUJ&$}6Nr<4 zSwFPX^Pk34n|^ka(HjPQf1&~CwLXlRZ=3oIeILtL0&zWAIQhQ|iH`X2NMr(I5A>wB zrG5E675nb)UI`w}TD%h|w-A&TfDUKYO% zyGy##RNP!uOqSvz1@5_WMW1uQic$KcZD;FKe3vmimF)?!u`~AcvbfBFPqB)2H*b=t zlA>Tbejr_&DKbTcf!CCh#bC>JNx+rk!H;zC3QW14s9lgadhTFS2S4jVM`4d__QXZL z9$ln?6SBPT!C0ASvof&$(+F7;JbsEtQqHR%Daohy^^cq1n>P@({z9Qb@tIogz*y4} z`MdgRPAbGkAG!qdD~)A7<9GE#Em?c}3He`?M@Q;?C?d+fd*2Q?P=06iPvZxKPO&bs zPda(6cYDAbe#Ufkv$0}Z3*=D`mr?%uq0Di4mVJ38d53f5H{y62Pq4%edM&y6=C)`P zf%S7@-_KG+*cu1$A$wC6P{Dw47i$PW?;QyamV0_R2+1U>Ji!>c9ZION1^w*&#IPS! z(hPO2Dz|kP{)!U=KENIYYK>yORLfL(-64pX(Cv;3V3;A>Lgvu$UL8-hSRHatI=jk} z3!nztIvy{fQ2Qt&hT{$d?uI~eCO9Q34f!7Kr^5-N%*ay}C8Gysck@Rs+YOTU*1FJ+pO|v9cyv(Jh(Y|BU+gZAa!Mwi+Ql|t|iR^iP@ln zA>{aTTe-JY^Nc28R+c-#Q2Qdf41N0$mt@SS#Y@O%lpxZNvS2Q!Uz(8@NZBLtNTt?~ zj~d&W9hvPmD9|BHVKGelih!2XrYIpbmN802;M4#mp1>#*C7L@$X_UP@V>kz#9V91B0-O6xpTbKjp57iC z_7&}8kU1<~n)K+-$SvDB#f|k&F>m9@>uH#=^76@&2fTm7#L3*|3Jh`Rk{Do$DO;RG z5ihWsJ98M$2(~w{R9Kq}-haBCU>O+T^oa{1lWurx7)-FHO(t+ia-Cdr&!J%bhiab; zGtgGez&aaOC(E0#@GnnxD``l6<)UrdGETriXzxZwSU0HcCDfS_a-})@ zv>QQ`cK?b^IROZrhvDnlY#DBQP>a27Hp6-7J*WVU#O$V9e?*ot?uYoK0;9C7I(_RA z;#aXsyB`>{dGsZR_2^M_{i#pWv2ZTW5`_rlg5tm=vwZ{vWk{rHU>|$qptC|}0i#xt zv_>qsI$HGUN%S=!@N?9)PGxW#JJ;-l~akZ8-cl;70 z;2yoW-2)^Q%5Yil9x6On#f96=HUT9<{a6*E^xg@!It8r@rloor%Umnqk1h?2Yg zm9+PsYuTh(!qW)Lz3cp;<@-eBcy_ojg?EfLWMp%7Q~8*8U|!Ncv4Q_d;EHUZl|D&pX`Mzi-PBAa0w){PoJo6^?t2>cHRZVBnjrvC8%vT>!< zY|ZXWuff=F8h(|%!sqv2yz90x?)99zD*q_818AyGFCMQw-X87NTdvh`(&&68OvgS| z1Q~;0nBG6oCKXS1x*ARiU(!%&od!r;T{|rQF8U1ajit1zJ65%qll*l@|2FL*0zbdJ z^DMHwFx%ZV2<+&y6NeLZ-ph3>-H3PPKT3vI8mcBUc@6I!>AlM%xM5xs?{5z#j2zz@ z+Q(nanx)DT{_UtL@BcT5n!Sg@|2h(oY#D{m zoRjdki1pC^i${fIP|r_|(Ga@<_shlF&74}{hVl0FYjt-12tl#t`7)no!xuNj;_WAP z;y(uq`{y9K?E}o&j7hgO3AE8w040m2h3RaEPa>}ak(_Ljk#=X&17E^@mK1Fqx$Ty+ z%#}<+TU(qPls;!uHC@@isPyh#C`t0jC*TKehT&WZYuwyyJjtJOAq2fm+>sUXlW~|g z&ar|QSX{euMhqa*uoRqr&A7Q`wT&{^cdV*jo%Vx|70#Rx`nBYC&Os~r+hVk6c8kX& z2Rv@)Ooi~EOzQY}|LI`&EsOHP+k&vUd8*-ITQePGJXN~f27^i${mMGX>mtC~du;qq z#I;8SIxs$w1=~p^yM?*~`G4Vo96Fcn5tZq$6Eb80#jr~QPRcNR1gF#Mdk3v`|QdU zI%7vCPn&wy{!cIwS6i+61oeN|-L~lbJd86ZE2jtWS=nRU$fdFu znqzT#37kRTE|JOE;(2GKUW?3<70m=k?Gclh_;+8nr;eQ$b>Exd=mHIa({WqYe80YR z&iEzEK6sgtE$9lB^S46b|GNIbY=KfzUjsxX$}$ByyqZi#N*fy-?FSqU$6lpd@(rSJ z+1c&;P8AK~-KHl}0<69sJwQe%NHEHTE(~!to)oUMI z1V4|&1Ys232pqKtfC}T40gG32NT%y6Uxi0Tmu^>_6|1d7u);3Zhbqt*FkMrZzuBRb zQY_L)OY(}Z0cE)7z;zI&73tFPF@7-zrtz~y_8+<{0;!+erqu9 zR$*auA{Nl~`W}dF@%YK#ozU~^-OxFP-Y%LF(AYC^>U*byhHEn>cD;Qf@AT3wRD7Br z>}2sT#6!&_hT0RZC}{}Ee~VnLUYj?to#$Gl!)fgt z8ge9fc)fHTgXe$z5a)#0qc9ub{^!09Ss+Qa82RluQjT`8c7Hp1(M|CjmsZeUXp^uI zq3Z!d63OiC9hISyOaa2Qo}Nx;Gt0-dg?eL?%uei zRNKNTzEe8NE;hA7K-~Gj(R*4j|4B!{|6{#*Xu)&bB0x?FWArlfW2;cMp}63grw2#` zhw_nRiuDqNBBLgh&P=F-J7gb}mIV;Ea(dY{Ii|H_Cg7hMA(AY)L?ETFiC(Qn`rO2! zE@k=GO2y6J#u}AFkckZ%`0uC?I4!J~?HzA#46zFt4OU>xXsS+xGd{TAk{AwVAttAd zJQgK}O6k`u)!ayoU0^R5@hmx_Cy5SmilZ~aCw6W{QOUbRNRWC8@s;YqvC zb0IgTb0})^uD~gP}x`5W!ffBsyaoAJw(QZ`7Ok9NIWz{>q8mw5nP+_pm zO7`5b%fQ8%19ixaoMcvVLD3#Ju1wwo;}?j)BlqjhkLdZvi9|HJ`kpw2m?(mShu9b^ zKPLAP)ERlSx&lF7%aS^8e*HsFhGX0^lTXQZqci+yebg>E?HfD+wUc4j0-kTx3(OAy zs#s^U?^Fv}#t$4Knbaj>-hQDAu7FMYJ9U; zn7PT)YHrSWh6xIP)EkIpuF1~NF>#oicEt^Yrj4MZ=2evJ;ljJy!wi>8iudXWw&akL zq8I(I7Z=uKxxS|Fa&jei!l>T|!y!O?DmV`}o%v1OV8hS+f52%BIbxQU-==^B19Qc_ z!;evUM|YSfrOY*_K?&Fy*Xf1jvKahq!J!HQ)ckf_mL=)8Y7epN$Fs%5p1!mQ=d)=1 z>0~ zQOI`OM6$4b$ST2En4d@c>;`{5Fi_n!erv+Fx)N*wdC}BfH_0ktjcoBc{&#LNTfqnii@}EcG z1jfCQBk7c$+>O}C-C0e_@U2wL{tQL*59EhlSMOi`R$e%_{rWns7qn0eouALTC$$0$ zYL`yr!FaNrFRx4w03T!V?G$%crOR7ClsFlZijeYVP7wb%CCyiL>}N#TaJQ5}3+__E|&Qm@1)9us0p zum+4@;cpJL#wgit2y9NZ?O|12QJ;Jm$ZF40C0*>Fy4&t~x_84ei+Mn<|35jj2s+0W z6A|y$Htd(IxbgH#vL_1yNg+bLDn>WQ{_RHi=FGPET*%y#(D8&Hz#q;e94`$S&mqY6 z?AbhvIU7IJ`uo1^gwm?D9HL|v`f)H?WM-$M0-%nuWqS%A9TSV$+eVXv7eCDawO-*d3I#CeVIU;rYKI zuDv8G`;`p7P4A)~{{wD~X?4E)Xy~+XRHWFGTiR94H@ZYWav++BqB=uJ%DItGI>P>L z5)K9nU1S)yt#{Mu$$Idyms>PG9}xG1kGW|DjY6og;>$B z%?n0y9D{!z9rNh?=68-gdG0%TIEZ&v;Qi(p3+z0!JTyJ1-G6J)6|{VDM^?cgg>rJ$ z2oYUu2YK&OQ{8wWDDA&9abv$OIe$hP?D)&8esNl|0hxJSZFUfnZ^w~Zpr^n zEo~|7UVH7F^v~pV1^*Kb6JkD9729Fqn_L|JTZAMF=T*{@xvZf%%FgRI`mxXif2voR z#6tXuSQvwE>=?hEE}_^yro2;X{t$)iUMklKPAzC68!nn;(3f+@|kdV7caq+#`y zT)C*{4#h^=eaqn9qZI?;>Ka(F_01iIhwI{eyRyL^z1Rwe-IAG=Qk11nQwF@BU!kLM z`fDb?5!+tNPtIm5bURH5G=e&KQa)cTNR;~YPi4K6l5-mkbR9V4@p!4=iKexUZnQUcRJIcoJ1irSm2ie5nZIQ!*1@#3s(mc z7IZqA|9lF|CsE+dMF06D{`Kxz-jp7h>;*++a;k6@Qti*d=;kovDG_)78Yr*6jhK*I z9i{ZlsPRt;3~!R-rfI%mdkH8ae3(TzftL~SY}8TGusZ9{;u{KBt12~#f>!@~%) zY%Fvd(GCiy0pf=@m4(Kk25rL?sG4q=<` zLm0P$-D7`PzRbM?Oq7YS27c7FtG8kmj1~Yfwh$mk0x#2NP;5d8<;T2lSP33AJon8g zS5CcGW8A$NfNxvNa+Zfmu!Gjh%%G;jRs^42oz}=KfK6*R^Gi=v3zCU5*c0%?oT^=97zpcQLa) zJCg=wDd%Ji4M`zTt3ZD}iK#v0x!a^Wx*|@hKeLl&Q=~=ES6766b|wik8?x;Y>~!t-n{mx%WQGy%_T!Ll)~bCWn@b0kQ{ zm7}D^y#nCle0+AVJOFL*45O!fCbwo(+g?CVFp}vjbIBA#*Yl53#>0&QM=QXRqS(pC zrz_&1-Fq$_Vbdz8snoo2?2UasfZmrsH48i~<$pFh#>Df4f_$&_Z)g7Pwlg z`#3@k`i#|OFvq_%CT2IaPzjty?-bHaUc5)IkmnrLmEV3hI%>W-4qk7>LK)~|33mO= zng`oV28`tYlYvgwafL*}_={&|b!%H;T4=B*dJ>G#`RT`_CdK zHg$G0&~Dq`%bQ9Qj0vXsSsOt~R;I%ihOt%SR`Ep^{Xfu!6gM9bPmkv&EK&8X=?p9P zewSw7HI^fFM;*qlIaTnlJDUz>_yy0O6)1m3xVPyb%0@O6f?G@Z;&%jS%~tpq-?7f{ zf;7)LuN3~-^hbkBxqhxHcQ?e#1M!k4&CV8sTSaZU zLyMunWS;sI8T_gylSPr?7#%ijHW$UF+q(nX$ZODkWz6VV`$O=fa=V`ohp9-U|1=`x=S zw`6hEvwIIqV;9s~6#EFME^>%5O41f8MnX&FmedoplrQd;R=(c(avT4}0(?9?ydtF` zTm|^Lv4eRQ-WulOZgjBTt;X#wcP^G!Pb~36Z+SRZM?*`(7gvAE{A397W#!0Lo8Hs9tlj{VCBb>&$obqD1&qU;O~G}M>ljtVHN&UlOwzh*#vL~^R0TH+ z9QHaUNW%GDK+3@L)M&|hze?Hc-39fVFF7x2An#Q71HX1Be%*d5^J5^({yB3nN?m+o zGyaLmkA1Pd?(c5DgN zu7~jrc>a3I$j~?R@vFQK&do^uDR`4u3#BPdQCO0f?nCOeCw^_$p0&>%ELW0RL~T}= z@Y=Aw=s-v=pV?+f9%S*ifwv$gR`JTCq0~|XM51#kA&0N;ol|;>h%^^B&OjM+I|N}v z`4~g(iO*8eFs0C|BRc@XiB!MrpHv`2Xy#*EB);NnE=zO%9_(e{Sb^|F|dq+g^dvaqzU-&26WL;MoN+xpzqOf=`uA&hW>S`J@3UJrUw)oe_b z53+pybBI@yd4=Zs`OtG~L>f)5I(A-07e`3K!?)h4!;=i~NwZro0%u(8l4-Rf9d5$_i2 zPDg(*=40ju3dO^jTlql+v@cx#_yRxx1birbxS=Odm$98*@8HS1BfHvZ8e!e%+8sLW zd3vP}Pbfsn4o=7E`SVNpD7F2$k=a0FtIT_Mm3MXcXTxs5HnIQrvE|3EcU6(Ni!VYP zqCi(HsC!$Z5v!;-#A-hK)Q($4(T#(k;^OFwc)SF`?efEOTfacpJG%tUU}W3Xxl$eu zm*eQE+A3>qORI#oesS)@v8(vc5f z#F_(~Sx0D&5VYoKN42v}@~Wt^52^rLCyiIaxMQSXmDDGc8mi0rsRVA#smpN%Jz~ zU83;Kbn^Dc(oT@gD9hK~}rK_cZSHCDs<5mbdD2S;S9kYzga z9XAnbX_voQd9RO|#ND@$BqQ)syn&|kr<RObdAiEb@0-n*>b9i5I<fR;-~?2NUn3A@LIWV zv-^xxTW`Ndq-Cfq?hJkJ|aGp z+h=c5R5xol9~CSrty+j}o=0+3;0 zuZnq@!aDMQETTehG-TWX(kJ+x@VRB)+m~0#Jx?nC9lin`bE+!}ZtYh#h~zFe`xf^p zljdym;|LVinpIyq0v;SLhf~fMH(#L(aPy|yOXca<##+$>x0np;km7w>_bYImy!W&> zE=TB@Rl=emM%@Clmq0(LtI8xb%1M8_nPMxVJtvJyV_R)BAsT_dXvn42Xi#29x zYe?ZYj^g}>xs75+Y0$`n#k@Ip?YOu8oUIwJ{^)`)LDN~J(b@%~#jy^EXA1p;dqItU zmorfvH^qMzSM4lJ1!I^+!REYqkeJf8U+`0J-TB$+{{u}LNa6At#G9Ad(zIH%NgDendR#zqy%sPT<^Oo_jY!m3YQZz zExp&a?7L$#4v(P4WZC$!AUF_&E>QBg?Y??o@m1GE2Mw3b!hKH`@1J}wE%V2N&8PM>m*xndu*525#k^Y z>hIV(sj;qkYB{)Zuv-clOue0U-0(Ei>4;bj=_Qf`jxaG%mf2=Rr+7f90x(1+CG={8 z{c*dUQNHF;E~SkAvC%&_D$UTAb}h;ZllzFy-Y@K}h;YA}Tom8Z_2@4YDI|(^hA??c z{yXdY)rr!Bpb4f$kP;j&zC_>#i}j16_z1n}YoPtF3-(&uPK?Mc;gIxP`k-AI*=|8+ zXVgJlJQ|`u%+DH^<#cL^aS=w&^aetL%)Xf}`{1e$00tlo^6Ss`S~BGv-ewBnc?tWA z(00g{AL6St#=LHK^rTKAzGHtRTRe7lki;CFmc2?4sg1@)mv^%)O_APhZ?SIF$GhI> zz2(UgLd;t_j~!m*;=99-n?19<{D$p zIpR6cy#&IPCJ*qrE-F`zVD7qEyrj*me+_S!{fp^EivJa-wMoib&Y!Tr-zQ(~!czo5 zqaNn-_K^D>6R6io=^G@ftD5O+X3eH!Xl*G*)r8KZTzLhDLbo|KL$3K;;>4m#BP|;>3vKl=^re zdb#yKV0P^}Nc z^^WD@_XtsH-IZ+1>VSdqx3gMu290P90#`;Y9Apj9&~Ewd@^`ZCaUI>XT(8e^jg(}U z3VU5Hc&?6?I`f7<9}0}Gn3+RzT77Z*KGLDLFaE0LV~h2XGNC%nr1@3`a$FW3jmH7% z)Wysig6ojWwB3}x@59N41tMs*Giu0d$EBUR+}GO<7m-wsMTNh zRDaaXj1*NWs6*M?t<5ET58W6nBWed!|Bhkqdbc+l-NJL=_|@T1QY<)t;`TN!%_%S7 z4@DQaS`Bqv%T{&PXHCnPhKG4f&`W}O=La;PjjLLKIk%%q6a_gskdCMlg?NC-W03o& z>u-;sPuw;O>6R@eNWnK~9?*~C%9mD-S_cDW@QmP^{SxL@x>-bdnWSitOABt0oQ;#8 zc~{FkmrNLrzcz>2fOExQ!s80kFk3VfUg@e}&o8R43PhT0&>J}|;g?FOH~UOo-epN6>gYLw0KN%y5bYR0&pv ze!f_GoY>ZZz@ZP_H<==OWddJODZa^;le2S2-)_*?(DsSuSaG7C^&^oBKAZw*{rmgY zarcuYMMRddjoZd~znsI0ARoFLs)BccrRk>NVOh26Fx*}Ij-<@C{*8^Gwb?ELg>oPN zKwzMo3o})`#hw1kN>!Y*`iyz^VT&PA8ya@VKU$C9o7h1Rd?b*3`OFNcvfnbxN^$-T- zp})Ygj+qp8u1V)}Mic*$NW%p!AjKCeo~ut7K2H96mySA;5{7PFM?G#a;y~7bfk!B2 zd5QJ>+XzRJMW9Q-O%qW2Y!|i!FG&zID-+)0i$I{?>&z5TGmJ=*GwX_l+1u6~gv#I1 zf}y1!*C!r1XQ%uOR&ggOC0euG7a7aI-d(7)j12g5J$poMX<>Gtheug*vE5OLal03` z(vV4?-JQ`DG_;~quF4$>)}53gqMIUIa;FQ72NGV{V5y@8BkK3ah>w6gBZVCNMm zO){}j2th%lF@@klT@cqg=dfas?XaP4a*TOepkHAd)pz%g&#KTap{}SsJ9dtYGD1`0 z4={<<3qgvY{(zHvUnQpA7|t1ME`5i*C@x;l4A3Iw`XN4MHj(wW%A3>c6thRRhxs(a z`Y(um{S#epoemydVku?Q#RRbU{ELdzQ=1m~GjOC$z2$%?Vc0dlBVLyUn@?B-Q9|i? z=a=VmX78-bq52RH&#dOYsj$#y<4%wF;^Q6+A)l(J1$;Ne)DvC)co&8okn*MW(R8JL z^Go-GSBwRE$hVLXR}W*Yv)2tj$5w2gxo5wVL{hunb-4p{5c{sQxC#l`OmX3ypsi%? zNMtfipEj#!+vfjKn_+=lF+*9<^WQd*Ks_YIqVzf)6>X&t!zr6)`QdINKb2=XNWf@W zU{>y5FW_K=6F6881X(os!qIgRyG8z%acmt{9UJwy=T`JADa(z2wQ*|Lk0>ogGutvF z6J?!1?o9hqJR#?_kJ}L9UJrdP&@TtY=<20CY^FFKxQs`|F%w`v{IN&)qpCm+N>=aa zHtLhl+Vf-ZH;PQd4{~W&YBLs-W&b%{ej_{m^#goL4@8OZTb<08jcq;jm`H2^QeVEL zr8NCjO<{xW1+hEjw^EP1)p{>_w!2AO5~d~CF@B{96viz-Ue}&+kB8tHJ%-QGHga zQmBQW1w_`LZK}O=AR2)3eMossI@bLFkD|S>=?)Q{u2Ihu-4C!KE>wn*?xt-Eztjr< z*qhc@0P!WYvF`f6atX5!K(sQN)X0U8HbfNtQ$Z`lD?1k-EhADU^XIgFiTK!MzNSAd zG{A2s0_W6XTpE#A@;d;vE-~-(mw@CREzs_Z7A*okD>#IQ#{R1g`_JLM_@#O4s&(7G zYrK?>rBNA=!;n%>G~RBvUni|EQr==$LN-ib`3odX=v-XPK&_`GQJlOyf{21rxc9-| zjn~wmo308)={)9``0E6Zs9jmX?dSZ7z5my>7WvStlz=%#MZY+6!$z z6+uLmIcL2kg58u*coW!bvG(YT9KN29o(BU3LY5i!Ak)13=N6=0gtBG$0^?)$*L0>! z5O0EY{k0u;6rO|xfzh#XUa{XLdO1uN+@xPk1x|=Jtvg!_YszX+x@_SWNAI)2*rOKw zmoA7V2z;wNfa53es+@rv zY5()l=l^80eYpczsx$AcO8=MdwpUgV8xoRA1W)$eIEneJa{U%_+t~AEe;$plNpFYq{=sP^ok^Qq~2Z4c$w}ZvmKl;K;tJ-7n8n?h>~rom-rNlSIJ&uPs0-5jMD z`yf03o2QJ+wJk3ah|=A6PAPiGt>0Xq!rM16R805ZviUWEYYa`etR;jh*-k~I?Ziyv z?LpOdJEHb%g82cO(tM$-a)SYcP+4>9Aza3}Okv2h)zKQ4&tSMm=e6p`_yzrJ&I*^c z;@rj1J`WhBrTzWgX3w(^m6z&Z!k|z1?Y#Z>MopQQIsEznfWGU3Peo~5p5dwRC>G~g zbH6-7xu1u(QvF8lG~#o#EyzO1)^zuGHl;=A^88Sg{9cw9fF% zPq)I&k56zvSSQ3i1u_E0deDtcfAkTKZUTnH#bjt$9iXk+cmpcA) zW2DqsIz)&Vz+uaWB?r5{XWG=^aOXT^2wpvvr0CIydui|F%CL!nVW~|eGGsG)L)|uO zFf1nf!<3_N;6RyKAhLiT8Km@_(Z&;-75JGle0*3O45pZHpusVrWQyAM+V);UB1I32 zkAM*tV)@VRh~Zs^v2n@L6Nu3;k;x-f{*7bSBf5rsm_n0L6;zp$tCOethIy=B>RcFJ zZJ{|+<}o`W3Qai)o`%%E#3=)v(+6TQBh+Af(x5GhqO*KWm*LD|{)eSUNV6BI=tM$v zl8RVJc5r7DcD1D&&i7-IZ`a$~7x)AHJnEY*O-Uu4n!WxX!_BKNQmaQrP~z0v50l>b4t77U&2a zH_6vNcN`q?@kh?=PV4YV^5XEj;VX5HGQEme$p4BBkrEzQ^gEogIqU-6Oi`*&XYt_l@SrZ5>PdzoedUgpnB(E9f{g_i6nA zwL^V`+$+wZCac=+gXb!3#ox?AVw(mSKa$mGy<4VT7n3}2tod-ZiV@zB&Bzb733Gmb zCTZ^J?X0tsry!r@H0wtNZzi*tX4l2GOx~|ctvVz)3p`Tox5`2{M%R@I5~bYO&?>=~ zdAlF`i%r6bah2K*NAs@yk3FZ$?}X!an+9JUXm^(@AJV&|rizCRqOV7RTMf+h8{^~c zG?`wrj;L$@gZR{XDh}s5zOO6QzUpL?fJ9QvYrz`Z?8pvAR_;o5Yroq?(tV8JI>*M~ zv_p2p(MHlgi`kMgvz58Fz@ARa^)2fN9s3E!<<-E~g@oEx%tNbr2IG8c6qUesgi#Vn$# zE9YEnXG}m3u3#75v60cTS(q5WAG@F0i^8NWdDwTvp=sig=JZaD^_?4iWKvFY37y5- z&ID;12akfwl~GuKDR9@)c+H4I`%{~1|NEwylS4-AShZ{Jy9l-JDxAN`SNfE+j0Wk* zIWOG~>qLUMEKBq^XP`~-C&^7D#Zq7t>OV@#tJ71T33CY<_EwNJmv+DOg}vVy_DqY* zupRHeXR{f`%n>E3Ri|s&q?4Oi%x4|ufcV4+hKsvWPH70EZF!UO{>*nm`9N|Ppv zqP@QoHmWgVe_+wGygXNc+;jWnJKNMm!}vHW*J!`r|6H$&xOhzrx0-%Y?(*fz@xgWK zii^F$VHF1z&dzIBn*P}s9vDw-RkuP#D@|qN5ld>R1aRd(e4ksJHNg8WZB1=tn7%rW=77P z{^a_9wqbJ4z=JQ8WlAL2^*?7vMV@YAo0u92Zor$c&a9IG5(?A#dN+^DTIuu24yx$} zi<2KgHA#zKuuqFK&7&DOquF8|qKQer#D9GO%1iz>Cv(7wJd5>4MNm6`^?JBhu1J!` zB> z_|^hReyp5)fA5ERz~X!>RlI{Zm}R<%y%VALaD~d9b7V)r)8LuYgwgZ(d~+F?U`1u= zgAZTFCtY_>T%+goJ*ym609uKU($Uk*>MWSS{7RSfLmNMzkFM$kfK6`8+&xKmh@X`L z+Y3>f(){iddLC!BvY-a3#xbu};^!HrIg19?xfTjgLkhB4u|}=k7sv?PlfVw^u>Fk9 z;xP{N+t@u`PP)*RCZ}p6BNQzxOdHF5oBtRa(F9${Xz2AbvLcuHW;>C*_p|g@L`BPZ z?yF+3L|^PzBaA?XLy>-m^I9?&+K4SpZfE7;d?gFk4!R4pZUm+4{V4h=`7}|AIHED)&!Y$Km-a-yNL$aQPeExKBRQ%{ z{?Wlfy*lh)#53w9=n3+%R4jpPkA%a5D!E}_a3CC=gZE|nwSBT5 zhetURWELpq>*WG^uMP&JAJkAnAVd)58R-q5cEzaq35C{$-R>Jdt~kA`_%JsHl}d0( z&4EHXM`De&F^4Mm3&)t?^u$~_n~s`MwNLxc^H+>RvkE1)ECHX4uky^1_@>Ys`0cws zqFsOt&7_FhArr~G#XCLr9338vh17S1#<1#KS0tvFJGNvv_rs(NpBIlbnGw{0jYSBEy4uKvGd>5}a=h2SG6OARGt zZyZBAyG0FYAzqI7thL-M$u8fbWWmZ3F}2qR zs*BKfKVZ693~IIx-wWomxCEnpvg;o#UanjG`!b4elIJI?thFf*$GJM2$7DE>Go?Fe z2%PT&c18F~7#9n_S8;%P={`lCQhYx-KNxB!8C~rFo1rvD)-dhaj1-<6QGLe;YWIvP zkx^nmOUlh?JfXmw4LgN*(NR6jQ>=+#ZPkR?o}hnyTATR_y_3h(BvO12drnSV{Fn;v zU*Dh<@Hk&es)=m~!Jsj#cZ6HnlwJV|Mra=VgY-ma^)4qe$l2maN%af>^h=L*aP!7g zdMO8JT{#lM33LXoyx(HLr*^6HVxZW{fbA9|BrkrjNyyrRGH*1pD0p(ri}4 z9LFY|QK{l1ZOkod50jSzDPZxip%E6Hqu+NtxhsY-==5-!1y}3RFU8btP#KGnZsYTWWNz2Ew5?DihpCu2$1q=yYTx-;ub)_+t!o+T=?EV|a9TCq z-~2nb-f6`9Kccl3!Wt6&cYQy2z1T9~Gb4JYPAO$X$z13Xe~%Nl<-Vdj-~)RZ|@%Uaf04Aq&d^pg@!d_d`-ou1!O1>dpGaJBisboxGj$7DwZE@}3NbE(pUKs)OD2h8f5qHZhMAtn>wG z1Kn95tHY93K?kalIIh%TOF!>(t>}9GcY>9vbfD{47_f>Bu-+SD#z;1S#3C(1`gGw#dQ;>DDdhXoBY}FYfotTxi zYnsKa)Hc2mv!2vDpFd<=bsodMz%BGj{cjt;acTC-N7kh`qnyh=R&sSHI#FwY&nJi`dq&%o_qhYSR$d7Ms6y!OPDmn3 zv{x2pAzGE;H_de8zJH-adw)D7*kmNq+1;Kv0V2xN>8YQAjM2}>Lj{P|T!|4ww)1n1 zu>Zwo)a$<_jkL&WMG&Y6dO~>fJy#doG${fcCbaM$U9G*7xuXJXyH$kuIp8&Tob=}) zwA>qAs_Z?;NDLR%Jfd36JXbivTGU%(l@pl!viRs+4%-rRta?DRVW$LqekNU?Bi!yX z*4F>cU^S=cTQw1A#s!2}QJ)P%5Ln5i3>VS4RA{y#47<`Jm7muv7c68B$8b)3B;iQ) z7p`#zFgi%5o%WAck7jI_fQpm z@}r&I&%fKQt$E7J45XlSlh5>#wufPd)x55}x!T;w-?4e0FQ#MG>wHDhMhU0h)*N!t zVst2L86-QM*1JHazI#Hv04?j$c$(mE?YO-N~;bs(HG) z8kNW55fwdZF8Z{rf?qIEqhwB6+`arALV>ExiVMoOj*6+rx}Tjrc)PT$HvR%J%7(ea z@%eZDZlv%i%D&w6<&ncjO9@wma+Diu)kdfKT(nplgC{^|xNy-IOiVa1*CC=ls(YAh zCiZaue&$Fn8~Q(16dIbmtS$uDefCC3rbYKsvPyBa#tQrbJO?))rea@}zlAnCU+A=1 zsC*AP10H?=dF_y+`(N+3?_U19OvRK_eg_QsHK2HfDFK^KcU=y+`9jq;E(%RwisXJx z{U+1&Y7pB>D~K(5PqzO0Q}!QQ1-z2WO5e1;b_h$SZ)xdHNr zLqgVTbGT@8sRW##5Ss_2&YxP~u^YkNq2IN~`rDWHRywc`XeDrz>EZQIFn2hA5is&t z7m<*uA7Pz=?`CIb=OVn{o$Sl(BZ=C`d{)oPdTsX2PvC9?cVYA~+JJCaCQpE^36kC&xXy6)4U z{Kl9-C@Woe4}MCAHXIfU{dv*^1R6XJMS=eQUh0)@Z$k#~HdHt7*DoL?q7gc@=kfo%tQ_zE6CIDbCi&QT!uP1H-A`YJxb+P z--sMr9rwTZmjU%M8KV! zcEf>dLu+t>^&s@O(05ie6jaH72Z!3E=dUg|mmgpR-8%tp6%kR_TAtFc3kiV3gYmoWwKs{*F2*EB z&(f03IZF2k&u{$6&p(fEoffCS^dA~PRfc5eWM#yBr3ufvZ;~d7%t;jOA77HrpQgD) zK+yYqjFa~2R6L5F9S}8W0-Djudn1m->Wi;xcR%QtQ-hh3@#>ZFYdA``BZ1nCm^CEXVv;#fN{!r2?G%lDL@ zwJ2pUW^De!fEglV+2a%j1;@(|gXsb#4>;f9u(Zcaic7+|x=T#Bv*@CpAn3Zn*??pS zhfEy2;}ZBLa(BJ>3o)d)Sfjz|!uXQc4;V~Wky5Pm!a3wnx%>6njJ2R*IEX@sKs2A8 zpToAhl+< zh{))x3aeR$PgeNBg}^SUU55|(shoULpw+uT-}Krh|H37imBfy4l+)a?-!#c=H(a9_ z+H4LTyKrf|{fW0t`>K+0l^fNUH<9>)UuS)g2v~pXuuo6nE}3=d7SYnF%Wki1yGpbD z?2RmuzKJ3T$vh<&RHLP*2m5;(-(3=jeeV?Da@fawdV-WnyTJs3;NBzF%WG&X*Kxj# z9kggW_1g4qtUeTQigTj_8V;_U(dBIp@qZb|No1&vcndYuJ#tXrS9j9U~9LxQ^0Yu4j@p)HouY3@N%lJDG3P?P@I1ne3Fj!Qy zEBO@GZRp0XlR+lavN->PiCcO}Hs0l`m}T1lyps|$aGSc)^T<#_h68u%vp*VYWBd6Ol^0F+S$YC-Wtk>npTn38gZ-fWpU6jF7)Y~-eitWdd z2@a9cl>>gEmX^7CdTcJHg_`VmT^KU2*h&!M0MA&l%%WRKW$j_Y=U*x+9pJsvWj$o? z;)v&Ws|P$(zDhj^=ziKWQ`eIGy1}Q-PV+RNa5c6C6DN2}erYd@Zrr<^FK_yD>na<0 zW+deg+*+30l-Ora5#8urJC`PZc6Z?Ly5A8Qynn_~@FWz;zhfr4XJN5~b8^|Pwj3aQ zs@WuQ-{SBU-5}oDj@&6+{L4*rN^lPq6}3BDhN`K%*C}w)f%D-G%w0`By9a<*w*^HH zIdxUn5C1Vkjy8${yTP8)Ts9B5oT!AZ;@?g));H#^;#r;cNuRD#t=FG-7(Nx7-mo2$ zMowVxJ}&G$Tx=0~-r1taw!{byjDLb#S_kI|)(O|q5#dO->OsTC>g!~Gb)9v&B+o-; z^|PXkePMAn?O6m=`a%I1@62s68!EMs#+sW${lT9qOp2>kC#gjF>sc~UpX@no9iu z^a-1v$gj3_CksfKkZTxw`y|zg6mbA66Gg+ynp&TUQsPlY#;P2hCeyi;1UIJJ&G;$u z)`~hNEd@-E)s8W_G~|BEy}QB=Cs(~oQ0K>>G=r`84G${IT}p3sVNkAU59)8P3CaoMtD}b zzAe!lE+>A^tI#&S!^)5r(xxR0CegrN$|e@YB5h<84Ywzv?l&ujtqzzQAD8-r!~q}B zg|#2KqaZ2X9RX4=>M>{^>XImc+cBq6LRXGqq&3Gb@9Xs=Qw9F~;g8FCN{`Sw%-j5m z))bRiWg`og{DrSO0|z&l;vs?Tug+R;zGhV?a>6-1X2(sz_0TEO>)f6R(7w$?6L=+d zN;odC_i9j8+HA=R(=4wY#oyWBNqq0v8@m455+3;tJ-Dp1p zEdE-^g(N1_&c>vMvaC9SsiOizgzTvSV4kWz#$f|rHP-!G+ zWQSz;%oY{W_4y}OUZtf6J`Vz=;T<_PpAKw0fE_0larm2#(ag6@YhMpYDVTu3G!L!s zeiiub8HoWzSz|EU&jygO$Ef~)2`4zWetwt)4)DyZF3{pw`)KC|fFnuw_j|8-@*nlU-qO7z zJF|?X`YUu^Yl*S~9qp3Fj0|89{vS!W?v#I~Zsk?eYC~#?Pk73SLZ>Iw-KSEiG6x!& zpSG)CZQK|IU#zChz$u3OIwFQAe1&Vxi{@N`G6@*xT6%h?a7Q^3&iKRQkmF;1Yo79)~?22ispOv*cO7-{jA)blZ+4tbt9`Y zKgi`9DEz^^pS&LK!ID)$Q=h_MnSPsU`cb&w391}SC|Af=!Z2zHS&qyv-dt9&9_NF3 zEoG<0aYW_QMPuE3+4YuEx=Mw?h1n;ZNz~7C0#ariIczAQdQVn*r*>Nv`ZLcNg5aou{Yt>)ZMAstWho@@*cmx7qnDM^BW7Ug}b+DG?@Q--LwVt2T!k4gEdHLk{6F zbEE5u!AxnolJY7)VfhkF)q$zX=heAr;Rg~Uw6Go!OPLx@NWEbBr`b@LL4`UBz)6Z4pP z3LENLY153J8iPZk9(+$p_=TIZI}&|Z~l~cBU-P>aj6guZ6z92a-QS*rVdf>bJ|EDPhkbSAF1i z`0}R@UEG<9ppTa1J8}3%hp0%^b3_Copr#Ky`XI?;$I-It%E;KBUWGP6hZ%0yakti- zgoepB|I7vCn3u}JrJFO-2Nrxi1gO+PGPk!v9g33m7t>Hf%RxsXhdFx+#;UUa;-d4h zL939RJZHs))=F1N0yCR|sn|09z{2-H!}J_L3xjvqJ@$oQ z$~Rzlmo%K6;|G6@&PBBxum$ju0;g|RxiipT`+*BlROD0L-ZvOz0DN%=SkPs-ivo;! z@Udd4J-VjDmZ+)zJCP=L+motF zlB_}~-!HF}d)HhW0BbXalF*QH%&LFx8nQ2*2ssQ0Cx5|+q>3*ud`y(~aEx-E|S#4s5h3!j%4h6|- zb<|T&w4jk!QNG*Q3KGFB1O)iYAL}=HEeW6A`rTpS^DEt_6$x4Id^$1q{p9p&HOlIE zRjUxFX)buSRb2A72ynnYqG{0{%xzD&ag0i_%R!g0g8eY;AdNIS4|mw9Q_opw)z^x; zI|<#k(%zA0htCAV;?g0-JLv4|vk`-n3Uck1=#kQ|peT5Dsy%OM4*A^C724m4Jho{u zZ%s*-NHP4qo3gCSIWinMb%NCcj^?=|)1NaMpgOqvsop%Nh~{ zOc!4|aNvoqH;7ilmXwmi^?6kHPwu#qVaQ!9`e@yYj*TCgNlRGVAq+}bYTPM7EOjb1 z=vd?)sRMniC2EZOr4>iJNh9SsN7CoUc&hW{0yURG;e1hOlk`5}tRD3}_jpVvPKw>4 z*x!<#97g5Ags$2|3BqC(m%$*dC<4(oSsVrDGs;L=t@U`uy9q{PCP>J&B?8V2xAVla z`g*&urbQK@%~TDo^*xjItBNLo+eOrTN^1t0yxy+y#cJ`Aw0rfz(3R%jw=S5vT?y9mFJ46zkw9a_u#yeMI^6_F@WhJ-<+kOUXG*){5-DvF&nTHwOf)euj zf5JcIC^uT5{`AU#wi^R+PJZg7p_93 z{EpmpS5VV7oHCut^T(USR`aY2-;mN%FqPJgHO@6;7!i{(R?t47cyG3BfrQHc zVfc@%mcg%H72>%K{BAyG)HM^;ULHC|rZhevd!$80_Ifz{^e^J#tcg)#QJ$>M49E1A zf*ThamqMNaN!X@#+zgjprKMJmFsm}TAuBWhv-#L9ejf*e{hlYhpU4B8H{W7i72nQ* zVVTs6JtZWxUu^<{Vwmoill|_7n|!yOzzW_Y`ao^*$*9*^8`3Bj=WQX^TDyHmtz{!} zCLVBvNMGXvs;U%3Bfv3Gy5H-4WAIhL9YX}2Hygb3kwG*U!_FDPOJmZ61b^7=3x z2ObfGGHt1SoaahSHj~muG8mNHIH`sGNDj{JUQ!1s#E-5yi3o6v@E(wykHZ}+8Q09; zUPu%ZDZ>(Mx29eu3b*^kKR_UzU%qqL*Plciex&Bc3MVMt6sl(smnH>BM*z??*9C^{ zT+7i9&33bzbr<3c|Iq%sYbVFw zP<3^B(N?!U)0+{ciDEGPd-UP9#n9c&>=(*Fsw6HqdD`A_FM8{=6rhsk4`g79W^<&G zrtT+egU-&V;QnQqPu$rOIqEVYVn8~@rvK<$H(-@ z&S9tEb0jl!?5@)pb7{)R;5RE~&u+SslQBxOL|DO~446wM-MK^|Th&L6QYy;aO{PLw zCLIqSi_}qL_BEbu*gSzv_~#wpy;c?d!xbTsHLhMbk!oih*(xbTbxVZ5`D)x$?JBmX zb}SYnK|y{9ZkDuRLHf~N{oYoYa!}!NXDYk{mmFbon<-iriT~(sJ%W){K!?V0)WXK;+IIos=6e}f z1(0Mc%3ya_i&eii zSZ<$Eu4+F-6DS$(KhL#T(7|7&-%9?+PuIi~>=Bk$bBiMq=*+@?c2SxR)->+i6+VokaqFDki1VDb^2x<*TJFIx^2s zOp6gp;Cg_hqoMSPYW&cHQGVByG5MW8#`uUYEsu|iRRWXcQ=H`ckW%hSDUZ7FK4M~F zW8k|7^HSyETguOx!<{{Q`Sm}U@?+(3BQm4nkE;%959gx4fm&^D>grE4L`L@z4>da` zV?&cL`JzvJ%(yd-o%H}b zP?zhUa%oj*67^2`n{A$I*Fo~u>7wcJ*(D2r&seCZHX*&1E1KHo=$aDllhbpM=}^?1D@t!~ z?g7>1NB+XbnEk5dpUDbXAHc*yKNYv@4TOv(NEroW2Kw=~eK9OLprH$nM6RC)G`9LU zL9yMcNxZNo`_+U?l8cf2HI^H_rxdv(8j-KIO}_zPdr|u3rFt03K(H9%|Bgz@fqjd%dHdOf?^_eR{tV5e<1nSk+bl%-{^_kx z=;qXWB^5Np9p){Ih6{fl-#6~Pe+|QXz1~FkeTdn-!y|It3Ys))as&~FrRQA3t^Afd zYkbr5B-{Bb0rFZ1Hs;#YEJt`71=w!nIag8b$<}AAMIx5uU}m@+r#gV&lp|DWor zf2vLOP9g5TTw326#%S9U$y{8}z1#YDT(;QNd*~tkIuPHg*kAjdCuFTAXlj1GZhfTB zZ9Kb}ZU`N*prpj`DiiAT(tMKg9LUv-+r;EoGnE^DZ3$9MiB@BZW>!eD*Mb;TvL~Y; z+sHdnmV)uD1HXA|4Ky?p9n0>Em>G*DF3+5cn6jhw`9K*^ByT-wP|k?k?O5J-^c@sK zIa#N{(qGLtZeE0kvbpvEHwhQJOB9(jrzQp+GXLUu}#iDHi2iCdyI#c_(I@MNN0pSe&cPu4CfyFHz%Se#DgdInd{%~6J3lnAmfo~mH{zN zhF-3BTGSjF{!e6qqxYc&FvA2u?I*+g$v#|o3~n<2^_HNrRigj)ZvXAl?<49+5^gD@ zXU~5{r`p%*jyObQZ582dQimNpV{p}HV~^a5nmyo-PLhmdy^XMP*{qc!cKIADYGm{S zynKQ8vl{ida^&XyZZKzvg~R>h@p0q1F3!IjbAn&1Z@o=u zZD&q9)Dn&NYT<_>P2TT1+5ms7N~vcJre0S)@LEp!`E!5@g*!qjz8a4sUokLaV6L@y za{JuP7!4t_Tu&zMm|OC?#fkyJ1kYTRBOt5s2{E!&NXj#yr`YURZ{)|eRAl?CoZE^W zp-n1_m>O$D7F;RjgRWvsLPE#cfG7L)wA1@A3$Mz}b3I6ahljnbW z?~5l{#O{rLwy>uoG+5!=C6rRwD8QwnZ-m^dv5{raD3R|D+@#!xo$~zhE+vUgF!-I& z7}E!Zj0-nP$?Sj@z2a^0k(C4dDOW5LG|oW8q99aZzj|+8KErzc$dGcaB@Hn&1)!y}jBYCz^I6>+u+sM}s`Z9@JGzxD zN+RpbTHcRYxTf{jIjTc@thkqgkE@lTlshtvG%u-sbsZLHezbLxw^ zXBp#&q8#-d%xKnF+UW=s%oKw6xtw_w_sUvBr7h533f_mPk%xxs3({i2rWyB}M97Ak z%ALt_FO#YT*$uRg3llWlGmhwH2Z6w{KjE3TUu^7*SO%AcL?pi4ibmWZr}m~5{-NoT zY?L8&e3I%#Ir+=Wne0F?$;<=CV!N-t-F;)@T4&sDHB86*Os90FfUc4#@Bc>>CaQ%a zGyiTTf^DKYlSD+6;@cy>rdKHQq06=ua*r`s$jGEpUj@RCWCN()9d5JctWqBx9W&|} zhC{Yth|cLm*jne!oxEwGXiOp@c74ZshdwcjQzVsR-Vfh?5UKr;hU|QWz(1WjOB1Ss zsHNkc#0Y1Hf~U15H^Y$>E!!$=F4bP>>hU*8fhV$4>PPFKPMahX102=I>;${?{- zA?dP$glay7(t-ghQ=42XWhkdT1y8cBjEaB6AFDk^R-)5%y=_VHoP89A4-h<;pZ$(G zp^}dxxny~jM<2>=T~jBA#yh^`T37rNB=A1(!+h(N10i2Pe;L^9rkAuWQ64cVk?zki zEO$jyK`0K9?ax{Lt0qIZ6@;o~xc7V}BcQGU$)Sy^y%7a0y?UsjiuJn;RIXy3({rL* zwgh-H_4NjM3PN)yq<_8gsSXF2FzIwy%vC-q3{SHMsRB7dnI~5^b7vEo&g18KSsa;& z2P1{bcsxLaqbCKTCuc{Fqc-X8kGRB_@4h)jHb}(3os9bDU)GQ;>W_|=vyj)RR$Z>c zo#PXagaWongP~{Vb$>qA{ybUoJsx%CXDPvueVRd4OI74OcSHdmb1zM8%`$zTsX1*v zi-)zQ)|-eR8)XkW%X&G8izr8_b1=ti^{K6m$2w6U-y_9X(Pk$7Ui>7 z^27Jm_}{uj$L+?|tM*~TGdPozZu{+HuBI7y*0HeLFh>iLY}{*H5U3@T?|XqZPqjFC zQL$!%|0eNVg;)=A<(*YolLa1+X?D)ST>}yL(wMzC(sxw`;(ksqDbGnFCbR33#|BcJ zJQxX6((JI(GJ(?v3T%66VZ7TQk}&4XB2C^TVh@rkHarhq{;FQ37%LCED%HJd{C%lp zlQC85!gnd9a}sDfzs)*2?q7T6T+?$_Sl$@-a)@s=Zf_tk(emnQe9|RudJN(bk7Q{|un8@&`6Q+oV#Xw>p{%y1-*t>o7r2RY zowfWjRfK*Zp*Kq#bxq21i-)&p7%+A*Ce%dEK)oKSnS#7XwNzh z64=D?`>z;-!qB`nn`wYJRt%g$0_%OK(S|QQqCOq-a z3)wq9%D^Hbmn=ebwHme+#zS6BMbD0XWJi7Gx^?niB)qW4rfIcZx$xYQi`Tx*QJ^YB z#uuQDov-0kR1|3o9ok3aq1_qHC~O)?INZT9>2?RH6LXem}EE`liAgj9nN#hR$pJ#@2Yw?KEnp| z4LDWje*g3u<_X8h^EAjiWOYC!5)S|VbTdNvX{-xcwB|59-u4C|cnzTw_98vcll#X* z%jw7DlInl<3D^6<*kMOAL47HC_hT%rcLQQVD`d9=7d8)G)5{AT7aNkb6I`YujWfd}Vrq>>8n>Sd2=y&=%W^muNU>y(&q{a%zu@ z^WdBAX+pXMCEGwR#>HeMsa2xYqbR{SBfab}ynyqotKKwq*0{RT<12p+E5$}z4D3us zYMzaqEhJ*paP8s4RH@*FIgFzcg;H-PZrsZOT=r+Bg2^x?{N&cdnxHuEU10$+jZf@ zaNrTxbYI2qyqq3KjT4}>~LRP9#8jYNZBFV|j zl$A!01)Tor4YXjUZHS|2-l1u#`(%YHTgOZ*j^b5ymGDaZ8D^zmR{l}_vR~553jl3< zRphdcvsAIqHQ(gUT2UxE9nFqmmFYZ=F>@c8(C*ieBGTjHdB^T944f2n>=RMvXpgpi zUMAG~-ixut?$!E0lBEtTFOi?WeS(au*S*rc*To)eK~gEUZ-_aC;&UGFIVkh9TH1m_ z^)h@{&V{3+$5$x0V5S$oBfE*p`=qYCH^?ZygLm z@VZtWdc56pl<9>u-Q-D|b1ZPL1jJa96v}rcI^RWp%2{aHoLuXCr%t$7$W$#FQ*;Tf zaX0;CBs2w_m`2i;DF3+Z)ZSkeg`wZP-j$2n0dF)>Uk1a>o6{Ka|L&getbgx<7ysV? z^1D^M-yUKAfsaQ>VciO|#i72@a?6iXUAFB0#T{^-K>K`m^_6%TLwBOxH`6U^^Ky27 z_C$KtsGfPk+|WeU%c>>h=MWipMX#VG?q_dV&D4#BYNWif(ya`sNSZV-;d|1Y-Pp!I zLa6Pyvf8t2DBqYAvenyx#@Vz*zr|i3$-{m+es6r(6n{tk?VK&0F z=tl4@>Te3-IN6Cj%CyZ#d~1=&HMhmR1y zwD8&Sw)*Af!8Jt?^elXC% zad%0-mmh6!L6S^dYn|tKalxL5ePQ+G&{x{*ooxSxsq!*XP;>CFz505xb*t~C=Zg~C z0{=Z^z9j37T_DZyW%lQbRUf_LVxc5U5Ig0jkv38XDR3;f)JF(fQPx;jwU?Ljo`f@> z6X07xvM#Qh^!{QOPbwPK;;yCYs~xwx?Xm1tJwoLET6qUUi zMO^w8NL1R1=ohD|+}@clf?O&hi3#927@h0a8cYYfB_p@?-HJ?(rl!hX2|`jeV3|$1 z4aB0r7aF$~@pU5s-`*<+coMT8%Tw`}J=!kf#j81{&d{b-ws+PmTGXbWkzYQWro0Gz za_VwkXX5xNrv=s^!-bzl_1tIHz!`iEpmblujjX6idN7NSWhhJYT5aW{dMLuZ8l=*| z8K!RN^-~sOYq!-H&FQUXyT`i|Jsz>R7ePHE8CWs%w^okYIzUR(assAiJRdHdR2|hN zQJ72iX2Nbqyt?kuGNbY}F;~pMYCtVi!0ca)AL?#2Wh!`n|41jEjcKOl%r^v(FDKD7 z1Gac$nD{(PC1{90Td5oMffd6+xzk6@&^_Q4LbV{Zr+^T!zd6b(8Gr42ceI^|AX>2# z2sYZ@m!ZIP2sDAA=b>h^%~^GVUzaz4o9|lcZNAtbdQ{1frslY5{>j|ofy!1@qFgcU$CC-TzKm?aZI@N=HyjAl z{X*!eMPNux2OCFk!jHIBCBes8FpYxmmaesp&bgBf09b93lt^CEdHy{eVt_`-Vc-*~ z8Len?94po>g{W37nDv5l4#?rcVnT`*CNGlJ<-J8f(IT4qN}6%^G(oH7Gle|wd{7~c zH&{`G<}rI4kgzTzrZ@8c3tiv+;a6+Kt^DL5n(&<#50^keMw5{yD6LeNK>GM_Mg4j% zI^(%;T->{FUtMa9+4thF-jQ8unr3gkbKX-)8hRkw173_GcDEq?stKW#;$Sy{u?Ocu zHtEB+Ug8J*bk73o5U1zrO7+MFhL6+x3E#0#ekCc}W{nnJeA(OjHaQ8*WcE-=uW(15 zHD6Qa7nI0bSo4c5YVf(?vj9)v5hjFadNtpZHVlv@21LTFvo;+0xo9=vSf6^_I51T1 zmd{}UUz5W>ANk_pYLavGcHeq0##l+eQ}73oN@l2@n^Gpu2U6wx@FA0h9?@5yj z=MqjtlOMbhP7ym3FZ(3*_t@Mg`6s+;T{?>br-v%QsWB>!3&VzQ*T(n#4XAC_hSS3P&{K_lvvZN=&3$Q?tB+Ct+grJ5n^+?(-KQ-v0!ohFQg>~owckSz+c z0uChDJXU~##|Bp&Sbq^n9Xt?qJ6vDLFulkJ-~RIs=CQ58a|Rd%0POt4sQhGQl?Pv? z$JayNg9b*n8h;!A2cP~6KI%E3hr$2+4a*yb|2)JWHE7COWNgR*`0_VU;HO^hiwQvy z&ho$Je?)^#>wo(T#T8miuOR7R{2XzGp`QOODF62(RyJxAh>JOjjJI~(B=M)I$p#fMWLC(_LO z<3;xOw~|o~^!9HH{{H*Ff=T~P`1$+w|5qUJMQ%5E<}n*3ay0v!!n{Dz`Z5;byb1x; zG1i@eZ5{MQ->a0jr7HivOC7wRUd_qedfzLD>o4(5*1C(oez*vBhk2|1OA8=SXB#r` zNwZxjah>`%2tG(--yHM_M~Rx@yQpxp=f=r~7-Uo2b;suQ^%mIubV~@E*DdPrp3~x+ zE57Cs?7L(zy|OKiDZy#rcWI?^g5jovO-*a;agBB7y&^AUwfuNbl(3C3utBX&!p_v} z6~4Vs$)fUF>b@oI{J|gB_o{4`34teWpS#0YgAjTQpaC|^7Yp?_+7C7vO=N$%uIV%E zS278a&&%)}GV2QCe6|lA&vFJ^ktR5D^~dHz-16fS@0eS#{W8EHOk$o?gA?pV6h+gu z<>$hW-0f4ze<_Nlemd%QIRSyjEQivMB^sF7&a7>xSUvqWql&ANqQ{>=hU+_n{+CZ& ziwh6)Skj_YCm6xUi1GE>=`Aobt~d;nqlw-QAp`v9njl)U8-i@@>Yb~4yr;&XIM&vo zb$}NJ_9MOrWaz_5Hsr<5*oW#r!$8Jl#umu%<@mMBJJt87;jIzOXoj&>$J5gy=pD;J z^C11(RZ?Z((q^H2`qK&#;@M0HNqzzM?X5TY2n^S~h3}8ZIHmqK;!kwzsyD&_+R&&9b&w2Y5}yMT#oAs&wUn+2~e zdlyh2LXF0SM?Yb`Pe+hlJgi;%WIXGvOxv1|L?XLdHo@D?bqzb`kVtqwxDy-}^W}Qx z-nA_Q&cbDhIXzArwm+kBTl@>mvDtF9KWa-_j@2rf1!}uj#4IS|EBF}c#8Y4I?h5W2 z@5*Mk6B_Es$sYLj9XO&>;XtUszfAW7@pF{Cm!UVpo75|v=j{N}iP38sBHpYr+SlO7 zH&dKh58(L03V|n@-P$_pYtrbRlnlCNzw`N^dVkDz-uTBy13o8$%kd99y#qB{V$gRt z?!iL6XWzP<+lR7;fkM@y`clB;{>MyVVj&xz_kz6jTI}ns*O)oS#n6kwSHV(JQ+pb$ zI+{c#BFV8t3N3K-V8r}7@mO|)(w8$ zuC;k_+HZ*MPUHZB{s#F?4!>Kjd8mZ3*3w1WiLch7SIsdwx9P0>S)LLgcd z-Hw`>&@#-ZY;nK<+1yx8m*`%{1P)Ii3BGXf_)Sr89Y$LBS1-E)Yjq|J^NvwK!vg+o zXUz%-(67Ofn`)OlZq#)=Et*Vyl3(pD+UL?#ZSo5IKp&j_k)+hi3;C1@5@~!YLy^fA zz{wLC7CKl^b6pf;2xH>gX@c?t_b3ct=L%nV`;D8mwx(_2`W?e_pbDT_x^*a-!Ou}G z`&1Hq^6323F>e_&I}M;xz9p)@n=m1n8OS;Dk-`&ZO@e;h_{AMh@?=MSlA?oA`4kxD ze7Y7vPdOjFCP?UHhy!SLJC(eWPMQ0#wbAvy6};Ahh=i2oX04*~{Im_sQc#crj_~@u z!o(#jy@vUT!^qGq=)Jy%%F6KW@w`T|rqStVSP^y{wJ&A4V~XV~&~8L)P`R_ERbS$B zWk<9Pkn}`-(KvByPuf+AWa*?L!RUmD;RzvAvXCP(6F0*rlfbljcnRPGycp2cD=b8 z0oS)C_cL`}Y|k$q1g56cQi*1Bxr3b$Yw$Q_A7&pr~2gov)DB5^TFN zx5UoVfG04T6FB71TePEU&GPDWT5HZ{K3Jp&nfK*B#k!#%WY3e*eE;SCdu`Weiy@Z% z?wHZkl@FXEdezB7>hQZD(%V}oVz}VfUq$L~62e2d*mZRUGxb{{Nb6m1_9)$% zt1mnAc=VYcA$yl#VwQEq&9!u8{na)He(?U=4^qRV>K^Cox(fgTzUGKTfa1^5M4PWj;`fVV5NdcoaaAcz1Uk&S@LR%_mvm4yLT-1%L%nte*oYI*? zk6!fSTm}ZfxQo&JUgp@rA|hN;d_NfUHLaBq8%E+sRgI^CpA#$l4yvyRl4gfCO}dj0 zzTO&97`0dwuqNY3Xlzm^CfN`lnsZj;$$0fDVBoPS_5dLZo>BW~n!ZbH;+>nS=v$tv zmWWptm8LZD2I#~O#810a=8+f!Bh68fiO%)9t*9itu9q54}%t+VBFkGuR7_xDuh?d_ol(>cb)Pc9D| z?{S+7ubQ0rdh#f`MjDp+2V5?$P26YRAg=NQ89vVST9exsuVU-@)?PiMkkFJ{JYQ1Q z75sH)dA%W;+I<*4D7`0=8XR_kq>R3H$x&egb| zdyQrbhrkNF^S%%I6I1XKUQ@SY{`V?{URe0(yG?9mpl5$^y{uiIVYSCKaYn zK-d*m)k#zn^=we5izsFbf2^nllX3;UK%H?9xk9kYTg9->ODz@*%AC%PS#GG*(cKUBHKzGRXEcV>nKFa z?^B(4VpA*OFRRi&Wu5xQd)Y4c(MDwNg&3caU9qX+JZ67SF&Pqc{nEfhr8ZCt6%>H1 zNp+m5=F|4oR1|MSvV#O6Q@q~PFb&dgsA){a48NG6sFlqA844}0C553Ii)~|VIrPe% zf1pAG=aJH_s->#i_tBpcyBlf7Cm^y{yJEeXy$fN?rz;>RTW; zq_n_HjIDM@YWnDRsV{Nm5ZtX;x{5AkSFsckF(|{ye)C#1;7*{1WAhoz1>c(LG2y!t zHv1L1lDk)BK6R|I!@zXQO>dQR{N-Cbduh7Y*$&%8=JAOd5~d&6HUl%Y!C^?4U0=Zt z!Bf@+C;K}3Sls}$Jbu7CywO>| zdEP;K(iIJu$M{5k{Oy7+3G4l{Bh_e=4e!%-TXJIAzmW9I2^I43^2X=AuX}Cm?z=w2 z!Di=LWOim7t0t*u#lokfPmw@Nucg(QdbfZ_1BEoLyWOZb@R zh2n+IT~Lg1=P$2Y;55L={^rzWaBwE3Qi zN|qE|eM#_Jnl^qhMuxhcmx>JZ9FchjvFE-K;}`V?gMv<%+E(fb%FEpsx*s{)!Oa^Q z%fyhzYx|xA&GKydN^gkc@v*gbvoji;)86>UKLRtVsa}{bxbw%fR^N33pgi23y?Lp7 zP-y+QiiW69sZaBAbX{w;P(nY|O#A~himXkDhTdUxeP*HD1f#Iojn!^h!m$e`NL`hT zHNi`+d=;4(TPp&+5-7O{%c*NMw{S*)u?JckwIRFQXyC3$4`;6NCJgtz4iB;lx1ZJd zsewHH?v3xWAu|pw*ao#GqKkbNIrT0TlNPWsT1;1PtcBDkc%g*j4L<3#CVAJAk?EKB z;Y6!1prde#=2dLDehaSqQv~MIHL^%*L%6Ud?`tZ>?E&)jt^NH`(7QllE?|ST669<9 zCpQy2`;CxNR*1s@cuXH?#;|uZp|$`3%dF_5aGu8*lxDRRoS)6lWfbqLx+9Q5ldq4C zd?rdu?@x?63wA3GJoV1(T^d_Cd~A!91qZFpY?fZ<^0qC_u1If|cdNV1`{Xz~@?CCv z)}J);>l^T=SRPD)fBgKp+Z%@e4=7L$vsQKtr%4McaYV}@>nsjaEgdyby?icEgXZ+& z_T}*4daA_Zi<3O98+ly9XE5o3V^3wnx1W0PQwovfL<;UQbY=*xxu(pr8CDfPIaEJj z*47!XrAx#^^b)vV&%Zhe^FURe=2+8CbJ=BC&1tAEvZnKYCz4-YBHx;|KedOg^YlRP zHNF(H5aIhi@a3W;<_Dr!7%i~uV^_efT_k>hy?W*>G^~tb86PrtBGRaZu~5?#Dx4u2 z$n!q!EQS55gE?DRcg9IvB7OWOv%n@Yt}^1{Y4QZ@@6Vp!6#N-ddKpN?Q*^b}02{CK}X-YcpFVK3QUJ z$h7G{s0qIQ1iJ+8=WHJIFsV@*_fo{$o&AZked1>&95O3fVphtOLV~m2wN7O=JbGEu zcfnbWUnTMR`JO9J=$=1a6P$p|XlU7!0^zV5IBsJ&J6vL9@ejyfl=PPN3A`jJ~g z;rZm&?v(lWpHL`T-Qco>+s=;J0|wFFoZUjy+ZW+C-sPYeZpWd;IUjBNUn+_?lM+Ot zND_d4F9eEq^8I@RCu_)JnG(hWN&HD!#r5zY?aavmJZS7DM7`3`cwjt^0BZIpy-xWaSSLd>l56fv zpX-e`7}|Xj^?T3yc)M%;c5N2p$qzo#n!gK4_XF~n)cHmO7TozR*M4h_luwfL;Ui7& zM8un85dBx7w)htvY-Fa*4%cm~>(4RT&N}2IL@fn~MoT(PAGOwt& zwF$y(se`o0Ij-gITO*^&3uv8PwOYwAN9~pnh1a_Ve7;7si;RXQ?+rj+Q8p`|_cs0S z{hPrzo|AT3AQoUvUB{ybv;3NW%W1T!f{dE0zy`*`9Wv-u$d-kaariE$M=L@H$@D5u*A)RR#%uZvi$a^GJALeD* zSiNG)#&GHSwk(tF<+VNJ6qLhcWHUkh-BzR~vo%KZY}U@uSWM6jS)yYUZdm(C4^Zgs z-L;zXxBp3C(Sy_gHs!ad^X_cAwL<-|#;uT;Y>Vw3PFf~2kX=C7@grP9aOp1OnsA{l zposPbJH02>=DV)1E+``+`1Fj)HTJ4_y9uJPIx-$60vK4+p_u11uZn5g$72C;ZMI`M zinPtv&l37$sA`q@e6{H56=;3mkzwFpkY17U#3ja0!1~>2O+wB!5c$P`qxS7>9)a-7 zv4s{`K@j6k9UY0sJHF&z=GS@KQ-&q|e--&e92a!EGf1rop2^b#)wj15+Sk|waROk~ zah`|mJHa`;r-?cXO8Zw4SPt6Ojj?!=66u{V_dvQu-Gvo1J@$|q!skBgp25O=amBBp z2dlHBnzVGHS~8y=3FiQ>$DB4rAlx%#!)qWXWd6qO8}fi|A91EV4etS0J0DJattuXw9e)_07=S3imK_QP|pnr6 zleoI*f5FIdvesE1;luw=ht+bt6f{_TMAD42+sJ}Tb!>0kolEt+tmKToZW7HrOTCBq zLV3v^cUEN0Vm1*f>uSt48%3SIH#bkRU;63+RDahws73ruPfP+x^}NW4N$$Cwg84h= zcp|*u!!jlttkmq!KTDr_^(fUR@MXkPg5%F(z!NWjE9n1u=%K?P zYuVW_OKaUM3d9_k&MC2xJHNN=OFZP?P`?DrTvJ1ZTmqz^^{P4hKg{}V6@FK&&>Kne zF`7vFFaNjXbx5)ny~Cgg(LdNaoZfb_pky(+pEOMOHh{rDO%zErwsNd<+-@X)wxN!z zDl*;EjC|F1-a>zMv;W30ib z?k0VdOg+2qjqQM}EO?zd%ai!OT*A2gKRE`L>jyWSI2r-hl}JaktVOEe7>cNt$-xfM zyU_Oq1w_tKT}H1C*SsKRrv^NQ`I$l#JfELuwY5Pe(zz2;QgVb&jGQ8Ke3zU&f|hRC z&u|hBHW5Einw-voAzarXR=X~LE9b=h_-jd<*>71FpPt-brr!cQ+Cu0YTU%S1D-uh1*H~Mo~`rukZoBt1S&|c(02a z;8{q>!Bij7@(SKh*b9F?MeY6Tb1ZWeUD3P7JFX!;m^x#BrkOlTr=e%7lF^W2*e>1! zHfn7VVUj#9H#E%^%?#e@CUsgW>6m^U)pvLEhK5-|%4B)1=zIRD3@)g) zI{^uA5-I7YS^jVyaV27}&$)}Mr^2(^dL#{rHjaIeel~gj&Ro!A&0Kcr^ca}tInQ=O7bs3Gw+A+zK%~6bmN9PgE<#~b2Bm=PF z(YGNBp1NOSv$mdi$P$~x@zT1VcjI^5IHMT@tlD3_0k#_rD!uxmJ97KY0QSwvXy-Hd zbebt?X~DZJ1**`%KnG`M#LmS<5v>TCR_P zoIitna7SIn8%yBdc{VM@M=!l(^i^h_2T+|-c`2grBe@9pE@;=m6|JssoCd3b0!?dT|uz5Qtg z`WmQ6qhTfKr1@uHOi{teCS+~wlL8xQN}UFWt=qV%k@OPzj%CP~5$yQ&Xwj|As4`}l zfmo$erNtW>xeJOD<@`s8uYYkLcBCUi8FwXoz5W({Y!}p%aG`Rt!R;vkzoNgxgdF>yqM9I=d5&am(4m z*)jd@9sXO4kdna0CUBcGe|p#26atxWVdr04K{-_!?}JI`cxr2 z(TM~PQ@2AJDqqS>XSXWwuMbTgPOb;Ep)0zH1gWeZZBid?w(^LIo&z{Acs59{(H)e7 z@z@>67xFs5?xwzObAQY9VN3oofjjdaktN|!q2 zUb`Xd_fLItYRjuxx^frIDg4XkKdtr#2RxX%IaKCs5sID(Hy-#EK&^4Xv z`9ztzddrbRaTrGV9P!ejGKwVQ^v9mI@koCLk;hsIzh4ip&FbTa7`pEv0Nkeb;WCc7x8^=F< zyk@YcHMm+GhG5p&`J76qqU}3zYG;7v+{J8zCm#4{@nT5MmzNW9HfjFUGbsxtqo^{r z@BHHNJ@tuqk~>mvYIk^Gh|Gig>#FJOy{rn?1b2J#OXL9KW3_r}3gbOSG&-HyUaL_( z1HGm=X0I#ill3u8Mnf~D#QCH$+!kljurSZHG>|0YPkN?hkI>#MJC2><4`XuV>e(Jy zG3`rZkAa@9wgv;?7KOQ1Rb7mr+d~}nP{XUYIX)${=MffYDN8%;_-TAo;=@FYvcrRU zwXc%$l{FHK!_4)>jY3Lh^oR2*bNf2PiSbB6+08KMli(=6_DLBF-=VEjo2z&Zbwb`# zUW@^(h=tzX9kTy!>aW=r1sp!YPuiEya>@aLPshSipqL8k->v)m$m*2=ij=O{W5X%_ zk{QP0*U$F+UWUI;CV|gG+*A|LeE2eaT(8q^|J6eevJ*RZi*Cbg^w^Z|V&@{${oZA- zr#78}aQGwMZ4B{PDbXC><~=5cW`PO4g6R<<40(y^r$iX2r;f84rkX(3ldZ*0?TP@{ z_c-3rg;YDz9~-H|8Q>e3T{EhmH6+C)#Y;4gWyG?pYdyr+JF|{&T}$8(xYDY+u47W2 zP{hn@8akM<)l!)YO){_@xW#`!q7zRAcbrxkHKMDpsbU`}7CYyKW!*F2ep_RD00nDY zzG{im?^aW0%O{gGR12MvKKKzF)j5zld{e`0+g4|ukZvIN!JZmAlm|rQSsebC7C`#Y zKDsrB*oDGt-uxGw7;{m_Eu)2^M;Qi>P8a;P=3}x|sP~3Le-vi7G@45R2{ix;@5R~7 zD}wayIU;=NjD{WonlbF@?_>WHmF&tu66yH2!_x?G?l-N`x0WR=s+#JnTsX!=c1~p# z>@^VOlJdt@zy@6Q-I+396GO|=G3B?;r*{5cPk5plK6SKQ62s2(S*w0J=DgbHijQ{?k%T?`H4a}Re* zt_2sc!W-4^6M5r#1h!>GQ7!)bYIyaO#rm zh2h2@pgs-`;O=SVki5L_vs?sCKh_Q1puTuTC9yh>(nC~f;3o~dbs@~bF-8LYTy!L} zebFVcW-OH`3%NvemJ^F3*|V3$UknyIzxC?v3Q>q(5x*d9a5f&bS@h+x;a#Z=H6Hzd zhwLZYfz&oc`s6>xnwr2Ddrq+V1{iv6s5sY`cPz)nW_9x!??j`@rUi{4Pc~HT-7Jgi zqtP=iYU;0fm1b2(8B7F^FCQ{WMg-j>yT5RTQs9RfOHa*$bk!cmqy+JM;iA#`xwJB* z;TlxzkfiyeIW~}GjrRt%R}QkIfzm%fM~&U@-jA9@pq4Cl4cwPs6=gnJD!&X@wijqf z6xeteZ*cd@NkTpsdi~F+`!nlx<7M#H#mlK9?1a%<#ige$H4L2yGYq`q8m`9h`7mcT zD&UaEjTVDR$mf7NJJ?xisa<+8=h75k_jpvMxdv<>)I=gqi@&0?a@*rhxsm7E-{?`D zguk!zAxg$YlkoEY0`|pDgHOZGqI`w%Y3)8Eb>3l16;5-iJ6Y!*c1u{vg{GC9HlDq* z*jRO3EA~$rQn*gWG(#!nn*D*FoU%=R@??Nct*M?YpDhd@oPzOq0k{)w#1oKXYsYc2 z9cRz%ZFexfwAD;AR2iIT#NX?>EG!fj!@^Sz8l}mB$`%44LHMBSF>+!$oNHzh=_Rt zdi$?+_ZJeCEYpf!AwnrcDC?_5ciQ=kHBX^+?(6mimh0;%d75Y>^i)HAoFszJXn zdp0wNT$}0!W?g|6Jf}2HH!id)2jT(CTx-UbXs!ygkv8a zQ&M@;%FIiP^bp8!U})rwN?f|!fy?~Nb58a<?>#?tW*dS- z&9=j1sQ;z3tKX4Cw)YOv3coY{o^mKZ?SJkITW;*ORk&|^`X}26C*_GP3iA}9U=ws+ zKySIYio}>%m;TSfppUX-0$=<)@3rkac9%kRgQEEv-D&`ra=S=|B|XLn_5&jrEn3ka z+8>y$Z-x3Ye-UnZp^O?W5(?{zxF_!uM%1{HznU+kItdG+zJ0F^WQo=vV?@5OWFekrvvo&6XzHI)u>9#*jAR%(Wy6{U%OyY3K0Ih#kq2KMXsX;A;x4z55YjAQExKC!P*g?Xz<}SWm z&PjWIz9*e_vGN&jcfx#iGiInRsp=qWwzuPnsfyLwv}YnZ-mG$in<@ItA6-HE>Uj8z z!Fsa1PI4H(|0a`GTin;HvR23*mZ|KQzymm|M-RXK0yHM~CsFGB{5ahTD%0)H&J={z z^~cm@J7>VmtbM0!Qv-WchT(-;*1FmKt(A#&qpj6bcDtn`Yhu?#lRX7G?>C_oCqds$ ziBRzD9$pC_SPm^TX4+A>XQDYh_I{vce9=$>bGb1$SZfL0^MR87s{fC_^I77|@@FQ)Q?u6`fNCa;uNM z_7!*Lp9temoFNXzmjy0oHZ>z_vVxV8TtMp|%FCPUX)_STHj`bfeLi#5h*O$%eXY=H zUPk06b^qk=kA#s!_1cr`{F@QOkYvXu=UnNk!A2n0#hn)U}G_&c%_OfdzfO0Mvb|=Mg}CcKfrj zB7XO_yO%YKkQCZQh{-auX#d*mzyf1a*MGTJ!!AAyXU%tO%JHA(erd5;ZE<&F57$cm>r3KKi-{0ef`AWEl>P?N;!Oq(vj;$jIx!jua{?FcZ4i!KRd${BEW;CsAs_*6UXG-s;jXmXM0t2Pi<}N8Z3ZA zj?ocHB{OH7w#jrluKcDVPbgyMqFY(h0tm1s0C*^da4<&A=kPOv9-3b`L%ieIH`dt9 zS1Mk!b-pMV4W3j{x`|fzhM4hV0lixbarEq3u6!p^4m-%hsLySBU7K*VJLbYRMp9Vw z4BJSchhwX19e;+PPew(B=;o#>CIwk!NXW||aV2eS`XZ&Q?Xyq9Ji5{`EYKgth3ypf zKf8^CJ)K@`D77`^H;~Rb%}j@qrNCLNQFG_js+SCUhfEtDe6>~~IKe(*zgd#*6me~} zCLA>v`_iRn(PLc=cd`3aPk7bc#*}Glb{fBW{P}tVlO)d|V|<1EqqXk?oNSgLbprv! zNZI=%2ig0XVzZ`1uoSS5H?{AG3N=x`!Y``UY+0*gJ-Rxj`?0~bqbV|Au}ec@H#qk)`AWKV}oLnJ`|86ORp{5_Y82MVsA?z@x}W{mEO@cukF zNb|)6+kCt6%c^SnVFty@8p^~#PIb0#$3Fh4^v%Wf8{b08Xj-Kz@Yz_)+Xz?_<`=i4 zmpMIAlo|dBB-%kl9k(xRZBIUEBs*-1V@F4G)asCL4Je!J|JwAv7`oRg6P-j9GkI}M z*r}u3R!0%hL{U6oTz&#dz9!2-lA$) zf|Gw^&Y3!<(HXo*jjUE{`p6UXkx+DHf+%)X*Kp8kSZ2{VdBs)Mn55ke=k-hjwncxoUa)Zv?uvnHH>1!!wMOmq?));|6@ zuL~K=h0u27%}mmzz|ZK&ijJT$VdQ&YDs8g}Q1nfFwPkCn{C3VTpHw z!o1{-orUdbeb)!2sihlULc!?BjV6@NM$ss8TF-C#K9T1V*msI9nonz0{E6%BL{g($ zZn>hFvSFy8_JJ9$fCcON3-xwbjcJZVx!mStOWc-*;NM-0aVp(F97o+AmHC6YyJ#tk z4%}&5Ay^;~!&xV}YEbcKUaVSyPnbc;vvYItnGeF#MWVgA?*e7z4ugWP(LQP&`rR=c z`g=N&bMYve{dzsHi70$V^j!+Or~{uE1DpU^rJYf}i)J^6;X zL238MXL0_}K2_?$aE-RMQqco0)1IU~bzw-tx8{-a%Rc*mL2xDW8={)aXWiRPzbYcZvHtExyqC|`5@ind-M23WU(y1 z3?37(`^pWaPHVE;>ClDt{IUz2Ey}Tbat=#2cvF+?NN+(|RL}aR#^yfcF>8QG zVdEiP+tgFECv^es7IOEhX4mPU*XtO17=c|_7wg`d?h!m;A*V+i9u7TTt|ouqK$FCr z8s#?}J}Y&}g`ZqF*|#dLv{8y$xVjgjv=y0G5FI~_d_`FpmpPkx9^1rjGi&-5X0_+G z7IrlL?SRh~vjVF9zW>6eblt?FUgAJ%^n08FS&>wkb+3DQXfIa5uT28%@!mEcR?Z$> zrs|{`n>F~WzExEKuS#)RJ#{MlM@Xrm*=L^;-zyn|yZh(EqANo!q`IT5WoITQ!5Kmp zMWYD^luEDGxKnU;3u70}x$+&Q$XJ=rUwid6cvseBNT=+i#OmV)&n+Xlk<7>UHmkr2 zmtmG+4o+-SD(4gm2qdOmhOjB@Mdo30XnOac2*TG^ zHO5>Y;=hTGtSL$+Hnb_p(6c(x82b`COj_2y)J#Mt#rjycO~F49UB|y&*VZ+c{aD5O zXq6t{J4bo%AZPg`V%4SUq zzU8U*;mKM8l>3W>k3)Hf21W)#ZXw@#C4P`>yw2`0^R_AZXyM%V^$);t zvEkwMq20?VgC*(kx2dwz>AM}tx|Vc&?&(;kJLt=!78+&4@94jH0Jyt}-xf{&G- zZazgfM4+I7o^YvTy)z)+I3m>Kxi^3M-|~CZX5?w1FYic&AC}1Q>i@H$Z|u`9Q_Rs~ zPR_ZgTvTK62J5==Tc}T>)|Y}8uEPYAg2=CBpTASKH3HhxMv@rX?<>$p8>k`*--(n* zi}}v$ZV}##;EYnlOcy{+PwwL_LtX{1Kv3~>(E81G^wf0gtoY(Omc&ZSvw?}MGVNMX ziYH1>?;J3*o5>pP)UEFy1>L`xt?v|t3* zJkiNStrO8*4=M!P8BfaE8s77o7G#y2n!p6<>Z%{#iODWe&nJSnsvQaGk!*N?8$BB# zytsORNRxGFa!*R7}uQve#brd$n_K7w0;;D zBS{X0d0Rx>Gg2-x{;@kV$M70}_ZSS){w({fBXcu=Uzidq@EwjcsSb zUNzQ6B?Y;i$R>I!jISpU5kIGj%;T7S#PyngN!Q@tGWSASmzib{q|iR77v{z9pEik| zNI7C6EysNe!M*NAo%tE9Q5g@FM1NXC+3<69M09w)stwQ_Ld_&n^cExkGBPc5G@{H} z{n7CuHtts2S0XYoE^S5N{H4GginJ3uy|BZ5)$oft!B{KntnJ1Ro%Juc5&Natm{*eE zCviui>Tq+tWUi)GsUovUhd<{)#~*~2<#(kXs@)4iw1$=e(d2taVw;hk#gw>CClWSm zJ%@_iHz^JN8FNX&7=6^_KfA0G@+b}mihsP(=91}Op2)Hh9@epZa;AAylswjUC58l% zDj?Cj01B$}e6QO~v>!5&&D#C9S)J%K8@c;>9F-GU$;1HTkGph5Yp}95w{=>0qd=^# zv8VMQ$bfF_%wu-6@{d3Bfl+LLRZ{}@P*u8XlkCQz^4rxV^=Ab-930DhQ`NUfnmGP5 zV2mHoH&wn~<(eE8RLKfPiA{-Zlus#TNZ6k(q%Y6fR7aT^?4Two)I8O^1(lm9u{cxg z&`*@3DANmZD-Tw+i!$aYXuy-!wQyKSu&-bfCv*5aCJp!{_xUq5Tw2;e+e-Y}#|$vm zUd4lIS}){i#gT>dj?p-zMLpw2)El}5!lFZh5HnJ7Q8L2894gc&k>GM@~uNq z3xkco&5mj;)%F!=n6e-#AJp;g6A7JW(d27k4GMdohg6E}7`Lnt?B&MC(R2M0{ zokq4o$q{x6q0yEKlJw<-Kwm@Rh?J1;HVwg1@jXp?9{EO}7tTn1=~D~<^L*H(!#y~S zpA>|;cZFABs_6lO{Rq0W7o(LeLa&-6rF3`ROQc2yCm@-+_G}rG3F{F*f0YN1l87J_ z=1v!Ys>?4pxBZJD#+D<#Z6MUco^HDTj%}+!rBY)8Mc2xx6a$}jh`k~5QfZ(j>sf6i zdfX=^q3)kM!GzN+ndT)GjKlKW`i#n0vK3^x*NVIrGG4ZL7^kzi_>RdoBsXB?d032Ppc_Ej7pC#A^P;S?E} z8A~q{iR@SIoUzkAUeWwfaSu--X$E;4K+Hf9SNxXZ#ku2K+aXkOVN1Sty@_Bbb9oho z?Pq-}UFy(xhxb8Ok8xTZS@Vo$A6ZV@?b8Exqv;@LWb6r2cwF5mJN++Pwiex~Iu2lE ztql~s7Eny;{kH_|o+GS!x77hsfBcDk0_^2cv9K%_Dp6VV24BC~GPUE~Bi#7v){Ce| zx8n_*FT;Zcm5C*2<=*1IDe`l(y+-a8aLIwB+WgG>egLs zX3;g{spGv~{GxO#6;sslo}NFuEHdqEtPf_w-Y<{woW1B}9KjEum zwMF41a%J5bQ7nN>+_~|8Tx3pK8j5PvEW7|VCqKRAPQ6vNQR8IxIBX*^5dw8!v{YA5J2Bi2KseaPZa!!fzM*WPNK)f7W8_k%UWd8WR6f zji=#@vIakmejBK1;K=U%=1~4R5@)Bi(UBK~*J3!de0Z3)2hMg<=b7%;2$RI*S4mOF zl;OupVzv2M37w~+nZps3O1ljJ%J&bsa;`Az>^5G7pZs}D7Jgxt}}g(R*c>_Od}g^+Wy^&4PsPS*Nk7QdtON=u+I9fIOQrXI^eF!kM&Z3ljgzj z%@J+4TN~K&a_Wj#Vi~bEVOm3p56QHjFK8gnts-ltaY;;7MgC%kk{&unT>~{fc-Wnp zlAPw#7=o9u4$=*uI*TW?O?c2KA)^$L5M9-5zO=m~(@Bp1Ac_T59lE!&dG@Ur*WUcKQzO6)t}TTV+3N5kZscrpfS>Mga@DX1 z#hn$9+jFbHdo}tvNhtbCK%Y8tv(Oe$l@#DICpxdJq6E9cUjW@ zh?t=2O&a=PDc|hME`-e#2Ei}nE_s6Nggl`wkANIjmKyp;D|E-wsck27W2`tzjV1Zr z1sXo%#mR+pVuh-LS=c9OGDavNiRld=s&@PG@C5#^%Z`<03~iybtIYm#&o6AG&4fFF zt`XIVN-go7yzi@0dr=LQ@3|>8vXQ3k*bXZVszV)~fts)3Asu8evq%_mF0EO&F{lA5 zV^A?Xh&QpvVPV%|8(TQVyQ8$~8I%s4n@5+e*4A+6)T8h$un*0 zC~1rm0kqLaO~NPvpK|kCb*EIL?j%ia0X|0ZE=s3&lg+k12Y4JR9QP7 zZ>qLsP<(ODQ`6hpsa5d_hA^{Q6aq$E3bn!&WM8#7$pr_$F(;#Kw{H>XlBWcC{p3-^ufIB{41vxS|S z)1wHHzT%4~hd^;WuI=oDMw!a?r!;wfCPkj<2C!nQHTcV3))*58{*?x6A<@%Aj1~C( zrDCD)Yi?yhK>?#+Sy@flkO`FCpmc8&pEc*AZCOpoAPr0RcL|qJxLk|!$W@zG!oBn+ ze4d6B(bhedeMpJ*2flc;l)Hv!D~=0`m+h7umEb?0x1$mhT;BGI>|jpooF5t?Tj=2z zwIFa}Wb!74soGRvzBB1PMGqMi^+2F>RZ}_Jm|-*(884~WB zOh}jKuZ-jG1m>YK=B=`U9DRtW7wI+P27GH167CL2YYC3aAqaqBh}}cUFM?+ZKIWT4 zf{RW3yV>-NUr+1w8$XkI>OJKU(EIEwhd4{BKT!VZ-UpqOJzJ+)Rtgb}*ye6O7RQ{{ zt8DJMVl0ns0w2`8WGL7-i>_)`tnwl4)JFYto|&slo{vm^)Og4|wCIgX)BS@d*k#@T z7Os~K;p?={p7s+T%1V!~RlDqdP+*T$^pg02G8B+PlaqK$OA3gI@cHc6zAD?9NW#7+ z_!#{Pv9NGlbTr%Zh``IfCgdSZWoW5rC@-U;gARr0cv}N1Lge5QnQ@I3?`8@hOR!Sp zK#5+f1FSy(dihR0Z2LP{gSYjnGvJMW~=2B7{n0mFwsQ4}Xpzm!eBG70+#C_kkB`f2)0 zemn}-A{M7AwfP3y!hrKghU!NbJ>H^0N7q_qAJSB7TO$?y#C(F2{^+5X&Ag8BWJnMT zlSV@3TDEmZ{YfU;yEO+*o$v1!P=XcNcGS9>f{TMW>^lwhRlgvOOXu4LcCN|_iml2+ z3rTx|Lyv3Pl6*#F3-4YVXSK%0|BPi6-*o20WH4TQZ&C%S(=}csRVU z`GAns8{bY8-aQFTr6gM}7M4`EK7H1BP>;kAMVofHt{O?ZMT7=iBIG>tby?q5vHTVZhCmH ztQ|;w?uOtjT^#p9qv`!(KE5*?LN5d6_&3i&#MuJ^Hl-L=6jrvXu5+FcSTwW`he=+u zT2Wk#T(%!=T}Ar&?Ag>*tRM}$Pzqjv_l?8|DiSvwd68=AK2i z)*xhZRy~Ei{B*d(ZBhAE;pVC;`;%B9G;5yKU4H<}XlxH&)6gQH%#>zK2kY0gfm`V3 z4>CqM2$2sIq=Oia&(JLGh6*cZ%B>DdZjAV4WSkSA_+Kh}nhx(3eBszfip5%Gp!#2me=gS|9k<*cfE}^{+Mewnad|3PTz_UWq5tPGf(7} z#MnZ~j^)zlIa?u@{w1iGDLg9*oyMYPgg2sB*}gSi(PY=viObtz2Wj$9K>qx=o2j29 z1^&;%uvft}4N|S;hE}z_)OMijz|^%myLC->3)*(f)bQ6&>`=|9pH*D+J8tFaj^ur$ z!uL!IQ*V1%m9zL0qvbLFY^UAabAG+)PpRRxQB-ui?px~SR%Tq<P8G1-B5qDLu+$+FT})l51CnLC6tQTNo|>`%>FBQuNYY4%6;n*@(USK{+6)wU8P;hV3b^! zj3^rJ)%L)2js>(QM9EK!arTu7=8hlSj&1GuIx**MTC=D2!CZhOqvY=bV?rS$Nsl-v zrTmpfzACF#s`9Pk(5%YF(CJVz$Qn*FxF5Xpy{4F5@NMjgld3;P1I#=iFt_olNcw8x zZ|_Mz^LSwA4Y;MOzON1qUJuZ5j<<;y5zv+teNNJ1N7;K-TCf7{q}kN*(|$UI!hUtQlLe$1b>!8Zxb87KAJQG7F@`{V}_Il)o0|#a@tYAeds7vgj zJl=r#8Dn{4 z)}w~~4nKL17y~Nw&;v;aS*f`2lSN5FiVnyxS46Wfv{qIt3HHD7=Fi3uGkLN6&SyqA zMjpK5<+?erCoBV4n z2)bTo)o8HuE3<(US4ySgFyEGe&$*BA@u1>RJMfEnXkvTL_b#32nP0+K+rd?Cf+Oz} z=etlD=Y=uwCiig?lfJ2jyO1@6{x)<-zypHCIk%oq>iP_4r8jnJk9!zP= zZnhnkvdb@r(zl`k*n@yI)kH0k@Y!gR8Iah3+ujwNGnTA0ulZ%|J4JH0j%4(f(4a(x zT{*qU)hIl=bAJsZQXnkL4k4#blkP|H=P&4sM0!Nr0B8#QC$?b5#pGFwS3nQ1+wN5% zHvce+-GJx5ki>dnFF=mtt0SXpEp+$|UEO>1(A@})Ymav=cyoz)7OzI+!1+{aL2v&z z+SuAVsWYOGqLdaRjCj?nz8(}@gI#t6yvm-(tvRpXeA%i18-!@5{nzG#Uqq(oC%HLM zzP!K(lX<PZhJyn*!Yn2-dI@+%kWf4BQHXnnK^_Qt^U-=nSz4r0fKi?^51^2_BuZk0^p=f`@xYQVO3=bhESa*xISR~*<9m*aMYnG350 z{|Q^p$0s+tw#t)Rjtsvf(Z{mP{8YhaabN zgYqvc!sY9K76Jjp{uh{TNEyVRT9{%X2z61!so0HdIc4N4Lhu zONzG^G#hC)vR_&bPHov>`A4+A3wiQz3JbH^Z7SDf<$3*3<2XtQ&!z{{p9cHEGFK@@ib+k z)d*sU`o%^Vn#xM^eG>y$l7YX%lK}satUcSV_Wmv6%VFmWA$&+h251uU4G6w)k;a0y zQz8}%e^E}Ot$>7Y-5G$IvU_q;1C?s+m99Yp|H32qzk>YzGW}PtVqktA-`fX!7eHS1 zuky9CR9>Fz!J5l~1&`X@Y*D}!+?^n|Fr{o`-DWpK9UvfNyISF{;m@yllva)G1fx9GqY=mr$2Jyqde^}U6B^@3Q}I@ua=*33HCE< zS_1Ijmxt1M?AahKxDktSio71+comae>U96A?^xl##EBbvfbaqEmlN5puHd{l%zZdJ zr+q&up-1Ym@82U^e}DxbpozRyvJBB57MQswZnv37ZvC#+58FOzmp?Fn+En8+{1dnl zh(lC%l0#mn75#ab{}rQMrT({0?sVk7u-qGQECEJ#iY&+z3JzaMlNfls3pMo=ad-=+C z`>aI>bUA-#I91_${}={p>jd22VB9!nwk2;~c_jA5w&@Kp%V+*~p-3W@Ed(Eg9nRy0|rFN?O|8J6Ugv9`1YE z2x%I}UA`}|x#U4T68RZPjoC3MFtYo^8V0|Z*C)2KQh2V_lE5AwQn3)k*AO3jXfe&` zo72cV#d37{CF`D%WiOe|q-tegce=0xa8~t^L2G#4&K7-82gwTvV{60k_4(vTlgXKl zM-e`_1lVwRMZ285WI$dk$<>hK69Ib_A+}fCqhdmQu?+*}3CX0uDNXACnJgX{g;108 zRh@D|uzCj2ZOUBeaF&uD-JZ`iNPSw$tHDA`_-q0 zYZR2ASy(4;7PTxWhBBWpdsRqf7xHue zURZQi@0c$=*~7?!(F(+Y8D{qjrDKSY=AkkYKJyMHs{HwRu^58=-iRruk{Rz*{)D#j zI(wj*FBM;Xa#5r)z9p+_AAl-^(da;15w)OE$puJdo;-PM(luI-4;9fI3}xD|`*su# ztW`>JNB2$-=((Pe1G}zcKP-0#cNIqi4e@(NOHF3&&^{~THz`z!mVB`x!I649f*R1N zxJxpGuBzJsQ4Q*qG3moFWHUyuBq#U&6af;L~oo zJh#!hHdCV;hj{-XjalpG5#2O|DCs(@dr@~F-L+6x)<5p}borfYpTPSn*8Rhs38nvs zJ7f0lf6w8JmjzDGxi#;(0m?vah`UuaCntMrCA*R|D7F`XgNODU9^EcnLJw~QW?Wim zNrdBv1^?I#<-L&W>CfyojK?dPGaRjW%uA3d65}RJnN@y>4P|vNtIh;q?mP5Bh-2yV z%Pzke6=p;DYPszEg4&#Z)z$s6K~*a4m@kf~Z!#LJ3OqGkjj`1+M9M2)mcMRwL))m%{4=Z$ixnqf}o&GxOg#Qn6>iO%nxjCQ5gh;3)} z2c7q;@%=YH(yTv3HO311_;CIeBcqTor`I%N6mR>IbU*C#%!{h!h60c|SZoK>Ob}Lj zGP0aFI=E|-mXM@H? z3iwx(05aQu7HU}EKu4OjFI2Y0--++3eK=J^3-%#uK)F~e-#+CLzos`;W@YvS=mj;L zWjm=EmY|+N8*A(CmmNrEp5BES-pD#mx1L^;VwnpHF%Z-;|fv=4%zqgmI`s=U}S9$hLr>Ok#2IQkju2KII zr(>5lIPj_}Bwy=kZc)fn>`ozCxf4b2_LY}>l_LV0pf~9bnONgWTQ%#49PZnZnW#>^ ztB@uP{4gq~8U#-(<=u=7m%47xCw5M1Y{t%+2fuu_c7FT3CDXkdBUDd1fQ|}{W+yo( zYVX=W_*3Jb`t>e8_>Jcib-NP>j3{d@`lLz=Yfk;BL|0Y~zxyz@gILM!K#yi6^A;8z zdU+*gB3RyoP8fg#-RiGt^LvMtqEvvPiyHiN#Rm`sipZ1 zAI?xs-dNC5x%nK-()CWFmX$!`BuQvdi9r>hK*~m_2Q}1l3nS>0y!B(b?*t)*wF%=kJ0B17GhUgDjJxtGzj?Xs{ z@^DLS`{da$o*ee{b3nXe#zIG##)?gCA;EJWpLg*vZt0YgwZua{#DJ2X1CjiRv}H#$b7EFOPB+hGO|| zh@ZU9={%>f;Evk))p7>L;VBpvVfAdeV>oCfL@98d8_qY>#M~=@Qjw-D(uVGr$hgbC zX`CrIty;+@pWrp3#Wb=;+NZL9^=$Hn*9^Q9xhCQ>Wu34>O+Ss+rKBc4In!iz)0KR? z^L%|a8G4Eda!YaQTEnqT*cB%ILDl^OBSal$-}E-NL{XK1V08RR6#JLspfXH4ZP!j< zcGZLS?MrYh^39!Sc(@8{kEldoSx7+Q6S)mn{|$J%u@kR1)R-E%iF;?b0p9)E=Mglc zmQJ5dydl}Cr?|IC1%YLc0|B-08^bBUmZbb^hmygdTfX|3_SZoxj;PPbNqS4fZ%k|8 z?Dd}TDPTPZ6p#9@QX`nq-uU(5fl`NPbZmyvQZUm+RG8ibuay>m^~kbTpW_1!tvcSs zoZR;e39JXEc=Ah1jf6kh;1WICS9e!pJK)+&KG%Aam}<-hVOYKytPz4<*Lt9bGbadq zVZ9N|JoELZe?~&3&R1g ziXqm`vaIla?g;VGxipJHkqV8&KiCyIi^i_5g1$*3)WOj0a=Z$nkB?X<(}$+=LX7>7 z^wQg@tU633M}=Fa1E)LU14Sf!jeTe>SY4*J?PBSyD6*7HqdKFTvF~GxA7C3B3f&(! zsSYud?=A;11qar8TgJJ-^ zGdgmk@?F{ARbHi{VLhL_=gztH&bhXV2gj;)Ng^ghC@$0N?c%uljJ}auX5%? zt%vH^V?5^6AQ(T!z3N}LN0D3896vPV=t)=ZCRB*4Oz5=Dt`ijYawgjUIME%dycu0| zF-|_WD|6f^B*E{EWz+0kwYIgl#2J3X>!O3q>)o|B<1=zYJX8FkxvG?eNg%*{ry3zF zM*lMRLoMZDEtz)zeOa}dMw9dxFiZ(S(5-_aUMfid9qPF3*&8xDm6*qz&&O99pCF!& zzILEX ziJ7r8{!(i5)RI2M-dumBE3=AzUX1APzy$h_fGb`BADDFy-{%nX(COjmzx|LD; zMbKKDEY%QQ(RXF;kE1$7M3F~LZ!hVMq{2FWZ{e-bSX)=NX!%N2kaJMTc~p>?KFsf) zbkF~?l9Cx|a9cr#J=c$yx)B6tPp4U_&6g;Oc4<1gY(^R)j_R$)RrfG)(94)(y2GnN zq^lug%-#C*ycd@L2YL{eh=_X-KEwqpJEUHP2A}liCM2rQa*V*6{r(7*x)}AeN??$4 z%vW@Fdgdc6Ec5=Q_<$m3o?cT{;1j9p-zml^#z6;ruHXP0necF931LES+F|+%-tgvD zsnJ>k8*_BrbEB4$Xy-!kkTX>GjTv0Q5ter9ISKgDT??~uT zSUOum9*O`JXEQ##n&>PoteJQ26wYi;=0KmP^FUCRvG!n-M%35aOu_-wi$9H_-b^NV zTwQlCdZ=C>(w-V&jBO|@QnDy(-20y|lIgr`$sF|^vt*_3^zwi9+ddZSIq>Od)-()h7`$WsA1c+KFydrnl%FiP3Yc*# zqJ<5->Xv9LeZ$4F|w7jl+W>kSuX2vG#%tp5mo|taO zfYOJdFL(D!33Cdn0+dlWh6GekEW!L2hlP!yQIO>_0^hSlOzs@D?w@fnYa)ov4!?Zp zRv^1NHSu_Srfl*(?;vymdZn)aHG}vODIg))VQ;=1-dTUtmPoG_Kao|He;tEd7WvTn zEqwky$o_xnQK+^5qDN7L6)!PfJRV-KD%}b(<-3;ce2+XU2_-^70Sk7RxOnO}a2mlToZRe%-CBL;S9j=;j)vvk+Twi!nQ6Sr zwt=J;8eTl-YLIaeS@j|)6->!IH-2(lU2!c&oxsdizbb1t7{)6H0gpCa$8a)jPMab4dlLk=6og4%Y%{qJUZ(=Z>AD0Ehy zi{rlhICGz?Nm@XnD3S*)(~5;+DSiJQ1_vJ!nF_%u5@N1}rFIe)qe#p#f40h!8D6=8 z=l0Naq{-#V!irf*xlt*^>4*eJsNy;-GkF3A5B5GeTGuVR(#5Z8O`7gE=@oC2A4Lm@ zNx(LLKkfrlV!5!g_Pykf&YYc=wy&UyabTraZ%J~yZZz(bh1a<`q)uc0CgKD&Sps(7 zlvG4VO++ii6h*-tECM4LsIO+&*0nH&dmj#A?gL$wegWotDW*P@#Xj0pdSwX{~N zY}bWpH@H#a=;^|5v*+}&%*x1Cz!Lz^4H3e3FIhc!1hdSV+7z<*kM?Z!g3IvSvp<1v zZ(FM8{9C*ex9=;w54EM$753dMOiVox4yF?5h{RNdpJs@E8Fb8kL{%LZUn^yvDDE!R zo87mpc$+m#Oj|We^f2#a3(ruuEN6$KRNg~G>opsIr~0TwGHgfW4+&#}{rUz;Lri0u z2Fd>7ox>N;`f}bd$zyrt4dk(`vHk_8bpIf-vGb#&tP!b`-K+H=*sG)N;~YN;-?Q77 znQ%jmwR zM+7uY)!Au`VLCTKKbf78h?r}VJ6^cv#)Eol(ph-n=8nwOxIeOwQud_B z<-TRW*_c~x)yCc)(y2TgFk7A8kuSVv&aZp$ktRxou{k^kit3y?bZ)cSFmy+i>u;s_ zI{uyya+v-u!Y`jxvU+P6AVmD-(!tl@dNZ9$B!JFLYm4@ zVqArn$WA{Ej9KQ)bH2S0W7sQx%%5@FURi?sv+#3u-Xq{3=L0|=`FsM9WFfq>DbSSI zRfJ?D^QtDqiJ7pX0;-_u2=gV2YVCnhpnJ<82(7A(kgDfjkDAP_F?!RJ=gt>F%McdE z^o!blc~ia@`9%PY_8%@lIh^cy$rw=o+nY9&W%C1G-h}DZC9w%VcHere8an=5LcF@z zAPNDGx$LV=gaCJTwjt%sawQc^8lb4-nID=XTZ>)km$jdiDIb(sCUdRnb0~vBC+K?c zt&QAcm{5x;@!{JJ``pB+@!ZvFYFs(d3pn97B9!`Vv-sE}Ggk7DX105V_2=);@@_ED z=@2Y^k}r9s^gBTl&r_4DaTwDq^|1{I+JsH(D4C6zk@QDLQzkI|dpet(c$b2os8mvQqHH<`Rj9ci$1+Qrzl`uo`awMH1|z@vHNogh6KoV{O{jcbqJozkdh z=mbn$j)zu0)1^?v#_RzQ*Q9xpV>d0CW`61p(<0a32-3U%x>G#p$?^<;xsVXR_sz

@lPa} zMo2}fF$%PzM2^lKf>+HKPL+I45o}heZ4ay?_1!pG(Bh ztsv+BcQo@1vDqXD9brnQqJI9qd5uPG+H zdGo`NQSFktgY1hBFrbJW{(AYKZ>o+l%s+$RdiS3QI8nqjx(?t1Tj#l9F@CJpWmE zPDf1XrP#i2G5q?a7ZGUXruTZy-Ejp&p?Pgvf!XQb@~(wh*CG4sMCz?h^;&Z}2-^0e z7nn?J$f2*YNcOVe#N#3!OVp?k4)8aO-6eJ}9cev}!-1CkFIScC@uL?Ddcv;vdnbDz zO!%R3T1o=3gA!XcsAd*abvJs*3InA;K-g1UErbEx#nAUurli~$1f!MaxlT&G0}XgL zEy2t-N7QfvLfJ1(=tqP`dxOc9yz9|ZfTg5yT0iUMsyiB;Rw~^M;a84lm}l%ON^P zqa!L5^qLz$17q9=WR6;37!J>@qMbF8<6CXKaM=75Xeq4?q`Uikbhl21oEIJrElTl3 zjkkQ=f-G$=Uv326;_<0_rsddm-$=w*!Xnaf`EDn)@`dS}fxs@uaZH2fg}saGvmy71 z<$LJ8%g`ycKx2q6{;5KzpY+(tJKe#(FS#t;mrox*2-8krM+xcSEZL^6;z-B=AXv^Z zrtPntl!hV5U?S%vc)kE4zsx)EzhHV#RCCOzMvyFCBcw6Ur~ARgba^JAWixa!=QnUg z%q`xw^eT;1FU9Ntm#`%|@MZfbEQ>PZERa>|l-{|6jm$;E@D5_HV811q&j)#G*_Jsi z#nW`FdDb?8iVe(ZVNQfjswmitu0NCNfWrzxy9h_qyomqoD-!0s-vR|-wP#ty;;17l6} znURj1%=gnxA(V1WO#vHC9Mc0#J?}>2*x>%rEohD5^@<3V*>NJTA`~%L%Y|M*q5R?p z;YMD`YK`;x`!je(ZqfF2h90|Dt$kv$bj_sdoIjarf$o!Dm!;eC$yo9w{1c%Ueb`fG zu%1N_26y*oNVGR&s$to+e)y1O{xWSSjUfA7-Q5T(GS;f~+HM*thJWT_wuS}_`&!T7fgqK9W z1LR*sEA*i}_obkd1;yl@t*h=Ip6^`mgbz_us=KRV*p$I z629Oq0Z>aOHEwrL`;*k!ukUVp$p;aHY|VCCu6)Nz%%3{xH?t$@{Elz-!rFIyXG-xs zl?DFs*B`U>Nzc+^DAQpxT7j~#81bM|-W8^j?Kn&V1vAudjr{!rq(RF0`chY|+P^=J zBOX^k2E+S!ui>Y*Gm#EL)wbJP1dqa4jBl5@beXe-Fi_<31wv)u1maBZfX=_k@U=HI zw(#C+OQ|X_Tru)1ruT(PZbgaARYlhntp%#lE%++Spcu0t_wBt-M>+JyJwdH3>d;u* zMDIE~^z2YhNhQ1{T=W8;yJfJ}BIVb3{VHHH>PF9uY9E}1NdkWj9@sNn$HjJ#q_d_}4*Semw%jOaC9838 z1?d?VVDtvANXkDH<-MOAYkOXpmiKJqporxj}q8x>Ls}s4kYTr;k zYJL7f$k3m+P*`D;cb>J$fn=cFn3{vVMc??&01&*mEQa6vq1ZLG+~FISuMn}D&Pj@c zVswyNtIij~KXu>cYYa@BJGR}q^de1Y4Q*Xt7b9v1o-!;hG+g%=s#oYiU?;dcTRGUu zlKgdj{z9bBjP=~lwa9g`Lrnc~y*mhGpXI;YNQ0<&GuyMrO@?$arsSe_4_v*uJk(-G z<|0eOX}rLMrMl``JZcDBsrT|AxE+w(cYNsFR8=w!RDl!1zI{Y6ip$3QWvl-w$vJBq z6Vrjzk_iq?@-~1D%w0D@w@?hg(BhyU?QX`AHy7X)P`c@h{Mk`E85z}okhHkE!!b=H z9|aqt2)vujD9=gl#>0-u+J6H~j(anQ;Y6Nl-dS)!YY+uMoz{U$e`r%mbXoAmaTgF0 z4U}5=@!SGa3N4c*>-nYrsJtDSjm(Ciq?Y#1ZHR439;hp@D@!ik(Cn7L-Y#p~kv0(W zB~vjP-Q_B-4p2xZ=>6tj)_K=Bw(zVo_k;y7O0cj>hm&*%MeXs7mJ8})(U5qQy$pHtbBfX7~<8q^cBRq+{Dz@761k#C{z@Mc)d)4GEB*Yhz?DUej zjh=CNY)h0;(p7d>U|UXq6IzCfA1?~3U&RzpvpAz3qavYg=;a}T{JpA6z7lvbBHM^#U6l@yIP4H1bo(8t!XKij(Sg%px$7D1n1es}tI6 zqshtY$VxiRnw=d^2tS%g!xih$K0yReEXK@*t?xcDt9O!C>fL`MwvVnfgg#J}ARGNi zo-3pEjTaTwxd}KgRsI$8)HrC5!gTyT#odLE+-K6>S8U=xq2O$2NQ@sSswW^b%D7Yp zpc`0EcWBrI;fS65puXX_d)42g5BavPcljg>+M~S~aM{Ncrd#V~7&9QqS#`Bikpl;XfhR?O>xY_GtQ7n#ibrIvz53V zPs0|U)U!~xcf3}=(<rbwyFSz2iKMV`fx1X&D!|P$%UV_NrI%UVl5CLB2 z5ZsVtS|CE6(e#LYBB~CRWHryYN3ULyH$9uY$!;R%nQE@Z)OyykISh94`UClogHTjz1^Je1*h)F8j{ zGZyl`K*6dL8a~t^p;=P{=^pg^hzi3Ustg_q5{;I0DhAyyQKS1|n7opRanh&jAAg)vT1W zm+S*JAyJ>VXy!0)rRdfVMSG34NHNd2bsvgT$@(|hbKlk3u;=DHwTy8S0a z{aRD95>R6Q$_GnW58S%D2+H{>oYKABvQG5H_1mJe&3FEUKrVVu6X|-LaTygupWG zs)`26+mv;n)iu7!5VEAYv){YVJsbw6mn%AVxM$evtD&0dRg?6_!ir~b;P=0F^fz#+ z_k@y3|4yX@Qzwh4-<}nHox`-sN{Fe@>Qu+=KDRF5T@}^!SxWb_Sw(+;AOj1#t zOVRm$(KM!+^m@fE6I*rLG4j9vNT;1q(WJ8e9F;o!jg^qCAsO8p6(|y;av}YQ?VGef zasF1`j?)JnkTZzf4Z&%~Hy#Q>c z`ydQ!#By$Il2O?aUI3PM9d+h?{acun!M{ZZf3#9ljw+}Fn!kJyK1!Ql3nvE0GShfr zprdLLqdm-jY2x1s0e=J#G57tu(SO~%e_cq>ASm&_di(FuJ_Db=*8ShZ{<-6?VQptw z0|q7b|6d>eea115Yxe)oWj_9pj`xR;@D=I#QL|XS zSR%T}I(8~yS8XkT_ zhWonBbJ7c|p(Py|I*-fbbH?ln^6j`7Yy`*UVW;mRAPfIen6H~XV!QcH-I}4|&`3$Y zS;W0J7OM>l4Qqg<;F{dm>xu7qa&$oKW{5LDY2WA?7}<90p*5H}gYje?e$UT0&IQ7TzV)A@gL; zYCs=5o1ffZyCm--ma1Hn?bTcu9G@v+k`ER3F5Q&*gN!vJ@&DGZUw@N zk|Lk+({bf1$>1Vj4PDT8mk=-n+Q$JBpjdaTee&K+;QigXezM*p5d0tYZZnXwu!Ml# z0;yP9Ses>Xz+L)@AbGtgNx@|R2_I|fg9~t7B8VnCLu~T9X6vhx0bMx zzV7mDH8>4{oym;dqt65h7H(n*tEz(B+mqpGi96i*aYHbSsT<}#l`g9a_iXs3fIUOz z*TCHl32}?T6QP(ZdFFfrW!#9;qgx&h-k_o32b}9cACTjBE`A%?dy|au>3MxIzWg(0 zulPyaLO~m>h~Wl*(NVBuNj{(f3Pcf&Y}%}hMWN%nl=Yd51BD|PAa&NjznzIIO1sNj zYDNal_@Slknu`m|FNN&MIFkOhtF9Mrr{fCUq*~6h{22%;3nmUxLvO_CWmH7kTE8{9 zToYAU^19wINUiMt32Y1Aboa$msUN;?ed;e#h>VKRZ~h1_*^Ny-ErQR9N75^sc7UrN zynSxwfG-mK&dAh~_0(vI&ug)(DW41id&N|3#~gSKZ1VJ7LD|~fLUx=at7F!ocBo({ z`q%2##dUtGxo^}Rny{v)f5m1o;t~)5brLUJh_DaBfE~fO7N@@)SFYG8b0-V5#6SE_rA1O;diQkm)I;ODecU*Pqd$q#z!BN zwG7Eifec>hcsSRzDCl={nk4QE%&JWl2G%RO`?_k^)I&ifunh?AE5?n&c^X0)n>H1B z#r4i)A#Iw<-d~;emTLYShynIatwDM=z;!l9R3_;Ftr>-vW)zB(Qrq&dLi7XbT2yhGK1BkIyir51{3Whxwi2szrI$8MRKgl~0Ff9BYZx+mL06IZx=wm1Gs zj8Bn)|7#BO&jCSpzgl7}^ux^Mehe?KuuQbUQYuBS4P&;2MP;Y*xcOBQBJe z%RoNdnZr2Ep-D|xY3fdYri6P#;Ww3wcX|vQ-(|($G(q7vG%z23Z|heU9#3m>)G&yd z+EY^FkZnroON=+c7G|*qyB;=ze$Lmsuc9dEm?ER@w|pD{8j5<$SX`x?&V6{fqEUIF zrTt077N$8y3YVDNaMw~+q|=EEzZ!||SzFubB>m3M4$_(ybe-_AvCai&WkO0J&H!4^GU`~LefHT1Sw^Y@N z_8q*;zXsuae=-+(ef<;S*a@SPPTp2!5?QZnfUty*fjyAhl-*Onp|HFajnUYVY%-@S zEmC!a?}vh61DVYm5%GRkupGeA=w6J-YE8j*Cw=Y*v0jBMRvUWga1O zvhBBzgV=d7=^TO!Hce~0PK(?;R%M-FZO8JNh3;5MWkVjN`ga3WqZrH;>=s^B@5l$y8W zL-*T-41u{2e(7w&Pp7O0xd+KldPIy*JDt;Irf?}`EG0V{Bcx%->*zz_$g&Q%X1ivx zXxNj=E9xW&W=P?zNUrhf_8WNBawa9%L>^33Gr0YRe0l~Zo=1?nFjN={WraL`!tyF) zAAjr?k_(+`pj8y_L&vfxUmL^W^TnSc=P?|nBRB3QOl-%>2oH3#N{1cQ=r+-F#V2E- zu$SGH`oykmw~gPks!?f2&HCU|AvzW)hHaDCv8 z4B%7z*BFoonI4QWB1GsV1qEUis;%lmiwUW8`K3nNkiLF|xf!pg>RZR7;&I6F7EDuq z^!&od5;gR~sR|U~5ZCx-LHhp)`^MnPx~|)#(;eIC*tTukwr#Ux+qTiM*)cn|Z96%+ z=Xsy+z4!jPb*uKDv+Gptwf3HKt~J*fb4+_{uCG-DgD|he(3QVgWAv*0$mgwt08=@O zqd4>6f^1*x9@6$v_{Sy-Jb#8rEYglAe0dT>GJ9{XtX|MCfFKFaRnV>icxP;jpDy#s z*wvt*&H5AdqMuE*yyWF3vagoGms0$iz9yI|0duMdGTD6nb#n{6QT!Gj?Fj;DOB&sI zFZr-O%-eD8`b^EGvPYGcr-uXBeqeQDLR2^I#=hkdo;=v+#-z_vcarKE+J@&STCGP# zkR@Bz-*c&QiVr;Jq*3t&?a>Qd2Ny^2)6=jy=78}+p6JlEEp%z%X4z)oW|vs8>K)jq zOr+Nj%)$Ly+S8L#JQnB7cGfH9El|GQ;V`aJg>HkPL;%m6jm)uhv;Ocv?me=i2%nt8 zfp-MD&OMZC$#;OfDotVbZN7w_pX{P1q+GZt;hO)?V(V0ZI3$$QpvPM)$=A8^njG^S zPoQIU``)Teab+7~=CQu|xx~w(P$9lo;Dx_U2bugnR^;5h1?&qcahMqMn`60z+}^|=PlgBH z!fWSq7NNHDH=C07#JRnnC+Fa$L`@}2zVvhER%2~<;+|+&5FKv0zApxNd6gpmFPPj< zZmbV&&lFOW1vHewH;h*fO)=u@ix5+YSh8i2qb))%>D`^oJ-?VTe+%!P|2krX``H+) zdp_N|9nzyFzoo|;`pa-|Uk+`)>3?fR$Lt6cZlbcuEOK9)U5Jd~z04R9x=9TS(|QA*i^F z^_3rshTRum;16t+7?#_6-NT{c%xS6f zBPY=G$`i!#RS6~JO=Z5CQ(9bFEAiFsy)Gumq@#?^Zez4WT)7ju0UQQ4&N=E?LZ%?r znl#->tkX?5eeTB zo(1bmruSl?AIV{~*`}kPhyafG51v|b7d;VhD{Y@rE%;gI%39uO)$(Ic^k@;Es_sBN z-1^p{ziny>4KECxOx#}iCCwPp?|CtC+!BeKM4QWO2t80>M=(kj^> zFO@-<0Ub=RF#$=~v9>UoRt#WHy%b$&m*))Xhl<-|H6pT(cw*f88(p}d;y&Mm^J(Iw z-3UFZa6#FVbNTWoiYi^%c5xmdtwf1M!$JX2WjgfL%rt4Mvid}+TnnM|sm<&Jlg!v=Y@Zo@B zxY>UxD_i2e#qLSdZc~~?(k+0=wY_dsZ`3>x6LU=C|8On7KFQC+!8Kj-_^sByjZLWQ zces*|-np6Jz1R;L&=QbrOop0ZHL%vx0P%xSinxf9IPCxom+wsFoN~^MnP#r^t$qU# z)k6s+uz$;M!RrQfaN7ypY=`@8`<`OQ-(56Q+w!bUyb7oZd_1rZ>qLN(zA{dB=dFLhud&G71K$}ccrmCGri+4KjRc1xGMt?d+b!xY?qxd1iPhy?e(!MjO#<~#Y28yg$( z>$5+N2!}M+B$UlPgQ;5*bDtoSMkYEie#|gk!%U^Gnp@Z;`V9CDY~boZ^Ob|wN7Xd^m_e< zcslZuYR-4C=eJ)gOevm)Z)nltln-f9jpS=&tAow&CCpHV32AK}Va zBIh6Q|9V%nk8)in#%_wQnBk3TB}|!r|LRM?hqko&HZsbe$iTP)txjBifGUAnebCuH!o1OMRY3*<3yj=Nvc2`Zc^{%l=?R#kd$*f5d>gAgW&a@mStJvR z9AN2|XCxcrCJe2~j;FB)WDVP!Gu&Yih}@#GFE@fD(Qt(Q3gTNBWh-4h#lkG9O?UrK zYQrI|NoR^5jusAw7&Ca5EOE)1IJDAXT7iQjNCueWH3{;vWd_&9;W9v}ZM+@=wz);C z#8Ue6A^3A0S$l#WxRI)xxoUpaCfo#K(AuxuI?{F!qrY3%!eF$Y!%|PTTlVXc0V8j~ zz`z-CZtcR+>8C?pbE!Wm5;LwzQK3CcO}XDk~xsa zjBq`beBik5<|c6=Yk>mv*;_J`?`Pc{n9Wwg*dspe!FO4&%ws>cjBrFWJtyL3(^nH5 zIkP{dwkCSL?Qgb$)Jb1mLCYg;LZ(c0a@s;#BL+^I-+Q;Za*G45UnYv~SLkl_bT)i} zo4abV`aZW4*Afce&;K04Y&@c(>-E{Nq2TbewTiZb-4L4G$#mh~N$B&I>0TLn#XUe8-cO&!<(-)ZG6^DJXGR5#jxEBaJL1e?-#zV(N65Dp@8Cr~iM}`M%=C!r zH&)5Iq#A{@c47WYfoRc=CIz?JI(HE?sxNtErUwKd9!ibCu=AY{Yaw2*w0h4e`pEi z{#kLox|jad_WwkVwkIV@JOG%3lVe#yE%wzrpD!lI8)M*pZXpeMOcZ%faa>Nc_f=m1 z-{7>rX}Sj2d3Z-kh7(bpQSJmq{_UCR=4wti-KVte37s+7`Ih#LMt(GUOnnN{rWttR zbp%AiGh};!v1mQ6xS>wFdP+fe1+jPrWAK926cTqANH8>G*KF^@Pi{#6dc3%newZQfzPlWfe7sWUR%sb@ zBM=H0>#}Zr3X$ZQUt>)LpE5^ukBrXte$nS0yX_VSi0HkzB7=&49d$puIaXZS=l)5* zaX`-Or+QnlpSC1XW2@FR0p|-{%csXi7&y)RH)@DI_1LrB{b! z4&AQcL;BX5AT1h#h!);Wm{NFc-&$_)1Ml-&eO-q@$P^K%ea!X#tPCs=2Y;lDUAswH zGt<$$<5CR~OOe)##vfmEVyaHI+6x`kA~v9TqW`~n71{|XX8<_^nu3!7;PD;^b4Swa zh0n;ZoyVUG2|&{Nnf;yN4%wk8-3$0=pMt1g536aH(HAUmELvSG6(c0hNj0 zcvORE*81S{fp%E$%+B;skQP6dQ$c6t_z>go%Du~pe1>i>uQ|{vgQh?OH;~WF+=|uvVyytH}7dg3iBd z9y%pL<-EE@1+~$n#PmuUjR!%=WU)n1&L7>T)!i|AZBA^kA0urhVLfz)FTae5Q0F%Y zNYm;K%0-r7SFv*q$(h;T%bp$VZy)t-wMLv5-rO19Yup~^6^*a;73#|#zkaO;vKiq` zpvw)Pi;=%V?3hlQY%)vAc<-(GGpFKRWCpGH{-lP#I9Sf9b?)Y6V9)rSB>Ad$B+z$) z;j!zVM_An6l?3^Yy(_%1kca$tbq;%o0WX6)j$&l~;%i4%t-Ce!q12G)?km?M-6pRu8)X+fDaaF!=|K(z3|2nlg<>=-RM+>`Cr8$Jh=}<{8^l7hQ8jC(cVHHJ{{zx zN#-x|P8dRy4`Q$Z1I@ncN+Pe!J7(Ae>Dop4**Fd-ky8>h`pHTn8IwUb9Q-UrIt(TN z0k>A?(yj09FvfT{1G(UL%rtS`bR5N^VJMj*Xto&K>*B!-RH(40Atp^RuL+g@>If{x zDa)cFtM488@q)_6&RI{S^8#eqP_C-9Wp?9=PcOKPrs1N~Fb z@#vS`RtQFfJiko*F&DHow`J6cG!nx=F;MoR%?t z52Id5^rL+iK8ezPaR_DiM(>tbyYb{A|6_WSh-6xwVAm*8GkU^crhHEb#fTe zO7_>7JeXC+tl^M|yyO>rrpg@KS17GB1$2%zSuo_aE?Y_HC697E^V(dS>?FT??wkHi z^w*QVwZ%l;;x31ba3QyzI4`y^emS%saXY0c8zmuo$u@gt|IGN?`)U6aWDIr4!Od<% zUd3uqSh>eXgVPjS3gm6*02WiqFJJ7x$No|wq*y=ff^#tZK<#M1+!XeY&q30>xH4BF6ldTK12$wdbFk~_ zEx0I+3wIiAn4q=4Cg}<5SfW=Vgu^E|q}7_i&fbN?^Y(uIk=-UdALY^${df?-^M;W# zSqdscJ`Aw|+)J9vsYM(*H7{rO5d^imVpcHjuBX>3VQ># zxwU`6HAiM7xhv!l?L7f59H8F>9plg3F^L?>wGMk@!p8kn>0xGsO5c0_XST>oCRa~H zR%KUPdmz>|@iyz9Ff|+I8}7>!iWLeAZ;q*G z5g0CiCvF)cAYAd55NYx%eZPA9D-uHwc0a^b&jg3AtZ50p^%uaxh=;+aAucgl?za2*uDQq=1LW2d9fZ+vBILaFl+Gf&{qA6T zzN~nMJI+&1PdJKc=PF@Fziv@*^%YA{m;mZE*LMiQN&0sS61 zDQm&H+bGRW3ntJbDW^H*F&1wWE+;1E?I;3^ewr=5ji;VNi(J1fjf~WVN$yt<-*E3IF7bHS{)Le*4pT%6@}tI z_N&Pn{v%80>7{`L@5L|EnF`{Oz9F2ovcT0t@!Z5 zuO~4ij*jqBs$2ND-d2@DyL8IfyCi$I&UczZ=?I0FwO*zdgY!$;OnS~CM9NndZq z89{VMlyvREWU0F|HJQ!(JNO{)Ojj971YW*K?Q)`{1#^`ed6IETYt1+K8eQnA0Cx;| zM_6;A0fxw4uN)XWdi`hT`7zcm=Y~K1M@wI8J1iUt6;LQpik-&W8gjd*CVZQ2;Z6w& zLIj9Sh0E%V?$>g_L(Sod2?YIZkhh2WqK-G@GI@V-tu?`iw=GEdj{9f0Kt5 z4>9?u5e;RDu?kY3yTi0m|2sTK;_H5_wKDiKrWh5H83XSjokB7GzWn<7(aSy^bqUce zwVu`9Z02KbkJu*jwn5@@-u$K$nF*<{4xUOYfy>jN*8@%~E*;^oM;yLc;NIv({Dl8V zGw||fMIA?w+qHD@^>uv57;|oV+0ou+$F#$au)h&OjLu416fb#Ax>M0B(dua#Bp&y7 z%~#OrgXaMPGUvYeDpw~iGsK>p6vp$_XH_;VbpYF$gx@(yWV_)Y{ZIL>g4j9bkc+oV zN>t~vn-f_&^_E+0wuvwle#UsH1Otj?<$UM9+-dzGl9b+#i4J7bnx!*oU0(4JM1E+7 zEJhXf{CB~Lo;WATRoz9u#4`+u0sF9gyBGk9`&<6^Ssjx!PgU=PuC%K=HQ~@*tjjUMW;-359+B%eDRX#DtS8uaaV4cGl&M@ku z<1_vqq9)vlQAM`zNA&jJpHV4Yt23dG>OV z$0jFLHYxyttTdZ1-jMd#WcHp=j4&i@6rrvzEZ>ma!lI+pn7UfIPg|N^llS@>p2YQc zw2o@|)2D6XJ9m^#^6iFM{#cB}PzGy5uqyP!B4*<5?v*zF?=X+{MYqd|fK{ef?$#MT zJw1T?rI+w>kDtd2LZ3x>Nl!;$Xvfb?nV4l!j4#viX7#g*33+FWA^N{)*<@zZ&<`cY z9QUvKl3KU_Y{W)i9%f!bHsx26zr_1nzevv~R9RS;m`?zwu<~!bSb06dSHBSIk`9+U zH#_KFeyguMJzIV+rZ*q&%HjspI+*Tr(Hp~S1CB-2a%z7Z1o!;TZI%xa%ED;?P14&< z83`@eZVwpBYvwBOEvq*=rxsDSH3l>t;;@5#n%(an9Yam&jWr#!IS)Z#JUoa29w!u> z__C+xzecZh2$n_ENa#sAs4`yXQyn%oeoFG7TFtB9eMo1Gv4gcSdF_g&@)j3*oHxp7 zCqUh4pxfxm1v-lcs)i>X`oM_yGEQu4$=ngi+-_ujhm?SNQOkZ}`xl6(b(SKg&$=Sbh09$3|DMnXN}4WP6bk6??(A1oW_IC(FB(+-I!bdjrZ@i*fjUNYIRINJ34`k8-6~R- zB}zK)Z@U*qAz}WAPfvGluaVqxHZRB|Mpalcic@O-R-C(p#LUZ`<3{I=t2&5o=1O7B^Gcs;W4+06^C1Yhn>Hx? z;tLx5ZL(yF&G-|vF+r?I1j2Dri0|E*NRO#}YHPC4o!cD|?BqT!X>Utnc$b9@_2=!+ z+)-!e)W(5J(OkV8Pw96Sww7cImL`sH(uD4uR(_dFf-D@*L%US^Rk2bmfr$=LDIxY5 z^S75~ob5xgJ^E6D?cRV8{L+?DcSr1~ualwPt-R?6!}S+w`7*nk+`i=c>1==j#^IF1 ze6kEYBhTv*OfdI1R?Q2*&NeL&1T8_pdr~#Y887S_{?01?;90`Cp%YBt);Oqv|J6G zL#pRAJ9QP}ky$FSAU%ICxKl^kSG}XV!*Cq%V3*#Fq zj*0wJO5k?=u?A_<{zOMqkv| zS6C-lX2@=F_?*&Li-;y&#CbC2cFrVK=3G9vG*++FMw8M zT+4xt_P~IxEqwNCEY7_Y+srHHJ{z5Zye&qZC8(IMC^9zW3*v##o36JqpMUngDKjR{)sHgU57Kr1Xgq_onocN+(j;9lynPOnjT6$srC9k$(GbQf=o4xV` zL!snQz8_dWX%U|1{O7|4W;wdY0g*HEdQ>_8hU7s~%jldhr0vgpcc1Pz%a4I!hKt!B z9|uDSoR8bBH!z)f@wd(|fGSrNT^<;n;ptk@6u3oG3Z9QnauGpLE#mL6e-UZ7#iYyu z0?!I!;+6SCK~2na*?I-?HD-q}NNr12V?2J@LE=ec{0Q~;M@Ywx=l9LW_Z6hc`3`Wk z2kx2h!gvLQD)7TmoVJCbpa-`%g)l8osfCLlX^K_Cz4$12R&da@pIQrjr+ll@x zfTxcxis@=%FL}6+;NmWen)I(f(Ygca0NI1M?HkeENz`dsS?PCSyuiX*2+dBwu)4pL z$pdp$`kj9#=hsv(<;zp=a?aX_T&VbtLWA2^jW?4DJ^`sS-mK!jgqMow_)_dNHz!gf zdgDa|!5#Zd;t@&ert|sv!Yk@w|pG4tLA=y>SibzNWLR(j2hu=j< z_8w8aN z=Pje%rLUQ-?h#Sl!#I5Zp-BR;=pBOA3`71Q?E?6DN?c3>+B$QE7l={^Kxq@5AH6 zV*>1~l0DPzYqsTl`+*(7c1otcs~+dfOsU5E`}CVK?H?e|KW3qwrp7#~lVz_$d_S-}lhQ~EF-FBH zv2;Zec%?HY%q}IpyL*7NGjv<+F`^g5m!{*lDhdGy;|)<+_-JN8jV z$+qA7>ko)@iRVV~`@{$&-qDgNkvJ&|t2N_+9C!pI4;COFIOozu`3UA+B- zPu+uE=YL7$9@!LqxLfQpaJ9Ef`Y#v2H-%LnFo=aha7*}>d+hO4i^u>NG}p(urfPK4 z!8(A}IJf97`8_k`oPH*}eo0ncdc@D`dy^pW8nRgH>h0-1p;$_X|7TBK|8S#{eI>EL zR_>fRba0z@CQ>rj;Y@jJbBV9-a%{o-D~yr9`luW!zFb1b3xg1ug8z4&C-$$PZPsfP zpZl-hH;s98TW#>YoYg*Gl*1={hb7y!NBOj~`@cQRzJrNkd!F^X+O|^nrJR`a?c+O- zFc_Cc(q?tE7B1nH;sd0WPPu73PZg)DSLNhl$Y9Fdd` z;L><`QAGQ$iCT8?W|a$0!>-`WM{*)r2{W_G>X`*iILmNHV`2JxKgPHcnWPvziGTqy2cJyl4l~!MHklQ_#953l zbd@?4N%N63?y3UpYz5%R6j8@BGOk>Af0etxgYjoz1fB7r&#HyPn}4tGJ37tJk<~i2 zr0it@AaL=UOmxYt@G+-8aL{no=R*bkYAjp@LxsLD>n=l|m?L7LrS&+{+9S%= zSFoS9#ydijjS)Zj^vd9YahhzRw_V*N8@Vq+$v zMmD&D1oBO`-7milf{-~q6+4?<;S5i)Pj%gnQRM2pfmiJ>)t|Ix zwa*cq>|5vURIHiOmok&$d|YVezVDP>)!eXM9&WZKdOEJocj3LG)RFN`upj2#ot+nXIIb#JcMgeo z0_fNP-WY^4!7f$MGsQJ#MU)BV+rEhc(+Y`?l=J}C&7qVb*LStMlc))gJO5mxO)x$K z8bb4#b6}Op6ZMk3e7u(zvr9QN_yovr73{C(AJ^mg()4Gx);mKak)OUzrhEQbViNf%ct_ckDh_Y20`9 znjKYO@AWQEntCW>PUYn3BaD_Jj|({T7I_ItHL@p8xq7DaW}>>#Z5)tCMo~Li6-g#!bF(``Z(+)hY z+}K~Qf?3#QDc4@9rlF)CX16#-g=P%UDCTk{Nlk9J*M6QGEwmImC4Yw#ld%&@YV9cx`X zLXB-a9SOC$c*n7xdhaRRyXQBRa&~u)QgAjlJR|qA3^b(E7QJ22`)TGbl^;-BGB&*(6a5#y#E?je7mNg!UIK`s;=f^8t-z zA=~af_#9KM`is9XuGV;J$t89Xj>u$9DA$Js^pAIx=Y=w@#PDyUdu|awH}VO-(@kEN zI{gOh%K#tkPHBj^kOjF^n!}xgQdk5x!r?DbgO>!mDzlA_K z_3(m zEgasB$igiq<8M0O+RHw*!e((`^v)`Cs(WYRvwz?L@95ew8d{#6BEx*@=JX(kFd>G> z6NEC`x)0P$Y)w|h*&QuT>)G&*XL=ju=!t=%^8IR)Fj+XIe(#|8za9taEA~C&*PIp9 zGG*tM^h@?G?2m0ecd1`mlvUnTEZd?~7uBYXLq5dhND<6=Kxse+~%nZx>kY z;l&C77O}E|2H|7Ustou}VTiOA_a=<(vMW;<9<@;Vx0c|aDX!?GmG99}-sK}e>i<^D z=~D(K{_~=CNX7>-)o7lF64iy?Qi-BR70Mxq>$sN<`$m@@22#dCz4xyv1-Yaml#~MX zXin<${6XsP!Q$}%8OhOCpKljdRbRjO{OVese*PWwK>c2ZykGK#B)F&6Fm6gzPW>MT zW{8(Sm1!HoXzvMjl{ZyfSw#3_BTMfx_M(bzEei@ux1>P9x5Ig~24aLFo?l0K;-+v` zS^1^k_tIUtW}T0+uZWl}6`ckU|NcLn5Q9Nw0(IaQ*c8@l5HMRxF*;0ai&@%>>!ckY zJ1Wn(h%glvq;p_SxjyztSj z8xo;9l#@J0d>dgB2r`ya39P3ylXDJM)Yz|wmP8N4c9y_&3sS2T2q$&w)J$+G_-un^ zZ_(r>j(B(Lo}NKEIAf<|WPW<6)DABe@$r?`SIjUu7gSbfK~CD}VA1~I5Dx<8#UjZG z(|c~y6YadZsY7?-qnh;${?bKZHC}G?YtrT-+?K+T`?TJQ(boyQ1{LCrjK5uZHf4wP zsuGy~8rZ+Iz9k>tKmBQ65DR1UKZP6+-iVhX_JM&bu;!{%=Jz$E6&9u(fIlD7$W0x=Sq@4 z8ns_w(zi^KyXp0IsOBNto7uNzXv85e(T@}L>hj%jGJYH~>O<>)MLv#gzCZStbm3yt zZ(bqjF2oIPZr+QoOVRynhz=g_5X!oq4co_@@t&S=1uZRW{W>PWd~8A68{El)rdo4J z6C8eLKSSm4hLgYZXTql{`W$@>E!?e_-7PN{wNo;N6Ug^XgpEZMwVwiipDq`?q@g<% z4+0+8xUZ#7HV}Ot%tt?OQQO5UXZ82{%drSI5G@Ihv3VciO%MbWAQ5_aL(&`D z<7i_n_;=#BPWY$ z`1)3K0QcEdmIB^Q*&F!O6<8P2@iUyU{(3@|;?FgTKM=jE=mExo=^Pt_{c#PiR@RiJ zkpiV#Y|-&ghxI9kIA!u@oV1UGEGsgzQ218>Wyqk0sF&T~XvG5L$ewBP=Y^6q3j4f) z$YZg5JC3RTIw=mPfoLW#4n`=ybU&(s2b=Tx<|5zDO}*m^{`CMdZD|0dx|q)OFGAWd z+b>>8xsKHAZmm0cmX>w<<>9whM<34a?rfed+frzPCpFTbupfxde+ZaY7X`r;~kBTw#dhRPb zpvhhR$K(unq)-QY+)(a~!5yDQjOKc|hi-Ymz}e|*dtJZxyOymznVWOki{kMnIxc5W zeso1cqaYR=J=u#h(cS%|g2!UWg}6>v90cw^PkLb}d7>_t>1{5)fD)1|XJNe`N8;pHm^^DXoJ30h3#9a^5c2W35m;G3YPmG^{#yN`)`YvZ#>%)zJ1Ly89O1Q zt>HSd=Mj2h2Ya{C%4&C0XGtpAjrDk!xb!W_z1WY$YREAEuA9EVW#qM$n!y}zr{;J< z>q<#iz{=`-Trb}6WLVIsPshRDW>pMUd-XgTVM-hGYyGWA=ETZVT|;VCZu(z*+fJu} zrH7U(^3S2};#SWKOwPC&lhsQ?89dd#SRU~^V0@`}4E9`fwonBsd|P)tB&U6A76;3O zmlNEzG`Kg0;3&5BB&b39no5GiK92H{_N`h>Xi43cQWb+zrS%UH)sdepubmOnQy$1H zbDC|!X|wtRMK*&Ye`0!AubA^|U=uw0&mW2Oy@_o8fTM1eCHuNC%B#VtWW#Fflr8q~ zSA?qgw1dW{dL1ck`0S3xOw;RVayv`JjF~h}1^$-iv|R_RFpxrDiMDkN;eu4*G4&4V zu9!#r{g;kD%ge)qTRVIxzud)Y{RGjT+Si1I1uwPg7!nr%WFY^HWpl&C*#6MirzRh7 zV6X*NXcO#GSG8@$F_F@<$ZsQ6Oe^iGTHLIAcdxIenr`q94_GB;!{qP#Jz&+kCAMgP zr%gM1A@1hYxzch?N*Y!`lzDERAufhrJ59_)_$K1fcn~pu(*a^SXAU z)c30`-K2<0#`!nD;bp64oFY#NgT1sUH`E+%!O%d~l#~$C6XMiSj#d{PYZdt2TGAR< zczU!rs=BlJwk}mV&R2#&7(q-;O%A^a`$FDcpDpt8>t#N=_@^TN#16>zYG`S$`r7xZ z#Muh%d-`}U_2;VU?l^k5XVt6+xijP|?_N7Htf(IO8#N!-vl5`V7s{0HsSn~>&YrBQ zOsbfV2Tve;dJUe^Y_UeGdwumdQUBW2T8p83PJeukNUv{J*Y#^m7+XUBk(V2utHWp$ z@LJiqKXmlQqbHV&jyh`A`Y#jzlppm!d&JWh83G{C{g zfRo{7qVTE=F4;`?y1$ukPuk<2hTJcv{^sTk9%_v<86ra~foM9oSdLFB5Wh~Q7vVOi zWXo>_FHo5PVP7aTpxW$Zl<6<9m{4;|IQ=+)_j%}Z zN%l;*d&poE^pmsc%)90C{1>gPmrKu?N7sr@-jWskB|BnPIgyhJe2FIrvXDKjfL%2S z^&h}}i+R_B&X-LsKGJ_%roE+8JGp~Ur^2V|r^hTEvEX&<&|pi90Nv6Q^Nb6(LNaWO ze<@)0``yYdO{ey*1HegMy*QwLn)6+PtMj9~Dq(z&dNJvHdl)PUlaYRwuuYidSwe^2 z+r-kFqnr0?X>Uv&KrNS=IZJDN-|e)13zwdEGtYDiR4ECqNO`ZY<>>kY@VED~4GQkM(z41$M-E>0Iyx0X+HfC30++fs5!j%z2(*W6yHZr$B78+?$rc! zxLPTqkujVVtHO|}{gUJNGRXfO;wOXKK?MR;;G48hNs^>NP=>eG#AeNy3a_vu))ocE zqqZBX7OmhsMP_^|8Gp)ZfK=#!v$&;fh)vV`e;EyF*n|HZ^Eqb-lXFiVjt1;ilCGbR zv|pN50oZ!pv^{Gtj6CVsjQz3cTb_=|qR9-xziWz1;+k0lrmqk_Yr4IvzO-k}(d&sD z!*L}PViAbUEJ^Ak*l+S35$yd}qM*Q&TWHvhJS0e2ICBYvyfvW!oP~igHEnh zql&`5;0dVt?Cm|||2r`sc?;VK@CoSm&l?CHF;4ewA#cfYc=9nd_r;?pmgi1f83TQ> zEia`~l5Lxl(X0H_mIZN(PRqSUAd>jEcQer4m@^x^FzW<(b-r~h;csjzAUK05|H$0q zquxo8sg6C6Ivo zxWDk!py`jT|5?MMz89Le23O5RCEvocfG`pz`?;zW*E0@H$8sBk+0PaB_s8`X)XEa}P zuuxI-sAv(Cox3nbh19QxM|tMU3ViSNa~b01rK8TY=L4(Uf31a1L5xDNr3Xpz1+p|G z=+I-R1bglA&#jTN|FFy!C@*>hdqTZ!t5$p*g23esT$|0zcEx9Z!qd<4{n`1f(bLF@ zahk__0Xoo$_ENc4x0@{X5OepfG5uvRQ<=0%mvJ_WNrf@d<4 zHL#EhP}z*n*Y%~ZcYOd@H_xSJEXHp?RU}m>{i9xF(PCltP#2&X`TJTav8qURLB&0i zJ2gNI7m<%$|Kjbn{l~rW2c`a-zg^=_o3GoUAxuZ_-M0FSO|lrMy&MH>u(Kzvq0y;x8@uO#?LJqHS$4+aFrX9&JrQWuObxZ2@1{FM0grrWI| z%J?|eR>1$OP|irKOa+;P8nC_Uv*pKu5u+O=aY5M&`}hE|kUKSt#@`Gh0bbC<89c@c z@`!r1RM7hDV@vu>;1a2R4`&DRWr3CeDti*AmOtwn-_sCmi>*TAPZE82{TAOSFK(Ix z69gz@l7#ZiBs;JoEpVd6@79<*<5Oc> z^8eSsX;BpwKMZR!h2N_f$Gao4D+Un2PVv#3E8q1n>E$kG3|^@6Cfj=kH+VxthjE?` z)8oZM_JaTw^dg7AbsS zQf`x6CSIn^8j(hLmj6Gi1}O7uU0H)1ilk6r=1K`u@vs<+_}#0;C!-UNhUo$}>^j14 zJ-%Gd`-MqA63D160mC)JB_Ew%K6)(f+ZR&?`QyKgHGqcoRPSX*hcy)JC^#sWU@(hK zF*a(tO#Z_SJp7WTcQ6PFL5@gmkqZNXj3&nDTY&0F3oP!bmlu%h(wG+^u-QPwU~`K) z@H?^52?F1D*>On4H+MQSk^ve02a22bcN7veSS{X=uQ7w?)E4~m3rqdZwFxcxvx)6L z#KsXBOo`u@$zaRiESPGh*mK(vO&Zz(@9QsT_J@|Gl3W6%cU(rt(PESk!WpT_F=4B& zzio{$R-17gLe zyuCGxporN7MGvw;4r+lD{EI_rpsmDr8pi!9+131OV8d%qhzErEZJxI&MbMGeO9=8Q zWNt4N+wK%j<&U>aD)~2;V5!@Q+kO7l|1KYH7MOM-F|Uz4_0A;vbm5 zaWF`dCDypWMJpB^2eXq<7TwT8B-ROKf60#o*%)U@@t^SiAFLPweXh{I4EWR{o|)te z3?sY_80W(H;Q-9tk;VZ`W&R#(w{SNECKvC9QvatSD|&!~YmF{fdiSL4I?K+!gbWTb zSV&w+5lAGB^T1p|ec~sANQgE7i5ms+?}4~VLdB2%wTA5E%$Sd#zwgdM6xDfUiHD&Y zMi^dvn2(6>I%gDuAs*OlK{I;@M3PNJx%9vKQ*Nlq`lc%MZx!0TxYXZWGrk7sMYw=+ z{Qspi{-UCdKf?aY#D6;1siE*65bS@hEjLzLiJzZw#gPMokgl5L6bhY3g){y=7XKL+ zqdZD%Ja3j4Joj2W7-T%iAdS!IyDYqBTf5}+mmvfPhp$9@E&mIO{rl^Gq(w;S!RuN) zVc88xVUlurRsM0EKEGLbk?v4`VKnlmkYHRka@oBRdVJxb9@ks}CcJ}GIMZ}XewgZMltSWloX-6H4XeL1aPvG> z(UgLzcgthnmb%M*a%I``v}-u6{hOZoYIn+^&$35<#ICGr%f zW}GOaDB_gktv>xx*UCEjJ24FnC4QBaog5mYqkMN!cphCAzCO#f+kan9x`{Ldtn@FT za&LvP?nK+t)7{&gwk1=DB^5z_(B?NM4CiIG5fL5H@I4dD{Err(*Pf_Q@_Y`v& z-(G`9l+aA7Z&zny`KF<3qnxoejew^ty!^ZbCI*H*Z;wCmh-6P;dt)Lc?K2i2R%K3{ z%?8X!^N4TDMkhezjglUu3b@}4Jc!l#<`ME~jwmFs8!(EfLbx+HsthoAL;a%h&>zxy zf9X?ubIl*Eb*Nn9-B&c+whKymEO`%xv`vAZMMNeED64=q8%>=K{7@XwZ2g6F{n_DWkt5gRum5g;JiBbZ?=RRR!cUuG$2L$$O0mp;}My(s*Y8bX6T z{oG*j*>*qW>RWtap`x^C;PQv_pzOR5wl(bN=kZS$EZo-VAWBd&TUe$mev_vvlY~C$ zIK|QkkzT!;+xl|iL^n(@_7^UTumOUhuFl?4=8tu6&g-m=@!)Yf;ptY!vIwn3Huyq1 zkZn`2_R+!C;r-Mu10J7X3XRh*)-gI(PkiPDL1Oa0xLtfMn|l%25Kh-+8Xll=Ph^45 zV*?gJ`j`Ieu^)+3+n1a* z6|FNt!U-uM_+b2bcEh3b;(U477aK9Sa7}Sj`2JjE12Ilvw zI=O=e%&gVXLU>@KsLSt~n_z?0as90}qI0X;5s<0YT*BC6)Ox)rFtOdmbbIQ5Xec=YmUK0fx(-OUmcvNDU z>wYIPk%B+4Pif68oXHv$y%PFPzmEa+6;}n2+;jb)?kDKWW4+1gQ02=cJXR9D${&2d zHN%t@G#vRi4_I-tgeeLGiJ0u%aps)^@l_}MI z*hY1l8-74U$HJHcWSVpm-tr?q9?Qd!=+k57m_zmnOu)K{-f>F1)A{R;WiDr6HPZRdYz_(79xv0z6*6j9e z$Io&`YlnLd^qo2nK4fceyne?aF^W1Yozp-{<2(tZBhFiUqe#q^OyIn zVa7a-L7ZmiDC_F<6}zymZSB^s)GQCN+ZF2#AQ`tHR<~SRk@ICf>}cVP+|1SRxng^^ z4z|dTt79!0RA1s!n`q4AI$eOpXN@4a`c69iSo8@S-!p;G=w=Ux+5}VqU zHpp2E>34VW!Uy^xxO_sfR{q?th=N1q-%TZp{NZ(eDKuARCAypb#^I9QKEH^AqCwAB zDcAUd7bpt3W7E6l4j%JKKy_!|v^i(ZcW3=oMCWb)BL37jVLNcD|MC3o%c$*~LraM7 zSXj5DpW=o0n2H_A;JoKh7_b^?1;YQ?AqVROd)MW{i{Cua=`=ctr>8kFZ<0!vDK(abIt~F5^6Esy%U^{?dUMFe`sxZ`Gq$AC8Bd|Ba8eNu6STD-bJl%^6wc|{ZkG^NVJHd;CB#e#++ zu^~bQL{QndFPCt^`06doe1i@e9{HAxZ}ZQLH`1NCJNzfLkNh*roV69i?I`Y#vj8;a z5m$rZ^{iC|Lvrb1b>L&jV2thvaqY}j!JC*kb^q0g`#(G9dq;?3SPp(y3-fP>=4)Z(sCR~nAa14On3iXRiE8YC2oHYmf9#LRxq&Ly>}VZms=F#{LIhpZxz2&y|x4W z^Q&O3k5g85^n?5Bm{0gZBk72uL$OYc_rw<0dJ8PrJLh*z5ef$K;__{oBM)&`xjVe5 zV&swl*Oxuss!V`qy~2LOEcE8m@4y_N`I*wJriA-pcc`j)F zESs*RINW~X%8DM8HK9K{#eAfYD${+09-u$TWH}j&Kn(ibigT*WX6(F#@!M4>uL`4pGXx-%;Xb;e7TnhL|j3PM@P)J&)GW(6MEW9U-O%YD65KOrTF za)~~vet6x=<-b1Dq79WL-BuhiQ@n3L^B?2vX<>-uedM=0V`bQ$DKkCP8@+EoJflRY zq=~rW+#AMH2Vicjo{1w?KMV6q85O_9EIVK?g~L+&j|g&oMSgOw{yLz zSn7amK9x0}W?4Z#s5vuWafiDI1WvC~R`GEPN;6hJzlU8opyRGQYN_Ke7qJjteK0E9HDaiYKM!6cKKO@ zWOZzwkWITjrua5+_STZSnbjjeWZoFaAF_?{KJ&9Ra`%W&LozES9Y@;|Tf?}I53cqE z%D&1!B>XjnE|ME@@8?Gp-W|v++|e!Zar`>{v2(JNr>&l2F_Kgdsb~4iUH57957nAJ z6`{A4>`fh-t zfL!kI8#Q4K5h`^>G4-|xyBF&#O>gQt{?8iAEFYGE|K+Ia>uu<0VqLOEx>HCTvXlb5 z6?fA?@S}~54y|ExiXLx(N~=4*$1h?5Kf$RDO4ECE;Ovu$kRUwvxlElcir$BnDt#B{ zLT(!-0`+GpRyMvCCye;oBig#x7U3igR>kk(IL}^qa&7sy^ZYK>=;b((NmtrDMi36s zKo*Ck&G`;hy~vyyh;$x_Y4y$pFJW9$Lkxqn)XCD`_CMm7gV7<}3#nR`s z(|~X4!RpU=ksCLJ`2AIAXzo}-HjXQ39bzJcQ(wI^8IXT_yPOw6aVT~3MEWc*k0e)? zu7unHgP!SgaK!^g7C7fx#jH{GH%abu!Qz+U;Ft}5R&iGXqWw@Z++iF!4E2(j-@Db1 zGfRtGtQ7PTMOP=QRo2MEya#$Amm|cH=K1W`i;g(M3I;86(=#)Hxp{Mq_{4jP2C{bY z-x{TCY2KC$69snv==iX#WT7_ulo9T#{Y>xaNGThoQd3Q9<@cs8nWZq=ODpGeSFJq8 zz=UXS8S&nj7)#os73rgDvGta7RInvRfbq0r{k79s^9xes;#UqN(x0glj_n(cCAM(~ zf8(Q*@1Qd9k;9u}bfy^b_Ebalx?NK+0hOl-02M%lS^u11K&OP2aD969YlO&pq$E_J zHEr0gGzDx7u?IxERrm&w9ON>Rl0Ggz#jx&~m?Vk7K`NW1hgxh5 zcc?Mbv=h_)ORCAvt`tzqGv^)TRWER<*=ts6KE8lHAhyX)m$<2@!KAreO<3mrkhPrl zr8-Ai65w2eOzEBHj>pHods>Jp$m%-79_NxulZJD^;@G4qpC9d84-dA^p39-0HsoInugP^22X{_&VK4gR{TK6c zG`?YU{I5g;;u?eTAC-dN5Ca!qT^6A=9Y&^Dz}lFzZW&uOA|c9Qd&{x4GsvykYZACD z@0H#c6?=K7khFp*$fJUK)Zg-`u_6Mzze2~$H6xzn*1oK+H`6DGZGIa-Skn1fNZZT% zQ0?D>4VU$hJgdk%`z%Rq=((i{?0uVW&mBd_W<%^`Eyu|UUcPxJ6GpEuns$ra(t)op z#}Z5=Cflu)b3vFg)3>dL52ObLk@*7Q$>&&Wa~0CK`#OpT^3ZwLTHlV*`X~ESpTpAI zw`tQaf8%|^6CJ_i*7McA`Ct8lD8Fto8-E7@_9M(+5Wy0CSsX^nX9UPKSPqmT7c5dJ zc(HKudbej$HP6nShETl3o14*eetPtL;ms_Ry@b5D^1GA)*TE*MTUXbzc)!C zfL8H8fReL#-njdq`VlhV&;;$xb`X~sZK#8pZ2A~$TWtGI$YeOxJEULM9Y)WW&H9^M zFtK{Ba6XEZ5rDN2VvSe-h&A-b0;i_GdnP&l`oyRM*h&mR$UC-2BqIGgyM9_}xTO!_ z<8^MyU?gQcs|U^5#TSyIq)|RlR=Lbog(EW}4G#7XM$*5Z48Z|0)m@4<-^_yCm)wmi zbD8asT1k#DU2y16R`2D|Be6axi4-p_MkXVq9T5n$r#{(S>!bjQ>swXqqFsa5-1U@D z_nobMM>H^=5R;l}CvZ`I$y^9u-mDE#PUqQ8#3u{jDS3;b`wHB4XZpduZzy?z)!yi0 z{Kce}-&j;&)atk4r~6r}Q{|}S*dhv9o7yy^u&0e=u}LOZXHhZrd6D|7o)-~uND0Vz z@4rY<9AKHvs23Cb3PA}mV}h;xtbP+YFnY11Ee2CmZl`kdU~trtrRn+Y~^Ai3Yj?dxezpMrt%Y_1$e_sp32S>8~soX8$Pe zhc6eR&TD0R#uGO0cebHCZ;Qv9c$QO;4{lDo!p!_y`4Yfv zdt<{66!*RFOZ96%5<}H zJ&)^)>MV~cHg?i?Y0$!5`t5zJHn?AS;~W{$G0_#%oMH1+(*QLCW$GdL26Eaiv2K)7 zLEfHYtu0>F0;}&_C%;0F-F#z?1|G{&%Jgpva=mH+s@5opx-s5$FxrLBD%g0aPb_PV zBHQh)uYw>+1}tCy3U4Y*wqv6-H#m`fv&t>RKD!tHkGN)@#Pp!);k3~gN@o@NW8V8? zXvCGYKsQ#?VUWczZ}tawM2)OJ_j1cB*zx|dA-%Eesu>-V3(T(Lh9YWWqtw0j-Y9;L zU*+dB$vZceK2;mX|CmJ4b-Jlk%ol zBcAbm@MEv-O;p5=+=M1J>XXs^Y2Wk^DZZe2z0O$G#p`fRV&O!c_7>B-#IHdq4{WwdILNRuTU_Ieih7a>%@vhs$npqpR1 z;`PtN6k*oaz@Y;Be6~LD)~6BqZVqsEvn|o6C$h?q7i>fUF(Na&&+xS?Ey*p~brqcq z(E#Elu&}^BJe_x^80G`*jJI1>q-OrFvIP-Q%8Y5-68YJ&*RzRO*s-5+l4yUx6jiL# z8U35=s_tQVqy8#IA5|x2gFhp7Gu;sGpx!)d=J)Q~bWM?&Ls-ZK zN6>kJlF*hpQK;-nc1K*(P?%7%ne)E;!g*Q>-cV#`PFxFRFgKG(aTeW%tob${@88& z-08Xpkdak#ua+lh7J?#T)eO!lpNdU$NqIEEB37i1rWmVkA$+~VVg347S}8G%MGj`@ z(WX1+iO_OdgA-H3Y88?}L6Sr&WC@5g;>Q0};@^1pe&a;GLyaS^syU&$%i0ru7?H$| zJ)Cgr5g$!Pga?3PFnSMF?#U0pya)#jj&u)!LvmQ@;>?S&_ zH@)GFcaqWFzD@Ni@OGMJ%W{ujfc5p&h0&w%JSzs%g-O zJn3;|eVNO~es_1OmU8Cts%Gq_+YNs-%l?=gNK~JZLjDaB{Pj2O%y-t2t%Ak&ndeB1 zD5UI?58l++DnH$9sf#L+M+T&~y4udw{3mDR%+7-}^x6~db6ULod;}1yEp0X*@V0M~ z@WrceD$ihS_&xkrN!yi%|A5Q=h1e;LDBIHtRcwp**{M6E*1IGOlT==HzKJ6!Q%gZZ z;{2qp6><){{8^l^rA1{2)!ufS6>V!fuDYq%*oGZntkfhS(D9l|3W}nhg;K@V?7HF+ zlZCQ37DP7p6r2s-iqH#Q%B9g+lcoLgsEb^6rix&OK z0n=T}9qRstjqN+w8bL1_W&KN)l)som&~k0qqYElYMUd}8pwtLWv-fq=dXXDSNz`Ec z&F&=R08&g(d50?3p{*zzhJVp8n^#dCFi0UrxE5jZKECF#h$!@2Xk2H4isMV4HTOqI zxTMG`QBTMVX#KM)PvO^(hsB#-l}}4md$o_dJ>&_9w4lCjFCU7)Z`-9>kX1*1cZU?(fwW?s(a1*24zvWE4 zOa_SQ%Z^2JB3vj^52~k6n=KE<<(ulqf#mtr+OXE6z~r~BJEXnJY0{4rw`+{IYeUMS zADpXuW2B3akg%;~CB@a1El|X97D(aun8J+8z7P(B~Q$0vB_xWs{M+(jttr$~f7kQlP zNirGdxZL+mYvZTGBYTaMN7tB%ohns2dRzgIm1HgkAB?V_a0o$LTP;H`Su6S?c&d;5 zZeaI5Vy9yk?Np*r7#?{j__48X>R@v`w&horH$a}qN1~v2wUl4Vx zFy33pgTwETg)h@{d&)nbxc#Mw%%wlIM8QHMEBn!np`k9lSgwdYQ_@Y? zCt;P(Plit`9=oT%OcnYJ@Nzuu_kM84J5O?@8|@u65w8w;h%!F-eAU)pg6m3rimJZ9 zcbR?4|F#X+|7Z!LAD z(3bo*!)@L5TZc}ss%^tF`?4L*@9e8Bm**6BQ|SvwYS%fkl^{2_o?p~nx##m0scC0< zuD<|$uq&o$I41uSEp!Gv-I}%(j>X|?x5?e}1el54lX{{(*50AXR_QWj*wgLuU~^Vj zb%LxinS)w`_%FCQO6#|`82qhXdWL5tWIjWmsxE=1;REDlF%J2+Rp1bjtJI>+^6Ger z(8amM@@BN~KNp)TPehURVnEaC&lgxiv+8T3&)y^e))z<)jSa*?Ru7FFV7b-&?^-g|D=NQ`3`Oco zFFC6lTV^+Q2VMYFF5MF@C{xGWHMRFH-NrrM$;>go+tqR8to;)Cz1Vw+YUzN^|c?&eS2o}XbIL}eDnKU=<3`&kn?8hfpDcK*lV-Xx>lq+aF~ksASg zXw0uaphuo5%bAnsl*M?*Kq}df>dezh(C6Eth)|eh@8M}FEuwLMk?Nebx#JN&XJ8pT z%@w>R&xxmbbdALXkT%t#bA|5qkoq0Fs~Kc|+CCtNgFc*7-JCt_C|h2^#7? z>*uPgx}>fLee~sjq+0yIdHLMR(^;%#HT3*B{CE#UkFL{3rF@jPWR^>)vPrJ|AEPw-MR`5iX( z;|v*cgHr=2w@tGwuSRjxV9j+hh$@hg@hsd=Jbq3QcOmvUxN>+X<2L^q6odL^hZJivs~mexKzb zi^hYL#YS0HF>APDd}Lp_DhwpAQ>LG79t+5+G$?0ms64GUK4PS{=WT(mQTQJW)HRnJ zIcvTs1?3o_!`Jg{yoV%gB_ev&i{WPb`b8f<$bM+BIy0KpN92h&m6pQ}Mw6yq{ z81gFo4A^gK8o#m_EWwA%cg~|^a|@)5|Mmel)q@uI1sdam=3)d}#%uIrD?S&1Q!IuB z_fAE>X~O>6I+45sZttZuyS*L8S0cw};fH)-Qj(IAz3Jt$;-h@^6u)=gm%iB7xOM*e!(Z#R;`GT9hivHqkDM*H*ir7hVfJ|S7K6k4 zTjnV;S!O+7FYqGhHSdEJIyYJI)30Nt9xZ3C$i%8@A|p#kEu*Deh>C`ViQ3BAfD$3vaj-{&gq! zsKW44WkTY1GG~CL4os`H((5k7A4v~xE_UrZ=WUBOi^}m^YiHA`FrFKyx4j{(tl|#+ zwLa9wx+(miz2!{bIX}C+5Q$HZv{(pl^G*C@lkg>vP~=$a7!A}wU1Mp$J;FdZ>9^CY zm|2Jj)N_3onS(E=?OPxJNYBFlmrZ=dJ2dM08*+xCaM$!713bv0e?N{JF2&*7C74W3 zg|Rlz#==2Hm!qtQUm9UGHO2bJxuxB5N`+xLJYOC|e2$b6Y|%(oloUJoJ%i+BH|8;{>3v4`(udZ+;LG1PtrM6j zZV!xE_;cln9n~$cGB{W{7M4X_>NOQKD`9YKq}X3i(-Y}1#gB;T;!31 z7_%m#c2&0W);Fy?Mu@Q^yMh1ZvT(tV9={_K^;lDOt=F2aZNKOKwz=Aj&UxtNgXCp! zZlnT(ABw8(B7OZr119dL$9-@WK`p2|haOQ{0HZWPzRiU@Le9Sv6kNEwGd1Pu)0v#w z&&^}Md$pfMEcagduEy|@3iT{QrohNeFsCij1`2Z|wMOCf!|9k>92@UXp0`!kT#543 zePb5R{`|JC3La<|kVGnPu26g*hU7w!IZ->>6616)!E|DgHJ3 zWewC?3wk3#c*M^_)z5fKiFP|mzP5HqRkaCOI@bYrXo3CEMu|5`EQJR4b(BuZQvM{E zb7m=zp;!$=#RU>QX>J~`sIN13^X!%Lf=8V$JYwPpbO?5^Cuh@oy5M`JgP&|4wX9#( zyi}}(6@?VyPs|V@g~WdXauju%Ga!1#VED>8f)h#6Q2d8q5?=9EsxsX&R3yvBhL5HgcfqCHz z4-z(rr7zZXcDjR4q+qt(dZ1Eu04Qg_3!j(bgvLWpu;#@1!t53&67&*JRBYp3`m!fM zsmJ-YCfA9@H}ZJ;=)M1`4I=}Dqa!s|QdJ9$Pe_dJz?C#UXprc{!n21!6naKn=dI+B zFCfXp9>0K15Chuj)_~Cjb-q2_^oC^pApm|`%oL5vXpAH=bN_6Z+0_&%8U@>a+y$>h zlCX*WINvQC7&QMgXAv{$mXWr&dMMU+=3)1a3X2LDxFJGG8VPC?fgb2p4CcLBW+nGo zzuMiBpCovhyejL@EVDw@{N8nigM8)Aq!jEpdi!f9{QXYy`jZu#pGh`Vu91rU-H9m|-`-S~Vtg<0{ zx$M$$WT5v^`tIT+(FSd3Zl23q#Kx;S>}DM}{a6*!XP7#)G4uK$>jw95=hY=MCs{k> zJE-wzIeS@x#z?`t9gl}%xCROXTrj(u&s}Y9UedvjYiKZj&+8JWC9Pt4AJ5i1YB3du zz2)Q8h>MCr)=0JM8mKOK#6Bd)hb6p3bx(+A<39K>UAiaU*}*Kh7z7S3^M2q=PPC%o zY$JjbYDA6KLFDJol*>03)Q6i@7!kq;raYq-tvl#Dh8!NbBgWE9cv)p;zJtI8#RNpkCvx?{C4QC zPQTgY?ZAv@MNertXU`}+htth+?IFngB2>hVovYnTP5UXzhBNh297&v2@3h^&C1>4W z^*JNzIvCHk@8y1t3~UCSNjItSJY0Mdc~bbCM>!U`lQ*$xt=`(#<1bH@On@%Hh- zQAkn+=B;?Z7ze%m#�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 z�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 literal 0 HcmV?d00001 diff --git a/screenshots/results/baseline_benchmark_visualization.png b/screenshots/results/baseline_benchmark_visualization.png new file mode 100644 index 0000000000000000000000000000000000000000..d8d8785f3df7fe19e25a2e46fabe0a42074f312a GIT binary patch literal 29013 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 Date: Tue, 30 Jul 2024 07:45:43 +0300 Subject: [PATCH 08/13] ragas evaluation on cross encoder reranking --- .../reranking_crossencoder.ipynb | 592 +----------------- .../rag-system/baseline_RAG_system.ipynb | 106 +--- 2 files changed, 49 insertions(+), 649 deletions(-) diff --git a/notebooks/optimization_techniques/reranking_crossencoder.ipynb b/notebooks/optimization_techniques/reranking_crossencoder.ipynb index 058ef53..17ed65f 100644 --- a/notebooks/optimization_techniques/reranking_crossencoder.ipynb +++ b/notebooks/optimization_techniques/reranking_crossencoder.ipynb @@ -122,24 +122,24 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "rag_system = RAGSystem(\n", - " model_name = \"gpt-3.5-turbo\",\n", + " model_name = \"gpt-4o\",\n", " existing_vectorstore = False,\n", " embeddings = embeddings,\n", " clear_store = True,\n", " k_documents = 20,\n", " use_reranker = True,\n", - " top_n_ranked = 3,\n", + " top_n_ranked = 5,\n", ")" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -149,162 +149,26 @@ "--SETUP NEW VECTORSTORE--\n", "--Split 1000 documents into 5030 chunks.--\n", "--USING BASE RETRIEVER--\n", - "--SETUP RERANKER--\n" + "--SETUP RERANKER--\n", + "--USING OPEN SOURCE MODEL FOR RERANKING--\n", + "--SETUP RAG CHAIN--\n", + "--RAGCHAIN SETUP COMPLETE!--\n" ] - }, - { - "ename": "AttributeError", - "evalue": "'Reranker' object has no attribute 'use_cohere_reranker'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[7], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mrag_system\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minitialize\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m50\u001b[39;49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/code/RizzBuzz/rag-optimization-cnn-dailymail/src/rag_pipeline/rag_system.py:182\u001b[0m, in \u001b[0;36mRAGSystem.initialize\u001b[0;34m(self, len_split_docs)\u001b[0m\n\u001b[1;32m 179\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msetup_base_retriever()\n\u001b[1;32m 181\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39muse_reranker:\n\u001b[0;32m--> 182\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msetup_reranker\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 184\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msetup_rag_chain()\n", - "File \u001b[0;32m~/code/RizzBuzz/rag-optimization-cnn-dailymail/src/rag_pipeline/rag_system.py:139\u001b[0m, in \u001b[0;36mRAGSystem.setup_reranker\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 133\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m--SETUP RERANKER--\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 134\u001b[0m my_reranker \u001b[38;5;241m=\u001b[39m Reranker(\n\u001b[1;32m 135\u001b[0m retriever\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinal_retriever, \n\u001b[1;32m 136\u001b[0m top_n\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtop_n_ranked,\n\u001b[1;32m 137\u001b[0m use_cohere_reranker\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39muse_cohere_reranker\n\u001b[1;32m 138\u001b[0m )\n\u001b[0;32m--> 139\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinal_retriever \u001b[38;5;241m=\u001b[39m \u001b[43mmy_reranker\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minitialize\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/code/RizzBuzz/rag-optimization-cnn-dailymail/src/rag_pipeline/reranker.py:31\u001b[0m, in \u001b[0;36mReranker.initialize\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 30\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minitialize\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[0;32m---> 31\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43muse_cohere_reranker\u001b[49m:\n\u001b[1;32m 32\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msetup_cohere_model()\n\u001b[1;32m 33\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", - "\u001b[0;31mAttributeError\u001b[0m: 'Reranker' object has no attribute 'use_cohere_reranker'" - ] - } - ], - "source": [ - "rag_system.initialize(50)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[Document(metadata={'source': 'cnn_dailymail', 'id': 'a4942dd663020ca54575471657a0af38d82897d6', 'start_index': 0}, page_content='(CNN)Share, and your gift will be multiplied. That may sound like an esoteric adage, but when Zully Broussard selflessly decided to give one of her kidneys to a stranger, her generosity paired up with big data. It resulted in six patients receiving transplants. That surprised and wowed her. \"I thought I was going to help this one person who I don\\'t know, but the fact that so many people can have a life extension, that\\'s pretty big,\" Broussard told CNN affiliate KGO. She may feel guided in her generosity by a higher power. \"Thanks for all the support and prayers,\" a comment on a Facebook page in her name read. \"I know this entire journey is much bigger than all of us. I also know I\\'m just the messenger.\" CNN cannot verify the authenticity of the page. But the power that multiplied Broussard\\'s gift was data processing of genetic profiles from donor-recipient pairs. It works on a simple swapping principle but takes it to a much higher level, according to California Pacific Medical Center'),\n", - " Document(metadata={'source': 'cnn_dailymail', 'id': 'a4942dd663020ca54575471657a0af38d82897d6', 'start_index': 803}, page_content='gift was data processing of genetic profiles from donor-recipient pairs. It works on a simple swapping principle but takes it to a much higher level, according to California Pacific Medical Center in San Francisco. So high, that it is taking five surgeons, a covey of physician assistants, nurses and anesthesiologists, and more than 40 support staff to perform surgeries on 12 people. They are extracting six kidneys from donors and implanting them into six recipients. \"The ages of the donors and recipients range from 26 to 70 and include three parent and child pairs, one sibling pair and one brother and sister-in-law pair,\" the medical center said in a statement. The chain of surgeries is to be wrapped up Friday. In late March, the medical center is planning to hold a reception for all 12 patients. Here\\'s how the super swap works, according to California Pacific Medical Center. Say, your brother needs a kidney to save his life, or at least get off of dialysis, and you\\'re willing to give'),\n", - " Document(metadata={'source': 'cnn_dailymail', 'id': 'a4942dd663020ca54575471657a0af38d82897d6', 'start_index': 1611}, page_content=\"Here's how the super swap works, according to California Pacific Medical Center. Say, your brother needs a kidney to save his life, or at least get off of dialysis, and you're willing to give him one of yours. But then it turns out that your kidney is not a match for him, and it's certain his body would reject it. Your brother can then get on a years-long waiting list for a kidney coming from an organ donor who died. Maybe that will work out -- or not, and time could run out for him. Alternatively, you and your brother could look for another recipient-living donor couple like yourselves -- say, two more siblings, where the donor's kidney isn't suited for his sister, the recipient. But maybe your kidney is a match for his sister, and his kidney is a match for your brother. So, you'd do a swap. That's called a paired donation. It's a bit of a surgical square dance, where four people cross over partners temporarily and everybody goes home smiling. But instead of a square dance,\")]" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "len(rag_system.split_docs)\n", - "rag_system.split_docs[:3]" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "base_retriever = rag_system.base_retriever" + "rag_system.initialize()" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "test_q = \"How did Zully Broussard's selfless decision to donate a kidney lead to six patients receiving transplants?\"\n", - "res = rag_system.rag_chain.invoke(test_q)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "model = HuggingFaceCrossEncoder(model_name=\"BAAI/bge-reranker-base\")\n", - "compressor = CrossEncoderReranker(model=model, top_n=3)\n", - "compression_retriever = ContextualCompressionRetriever(\n", - " base_compressor=compressor, base_retriever=base_retriever\n", - ")\n" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "3" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\n", - "compressed_docs = compression_retriever.invoke(test_q)\n", - "len(compressed_docs)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Doing reranking with CohereReranker" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "base_retriever = rag_system.base_retriever" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [], - "source": [ - "llm = Cohere(temperature=0)\n", - "compressor = CohereRerank(model=\"rerank-english-v3.0\")\n", - "compression_retriever = ContextualCompressionRetriever(\n", - " base_compressor=compressor, base_retriever=base_retriever\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [], - "source": [ - "rag_system.final_retriever = compression_retriever\n", - "rag_system.setup_rag_chain()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Using LLM cohere and cohere reranker retriever" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [], - "source": [ - "# from src.rag_pipeline.rag_utils import rag_chain_setup\n", - "\n", - "# rag_system.final_retriever = compression_retriever\n", - "# rag_system.rag_chain = rag_chain_setup(compression_retriever, llm)" + "# test_q = \"How did Zully Broussard's selfless decision to donate a kidney lead to six patients receiving transplants?\"\n", + "# res = rag_system.rag_chain.invoke(test_q)\n", + "# res" ] }, { @@ -316,7 +180,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -326,20 +190,20 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'question': \"Who was one of Putin's harshest critics?\",\n", - " 'answer': \"One of Putin's harshest critics was Boris Nemtsov.\",\n", + " 'answer': \"Boris Nemtsov was one of Putin's harshest critics.\",\n", " 'contexts': ['Moscow (CNN)In his first substantive comments since Kremlin critic Boris Nemtsov\\'s death, Russian President Vladimir Putin on Wednesday called the killing a \"disgrace\" and lashed out at what he called \"extremists\" and protesters. Nemtsov had been one of Putin\\'s harshest critics and had been arrested several times for speaking against the President\\'s government. The 55-year-old opposition leader was gunned down Friday night in Moscow as he walked across a bridge about 100 meters (330 feet) from the Kremlin with his girlfriend, Ukrainian model Anna Duritskaya, 23. His slaying spurred thousands to rally in his honor in Moscow, with many calling him a true Russian patriot at his funeral Tuesday. Nemtsov isn\\'t the first of Putin\\'s critics to turn up dead, with others including Anna Politkovskaya (who was fatally shot) and Alexander Litvinenko (who was poisoned). The Kremlin has staunchly denied accusations that it\\'s targeting political opponents or had anything to do with the deaths. The',\n", - " 'be heading an opposition party and do what I\\'m doing.\" Opinion: The complicated life and tragic death of Boris Nemtsov . Critics of Putin have in the past suffered miserable fates. Last year, a Moscow court sentenced five men to prison for the 2006 killing of Russian journalist and fierce Kremlin critic Anna Politkovskaya. Business magnate Mikhail Khodorkovsky accused Putin of corruption and spent 10 years in prison and labor camps. Late last year, Kremlin critic Alexey Navalny was found guilty of fraud in a politically charged trial. Russia\\'s official news agency reported Monday that a request by Navalny to attend Nemtsov\\'s funeral had been denied. And before his death, Nemtsov had been arrested several times for speaking against Putin\\'s government. Kasparov, chairman of the Human Rights Foundation\\'s International Council, suggested the killing was linked to the Kremlin\\'s own insecurity. \"If you are popular your critics don\\'t have to be shot down in front of the Kremlin,\" Kasparov',\n", + " \"(CNN)Slain Russian opposition leader Boris Nemtsov isn't the first critic of President Vladimir Putin to turn up dead. Some Putin opponents claim it isn't a coincidence that critics of the powerful leader and his government have been killed or landed behind bars. But the Kremlin has staunchly denied accusations that it's targeting political opponents or had anything to do with the deaths. Here's a look at some cases of outspoken critics of Putin's government who've ended up in exile, under house arrest, behind bars or dead. The business magnate backed an opposition party and accused Putin of corruption. He spent more than 10 years behind bars on charges of tax evasion and fraud. In statements to CNN, Khodorkovsky said his prosecution was part of a Kremlin campaign to destroy him and take control of Yukos, the oil company he built from privatization deals in the 1990s. The Kremlin denied the accusation. At the time of Khodorkovsky's sentencing, the Russian Foreign Ministry said in a\",\n", " \"Vladimir Putin's most outspoken critics, was shot in the back on a Moscow bridge as he walked with his girlfriend near the Kremlin in February 27. The three suspects visited by Tsvetkov deny they are guilty and have appealed their arrests, he said. Putin has condemned Nemtsov's killing and ordered three law enforcement agencies to investigate, the Kremlin has said. He also wrote to Nemtsov's mother, saying he shared her grief, and promised to bring those behind the killing to justice. CNN's Matthew Chance and Alla Eshchenko reported from Moscow, and Steve Almasy wrote from Atlanta. CNN's Elwyn Lopez and Karen Smith contributed to this report.\"]}" ] }, - "execution_count": 39, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -359,12 +223,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Ragas Testing with Langsmith Tracing" + "### Run Ragas tests locally" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -372,335 +236,19 @@ "output_type": "stream", "text": [ "--LOADING EVALUATION DATA--\n", - "--GETTING CONTEXT AND ANSWERS--\n", - "--USING LANGSMITH FOR EVALUATION--\n", - "Created a new dataset 'cnn_dailymail_evaluation'. Dataset is accessible at https://smith.langchain.com/o/6691a6dd-a70e-56c0-8f45-a1f64338d797/datasets/8e291ee7-635e-40c2-ab54-1d2e8897e5f6\n", - "View the evaluation results for project 'baseline_rag_benchmark' at:\n", - "https://smith.langchain.com/o/6691a6dd-a70e-56c0-8f45-a1f64338d797/datasets/8e291ee7-635e-40c2-ab54-1d2e8897e5f6/compare?selectedSessions=a58cdd46-9bf6-44ae-9ea4-f0853631205f\n", - "\n", - "View all tests for Dataset cnn_dailymail_evaluation at:\n", - "https://smith.langchain.com/o/6691a6dd-a70e-56c0-8f45-a1f64338d797/datasets/8e291ee7-635e-40c2-ab54-1d2e8897e5f6\n", - "[------------> ] 5/19" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Error evaluating run f591f3a5-4864-48c3-ac91-409ab305f428 with EvaluatorChain: APIConnectionError('Connection error.')\n", - "Traceback (most recent call last):\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1558, in _request\n", - " response = await self._client.send(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpx/_client.py\", line 1661, in send\n", - " response = await self._send_handling_auth(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpx/_client.py\", line 1689, in _send_handling_auth\n", - " response = await self._send_handling_redirects(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpx/_client.py\", line 1726, in _send_handling_redirects\n", - " response = await self._send_single_request(request)\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpx/_client.py\", line 1763, in _send_single_request\n", - " response = await transport.handle_async_request(request)\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpx/_transports/default.py\", line 373, in handle_async_request\n", - " resp = await self._pool.handle_async_request(req)\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_async/connection_pool.py\", line 216, in handle_async_request\n", - " raise exc from None\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_async/connection_pool.py\", line 196, in handle_async_request\n", - " response = await connection.handle_async_request(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_async/connection.py\", line 101, in handle_async_request\n", - " return await self._connection.handle_async_request(request)\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py\", line 142, in handle_async_request\n", - " await self._response_closed()\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py\", line 257, in _response_closed\n", - " await self.aclose()\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_async/http11.py\", line 265, in aclose\n", - " await self._network_stream.aclose()\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/httpcore/_backends/anyio.py\", line 55, in aclose\n", - " await self._stream.aclose()\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/anyio/streams/tls.py\", line 202, in aclose\n", - " await self.transport_stream.aclose()\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/anyio/_backends/_asyncio.py\", line 1202, in aclose\n", - " self._transport.close()\n", - " File \"/usr/lib/python3.10/asyncio/selector_events.py\", line 706, in close\n", - " self._loop.call_soon(self._call_connection_lost, None)\n", - " File \"/usr/lib/python3.10/asyncio/base_events.py\", line 753, in call_soon\n", - " self._check_closed()\n", - " File \"/usr/lib/python3.10/asyncio/base_events.py\", line 515, in _check_closed\n", - " raise RuntimeError('Event loop is closed')\n", - "RuntimeError: Event loop is closed\n", - "\n", - "The above exception was the direct cause of the following exception:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/tracers/evaluation.py\", line 127, in _evaluate_in_project\n", - " evaluation_result = evaluator.evaluate_run(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/integrations/langchain.py\", line 210, in evaluate_run\n", - " eval_output = self.invoke(chain_eval, include_run_info=True)\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain/chains/base.py\", line 166, in invoke\n", - " raise e\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain/chains/base.py\", line 156, in invoke\n", - " self._call(inputs, run_manager=run_manager)\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/integrations/langchain.py\", line 80, in _call\n", - " score = self.metric.score(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/metrics/base.py\", line 105, in score\n", - " raise e\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/metrics/base.py\", line 101, in score\n", - " score = asyncio.run(self._ascore(row=row, callbacks=group_cm))\n", - " File \"/usr/lib/python3.10/asyncio/runners.py\", line 44, in run\n", - " return loop.run_until_complete(main)\n", - " File \"/usr/lib/python3.10/asyncio/base_events.py\", line 649, in run_until_complete\n", - " return future.result()\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/metrics/_faithfulness.py\", line 263, in _ascore\n", - " nli_result = await self.llm.generate(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/llms/base.py\", line 93, in generate\n", - " return await agenerate_text_with_retry(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/tenacity/asyncio/__init__.py\", line 189, in async_wrapped\n", - " return await copy(fn, *args, **kwargs)\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/tenacity/asyncio/__init__.py\", line 111, in __call__\n", - " do = await self.iter(retry_state=retry_state)\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/tenacity/asyncio/__init__.py\", line 153, in iter\n", - " result = await action(retry_state)\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/tenacity/_utils.py\", line 99, in inner\n", - " return call(*args, **kwargs)\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/tenacity/__init__.py\", line 398, in \n", - " self._add_action_func(lambda rs: rs.outcome.result())\n", - " File \"/usr/lib/python3.10/concurrent/futures/_base.py\", line 451, in result\n", - " return self.__get_result()\n", - " File \"/usr/lib/python3.10/concurrent/futures/_base.py\", line 403, in __get_result\n", - " raise self._exception\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/tenacity/asyncio/__init__.py\", line 114, in __call__\n", - " result = await fn(*args, **kwargs)\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/ragas/llms/base.py\", line 170, in agenerate_text\n", - " return await self.langchain_llm.agenerate_prompt(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/language_models/chat_models.py\", line 724, in agenerate_prompt\n", - " return await self.agenerate(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/language_models/chat_models.py\", line 684, in agenerate\n", - " raise exceptions[0]\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/language_models/chat_models.py\", line 883, in _agenerate_with_cache\n", - " result = await self._agenerate(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_openai/chat_models/base.py\", line 741, in _agenerate\n", - " response = await self.async_client.create(**payload)\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/resources/chat/completions.py\", line 1295, in create\n", - " return await self._post(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1826, in post\n", - " return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1519, in request\n", - " return await self._request(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1582, in _request\n", - " return await self._retry_request(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1651, in _retry_request\n", - " return await self._request(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1582, in _request\n", - " return await self._retry_request(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1651, in _retry_request\n", - " return await self._request(\n", - " File \"/home/hilla/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/openai/_base_client.py\", line 1592, in _request\n", - " raise APIConnectionError(request=request) from err\n", - "openai.APIConnectionError: Connection error.\n", - "Error in EvaluatorCallbackHandler.on_chain_end callback: APIConnectionError('Connection error.')\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[------------------------------------------------->] 19/19" + "--EVALUATING LOCALLY--\n", + "--GETTING CONTEXT AND ANSWERS--\n" ] }, { "data": { - "text/html": [ - "

Experiment Results:

" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
feedback.answer_correctnessfeedback.faithfulnessfeedback.answer_relevancyfeedback.context_precisionerrorexecution_timerun_id
count19.00000018.00000018.00000018.000000019.00000019
uniqueNaNNaNNaNNaN0NaN19
topNaNNaNNaNNaNNaNNaN31f949c4-1476-4eb2-ae11-f23eb62af6d3
freqNaNNaNNaNNaNNaNNaN1
mean0.7064390.8518520.8877680.965509NaN2.434766NaN
std0.2032500.2434700.2251740.083576NaN0.693174NaN
min0.2296240.2500000.0000000.679167NaN1.334236NaN
25%0.5798770.6875000.9184371.000000NaN2.051280NaN
50%0.7437231.0000000.9344251.000000NaN2.481985NaN
75%0.8326331.0000000.9633211.000000NaN2.726066NaN
max1.0000001.0000001.0000001.000000NaN4.482909NaN
\n", - "
" - ], + "application/vnd.jupyter.widget-view+json": { + "model_id": "af997dcfd1c14a19b0b9dddd9b812655", + "version_major": 2, + "version_minor": 0 + }, "text/plain": [ - " feedback.answer_correctness feedback.faithfulness \\\n", - "count 19.000000 18.000000 \n", - "unique NaN NaN \n", - "top NaN NaN \n", - "freq NaN NaN \n", - "mean 0.706439 0.851852 \n", - "std 0.203250 0.243470 \n", - "min 0.229624 0.250000 \n", - "25% 0.579877 0.687500 \n", - "50% 0.743723 1.000000 \n", - "75% 0.832633 1.000000 \n", - "max 1.000000 1.000000 \n", - "\n", - " feedback.answer_relevancy feedback.context_precision error \\\n", - "count 18.000000 18.000000 0 \n", - "unique NaN NaN 0 \n", - "top NaN NaN NaN \n", - "freq NaN NaN NaN \n", - "mean 0.887768 0.965509 NaN \n", - "std 0.225174 0.083576 NaN \n", - "min 0.000000 0.679167 NaN \n", - "25% 0.918437 1.000000 NaN \n", - "50% 0.934425 1.000000 NaN \n", - "75% 0.963321 1.000000 NaN \n", - "max 1.000000 1.000000 NaN \n", - "\n", - " execution_time run_id \n", - "count 19.000000 19 \n", - "unique NaN 19 \n", - "top NaN 31f949c4-1476-4eb2-ae11-f23eb62af6d3 \n", - "freq NaN 1 \n", - "mean 2.434766 NaN \n", - "std 0.693174 NaN \n", - "min 1.334236 NaN \n", - "25% 2.051280 NaN \n", - "50% 2.481985 NaN \n", - "75% 2.726066 NaN \n", - "max 4.482909 NaN " + "Evaluating: 0%| | 0/80 [00:00 4\u001b[0m rag_results \u001b[38;5;241m=\u001b[39m \u001b[43mrun_ragas_evaluation\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43mrag_chain\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrag_system\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrag_chain\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43muse_langsmith\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[43mexperiment_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexperiment_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8\u001b[0m \u001b[43m \u001b[49m\u001b[43mdataset_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdataset_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mupload_dataset_to_langsmith\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[43msave_results\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\n\u001b[1;32m 11\u001b[0m \u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/code/RizzBuzz/rag-optimization-cnn-dailymail/src/ragas/ragas_pipeline.py:86\u001b[0m, in \u001b[0;36mrun_ragas_evaluation\u001b[0;34m(rag_chain, use_langsmith, upload_dataset_to_langsmith, dataset_name, experiment_name, save_results, dataset_description)\u001b[0m\n\u001b[1;32m 0\u001b[0m \n", - "\u001b[0;31mAttributeError\u001b[0m: 'TestResult' object has no attribute 'to_pandas'" - ] - } - ], - "source": [ - "# experiment_name = \"baseline_rag_benchmark_1\"\n", - "# dataset_name = \"cnn_dailymail_evaluation\"\n", - "\n", - "# rag_results = run_ragas_evaluation(\n", - "# rag_chain=rag_system.rag_chain,\n", - "# use_langsmith=True,\n", - "# experiment_name=experiment_name,\n", - "# dataset_name=dataset_name,\n", - "# upload_dataset_to_langsmith=True,\n", - "# save_results=True\n", - "# )" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Run Ragas tests locally" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "--LOADING EVALUATION DATA--\n", - "--EVALUATING LOCALLY--\n", - "--GETTING CONTEXT AND ANSWERS--\n" - ] - }, - { - "ename": "TooManyRequestsError", - "evalue": "status_code: 429, body: data=None message=\"You are using a Trial key, which is limited to 10 API calls / minute. You can continue to use the Trial key for free or upgrade to a Production key with higher rate limits at 'https://dashboard.cohere.com/api-keys'. Contact us on 'https://discord.gg/XW44jPfYJu' or email us at support@cohere.com with any questions\"", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTooManyRequestsError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[40], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m rag_results \u001b[38;5;241m=\u001b[39m \u001b[43mrun_ragas_evaluation\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[43mrag_chain\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrag_system\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrag_chain\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[43msave_results\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43mexperiment_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcohere_reranker_with_llm_openai_gpt4o\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\n\u001b[1;32m 5\u001b[0m \u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/code/RizzBuzz/rag-optimization-cnn-dailymail/src/ragas/ragas_pipeline.py:87\u001b[0m, in \u001b[0;36mrun_ragas_evaluation\u001b[0;34m(rag_chain, use_langsmith, upload_dataset_to_langsmith, dataset_name, experiment_name, save_results, dataset_description)\u001b[0m\n\u001b[1;32m 85\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m--EVALUATING LOCALLY--\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 86\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m--GETTING CONTEXT AND ANSWERS--\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 87\u001b[0m testset \u001b[38;5;241m=\u001b[39m \u001b[43mget_context_and_answer\u001b[49m\u001b[43m(\u001b[49m\u001b[43meval_data\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrag_chain\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 88\u001b[0m result \u001b[38;5;241m=\u001b[39m ragas_evaluate(dataset\u001b[38;5;241m=\u001b[39mtestset, metrics\u001b[38;5;241m=\u001b[39mmetrics)\n\u001b[1;32m 90\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m--EVALUATION COMPLETE--\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "File \u001b[0;32m~/code/RizzBuzz/rag-optimization-cnn-dailymail/src/ragas/ragas_pipeline.py:142\u001b[0m, in \u001b[0;36mget_context_and_answer\u001b[0;34m(evaluation_data, rag_chain)\u001b[0m\n\u001b[1;32m 132\u001b[0m results \u001b[38;5;241m=\u001b[39m {\n\u001b[1;32m 133\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mquestion\u001b[39m\u001b[38;5;124m\"\u001b[39m: [],\n\u001b[1;32m 134\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcontexts\u001b[39m\u001b[38;5;124m\"\u001b[39m: [],\n\u001b[1;32m 135\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124manswer\u001b[39m\u001b[38;5;124m\"\u001b[39m: [],\n\u001b[1;32m 136\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mground_truth\u001b[39m\u001b[38;5;124m\"\u001b[39m: [],\n\u001b[1;32m 137\u001b[0m }\n\u001b[1;32m 139\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m question, ground_truth \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(\n\u001b[1;32m 140\u001b[0m evaluation_data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mquestions\u001b[39m\u001b[38;5;124m\"\u001b[39m], evaluation_data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mground_truths\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 141\u001b[0m ):\n\u001b[0;32m--> 142\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[43mrag_chain\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minvoke\u001b[49m\u001b[43m(\u001b[49m\u001b[43mquestion\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 143\u001b[0m contexts_list \u001b[38;5;241m=\u001b[39m response[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcontexts\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 145\u001b[0m results[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mquestion\u001b[39m\u001b[38;5;124m\"\u001b[39m]\u001b[38;5;241m.\u001b[39mappend(question)\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/runnables/base.py:3562\u001b[0m, in \u001b[0;36mRunnableParallel.invoke\u001b[0;34m(self, input, config)\u001b[0m\n\u001b[1;32m 3549\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m get_executor_for_config(config) \u001b[38;5;28;01mas\u001b[39;00m executor:\n\u001b[1;32m 3550\u001b[0m futures \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 3551\u001b[0m executor\u001b[38;5;241m.\u001b[39msubmit(\n\u001b[1;32m 3552\u001b[0m step\u001b[38;5;241m.\u001b[39minvoke,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3560\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key, step \u001b[38;5;129;01min\u001b[39;00m steps\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 3561\u001b[0m ]\n\u001b[0;32m-> 3562\u001b[0m output \u001b[38;5;241m=\u001b[39m {key: future\u001b[38;5;241m.\u001b[39mresult() \u001b[38;5;28;01mfor\u001b[39;00m key, future \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(steps, futures)}\n\u001b[1;32m 3563\u001b[0m \u001b[38;5;66;03m# finish the root run\u001b[39;00m\n\u001b[1;32m 3564\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/runnables/base.py:3562\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 3549\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m get_executor_for_config(config) \u001b[38;5;28;01mas\u001b[39;00m executor:\n\u001b[1;32m 3550\u001b[0m futures \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 3551\u001b[0m executor\u001b[38;5;241m.\u001b[39msubmit(\n\u001b[1;32m 3552\u001b[0m step\u001b[38;5;241m.\u001b[39minvoke,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3560\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key, step \u001b[38;5;129;01min\u001b[39;00m steps\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 3561\u001b[0m ]\n\u001b[0;32m-> 3562\u001b[0m output \u001b[38;5;241m=\u001b[39m {key: \u001b[43mfuture\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m key, future \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(steps, futures)}\n\u001b[1;32m 3563\u001b[0m \u001b[38;5;66;03m# finish the root run\u001b[39;00m\n\u001b[1;32m 3564\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "File \u001b[0;32m/usr/lib/python3.10/concurrent/futures/_base.py:458\u001b[0m, in \u001b[0;36mFuture.result\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 456\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m CancelledError()\n\u001b[1;32m 457\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state \u001b[38;5;241m==\u001b[39m FINISHED:\n\u001b[0;32m--> 458\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__get_result\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 459\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 460\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTimeoutError\u001b[39;00m()\n", - "File \u001b[0;32m/usr/lib/python3.10/concurrent/futures/_base.py:403\u001b[0m, in \u001b[0;36mFuture.__get_result\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 401\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception:\n\u001b[1;32m 402\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 403\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception\n\u001b[1;32m 404\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 405\u001b[0m \u001b[38;5;66;03m# Break a reference cycle with the exception in self._exception\u001b[39;00m\n\u001b[1;32m 406\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m/usr/lib/python3.10/concurrent/futures/thread.py:58\u001b[0m, in \u001b[0;36m_WorkItem.run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 58\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 59\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[1;32m 60\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfuture\u001b[38;5;241m.\u001b[39mset_exception(exc)\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/runnables/base.py:2875\u001b[0m, in \u001b[0;36mRunnableSequence.invoke\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 2873\u001b[0m \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m step\u001b[38;5;241m.\u001b[39minvoke(\u001b[38;5;28minput\u001b[39m, config, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 2874\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 2875\u001b[0m \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[43mstep\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minvoke\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconfig\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2876\u001b[0m \u001b[38;5;66;03m# finish the root run\u001b[39;00m\n\u001b[1;32m 2877\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/runnables/base.py:3562\u001b[0m, in \u001b[0;36mRunnableParallel.invoke\u001b[0;34m(self, input, config)\u001b[0m\n\u001b[1;32m 3549\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m get_executor_for_config(config) \u001b[38;5;28;01mas\u001b[39;00m executor:\n\u001b[1;32m 3550\u001b[0m futures \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 3551\u001b[0m executor\u001b[38;5;241m.\u001b[39msubmit(\n\u001b[1;32m 3552\u001b[0m step\u001b[38;5;241m.\u001b[39minvoke,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3560\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key, step \u001b[38;5;129;01min\u001b[39;00m steps\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 3561\u001b[0m ]\n\u001b[0;32m-> 3562\u001b[0m output \u001b[38;5;241m=\u001b[39m {key: future\u001b[38;5;241m.\u001b[39mresult() \u001b[38;5;28;01mfor\u001b[39;00m key, future \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(steps, futures)}\n\u001b[1;32m 3563\u001b[0m \u001b[38;5;66;03m# finish the root run\u001b[39;00m\n\u001b[1;32m 3564\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/runnables/base.py:3562\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 3549\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m get_executor_for_config(config) \u001b[38;5;28;01mas\u001b[39;00m executor:\n\u001b[1;32m 3550\u001b[0m futures \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 3551\u001b[0m executor\u001b[38;5;241m.\u001b[39msubmit(\n\u001b[1;32m 3552\u001b[0m step\u001b[38;5;241m.\u001b[39minvoke,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3560\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key, step \u001b[38;5;129;01min\u001b[39;00m steps\u001b[38;5;241m.\u001b[39mitems()\n\u001b[1;32m 3561\u001b[0m ]\n\u001b[0;32m-> 3562\u001b[0m output \u001b[38;5;241m=\u001b[39m {key: \u001b[43mfuture\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m key, future \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(steps, futures)}\n\u001b[1;32m 3563\u001b[0m \u001b[38;5;66;03m# finish the root run\u001b[39;00m\n\u001b[1;32m 3564\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "File \u001b[0;32m/usr/lib/python3.10/concurrent/futures/_base.py:458\u001b[0m, in \u001b[0;36mFuture.result\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 456\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m CancelledError()\n\u001b[1;32m 457\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state \u001b[38;5;241m==\u001b[39m FINISHED:\n\u001b[0;32m--> 458\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__get_result\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 459\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 460\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTimeoutError\u001b[39;00m()\n", - "File \u001b[0;32m/usr/lib/python3.10/concurrent/futures/_base.py:403\u001b[0m, in \u001b[0;36mFuture.__get_result\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 401\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception:\n\u001b[1;32m 402\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 403\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception\n\u001b[1;32m 404\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 405\u001b[0m \u001b[38;5;66;03m# Break a reference cycle with the exception in self._exception\u001b[39;00m\n\u001b[1;32m 406\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[0;32m/usr/lib/python3.10/concurrent/futures/thread.py:58\u001b[0m, in \u001b[0;36m_WorkItem.run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 55\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 58\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 59\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[1;32m 60\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfuture\u001b[38;5;241m.\u001b[39mset_exception(exc)\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/runnables/base.py:2873\u001b[0m, in \u001b[0;36mRunnableSequence.invoke\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 2869\u001b[0m config \u001b[38;5;241m=\u001b[39m patch_config(\n\u001b[1;32m 2870\u001b[0m config, callbacks\u001b[38;5;241m=\u001b[39mrun_manager\u001b[38;5;241m.\u001b[39mget_child(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mseq:step:\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mi\u001b[38;5;241m+\u001b[39m\u001b[38;5;241m1\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 2871\u001b[0m )\n\u001b[1;32m 2872\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m i \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m-> 2873\u001b[0m \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[43mstep\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minvoke\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconfig\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2874\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 2875\u001b[0m \u001b[38;5;28minput\u001b[39m \u001b[38;5;241m=\u001b[39m step\u001b[38;5;241m.\u001b[39minvoke(\u001b[38;5;28minput\u001b[39m, config)\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/retrievers.py:221\u001b[0m, in \u001b[0;36mBaseRetriever.invoke\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 219\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 220\u001b[0m run_manager\u001b[38;5;241m.\u001b[39mon_retriever_error(e)\n\u001b[0;32m--> 221\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[1;32m 222\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 223\u001b[0m run_manager\u001b[38;5;241m.\u001b[39mon_retriever_end(\n\u001b[1;32m 224\u001b[0m result,\n\u001b[1;32m 225\u001b[0m )\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_core/retrievers.py:214\u001b[0m, in \u001b[0;36mBaseRetriever.invoke\u001b[0;34m(self, input, config, **kwargs)\u001b[0m\n\u001b[1;32m 212\u001b[0m _kwargs \u001b[38;5;241m=\u001b[39m kwargs \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_expects_other_args \u001b[38;5;28;01melse\u001b[39;00m {}\n\u001b[1;32m 213\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_new_arg_supported:\n\u001b[0;32m--> 214\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_relevant_documents\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 215\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrun_manager\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrun_manager\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m_kwargs\u001b[49m\n\u001b[1;32m 216\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 217\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 218\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_relevant_documents(\u001b[38;5;28minput\u001b[39m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m_kwargs)\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain/retrievers/contextual_compression.py:48\u001b[0m, in \u001b[0;36mContextualCompressionRetriever._get_relevant_documents\u001b[0;34m(self, query, run_manager, **kwargs)\u001b[0m\n\u001b[1;32m 44\u001b[0m docs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbase_retriever\u001b[38;5;241m.\u001b[39minvoke(\n\u001b[1;32m 45\u001b[0m query, config\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcallbacks\u001b[39m\u001b[38;5;124m\"\u001b[39m: run_manager\u001b[38;5;241m.\u001b[39mget_child()}, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs\n\u001b[1;32m 46\u001b[0m )\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m docs:\n\u001b[0;32m---> 48\u001b[0m compressed_docs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbase_compressor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcompress_documents\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 49\u001b[0m \u001b[43m \u001b[49m\u001b[43mdocs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mquery\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcallbacks\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrun_manager\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_child\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 50\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 51\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mlist\u001b[39m(compressed_docs)\n\u001b[1;32m 52\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_cohere/rerank.py:106\u001b[0m, in \u001b[0;36mCohereRerank.compress_documents\u001b[0;34m(self, documents, query, callbacks)\u001b[0m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124;03mCompress documents using Cohere's rerank API.\u001b[39;00m\n\u001b[1;32m 96\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 103\u001b[0m \u001b[38;5;124;03m A sequence of compressed documents.\u001b[39;00m\n\u001b[1;32m 104\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 105\u001b[0m compressed \u001b[38;5;241m=\u001b[39m []\n\u001b[0;32m--> 106\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m res \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrerank\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdocuments\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mquery\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[1;32m 107\u001b[0m doc \u001b[38;5;241m=\u001b[39m documents[res[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mindex\u001b[39m\u001b[38;5;124m\"\u001b[39m]]\n\u001b[1;32m 108\u001b[0m doc_copy \u001b[38;5;241m=\u001b[39m Document(doc\u001b[38;5;241m.\u001b[39mpage_content, metadata\u001b[38;5;241m=\u001b[39mdeepcopy(doc\u001b[38;5;241m.\u001b[39mmetadata))\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/langchain_cohere/rerank.py:73\u001b[0m, in \u001b[0;36mCohereRerank.rerank\u001b[0;34m(self, documents, query, rank_fields, model, top_n, max_chunks_per_doc)\u001b[0m\n\u001b[1;32m 71\u001b[0m model \u001b[38;5;241m=\u001b[39m model \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmodel\n\u001b[1;32m 72\u001b[0m top_n \u001b[38;5;241m=\u001b[39m top_n \u001b[38;5;28;01mif\u001b[39;00m (top_n \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mor\u001b[39;00m top_n \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m) \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtop_n\n\u001b[0;32m---> 73\u001b[0m results \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mclient\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrerank\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 74\u001b[0m \u001b[43m \u001b[49m\u001b[43mquery\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mquery\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 75\u001b[0m \u001b[43m \u001b[49m\u001b[43mdocuments\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdocs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 76\u001b[0m \u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 77\u001b[0m \u001b[43m \u001b[49m\u001b[43mtop_n\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtop_n\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 78\u001b[0m \u001b[43m \u001b[49m\u001b[43mrank_fields\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrank_fields\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 79\u001b[0m \u001b[43m \u001b[49m\u001b[43mmax_chunks_per_doc\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmax_chunks_per_doc\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 80\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 81\u001b[0m result_dicts \u001b[38;5;241m=\u001b[39m []\n\u001b[1;32m 82\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m res \u001b[38;5;129;01min\u001b[39;00m results\u001b[38;5;241m.\u001b[39mresults:\n", - "File \u001b[0;32m~/.cache/pypoetry/virtualenvs/rag-optimization-cnn-dailymail-hiPg4Kip-py3.10/lib/python3.10/site-packages/cohere/base_client.py:1606\u001b[0m, in \u001b[0;36mBaseCohere.rerank\u001b[0;34m(self, query, documents, model, top_n, rank_fields, return_documents, max_chunks_per_doc, request_options)\u001b[0m\n\u001b[1;32m 1602\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m UnprocessableEntityError(\n\u001b[1;32m 1603\u001b[0m typing\u001b[38;5;241m.\u001b[39mcast(UnprocessableEntityErrorBody, construct_type(type_\u001b[38;5;241m=\u001b[39mUnprocessableEntityErrorBody, object_\u001b[38;5;241m=\u001b[39m_response\u001b[38;5;241m.\u001b[39mjson())) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 1604\u001b[0m )\n\u001b[1;32m 1605\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m _response\u001b[38;5;241m.\u001b[39mstatus_code \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m429\u001b[39m:\n\u001b[0;32m-> 1606\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m TooManyRequestsError(\n\u001b[1;32m 1607\u001b[0m typing\u001b[38;5;241m.\u001b[39mcast(TooManyRequestsErrorBody, construct_type(type_\u001b[38;5;241m=\u001b[39mTooManyRequestsErrorBody, object_\u001b[38;5;241m=\u001b[39m_response\u001b[38;5;241m.\u001b[39mjson())) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 1608\u001b[0m )\n\u001b[1;32m 1609\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m _response\u001b[38;5;241m.\u001b[39mstatus_code \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m499\u001b[39m:\n\u001b[1;32m 1610\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ClientClosedRequestError(\n\u001b[1;32m 1611\u001b[0m typing\u001b[38;5;241m.\u001b[39mcast(ClientClosedRequestErrorBody, construct_type(type_\u001b[38;5;241m=\u001b[39mClientClosedRequestErrorBody, object_\u001b[38;5;241m=\u001b[39m_response\u001b[38;5;241m.\u001b[39mjson())) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 1612\u001b[0m )\n", - "\u001b[0;31mTooManyRequestsError\u001b[0m: status_code: 429, body: data=None message=\"You are using a Trial key, which is limited to 10 API calls / minute. You can continue to use the Trial key for free or upgrade to a Production key with higher rate limits at 'https://dashboard.cohere.com/api-keys'. Contact us on 'https://discord.gg/XW44jPfYJu' or email us at support@cohere.com with any questions\"" + "--EVALUATION COMPLETE--\n", + "--RESULTS SAVED--\n" ] } ], @@ -797,7 +267,7 @@ "rag_results = run_ragas_evaluation(\n", " rag_chain=rag_system.rag_chain,\n", " save_results=True,\n", - " experiment_name=\"cohere_reranker_with_llm_openai_gpt4o\"\n", + " experiment_name=\"reranker_opensource_model_msmacro_distilbert\"\n", ")\n" ] }, diff --git a/notebooks/rag-system/baseline_RAG_system.ipynb b/notebooks/rag-system/baseline_RAG_system.ipynb index 72cd611..9eaaf23 100644 --- a/notebooks/rag-system/baseline_RAG_system.ipynb +++ b/notebooks/rag-system/baseline_RAG_system.ipynb @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -80,12 +80,12 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "f408865581194b0e837d30508bd047d0", + "model_id": "87c190efb64346d29ee4ba02ae096a4a", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "modules.json: 0%| | 0.00/349 [00:00 Date: Tue, 30 Jul 2024 07:46:51 +0300 Subject: [PATCH 09/13] refractor - move notebook to benchmarks folder --- README.md | 66 ++++- .../compare_benchmarks.ipynb | 263 ------------------ src/rag_pipeline/rag_system.py | 4 +- 3 files changed, 63 insertions(+), 270 deletions(-) delete mode 100644 notebooks/optimization_techniques/compare_benchmarks.ipynb diff --git a/README.md b/README.md index 32e55a9..e655b74 100644 --- a/README.md +++ b/README.md @@ -243,8 +243,17 @@ results. However, with Langsmith, many things were not clear. The documentation on ragas website was empty. I therefore opted to build my own RAGAS pipeline and save the results in csv files. -I followed the steps below to setup the evaluation pipeline: +### Choice of RAGAS metrics for evaluation +I prioritized the following metrics for evaluation in that order: +1. Answer Correctness: How accurate the answer is compared to the ground truth. +2. Faithfulness: How well the answer aligns with the facts in the given context. +3. Answer Relevancy: How well the answer addresses the question asked. +4. Context Precision: How relevant the retrieved information is to the question. +More metrics and their explanations can be found on ragas documentation [here](https://docs.ragas.io/en/stable/concepts/metrics/index.html). + + +### Steps followed to setup the evaluation pipeline 1. Installed RAGAS using poetry. 2. I started with the simple setup from the RAGAS documentation [here](https://docs.ragas.io/en/latest/getstarted/evaluation.html). @@ -278,8 +287,10 @@ I followed the steps below to setup the evaluation pipeline: needed and the results saved as a CSV file. ## How to run a benchmark on the RAG system using RAGAS -Running the evaluation pipeline using ragas is fairly simple. -Assuming we have initialized the RAG system in this manner as seen in the section on RAG system setup above: + +Running the evaluation pipeline using ragas is fairly simple. Assuming we have +initialized the RAG system in this manner as seen in the section on RAG system +setup above: ```Python from src.rag_pipeline.rag_system import RAGSystem @@ -293,7 +304,8 @@ Assuming we have initialized the RAG system in this manner as seen in the sectio rag_system.initialize() ``` -We can then run the evaluation pipeline as follows, providing the `rag_chain` initialized in the instance of RAGsystem above: +We can then run the evaluation pipeline as follows, providing the `rag_chain` +initialized in the instance of RAGsystem above: ```Python from src.ragas.ragas_pipeline import run_ragas_evaluation @@ -305,12 +317,56 @@ We can then run the evaluation pipeline as follows, providing the `rag_chain` in ) ``` -The function will run the evaluation pipeline and save the results in a csv file with the `experiment_name` being used to name the csv results file. +The function will run the evaluation pipeline and save the results in a csv file +with the `experiment_name` being used to name the csv results file. ## The results of the baseline benchmark evaluation +The baseline benchmark evaluation was run using the RAG system with the following configurations: +- Model: GPT-4o +- Embeddings: OpenAIEmbeddings (text-embeddings-ada-002) +- Vectorstore: pgvector +- Chunking strategy: RecursiveCharacterTestSplitter, chunk_size=1000, overlap=200 +- Ragchain - RetrievalQA with the default prompt + +### Summary statistics +Since the metrics were all of type float64, I could carry out numerical calculations. i calculated the summary statistics i.e mean, standard deviation and creating visualizations to understand the performance of the RAG system. + +Below is a boxplot of the summary statistics: + +![baseline-benchmark-results](screenshots/results/baseline_benchmark_visualization.png) + +Key observations from the summary statistics and boxplots: + +- **Answer Correctness**: The average answer correctness is `0.689`, suggesting that the system generates reasonably accurate answers most of the time. However, there's a wide range `(0.23 to 1)`, indicating that the accuracy can vary significantly depending on the question. The standard deviation of 0.189 also supports this observation. + +- **Faithfulness**: The system excels in faithfulness, with a high average score of `0.863` and `75%` of the values at the maximum of 1. This indicates that the generated answers are generally consistent with the provided context. + +- **Answer Relevancy**: The average answer relevancy is 0.847, suggesting that the answers are mostly relevant to the questions. However, there are a few instances where the relevancy is 0, indicating that the system might sometimes generate irrelevant responses. The standard deviation of 0.292 also indicates a relatively wide range of relevancy scores. + +- **Context Precision**: The system performs exceptionally well in context precision, with an average score of 0.98 and most values concentrated near 1. This suggests that the system is highly effective at retrieving relevant context for answering questions. + + + +## Optimization techniques + +### Using open source model for CrossEncoderReranking. + +The embeddings I used were from the `sentence-transformers` library. I used +embeddings the model `sentence-transformers/msmarco-distilbert-dot-v5` + +The drawbacks: + +- The reranker was quite slow on average it used 22 seconds in retrieval as seen + in the + Langsmith![cross-encoder-reranking-opensource-model-langsmith-traces](screenshots/langsmith-tracing-opensource-rerankerScreenshot%20from%202024-07-30%2006-34-14.png) +- During the evaluation with ragas, the entire process took 15 minutes. +- My assumptions were that since the model is from huggingface and is running locally, therefore the it would use cpu to carry out the operations making it slow. I believe this can be improved by hosting the and using gpu. +- Another reason to support this is that I used, bge-raranker-base which is 1.1GB in size. +When I throttled the CPU this got slower, upto 110 seconds. +### ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file diff --git a/notebooks/optimization_techniques/compare_benchmarks.ipynb b/notebooks/optimization_techniques/compare_benchmarks.ipynb deleted file mode 100644 index 773f673..0000000 --- a/notebooks/optimization_techniques/compare_benchmarks.ipynb +++ /dev/null @@ -1,263 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "import altair as alt\n", - "import seaborn as sns\n", - "\n", - "os.chdir(\"../../\")" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "from src.benchmark_analysis import BenchmarkAnalysis" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "results_folder = \"data/ragas_results\"\n", - "# Load CSV files\n", - "df1 = pd.read_csv(f'{results_folder}/bm_baseline_benchmark_results.csv')\n", - "df2 = pd.read_csv(f'{results_folder}/bm_embedding_model_bge_large_results.csv')" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Metric Baseline_Average Prompt_eng_opt_Average \\\n", - "0 answer_correctness 0.689010 0.655881 \n", - "1 faithfulness 0.863333 0.878864 \n", - "2 answer_relevancy 0.846870 0.906868 \n", - "3 context_precision 0.980000 0.945903 \n", - "\n", - " Baseline_Highest Prompt_eng_opt_Highest Baseline_Lowest \\\n", - "0 1.0 0.998523 0.229628 \n", - "1 1.0 1.000000 0.200000 \n", - "2 1.0 1.000000 0.000000 \n", - "3 1.0 1.000000 0.833333 \n", - "\n", - " Prompt_eng_opt_Lowest \n", - "0 0.229624 \n", - "1 0.333333 \n", - "2 0.000000 \n", - "3 0.679167 \n" - ] - }, - { - "data": { - "image/png": "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pkwZANq1a8eMGTNo1aoVJ06cIGvWrKxcuZIDBw4wfvz4F1qQTkRERETiU2JXRERE5AO2ePFinJyc+Oyzz5663cbGhpo1a7J48WLu3btH6tSp+fjjj/Hw8ODq1avxZuvG7rN27VrGjRvHwoULWbNmDUmSJCFbtmx07drVvIja81SsWJE5c+YwYsQIunXrhqenJyNHjuTSpUsWiV2AhQsX4u7uztKlS1mzZg2VK1cmICCA3Llz4+TkZO7n5ubG0aNHGTx4MKtXr2bq1KmkTp2a/PnzM3LkyP+MKUmSJGzZsoX58+ezYMEChgwZQmhoKBkyZKBixYosXryYjBkzApA/f35++uknevfuzfDhwzEajXh5efHjjz/i5eX1n8d6WS1atMDGxobx48dz+/ZtSpYsyeTJk0mfPr25z5IlS+jSpQtTpkzBZDJRpUoVtmzZQoYMGV75uHXq1OHSpUvMnTuXu3fvkiZNGsqVK8egQYPMC8A5Ozuzd+9evvvuOxYsWEBQUBC5c+dm3rx5tGrV6nVPXUREROSDZTBpFQIRERERec/8+uuvfPTRR/z444988cUX1g7nrbl06RKenp6MHj2aHj16WDscEREREXmHVGNXRERERBK1sLCweG3jx4/HxsaGsmXLWiEiEREREZG3T6UYRERERCRRGzVqFCdOnKBChQrY2dmxZcsWtmzZQrt27fDw8LB2eCIiIiIib4USuyIiIiKSqH388cfs2LGDIUOGEBwcTObMmfn+++/p27evtUMTEREREXlrVGNXREREREREREREJJFRjV0RERERERERERGRREalGJ7CaDRy48YNkiVLhsFgsHY4IiIiIiIiIiIi8oEwmUw8fvyYDBkyYGPz7Hm5Suw+xY0bN7TQhoiIiIiIiIiIiFjN1atXyZQp0zO3WzWxu3//fkaPHs2JEye4efMma9asoV69es/dZ+/evfj6+nL69Gk8PDzo168frVq1sugzZcoURo8eTWBgIIULF2bSpEmULFnyheNKliwZ8OTNS548+cueloiIiIiIiIiIiMgrCQoKwsPDw5yjfBarJnZDQkIoXLgwX331FQ0aNPjP/hcvXqRmzZp06NCBxYsXs2vXLtq0aUP69OmpWrUqAAEBAfj6+jJ9+nS8vLwYP348VatW5ezZs6RLl+6F4ootv5A8eXIldkVEREREREREROSd+68S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GcHBwTRo0IBOnTqRPv2LF3QWERERERERERF53125fpOPytd55vaTe9eT+SUWSXsWAwa27v6JkRNnEh4RSa7sWVk2axyVypYGIHXOEs/cd92P0ynjVey1Y/i3d3Xub1NUVBR9+vThn3/+IVmyZHz88ccsXrzYvHibNb10YhfA1dWVvn37vulYREREREREREREEqysHhkJv/5iNWtjZXBLy9Htq567/U1wdnZiS8DsZ25/bgzu/72gXEI+97epatWqVK1a1dphPNVLJ3b379//3O0JYRqyiIiIiIiIiIhIQmBnZ0d2z8zWDsMqMSSUc39fvXRit3z58vHaDAaD+feYmJjXCkhERERERERERN4Oo/k3kxWjEBGT6fX/H7R52R0ePHhg8XP79m22bt1KiRIl2L59+2sHJCIiIiIiIiIib0dYZAzRRhMmTcwTsarQ0FCA16rV+9Izdl1dXeO1ffbZZzg4OODr68uJEydeORgREREREREREXl7giNiOBP4GFcXZ1xsbCHOU9gfsgiT8b87yQfDFB7+9sY2mQgNDeX27dukSJECW1vbVx7rlRZPexo3NzfOnj37poYTEREREREREZE3zASs+/0WmVI44Roarrzu/zMZgqwdgiQgdiFvLGX6TClSpMDd3f21xnjpKH///XeL1yaTiZs3bzJixAiKFCnySkFMmTKF0aNHExgYSOHChZk0aRIlS5Z8at/58+fj4+Nj0ebo6Eh4nEy6yWRi4MCBzJo1i4cPH/LJJ58wbdo0cubM+UrxiYiIiIiIiIi8Lx6GRTNixz+kSmKPrRK7AExymWvtECQBydBp/Vsd397e/rVm6sZ66cRukSJFMBgM8Qr8lipVirlzX/5/goCAAHx9fZk+fTpeXl6MHz+eqlWrcvbsWdKlS/fUfZInT24xO9jwr6+XRo0axcSJE1mwYAGenp7079+fqlWr8ueff+Lk5PTSMYqIiIiIiIiIvE9ijCbuBEdaO4wEw46b1g5BEpDEkj986cTuxYsXLV7b2NiQNm3aVz5hf39/2rZta56FO336dDZt2sTcuXP57rvvnrqPwWB45lRlk8nE+PHj6devH3Xr1gVg4cKFuLm5sXbtWry9vV8pThEREREREREREZGEwuZld8iSJYvFj4eHxysndSMjIzlx4gSVK1f+X0A2NlSuXJlDhw49c7/g4GDzsevWrcvp06fN2y5evEhgYKDFmK6urnh5eT1zzIiICIKCgix+RERERERERERERBKqF5qxO3HixBce8Jtvvnnhvnfv3iUmJgY3NzeLdjc3N86cOfPUfXLnzs3cuXMpVKgQjx49YsyYMXz88cecPn2aTJkyERgYaB7j32PGbvu34cOHM2jQoBeOW0RERERERERERMSaXiixO27cuBcazGAwvFRi91WULl2a0qVLm19//PHH5M2blxkzZjBkyJBXGrN37974+vqaXwcFBeHh4fHasYqIiIiIiIiIiIi8DS+U2P13Xd03JU2aNNja2nLr1i2L9lu3bj2zhu6/2dvb89FHH3H+/HkA8363bt0iffr0FmMWKVLkqWM4Ojri6Oj4CmcgIiIiIiIiIiIi8u69dI3dN8nBwYFixYqxa9cuc5vRaGTXrl0Ws3KfJyYmhlOnTpmTuJ6enri7u1uMGRQUxJEjR154TBEREREREREREZGE7IVm7P7btWvXWL9+PVeuXCEyMtJim7+//0uN5evrS8uWLSlevDglS5Zk/PjxhISE4OPjA0CLFi3ImDEjw4cPB2Dw4MGUKlWKHDly8PDhQ0aPHs3ly5dp06YN8KQcRLdu3Rg6dCg5c+bE09OT/v37kyFDBurVq/cqpysiIiIiIiIiIiKSoLx0YnfXrl3UqVOHbNmycebMGQoUKMClS5cwmUwULVr0pQNo2rQpd+7cYcCAAQQGBlKkSBG2bt1qXvzsypUr2Nj8b2LxgwcPaNu2LYGBgaRMmZJixYpx8OBB8uXLZ+7j5+dHSEgI7dq14+HDh5QpU4atW7fi5OT00vGJiIiIiIiIiIiIJDQvndjt3bs3PXr0YNCgQSRLloxVq1aRLl06vvjiC6pVq/ZKQXTu3JnOnTs/ddvevXstXo8bN+4/F3MzGAwMHjyYwYMHv1I8IiIiIiIiIiIiIgnZS9fY/euvv2jRogUAdnZ2hIWFkTRpUgYPHszIkSPfeIAiIiIiIiIiIiIiYumlE7suLi7murrp06fnwoUL5m137959c5GJiIiIiIiIiIiIyFO9dCmGUqVK8fPPP5M3b15q1KjBt99+y6lTp1i9ejWlSpV6GzGKiIiIiIiIiIiISBwvndj19/cnODgYgEGDBhEcHExAQAA5c+bE39//jQcoIiIiIiIiIiIiIpZeOrE7bNgwvvzyS+BJWYbp06e/8aBERERERERERERE5NleusbunTt3qFatGh4eHvTs2ZPffvvtbcQlIiIiIiIiIiIiIs/w0onddevWcfPmTfr378+xY8coWrQo+fPnZ9iwYVy6dOkthCgiIiIiIiIiIiIicb10YhcgZcqUtGvXjr1793L58mVatWrFokWLyJEjx5uOT0RERERERERERET+5ZUSu7GioqI4fvw4R44c4dKlS7i5ub2puERERERERERERETkGV4psbtnzx7atm2Lm5sbrVq1Inny5GzcuJFr16696fhERERERERERERE5F/sXnaHjBkzcv/+fapVq8bMmTOpXbs2jo6ObyM2EREREREREREREXmKl07sfv/99zRu3JgUKVK8hXBERERERERERERE5L+8dGK3bdu2byMOEREREREREREREXlBr7V4moiIiIiIiIiIiIi8e0rsioiIiIiIiIiIiCQySuyKiIiIiIiIiIiIJDJK7IqIiIiIiIiIiIgkMkrsioiIiIiIiIiIiCQySuyKiIiIiIiIiIiIJDJK7IqIiIiIiIiIiIgkMkrsioiIiIiIiIiIiCQySuyKiIiIiIiIiIiIJDJK7IqIiIiIiIiIiIgkMkrsioiIiIiIiIiIiCQySuyKiIiIiIiIiIiIJDJK7IqIiIiIiIiIiIgkMkrsioiIiIiIiIiIiCQyCSKxO2XKFLJmzYqTkxNeXl4cPXr0mX1nzZrFp59+SsqUKUmZMiWVK1eO179Vq1YYDAaLn2rVqr3t0xARERERERERERF5J6ye2A0ICMDX15eBAwfyyy+/ULhwYapWrcrt27ef2n/v3r00a9aMPXv2cOjQITw8PKhSpQrXr1+36FetWjVu3rxp/lm6dOm7OB0RERERERERERGRt87qiV1/f3/atm2Lj48P+fLlY/r06SRJkoS5c+c+tf/ixYv5+uuvKVKkCHny5GH27NkYjUZ27dpl0c/R0RF3d3fzT8qUKZ8ZQ0REBEFBQRY/IiIiIiIiIiIiIgmVVRO7kZGRnDhxgsqVK5vbbGxsqFy5MocOHXqhMUJDQ4mKiiJVqlQW7Xv37iVdunTkzp2bjh07cu/evWeOMXz4cFxdXc0/Hh4er3ZCIiIiIiIiIiIiIu+AVRO7d+/eJSYmBjc3N4t2Nzc3AgMDX2iMXr16kSFDBovkcLVq1Vi4cCG7du1i5MiR7Nu3j+rVqxMTE/PUMXr37s2jR4/MP1evXn31kxIRERERERERERF5y+ysHcDrGDFiBMuWLWPv3r04OTmZ2729vc2/FyxYkEKFCpE9e3b27t1LpUqV4o3j6OiIo6PjO4lZRERERERERERE5HVZdcZumjRpsLW15datWxbtt27dwt3d/bn7jhkzhhEjRrB9+3YKFSr03L7ZsmUjTZo0nD9//rVjFhEREREREREREbE2qyZ2HRwcKFasmMXCZ7ELoZUuXfqZ+40aNYohQ4awdetWihcv/p/HuXbtGvfu3SN9+vRvJG4RERERERERERERa7JqYhfA19eXWbNmsWDBAv766y86duxISEgIPj4+ALRo0YLevXub+48cOZL+/fszd+5csmbNSmBgIIGBgQQHBwMQHBxMz549OXz4MJcuXWLXrl3UrVuXHDlyULVqVauco4iIiIiIiIiIiMibZPUau02bNuXOnTsMGDCAwMBAihQpwtatW80Lql25cgUbm//ln6dNm0ZkZCSNGjWyGGfgwIF8//332Nra8vvvv7NgwQIePnxIhgwZqFKlCkOGDFEdXREREREREREREXkvWD2xC9C5c2c6d+781G179+61eH3p0qXnjuXs7My2bdveUGQiIiIiIiIiIiIiCY/VSzGIiIiIiIiIiIiIyMtRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRUWJXREREREREREREJJFRYldEREREREREREQkkVFiV0RERERERERERCSRSRCJ3SlTppA1a1acnJzw8vLi6NGjz+2/YsUK8uTJg5OTEwULFmTz5s0W200mEwMGDCB9+vQ4OztTuXJl/v7777d5CiIiIiIiIiIiIiLvjNUTuwEBAfj6+jJw4EB++eUXChcuTNWqVbl9+/ZT+x88eJBmzZrRunVrTp48Sb169ahXrx5//PGHuc+oUaOYOHEi06dP58iRI7i4uFC1alXCw8Pf1WmJiIiIiIiIiIiIvDV21g7A39+ftm3b4uPjA8D06dPZtGkTc+fO5bvvvovXf8KECVSrVo2ePXsCMGTIEHbs2MHkyZOZPn06JpOJ8ePH069fP+rWrQvAwoULcXNzY+3atXh7e8cbMyIigoiICPPrR48eARAUFPTGz/dlxESEWfX4krA8to+xdgiSgFj7+pRQ6Dopcek6KbF0jXxC10iJS9dIiUvXySd0nZS4dJ2UuKx9nYw9vslkem4/qyZ2IyMjOXHiBL179za32djYULlyZQ4dOvTUfQ4dOoSvr69FW9WqVVm7di0AFy9eJDAwkMqVK5u3u7q64uXlxaFDh56a2B0+fDiDBg2K1+7h4fEqpyXyVhSwdgCSsAx3tXYEIgmOrpNipmukSDy6RooFXSdF4tF1UiwkkOvk48ePcXV9dixWTezevXuXmJgY3NzcLNrd3Nw4c+bMU/cJDAx8av/AwEDz9ti2Z/X5t969e1ski41GI/fv3yd16tQYDIaXOymRtyAoKAgPDw+uXr1K8uTJrR2OiEiCo+ukiMiz6RopIvJ8uk5KQmMymXj8+DEZMmR4bj+rl2JICBwdHXF0dLRoS5EihXWCEXmO5MmT64+MiMhz6DopIvJsukaKiDyfrpOSkDxvpm4sqy6eliZNGmxtbbl165ZF+61bt3B3d3/qPu7u7s/tH/vPlxlTREREREREREREJDGxamLXwcGBYsWKsWvXLnOb0Whk165dlC5d+qn7lC5d2qI/wI4dO8z9PT09cXd3t+gTFBTEkSNHnjmmiIiIiIiIiIiISGJi9VIMvr6+tGzZkuLFi1OyZEnGjx9PSEgIPj4+ALRo0YKMGTMyfPhwALp27Uq5cuUYO3YsNWvWZNmyZRw/fpyZM2cCYDAY6NatG0OHDiVnzpx4enrSv39/MmTIQL169ax1miKvxdHRkYEDB8YrGSIiIk/oOiki8my6RoqIPJ+uk5JYGUwmk8naQUyePJnRo0cTGBhIkSJFmDhxIl5eXgCUL1+erFmzMn/+fHP/FStW0K9fPy5dukTOnDkZNWoUNWrUMG83mUwMHDiQmTNn8vDhQ8qUKcPUqVPJlSvXuz41ERERERERERERkTcuQSR2RUREREREREREROTFWbXGroiIiIiIiIiIiIi8PCV2RURERERERERERBIZJXZFREREREREREREEhkldkVEREREREREREQSGSV2RURERERERERERBIZJXZFRERERETEKoxGo7VDEBERSbSU2BWRNybujXloaKgVIxEReTNMJhMA4eHhVo5EROT9ZGPz5CPpggULOHbsGPC/a6+IyIdMX3zJi1BiV0TeCKPRaL4xHzt2LOPGjePy5ctWjkpE5NWZTCYMBgM7d+6kZ8+e/PPPP9YOSUTkvWMymYiIiKBHjx4sXboUAIPBYOWoRESsK+7n61OnTnHt2jXu3LkD6MsvsaTEroi8EbF/dPz8/BgzZgxubm44OztbOSoRkVdnMBhYtWoV9evXJ3Xq1Ny/fx/QzbSIyJtkMplwdHRk1KhR7N69m1OnTlk7JBERq4v9fN27d29q1qzJJ598go+PD4cOHcJgMOh+VMzsrB2AiLw/Fi5cyIIFC9i5cycFCxYEICwsjMePH5MuXTorRyci8nJOnjxJx44d8ff3p23btub2e/fukSZNGitGJiKSeMU+DRErNnlRtGhRIiIiOHHiBAULFrSYrSYi8qGIe43cs2cPP/74I/Pnz+fs2bPs37+f5s2bM3fuXMqWLRvveiofJv2lFJE3JjAwkHLlylGwYEHOnj3LpEmTKFy4MA0aNKBXr17WDk9E5IXEzoA4deoUnp6etG3bluDgYJYuXUrNmjUpUqQIw4YNs3KUIiKJU2wSYsWKFaxevdrcXrhwYerUqcOgQYO4d++ekroi8kGKvUYuWrSI7du3061bNypVqsTXX39Nz549KVmyJK1ateKnn37CYDCoDq8osSsirybuH5Do6GjzP7dv346vry8NGjRg//79fPHFF5QqVYotW7Zw5coVa4UrIvKf/r1QmoeHBxcuXKBbt25Ur16dZcuWkT59evz8/OjXrx9Hjx61ZrgiIolK3HvHK1euMHv2bJo1a8bnn3/O9OnTAWjXrh1ZsmRh165d8fYREflQ/PPPP8ydO5dJkyZZLEperFgxevToQenSpfnqq6/YuXOnvgQTJXZF5OXFfTTO39+f0aNHExoaSp8+fWjdujX//PMPXbp0YdiwYQwcOJCmTZtiZ2dHTEyMlSMXEXm62EfZdu/ezbBhw/jnn38oWrSoOYFbtGhRBg4cyKxZs2jVqhVeXl7WDllEJNGIe++4e/duUqRIwbZt2zhy5Agmk4mZM2dSoEABDh48SGBgIOvWrQNQwkJEPgj/rpebLVs2evToQalSpZg5c6ZF7fGiRYvSo0cPcuTIwYwZM951qJIAGUyquCwir8jPz48ff/yR3r17U79+fTJlygQ8me3m5OQEQEREBA0aNMBkMrFx40bdoItIghOb1F21ahWtWrXCz8+PWrVq8dFHHwGW1zSAfv36ERAQwP79+0mfPr21whYRSRTi1oDs3bs369ato1WrVnTq1AkXFxfCwsIICwujb9++PHjwgC1btvD48WPWrFlD3bp1rRy9iMjbFfeLr+joaCIjI0mSJAkAe/fuZfjw4Tx69IjZs2dToEAB837nzp0jR44c+nwtSuyKyKuZN28evXr1YufOnRQqVAh4slBaTEwMzs7O2NraMnLkSPbu3cvNmzc5duwY9vb2WghDRBKkY8eOUbNmTYYPH07r1q3N7Xfu3CFt2rQA7Nixg4CAANatW8f27dvNiV8REflvw4cPZ+zYsWzYsIG8efOSIkWKeAv/XLp0iZMnT/Ltt99Sq1YtJk6cqMWBROS9Ffez8dixY9m9ezf37t2jePHi9OrVCw8PD/bs2cOoUaN4+PAhs2fPJn/+/M8cQz5M+rcvIq/kypUr1KxZk0KFCnHmzBmmTp1KsWLFqFmzJuPGjSMqKgqj0UimTJk4fvw49vb2REdH64+OiCRIv/32G9mzZ6d169aEhYWxcuVK6tSpQ9myZfH39wfgzz//JDw8nL179yqpKyLyEh48eMCePXsYPnw4pUuXxtXVFYj/+HGWLFmoX78+48aNY86cOfz9999K6orIeyv2s3Hfvn0ZMWIExYoVo3r16qxevRpvb28OHz5MhQoV6N69O2nSpKFOnTpcvHjxqWPIh8vO2gGISML3tJkSkZGRLFy4kKxZs7Jq1Spy5MiBt7c3Fy5cYNGiRbRt25bevXub942JicHOTpccEUmY0qZNy61bt+jVqxfHjh0jadKkJE2alBYtWtCjRw+qVatG69atadOmDS4uLtYOV0QkUTEajfzxxx/m0gqx95U2NjaEh4cTHBxMmjRpzDPPvLy8yJkzJw8fPrRi1CIib15ISIjFveS5c+cICAhg4cKFVK9eHYBOnTpRpUoVevXqxY4dO6hSpQqhoaEcOHCAzJkzWyt0SaCUZRGR54r7aMejR48IDw/Hzc2NH374gYiICHbv3k2bNm2oUqUKefLk4dixY3Ts2JEHDx7g6uqKwWDAZDJha2tr5TMREXki9gun4OBgbG1tcXBwoEKFCnzxxRds27aNEiVK0KJFC7y8vLhy5Qpr1qwhJiaGpEmTWjt0EZEE72mPBcfExODh4cHly5eJiIjA0dHRvO3kyZMsWbKEQYMGkSpVKgCWLFnC77//rjrmIvJeadKkCY0bN6Zx48bmtujoaMLCwnBzcwOerFGTJk0aNm3aRO7cuZkzZw4dO3akXr161KtXD3hyTdXna4mlxK6IPJPJZDLfmA8bNozNmzdz48YNsmXLRr9+/RgzZozFzXlkZCQDBgzA3d2dLFmymMfRI3QiklDEJnU3btzI7Nmz+fvvvylWrBj16tVjyJAhfPfddxazKGbNmsXjx4/NdXZFROTZ4iZ1r127RpIkSUiVKhXp0qXD29ubnj17kitXLpo1a4aLiwuPHz9m2LBhODo6kjJlSvM4xYoV4+TJk+aFeUVE3geFChUyP7kQGRmJg4MDadOmJTQ0lN27d1O0aFEcHR2JiooiXbp05M+fn6CgoHjjKKkrcSmxKyLPFJuQHThwIDNmzGDMmDGUKVOGsmXL0rNnT1auXEmWLFkIDQ1l/vz5rFu3jlu3bnHs2DEMBoMKuYtIgmMwGNiwYQNNmjRh0KBBfP755+zYsYNGjRpx9OhRihcvDsDOnTtZtWoVy5cvZ9euXbi7u1s5chGRhC/2vm/AgAEsWbKEpEmTkjdvXhYvXkz37t158OABHTt2ZN26dRgMBu7du0dQUBC//PKLxb1juXLlrHwmIiJvTuy1rV+/fgBMmTKFiIgIWrZsSdq0aenVqxcTJkwgTZo0tGrVyrw+TVhYGEmSJLFy9JLQKbErIs917do1Nm3axKxZs6hduzb79u3jwYMH9O/fnyxZsmAymYiMjCQoKIhMmTKxadMm7OzsiI6OVk1dEUlwgoODmT17NkOGDKFHjx7cvXsXX19fOnXqZE7qhoaGcujQIe7fv8/+/fvjrT4sIiKW4n6Zv3z5cqZPn46/vz8XL15k5cqVFCtWjBMnTjB48GAKFizIyZMnuXHjBl5eXvTq1Uv3jiLyXoudMBX75NjPP//MoUOHcHFxoXnz5vj4+HD79m26devGwYMHyZAhAz///DPR0dF07NjRytFLQmcw/XspUhGROC5cuEDNmjU5c+YMmzZtwtvbm9GjR9OhQweCg4NZs2YNDRs2xMnJCYPBYF4oTY+HiEhCFBISQsmSJZk8eTJ58uShRIkS1KhRg5kzZwJPEhLFixfH3d2dmJgYkiVLZuWIRUQSj5UrVxIUFIS9vT3NmzfHaDRy9OhRfHx8cHBw4OTJk9jY2MS7V9S9o4i8r+J+8XXp0iWyZs0KwNdff822bdvo2bMnX331FWFhYaxfv56JEyeSNm1a0qVLx6xZs7C3t9c1Up5Lz0iLiNnTvufJlCkTDg4O+Pj48PnnnzN27Fg6dOgAwNWrV5k5cyaHDh3CxsZGC6WJSIIUe22L/We+fPk4ceIEn3zyCTVq1GD69OkABAYGsnXrVg4fPkySJEmU1BUReQnnzp2jS5cutGnThujoaOBJaYaSJUsyb948oqOjKVGiBEajMd69ou4dReR9FDepO2zYML755hv27dsHwNSpU/nss88YNWoUc+fOxcbGhubNm3Pw4EE2b97M/PnzzSUZdI2U51FiV0SAJ390Yh8RuX//PhEREQA4OjrSrFkzNmzYQK1atWjXrh0A4eHh9OzZk6RJk1KhQgXzOFooTUQSithEblhYmPnRNxcXFwoWLIifnx+5cuViypQp5hvuiRMncvDgQT755BNrhi0ikih5eHiYn4ZYsGCBud3GxgYvLy/mzZvHpUuXaN26tRWjFBF5N+IuRO7n58f48eNp3bq1xSLj06dP57PPPmP06NEsWbKEe/fuYW9vbzGGStTIf1EpBhGxMHjwYHbv3s3du3fp1asXtWvXJjw8nO+++479+/fzySefkCZNGk6ePMm9e/f45ZdfsLe310JpIpIgbdq0idGjR5MsWTLy5cvHyJEjAejSpQuzZ8+mS5cu2NracufOHVasWMG+ffsoUqSIdYMWEUngnnXfFxISwo4dO+jWrRsFChRg48aNFvucOXOG3Llza/aZiLy3zp8/T44cOcyvd+zYQbt27VixYgXFixcnJibGvGhkpUqVAOjYsSM//vgjixYtol69elaKXBIrZWFEPnBGo9H8+/Tp05k4cSL169enQIEC9OnTh+HDh+Po6MjIkSPp168fFy9e5NatW5QqVYqTJ0+aHw9RUldEEoK431cfPHiQBg0a8NFHH5EqVSpWrFhB1apVAZg0aRJ9+/bl7Nmz7Nu3D3t7ew4ePKikrojIf/j3Qmk//PADw4cP5+zZs7i4uFClShXGjx/PmTNnqFOnjnk/Gxsb8uXLh62tLTExMdYKX0TkrWnYsCHz5s2zaLt37x62trYUL16cP//8k8GDB1OyZEnq1KlDlSpVAJg2bRoDBgygdu3a1ghbEjnN2BURAE6dOsWsWbP47LPPzH9Q/P39mTFjBnXr1qVbt25kyJAh3n4q5C4iCUXcZMOff/7JlStX+PPPP/H19SUsLIyffvqJli1bUqhQIbZt2wbA48ePSZIkiR51ExF5AbFlbQB69epFQEAA2bJlw9nZmSNHjrB582ZKlixJWFgY27Zto1evXqROnZqDBw9aOXIRkbfv6NGjFClSBAcHBwIDA3F3d+e3337D29sbZ2dnbt26RbVq1ShVqhQlSpSgaNGirF+/nlq1apnH0OdreVmaYifygYo7U2Lfvn2UKlWKZcuWWbT7+vrSoUMH8+qc586dizeO/uiIiLWNHz+eU6dOmZO6N27coHLlytSvX9/8VIKzszMVK1ZkwYIFnDp1iho1agCQLFkybG1tldQVEXkBsUndadOmsWTJElauXMnu3btp1qwZ9+/fp2LFiuzatQtnZ2eqVq3KoEGD8PDwsHhCTETkfWQymShZsiQODg5MmjSJ9u3bc+rUKQoVKsTUqVOpXLkyEydOZOTIkbRt2xZ3d3dKlixJmjRpLMbR52t5WUrsinyATCaT+Q/GsWPHKFeuHH5+fgQHB7N//37u3Llj7tu9e3c6duzIjBkz2Llzp7VCFhF5quDgYFavXk3ZsmX566+/AEiSJAmDBw8mffr0HDhwwNzXzs6OihUrsnDhQnbt2kXjxo2tFbaISKISNzH78OFDzp07x9ChQylevDgbN27k66+/ZvTo0dSqVYv69etz4MABnJ2dqV+/PgEBAdjY2Ci5KyLvrbgLkQNky5aNEydOMGrUKP766y8qVKjAqFGjaNiwIa6urty9e5e2bdtiY2NDiRIlrBi5vA9UikHkA7Np0yYmTpzItm3b6N69OwcOHGDPnj24uLjQu3dvlixZQrdu3WjevLnFt4cBAQE0atRI3yCKSIJz/fp1OnXqxIEDB9i7dy/58+fn0aNHrF27Fl9fX+rXr8/s2bPN/aOjo/npp5/ImDEjuXLlsmLkIiKJy6NHj3B1deXIkSOkS5eO8PBwateuTffu3enUqRMrV66kSZMmABw5ckQJCxF578UtBbZ9+3ZKlixJihQp2LNnDz4+PpQpU4Zvv/2Wjz76iKioKJYsWcL8+fMJCQnhwIED2Nvbq/yCvBbN2BX5gMTExBAVFcWZM2fImzcv8+bNY8mSJbi4uAAwfPhwmjRpwoQJE1i0aBH37t0z79u0aVMtdiEiCUrsd9MZM2Zk6tSpeHl5Ua5cOU6fPo2rqyv169fH39+fTZs20aZNG/N+dnZ2VKhQQUldEZGXsGDBAgoXLgyAl5cXnp6enDp1ivTp0/PFF18AkCpVKtq1a8e4ceP46KOPrBmuiMhbZzKZzEndPn360L59e6ZPn05UVBQVKlRg7ty5HDhwAH9/f3777Tfs7OxwdXWlRo0aHDx40LwQuZK68jqU2BX5QMSWX6hXrx5eXl6cPXuWIkWKkCNHDgDCw8MBGD16NE2aNGHy5MlMnTqVR48eWYyjPzoiktAYjUYyZMjArFmzKFWqlDm5mzx5curVq8eIESPYtm0bTZs2tXaoIiKJVvHixXF1dSUgIMDc9vjxYw4cOMDdu3d58OABEyZMAKBr167Y2dkRHR1trXBFRN662PILw4cPZ+bMmQQEBNCmTRvs7e0xmUxUrFiROXPmcODAAcaOHcsff/xBvXr16NmzJ3Z2dsTExGidB3ltSuyKfADi1vwJCgqibt26TJgwgRs3bphX4HRyciI0NBSAUaNGUbNmTX755ReSJ09utbhFRJ7HYDCwY8cO2rVrx8OHD0mfPn285K6rqyv16tWjf//+/Pbbb9y8edPaYYuIJHhPq9bn4eFBxowZ2bBhg7mtbt26VKtWjVy5clGqVCkuXLjApEmTzNuVsBCR993jx4/Zt28fP/zwAyVLliR16tTA/xYrr1ixIrNmzWLFihWsXr3aYl9NmpI3QTV2Rd5zcWv+TJkyBaPRSO3atcmaNStr1qyhZ8+e5MmTh40bN5r32bdvH+XKlcNkMmEwGMz/FBFJaLZv3061atVo3749I0aMwNXVlZs3b9K2bVsOHz7M/v37yZcvH0FBQZhMJlxdXa0dsohIovHgwQNSpkxpfn348GHKly/PkiVLaNCggbnPrl27iI6OpnHjxtja2hIdHa2kroh8EG7dukWePHkYMWIE7du3t9gWGhqKyWTCxcWFY8eOUbRoUSVz5Y3TjF2R91xsUtfPz4/vv/+e5MmTm2+0a9SowZgxYzh79iyfffYZ58+fp0qVKowYMUJJXRFJ8EwmE1WqVGH79u3MnTuXnj178ujRI/PM3TJlylCgQAHOnDlD8uTJldQVEXkJ48aNo0GDBvzwww+YTCZMJhOlSpXC29ubrVu3EhISgslkImXKlDRq1Ahvb2/zegxK6orI++hp8yKdnJwoVqwYZ86ciVfG8MCBA3z77beEhoZSokQJrVkjb4USuyIfgFWrVrF06VK2bt1Ky5YtyZQpEwCOjo5Ur16dyZMnc/XqVSpXrkxwcDDr169XUldEEoyuXbuyaNEi8+sLFy6YS8yYTCYqV67Mxo0bWbBgAX5+fuayDJMnT6ZJkybmL7hEROTZ/p2wKFOmDIULF2bRokUULFiQSZMmcevWLby9vVm5ciU3b97EYDBgNBot9tNsNBF5H8UtbxgYGMj58+cBcHV1pWbNmsycOZMVK1bw4MED4EmJhilTpnD9+nWcnJzM4+gaKW+aSjGIfABGjRrFli1b2Lx5M05OTk9N2oaFhfHbb79RsmRJbGxs9AidiCQI/v7+DB48mJ9//pkCBQpw+/Zt3N3d6d27N0OGDMHGxsZ8Pdu4cSP16tWjR48e9OjRgzRp0hATE6MbaBGR/xC3dNejR4+IiIggXbp0wJPkhJ+fH3/++Sfnzp1jxIgR9OvXj1KlSrF48WIcHBysGbqIyFsX97Pz999/z8aNG7l27Ro5cuSgRYsWtGvXjl69evHjjz+SN29ekidPzo0bNwgJCeGXX37B3t7e4jor8ibpvyqR91jsYx7nz58nLCwMZ2dnDAYDMTEx5hkWu3bt4sKFCzg7O1OqVClsbGwwGo1K6oqI1ZlMJo4cOUKjRo0oUKAAP//8Mzdu3GDWrFmMHTuWH374wWL2RMWKFcmbNy+jRo0yPzqspK6IyPOZTCZzsmHIkCF4e3tToEABOnbsyOLFi0mWLBnTpk1j0aJF+Pr6Mnr0aK5fv05YWBj29vZWjl5E5O2LvdccOnQo06ZNo3///pw/fx6j0cjIkSM5d+4cI0eOZOzYsXz88ce4uLhQu3ZtTp48ib29PdHR0UrqylujGbsi75FnfQu4c+dOatWqhb+/P19//bW5/c6dO7Rv356WLVtSt27ddxmqiMh/MhqNDBgwgP3791OyZEkmT57M5s2bqVixInPmzKFdu3YMGjSIPn36YGNjQ0xMDH5+fpQqVYqCBQuSJ08ea5+CiEiC9e+nt/r378+0adOYOXMmjo6OjBw5kuvXr7N9+3ayZ89u7vf333/zxx9/UKdOHWxtbVW6S0TeW7HXN6PRyN27d2nYsCGdO3emadOm7N69m7p16+Lv70/btm2fOYaeHpO3TYldkfdE3KTuunXruHDhAvb29nz66acUKVKEbt26sWbNGjp16kSLFi0IDAykX79+3Lx5k6NHj+qPjYgkSPfu3aN69eqcPHmSNm3aMG3aNPO2OXPm0LZtW7p06cKnn37Kr7/+yrJlyzhx4oQWShMReQGx948XLlygWbNmjBgxgooVK7Jnzx5q1qzJ5MmT+eqrr55Zokulu0TkffXvSVORkZGUKFGCn376iQMHDtCkSRNGjx5Nhw4dCAsLY8mSJVSoUIFs2bJZMWr5EOmvsMh7IvaPjp+fHytWrCBnzpy4urrStWtX9u3bR8+ePUmfPj0//PADY8eOxdXVFXd3dw4fPmxenVPJXRFJSIxGIw8fPuT48eMUKVKES5cusWLFCho3bgxA69atSZs2LZ06dWLbtm1ER0ezYsUKJXVFRJ7ju+++w97e3lynHJ4s5vPw4UM++ugj1q5dS/PmzfH39+err74iLCyMlStXUqZMGTw9PS3GUlJXRN5HcUvU+Pj4EBERwZIlS7CxscHb25uDBw9azNS9efMmixYtIk2aNErsyjunIh8i75Fly5bx448/EhAQwPbt283lFS5dukTGjBnp1asXf/75J0uWLGHJkiXs3bvXXPNHSV0RSWhsbGzInj07f/31F0uXLsXOzo4ZM2awcuVKc586depw5MgRdu7cyeHDh/noo4+sGLGISML24MEDrl+/zs6dOxk9erS5PTIyEgcHByZNmsRXX33FyJEj6dChAwB//vkna9as4ebNm9YKW0TknYlbXub06dP8/vvvtGrVCoA+ffrwxx9/8PHHH5uTuqGhoXTp0gU7Oztq1aplrbDlA6ZSDCKJ2L8fDxk6dCjXrl1j+vTprF69mpYtW5q/SQwKCuLu3bvxvkHU6pwikpDEPtZ7/vx5AgMDyZ8/P8mSJcPOzo5jx44xZMgQwsLCaN++PY0aNQLi14kUEZFnu3nzJsOHD+fo0aPUr1+fXr16AdC9e3cmTJiAn58fI0aMACAkJISmTZtiNBrZuHGj7hlF5IMxZ84cNm3aRMqUKZk1axY2NjbcuXOHqVOnMmnSJIoWLUrq1Km5ceMGDx484MSJE9jb2+tJWHnn9JdZJJGK+3jI+vXrCQwMNC9gEZvUHT16tPmbxPXr1zNr1ixCQkIsxtENuohY28KFC5kwYQIxMTHY2dmxfPlyKlSoQN26dalSpQpTp04lLCyMEiVK0L9/f5ydnZk9ezZLliwBUFJXROQFmUwm0qdPT+/evSlevDhr1qxh+PDhAIwZMwZvb28mTJhAz5496dq1K3Xq1OHSpUusW7cOGxsbjEajlc9AROTte/DgAceOHePAgQNcu3bN/Jk5bdq0dOnShRUrVpAyZUpSpkxJtWrV+OWXX/QkrFiNZuyKJEJxZ9kOGjSIhQsXsnHjRn799VcGDhzIjRs3GD58OF26dAEgKCgIb29vChQowKhRo6wZuoiIhfDwcBo0aMD9+/dp06YNZcuWpVmzZrRp0wYvLy8mTZrEmTNnqFKlCr169SJJkiQcP36cb7/9llSpUrFw4UKSJUtm7dMQEUnQnvaE1rVr1xg5ciRHjhyhUaNG+Pn5AU+eADty5Ah2dnbkyZOHIUOGYGdnp4XSROS99bRr5JkzZ5g5cyZTp05lxIgRdOvW7bljaKauWIsSuyKJ2KVLl+jfvz9ffPEF1apVA6BNmzYsWbKE6dOnU6JECaKiovDz8+POnTvmm3Q9tiwiCcm9e/f45ptvuHnzJp988gl37txh8uTJ2NnZERERQe/evTl48CBVq1Y1J3dPnjxJmjRp8PDwsHb4IiIJWtyExalTp4iMjCR58uTkzJmTu3fvMnjwYA4fPkzDhg3NZRlCQkJwcXExj6GEhYi8r+JeI69evYrBYCBTpkzm12PHjmXz5s1069aNr7/+GoCoqCjs7OwwGAz6bC1Wp8SuSCIS96Z62bJlNG/enJw5c7JkyRKKFCli7te0aVP++usv/vzzT0qUKIGTkxPbt29XzR8RSRBib4BNJhNRUVE4ODjw8OFDOnXqxK5du8icOTNHjx419w8LC6Nv374cPXqU0qVLM3jwYJydna14BiIiiUPchEO/fv1Yvnw5tra23Lx5k/bt2+Pn50dMTAxDhgzh+PHj1KtXz5zcFRH5kPTr14+lS5cSHR1N8uTJGTFiBNWrV+fGjRuMHTuWLVu20K1bN/PCkiIJhYpriiQisQnZOXPm4O3tTaVKlThz5gy///470dHR5n4BAQGsXLmS7du3M2/ePHbt2qWaPyKSYBgMBu7du4fBYMDBwYGtW7dy8uRJpk+fTtWqVbl16xaTJk0yX9ecnZ0ZNmwY+fLl49dff41XK1xERJ4uNqk7ZswYZs2axZw5c/jrr7/4/PPPmTp1Kv/88w/p0qWjT58+lCxZkpkzZ7J48WIrRy0i8vbFrRkeEBDAtGnTGDp0KJMnT6ZAgQL4+Pgwc+ZMMmXKROfOnalVqxa9e/dmzZo1VoxaJD7N2BVJBOI+HjJ58mS++eYbzp07R44cOShTpgzXrl3jxx9/5OOPP37mYmhPqxskImINDx48IE+ePHTv3p38+fNTr149Vq9eTd26dXnw4AGdOnXiypUrfPnll7Rr18587YqIiODhw4e4ublZ+QxERBK22Jm6RqMRo9FIkyZNqFChAl26dGH16tW0bt2aYcOG0bFjR8LDw3FycuLatWssX76crl27aiKAiHwwAgICuH37Ng4ODrRv397c3r17dxYsWMDOnTspWrQof/75J7t27eLrr7/WNVISFCV2RRKRffv2sW/fPooWLUqtWrXM7V5eXty/f5/58+dTunRpJXBFJEG6e/cuadKkITIykuXLl9O6dWsMBgMLFy6kSZMmREVFYW9vz/37983J3VatWtG6dWtd10REXlDc8guXL18mS5Ys5MuXj7lz52IymahSpQpjxoyhffv2REREMHbsWCpXrkzJkiXNY6h0l4h8CP7++28qVKjAjRs3GDZsGN999535yy6ATz/9lAwZMhAQEGCxn66RkpDoU5JIIrFv3z6++OILJkyYQPLkyYEnq8kDHDlyhNSpU9O6dWv27duHvq8RkYTG39+fGjVqmGvq5s2bl6ioKCIjI7l8+TIA9vb2REVFkSpVKqZMmYKnpyfjxo1j4cKFVo5eRCRxiJvU7d69O3Xq1AGgQoUKtG7dmooVKzJ58mTzrLSgoCC2b9/OiRMnLMZRwkJEPgQeHh5MmjSJggULsnr1agCcnJyIiooCIE+ePE+dXKBrpCQkSuyKJBKZMmXiyy+/JDIykg0bNgBP/uhEREQAcPjwYSIjI5k+fbpW5RSRBKdly5YsWrQIe3t7wsLCKFq0KIcOHWLevHn07t2bIUOGAPGTu+XKlaN8+fLWDV5EJJGIvQc8efIkZ86cYcqUKQDUrVuXpEmTUrhwYZo0aQLA/fv3admyJdHR0bRr185qMYuIWIuTkxM1a9Zk6NCh3Lp1iwoVKhAVFYXJZMJkMnH69GlcXFysHabIc6kUg0gC9Kx6uNeuXWPKlCksXryYTp06mVctjoiIwNHREdBjISKSsB08eJCvvvqK9evXkytXLiIjI5kzZw5dunRh8ODB9OnTB4BZs2aRM2dOJXVFRF7SsmXLmDNnDk5OTqxatQoHBwfgyToNCxcu5Nq1a+TOnZvg4GCMRiOHDx/G3t5e95Ai8sGKiopi69atdOrUCTs7O7Jly0aGDBk4evQop06dwt7e3uKJCJGExM7aAYiIpbhJ3SVLlnDlyhXzjIr8+fPTvXt3DAYD8+bNw2Aw4Ofnh6Ojo7k2pa2trW7MRSTBypUrFwaDgcaNG7Nq1Spy5MhBmzZtAPjmm284e/YsSZIkYf78+fzyyy9WjlZEJHExGo38+uuv/PPPP4Dl48KdO3embNmy7Nixg5CQEDw8PGjRogW2trZER0djZ6ePhiLyYbK3t6datWpMmTKFIUOG8Ndff+Hv70+hQoUAdI2UBE0zdkUSqG+//ZYff/yR/Pnzc//+fc6fP8+wYcNo37499+/fZ/Lkyaxdu5YGDRqYH2EWEUkM7t69S7Vq1QgLC2PdunXkyJEDo9HIunXrGDFiBKlTp2bYsGEUKVLE2qGKiCQ6UVFRTJw4kYkTJ1KlShX8/f1JlizZM/trQoCIvK/+Pcv2v653ERERbN26le+++46sWbOyZcuWF9pPxJqU2BVJgDZu3EibNm3Ytm0b+fLlw97enn79+jFjxgxGjx5Nq1atuHjxImPHjuX+/fssXrxYj4WISIISe3thMBi4efMmJpMJR0dHUqdODTw9uQsQGhqKyWRSPTMRkVcQ++RXVFQUo0aNYuPGjZQsWZJhw4bh4uKiWWci8sEIDAzE3d0dgOXLl5vri/+XiIgItm/fTq9evUiePDmHDx9+m2GKvDYtniaSAN2/f5/06dOTLVs2c8J26NChfPnll/Tq1YuHDx/i6enJgAEDzEldfUcjIgnB48ePzb8bDAbWr19P1apVqVy5Mnny5OHHH3/k0aNHpEmThm3btuHs7EyjRo04c+YMAEmSJFFSV0TkFdnY2GA0GrG3t6dnz57UrFmTY8eO0bdvXx4/fqykroh8ELZv3463tzcnT56ke/fueHt7c/Xq1f/cLyYmBkdHR2rXrs3333+Pvb09V65ceQcRi7w6JXZFrMxoNMZrCwkJ4dKlSzg4OGBnZ0dYWBgA3bp1A+DXX38FIF26dOakrmbsioi1tWvXjq5duxIdHY3BYGDjxo18+eWXtGrVik2bNtGqVSu+/vprZs+ezcOHD0mdOjXbtm3j8ePHfPXVV0RFRVn7FEREErz/+jI/Nrnr4OCAn58ftWrVYuPGjcyZM+cdRSgiYl25c+fm7t27NGzYkPnz5/Prr7/i4eHx1M/esUwmk7ncwsaNGwkODmbTpk1kzpz5XYUt8kqU2BWxon8vlLZy5UoAPv/8c7JkyULjxo2JiYnB2dkZgLCwMJIlSxZvNpuSuiJibcuWLWPt2rV888032NnZcf/+fWbPnk2fPn3w9fXF1taWtWvXkjNnTnr27MmMGTO4d+8eqVOn5tixYyxevBh7e3trn4aISIIW98v8Bw8ePLNf3OTut99+S//+/enSpcu7ClNExCqMRiNGo5EsWbJQq1Ytrl69Sp48eQgLC8NkMmFjY/PUL8fiXlunT59O/fr1yZo1K8mTJ3/XpyDy0pTYFbGi2KRuz5496devH2fOnOHWrVskTZqUvn37cuPGDSpXrszx48fZu3cvPXv2JF26dBQrVszKkYuIWLp69SqpU6emSJEibNiwgaFDh1K7dm18fHy4ffs21apVo1y5cpw4cYIOHTowcuRIpk2bxsOHD0mVKhWenp7WPgURkQQtbuKhXbt2NGnShJCQkGf2j03uOjo60rJlS2xtbZ87W01EJLGzsbHBxsaGW7duUbt2bbZu3UpkZCT9+vVj7969QPxJUVFRUea2GTNm0Lt3b5YtW0bFihXfdfgir0SJXRErmzlzJvPnzycgIIC+ffvi5uaGra0tderUYejQocTExFCpUiU6duxISEgI+/btw8bGhpiYGGuHLiJiVr58eUwmExUrVqRu3bqUL1+eevXq4ebmxowZM/Dw8GD06NEAuLm54eLiwrhx43QtExF5QbGJh5s3b3L+/Hn69+//nzXJ4yYw7ty5o6e8ROS9t3DhQurWrUupUqWoVKkSK1as4O7duwwbNox9+/aZ+02ePBnA/MTYjBkz8PPzY/bs2TRs2NAqsYu8CiV2RazIZDJx7NgxWrRoQYkSJcyPhURHR+Po6Ei1atXYv38/+/fvZ+vWrezcuRN7e3uio6PN9X9ERBKCEiVKUKlSJfbu3UupUqWoU6cOqVOnxmQycfHiRZInT06yZMkACAoKYuHChVy4cIHUqVNbOXIRkcRj/PjxNGnShFSpUv3nE1xxZ/hOmDCB5s2b8+jRo3cRpoiI1dy5c4eHDx+aPy9ny5aN1atXc+/ePQYPHoy/vz916tShf//+5gkGM2fOpEePHsybN09JXUl0lNgVsSKDwcCNGzcIDAwEMNf8sbOzIzw8nJ9++gmAwoULkyVLFvMjdVrRWEQSmrCwMM6cOUPr1q159OgRX375JfDkOpcrVy42bNiAn58fzZo1Y9asWaRPn54UKVJYN2gRkUQkIiLC/GXZmTNnzLN1n/bkQ9yk7syZMxk4cCAtW7bUdVdE3itPq5dbpUoVDAYDV65cASAyMhJPT0/WrFlDkiRJWLduHZGRkdy+fRtbW1suX77MggULWLBgAQ0aNHjXpyDy2pQdErEik8lEtmzZ2L9/PxcvXiRr1qzmm/C7d+/i7++PnZ0dpUuXNu8TW5dXRCQhcXZ2ZsOGDSRJkoS5c+cyatQoPv/8c5YsWcJ3331HUFAQ+/fvJ1myZPz888/kyZPH2iGLiCRocRfZBXB0dKRFixYkSZKErl270qVLFyZNmoStrS0xMTHm2Wlxk7qxjxbPmzdPCQsRee/EXuv8/f1xdnbG3d0dgNu3b3Pt2jUyZ86Mg4MDAFmyZGHp0qWEh4eTOnVqDAYD0dHRZMmShTVr1pAuXTqrnYfI6zCYnvYVh4i8M/fu3aNIkSLkzp2bMWPGkDVrVsLDw2ndujUhISHs2rVLZRdEJFEJDg5mxYoVjBw5kqJFi7JkyRIAHj16hJOTE46OjlaOUEQkYYub1D1+/Dh37twhS5YsZMmSBRcXF6ZOnUq/fv3w8fFh7NixABbJXYBZs2bRo0cP5s6dq0eLReS9deXKFbp27crNmzf5+++/yZcvHwcOHCBr1qw0adIEV1dXqlatSnh4OB9//LF5P6PRiMFgUO1xSfSU2BWxotgb8MuXL1OlShVsbGwICgoiQ4YMGI1GDh8+jL29fbwZGyIiCV1ISAjLly/H39+frFmzsmHDBmuHJCKSKMSdcdu7d2+WL1+Ovb09tra25M2bl8GDB+Pp6cmCBQvo378/rVq1Mi9OGWvGjBl07NiRVatWUb9+fWuchojIW/Gsz8YxMTGEh4dz9epVWrdujYODAy4uLly8eJHg4GA8PT3Zs2ePErny3lEpBpG3KO6N+dPY2tpiNBrJkiULv/76Kzt27OD69eukTZuW+vXrY2trS3R0tGrqikii4+LiQpMmTQgPD2f+/PncuHGDDBkyWDssEZEEL/becfLkycyfP5/ly5fz6aef4uvry+zZs+nYsSP58uXj888/x2Aw0LFjRzJnzkyXLl3MY+TNm5cVK1YoqSsi75W4Sd1t27Zx9+5dwsPDadWqFba2tri4uJAnTx4yZMiAu7s7kyZNAp7M6s2UKZOSuvJe0oxdkbckblL3wYMHpEyZ8pl9//3o3H+1i4gkFqGhoURFReHq6mrtUEREEoXYj2dffvklefPmpV+/fqxfv57mzZszatQo2rdvT1hYGEajEZPJxI4dO6hTp85Ta+yKiLyP/Pz8WLNmjfkz9o0bN9i2bRv58uXDYDAwZ84cFi5caC5rGHtN1JOw8j7Sf9Eib0HcG+p27drRpEkTQkJCntk/9kbcaDQ+tV1EJLFKkiSJkroiIv8h7j1g7D1kaGgopUqVYu/evXzxxRfmpG5UVJQ5YZE0aVKLp7zi7i8i8j6aNWsW8+fPJyAggKNHj9KtWzdu3LjB5cuXzdc/Nzc3fv31V4KCgiyuiUrqyvtI/1WLvAWxfzxu3rzJ+fPn6d+/Py4uLs/dx2Qymf/Q3L17F02mFxEREfkwxN4DLl68mIiICAwGA6lTp6Zp06bUqlWLadOm0b59e+DJQpQBAQFcuHDBYgyV7hKR99G/PxdfuHCBLl26ULRoUVauXEmHDh2YPn06NWrU4PHjx5hMJjJkyMBnn31GihQprBO0yDukUgwib8n48eNZtWoVbm5uLFiw4LmJ3bgzfCdMmMCWLVtYtmyZ/hCJiIiIfCBCQ0NJly4dzZs3Z9q0aTx48IAmTZpw5swZzp07R0xMDKGhobRs2ZJHjx7x008/6ekuEXmvPa20TKNGjciSJQtVq1alUaNGjBw5ko4dO2IymRg7diy2trZ0797dvK/KG8r7TjN2Rd6CiIgITCYTFy9e5MyZM+akbkxMTLy+cf9YzZw5k4EDB9KyZUsldUVERETeY/8uwZUkSRJmzZrFyZMn2bx5MylTpqR3796kTJmSLFmyULp0aWrXrs3du3fZt28ftra2T723FBF5Hxw4cIDjx48DT8obDhs2DIDatWtz4MAB6tata07qwpOnGfbu3cv9+/eBJ0/RmkwmJXXlvacZuyJvwNOKsN+7d4+VK1fStWtX2rZta16RM+43hnGTujNmzMDPz4958+bRoEGDd3sCIiIiImIVs2bNonz58mTPnp179+7RunVrMmbMyLRp0zAajYSHh/Pjjz9iNBpJmzYt9erVM9fUVfkFEXnfmEwm7t27x0cffUSpUqVwcnJi7dq1/PTTTxQpUoRr167x1VdfcePGDQYPHkz16tW5cuUK3bt3586dOxw6dEjXRvmgKLEr8priJnWPHz/OnTt3yJIlC1myZMHFxYWpU6fSr18/fHx8GDt2LEC8x0FmzZpFjx49mDt3Lg0bNrTKeYiIiIjIu3Xw4EHKlClDnjx5aNmyJfXq1SM8PJwSJUqwdOnSZ94X6tFiEXnf/f3333zyySc8ePCABQsW8Pnnn5u3nT9/nrZt23Lr1i1u3LhBrly5cHBwYM+ePdjb2+saKR8UfY0h8hriLnjWu3dvli9fjr29Pba2tuTNm5fBgwfj4+ODjY0N/fv3x8bGhtGjR1v8kZkxYwYdO3Zk1apV1K9f31qnIiIiIiJv2b+f8ipatCjly5fnjz/+IDo6mubNm+Pr60ufPn3o06cPH330EdmyZYtXZ1IJCxF5n0VHRxMaGkqaNGlwdnZmw4YNZMuWjVKlSgGQI0cOVqxYwY0bN/jtt9/InTs3xYoV09MM8kFSjV2R1xB7gz158mTmz5/P/PnzOXPmDFWrVmX79u3cvHkTZ2dnPv/8c4YOHcrYsWPNJRli5c2blxUrViipKyIiIvKei03qHjt2jAsXLuDk5MTUqVPJli0byZIlY+jQoXTv3p19+/Zx584dFi5cSERERLzFg0RE3jdx647b2dlRuHBh/vzzTzZs2MDx48cZM2YMR44cMfdJkyYNhQoVonnz5pQsWdJcd1xJXfnQKLEr8hpMJhMmk4lDhw7RqVMnPv30U9avX8+cOXMYPXo0lSpVIiwsDFtbW7744gtWrVrF119/bbF/2bJlVX5BRERE5D0Wt/rdwYMHadKkCb6+vmzZsoU8efJQv359Ll++TJUqVThw4AAlSpQgKiqKX3/9FUdHRytGLiLy9sV9Enb16tVMnDiRnTt3cv/+fQoVKsSiRYv47bffGDduHD///DMA5cuXjzdpSk8zyIdINXZFXtK/H6EzmUw0aNCATp06YWdnR+3atRkzZgzt27cnKiqKuXPnkj59eurUqWPeR4+HiIiIiHwY4t473rp1Czc3N7Zu3cqWLVuYNm0aAwYMwN3dnTlz5tCvXz9q1qzJ48ePuXz5Mnnz5uX/2Lvr8KiOt43j342HQIIEEiS4u0uLF4eixUqLFC+eYqFIkRLcrWgJFAgOhaLBWlwLFHcNDiEhvvv+wZv9sQ1eYBO4P9eVlp0zM+eZJZzdfXbOjK2tbaylGEREPhbPXt969OiBn58fLi4uODk5UaRIEYYOHUrq1KnZu3cvLVu2xMnJibCwMKKjo/n7779xcHCw8ghErEszdkXeUMwb899++818a1yyZMlo2LAhNWrUYOrUqbRt2xaAR48e4e/vz/nz5y36UFJXRERE5OP3bFJ30KBBeHt7s3//fqpUqcKoUaNYsmQJfn5+7Nmzhxs3btC1a1euXLlCokSJyJ07t/nWYiV1ReRjFXN9O3r0KKdOnWL9+vUcO3aMTp06cfHiRTp16sT169cpVqwYCxcupHnz5jRt2pRjx47h4OBAVFSUlUcgYl2asSvyFp48eUKKFCn49ttvmTp1Kg8ePKBBgwacOnWKM2fOEB0dzZMnT2jWrBmPHj3izz//1G0hIiIiIp+o3r17M2fOHCZOnEiZMmXw8PAwHztx4gSLFy8mICCAnTt3MnbsWLp06WLFaEVEPqxFixYxa9YsEidOzIIFC7C3twdgzpw5zJkzh+TJkzNhwgRSp05t8YVZdHS0PmfLJ0+JXZHX8O/lFwAWLlzI+PHj6d+/P9WqVWPLli107dqVwMBAPDw8SJAgAUajkV27dmFvb68XHREREZFP0Lp162jdujVr1qwhf/78GI1G7t69y4ULF8icOTPu7u48fvyYu3fvMmnSJIYPH667u0Tkk2E0Gunbty+LFy/Gzs6Of/75x+Jz85w5c/Dz8wNg6dKlJEuWzFqhisRJSuyKvIEZM2ZQtmxZMmXKxL1792jZsiWpU6dm6tSpGI1GwsLCmD9/PkajkeTJk1O7dm1sbW21pq6IiIjIJ+r333/n559/ZvXq1dy9e5dFixYxb9487O3tSZEiBcuWLbOYwQvaj0FEPl7PmzQVGRnJhAkTmDp1KhUqVGDEiBG4urqaj0+aNImTJ08yceLEWG1FPnVK7Iq8pl27dlGyZEmyZ89Os2bNqF27NmFhYRQpUoSFCxdSr16957bTTF0RERGRT8PzEhZr1qyhbdu2FChQgH379lG9enU+++wz3N3d6dmzJzNnzqRMmTJWilhE5MN59hr5zz//mO9szZEjB1FRUYwaNYqVK1dSuHBhfH19SZQokbltzCZrz7vOinzKlNgVeYF/v2CEhYVRrVo1jh8/TpcuXVi1ahXe3t6cOnWKhQsXsm7dOjJmzKhdi0VEREQ+Qc++dzxz5gyRkZHkypULeHr78PHjx8mVKxflypXD3d2dO3fuULFiRSZMmEDp0qWtGbqIyHv37OfkPn36sHTpUkJCQoiKiqJ169b89NNPAIwYMYI1a9ZQuHBhBg8ejJub23P7EJGnlNgVeYX9+/eTNGlSMmXKxKlTp2jevDlff/21eeZu9uzZ+fvvv+ncuTM+Pj44OjpaO2QRERERsRIfHx/8/PyIjo4mffr0zJ8/n8yZM5uPR0VFERwcTJMmTXj06BHbt2/X3V0i8skYNWoUw4YNY8mSJRgMBi5evEi7du349ttvmTlzJpGRkYwcOZLZs2fz/fff4+3tbe2QReI0Ldwk8i/Pfgu4a9cumjRpQt68eWnXrh1Vq1alTp06XL58mc6dO7Nz506mTZvGgQMHOHLkiJK6IiIiIp+YZ2fqrlixAn9/f6ZMmYKDgwODBw+mcuXK+Pv7U7BgQYxGI76+vuzYsYOHDx+ya9cubG1ttXSXiHy0nv18bTQa2blzJ+3ataNcuXIAlC1blvTp0/PFF1+QP39+OnbsSPfu3UmTJg1NmjSxZugi8YJm7Io849k35rdu3cLDw4P169ezbt06pk6dSv/+/fH09GTWrFn07duX6tWr8/jxYy5fvkyOHDmwtbXV7SEiIiIin6BFixZx//59oqOj6dSpE/B0Q6AvvviCGzdu4O/vT6FChVizZg0HDhygb9++2NnZaaM0EfloPfv5+u7du7i7u5MrVy6qV6/OiBEjMJlMREVFYW9vT7du3Th69CgrV660WFtXX3yJvJwSuyL/79kXnUGDBnH69Gm6du1KkSJFiIyM5I8//qBHjx6ULl2aTZs24eDgQEBAAGnTpjX3oRcdERERkU/P48ePyZYtG4GBgfTo0YPhw4ebv+yPjIykQoUK3Lhxg3nz5lG8eHFzO713FJGP1bOfr8eMGcO5c+f48ccfmTt3LjNnzmTx4sUULlzYfK3s168fe/bsYdOmTVaOXCR+0VaCIv8v5kWnd+/eTJ48mVq1apmTtvb29tSqVYuVK1eSJk0a0qZNy/nz51mxYoVFH3pjLiIiIvLxMxqNFo8TJUrE3r17KVasGGvWrOHixYsYDAZMJhP29vYEBARgZ2fHqFGjLNrpvaOIfKxiPl/36tWLYcOGUapUKaKjo6lSpQq5c+emX79+HDhwAIPBQEhICPv27SNNmjRWjlok/tGMXZFnrFu3jtatW7NmzRry58+P0Wjk7t27XLhwgcyZM+Pu7s7jx4+5e/cukyZNYvjw4bp1TkREROQT8uwstM2bNxMcHIyNjQ01a9bk2rVrVK1aFWdnZ5YtW4aXl5d5Nlp0dDSgZK6IfDoCAgJo3bo18+bN4/PPPzeXr169mlmzZhEQEECOHDkIDw/HZDJx6NAh7O3ttbyhyBtQRkrkGVFRUaRJk4ZUqVJx4sQJFi1axLx587C3tydFihQsW7YMDw8PEiVKxOjRo81tlNwVERER+fiZTCZzUtfHx4d58+aRIkUKTp48ScOGDRkyZAh//PEHVatW5auvvmLZsmXmGWgxCV0tvyAin4orV66QIEECcuXKBfzvi7GaNWuSO3duzpw5w/79+0mePDmtWrXSuuMib0FLMcgn69+30AEYDAauXr3Kd999R9myZbl69Sp9+vRh+PDh3Lp1i1OnTsVqoxcdERERkU9DzAyyESNGMHfuXJYvX86hQ4cYOXIkfn5+dOnSBYPBwPr16wkLC6NUqVLcvn3bog8ldUXkYxdzY3hoaKj5bgXA4u6FgwcPkiVLFvr160e7du2ws7MjOjpan69F3pASu/JJevYWujNnzvDPP/8AUKNGDcaPH0/hwoWZPHkyI0eOpHXr1pQsWRIXFxfdDiIiIiLyibtx4wYnTpxg7NixFC1alOXLl9O/f3/69u1LQEAAXbp0ISoqilWrVlGyZEmSJUtm7ZBFRD6omM/N5cqV4+zZs4wbN85cbmtrS3BwMPPnz2f9+vUW7fTFl8ib0xq78knz8fHBz8+P6Oho0qdPz/z588mcObP5eFRUFMHBwTRp0oRHjx6xfft2vdiIiIiIfMLCwsJYt24d5cqV49y5c9SvX59u3brRuXNnxowZQ/fu3SlbtiyLFi0iRYoUgJZfEJFP1/Tp0+nYsSPt27enRo0aODg4MHToUAIDAzl48KBm6Ir8R/oXJJ+UZ2fqrlixAn9/f6ZMmYKDgwODBw+mcuXK+Pv7U7BgQYxGI76+vuzYsYOHDx+ya9cubG1t9cZcRERE5BPm5OREjRo1sLe3Z/PmzeTKlYtmzZoB4ODgQJMmTbh79y7u7u7mNnrvKCKfqtatW+Ph4UHnzp1ZtmwZiRMnJnXq1Bw4cMC8/IKukSJvTzN25ZO0aNEi7t+/T3R0NJ06dQIgMjKSL774ghs3buDv70+hQoVYs2YNBw4coG/fvlrIXUREREQAzDu2f/fdd5w9e5a1a9fi4OBA/fr1+eabb2jYsCFgOalARORTdvfuXR49eoTRaCRTpkzY2Njo87XIO6DErnxyHj9+TLZs2QgMDKRHjx4MHz7c/OY8MjKSChUqcOPGDebNm0fx4sXN7fRNooiIiIg8a8+ePZQuXZps2bIRHh6Ok5MThw4dUqJCROQV9MWXyLuhxK589J73gnH16lUaNGhAUFAQa9asIUOGDObkblRUFHny5CFXrlwsXbrUSlGLiIiISHxw6NAhli9fjqurK97e3rrLS0RERD4YJXblo/ZsUnfz5s0EBwdjY2NDzZo1uXbtGlWrVsXZ2Zlly5bh5eVlTu5GR0cDWg9NRERERN6MkroiIiLyoSixKx+tmCQtgI+PD/PmzSNFihScPHmShg0bMmTIEEwmE1WrVsXFxYVly5aRJk0aiz60/IKIiIiIiIiIiMRFWtBEPloxSd0RI0Ywd+5cli9fzqFDhxg5ciR+fn506dIFg8HA+vXrCQsLo1SpUty+fduiDyV1RUREREREREQkLlJiVz5qN27c4MSJE4wdO5aiRYuyfPly+vfvT9++fQkICKBLly5ERUWxatUqSpYsSbJkyawdsoiIiIiIiIiIyCtpKQb5qIWFhbFu3TrKlSvHuXPnqF+/Pt26daNz586MGTOG7t27U7ZsWRYtWkSKFCkALb8gIiIiIiIiIiJxn2bsykfNycmJGjVqkDhxYjZv3kyuXLlo1qwZAA4ODjRp0gRHR0fc3d3NbZTUFRERERERERGRuE6JXfnoxexKfObMGR49eoTBYCAsLIwNGzZQo0YN1q1bh42NDUaj0cqRioiIiIiIiIiIvB4txSCfjD179lC6dGmyZctGeHg4Tk5OHDp0yJz4FRERERERERERiS+U2JVPyqFDh1i+fDmurq54e3tjZ2dHVFSUkrsiIiIiIiIiIhKvKLErnzQldUVEREREREREJD5SYldEREREREREREQkntHmaSIiIiIiIiIiIiLxjBK7IiIiIiIiIiIiIvGMErsiIiIiIiIiIiIi8YwSuyIiIiIiIiIiIiLxjBK7IiIiIiIiIiIiIvGMErsiIiIiIiIiIiIi8YwSuyIiIiIiVmQwGFi5cqW1wxARERGReEaJXRERERH55DVv3hyDwUC7du1iHevQoQMGg4HmzZu/Vl/btm3DYDDw8OHD16p/8+ZNqlat+gbRioiIiIgosSsiIiIiAoCXlxeLFi0iNDTUXBYWFsaCBQtImzbtOz9fREQEAJ6enjg6Or7z/kVERETk46bEroiIiIgIULBgQby8vFi+fLm5bPny5aRNm5YCBQqYy4xGI76+vmTIkAFnZ2fy5cvH0qVLAbh06RLlypUDIEmSJBYzfcuWLUvHjh3p2rUr7u7uVK5cGYi9FMO1a9do3LgxSZMmxcXFhcKFC7N37973PHoRERERiW/srB2AiIiIiEhc8d133zFnzhyaNGkCwOzZs2nRogXbtm0z1/H19WX+/PlMmzaNLFmysGPHDr755huSJ09OyZIlWbZsGfXq1eP06dO4urri7Oxsbjt37lzat2/Pzp07n3v+4OBgypQpQ+rUqVm9ejWenp4cOnQIo9H4XsctIiIiIvGPErsiIiIiIv/vm2++wcfHh8uXLwOwc+dOFi1aZE7shoeHM3ToUDZv3kyJEiUAyJgxI3/99Re//PILZcqUIWnSpACkSJGCxIkTW/SfJUsWRowY8cLzL1iwgDt37rB//35zP5kzZ37HoxQRERGRj4ESuyIiIiIi/y958uRUr16dX3/9FZPJRPXq1XF3dzcfP3fuHE+ePKFixYoW7SIiIiyWa3iRQoUKvfT4kSNHKFCggDmpKyIiIiLyIkrsioiIiIg847vvvqNjx44ATJ482eJYcHAwAGvXriV16tQWx15nAzQXF5eXHn922QYRERERkZdRYldERERE5BlVqlQhIiICg8Fg3uAsRs6cOXF0dOTKlSuUKVPmue0dHBwAiI6OfuNz582bl5kzZ3L//n3N2hURERGRl7KxdgAiIiIiInGJra0tJ0+e5MSJE9ja2locS5QoEd27d6dbt27MnTuX8+fPc+jQISZOnMjcuXMBSJcuHQaDgTVr1nDnzh3zLN/X0bhxYzw9PalduzY7d+7kwoULLFu2jN27d7/TMYqIiIhI/KfEroiIiIjIv7i6uuLq6vrcY4MHD6Zfv374+vqSI0cOqlSpwtq1a8mQIQMAqVOnZuDAgfTu3RsPDw/zsg6vw8HBgY0bN5IiRQqqVatGnjx5GDZsWKwEs4iIiIiIwWQymawdhIiIiIiIiIiIiIi8Ps3YFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERERERERERGJZ5TYFREREREREREREYlnlNgVERERERERERERiWeU2BURERH5SKVPn57mzZu/ddsaNWq824DiuG3btmEwGNi2bZu1Q/kk6fkXEREReTNK7IqIiIjEA7/++isGg4EDBw4893jZsmXJnTv3B47q3Tpx4gQ//fQTly5demXdvHnzkjZtWkwm0wvrfP7553h4eBAVFfUOo3y/tm3bRt26dfH09MTBwYEUKVLw5Zdfsnz5cmuHJiIiIiJxjBK7IiIiIh+p06dPM2PGDGuH8dpOnDjBwIEDXyux26RJE65evcqff/753OOXLl1i9+7dNGzYEDs7u3cc6fsxYMAAypUrx/Hjx2nbti3Tpk2jR48eBAcHU69ePRYsWGDtEN+r0qVLExoaSunSpa0dioiIiEi8ED/e5YqIiIjIG3N0dLR2CO/N119/jY+PDwsWLHhuInDhwoWYTCaaNGliheje3NKlSxk0aBBfffUVCxYswN7e3nysR48ebNiwgcjISCtG+P6EhYXh4OCAjY0NTk5O1g5HREREJN7QjF0RERGRj9Tz1tg9evQoZcqUwdnZmTRp0jBkyBDmzJmDwWB47kzZv/76i6JFi+Lk5ETGjBnx8/OLVefhw4d07doVLy8vHB0dyZw5M8OHD8doNFrUW7RoEYUKFSJRokS4urqSJ08exo8fDzxdaqJ+/foAlCtX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MlGwYME36svBwYFChQoREBBA7dq1ATAajQQEBNCxY8fX6iM6Oppjx45RrVo1ADJkyICnpycBAQHmRG5QUBB79+6lffv2bxSfiIiIiIiIiIiISFz0xksx+Pj40L17d44dO4aTkxPLli3j6tWrlClThvr1679xAN7e3syYMYO5c+dy8uRJ2rdvT0hICC1atACgadOmFpurDRo0iI0bN3LhwgUOHTrEN998w+XLl2nVqhXwdAO3rl27MmTIEFavXs2xY8do2rQpqVKlMiePRUREREREREREROKzN56xe/LkSRYuXPi0sZ0doaGhJEyYkEGDBlGrVq03nhXbsGFD7ty5Q//+/QkMDCR//vysX7/evPnZlStXsLH5X/75wYMHtG7dmsDAQJIkSUKhQoXYtWsXOXPmNNfp2bMnISEhtGnThocPH1KyZEnWr1+Pk5PTmw5XREREREREREREJM5548Sui4uLeV3dlClTcv78eXLlygXA3bt33yqIjh07vnDphW3btlk8Hjt2LGPHjn1pfwaDgUGDBjFo0KC3ikdEREREREREREQkLnvjxG7x4sX566+/yJEjB9WqVeOHH37g2LFjLF++nOLFi7+PGEVERERERERERETkGW+c2B0zZgzBwcEADBw4kODgYPz9/cmSJQtjxox55wGKiIiIiIiIiIiIiKU3TuwOHTqUb775Bni6LMO0adPeeVAiIiIiIiIiIiIi8mI2r65i6c6dO1SpUgUvLy969OjB33///T7iEhEREREREREREZEXeOPE7qpVq7h58yb9+vVj//79FCxYkFy5cjF06FAuXbr0HkIUERERERERERERkWe9cWIXIEmSJLRp04Zt27Zx+fJlmjdvzrx588icOfO7jk9ERERERERERERE/uWtErsxIiMjOXDgAHv37uXSpUt4eHi8q7hERERERERERERE5AXeKrG7detWWrdujYeHB82bN8fV1ZU1a9Zw7dq1dx2fiIiIiIiIiIiIiPyL3Zs2SJ06Nffv36dKlSpMnz6dL7/8EkdHx/cRm4iIiIiIiIiIiIg8xxsndn/66Sfq169P4sSJ30M4IiIiIiIiIiIiIvIqb5zYbd269fuIQ0RERERERERERERe03/aPE1EREREREREREREPjwldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROIZJXZFRERERERERERE4hkldkVERERERERERETiGSV2RUREREREREREROKZOJHYnTx5MunTp8fJyYlixYqxb9++F9adMWMGpUqVIkmSJCRJkoQKFSrEqt+8eXMMBoPFT5UqVd73MEREREREREREREQ+CKsndv39/fH29mbAgAEcOnSIfPnyUblyZW7fvv3c+tu2baNx48Zs3bqV3bt34+XlRaVKlbh+/bpFvSpVqnDz5k3zz8KFCz/EcERERERERERERETeO6sndseMGUPr1q1p0aIFOXPmZNq0aSRIkIDZs2c/t/5vv/3G999/T/78+cmePTszZ87EaDQSEBBgUc/R0RFPT0/zT5IkST7EcERERERERERERETeO6smdiMiIjh48CAVKlQwl9nY2FChQgV27979Wn08efKEyMhIkiZNalG+bds2UqRIQbZs2Wjfvj337t17YR/h4eEEBQVZ/IiIiIiIiIiIiIjEVVZN7N69e5fo6Gg8PDwsyj08PAgMDHytPnr16kWqVKksksNVqlTBz8+PgIAAhg8fzvbt26latSrR0dHP7cPX1xc3Nzfzj5eX19sPSkREREREREREROQ9s7N2AP/FsGHDWLRoEdu2bcPJyclc3qhRI/Of8+TJQ968ecmUKRPbtm3jiy++iNWPj48P3t7e5sdBQUFK7oqIiIiIiIiIiEicZdUZu+7u7tja2nLr1i2L8lu3buHp6fnStqNGjWLYsGFs3LiRvHnzvrRuxowZcXd359y5c8897ujoiKurq8WPiIiIiIiIiIiISFxl1cSug4MDhQoVstj4LGYjtBIlSryw3YgRIxg8eDDr16+ncOHCrzzPtWvXuHfvHilTpnwncYuIiIiIiIiIiIhYk1UTuwDe3t7MmDGDuXPncvLkSdq3b09ISAgtWrQAoGnTpvj4+JjrDx8+nH79+jF79mzSp09PYGAggYGBBAcHAxAcHEyPHj3Ys2cPly5dIiAggFq1apE5c2YqV65slTGKiIiIiIiIiIiIvEtWX2O3YcOG3Llzh/79+xMYGEj+/PlZv369eUO1K1euYGPzv/zz1KlTiYiI4KuvvrLoZ8CAAfz000/Y2tpy9OhR5s6dy8OHD0mVKhWVKlVi8ODBODo6ftCxiYiIiIiIiIiIiLwPVk/sAnTs2JGOHTs+99i2bdssHl+6dOmlfTk7O7Nhw4Z3FJmIiIiIiIiIiIhI3GP1pRhERERERERERERE5M0osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISz8SJxO7kyZNJnz49Tk5OFCtWjH379r20/pIlS8iePTtOTk7kyZOHP/74w+K4yWSif//+pEyZEmdnZypUqMDZs2ff5xBEREREREREREREPhirJ3b9/f3x9vZmwIABHDp0iHz58lG5cmVu37793Pq7du2icePGtGzZksOHD1O7dm1q167N8ePHzXVGjBjBhAkTmDZtGnv37sXFxYXKlSsTFhb2oYYlIiIiIiIiIiIi8t7YWTuAMWPG0Lp1a1q0aAHAtGnTWLt2LbNnz6Z3796x6o8fP54qVarQo0cPAAYPHsymTZuYNGkS06ZNw2QyMW7cOPr27UutWrUA8PPzw8PDg5UrV9KoUaNYfYaHhxMeHm5+/OjRIwCCgoLe+XjfRHR4qFXPL3HLY/toa4cgcYi1r09xha6T8ixdJyWGrpFP6Ropz9I1Up6l6+RTuk7Ks3SdlGdZ+zoZc36TyfTSelZN7EZERHDw4EF8fHzMZTY2NlSoUIHdu3c/t83u3bvx9va2KKtcuTIrV64E4OLFiwQGBlKhQgXzcTc3N4oVK8bu3bufm9j19fVl4MCBscq9vLzeZlgi70VuawcgcYuvm7UjEIlzdJ0UM10jRWLRNVIs6DopEouuk2IhjlwnHz9+jJvbi2OxamL37t27REdH4+HhYVHu4eHBqVOnntsmMDDwufUDAwPNx2PKXlTn33x8fCySxUajkfv375MsWTIMBsObDUrkPQgKCsLLy4urV6/i6upq7XBEROIcXSdFRF5M10gRkZfTdVLiGpPJxOPHj0mVKtVL61l9KYa4wNHREUdHR4uyxIkTWycYkZdwdXXVi4yIyEvoOiki8mK6RoqIvJyukxKXvGymbgyrbp7m7u6Ora0tt27dsii/desWnp6ez23j6en50vox/3+TPkVERERERERERETiE6smdh0cHChUqBABAQHmMqPRSEBAACVKlHhumxIlSljUB9i0aZO5foYMGfD09LSoExQUxN69e1/Yp4iIiIiIiIiIiEh8YvWlGLy9vWnWrBmFCxemaNGijBs3jpCQEFq0aAFA06ZNSZ06Nb6+vgB06dKFMmXKMHr0aKpXr86iRYs4cOAA06dPB8BgMNC1a1eGDBlClixZyJAhA/369SNVqlTUrl3bWsMU+U8cHR0ZMGBArCVDRETkKV0nRUReTNdIEZGX03VS4iuDyWQyWTuISZMmMXLkSAIDA8mfPz8TJkygWLFiAJQtW5b06dPz66+/musvWbKEvn37cunSJbJkycKIESOoVq2a+bjJZGLAgAFMnz6dhw8fUrJkSaZMmULWrFk/9NBERERERERERERE3rk4kdgVERERERERERERkddn1TV2RUREREREREREROTNKbErIiIiIiIiIiIiEs8osSsiIiIiIiIiIiISzyixKyIiIiIiIiIiIhLPKLErIiIiIiIiIiIiEs8osSsiIiIiIiJWYTQarR2CiIhIvKXEroi8M8++MX/y5IkVIxEReTdMJhMAYWFhVo5EROTjZGPz9CPp3Llz2b9/P/C/a6+IyKdMX3zJ61BiV0TeCaPRaH5jPnr0aMaOHcvly5etHJWIyNszmUwYDAY2b95Mjx49uHDhgrVDEhH56JhMJsLDw+nevTsLFy4EwGAwWDkqERHrevbz9bFjx7h27Rp37twB9OWXWFJiV0TeiZgXnZ49ezJq1Cg8PDxwdna2clQiIm/PYDCwbNky6tSpQ7Jkybh//z6gN9MiIu+SyWTC0dGRESNGsGXLFo4dO2btkERErC7m87WPjw/Vq1fn888/p0WLFuzevRuDwaD3o2JmZ+0AROTj4efnx9y5c9m8eTN58uQBIDQ0lMePH5MiRQorRyci8mYOHz5M+/btGTNmDK1btzaX37t3D3d3dytGJiISf8XcDREjJnlRsGBBwsPDOXjwIHny5LGYrSYi8ql49hq5detW5s+fz6+//srp06fZsWMH3377LbNnz6Z06dKxrqfyadIrpYi8M4GBgZQpU4Y8efJw+vRpJk6cSL58+ahbty69evWydngiIq8lZgbEsWPHyJAhA61btyY4OJiFCxdSvXp18ufPz9ChQ60cpYhI/BSThFiyZAnLly83l+fLl4+aNWsycOBA7t27p6SuiHySYq6R8+bNY+PGjXTt2pUvvviC77//nh49elC0aFGaN2/On3/+icFg0Dq8osSuiLydZ19AoqKizP/fuHEj3t7e1K1blx07dtCkSROKFy/OunXruHLlirXCFRF5pX9vlObl5cX58+fp2rUrVatWZdGiRaRMmZKePXvSt29f9u3bZ81wRUTilWffO165coWZM2fSuHFjvv76a6ZNmwZAmzZtSJcuHQEBAbHaiIh8Ki5cuMDs2bOZOHGixabkhQoVonv37pQoUYLvvvuOzZs360swUWJXRN7cs7fGjRkzhpEjR/LkyRP69OlDy5YtuXDhAp06dWLo0KEMGDCAhg0bYmdnR3R0tJUjFxF5vphb2bZs2cLQoUO5cOECBQsWNCdwCxYsyIABA5gxYwbNmzenWLFi1g5ZRCTeePa945YtW0icODEbNmxg7969mEwmpk+fTu7cudm1axeBgYGsWrUKQAkLEfkk/Hu93IwZM9K9e3eKFy/O9OnTLdYeL1iwIN27dydz5sz88ssvHzpUiYMMJq24LCJvqWfPnsyfPx8fHx/q1KlDmjRpgKez3ZycnAAIDw+nbt26mEwm1qxZozfoIhLnxCR1ly1bRvPmzenZsyc1atSgQIECgOU1DaBv3774+/uzY8cOUqZMaa2wRUTihWfXgPTx8WHVqlU0b96cDh064OLiQmhoKKGhofz44488ePCAdevW8fjxY1asWEGtWrWsHL2IyPv17BdfUVFRREREkCBBAgC2bduGr68vjx49YubMmeTOndvc7syZM2TOnFmfr0WJXRF5O3PmzKFXr15s3ryZ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k5CQQNu2bdm+fTuXL1/GycmJN998k2nTpvHhhx8yb968Audo2LAh69evV6grIiIiUszd237Bzc0NDw8PkpKSyMnJoXfv3pw4cYIJEyYwYcIETp8+Dfx88yAFFiJSnOXk5JCWloarqyuPPvoomzdv5sCBA5b369aty/r164mMjGTevHmEhISwe/dujEYjOTk5ukZKiaKKXZH/Qd5fH29vbxo2bEhAQACxsbH07t2bWbNmMXDgQNLT0zGZTJjNZnbs2IGnp6flRnO/ZvAiIiIiUrwdPnyY8uXLU6dOHRISEvDx8eHNN9+0VO42aNCAf//73wwfPhx/f38cHBysPWQRkb9V/haH+X399dd069aNJ598krFjx/Lcc8/94jlUqSslkSp2Rf6g/JUWeaFsWloazZo1Y9euXfTq1csS6mZnZxMREUF8fDylS5ema9eulp5o+Y8XERERkeIrfy3N/v378fLyYtSoUWzdupUGDRrQtWtXzp49S5s2bdi3bx/u7u5kZ2dz/PhxhboiUuyZzWZLqBsdHc3HH3/Mzp07SU5O5oknnmDFihX8+9//Zs6cOezduxcADw+Pn62GVagrJZEqdkX+pFWrVtG9e3ccHBzo168fGzduJDMzkwULFuDt7Q1AUlISXl5edOrUCT8/PyuPWEREREQetPxVaFevXqVSpUps27aNrVu3EhoayqRJk6hcuTJLliwhICCADh06kJqaytmzZ2nYsCG2trZa5SUixVb+69vYsWOJiIjA2dkZR0dH3N3dmT59OlWqVOHgwYP4+vri6OhIRkYGubm5/Pvf/8be3t7K30DEuhTsivwJaWlpVKxYkd69exMaGsrNmzfx8vIiISGBkydPkpubS1paGn369OHWrVt88cUXenooIiIiUsLkD3WnTJnC999/z8iRIy0VuZ9++iljx47lpZdeYseOHdjb2xMfH0/16tUt59DSYhEpCb7++msmTpzIlClTeOyxx4iIiGDNmjW4uroyb948qlSpwn/+8x92795NWloao0aNws7OjpycHOzs7Kw9fBGrUSsGkd/h3o0uSpUqxaJFizh27Biffvop5cqVw9/fn3LlylGjRg2ef/55OnXqRFJSErt378bW1pbc3FwrjV5ERERErCEv1H333XeZP38+nTt3toS2RqORzp07ExMTQ9WqValevTqnTp1i48aNBc6hUFdE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Yu3SpUt89913zJkzh2effZbo6GgmTZpEQEAA8fHxjBgxgpycHDZt2kTz5s1xcXGx9pBFRERERERERER+k1oxSLGWkZHB1q1badmyJYmJifTo0QM/Pz+GDx9OcHAwY8aMwcPDg8jISCpWrAio/YKIiIiIiIiIiBR+qtiVYs3R0ZGOHTvy8MMPs3PnTho3bkyfPn0AsLe3p1evXjg4OODq6mo5RqGuiIiIiIiIiIgUdgp2pdjL63N28uRJbt26hcFgICMjg88++4yOHTuydetWbGxsMJlMVh6piIiIiIiIiIjI76NWDFJiHDhwgJdeeon69euTmZmJo6MjR48e1QYXIiIiIiIiIiJS5CjYlRLl6NGjREdHU6ZMGUaNGoWdnR05OTkKd0VEREREREREpEhRsCslmkJdEREREREREREpihTsioiIiIiIiIiIiBQx2jxNREREREREREREpIhRsCsiIiIiIiIiIiJSxCjYFRERERERERERESliFOyKiIiIiIiIiIiIFDEKdkVERERERERERESKGAW7IiIiIiIiIiIiIkWMgl0RERERERERERGRIkbBroiIiIiIFRkMBmJiYqw9DBEREREpYhTsioiIiEiJ5+Pjg8FgYNCgQT97b8iQIRgMBnx8fH7XuXbt2oXBYCAlJeV3ff7y5cu0b9/+D4xWRERERETBroiIiIgIANWqVSMyMpL09HTLaxkZGaxevZrq1av/5X9eVlYWAJUrV8bBweEvP7+IiIiIFG8KdkVEREREADc3N6pVq0Z0dLTltejoaKpXr85TTz1lec1kMjFjxgxq1aqFk5MTTz75JBs2bADgxx9/pGXLlgCUK1euQKWvh4cHQ4cOZeTIkbi6utK2bVvg560YLly4wBtvvEH58uVxdnbmmWee4eDBg3/ztxcRERGRosbO2gMQERERESks+vbty7Jly+jVqxcAS5cu5e2332bXrl2Wz8yYMYOVK1eyYMEC6tWrx549e/D29qZChQo0b96cqKgounXrxvfff0+ZMmVwcnKyHBseHs7gwYPZt2/fff/8O3fu8PLLL1OlShViY2OpXLkyR48exWQy/a3fW0RERESKHgW7IiIiIiL/z9vbG39/f86ePQvAvn37iIyMtAS7mZmZTJ8+nZ07d/L8888DULt2bfbu3UtYWBgvv/wy5cuXB6BixYo8/PDDBc5fr149Zs2a9Yt//urVq7l+/TqHDx+2nKdu3bp/8bcUERERkeJAwa6IiIiIyP+rUKECHTp0YPny5ZjNZjp06ICrq6vl/cTERNLS0nj11VcLHJeVlVWgXcMvefrpp3/1/ePHj/PUU09ZQl0RERERkV+iYFdEREREJJ++ffsydOhQAObPn1/gvTt37gCwZcsWqlSpUuC937MBmrOz86++n79tg4iIiIjIr1GwKyIiIiKST7t27cjKysJgMFg2OMvTqFEjHBwcOHfuHC+//PJ9j7e3twcgNzf3D//ZTzzxBIsXLyY5OVlVuyIiIiLyq2ysPQARERERkcLE1taWEydO8N1332Fra1vgvYceeogxY8bg5+dHeHg4p06d4ujRo8ybN4/w8HAAatSogcFgIC4ujuvXr1uqfH+PN954g8qVK9OlSxf27dvH6dOniYqK4ssvv/xLv6OIiIiIFH0KdkVERERE7lGmTBnKlClz3/emTp1KYGAgM2bMoGHDhrRr144tW7ZQq1YtAKpUqcI///lP3n33XSpVqmRp6/B72Nvbs337dipWrMg//vEPmjRpwsyZM38WMIuIiIiIGMxms9nagxARERERERERERGR308VuyIiIiIiIiIiIiJFjIJdERERERERERERkSJGwa6IiIiIiIiIiIhIEaNgV0RERERERERERKSIUbArIiIiIiIiIiIiUsQo2BUREREREREREREpYhTsioiIiIiIiIiIiBQxCnZFREREREREREREihgFuyIiIiIiIiIiIiJFjIJdERERERERERERkSJGwa6IiIiIiIiIiIhIEfN/DVgu5dKrUYcAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "benchmark = BenchmarkAnalysis(df1, df2)\n", - "summary_df = benchmark.calculate_summary_statistics()\n", - "print(summary_df)\n", - "benchmark.visualize_summary_statistics(summary_df)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Analyze deviations" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "
\n", - "" - ], - "text/plain": [ - "alt.Chart(...)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "deviations_df = benchmark.calculate_deviations()\n", - "# print(deviations_df)\n", - "benchmark.visualize_deviations(deviations_df)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Some Statistical Methods for Evaluation: t-test, p-p-value, Cohen's d " - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Paired t-test: t-statistic=-0.600, p-value=0.552\n", - "Cohen's d: -3.390\n" - ] - } - ], - "source": [ - "import pandas as pd\n", - "from scipy.stats import ttest_rel, ttest_ind # import independent ttest in case the samples are independent\n", - "\n", - "# Load the data (replace 'baseline.csv' and 'new.csv' with the file paths)\n", - "df_baseline = df1.copy()\n", - "df_new = df2.copy()\n", - "\n", - "# Perform paired t-test (if paired data) or independent ttest (if unpaired)\n", - "if \"question_number\" in df_baseline.columns:\n", - " # Ensure dataframes are sorted by question_number for paired t-test\n", - " df_baseline = df_baseline.sort_values(\"question_number\")\n", - " df_new = df_new.sort_values(\"question_number\")\n", - "\n", - " t_statistic, p_value = ttest_rel(df_baseline['answer_correctness'], df_new['answer_correctness'])\n", - "else:\n", - " # Use independent t-test if the samples are not paired\n", - " t_statistic, p_value = ttest_ind(df_baseline['answer_correctness'], df_new['answer_correctness'])\n", - "\n", - "# Calculate Cohen's d (example using the t-statistic and pooled standard deviation)\n", - "from math import sqrt\n", - "pooled_std = sqrt(((len(df_baseline) - 1) * df_baseline['answer_correctness'].std()**2 + \n", - " (len(df_new) - 1) * df_new['answer_correctness'].std()**2) / \n", - " (len(df_baseline) + len(df_new) - 2))\n", - "cohens_d = t_statistic / pooled_std\n", - "\n", - "\n", - "print(f\"Paired t-test: t-statistic={t_statistic:.3f}, p-value={p_value:.3f}\")\n", - "print(f\"Cohen's d: {cohens_d:.3f}\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "rag-optimization-cnn-dailymail-hiPg4Kip-py3.10", - "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.10.12" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/src/rag_pipeline/rag_system.py b/src/rag_pipeline/rag_system.py index 8e65c8c..f407767 100644 --- a/src/rag_pipeline/rag_system.py +++ b/src/rag_pipeline/rag_system.py @@ -139,8 +139,8 @@ def setup_reranker(self): self.final_retriever = my_reranker.initialize() def setup_llm(self): - if model_name: - llm = ChatOpenAI(model_name=model_name, temperature=0) + if self.model_name: + llm = ChatOpenAI(model_name=self.model_name, temperature=0) self.llm = llm return self.llm From 3334a6a1a01eb5032e981a8221282a126e6d6db6 Mon Sep 17 00:00:00 2001 From: Hillary Kipkemoi Date: Tue, 30 Jul 2024 09:03:34 +0300 Subject: [PATCH 10/13] add util function to compare the ragas benchmarks --- .../compare_benchmarks.ipynb | 245 +++++++++++++++++- .../results/prompt_eng_opt_analysis.png | Bin 0 -> 27211 bytes src/benchmark_analysis/__init__.py | 3 +- src/benchmark_analysis/compare_benchmarks.py | 56 ++++ 4 files changed, 292 insertions(+), 12 deletions(-) create mode 100644 screenshots/results/prompt_eng_opt_analysis.png create mode 100644 src/benchmark_analysis/compare_benchmarks.py diff --git a/notebooks/benchmark analysis/compare_benchmarks.ipynb b/notebooks/benchmark analysis/compare_benchmarks.ipynb index 7d6a4c9..1ce800b 100644 --- a/notebooks/benchmark analysis/compare_benchmarks.ipynb +++ b/notebooks/benchmark analysis/compare_benchmarks.ipynb @@ -21,27 +21,110 @@ "metadata": {}, "outputs": [], "source": [ - "from src.benchmark_analysis import BenchmarkAnalysis" + "from src.benchmark_analysis import BenchmarkAnalysis, compare_rag_metrics" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "\n", + "results_folder = \"data/ragas_results\"\n", + "# Load CSV files\n", + "baseline_filepath = f'{results_folder}/bm_baseline_benchmark_results.csv'\n", + "optimized_filepath = f'{results_folder}/bm_embedding_model_bge_large_results.csv'\n", + "df1 = pd.read_csv(baseline_file_path)\n", + "df2 = pd.read_csv(optimized_file_path)" + ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.Chart(...)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "\n", - "results_folder = \"data/ragas_results\"\n", - "# Load CSV files\n", - "df1 = pd.read_csv(f'{results_folder}/bm_baseline_benchmark_results.csv')\n", - "df2 = pd.read_csv(f'{results_folder}/bm_embedding_model_bge_large_results.csv')" + "compare_rag_metrics(baseline_filepath, optimized_filepath)" ] }, { @@ -83,7 +166,7 @@ "# get the columns - question, answer_correctness ...\n", "\n", "df_baseline_copy = df_baseline_copy[['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision']]\n", - "print(df_baseline_copy.to_markdown(numalign=\"left\", stralign=\"left\"))\n" + "# print(df_baseline_copy.to_markdown(numalign=\"left\", stralign=\"left\"))\n" ] }, { @@ -219,6 +302,146 @@ "# chart.save('data/visualizations/rag_system_metrics_boxplots_combined.json')" ] }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "df_baseline = df1.copy()\n", + "df_optimized = df2.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import altair as alt\n", + "\n", + "# Read the CSV files into DataFrames\n", + "df_optimized = pd.read_csv('bm_prompt_engineering_optimization_results.csv')\n", + "df_baseline = pd.read_csv('baseline_ragas_results.csv')\n", + "\n", + "\n", + "# Melt the data to long format\n", + "df_melted_baseline = df_baseline.melt(value_vars=metrics, var_name='Metric', value_name='Value')\n", + "df_melted_baseline['System'] = 'Baseline'\n", + "\n", + "df_melted_optimized = df_optimized.melt(value_vars=metrics, var_name='Metric', value_name='Value')\n", + "df_melted_optimized['System'] = 'Optimized'\n", + "\n", + "# Combine the melted data\n", + "df_combined = pd.concat([df_melted_baseline, df_optimized_melt])\n", + "\n", + "# Create the combined boxplot\n", + "chart = alt.Chart(df_combined).mark_boxplot(ticks=True).encode(\n", + " x=alt.X('System:N', title=None, axis=alt.Axis(labels=False, ticks=False), scale=alt.Scale(padding=1)), \n", + " y=alt.Y('Value:Q'), \n", + " color='System:N',\n", + " column=alt.Column('Metric:N', sort=list(metrics), header=alt.Header(orient='bottom'))\n", + ").properties(\n", + " width=100,\n", + " title='Baseline vs. Optimized RAG System Metrics'\n", + ").configure_facet(\n", + " spacing=0\n", + ").configure_view(\n", + " stroke=None\n", + ")\n", + "\n", + "# Show the chart\n", + "chart.save('rag_system_metrics_combined_boxplot_updated.json')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + "
\n", + "" + ], + "text/plain": [ + "alt.Chart(...)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "chart.show()" + ] + }, { "cell_type": "code", "execution_count": 4, diff --git a/screenshots/results/prompt_eng_opt_analysis.png b/screenshots/results/prompt_eng_opt_analysis.png new file mode 100644 index 0000000000000000000000000000000000000000..3c39fdc1e53cafc0a2059c5f4a556ff3affd628b GIT binary patch literal 27211 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 literal 0 HcmV?d00001 diff --git a/src/benchmark_analysis/__init__.py b/src/benchmark_analysis/__init__.py index 4614fac..dc3a5f3 100644 --- a/src/benchmark_analysis/__init__.py +++ b/src/benchmark_analysis/__init__.py @@ -1 +1,2 @@ -from .benchmarks_analysis import BenchmarkAnalysis \ No newline at end of file +from .benchmarks_analysis import BenchmarkAnalysis +from .compare_benchmarks import compare_rag_metrics \ No newline at end of file diff --git a/src/benchmark_analysis/compare_benchmarks.py b/src/benchmark_analysis/compare_benchmarks.py new file mode 100644 index 0000000..58c3b0b --- /dev/null +++ b/src/benchmark_analysis/compare_benchmarks.py @@ -0,0 +1,56 @@ +import pandas as pd +import altair as alt + +def compare_rag_metrics(baseline_filepath, optimized_filepath, metrics=['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision'], chart_title='Baseline vs. Optimized RAG System Metrics', output_filename='rag_system_metrics_comparison.json'): + """ + Compares the metrics of two RAG systems (baseline and optimized) using boxplots. + + Args: + baseline_filepath (str): File path to the CSV containing baseline results. + optimized_filepath (str): File path to the CSV containing optimized results. + metrics (list, optional): List of metrics to compare. Defaults to the four standard RAG metrics. + chart_title (str, optional): Title for the generated chart. + output_filename (str, optional): Filename for saving the chart. + + Returns: + altair.Chart: The generated Altair chart object. + """ + + # Load data + df_baseline = pd.read_csv(baseline_filepath) + df_optimized = pd.read_csv(optimized_filepath) + + # Drop Unnamed Columns + df_baseline.drop(columns=['Unnamed: 0'], inplace=True, errors='ignore') + df_optimized.drop(columns=['Unnamed: 0'], inplace=True, errors='ignore') + + # Melt and prepare data + df_baseline_melt = df_baseline.melt(value_vars=metrics, var_name='Metric', value_name='Value') + df_baseline_melt['System'] = 'Baseline' + + df_optimized_melt = df_optimized.melt(value_vars=metrics, var_name='Metric', value_name='Value') + df_optimized_melt['System'] = 'Optimized' + + df_combined = pd.concat([df_baseline_melt, df_optimized_melt]) + + # Create the combined boxplot + chart = alt.Chart(df_combined).mark_boxplot(ticks=True).encode( + x=alt.X('System:N', title=None, axis=alt.Axis(labels=False, ticks=False), scale=alt.Scale(padding=1)), + y=alt.Y('Value:Q'), + color='System:N', + column=alt.Column('Metric:N', sort=list(metrics), header=alt.Header(orient='bottom')) + ).properties( + width=100, + title=chart_title + ).configure_facet( + spacing=0 + ).configure_view( + stroke=None + ) + + # Save and return the chart + chart.save(output_filename) + return chart + +# Example usage with your data +# compare_rag_metrics('baseline_ragas_results.csv', 'bm_prompt_engineering_optimization_results.csv') From 716ca1d1cfda099955af06f3710ef648902df686 Mon Sep 17 00:00:00 2001 From: Hillary Kipkemoi Date: Tue, 30 Jul 2024 09:35:17 +0300 Subject: [PATCH 11/13] compare benchmarks of multiple files given in dictionary --- .../compare_benchmarks.ipynb | 276 ++---------------- src/benchmark_analysis/compare_benchmarks.py | 54 ++-- 2 files changed, 63 insertions(+), 267 deletions(-) diff --git a/notebooks/benchmark analysis/compare_benchmarks.ipynb b/notebooks/benchmark analysis/compare_benchmarks.ipynb index 1ce800b..ad1f167 100644 --- a/notebooks/benchmark analysis/compare_benchmarks.ipynb +++ b/notebooks/benchmark analysis/compare_benchmarks.ipynb @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -35,13 +35,12 @@ "# Load CSV files\n", "baseline_filepath = f'{results_folder}/bm_baseline_benchmark_results.csv'\n", "optimized_filepath = f'{results_folder}/bm_embedding_model_bge_large_results.csv'\n", - "df1 = pd.read_csv(baseline_file_path)\n", - "df2 = pd.read_csv(optimized_file_path)" + "embedding_3_large = f'{results_folder}/bm_embedding_model_3_large_openai_results.csv'" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -49,23 +48,23 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ "alt.Chart(...)" ] }, - "execution_count": 6, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "compare_rag_metrics(baseline_filepath, optimized_filepath)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "| | answer_correctness | faithfulness | answer_relevancy | context_precision |\n", - "|:---|:---------------------|:---------------|:-------------------|:--------------------|\n", - "| 0 | 0.712666 | 0.833333 | 0.983714 | 1 |\n", - "| 1 | 0.998523 | 1 | 0.944596 | 0.95 |\n", - "| 2 | 0.618642 | 0.2 | 0.938077 | 1 |\n", - "| 3 | 0.785931 | 1 | 0.973125 | 1 |\n", - "| 4 | 0.844 | 1 | 0.921761 | 1 |\n", - "| 5 | 0.902158 | 1 | 0.852989 | 1 |\n", - "| 6 | 0.548405 | 1 | 0.915066 | 0.916667 |\n", - "| 7 | 1 | 1 | 0.92351 | 1 |\n", - "| 8 | 0.534439 | 1 | 0 | 1 |\n", - "| 9 | 0.229628 | 1 | 1 | 1 |\n", - "| 10 | 0.64658 | 0.8 | 0.943542 | 1 |\n", - "| 11 | 0.77964 | 0.8 | 0.960474 | 1 |\n", - "| 12 | 0.486995 | 0.666667 | 0 | 0.95 |\n", - "| 13 | 0.46572 | 0.8 | 0.961726 | 1 |\n", - "| 14 | 0.544659 | 1 | 0.916746 | 1 |\n", - "| 15 | 0.770046 | 1 | 0.854059 | 1 |\n", - "| 16 | 0.677661 | 0.666667 | 0.955715 | 0.833333 |\n", - "| 17 | 0.768948 | 1 | 0.999998 | 0.95 |\n", - "| 18 | 0.806005 | 0.5 | 0.958001 | 1 |\n", - "| 19 | 0.659544 | 1 | 0.934302 | 1 |\n" - ] - } - ], - "source": [ - "df_baseline_copy = df1.copy()\n", - "# get the columns - question, answer_correctness ...\n", + "# Example usage with your data\n", + "file_dict = {\n", + " \"Baseline\": baseline_filepath,\n", + " \"Optimized\": optimized_filepath,\n", + " '3_large': embedding_3_large\n", + "}\n", "\n", - "df_baseline_copy = df_baseline_copy[['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision']]\n", - "# print(df_baseline_copy.to_markdown(numalign=\"left\", stralign=\"left\"))\n" + "compare_rag_metrics(file_dict)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 4, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Summary Statistics for each metric:\n", - "| | answer_correctness | faithfulness | answer_relevancy | context_precision |\n", - "|:------|:---------------------|:---------------|:-------------------|:--------------------|\n", - "| count | 20 | 20 | 20 | 20 |\n", - "| mean | 0.689 | 0.863 | 0.847 | 0.98 |\n", - "| std | 0.189 | 0.216 | 0.292 | 0.042 |\n", - "| min | 0.23 | 0.2 | 0 | 0.833 |\n", - "| 25% | 0.547 | 0.8 | 0.916 | 0.987 |\n", - "| 50% | 0.695 | 1 | 0.941 | 1 |\n", - "| 75% | 0.791 | 1 | 0.961 | 1 |\n", - "| max | 1 | 1 | 1 | 1 |\n" - ] - }, { "data": { "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ "alt.Chart(...)" ] }, + "execution_count": 4, "metadata": {}, - "output_type": "display_data" + "output_type": "execute_result" } ], "source": [ - "# analyze the baseline results\n", - "import altair as alt\n", - "df = df1.copy()\n", - "# Drop the first column `Unnamed: 0`\n", - "# df.drop(columns=['Unnamed: 0'], inplace=True)\n", - "\n", - "# Calculate summary statistics for each metric\n", - "summary_stats = df[['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision']].describe().round(3)\n", - "\n", - "# Print the summary statistics\n", - "print(\"Summary Statistics for each metric:\")\n", - "print(summary_stats.to_markdown(numalign=\"left\", stralign=\"left\"))\n", - "\n", - "# Melt the DataFrame to long format for plotting\n", - "df_melted = df.melt(value_vars=['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision'], var_name='Metric', value_name='Value')\n", - "\n", - "# Create a single boxplot for all metrics\n", - "chart = alt.Chart(df_melted).mark_boxplot().encode(\n", - " x=alt.X('Metric:N', axis=alt.Axis(title='Metric', labelAngle=-45)),\n", - " y=alt.Y('Value:Q', axis=alt.Axis(title='Value')),\n", - " color='Metric:N' # Color by metric for better differentiation\n", - ").properties(\n", - " title='RAG System Metrics',\n", - " width=400, # Adjust width for better readability\n", - " height=300\n", - ")\n", - "\n", - "chart.show()\n", - "# Save the chart as a JSON file\n", - "# chart.save('data/visualizations/rag_system_metrics_boxplots_combined.json')" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "df_baseline = df1.copy()\n", - "df_optimized = df2.copy()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import altair as alt\n", - "\n", - "# Read the CSV files into DataFrames\n", - "df_optimized = pd.read_csv('bm_prompt_engineering_optimization_results.csv')\n", - "df_baseline = pd.read_csv('baseline_ragas_results.csv')\n", - "\n", - "\n", - "# Melt the data to long format\n", - "df_melted_baseline = df_baseline.melt(value_vars=metrics, var_name='Metric', value_name='Value')\n", - "df_melted_baseline['System'] = 'Baseline'\n", - "\n", - "df_melted_optimized = df_optimized.melt(value_vars=metrics, var_name='Metric', value_name='Value')\n", - "df_melted_optimized['System'] = 'Optimized'\n", - "\n", - "# Combine the melted data\n", - "df_combined = pd.concat([df_melted_baseline, df_optimized_melt])\n", - "\n", - "# Create the combined boxplot\n", - "chart = alt.Chart(df_combined).mark_boxplot(ticks=True).encode(\n", - " x=alt.X('System:N', title=None, axis=alt.Axis(labels=False, ticks=False), scale=alt.Scale(padding=1)), \n", - " y=alt.Y('Value:Q'), \n", - " color='System:N',\n", - " column=alt.Column('Metric:N', sort=list(metrics), header=alt.Header(orient='bottom'))\n", - ").properties(\n", - " width=100,\n", - " title='Baseline vs. Optimized RAG System Metrics'\n", - ").configure_facet(\n", - " spacing=0\n", - ").configure_view(\n", - " stroke=None\n", - ")\n", - "\n", - "# Show the chart\n", - "chart.save('rag_system_metrics_combined_boxplot_updated.json')" + "compare_rag_metrics(baseline_filepath, optimized_filepath)" ] }, { - "cell_type": "code", - "execution_count": 13, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "
\n", - "" - ], - "text/plain": [ - "alt.Chart(...)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], "source": [ - "chart.show()" + "### Summary statistics" ] }, { diff --git a/src/benchmark_analysis/compare_benchmarks.py b/src/benchmark_analysis/compare_benchmarks.py index 58c3b0b..2fcb8a0 100644 --- a/src/benchmark_analysis/compare_benchmarks.py +++ b/src/benchmark_analysis/compare_benchmarks.py @@ -1,13 +1,20 @@ import pandas as pd import altair as alt -def compare_rag_metrics(baseline_filepath, optimized_filepath, metrics=['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision'], chart_title='Baseline vs. Optimized RAG System Metrics', output_filename='rag_system_metrics_comparison.json'): +metrics = ['answer_correctness', 'faithfulness', 'answer_relevancy', 'context_precision'] + + +def compare_rag_metrics( + file_dict, + metrics=metrics, + chart_title='RAG System Metrics Comparison', + output_filename='rag_system_metrics_comparison.json' +): """ - Compares the metrics of two RAG systems (baseline and optimized) using boxplots. + Compares the metrics of multiple RAG systems using boxplots. Args: - baseline_filepath (str): File path to the CSV containing baseline results. - optimized_filepath (str): File path to the CSV containing optimized results. + file_dict (dict): Dictionary with system names as keys and file paths as values. metrics (list, optional): List of metrics to compare. Defaults to the four standard RAG metrics. chart_title (str, optional): Title for the generated chart. output_filename (str, optional): Filename for saving the chart. @@ -16,26 +23,23 @@ def compare_rag_metrics(baseline_filepath, optimized_filepath, metrics=['answer_ altair.Chart: The generated Altair chart object. """ - # Load data - df_baseline = pd.read_csv(baseline_filepath) - df_optimized = pd.read_csv(optimized_filepath) - - # Drop Unnamed Columns - df_baseline.drop(columns=['Unnamed: 0'], inplace=True, errors='ignore') - df_optimized.drop(columns=['Unnamed: 0'], inplace=True, errors='ignore') + # Initialize an empty list to store DataFrames + df_list = [] - # Melt and prepare data - df_baseline_melt = df_baseline.melt(value_vars=metrics, var_name='Metric', value_name='Value') - df_baseline_melt['System'] = 'Baseline' + # Iterate over the dictionary to load data + for name, filepath in file_dict.items(): + df = pd.read_csv(filepath) + df.drop(columns=['Unnamed: 0'], inplace=True, errors='ignore') # Drop Unnamed columns if they exist + df_melt = df.melt(value_vars=metrics, var_name='Metric', value_name='Value') + df_melt['System'] = name # Add a column for the system name + df_list.append(df_melt) - df_optimized_melt = df_optimized.melt(value_vars=metrics, var_name='Metric', value_name='Value') - df_optimized_melt['System'] = 'Optimized' - - df_combined = pd.concat([df_baseline_melt, df_optimized_melt]) + # Combine all DataFrames into a single DataFrame + df_combined = pd.concat(df_list, ignore_index=True) # Create the combined boxplot chart = alt.Chart(df_combined).mark_boxplot(ticks=True).encode( - x=alt.X('System:N', title=None, axis=alt.Axis(labels=False, ticks=False), scale=alt.Scale(padding=1)), + x=alt.X('System:N', title=None, axis=alt.Axis(labels=False, ticks=False), scale=alt.Scale(padding=0.5)), y=alt.Y('Value:Q'), color='System:N', column=alt.Column('Metric:N', sort=list(metrics), header=alt.Header(orient='bottom')) @@ -43,7 +47,7 @@ def compare_rag_metrics(baseline_filepath, optimized_filepath, metrics=['answer_ width=100, title=chart_title ).configure_facet( - spacing=0 + spacing=0 # Reduce spacing between facets ).configure_view( stroke=None ) @@ -52,5 +56,11 @@ def compare_rag_metrics(baseline_filepath, optimized_filepath, metrics=['answer_ chart.save(output_filename) return chart -# Example usage with your data -# compare_rag_metrics('baseline_ragas_results.csv', 'bm_prompt_engineering_optimization_results.csv') +# Example usage with +# file_dict = { +# "Baseline": baseline_filepath, +# "Optimized": optimized_filepath, +# '3_large': embedding_3_large +# } + +# compare_rag_metrics(file_dict) \ No newline at end of file From a3d1473273d07590b5a947f4c594c140bc3b330b Mon Sep 17 00:00:00 2001 From: Hillary Kipkemoi Date: Tue, 30 Jul 2024 10:40:41 +0300 Subject: [PATCH 12/13] update README - include results for different optimizations --- README.md | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/README.md b/README.md index e655b74..94710fe 100644 --- a/README.md +++ b/README.md @@ -347,9 +347,109 @@ Key observations from the summary statistics and boxplots: - **Context Precision**: The system performs exceptionally well in context precision, with an average score of 0.98 and most values concentrated near 1. This suggests that the system is highly effective at retrieving relevant context for answering questions. +### Further analysis +I noted the following observations when manually going through each question at the results: + + + +## Identifying areas of improvement ## Optimization techniques +To work on the identified areas of improvement, I planned on implementing different optimization techniques. The techniques I planned to implement include: + +* **Prompt Engineering**: Experiment with different prompt formats to guide the model towards generating more factually accurate and relevant answers. This could improve answer_correctness, faithfulness, and answer_relevancy. +* **Use of Hybrid Retrievals**: Combining dense (e.g., neural) and sparse (e.g., BM25) retrieval models can leverage the strengths of both approaches, leading to improved document retrieval performance. +* **Using Multiquery retriever**: By generating multiple queries, this could improve help find documents that might have been missed due to subtle differences in wording or imperfect vector representations. +* **Experimenting with different embedding models**: Using advanced embeddings such as BERT or other transformer-based models for context representation can improve the quality of the retrieved documents, leading to better answer generation. +* **Reranking mechanism**: After initial retrieval, re-rank the retrieved documents based on additional factors like relevance scores. This could help prioritize the most relevant documents, improving answer_correctness and answer_relevancy. +* **Improved Chunking Strategy**: Optimizing chunk size and overlap parameters can help in capturing more coherent and contextually relevant document sections, thereby improving the quality of the retrieved context. + + +## Implementation of optimization techniques +### Prompt Engineering + +Below is a boxplot comparison of statistical analysis against the baseline benchmarks: + +![baseline-benchmark-results](screenshots/results/baseline_benchmark_visualization.png) + + +### Hybrid Retrievals +I implemented a hybrid retrieval mechanism that combines dense and sparse retrieval models to improve document retrieval performance. + +The hybrid retrieval mechanism uses a combination of BM25 and the base retriever from the RAG system to retrieve documents. The BM25 retriever is used to retrieve the top `k` documents based on the BM25 score, and the base retriever is used to retrieve additional documents. The documents retrieved by both retrievers are then combined and ranked based on relevance scores. + +The ranking is done by Reciprocal Rank Fusion (RRF), which combines the relevance scores from both retrievers to rank the documents. The RRF score is calculated as the reciprocal of the sum of the ranks of the documents retrieved by both retrievers. + +Below is a boxplot comparison of statistical analysis against the baseline benchmarks: + +![baseline-benchmark-results](screenshots/results/baseline_benchmark_visualization.png) + +### Use of Multiquery retriever +- I implemented a multiquery retriever that generates multiple queries to retrieve documents. +- The multiquery retriever generates `n` queries using llm(gpt-3.5-turbo) based on the question. +- It then retrieves documents for each query using the base retriever from the RAG system. +- The documents retrieved by each query are then combined and ranked. + +Below is a boxplot comparison of statistical analysis against the baseline benchmarks: + +![baseline-benchmark-results](screenshots/results/baseline_benchmark_visualization.png) + +### Chunking Strategy +- I experimented with a different chunking strategy which could improve the quality of the retrieved context, enhancing the context_precision and hence the answer generation. +- With `RecursiveCharacterTestSplitter`, I used a chunk size of 500 and overlap of 100. + +These were the results of the chunking strategy: + +![chunking-strategy-analysis](screenshots/results/chunk_500_overlap_100_visualization.png) + +* **Answer Correctness**: This increased significantly from `0.689` in the baseline to `0.711` in the chunked configuration. + - This suggests that smaller chunks might be more effective in guiding the model to generate factually accurate answers. + - The standard deviation also decreased (as seen from the image with smaller wicks), indicating more consistent accuracy in the chunked results. + +* **Faithfulness**: The average faithfulness also increased notably from 0.863 to 0.905. + - This implies that the chunked configuration, with smaller context windows, might help the model generate answers that are more aligned with the factual information in the context. + - The standard deviation also decreased, indicating more consistent faithfulness in the chunked results. + +* **Answer Relevancy**: The average answer relevancy improved from 0.847 to 0.938. + - This suggests that smaller chunks are more effective in guiding the model to generate answers that are relevant to the questions. + - The standard deviation also decreased significantly, indicating much more consistent relevancy in the chunked results. + +* **Context Precision**: The average context precision slightly decreased from 0.980 to 0.955. + - This suggests that smaller chunks might lead to slightly less precise context retrieval compared to larger chunks. However, the chunked configuration still maintains a high average context precision. + +Overall, reducing the chunk size and overlap seems to have a positive impact on all metrics except for context precision, which experienced a minor decrease. This suggests that smaller chunks might be a more effective strategy for this particular RAG system and dataset. + +**Recommendations**: Explore different combinations of chunk size and overlap to find the optimal configuration for this specific RAG system and dataset. + +### Experimenting with different embedding models +- I experimented with different embedding models to improve the quality of the retrieval, hence improve answer generation. +- I used embedding models from huggingface library and OpenAI text embedding models. +- For OpenAI `text-embeddings-ada-002` is the default model and hence results of this are the baseline results. I tried `text-embedding-3-large` as well. +- For huggingface models, I tried out the following: + - `BAAI/bge-small-en-v1.5` 384 dim - Fast and Default English model, (0.067GB in size) + - `BAAI/bge-large-en-v1.5` 1024 dim - Large English model, v1.5 1.200 (1.2GB in size) + +These are the comparison of the results of the different embedding models: + +![embedding-models-analysis](screenshots/results/embedding_models_evaluation.png) + +From the analysis we can deduce the following: +* **Baseline_ada2_openai**: This model serves as our baseline, achieving the highest scores in answer correctness and faithfulness. It indicates a strong capability to generate factually accurate and contextually consistent answers. + +* **all-mpnet-v2**: This model demonstrates a well-rounded performance, exhibiting competitive scores across all metrics. It particularly excels in answer relevancy, suggesting its ability to understand user intent and generate pertinent responses. This model is often pre-trained on a massive amount of web text, which might contribute to its strong semantic understanding. + +* **bge-large and bge-small**: These models seem to be less effective compared to the others. The "large" version performs slightly better than the "small" one, which is expected due to its larger size and capacity. However, both struggle with answer correctness and faithfulness, indicating potential difficulties in capturing factual information and maintaining consistency with the context. This could be due to limitations in their pre-training data or architecture. + +### Future improvements +If I had more time, I would consider the following additional optimization techniques: + +- **Fine-tuning the Language or embedding Models**: Fine-tune the models on a dataset specifically designed for the domain we had, (in this case the CNN/Daily Mail dataset). This could improve answer_correctness and faithfulness by tailoring the model's knowledge and response style. +- **Adaptive Chunking**: Using adaptive chunking strategies that vary chunk size based on document type and content length can improve context relevance and coherence. +* **Agentic chunking**: + + + ### Using open source model for CrossEncoderReranking. The embeddings I used were from the `sentence-transformers` library. I used From 57e01ddc1346ed9962e435352676e2f2fa890127 Mon Sep 17 00:00:00 2001 From: Hillary Kipkemoi Date: Tue, 30 Jul 2024 10:41:30 +0300 Subject: [PATCH 13/13] compare benchmarks on chunking and embedding models --- .../compare_benchmarks.ipynb | 65 +++++++++++------- .../chunk_500_overlap_100_visualization.png | Bin 0 -> 28461 bytes .../results/embedding_models_evaluation.png | Bin 0 -> 40985 bytes 3 files changed, 39 insertions(+), 26 deletions(-) create mode 100644 screenshots/results/chunk_500_overlap_100_visualization.png create mode 100644 screenshots/results/embedding_models_evaluation.png diff --git a/notebooks/benchmark analysis/compare_benchmarks.ipynb b/notebooks/benchmark analysis/compare_benchmarks.ipynb index ad1f167..af0d66c 100644 --- a/notebooks/benchmark analysis/compare_benchmarks.ipynb +++ b/notebooks/benchmark analysis/compare_benchmarks.ipynb @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -34,13 +34,16 @@ "results_folder = \"data/ragas_results\"\n", "# Load CSV files\n", "baseline_filepath = f'{results_folder}/bm_baseline_benchmark_results.csv'\n", - "optimized_filepath = f'{results_folder}/bm_embedding_model_bge_large_results.csv'\n", - "embedding_3_large = f'{results_folder}/bm_embedding_model_3_large_openai_results.csv'" + "bge_large = f'{results_folder}/bm_embedding_model_bge_large_results.csv'\n", + "embedding_3_large_openai = f'{results_folder}/bm_embedding_model_3_large_openai_results.csv'\n", + "allmpnetv2_filepath = f'{results_folder}/bm_embedding_model_allmpnetv2_results.csv'\n", + "bge_small = f'{results_folder}/bm_embedding_model_bge_small_2_results.csv'\n", + "\n" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -48,23 +51,23 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ "alt.Chart(...)" ] }, - "execution_count": 8, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -125,17 +128,19 @@ "source": [ "# Example usage with your data\n", "file_dict = {\n", - " \"Baseline\": baseline_filepath,\n", - " \"Optimized\": optimized_filepath,\n", - " '3_large': embedding_3_large\n", + " \"Baseline_ada2_openai\": baseline_filepath,\n", + " \"bge_large\": bge_large,\n", + " 'openai_3large': embedding_3_large_openai,\n", + " 'allmpnetv2': allmpnetv2_filepath,\n", + " 'bge_small': bge_small\n", "}\n", "\n", - "compare_rag_metrics(file_dict)" + "compare_rag_metrics(file_dict, chart_width=130)" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -143,23 +148,23 @@ "text/html": [ "\n", "\n", - "
\n", + "
\n", "" ], "text/plain": [ "alt.Chart(...)" ] }, - "execution_count": 4, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "compare_rag_metrics(baseline_filepath, optimized_filepath)" + "baseline_filepath = f'{results_folder}/bm_baseline_benchmark_results.csv'\n", + "baseline_chunk_100_overlap_200 = f'{results_folder}/bm_chunk_size_500_overlap_100_results.csv'\n", + "\n", + "file_dict = {\n", + " \"baseline_chunk_1000_overlap_200\": baseline_filepath,\n", + " \"chunk_500_overlap_100\": baseline_chunk_100_overlap_200\n", + "}\n", + "\n", + "compare_rag_metrics(file_dict, chart_width=100)" ] }, { diff --git a/screenshots/results/chunk_500_overlap_100_visualization.png b/screenshots/results/chunk_500_overlap_100_visualization.png new file mode 100644 index 0000000000000000000000000000000000000000..2946d8ad7684917476f9d00c855e7541dbb1b052 GIT binary patch literal 28461 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 literal 0 HcmV?d00001 diff --git a/screenshots/results/embedding_models_evaluation.png b/screenshots/results/embedding_models_evaluation.png new file mode 100644 index 0000000000000000000000000000000000000000..99df470f7703e91b7766c24d7f309920709ac827 GIT binary patch literal 40985 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 literal 0 HcmV?d00001