diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..7182f2e1d5dee8ced2491eb0cb4b381cd133d68f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,9 @@
+# Dossier de VS Code
+.vscode/
+
+# Dépendances (exemple pour Node.js)
+node_modules/
+
+# Fichiers de build
+dist/
+build/
diff --git a/Premier_code_encadrant.ipynb b/Premier_code_encadrant.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..20c9c29ec476b24faaac3197b03c41a40896e171
--- /dev/null
+++ b/Premier_code_encadrant.ipynb
@@ -0,0 +1,420 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 1000
+    },
+    "executionInfo": {
+     "elapsed": 254122,
+     "status": "ok",
+     "timestamp": 1740667566001,
+     "user": {
+      "displayName": "Joseph g",
+      "userId": "16217182262477443471"
+     },
+     "user_tz": -60
+    },
+    "id": "evLFJthZz570",
+    "outputId": "d26a90a6-6d3f-4b82-e8a0-fa2c39d35857"
+   },
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "Running experiments: 100%|██████████| 100/100 [07:15<00:00,  4.35s/it]\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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sbEwNjYWNWrUEKtWrVK7vfJy3Xn8+LEYPny4cHFxEXK5XJibmws3NzfRp08fcfDgQZX8O3bsEO7u7krX5RcvXmjU5lAnNDRU+Pn5idKlSwsjIyNhYGAg7O3tRYsWLcTSpUtFXFycxuuZMU+9evWEmZmZsLS0FC1bthTnz5/Pcv/n1z4WQoiQkBDRpk0bYWtrK/T19UXRokVFnTp1xLRp05TO1by0cXO6Tqij2PcZP0ZGRsLOzk54e3uLiRMnirt372ZbhibrlJycLGbOnCmaNm0qihcvLgwMDESRIkWEh4eHWL9+vUhPT1e7npq2xz5k2/DUqVPC09NTmJmZSdso47kYFBQkAIidO3dmu52I6OsiEyLDMzRERB+An58fgoOD8eDBA616jtDnRyaTwdPTU+3YcZ+71q1bY/fu3bh9+zacnZ0LujofTI8ePbB69WqEh4d/sJcE5Ye7d+/CxcUFnTp1wqZNmwq6OkRERPQFa9CgAZ4/f44bN25IY7gSEX15z7oS0Sdn+vTpePfuHRYvXlzQVSHKF9evX8fu3bvRpEmTLzrA+il6+fIlkpKSlNLevXuHkSNHAsAn/Xg0ERERff4OHjyIY8eOYebMmQywEpGSL2NALCL6pDk4OGD16tVKL+0h+hytX78et27dwpo1awBAZZwy+vDCwsLQu3dvNG3aFCVLlkRMTAwOHTqEiIgINGzYEJ07dy7oKhIREdEXLC4uDnPmzEHbtm0LuipE9IlhkJWIPopOnToVdBWItPa///0PR48ehYODA/744w++TbYAlC9fHk2aNMHx48exc+dOAO9fwDZt2jSMGTPmi3whHREREX062rVrV9BVIKJPFMdkJSIiIiIiIiIiItICu3sQERERERERERERaYFBViIiIiIiIiIiIiItMMhKREREREREREREpAUGWYmIiIiIiIiIiIi0wCArERERERERERERkRYYZCUiIiIiIiIiIiLSAoOsRERERERERERERFpgkJWIiIiIiIiIiIhICwyyEhEREREREREREWmBQVYiIiIiIiIiIiIiLTDISkRERERERERERKQFBlmJiIiIiIiIiIiItMAgKxEREREREREREZEWGGQlIiIiIiIiIiIi0gKDrERERERERERERERaYJCViIiIiIiIiIiISAsMshIRERERERERERFpgUFWIiIiIiIiIiIiIi0wyEpERERERERERESkBQZZiYiIiIiIiIiIiLTAICsRERERERERERGRFhhkJSIiIiIiIiIiItICg6xEREREREREREREWmCQlYiIiIiIiIiIiEgLDLISERERERERERERaYFBViIiIiIiIiIiIiItMMhKREREREREREREpAUGWYmIiIiIiIiIiIi0wCArERERERERERERkRYYZCUiIiIiIiIiIiLSAoOsRERERERERERERFpgkJWIiIiIiIiIiIhICwyyEhEREREREREREWmBQVYiIiIiIiIiIiIiLTDISkRERERERERERKQFBlmJiIiIiIiIiIiItMAgKxEREREREREREZEWGGQlIiIiIiIiIiIi0gKDrERERERERERERERaYJCViIiIiIiIiIiISAsMshIRERERERERERFpgUFWIiIiIiIiIiIiIi0wyEpERERERERERESkBQZZiYiIiIiIiIiIiLTAICsRERERERERERGRFhhkJSIiIiIiIiIiItICg6xEREREREREREREWmCQlYiIiIiIiIiIiEgLDLISERERERERERERaYFBViIiIiIiIiIiIiItMMhKREREREREREREpAUGWYmIiIiIiIiIiIi0wCArERERERERERERkRYYZCUiIiIiIiIiIiLSAoOsRERERERERERERFpgkJWIiIiIiIiIiIhICwyyEhEREREREREREWmBQVYiIiIiIiIiIiIiLTDISkRERERERERERKQFBlmJiIiIiIiIiIiItMAgKxEREREREREREZEWGGQlIiIiIiIiIiIi0gKDrERERERERERERERaYJCViIiIiIiIiIiISAsMshIRERERERERERFpgUFWos9UUFAQZDIZIiIiCroqGps8eTJkMllBV+ODePToEQwNDXH8+PGCrspH4+joiB49ekh/K47Jc+fOfZTlX79+HXp6erh69epHWR4RERF9+SIiIiCTyRAUFFTQVfkgWrZsib59+xZ0NT4add8/ZDIZhgwZ8tHqULt2bYwdO/ajLY+ICg6DrPRVCg8Px5AhQ1CmTBkYGxvD2NgY5cqVw+DBg3H58uWCrt4nz9HRETKZDI0bN1Y7fcWKFZDJZPkWcEtISMDkyZNx+PBhrcv6UKZOnYpatWqhXr16H22Zr169QuHChSGTybB169aPttxPRbly5dCqVStMmjSpoKtCRET0SfjY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IiIiIiIiIiItsCcrERERkRbSIZCO/P3pP7/LIyIiIiLKCtuz+YNBViIiIiItpCMd+f0wVP6XSERERESkHtuz+YPDBRARERERERERERFpgT1ZiYiIiLSQJgTSRP4+DpXf5RERERERZYXt2fzBnqxEREREREREREREWmBPViIiIiIt8EUBRERERPQ5Y3s2f7AnKxEREREREREREZEW2JOViIiISAvpEEjjL/9ERERE9JliezZ/sCcrERERERERERERkRbYk5WIiIhICxzDioiIiIg+Z2zP5g8GWYmIiIi0kCYE0kT+NiLzuzwiIiIioqywPZs/OFwAERERERERERERkRbYk5WIiIhIC+n//8nvMomIiIiIPga2Z/MHe7ISERERERERERERaYE9WYmIiIi0kAaBtHwe2D+/yyMiIiIiygrbs/mDPVmJiIiIiIiIiIiItMCerERERERaSBPvP/ldJhERERHRx8D2bP5gkJWIiIhIC3xRABERERF9ztiezR8cLoCIiIiIiIiIiIhIC+zJSkRERKSFdMiQBlm+l0lERERE9DGwPZs/2JOViIiIiIiIiIiISAvsyUpERESkhXTx/pPfZRIRERERfQxsz+YP9mQlIiIiIiIiIiIi0gJ7shIRERFpIe0DjGGV3+UREREREWWF7dn8wSArERERkRbYKCUiIiKizxnbs/mDwwUQERERERERERERaYE9WYmIiIi0kC5kSBf5+0t9fpdHRERERJQVtmfzB3uyEhEREREREREREWmBPVmJiIiItMAxrIiIiIjoc8b2bP5gT1YiIiIiIiIiIiIiLbAnKxEREZEW0qCDtHz+3TotX0sjIiIiIsoa27P5gz1ZiYiIiIiIiIiIiLTAnqxEREREWhAf4G2s4it8GysRERERFQy2Z/MHe7ISERERaUHxooD8/uTGjBkzUKNGDZiZmaFw4cLw9fXFrVu3sp0nKCgIMplM6WNoaKjNpiAiIiKiz1BBt2e/lLYsg6xEREREn7mwsDAMHjwYp06dQkhICFJSUtC0aVO8ffs22/nMzc3x9OlT6fPgwYOPVGMiIiIiove+lLYshwsoQK396qFDP29Y2Zrh/o0nWDZ5B25feqg2b/MutdGoXXU4lCkKALh75TGC5uxWym9ZyBS9fmiNag1cYWJuhKtn7mPZ5O14EhEj5WnRtTa8vqkG5/LFYWxm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Z5oLNZEI8zu2h0Pez6xr13HA67G8jI2hATb16wMTHR3EpafjYWgohvx9AHHp6QCAzJwctHRwwJfNm8FIRwexqWm49/o1hu4/iNi09I+y3+WVk401/h6RezwWd3EFABx78gwLz735DslzPEQiEea9PR5SCUISErDO/ToOeOYej1FNnQEA+/PUCwALzp7H8aey9QVGOjfBzHYu8scOjhyWr4yqYp4VhkhahqfMC7psGlAcDuzq6opq1aph3759AICcnBysXr0af/75J0JDQ2FpaYn+/ftj9erVMMlzZqowSUlJMDY2RrcqU6GhVvkuu6qIpEkc/VTeSNNV+0u/vJFkZX+4EH08Ei5SUJ7kSLPhhlNITEws8qqlQnmbKY541YOeobCdY2nJYgxt4lMm+0VFVxZZFsj9v1d19fdQ09ERYE+opCTaqvdDsrwzrRb/4UL00SR5m5d1EygPkaSsW0B5STIyELhsMfNsJVDm0wV8yLvDgTU0NLBs2TIsW7aslFpFREREVHRlvRorlR1mWSIiIqoMmGeFIexfkIiIiIiIiIiIiEjFqPbELEREREQlJIEaJJzDioiIiIgqKOZZYbCTlYiIiKgExFIRxNKC5+YsSZ1ERERERB8D86wwOF0AERERERERERERUQlwJCsRERFRCYihBrHA563FKnh5FRERERGVDeZZYXAkKxEREREREREREVEJcCQrERERUQlIpGqQSAVeKECqemf+iYiIiKhsMM8KgyNZiYiIiIiIiIiIiEqAI1mJiIiISoBzWBERERFRRcY8Kwx2shIRERGVgASAWCoSvE4iIiIioo+BeVYYnC6AiIiIiIiIiIiIqAQ4kpWIiIioBCRQg0Tg89ZC10dEREREVBjmWWGo3h4TERERERERERERCYgjWYmIiIhKQCxVg1gq8EIBAtdHRERERFQY5llhqN4eExEREREREREREQmII1mJiIiISkACESQQejVWYesjIiIiIioM86ww2MlKREREVAK8vIqIiIiIKjLmWWGo3h4TERERERERERERCYgjWYmIiIhKQAw1iAU+by10fUREREREhWGeFYbq7TERERERERERERGRgDiSlYiIiKgEJFIRJFKBFwoQuD4iIiIiosIwzwqDI1mJiIiIiIiIiIiISoAjWYmIiIhKQFIKc1hJeB6ciIiIiD4S5llhqN4eExEREREREREREQmII1mJiIiISkAiVYNEKvCZf4HrIyIiIiIqDPOsMNjJSkRERFQCYogghrAT+wtdHxERERFRYZhnhaF63cpEREREREREREREAuJIViIiIqIS4OVVRERERFSRMc8KQ/X2mIiIiIiIiIiIiEhAHMlKREREVAJiCD/nlFjQ2oiIiIiICsc8KwyOZCUiIiIiIiIiIiIqAY5kJSIiIioBzmFFRERERBUZ86ww2MlKREREVAJiqRrEAodIoesjIiIiIioM86wwVG+PiYiIiIiIiIiIiATEkaxEREREJSCFCBKBFwqQClwfEREREVFhmGeFwZGsRERERERERERERCXAkaxEREREJcA5rIiIiIioImOeFYbq7TERERERERERERGRgFR3JGtWDqDGPmaiAqmrl3ULKA+RWk5ZN4HykErKugVU3kikIkikws45JXR9VDmZ1ImHup52WTeDACQm65Z1E+gdiT7mZd0EykNsJC7rJlAeGkn8vVeelIcBn8yzwigHh5KIiIiIiIiIiIio4lLdkaxEREREAhBDDWKBz1sLXR8RERERUWGYZ4XBTlYiIiKiEuDlVURERERUkTHPCkP1upWJiIiIiIiIiIiIBMSRrEREREQlIIEaJAKftxa6PiIiIiKiwjDPCkP19piIiIiIiIiIiIhIQBzJSkRERFQCYqkIYoHnnBK6PiIiIiKiwjDPCoMjWYmIiIiIiIiIiIhKgCNZiYiIiEqAq7ESERERUUXGPCsMdrISERERlYBUqgaJVNiLg6QC10dEREREVBjmWWGo3h4TERERERERERERCYgjWYmIiIhKQAwRxBB4oQCB6yMiIiIiKgzzrDA4kpWIiIiIiIiIiIioBDiSlYiIiKgEJFLhJ/aXSAWtjoiIiIioUMyzwuBIViIiIiIiIiIiIqIS4EhWIiIiohKQlMJqrELXR0RERERUGOZZYbCTlYiIiKgEJBBBIvDE/kLXR0RERERUGOZZYahetzIRERERERERERGRgDiSlYiIiKgExFIRxAIvFCB0fUREREREhWGeFQZHshIRERERERERERGVAEeyEhEREZUAFwogIiIiooqMeVYYqrfHRERERERERERERALiSFYiIiKiEpBABInAc06p4mqsRERERFQ2mGeFwZGsRERERERERERERCXAkaxEREREJSCFSPAz9VIVPPNPRERERGWD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o2HDhpg6dSqqVauGlJSU0mojEREREZEgmGeJiIiIqDQo1cmq8EQ1NYhEIkilUojFYiHbRERERFRxSEvppoRr166hf//+sLOzg0gkwsmTJz/4HDc3NzRr1gza2tqoVasW9u3bp9yLVgLMs0RERERgnhWIUp2smZmZOHDgALp37446dergyZMn+PnnnxESEgIDA4PSaiMRERERvUdqaiqaNGmCbdu2Fal8YGAg+vbti86dO8PT0xOzZ8/GhAkTcOHChVJuadljniUiIiIqfypDni3ywldTp07FwYMH4ejoiHHjxuHAgQOwsLAozbYRERERVQxlPOdU79690bt37yKX37lzJ6pXr47169cDAOrXr48bN25g48aN6NmzZ2k1s8wxzxIREREVgnm2xIrcybpz505UqVIFNWrUgLu7O9zd3Qssd/z4ccEaR0RERKTKkpKSFO5ra2tDW1u7xPXevn0b3bp1U9jWs2dPzJ49u8R1l2fMs0REREQflyrl2SJ3so4ZMwYikag020JERERU4ZTG6qlv63N0dFTYvmzZMixfvrzE9UdERMDa2lphm7W1NZKSkpCeng5dXd0Sv0Z5xDxLRERElB/zrDCK3Mla1pPHEhEREZVLxZjYv0h1Anj16hWMjIzkm4U466/KmGeJiIiICsA8K4gid7ISERER0cdlZGSkEEqFYmNjg8jISIVtkZGRMDIyqrSjWImIiIjo41OlPMtOViIiIqISKM3Lq0qLi4sLzp49q7Dt0qVLcHFxKd0XJiIiIqJyh3lWGGpl9spEREREJIiUlBR4enrC09MTABAYGAhPT0+EhIQAAL799luMGTNGXn7y5MkICAjAggUL4OPjg+3bt+Pw4cP4+uuvy6L5RERERKTiKkOe5UhWIiIiopIoxTmsiurBgwfo3Lmz/P6cOXMAAF988QX27duH8PBweUAFgOrVq+Pff//F119/jc2bN8PBwQF79uxBz549BWk+EREREVUgzLOCYCcrERERUQXn6uoKqbTwJFvQgk+urq7w8PAoxVYRERERERVNZciz7GQlIiIiKoGKOIcVEREREdFbzLPC4JysRERERERERERERCXAkaxEREREJVEO5rAiIiIiIio25llBsJOViIiIqCQYSomIiIioImOeFQSnCyAiIiIiIiIiIiIqAY5kJSIiIioBLhRARERERBUZ86wwOJKViIiIiIiIiIiIqAQ4kpWIiIioJDiHFRERERFVZMyzguBIViIiIiIiIiIiIqIS4EhWIiIiohIQSaUQSYU9VS90fUREREREhWGeFQY7WYmIiIhKgpdXEREREVFFxjwrCHaylqF+Y9phyFddYGppiADvMOxYdhx+XiEFlu01vA26Dm6JqnVtAAAvnrzGvnX/KpQ/F7yxwOfuWXMax365CgCo2cgB477phzqNq0AikeDmucfYteokMtKyBN67iqf/uE4YMrUHTK2MEPDsNbYvOgQ/j6ACy/b6vD26fdYaVevZAQBePA7B3tWn8pUfvbA/en/eHvpGunh+/yW2zj+AsMAohTKtujXCyLl9Ub2BPbIys/Hktj9WfrGzNHaxQuk/qRuGzO4DM2tjBDx5he1z/4Dvg4ACy1atb48xSwejVtNqsKlqiZ3z/8KJbRcUygyb1x/tPmkBxzq2yErPxvO7/vh1yUG89o+Ql9HU1sRXP4yE65DW0NTWxMP/nmDr7H1IiEoq1X2tKPpP7o6hc/rDzMYYAY9DsG32Pvg+eFlo+Q6DW2Ps8qGwrmqJ0BcR2LPoAO6f95Q/rqOvjfGrR6DtgBYwMjdERFAUTv58Af/u/q/A+lafXoiWvZyxfMh63Dr9QOjdq3AGTO2JofMGwMzGBC+9grFt5m//Z++uw6M4+jiAf+8iF3cXElyCuxQpluJaKBR3ihYKlOK0OEVLKbQvUigtUKzF3V2CExKIEOLuyV1u3j9SLhxJsLv49/M8+8DNzs7O7uTufjc7OwvvG7655m/WsyEGzv8CDu62eOkTit++3Y7rR+6o1k/ZNAZtB7VQ2+bGUS98134BAKB68yr48cy8HMseU/9bPH3L3wIRFT8pj/wR888lpD4PQUZMAhynfAGT+pVzzR/60z4knPPKlq7vYgu3lWM/qsywjf8i/sRN2Az6DJYdGml8TEVZ6hM/xB85j3T/l8iITYDt+H4wquPx1m2EXIHYA6eQdNkLGXEJ0LEwhUWXVjBpVleVJ+n6fcTuPQFFZAz07K1h2eszGNaolFWGEIjbdxKJZ29AmZwCWXk3WA3sCj0Hmzw71qIi+WEAovZfRuqzYChiEuHybW+YNqiUa/7gNfsRd+ZutnR9V1uUXfOV6rU8Kh7hv59E0m1fKNPl0HewguO4LjAsl/m7RAiByD/PIubkbSiTUmFYyRWOIztA38la+wdZhNRzdsaIuvVQ1c4e9iYmGPnPAZx4lnvcVNfJGVObNkVZSysY6uniZXwC/rx3F5vu3FblMdbTw6TGTdC2XHlYGxniYXgEvj97GvfCwgAAulIpJjdughalS8PV3AIJaWm4FBiApRcvIDwpKc+PuTCLvvsSz/+8jfinEUiLSkLtH9rDvmnZt24TsO8eAvbeQ0poPAztTVG2X104f5b1HXFtwl5Ee73Mtp1tQzfUXdJZ9TrRPxreGy4j+u5LiAwlTNysUOv79jC0N9XeAVKJxU7WAtKsY02MmNkVa2fshrdXALoOaY4fto3E8E8XIS4qMVv+6o3K4ew/t/H4lh/S0xT4fFRLLNg2CqPaLEFUWBwAoG/d2Wrb1G1RGROX9salw/cAAFZ2Zlj0xyic/9cLP8/eA2MTA4yY0w2Tf+yLBaO35PkxF2bNutTB8Hk9sXbKDnjf9kfXES2xYOc4DGs8F3GRCdnyV29SAWf33cSjG8+QnipHr3GeWLhrPEY2nY+o0FgAwOfj2qLLsE+xfNxWhAVGYsC0zliwaxxGfDIP8jQFAKBJx1qY+GM/bF64H3cveENHV0fVcVuSNe/RACMW98Xa8Zvx5MYzdBv7GRYcmIqhNaciLiJ7h6fMSB8hfuE4v/c6Ri79MscyqzethH83nMTTW8+ho6uDQfM+x8J/p2F47W+RlpwGABi19EvU/6wGfuj3E5LikzFmxQDM/nMCJrX6Pk+Ptyho/nlDjFzWH2vG/A9Pbvii+7h2WHjoWwytOhmxObRJlYbl8d22cdg08y9cPXwbLb9ogrl/T8aYBtPh/zAIADBqWX/UaOGBJYPWISwgAnVaV8e4tUMQFRKDqwdvqZXXfXw7iBJ4u0lumvdqjJE/DsSa0Rvx+Jovuk/sgEVHZ2BIpQk5t0ejCvhux0T877sduHbwFj7t+wnm7puKr+pMhf/DF6p814/cwfIhP6tey9Pkqv8/uvwUvRyHq5U76PveqNWyWonvYJWIzEXbZRIVZso0OfTdHGD2aW2ELP/rnfltB7eDzZetVa+FUonAb9bDpFFWR+CHlJl47TFSnwZBx5I/igFApKVDz9URJk3rImLt9vfaJmLdDmTEJ8J6aA/o2VkjIy4eQpn14ZPqE4DI9X/B4nNPGNWshKQrXghfvR2O88dC3yVz4Ef84fOIP3EZNsM/h66NJWL3nkD48k1wWvg1JPp6eXKsRYUyNR0yd3uYt6qJl0t2vTO//dDPYNf/tfdIhhJ+X/8Cs8ZVVGkZiSkImL4JRtVKw3XWl9AxN0J6SDR0jA1UeaL2XUL0oWtwGt8VevaWiNhxBoHzt6PMmjGQ6pfcn/9Genp4HBGB3Q8e4JfOXd6ZP1kuxzYvLzyJjECyXI66Ts5Y0LoNkhVy/HX/PgBgURtPVLCxxqSjhxGemISulStjW4/P0XbrFoQlJcJQVxcedvZYe+0qHkdEwFxmgNktPsWvXbqiy44/8vqQC7WMFDnMytnApX0V3Jl1+J35A/bfh/fGy6g2pSXMK9kj9nEYHiw7DV1TA9g3KQ0AqPV9ewh5hmqb9PhUXBr6JxxalFelJb2Mw9Vxe+DSvgrKDW4AXWN9JPpHQaqvo/2DLGIYz2pHgT74atGiRahXrx5MTU1hZ2eHrl27wtvb+63b/Prrr2jatCksLS1haWmJ1q1b4/r16/lUY+3pNqwFjvx1BSd2X0egTxjWfrcbaSnpaNurQY75l07YjkPbLuH5o2AEPQvH6mk7IZVKULNJ1gdGTESC2tKwTVXcu+KL0BdRAIAGrTygkCuxbtYevHwegaf3XuCn73bjk/Y14OhWsq82dx/VGke3X8KJv64g8GkI1k7ZgbQUOTz7NM4x/9LRm3Bw8zk8fxCEIN8wrPp6GyRSCWo2q6jK021EK/y58giuHr0Lv0cvsWzsZljbW6Bxu5oAAKmOFKN+6IXf5u3B4a0X8PJ5OAKfhuDCP7dy3GdJ0n18OxzdfBbHt11A4JNgrBm3GWkpafAc0CzH/E9v+eG3GX/h3N9X1TqFXjejyzKc2H4BAY9f4vn9QPw4YiPsS9mgfC13AICRmSE8BzbHhmk7cPfcI/je8ceKkb/Co1EFVKr39quqJUGPCR1w5H+ncfz3cwh8/BKrx/wPacnp8Hxj5OMrXce1w41jd7F7xUG8eBKMrXN3w/eOHzqP9lTlqdKoAk5uP4975x8jLCASh/93Gs/vBWQ732VquKHHxA74ccSGvDzEIqXH1x1x5LdTOLblLAIfB2H1qI2Z7TGkZY75u43vgBtHvbB7+T8IfPISW2fvhO/t5+gy9jO1fPI0OWLCYlVLYmzWKAuFXKG2Lj4qAY0618OxLWfy9FiJCrOSHMsa1yoPmz6tYNIg95Gmr9MxNoCupalqSXsWDGVSKsw+rfXBZSqi4hGx6TAcJvSARJc/jAHAsEZFWPZsC6O6bx+9+krKPW+kevvBbtIgGHqUg66tJWTl3GBQwV2VJ+H4JRhWKw/z9s2g52QHix5toe/uhISTVwBkjphMOHYJ5p0+hVHtKtAv5QibEb2giE1A8u1HeXGYRYpJnfKw+7IlzBp+yHvERLWkPgtGRlIKLFrWVOWJ2nsJujbmcBrXBYYVnKFvbwmTmmWh72gFILNNog9eg83nzWDaoBIM3O3hNKErFNEJSLj2JC8Os8g45++PFZcv4fhbRq++7lFEOP71fgKfqCi8jI/HgSePccHfH/WcXQAAMh1dfFa+PJZcOI8bL18iIC4Wq69egX9sLL6sUQMAkJCejgF7/8bhp0/hFxMDr9AQzD1zCtXsHeBkWrIvENk2dEeFYY3g0Oz9fmcFH3+CUp2rwrFlBRg5mcOpVQW4dvKA359Zv531zQwgszZWLZE3X0Aq04VDi3KqPD6/XYFtAzdUGt0E5hVsYexsDvsmZSCzNNL6MVLJVKCdrOfOncOYMWNw9epVnDhxAnK5HG3btkXSW4bOnz17Fn369MGZM2dw5coVuLq6om3btnj5Mvuw8MJKV08H5au5wOviU1WaEAJeF31Qubbbe5UhM9SHjp4UCbHJOa63sDFB/ZZVcGznNVWankwXCrlCbTRYWmpmh5RHvdIfcyjFgq6eDsrXKIU75x+r0oQQuHP+MSrXLfNeZcgM9aGrq4OEmMz2cHCzgZW9uVqZyQmpeHLbT1VmueqlYOtkCaVS4KdT32HH/SX4/s+xJX4kq66eDsrXcsftMw9VaUII3Dn9EFUalHvLlh/G2MwQAJAQk/l5U75Waejp6+LOa/t98TQEYYGRqNygfI5llBS6ejooX7s07px+oErLbJMHqNww53NTpUF5tfwAcPPEPbX8j648RcOOdWDtZAkAqNG8CpzLO+LWiXuqPDJDfUz/fSx+mrAZMf+N2i/pdPV0UaFOGdw+mXWehBC4ffIeqjSskOM2VRpVwO1T99TSbh6/i8pv5K/RwgO7Qn/DpserMf7n4TC1Msm1Ho3+m+bh2GZ2sqrmsNL2QoVeSY1ltSH+9G0YVSsDPVuLD9pOKJUIXbsXFp0bQ+ZqlzeVKwGS7zyGzN0Z8YfPI2jCIrycuhwxfx6GMj3rYnWabyAMPNRjL8Oq5ZHmmzldmSIiBhlxCTB8LY/UyACyMq6qPPTxYk/egXH1MtCzs1ClJdzwhmE5RwQt3Y2nA5fh+aQNiDme1ckkD4tFRkwijGtk/YbRMTaAYXkXpHi/AH28KrZ2qO3khGtBmXdk6Uol0JVKkabIUMuXplCgrpNzruWYymRQCoH4tLQ8rW9xo5RnZBuJrSPTRezjMCjfaINXgg49glPLCtA1zBxVL5QC4Vf8YexqgRvfHMCpLr/h8qhdCLtQsu/IUmE8qxUFer/A0aNH1V5v2bIFdnZ2uHXrFpo1y3nE2h9/qA+r/+2337Bnzx6cOnUKAwYMyJY/LS0Naa99gMXHF/zcimaWxtDR1UHMG7ehx0QmwKXs+wWLQ6Z3RHRYPO5ceprj+tY96iMlKRWXjmb9qPa65IPhM7ugx8hPcWDTeRgY6mPItx0BZE4lUFKZWZlAR1cn2y22sREJcC3n8F5lDJndHVFhcapOVcv/zuebc3nGRiSo1r0aPdxvSkdsnPM3wgKj0GN0ayzdNwlDG81GYi4d6MWdmY1pZnu80aEWEx4P14ra6YCWSCQYtawfHlz2RsCjzEDJyt4c6WlyJMWpn/fY8DhY2ZtrZb9FlZmNWeZnVrY2icu1TSwdLBATrp4/NiwOVvYWqtfrJm7BxPXD8af/z1DIFVAqBVaN/hX3L2aNtBi1vD8eXXmKK/9yhPcr5v+9R3Jsj0o5B/WWDhbZ31NhsbBysFC9vnHsDi7uu4YQv3A4lbXHkAV9sfDwDExoPANKpTJbme2GtMStY16IfBmt+UERFVH5EcsChTOe1YQiOh5Jd3zhMKHHB28bc+AiJDpSWLRvmAc1KzkUEdFI9QmARE8XtuP7QZmYhKjfDyAjMRk2w3sCADLiEqFjpn6xTcfcBBlxif+tz/wtIzV/I4+ZiWodfRx5dAISb/vAeZL6e0QeFoOYozdh1bkRbHp+ghTfYIT97ygkujqwaFkTitjMttExN1bbTsfCGIrYkj0H6Me6NGwErAwNoSuVYvXVK9j1IHOqgCS5HLeCgzG2QUP4RkchMjkZnSpWQi1HRwTExuZYlr6ODqZ+0gz/PnmCxHQ+E+VD2NQrhaCDD2H/SRmYVbBFvHc4Xhx6BKFQIj0uFQbW6n/zsY9DkegXhWrTsu7ySo9JRkaKHM933EL5oQ1RcWRjRFwPwO1Zh1F/VXdY18y9c5zofRWqSVni4jJ/AFpZWb33NsnJyZDL5blus2jRIsybl/ODOoqqz0e3QvNOtTC19zrV3J5vaturPs7sv622PtAnFD9O3oHhM7tg8NQOUGYIHNhyHtHh6vMv0YfpNc4TLbrWxdRuK3Jtj5xIpBIAwF+rjuDSwcyHz6yY8Du2eS1Cs851cPj3C3lSXwLGrhoItyoumNyac60WpC5jPFGpQTnM7rYMYYGRqPZJJYxdPRhRwTG4c/oBGnasg5otPDC6/vSCrmqJcHbnZdX//R8E4vm9AGx7tg41WlTJNirZxtkKdTxr4ofeK/K7moUS57CiV/IilgWKXzwbf84LUmMDmNTL/SFAOUl9FozYQ9dQaulISCSSPKpdCaEUkACwGfUFpEaZ83la9VEg4qcdsBrYBdISPp9qQYs74wUdYwOY1ld/jwghYFjWCXb9WgEADMo4Ii0wHLHHbqlNK0Da03vXXzDW00dNR0dM/aQpAmJj8a935oCAyUcPY0lbT1wdMQoKpRIPw8Pwr/cTVLWzz1aOrlSKnzp0ggTArNM5P+SVclduYH2kRSfjyujdAAT0LY3g7FkJfn/ezvH7IOjQI5iWsYZF5axBU6/u6LVrUgale2VOVWNW3haxD0Lx4sD9Et/JynhWOwpNJ6tSqcTEiRPRpEkTVK1a9b23mzZtGpycnNC6desc10+fPh2TJk1SvY6Pj4erq6vG9dVEfEwSMhQZsLRRn4fF0sYUMTk8sOR1PUa0QK/RrfDdl+vh/yQkxzwe9crAtZw9Fo39Pdu6swdu4+yB27CwMUFqcjqEyJwfNiQw6uMPqIiLj05EhiIDFrbqo3ktbE0R846nyvf4qg16jffE9J6r4Pco6za/V9tZ2Jkh+rUyLGxN8fxB5sjJ6P9GlQU+zWpHeboCoQGRsHV+/x9nxU18ZEJme7wxetTSzgwxYbEalz9mxQA0aFcTk9ssQOTLGFV6dFgc9GV6MDY3UhvNamFnrmqrkio+Mj7zMytbm5gjOpc2iQmNhaWden4L+6z8+gZ6GPz9F5j3+QrVE+797geibA039Py6I+6cfoCaLTzgWNYe+yL+p1bOrJ1f48HFJ5jSpmR2ksf99x7JqT1i/nvw3ptiQmOzv6fsLRCdS34ACPULR2xEPJzKOWTrZPUc/CnioxJw5Z+bH3UMxU5e3A5VAoPSoi6vYlmgcMazH0sIgfjTd2DWrDokeh/2UyTlSQAy4pPgN3plVqJSicitxxB76CpK//y1lmtbfOlYmELH0kzVwQoAek52gBDIiI6D1MEmc9RqvPoDeTPiEqHz38hVHfPM3zLKuETAIiuOzohPhH4px3w4iuJJCIHYU14wb1EdEj31OYd1LU2h72qrliZzsUHClcy76XQtMtsmIy4JelZZvzUzYpMgK52944/eLei/Owe8oyJhY2SECQ0bqTpZA+Pi0Gf3Lhjq6sJEJkNEUhLWtO+IF3Hqvx10pVKs7dARzmam+PLv3RzF+hF0ZLqo/m1rVP3mU6RFp8DA2giB/z6EjpEe9C0M1fIqUuQIOe2D8kPUn3ejb24IiY4UJu7qv7WN3SwRcz/nvpUShfGsVhTonKyvGzNmDB48eIC//nr300lfWbx4Mf766y/s27cPBgYGOeaRyWQwMzNTWwqaQp4Bn/tBqNkkay48iSTzIVaPbwfkul3PkS3RZ1xbzBq4AT73c59Tx7N3Azy99wJ+j4NzzRMbmYjU5HQ071QT8jQ57lx8+0MaijOFPAM+dwNRs2nWlWKJRIKaTSvh8c3nuW7Xc2xb9J3UHjO/WAufu+rzToUGRCI6LE6tTCMTA1SqXVpVpu/dQKSnyuFSNivg0dGVwr6UNcKDSm6nt0KeAZ87/qjVIutJqhKJBDU/9cCja+83UX1uxqwYgMad62Bqu0UIC4hQW+dzxw/ydIXafl3KO8C+lA0eX/PRaL9FnUKeAZ/bfqj5aVanwas2eXw153Pz6JoParVUf/hG7VbVVPl19XShp68L8cZt6MoMJaT/jfLeuewARtWZhtH1vlUtALDhm9/x4/BftHZ8RY1CrsDTW89Rq1U1VZpEIkGtVtXw6GrOU8g8uvIUtVpWU0ur3bo6HueSH8gcrWpmbYLokNhs6zwHfYqT284hI5c5sIhKoryKZYHCGc9+rJRH/pCHRsOsZe0P3tasWQ2UWj4apZaNUi06lqaw7NwEzjP650Ftiy9ZeXdkxCZAmZo1DYU8NBKQSKBjlXlRTlauFFIfqc9VmPrQF7JypQAAuraW0DE3VcujTElF2vMXqjz04ZIfBkAeEg3zVtnfI0aVXJH+Uv13QnpwFPRsM9tMz94COpYmSLqX9RsmIzkNKT5BMKxYNC/MFCZSiQT6OtkftpeiUCAiKQlmMhmaubnhxPOs3yyvOljdLSzRf8/fiE1Nzc8qFztSXR0Y2plAoiNFyOmnsGtUWnWH6CuhZ32hlGfAqU1F9W31dGBeyQ5JgTFq6ckvYmFoX7IfREbaUyhGso4dOxYHDx7E+fPn4eLi8l7bLF++HIsXL8bJkydRvXr1PK6h9u377Swm/9gXPvdewPtuALoOaQ6ZkT5O7M58UNXkFX0RFRqHLUsPAQA+H9US/Se1w5IJ2xAWFA1L28wPgZSkNKQmZ10JMzKRoWmHGvj1h39y3G+ngZ/g0S1/pCaloVbTChj6XWdsXnwQSfEl+8N+7y8n8c3aQfC5GwDv2/7oNrIlDIz0cfyvzNtnv/lpEKJCYrF5wX4AwOfj2qL/1E5YMnoTwl5EqeZZTUlKQ2pSZrC6b+Mp9Pm6HYKfhyM0MBIDvu2MqLBYXD7iBQBITkzFoa3n0W9qJ0QExyD8RTR6jmkDALjwz+38PQGFzN41R/DNryPw9LYfvG8+R7exnjAwkuH4tvMAgCm/jkRkcAw2z9kFIPPBTKUqZ97eoaevC2snS5SpXgqpiakIfh4OIHOKgE97NcLcXquQkpiqGgWYFJeM9FQ5kuNTcGzrOYxY8iUSYpKQlJCCMT8OwKOrPnhyg5Oh71l9CFP+Nxo+t5/jyQ1fdB/XDgbGMhzbeg4AMGXTaEQFx2DTzMzOhf1rj2D5qdnoMbEDrh+5gxa9GqFCnTJY/dWvAIDkhBTcPfcIwxd/ibSUdIQHRqJa08po3a8ZNkzZBgCICYvL8WFX4S+iEOofkS29JNmz8iCmbhmDpzefwfu6L7pN7JDZHv89hGrqlrGIDI7Gpu92AAD2rTmEH8/OQ89JHXHt0G20+KIJKtQti1UjNwAADIwN0H/O57i45yqiQ2PhVNYew5b0R7BvKG4e81Lbd62WVeFYxh5HfjuVr8dcmPH2KiqJsawyJQ3y0Kw5meXhMUjzC4HUxBB6thaI/OMEFNEJcBjXXW27+FO3YVDeBbJS2UfVvatMHVMj6JiqPwFaoqsDHUsT6DvbaPkIixZlahoUYVmdb4qIGKQHBENqYgRdawvE7DqKjJh42IzsBQAwblQDcf+cRtRvf8O8W2soE5IR89dhmDSrq5oqwLRtE4Qt2oj4IxdgWKMikq7dQ5rfS1gN7gYg8wKfqWcTxP1zGrr21tC1tULs3hPQtTCFUe0q2StZwihT0pH+2t9zelgMUv1CoWNiCD1bc4RvOwlFdAKcJnRT2y725B0YVHCGgVv2Z3VYdWoI/+mbEPn3BZg18UCKz0vEHL8Nx9GZz9mQSCSw6tgAkbsvQN/RGnr2FojYcQa6VqYwbfBh03MUN0Z6enCzsFC9djUzQ2VbW8SlpiI4IQFTmnwCexMTfHMsc67t/jVq4mVCPJ5HZ7ZhfWcXDKtTF1u97qjKaOrmBgkkeB4TDXcLS3zbtBmexUTj74eZD9LVlUqxrmMneNjZY9j+fZBKJLAxyvwMi0tNhTyHOe9LCkVyOpJfZsX5ySHxiPeJgJ6ZAQztTeG98TJSIxJRY0ZbAEDSixjEPg6DRRUHyBNS4b/LC4l+0ag+vU22soMOZc7dqm9umG1d6S9qw2veUVjVcIJVLRdEXg9A+BU/1F/VPVvekobxrHYUaCerEALjxo3Dvn37cPbsWZQu/X5PuF+6dCkWLFiAY8eOoW7dunlcy7xx/qAXzK1N0G/SZ7CyNcOzRy8xa8AGxEZm3pJj52SpNk9qh35NoCfTxcxfBquVs33lUfyx6pjqdfNOtQGJBGdz6aSrUKMU+n39GQyNZHjxLAxrp+/G6X283fP8gVswtzZF/6mdYGlnhucPgjDzi7WIjcictN/O2UqtPToObA59mR5mbRqpVs72ZQexfdlBAMDutcdhYCTD+B+/hImZER5e98XM3mvV5m39bd4eZGQoMWXdYOgb6MH7tj++7b4SiXEl86FXr5zbcw3mtqYYMKsHLO3N8fxeIGZ0XaZ6kJitqzWUr7WHtaMl1l9doHr9+dcd8PnXHXD3/GNM/WwhAKDTiMzbMJcfn6G2r+UjNuLE9sz5b3+Z+geUSoFZO8ZDT6aHmyfv4aeJW/P0WIuKc7uvwtzGDANm94SlgwWe3w3AjI6LEfvfw63sXG3U3iOPrvpg0YCfMGheLwz+vjeCfUMxt+eP8H8YpMqzsN8aDPnhC3y7dSxMrUwQHhiBLbN34uBGzlP1Lud2XYaFrRkGzusNSwcLPPPyx3ftFmS1R6k32uPKUyz6cjUGfd8Hgxf0xUufEMztthT+DzPvilBmKFGmWim0GdAcJhbGiAqOxq0T97Bl1l+Qp6vPNf3ZkFZ4eOkJXnjnfrcEUUlRkmPZ1OfBeDl3i+p15NbMeNS0eU04jO0GRUwiFJHqF8oyklKReO0xbAd/9lFlUu7S/V4ibPGvqtcxf2YO1DD+pDZshn+OjLgEKKJjVeulBjLYTxmC6O3/InTuOkhNjGBUvxoserRV5TEo7wabUV8gds9xxPx9DHr2NrCb0A/6LllzHJq1bwaRlo6oLfugTE6FQXk32H0zGBLO6YqUZ8EInJUVR4ZvPg4AMP+0BpzGd4UiJhHyiOzvkYQrj2A/NOf3iGF5Z7hM642I7acQuesc9OwsYT/EE+bNsy7UWHdrApEqR8j6f6FMSoVh5VJwndUv25PZS5pq9vb48/PeqtczW3wKAPj74QNMPX4MtsbGcDLNuktAIpFgSpOmcDU3R4ZSiYDYWCy9eAE77t1V5TGVyTClSVM4mJggLi0VR3188OOli1D813lqb2KCNmXLAQAO91d/sGGf3TtxLSgIJVWcdziuT9ynev1k3UUAgPNnlVB9ehukRSUhNTxruhKRIeC38w6SXsRCqiuFVS1nNFzXE0aO6nd2JAbGIOZ+COot75Ljfh2alYXHpE/x/I+beLTmPIxLWaLW/Pawqq6dBywTScSr2X8LwFdffYUdO3bgwIEDqFgxayi3ubk5DA0zrzoMGDAAzs7OWLRoEQBgyZIlmD17Nnbs2IEmTZqotjExMYGJifqTLXMSHx8Pc3NztHYZDV2pTMtHRB9DpKQUdBXoDSKRTx8tTITi/R+oRnmP7VG4KIQcZ3EAcXFx+X4L9auYok6vBdDRz/1W74+RkZ6KW7tmFMhx0fsriFgWyPrbK7N1OnSMtPu3Rx8nPVm/oKtAbzAyK9l36hU2qX68HbswqVQn92kKKf/Jk9Jxsv0GxrPFQIHOybp+/XrExcWhRYsWcHR0VC07d+5U5QkMDERISIjaNunp6ejZs6faNsuXLy+IQyAiIiKiEoqxLBERERG9UuDTBbzL2bNn1V77+/vnTWWIiIiIPlJJnHOKGMsSERFR8cF4VnMFOpKViIiIiIiIiIiIqKgr2bNfExEREWlKiMxF22USEREREeUHxrNawU5WIiIiIg1IhPZvr+LtWkRERESUXxjPagenCyAiIiIiIiIiIiLSAEeyEhEREWlC/Ldou0wiIiIiovzAeFYrOJKViIiIiIiIiIiISAMcyUpERESkAYkyc9F2mURERERE+YHxrHZwJCsRERERERERERGRBjiSlYiIiEgTnMOKiIiIiIoyxrNawU5WIiIiIg1IROai7TKJiIiIiPID41nt4HQBRERERERERERERBrgSFYiIiIiTQiRuWi7TCIiIiKi/MB4Vis4kpWIiIiIiIiIiIhIAxzJSkRERKQBzmFFREREREUZ41nt4EhWIiIiIiIiIiIiIg1wJCsRERGRJsR/i7bLJCIiIiLKD4xntYIjWYmIiIiIiIiIiIg0wJGsRERERBrgHFZEREREVJQxntUOdrISERERaUKIzEXbZRIRERER5QfGs1rB6QKIiIiIiIiIiIiINMCRrEREREQa4O1VRERERFSUMZ7VDo5kJSIiIiIiIiIiItIAR7ISERERaUL8t2i7TCIiIiKi/MB4Vis4kpWIiIiIiIiIiIhIAxzJSkRERKQBzmFFREREREUZ41ntYCcrERERkSaUInPRdplERERERPmB8axWcLoAIiIiIiIiIiIiIg1wJCsRERGRJvigACIiIiIqyhjPagVHshIRERERERERERFpgCNZiYiIiDQgQR48KEC7xRERERER5YrxrHZwJCsRERERERERERGRBjiSlYiIiEgTQmQu2i6TiIiIiCg/MJ7VCnayEhEREWlAIvLg9qqSF5MSERERUQFhPKsdnC6AiIiIiIiIiIiISAMcyUpERESkCfHfou0yiYiIiIjyA+NZreBIViIiIiIiIiIiIiINcCQrERERkQYkQkCi5Yn9tV0eEREREVFuGM9qR8ntZNXTBaQl9/ALleSS98Yr9KQc5F6o6OgUdA3odRkZBV0DUiMpkbciEQHA0MpXYGDCeLYwWH2pTUFXgd6wpPqegq4CvWZsTL+CrgIRUZ5jVEZERESkCeV/i7bLJCIiIiLKD4xntYLD1YiIiIiIiIiIiIg0wJGsRERERBrgHFZEREREVJQxntUOdrISERERaUJA+/PClryYlIiIiIgKCuNZreB0AUREREREREREREQa4EhWIiIiIk0Ikblou0wiIiIiovzAeFYrOJKViIiIiIiIiIiISAMcyUpERESkAYnIXLRdJhERERFRfmA8qx0cyUpERERERERERESkAY5kJSIiItIE57AiIiIioqKM8axWsJOViIiISAMSZeai7TKJiIiIiPID41nt4HQBRERERMXEunXr4O7uDgMDAzRo0ADXr1/PNe+WLVsgkUjUFgMDg3ysLRERERFRlqIey7KTlYiIiEgTr26v0vbygXbu3IlJkyZhzpw5uH37NmrUqAFPT0+Eh4fnuo2ZmRlCQkJUS0BAgCZngoiIiIiKokIQzxaHWJadrERERETFwIoVKzB8+HAMHjwYVapUwS+//AIjIyNs2rQp120kEgkcHBxUi729fT7WmIiIiIgoU3GIZdnJSkRERKQJkUcLgPj4eLUlLS0txyqkp6fj1q1baN26tSpNKpWidevWuHLlSq5VT0xMhJubG1xdXdGlSxc8fPjwY88CERERERVVBRzPFpdYlp2sRERERIWUq6srzM3NVcuiRYtyzBcZGYmMjIxsV+/t7e0RGhqa4zYVK1bEpk2bcODAAWzfvh1KpRKNGzdGUFCQ1o+DiIiIiEqm94lni0ssq1tgeyYiIiIqBiRCQPIRc6i+q0wAePHiBczMzFTpMplMa/to1KgRGjVqpHrduHFjVK5cGRs2bMD333+vtf0QERERUeFWFOPZwhjLspOViIiIqJAyMzNTC0pzY2NjAx0dHYSFhamlh4WFwcHB4b32paenh1q1asHX1/ej6kpERERE9Kb3iWeLSyzL6QKIiIiINFEInsaqr6+POnXq4NSpU6o0pVKJU6dOqV3hf5uMjAzcv38fjo6OH7RvIiIiIiriCjieLS6xLEeyEhEREWlCAFDmQZkfaNKkSRg4cCDq1q2L+vXrY9WqVUhKSsLgwYMBAAMGDICzs7NqHqz58+ejYcOGKFeuHGJjY7Fs2TIEBARg2LBh2jwSIiIiIirsCkE8WxxiWXayEhERERUDvXv3RkREBGbPno3Q0FDUrFkTR48eVT1AIDAwEFJp1k1MMTExGD58OEJDQ2FpaYk6derg8uXLqFKlSkEdAhERERGVUMUhlmUnKxEREZEG8vJBAR9q7NixGDt2bI7rzp49q/Z65cqVWLly5Ufth4iIiIiKj8ISzxb1WJZzshIRERERERERERFpgCNZiYiIiDQh8MEPqnqvMomIiIiI8gPjWa3gSFYiIiIiIiIiIiIiDXAkKxEREZEmhMiDK/8l8NI/ERERERUMxrNawU5WIiIiIk0oAUjyoEwiIiIiovzAeFYrOF0AERERERERERERkQY4kpWIiIhIAxIhINHy7VDaLo+IiIiIKDeMZ7WDI1mJiIiIiIiIiIiINMCRrERERESa4IMCiIiIiKgoYzyrFRzJSkRERERERERERKQBjmQlIiIi0gSv/BMRERFRUcZ4VivYyUpERESkCQalRERERFSUMZ7VCk4XQERERERERERERKQBjmQlIiIi0oQSgCQPyiQiIiIiyg+MZ7WCI1mJiIiIiIiIiIiINMCRrEREREQakAgBiZbnnNJ2eUREREREuWE8qx0cyUpERERERERERESkAY5kJSIiItIEn8ZKREREREUZ41mtYCdrAerYrzF6DmsOS1tTPH8cgvXz9+PpvRc55m3ctip6j24JJzcb6Orq4KV/JPZuOofT+28DAHR0pRj49Weo26ISHF2tkZSQgjuXfbF52WFEh8erypmzYRDKVHaChbUJEuNScOeyDzYtVc9TUnUa0gI9x7SBpZ05nj8Mws/T/8LTO/455nWr6Ij+33ZG+eqlYF/KBr/M3IX9G06p5TE0lmHA9C5o3L4mLGxM8ez+C/wyYyeeegWo5es/rRPa9W8KYzNDPLr+DGun7kDw8/C8Oswio9OIVug5oR2s7M3x/P4L/PzNdnjfep5jXrfKzhgwsxvK1XSHg5stfpn6B/b9fFwtT8dhLdFhWEvYl7IBAAQ8fok/Fh/AzRP3VHnGrxmEWi08YO1ogZSkVDy+6ov/zd6FF09D8u5Ai5BOI1vj8687/NcmgVg36Xd433xLm8zugfK1SsPBzRbrp2zDvp+OqeWp1qQiPv+6A8rXLg1rR0vM7bUSl/+9pZan/4zuaPF5Q9i6WEGengGfO37YMnc3ntx4lmfHWVR0Hu2Jz7/pBCsHCzy7G4B1EzbB+y3npVnPhhg4rzcc3G3x0icUv03/A9eP3FGtP5GxK8ftNk7dht0//gsA6Du9G+q3r42yNd2hSFegm/Vg7R4UERUJpzb64f7JCIQ/T4KegRRuNS3QcXI52JU2znWbq7tf4uaBEIT6JgIAXKqYof3EsihV3VyVJyEyDQdX+OLppSikJChQpq4lun1XEbbuRmpl+XvF4sjqZwi8FweJVALnSqYY8Wst6Bno5M0BFwGpT58j/th5yAOCkBGXAJuvBsColkfu+b2fIXz5xmzpzstnQsfcFAAQd/gMUm4/gDw0HBJ9PcjKusGiR3voOdiq8svDoxC7+xDSfP0hFAoYelSAZd8u0DEz1f5BFiG710fgyrF4vHyeBn2ZBJVqG2HgNAe4lJG91/bn/43F8olBaNDaFDM2uOWY5+eZL3H0zxgMnemALoNtVOnDmnkj/KVcLe+AKfboOcr2zSJKlFTv54g/eh5y/5eZ75Gx/WFU+y3vkSfPEL7012zpzitnqN4jAKCIiUPs7iNIvf8UIj0dunbWsBryOWSlXSAUGYjddxyp955AERENqaEBZFXKwaJnO+hamuXJcRYV0Xdf4vmftxH/NAJpUUmo/UN72Dct+9ZtAvbdQ8Dee0gJjYehvSnK9qsL588qq9Zfm7AX0V4vs21n29ANdZd0BgAoktPhvfEywi4+hzwuFYaOZnDvUQOlulTT7gFSiVWg0wUsWrQI9erVg6mpKezs7NC1a1d4e3u/c7vdu3ejUqVKMDAwQLVq1XD48OF8qK12NWtfAyO+64Q/1p7AuC6r4PckGD9sHgZzq5yD04S4ZOz8+TQmff4Tvuq4Aif23MCkxb1Qu2kFAIDMQB9lPZzx57qTGNtlFX4Y8ztcSttizoZBauXcvfoMi8Zvx/A2S/HDmN/hWMoaM37qn9eHW+g161oXw+f3xPblhzC21QI8fxiEBbvGw9wm5wBRZqiPUP9IbPp+H6LD4nLMM3HVANRuXhnLxmzGqObzcfvsIyza8zWsHSxUeT4f54kuw1tizTd/YOJni5GanIYFO8dDT1ayr38071EfIxb1wR+LDmDMJ3Pw/MELLNj/Dcxtc2+PEL8IbJqzG1GhsTnmiXgZjU2zd2Fs0zkY12wO7p5/hLk7J8CtsrMqj88df/w4+jcMrzMdM7osByQSLDwwBVKpth+zWPQ079kAI5d8ie0L9uGrRjPx/F4gFv4zDRa2OQeIMiMZQv0isGnWTkSFxOaYx8BYhuf3A/HTxK257jfINwQ/fb0VI+pOx6RW8xEWEIlF/07L9b1ZUjTv1QgjfxyA7d//jdF1p+H5vQAsOjIj1/ao0qgCvvtjAo5uOo3Rdabh0oEbmLt3Ctw9XFV5ejkNV1uWD/0ZSqUSF/ZeU+XR1dfF+b+v4uAvx3PaTcmlFHmzUKFXUmPZZzdj0biPC8b/WQ8jf6sNpUKJjcPuIC05I9dtfK/HoFYHe4zeXAfjdtSDhYMMG4bfQVxYKgBACIHN4+4h+kUKBv9UA5P2NIClowE2DL2tVq6/Vyx+HXEHFRpbY8Jf9TFxV3006esKSQn/rhZp6dB3cYRl364ftJ3j99/AeflM1SI1zfotkvb0OUw+bQT76WNg9/UwiAwlwlf+BmVaOgBAmZaOiFW/ARLAbvJw2E8bDZGRgYi1WyCUJfCR0q95cC0JHfpZYdnfZTD/d3dkKATmDPRHavK7z0tYUDo2Lw5FlXpGuea5ciwe3l4psLLP+TdD34l22Hq1omrpOMD6o4+luBBpcui7OsKyX5cP2s5x4WQ4r5yhWl5/jyiTkhG2cD0kOjqw/XowHH+YBIveHSA1NszcZ7oc8oCXMOvUCg5zxsNmbH8oQiMRuSb32LekyEiRw6ycDapMbP5e+QP234f3xssoP7g+mm79EuUGN8DDVecQdslPlafW9+3Rcu8Q1fLJlr6Q6Ejg0KK8Ks+TdRcReT0QNWa0RdPf+8G9Z008Wn0OYZdyHjhSojCe1YoC7WQ9d+4cxowZg6tXr+LEiROQy+Vo27YtkpKSct3m8uXL6NOnD4YOHYo7d+6ga9eu6Nq1Kx48eJCPNddctyHNcGTnNZzYcxOBvuFYO2sv0lLkaPt5/Rzz37/2HJdPPMCLZ+EICYzCga0X4ecdAo86pQEAyYmpmDHoV1w4fA8v/SLwxCsQ6+ftQ4VqrrB1tFCVs3/zBTzxCkR4cCwe3wnArg1nUKlmKejoluzpebuPao2j2y/ixJ+XEfg0BGu/+QNpKenw7Ns4x/xPvQLw27w9OLf/JuRp8mzr9Q308EnHWvjf/D14cMUHIX4R2L7sIIL9wtFxcNYXSbeRrfDnisO4evQu/B69xLIxm2HtYIHG7Wrm1aEWCd3HfoajW87h+PYLCHwSjDXjt2S2R/9mOeZ/etsPv83ciXN/X8uxPQDg2hEv3Dh+D8HPwvDSNwxb5u1BamIqKtXLumJ6ZPNZPLjkjbDASPjeDcDW+Xtg52oNe7eSfeUfAHqMb4cjm8/g+LbzCHwSjNXjNiMtJQ2eA3MOjJ7eeo5fv/sTZ3dfhTw95za5cfwetsz7G5f+uZnrfs/svII7Zx4i1D8CAY9fYsO0P2BsboTSVUtp5biKqh4TO+LIb6dwbMtZBD5+idWjf0Vacjo8B3+aY/5u49vjxjEv7P7xXwQ+eYmtc3bC9/ZzdBnzmSpPTFic2tKocz3cPfMQoX5ZI+t/n7cbe1cfgt+DwDw/xiLl1e1V2l6o0CupseyIjbVQv5sTHMqbwKmSKb5Y6IGYkFQEPcr9zqh+y6qiSR9XOFc2hX0ZY/T6vgqEUsDnajQAIDIgGQF349BjdiWUqmYOu9LG6DGnEuRpGbhzOFRVzoHFT/FJv1JoNdwdDuVNYFfaGDXb2UNXv2THsobVKsGimyeMalf9oO10zEygY26qWiTSrPNoN3EoTJrUhb6zA/RdnWA9+HNkRMciPSAIAJDm6w9FZAysB/eCvosj9F0cYT24F9IDXiLtScm+42TeFne06mmJUhUMULqyISYsdUFEsBy+D1Leul1GhsCPXwehzwQ7OLjq55gnKlSOjfODMXmFC3R1c764YGgihaWtnmoxMCrZ7w8AMKxeERbdPWFUR3vvkfjD56BrZQHroZ9DVsYVurZWMKxaAXp2mZ3aUiMD2H0zDMb1q0PP0RaysqVg2a8z0gNeQhEVq83DK3JsG7qjwrBGcGj29tGrrwQff4JSnavCsWUFGDmZw6lVBbh28oDfn1l3wembGUBmbaxaIm++gFSmC4cW5VR5Yh6GwNmzEqxrucDI0QylOleFaVkbxD0O0/oxFjmMZ7WiQD9tjx49ikGDBsHDwwM1atTAli1bEBgYiFu3buW6zerVq/HZZ59hypQpqFy5Mr7//nvUrl0bP/30Uz7WXDO6ejooX9UZXpd8VGlCCHhd9kHlWjnfDvKmmo3KwaW0HR7cyP2Ki5GpIZRKJZIScv4yNzE3xKeda+Hx7QBkKEru1WZdPR2Ur1EKd849VqUJIXDn/BNUrlvmo8rU0ZFCR1cH6akKtfT0VDk8GmR+kTi42cDK3hx3zmftNzkhFU9u+6FyvY/bb3Ggq6eD8rXccfvMQ1WaEAJ3zjxElfrl3rLl+5NKJWjeswFkxjI8vu6bYx6ZkT7a9m+KEL9wRARFaWW/RVVmm5TGndNvtMnph6ispTZ533q0H/opEmOT8Px+wLs3KKZ09XRQoU4Z3D51X5UmhMDtU/dRpVGFHLep0rACbp+8r5Z28/hdVG5YPsf8FnbmaNC+Fo5sPq29ihMVQyU1ln1TakJmvGNkrvfe26SnZiBDIVTbKNIzf4jpyrJ+nkilEujoS+F3OxYAkBCVjsB78TCx0sOavjcwp+l5rBtwE89vxWrnQEqgkPmrEfTNDwhf8SvSfP3fmleZkjnqWGqcOcJSKBSARAKJbtZoSomeHiCRIPUdZZU0SQmZo7FNzd8+pcXOteGwsNZB215WOa5XKgVWTA5Ct2E2KFXBINdy9vwSiS/rPMaETr7YuzECGYqS19GhLSFzViPo6wUIX/4b0nz81dYlez2GvrszIn7+A0ETvkfI3NVIPHf9reWJ5FRAIoHUKPf2o+yU8gxI9dVHbuvIdBH7OAxKRc53UQQdegSnlhWga5j13WTp4YjwS35IjUiEEAJRt4OQ9CIWNvVK9gAO0p5CdU9yXFzmbddWVjl/qQDAlStXMGnSJLU0T09P7N+/P8f8aWlpSEtLU72Ojy/4uUfNLI2ho6uDmKhEtfSYyES4lLHLdTsjEwNsvzQTevq6UCqVWDdnH+681lH7Oj19XQyZ2h7n/vVCcmKa2rohU9qjU/8mMDDSx+M7AZgzfJPmB1WEmVmZQEdXB7ERCWrpseHxcC3n8FFlpiSl4dH1Z+g7uT0Cn4YgNiIeLbrXR6W6ZRDy36gwS7vM23pjI9T/JmMj4mFpZ56tzJLCzNo0sz3C1adhiAmPg2sFR43KdvdwwapTs6BvoIeUxFTM77MGgU+C1fJ0HN4Sw77vDUMTA7x4GozpnZdBIc/99seSwMwms01icmqTipq1yfto0K4mvvt9LGRG+ogOjcW3HZcg/o3Pz5LE3MYssz3CYtXSY8Ji4VrRKcdtLB0ssr+nwuJg9dr0Ja9rO6A5khNScXHv238o0Ct5caWeP4iLoryIZYHCGc++olQK7F/8FO61zeFY3uS9tzv0oy/M7WQo3yjzXNmVNoKlowEOr/RFz7mVoW+og/O/ByIuNA3xEZnHHh2UOXDg+Do/dJpSHk6VTHDrnxD8MuQWphxolG3uVsqdjrkZLPt1g8zdBUKuQOLFGwhbvgEO08dC3805W36hVCLmr38hK+cOfefM+FhWphQkMj3E7jkM826Zd0bE7jkCKJVQxhWev9GCplQK/PZDKCrXMYJbxdw71h7dTMKJ3TFY/W/uF7D3bIiEji7QaVDut/93HGiNsh4GMLHQxZPbyfh9WShiIhQYOiPvY7biRMfcDJYDukHm7gyhyEDi+esIW7oRDjPHqN4jiohoJJy5BjPPT2DeoQXS/YIQs+MfQFcHJk3qZCtTyOWI+fsojBrUgNSQnawfwqZeKQQdfAj7T8rArIIt4r3D8eLQIwiFEulxqTCwVp92MfZxKBL9olBtWku19MoTmuPh8tM403MzJDpSQApU+6YlrGpk/9wreRjPakOh6WRVKpWYOHEimjRpgqpVcx/CHxoaCnt7e7U0e3t7hIaG5ph/0aJFmDdvnlbrWlBSktIwpvNKGBrJULNxOQz/rhNCXkTh/jX10aw6ulJ8t7YfJBLgpzl7s5Xz929ncWz3ddg5W+LLcW3wzbIvSnxHa15YNmYTvl49EDseLEWGIgO+9wJxbu8NlKvBq2QFJehpCL5qPAtGZkZo2rUevtk4HFM+W6TW0Xp65xXcPv0QVg4W6Dm+HWb8PgZft/4h12kIKO/dPfcYoxvMgJmNCdoP/hQzt4/F+GZzs12gIO3xHPwpTu+4wL97og+QV7EsULjj2b3fP0GoTyLGbq/73tuc+tUfdw6H4qutdaAnyxzZp6MnxcA11bFr5iPManQOUh0JyjeyQqWm1qrfaMr/5nZr1MsZ9btnXlRyqWIGn6sxuL43GB0m5d/dFUWdnoOt2gOsZOXcoYiIQvzJC7AZ+kW2/DE7DkAeHAb7qaNUaTqmJrAZ2Q8xf+xDwunLgEQCo/o1oFfKGZDw9vRXfpkTgsCnqVi8M/c71ZITM7BichDGLnCGmVXOP9F976fg3y1RWPlPWUgkuc9B3HVo1kOwSlcygK6eBD/PfIkB39hDT8Z2eV96jrbQc3z9PeIGRXg04o9fhM3w3pmJQkDf3RkWPTIvMui7OSP9ZRgSz17L1skqFBmIXL8DEAJW/bvm12EUG+UG1kdadDKujN4NQEDf0gjOnpXg9+ftHN8PQYcewbSMNSwqqw+aCth7F7GPQlF7YUcYOpgi5u5LPFx1DjIbY9jU5e900lyh6WQdM2YMHjx4gIsXL2q13OnTp6uNFoiPj4erq+tbtsh78TFJyFBkwNJa/Wq/pY0JYiITctkq83bQkIDM25afPw6Ga1k79B7VUq2TVUdXiu/W9IedkyW+7b8h2yjWzP0nIz4mGS/9I/HiWTi2XZyJSrXc8OROybz9Nj46ERmKDFi88VAlCzuzbCP3PkSIfySmdvkRMiN9GJsaIDosHtN/HY7QgEgAQEx4ZgeRha0ZosOyOossbM3w/MGLj95vURcflZDZHm+M5rW0M0dMLg8Ze18KeQaCn2eOJPb18kfFOqXR9au2WDN+iypPcnwKkuNTEPwsDE+u+2JP0Ho06VwHZ3df1WjfRVl8ZGabvDnC2tLOHNGhmrXJ+0hNTkPw8zAEPw/Dk+vPsPn+cnw2sDn+Wv5vnu+7MIqLjM9sD3sLtXRLe4tso1tfiQmNzf6esjdHdA4Piqv6SSWUquSMBX1WaafCJUFezDlVAuewKuryKpYFCmc8CwB7f3iCR+ciMeb3urBweL9RWWc2BeD0b/4Y9b/acKqoHnu5ephh8r6GSElQIEOuhImVPlb3vg6Xqpl3/5jZZj6Z3b6s+ogluzLGiAlJ1cIRlWz67q45ThkQvWM/Uu49hv2UUdC1slBbZ+hRAYYLpyEjIQkSHSmkRoYImvw9dG1r5E+lC7lf5gbj5ul4LPyrDGwcc59OIzQwHeFBcnw/Iuv3mPhvNreuFR5g/YnyeHgzCXFRCgxtmvVwPWUGsHlhKP7dHIXfzlfMseyKNQyRoQDCXsrhUkamnQMrofTLuKpNGaBjYQo9J/U7UfWc7JByS32O7cwO1j+giIyB3dThHMX6EXRkuqj+bWtU/eZTpEWnwMDaCIH/PoSOkR70LQzV8ipS5Ag57YPyQxqopWekKfD01yuo/UN72DXKfLaNWVkbxPtGwm/nHXayMp7VikJxKWvs2LE4ePAgzpw5AxcXl7fmdXBwQFiY+qTEYWFhcHDI+bZumUwGMzMztaWgKeQZ8HnwEjUbZ11tl0gkqNm4HB5/QEenVCKB3mvzkrzqYHVyt8F3AzciITb5nWW8uuqjp//2+YGKM4U8Az53A1GzWWVVmkQiQc2mlfD4puZPGUxLTkd0WDxMzI1Q59MquHLkLgAgNCAS0WFxqNm0kiqvkYkBKtUujcdvmWu3uFPIM+Bzxx+1WlRRpUkkEtRsUQWPcpk/9WNJpOrvoWzrJRJAgrfmKQky28QPNT/1UKVJJBLU/NQj1zlt85JEKoGe7P3n/StuFPIMPL31HLVaZo2Uk0gkqNWyKh5deZrjNo+uPkWtVtXU0mq3ro7HV7NPOdNuSEs8vfkMz++VzAtvRB8jL2NZoPDFs0II7P3hCe6fjMDoTXVg7WL47o0AnP6fP07+8hwjNtaCa9Xcj8HQVBcmVvqI8E/Gi4fxqNoyczSZlbMBzOxkCPdXj3Ej/JNg5cROC03JXwRDxzyr41sIkdnBeuch7CaPgK5t7tNg6JgaQ2pkiNTHvlAmJMGwRpVc85YEQgj8MjcYV4/H44ftpXN9iNUrLmVlWHu4HFb/m7XUb2WKag2NsfrfcrBx1MOnXS2w5pB6Hit7XXQbboO5W9xzLfv541RIpYCFdcmOZ7VBHqj+HpGVc4MiNFItjyI0AjrWFqrXqg7W8CjYfTMMOibqF4now0h1dWBoZwKJjhQhp5/CrlFpSKTqI1lDz/pCKc+AUxv1Cw9KhRJCocw28lUilUAoS15nIOWNAv2kFUJg3Lhx2LdvH86ePYvSpUu/c5tGjRrh1KlTmDhxoirtxIkTaNSoUR7WVPv2bTqPyct6w+d+ELzvvUDXQU0hM9THib9vAAAmL/sCUWFx2LL8CACg16hP4XM/CCGBUdDT10W9FpXQsmsd1XQAOrpSzPhpAMp5OGPO8E2QSqWwtMn8AkiIS4ZCnoGKNVxRoborHt70R2JcMhxLWaP/158hOCCyxI5ifWXvLyfxzdpB8PHyh/dtf3Qb2QoGRvo4/udlAMA3Pw1CVGgsNv+wH0Dmg2dK/TcXpa6+LmwcLFCmqgtSktIQ4hcBAKjzaRVAIkGQbyicStth2NweeOETiuN/XlLtd9+GU+gzqT2Cn4cjNDASA77tgqjQWFw+4pWvx1/Y7P3pKL7ZMBxPb/vB+9ZzdBvjCQMjGY5vvwAAmLJxBCKDY7B57m4A/7VHpcx5dPT0dWHtZIky1UohNSlVNXJ18NzPcePEPUS8iIKhqQE+/bwRqjethBldlgMAHNxt0bxHA9w69QBxkfGwdbZCr0kdkZ4ix/XjdwvgLBQue9YcwZRfR8Lnlh+e3HyG7mM/g4GRDMd+PwcAmPLbSEQFx2DT7F0A/muTylltYuNkhTLVSyE1MXNUKgAYGMvgVDbrllkHd1uUqV4KCTFJiHgRBQMjGfpM64Irh24hOjQW5tam6DSyDWycLHF+77V8PgOFy55VBzF18xg8vfUc3td90W1CexgYy3Bsy1kAwNQtYxD5MhqbZvwJANi35jB+PDMXPb/uiGuHb6NF7yaoULcsVo3aqFaukakhmvZsiI1TtuW4X1tXa5hZmcDO1QZSHSnK1sh8WONL31CkJmW/c6LEUApofc4pBvtFQkmNZfd+743bh0Ix5KcakBnrqOZMNTTVhZ5B5oX7Hd8+gLmdgeoW/tO/+ePo2mfot6wqLJ0MVNvIjHQgM878SXL3aBiMrfRg6WiAkKeJ2L/oKaq2skXFJpnzT0okEnw6xA3HfnoGp4omcK5kihsHQhDul4yBq3Kek7qkUKamQRGe9aBORWQ00gODITU2hK61JWL3HoEiJh42QzNvc44/eQG6NlbQc7KHkCuQdOE6Up88g93Xw1RlxOzYj6RrXrAdMxBSAxky4jLvuJMYGkCqn3mxM/HSDeg52EFqaoL05wGI+etfmLb+RG0qgpLolzkhOP9PLGZscIOhiRQxEZnT7xiZ6kBmkDnOaeXkIFg56GLgFAfoy6TZ5ms1Nst8L71K19OXwsxS/ee7rq4EFra6qhGqT24nw/tuMqo3NIahsQ6e3EnG/34IQfMuFjB5x0O3irvc3yNG0LW2QOzfR6GIiVNNBRB//CJ0bS2z3iPnbyD18TPYTR6qKsO07ScIW7gecQfPwKheNaT7BSHx3HVYDewO4L8O1p+3Iz0gGLYTBgJCqN5HUmNDtYfGlTSK5HQkv8y6Iy45JB7xPhHQMzOAob0pvDdeRmpEImrMaAsASHoRg9jHYbCo4gB5Qir8d3kh0S8a1ae3yVZ20KHMuVv1zdUvAOoZ68OqpjOe/HIJUpkuDB1MEe0VjJfHnqDSmKZ5e8BFAeNZrSjQd/WYMWOwY8cOHDhwAKampqq5qMzNzWFomPmGGDBgAJydnbFo0SIAwIQJE9C8eXP8+OOP6NChA/766y/cvHkTGzduzHU/hdH5w3dhbm2MfhM9YWVrimePgjFryG+I/e9hLnZOFmpXUwwM9TFmXjfYOFggPVWOF8/DsWzynzh/OLPzx9reHI1aZ44y+/mg+sMUpn65HvevPUdaihyN21ZDv/FtYWCkj+jwBNw6741FP5+EPL1kP9jn/P6bMLc2Qf9pnWFpZ4bnD4Iws/ca1cOw7FysIF4b6m7tYIGfz8xSve45ti16jm2Le5e8MbXrCgCAkZkhBs/oBhsnCyTGJuPiwdvYsmA/MhRK1Xa71x6DgZE+xq/oBxMzIzy85ouZvddAnqbIpyMvnM7tuQ5zGzMMmNkdlvbmeH4vEDO6LUfsf1Ms2LpaQanMOo/WjpZYf+V71evPJ7bH5xPb4+6Fx5jabjEAwMLWFFM2DoeVgwWS41Pg9+AFZnRZjttnHgIA0lPlqNq4ArqNaQsTC2PEhsfh/iVvfN36e8RF5D6NR0lx7u9rmW0yu8d/bRKAGV2WqtrEztVG7TPL2tESv1xbqHr9+dcd8PnXHXD3/GNM8VwAAKhQuwyWH5+hyjNqaT8AwPFt57F8xEZkZCjhWtERbfpNgJm1KRKiE+F98zkmtf4BAY9f5sdhF1rndl2BhY0ZBs7tBUsHCzzz8sd37ReqHm71Zns8uvIUi/qtwaD5X2Dwgj546ROCud2Xwf+h+tQkLb5oDIlEgtN/5ny786B5vdF2YAvV619uLwMATG45F/fOPdLuQRYlQpl1X6c2y6RCr6TGspf/CgIA/Dzwllp67wVVUL9bZmdnbEiq2uiiy38FIUMusHXifbVt2n5VGp5jywIA4iPScGDpUyRGpsPMVoY6XRzRZpR6x3WzAaUgT1PiwJKnSImTw7GiKUb+Vhs2pUr2Q6/SA4IQvjzrbyh210EAgHGjOrAe0gsZsQnIiI7N2kCRgdhdh5ARGweJvj70XBxgN2k4DCqVVWVJPJs5VVL48g1q+7Ia9DlMmmTOwasIjUTs3qNQJqVA19oSZu0/hWkbdlYc+SMaAPBdXz+19AlLnNGqpyUAICIkXetT1+rpS3DhYBz+Wh0OebqAvas+Og+xQdchuT8oq6RI9w9C+NJfVa9j/zoEADBuUhvWQ3shIy5e/T2SkYHYnYeREfPfe8TVAXbfDINB5az3iKy0K2zH9EfsnqOI++cUdG0tYdmnE4wb1cosIjYOKV6PAQChc9eo1cduqvr7raSJ8w7H9Yn7VK+frMuMPZ0/q4Tq09sgLSoJqeFZD7oVGQJ+O+8g6UUspLpSWNVyRsN1PWHkqH5XRGJgDGLuh6De8i457rfmbE94b7yCuz8chzw+FYYOpqgwrBFKdcl9LvUSg/GsVkiEKLhJEnKbsHvz5s0YNGgQAKBFixZwd3fHli1bVOt3796NmTNnwt/fH+XLl8fSpUvRvn3799pnfHw8zM3N0br0OOhKOSdNYSD49NFCR6RwXrPCRGSU7IsghY1ITy/oKtBrFEKOs2I/4uLi8v0WalVMUeorrccUCmUaTgb+XCDHRe+vIGJZIOtvb8H1FjAwKbkjoQqT1Zeyj6aigvVTy5zvyqCCMfZcv4KuAr3Go2zJHrBQ2MiT0nGy/QbGs8VAgU8X8C5nz57Nlvb555/j888/z4MaEREREX0gPiigxGIsS0RERMUC41mtKBQPviIiIiIiIiIiIiIqqnh/EREREZEm+KAAIiIiIirKGM9qBUeyEhEREREREREREWmAI1mJiIiINME5rIiIiIioKGM8qxUcyUpERERERERERESkAY5kJSIiItKEQB5c+dducUREREREuWI8qxXsZCUiIiLSBG+vIiIiIqKijPGsVnC6ACIiIiIiIiIiIiINcCQrERERkSaUSgDKPCiTiIiIiCgfMJ7VCo5kJSIiIiIiIiIiItIAR7ISERERaYJzWBERERFRUcZ4Vis4kpWIiIiIiIiIiIhIAxzJSkRERKQJXvknIiIioqKM8axWsJOViIiISBNKAUDLQaSy5AWlRERERFRAGM9qBacLICIiIiIiIiIiItIAR7ISERERaUAIJYRQar1MIiIiIqL8wHhWOziSlYiIiIiIiIiIiEgDHMlKREREpAkhtD/nVAl8UAARERERFRDGs1rBkaxEREREREREREREGuBIViIiIiJNiDx4GmsJvPJPRERERAWE8axWsJOViIiISBNKJSDR8sT+JfBBAURERERUQBjPagWnCyAiIiIiIiIiIiLSAEeyEhEREWmCt1cRERERUVHGeFYrOJKViIiIiIiIiIiISAMcyUpERESkAaFUQmh5DitRAuewIiIiIqKCwXhWOziSlYiIiIiIiIiIiEgDHMlKREREpAnOYUVERERERRnjWa3gSFYiIiIiIiIiIiIiDXAkKxEREZEmlAKQ8Mo/ERERERVRjGe1gp2sRERERJoQAoCWJ/YvgUEpERERERUQxrNawekCiIiIiIiIiIiIiDTAkaxEREREGhBKAaHl26tECbzyT0REREQFg/GsdnAkKxEREREREREREZEGOJKViIiISBNCCe3PYaXl8oiIiIiIcsN4Vis4kpWIiIiIiIiIiIhIAxzJSkRERKQBzmFFREREREUZ41ntYCcrERERkSZ4exURERERFWWMZ7WixHWyvupJVyjTC7gm9IpgWxQ6QrBNChNRAr+cCjMh5AVdBXqN4r/2KMgr5QrIAS3vXgH+nVHuXv29pyYqCrgm9IoyJbWgq0BvSE7IKOgq0Gv4Hilc5En8vVeYKJIz24PxbNEnESVs/G5QUBBcXV0LuhpERESkRS9evICLi0u+7jM1NRWlS5dGaGhonpTv4OAAPz8/GBgY5En5VHQxniUiIip+GM8WfSWuk1WpVCI4OBimpqaQSCQFXZ2PFh8fD1dXV7x48QJmZmYFXR0C26SwYXsULmyPwqe4tIkQAgkJCXBycoJUmv/P80xNTUV6et6MBtHX1y8xASl9GMazlBfYHoUP26RwYXsULsWpPRjPFh8lbroAqVSa71cG8pKZmVmR/0ApbtgmhQvbo3BhexQ+xaFNzM3NC2zfBgYGJSpwpMKB8SzlJbZH4cM2KVzYHoVLcWkPxrPFQ/53kRMREREREREREREVI+xkJSIiIiIiIiIiItIAO1mLKJlMhjlz5kAmkxV0Veg/bJPChe1RuLA9Ch+2CREVNH4OFS5sj8KHbVK4sD0KF7YHFUYl7sFXRERERERERERERNrEkaxEREREREREREREGmAnKxEREREREREREZEG2MlKREREREREREREpAF2shIRERERERERERFpgJ2sRERERERERERERBpgJ2shN3fuXEgkErWlUqVKqvWpqakYM2YMrK2tYWJigh49eiAsLKwAa1y8nD9/Hp06dYKTkxMkEgn279+vWieXyzFt2jRUq1YNxsbGcHJywoABAxAcHKxWhru7e7Y2XLx4cT4fSfGwaNEi1KtXD6amprCzs0PXrl3h7e2tlqdFixbZzveoUaPU8gQGBqJDhw4wMjKCnZ0dpkyZAoVCkZ+HUixo4/OJbaGZ/PqMunfvHpo2bQoDAwO4urpi6dKl+XF4RFQMMJYteIxnCxfGs4UL49mCxViWiht2shYBHh4eCAkJUS0XL15Urfv666/x77//Yvfu3Th37hyCg4PRvXv3Aqxt8ZKUlIQaNWpg3bp12dYlJyfj9u3bmDVrFm7fvo29e/fC29sbnTt3zpZ3/vz5am04bty4/Kh+sXPu3DmMGTMGV69exYkTJyCXy9G2bVskJSWp5Rs+fLja+X79SzQjIwMdOnRAeno6Ll++jK1bt2LLli2YPXt2fh9OsaDJ5xPbQnP58RkVHx+Ptm3bws3NDbdu3cKyZcswd+5cbNy4MU+PjYiKD8ayBYvxbOHCeLbwYTxbcBjLUrEjqFCbM2eOqFGjRo7rYmNjhZ6enti9e7cq7fHjxwKAuHLlSj7VsOQAIPbt2/fWPNevXxcAREBAgCrNzc1NrFy5Mm8rV0KFh4cLAOLcuXOqtObNm4sJEybkus3hw4eFVCoVoaGhqrT169cLMzMzkZaWlpfVLXY0/XxiW2hXXn1G/fzzz8LS0lKtTaZNmyYqVqyoaZWJqARgLFu4MJ4tfBjPFizGs4UHY1kqDjiStQjw8fGBk5MTypQpgy+//BKBgYEAgFu3bkEul6N169aqvJUqVUKpUqVw5cqVgqpuiRYXFweJRAILCwu19MWLF8Pa2hq1atXCsmXLePuIlsTFxQEArKys1NL/+OMP2NjYoGrVqpg+fTqSk5NV665cuYJq1arB3t5elebp6Yn4+Hg8fPgwfypejGjy+cS2yH8f8xl15coVNGvWDPr6+qo0T09PeHt7IyYmJr+qTkRFGGPZooXxbP5iPFvwGM8WHYxlqbDTLegK0Ns1aNAAW7ZsQcWKFRESEoJ58+ahadOmePDgAUJDQ6Gvr5/tA8be3h6hoaEFU+ESLDU1FdOmTUOfPn1gZmamSh8/fjxq164NKysrXL58GdOnT0dISAhWrFhRgLUt+pRKJSZOnIgmTZqgatWqqvS+ffvCzc0NTk5OuHfvHqZNmwZvb2/s3bsXABAaGqoWBAFQveb75sNo+vnEtshfH/sZFRoaitKlS6uV9Xo7WVpa5t9BEFGRw1i2aGE8m78YzxY8xrNFB2NZKgrYyVrItWvXTvX/6tWro0GDBnBzc8OuXbtgaGhYgDWj18nlcvTq1QtCCKxfv15t3aRJk1T/r169OvT19TFy5EgsWrQIMpksv6tabIwZMwYPHjxQmzMJAEaMGKH6f7Vq1eDo6IhWrVrh2bNnKFu2bH5Xs1jj51PRwc8oIioo/K4oOvhdkf8YzxY8fkYVDfx8oqKC0wUUMRYWFqhQoQJ8fX3h4OCA9PR0xMbGquUJCwuDg4NDwVSwBHr1gR8QEIATJ06oXVXLSYMGDaBQKODv758/FSyGxo4di4MHD+LMmTNwcXF5a94GDRoAAHx9fQEADg4O2Z4I+uo13zea+dDPJ7ZF/tD0M4rtRETaxFi2cGI8m/8YzxZOjGcLH8ayVJSwk7WISUxMxLNnz+Do6Ig6depAT08Pp06dUq339vZGYGAgGjVqVIC1LDlefeD7+Pjg5MmTsLa2fuc2Xl5ekEqlsLOzy4caFi9CCIwdOxb79u3D6dOns932kRMvLy8AgKOjIwCgUaNGuH//PsLDw1V5Xn1ZV6lSJU/qXVJ86OcT2yLvaeMzqlGjRjh//jzkcrkqz4kTJ1CxYkXeXkVEH4yxbOHDeDZ/MZ4t3BjPFi6MZanIKcinbtG7TZ48WZw9e1b4+fmJS5cuidatWwsbGxsRHh4uhBBi1KhRolSpUuL06dPi5s2bolGjRqJRo0YFXOviIyEhQdy5c0fcuXNHABArVqwQd+7cEQEBASI9PV107txZuLi4CC8vLxESEqJaXj258PLly2LlypXCy8tLPHv2TGzfvl3Y2tqKAQMGFPCRFU2jR48W5ubm4uzZs2rnOzk5WQghhK+vr5g/f764efOm8PPzEwcOHBBlypQRzZo1U5WhUChE1apVRdu2bYWXl5c4evSosLW1FdOnTy+owyqyNP18YltoLj8+o2JjY4W9vb3o37+/ePDggfjrr7+EkZGR2LBhQ0EdNhEVIYxlCx7j2cKF8Wzhwni2YDGWpeKGnayFXO/evYWjo6PQ19cXzs7Oonfv3sLX11e1PiUlRXz11VfC0tJSGBkZiW7duomQkJACrHHxcubMGQEg2zJw4EDh5+eX4zoA4syZM0IIIW7duiUaNGggzM3NhYGBgahcubJYuHChSE1NLdgDK6JyO9+bN28WQggRGBgomjVrJqysrIRMJhPlypUTU6ZMEXFxcWrl+Pv7i3bt2glDQ0NhY2MjJk+eLORyeQEcUdGmjc8ntoVm8usz6u7du+KTTz4RMplMODs7i8WLFxfA0RJRUcRYtuAxni1cGM8WLoxnCxZjWSpuJEIIoZ0xsUREREREREREREQlD+dkJSIiIiIiIiIiItIAO1mJiIiIiIiIiIiINMBOViIiIiIiIiIiIiINsJOViIiIiIiIiIiISAPsZCUiIiIiIiIiIiLSADtZiYiIiIiIiIiIiDTATlYiIiIiIiIiIiIiDbCTlYi0xt/fHxKJBF5eXgVdFZUnT56gYcOGMDAwQM2aNQu6Oh9FIpFg//79BV0NIiIiomKP8WzeYDxLRCUBO1mJipFBgwZBIpFg8eLFaun79++HRCIpoFoVrDlz5sDY2Bje3t44depUjnkiIiIwevRolCpVCjKZDA4ODvD09MSlS5fyubZEREREJRvj2ewYzxIRFQ3sZCUqZgwMDLBkyRLExMQUdFW0Jj09/aO3ffbsGT755BO4ubnB2to6xzw9evTAnTt3sHXrVjx9+hT//PMPWrRogaioqI/eLxERERF9HMaz6hjPEhEVDexkJSpmWrduDQcHByxatCjXPHPnzs12q9GqVavg7u6uej1o0CB07doVCxcuhL29PSwsLDB//nwoFApMmTIFVlZWcHFxwebNm7OV/+TJEzRu3BgGBgaoWrUqzp07p7b+wYMHaNeuHUxMTGBvb4/+/fsjMjJStb5FixYYO3YsJk6cCBsbG3h6euZ4HEqlEvPnz4eLiwtkMhlq1qyJo0ePqtZLJBLcunUL8+fPh0Qiwdy5c7OVERsbiwsXLmDJkiX49NNP4ebmhvr162P69Ono3LmzKt+KFStQrVo1GBsbw9XVFV999RUSExNV67ds2QILCwscPHgQFStWhJGREXr27Ink5GRs3boV7u7usLS0xPjx45GRkaHazt3dHd9//z369OkDY2NjODs7Y926dTke7ysvXrxAr169YGFhASsrK3Tp0gX+/v6q9WfPnkX9+vVhbGwMCwsLNGnSBAEBAW8tk4iIiKiwYDzLeJbxLBEVRexkJSpmdHR0sHDhQqxduxZBQUEalXX69GkEBwfj/PnzWLFiBebMmYOOHTvC0tIS165dw6hRozBy5Mhs+5kyZQomT56MO3fuoFGjRujUqZPqKnpsbCxatmyJWrVq4ebNmzh69CjCwsLQq1cvtTK2bt0KfX19XLp0Cb/88kuO9Vu9ejV+/PFHLF++HPfu3YOnpyc6d+4MHx8fAEBISAg8PDwwefJkhISE4JtvvslWhomJCUxMTLB//36kpaXlei6kUinWrFmDhw8fYuvWrTh9+jSmTp2qlic5ORlr1qzBX3/9haNHj+Ls2bPo1q0bDh8+jMOHD2Pbtm3YsGED/v77b7Xtli1bhho1auDOnTv49ttvMWHCBJw4cSLHesjlcnh6esLU1BQXLlzApUuXYGJigs8++wzp6elQKBTo2rUrmjdvjnv37uHKlSsYMWJEib29joiIiIoexrOMZxnPElGRJIio2Bg4cKDo0qWLEEKIhg0biiFDhgghhNi3b594/e0+Z84cUaNGDbVtV65cKdzc3NTKcnNzExkZGaq0ihUriqZNm6peKxQKYWxsLP78808hhBB+fn4CgFi8eLEqj1wuFy4uLmLJkiVCCCG+//570bZtW7V9v3jxQgAQ3t7eQgghmjdvLmrVqvXO43VychILFixQS6tXr5746quvVK9r1Kgh5syZ89Zy/v77b2FpaSkMDAxE48aNxfTp08Xdu3ffus3u3buFtbW16vXmzZsFAOHr66tKGzlypDAyMhIJCQmqNE9PTzFy5EjVazc3N/HZZ5+pld27d2/Rrl071WsAYt++fUIIIbZt2yYqVqwolEqlan1aWpowNDQUx44dE1FRUQKAOHv27FvrT0RERFQYMZ5lPMt4loiKKo5kJSqmlixZgq1bt+Lx48cfXYaHhwek0qyPCXt7e1SrVk31WkdHB9bW1ggPD1fbrlGjRqr/6+rqom7duqp63L17F2fOnFFdcTcxMUGlSpUAZM439UqdOnXeWrf4+HgEBwejSZMmaulNmjT54GPu0aMHgoOD8c8//+Czzz7D2bNnUbt2bWzZskWV5+TJk2jVqhWcnZ1hamqK/v37IyoqCsnJyao8RkZGKFu2rOq1vb093N3dYWJiopb2tvP16nVux3D37l34+vrC1NRUdf6srKyQmpqKZ8+ewcrKCoMGDYKnpyc6deqE1atXIyQk5IPOBxEREVFhwHj2/TGeJSIqeOxkJSqmmjVrBk9PT0yfPj3bOqlUCiGEWppcLs+WT09PT+21RCLJMU2pVL53vRITE9GpUyd4eXmpLT4+PmjWrJkqn7Gx8XuXqQ0GBgZo06YNZs2ahcuXL2PQoEGYM2cOAMDf3x8dO3ZE9erVsWfPHty6dUs1z9TrDzHIi/P1psTERNSpUyfb+Xv69Cn69u0LANi8eTOuXLmCxo0bY+fOnahQoQKuXr360fskIiIiKgiMZz8M41kiooLFTlaiYmzx4sX4999/ceXKFbV0W1tbhIaGqgWmXl5eWtvv6wGQQqHArVu3ULlyZQBA7dq18fDhQ7i7u6NcuXJqy4cEomZmZnBycsKlS5fU0i9duoQqVapofAxVqlRBUlISAODWrVtQKpX48ccf0bBhQ1SoUAHBwcEa7+OVNwPGq1evqs7Xm2rXrg0fHx/Y2dllO3/m5uaqfLVq1cL06dNx+fJlVK1aFTt27NBafYmIiIjyC+PZj8d4logof7GTlagYq1atGr788kusWbNGLb1FixaIiIjA0qVL8ezZM6xbtw5HjhzR2n7XrVuHffv24cmTJxgzZgxiYmIwZMgQAMCYMWMQHR2NPn364MaNG3j27BmOHTuGwYMHqz2l9H1MmTIFS5Yswc6dO+Ht7Y1vv/0WXl5emDBhwnuXERUVhZYtW2L79u24d+8e/Pz8sHv3bixduhRdunQBAJQrVw5yuRxr167F8+fPsW3btlwfXvAxLl26hKVLl+Lp06dYt24ddu/enesxfPnll7CxsUGXLl1w4cIF+Pn54ezZsxg/fjyCgoLg5+eH6dOn48qVKwgICMDx48fh4+OTa5BLREREVJgxnn03xrNERIUDO1mJirn58+dnu52ncuXK+Pnnn7Fu3TrUqFED169fz/FJpR9r8eLFWLx4MWrUqIGLFy/in3/+gY2NDQCortZnZGSgbdu2qFatGiZOnAgLCwu1+bLex/jx4zFp0iRMnjwZ1apVw9GjR/HPP/+gfPny712GiYkJGjRogJUrV6JZs2aoWrUqZs2aheHDh+Onn34CANSoUQMrVqzAkiVLULVqVfzxxx9YtGjRB9X1bSZPnoybN2+iVq1a+OGHH7BixQp4enrmmNfIyAjnz59HqVKl0L17d1SuXBlDhw5FamoqzMzMYGRkhCdPnqBHjx6oUKECRowYgTFjxmDkyJFaqy8RERFRfmI8+3aMZ4mICgeJeHMiGyIiyjfu7u6YOHEiJk6cWNBVISIiIiL6YIxniYgycSQrERERERERERERkQbYyUpERERERERERESkAU4XQERERERERERERKQBjmQlIiIiIiIiIiIi0gA7WYmIiIiIiIiIiIg0wE5WIiIiIiIiIiIiIg2wk5WIiIiIiIiIiIhIA+xkJSIiIiIiIiIiItIAO1mJiIiIiIiIiIiINMBOViIiIiIiIiIiIiINsJOViIiIiIiIiIiISAPsZCUiIiIiIiIiIiLSADtZiYiIiIiIiIiIiDTATlYiIiIiIiIiIiIiDbCTlYiIiIiIiIiIiEgD7GQlIiIiIiIiIiIi0gA7WYmIiIiIiIiIiIg0wE5Wojw0aNAguLu7q6UlJiZi2LBhcHBwgEQiwcSJEwukbnlt7ty5kEgkBV2NPPHixQsYGBjg0qVLBV2VfOPu7o5BgwapXm/ZsgUSiQQ3b97Ml/0/evQIurq6ePDgQb7sj4iIiD6cRCLB3LlzC7oaWsFYtnhhLEtE+YGdrFTivQqgIiMjc1xftWpVtGjRQmv7W7hwIbZs2YLRo0dj27Zt6N+/v9bKzgvu7u6QSCRo3bp1jut//fVXSCQSrQUpycnJmDt3Ls6ePatxWXll/vz5aNCgAZo0aZJv+4yNjYWdnR0kEgn+/vvvfNtvYVGlShV06NABs2fPLuiqEBERFUr3799Hz5494ebmBgMDAzg7O6NNmzZYu3atWr6FCxdi//79BVNJLdixYwdWrVr13vkZy2bHWDb/MZYlKhnYyUqUh3799Vd4e3urpZ0+fRoNGzbEnDlz0K9fP9SpU6eAavf+DAwMcObMGYSGhmZb98cff8DAwCBb+syZM5GSkvLB+0pOTsa8efMKbWAaERGBrVu3YtSoUfm639mzZyM5OTlf9/k6b29v/PrrrwW2fwAYNWoU9u3bh2fPnhVoPYiIiAqby5cvo27durh79y6GDx+On376CcOGDYNUKsXq1avV8pa0TlaAsezrGMsWHMayRMUfO1mJ8pCenh5kMplaWnh4OCwsLLS2D4VCgfT0dK2Vl5MmTZrAxMQEO3fuVEsPCgrChQsX0KFDh2zb6Orq5hiwFhRtnaft27dDV1cXnTp1emdebQWSDx48wPr16zFt2jStlPcxZDIZ9PT0Cmz/ANC6dWtYWlpi69atBVoPIiKiwmbBggUwNzfHjRs3MHPmTAwbNgzz5s3DsWPHcPny5YKuXoFjLJuFsWzBYSxLVPyxk5XoA509exYSiQS7du3CggUL4OLiAgMDA7Rq1Qq+vr5qeV+fk/XVdn5+fjh06JDqtiR/f38AmZ2vQ4cOhb29PQwMDFCjRo1sX8D+/v6QSCRYvnw5Vq1ahbJly0Imk+HRo0eqaQ+ePn2Kfv36wdzcHLa2tpg1axaEEHjx4gW6dOkCMzMzODg44Mcff3zvYzYwMED37t2xY8cOtfQ///wTlpaW8PT0zLbNm/NYbd68GRKJBJs2bVLLt3DhQkgkEhw+fBj+/v6wtbUFAMybN091jl7N7dWiRYscp254c+7bt50nAHjy5Al69uwJKysrGBgYoG7duvjnn3/e61zs378fDRo0gImJiVp6ixYtULVqVdy6dQvNmjWDkZERvvvuu/cq810mTJiAbt26oWnTph+03dq1a+Hh4QEjIyNYWlqibt26am34qo2ePHmCXr16wczMDNbW1pgwYQJSU1PVynpzHqucxMTEoH79+nBxcVGN4E5LS8OcOXNQrlw5yGQyuLq6YurUqUhLS1Pb9sSJE/jkk09gYWEBExMTVKxYMdv509PTQ4sWLXDgwIEPOg9ERETF3bNnz+Dh4ZHjhXw7OzvV/yUSCZKSkrB161ZVnPXq+z2nZwkAOc9NmpaWhq+//hq2trYwNTVF586dERQUlGPdXr58iSFDhsDe3h4ymQweHh7Z4sH3ja9btGiBQ4cOISAgQFX/nOr8JsayWRjL5o6xLBFpSregK0BUVC1evBhSqRTffPMN4uLisHTpUnz55Ze4du1ajvkrV66Mbdu24euvv4aLiwsmT54MALC1tUVKSgpatGgBX19fjB07FqVLl8bu3bsxaNAgxMbGYsKECWplbd68GampqRgxYgRkMhmsrKxU63r37o3KlStj8eLFOHToEH744QdYWVlhw4YNaNmyJZYsWYI//vgD33zzDerVq4dmzZq91/H27dsXbdu2xbNnz1C2bFkAmbdr9ezZ872uCg8ePBh79+7FpEmT0KZNG7i6uuL+/fuYN28ehg4divbt2yMpKQnr16/H6NGj0a1bN3Tv3h0AUL169feq45tyOk8PHz5EkyZN4OzsjG+//RbGxsbYtWsXunbtij179qBbt265lieXy3Hjxg2MHj06x/VRUVFo164dvvjiC/Tr1w/29vYAMh929maglxM9PT2Ym5urpe3evRuXL1/G48ePVR3y7+PXX3/F+PHj0bNnT1Wgee/ePVy7dg19+/ZVy9urVy+4u7tj0aJFuHr1KtasWYOYmBj8/vvv772/yMhItGnTBtHR0Th37hzKli0LpVKJzp074+LFixgxYgQqV66M+/fvY+XKlXj69KnqVsWHDx+iY8eOqF69OubPnw+ZTAZfX98cH8ZQp04dHDhwAPHx8TAzM3vv+hERERVnbm5uuHLlCh48eICqVavmmm/btm0YNmwY6tevjxEjRgCAKq77EMOGDcP27dvRt29fNG7cGKdPn85xNGhYWBgaNmwIiUSCsWPHwtbWFkeOHMHQoUMRHx+f7QGw74qvZ8yYgbi4OAQFBWHlypUAkK2zMDeMZRnLvg1jWSLSCkFUws2ZM0cAEBERETmu9/DwEM2bN1e9PnPmjAAgKleuLNLS0lTpq1evFgDE/fv3VWkDBw4Ubm5uauW5ubmJDh06qKWtWrVKABDbt29XpaWnp4tGjRoJExMTER8fL4QQws/PTwAQZmZmIjw8PMfjGDFihCpNoVAIFxcXIZFIxOLFi1XpMTExwtDQUAwcOPDtJ+e1+ioUCuHg4CC+//57IYQQjx49EgDEuXPnxObNmwUAcePGjWz1eV1ISIiwsrISbdq0EWlpaaJWrVqiVKlSIi4uTpUnIiJCABBz5szJVpfmzZurtcUrb57nt52nVq1aiWrVqonU1FRVmlKpFI0bNxbly5d/67nw9fUVAMTatWtzrBsA8csvv+RYPwDvXN48tuTkZFGqVCkxffp0IUTW397u3bvfWk8hhOjSpYvw8PB4a55XbdS5c2e19K+++koAEHfv3lWlubm5qf29vN7mISEhwsPDQ5QpU0b4+/ur8mzbtk1IpVJx4cIFtfJ/+eUXAUBcunRJCCHEypUr3/oefN2OHTsEAHHt2rV35iUiIiopjh8/LnR0dISOjo5o1KiRmDp1qjh27JhIT0/PltfY2DjHGDCnuFWI7DGdl5eXACC++uortXx9+/bNFsMNHTpUODo6isjISLW8X3zxhTA3NxfJyclCiA+Lrzt06JBjPXPDWDYLY9mBqteMZYkoL3C6AKKPNHjwYOjr66tev7r95fnz5x9c1uHDh+Hg4IA+ffqo0vT09DB+/HgkJibi3Llzavl79OihuhXpTcOGDVP9X0dHB3Xr1oUQAkOHDlWlW1hYoGLFih9UVx0dHfTq1Qt//vkngMyHBLi6un7QbT8ODg5Yt24dTpw4gaZNm8LLywubNm3Ks6u4b56n6OhonD59Gr169UJCQgIiIyMRGRmJqKgoeHp6wsfHBy9fvsy1vKioKACApaVljutlMhkGDx6cLX3q1Kk4ceLEO5c3p3BYvHgx5HL5R92qZWFhgaCgINy4ceOdeceMGaP2ety4cQAy/y7fJSgoCM2bN4dcLsf58+fh5uamWrd7925UrlwZlSpVUp3ryMhItGzZEgBw5swZVV0B4MCBA1AqlW/d36tzHxkZ+c66ERERlRRt2rTBlStX0LlzZ9y9exdLly6Fp6cnnJ2d3/s28vf1Kj4YP368Wvqbo1KFENizZw86deoEIYRaLODp6Ym4uDjcvn1bbRttxtdvYizLWDYnjGWJSJs4XQDRe3hzHioAKFWqlNrrV1+YMTExH1x+QEAAypcvD6lU/bpH5cqVVetfV7p06VzLerNe5ubmMDAwgI2NTbb0V4HW++rbty/WrFmDu3fvYseOHfjiiy9yPDdv88UXX2D79u04dOgQRowYgVatWn3Q9h/izfPk6+sLIQRmzZqFWbNm5bhNeHg4nJ2d31quECLHdGdnZ7UfBq9UqVIFVapUec9aZ/L398eyZcuwbt26974N7nXTpk3DyZMnUb9+fZQrVw5t27ZF37590aRJk2x5y5cvr/a6bNmykEql73VLV//+/aGrq4vHjx/DwcFBbZ2Pjw8eP36c6wWB8PBwAJlTXPz2228YNmwYvv32W7Rq1Qrdu3dHz549s70nXp37D/27IyIiKu7q1auHvXv3Ij09HXfv3sW+ffuwcuVK9OzZE15eXh8ci+QmICAAUqk02zQDFStWVHsdERGB2NhYbNy4ERs3bsyxrFexwCvajK9zwlg2E2PZLIxliUib2MlKJd6rp4ampKTkuD45OTnHJ4vq6OjkmD+3oEWbDA0Nc12XU720VdcGDRqgbNmymDhxIvz8/LLNh/Q+oqKicPPmTQDAo0ePoFQqswUfuZFIJDnWOSMjI8f8b56nV1eWv/nmmxwfcAAA5cqVy3X/1tbWAHIP9HNrl7i4uFz/vl6nr6+vml939uzZcHZ2RosWLVQBYmhoKIDMHy3+/v4oVapUrueucuXK8Pb2xsGDB3H06FHs2bMHP//8M2bPno158+a9tR4fEvR1794dv//+O1avXo1FixaprVMqlahWrRpWrFiR47aurq4AMs/b+fPncebMGRw6dAhHjx7Fzp070bJlSxw/flzt7/fVuX/zogERERFl0tfXR7169VCvXj1UqFABgwcPxu7duzFnzpy3bpfb939ucda7vIq7+vXrh4EDB+aY5825SvM6vmYsy1j2TYxliUib2MlKJd6rW0K8vb1VX5SvJCcn48WLF2jbtm2e1+HevXvZgrQnT56o1bEw6NOnD3744QdUrlwZNWvW/ODtx4wZg4SEBCxatAjTp0/HqlWrMGnSJNX6twVFlpaWOd4u9uZI39yUKVMGQOZUDK1bt/7AmmeOrjA0NISfn98HbTdhwgRs3br1nfmaN2+Os2fPAgACAwPh6+urqvPrvvrqKwCZQVpOTxF+xdjYGL1790bv3r2Rnp6O7t27Y8GCBZg+fbrahQMfHx+1kRK+vr5QKpXv9bTecePGoVy5cpg9ezbMzc3x7bffqtaVLVsWd+/eRatWrd4Z7EqlUrRq1QqtWrXCihUrsHDhQsyYMQNnzpxRays/Pz9IpVJUqFDhnXUjIiIq6erWrQsACAkJUaXl9p1saWmJ2NjYbOlvxllubm5QKpV49uyZ2ujVV09jf8XW1hampqbIyMj4qLgrN5qOAGQsy1j2dYxliUib2MlKJV6rVq2gr6+P9evXo2XLlmqdnBs3boRCoUC7du3ytA7t27fH8ePHsXPnTtW8rAqFAmvXroWJiQmaN2+ep/v/EMOGDYOOjg4aNGjwwdv+/fff2LlzJ9asWYNx48bh7t27mDlzJjp27KgKNIyMjAAgxyC/bNmyOHz4MCIiIlS37dy9exeXLl3K1kGeEzs7O7Ro0QIbNmzAuHHj4OjoqLb+9XJzoqenh7p166pGL7yvqVOnol+/fu/M9/r8WD/88EO2uZoePHiAWbNmYerUqWjUqBGMjY1zLSsqKko1WgHIHFlQpUoVHDlyBHK5XC0wXbdundqFhLVr1wLAe//dz5o1C/Hx8Zg+fTrMzc1VT6zt1asXDh8+jF9//VX1BONXUlJSoFQqYWxsjOjoaNWoh1de/ehJS0tTS7916xY8PDyyPbmWiIioJDtz5gxatGiRrSPo1ZyUr3eGGhsb5xpnxcXF4d69e6oRpiEhIdi3b59avnbt2uG7777DmjVrsG7dOlX6qlWr1PLp6OigR48e2LFjBx48eICqVauqrX9X3JUbY2NjxMXFffB2rzCWZSz7JsayRKQt7GSlEs/Ozg6zZ8/GzJkz0axZM3Tu3BlGRka4fPky/vzzT7Rt2xadOnXK0zqMGDECGzZswKBBg3Dr1i24u7vj77//xqVLl7Bq1SqYmprm6f4/hJubG+bOnfvB24WHh2P06NH49NNPMXbsWADATz/9hDNnzmDQoEG4ePEipFIpDA0NUaVKFezcuRMVKlSAlZUVqlatiqpVq2LIkCFYsWIFPD09MXToUISHh+OXX36Bh4cH4uPj36se69atwyeffIJq1aph+PDhKFOmDMLCwnDlyhUEBQXh7t27b92+S5cumDFjBuLj49/7IQcfM4/VJ598ki3t1ZX+evXqoWvXrm/dvm3btnBwcECTJk1gb2+Px48f46effkKHDh2y/T35+fmhc+fO+Oyzz3DlyhVs374dffv2RY0aNd67vsuWLUNcXBzGjBkDU1NT9OvXD/3798euXbswatQonDlzBk2aNEFGRgaePHmCXbt24dixY6hbty7mz5+P8+fPo0OHDnBzc0N4eDh+/vlnuLi4qJ0HuVyOc+fOqUY/EBERUaZx48YhOTkZ3bp1Q6VKlZCeno7Lly9j586dcHd3V3uYUZ06dXDy5EmsWLECTk5OKF26NBo0aIAvvvgC06ZNQ7du3TB+/HgkJydj/fr1qFChgtoDqmrWrIk+ffrg559/RlxcHBo3boxTp07B19c3W70WL16MM2fOoEGDBhg+fDiqVKmC6Oho3L59GydPnkR0dPQHH2udOnWwc+dOTJo0CfXq1YOJickHxeqMZRnL5oSxLBFphSAiIYQQ27dvFw0bNhTGxsZCJpOJSpUqiXnz5onU1FS1fGfOnBEAxO7du9XS/fz8BACxefNmVdrAgQOFm5ubWj43NzfRoUOHbPsPCwsTgwcPFjY2NkJfX19Uq1ZNrazX97Fs2bJs28+ZM0cAEBEREWrpAwcOFMbGxtnyN2/eXHh4eOR0Kt6rvq/bvHmzACBu3LiRrT6vdO/eXZiamgp/f3+1bQ8cOCAAiCVLlqjSLl++LOrUqSP09fUFADFnzhzVuu3bt4syZcoIfX19UbNmTXHs2LFs5/lt50kIIZ49eyYGDBggHBwchJ6ennB2dhYdO3YUf//99zvPR1hYmNDV1RXbtm1TS3/f86mJ3P72crJhwwbRrFkzYW1tLWQymShbtqyYMmWKiIuLU+V51UaPHj0SPXv2FKampsLS0lKMHTtWpKSkqJXn5uYmBg4cqHqdU5tnZGSIPn36CF1dXbF//34hhBDp6eliyZIlwsPDQ8hkMmFpaSnq1Kkj5s2bp6rLqVOnRJcuXYSTk5PQ19cXTk5Ook+fPuLp06dqdThy5IgAIHx8fD743BERERVnR44cEUOGDBGVKlUSJiYmQl9fX5QrV06MGzdOhIWFqeV98uSJaNasmTA0NBQA1L7fjx8/LqpWrSr09fVFxYoVxfbt27PFdEIIkZKSIsaPHy+sra2FsbGx6NSpk3jx4kW2uE2IzNhpzJgxwtXVVejp6QkHBwfRqlUrsXHjRlWeD4mvExMTRd++fYWFhYUAkC3WfhNjWXWMZTMxliWivCARIh+e0kNEVIwMHToUT58+xYULFwq6KhqZO3cu5s2bh4iIiCIx+X7Xrl0hkUiy3bZIRERERO+PsWzBYCxLVPxxugAiog80Z84cVKhQAZcuXUKTJk0KujolwuPHj3Hw4EF4eXkVdFWIiIiIijTGsvmPsSxRycBOViKiD1SqVCmkpqYWdDVKlMqVK0OhUBR0NYiIiIiKPMay+Y+xLFHJIH13FiIiIiIiIiIiIiLKDedkJSIiIiIiIiIiItIAR7ISERERERERERERaYCdrEREREREREREREQaKHEPvlIqlQgODoapqSkkEklBV4eIiIg0IIRAQkICnJycIJXm/7Xj1NRUpKen50nZ+vr6MDAwyJOyqWhjPEtERFR8MJ4tPkpcJ2twcDBcXV0LuhpERESkRS9evICLi0u+7jM1NRWl3UwQGp6RJ+U7ODjAz8+vRAWm9H4YzxIRERU/jGeLvhLXyWpqagoAcF8/GVJDWQHXhgDAySquoKtAbwjyciroKtBrJHnzfUcfSWGiLOgq0GuUqal4OWuB6vs9P6WnpyM0PAMBt9xhZqrdUQfxCUq41fFHenp6iQlK6f29+nt3mTcTUv59FAo6qRxRXNhI3BMLugr0mvQk/vYuTL6sea2gq0CvSUuSY1Wbk4xni4ES18n66pYqqaEMUqOS0ciFna5xakFXgd7AH2yFCztZCxepITtZC6OCvGXaxFQCE1Pt7l8JdthQ7lTxrIEBv7MLCSnfs4WO1EhR0FWg10iV7GQtTGQmegVdBcoB49mir8R1shIRERFpU4ZQIkNov0wiIiIiovzAeFY78n9GXSIiIiIiIiIiIqJihCNZiYiIiDSghIAS2r30r+3yiIiIiIhyw3hWOziSlYiIiIiIiIiIiEgDHMlKREREpAEllND2jFPaL5GIiIiIKGeMZ7WDI1mJiIiIiIiIiIiINMCRrEREREQayBACGUK7c05puzwiIiIiotwwntUOdrISERERaYAPCiAiIiKioozxrHZwugAiIiIiIiIiIiIiDXAkKxEREZEGlBDI4JV/IiIiIiqiGM9qB0eyEhEREREREREREWmAI1mJiIiINMA5rIiIiIioKGM8qx0cyUpERERERERERESkAY5kJSIiItJAhhDIENq9Uq/t8oiIiIiIcsN4Vjs4kpWIiIiIiIiIiIhIAxzJSkRERKQB5X+LtsskIiIiIsoPjGe1g52sRERERBrIgECGlif213Z5RERERES5YTyrHZwugIiIiIiIiIiIiEgDHMlKREREpIEMkblou0wiIiIiovzAeFY7OJKViIiIiIiIiIiISAMcyUpERESkAT4ogIiIiIiKMsaz2sGRrEREREREREREREQa4EhWIiIiIg0oIUEGJFovk4iIiIgoPzCe1Q52shIRERFpQCkyF22XSURERESUHxjPagenCyAiIiIiIiIiIiLSAEeyEhEREWkgIw9ur9J2eUREREREuWE8qx0cyUpERERERERERESkAY5kJSIiItIAr/wTERERUVHGeFY7OJKViIiIiIiIiIiISAMcyUpERESkAaWQQCm0e6Ve2+UREREREeWG8ax2cCQrERERERERERERkQY4kpWIiIhIA5zDioiIiIiKMsaz2sFOViIiIiINZECKDC3fHJSh1dKIiIiIiHLHeFY7OF0AERERERERERERkQY4kpWIiIhIAyIPHhQgSuCDAoiIiIioYDCe1Q6OZCUiIiIiIiIi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WZhnhWF5R0xEREREREREREQkIPZkJSIiIqoEjmFFREREROaMeVYY7MlKREREREREREREVAnsyUpERERUCRqIoRH4urXQ+yMiIiIiKgvzrDDYyEpERERUCWqtCGqBb4cSen9ERERERGVhnhWG5TUrExEREREREREREQmIPVmJiIiIKoETBRARERGROWOeFQZ7shIRERERERERERFVAnuyEhEREVWCViuGRivsdWutwPsjIiIiIioL86wwLO+IiYiIiIiIiIiIiATEnqxERERElaCGCGoIPBurwPsjIiIiIioL86ww2MhKREREVAkarfAD+2u0gu6OiIiIiKhMzLPC4HABRERERERERERERJXAnqxERERElaAxwUQBQu+PiIiIiKgszLPCsLwjJiIiIiIiIiIiIhIQe7ISERERVYIGImgEHthf6P0REREREZWFeVYY7MlKREREREREREREVAnsyUpERERUCWqtCGqBZ2MVen9ERERERGVhnhUGe7ISERERERERERERVQJ7shIRERFVAmdjJSIiIiJzxjwrDDayEhEREVWCBiJoBL4dyhInCiAiIiKiqsE8KwzLa1YmIiIiIiIiIiIiEhB7shIRERFVghYiwa/Uay3wyj8RERERVQ3mWWGwJysRERERERERERFRJbAnKxEREVElaLQmGMNK4P0REREREZWFeVYY7MlKREREREREREREVAnsyUpERERUCRqtGBqtsNethd4fEREREVFZmGeFwUZWIiIiokrg7VVEREREZM6YZ4Vhec3KRERERERERERERAJiT1YiIiKiStBABA0EvvIv8P6IiIiIiMrCPCsM9mQlIiIiMnOLFy9G27Zt4eDgAE9PTwwbNgw3b9584nYbNmxAo0aNYGNjg+DgYOzcufMp1JaIiIiIqEhNybJsZCUiIiKqhIdjWAn9MMahQ4cwZcoUnDhxAnv37kVhYSH69u2LnJycMrc5duwYRo8ejYkTJ+L8+fMYNmwYhg0bhitXrlT2T0JEREREZqSq82xNybIcLoCIiIiomsrMzDRYlslkkMlkJcrt2rXLYHnVqlXw9PTE2bNn0bVr11L3/c0336B///54++23AQALFizA3r17sWzZMixfvlygIyAiIiIiS1aePFtTsix7shIRERFVgimv/Pv7+8PJyUn/WLx4cbnqlJGRAQBwdXUts8zx48fRu3dvg3X9+vXD8ePHK/iXICIiIiJzVN3yrLlmWfZkJSIiIqqEitzeX559AkB0dDQcHR3160vrxVpiW40GM2fORKdOndCsWbMyyyUkJMDLy8tgnZeXFxISEipYayIiIiIyR9Upz5pzlmUjKxEREVE15ejoaBBKy2PKlCm4cuUKjhw5YqJaERERERGVj7F51pyzLBtZiYiIiCrBlFf+jTV16lTs2LED4eHhqFWr1mPLent7IzEx0WBdYmIivL29K/TaRERERGSeqkueNfcsyzFZiYiIiMycVqvF1KlTsXnzZhw4cACBgYFP3KZjx47Yv3+/wbq9e/eiY8eOpqomEREREVEJNSXLsidrFci9Gom0rcegvBcHdXo2fOeMhEP7xmWWj/9uMzLDLpZYL63lgcBvpgAA0nedhmL3aaiSFbrn/D3hNqIb5K0a6Msr9pxB5pHLyL8XD01eAer/MRdW9rbCHpwZSr0Qi3trzyPjZhLyU3PReuFAeHep+9htIjddQuSmy8hLyIStlwPqj2uDWv0bGZSJWH8B97deQV5iFqROtvDpXg9Br3WElUx32t1acRK3V5022Ma+tjO6//WisAdohtrU9sPE0DZo5usJTwc5Jq/dhv0375ZZvk+j+hjdpjkae3tAam2F20mpWHboBI7cva8vM7pNc4xu0xx+zrrbFG4npeKH8JMIvxMJAHCykWFaj47oXLcOfJwckZabi3037uKbg8eQnV9g0uOt7pS37yFzbxgKomOhzsiEx2svwa5F2WPjGGx7NwKJS5dD4usF3/dm6dfHfLAI6rT0EuXlXTvCbdSzBuu0Wi2Svv8Nyms3jXrtmqytnx9ea9sGzby84CWX4/WtW7H3TtnnSBs/X8zp0gX1XF1hay1BbFYm1ly8hBXnzhmU85LLMbdLF3QLDICttQT3FQrM2b0blxMTYS0WY3anTugeGAh/Zydk5efj6P0ofHb4MJJyckx9yNWaFoAGwl751xpZfsqUKVi9ejW2bt0KBwcH/VhUTk5OsLXVfdePHz8efn5++skGZsyYgW7duuHLL7/EoEGDsHbtWpw5cwY///yzkIdCNZTy5j1k7gpHYWQs1BlZcJ86DnatmpZd/sZdJH32S4n1fkvfh5WTg35ZlZ4BxYb/oLx8C9qCAlh7usH1fyMgC9T1Zon63zul7t95xAA4DuhWyaMyX5mXoxG34RRybiegMC0HDecNh2tog8duk3LgKuLWn4IyLh1W9jI4t6mL2q92h8RR95lx9e01yLoUXWI753Z10WjB8wCA6D+PIDXsBgqSsyCSiGFf3xv+L3eBQyNf4Q/SzChv3kPmf+EovB8LtSIL7tPKcY4sKeUc+broHIl961OoUxUlysh7doDruGFQpaQh7u3PSt2/++QxsGvbvGIHUwO09ffDKx3aoKm3F7wc5Ji0cSv23So7O/UNqo8xrULQ2MsDUisr3E5OxbeHj+NIRNHvC7FIhOldOmJIs8bwsLdHUnY2Nl26iu+PnjTY14yuoXihRTM4ymxwNiYW83btx/10hakO1Swob0Qg49/DKIiIg1qRBY+ZY2Hfpsljt9EWqqDYfADZRy9CnZEFK2cHOA/vAYdubQAAWQdPI/vweRTG6Ho2SgP94PJCH8jq+ev3oc7IRtraXVBevgNNrhKyoAC4vTQYEm930x2smajqPFtTsmyVNrIuXrwYmzZtwo0bN2Bra4vQ0FAsWbIEQUFBj91OoVDg/fffx6ZNm5CWloY6derg66+/xsCBA59SzStHk18IWYAXnHq1RNxn655Y3vN/A+DxYtGMaVqNBpGzlsMhtOhDSOLmCI8Xe0Pq4wZAi4yDFxG7ZA0CPn8DstqeutctKIR9i/qwb1EfKX/vf/RlLJZaqYJjPXf4D2yMsx/898Ty97dcxs2fjyP47Z5wbuwJxfVEXPrsICQOMnh10l1tid17Ezd+Po7mc3vCpZkPcqIVuLh4HyACmkztot+XPNAV7b8aql8WW7FzOQDYSSW4mZiMfy5cwfcjhzyxfNs6fjh2LwpLDxxFpjIfz7Zoih9HD8ULv67B9YRkAEBCZja+2HcE99MUEAEY1qIJvh81BMN/+ht3klPh6SCHp1yOJXsP405yKvycHPHR4F7wdJBjxoYdJj7i6k1bUABJLV/IQ9si+ec/yr2dJjcPqb+vhU1Qfaizsgye85k7HdBo9MsF8QlI+vYX2LcKKbGfrAOHAZGwX/jmzk4iwfXkZGy4chXLhz75HMktLMSfFy7gRnIKcgsL0cbPDwv79EZuYSHWXr4MAHCUybBh1EiciI7Gy5s2Iy03FwEuLshQKgEAttbWaOrlie9OnMD15GQ42djg/3p0xy/DhmLo36tNebhUDj/++CMAoHv37gbrV65ciQkTJgAAoqKiIBYXfc+EhoZi9erV+OCDD/Dee++hQYMG2LJly2MnGCBDlpplAUCbXwipvw/kndsg5fu/yr2dz6LZENva6JfFDvb6f2tycpG46EfYNKoHjzdfhpWDPQoTUyAu1inAb+n7BvvLu3QTaav+gV1ry/5/q1YWwr6uJzz7BePWx1ueWD7ragzufL4TdV7vCZcO9VCQko2Ib/fg3te7EPR/wwEAQR8Og0al1m+jylTi0qSVcO1S9P/b1s8VgVN6Q+bjDE2+CvGbT+PGu+vRYuVrkDjbCX6c5kR/jnRpg5RlRpwji8s+R7z/byqgLWq2KIxJQNIXv8GubTAAwMrVGX5fG54j2WEnkbkrHDbBj/9cqulsJRLcSErGxotX8cPz5fh94V8LRyPu48uwI8hU5uO55k3x0wvDMGLValxL1P2+eK1jW4xuFYK523fhdkoqgn28sHhQP2TlF+CPM+d1ZTq0xfg2LTBn+27EKDIws1soVo56Fv1//h0FavXjqlCjafILIK3tA3nX1kj+pnw5Mum7NVBn5MD91eGw9nKDWpFlcD4or0fAvmNzyBrWhkgiQeb2cCQsWQW/T6fD2tVJ13Fj6V+AlRU833wRYlsZMv47ioTFK+G3ZAbENlJTHS6VQ03JslXayHro0CFMmTIFbdu2hUqlwnvvvYe+ffvi2rVrsLe3L3WbgoIC9OnTB56enti4cSP8/Pxw//59ODs7P93KV4K8VQODHqZPYmVvA9gXfdFmnbwOTU4enHq0LNpnW8MvTY+xvaDYcxp5t2L0jayug3VdpnOvRFSm+jWOZ4c68OxQp9zlY3bfRO0hzeDbS/ce2vk6QXE9CXdXn9M3sqZfSYBLMx/49dG9L3Y+jvDt1RCK64bjhYitxLBxK/3/uiULvxOp72FaHot2HzJYXnrgKHoF1UPPhnX1jawHb90zKPP1gWMY3SYELWp5405yKm4np2J6scbU6PQMfH3gKD4f3h9WIhHUWmP7ldUctk0bwbZpoycXfETqmn9g37YlIBIj99IVg+esHOQGy3l7DsLaww2yBoa9yAuiY5G5Pxw+c6cj5t0Fxle+hjoUGYlDkZHlLn8tKRnXkpL1y7GZmejfoD7a1vLTN7K+0a4t4rOyMGf3Hn25mMxM/b+zCgowfuM/Bvv9aP8BbHlxLHwdHBD3SEO6JakOY1hpy/EZFRYWVmLdiBEjMGLECKNei4pYapYFANvmQbBtbnyjjZWjHGK70u+kytx5CNauznCbWPR/0trD1XD7Yr1eASDvwjXIGtWFtaeb0XWpSVza1oVL28ffiVVc1rU4yLyc4DOsNQDAxtsZXoNCELe+qAeetaPh+5QadgNWNhK4dS163917GvY8q/NaTyTvuozciGQ4tSx/vq6JTHGOWDka5qfMf8Ng7ekGWZDuvReJxSXOkdxzV2HXtjnENo+fzbumC78XifB7keUuv3BfmMHyV4eOonfDeujZoJ6+kbWVny/237qLsLu639exGZkY3KQRmvsWjQf5UruW+OHoSey/res1+/b2XTgx4w30CaqPf6/drNxBmTG7kCDYhejOj+QnlAWA3Iu3oLwRiVpfzYaVXHcBR+LhYlDGY/ILBsturw5HzumrUF69B3mXllAlpCL/TjR8P50OaS3djPRuLw9B9NRPkXP8Ihx6tK38gZmxqs6zNSXLVmkj665duwyWV61aBU9PT5w9exZdu3YtdZsVK1YgLS0Nx44dg0QiAQAEBASYuqrVSsb+87BrXhcST+dSn9eqNcg6fhVaZSFsgx4/UDAZT1OohlhqZbDOSmYNxfVEaFRqiK2t4NLMG7F7b0JxLRHOTbyQG5eBpBP3UaufYdDKiVFg3/AVEEut4dLUG41e7whbL8NgRMYTAbCXSaDIU5b6vFgkQv8mDWAnscb56Pgy9yOXyZCdX2DRDawVlX38NFQpaXCfMBoZ/z2+57xWpULOqXNw7NUVomI9VjUFBUhZuRquI4fBysm42dXp8Zp4eqCVry++PHpUv65XvXo4HBmJZYMHo51/LSRmZ+OvCxex7kEjbGkcZDJotFpk5uc/jWoTVTvMssaLn/cNtCo1pH5ecBraG7IGAfrnci9ch22zBkj+4W/k37wHKxdHOPToCHm3dqXuS52RhbxLN+A28YVSn6eyOTTxRfSqcKSfugvntnVRqMhF6uGbcH5MQ23S7ktw69YIVmX09tIUqpG08yKs7GWwq+thqqrXePH/V+wcGWZ4jhSnVamQc/w8HPp1MchPxRVExqAwKh6uLw4zXYUthAiAvVRq8PviXGwcRrYIRoCrMyLTFGjk6Y7W/r5YvE/XAcTf2QmecjmORUTpt8nOL8DFuAS09POx6EZWY+Wduw5ZoB8ydhxGztHzEMmksGvVGM7P94ZYKil1G21+IaBWQyzXXbTQqlQAAJGkqBlMJBZDZG0N5a37Ft/ISsKoVmOyZmRkAABcXV3LLLNt2zZ07NgRU6ZMwdatW+Hh4YExY8Zg7ty5sLKyKlE+Pz8f+cV+/GUW65VjjlRpmcg5fxs+M58r8Vz+/UTcf+9XaAtUENtI4TtnJGT+nlVQy5rNo11tRO+4Bu8udeHY0AMZN5MQ/e81aFUaFCiUsHG3h1+fIBRkKHFs6j+AVtfwXXtoM9Qf10a/H+cm3gh5tzfsazsjPzUHt1aexvGpm9D199GwtuOtCpUxMbQN7KRS/Hf1lsH6hp5uWDtxFGTW1sgtKMCUddtxNyWt1H242Npgctf2WHeu7AYmKl1hUjLSt+yE96zJEJXyufyo3ItXoclTwr5DG4P16Ru3QVY3AHYhln0LqJCOvvYqXG1tYS0W45vjx7H+clEP49pOThgbEoLfzp7FD6dOormXN+b16IFCtRqbrl0rsS+plRXmdO2C7TduILvAssctruor/1R9mCLLAjUjz1o5OcJl/HDIAvygVamRHX4KiZ/9DO8PpkBaxw8AoEpOQ9bBk3Ds1xlOg7qjICIG6au3AdZWkHdqXWKfOcfOQWwjg13rsse5pNI5NK2F+nMH4/aibdAWqKFVa+DSoR4CpvYptXz2jXjkRaag3psDSjyXfuIObi/eDk1+ISSucjRe/AIkTpY9VEBF6M+RQD9oCx+cI0senCMBfiXK5567Bk2uEvalnBsPZYefgbWvJ2QNLLtXsRBe6aD7fbHzelHD6E/HTkEulWL36y9DrdHASizGV2FHsO3qDQCAu73uPEjJyTXYV0pODtzLuNuBSleYlA7lrfsQSazhOXMs1Fm5SF21DZqsXLi/XrJtBADS1+6ClYsjbJrWAwBIfDxg5eaM9HV74DZxGMQyCTL/OwZ1WoZu6AELxzwrjGrTyKrRaDBz5kx06tTpseMn3Lt3DwcOHMDYsWOxc+dO3LlzB5MnT0ZhYSHmzZtXovzixYsxf/58U1b9qcoIuwgrexs4tCt5667U1w0BX7wBTW4+so5fQ8KyLfD/eAIbWgXW4KW2yE/LxdE3NgLQQupiB79+jXBvzTmIxLoPkdTzMbj711k0m9UNzo29kBubgavfHsbt30+jwUu6K2QGQxTUc4dzY28ceOF3xB24g9qDHz/oN5VtcLMgTOnWAZPXbkNabp7BcxEp6Ri2/C842MjQr0kDLBnWDy+u2lCiodVeKsVPY4bhbnIqloWdeJrVN3tajQYpK1bDeVBfSLzK14sl+9gp2DYJgrWzk35d7qWrUN68C593Z5qoppZp5Np1sJdK0cLHB3O6dMZ9hQLbb+h+LIhEIlxOTMQXR3S9W68lJaOhuzvGhDQv0chqLRZj2TODIQLw4T6O8c1QSoDpsixQM/KsxMcDEp+i7wVZ/TpQJaUhc88RuL86UrdSq4U0wA/Oz/UHAEjr+KEgNhHZYSdLbWTNPnwGdh1aQCQpvRcTlS33fgoif9yPWmND4dQ6EIVpOYj6NQwR3+5BvVklG1KTdl+CXaAH5I18Sjzn2KI2mv8wAYWZeUj67yJuL9yGZt++CIkzG5GMUeIcaVAHquQH58hrI0uUzwk/DZvghrB2Kf1uH01BIXJOXIDTkJ4mq7OleKZJI0zt3BGTNm41+H0xsEkQhjRrjFlbd+J2cioae3ng/d7dkZSdg82XS16gpkrQaiGCbkgAsZ1uKEXt2IFI/nYNXF8eUqI3q2LbIeScuAzv91/RPyeytoLnzDFI+WUTol//BBCLYdO0HmxDGhqM7WqpmGeFUW0aWadMmYIrV67gyJEjjy2n0Wjg6emJn3/+GVZWVmjdujViY2Px+eeflxpM3333XcyaVTSjdWZmJvz9/UuUMwdarRYZ+8/DsVuIQRf3h0QS6wcTXwE29XyhvBOL9H9PwvuNZ552VWs0K5k1Qt7pheC3uiM/LQ82bnaI2n4V1nYSSJ11tyLc/O0k/PoGofZgXc8Kx3ruUClVuPz5QdQf10bfGFucxEEGe39n5MYqnubh1CgDmzbEJ0P6YMaGf3G82G05DxVqNIhK1/UyuhqfhGBfb4zv0BLzdhQ1EtlLJfj1xeHIKSjElHXboSo2ORM9mVaZj4KoGKTFxCFt/ZYHK7WAVov7U+fCc9qrsA2qry+vSk2H8sZteLw23mA/ypt3oEpJRfRb/2ewPvmXPyCrHwjvNyeZ+lBqpIdjrN5MSYG7nR1mdOyob2RNzsnBndRUg/J301LRv4HhGOLWYjG+GzwYfg6OGLthg8X3YiV6yFRZFqhZebY4aV1/5N+O1C9bOTtA4mvYOUDi64m8s1fwKOWtCKgSkiF/Y7Spq1kjxa07AYemteA7or1uRV1AbCPBtdmr4f9SF0jdisb+VCsLkBp2HbXGdy51X1Y2Ulj5SWHj5wKHxr648PLPSNp1GX6jOjyNQ6nRpIGG58hDqpR0KK/dgfvUF8vcNu/MZWgLCmEf2sqENaz5BjUJwsJBfTB90w4cizT8fTG3Z1f8dPyU/rb/W8kp8HNyxOuh7bD58jV9D1Z3ezsk5+Tot3O3t8f1xKSndxA1gJWzA6xcHPUNrAAg8fUAtFqo0zIg9nbXr8/49zAydoTD+52XIa3tbbAfWaAf/BZNgyZXCa1KDStHe8TN+xGywJK9xYkqolo0sk6dOhU7duxAeHg4atV6/BiiPj4+kEgkBrdTNW7cGAkJCSgoKIBUanibtUwmg0xWMwb5zrsaicKENDj1avnkwgCg1UJbqDJtpSyY2NoKtp66ABq3/zY8QwP0jadqparEbOj6hlWtFrpRfQypcguQG5sBWV/LnvmzogY1C8KiIX0x659/ceh2+SZ3E4t0tzw/ZC+V4rcXh6NArcakNVstesbPihLZyODzwWyDdVmHjkF56w48Xh0PazfDW2izj5+GlYMcts0aG6x36tsD8k7tDdbFf/IlXJ4fAttg9vQWglgkMvj/fzY2DnVdDCcQCHRxQWxW0W3JDxtYA1ycMXb9BiiUpY97bGl45Z9MmWWBmpVniyuMijOYpEdWvw5UCSkGZVQJybBycy6xbc7h05DW8YO0tq+pq1kjaZQqwKqMrArDHl2p4TehKVTDvVf5hmXQagENf4MI4tFz5KHsI2cgdpTDNqTsiUmzw0/DtmXjEpNlUfkNbhKExYP6YeaWf/WTWxVnY21dYrIetUYD8YPfetGKDCRlZ6NjQG1cfzABqVwqRYivN1afu2j6A6hBbBrWRu6pK9Ao8/WTuKkSUgCRCFauRXfDZewIh2JrGLzmToCsbtnfxw8bawsTUlBwLxYuz/c27QGYAeZZYVRpI6tWq8W0adOwefNmhIWFITAw8InbdOrUCatXr4ZGo4FYLAYA3Lp1Cz4+PqWG0upIk5ePgoSi25MLkxRQRsTDSm4LiYczkv/aB1VaJnymP2uwXcb+87Bp4AdZba8S+0z+ax/sW9aHxMMJmrwCZB6+jNyrkaj14Th9GVV6FlSKbP1r599PgthWCom7E6wcLHfcJFVuAXJiM/TLufGZyLidDKmjDWy9HHDjp2NQpuSgxfu6Maqyo9OhuJ4El8ZeKMzKx731F5AVkYqQ94o+mL1CAxCx/gKcGuqGAciJVeDWbyfhFRoAkZXu/+2174/Aq1MgbL0coEzJwe2VpyASi+Dbu+HT/QNUQ3YSCWq7OuuXa7k4opGXBzLylIjPzMKsXp3g5SDH3C27AeiGCPh0WD8s2hWGizEJ+vGPlCoVsvN1vexm9eqE8NuRiM/Igr1MgsHBjdAuwB8T/9oEQNfAumLcs7CVWOPtdbsgl0khl+k+U9Jy86Cx4FtINMp8qJKLfvSqUtNQEB0Lsb0drF1dkL5lJ9SKDLhPGA2RWAypr+EVYysHua6n/SPrtRoNsk+chn2HNiXGbrVycix1sitrF2dI3Mse69BS2EkkqFNsJnJ/Ryc09vBAhlKJuKwsvN25M7zkcrz1YFKecS1CEJuZhXtpus//drVq4ZU2rfH7+fP6faw4exYbRo/C5Hbt8O+tWwjx9sao5s3x/p69AHQNrN8/MxhNvbzwyubNEItEcLfTnWsZSiUK2eubLJClZlngwXdDUlHvd1VKGgqi4nTfDW7OUGzcBVV6hn4ogMw9R2Dt4QKJrxe0hSrkhJ+G8vpdeM6eqN+HQ9/OSFz0IzJ2HIRd22AURMQg+9ApuL5kmIk1eUrknr4M55GDns7BmgF1XgGUcen65fwEBXLuJsLawRYyT0dErTiEgpRs1J+j+5s5d6iHiK93I2H7eTi3CURhWjYilx+AfZAPpG6GjXrJuy7DNbQBJI6GM96rlQWIXX0CLh3rQ+pqj8LMPCRuO4+ClCy4dSm78c9SlDhHkh85RzbsgkrxyDni7gKJ3yPnyFsTDfar1WiQc+Qs5J1alTn2fWFiCvJvRcLjzQkmOz5zYyeRoI6Ls365lpMTGnt6QKHU/b6Y3b0zvBzkmLNdl52eadIIS57ph0/2huFiXHypvy8O3rmHSaHtEZeRhdspqWji5Yn/tW+NjRev6l/n91PnMblTe0SmpyNGkYmZXUORlJWNvTfvPL2Dr4Y0ynwUJhY/P9KRfz8OVvZ2sHZ3Rvq63VClZ8LjDd2s8fahIVBsCUPKz5vg/FwvaLJykLZmF+TdWuuHA8jYHo70f/bBY/ILsHZ3gerBOKtiG6m+YTbn5GWIHexh7e6MwugEpP75L+zaNIFtcAMQCaFKG1mnTJmC1atXY+vWrXBwcEBCQgIAwMnJCba2ui/x8ePHw8/PD4sXLwYATJo0CcuWLcOMGTMwbdo03L59G4sWLcL06dOr7DiMpbwbh+h5v+uXk1fpGoocu4fAZ9pwqNKzUJiSYbCNOkeJrBPX4Pm/kmMkAYA6Iwfx322GOj0bYjsZZHW8UOvDcbAPqacvo9hzBqnrD+mXoz9cCQDwnjIUTj3L2Tu2Bsq4mYQTM7bol68v093mV6t/I4S81xv5qbnISywaCFur1iJi3XlcjlJAbC2GW0s/hP7wPOx8ihqE6o9vC4hEuPnrSSiTsyF1toVXaCCCXi26bUqZnIPz83ejMFMJqbMtXIJ9Ebp8BGTOhgHWEjXz9cKfE0bol9/r1x0AsOnCVby7dQ885PbwKXZV/4XWwZBYWWHeoF6YN6iXfv3D8gDgZm+HJcP7wVNuj6z8AtxMTMHEvzbh2D3dbT9NfTzRopZunLF90/9nUJ+eX/+G2Azzm2REKAVRMUj8erl+Of2f7QAA+w6t4T5+FNSZmVClK4zer/LGbajTFJB35Eyexgr28sKakUWzaX/QozsAYOOVq5izezc87O3h61h0johEIrzdpTP8nZyg1mhwX6HAZ4cPY/XFS/oylxITMWnbNrzduQumdeyA6IwMLDgYhq03dJM3eMnl6FNfN9TDzvGGwzuMXrceJ2NiTHS01Z9WK4JW4Cv1Qu+PTMNSsyygm7U86bNf9MuKtf8CAOw7tYLbxBegzsiEOk1RtIFaDcW6nVCnZ0AklULi7w3Pt16BTeOirCoL9IfHlHFQ/LMLGdv2w9rDBS6jn4F9R8OcmntS1wPMvn0Lkx2fucm+lYDrc9bql+//dBAA4N6nGeq/NRAFaTnITy7KMp59g6HJK0DitnOI+uUgrOxlcGpRB7UndjPYb150KrKuxqDRohfwKJFYjLyYVCQvuAJVZh6sHWwgb+iDpl+OgV2Ae4nylqYgMgZJS8o4R155cI6kKoo2UJVyjrxteI4AgPLaHahTFbDvYjhhaHE5h888mPCHDUcPNfPxwt8vFv0/fr9PdwDApktXMXfHbnjKDbPTyJa63xfz+/fC/P7Ffl88KA8AH+85gJldO+Gj/r3gZmeHpOxsrD1/CcsOF83p8POJ07CVSvDJgD5wtJHhTHQs/rduk8XfMZd/LxaJi37TL6f/vRMAYN+lJTxefx4qRRZUxdpExDYyeL3zMtL+2I74D3+AWG4H+/bN4DyiaLK+zP0nAZUayd+uMXgtp+E94fKc7j1UK7KQ9vd/UGdkw8rZAfLOLeA8vIcpD9VsMM8KQ6R9tH/703xxUel/8JUrV2LChAkAgO7duyMgIACrVq3SP3/8+HG8+eabuHDhAvz8/DBx4sTHzshaXGZmJpycnFD/z3dgVWw8D6o69T1SnlyInqrbB+pWdRWomHxPyw5h1Y04V1zVVaBiNEol7n/wPjIyMuDoWPrkH6byMFN02joV1vbC3sqtysnH0aHLquS4qPyqIssCRf/3an3/EcS2zLPVga9f2pML0VMVF8c7X6oTaRwnqKtOVHU45FN1oslVIuq1BcyzNUCVDxfwJGFhYSXWdezYESdOcMZvIiIiqnoaiKApZaztyu6Tqj9mWSIiIqoJmGeFUS0mviIiIiIyV5wogIiIiIjMGfOsMHjPIxEREREREREREVElsCcrERERUSVwogAiIiIiMmfMs8JgT1YiIiIiIiIiIiKiSmBPViIiIqJK4BhWRERERGTOmGeFwZ6sRERERERERERERJXAnqxERERElcAxrIiIiIjInDHPCoM9WYmIiIiIiIiIiIgqgT1ZiYiIiCpBa4IxrCzxyj8RERERVQ3mWWGwkZWIiIioErQAtFrh90lERERE9DQwzwqDwwUQERERERERERERVQJ7shIRERFVggYiiCDs7VAagfdHRERERFQW5llhsCcrERERERERERERUSWwJysRERFRJWi1IsEH9rfEiQKIiIiIqGowzwqDPVmJiIiIiIiIiIiIKoE9WYmIiIgqQaMVQSTwlXqNBV75JyIiIqKqwTwrDDayEhEREVWCVqt7CL1PIiIiIqKngXlWGBwugIiIiIiIiIiIiKgS2JOViIiIqBI4UQARERERmTPmWWFUqJH19u3bOHjwIJKSkqDRaAye+7//+z9BKkZEREREZCrMs0REREQkJKMbWX/55RdMmjQJ7u7u8Pb2hkhU1DItEokYSomIiMii8Mq/+WGeJSIiIirCPCsMoxtZP/nkEyxcuBBz5841RX2IiIiIiEyKeZaIiIiIhGZ0I2t6ejpGjBhhiroQERERmR2NVgSRwFfqNRZ45f9pYp4lIiIiKsI8KwyxsRuMGDECe/bsMUVdiIiIiMyOVmuaB5kO8ywRERFREeZZYRjdk7V+/fr48MMPceLECQQHB0MikRg8P336dMEqR0REREQkNOZZIiIiIhKa0Y2sP//8M+RyOQ4dOoRDhw4ZPCcSiRhKiYiIyKLortQLPVGAoLujRzDPEhERERVhnhWG0Y2sERERpqgHEREREdFTwTxLREREREIzupG1OO2DZmmRyPIGsyUiIiICdFf9hb/yz2z1tDDPEhERkaVjnhWG0RNfAcAff/yB4OBg2NrawtbWFs2bN8eff/4pdN2IiIiIiEyCeZaIiIiIhGR0T9avvvoKH374IaZOnYpOnToBAI4cOYI33ngDKSkpePPNNwWvJBEREVF1pX3wEHqfZDrMs0RERERFmGeFYXQj63fffYcff/wR48eP168bMmQImjZtio8++oihlIiIiIiqNeZZIiIiIhKa0Y2s8fHxCA0NLbE+NDQU8fHxglSKiIiIyFxwDCvzwzxLREREVIR5VhhGj8lav359rF+/vsT6devWoUGDBoJUioiIiMhsaE30IJNhniUiIiIqhnlWEEb3ZJ0/fz5GjhyJ8PBw/RhWR48exf79+0sNq0RERERE1QnzLBEREREJzehG1ueeew4nT57E0qVLsWXLFgBA48aNcerUKbRs2VLo+hERERFVbya4vQoWeHvV08Q8S0RERFQM86wgjG5kBYDWrVvjr7/+ErouRERERERPBfMsEREREQmpXI2smZmZcHR01P/7cR6WIyIiIrIEWq3uIfQ+SVjMs0RERESlY54VRrkaWV1cXBAfHw9PT084OztDJCrZ5Ver1UIkEkGtVgteSSIiIiKiymCeJSIiIiJTKlcj64EDB+Dq6goAOHjwoEkrRERERGROtCYYw0rwMbGIeZaIiIioDMyzwihXI2u3bt30/w4MDIS/v3+Jq/9arRbR0dHC1s6ENNcdIbKxqepqEICbYoeqrgI9wkZR1TUgA1qrqq4BFSN9/F3G9JSp86tBeNOKhB/Y3wJDqanVxDwrjZPAykZS1dUgAHH57lVdBXqEVQ7zU3XicL+qa0DFiW+zLaQ6URcAUVVdCeZZQYiN3SAwMBDJyckl1qelpSEwMFCQShERERFR9VdQUICbN29CpVJVdVWMwjxLRERERICwedboRtaHY1U9Kjs7GzbsGUpEREQW5uFEAUI/qrPc3FxMnDgRdnZ2aNq0KaKidP0vpk2bhk8//bSKa/dkzLNERERERZhnhcmz5RouAABmzZoFABCJRPjwww9hZ2enf06tVuPkyZNo0aJFhSpBRERERObj3XffxcWLFxEWFob+/fvr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UttFoBsYiktxYvAXjGcbgFqfLuB2duzYYbGcmJhYPYUhIiIiukv2OByKGMsSERFRw8F41nqcgIKIiIiIiIiIiIjICvY9MQsRERGRtQThrt5se9s8iYiIiIhqAuNZm2BPViIiIiIiIiIiIiIrsCcrERERkRVEgu3nsOKcWERERERUUxjP2gZ7shIRERERERERERFZgT1ZiYiIiKwhXPvYOk8iIiIioprAeNYm2MhKREREZAWR0fSxdZ5ERERERDWB8axtcLoAIiIiIiIiIiIiIiuwJysRERGRNTi8ioiIiIjqM8azNsGerERERERERERERERWYE9WIiIiIiuIBNPH1nkSEREREdUExrO2wZ6sRERERERERERERFZgT1YiIiIiawiC6WPrPImIiIiIagLjWZtgIysRERGRFTi8ioiIiIjqM8aztsHpAoiIiIiIiIiIiIiswJ6sRERERNYQrn1snScRERERUU1gPGsT7MlKREREREREREREZAX2ZCUiIiKyAuewIiIiIqL6jPGsbbAnKxEREREREREREZEV2JOViIiIyBqCYPrYOk8iIiIioprAeNYm2JOViIiIiIiIiIiIyArsyUpERERkBc5hRURERET1GeNZ22AjKxEREZE1hGsfW+dJRERERFQTGM/aBKcLICIiIiIiIiIiIrICe7ISERERWYHDq4iIiIioPmM8axvsyUpERERERERERERkBfZkJSIiIrKGUTB9bJ0nEREREVFNYDxrE+zJSkRERERERERERGQF9mQlIiIisgbfxkpERERE9RnjWZtgIysRERGRFUSohhcF2DY7IiIiIqJKMZ61DU4XQERERERERERERGQF9mQlIiIisoYgmD62zpOIiIiIqCYwnrUJ9mQlIiIiIiIiIiIisgJ7shIRERFZQSRUwxxW9vfgn4iIiIhqCeNZ22BPViIiIiIiIiIiIiIrsCcrERERkTWEax9b50lEREREVBMYz9oEe7ISERERERERERERWYE9WYmIiIisIBIEiGz89lRb50dEREREVBnGs7Zht42sKnkpHBS1XQoCgOHd/6vtItBNxrtfrO0i0A1a7Bta20WgG7zecUttF4FuoCnU493aLoTx2sfWeRLdhlbvAInebsP5OqVEL63tItBNNradX9tFoBtsKwmp7SLQDa5o3Wu7CHQDTaEOJ2q7EIxnbYLTBRAR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jmf/u1YHX/LGEYt9er3SGH3GNIFYLELq+QIcXnsVmnwd1N4KNOniiT5jm8BBZmq4VbnJMOKH9tj89Xn89PwBGPVGeDdW45lvYuDX7NZTDxBVhUgQam+ShNGjR2PJkiVYs2YNIiLKhp24uLjA0dHUc2zYsGEICAjA9OnTAQB79+5Fjx49MGPGDDz44INYunQppk2bhsOHD99y/qvr8vPz4eLignYrX+d8pHXEoMCjtV0Eusl494u1XQS6QYt97MVZl4xqtqe2i0A30BTq8W6HHcjLy4Ozc80Gx9djij7Bo+Egtm1MoTeWYsul72rluKjqaiOWBcr+70UsmcT5SOsIN2VJbReBbrIs8tfaLgLdYFtJSG0XgW5wRXv7d1hQzdEU6jC10xbGsw1Arb7O7vvvv0deXh569uwJPz8/82fZsrKnsJcuXUJKSop5uUuXLliyZAl+/PFHtGrVCitWrMDq1aurHJQSEREREdkCY1kiIiIiuq7Wpwu4nR07dpRb98QTT+CJJ+x7nh8iIiKqI/g2VrvFWJaIiIgaBMazNmHfsy0TERERWYsvCiAiIiKi+ozxrE3U6nQBRERERERERERERPUde7ISERERWYPDq4iIiIioPmM8axPsyUpERERERERERERkBfZkJSIiIrKGgGp48m/b7IiIiIiIKsV41ibYk5WIiIiIiIiIiIjICuzJSkRERGQNzmFFRERERPUZ41mbYE9WIiIiIiIiIiIiIiuwJysRERGRNYxGAMZqyJOIiIiIqAYwnrUJNrISERERWYPDq4iIiIioPmM8axOcLoCIiIiIiIiIiIjICuzJSkRERGQNPvknIiIiovqM8axNsCcrERERERERERERkRXYk5WIiIjIGkYBgI2f1Bvt78k/EREREdUSxrM2wZ6sRERERERERERERFZgT1YiIiIiKwiCEYJgtHmeREREREQ1gfGsbbCRlYiIiMgagmD74VB2+KIAIiIiIqoljGdtgtMFEBEREREREREREVmBPVmJiIiIrCFUw4sC7PDJPxERERHVEsazNsGerERERERERERERERWYE9WIiIiImsYjYDIxhP72+GLAoiIiIioljCetQn2ZCUiIiIiIiIiIiKyAnuyEhEREVmDc1gRERERUX3GeNYm2JOViIiIiIiIiIiIyArsyUpERERkBcFohGDjOawEO5zDioiIiIhq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hBkzZtTC0RJRfcRYtvYxnq1bGM/WLYxnaxdjWWpoRIIgCLbpE0tERERERERERERkfzgnKxEREREREREREZEV2MhKREREREREREREZAU2shIRERERERERERFZgY2sRERERERERERERFZgIysRERERERERERGRFdjISkRERERERERERGQFNrISERERERERERERWYGNrERERERERERERERWYCMrEdlMYmIiRCIRjh49WttFMTt79iw6deoEhUKB1q1b13Zx7opIJMLq1atruxhEREREDR7j2erBeJaI7AEbWYkakBEjRkAkEmHGjBkW61evXg2RSFRLpapdU6ZMgUqlwrlz57B169YK02RkZOCVV15BcHAw5HI5fH190a9fP+zZs6eGS0tERERk3xjPlsd4loiofmAjK1EDo1AoMHPmTOTk5NR2UWxGq9Xe9b7x8fG45557EBISAg8PjwrTDBo0CEeOHMHixYtx/vx5rF27Fj179kRWVtZdfy8RERER3R3Gs5YYzxIR1Q9sZCVqYPr06QNfX19Mnz690jQffvhhuaFGX375JUJDQ83LI0aMwMCBAzFt2jT4+PjA1dUVU6dOhV6vx8SJE+Hu7o7AwEAsXLiwXP5nz55Fly5doFAoEBUVhZ07d1psP3nyJO6//344OTnBx8cHzz77LDIzM83be/bsibFjx2LcuHHw9PREv379KjwOo9GIqVOnIjAwEHK5HK1bt8bGjRvN20UiEWJjYzF16lSIRCJ8+OGH5fLIzc3Fv//+i5kzZ+Lee+9FSEgIOnTogMmTJ+ORRx4xp5s9ezaio6OhUqkQFBSE0aNHo7Cw0Lx90aJFcHV1xd9//42IiAgolUo8/vjjKC4uxuLFixEaGgo3Nze89tprMBgM5v1CQ0Px8ccf46mnnoJKpUJAQADmzp1b4fFed/nyZQwePBiurq5wd3fHgAEDkJiYaN6+Y8cOdOjQASqVCq6urujatSuSkpJumScRERFRXcF4lvEs41kiqo/YyErUwEgkEkybNg3ffPMNrly5YlVe27ZtQ3JyMnbt2oXZs2djypQpeOihh+Dm5ob//vsPL7/8Ml566aVy3zNx4kRMmDABR44cQefOnfHwww+bn6Ln5uaiV69eaNOmDQ4dOoSNGzciLS0NgwcPtshj8eLFkMlk2LNnD3744YcKy/fVV1/hiy++wOeff47jx4+jX79+eOSRR3DhwgUAQEpKClq0aIEJEyYgJSUFb775Zrk8nJyc4OTkhNWrV6O0tLTS30IsFuPrr7/GqVOnsHjxYmzbtg1vvfWWRZri4mJ8/fXXWLp0KTZu3IgdO3bg0Ucfxfr167F+/Xr8+uuvmDdvHlasWGGx32effYZWrVrhyJEjePvtt/H6669j8+bNFZZDp9OhX79+UKvV+Pfff7Fnzx44OTmhf//+0Gq10Ov1GDhwIHr06IHjx49j3759ePHFF+12eB0RERHVP4xnGc8yniWiekkgogZj+PDhwoABAwRBEIROnToJzz33nCAIgrBq1Srhxj/3KVOmCK1atbLYd86cOUJISIhFXiEhIYLBYDCvi4iIELp162Ze1uv1gkqlEv744w9BEAQhISFBACDMmDHDnEan0wmBgYHCzJkzBUEQhI8//ljo27evxXdfvnxZACCcO3dOEARB6NGjh9CmTZvbHq+/v7/w6aefWqxr3769MHr0aPNyq1athClTptwynxUrVghubm6CQqEQunTpIkyePFk4duzYLfdZvny54OHhYV5euHChAECIi4szr3vppZcEpVIpFBQUmNf169dPeOmll8zLISEhQv/+/S3yHjJkiHD//feblwEIq1atEgRBEH799VchIiJCMBqN5u2lpaWCo6OjsGnTJiErK0sAIOzYseOW5SciIiKqixjPMp5lPEtE9RV7shI1UDNnzsTixYtx5syZu86jRYsWEIvLLhM+Pj6Ijo42L0skEnh4eCA9Pd1iv86dO5v/7eDggHbt2pnLcezYMWzfvt38xN3JyQnNmjUDYJpv6rqYmJhbli0/Px/Jycno2rWrxfquXbve8TEPGjQIycnJWLt2Lfr3748dO3agbdu2WLRokTnNli1b0Lt3bwQEBECtVuPZZ59FVlYWiouLzWmUSiUaNWpkXvbx8UFoaCicnJws1t3q97q+XNkxHDt2DHFxcVCr1ebfz93dHRqNBvHx8XB3d8eIESPQr18/PPzww/jqq6+QkpJyR78HERERUV3AeLbqGM8SEdU+NrISNVDdu3dHv379MHny5HLbxGIxBEGwWKfT6cqlk0qlFssikajCdUajscrlKiwsxMMPP4yjR49afC5cuIDu3bub06lUqirnaQsKhQL33Xcf3n//fezduxcjRozAlClTAACJiYl46KGH0LJlS/z111+IjY01zzN140sMquP3ullhYSFiYmLK/X7nz5/H008/DQBYuHAh9u3bhy5dumDZsmVo2rQp9u/ff9ffSURERFQbGM/eGcazRES1i42sRA3YjBkzsG7dOuzbt89ivZeXF1JTUy0C06NHj9rse28MgPR6PWJjYxEZGQkAaNu2LU6dOoXQ0FA0btzY4nMngaizszP8/f2xZ88ei/V79uxB8+bNrT6G5s2bo6ioCAAQGxsLo9GIL774Ap06dULTpk2RnJxs9Xdcd3PAuH//fvPvdbO2bdviwoUL8Pb2Lvf7ubi4mNO1adMGkydPxt69exEVFYUlS5bYrLxERERENYXx7N1jPEtEVLPYyErUgEVHR2Po0KH4+uuvLdb37NkTGRkZmDVrFuLj4zF37lxs2LDBZt87d+5crFq1CmfPnsWYMWOQk5OD5557DgAwZswYZGdn46mnnsLBgwcRHx+PTZs2YeTIkRZvKa2KiRMnYubMmVi2bBnOnTuHt99+G0ePHsXrr79e5TyysrLQq1cv/Pbbbzh+/DgSEhKwfPlyzJo1CwMGDAAANG7cGDqdDt988w0uXryIX3/9tdKXF9yNPXv2YNasWTh//jzmzp2L5cuXV3oMQ4cOhaenJwYMGIB///0XCQkJ2LFjB1577TVcuXIFCQkJmDx5Mvbt24ekpCT8888/uHDhQqVBLhEREVFdxnj29hjPEhHVDWxkJWrgpk6dWm44T2RkJL777jvMnTsXrVq1woEDByp8U+ndmjFjBmbMmIFWrVph9+7dWLt2LTw9PQHA/LTeYDCgb9++iI6Oxrhx4+Dq6moxX1ZVvPbaaxg/fjwmTJiA6OhobNy4EWvXrkWTJk2qnIeTkxM6duyIOXPmoHv37oiKisL777+PUaNG4dtvvwUAtGrVCrNnz8bMmTMRFRWF33//HdOnT7+jst7KhAkTcOjQIbRp0waffPIJZs+ejX79+lWYVqlUYteuXQgODsZjjz2GyMhIPP/889BoNHB2doZSqcTZs2cxaNAgNG3aFC+++CLGjBmDl156yWblJSIiIqpJjGdvjfEsEVHdIBJunsiGiIhqTGhoKMaNG4dx48bVdlGIiIiIiO4Y41kiIhP2ZCUiIiIiIiIiIiKyAhtZiYiIiIiIiIiIiKzA6QKIiIiIiIiIiIiIrMCerERERERERERERERWYCMrERERERERERERkRXYyEpERERERERERERkBTayEhEREREREREREVmBjaxEREREREREREREVmAjKxEREREREREREZEV2MhKREREREREREREZAU2shIRERERERERERFZ4f9oIIWcZ4Dq6QAAAABJRU5ErkJggg==",
+      "text/plain": [
+       "<Figure size 1400x1200 with 8 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import numpy as np\n",
+    "import matplotlib.pyplot as plt\n",
+    "import scipy.linalg\n",
+    "from tqdm import tqdm  # progress bar\n",
+    "from scipy.special import kv, gamma\n",
+    "\n",
+    "\n",
+    "#Utiliser numdifftools\n",
+    "\n",
+    "# -------------------------------\n",
+    "# Define Kernel Classes\n",
+    "# -------------------------------\n",
+    "\n",
+    "class GaussianKernel:\n",
+    "    def __init__(self, sigma=1):\n",
+    "        self.sigma = sigma\n",
+    "\n",
+    "    def fourier(self, x):\n",
+    "        return np.exp(-2 * (x * self.sigma * np.pi)**2)\n",
+    "\n",
+    "    def compute_dsp(self, x):\n",
+    "        G_f = self.fourier(x)\n",
+    "        return np.abs(G_f)**2\n",
+    "\n",
+    "class LorentzKernel:\n",
+    "    def __init__(self, gamma=1):\n",
+    "        self.gamma = gamma\n",
+    "\n",
+    "    def fourier(self, x):\n",
+    "        return np.exp(-self.gamma * np.abs(x))\n",
+    "\n",
+    "class UniformKernel:\n",
+    "    def __init__(self, sigma=1):\n",
+    "        self.sigma = sigma  # here σ defines the half-width of the support [-σ, σ]\n",
+    "\n",
+    "    def fourier(self, x):\n",
+    "        # Fourier transform of a uniform law on [-σ, σ]\n",
+    "        return np.sinc(2 * self.sigma * x)  # np.sinc(x)= sin(Ï€x)/(Ï€x)\n",
+    "\n",
+    "class StudentKernel:\n",
+    "    def __init__(self, sigma=1, nu=3):\n",
+    "        self.sigma = sigma\n",
+    "        self.nu = nu  # degrees of freedom\n",
+    "\n",
+    "    def fourier(self, x):\n",
+    "        x = np.array(x)\n",
+    "        result = np.ones_like(x, dtype=float)\n",
+    "        nonzero = (x != 0)\n",
+    "        z = np.sqrt(self.nu) * self.sigma * np.abs(x[nonzero])\n",
+    "        result[nonzero] = (z**(self.nu/2) * kv(self.nu/2, z)) / (2**(self.nu/2 - 1) * gamma(self.nu/2))\n",
+    "        return result\n",
+    "\n",
+    "# -------------------------------\n",
+    "# Data Generation (Multiple Spikes)\n",
+    "# -------------------------------\n",
+    "def generate_data_multi(n, means, scale, weights, distribution='gaussian', kernel=None):\n",
+    "    \"\"\"\n",
+    "    Generate n samples from a mixture with r components,\n",
+    "    where each component i has mean means[i] and weight weights[i].\n",
+    "    The parameter 'distribution' can be 'gaussian', 'lorentz', 'uniform' or 'student'.\n",
+    "    For 'student', the degrees of freedom is taken from kernel.nu.\n",
+    "    This version works even when n == 1.\n",
+    "    \"\"\"\n",
+    "    r = len(means)\n",
+    "    # Special case: n == 1\n",
+    "    if n == 1:\n",
+    "        comp = np.random.choice(r, p=weights)\n",
+    "        if distribution == 'gaussian':\n",
+    "            return np.array([np.random.normal(means[comp], scale)])\n",
+    "        elif distribution == 'lorentz':\n",
+    "            sample = np.random.standard_cauchy() * scale + means[comp]\n",
+    "            return np.array([np.clip(sample, -50, 50)])\n",
+    "        elif distribution == 'uniform':\n",
+    "            return np.array([np.random.uniform(means[comp] - scale, means[comp] + scale)])\n",
+    "        elif distribution == 'student':\n",
+    "            df = kernel.nu if (kernel is not None and hasattr(kernel, 'nu')) else 3\n",
+    "            return np.array([np.random.standard_t(df) * scale + means[comp]])\n",
+    "        else:\n",
+    "            raise ValueError(\"Unknown distribution type\")\n",
+    "\n",
+    "    # For n > 1: use a multinomial draw to exactly split n samples.\n",
+    "    counts = np.random.multinomial(n, weights)\n",
+    "    data = []\n",
+    "    for i in range(r):\n",
+    "        n_i = counts[i]\n",
+    "        if distribution == 'gaussian':\n",
+    "            samples = np.random.normal(means[i], scale, n_i)\n",
+    "        elif distribution == 'lorentz':\n",
+    "            samples = np.random.standard_cauchy(n_i) * scale + means[i]\n",
+    "            samples = np.clip(samples, -50, 50)\n",
+    "        elif distribution == 'uniform':\n",
+    "            samples = np.random.uniform(means[i] - scale, means[i] + scale, n_i)\n",
+    "        elif distribution == 'student':\n",
+    "            df = kernel.nu if (kernel is not None and hasattr(kernel, 'nu')) else 3\n",
+    "            samples = np.random.standard_t(df, n_i) * scale + means[i]\n",
+    "        else:\n",
+    "            raise ValueError(\"Unknown distribution type\")\n",
+    "        data.append(samples)\n",
+    "    data = np.concatenate(data)\n",
+    "    np.random.shuffle(data)\n",
+    "    return data\n",
+    "\n",
+    "# -------------------------------\n",
+    "# Empirical Characteristic Function (FCE)\n",
+    "# -------------------------------\n",
+    "def FCE(data, freqs):\n",
+    "    # Compute the empirical characteristic function at frequencies in freqs.\n",
+    "    phi = np.array([np.mean(np.exp(-2j * np.pi * f * data)) for f in freqs])\n",
+    "    return phi.reshape(-1, 1)\n",
+    "\n",
+    "# -------------------------------\n",
+    "# Uniform Frequency Sampling\n",
+    "# -------------------------------\n",
+    "def sample_uniform_frequencies(n):\n",
+    "    N = 2 * n + 1\n",
+    "    return np.arange(-n, n + 1).reshape(-1, 1) / N\n",
+    "\n",
+    "# -------------------------------\n",
+    "# ESPRIT Algorithm\n",
+    "#theta_est = estimator(Y, r, my_fourier, baseline_freqs, freqs)\n",
+    "# -------------------------------\n",
+    "def ESPRIT_(x, r, my_fourier, freqs1, true_freqs):\n",
+    "    x_vec = x.flatten()\n",
+    "    N = len(x_vec)\n",
+    "    L = N // 2\n",
+    "    M = N - L + 1\n",
+    "\n",
+    "    X = np.zeros((L, M), dtype=complex)\n",
+    "    for i in range(L):\n",
+    "        X[i, :] = x_vec[i:i+M]\n",
+    "\n",
+    "    U, s, Vh = np.linalg.svd(X, full_matrices=False)\n",
+    "    U_r = U[:, :r]\n",
+    "\n",
+    "    U1 = U_r[:-1, :]\n",
+    "    U2 = U_r[1:, :]\n",
+    "\n",
+    "    Psi = np.linalg.pinv(U1) @ U2\n",
+    "    eigvals, _ = np.linalg.eig(Psi)\n",
+    "\n",
+    "    f_est = N * np.angle(eigvals) / (2 * np.pi)\n",
+    "    t0_est = -np.sort(f_est)\n",
+    "\n",
+    "    V0 = my_fourier(true_freqs).reshape(-1, 1) * np.exp(2j * np.pi * np.outer(freqs1.flatten(), t0_est))\n",
+    "    a0 = np.linalg.lstsq(V0, x_vec, rcond=None)[0]\n",
+    "\n",
+    "    return np.concatenate((a0, t0_est))\n",
+    "\n",
+    "# -------------------------------\n",
+    "# Error Metric\n",
+    "# -------------------------------\n",
+    "def S_err(theta_est, r, theta_star):\n",
+    "    # Assumes theta_est and theta_star are concatenations: [amplitudes, centroids]\n",
+    "    centroids_est = np.sort(theta_est[r:])\n",
+    "    centroids_true = np.sort(theta_star[r:])\n",
+    "    return np.linalg.norm(centroids_est - centroids_true)\n",
+    "\n",
+    "# -------------------------------\n",
+    "# Batch (Offline) Preconditioned Gradient Descent\n",
+    "# -------------------------------\n",
+    "def batch_algo_gradient_descent(n_data, n, kernel, means, weights, distribution, estimator, num_steps=100, eta=0.1):\n",
+    "    \"\"\"\n",
+    "    First, perform an ESPRIT estimation using a batch of n_data samples.\n",
+    "    Then, run a batch (offline) preconditioned gradient descent refinement for num_steps,\n",
+    "    using the fixed empirical characteristic function computed from the n_data samples.\n",
+    "    \"\"\"\n",
+    "    r = len(means)\n",
+    "    # Determine scale from the kernel (sigma for most, gamma for Lorentz)\n",
+    "    scale = kernel.sigma if hasattr(kernel, 'sigma') else (kernel.gamma if hasattr(kernel, 'gamma') else 1)\n",
+    "\n",
+    "    # Generate batch data and compute its FCE\n",
+    "    data = generate_data_multi(n_data, means, scale, weights, distribution, kernel=kernel)\n",
+    "    freqs = sample_uniform_frequencies(n)  # shape (N_freq, 1)\n",
+    "    baseline_freqs = sample_uniform_frequencies(n)\n",
+    "    my_fourier = kernel.fourier\n",
+    "\n",
+    "    # Compute the empirical characteristic function once for the batch\n",
+    "    Y = FCE(data, freqs)  # shape (N_freq, 1)\n",
+    "\n",
+    "    # Initial ESPRIT estimation: theta_est = [a_est (r,), tau_est (r,)]\n",
+    "    theta_est = estimator(Y, r, my_fourier, baseline_freqs, freqs)\n",
+    "    a_est = theta_est[:r].reshape(-1, 1)\n",
+    "    tau_est = theta_est[r:]\n",
+    "\n",
+    "    # Precompute the \"G\" matrix: diagonal with entries given by kernel's Fourier transform at freqs.\n",
+    "    G_diag = my_fourier(freqs).flatten()  # shape (N_freq,)\n",
+    "    G_mat = np.diag(G_diag)  # shape (N_freq, N_freq)\n",
+    "\n",
+    "    # Dictionary function Phi: for a given tau vector (r,), returns a matrix (N_freq x r)\n",
+    "    def Phi(tau):\n",
+    "        return np.exp(2j * np.pi * np.outer(freqs.flatten(), tau))\n",
+    "\n",
+    "    # Model function: Y_model = G * Phi(tau) * a.\n",
+    "    def Y_model(a, tau):\n",
+    "        return G_mat @ (Phi(tau) @ a)\n",
+    "\n",
+    "    # Compute K''(0): for K(t)=sum_f |ĝ(f)|^2 exp(2i*pi*f*t), we have\n",
+    "    # K''(0)= - (2*pi)^2 * sum_f |ĝ(f)|^2 * f^2.\n",
+    "    f_vals = freqs.flatten()\n",
+    "    Kpp0 = - (2 * np.pi)**2 * np.sum(np.abs(my_fourier(freqs).flatten())**2 * (f_vals**2))\n",
+    "\n",
+    "    # Run batch gradient descent updates on the fixed FCE Y\n",
+    "    for step in range(num_steps):\n",
+    "        # Compute the current model prediction\n",
+    "        Y_estimated = Y_model(a_est, tau_est)\n",
+    "        # Residual: difference between model prediction and observed FCE\n",
+    "        r_vec = Y_estimated - Y  # shape (N_freq, 1)\n",
+    "\n",
+    "        # Gradient with respect to amplitudes: grad_a = (G*Phi(tau))^H * r\n",
+    "        grad_a = (G_mat @ Phi(tau_est)).conj().T @ r_vec  # shape (r, 1)\n",
+    "\n",
+    "        # Gradient with respect to tau:\n",
+    "        grad_tau = np.zeros_like(tau_est, dtype=complex)\n",
+    "        for i in range(r):\n",
+    "            dPhi_dtau = 2j * np.pi * freqs.flatten() * np.exp(2j * np.pi * freqs.flatten() * tau_est[i])\n",
+    "            grad_tau[i] = np.real(a_est[i, 0] * ((G_mat @ dPhi_dtau).conj().T @ r_vec)[0])\n",
+    "\n",
+    "        # Preconditioner for tau-update:\n",
+    "        P_tau = (1/(-Kpp0)) / (np.abs(a_est.flatten())**2)\n",
+    "\n",
+    "        # Gradient descent update with learning rate eta\n",
+    "        a_est = a_est - eta * grad_a\n",
+    "        tau_est = tau_est - eta * (P_tau * grad_tau)\n",
+    "\n",
+    "    # Final estimated parameters (concatenated amplitudes and centroids)\n",
+    "    theta_est_final = np.concatenate((a_est.flatten(), tau_est))\n",
+    "    # True parameters vector: [weights, means]\n",
+    "    theta_star = np.concatenate((weights, means))\n",
+    "    return S_err(theta_est_final, r, theta_star)\n",
+    "\n",
+    "# -------------------------------\n",
+    "# Main Experiment: 4 Heatmaps (One per Distribution)\n",
+    "# -------------------------------\n",
+    "if __name__ == '__main__':\n",
+    "    np.random.seed(0)\n",
+    "\n",
+    "    # Number of spikes and true parameters\n",
+    "    r = 4\n",
+    "    weights = np.ones(r) / r\n",
+    "    # Minimal separation values and sample sizes to test\n",
+    "    separations = np.array([2, 2.2, 2.4, 2.6, 2.8])\n",
+    "    sample_sizes = np.array([200, 500, 1000, 2000, 5000]) // 4\n",
+    "\n",
+    "    nb_exp = 50  # number of Monte Carlo runs per cell\n",
+    "\n",
+    "    # Kernel parameters\n",
+    "    sigma = 0.5\n",
+    "    gamma_val = 0.1\n",
+    "    gaussian_kernel = GaussianKernel(sigma=sigma)\n",
+    "    lorentz_kernel = LorentzKernel(gamma=gamma_val)\n",
+    "    uniform_kernel = UniformKernel(sigma=sigma/5)\n",
+    "    student_kernel = StudentKernel(sigma=sigma/5, nu=3)\n",
+    "\n",
+    "    # List distributions with associated kernel\n",
+    "    distributions = [\n",
+    "        ('gaussian', gaussian_kernel),\n",
+    "        ('lorentz', lorentz_kernel),\n",
+    "        ('uniform', uniform_kernel),\n",
+    "        ('student', student_kernel)\n",
+    "    ]\n",
+    "\n",
+    "    # Dictionary to store results for each distribution\n",
+    "    results_dict = {name: np.zeros((len(separations), len(sample_sizes))) for name, _ in distributions}\n",
+    "\n",
+    "    total_experiments = len(distributions) * len(separations) * len(sample_sizes)\n",
+    "    pbar = tqdm(total=total_experiments, desc=\"Running experiments\")\n",
+    "\n",
+    "    for dist_label, kernel2 in distributions:\n",
+    "        for i, sep in enumerate(separations):\n",
+    "            # Set symmetric centroids based on separation\n",
+    "            half = (r - 1) / 2\n",
+    "            means = np.linspace(-half*sep, half*sep, r)\n",
+    "            for j, n_data in enumerate(sample_sizes):\n",
+    "                err_vals = []\n",
+    "                for _ in range(nb_exp):\n",
+    "                    err = batch_algo_gradient_descent(n_data=n_data, n=32,\n",
+    "                                                      kernel=kernel2,\n",
+    "                                                      means=means,\n",
+    "                                                      weights=weights,\n",
+    "                                                      distribution=dist_label,\n",
+    "                                                      estimator=ESPRIT_,\n",
+    "                                                      num_steps=100,\n",
+    "                                                      eta=0.05)\n",
+    "                    err_vals.append(err)\n",
+    "                mean_err = np.median(np.array(err_vals))\n",
+    "                results_dict[dist_label][i, j] = mean_err\n",
+    "                pbar.update(1)\n",
+    "    pbar.close()\n",
+    "\n",
+    "    # Determine global minimum and maximum for consistent color scale across heatmaps\n",
+    "    global_min = min(mat.min() for mat in results_dict.values())\n",
+    "    global_max = max(mat.max() for mat in results_dict.values())\n",
+    "\n",
+    "    # Plotting the 4 heatmaps in a 2x2 grid\n",
+    "    fig, axs = plt.subplots(2, 2, figsize=(14, 12))\n",
+    "    axs = axs.flatten()\n",
+    "\n",
+    "    for ax, (name, mat) in zip(axs, results_dict.items()):\n",
+    "        im = ax.imshow(mat, aspect='auto', origin='lower', interpolation='nearest',\n",
+    "                       cmap='viridis', vmin=global_min, vmax=global_max)\n",
+    "        ax.set_title(f\"{name.capitalize()} Mixture (r={r} spikes)\")\n",
+    "        ax.set_xlabel(\"Number of Samples\")\n",
+    "        ax.set_ylabel(\"Minimal Separation\")\n",
+    "        ax.set_xticks(np.arange(len(sample_sizes)))\n",
+    "        ax.set_xticklabels(sample_sizes)\n",
+    "        ax.set_yticks(np.arange(len(separations)))\n",
+    "        ax.set_yticklabels(separations)\n",
+    "\n",
+    "        # Annotate each cell with the mean error\n",
+    "        threshold = (global_min + global_max) / 2\n",
+    "        for i_row in range(mat.shape[0]):\n",
+    "            for j_col in range(mat.shape[1]):\n",
+    "                value = mat[i_row, j_col]\n",
+    "                color = \"white\" if value < threshold else \"black\"\n",
+    "                ax.text(j_col, i_row, f\"{value:.3f}\", ha=\"center\", va=\"center\", color=color)\n",
+    "\n",
+    "        cbar = plt.colorbar(im, ax=ax)\n",
+    "        cbar.set_label(\"Success Rate\")\n",
+    "\n",
+    "    plt.suptitle(f\"Centroid Estimation Success Rate for r={r} Mixture Components\\n\"\n",
+    "                 f\"(Uniform Frequency Sampling with ESPRIT + Batch Preconditioned Gradient Descent)\",\n",
+    "                 fontsize=14)\n",
+    "    plt.tight_layout(rect=[0, 0, 1, 0.95])\n",
+    "    plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "Rhnmfsmv1Rb6"
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[-5.2 -2.6  0.   2.6  5.2]\n"
+     ]
+    }
+   ],
+   "source": [
+    "r=5\n",
+    "separations = np.array([2, 2.2, 2.4, 2.6, 2.8])\n",
+    "for sep in separations:\n",
+    "    half = (r - 1) / 2\n",
+    "    means = np.linspace(-half*sep, half*sep, r)\n",
+    "    print(means)"
+   ]
+  }
+ ],
+ "metadata": {
+  "colab": {
+   "authorship_tag": "ABX9TyPqYgTVcKowpm2UCF2toWsb",
+   "provenance": []
+  },
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.13.0"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Wasserstein.py b/Wasserstein.py
new file mode 100644
index 0000000000000000000000000000000000000000..c90333f2ce27e731a9a062964a912409c13479a4
--- /dev/null
+++ b/Wasserstein.py
@@ -0,0 +1,48 @@
+import numpy as np
+import ot
+
+from problem import Parameters
+
+
+
+def cost_matrix(tau, tau_pred):
+    """
+    parameters
+    ----------
+    tau: double[r]
+        ground truth delay times vector
+    tau_pred: double[s]
+        estimated delay times vector
+    """
+    r = tau.shape[0]
+    s = tau_pred.shape[0]
+    return tau_pred.reshape(s, 1) @ np.ones((1, r)) - np.ones((s, 1)) @ tau.reshape(1, r)
+
+
+def optimal_transport_matrix(a, a_pred, D):
+    """
+    parameters
+    ----------
+    a: double[r]
+        ground truth amplitudes
+    a_pred: double[s]
+        estimated amplitudes
+    D: double[s, r]
+        distance matrix
+    """
+    return ot.emd(a_pred, a, D)
+
+
+def wasserstein1(theta, theta_pred):
+    """
+    parameters
+    ----------
+    theta: Parameters
+        grand truth values
+    theta_pred: Parameters
+        estimated values
+    """
+    Dk = cost_matrix(theta.tau, theta_pred.tau)
+    Gamma = optimal_transport_matrix(theta.a, theta_pred.a, np.abs(Dk))
+    return np.sum(Gamma * np.abs(Dk))
+
diff --git a/loss_function.py b/loss_function.py
new file mode 100644
index 0000000000000000000000000000000000000000..41d6a61520183653f7b79ce65b919b9d95b8f055
--- /dev/null
+++ b/loss_function.py
@@ -0,0 +1,581 @@
+import numpy as np
+import matplotlib.pyplot as plt
+import math as mt
+from itertools import permutations
+
+
+def generate_data_multi(n, means, scale, weights, distribution='gaussian', kernel=None):
+    """
+    Generate n samples from a mixture with r components,
+    where each component i has mean means[i] and weight weights[i].
+    The parameter 'distribution' can be 'gaussian', 'lorentz', 'uniform' or 'student'.
+    For 'student', the degrees of freedom is taken from kernel.nu.
+    This version works even when n == 1.
+    """
+
+    #means correspond aux tau_i
+    #weights correspond aux a_i, qu'on doit normaliser pour avoir une distribution de probabilité
+    #scale correspond à l'écart-type, on le fixera à 1
+
+
+    r = len(means)
+    # Special case: n == 1
+    if n == 1:
+        comp = np.random.choice(r, p=weights)
+        if distribution == 'gaussian':
+            return np.array([np.random.normal(means[comp], scale)])
+        elif distribution == 'lorentz':
+            sample = np.random.standard_cauchy() * scale + means[comp]
+            return np.array([np.clip(sample, -50, 50)])
+        elif distribution == 'uniform':
+            return np.array([np.random.uniform(means[comp] - scale, means[comp] + scale)])
+        elif distribution == 'student':
+            df = kernel.nu if (kernel is not None and hasattr(kernel, 'nu')) else 3
+            return np.array([np.random.standard_t(df) * scale + means[comp]])
+        else:
+            raise ValueError("Unknown distribution type")
+
+    # For n > 1: use a multinomial draw to exactly split n samples.
+    counts = np.random.multinomial(n, weights)
+    data = []
+    for i in range(r):
+        n_i = counts[i]
+        if distribution == 'gaussian':
+            samples = np.random.normal(means[i], scale, n_i)
+        elif distribution == 'lorentz':
+            samples = np.random.standard_cauchy(n_i) * scale + means[i]
+            samples = np.clip(samples, -50, 50)
+        elif distribution == 'uniform':
+            samples = np.random.uniform(means[i] - scale, means[i] + scale, n_i)
+        elif distribution == 'student':
+            df = kernel.nu if (kernel is not None and hasattr(kernel, 'nu')) else 3
+            samples = np.random.standard_t(df, n_i) * scale + means[i]
+        else:
+            raise ValueError("Unknown distribution type")
+        data.append(samples)
+    data = np.concatenate(data)
+    np.random.shuffle(data)
+    return data
+
+
+
+def generate_data(m,taus,weights,sigma=1):
+    if sum(weights) !=1:
+        s = sum(weights)
+        weights = np.array(weights)/s
+
+    #Return m data distributed with the pdf : Sum weights[i]*N(taus[i],sigma)
+    r = len(taus)
+
+    quelle_cloche = np.random.choice(r , size = m , p = weights)
+    #quelle_cloche[i] correspond à la cloche de provenance de data[i]
+ 
+    #taus[quelle_cloche][i] donne la moyenne de la gaussienne dont provient data[i]
+    data = np.random.normal(np.array(taus)[quelle_cloche],sigma)
+    return data
+        
+
+
+
+
+def genere_hist(weights,means):
+   
+    data = generate_data(100000,means,weights)
+    plt.hist(data, bins=50, density=True, alpha=0.6, color='b')
+    plt.xlabel("Valeurs")
+    plt.ylabel("Densité")
+    plt.title("Histogramme d'une somme de lois normales")
+    plt.show()
+
+
+
+def FCE(data, freqs):
+    # Compute the empirical characteristic function at frequencies in freqs.
+    #L'idée est de confondre les données par leur fonction caractéristique empirique prise en N fréquences.
+    #Cela réduit la taille du problème de m à N.
+
+    #L'utilisation de np notamment pour np.exp vectorise les calculs -> gains de temps et gère les nombres complexes
+
+    phi = np.array([np.mean(np.exp(-2j * np.pi * f * data)) for f in freqs])
+
+    return phi.reshape(-1, 1) #Utile pour l'avoir en tant que vecteur pour après
+
+
+def sample_uniform_frequencies(n):
+    #N = 2n+1 est la nouvelle taille du problème
+    N = 2 * n + 1
+    return np.arange(-n, n + 1).reshape(-1, 1) / N
+
+
+def fourier(x,sigma=1):
+
+    return np.exp(-2 * (x * sigma * np.pi)**2)
+
+
+
+def ESPRIT_(x, r, my_fourier, freqs1, true_freqs):
+
+    x_vec = x.flatten()
+    N = len(x_vec)
+    L = N // 2
+    M = N - L + 1
+
+    X = np.zeros((L, M), dtype=complex)
+    for i in range(L):
+        X[i, :] = x_vec[i:i+M]
+
+    U, s, Vh = np.linalg.svd(X, full_matrices=False)
+    U_r = U[:, :r]
+
+    U1 = U_r[:-1, :]
+    U2 = U_r[1:, :]
+
+    Psi = np.linalg.pinv(U1) @ U2
+    eigvals, _ = np.linalg.eig(Psi)
+
+    f_est = N * np.angle(eigvals) / (2 * np.pi)
+    t0_est = -np.sort(f_est)
+
+    V0 = my_fourier(true_freqs).reshape(-1, 1) * np.exp(2j * np.pi * np.outer(freqs1.flatten(), t0_est))
+    a0 = np.linalg.lstsq(V0, x_vec, rcond=None)[0]
+
+    return np.concatenate((a0, t0_est))
+
+
+def S_err(theta_est, r, theta_star):
+    # Assumes theta_est and theta_star are concatenations: [amplitudes, centroids]
+    centroids_est = np.sort(theta_est[r:])
+    centroids_true = np.sort(theta_star[r:])
+    return np.linalg.norm(centroids_est - centroids_true)
+
+
+
+def permute_and_compute_norm(a, b, k):
+    # Diviser a et b en 2 parties : weights_a (premières k composantes) et means_tau (les autres)
+    a_means, a_weights = a[k:], a[:k]
+
+    # Permuter les parties means dans a, et pareil pour les parties weights dans a
+    a_means_permuted= list(permutations(a_means))
+    a_weights_permuted = list(permutations(a_weights))
+
+    min_norm = np.inf  # Initialiser la norme minimale à un grand nombre
+
+    # Initialiser best_perm à la permutation identité
+    best_perm = (tuple(a_weights), tuple(a_means))
+
+    # Tester toutes les permutations de means et weights
+    for perm_means_a in a_means_permuted:
+        for perm_weights_a in a_weights_permuted:
+                
+            # Recomposer les vecteurs permutés
+            a_permuted = np.concatenate([np.array(perm_weights_a), np.array(perm_means_a)])
+                    
+                    
+            # Calculer la norme Euclidienne
+            norm = np.linalg.norm(a_permuted - b)
+            if norm < min_norm:
+                min_norm = norm
+                best_perm = (perm_weights_a, perm_means_a)
+
+    # Maintenant que nous avons best_perm, appliquer la permutation à a (modification directe de a)
+    
+    perm_weights_a, perm_means_a = best_perm
+
+    # Appliquer la permutation sur les "means" et "weights" de a
+    a_means_permuted = np.array(perm_means_a)
+    a_weights_permuted = np.array(perm_weights_a)
+
+    # Recomposer a avec les nouvelles parties permutées
+    c = np.concatenate([a_weights_permuted,a_means_permuted])
+
+    return min_norm , c # Retourner la norme minimale trouvée
+
+
+
+def batch_algo_gradient_descent(m, n, means, weights, num_steps=100, eta=0.1):
+    """
+    First, perform an ESPRIT estimation using a batch of m samples.
+    Then, run a batch (offline) preconditioned gradient descent refinement for num_steps,
+    using the fixed empirical characteristic function computed from the m samples.
+    n is here for the frequencies : N=2n+1 frequencies used.
+    """
+    r = len(means)
+
+
+    # Generate batch data and compute its FCE
+    data = generate_data(m, means, weights)
+    freqs = sample_uniform_frequencies(n)  # shape (N_freq, 1)
+    baseline_freqs = sample_uniform_frequencies(n)
+
+
+    # Compute the empirical characteristic function once for the batch
+    Y = FCE(data, freqs)  # shape (N_freq, 1)
+
+    # Initial ESPRIT estimation: theta_est = [a_est (r,), tau_est (r,)]
+    theta_est = ESPRIT_(Y, r, fourier, baseline_freqs, freqs)
+    a_est = theta_est[:r].reshape(-1, 1)
+    tau_est = theta_est[r:]
+
+    print(theta_est)
+
+    # Precompute the "G" matrix: diagonal with entries given by kernel's Fourier transform at freqs.
+    G_diag = fourier(freqs).flatten()  # shape (N_freq,)
+    G_mat = np.diag(G_diag)  # shape (N_freq, N_freq)
+
+    # Dictionary function Phi: for a given tau vector (r,), returns a matrix (N_freq x r)
+    def Phi(tau):
+        return np.exp(2j * np.pi * np.outer(freqs.flatten(), tau))
+
+    # Model function: Y_model = G * Phi(tau) * a.
+    def Y_model(a, tau):
+        return G_mat @ (Phi(tau) @ a)
+
+    # Compute K''(0): for K(t)=sum_f |ĝ(f)|^2 exp(2i*pi*f*t), we have
+    # K''(0)= - (2*pi)^2 * sum_f |ĝ(f)|^2 * f^2.
+    f_vals = freqs.flatten()
+    Kpp0 = - (2 * np.pi)**2 * np.sum(np.abs(fourier(freqs).flatten())**2 * (f_vals**2))
+
+    # Run batch gradient descent updates on the fixed FCE Y
+    for step in range(num_steps):
+        # Compute the current model prediction
+        Y_estimated = Y_model(a_est, tau_est)
+        # Residual: difference between model prediction and observed FCE
+        r_vec = Y_estimated - Y  # shape (N_freq, 1)
+
+        # Gradient with respect to amplitudes: grad_a = (G*Phi(tau))^H * r
+        grad_a = (G_mat @ Phi(tau_est)).conj().T @ r_vec  # shape (r, 1)
+
+        # Gradient with respect to tau:
+        grad_tau = np.zeros_like(tau_est, dtype=complex)
+        for i in range(r):
+            dPhi_dtau = 2j * np.pi * freqs.flatten() * np.exp(2j * np.pi * freqs.flatten() * tau_est[i])
+            grad_tau[i] = np.real(a_est[i, 0] * ((G_mat @ dPhi_dtau).conj().T @ r_vec)[0])
+
+        # Preconditioner for tau-update:
+        #P_tau = (1/(-Kpp0)) / (np.abs(a_est.flatten())**2)
+
+        P_tau=1
+        # Gradient descent update with learning rate eta
+        a_est = a_est - eta * grad_a
+        tau_est = tau_est - eta * (P_tau * grad_tau)
+
+    # Final estimated parameters (concatenated amplitudes and centroids)
+    theta_est_final = np.concatenate((a_est.flatten(), tau_est))
+    # True parameters vector: [weights, means]
+    theta_star = np.concatenate((weights, means))
+
+    norm , theta_est_final_prime = permute_and_compute_norm(theta_est_final,theta_star,r)
+    return norm , theta_est_final_prime , theta_star 
+
+
+
+def batch_algo_gradient_descent_without_estimator(m, n, means, weights,est, num_steps=100, eta=0.1):
+    """
+    First, perform an ESPRIT estimation using a batch of m samples.
+    Then, run a batch (offline) preconditioned gradient descent refinement for num_steps,
+    using the fixed empirical characteristic function computed from the m samples.
+    n is here for the frequencies : N=2n+1 frequencies used.
+    """
+    r = len(means)
+
+
+    # Generate batch data and compute its FCE
+    data = generate_data(m, means, weights)
+    freqs = sample_uniform_frequencies(n)  # shape (N_freq, 1)
+    
+
+
+    # Compute the empirical characteristic function once for the batch
+    Y = FCE(data, freqs)  # shape (N_freq, 1)
+
+    est = np.array(est)
+    a_est = est[:r].reshape(-1, 1)
+    tau_est = est[r:]
+
+    
+    
+    # Precompute the "G" matrix: diagonal with entries given by kernel's Fourier transform at freqs.
+    G_diag = fourier(freqs).flatten()  # shape (N_freq,)
+    G_mat = np.diag(G_diag)  # shape (N_freq, N_freq)
+
+    # Dictionary function Phi: for a given tau vector (r,), returns a matrix (N_freq x r)
+    def Phi(tau):
+        return np.exp(2j * np.pi * np.outer(freqs.flatten(), tau))
+
+    # Model function: Y_model = G * Phi(tau) * a.
+    def Y_model(a, tau):
+        return G_mat @ (Phi(tau) @ a)
+
+    # Compute K''(0): for K(t)=sum_f |ĝ(f)|^2 exp(2i*pi*f*t), we have
+    # K''(0)= - (2*pi)^2 * sum_f |ĝ(f)|^2 * f^2.
+    f_vals = freqs.flatten()
+    Kpp0 = - (2 * np.pi)**2 * np.sum(np.abs(fourier(freqs).flatten())**2 * (f_vals**2))
+
+    # Run batch gradient descent updates on the fixed FCE Y
+    for step in range(num_steps):
+        # Compute the current model prediction
+        Y_estimated = Y_model(a_est, tau_est)
+        # Residual: difference between model prediction and observed FCE
+        r_vec = Y_estimated - Y  # shape (N_freq, 1)
+
+        # Gradient with respect to amplitudes: grad_a = (G*Phi(tau))^H * r
+        grad_a = (G_mat @ Phi(tau_est)).conj().T @ r_vec  # shape (r, 1)
+
+        # Gradient with respect to tau:
+        grad_tau = np.zeros_like(tau_est, dtype=complex)
+        for i in range(r):
+            dPhi_dtau = 2j * np.pi * freqs.flatten() * np.exp(2j * np.pi * freqs.flatten() * tau_est[i])
+            grad_tau[i] = np.real(a_est[i, 0] * ((G_mat @ dPhi_dtau).conj().T @ r_vec)[0])
+
+        # Preconditioner for tau-update:
+        #P_tau = (1/(-Kpp0)) / (np.abs(a_est.flatten())**2)
+
+        P_tau=1
+        # Gradient descent update with learning rate eta
+        a_est = a_est - eta * grad_a
+        tau_est = tau_est - eta * (P_tau * grad_tau)
+
+    # Final estimated parameters (concatenated amplitudes and centroids)
+    theta_est_final = np.concatenate((a_est.flatten(), tau_est))
+    # True parameters vector: [weights, means]
+    theta_star = np.concatenate((weights, means))
+
+    norm , theta_est_final_prime = permute_and_compute_norm(theta_est_final,theta_star,r)
+    return norm , theta_est_final_prime , theta_star 
+
+
+
+
+
+
+def loss(teta,teta_star,r,freqs,):
+    a , a_star= np.array(teta[:r]).reshape(-1, 1) , np.array(teta_star[:r]).reshape(-1, 1)
+    tau , tau_star = teta[r:] , teta_star[r:]
+
+
+    # Precompute the "G" matrix: diagonal with entries given by kernel's Fourier transform at freqs
+    G_diag = fourier(freqs).flatten()  # shape (N_freq,)
+    G_mat = np.diag(G_diag)  # shape (N_freq, N_freq)
+
+
+    # Dictionary function Phi: for a given tau vector (r,), returns a matrix (N_freq x r)
+    def Phi(tau):
+
+        return np.exp(2j * np.pi * np.outer(freqs.flatten(), tau))
+
+
+
+    # Model function: Y_model = G * Phi(tau) * a.
+    def Y_model(a, tau):
+        return G_mat @ (Phi(tau) @ a)
+
+    Y = Y_model(a,tau)
+    Y_star = Y_model(a_star,tau_star)
+
+    return 1/2 * np.linalg.norm(Y-Y_star)**2
+
+def show_loss(tau_star, tau_min,tau_max, nb_values,n): #tau == means
+    """
+    We take r=2, and let a1 = a2 = 1/2.
+
+    We want to look at the landscape of the loss function L(teta) in this configuration.
+    We Here do uniform sampling with N=2n+1 centered frequencies.
+    """
+
+    assert len(tau_star) == 2 , "Issue : r !=2 "
+
+    tau1_vals = np.linspace(tau_min,tau_max,nb_values)
+    tau2_vals = np.linspace(tau_min,tau_max,nb_values)
+
+    tau1 , tau2 = np.meshgrid(tau1_vals,tau2_vals) #Création de la grille
+
+    freqs=sample_uniform_frequencies(n)
+     
+    # Vectorized version of loss function
+    def f_vectorized(tau1_vals, tau2_vals):
+        # Crée une grille de tau1 et tau2 en une seule opération
+        teta_vals = np.array([1/2, 1/2])  # a1 = a2 = 1/2
+        
+        # Créer la grille de teta avec les bonnes valeurs
+        teta = np.vstack([np.repeat(teta_vals[0], tau1_vals.size), 
+                          np.repeat(teta_vals[1], tau2_vals.size),
+                          tau1_vals.flatten(), tau2_vals.flatten()]).T
+        
+        teta_star = np.concatenate([np.array([1/2, 1/2]), tau_star])
+        
+        # Calcul vectorisé de la perte pour toute la grille de tau1 et tau2
+        losses = np.array([loss(teta_row, teta_star, 2, freqs) for teta_row in teta])
+        return losses.reshape(tau1_vals.shape)
+
+    Z = f_vectorized(tau1,tau2)
+
+    # Tracé de la carte de chaleur
+    plt.figure(figsize=(8, 6))
+    plt.contourf(tau1, tau2, Z, levels=50, cmap='viridis')
+    plt.colorbar(label="f(tau1, tau2)")
+    plt.xlabel("Tau1")
+    plt.ylabel("Tau2")
+    plt.title("Heatmap of loss function.")
+
+    plt.show()
+
+
+
+
+
+
+def show_loss_path(tau_est,tau_star,tau_min,tau_max,nb_values,m,n,num_steps =100,eta=0.1):
+    """
+    We take r=2, and let a1 = a2 = 1/2.
+
+    We want to look at the landscape of the loss function L(teta) in this configuration.
+    We Here do uniform sampling with N=2n+1 centered frequencies.
+
+    Then, we do a gradient descent from theta_est to (we hope) theta_star.
+    """
+    assert len(tau_star) == 2 , "Issue : r !=2 "
+
+    tau1_vals = np.linspace(tau_min,tau_max,nb_values)
+    tau2_vals = np.linspace(tau_min,tau_max,nb_values)
+
+    tau1 , tau2 = np.meshgrid(tau1_vals,tau2_vals) #Création de la grille
+
+    freqs=sample_uniform_frequencies(n)
+     
+    # Vectorized version of loss function
+    def f_vectorized(tau1_vals, tau2_vals):
+        # Crée une grille de tau1 et tau2 en une seule opération
+        teta_vals = np.array([1/2, 1/2])  # a1 = a2 = 1/2
+        
+        # Créer la grille de teta avec les bonnes valeurs
+        teta = np.vstack([np.repeat(teta_vals[0], tau1_vals.size), 
+                          np.repeat(teta_vals[1], tau2_vals.size),
+                          tau1_vals.flatten(), tau2_vals.flatten()]).T
+        
+        teta_star = np.concatenate([np.array([1/2, 1/2]), np.array(tau_star)])
+        
+        # Calcul vectorisé de la perte pour toute la grille de tau1 et tau2
+        losses = np.array([loss(teta_row, teta_star, 2, freqs) for teta_row in teta])
+        return losses.reshape(tau1_vals.shape)
+
+    Z = f_vectorized(tau1,tau2)
+
+    # Tracé de la carte de chaleur
+    plt.figure(figsize=(8, 6))
+    plt.contourf(tau1, tau2, Z, levels=50, cmap='viridis')
+    plt.colorbar(label="f(tau1, tau2)")
+    plt.xlabel("Tau1")
+    plt.ylabel("Tau2")
+    plt.title("Heatmap of loss function.")
+
+    """
+    Maintenant on fait le batch_algo_gradient_descent en gardant en mémoire les teta_k
+    """
+    
+    means = tau_star
+    weights = [1/2,1/2]
+    r = len(means)
+    N=2*n+1
+ 
+    # Generate batch data and compute its FCE
+    data = generate_data(m, means, weights)
+    freqs = sample_uniform_frequencies(n)  # shape (N_freq, 1)
+    baseline_freqs = sample_uniform_frequencies(n)
+
+
+    # Compute the empirical characteristic function once for the batch
+
+    #Y = FCE(data, freqs)  # shape (N_freq, 1) #Noise coming from data generation
+
+    
+    # Initial ESPRIT estimation: theta_est = [a_est (r,), tau_est (r,)]
+
+    ###theta_est = ESPRIT_(Y, r, fourier, baseline_freqs, freqs)
+    #theta_est = np.array([1/2,1/2,4.9,5])
+    #theta_est [0], theta_est[1] = 1/2,1/2 #ICI AUCUNE ESTIMATION SUR LES WEIGHTS
+
+    a_est = np.array([1/2,1/2])
+    a_star = np.array([1/2,1/2])
+    tau_est = np.array(tau_est)
+
+    theta_est = np.concatenate((a_est,tau_est))
+
+    a_est = a_est.reshape(-1, 1)
+    a_star = a_star.reshape(-1,1)
+    tau1_traj=[tau_est[0]]
+    tau2_traj=[tau_est[1]]
+
+
+    # Precompute the "G" matrix: diagonal with entries given by kernel's Fourier transform at freqs.
+    G_diag = fourier(freqs).flatten()  # shape (N_freq,)
+    G_mat = np.diag(G_diag)  # shape (N_freq, N_freq)
+
+    # Dictionary function Phi: for a given tau vector (r,), returns a matrix (N_freq x r)
+    def Phi(tau):
+        return np.exp(-2j * np.pi * np.outer(freqs.flatten(), tau))
+
+    # Model function: Y_model = G * Phi(tau) * a.
+    def Y_model(a, tau):
+        return G_mat @ (Phi(tau) @ a)
+
+    Y = Y_model(a_star,tau_star) # No noise assumed, perfect data m -> +inf
+
+    # Compute K''(0): for K(t)=sum_f |ĝ(f)|^2 exp(2i*pi*f*t), we have
+    # K''(0)= - (2*pi)^2 * sum_f |ĝ(f)|^2 * f^2.
+    f_vals = freqs.flatten()
+    Kpp0 = - (2 * np.pi)**2 * np.sum(np.abs(fourier(freqs).flatten())**2 * (f_vals**2))
+    print(Kpp0)
+    # Run batch gradient descent updates on the fixed FCE Y
+    for step in range(num_steps):
+        # Compute the current model prediction
+        
+        Y_estimated = Y_model(a_est, tau_est)
+        # Residual: difference between model prediction and observed FCE
+        r_vec = Y_estimated - Y  # shape (N_freq, 1)
+
+        # Gradient with respect to amplitudes: grad_a = (G*Phi(tau))^H * r
+        grad_a = (G_mat @ Phi(tau_est)).conj().T @ r_vec  # shape (r, 1)
+
+        # Gradient with respect to tau:
+        diag_elements = -2j * np.pi * (np.arange(N) - n) / N
+        Lambda = np.diag(diag_elements)
+    
+        grad_tau = np.real(( (a_est.conj()) * (( Lambda @ G_mat @ Phi(tau_est)).conj().T) ) @ r_vec)
+
+        
+
+        # Preconditioner for tau-update:
+        P_tau = np.diag(1/(-Kpp0) * ((a_est.flatten())**2))
+        #P_tau = 1
+
+        # Gradient descent update with learning rate eta
+        #a_est = a_est - eta * grad_a #WE DONT MODIFY a_est because we suppose it is known 
+        tau_est = tau_est - eta  * (P_tau @ grad_tau).flatten()
+
+        tau1_traj.append(tau_est[0])
+        tau2_traj.append(tau_est[1])
+
+    print(P_tau)
+    # Final estimated parameters (concatenated amplitudes and centroids)
+    theta_est_final = np.concatenate((a_est.flatten(), tau_est))
+    # True parameters vector: [weights, means]
+    
+    theta_star = np.concatenate((np.array(weights),np.array(means)))
+
+    norm , theta_est_final_prime = permute_and_compute_norm(theta_est_final,theta_star,r)
+    
+
+
+    
+    plt.plot(tau1_traj, tau2_traj, 'b.-', markersize=8, label="Tau running")  # Ligne bleue avec points
+    # Marquer le point initial (blanc) et final (rouge)
+    plt.scatter([tau1_traj[0]], [tau2_traj[0]], color='white', s=100, edgecolors='black', label="Tau est")
+    plt.scatter([tau_star[0]], [tau_star[1]], color='red', s=100, edgecolors='black', label="Tau star")
+    plt.legend()
+    plt.show()
+
+    return norm, theta_est_final , theta_est_final_prime
+
+
+
+
diff --git a/sketching1.py b/sketching1.py
new file mode 100644
index 0000000000000000000000000000000000000000..99ec36f3a501ae1cbaf9d5689b62ac43db72e177
--- /dev/null
+++ b/sketching1.py
@@ -0,0 +1,308 @@
+import numpy as np
+import matplotlib.pyplot as plt
+import scipy.linalg
+from tqdm import tqdm  # progress bar
+from scipy.special import kv, gamma
+import math as mt
+from itertools import permutations
+
+def generate_data_multi(n, means, scale, weights, distribution='gaussian', kernel=None):
+    """
+    Generate n samples from a mixture with r components,
+    where each component i has mean means[i] and weight weights[i].
+    The parameter 'distribution' can be 'gaussian', 'lorentz', 'uniform' or 'student'.
+    For 'student', the degrees of freedom is taken from kernel.nu.
+    This version works even when n == 1.
+    """
+
+    #means correspond aux tau_i
+    #weights correspond aux a_i, qu'on doit normaliser pour avoir une distribution de probabilité
+    #scale correspond à l'écart-type, on le fixera à 1
+
+
+
+    r = len(means)
+    # Special case: n == 1
+    if n == 1:
+        comp = np.random.choice(r, p=weights)
+        if distribution == 'gaussian':
+            return np.array([np.random.normal(means[comp], scale)])
+        elif distribution == 'lorentz':
+            sample = np.random.standard_cauchy() * scale + means[comp]
+            return np.array([np.clip(sample, -50, 50)])
+        elif distribution == 'uniform':
+            return np.array([np.random.uniform(means[comp] - scale, means[comp] + scale)])
+        elif distribution == 'student':
+            df = kernel.nu if (kernel is not None and hasattr(kernel, 'nu')) else 3
+            return np.array([np.random.standard_t(df) * scale + means[comp]])
+        else:
+            raise ValueError("Unknown distribution type")
+
+    # For n > 1: use a multinomial draw to exactly split n samples.
+    counts = np.random.multinomial(n, weights)
+    data = []
+    for i in range(r):
+        n_i = counts[i]
+        if distribution == 'gaussian':
+            samples = np.random.normal(means[i], scale, n_i)
+        elif distribution == 'lorentz':
+            samples = np.random.standard_cauchy(n_i) * scale + means[i]
+            samples = np.clip(samples, -50, 50)
+        elif distribution == 'uniform':
+            samples = np.random.uniform(means[i] - scale, means[i] + scale, n_i)
+        elif distribution == 'student':
+            df = kernel.nu if (kernel is not None and hasattr(kernel, 'nu')) else 3
+            samples = np.random.standard_t(df, n_i) * scale + means[i]
+        else:
+            raise ValueError("Unknown distribution type")
+        data.append(samples)
+    data = np.concatenate(data)
+    np.random.shuffle(data)
+    return data
+
+
+
+def generate_data(m,taus,weights,sigma=1):
+    if sum(weights) !=1:
+        s = sum(weights)
+        weights = np.array(weights)/s
+
+    #Return m data distributed with the pdf : Sum weights[i]*N(taus[i],sigma)
+    r = len(taus)
+
+    quelle_cloche = np.random.choice(r , size = m , p = weights)
+    #quelle_cloche[i] correspond à la cloche de provenance de data[i]
+ 
+    #taus[quelle_cloche][i] donne la moyenne de la gaussienne dont provient data[i]
+    data = np.random.normal(np.array(taus)[quelle_cloche],sigma)
+    return data
+        
+
+
+
+
+def genere_hist(weights,means):
+   
+    data = generate_data(100000,means,weights)
+    plt.hist(data, bins=50, density=True, alpha=0.6, color='b')
+    plt.xlabel("Valeurs")
+    plt.ylabel("Densité")
+    plt.title("Histogramme d'une somme de lois normales")
+    plt.show()
+
+
+
+def FCE(data, freqs):
+    # Compute the empirical characteristic function at frequencies in freqs.
+    #L'idée est de confondre les données par leur fonction caractéristique empirique prise en N fréquences.
+    #Cela réduit la taille du problème de m à N.
+
+    #L'utilisation de np notamment pour np.exp vectorise les calculs -> gains de temps et gère les nombres complexes
+
+    phi = np.array([np.mean(np.exp(-2j * np.pi * f * data)) for f in freqs])
+
+    return phi.reshape(-1, 1) #Utile pour l'avoir en tant que vecteur pour après
+
+
+def sample_uniform_frequencies(n):
+    #N = 2n+1 est la nouvelle taille du problème
+    N = 2 * n + 1
+    return np.arange(-n, n + 1).reshape(-1, 1) / N
+
+
+def fourier(x,sigma=1):
+
+    return np.exp(-2 * (x * sigma * np.pi)**2)
+
+
+
+def ESPRIT_(x, r, my_fourier, freqs1, true_freqs):
+
+    x_vec = x.flatten()
+    N = len(x_vec)
+    L = N // 2
+    M = N - L + 1
+
+    X = np.zeros((L, M), dtype=complex)
+    for i in range(L):
+        X[i, :] = x_vec[i:i+M]
+
+    U, s, Vh = np.linalg.svd(X, full_matrices=False)
+    U_r = U[:, :r]
+
+    U1 = U_r[:-1, :]
+    U2 = U_r[1:, :]
+
+    Psi = np.linalg.pinv(U1) @ U2
+    eigvals, _ = np.linalg.eig(Psi)
+
+    f_est = N * np.angle(eigvals) / (2 * np.pi)
+    t0_est = -np.sort(f_est)
+
+    V0 = my_fourier(true_freqs).reshape(-1, 1) * np.exp(2j * np.pi * np.outer(freqs1.flatten(), t0_est))
+    a0 = np.linalg.lstsq(V0, x_vec, rcond=None)[0]
+
+    return np.concatenate((a0, t0_est))
+
+
+def S_err(theta_est, r, theta_star):
+    # Assumes theta_est and theta_star are concatenations: [amplitudes, centroids]
+    centroids_est = np.sort(theta_est[r:])
+    centroids_true = np.sort(theta_star[r:])
+    return np.linalg.norm(centroids_est - centroids_true)
+
+
+
+def permute_and_compute_norm(a, b, k):
+    # Diviser a et b en 2 parties : weights_a (premières k composantes) et means_tau (les autres)
+    a_means, a_weights = a[:k], a[k:]
+    b_means, b_weights = b[:k], b[k:]
+
+    # Permuter les parties means entre a et b, et pareil pour les parties weights
+    a_means_permuted, b_means_permuted = list(permutations(a_means)), list(permutations(b_means))
+    a_weights_permuted, b_weights_permuted = list(permutations(a_weights)), list(permutations(b_weights))
+
+    min_norm = np.inf  # Initialiser la norme minimale à un grand nombre
+
+    # Initialiser best_perm à la permutation identité
+    best_perm = (tuple(a_weights), tuple(b_weights), tuple(a_means), tuple(b_means))
+
+    # Tester toutes les permutations de means et weights
+    for perm_means_a in a_means_permuted:
+        for perm_means_b in b_means_permuted:
+            for perm_weights_a in a_weights_permuted:
+                for perm_weights_b in b_weights_permuted:
+                    # Recomposer les vecteurs permutés
+                    a_permuted = np.concatenate([np.array(perm_weights_a), np.array(perm_means_a)])
+                    #b_permuted = np.concatenate([np.array(perm_weights_b), np.array(perm_means_b)])
+                    
+                    # Calculer la norme Euclidienne
+                    norm = np.linalg.norm(a_permuted - b)
+                    if norm < min_norm:
+                        min_norm = norm
+                        best_perm = (perm_weights_a, perm_weights_b, perm_means_a, perm_means_b)
+
+    # Maintenant que nous avons best_perm, appliquer la permutation à a (modification directe de a)
+    
+    perm_means_a, perm_means_b, perm_weights_a, perm_weights_b = best_perm
+
+    # Appliquer la permutation sur les "means" et "weights" de a
+    a_means_permuted = np.array(perm_means_a)
+    a_weights_permuted = np.array(perm_weights_a)
+
+    # Recomposer a avec les nouvelles parties permutées
+    c = np.concatenate([a_means_permuted, a_weights_permuted])
+
+    return min_norm , c # Retourner la norme minimale trouvée
+
+
+def permute_and_compute_norm2(a, b, k): #Obsolète, ne modifie pas a
+    # Diviser a et b en 2 parties : weights_a (premières k composantes) et means_tau (les autres)
+    a_means, a_weights = a[:k], a[k:]
+    b_means, b_weights = b[:k], b[k:]
+
+    # Permuter les parties means entre a et b, et pareil pour les parties weights
+    a_means_permuted, b_means_permuted = list(permutations(a_means)), list(permutations(b_means))
+    a_weights_permuted, b_weights_permuted = list(permutations(a_weights)), list(permutations(b_weights))
+
+    min_norm = np.inf  # Initialiser la norme minimale à un grand nombre
+    
+    # Tester toutes les permutations de means et weights
+    for perm_means_a in a_means_permuted:
+        for perm_means_b in b_means_permuted:
+            for perm_weights_a in a_weights_permuted:
+                for perm_weights_b in b_weights_permuted:
+                    # Recomposer les vecteurs permutés
+                    a_permuted = np.concatenate([np.array(perm_means_a), np.array(perm_weights_a)])
+                    b_permuted = np.concatenate([np.array(perm_means_b), np.array(perm_weights_b)])
+                    
+                    # Calculer la norme Euclidienne
+                    norm = np.linalg.norm(a_permuted - b_permuted)
+                    if norm < min_norm:
+                        min_norm = norm
+                        best_perm = (perm_means_a, perm_means_b, perm_weights_a, perm_weights_b)
+
+    return min_norm #, best_perm
+
+
+
+def batch_algo_gradient_descent(m, n, means, weights, num_steps=100, eta=0.1):
+    """
+    First, perform an ESPRIT estimation using a batch of m samples.
+    Then, run a batch (offline) preconditioned gradient descent refinement for num_steps,
+    using the fixed empirical characteristic function computed from the m samples.
+    n is here for the frequencies : N=2n+1 frequencies used.
+    """
+    r = len(means)
+
+
+    # Generate batch data and compute its FCE
+    data = generate_data(m, means, weights)
+    freqs = sample_uniform_frequencies(n)  # shape (N_freq, 1)
+    baseline_freqs = sample_uniform_frequencies(n)
+
+
+    # Compute the empirical characteristic function once for the batch
+    Y = FCE(data, freqs)  # shape (N_freq, 1)
+
+    # Initial ESPRIT estimation: theta_est = [a_est (r,), tau_est (r,)]
+    theta_est = ESPRIT_(Y, r, fourier, baseline_freqs, freqs)
+    a_est = theta_est[:r].reshape(-1, 1)
+    tau_est = theta_est[r:]
+
+    # Precompute the "G" matrix: diagonal with entries given by kernel's Fourier transform at freqs.
+    G_diag = fourier(freqs).flatten()  # shape (N_freq,)
+    G_mat = np.diag(G_diag)  # shape (N_freq, N_freq)
+
+    # Dictionary function Phi: for a given tau vector (r,), returns a matrix (N_freq x r)
+    def Phi(tau):
+        return np.exp(2j * np.pi * np.outer(freqs.flatten(), tau))
+
+    # Model function: Y_model = G * Phi(tau) * a.
+    def Y_model(a, tau):
+        return G_mat @ (Phi(tau) @ a)
+
+    # Compute K''(0): for K(t)=sum_f |ĝ(f)|^2 exp(2i*pi*f*t), we have
+    # K''(0)= - (2*pi)^2 * sum_f |ĝ(f)|^2 * f^2.
+    f_vals = freqs.flatten()
+    Kpp0 = - (2 * np.pi)**2 * np.sum(np.abs(fourier(freqs).flatten())**2 * (f_vals**2))
+
+    # Run batch gradient descent updates on the fixed FCE Y
+    for step in range(num_steps):
+        # Compute the current model prediction
+        Y_estimated = Y_model(a_est, tau_est)
+        # Residual: difference between model prediction and observed FCE
+        r_vec = Y_estimated - Y  # shape (N_freq, 1)
+
+        # Gradient with respect to amplitudes: grad_a = (G*Phi(tau))^H * r
+        grad_a = (G_mat @ Phi(tau_est)).conj().T @ r_vec  # shape (r, 1)
+
+        # Gradient with respect to tau:
+        grad_tau = np.zeros_like(tau_est, dtype=complex)
+        for i in range(r):
+            dPhi_dtau = 2j * np.pi * freqs.flatten() * np.exp(2j * np.pi * freqs.flatten() * tau_est[i])
+            grad_tau[i] = np.real(a_est[i, 0] * ((G_mat @ dPhi_dtau).conj().T @ r_vec)[0])
+
+        # Preconditioner for tau-update:
+        P_tau = (1/(-Kpp0)) / (np.abs(a_est.flatten())**2)
+
+        # Gradient descent update with learning rate eta
+        a_est = a_est - eta * grad_a
+        tau_est = tau_est - eta * (P_tau * grad_tau)
+
+    # Final estimated parameters (concatenated amplitudes and centroids)
+    theta_est_final = np.concatenate((a_est.flatten(), tau_est))
+    # True parameters vector: [weights, means]
+    theta_star = np.concatenate((weights, means))
+
+    norm , theta_est_final_prime = permute_and_compute_norm(theta_est_final,theta_star,r)
+    return norm , theta_est_final_prime , theta_star , theta_est_final
+
+
+print(batch_algo_gradient_descent(1000,20,[0,10],[2/3,1/3]))
+
+print(batch_algo_gradient_descent(1000,20,[0,5,10],[1/4,1/2,1/4]))
+
+print(batch_algo_gradient_descent(1000,100,[0,5,10],[1/4,1/2,1/4]))
+
+print(batch_algo_gradient_descent(1000,200,[0,5,10],[1/4,1/2,1/4]))
\ No newline at end of file
diff --git a/test_gradient.py b/test_gradient.py
new file mode 100644
index 0000000000000000000000000000000000000000..a2d26520b0ea52d13b0e11bd5b7a97e2eda9a254
--- /dev/null
+++ b/test_gradient.py
@@ -0,0 +1,918 @@
+import numpy as np
+import matplotlib.pyplot as plt
+import math as mt
+from itertools import permutations
+import numdifftools as nd
+
+
+def generate_data_multi(n, means, scale, weights, distribution='gaussian', kernel=None):
+    """
+    Generate n samples from a mixture with r components,
+    where each component i has mean means[i] and weight weights[i].
+    The parameter 'distribution' can be 'gaussian', 'lorentz', 'uniform' or 'student'.
+    For 'student', the degrees of freedom is taken from kernel.nu.
+    This version works even when n == 1.
+    """
+
+    #means correspond aux tau_i
+    #weights correspond aux a_i, qu'on doit normaliser pour avoir une distribution de probabilité
+    #scale correspond à l'écart-type, on le fixera à 1
+
+
+    r = len(means)
+    # Special case: n == 1
+    if n == 1:
+        comp = np.random.choice(r, p=weights)
+        if distribution == 'gaussian':
+            return np.array([np.random.normal(means[comp], scale)])
+        elif distribution == 'lorentz':
+            sample = np.random.standard_cauchy() * scale + means[comp]
+            return np.array([np.clip(sample, -50, 50)])
+        elif distribution == 'uniform':
+            return np.array([np.random.uniform(means[comp] - scale, means[comp] + scale)])
+        elif distribution == 'student':
+            df = kernel.nu if (kernel is not None and hasattr(kernel, 'nu')) else 3
+            return np.array([np.random.standard_t(df) * scale + means[comp]])
+        else:
+            raise ValueError("Unknown distribution type")
+
+    # For n > 1: use a multinomial draw to exactly split n samples.
+    counts = np.random.multinomial(n, weights)
+    data = []
+    for i in range(r):
+        n_i = counts[i]
+        if distribution == 'gaussian':
+            samples = np.random.normal(means[i], scale, n_i)
+        elif distribution == 'lorentz':
+            samples = np.random.standard_cauchy(n_i) * scale + means[i]
+            samples = np.clip(samples, -50, 50)
+        elif distribution == 'uniform':
+            samples = np.random.uniform(means[i] - scale, means[i] + scale, n_i)
+        elif distribution == 'student':
+            df = kernel.nu if (kernel is not None and hasattr(kernel, 'nu')) else 3
+            samples = np.random.standard_t(df, n_i) * scale + means[i]
+        else:
+            raise ValueError("Unknown distribution type")
+        data.append(samples)
+    data = np.concatenate(data)
+    np.random.shuffle(data)
+    return data
+
+
+
+def generate_data(m,taus,weights,sigma=1):
+    if sum(weights) !=1:
+        s = sum(weights)
+        weights = np.array(weights)/s
+
+    #Return m data distributed with the pdf : Sum weights[i]*N(taus[i],sigma)
+    r = len(taus)
+
+    quelle_cloche = np.random.choice(r , size = m , p = weights)
+    #quelle_cloche[i] correspond à la cloche de provenance de data[i]
+ 
+    #taus[quelle_cloche][i] donne la moyenne de la gaussienne dont provient data[i]
+    data = np.random.normal(np.array(taus)[quelle_cloche],sigma)
+    return data
+        
+
+
+
+
+def genere_hist(weights,means):
+   
+    data = generate_data(100000,means,weights)
+    plt.hist(data, bins=50, density=True, alpha=0.6, color='b')
+    plt.xlabel("Valeurs")
+    plt.ylabel("Densité")
+    plt.title("Histogramme d'une somme de lois normales")
+    plt.show()
+
+
+
+def FCE(data, freqs):
+    # Compute the empirical characteristic function at frequencies in freqs.
+    #L'idée est de confondre les données par leur fonction caractéristique empirique prise en N fréquences.
+    #Cela réduit la taille du problème de m à N.
+
+    #L'utilisation de np notamment pour np.exp vectorise les calculs -> gains de temps et gère les nombres complexes
+
+    phi = np.array([np.mean(np.exp(-2j * np.pi * f * data)) for f in freqs])
+
+    return phi.reshape(-1, 1) #Utile pour l'avoir en tant que vecteur pour après
+
+
+def sample_uniform_frequencies(n):
+    #N = 2n+1 est la nouvelle taille du problème
+    N = 2 * n + 1
+    return np.arange(-n, n + 1).reshape(-1, 1) / N
+
+
+def fourier(x,sigma=1):
+
+    return np.exp(-2 * (x * sigma * np.pi)**2)
+
+
+
+def ESPRIT_(x, r, my_fourier, freqs1, true_freqs):
+
+    x_vec = x.flatten()
+    N = len(x_vec)
+    L = N // 2
+    M = N - L + 1
+
+    X = np.zeros((L, M), dtype=complex)
+    for i in range(L):
+        X[i, :] = x_vec[i:i+M]
+
+    U, s, Vh = np.linalg.svd(X, full_matrices=False)
+    U_r = U[:, :r]
+
+    U1 = U_r[:-1, :]
+    U2 = U_r[1:, :]
+
+    Psi = np.linalg.pinv(U1) @ U2
+    eigvals, _ = np.linalg.eig(Psi)
+
+    f_est = N * np.angle(eigvals) / (2 * np.pi)
+    t0_est = -np.sort(f_est)
+
+    V0 = my_fourier(true_freqs).reshape(-1, 1) * np.exp(2j * np.pi * np.outer(freqs1.flatten(), t0_est))
+    a0 = np.linalg.lstsq(V0, x_vec, rcond=None)[0]
+
+    return np.concatenate((a0, t0_est))
+
+
+def S_err(theta_est, r, theta_star):
+    # Assumes theta_est and theta_star are concatenations: [amplitudes, centroids]
+    centroids_est = np.sort(theta_est[r:])
+    centroids_true = np.sort(theta_star[r:])
+    return np.linalg.norm(centroids_est - centroids_true)
+
+
+
+def permute_and_compute_norm(a, b, k):
+    # Diviser a et b en 2 parties : weights_a (premières k composantes) et means_tau (les autres)
+    a_means, a_weights = a[k:], a[:k]
+
+    # Permuter les parties means dans a, et pareil pour les parties weights dans a
+    a_means_permuted= list(permutations(a_means))
+    a_weights_permuted = list(permutations(a_weights))
+
+    min_norm = np.inf  # Initialiser la norme minimale à un grand nombre
+
+    # Initialiser best_perm à la permutation identité
+    best_perm = (tuple(a_weights), tuple(a_means))
+
+    # Tester toutes les permutations de means et weights
+    for perm_means_a in a_means_permuted:
+        for perm_weights_a in a_weights_permuted:
+                
+            # Recomposer les vecteurs permutés
+            a_permuted = np.concatenate([np.array(perm_weights_a), np.array(perm_means_a)])
+                    
+                    
+            # Calculer la norme Euclidienne
+            norm = np.linalg.norm(a_permuted - b)
+            if norm < min_norm:
+                min_norm = norm
+                best_perm = (perm_weights_a, perm_means_a)
+
+    # Maintenant que nous avons best_perm, appliquer la permutation à a (modification directe de a)
+    
+    perm_weights_a, perm_means_a = best_perm
+
+    # Appliquer la permutation sur les "means" et "weights" de a
+    a_means_permuted = np.array(perm_means_a)
+    a_weights_permuted = np.array(perm_weights_a)
+
+    # Recomposer a avec les nouvelles parties permutées
+    c = np.concatenate([a_weights_permuted,a_means_permuted])
+
+    return min_norm , c # Retourner la norme minimale trouvée
+
+
+
+def batch_algo_gradient_descent(m, n, means, weights, num_steps=100, eta=0.1):
+    """
+    First, perform an ESPRIT estimation using a batch of m samples.
+    Then, run a batch (offline) preconditioned gradient descent refinement for num_steps,
+    using the fixed empirical characteristic function computed from the m samples.
+    n is here for the frequencies : N=2n+1 frequencies used.
+    """
+    r = len(means)
+
+
+    # Generate batch data and compute its FCE
+    data = generate_data(m, means, weights)
+    freqs = sample_uniform_frequencies(n)  # shape (N_freq, 1)
+    baseline_freqs = sample_uniform_frequencies(n)
+
+
+    # Compute the empirical characteristic function once for the batch
+    Y = FCE(data, freqs)  # shape (N_freq, 1)
+
+    # Initial ESPRIT estimation: theta_est = [a_est (r,), tau_est (r,)]
+    theta_est = ESPRIT_(Y, r, fourier, baseline_freqs, freqs)
+    a_est = theta_est[:r].reshape(-1, 1)
+    tau_est = theta_est[r:]
+
+    print(theta_est)
+
+    # Precompute the "G" matrix: diagonal with entries given by kernel's Fourier transform at freqs.
+    G_diag = fourier(freqs).flatten()  # shape (N_freq,)
+    G_mat = np.diag(G_diag)  # shape (N_freq, N_freq)
+
+    # Dictionary function Phi: for a given tau vector (r,), returns a matrix (N_freq x r)
+    def Phi(tau):
+        return np.exp(2j * np.pi * np.outer(freqs.flatten(), tau))
+
+    # Model function: Y_model = G * Phi(tau) * a.
+    def Y_model(a, tau):
+        return G_mat @ (Phi(tau) @ a)
+
+    # Compute K''(0): for K(t)=sum_f |ĝ(f)|^2 exp(2i*pi*f*t), we have
+    # K''(0)= - (2*pi)^2 * sum_f |ĝ(f)|^2 * f^2.
+    f_vals = freqs.flatten()
+    Kpp0 = - (2 * np.pi)**2 * np.sum(np.abs(fourier(freqs).flatten())**2 * (f_vals**2))
+
+    # Run batch gradient descent updates on the fixed FCE Y
+    for step in range(num_steps):
+        # Compute the current model prediction
+        Y_estimated = Y_model(a_est, tau_est)
+        # Residual: difference between model prediction and observed FCE
+        r_vec = Y_estimated - Y  # shape (N_freq, 1)
+
+        # Gradient with respect to amplitudes: grad_a = (G*Phi(tau))^H * r
+        grad_a = (G_mat @ Phi(tau_est)).conj().T @ r_vec  # shape (r, 1)
+
+        # Gradient with respect to tau:
+        grad_tau = np.zeros_like(tau_est, dtype=complex)
+        for i in range(r):
+            dPhi_dtau = 2j * np.pi * freqs.flatten() * np.exp(2j * np.pi * freqs.flatten() * tau_est[i])
+            grad_tau[i] = np.real(a_est[i, 0] * ((G_mat @ dPhi_dtau).conj().T @ r_vec)[0])
+
+        # Preconditioner for tau-update:
+        #P_tau = (1/(-Kpp0)) / (np.abs(a_est.flatten())**2)
+
+        P_tau=1
+        # Gradient descent update with learning rate eta
+        a_est = a_est - eta * grad_a
+        tau_est = tau_est - eta * (P_tau * grad_tau)
+
+    # Final estimated parameters (concatenated amplitudes and centroids)
+    theta_est_final = np.concatenate((a_est.flatten(), tau_est))
+    # True parameters vector: [weights, means]
+    theta_star = np.concatenate((weights, means))
+
+    norm , theta_est_final_prime = permute_and_compute_norm(theta_est_final,theta_star,r)
+    return norm , theta_est_final_prime , theta_star 
+
+
+
+def batch_algo_gradient_descent_without_estimator(m, n, means, weights,est, num_steps=100, eta=0.1):
+    """
+    First, perform an ESPRIT estimation using a batch of m samples.
+    Then, run a batch (offline) preconditioned gradient descent refinement for num_steps,
+    using the fixed empirical characteristic function computed from the m samples.
+    n is here for the frequencies : N=2n+1 frequencies used.
+    """
+    r = len(means)
+
+
+    # Generate batch data and compute its FCE
+    data = generate_data(m, means, weights)
+    freqs = sample_uniform_frequencies(n)  # shape (N_freq, 1)
+    
+
+
+    # Compute the empirical characteristic function once for the batch
+    Y = FCE(data, freqs)  # shape (N_freq, 1)
+
+    est = np.array(est)
+    a_est = est[:r].reshape(-1, 1)
+    tau_est = est[r:]
+
+    
+    
+    # Precompute the "G" matrix: diagonal with entries given by kernel's Fourier transform at freqs.
+    G_diag = fourier(freqs).flatten()  # shape (N_freq,)
+    G_mat = np.diag(G_diag)  # shape (N_freq, N_freq)
+
+    # Dictionary function Phi: for a given tau vector (r,), returns a matrix (N_freq x r)
+    def Phi(tau):
+        return np.exp(2j * np.pi * np.outer(freqs.flatten(), tau))
+
+    # Model function: Y_model = G * Phi(tau) * a.
+    def Y_model(a, tau):
+        return G_mat @ (Phi(tau) @ a)
+
+    # Compute K''(0): for K(t)=sum_f |ĝ(f)|^2 exp(2i*pi*f*t), we have
+    # K''(0)= - (2*pi)^2 * sum_f |ĝ(f)|^2 * f^2.
+    f_vals = freqs.flatten()
+    Kpp0 = - (2 * np.pi)**2 * np.sum(np.abs(fourier(freqs).flatten())**2 * (f_vals**2))
+
+    # Run batch gradient descent updates on the fixed FCE Y
+    for step in range(num_steps):
+        # Compute the current model prediction
+        Y_estimated = Y_model(a_est, tau_est)
+        # Residual: difference between model prediction and observed FCE
+        r_vec = Y_estimated - Y  # shape (N_freq, 1)
+
+        # Gradient with respect to amplitudes: grad_a = (G*Phi(tau))^H * r
+        grad_a = (G_mat @ Phi(tau_est)).conj().T @ r_vec  # shape (r, 1)
+
+        # Gradient with respect to tau:
+        grad_tau = np.zeros_like(tau_est, dtype=complex)
+        for i in range(r):
+            dPhi_dtau = 2j * np.pi * freqs.flatten() * np.exp(2j * np.pi * freqs.flatten() * tau_est[i])
+            grad_tau[i] = np.real(a_est[i, 0] * ((G_mat @ dPhi_dtau).conj().T @ r_vec)[0])
+
+        # Preconditioner for tau-update:
+        #P_tau = (1/(-Kpp0)) / (np.abs(a_est.flatten())**2)
+
+        P_tau=1
+        # Gradient descent update with learning rate eta
+        a_est = a_est - eta * grad_a
+        tau_est = tau_est - eta * (P_tau * grad_tau)
+
+    # Final estimated parameters (concatenated amplitudes and centroids)
+    theta_est_final = np.concatenate((a_est.flatten(), tau_est))
+    # True parameters vector: [weights, means]
+    theta_star = np.concatenate((weights, means))
+
+    norm , theta_est_final_prime = permute_and_compute_norm(theta_est_final,theta_star,r)
+    return norm , theta_est_final_prime , theta_star 
+
+
+
+
+
+
+def loss(teta,teta_star,r,freqs):
+    a , a_star= np.array(teta[:r]).reshape(-1, 1) , np.array(teta_star[:r]).reshape(-1, 1)
+    tau , tau_star = teta[r:] , teta_star[r:]
+
+
+    # Precompute the "G" matrix: diagonal with entries given by kernel's Fourier transform at freqs
+    G_diag = fourier(freqs).flatten()  # shape (N_freq,)
+    G_mat = np.diag(G_diag)  # shape (N_freq, N_freq)
+
+
+    # Dictionary function Phi: for a given tau vector (r,), returns a matrix (N_freq x r)
+    def Phi(tau):
+
+        return np.exp(2j * np.pi * np.outer(freqs.flatten(), tau))
+
+
+
+    # Model function: Y_model = G * Phi(tau) * a.
+    def Y_model(a, tau):
+        return G_mat @ (Phi(tau) @ a)
+
+    Y = Y_model(a,tau)
+    Y_star = Y_model(a_star,tau_star)
+
+    return 1/2 * np.linalg.norm(Y-Y_star)**2
+
+def show_loss(tau_star, tau_min,tau_max, nb_values,n): #tau == means
+    """
+    We take r=2, and let a1 = a2 = 1/2.
+
+    We want to look at the landscape of the loss function L(teta) in this configuration.
+    We Here do uniform sampling with N=2n+1 centered frequencies.
+    """
+
+    assert len(tau_star) == 2 , "Issue : r !=2 "
+
+    tau1_vals = np.linspace(tau_min,tau_max,nb_values)
+    tau2_vals = np.linspace(tau_min,tau_max,nb_values)
+
+    tau1 , tau2 = np.meshgrid(tau1_vals,tau2_vals) #Création de la grille
+
+    freqs=sample_uniform_frequencies(n)
+     
+    # Vectorized version of loss function
+    def f_vectorized(tau1_vals, tau2_vals):
+        # Crée une grille de tau1 et tau2 en une seule opération
+        teta_vals = np.array([1/2, 1/2])  # a1 = a2 = 1/2
+        
+        # Créer la grille de teta avec les bonnes valeurs
+        teta = np.vstack([np.repeat(teta_vals[0], tau1_vals.size), 
+                          np.repeat(teta_vals[1], tau2_vals.size),
+                          tau1_vals.flatten(), tau2_vals.flatten()]).T
+        
+        teta_star = np.concatenate([np.array([1/2, 1/2]), tau_star])
+        
+        # Calcul vectorisé de la perte pour toute la grille de tau1 et tau2
+        losses = np.array([loss(teta_row, teta_star, 2, freqs) for teta_row in teta])
+        return losses.reshape(tau1_vals.shape)
+
+    Z = f_vectorized(tau1,tau2)
+
+    # Tracé de la carte de chaleur
+    plt.figure(figsize=(8, 6))
+    plt.contourf(tau1, tau2, Z, levels=50, cmap='viridis')
+    plt.colorbar(label="f(tau1, tau2)")
+    plt.xlabel("Tau1")
+    plt.ylabel("Tau2")
+    plt.title("Heatmap of loss function.")
+
+
+    
+
+    plt.show()
+
+
+
+
+
+
+
+
+
+def show_loss_path1(tau_star,tau_min,tau_max,nb_values,m,n,num_steps =100,eta=0.1):
+    """
+    We take r=2, and let a1 = a2 = 1/2.
+
+    We want to look at the landscape of the loss function L(teta) in this configuration.
+    We Here do uniform sampling with N=2n+1 centered frequencies.
+    """
+    assert len(tau_star) == 2 , "Issue : r !=2 "
+
+    tau1_vals = np.linspace(tau_min,tau_max,nb_values)
+    tau2_vals = np.linspace(tau_min,tau_max,nb_values)
+
+    tau1 , tau2 = np.meshgrid(tau1_vals,tau2_vals) #Création de la grille
+
+    freqs=sample_uniform_frequencies(n)
+     
+    # Vectorized version of loss function
+    def f_vectorized(tau1_vals, tau2_vals):
+        # Crée une grille de tau1 et tau2 en une seule opération
+        teta_vals = np.array([1/2, 1/2])  # a1 = a2 = 1/2
+        
+        # Créer la grille de teta avec les bonnes valeurs
+        teta = np.vstack([np.repeat(teta_vals[0], tau1_vals.size), 
+                          np.repeat(teta_vals[1], tau2_vals.size),
+                          tau1_vals.flatten(), tau2_vals.flatten()]).T
+        
+        teta_star = np.concatenate([np.array([1/2, 1/2]), np.array(tau_star)])
+        
+        # Calcul vectorisé de la perte pour toute la grille de tau1 et tau2
+        losses = np.array([loss(teta_row, teta_star, 2, freqs) for teta_row in teta])
+        return losses.reshape(tau1_vals.shape)
+
+    Z = f_vectorized(tau1,tau2)
+
+    # Tracé de la carte de chaleur
+    plt.figure(figsize=(8, 6))
+    plt.contourf(tau1, tau2, Z, levels=50, cmap='viridis')
+    plt.colorbar(label="f(tau1, tau2)")
+    plt.xlabel("Tau1")
+    plt.ylabel("Tau2")
+    plt.title("Heatmap of loss function.")
+
+    """
+    Maintenant on fait le batch_algo_gradient_descent en gardant en mémoire les teta_k
+    """
+    
+    means = tau_star
+    weights = [1/2,1/2]
+    r = len(means)
+    N = 2*n+1
+    
+    theta_star = np.concatenate([np.array(weights), np.array(means)])
+    
+    # Generate batch data and compute its FCE
+    data = generate_data(m, means, weights)
+    freqs = sample_uniform_frequencies(n)  # shape (N_freq, 1)
+    baseline_freqs = sample_uniform_frequencies(n)
+
+
+    # Compute the empirical characteristic function once for the batch
+    Y = FCE(data, freqs)  # shape (N_freq, 1)
+
+    
+    # Initial ESPRIT estimation: theta_est = [a_est (r,), tau_est (r,)]
+
+    ###theta_est = ESPRIT_(Y, r, fourier, baseline_freqs, freqs)
+    theta_est = np.array([1/2,1/2,4,5])
+    theta_est [0], theta_est[1] = 1/2,1/2 #ICI AUCUNE ESTIMATION SUR LES WEIGHTS
+
+    a_est = theta_est[:r].reshape(-1, 1)
+    tau_est = theta_est[r:]
+    
+    tau1_traj=[tau_est[0]]
+    tau2_traj=[tau_est[1]]
+
+
+
+
+    """
+    # Precompute the "G" matrix: diagonal with entries given by kernel's Fourier transform at freqs.
+    G_diag = fourier(freqs).flatten()  # shape (N_freq,)
+    G_mat = np.diag(G_diag)  # shape (N_freq, N_freq)
+    """
+    G_diag = fourier((np.arange(N)-n)/N)
+    G_mat = np.diag(G_diag)
+
+    # Dictionary function Phi: for a given tau vector (r,), returns a matrix (N_freq x r)
+    def Phi(tau):
+        return np.exp(-2j * np.pi * np.outer(freqs.flatten(), tau))
+
+    # Model function: Y_model = G * Phi(tau) * a.
+    def Y_model(a, tau):
+        return G_mat @ (Phi(tau) @ a)
+
+    # Compute K''(0): for K(t)=sum_f |ĝ(f)|^2 exp(2i*pi*f*t), we have
+    # K''(0)= - (2*pi)^2 * sum_f |ĝ(f)|^2 * f^2.
+    f_vals = freqs.flatten()
+    Kpp0 = - (2 * np.pi)**2 * np.sum(np.abs(fourier(freqs).flatten())**2 * (f_vals**2))
+
+    def loss_nd(theta):
+        return loss(theta,theta_star,r,freqs)
+
+    # Run batch gradient descent updates on the fixed FCE Y
+    for step in range(num_steps):
+        # Compute the current model prediction
+        print("démarrage boucle ",step)
+        print(a_est,tau_est)
+        
+        Y_estimated = Y_model(a_est, tau_est)
+        # Residual: difference between model prediction and observed FCE
+        r_vec = Y_estimated - Y  # shape (N_freq, 1)
+
+        #Vrai gradient
+        theta_est = np.concatenate([np.array(a_est.flatten()),np.array(tau_est)])
+        real_grad = nd.Gradient(loss_nd)(theta_est)
+        print(f"Le vrai gradient en {theta_est} vaut {real_grad}.")
+        #Gradient for a 
+        grad_a = ((G_mat @ Phi(tau_est)).conj().T) @ r_vec
+  
+
+
+        #Gradient for tau
+        diag_elements = -2j * np.pi * (np.arange(N) - n) / N
+        Lambda = np.diag(diag_elements)
+
+        
+    
+        grad_tau = ( (a_est.conj()) * (( Lambda @ G_mat @ Phi(tau_est)).conj().T) ) @ r_vec
+        print(f"Le gradient numérique en {theta_est} vaut {grad_a} , {grad_tau}")
+
+        """
+        # Gradient with respect to amplitudes: grad_a = (G*Phi(tau))^H * r
+        grad_a = (G_mat @ Phi(tau_est)).conj().T @ r_vec  # shape (r, 1)
+
+        # Gradient with respect to tau:
+        grad_tau = np.zeros_like(tau_est, dtype=complex)
+        for i in range(r):
+            dPhi_dtau = 2j * np.pi * freqs.flatten() * np.exp(2j * np.pi * freqs.flatten() * tau_est[i])
+            grad_tau[i] = np.real(a_est[i, 0] * ((G_mat @ dPhi_dtau).conj().T @ r_vec)[0])
+        """
+        # Preconditioner for tau-update:
+        #P_tau = (1/(-Kpp0)) / (np.abs(a_est.flatten())**2)
+        #print(f"Ceci est P_tau {P_tau}")
+        P_tau = 1
+
+        # Gradient descent update with learning rate eta
+        
+        #a_est = a_est - eta * grad_a #WE DONT MODIFY a_est because we suppose it is known 
+        print("OUHOU")
+
+        print(f"tau_est est {tau_est} et grad_tau est {grad_tau}")
+        #tau_est = tau_est - eta * (P_tau @ grad_tau)
+        tau_est = tau_est - eta * grad_tau.flatten()
+        print("OUHOU")
+        tau1_traj.append(tau_est[0])
+        tau2_traj.append(tau_est[1])
+    # Final estimated parameters (concatenated amplitudes and centroids)
+    theta_est_final = np.concatenate((a_est.flatten(), tau_est))
+    # True parameters vector: [weights, means]
+    
+    theta_star = np.concatenate((np.array(weights),np.array(means)))
+
+    norm , theta_est_final_prime = permute_and_compute_norm(theta_est_final,theta_star,r)
+    
+
+
+    
+    plt.plot(tau1_traj, tau2_traj, 'b.-', markersize=8, label="Tau running")  # Ligne bleue avec points
+    # Marquer le point initial (blanc) et final (rouge)
+    plt.scatter([tau1_traj[0]], [tau2_traj[0]], color='white', s=100, edgecolors='black', label="Tau est")
+    plt.scatter([tau_star[0]], [tau_star[1]], color='red', s=100, edgecolors='black', label="Tau star")
+    plt.legend()
+    plt.show()
+
+    return norm, theta_est_final , theta_est_final_prime
+
+
+
+
+def show_loss_path2(tau_star,tau_min,tau_max,nb_values,m,n,num_steps =100,eta=0.1):
+    """
+    We take r=2, and let a1 = a2 = 1/2.
+
+    We want to look at the landscape of the loss function L(teta) in this configuration.
+    We Here do uniform sampling with N=2n+1 centered frequencies.
+    """
+    assert len(tau_star) == 2 , "Issue : r !=2 "
+
+    tau1_vals = np.linspace(tau_min,tau_max,nb_values)
+    tau2_vals = np.linspace(tau_min,tau_max,nb_values)
+
+    tau1 , tau2 = np.meshgrid(tau1_vals,tau2_vals) #Création de la grille
+
+    freqs=sample_uniform_frequencies(n)
+     
+    # Vectorized version of loss function
+    def f_vectorized(tau1_vals, tau2_vals):
+        # Crée une grille de tau1 et tau2 en une seule opération
+        teta_vals = np.array([1/2, 1/2])  # a1 = a2 = 1/2
+        
+        # Créer la grille de teta avec les bonnes valeurs
+        teta = np.vstack([np.repeat(teta_vals[0], tau1_vals.size), 
+                          np.repeat(teta_vals[1], tau2_vals.size),
+                          tau1_vals.flatten(), tau2_vals.flatten()]).T
+        
+        teta_star = np.concatenate([np.array([1/2, 1/2]), np.array(tau_star)])
+        
+        # Calcul vectorisé de la perte pour toute la grille de tau1 et tau2
+        losses = np.array([loss(teta_row, teta_star, 2, freqs) for teta_row in teta])
+        return losses.reshape(tau1_vals.shape)
+
+    Z = f_vectorized(tau1,tau2)
+
+    # Tracé de la carte de chaleur
+    plt.figure(figsize=(8, 6))
+    plt.contourf(tau1, tau2, Z, levels=50, cmap='viridis')
+    plt.colorbar(label="f(tau1, tau2)")
+    plt.xlabel("Tau1")
+    plt.ylabel("Tau2")
+    plt.title("Heatmap of loss function.")
+
+    """
+    Maintenant on fait le batch_algo_gradient_descent en gardant en mémoire les teta_k
+    """
+    
+    means = tau_star
+    weights = [1/2,1/2]
+    r = len(means)
+    theta_star = np.concatenate([np.array(weights), np.array(means)])
+ 
+    # Generate batch data and compute its FCE
+    data = generate_data(m, means, weights)
+    freqs = sample_uniform_frequencies(n)  # shape (N_freq, 1)
+    baseline_freqs = sample_uniform_frequencies(n)
+
+
+    # Compute the empirical characteristic function once for the batch
+    Y = FCE(data, freqs)  # shape (N_freq, 1)
+
+    
+    # Initial ESPRIT estimation: theta_est = [a_est (r,), tau_est (r,)]
+
+    ###theta_est = ESPRIT_(Y, r, fourier, baseline_freqs, freqs)
+    theta_est = np.array([1/2,1/2,2.2,3.2])
+    theta_est [0], theta_est[1] = 1/2,1/2 #ICI AUCUNE ESTIMATION SUR LES WEIGHTS
+
+    a_est = theta_est[:r].reshape(-1, 1)
+    tau_est = theta_est[r:]
+    
+    tau1_traj=[tau_est[0]]
+    tau2_traj=[tau_est[1]]
+
+
+
+    
+    def loss_nd(theta):
+        return loss(theta,theta_star,r,freqs)
+
+    # Precompute the "G" matrix: diagonal with entries given by kernel's Fourier transform at freqs.
+    G_diag = fourier(freqs).flatten()  # shape (N_freq,)
+    G_mat = np.diag(G_diag)  # shape (N_freq, N_freq)
+
+    # Dictionary function Phi: for a given tau vector (r,), returns a matrix (N_freq x r)
+    def Phi(tau):
+        return np.exp(2j * np.pi * np.outer(freqs.flatten(), tau))
+
+    # Model function: Y_model = G * Phi(tau) * a.
+    def Y_model(a, tau):
+        return G_mat @ (Phi(tau) @ a)
+
+    # Compute K''(0): for K(t)=sum_f |ĝ(f)|^2 exp(2i*pi*f*t), we have
+    # K''(0)= - (2*pi)^2 * sum_f |ĝ(f)|^2 * f^2.
+    f_vals = freqs.flatten()
+    Kpp0 = - (2 * np.pi)**2 * np.sum(np.abs(fourier(freqs).flatten())**2 * (f_vals**2))
+
+    # Run batch gradient descent updates on the fixed FCE Y
+    for step in range(num_steps):
+        # Compute the current model prediction
+        Y_estimated = Y_model(a_est, tau_est)
+        # Residual: difference between model prediction and observed FCE
+        r_vec = Y_estimated - Y  # shape (N_freq, 1)
+
+        # VRAI GRADIENT
+        theta_est = np.concatenate([np.array(a_est.flatten()),np.array(tau_est)])
+        real_grad = nd.Gradient(loss_nd)(theta_est)
+        print(f"Le vrai gradient en {theta_est} vaut {real_grad}.")
+
+
+        # Gradient with respect to amplitudes: grad_a = (G*Phi(tau))^H * r
+        grad_a = (G_mat @ Phi(tau_est)).conj().T @ r_vec  # shape (r, 1)
+
+        # Gradient with respect to tau:
+        grad_tau = np.zeros_like(tau_est, dtype=complex)
+        for i in range(r):
+            dPhi_dtau = 2j * np.pi * freqs.flatten() * np.exp(2j * np.pi * freqs.flatten() * tau_est[i])
+            grad_tau[i] = np.real(a_est[i, 0] * ((G_mat @ dPhi_dtau).conj().T @ r_vec)[0])
+
+        faux_grad = np.concatenate([np.array(grad_a).flatten(),np.array(grad_tau.flatten())])
+        print(f"Le faux gradient en {theta_est} est {faux_grad}.")
+        # Preconditioner for tau-update:
+        P_tau = (1/(-Kpp0)) / (np.abs(a_est.flatten())**2)
+        #P_tau = 1
+
+        # Gradient descent update with learning rate eta
+        #a_est = a_est - eta * grad_a #WE DONT MODIFY a_est because we suppose it is known 
+        tau_est = tau_est - eta * (P_tau * grad_tau)
+
+        tau1_traj.append(tau_est[0])
+        tau2_traj.append(tau_est[1])
+    # Final estimated parameters (concatenated amplitudes and centroids)
+    theta_est_final = np.concatenate((a_est.flatten(), tau_est))
+    # True parameters vector: [weights, means]
+    
+    theta_star = np.concatenate((np.array(weights),np.array(means)))
+
+    norm , theta_est_final_prime = permute_and_compute_norm(theta_est_final,theta_star,r)
+    
+
+
+    
+    plt.plot(tau1_traj, tau2_traj, 'b.-', markersize=8, label="Tau running")  # Ligne bleue avec points
+    # Marquer le point initial (blanc) et final (rouge)
+    plt.scatter([tau1_traj[0]], [tau2_traj[0]], color='white', s=100, edgecolors='black', label="Tau est")
+    plt.scatter([tau_star[0]], [tau_star[1]], color='red', s=100, edgecolors='black', label="Tau star")
+    plt.legend()
+    plt.show()
+
+    return norm, theta_est_final , theta_est_final_prime
+
+
+
+def show_loss_path_nd(tau_star,tau_min,tau_max,nb_values,m,n,num_steps =100,eta=0.1):
+    """
+    We take r=2, and let a1 = a2 = 1/2.
+
+    We want to look at the landscape of the loss function L(teta) in this configuration.
+    We Here do uniform sampling with N=2n+1 centered frequencies.
+    """
+    assert len(tau_star) == 2 , "Issue : r !=2 "
+
+    tau1_vals = np.linspace(tau_min,tau_max,nb_values)
+    tau2_vals = np.linspace(tau_min,tau_max,nb_values)
+
+    tau1 , tau2 = np.meshgrid(tau1_vals,tau2_vals) #Création de la grille
+
+    freqs=sample_uniform_frequencies(n)
+     
+    # Vectorized version of loss function
+    def f_vectorized(tau1_vals, tau2_vals):
+        # Crée une grille de tau1 et tau2 en une seule opération
+        teta_vals = np.array([1/2, 1/2])  # a1 = a2 = 1/2
+        
+        # Créer la grille de teta avec les bonnes valeurs
+        teta = np.vstack([np.repeat(teta_vals[0], tau1_vals.size), 
+                          np.repeat(teta_vals[1], tau2_vals.size),
+                          tau1_vals.flatten(), tau2_vals.flatten()]).T
+        
+        teta_star = np.concatenate([np.array([1/2, 1/2]), np.array(tau_star)])
+        
+        # Calcul vectorisé de la perte pour toute la grille de tau1 et tau2
+        losses = np.array([loss(teta_row, teta_star, 2, freqs) for teta_row in teta])
+        return losses.reshape(tau1_vals.shape)
+
+    Z = f_vectorized(tau1,tau2)
+
+    # Tracé de la carte de chaleur
+    plt.figure(figsize=(8, 6))
+    plt.contourf(tau1, tau2, Z, levels=50, cmap='viridis')
+    plt.colorbar(label="f(tau1, tau2)")
+    plt.xlabel("Tau1")
+    plt.ylabel("Tau2")
+    plt.title("Heatmap of loss function.")
+
+    """
+    Maintenant on fait le batch_algo_gradient_descent en gardant en mémoire les teta_k
+    """
+    
+    means = tau_star
+    weights = [1/2,1/2]
+    r = len(means)
+    theta_star = np.concatenate([np.array(weights), np.array(means)])
+ 
+    # Generate batch data and compute its FCE
+    data = generate_data(m, means, weights)
+    freqs = sample_uniform_frequencies(n)  # shape (N_freq, 1)
+    baseline_freqs = sample_uniform_frequencies(n)
+
+
+    # Compute the empirical characteristic function once for the batch
+    Y = FCE(data, freqs)  # shape (N_freq, 1)
+
+    
+    # Initial ESPRIT estimation: theta_est = [a_est (r,), tau_est (r,)]
+
+    ###theta_est = ESPRIT_(Y, r, fourier, baseline_freqs, freqs)
+    theta_est = np.array([1/2,1/2,-5,5])
+    theta_est [0], theta_est[1] = 1/2,1/2 #ICI AUCUNE ESTIMATION SUR LES WEIGHTS
+
+    a_est = theta_est[:r].reshape(-1, 1)
+    tau_est = theta_est[r:]
+    
+    tau1_traj=[tau_est[0]]
+    tau2_traj=[tau_est[1]]
+
+
+
+    
+    def loss_nd(theta):
+        return loss(theta,theta_star,r,freqs)
+
+    # Precompute the "G" matrix: diagonal with entries given by kernel's Fourier transform at freqs.
+    G_diag = fourier(freqs).flatten()  # shape (N_freq,)
+    G_mat = np.diag(G_diag)  # shape (N_freq, N_freq)
+
+    # Dictionary function Phi: for a given tau vector (r,), returns a matrix (N_freq x r)
+    def Phi(tau):
+        return np.exp(2j * np.pi * np.outer(freqs.flatten(), tau))
+
+    # Model function: Y_model = G * Phi(tau) * a.
+    def Y_model(a, tau):
+        return G_mat @ (Phi(tau) @ a)
+
+    # Compute K''(0): for K(t)=sum_f |ĝ(f)|^2 exp(2i*pi*f*t), we have
+    # K''(0)= - (2*pi)^2 * sum_f |ĝ(f)|^2 * f^2.
+    f_vals = freqs.flatten()
+    Kpp0 = - (2 * np.pi)**2 * np.sum(np.abs(fourier(freqs).flatten())**2 * (f_vals**2))
+
+    # Run batch gradient descent updates on the fixed FCE Y
+    for step in range(num_steps):
+        # Compute the current model prediction
+        Y_estimated = Y_model(a_est, tau_est)
+        # Residual: difference between model prediction and observed FCE
+        r_vec = Y_estimated - Y  # shape (N_freq, 1)
+
+        # VRAI GRADIENT
+        theta_est = np.concatenate([np.array(a_est.flatten()),np.array(tau_est)])
+        real_grad = nd.Gradient(loss_nd)(theta_est)
+        print(f"Le vrai gradient en {theta_est} vaut {real_grad}.")
+
+
+
+
+        # Gradient with respect to amplitudes: grad_a = (G*Phi(tau))^H * r
+        grad_a = (G_mat @ Phi(tau_est)).conj().T @ r_vec  # shape (r, 1)
+        print(f"Le gradient numérique en {theta_est} vaut {grad_a} pour a.")
+        # Gradient with respect to tau:
+        grad_tau = np.zeros_like(tau_est, dtype=complex)
+        for i in range(r):
+            dPhi_dtau = 2j * np.pi * freqs.flatten() * np.exp(2j * np.pi * freqs.flatten() * tau_est[i])
+            grad_tau[i] = np.real(a_est[i, 0] * ((G_mat @ dPhi_dtau).conj().T @ r_vec)[0])
+
+        faux_grad = np.concatenate([np.array(grad_a).flatten(),np.array(grad_tau.flatten())])
+        print(f"Le faux gradient en {theta_est} est {faux_grad}.")
+        # Preconditioner for tau-update:
+        P_tau = (1/(-Kpp0)) / (np.abs(a_est.flatten())**2)
+        #P_tau = 1
+
+        # Gradient descent update with learning rate eta
+        #a_est = a_est - eta * grad_a #WE DONT MODIFY a_est because we suppose it is known 
+        tau_est = tau_est - eta * real_grad[r:]
+
+        tau1_traj.append(tau_est[0])
+        tau2_traj.append(tau_est[1])
+    # Final estimated parameters (concatenated amplitudes and centroids)
+    theta_est_final = np.concatenate((a_est.flatten(), tau_est))
+    # True parameters vector: [weights, means]
+    
+    theta_star = np.concatenate((np.array(weights),np.array(means)))
+
+    norm , theta_est_final_prime = permute_and_compute_norm(theta_est_final,theta_star,r)
+    
+
+
+    
+    plt.plot(tau1_traj, tau2_traj, 'b.-', markersize=8, label="Tau running")  # Ligne bleue avec points
+    # Marquer le point initial (blanc) et final (rouge)
+    plt.scatter([tau1_traj[0]], [tau2_traj[0]], color='white', s=100, edgecolors='black', label="Tau est")
+    plt.scatter([tau_star[0]], [tau_star[1]], color='red', s=100, edgecolors='black', label="Tau star")
+    plt.legend()
+    plt.show()
+
+    return norm, theta_est_final , theta_est_final_prime
+
+
+