From 20c9368af58baa482a48f8e9997d9d893ab7142d Mon Sep 17 00:00:00 2001 From: Basso Ricci Jacopo Date: Tue, 12 May 2026 17:47:35 +0200 Subject: [PATCH] Caricata la UI completa e funzionante, UIIntegrata -> UI con logica della classe, UINONintegrata -> UI con logica dei minimi quadrati autoimplementata --- UI.ipynb | 603 ---------------------------------- UIIntegrata.ipynb | 674 ++++++++++++++++++++++++++++++++++++++ UINONintegrata.ipynb | 758 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1432 insertions(+), 603 deletions(-) delete mode 100644 UI.ipynb create mode 100644 UIIntegrata.ipynb create mode 100644 UINONintegrata.ipynb diff --git a/UI.ipynb b/UI.ipynb deleted file mode 100644 index 1e419c5..0000000 --- a/UI.ipynb +++ /dev/null @@ -1,603 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 5, - "id": "4557c12a", - "metadata": {}, - "outputs": [], - "source": [ - "%matplotlib widget" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "bf8113f1", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "9017764272564dc6a06a4b5963a2d871", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "VBox(children=(HBox(children=(Text(value='a * x + b', description='f(x) =', layout=Layout(width='420px')), But…" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_12072/1355624997.py:333: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n", - " plt.tight_layout()\n" - ] - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "bf9f49f0dda84eeea2349a7eaadd5ab4", - "version_major": 2, - "version_minor": 0 - }, - "image/png": "iVBORw0KGgoAAAANSUhEUgAABLAAAAGQCAYAAAC+tZleAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAaTlJREFUeJzt3Xd4FPX6///XJqSRkJBQQjEkELoiIAgCKiBI8yjYqNLBg8JRCCiiSEQEFASxAWIBrKA0/SiHIkUREY4URQWkIy2UVAMkkH3//uCX/bKkmGxIdrI8H9e115V9z3tm7rkTdm/unZ2RAQAADsnJycbf399IMmFhYebixYvGGGNOnTplvL29jSQTGRlp7Ha7Y52WLVsaSUaS2bZtm2P8ueeec4zPmzfPGGPMoUOHTHBwsGM8u8f48eMd24iMjHSMZ1q3bp1jrG/fvo7xXr16OW3Hx8fHNGjQwDz//PMmMTEx23gPHjyYaz78/Pwcc0+dOuUY/+WXXxzjLVu2NMYYExcXl+txZT4GDhxojDHm4MGDWbaRmyvj3rRpk9Oy/O57586dTscmyZQvX97cf//9ZvXq1bnmetOmTY6xunXrOsXx+uuvO5bFxsY6xrP7PRpjTN++fR3j69atc4xnjkVGRv5jXrIzd+7cPOUju8eVcefHtTrG3I79yuO6Ms4r/zZ27NjhGI+IiHCMJyUlZdlHVFSUYyzz3/3Vf+tX/m0FBAT8Yx5yOt7ccpTTOAAA+H+8BAAAHJYtW6YLFy5IkuLj4+Xj4yObzaby5csrIyNDknT48GFt2rQp2/VDQ0MdP5coUcLxszFGkjR//nwlJydLkpo1a6Zly5Zpw4YNevrppx1z7Xa7S7HPnTtX77zzju677z5FR0crIyNDO3bs0IQJE9StWzeXtpkTm83m8rqpqakF3n94eHiB9n3TTTdp69ateuKJJ9S0aVOFhITo1KlTWrp0qdq3b68ff/zRpe3nlJcrxzP/jiTpzJkzLu3HiqxyjCEhIY6fvbz+X6kbHBycZW7mv8vcFORvHQAAXDs0sAAAuMJnn32Wp3kLFixwafvHjh1z/Pzss8+qc+fOuv3225WUlOTS9q5UokQJPfroo/ryyy+1b98+JSQkqHnz5pKkVatWudQ4qlatmuPnn3/+2fHz5s2bs8wtW7aso4EXFBSklJQUGWOcHhkZGZo7d26+47ja1U2F/O7bGKMbb7xRr7/+un766SclJiZq0aJFki43EJctW5bjvqtWrer4+cCBA0pISHA8zy4vknNT5eTJk5KklJQUbdy4MR9HnXf9+vXLcvx5fbzwwgsu7fNaHWPm79bVRq6ratas6fh5y5Ytjp+v/J1eOedaurLRVtTHDQBAcVHin6cAAHB9OHv2rFavXi1JKlWqlCZNmuS0PD09XSNHjpQkffHFF5oxY4bTfzzzIjIy0vHzG2+8IV9fX23evFnvv/9+AaOXoqOj9eCDD6p+/fqqVKmSTp06pYMHD0q63LBJS0tTYGBgvrZ53333adeuXZKkYcOG6eWXX9aFCxf03HPPZZnr5eWlHj16aObMmfr777/Vrl07PfHEEypbtqyOHj2q3377TUuWLNEHH3ygVq1aFfh4C7LvKVOmaP369brnnntUpUoVBQYGauXKlY7tpaWl5biv8PBwNW3aVJs3b9aFCxfUvXt3PfHEE/rll19ybGxWr15dv/zyiySpT58+evDBB/XRRx8pMTHxmubBna7VMYaGhio+Pl7Hjx/XJ598osjISIWHh6tGjRqFEPX/07NnT/3666+SpKFDhyolJUU2m03PPPOMY06PHj0KZd+hoaGOf6tvvvmmGjVqpJCQENWrV69Q9gcAQHFEAwsAgP/fokWLdOnSJUlSu3btNGzYsCxzPvroI+3YsUMnT57UunXr1KZNm3zt45FHHtHEiRN17tw5rV692tEwa9GiRYHPxjly5IheffXVbJe1b99eYWFh+d7mU089pY8//ljHjh3TgQMH1LVrV0lSjRo1dOrUqSzzJ06cqA0bNmjnzp3atGlTjl+1LAz52ffFixe1YsUKrVixIssyLy8vx3HmZOrUqWrTpo0uXryoVatWadWqVZIu52Xv3r1Z5j/66KNavHixJGnt2rVau3atSpQooerVq2vfvn35OUzLulbH2Lp1ay1evFgZGRl65JFHJEl9+/bVvHnzCiNsh+HDh+ubb77Rhg0bdPjw4SzNqjvvvFMjRowolH23bt1a27Ztc8QhSS1bttT69esLZX8AABRHfIUQQKFYsWKFGjRoIH9/f9lsNiUmJqpfv36Kiopyd2jXtaioKPXr1+8f582bN082m02HDh3K9z7Wr18vm81WLP/jdeXXB++7775s59x7772On135GmGVKlW0atUqNWnSRAEBAYqOjtbMmTM1aNCg/Ad8lUmTJql9+/a64YYb5OfnJz8/P9WqVUtPPfWUvvjiC5e2WaZMGX3//ff617/+pZIlSyosLEyDBw/OcXulS5fWpk2bNGHCBNWvX18BAQEqWbKkatSooYceekifffaZbrvttoIcZo7ys+9OnTrp3//+t2666SaFhobK29tbYWFhateunVauXKkWLVrkuq877rhDy5cv1y233CJfX19FRkbqlVde0ZgxY7Kd365dO82YMcPxu2nSpEme9lOcXKtjfOutt9S1a1eVK1eukCLNnp+fn1avXq2XX35ZN998swICAuTv76969epp8uTJWrVqlXx9fQtl37GxsXr00UdVqVIlrrmVA+oKa7oe64pDhw6pVKlSat68OV/5BYpaUV0tHoD7HDhwwAwdOtTUqFHDBAQEmICAAFOnTh3z+OOPm19++eWa7+/MmTOmVKlS5rbbbjPvvfee+eijj0x6errp27evy3fUctXx48fN6NGjTatWrUxQUFC2d4VyhyvvmCXJ+Pv7m3r16pnXXnvNZGRkFNp+IyMjne5al5PMO3390x3qspN51zYr5BkAcO1dz3XFt99+a/r37+849qpVq5qBAwea48ePF2kcV6OuKBp2u93cdddd5umnnzZNmzY1r776qrtDAq4rfIUQ8HBff/21unXrphIlSqhXr16qX7++vLy8tHv3bi1ZskSzZs3SwYMHna7LU1D/+9//lJKSogkTJqht27aO8XfffbfIP6nas2ePXnnlFdWoUUP16tUr0q8z/ZMbbrhBkydPlnT5Ll2ffvqpRowYodOnT2vixImFss89e/bk+5pN+XXnnXfq/PnzhXamAgDAfa73umL06NGKj4/Xww8/rBo1aujAgQN666239PXXX2vHjh2qUKFCkcZzJeqKwjdnzhxlZGRo0qRJ+uuvv9S8eXP961//Uq1atdwdGnBdoIEFeLD9+/ere/fuioyM1Jo1a1SxYkWn5a+88opmzpz5j4VHampqvi78nHldnNKlSzuN+/j45Hkb10qjRo109uxZhYWFadGiRXr44YeLPIachISEOK7vIklDhgxR7dq19eabb+rFF1+Ut7f3Nd+nn5/fNd/m1by8vOTv71/o+wEAFC3qCmn69Om6/fbbnY6xQ4cOatmypd566y299NJLRR5TJuqKwvfvf/9b//73vyVd/vrk8ePH3RwRcH3hGliAB5syZYpSU1M1d+7cLEWmJJUoUUJPPPGEIiIiHGP9+vVTUFCQ9u/fr06dOqlUqVLq1auXJGnDhg16+OGHVaVKFfn5+SkiIkIjRozQ+fPnHeu3atVKffv2lSTdeuutstlsjmsjZHetCrvdrtdff1316tWTv7+/ypUrpw4dOujnn392zLl06ZImTJig6Oho+fn5KSoqSs8++2yudwnLVKpUKZcuXO0O/v7+uvXWW5WSkpLl4tgff/yxGjVqpICAAIWFhal79+7666+/nObs3btXDz74oCpUqCB/f3/dcMMN6t69u5KSkhxzsrtWxe+//6677rpLAQEBuuGGG/TSSy9l+4m2zWbTCy+8kGX86m3m5VoVixYtks1m03fffZdl2TvvvCObzabffvtNknTy5En179/fcV2dihUrqnPnzrleR+PUqVMqV66cWrVqJWOMY3zfvn0KDAxUt27dclwXAJA96orLZwNd3aC78847FRYW5rhjq1VQV1x2LeqKuXPnymazafv27VmWTZo0Sd7e3jp27FiO6wO4NjgDC/BgX3/9tapXr66mTZvma71Lly6pffv2uv322/Xqq6+qZMmSkqQvvvhC586d02OPPaYyZcpoy5YtevPNN3X06FHHBZ2fe+451apVS3PmzNGLL76oqlWrKjo6Osd9DRw4UPPmzVPHjh01aNAgXbp0SRs2bNBPP/2kxo0bS5IGDRqk+fPn66GHHtLIkSO1efNmTZ48Wbt27dLSpUtdzI41HTp0SDabzelT5okTJ+r5559X165dNWjQIJ0+fVpvvvmm7rzzTm3fvl2lS5dWenq62rdvr7S0NP3nP/9RhQoVdOzYMX399ddKTExUSEhItvs7efKkWrdurUuXLumZZ55RYGCg5syZo4CAgEI9znvuuUdBQUH6/PPP1bJlS6dlCxcu1I033qibbrpJkvTggw/q999/13/+8x9FRUXp1KlTWr16tY4cOZLjxXvLly+vWbNm6eGHH9abb76pJ554Qna7Xf369VOpUqU0c+bMQj0+APBE1BXZ+/vvv/X333+rbNmy+V63sFFXXJu64qGHHtLQoUP1ySefqGHDhk7LPvnkE7Vq1UqVK1culGMDcAV3X4QLQOFISkoykkyXLl2yLEtISDCnT592PM6dO+dY1rdvXyPJPPPMM1nWu3JepsmTJxubzWYOHz7sGMu8UOf//vc/p7lXX2x17dq1RpJ54oknsmzXbrcbY4zZsWOHkWQGDRrktHzUqFFGklm7dm0OGcjqiy++sMxFQFu2bGlq167t+B3s3r3bPPXUU0aSueeeexzzDh06ZLy9vc3EiROd1t+5c6cpUaKEY3z79u1Gkvniiy9y3e/VF1sdPny4kWQ2b97sGDt16pQJCQnJcrFVSSY2NvYft5nXi6326NHDlC9f3ly6dMkxduLECePl5WVefPFFY8zlv1VJZurUqbluK7d9lCxZ0vz5559m6tSpRpJZtmyZS9sCgOsZdUXOJkyYYCSZNWvW5Hvda4W6ovDrih49ephKlSo5XRR/27ZtRpKZO3duvrcHIP/4CiHgoZKTkyVJQUFBWZa1atVK5cqVczzefvvtLHMee+yxLGNXfnqWmpqqM2fOqHnz5jLGZHtK9T9ZvHixbDabYmNjsyzLvI348uXLJUkxMTFOy0eOHClJ+uabb/K9X6vYvXu343dQu3ZtTZ06Vffdd5/mzZvnmLNkyRLZ7XZ17dpVZ86ccTwqVKigGjVqaN26dZLk+CR05cqVOnfuXJ5jWL58uW677TY1adLEMVauXDnH1zsKU7du3XTq1CmnrwQsWrRIdrvd8RW/gIAA+fr6av369UpISMj3Pt566y2FhITooYce0vPPP6/evXurc+fO1+oQAOC6QV2Rve+//17jx49X165dddddd+U75muJuqJw64o+ffro+PHjjhxJl8++CggI0IMPPnhNjgFA7vgKIeChSpUqJenyae1Xe+edd5SSkqK4uDini31mKlGihG644YYs40eOHNG4ceP01VdfZXnTv/J6CHm1f/9+VapUKddrVB0+fFheXl6qXr2603iFChVUunRpHT58ON/7zavMrwS4IigoKNsi/0pRUVGOOyjt379fEydO1OnTp50uVLp3714ZY1SjRo1st5F5AduqVasqJiZG06dP1yeffKI77rhD9913nx555JEcT/OXLuc3u6+CFMXddDp06KCQkBAtXLhQbdq0kXT5NP8GDRqoZs2aki5fHPaVV17RyJEjFR4erttuu03/+te/1KdPnzzd6SksLExvvPGGHn74YYWHh+uNN94o1GMCAE9FXZHV7t27df/99+umm27Se++994/zqSsKV2HXFXfffbcqVqyoTz75RG3atJHdbtdnn32mzp07O/59AChcNLAADxUSEqKKFSs6Llh5pczCIqeLVfr5+WW5QGlGRobuvvtuxcfHa/To0apdu7YCAwN17Ngx9evXr9BvY535yWlRevXVVzV+/HiX1o2Njc32wqRXCgwMdLodeIsWLXTLLbfo2WefdTRa7Ha7bDab/vvf/2Z796Ari9lp06apX79++vLLL7Vq1So98cQTmjx5sn766ads/+NwrWRkZLi0np+fn7p06aKlS5dq5syZiouL08aNGzVp0iSnecOHD9e9996rZcuWaeXKlXr++ec1efJkrV27Nst1KLKzcuVKSVJCQoKOHj2a5S5WAIB/Rl3h7K+//lK7du0UEhKi5cuX56mBQV2RN1atK7y9vdWzZ0+9++67mjlzpjZu3Kjjx49n27QFUDhoYAEe7J577tF7772nLVu2OJ3K7YqdO3fqzz//1Pz589WnTx/H+OrVq13eZnR0tFauXKn4+PgcPy2NjIyU3W7X3r17VadOHcd4XFycEhMTFRkZ6fL+/0mfPn10++23u7RutWrV8r3OzTffrEceeUTvvPOORo0apSpVqig6OlrGGFWtWtXx6WFu6tWrp3r16mns2LH68ccf1aJFC82ePTvH23pHRkZq7969Wcb37NmTZSw0NFSJiYlOY+np6Tpx4kTeDjAb3bp10/z587VmzRrt2rVLxphs7xAYHR2tkSNHauTIkdq7d68aNGigadOm6eOPP851+ytWrNB7772np59+Wp988on69u2rzZs3q0QJ3v4AIL+oKy47e/as2rVrp7S0NK1ZsybbOzJmh7rCWXGsK/r06aNp06bp//7v//Tf//5X5cqVU/v27V2OF0D+cA0swIM9/fTTKlmypAYMGKC4uLgsy40xed5W5qd0V65jjNHrr7/ucnwPPvigjDHZfhqZuZ9OnTpJkmbMmOG0fPr06ZIuF9OFpVq1amrbtq1LD1cKTeny7+zixYuO43vggQfk7e2t8ePHZ/l9GWN09uxZSZevTXLp0iWn5fXq1ZOXl1eutwXv1KmTfvrpJ23ZssUxdvr0aX3yySdZ5kZHR+v77793GpszZ47Ln5RKUtu2bRUWFqaFCxdq4cKFatKkiapWrepYfu7cOV24cCFLHKVKlfrH250nJiZq0KBBatKkiSZNmqT33ntP27Zty/JJLAAgb6grLl+rq1OnTjp27JiWL1+e41fxskNd4ay41RXS5abgzTffrPfee0+LFy9W9+7d+VAMKEL8awM8WI0aNfTpp5+qR48eqlWrlnr16qX69evLGKODBw/q008/lZeXV55OA69du7aio6M1atQoHTt2TMHBwVq8eLFLF9bO1Lp1a/Xu3VtvvPGG9u7dqw4dOshut2vDhg1q3bq1hg0bpvr166tv376aM2eOEhMT1bJlS23ZskXz589Xly5d1Lp163/cT+anhL///rsk6aOPPtIPP/wgSRo7dqzL8ReGunXrqlOnTnrvvff0/PPPKzo6Wi+99JLGjBmjQ4cOqUuXLipVqpQOHjyopUuX6tFHH9WoUaO0du1aDRs2TA8//LBq1qypS5cu6aOPPpK3t3euFxZ9+umn9dFHH6lDhw568sknHbe7joyM1K+//uo0d9CgQRoyZIgefPBB3X333frll1+0cuXKAt023MfHRw888IAWLFig1NRUvfrqq07L//zzT7Vp00Zdu3ZV3bp1VaJECS1dulRxcXHq3r17rtt+8skndfbsWX377bfy9vZWhw4dNGjQIL300kvq3Lmz6tev73LcAHA9oq6QevXqpS1btmjAgAHatWuXdu3a5VgWFBSkLl26uBx/YaCuuHZ1RaY+ffpo1KhRksTXB4GiVnQ3PATgLvv27TOPPfaYqV69uvH39zcBAQGmdu3aZsiQIWbHjh1Oc/v27WsCAwOz3c4ff/xh2rZta4KCgkzZsmXN4MGDzS+//JLl9sF5vd21McZcunTJTJ061dSuXdv4+vqacuXKmY4dO5qtW7c65ly8eNGMHz/eVK1a1fj4+JiIiAgzZswYc+HChTwdv6QcH+7SsmVLc+ONN2a7bP369VluLb148WJz++23m8DAQBMYGGhq165thg4davbs2WOMMebAgQNmwIABJjo62vj7+5uwsDDTunVr8+233zpt++pbUxtjzK+//mpatmxp/P39TeXKlc2ECRPM+++/n+V21xkZGWb06NGmbNmypmTJkqZ9+/Zm3759Lt/uOtPq1auNJGOz2cxff/3ltOzMmTNm6NChpnbt2iYwMNCEhISYpk2bms8//zzXbX755ZdGkpk2bZrTeHJysomMjDT169c36enpeYoPAODseq4rIiMjc6wpro6lKFFX/D+FUVdc6cSJE8bb29vUrFkzz+sAuDZsxuTjXF8AAAAAAK5TZ86cUcWK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oRYuXKgmTZqoatWqucbozlxnZGSoe/fuSk9P1+LFi52ul5Ubb2/vLH9vX3zxhdPfqXS5+JYuF+ZXym9epcvXcsu8gyEAwPMUtB7KTqdOnSRlfU+dPn26JDnd8TcwMDDL+1VOHnzwQRljHGdDXSm3s9nz+v559uxZp+e+vr6qW7eujDG6ePGiMjIyslwionz58qpUqZLS0tIKFHd+ciZJW7dulSTeowFkwRlYgAeqVq2abrrpJn377bcaMGBAluXVq1fX7bffrscee0xpaWmaMWOGypQp47ioeXBwsO68805NmTJFFy9eVOXKlbVq1SodPHjQ5ZgaNGigHj16aObMmUpKSlLz5s21Zs0a7du3L8vcl19+WevWrVPTpk01ePBg1a1bV/Hx8dq2bZu+/fZbxcfH57qv1atXKy4u7h9jio6OdhS3kvT999/r+++/l3S54ZGamqqXXnpJknTnnXfqzjvvlCRNmDBB//3vf3XHHXfo8ccfl4+Pj2bPnq2LFy9qypQpue7Ty8tL7733njp27Kgbb7xR/fv3V+XKlXXs2DGtW7dOwcHB+r//+z/HfB8fHz3wwANasGCBUlNTHRekz01R5vpqs2fP1tq1azVkyBCtW7fOaVl4eLjuvvvubNf717/+pRdffFH9+/dX8+bNtXPnTn3yySdZrrsRHR2t0qVLa/bs2SpVqpQCAwPVtGlTVa1aNV953bp1q+Lj49W5c+d8HR8AoPgoaD2Unfr166tv376aM2eOEhMT1bJlS23ZskXz589Xly5d1Lp1a8fcRo0aadasWXrppZdUvXp1lS9fXnfddVe2223durV69+6tN954Q3v37nVcsmHDhg1q3bq1hg0blu16eX3/bNeunSpUqKAWLVooPDxcu3bt0ltvvaV77rlHpUqVUmJiom644QY99NBDql+/voKCgvTtt9/qf//7n6ZNm5ZjPvISd35yJl2u46pUqaKGDRvmuF8A16mivu0hgKIxffp0ExQUZM6dO+cYy7xt9NSpU820adNMRESE8fPzM3fccYf55ZdfnNY/evSouf/++03p0qVNSEiIefjhh83x48eNJBMbG+uYl3l76dOnTzutP3fuXCPJHDx40DF2/vx588QTT5gyZcqYwMBAc++995q//voryzaNMSYuLs4MHTrUREREGB8fH1OhQgXTpk0bM2fOnH889pYtWxpJ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gKXRwAIAAAAAAICl0cACAAAAAACApdHAAgAAAAAAgKXRwAIAAAAAAICl0cACAAAAAACApdHAAgAAAAAAgKXRwAIAAAAAAICl0cACAAAAAACApdHAAgAAAAAAgKXRwAIAAAAAAICl0cACAAAAAACApdHAAgAAAAAAgKXRwAIAAAAAAICl0cACAAAAAACApdHAAgAAAAAAgKXRwAIAAAAAAICl0cACAAAAAACApdHAAgAAAAAAgKXRwAIAAAAAAICl0cACAAAAAACApdHAAgAAAAAAgKXRwAIAAAAAAICl0cACAAAAAACApdHAAgAAAAAAgKXRwAIAAAAAAICl0cC6Drz99tuKioqSv7+/mjZtqi1btuQ4991339Udd9yh0NBQhYaGqm3btrnOBwAA1x9qCwAAUNRoYHm4hQsXKiYmRrGxsdq2bZvq16+v9u3b69SpU9nOX79+vXr06KF169Zp06ZNioiIULt27XTs2LEijhwAAFgRtQUAAHAHmzHGuDsIFJ6mTZvq1ltv1VtvvSVJstvtioiI0H/+8x8988wz/7h+RkaGQkND9dZbb6lPnz552mdycrJCQkKUkJCg0qVLFyT8647dbld8fLzCwsLk5UV/OT/InevIXcGQP9clJiYqNDRUSUlJCg4Odnc4yKOiri2oK1zH61PBkD/XkTvXkTvXUVd4vhLuDgCFJz09XVu3btWYMWMcY15eXmrbtq02bdqUp22cO3dOFy9eVFhYWI5z0tLSlJaW5nienJws6fKLr91udzH665Pdbpcxhry5gNy5jtwVDPlzHTkrfoqitqCuuHZ4fSoY8uc6cuc6cuc6cub5aGB5sDNnzigjI0Ph4eFO4+Hh4dq9e3eetjF69GhVqlRJbdu2zXHO5MmTNX78+CzjCQkJvIjkk91uV0pKiowxfOKST+TOdeSuYMif65KSktwdAvKpKGoL6oprh9engiF/riN3riN3rqOu8Hw0sJCjl19+WQsWLND69evl7++f47wxY8YoJibG8Tw5OVkREREKDQ3lVP98stvtstlsCg0N5Q0rn8id68hdwZA/15Gv609eagvqimuH16eCIX+uI3euI3euI1+ejwaWBytbtqy8vb0VFxfnNB4XF6cKFSrkuu6rr76ql19+Wd9++61uvvnmXOf6+fnJz88vy7iXlxcvIi6w2WzkzkXkznXkrmDIn2vI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IyND4eHhTuPh4eHavXt3tuucPHky2/lXvxBeafLkyRo/fnyW8VatWuU/aADAdefs2bMKCQlxdxjIg6KoLagrAAAFQV3huWhgocDGjBnj9MlqYmKiIiMjdeTIEV448ik5OVkRERH666+/OO01n8id68hdwZA/1yUlJalKlSoKCwtzdyiwEOqKa4fXp4Ihf64jd64jd66jrvB8NLA8WNmyZeXt7Z3lNOm4uDhVqFAh23UqVKiQr/nS5dO5/fz8soyHhITwouui4OBgcucicuc6clcw5M91XOOj+CiK2oK64trj9algyJ/ryJ3ryJ3rqCs8F79ZD+br66tGjRppzZo1jjG73a41a9aoWbNm2a7TrFkzp/mStHr16hznAwCA6we1BQAAcBfOwPJwMTEx6tu3rxo3bqwmTZpoxowZSk1NVf/+/SVJffr0UeXKlTV58mRJ0pNPPqmWLVtq2rRpuueee7RgwQL9/PPPmjNnjjsPAwAAWAS1BQAAcAcaWB6uW7duOn36tMaNG6eTJ0+qQYMGWrFiheNiqkeOHHE6xbJ58+b69NNPNXbsWD377LOqUaOGli1bpptuuinP+/Tz81NsbGy2p/8jd+TOdeTOdeSuYMif68hd8VTUtQV/J64jdwVD/lxH7lxH7lxH7jyfzXCPSQAAAAAAAFgY18ACAAAAAACApdHAAgAAAAAAgKXRwAIAAAAAAICl0cACAAAAAACApdHAgkvefvttRUVFyd/fX02bNtWWLVtynf/FF1+odu3a8vf3V7169bR8+fIiitR68pO7d999V3fccYdCQ0MVGhqqtm3b/mOuPVl+/+4yLViwQDabTV26dCncAC0sv7lLTEzU0KFDVbFiRfn5+almzZrX7b/b/OZuxowZqlWrlgICAhQREaERI0bowoULRRStdXz//fe69957ValSJdlsNi1btuwf11m/fr1uueUW+fn5qXr16po3b16hxwlroK5wHXWF66grCobawnXUFq6htoAMkE8LFiwwvr6+5oMPPjC///67GTx4sCldurSJi4vLdv7GjRuNt7e3mTJlivnjjz/M2LFjjY+Pj9m5c2cRR+5++c1dz549zdtvv222b99udu3aZfr162dCQkLM0aNHizhy98tv7jIdPHjQVK5c2dxxxx2mc+fORROsxeQ3d2lpaaZx48amU6dO5ocffjAHDx4069evNzt27CjiyN0vv7n75JNPjJ+fn/nkk0/MwYMHzcqVK03FihXNiBEjijhy91u+fLl57rnnzJIlS4wks3Tp0lznHzhwwJQsWdLExMSYP/74w7z55pvG29vbrFixomgChttQV7iOusJ11BUFQ23hOmoL11FbgAYW8q1JkyZm6NChjucZGRmmUqVKZvLkydnO79q1q7nnnnucxpo2bWr+/e9/F2qcVpTf3F3t0qVLplSpUmb+/PmFFaJluZK7S5cumebNm5v33nvP9O3b97otNPObu1mzZplq1aqZ9PT0ogrRsvKbu6FDh5q77rrLaSwmJsa0aNGiUOO0urwUmU8//bS58cYbnca6detm2rdvX4iRwQqoK1xHXeE66oqCobZwHbXFtUFtcX3iK4TIl/T0dG3dulVt27Z1jHl5ealt27batGlTtuts2rTJab4ktW/fPsf5nsqV3F3t3LlzunjxosLCwgorTEtyNXcvvviiypcvr4EDBxZFmJbkSu6++uorNWvWTEOHDlV4eLhuuukmTZo0SRkZGUUVtiW4krvmzZtr69atjq8CHDhwQMuXL1enTp2KJObijPeK6xN1heuoK1xHXVEw1Bauo7YoWrxfeJ4S7g4AxcuZM2eUkZGh8PBwp/Hw8HDt3r0723VOnjyZ7fyTJ08WWpxW5ErurjZ69GhVqlQpywuxp3Mldz/88IPef/997dixowgitC5XcnfgwAGtXbtWvXr10vLly7Vv3z49/vjjunjxomJjY4sibEtwJXc9e/bUmTNndPvtt8sYo0uXLmnIkCF69tlniyLkYi2n94rk5GSdP39eAQEBbooMhYm6wnXUFa6jrigYagvXUVsULWoLz8MZWEAx8fLLL2vBggVaunSp/P393R2OpaWkpKh379569913VbZsWXeHU+zY7XaVL19ec+bMUaNGjdStWzc999xzmj17trtDs7z169dr0qRJmjlzprZt26YlS5bom2++0YQJE9wdGgA4oa7IO+qKgqO2cB21BfD/cAYW8qVs2bLy9vZWXFyc03hcXJwqVKiQ7ToVKlTI13xP5UruMr366qt6+eWX9e233+rmm28uzDAtKb+5279/vw4dOqR7773XMWa32yVJJUqU0J49exQdHV24QVuEK393FStWlI+Pj7y9vR1jderU0cmTJ5Weni5fX99CjdkqXMnd888/r969e2vQoEGSpHr16ik1NVWPPvqonnvuOXl58blRTnJ6rwgODuYTUg9GXeE66grXUVcUDLWF66gtiha1hefhrx354uvrq0aNGmnNmjWOMbvdrjVr1qhZs2bZrtOsWTOn+ZK0evXqHOd7KldyJ0lTpkzRhAkTtGLFCjVu3LgoQrWc/Oaudu3a2rlzp3bs2OF43HfffWrdurV27NihiIiIogzfrVz5u2vRooX27dvnKM4l6c8//1TFihWvmwJTci13586dy1JIZhbrxpjCC9YD8F5xfaKucB11heuoKwqG2sJ11BZFi/cLD+Tea8ijOFqwYIHx8/Mz8+bNM3/88Yd59NFHTenSpc3JkyeNMcb07t3bPPPMM475GzduNCVKlDCvvvqq2bVrl4mNjb2ub3edn9y9/PLLxtfX1yxatMicOHHC8UhJSXHXIbhNfnN3tev5bkH5zd2RI0dMqVKlzLBhw8yePXvM119/bcqXL29eeukldx2C2+Q3d7GxsaZUqVLms88+MwcOHDCrVq0y0dHRpmvXru46BLdJSUkx27dvN9u3bzeSzPTp08327dvN4cOHjTHGPPPMM6Z3796O+Zm3un7qqafMrl27zNtvv82trq8T1BWuo65wHXVFwVBbuI7awnXUFqCBBZe8+eabpkqVKsbX19c0adLE/PTTT45lLVu2NH379nWa//nnn5uaNWsaX19fc+ONN5pvvvmmiCO2jvzkLjIy0kjK8oiNjS36wC0gv393V7reC8385u7HH380TZs2NX5+fqZatWpm4sSJ5tKlS0UctTXkJ3cXL140L7zwgomOjjb+/v4mIiLCPP744yYhIaHoA3ezdevWZfv6lZmvvn37mpYtW2ZZp0GDBsbX19dUq1bNzJ07t8jjhntQV7iOusJ11BUFQ23hOmoL11BbwGYM5x0CAAAAAADAurgGFgAAAAAAACyNBhYAAAAAAAAsjQYWAAAAAAAALI0GFgAAAAAAACyNBhYAAAAAAAAsjQYWAAAAAAAALI0GFgAAAAAAACyNBhYAAACAYmf16tV655133B0GAKCI0MACAAAAUKwcP35cQ4YM0bx58/T111+7tI2zZ8+qfPnyOnTo0DWLa968eSpduvQ1256VtWrVSsOHD3fb/m+77TYtXrzYbfsHUPRoYAEAAAAoVoYMGaIZM2Zo8eLFGjt2rBITE/O9jYkTJ6pz586Kioq65vEhq5yae1FRUZoxY0a+tzd27Fg988wzstvtBQ8OQLFAAwsACsnp06dVoUIFTZo0yTH2448/ytfXV2vWrHFjZAAAFG9fffWV7r33XlWqVEk7duzI91lP586d0/vvv6+BAwcWToAFcPHixSLbV3p6epHt61rr2LGjUlJS9N///tfdoQAoIjSwAKCQlCtXTh988IFeeOEF/fzzz0pJSVHv3r01bNgwtWnTxt3hAQBQ7Hz44YcqU6aM0tLSnMa7dOmi3r1753k7y5cvl5+fn2677TZJkt1u1w033KBZs2Y5zdu+fbu8vLx0+PBhSdL06dNVr149BQYGKiIiQo8//rj+/vvvXPc1a9YsRUdHy9fXV7Vq1dJHH33ktNxms2nWrFm67777FBgYqIkTJ0qSvvzyS91yyy3y9/dXtWrVNH78eF26dCnH/fTr109dunTR+PHjVa5cOQUHB2vIkCFOTapWrVpp2LBhGj58uMqWLav27dtLkn777Td17NhRQUFBCg8PV+/evXXmzBnHeqmpqerTp4+CgoJUsWJFTZs2Lcv+09LSNGrUKFWuXFmBgYFq2rSp1q9fL0lav369+vfvr6SkJNlsNtlsNr3wwgtq1aqVDh8+rBEjRjjGMy1evFg33nij/Pz8FBUVlWWf3t7e6tSpkxYsWJBr/gF4DhpYAFCIOnXqpMGDB6tXr14aMmSIAgMDNXnyZHeHBQBAsfTwww8rIyNDX331lWPs1KlT+uabbzRgwIA8b2fDhg1q1KiR47mXl5d69OihTz/91GneJ598ohYtWigyMtIx74033tDvv/+u+fPna+3atXr66adz3M/SpUv15JNPauTIkfrtt9/073//W/3799e6deuc5r3wwgu6//77tXPnTg0YMEAbNmxQnz599OSTT+qPP/7QO++8o3nz5jmaWzlZs2aNdu3apfXr1+uzzz7TkiVLNH78eKc58+fPl6+vrzZu3KjZs2crMTFRd911lxo2bKiff/5ZK1asUFxcnLp27epY56mnntJ3332nL7/8UqtWrdL69eu1bds2p+0OGzZMmzZt0oIFC/Trr7/q4YcfVocOHbR37141b95cM2bMUHBwsE6cOKETJ05o1KhRWrJkiW644Qa9+OKLjnFJ2rp1q7p27aru3btr586deuGFF/T8889r3rx5Tvts0qSJNmzYkGtOAHgQAwAoVOfOnTPVqlUzPj4+5tdff3V3OAAAFGuPPfaY6dixo+P5tGnTTLVq1Yzdbs/zNjp37mwGDBjgNLZ9+3Zjs9nM4cOHjTHGZGRkmMqVK5tZs2bluJ0vvvjClClTxvF87ty5JiQkxPG8efPmZvDgwU7rPPzww6ZTp06O55LM8OHDnea0adPGTJo0yWnso48+MhUrVswxlr59+5qwsDCTmprqGJs1a5YJCgoyGRkZxhhjWrZsaRo2bOi03oQJE0y7du2cxv766y8jyezZs8ekpKQYX19f8/nnnzuWnz171gQEBJgnn3zSGGPM4cOHjbe3tzl27FiW4xgzZky2uckUGRlpXnvtNaexnj17mrvvvttp7KmnnjJ169Z1Gvvyyy+Nl5eX4/gAeDbOwAKAQrZ//34dP35cdrv9mt7pCACA69HgwYO1atUqHTt2TNLli4P369fP6etn/+T8+fPy9/d3GmvQoIHq1KnjOAvru+++06lTp/Twww875nz77bdq06aNKleurFKlSql37946e/aszp07l+1+du3apRYtWjiNtWjRQrt27XIaa9y4sdPzX375RS+++KKCgoIcj8GDB+vEiRM57kuS6tevr5IlSzqeN2vWTH///bf++usvx9iVZ55l7mvdunVO+6pdu7akyzXM/v37lZ6erqZNmzrWCQsLU61atRzPd+7cqYyMDNWsWdNpO999953279+fY7w5ySlve/fuVUZGhmMsICBAdrs9y1dKAXimEu4OAAA8WXp6uh555BF169ZNtWrV0qBBg7Rz506VL1/e3aEBAFAsNWzYUPXr19eHH36odu3a6ffff9c333yTr22ULVtWCQkJWcZ79eqlTz/9VM8884w+/fRTdejQQWXKlJEkHTp0SP/617/02GOPaeLEiQoLC9MPP/yggQMHKj093alxlF+BgYFOz//++2+NHz9eDzzwQJa5VzfersW+7r33Xr3yyitZ5lasWFH79u37x23+/fff8vb21tatW+Xt7e20LCgoqEDx5iY+Pl6BgYEKCAgotH0AsA4aWABQiJ577jklJSXpjTfeUFBQkJYvX64BAwbo66+/dndoAAAUW4MGDdKMGTN07NgxtW3bVhEREflav2HDhvr444+zjPfs2VNjx47V1q1btWjRIs2ePduxbOvWrbLb7Zo2bZq8vC5/keXzzz/PdT916tTRxo0b1bdvX8fYxo0bVbdu3VzXu+WWW7Rnzx5Vr149P4elX375RefPn3c0dH766ScFBQXlmp9bbrlFixcvVlRUlEqUyPrfw+joaPn4+Gjz5s2qUqWKJCkhIUF//vmnWrZsKelyPjMyMnTq1Cndcccd2e7H19fX6eyp3MYz83aljRs3qmbNmk4Nst9++00NGzbM8dgAeBa+QggAhWT9+vWaMWOGPvroIwUHB8vLy0sfffSRNmzYkOUuRwAAIO969uypo0eP6t13383XxdsztW/fXr///nuWs7CioqLUvHlzDRw4UBkZGbrvvvscy6pXr66LFy/qzTff1IEDB/TRRx85Nbiy89RTT2nevHmaNWuW9u7dq+nTp2vJkiUaNWpUruuNGzdOH374ocaPH6/ff/9du3bt0oIFCzR27Nhc10tPT9fAgQP1xx9/aPny5YqNjdWwYcMcDbfsDB06VPHx8erRo4f+97//af/+/Vq5cqX69++vjIwMBQUFaeDAgXrqqae0du1a/fbbb+rXr5/TNmvWrKlevXqpT58+WrJkiQ4ePKgtW7Zo8uTJjrPjoqKi9Pfff2vNmjU6c+aM46uQUVFR+v7773Xs2DHHnQ9HjhypNWvWaMKECfrzzz81f/58vfXWW1nytmHDBrVr1y7XnADwIO6+CBcAAAAA5Ffv3r1NWFiYuXDhgkvrN2nSxMyePTvL+MyZM40k06dPnyzLpk+fbipWrGgCAgJM+/btzYcffmgkmYSEBGNM9hcqnzlzpuNmLjVr1jQffvih03JJZunSpVn2tWLFCtO8eXMTEBBggoODTZMmTcycOXNyPJ6+ffuazp07m3HjxpkyZcqYoKAgM3jwYKf8tGzZ0nHh9Sv9+eef5v777zelS5c2AQEBpnbt2mb48OGOC+OnpKSYRx55xJQsWdKEh4ebKVOmZNlWenq6GTdunImKijI+Pj6mYsWK5v7773e6gc2QIUNMmTJljCQTGxtrjDFm06ZN5uabbzZ+fn7myv+eLlq0yNStW9f4+PiYKlWqmKlTpzrFfPToUePj42P++uuvHHMCwLPYjDHGrR00AAAAAMinNm3a6MYbb9Qbb7zh0vrffPONnnrqKf3222+5nqFUXPTr10+JiYlatmyZu0MpEqNHj1ZCQoLmzJnj7lAAFBGugQUAAACg2EhISND69eu1fv16zZw50+Xt3HPPPdq7d6+OHTuW72towf3Kly+vmJgYd4cBoAjRwAIAAABQbDRs2FAJCQl65ZVXVKtWrQJta/jw4dcmKBS5kSNHujsEAEXs/wPUq4fz0o3WewAAAABJRU5ErkJggg==", - "text/html": [ - "\n", - "
\n", - "
\n", - " Figure\n", - "
\n", - " \n", - "
\n", - " " - ], - "text/plain": [ - "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "25a3fc7b5bf24dcca81672a20bbd7687", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Output()" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "bfe2b9ab3d534e048055dbf644ad0aeb", - "version_major": 2, - "version_minor": 0 - }, - "image/png": "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brhBFRUVysrK0uzZs/XOO+8kvI+pU6cqKytLkydP1l133RU/N2fOHEnS+PHjlZmZqQcffFAbN26M3y3EyEYgBAAAgD2E26V7fiTVVkkej+RLl7zpXb97PF3H7/lR13WD4IMPPtCNN96oZ555Rs3NzXrllVc0Z84cvf322/ra176mn/3sZ/rss8/0u9/9TkuXLtWOHTt6PUdbW5vOPfdcnXvuufr000/1j3/8Q3/+85917733SpI2vfSyPvykRnuq6vXgw/9Pfn+2Fn/pn5TmdMqSFImachqGtryyWauu/p7+8/e/V11dnb761a9q0aJFampqir/WAw88oNtuu00NDQ2aPXu2rrnmmvi5iRMn6rnnnlMwGNQf/vAHXXvttXrxxRclSa+++qokad++fWppadEll1wyKJ8/DA8CIQAAAOzhjRcOhkGjx/45w3kwFL7x4qC8nNPplGVZ2r59u0KhkIqLi3XCCSfod7/7nS677DKdc845MgxDp59+ur74xS/qkUce6fUcTzzxhHJzc7Vy5Uq53W5NmDBBV199tR566CFJByuF7vzwA31n2aW6+3d/0IzjT4hXErUOnH/ggQd06aWX6swzz1RaWppWrlyp3NxcPfHEE/HXuvTSS3XiiSfK5XJp2bJlCXcQL7zwQpWVlcnhcOjss89WRUWFNm7cOCifJ6QWgRAAAAD28Nqmrt97hsGY2PHXnh+Ul5s8ebLuv/9+3XXXXSouLtbChQu1detW7d69W2vWrFFOTk7811/+8hdVVvZerrp7925t27Yt4dp//dd/VXV1ddeQDYc++2y/Lv7qV7Tq2utVcd75kg5WEnUcqCS6b98+TZo0KeG5y8vLEwq/BAKB+J8zMjLU0tIS//jBBx/UrFmzlJeXp5ycHD355JOqr68flM8TUotACAAAAHsINvZuyteT48B1g+R//s//qb///e+qqanRiSeeqKVLl6qsrExXX321Ghsb479aWlp0zz339Hp8WVmZZs+enXBtMBjU9u3bJUmGGdV3v/kNzT/nXF1x1QpJByuJOiS5nV0/7o8fP167d+9OeO7du3cPqDXEJ598omXLlum2225TbW2tGhsbdf7558s6kDoNitOMasweAAAA7MGfIx2qF7t14LpBsGPHDq1fv16hUEhut1uZmZlyuVz653/+Z9177736+9//rmg0qnA4rM2bN+u9997r9Rxf/OIXVVNTo9/+9rdqb29XJNKhN9/ZpiefXq/WcIe++93vyO/P1OrbfqVIZ1ThjqginVE5DUMOwxEPa5deeqkefPBBvfjii+rs7NSdd96p/fv36/zzzz/k+2hpaZFlWSoqKpJhGHryySf1zDPPxM8XFhbKMAx99NFHg/J5w/AiEAIAAMAeTjmz63cz2vf52PFT5g/Ky0UiEd10000qLi5Wfn6+nnvuOd1333066aST9Kc//Uk33nijCgsLNW7cON10000Kh8O9niMzM1PPPvusNmzYoEmTJqmwsFDLli7Vnr2fqqk1ogcffFCbnn9eUycEdPSEYh09oVi/v+tXys/yJNwMnT9/vu68805dfvnlys/P15///Gc99dRTA6oEOm3aNP37v/+7zjnnHOXn5+vhhx/WP/3TP8XP+3w+3XLLLTrvvPOUk5MT39+I0cFhxe71YlQKBoPKzs5WU1OT/H7/sL62aZqqra2N/28R7IO5ty/m3r6Ye3saqfPe3t6uXbt2qby8XF7vYfQNDLd3tZboq7CMGZXCYamoRLrh9hHXjzAaNbW/JayoafZqMu80DOVneQa1r6BlWers7JTL5ZLDcah1tp9fsrlM5c+4djNyvrMBAACAoeTxSlfd1BX6wmEp1Ca1t3X9HguDV9004sKgJLV3RtUZNZXmcsYriDocUprTqc6oqfaOJHc9gUNwpXoAAAAAwLApLu26A/jGi13VRIONXXsGT5kvzfrCiAyD0sH2Ej3v1cXCYew8cLgIhAAAALAXj1ead27Xr1HCONA+wrIOhsDYx93PA4eLJaMAAADACOd1OeVyGuqIRuMhMLaH0OU05E1L0lsROATuEAIAAAAjnNNpyJ+epmBbhyKdB/cLug4cH8yCMrAXAiEAAAAwCnjTXErLMtTeEZVpWjIMh7xpTsIgjgiBEAAAABhholFT7Z3dgp/LKafTkNMwlOEhAGLwEAgBAACAEaQ90qlgqEOdUTN+rPXA0lBvGj++Y3Dx3wsAAADACBGNmgqGOhQ1TbldTnnSnHK7nIqapoJtXceBwUQgBAAAAIZIXV2dzjnnHPn9fqWlpem0007r93oa0GO4EQgBAACAIfK73/1OTqdTjY2N6ujo0EsvvRQ/N2nSJD3++OMJ19OAHsONRcgAAADAENm1a5emT58uI0kl0PaOTjWHIvHCMTSgx3AjEAIAAGB0CzdJde8M72sWHi95svu95Gtf+5oef/xxORwO/eEPf9Cvf/1r3Xnnndq6dasuuPCr+uSTT/Stby6V4XTqgq99Xb+84y5lel3xBvRpzq5lozSgx1AiEAIAAGB0q3tHeviM4X3Nr/9DGn96v5c8+uijuuyyy5STk6M77rhD9913n6SuwjFr/viAXnvtNf3kZ7/Q4i/9Uzz0tbR3KtObppZ2GtBjeBAIAQAAgGEUKxzjcKhX4ZhIZ1SWLOVneWhAj2FBIAQAAACGUbLCMN0Lx9CAHsOFQAgAAIDRrfD4riWcw/2an1OsMIzhSAx8FI5BKhAIAQAAMLp5sg+5n28k8bqcanUaKigs0q6PP5ZE4RikDvehAQAAgCFkWZZawx1qj3TKPHAb0J+epqv/9Vr94fdrdNT4gP515ffkNCgcg+HHHUIAAABgiKz5/R8UDHWoqTWif/rqxfqnr16s/S1h+dPT9I3/eYEu+MqXKRyDlCIQAgAAAEMgGjUVDHUoappyuxJ7CgbbOpSf5VGGJy3Vw4TN8V8QAAAAwBCItZdIOxAGpYPtJTqjpto7ov0/ATAMCIQAAADAEIi1l+hZM7R7ewkg1QiEAAAAwBCItY+weuQ+2ktgJCEQAgAAYFSyeiatEcbrcsrlNNQRjcZDIO0lEo30ObQDisoAAABgVElL6yrE0tbWJp/Pl+LRHBSNmmrvjB6sGupyyp+epmBbhyKdB/cLupy0l4hpa2uTdHBOMfwIhAAAABhVnE6ncnJyVFtbK0lKT0+Xw5Ha5ZfhSKdawp2KRs34MafTUKbXpYw0Q2GHKcu05DAc8rgcUrRT7dHOFI64f5ZlqbOzUy6Xa0g+t5Zlqa2tTbW1tcrJyZHTyd3SVCEQAgAAYNQJBAKSFA+FqWSaXY3nTUtydtsXGDUtGQ4pw5smI8WB9XBZliXTNGUYxpCG7ZycnPhcIjUIhAAAABh1HA6HSkpKVFRUpI6OjpSOZfveBv3jw0qV5qUnFOgwLamyoU1nTS/S9LLclI3v8zBNU/v371d+fr6MIVrampaWxp3BEYBACAAAgFHL6XQOa6gItkW0szqo1vYOZXjTNCXgV1uH1NphqdPqPY62jq5fXq932MY4GEzTVFpamrxe75AFQowMBEIAAABgAHZWNenpt/Zqf3NYkiXJofwsjyYVZklyxIvJxJimJUtdS0aBkYpACAAAABxCsC2ip9/aq2BbRBMLMmUYXQGwsqFVH1Q1KsuXpsqGVpXmZiScy8/yaEqJP9XDB5IiEAIAAACHsLM6qP3NYU0szIwXiDEMh0pzM7SnvkWzygu0p75Ze+pb5FDX/cP8LI8WzSyT3+dO6diB/hAIAQAAgENobe+QZPWqFmoYDjkkZae7tXT+0dpZ1W1/YYmfMIgRj0AIAAAAHELXPsD+9wn6fW7NOqogZWMEPg9KBgEAAACHMCXgV36WR5UNrTJNS5LYJ4gxgTuEAAAAQA99tZdYNLNM67buZZ8gxhQCIQAAANBNsvYSi2aWsU8QYw6BEAAAADigv/YS67bu1dL5R7NPEGMKewgBAACAA2LtJUrzMuLFY2LtJfY3h7WzKpjiEQKDi0AIAAAAHHCo9hJd54Gxw3aBcPXq1TrllFOUlZWloqIiLVmyRDt27Ei4pr29XcuXL1d+fr4yMzN14YUXqqamJuGaTz75RIsXL1Z6erqKiop07bXXqrOzM+GajRs3atasWfJ4PJoyZYruu+++XuO5++67NWnSJHm9Xs2dO1evvvrqoL9nAAAADEz39hLddW8vAYwltguEzz//vJYvX66XX35Z69evV0dHhxYuXKjW1tb4Nddcc43+9re/6dFHH9Xzzz+vyspKXXDBBfHz0WhUixcvViQS0UsvvaT7779f9913n26++eb4Nbt27dLixYt19tlna+vWrVq5cqW+853v6Omnn45f8/DDD2vVqlW65ZZb9MYbb+jEE09URUWFamtrh+eTAQAAYHPBtoje+Lhe/3i3Sm98XK/ibC/tJWArDsuyrENfNnbV1dWpqKhIzz//vM4880w1NTWpsLBQDz30kL761a9Kkt5//30dd9xx2rx5s0499VQ99dRT+uIXv6jKykoVFxdLktasWaPrr79edXV1crvduv766/XEE09o27Zt8de66KKL1NjYqHXr1kmS5s6dq1NOOUV33XWXJMk0TZWVlel73/uevv/97w9o/MFgUNnZ2WpqapLfP7x/QZmmqdraWhUVFckwbPd/C7bG3NsXc29fzL09jfV5T1ZNdHpZrrbvbdD+5nCv9hKTA9mpHfQwSfXcp/JnXLuxfZXRpqYmSVJeXp4kacuWLero6NCCBQvi1xx77LGaMGFCPBBu3rxZxx9/fDwMSlJFRYWuuuoqbd++XSeddJI2b96c8Byxa1auXClJikQi2rJli2644Yb4ecMwtGDBAm3evDnpeMPhsMLhcPzjYLBrY7NpmjJN83N+Fj4f0zRlWdawvy5Sj7m3L+bevph7exrL8x5si+jprZ+oqa1DE/IzulUTbdP2Tz7TklMmqboppJb2DmUe6EOY5XOPyc9FX1I993b5PI8Etg6Epmlq5cqV+sIXvqAZM2ZIkqqrq+V2u5WTk5NwbXFxsaqrq+PXdA+DsfOxc/1dEwwGFQqF1NDQoGg02uc177//ftIxr169Wrfeemuv43V1dWpvbx/Aux48pmmqqalJlmWNyf81RHLMvX0x9/bF3NvTWJ737Z8G9Wl9UONyvQqF2uLHsz2WPq0P6v09VZo+zi9lOCWZCjU3KtScuvEOt1TPfXOzjT7ZKWbrQLh8+XJt27ZNL7zwQqqHMmA33HCDVq1aFf84GAyqrKxMhYWFKVky6nA4VFhYOOb+kUD/mHv7Yu7ti7m3p7E87zv2R+X1BJWVmdnrnDdkyeXNUFFRUQpGNjKkeu69Xu+wv6Zd2TYQrlixQmvXrtWmTZs0fvz4+PFAIKBIJKLGxsaEu4Q1NTUKBALxa3pWA41VIe1+Tc/KpDU1NfL7/fL5fHI6nXI6nX1eE3uOvng8Hnk8nl7HDcNIyTerw+FI2WsjtZh7+2Lu7Yu5t6exOu9ZPo/kcMiyFO83KOlAIRmHsnyeMfeeD1cq597un/vhZLvPtGVZWrFihR577DE999xzKi8vTzg/e/ZspaWlacOGDfFjO3bs0CeffKJ58+ZJkubNm6d33nknoRro+vXr5ff7NW3atPg13Z8jdk3sOdxut2bPnp1wjWma2rBhQ/waAAAADI0pAT/VRAHZ8A7h8uXL9dBDD+kvf/mLsrKy4nv+srOz5fP5lJ2drcsvv1yrVq1SXl6e/H6/vve972nevHk69dRTJUkLFy7UtGnTtHTpUt12222qrq7WjTfeqOXLl8fv3l155ZW66667dN111+nb3/62nnvuOT3yyCN64okn4mNZtWqVli1bppNPPllz5szRHXfcodbWVn3rW98a/k8MAADAGBVsi2hndVCt7R3KOFAgxp/u1qKZZVq3da/21Lf0qibq97lTPWxgWNguEN5zzz2SpLPOOivh+L333qvLLrtMknT77bfLMAxdeOGFCofDqqio0G9/+9v4tU6nU2vXrtVVV12lefPmKSMjQ8uWLdN//Md/xK8pLy/XE088oWuuuUa//vWvNX78eP3hD39QRUVF/Jqvf/3rqqur080336zq6mrNnDlT69at61VoBgAAAJ9PstYSsRYSS+f7tLOqW1gs8RMGYSu270M42tGHEKnA3NsXc29fzL09jfZ5D7ZF9MCmDxRsi6g0t3triVb5091aOv9owl8SqZ57+hAOn9H3nQ0AAAAMwM7qoPY3h1WalxEvHGMYDpXmZmh/c1g7q4IpHiGQegRCAAAAjEmt7R2SLBkOR8Jxw3DIET8P2Jvt9hACAABgbOpZPKYrB3YtE+3ZWsKSlOFNS9VQgRGDQAgAAIBRr6/iMVk+l1xOhyobWnvtIaS1BNCFQAgAAIBRLdgW0dNv7VWwLaKJBZkJwU+SvG4XrSWAJAiEAAAAGNVixWMmFmbG9wvGisfsqW/RKZOLlO5x0VoC6AOBEAAAAKPaoYrHWJalWUcVpGRswEhHIAQAAMCoQvEYYPAQCAEAADBqUDwGGFwEQgAAAIwKFI8BBh+BEAAAAKMCxWOAwUcgBAAAwKhA8Rhg8BmpHgAAAAAwEF3FYbqWiXZH8Rjg8yMQAgAAYFSYEvArP8ujyobWeCikeAxwZAiEAAAAGBX86e6uIjHpbu2pb9Hu2mbtqW85eJz9gsBhYw8hAAAARpyevQanBPzyp7s1OZCtpfN92lkVpHgMMAgIhAAAABhR+uo1GGshMTmQLb/PTfEYYJCwZBQAAAAjRs9eg+VFfk0syFSwLaJ1W/cqGIqkeojAmEIgBAAAwIgR6zVYmpchw0jsNbi/OaydVcEUjxAYWwiEAAAAGDEO1Wuw6zyAwUIgBAAAwIhBr0FgeFFUBgAAACnTs5pocbY33muwNLdr2Si9BoGhQyAEAABASiSrJjq9LFfb9zZoT32LHAfOxKqM0l4CGFwEQgAAAAy7ntVEu98J3L63QUvmlKumMUSvQWCIEQgBAAAw7GLVRCcWZsYLyMSqie6pb1FNY4heg8AwoKgMAAAAhh3VRIGRgUAIAACAYUc1UWBkYMkoAAAAhhzVRIGRiUAIAACAIUU1UWDkIhACAABgyFBNFBjZCIQAAAAYFD2XhU4J+KkmCoxwBEIAAAAcsWTLQov8PlFNFBi5CIQAAAA4Iv0tC61rCsm0LJmmJcM4GAqpJgqMDLSdAAAAwBGJLQstzcuIh77YstCoJRkOQ5UNrfEWE1QTBUYO7hACAADgiPTXZN7tNHTsuBzVBkNUEwVGIAIhAAAAjkj3JvN9LQudHMhWxUll2lkVpJooMMIQCAEAAHBEpgT8h2wy7/e5qSYKjEAEQgAAAByWvtpLLJpZpnVb97IsFBhlCIQAAAAYsGTtJRbNLNPS+UezLBQYZQiEAAAAGJD+2kus27pXS+cfzbJQYJSh7QQAAAAGpL/2Evubw9pZFUzxCAEcLgIhAAAABqS/9hKO+HkAowmBEAAAAAPSvb1Ed7H2El3nAYwm7CEEAABAL8G2iD6salRlTYNKWw1NLckZUHsJAKMLgRAAAAAJYpVE64PtioTDcu9rVYG/VotmltFeAhhjCIQAAACI61lJNBQy5POlq6qxLV5JlPYSwNhBIAQAAEBcrJLoxMJMxUrHxCqJ7qlv0c6qoGYdVUB7CWCMoKgMAAAA4qgkCtgLgRAAAABxVBIF7IVACAAAgLjulURjoZBKosDYRSAEAABAnD/d3VUxNN2tPfUt2vdZSHvqWw4ep3gMMKZQVAYAAMDGgm0R7azuVjE04NfkQLaWzvfpw8pGVdbsV2lxvqaW5hAGgTGIQAgAAGBTsX6D+5vD6uoo6Ij3FJwcyNZJ5QUal2GqqKhAhsHCMmAs4jsbAADAhnr2Gywv8mtiQaaCbRGt27pXwVAk1UMEMAy4QwgAAGADPZeGtoU74v0GYy0mevYbnDkpL8WjBjDUCIQAAABjXF9LQ8MdneqM0m8QsDuWjAIAAIxhyZaGRjpN1TS1KRTuTLiefoOAvRAIAQAAxrCd1UHtbw6rNC9DhnFwaejUQLYsy6EPq5voNwjYmO0C4aZNm/SlL31JpaWlcjgcevzxxxPOX3bZZXI4HAm/Fi1alHDNZ599pksuuUR+v185OTm6/PLL1dLSknDN22+/rTPOOENer1dlZWW67bbbeo3l0Ucf1bHHHiuv16vjjz9eTz755KC/XwAAYG9dSz97Lw31eVwK5Pjkdjq1p75Fu2ub6TcI2JDt9hC2trbqxBNP1Le//W1dcMEFfV6zaNEi3XvvvfGPPR5PwvlLLrlEVVVVWr9+vTo6OvStb31LV1xxhR566CFJUjAY1MKFC7VgwQKtWbNG77zzjr797W8rJydHV1xxhSTppZde0sUXX6zVq1fri1/8oh566CEtWbJEb7zxhmbMmDFE7x4AANhN19JPh0zTit8hlLruBmZ403TOjHFK97gO9iEs8RMGARuxXSA877zzdN555/V7jcfjUSAQ6PPce++9p3Xr1um1117TySefLEm68847df755+t//a//pdLSUj344IOKRCL64x//KLfbrenTp2vr1q361a9+FQ+Ev/71r7Vo0SJde+21kqQf/ehHWr9+ve666y6tWbNmEN8xAACwi76azE8J+JWf5VFlQ6tKc7uWjXZfGnrCpDwCIGBjtguEA7Fx40YVFRUpNzdX55xzjn784x8rPz9fkrR582bl5OTEw6AkLViwQIZh6JVXXtFXvvIVbd68WWeeeabc7oN/uVZUVOjnP/+5GhoalJubq82bN2vVqlUJr1tRUdFrCWtP4XBY4XA4/nEwGJQkmaYp0zSP9K0fFtM0ZVnWsL8uUo+5ty/m3r6Y+5FvZ3WT1r+1T/XNYTnUVUu0IMujhSeWaeEJ4/XMW3u1u65ZDodkWQfOnTBemR5X0nll3u0r1XPP19zwIRD2sGjRIl1wwQUqLy/XRx99pB/84Ac677zztHnzZjmdTlVXV6uoqCjhMS6XS3l5eaqurpYkVVdXq7y8POGa4uLi+Lnc3FxVV1fHj3W/JvYcyaxevVq33nprr+N1dXVqb28/7Pd7JEzTVFNTkyzLkmHYbjuqrTH39sXc2xdzP7K1tHfqL29UqjnUqeJsjwyHQ6ZlqeazZj3+8gf6yqxSVRyXqz3729QWjird49TE/HRlGu2qrU3+8wPzbl+pnvvm5uZhf027IhD2cNFFF8X/fPzxx+uEE07Q5MmTtXHjRp177rkpHFmXG264IeHOYjAYVFlZmQoLC+X3D281MNM05XA4VFhYyD8SNsPc2xdzb1/M/cj26a56tXUaOqo0L6F4TEZ6V5P5pqhbJ5UX6KgJh/e8zLt9pXruvV7vsL+mXREID+Goo45SQUGBdu7cqXPPPVeBQEC1tbUJ13R2duqzzz6L7zsMBAKqqalJuCb28aGuSbZ3Mcbj8fQqciNJhmGk5JvV4XCk7LWRWsy9fTH39sXcj1xt4agcDsnZY26cTocMh0Nt4ejnnjfm3b5SOfd8vQ0fPtOHsG/fPu3fv18lJSWSpHnz5qmxsVFbtmyJX/Pcc8/JNE3NnTs3fs2mTZvU0dERv2b9+vU65phjlJubG79mw4YNCa+1fv16zZs3b6jfEgAAGOWCbRG98XG9/vFuld74uF5dNwUd8X6CMTSZB3AotrtD2NLSop07d8Y/3rVrl7Zu3aq8vDzl5eXp1ltv1YUXXqhAIKCPPvpI1113naZMmaKKigpJ0nHHHadFixbpu9/9rtasWaOOjg6tWLFCF110kUpLSyVJ3/jGN3Trrbfq8ssv1/XXX69t27bp17/+tW6//fb461599dWaP3++fvnLX2rx4sX685//rNdff12///3vh/cTAgAARpWdVU16+q292t8cVlfpGIeyfC65nI6klURpMg8gGdsFwtdff11nn312/OPYfrxly5bpnnvu0dtvv637779fjY2NKi0t1cKFC/WjH/0oYZnmgw8+qBUrVujcc8+VYRi68MIL9Zvf/CZ+Pjs7W88884yWL1+u2bNnq6CgQDfffHO85YQknXbaaXrooYd044036gc/+IGmTp2qxx9/nB6EAAAgqWBbRE+/tVfBtogmFmQmBD9J8rpd2lPfEq8ymp/lock8gH45LMuyDn0ZRqpgMKjs7Gw1NTWlpKhMbW2tioqKWOdtM8y9fTH39sXcjwxvfFyvtVv2aGJhZkLxGNO0tKe+ZdCbzDPv9pXquU/lz7h2Y7s7hAAAAKNFz0bzdcGQJCshDEqSYTi67gpalmYdVZCSsQIYnQiEAAAAI1BfewVN01QoEpVpWjKMxDuEFI8B8Hlw7x8AAGCE6blXsLzI37Vn0OFQY1tEe+qb4xVFKR4D4EhwhxAAAGCE2Vkd1P7mcMJeQcNwaGJhllrCnTJNUTwGwKAgEAIAAIwwre0dSrZXMMubprlTi1Tg9w1a8RgA9kUgBAAAGGG69gI6ku4VLPD7KB4DYFCwhxAAAGCEmRLwKz/Lo8qGVvYKAhhSBEIAAIARxp/u7toTmO7WnvoW7a5t1p76loPHWR4KYJCwZBQAAGAEmhzI1tL5Pu2sCrJXEMCQIRACAAAMg55N5qcE/PKn9x/u/D43ewUBDCkCIQAAwBDrq8l8rFVEod932EERAAYLgRAAAGAI9WwybxiOeIGYh1/8SD6PS82hrjYT3YPi5EB2qocOwAYoKgMAADCEYk3mS/My4i0kDMOh/EyvdlQ2qfKzVk0syFR5kV8TCzIVbIto3da9CoYiKR45ADsgEAIAAAyhZE3mG9si6uiMyu9LSwiKpbkZ2t8c1s6qYApGC8BuCIQAAABDqHuT+e7CHVFZkjxpiTt4DMMhh2JBEgCGFoEQAABgCCVrMh8MReRJM5TTo4CMaVqyFAuSADC0KCoDAAAwiPpqL7FoZpnWbd2rPfUtcqirfExpXrpyMz3a39Ku0rSMhGIz+VkeTSnxp/qtALABAiEAAMAg6a+9xNL5R/dqMl/XFOoVFGPX04AewHAgEAIAAAyC/tpLrNu6V0vnH92rybzf59bS+b5eQZEwCGC4EAgBAAAOU1/LQmPtJSYWZsYrisaqhu6pb9HOqmCvQCh1hcK+jgPAcCAQAgAAHIZky0KL/D711V6CqqEARjICIQAAwAD1tyy0rikk07Jkmla8r6BE1VAAIxttJwAAAAYotiy0NC+jVzP5qCUZDqNXewmqhgIYybhDCAAAMEBdyz77Xhbqdho6dlyOaoMhqoYCGDUIhAAAAAPUtezTkXRZ6ORAtipOKqNqKIBRY9QsGV22bJk2bdqU6mEAAAAbmxLwKz/L0++y0FjV0DOmlWjWUQWEQQAj2qgJhE1NTVqwYIGmTp2qn/70p/r0009TPSQAADDGBdsieuPjev3j3Sq98XG9JHUt/0x3a099i3bXNmtPfYv86W6WhQIYlUbNktHHH39cdXV1euCBB3T//ffrlltu0YIFC3T55Zfry1/+stLSqNwFAAAGT7L2Eotmlmnp/KNZFgpgTBg1dwglqbCwUKtWrdJbb72lV155RVOmTNHSpUtVWlqqa665Rh9++GGqhwgAAMaAnu0lyov8mliQqWBbROu27pUkloUCGBNGVSCMqaqq0vr167V+/Xo5nU6df/75eueddzRt2jTdfvvtqR4eAAAY5fprL7G/OaydVcEUjxAABseoCYQdHR36f//v/+mLX/yiJk6cqEcffVQrV65UZWWl7r//fj377LN65JFH9B//8R+pHioAABjl+msv4YifB4DRb9TsISwpKZFpmrr44ov16quvaubMmb2uOfvss5WTkzPsYwMAAGPLodpLdJ0HgNFv1ATC22+/XV/72tfk9XqTXpOTk6Ndu3YN46gAAMBYEGyLaGf1wSIxxdneeHuJ0tyuZaM920sAwFgwagLh0qVLUz0EAAAwBiWrJjq9LFfb9zZoT32LHAfOxKqMUkQGwFgxagIhAADAYOtZTbT7ncDtexu0ZE65ahpDtJcAMGYRCAEAgC30XBY6JeCPVxOdWJgZLyATqya6p75FNY0hzTqqIMUjB4ChQyAEAABjXrJloUV+n6gmCsDOCIQAAGBM629ZaF1TSKZlUU0UgG2Nmj6EAAAAn0d/TeajlmQ4DFU2tMo0LUmimigAW+EOIQAAGFN67hWsC4aUbFmo22no2HE5qg2GqCYKwJYIhAAAYMzoa6+gaZoKRaJJl4VODmSr4qQy7awKUk0UgO0QCAEAwJiQbK/gnrpmNbZFtKe+WRMLsvpsMu/3uakmCsCWCIQAAGBMSNZCYmJhllrCnTJNsSwUAHogEAIAgDGhq0VE33sFs7xpmju1SAV+H8tCAaAbAiEAABgTulpEOJLuFSzw+1gWCgA9EAgBAMCo1LOaaHG2V/lZHlU2tKo0N6PPvYIAgEQEQgAAMOr0VU00P8uj6WW52r63gb2CADBABEIAADCqJKsmWtnQqu17G7RkTrlqGkPsFQSAASAQAgCAEavnstApAX/SaqKluRnaU9+imsYQewUBYIAIhAAAYERKtiy0yO9TsmqiDsWqjQIABoJACAAARpz+loXWNYVkWlbSaqJd1UYBAANhpHoAAAAAPcWWhZbmZcRDX2xZaNSSDIehyoZWmaYlSVQTBYDPiTuEAABgxOmvybzbaejYcTmqDYaoJgoAR4hACAAAUq5n8ZiuHJi8yfzkQLYqTirTzqog1UQB4AgQCAEAQEr1VTwmy+eSy+not8m83+emmigAHCECIQAASJn+isdIktftYlkoAAwhAiEAAEiZQ/UUPGVykdI9LpaFAsAQIRACAICU6a94jEOSZVksCwWAIWS7thObNm3Sl770JZWWlsrhcOjxxx9POG9Zlm6++WaVlJTI5/NpwYIF+vDDDxOu+eyzz3TJJZfI7/crJydHl19+uVpaWhKuefvtt3XGGWfI6/WqrKxMt912W6+xPProozr22GPl9Xp1/PHH68knnxz09wsAwEjW1TPQEW8fEUNPQQAYHrYLhK2trTrxxBN1991393n+tttu029+8xutWbNGr7zyijIyMlRRUaH29vb4NZdccom2b9+u9evXa+3atdq0aZOuuOKK+PlgMKiFCxdq4sSJ2rJli37xi1/ohz/8oX7/+9/Hr3nppZd08cUX6/LLL9ebb76pJUuWaMmSJdq2bdvQvXkAAEaYKQG/8rM89BQEgBRxWJZlHfqyscnhcOixxx7TkiVLJHXdHSwtLdW//uu/6t/+7d8kSU1NTSouLtZ9992niy66SO+9956mTZum1157TSeffLIkad26dTr//PO1b98+lZaW6p577tG///u/q7q6Wm531z6H73//+3r88cf1/vvvS5K+/vWvq7W1VWvXro2P59RTT9XMmTO1Zs2aAb+HYDCo7OxsNTU1ye8f3n80TdNUbW2tioqKZBi2+78FW2Pu7Yu5t6/Bmvue7SWmBPyqC4a0bmtXldGexWMmB7IH7T3g8PE9b1+pnvtU/oxrN+wh7GbXrl2qrq7WggUL4seys7M1d+5cbd68WRdddJE2b96snJyceBiUpAULFsgwDL3yyiv6yle+os2bN+vMM8+Mh0FJqqio0M9//nM1NDQoNzdXmzdv1qpVqxJev6KiotcS1p7C4bDC4XD842AwKKnrm9Y0zSN5+4fNNE1ZljXsr4vUY+7ti7m3r8GY+53VTVr/1j7Vdwt+BVkeLTyxTJeeMUU7q4Nqae9Q5oGgmOVz87WWYnzP21eq556vueFDIOymurpaklRcXJxwvLi4OH6uurpaRUVFCeddLpfy8vISrikvL+/1HLFzubm5qq6u7vd1klm9erVuvfXWXsfr6uoSlrUOB9M01dTUJMuy+F9Dm2Hu7Yu5t68jnfuW9k795Y1KNYc6VZztkeFwyLQs1XzWrMdf/kBfmVWqcRkuKcMpyVSouVGh5sF/Hzg8fM/bV6rnvrmZvwCGC4FwlLnhhhsS7iwGg0GVlZWpsLAwJUtGHQ6HCgsL+UfCZph7+2Lu7etI5/7TXfVq6zR0VGleQkXRjPSu9hJNUbeOKqKa6EjD97x9pXruvV7vsL+mXREIuwkEApKkmpoalZSUxI/X1NRo5syZ8Wtqa2sTHtfZ2anPPvss/vhAIKCampqEa2IfH+qa2PlkPB6PPB5Pr+OGYaTkm9XhcKTstZFazL19Mff2NdC572ufYFs4KodDcvZ4rNPpkOFwqC0c5WtqhOJ73r5SOfd8vQ0fPtPdlJeXKxAIaMOGDfFjwWBQr7zyiubNmydJmjdvnhobG7Vly5b4Nc8995xM09TcuXPj12zatEkdHR3xa9avX69jjjlGubm58Wu6v07smtjrAAAwGu2satIDmz7Q2i179Pftn2rtlj16YNMHCoYior0EAIw8tguELS0t2rp1q7Zu3Sqpq5DM1q1b9cknn8jhcGjlypX68Y9/rL/+9a9655139M1vflOlpaXxSqTHHXecFi1apO9+97t69dVX9eKLL2rFihW66KKLVFpaKkn6xje+Ibfbrcsvv1zbt2/Xww8/rF//+tcJSz2vvvpqrVu3Tr/85S/1/vvv64c//KFef/11rVixYrg/JQAADIpgW0RPv7VXwbaIJhZkqrzIr4kFmQq2RfRBVaOyfGm0lwCAEcZ2S0Zff/11nX322fGPYyFt2bJluu+++3TdddeptbVVV1xxhRobG3X66adr3bp1CeuYH3zwQa1YsULnnnuuDMPQhRdeqN/85jfx89nZ2XrmmWe0fPlyzZ49WwUFBbr55psTehWedtppeuihh3TjjTfqBz/4gaZOnarHH39cM2bMGIbPAgAAR67n0tC2cIf2N4c1sTAzvk/QMBwqze3aJzirvEB76pu1p76lV3sJv8/d72sBAIaGrfsQjgX0IUQqMPf2xdzbV8+531nVpKff6uod2BXtHAp3dKozamnGhLxej99d26yzppfqxPJ87azqtr+wxE8YHMH4nrevVM89fQiHj+3uEAIAgCPTc2moYXTtDdy29zPVBUOaHPbL5zn4I0b3fYJ+n1uzjqKaKACMFPxXDwAAOCw7q4Pa3xxWaV6GDOPg0tCpgWxZlkMfVjexTxAARgnuEAIAgMPS2t4hyUroJyhJPo9LgRyfXIbBPkEAGCUIhAAAoF/Btog+rGpUZU2DSlsNdeXArmWisTuEUtfdwAxvms6ZMU7pHhf7BAFgFCAQAgCApGLFY+qD7YqEw3Lva5U/PU0up0OVDa0qzc2I7yGMLQ09YVIeARAARgkCIQAA6NVCYkqga79f9+IxoZAhny9dVY1tkiSv28XSUAAY5QiEAADYXF8tJPKzPJpUmBXvKxhbGNq9r+Apk4tYGgoAoxyBEAAAG0vWQqKyoVUv7aiW03DIcDjUvW2xYTi67gpaFi0kAGCUo+0EAAA2lqyFRGluhkKRqFraO+MtJGK69xUEAIxuBEIAAGwsWQsJw3Ao05smX5pLlQ2t9BUEgDGKJaMAANhIz+Ix/bWQcDkNzZlSoD31zdpT39JVZdRjqsDvpXgMAIwRBEIAAGyir+IxWT5Xvy0kzpxeIqlEH1Y2qrJmv0qL8zW1NIcwCABjBIEQAAAb6K94jHToFhInlRdoXIapoqICGQY7TgBgrCAQAgBgA7HiMRMLM+P7BWkhAQAgEAIAYAP9FY+hhQQA2BeBEACAMehwisfQQgIA7ItACADAGPN5isfQQgIA7IlACADAGHKkxWMAAPZCIAQAYAyheAwA4HAQCAEAGKV67hOcEvBTPAYAcFgIhAAAjEJ97RPMz/JoUmGWKB4DABgoAiEAACNczzuBxdnepPsEP6hqVJYvjeIxAIABIRACADCC9XUn0DRNhSJRTSvL7XOf4KzyAu2pb6Z4DADgkAiEAACMUMkqhm7dXa+GloimlmTLk+aMXx/bJ5id7tbS+UdrZ1WQ4jEAgH4RCAEAGCF6Lg1tC3f0WTE0kJOu6saQ6pvbNS4vI/747vsE/T43xWMAAIdEIAQAYAToa2louKNTndHeFUPzs7zyuJyqbQypJCedfYIAgM+NQAgAQIolWxq6be9nqguGNDnsl89z8J/sNKehohyf0mkyDwA4QgRCAABSLFkz+amBbNU2tevD6ibNKMtLuBM4sTBTS+aUq6YxxD5BAMDnRiAEACDFkjWT93lcCuT45DKMPu8EjsvLSNhDCADA4SIQAgAwjHoWjpkS8B9oFt93M/kMb5rOmTFO6R4XdwIBAIOOQAgAwDDpq3BMfpZHpx8bUH6WJ2kz+RMm5REAAQBDgkAIAMAwSFY4prKhVS+8X63TjyvRC+9VUSQGADCsCIQAAAyDZIVjSnMztKe+RdGoRTN5AMCwIxACADAMkhWOMQyHHAfO00weADDcCIQAAAyBnsVjunJg34VjLOlAYRkAAIYXgRAAgEHWV/GYLJ9LLqcjaeGYKSX+VA8bAGBDBEIAAAZRf8VjJMnrdlE4BgAwYhAIAQA4Aj2XhraFO/otHnPK5CJ6CgIARgwCIQAAn1NfS0PDHZ3qjCYvHmNZFoVjAAAjhpHqAQAAMBr1XBpaXuTXxIJMRTpN1TS1KRTuTLie4jEAgJGIO4QAABxCz2WhUwL+pH0FpwayVdvUrg+rmzSjLI/iMQCAEY1ACABAP/paFpqf5VGR36e++gr6PC4FcnxyGQbFYwAAIx6BEACAJPqrGFrXFJJpWX32FczwpumcGeMoHgMAGPEIhAAAJJFsWWhpboZ21gTldBhJ+wqeMCmPAAgAGPEIhAAAJNHa3qG+loUahkNup6Fjx+WoNhhiaSgAYNQiEAIAkERXRVBHn8tCLUmTA9mqOKlMO6uCLA0FAIxKBEIAAA7oWU20ONur/CxP0mWhsfBHX0EAwGhFIAQA2E5fbSRqm0J9VhOdXpar7XsbWBYKABiTCIQAAFvpq41Els+lUCQqh9Srmuj2vQ1aMqdcNY0hloUCAMYcAiEAYEzq6y6gpD7bSGzb+5nqgiGddkwgvlcwVk10T32LahpDLAsFAIxJBEIAwJiTrJn8pMKsPttI+H1u7dvfqsbWiHzug/80GoZDDsWqjQIAMPYQCAEAY0p/zeRf2lEtp+Ho1UbCk+aUQ1J7R2fC8Vg10a5qowAAjD1GqgcAAMBgijWTL83L6LX8MxSJqqW9U6ZpJTwmJ92tNJdTzaGO+Lme1UQBABiLuEMIABhT+msmn+lNUzRq9Wojsb+lXceMy5bP7aKaKADAVgiEAIBRrWfxmK4c2HczeZfT0JwpBdpT39xn8CvM9tFkHgBgKwRCAMColayFhMvpSNpM/szpJZJKkgY/qokCAOyEQAgAGJX6Kx4jSd5DLP8k+AEAQCAEAIxSseIxPVtIxHoHnjK5SOkeF8s/AQDoB1VG+/DDH/5QDocj4dexxx4bP9/e3q7ly5crPz9fmZmZuvDCC1VTU5PwHJ988okWL16s9PR0FRUV6dprr1VnZ2I5840bN2rWrFnyeDyaMmWK7rvvvuF4ewAwKgXbInrj43r9490qvfFxveqCISUrHuOQZFmWZh1VoDOmlWjWUQWEQQAA+sAdwiSmT5+uZ599Nv6xy3XwU3XNNdfoiSee0KOPPqrs7GytWLFCF1xwgV588UVJUjQa1eLFixUIBPTSSy+pqqpK3/zmN5WWlqaf/vSnkqRdu3Zp8eLFuvLKK/Xggw9qw4YN+s53vqOSkhJVVFQM75sFgBGur72CpmkqFIn2WTyG3oEAAAwMgTAJl8ulQCDQ63hTU5P+9//+33rooYd0zjnnSJLuvfdeHXfccXr55Zd16qmn6plnntG7776rZ599VsXFxZo5c6Z+9KMf6frrr9cPf/hDud1urVmzRuXl5frlL38pSTruuOP0wgsv6PbbbycQAkA3yfYK7qlrVmNbRHvqmzWxIKtX8Rh6BwIAcGgEwiQ+/PBDlZaWyuv1at68eVq9erUmTJigLVu2qKOjQwsWLIhfe+yxx2rChAnavHmzTj31VG3evFnHH3+8iouL49dUVFToqquu0vbt23XSSSdp8+bNCc8Ru2blypX9jiscDiscDsc/DgaDkiTTNGWa5iC884EzTVOWZQ376yL1mHv7SsXcf1jVqPpguyYWZsrh6FoK6nBIEwoy1dLeoahpaXdd84FzUkGWRwtPGK9Mj4uv0UHE9709Me/2leq552tu+BAI+zB37lzdd999OuaYY1RVVaVbb71VZ5xxhrZt26bq6mq53W7l5OQkPKa4uFjV1dWSpOrq6oQwGDsfO9ffNcFgUKFQSD6fr8+xrV69Wrfeemuv43V1dWpvb/9c7/fzMk1TTU1NsixLhsF2VDth7u1rqOe+pb1Te/a3qS0cVbrHqYn56aqsaVYkHFaorffrpTlMzQj4lJfpTnhMptGu2trh/TtxrOP73p6Yd/tK9dw3NzcP+2vaFYGwD+edd178zyeccILmzp2riRMn6pFHHkka1IbLDTfcoFWrVsU/DgaDKisrU2Fhofz+4V0eZZqmHA6HCgsL+UfCZph7+xqsuQ+2RfRRTVAt7R3K9KZpcrFftcGQ1r9Xp/rmcLxVxPu1YU0oyJLb45HPl95rr6DbY+qo8UU6qZwWEkON73t7Yt7tK9Vz7/V6h/017YpAOAA5OTk6+uijtXPnTv2P//E/FIlE1NjYmHCXsKamJr7nMBAI6NVXX014jlgV0u7X9KxMWlNTI7/f32/o9Hg88ng8vY4bhpGSb1aHw5Gy10ZqMff2daRzn6yZfCgSlUPSpMLE/YA7a5rkT3erqrEtodF8VWObCvxeTS3N4etwmPB9b0/Mu32lcu75ehs+fKYHoKWlRR999JFKSko0e/ZspaWlacOGDfHzO3bs0CeffKJ58+ZJkubNm6d33nlHtbW18WvWr18vv9+vadOmxa/p/hyxa2LPAQBjUc8CMeVFfk0syFTlZ236oLJR+Vne+F3AWE/B5lCnpgay5U93a099i3bXNmtPfYv86e6ERvMAAODwcYewD//2b/+mL33pS5o4caIqKyt1yy23yOl06uKLL1Z2drYuv/xyrVq1Snl5efL7/fre976nefPm6dRTT5UkLVy4UNOmTdPSpUt12223qbq6WjfeeKOWL18ev7t35ZVX6q677tJ1112nb3/723ruuef0yCOP6IknnkjlWweAQRVsi2hndTDeHL4t3NFnM3m/z619+1vV2BqRz33wn6ZYT8HsdLeWzj9aO6uCNJoHAGAQEQj7sG/fPl188cXav3+/CgsLdfrpp+vll19WYWGhJOn222+XYRi68MILFQ6HVVFRod/+9rfxxzudTq1du1ZXXXWV5s2bp4yMDC1btkz/8R//Eb+mvLxcTzzxhK655hr9+te/1vjx4/WHP/yBlhMAxoy+loaGOzrVGe3dTN6T5pRDUntHZ8Lx7j0F/T63Zh3FXkEAAAYTgbAPf/7zn/s97/V6dffdd+vuu+9Oes3EiRP15JNP9vs8Z511lt58883PNUYAGMmS9Q7ctvcz1QVDmhz2y+c5+E9QTrpbaS6nmkMd8Ubz9BQEAGDoEQgBAEek57LQKQG/dlYH+1waOjWQrdqmdn1Y3aQZZXnx4Le/pV3HjMuWz+3SnvqWeJXR/CwP+wQBABhCBEIAwOfW17LQ/CyPivw+Sb2Xhvo8LgVyfHIZRp/BrzDbxz5BAACGEYEQADAgwbaIPqxqVGVNg0pbDQVy0vtcFlrZ0Kq6ppBMy4ov/4wxTUsZ3jSdM2Oc0j2uPoMf+wQBABg+BEIAwCHF7gTWB9sVCYfl3tcqy7IUikQ1rSw3YVloaW6GdtYE5XQYqmxoTegdGNsTeMKkPO78AQAwAhAIAQD96lkgJhQy5POl6609+9XQEtHUkmx50pzx6w3DIbfT0LHjclQbDLEnEACAEYxACABI0F/vwNjiT8NwKJCTrurGkOqb2zUuLyP++FiriMmBbFWcVMaeQAAARjACIQAg7lC9Ay3Lil+bn+WVx+VUbWNIJTnpfbaKoHcgAAAjG4EQACBpYL0Dve6DS0PTnIaKcnxKp1UEAACjFoEQACBJA+odOH18rqSuZaFVjW2aWJipJXPKVdMYYlkoAACjEIEQACBJam3v0EB6B0bCYbk9pgr8Xi2aWaZxeRkJewgBAMDoQSAEABvqWThmSsCvDG+aJEe/vQN9bkOVNftVWpyvqaU53AkEAGCUIxACgM30VTgmP8uj048NKD/L02/vwEyPS+MyTBUVFcgwjFS/FQAAcIQIhABgI8kKx1Q2tOqF96t1+nEleuG9qqRFYkzTTPVbAAAAg4hACACjXF/LP/3p7j7Pde8p2L1wTGluhvbUtygatbR0/tH0DgQAwCYIhAAwiiVb/rloZpksS/32FOzOMBxyqKuwDL0DAQCwDwIhAIxS/S3//OvruyU51B7pTNpT0Oc5+E+AaVqypAOFZQAAgF1QEQAARqlY38DSvIx4VdDY8s+99a3aW9/S69zUQLYsy6EPq5tkmpYkJRSOmVLiT9n7AQAAw487hAAwwiTbE9jzeF0wpL76BhqGQ9GoJTkO3VOwr8IxAADAPgiEADCCJNsTOH18rrbva0g4bpqmQpFon30DnU6HDtVTMN3jonAMAAA2RyAEgBEi2Z7APXXN+tOLH2lcbromFmYlHG9si2hPfbMmFmQl7CEsK8iQ5Oi3pyABEAAAEAgBYISI7Qns2RLCk+ZUsC2i8qKshP2AEwuz1BLulGmqz+WfkrRu616WhgIAgKQIhAAwQrS2d6ivPYEdUVMOSZ3RxKbwhuFQljdNc6cWqcDv63P559L5PnoKAgCApAiEADAI+msOP9Dru1o+9N73l+Y0ZElyORMLQ8daRRT4fUn7BtJTEAAA9IdACABHqL/m8IV+X6/gV9sU6vP6048NKD/L02vfX7gjKn+6W5HOgwVkaBUBAAAGA4EQAI5Af83hH37xI/k8LjWHupaCSg5l+VwKRaJySL2uf+H9ap1+XIleeK8qcd+f36szp5do+94G9gMCAIBBRSAEgCOQrBBMfqZXL+6oUVG2VzPK8uLBb9vez1QXDOm0YwK9msnvqW9RNGpp6fyj+9z3N+uoQvYDAgCAQUUgBIAjkKwQTGNbRB2dUfl9aQnBz+9za9/+VjW2RuRzH/wr2DAcchx4vmT7/tgPCAAABptx6EsAAMl0LwTTXbgjKkuSJy3x/908aU45JLV3dCYcjxWI6Xo+AACA4cEdQgAYoL4qg04J+PssBBMMReRJM5TTo9JoTrpbaS6nmkMdFIgBAAApRyAEgB76Cn7JKoMumlmmRTPLejWAL81LV26mR/tb2lWadjAo7m9p1zHjsuVzuygQAwAAUo5ACADd9NVCor/KoOu27tXS+Uf3WQimrinUKyjG21Fk0zAeAACkHoEQAA5I1kLiUJVBd1YFNeuogl4FX/w+t5bOTx78KBADAABSjUAIYEzra/mn/8C+vp7n2sIdfbaQGEhl0GSoDAoAAEYyAiGAMauv5Z+xJZuWpV7nwh2d6oz2biFBZVAAADBWEQgBjEnJln9WNrTqr6/vluRQe6Szz6Whk8N++TwH/3qkMigAABir6EMIYEzaWR3U/uawSvMyeu3721vfqr31Lb3OTQ1ky7Ic+rC6Kd5XsHtl0NK8rj2Du2ubtae+Rf50N5VBAQDAqMYdQgCjSrI9gT2P1wVDknov/zQMh6JRS3L0PufzuBTI8cllGFQGBQAAtkAgBDBqJNsTOH18rrbva0g4bpqmQpFofIlnjGlacjodB67pfS7Dm6ZzZoxTusdFZVAAADDmEQgBjArJ9gTuqWvWn178SONy0zWxMCvheGNbRHvqmzWxICth319ZQYYkhyobWlWam9FrT+AJk/K48wcAAGyBQAhgxOlrWWhsT2DPlhCeNKeCbRGVF2Ul7AecWJillnCnTFN9Lv+UlLRpPGEQAADYBYEQwIiSbFlokd+nvvYEdkRNOSR1Rs2E44bhUJY3TXOnFqnA7+tz+Wd/TeMBAADsgEAIYMj11xy+53XJWkXUNYVkWlavfX9pTkOWJJczsWhyrEdggd+XdN8fTeMBAIDdEQgBHJZgW0QfVjWqsqZBpa2Gppbk9BnuYvprDl/o9yUExbZwR5/LQktzM7SzJiinw+i17y/cEZU/3a1IZ5QegQAAAIeJQAhgwGLhrj7Yrkg4LPe+VhX4a/sMd1MCXUEs2R2/h1/8SD6PS82hDsWCYrijU53RvltFuJ2Gjh2Xo9pgKHHfn9+rM6eXaPveBvYDAgAAHCYCIYAB6bmcMxQy5POlq6qxrc9wl5/l0aTCrD7v+OVnevXijhoVZXs1oywvHhS37f1MdcGQJof98nkO/vUUW/45OZCtipPK+tz3N+uoQvYDAgAAHCYCIYAB6V7lM3b/rr9wV9nQqpd2VMtpOHrd8Wtsi6ijMyq/Ly2hMujUQLZqm9r1YXVTr+eKLf9Mtu+P/YAAAACHj0AIYEBa27vu/hkOhyzLih9PFu5KczP01p79ktSrEEy4IypLkict8a8gn8elQI5PLsNg+ScAAMAwIBACGJAMb5qkrjt23W/4JQt3huFQpjdN0ajVqxBMMBSRJ81QTo9iNKZpKcObpnNmjFO6x8XyTwAAgCFGIARsIFnbh/7aQfQ8V5ztVX6WR5UNrSrJSZekQ4Y7l9PQnCkF2lPfnHDHrzQvXbmZHu1vaVdpWkavpaEnTMojAAIAAAwDAiEwxiVr+zB9fK6272vosx2EZanvx5Tlxqt5RsJhuT3mIcPdmdNLJJX0KvhS1xTSuq17WRoKAACQQgRCYAxL1uh9T12z/vTiRxqXm66JhVkJIe6vr++W5FB7pLNXq4jtexu0ZE65qhtaVVmzX6XF+ZpamjOgcNez4Ivf59bS+T4qgwIAAKQQgRAYZQ5nmWeyRu+eNKeCbRGVF2UlLQRz4qT8Xs3h99S3qKYxpJPKCzQuw1RRUYEMw/jc4Y7KoAAAAKlFIARGkWTLP5Mt80zW6L0jasohqTNqJhw3DIeiUUty9N0c3qFYtdHeCHcAAACjD4EQGAb93dU7nOfoa/lnf8s8kzV6T3MasiS5nEbCa5imJafToVg10e6tImLN4buqjQIAAGAsIBACQ6y/u3qTA9lJHzfQ5Z/9LfNM1ug93BGVP92tSGc0Hvxi4bKsIEOSo1eriO7N4QEAADA2EAgxpgzGnbgjea6+WjUku6u3buteLZ3vkyz1ep3aptCAl3/2t8wzaaN3v1dnTi+JVwztWQhGUr9FYkwzcakpAAAARicCIVJusELcoe7EHc7rfJ7n6ivEmaapUCSqaWW5fRZo2bS9SnvqmxMek+VzKRSJyiENaPnnoZZ59tfofdZRhUkLwVABFAAAYOwjECKlPu9yyp7621+3butenX5sh154v7rP1yn0+w7rrl5fz5UsxG3dXa+GloimlmTLk+aMj9cwHOqMmtq8o0aZPlefwe+0YwIJFUCTLf8cyDLPZI3e+ysEQ5EYAACAsY9AOALcfffd+sUvfqHq6mqdeOKJuvPOOzVnzpxUD6tfwbaIPqxqVGVNg0pbDU0tyRm25ZT+dPdh7a/bWRPUY6/slifN6PU6D7/4kXwel5pDHRrIXb1kz5UsxAVy0lXdGFJ9c7vG5WXEPxemaanlQLXOo8dlJ7yO3+fWvv2tamyNyOc++C2adPnnAJd5AgAAAD0RCFPs4Ycf1qpVq7RmzRrNnTtXd9xxhyoqKrRjxw4VFRWlenh9it3Vqw+2KxIOy72vVQX+2mFZTpmf5dH08bnavq9hwPvr2to71BG1NHtyQcLr5Gd69eKOGhVlexPuuPV3Vy/ZcyULcflZXnlcTtU2hlSSk54QRn1up5yGo9eYPWlOOSS1d3QmHD/U8k+JZZ4AAAA4PATCFPvVr36l7373u/rWt74lSVqzZo2eeOIJ/fGPf9T3v//9FI+ut55LM0MhQz5fuqoa24ZlOeWeumb96cWPNC43XRMLswa0v64jasnl7B28Gtsi6uiMyu9LG/BdvWTPlSzEpTkNFeX4lO529bpzd8LEfG35uL7Xvr+cdLfSXE41hzp6VQDtb/mnxDJPAAAAHB4CYQpFIhFt2bJFN9xwQ/yYYRhasGCBNm/enMKRJbezOhhfmhmLMMO5nNKT5lSwLaLyoqwB76/Ly3TLtKxewSvcEZUlyZOW+G3Q3129ZM/VX4ibWJipJXPKVdMYSrhzJ0vaXdfca9/f/pZ2HTMuW74+QiTLPwEAADCYCIQpVF9fr2g0quLi4oTjxcXFev/99/t8TDgcVjgcjn8cDAYlSaZpDksrgOZQWLKsrpBiWfFfDodDre2RruWURxXI4dCB41KWN0379reooSUsb+7BO4F5mR65XYZqGtsUyPZ1C1Ft8qU55XQ64q8T09FpSrLU0RlNOO51O1Wc45XLMLS7rvnA60sFWR6dNrNML+2o1qeftao092DAC7ZF5HEZyvalJTyXy3CoKNsrn8c14Oeqb27XMaV++dy9H7PwhPEqyfGpJMfX6/O58ITxeuatvb0fc2KZirK92lkdVEt7hzIPLL3NGiEtH0zTlGVZI2IsGF7MvX0x9/bEvNtXqueer7nhQyAcZVavXq1bb7211/G6ujq1t7cP+et3treqPRxWc0tXWIu9piUp1B6Ry3Ao1NaW8Bgr2iHTNNXU0iq/+2DwMi1LuT6nvE5LH3y6P34nLDcjTdNL07VtX1DNLS0JyzM7O8IyTVOdHRG1trYmPJdLpk47Kkc+t1Nt4ajSPU5NzE9XpjeqkydkaNOO+oTXyfE55XN59Wl9k4qzPTIcDpmWpZqmsAozXVo4vVD1LZEBPVduRprOPKZA+Rlu7dnflvgYo121tX3PTZYhVRyX2+djQs3tGpchKcMpyVSouVGh5iOfw8FgmqaamppkWZYMw0j1cDCMmHv7Yu7tiXm3r1TPfXPzCPmhxwYIhClUUFAgp9OpmpqahOM1NTUKBAJ9PuaGG27QqlWr4h8Hg0GVlZWpsLBQfr9/SMcrSd7MHL1fG1ZTW0f8jlfXHsKQinMzFTUt+XzpCcspAy6PPq4PqcNyxs/F7gROHZenJadMUnVTKOFOmGVJDe0fqqmtI+FOnKPFVE6GV05XWq/nGlfg1xknlCurjyWVRUXSsZNKe91xq21q1zNv7VV9c1gOhyXLkorzsrTwxDJNDvT9+Uz2XLHXPWrC4X1Oiz7HY1LNNE05HA4VFhbyA4LNMPf2xdzbE/NuX6mee6/XO+yvaVcEwhRyu92aPXu2NmzYoCVLlkjq+ubbsGGDVqxY0edjPB6PPB5Pr+OGYQzLN2tOpleLTpqgdVv36pP9rV1VRtssFfi9Ov3YgF54v1pVjW0Je+I+aw3rmHE58rld+mR/a689ceMKsjSuIKvXa3V/ndhjCrK9mj+jRNv3NvT5XNkZyf/yyM7wavZkb69jxbnph12Zs6/nshuHwzFsX3cYWZh7+2Lu7Yl5t69Uzj1fb8OHQJhiq1at0rJly3TyySdrzpw5uuOOO9Ta2hqvOjoSTQ5ka+l8nz6sbFRlzX6VFudrammO/D63Mr1pSXvhFWYfXkuE2Ov09ZhZRxUOWnsFKnMCAADArgiEKfb1r39ddXV1uvnmm1VdXa2ZM2dq3bp1vQrNjDR+n1snlRdoXIapoqKC+P/i9BfiJB128EoW1ghxAAAAwJEjEI4AK1asSLpEdDQirAEAAACjA4tzAQAAAMCmCIQAAAAAYFMEQgAAAACwKQIhAAAAANgUgRAAAAAAbIpACAAAAAA2RSAEAAAAAJsiEAIAAACATREIAQAAAMCmCIQAAAAAYFOuVA8AR8ayLElSMBgc9tc2TVPNzc3yer0yDP5vwU6Ye/ti7u2Lubcn5t2+Uj33sZ9tYz/rYugQCEe55uZmSVJZWVmKRwIAAAAMrubmZmVnZ6d6GGOawyJ2j2qmaaqyslJZWVlyOBzD+trBYFBlZWXau3ev/H7/sL42Uou5ty/m3r6Ye3ti3u0r1XNvWZaam5tVWlrK3ekhxh3CUc4wDI0fPz6lY/D7/fwjYVPMvX0x9/bF3NsT825fqZx77gwOD+I2AAAAANgUgRAAAAAAbIpAiM/N4/HolltukcfjSfVQMMyYe/ti7u2Lubcn5t2+mHv7oKgMAAAAANgUdwgBAAAAwKYIhAAAAABgUwRCAAAAALApAiEAAAAA2BSBEJ/b3XffrUmTJsnr9Wru3Ll69dVXUz0kDKLVq1frlFNOUVZWloqKirRkyRLt2LEj4Zr29nYtX75c+fn5yszM1IUXXqiampoUjRhD5Wc/+5kcDodWrlwZP8bcj12ffvqpLr30UuXn58vn8+n444/X66+/Hj9vWZZuvvlmlZSUyOfzacGCBfrwww9TOGIMhmg0qptuuknl5eXy+XyaPHmyfvSjH6l77UHmfmzYtGmTvvSlL6m0tFQOh0OPP/54wvmBzPNnn32mSy65RH6/Xzk5Obr88svV0tIyjO8Cg4lAiM/l4Ycf1qpVq3TLLbfojTfe0IknnqiKigrV1tamemgYJM8//7yWL1+ul19+WevXr1dHR4cWLlyo1tbW+DXXXHON/va3v+nRRx/V888/r8rKSl1wwQUpHDUG22uvvabf/e53OuGEExKOM/djU0NDg77whS8oLS1NTz31lN5991398pe/VG5ubvya2267Tb/5zW+0Zs0avfLKK8rIyFBFRYXa29tTOHIcqZ///Oe65557dNddd+m9997Tz3/+c9122226884749cw92NDa2urTjzxRN199919nh/IPF9yySXavn271q9fr7Vr12rTpk264oorhustYLBZwOcwZ84ca/ny5fGPo9GoVVpaaq1evTqFo8JQqq2ttSRZzz//vGVZltXY2GilpaVZjz76aPya9957z5Jkbd68OVXDxCBqbm62pk6daq1fv96aP3++dfXVV1uWxdyPZddff711+umnJz1vmqYVCASsX/ziF/FjjY2Nlsfjsf70pz8NxxAxRBYvXmx9+9vfTjh2wQUXWJdccollWcz9WCXJeuyxx+IfD2Se3333XUuS9dprr8WveeqppyyHw2F9+umnwzZ2DB7uEOKwRSIRbdmyRQsWLIgfMwxDCxYs0ObNm1M4MgylpqYmSVJeXp4kacuWLero6Ej4Ojj22GM1YcIEvg7GiOXLl2vx4sUJcywx92PZX//6V5188sn62te+pqKiIp100kn6z//8z/j5Xbt2qbq6OmHus7OzNXfuXOZ+lDvttNO0YcMGffDBB5Kkt956Sy+88ILOO+88Scy9XQxknjdv3qycnBydfPLJ8WsWLFggwzD0yiuvDPuYceRcqR4ARp/6+npFo1EVFxcnHC8uLtb777+folFhKJmmqZUrV+oLX/iCZsyYIUmqrq6W2+1WTk5OwrXFxcWqrq5OwSgxmP785z/rjTfe0GuvvdbrHHM/dn388ce65557tGrVKv3gBz/Qa6+9pv/v//v/5Ha7tWzZsvj89vX3P3M/un3/+99XMBjUscceK6fTqWg0qp/85Ce65JJLJIm5t4mBzHN1dbWKiooSzrtcLuXl5fG1MEoRCAEc0vLly7Vt2za98MILqR4KhsHevXt19dVXa/369fJ6vakeDoaRaZo6+eST9dOf/lSSdNJJJ2nbtm1as2aNli1bluLRYSg98sgjevDBB/XQQw9p+vTp2rp1q1auXKnS0lLmHhjjWDKKw1ZQUCCn09mromBNTY0CgUCKRoWhsmLFCq1du1Z///vfNX78+PjxQCCgSCSixsbGhOv5Ohj9tmzZotraWs2aNUsul0sul0vPP/+8fvOb38jlcqm4uJi5H6NKSko0bdq0hGPHHXecPvnkE0mKzy9//4891157rb7//e/roosu0vHHH6+lS5fqmmuu0erVqyUx93YxkHkOBAK9igh2dnbqs88+42thlCIQ4rC53W7Nnj1bGzZsiB8zTVMbNmzQvHnzUjgyDCbLsrRixQo99thjeu6551ReXp5wfvbs2UpLS0v4OtixY4c++eQTvg5GuXPPPVfvvPOOtm7dGv918skn65JLLon/mbkfm77whS/0ai/zwQcfaOLEiZKk8vJyBQKBhLkPBoN65ZVXmPtRrq2tTYaR+GOh0+mUaZqSmHu7GMg8z5s3T42NjdqyZUv8mueee06maWru3LnDPmYMglRXtcHo9Oc//9nyeDzWfffdZ7377rvWFVdcYeXk5FjV1dWpHhoGyVVXXWVlZ2dbGzdutKqqquK/2tra4tdceeWV1oQJE6znnnvOev3116158+ZZ8+bNS+GoMVS6Vxm1LOZ+rHr11Vctl8tl/eQnP7E+/PBD68EHH7TS09Ot//qv/4pf87Of/czKycmx/vKXv1hvv/229eUvf9kqLy+3QqFQCkeOI7Vs2TJr3Lhx1tq1a61du3ZZ//3f/20VFBRY1113Xfwa5n5saG5utt58803rzTfftCRZv/rVr6w333zT2rNnj2VZA5vnRYsWWSeddJL1yiuvWC+88II1depU6+KLL07VW8IRIhDic7vzzjutCRMmWG6325ozZ4718ssvp3pIGESS+vx17733xq8JhULWv/zLv1i5ublWenq69ZWvfMWqqqpK3aAxZHoGQuZ+7Prb3/5mzZgxw/J4PNaxxx5r/f73v084b5qmddNNN1nFxcWWx+Oxzj33XGvHjh0pGi0GSzAYtK6++mprwoQJltfrtY466ijr3//9361wOBy/hrkfG/7+97/3+e/7smXLLMsa2Dzv37/fuvjii63MzEzL7/db3/rWt6zm5uYUvBsMBodlWVZq7k0CAAAAAFKJPYQAAAAAYFMEQgAAAACwKQIhAAAAANgUgRAAAAAAbIpACAAAAAA2RSAEAAAAAJsiEAIAAACATREIAQAAAMCmCIQAAAAAYFMEQgAAAACwKQIhAAD9qKurUyAQ0E9/+tP4sZdeeklut1sbNmxI4cgAADhyDsuyrFQPAgCAkezJJ5/UkiVL9NJLL+mYY47RzJkz9eUvf1m/+tWvUj00AACOCIEQAIABWL58uZ599lmdfPLJeuedd/Taa6/J4/GkelgAABwRAiEAAAMQCoU0Y8YM7d27V1u2bNHxxx+f6iEBAHDE2EMIAMAAfPTRR6qsrJRpmtq9e3eqhwMAwKDgDiEAAIcQiUQ0Z84czZw5U8ccc4zuuOMOvfPOOyoqKkr10AAAOCIEQgAADuHaa6/V//2//1dvvfWWMjMzNX/+fGVnZ2vt2rWpHhoAAEeEJaMAAPRj48aNuuOOO/TAAw/I7/fLMAw98MAD+sc//qF77rkn1cMDAOCIcIcQAAAAAGyKO4QAAAAAYFMEQgAAAACwKQIhAAAAANgUgRAAAAAAbIpACAAAAAA2RSAEAAAAAJsiEAIAAACATREIAQAAAMCmCIQAAAAAYFMEQgAAAACwKQIhAAAAANgUgRAAAAAAbIpACAAAAAA2RSAEAAAAAJsiEAIAAACATREIAQAAAMCmCIQAAAAAYFMEQgAAAACwKQIhAAAAANjU/w9V9he3+q1sGAAAAABJRU5ErkJggg==", - "text/html": [ - "\n", - "
\n", - "
\n", - " Figure\n", - "
\n", - " \n", - "
\n", - " " - ], - "text/plain": [ - "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import matplotlib.patches as patches\n", - "from matplotlib.widgets import RectangleSelector\n", - "import ipywidgets as widgets\n", - "from IPython.display import display\n", - "from scipy.optimize import curve_fit\n", - "import ast\n", - "import re\n", - "import scipy\n", - "import ipysheet\n", - "\n", - "# Dati di esempio\n", - "import pandas as pd\n", - "# df = pd.read_csv(\"dati.csv\")\n", - "# x_data = df[\"nome_colonna_x\"].values\n", - "# y_data = df[\"nome_colonna_y\"].values\n", - "\n", - "np.random.seed(42)\n", - "x_data = np.linspace(0, 100, 101)\n", - "y_data = 2.5 * x_data**2 + 1.2 * x_data + 1 + np.random.normal(0, 100, 101)\n", - "\n", - "\n", - "\n", - "# Stato\n", - "selected_mask = np.ones(len(x_data), dtype=bool)\n", - "fit_history = []\n", - "\n", - "# Figura matplotlib\n", - "fig, ax = plt.subplots(figsize=(9, 5))\n", - "plt.subplots_adjust(bottom=0.12)\n", - "\n", - "sc_all = ax.scatter(x_data, y_data, c='steelblue', s=25, alpha=0.5, zorder=2, label='tutti i punti')\n", - "sc_sel = ax.scatter([], [], c='tomato', s=45, alpha=0.9, zorder=3, label='selezionati')\n", - "line_fit, = ax.plot([], [], color='darkorange', lw=2.5, zorder=4, label='fit')\n", - "fit_text = ax.text(0.02, 0.97, '', transform=ax.transAxes, fontsize=10, color='darkorange',\n", - " va='top', ha='left', bbox=dict(boxstyle='round,pad=0.3', facecolor='white', alpha=0.7))\n", - "box_patch = patches.Rectangle((0, 0), 0, 0, linewidth=1.5, edgecolor='tomato',\n", - " facecolor='tomato', alpha=0.08, linestyle='--', zorder=1)\n", - "ax.add_patch(box_patch)\n", - "ax.set_xlabel('x')\n", - "ax.set_ylabel('y')\n", - "ax.legend(loc='upper right', fontsize=9)\n", - "ax.grid(True, alpha=0.3)\n", - "\n", - "# UI\n", - "func_input = widgets.Text(value='a * x + b', description='f(x) =', layout=widgets.Layout(width='420px'))\n", - "fit_btn = widgets.Button(description='Esegui fit', button_style='primary')\n", - "clear_btn = widgets.Button(description='Reset selezione', button_style='warning')\n", - "clear_hist_btn = widgets.Button(description='Reset storia fit', button_style='danger')\n", - "sel_label = widgets.Label(value=f'Selezionati: {len(x_data)} / {len(x_data)}')\n", - "out_log = widgets.Output(layout=widgets.Layout(border='1px solid #ddd', padding='8px', min_height='80px'))\n", - "\n", - "# RectangleSelector\n", - "def on_select(eclick, erelease):\n", - " global selected_mask\n", - " if eclick.xdata is None or erelease.xdata is None:\n", - " return\n", - "\n", - " x0, x1 = sorted([eclick.xdata, erelease.xdata])\n", - " y0, y1 = sorted([eclick.ydata, erelease.ydata])\n", - "\n", - " selected_mask = ((x_data >= x0) & (x_data <= x1) &\n", - " (y_data >= y0) & (y_data <= y1))\n", - "\n", - " pts = np.column_stack([x_data[selected_mask], y_data[selected_mask]])\n", - " sc_sel.set_offsets(pts if pts.size > 0 else np.empty((0, 2)))\n", - "\n", - " box_patch.set_xy((x0, y0))\n", - " box_patch.set_width(x1 - x0)\n", - " box_patch.set_height(y1 - y0)\n", - " box_patch.set_visible(True)\n", - " sel_label.value = f'Selezionati: {int(selected_mask.sum())} / {len(x_data)}'\n", - " fig.canvas.draw_idle()\n", - "\n", - "rect_selector = RectangleSelector(ax, on_select, useblit=True, button=[1], minspanx=0, minspany=0, spancoords='data', interactive=False)\n", - "\n", - "# Parsing\n", - "def extract_params(expr):\n", - " expr = re.sub(r'^[a-zA-Z_]\\s*=\\s*', '', expr.strip())\n", - " try:\n", - " tree = ast.parse(expr, mode='eval')\n", - " names = {node.id for node in ast.walk(tree) if isinstance(node, ast.Name)}\n", - " exclude = {'x', 'np', 'numpy', 'math', 'pi', 'e', 'inf', 'True', 'False', 'None',\n", - " 'exp', 'log', 'sin', 'cos', 'sqrt', 'tan', 'tanh', 'sinh', 'cosh', 'abs', 'min', 'max'}\n", - " return sorted(names - exclude)\n", - " except SyntaxError:\n", - " return []\n", - "\n", - "# Costruttore funzione\n", - "def build_func(expr, params):\n", - " ns = {'np': np, 'exp': np.exp, 'log': np.log, 'sin': np.sin, 'cos': np.cos,\n", - " 'sqrt': np.sqrt, 'tan': np.tan, 'sinh': np.sinh, 'cosh': np.cosh,\n", - " 'pi': np.pi, 'e': np.e, 'inf': np.inf}\n", - " exec(f\"def _f(x, {', '.join(params)}):\\n return {expr}\", ns)\n", - " return ns['_f']\n", - "\n", - "# Fit\n", - "def run_fit(_):\n", - " out_log.clear_output(wait=True)\n", - " with out_log:\n", - " try:\n", - " expr = func_input.value.strip()\n", - " params = extract_params(expr)\n", - "\n", - " if not params:\n", - " print(\"Nessun parametro trovato. Usa lettere (es. a, b, k).\")\n", - " return\n", - "\n", - " xs = x_data[selected_mask]\n", - " ys = y_data[selected_mask]\n", - "\n", - " n = len(xs)\n", - " k = len(params)\n", - "\n", - " if n < k + 1:\n", - " print(f\"Troppo pochi punti ({n}) per {k} parametri.\")\n", - " return\n", - "\n", - " fn = build_func(expr, params)\n", - " p0 = np.ones(k) * 0.5\n", - " popt, pcov = curve_fit(fn, xs, ys, p0=p0, maxfev=20_000)\n", - " perr = np.sqrt(np.diag(pcov))\n", - "\n", - " # curva nel grafico\n", - " x_fit = np.linspace(x_data.min(), x_data.max(), 500)\n", - " y_fit = fn(x_fit, *popt)\n", - " line_fit.set_data(x_fit, y_fit)\n", - "\n", - " # Label\n", - " label_expr = expr\n", - " for p, v in zip(params, popt):\n", - " label_expr = re.sub(rf'\\b{p}\\b', f'{v:.3g}', label_expr)\n", - " fit_text.set_text(f'y = {label_expr}')\n", - " fig.canvas.draw_idle()\n", - "\n", - " # statistiche Uso nomi mega chiari\n", - " valori_predetti = fn(xs, *popt)\n", - " somma_quadri_residuali = np.sum((ys - valori_predetti) ** 2)\n", - " somma_quadri_totali = np.sum((ys - ys.mean()) ** 2)\n", - " r2 = 1 - somma_quadri_residuali / somma_quadri_totali\n", - " rmse = np.sqrt(somma_quadri_residuali / n)\n", - " GdL = max(n - k, 1)\n", - " varianza_residuali = somma_quadri_residuali / GdL\n", - " p_value = scipy.stats.chi2.sf(somma_quadri_residuali, df=GdL)\n", - "\n", - " # log-verosimiglianza gaussiana con σ² = somma_quadri_residuali/n (stima ML)\n", - " # Stavo facendo mettere apposto la parte grafica a Cloude e se ne è saltato fuori con questa aggiunta\n", - " # Se vero quello che mi ha spiegato è molto figa e utile\n", - " # In ogni caso basta ignorarne i risultati se fa paura e/o perdere tempo\n", - " log_lik = -n / 2 * (np.log(2 * np.pi * somma_quadri_residuali / n) + 1)\n", - "\n", - " AIC = 2 * k - 2 * log_lik\n", - " BIC = k * np.log(n) - 2 * log_lik\n", - " AICc = AIC + (2 * k * (k + 1)) / max(n - k - 1, 1)\n", - "\n", - " # salva in storia\n", - " fit_history.append({\n", - " 'expr' : expr,\n", - " 'k' : k,\n", - " 'n' : n,\n", - " 'R2' : r2,\n", - " 'RMSE' : rmse,\n", - " 'varianza_residuali': varianza_residuali,\n", - " 'AIC' : AIC,\n", - " 'AICc' : AICc,\n", - " 'BIC' : BIC,\n", - " })\n", - "\n", - " # stampa fit corrente\n", - " print(f\"Modello #{len(fit_history)} — fit su {n} punti\\n\")\n", - " print(f\"{'Parametro':<12} {'Valore':>14} {'± Errore Std':>14}\")\n", - " print(\"─\" * 42)\n", - " for p, v, e in zip(params, popt, perr):\n", - " print(f\"{p:<12} {v:>14.6g} {e:>14.6g}\")\n", - " print(f\"\\nR² = {r2:.6f}\")\n", - " print(f\"RMSE = {rmse:.6g}\")\n", - " print(f\"χ² rid(σ²=1)= {varianza_residuali:.6g} (varianza residua)\")\n", - " print(f\"p-value = {p_value:.4g} (prob. χ² ≥ osservato, GdL={GdL})\")\n", - " print(f\"log L = {log_lik:.4f}\")\n", - " print(f\"AIC = {AIC:.4f}\")\n", - " print(f\"AICc = {AICc:.4f} ← usa questo se n/k < 40\")\n", - " print(f\"BIC = {BIC:.4f}\")\n", - " print(f\"Punti usati = {n} / {len(x_data)} | k={k} | GdL={GdL}\")\n", - "\n", - " #Questo pezzo di codice è puro frutto dell'AI, è molto divertente anche come logica\n", - " # ── confronto modelli (solo se ce ne sono almeno 2) ───────────────\n", - " if len(fit_history) > 1:\n", - " best_AICc = min(h['AICc'] for h in fit_history)\n", - " best_BIC = min(h['BIC'] for h in fit_history)\n", - " delta = np.array([h['AICc'] - best_AICc for h in fit_history])\n", - " pesi = np.exp(-delta / 2)\n", - " pesi /= pesi.sum()\n", - "\n", - " W = 72\n", - " print(f\"\\n{'═'*W}\")\n", - " print(f\" CONFRONTO TRA MODELLI FITTATI\")\n", - " print(f\" Quante volte hai premuto 'Esegui fit': {len(fit_history)}\")\n", - " print(f\"{'═'*W}\")\n", - "\n", - " # ── tabella principale ────────────────────────────────────────────────────\n", - " print(f\"\\n {'#':<3} {'Funzione':<26} {'param':>5} {'punti':>6} \"\n", - " f\"{'R²':>7} {'RMSE':>9} {'AICc':>9} {'ΔAICc':>7}\")\n", - " print(f\" {'─'*3} {'─'*26} {'─'*5} {'─'*6} \"\n", - " f\"{'─'*7} {'─'*9} {'─'*9} {'─'*7}\")\n", - "\n", - " for i, (h, w) in enumerate(zip(fit_history, pesi)):\n", - " is_best_AICc = abs(h['AICc'] - best_AICc) < 1e-6\n", - " is_best_BIC = abs(h['BIC'] - best_BIC) < 1e-6\n", - " marker = ' ◀' if is_best_AICc else ' '\n", - " print(f\" {i+1:<3} {h['expr']:<26} {h['k']:>5} {h['n']:>6} \"\n", - " f\"{h['R2']:>7.4f} {h['RMSE']:>9.4g} \"\n", - " f\"{h['AICc']:>9.2f} {delta[i]:>7.2f}{marker}\")\n", - "\n", - " print(f\"\\n ◀ = modello preferito secondo AICc\")\n", - " print(f\"\\n R² : quanto il modello spiega i dati (1.000 = perfetto)\")\n", - " print(f\" RMSE : errore tipico in unità di y (più basso = meglio)\")\n", - " print(f\" AICc : criterio di selezione del modello (più basso = meglio)\")\n", - " print(f\" ΔAICc: distanza dal modello migliore (0 = sei il migliore)\")\n", - "\n", - " # ── interpretazione ΔAICc ────────────────────────────────────────────────\n", - " print(f\"\\n{'─'*W}\")\n", - " print(f\" INTERPRETAZIONE ΔAICc\")\n", - " print(f\"{'─'*W}\")\n", - " soglie = [(2, \"equivalente al migliore — entrambi plausibili\"),\n", - " (7, \"supporto minore — il migliore è preferibile\"),\n", - " (10, \"supporto debole — usare solo se motivato teoricamente\"),\n", - " (float('inf'), \"da scartare — i dati non supportano questo modello\")]\n", - " for i, (h, w) in enumerate(zip(fit_history, pesi)):\n", - " d = delta[i]\n", - " for soglia, giudizio in soglie:\n", - " if d < soglia:\n", - " break\n", - " best_tag = \" (migliore)\" if d < 1e-6 else \"\"\n", - " print(f\"\\n Modello #{i+1} → y = {h['expr']}{best_tag}\")\n", - " print(f\" ΔAICc = {d:.2f} → {giudizio}\")\n", - "\n", - " # ── pesi di Akaike ────────────────────────────────────────────────────────\n", - " print(f\"\\n{'─'*W}\")\n", - " print(f\" PROBABILITÀ RELATIVA DI CIASCUN MODELLO (pesi di Akaike)\")\n", - " print(f\" Interpretazione: dato il set di dati, quanto è probabile\")\n", - " print(f\" che questo sia il modello migliore tra quelli confrontati?\")\n", - " print(f\"{'─'*W}\")\n", - " for i, (h, w) in enumerate(zip(fit_history, pesi)):\n", - " bar = '█' * max(1, int(w * 40))\n", - " empty = '░' * (40 - max(1, int(w * 40)))\n", - " perc = w * 100\n", - " print(f\"\\n #{i+1} y = {h['expr']}\")\n", - " print(f\" probabilità = {perc:5.1f}% {bar}{empty}\")\n", - "\n", - " # ── verdetto finale ───────────────────────────────────────────────────────\n", - " best_idx = int(np.argmin(delta))\n", - " best_h = fit_history[best_idx]\n", - " print(f\"\\n{'═'*W}\")\n", - " print(f\" VERDETTO\")\n", - " print(f\"{'═'*W}\")\n", - " print(f\" Il modello preferito dai dati è il #{best_idx+1}:\")\n", - " print(f\" y = {best_h['expr']}\")\n", - " print(f\" con {best_h['k']} parametri su {best_h['n']} punti\")\n", - " print(f\" R² = {best_h['R2']:.4f} | RMSE = {best_h['RMSE']:.4g} | AICc = {best_h['AICc']:.2f}\")\n", - " if pesi[best_idx] > 0.9:\n", - " print(f\"\\n ✓ Scelta netta: peso {pesi[best_idx]*100:.1f}% — gli altri modelli hanno\")\n", - " print(f\" scarso supporto dai dati.\")\n", - " elif pesi[best_idx] > 0.6:\n", - " print(f\"\\n ~ Scelta abbastanza chiara (peso {pesi[best_idx]*100:.1f}%),\")\n", - " print(f\" ma considera anche il modello con ΔAICc minore.\")\n", - " else:\n", - " print(f\"\\n ! Scelta incerta (peso {pesi[best_idx]*100:.1f}%): i modelli sono\")\n", - " print(f\" statisticamente equivalenti — scegli quello più semplice\")\n", - " print(f\" o quello più motivato dalla teoria.\")\n", - " print(f\"{'═'*W}\\n\")\n", - "\n", - " except Exception as e:\n", - " print(f\"Errore: {e}\")\n", - "\n", - "# Reset\n", - "def reset(_):\n", - " global selected_mask\n", - " selected_mask = np.ones(len(x_data), dtype=bool)\n", - " sc_sel.set_offsets(np.empty((0, 2)))\n", - " box_patch.set_visible(False)\n", - " line_fit.set_data([], [])\n", - " fit_text.set_text('')\n", - " sel_label.value = f'Selezionati: {len(x_data)} / {len(x_data)}'\n", - " fig.canvas.draw_idle()\n", - " out_log.clear_output()\n", - "\n", - "# Reset storia fit (aggiunta da Cloude)\n", - "def reset_history(_):\n", - " fit_history.clear()\n", - " out_log.clear_output()\n", - " with out_log:\n", - " print(\"Storia dei fit azzerata.\")\n", - "\n", - "clear_btn.on_click(reset)\n", - "clear_hist_btn.on_click(reset_history)\n", - "\n", - "# Layout\n", - "display(widgets.VBox([\n", - " widgets.HBox([func_input, fit_btn, clear_btn, clear_hist_btn]),\n", - " sel_label,\n", - " fig.canvas,\n", - " out_log\n", - "]))\n", - "\n", - "# AGGIUNTA — Grafici dei residui Completamente separata\n", - "# Caratteri strani per la copia: ŷ σ ±\n", - "import matplotlib.gridspec as gridspec\n", - "\n", - "# Figura separata per i residui (viene creata vuota all'avvio,\n", - "# poi popolata ogni volta che si preme \"Esegui fit\")\n", - "fig_res, axes_res = plt.subplots(\n", - " 1, 2,\n", - " figsize=(12, 4),\n", - " gridspec_kw={'wspace': 0.35}\n", - ")\n", - "fig_res.suptitle('Analisi dei residui — ultimo fit', fontsize=12, fontweight='bold', y=1.02)\n", - "\n", - "ax_res1, ax_res2 = axes_res\n", - "\n", - "for ax in axes_res:\n", - " ax.axhline(0, color='#444', lw=1, linestyle='--', zorder=1)\n", - " ax.grid(True, alpha=0.25)\n", - "\n", - "ax_res1.set_xlabel('x')\n", - "ax_res1.set_ylabel('residuo (y - ŷ)')\n", - "ax_res1.set_title('Grafico 1 — Residui vs x\\n(bande ±1σ evidenziate)')\n", - "\n", - "ax_res2.set_xlabel('ŷ (valore predetto)')\n", - "ax_res2.set_ylabel('residuo (y - ŷ)')\n", - "ax_res2.set_title('Grafico 2 — Residui vs ŷ\\n(plot classico)')\n", - "\n", - "plt.tight_layout()\n", - "plt.show()\n", - "\n", - "\n", - "# funzione che aggiorna i grafici dei residui\n", - "def update_residual_plots(xs, ys, y_pred):\n", - " residuals = ys - y_pred\n", - " sigma = residuals.std(ddof=1) # deviazione standard campionaria\n", - "\n", - " # pulizia assi\n", - " for ax in axes_res:\n", - " ax.cla()\n", - " ax.axhline(0, color='#444', lw=1, linestyle='--', zorder=1)\n", - " ax.grid(True, alpha=0.25)\n", - "\n", - " # GRAFICO 1\n", - " ax_res1.set_xlabel('x')\n", - " ax_res1.set_ylabel('residuo (y - ŷ)')\n", - " ax_res1.set_title('Grafico 1 — Residui vs x\\n(bande ±1σ evidenziate)')\n", - "\n", - " # bande\n", - " x_min, x_max = xs.min(), xs.max()\n", - " ax_res1.axhspan(-sigma, sigma,\n", - " color='steelblue', alpha=0.12, zorder=0, label='±1σ')\n", - " ax_res1.axhline( sigma, color='steelblue', lw=1.2, linestyle=':', zorder=2)\n", - " ax_res1.axhline(-sigma, color='steelblue', lw=1.2, linestyle=':', zorder=2)\n", - "\n", - " # colore punti: dentro/fuori banda\n", - " inside = np.abs(residuals) <= sigma\n", - " outside = ~inside\n", - "\n", - " ax_res1.scatter(xs[inside], residuals[inside],\n", - " c='steelblue', s=30, alpha=0.75, zorder=3,\n", - " label=f'entro ±1σ ({inside.sum()})')\n", - " if outside.any():\n", - " ax_res1.scatter(xs[outside], residuals[outside],\n", - " c='tomato', s=40, alpha=0.9, zorder=4, marker='D',\n", - " label=f'fuori ±1σ ({outside.sum()})')\n", - "\n", - " # annotazione percentuale Carina\n", - " pct = inside.mean() * 100\n", - " ax_res1.text(0.98, 0.97,\n", - " f'{pct:.1f}% entro ±1σ\\nσ = {sigma:.4g}',\n", - " transform=ax_res1.transAxes,\n", - " ha='right', va='top', fontsize=9,\n", - " bbox=dict(boxstyle='round,pad=0.3', facecolor='white', alpha=0.75))\n", - "\n", - " ax_res1.legend(fontsize=8, loc='lower right')\n", - "\n", - " # GRAFICO 2 : residui Classici\n", - " ax_res2.set_xlabel('ŷ (valore predetto)')\n", - " ax_res2.set_ylabel('residuo (y - ŷ)')\n", - " ax_res2.set_title('Grafico 2 — Residui vs ŷ\\n(plot classico)')\n", - "\n", - " ax_res2.scatter(y_pred, residuals,\n", - " c='darkorange', s=30, alpha=0.75, edgecolors='none', zorder=3)\n", - "\n", - " # uso solo una regressione lineare sui residui (utile per capire se residui lineari)\n", - " # Serve per il debugging della funzione di fit e mostra se usi una retta per dati su una parabola\n", - " if len(y_pred) > 2:\n", - " idx_sort = np.argsort(y_pred)\n", - " xp = y_pred[idx_sort]\n", - " yp = residuals[idx_sort]\n", - " coeff = np.polyfit(xp, yp, 1)\n", - " trend = np.polyval(coeff, xp)\n", - " ax_res2.plot(xp, trend, color='gray', lw=1.5, linestyle='--',\n", - " alpha=0.7, label=f'tendenza lineare\\n(slope={coeff[0]:.3g})')\n", - " ax_res2.legend(fontsize=8, loc='best')\n", - "\n", - " # titolo figura\n", - " last_expr = fit_history[-1]['expr'] if fit_history else '?'\n", - " fig_res.suptitle(f'Analisi dei residui — ultimo fit: y = {last_expr}',\n", - " fontsize=11, fontweight='bold', y=1.02)\n", - "\n", - " fig_res.canvas.draw_idle()\n", - "\n", - "\n", - "# Salviamo il run_fit originale\n", - "_run_fit_original = run_fit\n", - "\n", - "def run_fit_with_residuals(btn):\n", - " _run_fit_original(btn)\n", - "\n", - " try:\n", - " expr = func_input.value.strip()\n", - " params = extract_params(expr)\n", - " fn = build_func(expr, params)\n", - "\n", - " xs = x_data[selected_mask]\n", - " ys = y_data[selected_mask]\n", - "\n", - " # ri-esegui curve_fit solo per prendere popt\n", - " p0 = np.ones(len(params)) * 0.5\n", - " popt, _ = curve_fit(fn, xs, ys, p0=p0, maxfev=20_000)\n", - " y_pred = fn(xs, *popt)\n", - "\n", - " update_residual_plots(xs, ys, y_pred)\n", - " except Exception:\n", - " pass\n", - "fit_btn.on_click(run_fit_with_residuals) #Non fa i residui fit_btn.on_click(run_fit)\n", - "\n", - "# Widget di output per i grafici dei residui\n", - "residuals_out = widgets.Output()\n", - "with residuals_out:\n", - " display(fig_res.canvas)\n", - "\n", - "display(residuals_out)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "fc48565a", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "8e0f68f82e6447a4992ceabd871c4208", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Sheet(cells=(Cell(column_end=0, column_start=0, row_end=11, row_start=0, squeeze_row=False, type='text', value…" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "x_str = [f'{v:.17g}' for v in x_data[selected_mask]]\n", - "y_str = [f'{v:.17g}' for v in y_data[selected_mask]]\n", - "\n", - "sheet = ipysheet.sheet(rows=len(x_data[selected_mask]), columns=2)\n", - "ipysheet.column(0, x_str, label='Colonna 1')\n", - "ipysheet.column(1, y_str, label='Colonna 2')\n", - "\n", - "sheet" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "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.11" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/UIIntegrata.ipynb b/UIIntegrata.ipynb new file mode 100644 index 0000000..1a85f53 --- /dev/null +++ b/UIIntegrata.ipynb @@ -0,0 +1,674 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "4557c12a", + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib widget" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "7bf36843", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " T uT nT outT V uV nV outV\n", + "0 20.018911 0.098293 4.0 [] 2.209829 0.025628 4.0 []\n", + "1 31.378608 0.071720 4.0 [] 2.752721 0.020042 4.0 []\n", + "2 42.858354 0.064409 4.0 [] 3.326787 0.017355 4.0 []\n", + "3 54.333966 0.081619 4.0 [] 3.938112 0.021662 4.0 []\n", + "4 65.715137 0.110980 4.0 [] 4.494095 0.017458 4.0 []\n", + "5 77.135309 0.077455 4.0 [] 5.062716 0.017437 4.0 []\n", + "6 88.606404 0.059940 4.0 [] 5.619317 0.016902 4.0 []\n", + "7 99.980813 0.055538 4.0 [] 6.197263 0.018829 4.0 []\n", + "Ax + B : \n", + "A = 0.0500 ± 0.0003\n", + "B = 1.1958 ± 0.0189\n", + "covAB = -0.000005\n", + "chi² = 3.19\n", + "P(chi², ∞) = 0.78\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f5077a966d534023b20ff75f714f58f8", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAH0CAYAAADFQEl4AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAkbJJREFUeJzs3Xl4U1X+BvA3pRvdKaW0lAKVHQTBgooFWhVwARRRcEHZBQdFGccFt3GXYebnzKjjxrCKIosiKg46MkhZxrVQEFBELVvSLV2ydG9yfn/cadpwU7rl5KbJ+3mePtCbm+Sb8ObSb8+95+iEEAJEREREREQeEKB1AURERERE5D/YgBARERERkcewASEiIiIiIo9hA0JERERERB7DBoSIiIiIiDyGDQgREREREXkMGxAiIiIiIvIYNiBEREREROQxbECIiIiIiMhj2IAQEREREZHHsAEhIiIiIiKPYQNCREREREQewwaEiIiIiIg8hg0IERERERF5DBsQIiJyi6effho6nU7rMs4rIyMDGRkZju9PnjwJnU6HtWvXalYTEZG/YQNCRNRGa9euhU6nc3wFBgYiKSkJs2fPhl6v17o8IiIirxKodQFERL7i2WefRUpKCiorK/H1119j7dq12LdvH44cOYLQ0FCty5PuiSeewNKlS7Uuo0V69uyJiooKBAUFaV0KEZHfYANCROQm1157LUaMGAEAmD9/PuLi4rB8+XJ8/PHHmD59usfqEEKgsrISHTt29NhzAkBgYCACA9vXfys6nc7rm8Py8nKEhYVpXQYRkdvwFCwiIknGjBkDAPj111+dtv/000+4+eabERsbi9DQUIwYMQIff/yx6v6HDx9Geno6OnbsiO7du+P555/HmjVroNPpcPLkScd+vXr1wqRJk/D5559jxIgR6NixI9566y0AQGlpKZYsWYLk5GSEhISgT58+WL58Oex2u9Nzbdy4EampqYiMjERUVBSGDBmCl19+2XF7TU0NnnnmGfTt2xehoaHo3LkzRo8ejS+++MKxj6trQGpra/Hcc8+hd+/eCAkJQa9evfDYY4+hqqrKab+617Bv3z5ccsklCA0NxQUXXIC3335b9b409zU1h6trQGbPno2IiAjo9XpMmTIFERER6NKlCx588EHYbDan+9vtdvz973/H4MGDERoaiq5du2LhwoUoKSlx2u+jjz7CxIkT0a1bN4SEhKB379547rnnVI+XkZGBCy+8EFlZWRg7dizCwsLw2GOPAQCqqqrw1FNPoU+fPggJCUFycjIefvhh1XtJROTt2tevqoiI2pG6JqFTp06ObUePHkVaWhqSkpKwdOlShIeHY/PmzZgyZQo++OAD3HjjjQAAvV6PK664AjqdDo8++ijCw8OxcuVKhISEuHyu48eP47bbbsPChQtx1113oX///igvL0d6ejr0ej0WLlyIHj164L///S8effRR5Obm4u9//zsA4IsvvsBtt92Gq666CsuXLwcA/Pjjj9i/fz/uv/9+AEpzsWzZMsyfPx+XXHIJzGYzvv/+exw4cADjx49v9D2YP38+1q1bh5tvvhl/+MMf8M0332DZsmX48ccf8eGHHzrt+8svv+Dmm2/GvHnzMGvWLKxevRqzZ89GamoqBg8eDADNfk1tZbPZcPXVV+PSSy/F//3f/2Hnzp146aWX0Lt3b/zud79z7Ldw4UKsXbsWc+bMwX333YecnBz84x//wMGDB7F//37HqV1r165FREQEHnjgAURERGDXrl344x//CLPZjL/85S9Oz11UVIRrr70Wt956K+644w507doVdrsd119/Pfbt24cFCxZg4MCB+OGHH/C3v/0NP//8M7Zt2+aW101E5BGCiIjaZM2aNQKA2LlzpygsLBRnzpwR77//vujSpYsICQkRZ86ccex71VVXiSFDhojKykrHNrvdLi6//HLRt29fx7bFixcLnU4nDh486NhWVFQkYmNjBQCRk5Pj2N6zZ08BQHz22WdOdT333HMiPDxc/Pzzz07bly5dKjp06CBOnz4thBDi/vvvF1FRUaK2trbR13jRRReJiRMnnvd9eOqpp0TD/1ays7MFADF//nyn/R588EEBQOzatUv1Gvbs2ePYVlBQIEJCQsQf/vCHFr+mxqSnp4v09HTH9zk5OQKAWLNmjWPbrFmzBADx7LPPOt13+PDhIjU11fH93r17BQDx7rvvOu332WefqbaXl5eralm4cKEICwtzykJ6eroAIN58802nfdevXy8CAgLE3r17nba/+eabAoDYv3//eV83EZE34SlYRERuMm7cOHTp0gXJycm4+eabER4ejo8//hjdu3cHABQXF2PXrl2YPn06LBYLjEYjjEYjioqKcPXVV+PEiROOWbM+++wzjBo1CsOGDXM8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rhYhISEiLCxMhIeHi7CwMDFy5EiRnZ3d5sd++eWXRWpqqggODhY33HBDk/u/+uqr593/l19+Eddcc42IiYkR3bp1E8uXL3e6fdasWSIoKMhputz//ve/jtvPnj0rbrjhBhEbGys6d+4spk2bJgoKCtr6Mh2qq6vFPffcI2JiYkSnTp0aneK3Ofs29V409Vqaeq/cRausu3s6YaKGmC+SifkiWTgNr2teOwKyZs0axMfHY+LEiefdLyQkBFFRUU5f7d3Ro0dRXV3t6PiNRiPi4uLw6KOPtvmxExIS8MQTT+Cuu+5q1v7dunVrdH+bzYbrr78eF198MQoKCrBr1y784x//wIYNG5z2W7RoEaxWq+Nr1KhRjtvuueceAMCpU6eQk5ODyspK3HfffU3WtXv37matIvr8889j3759OHbsGI4ePYq9e/fixRdfbNW+53svmnotzX2v2jOe/kgyMV8kE/NF5Fle2YDY7XasWbMGs2bN8stpYw8cOICUlBREREQAADp27IiLLroINTU1bX7sadOmYcqUKYiLi2vW/lOnTm10/+PHj+P48eN46qmnEBQUhP79+2PevHlYsWJFs+v57bffMH36dERERCAyMhK33HILfvjhh2bfvymrV6/GE088gcTERCQmJuLxxx/HqlWrWrXv+d6Lpl6LO94rb9fcTBG1BvNFMjFfRJ7llQ3Izp07cfr0acydO1frUjRx4MABDB06FIBy0fj333+Pd999F0uWLFHtu2jRIsTExDT6tW/fPqf93dHE1LHb7Y4aG247fPiw035vv/02YmNjMXjwYLz00kuO+wHAAw88gC1btsBkMqG0tBTvvfceJk+e7Jb6SkpKcPbsWQwbNsyxbdiwYTh9+jRMJlOr923M+V5Lc9+r9iw/P1/rEsiHMV8kE/NF5Fle2YBMmDABQgj069dP61I0ceDAAXz22WeIiYlBWFgYLr30UixevNjl6Wivv/46SktLG/0aPXq00/7uXAW9f//+6NWrF/74xz+iqqoKR48exerVq52Gsu+77z4cP34chYWFWLVqFV5++WW8/PLLjtvT0tJQUFCATp06ITY2FiUlJY2eataw2Zo0aRL27dt33mbLarUCAGJiYhzb6v5usVhavW9jzvdamvNetXdcRZhkYr5IJuaLyLO8sgHxZzabDYcOHcL777+P0tJSlJeX4z//+Q8eeeQRt5yaVDdjkjsEBQXho48+wsGDB5GUlIQZM2Zgzpw56Ny5s2Ofiy++GF26dEGHDh1w2WWXYenSpdi0aRMAZQRg/PjxSEtLc1wfkpaWhgkTJrh8vobN1vbt2zF69OjzNlt1p7A1HMGo+3tkZGSr93WlqdfSnPeqvWvzjBhE58F8kUzMF5FnsQHxMj/99BPKy8sxcuRIAIBOp8OYMWMQHByMnJwc1f533303IiIiGv3au3ev0/5BQUFurXfw4MH497//DaPRiOzsbFRVVZ131fqGCyEWFxfj1KlTuO+++xAWFoawsDAsXrwY33zzDYxGY5tr69SpE7p3747s7GzHtuzsbCQnJyM6OrrV+7rSnNfS0veqvenatavWJZAPY75IJuaLyLPYgHiZAwcOoGfPnoiPjwegzMzx6KOPIioqCmPHjlXt/+abbzrNMHXu15gxY5z2r6ysRGVlpWMticrKyvOOitTW1p53/8OHD6OsrAzV1dXYunWr40LuOps3b4bZbHZcy/KnP/0JN910EwDlor8+ffrgtddec9T12muvoXv37k1eEJiRkYHdu3c3+X7OmTMHL7zwAvLy8pCXl4cXX3wR8+fPb9W+53svmvNamnqv2jt3NI1EjWG+SCbmi8jDNJ0EWAKTydSu1wFZsmSJCAgIEOHh4SIqKkp0795dzJgxQxw/ftwtj//kk08KAE5f6enpjtsXLlwoFi5c6Pj+qaeeOu/+jz/+uIiNjRVhYWFi1KhRYt++fU7PN2bMGBEdHS3Cw8NFv379xPLly4XNZnPcfvToUTFhwgQRGxsrYmJixBVXXCEOHDjgsvaFCxc6rSdy7teePXtU96murhaLFi0SMTExIiYmxmltj3Nf6/n2bc570dRraeq9cheuA0K+iPkimZgvkoXrgLimE6LBtDw+wGw2Izo6GiaTyWlNkMrKSuTk5CAlJQWhoaEaVqit2tpav5za2J9olfXi4mLExsZ67PnIvzBfJBPzRbLk5uZixYoVWLBgARITE7Uux2vwFCwicgudTqd1CeTDmC+Sifki8iw2IH6GB1mSxd0THBA1xHyRTMwXkWf577k4QgDl5Z57vrAwwAt++Lfb7ejQoYPWZZAPKisrc0xnTORuzBfJxHwReZb/NiDl5YAnDzZWKxAe7rnnawSbD5KF50+TTMwXycR8EXkWT8HyM7W1tVqXQD6qoKBA6xLIhzFfJBPzReRZ/jsCEhamjEp48vm8QHBwsNYlkI9KSkrSugTyYcwXycR8EXmW/46A6HTKKVGe+nLj9R8bN27E9OnTm73/iBEjsHXrVgBwuehgamoqdu3a5bb6zjVhwgTs3LlT2uOTd9Dr9VqXQD6M+SKZmC8iz/LfBsSL1dTUIDQ0FOHh4YiIiEBsbCzuvPNOVFVVwW6347HHHsOTTz7ZrMeqra3F0aNHceGFFwJwPdNHVlYWampqcMstt2D8+PFYsGCBW1/P448/joceeshtj1dTU4N7770XnTp1QmxsLBYvXtzoqWURERFOX0FBQRg6dKjjdr1ejylTpqBz586Ii4vD9OnTUVhYqHqciooK9OnTBzExMU7bFy9ejOTkZERFRSEpKQlLliw578ryvozzm5NMzBfJxHwReRYbEC909OhR1NbWIj8/H1arFd9//z22b9+OdevW4V//+hdiY2MxZMiQZj3W8ePHAQC9e/cGoPzw7sqECROwadMmfPHFF/jvf/8Lk8nknhcDYOzYsSgtLcX+/fvd8njPP/889u3bh2PHjuHo0aPYu3cvXnzxRZf7Wq1Wp6+BAwfi1ltvddx+zz33AABOnTqFnJwcVFZW4r777lM9zh//+Ef07NlTtX3RokX46aefYDabcejQIRw6dAh//vOf3fI625u8vDytSyAfxnyRTMwXkWexAfFCBw4cwODBgx1TAl5wwQXo2rUrKisr8fHHH+PKK69U3WfHjh245JJLEB4ejq5du+L//u//AADZ2dkYMGAAXn31VfTo0QNdunTBsmXLHPf78MMPMXz4cMf6IK+99homT56M6Ohot70enU6HK6+8Eh9//LFbHm/16tV44oknkJiYiMTERDz++ONYtWpVk/f79ttvcezYMcyePdux7bfffsP06dMRERGByMhI3HLLLfjhhx+c7peVlYXPPvsMjzzyiOoxBw4ciPD/zW4mhEBAQABOnDjRthfYTnXq1EnrEsiHMV8kE/NF5FlsQLzQgQMHcNlllwEAKisr8dprr8FgMGDixImOhqKhtWvX4q677sKyZctgMpmQnZ2N0aNHAwAOHTqEEydOoEuXLvj111+xZcsWPPnkk6iqqgIAHDx4EBdffDEAYNmyZThz5kyjownnslgsuO6669C3b1+89NJLOHnyJEaMGIGhQ4di8+bNTvsOGjQI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yy/49NNP8corr7jldVDj6v6Ng4KCHNt+/vlndOvWDYByLvLdd9+N7du3o2PHjrj33nvx5JNPAgA6dOiABx98EI899hg+/PBDTepvjF6v53/iJA3zRTIxXwQAkZGRzr9QNhiAdeuAVauAX3+t3z50KHDXXcCMGUCnTo0+Xq+4cCxKS0Lg0U+xIG282067UtXZDnEdkEY0XGUyMjISiYmJqAyKwubjVdhdnYLNx6tQGRSFxMREREZGunVVyuXLl8NisaC0tBSbN2+GXq9Hamoq8vPz2/zYDX/obejNN9/ELbfcIu30LFdzrNfW1kp5rvM9Z0vneq+trZUyPePy5cthtVodX3XNBwAsXrwYxcXFOH36NPbu3Yt//vOfePvttx2333zzzfjPf/6D06dPu72utujatavWJZAPY75IJuaLHGprgU8+AW64AejRA3jsMaX5iIwEFi4EvvsOyM4G7r33vM0HnR8bkEacu8pkUytayliVUqfTYdCgQXjnnXcQFRWFl156yfFcN9xwA+Lj4xEdHY2xY8fi0KFDAIBt27bhxRdfxPbt2xEREeEYnZk9ezaWLFnS6A/9H3/8Ma688krV9ldffRWJiYlISEjAU0895fhh/PTp0xg/fjy6dOmCTp06YeLEiTh58qTjfrNnz8a8efMwffp0REVF4c0330RGRgYefvhhTJgwAeHh4dixYwesVivuvfde9OjRA/Hx8Zg5cyZMJlOj78mvv/6KyZMno0uXLujZsyeef/552O12AMDatWsxbNgwPPXUU0hISMCtt96Kp59+GpMmTcLvfvc7xMbGYunSpaipqcGjjz6KHj16oEuXLrjllltQWFjo9L7/4x//wIUXXojw8HBYrdbzPu+5HnroIaSnpztuf//995GQkICCgoJGX1ed8vJybNy4Ec8//zxiYmLQr18/LF68GKtWrXLsEx4ejpEjR+LTT71rCj9fmJecvBfzRTIxX4Rff1WajR49gOuvBz7+GLDZgNGjgTVrgNxc4M03gREjAC5p0GZe2YDo9Xrccccd6Ny5Mzp27IghQ4bg+++/16werVe0DAwMxJQpUxzXodjtdtx+++3IyclBfn4+hg8fjunTp0MIgSlTpuCxxx7DpEmTHL9dbyjAxawM5eXlOHHiBAYMcJ4yzmKx4MCBA/j111+xe/durF692vGbeLvdjgceeABnzpzB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jSI3N1e7oqndOrcBYbaoLT755BNx4YUXipCQEDFgwACxYsUKp9vtdrt48sknRdeuXUVISIi46qqrxPHjxzWqltoTs9ks7r//ftGjRw8RGhoqLrjgAvH444+Lqqoqxz7MFzXXl19+6fJnrVmzZgkhmpeloqIicdttt4mIiAgRFRUl5syZIywWiwavRhs6IRosA0pERERERCQRrwEhIiIiIiKPYQNCREREREQewwaEiIiIiIg8hg0IERERERF5DBsQIiIiIiLyGDYgRERERETkMWxAiIiIiIjIY9iAEBERERGRx7ABISIiIiIij2EDQkREHqfT6c779fTTT2tdIhERSRKodQFEROR/cnNzHX/ftGkT/vjHP+L48eOObREREVqURUREHsAGhIiIPC4hIcHx9+joaOh0OqdtRETku3gKFhEREREReQwbECIiIiIi8hg2IERERERE5DFsQIiIiIiIyGPYgBARERERkcewASEiIiIiIo9hA0JERERERB6jE0IIrYsgIiIiIiL/wBEQIiIiIiLyGDYgRERERETkMWxAiIiIiIjIY9iAEBERERGRx7ABISIiIiIij2EDQkREREREHsMGhIiIiIiI/r/9OhYAAAAAGORvPYtdZdFGQAAAgI2AAAAAGwEBAAA2AgIAAGwEBAAA2AgIAACwERAAAGAjIAAAwEZAAACAjYAAAACbACYZcO88lU02AAAAAElFTkSuQmCC", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b5c1f59f90ee4d198fac0da5d5191194", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAH0CAYAAADFQEl4AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAcP9JREFUeJzt3Xl4lPW5//HPhJAFshGyEsMqBRRZDEKD1sSKxaW1HBAtpS3gwtHKTxSL4AaoVYqnLrSilC5ij3JUJFL3lqKktSKYoCKIiMo6mUkyZJvJnszz+yNlypAnIdzfyTz5znxe15WrMEvmnreTaW5msxmGYYCIiIiIiCgIIqwegIiIiIiIwgcXECIiIiIiChouIEREREREFDRcQIiIiIiIKGi4gBARERERUdBwASEiIiIioqDhAkJEREREREHDBYSIiIiIiIKGCwgREREREQUNFxAiIiIiIgoaLiBERERERBQ0XECIiIiIiChouIAQEREREVHQcAEhIiIiIqKg4QJCREQhYcWKFbDZbF06rc1mw4oVK0SXM3jwYMydO1d0XiIi4gJCRETdYP369bDZbL6vyMhIZGVlYe7cubDb7VaPR0REFoq0egAiIgpdDz74IIYMGYKGhgZ8+OGHWL9+Pd5//33s2bMHMTExAb2s++67D0uXLg3o9zSzf/9+RETw3++IiKS4gBARUbe54oorMGHCBADAjTfeiJSUFKxatQqvvfYarr322oBeVmRkJCIju///1qKjo7v9MoiIQhn/CYeIiILmO9/5DgDg66+/9h32xRdf4JprrkFycjJiYmIwYcIEvPbaa37na25uxgMPPIDhw4cjJiYG/fv3x0UXXYQtW7b4TmP2GpDGxkbccccdSE1NRXx8PK6++mocO3as3Vxz587F4MGD2x1u9j35GhAiIjV8BISIiILm0KFDAIB+/foBAPbu3YsLL7wQWVlZWLp0Kfr27YuXX34Z06ZNw6ZNm/Bf//VfANoWgZUrV+LGG2/ExIkTUVNTg6KiIuzatQuXXXZZh5d344034vnnn8ePf/xjTJ48Ge+++y6uuuqqbr+eRETUMS4gRETUbaqrq+FyudDQ0IAdO3bggQceQHR0NL7//e8DABYuXIiBAwfio48+8j216ec//zkuuugiLFmyxLeAvPnmm7jyyiuxbt26Ll/2p59+iueffx4///nPsWbNGgDArbfeitmzZ2P37t0BvqZERNRVfAoWERF1mylTpiA1NRXZ2dm45ppr0LdvX7z22ms466yzUFFRgXfffRfXXnst3G43XC4XXC4Xjh8/jqlTp+LAgQO+d8xKSkrC3r17ceDAgS5f9ltvvQUAuO222/wOv/322wN2/YiI6MxxASEiom6zZs0abNmyBa+88gquvPJKuFwu3yMdX331FQzDwP3334/U1FS/r+XLlwMAysrKALS9m1ZVVRW+9a1v4bzzzsPixYtP+yjG4cOHERERgWHDhvkdPmLEiG64pkRE1FV8ChYREXWbiRMn+t4Fa9q0abjooovw4x//GPv374fX6wUA/OIXv8DUqVNNz3/22WcDAC6++GJ8/fXX+Mtf/oK//e1v+MMf/oAnnngCa9euxY033qg8Z0cfYNja2qr8vYmIyB8XECIiCopevXph5cqVuOSSS/DUU0/h+uuvBwD07t0bU6ZMOe35k5OTMW/ePMybNw8ejwcXX3wxVqxY0eECMmjQIHi9Xnz99dd+j3rs37+/3Wn79euHqqqqdocfPny4i9eOiIi6ik/BIiKioMnPz8fEiRPx5JNPIiEhAfn5+fjd734Hh8PR7rTl5eW+Px8/ftzvuLi4OJx99tlobGzs8LKuuOIKAMBvfvMbv8OffPLJdqcdNmwYqqur/Z7W5XA48Oqrr3bpehERUdfxERAiIgqqxYsXY+bMmVi/fj3WrFmDiy66COeddx5uuukmDB06FKWlpdi+fTuOHTuGTz/9FABwzjnnID8/Hzk5OUhOTkZRURFeeeUVLFiwoMPLGTduHGbNmoWnn34a1dXVmDx5MrZu3Yqvvvqq3Wl/9KMf+d5167bbbkNdXR2eeeYZfOtb38KuXbu6rQURUTjiAkJEREE1ffp0DBs2DL/+9a9x0003oaioCA888ADWr1+P48ePIy0tDePHj8eyZct857ntttvw2muv4W9/+xsaGxsxaNAg/PKXv8TixYs7vaw//elPSE1NxQsvvIDNmzfju9/9Lt58801kZ2f7na5///549dVXsWjRItx1110YMmQIVq5ciQMHDnABISIKMJthGIbVQxARERERUXjga0CIiIiIiChouIAQEREREVHQcAEhIiIiIqKg4QJCRERERERBwwWEiIiIiIiChgsIEREREREFDReQbmIYBmpqasB3OSYiIiIi+g8u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vRSfffYZPvnkE9/XhAkTMHv2bN+f2a/rPB4Pvv76a2RmZvK2dxoXXnhhu7ca//LLLzFo0CAAwJAhQ5CRkeHXr6amBjt27GC/kzz77LNIS0vDVVdd5TuMt73O1dXVISLC/1emXr16wev1AuBtr6v69u2LzMxMVFZW4q9//St++MMfsl0XdaVTbm4uqqqq/B5Zevfdd+H1ejFp0qSgz9wpq18FT3K33HKLkZiYaGzbts3vrRXr6up8p7n55puNgQMHGu+++65RVFRk5ObmGrm5uRZO3TMsXbrUKCwsNA4ePGjs3r3bWLp0qWGz2Yy//e1vhmGw25k6+V2wDIP9OnPnnXca27ZtMw4ePGj861//MqZMmWKkpKQYZWVlhmGwXWd27txpREZGGg8//LBx4MAB44UXXjD69OljPP/8877T/OpXvzKSkpKMv/zlL8bu3buNH/7wh2H5dp4daW1tNQYOHGgsWbKk3XG87XVszpw5RlZWlu9teAsKCoyUlBTjrrvu8p2Gt72OvfPOO8bbb79tfPPNN8bf/vY3Y+zYscakSZOMpqYmwzDY7gS32218/PHHxscff2wAMB5//HHj448/Ng4fPmwYRtc6XX755cb48eONHTt2GO+//74xfPhwvg0vBRYA069nn33Wd5r6+nrj5z//udGvXz+jT58+xn/9138ZDofDuqF7iOuvv94YNGiQERUVZaSmphqXXnqpb/kwDHY7U6cuIOzXseuuu87IzMw0oqKijKysLOO6667z+xwLtuvc66+/bowePdqIjo42Ro4caaxbt87veK/Xa9x///1Genq6ER0dbVx66aXG/v37LZq25/nrX/9qADBtwttex2pqaoyFCxcaAwcONGJiYoyhQ4ca9957r9HY2Og7DW97HXvppZeMoUOHGlFRUUZGRoZx6623GlVVVb7j2a7Ne++9Z/p73Zw5cwzD6Fqn48ePG7NmzTLi4uKMhIQEY968eYbb7bbg2nTOZhgnfYwnERERERFRN+JrQIiIiIiIKGi4gBARERERUdBwASEiIiIioqDhAkJEREREREHDBYSIiIiIiIKGCwgREREREQUNFxAiIiIiIgoaLiBERERERBQ0XECIiIiIiChouIAQEZGWbDZbp18rVqywekQiIjIRafUAREREEg6Hw/fnl156CcuWLcP+/ft9h8XFxVkxFhERnQYXECIi0lJGRobvz4mJibDZbH6HERFRz8SnYBERERERUdBwASEiIiIioqDhAkJEREREREHDBYSIiIiIiIKGCwgREREREQUNFxAiIiIiIgoaLiBERERERBQ0NsMwDKuHICIiIiKi8MBHQIiIiIiIKGi4gBARERERUdBwASEiIiIioqDhAkJEREREREHDBYSIiIiIiIKGCwgREREREQUNFxAiIiIiIgoaLiBERERERBQ0XECIiIiIiChouIAQEREREVHQcAEhIiIiIqKg4QJCRERERERBwwWEiIiIiIiChgsIEREREREFDRcQIiIiIiIKGi4gREREREQUNFxAiIiIiIgoaP4/TvkakbIFQR4AAAAASUVORK5CYII=", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from statlib import *\n", + "np.random.seed(0)\n", + "\n", + "# ------------------------------\n", + "# PARAMETRI \"VERI\"\n", + "# ------------------------------\n", + "\n", + "n_misure = 8\n", + "n_ripetizioni = 4\n", + "\n", + "A_vero = 0.05\n", + "B_vero = 1.2\n", + "\n", + "# Variabile indipendente (senza rumore sistematico)\n", + "T_veri = np.linspace(20, 100, n_misure)\n", + "\n", + "# ------------------------------\n", + "# GENERAZIONE DATI\n", + "# ------------------------------\n", + "\n", + "campione_dict = {}\n", + "\n", + "for j in range(n_ripetizioni):\n", + " # rumore su x\n", + " T_noise = T_veri + np.random.normal(0, 0.1, n_misure)\n", + "\n", + " # relazione lineare + rumore su y\n", + " V_noise = A_vero * T_noise + B_vero + np.random.normal(0, 0.03, n_misure)\n", + "\n", + " campione_dict[f\"T_{j+1}\"] = T_noise\n", + " campione_dict[f\"V_{j+1}\"] = V_noise\n", + "\n", + "campione = pd.DataFrame(campione_dict)\n", + "\n", + "# ------------------------------\n", + "# OGGETTO DATA\n", + "# ------------------------------\n", + "\n", + "data = Data(\n", + " campione=campione,\n", + " analisi_stat=None,\n", + " param_reg=None\n", + ")\n", + "\n", + "# ------------------------------\n", + "# ANALISI STATISTICA\n", + "# ------------------------------\n", + "\n", + "data.stat_chauv(\n", + " prefissi=[\"T\", \"V\"],\n", + " err_strumentale=[0.05, 0.01]\n", + ")\n", + "\n", + "# Rinomino per compatibilità con regressione\n", + "data.analisi_stat[\"x\"] = data.analisi_stat[\"T\"]\n", + "data.analisi_stat[\"y\"] = data.analisi_stat[\"V\"]\n", + "data.analisi_stat[\"ux\"] = data.analisi_stat[\"uT\"]\n", + "data.analisi_stat[\"uy\"] = data.analisi_stat[\"uV\"]\n", + "\n", + "# ------------------------------\n", + "# OUTPUT STATISTICA\n", + "# ------------------------------\n", + "\n", + "print(\n", + " data.analisi_stat[\n", + " [\"T\", \"uT\", \"nT\", \"outT\",\n", + " \"V\", \"uV\", \"nV\", \"outV\"]\n", + " ]\n", + ")\n", + "\n", + "# ------------------------------\n", + "# REGRESSIONE\n", + "# ------------------------------\n", + "\n", + "data.reg_lin(\n", + " x_label=\"T\",\n", + " y_label=\"V\",\n", + " r_label=\"Residui\",\n", + " titolo_reg=\"Regressione lineare\",\n", + " titolo_residui=\"Residui\",\n", + " scala_barre=50\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a89d56a4", + "metadata": {}, + "outputs": [], + "source": [ + "# ── Import ──────────────────────────────────────────────────────\n", + "import matplotlib.patches as patches\n", + "from matplotlib.widgets import RectangleSelector\n", + "import ipysheet\n", + "import ipywidgets as widgets\n", + "from IPython.display import display\n", + "\n", + "\n", + "def fit_interattivo_da_data(data_obj, prefisso_x, prefisso_y, scala_barre=1):\n", + " \"\"\"\n", + " Visualizza i dati con barre di errore e permette di selezionare\n", + " un rettangolo di punti tramite drag del mouse.\n", + " Al click su \"Fit selezionati\" esegue reg_lin sul sottoinsieme.\n", + "\n", + " Parametri\n", + " ----------\n", + " data_obj : oggetto con attributo analisi_stat (DataFrame)\n", + " prefisso_x : nome colonna x (le incertezze si chiamano u+prefisso)\n", + " prefisso_y : nome colonna y\n", + " scala_barre : fattore moltiplicativo iniziale per le barre (default 1)\n", + " \"\"\"\n", + "\n", + " # Estrazione colonne dal DataFrame\n", + " df = data_obj.analisi_stat.copy()\n", + "\n", + " # Nomi colonne dati e incertezze\n", + " col_x = prefisso_x\n", + " col_y = prefisso_y\n", + " col_ux = f\"u{prefisso_x}\"\n", + " col_uy = f\"u{prefisso_y}\"\n", + "\n", + " x = df[col_x].values.astype(float)\n", + " y = df[col_y].values.astype(float)\n", + "\n", + " # Le incertezze sono opzionali: se la colonna non esiste si usa zero\n", + " ux = df[col_ux].values.astype(float) if col_ux in df else np.zeros_like(x)\n", + " uy = df[col_uy].values.astype(float) if col_uy in df else np.zeros_like(y)\n", + "\n", + " ha_errori = not (np.all(ux == 0) and np.all(uy == 0))\n", + "\n", + " # Maschera di selezione\n", + " selected_mask = np.ones(len(x), dtype=bool)\n", + "\n", + " # Costruzione della figura matplotlib\n", + " fig, ax = plt.subplots(figsize=(8, 5))\n", + "\n", + " # Scatter di tutti i punti e dei punti selezionati\n", + " sc_all = ax.scatter(x, y, alpha=0.4, label=\"tutti\")\n", + " sc_sel = ax.scatter([], [], s=60, color='tomato', label=\"selezionati\")\n", + "\n", + " eb = ax.errorbar(x, y, xerr=scala_barre*ux, yerr=scala_barre*uy,\n", + " fmt='none', alpha=0.4)\n", + "\n", + " # Rettangolo semitrasparente che mostra l'area di selezione\n", + " box_patch = patches.Rectangle((0, 0), 0, 0,\n", + " edgecolor='tomato', facecolor='tomato', alpha=0.08,\n", + " linewidth=1.5, linestyle='--', zorder=1)\n", + " ax.add_patch(box_patch)\n", + "\n", + " ax.set_xlabel(prefisso_x)\n", + " ax.set_ylabel(prefisso_y)\n", + " ax.legend()\n", + " ax.grid(True, alpha=0.3)\n", + "\n", + " # Mostra quanti punti selezionati\n", + " sel_label = widgets.Label(value=f\"Selezionati: {len(x)} / {len(x)}\")\n", + "\n", + " # scala barre d'errore\n", + " if ha_errori:\n", + " scala_slider = widgets.FloatSlider(\n", + " value=scala_barre,\n", + " min=0.1, max=scala_barre * 3, step=0.05,\n", + " description=\"Scala barre:\",\n", + " style={\"description_width\": \"initial\"},\n", + " layout=widgets.Layout(width=\"480px\")\n", + " )\n", + " else:\n", + " scala_slider = None\n", + "\n", + " # output dati\n", + " out_dati = widgets.Output(layout=widgets.Layout(border=\"1px solid #ccc\", padding=\"8px\"))\n", + "\n", + " # Helper: aggiorna barre errore\n", + " def aggiorna_errorbar(eb, xs, ys, uxs, uys, scala):\n", + " n = len(xs)\n", + " if n == 0:\n", + " for lc in eb[2]: lc.set_segments([])\n", + " for cap in eb[1]: cap.set_data([], [])\n", + " return\n", + "\n", + " segs_x = [np.array([[xs[i] - scala*uxs[i], ys[i]],\n", + " [xs[i] + scala*uxs[i], ys[i]]]) for i in range(n)]\n", + " segs_y = [np.array([[xs[i], ys[i] - scala*uys[i]],\n", + " [xs[i], ys[i] + scala*uys[i]]]) for i in range(n)]\n", + " if len(eb[2]) >= 2:\n", + " eb[2][0].set_segments(segs_x)\n", + " eb[2][1].set_segments(segs_y)\n", + "\n", + " caps = eb[1]\n", + " cap_data = [\n", + " ([xs[i] - scala*uxs[i] for i in range(n)], [ys[i] for i in range(n)]),\n", + " ([xs[i] + scala*uxs[i] for i in range(n)], [ys[i] for i in range(n)]),\n", + " ([xs[i] for i in range(n)], [ys[i] - scala*uys[i] for i in range(n)]),\n", + " ([xs[i] for i in range(n)], [ys[i] + scala*uys[i] for i in range(n)]),\n", + " ]\n", + " for cap, (cx, cy) in zip(caps, cap_data):\n", + " cap.set_data(cx, cy)\n", + "\n", + " # Callback: selezione rettangolare\n", + " def on_select(eclick, erelease):\n", + " nonlocal selected_mask\n", + " if eclick.xdata is None or erelease.xdata is None:\n", + " return\n", + "\n", + " x0, x1 = sorted([eclick.xdata, erelease.xdata])\n", + " y0, y1 = sorted([eclick.ydata, erelease.ydata])\n", + "\n", + " new_mask = (\n", + " (x >= x0) & (x <= x1) &\n", + " (y >= y0) & (y <= y1)\n", + " )\n", + "\n", + " ctrl_held = eclick.key in ('ctrl', 'control')\n", + " if ctrl_held:\n", + " selected_mask = selected_mask | new_mask\n", + " else:\n", + " selected_mask = new_mask\n", + "\n", + " xs, ys = x[selected_mask], y[selected_mask]\n", + " pts = np.column_stack([xs, ys]) if len(xs) else np.empty((0, 2))\n", + " sc_sel.set_offsets(pts)\n", + "\n", + " box_patch.set(xy=(x0, y0), width=x1-x0, height=y1-y0, visible=True)\n", + " sel_label.value = f\"Selezionati: {selected_mask.sum()} / {len(x)}\"\n", + " fig.canvas.draw_idle()\n", + "\n", + " # Collega il callback al RectangleSelector di matplotlib\n", + " rect_selector = RectangleSelector(ax, on_select, useblit=False,\n", + " state_modifier_keys={'move': '', 'clear': '', 'square': '', 'center': ''})\n", + "\n", + " # Area di output per il risultato del fit\n", + " out_fit = widgets.Output(layout=widgets.Layout(border='1px solid #ddd', padding='8px'))\n", + "\n", + " # ── 8. Callback: esecuzione del fit ──────────────────────────\n", + " def esegui_fit(_):\n", + " out_fit.clear_output(wait=True)\n", + " with out_fit:\n", + " if selected_mask.sum() < 2:\n", + " print(\"Troppi pochi punti selezionati\")\n", + " return\n", + "\n", + " # Costruisce un DataFrame temporaneo rinominando le colonne\n", + " # in x/y/ux/uy per compatibilità con reg_lin\n", + " df_sel = df[selected_mask].copy()\n", + " df_sel[\"x\"] = df_sel[col_x]\n", + " df_sel[\"y\"] = df_sel[col_y]\n", + " df_sel[\"ux\"] = df_sel[col_ux]\n", + " df_sel[\"uy\"] = df_sel[col_uy]\n", + "\n", + " # Oggetto Data temporaneo che punta al sottoinsieme\n", + " data_tmp = Data(\n", + " campione=None,\n", + " analisi_stat=df_sel,\n", + " param_reg=None\n", + " )\n", + "\n", + " # Recupera la scala corrente dallo slider\n", + " scala = scala_slider.value if scala_slider else 1.0\n", + "\n", + " # Lancia la regressione lineare con plot e residui\n", + " data_tmp.reg_lin(\n", + " stampa_param=True,\n", + " plot_regressione=True,\n", + " calc_residui=True,\n", + " x_label=col_x,\n", + " y_label=col_y,\n", + " titolo_reg=\"Fit selezionato\",\n", + " titolo_residui=\"Residui selezionati\",\n", + " scala_barre=scala\n", + " )\n", + "\n", + " # Callback: reset selezione\n", + " def reset(_):\n", + " nonlocal selected_mask\n", + "\n", + " # Tutti i punti tornano selezionati\n", + " selected_mask = np.ones(len(x), dtype=bool)\n", + " sc_sel.set_offsets(np.empty((0, 2)))\n", + " box_patch.set_visible(False)\n", + "\n", + " # Aggiorna label e barre di errore con la scala corrente dello slider\n", + " sel_label.value = f\"Selezionati: {len(x)} / {len(x)}\"\n", + " scala = scala_slider.value if scala_slider else 1.0\n", + " aggiorna_errorbar(eb, x, y, ux, uy, scala)\n", + "\n", + " # Svuota anche la tabella dati se era aperta\n", + " out_dati.clear_output()\n", + "\n", + " fig.canvas.draw_idle()\n", + "\n", + " # Callback: scala barre di errore\n", + " def on_scala_change(change):\n", + " \"\"\"Ridisegna le barre di errore ogni volta che lo slider cambia.\"\"\"\n", + " scala = change[\"new\"]\n", + " aggiorna_errorbar(eb, x, y, ux, uy, scala)\n", + " fig.canvas.draw_idle()\n", + "\n", + " # Collega l'osservatore allo slider\n", + " if scala_slider is not None:\n", + " scala_slider.observe(on_scala_change, names=\"value\")\n", + "\n", + " # Callback: mostra dati selezionati\n", + " def mostra_dati(_):\n", + " \"\"\"\n", + " Visualizza il sottoinsieme selezionato in una tabella ipysheet.\n", + " Se non ci sono incertezze, mostra solo x e y.\n", + " \"\"\"\n", + " out_dati.clear_output(wait=True)\n", + " with out_dati:\n", + " xs = x[selected_mask]\n", + " ys = y[selected_mask]\n", + " uxs = ux[selected_mask]\n", + " uys = uy[selected_mask]\n", + "\n", + " if len(xs) == 0:\n", + " print(\"Nessun punto selezionato.\")\n", + " return\n", + "\n", + " print(f\"Dati selezionati: {len(xs)} / {len(x)} punti\\n\")\n", + "\n", + " # Colonne e dati cambiano in base alla presenza di incertezze\n", + " if ha_errori:\n", + " headers = [col_x, col_y, col_ux, col_uy]\n", + " colonne = [xs, ys, uxs, uys]\n", + " else:\n", + " headers = [col_x, col_y]\n", + " colonne = [xs, ys]\n", + "\n", + " sheet = ipysheet.sheet(\n", + " rows=len(xs),\n", + " columns=len(headers),\n", + " column_headers=headers\n", + " )\n", + "\n", + " # Formatta ogni colonna con precisione completa\n", + " for i, col in enumerate(colonne):\n", + " ipysheet.column(i, [f\"{v:.6g}\" for v in col], sheet=sheet)\n", + "\n", + " display(sheet)\n", + "\n", + " # Creazione pulsanti, binding e layout finale\n", + " fit_btn = widgets.Button(description=\"Fit selezionati\", button_style='success')\n", + " reset_btn = widgets.Button(description=\"Reset selezione\", button_style='warning')\n", + " mostra_btn = widgets.Button(description=\"Mostra dati selezionati\", button_style='info')\n", + "\n", + " fit_btn.on_click(esegui_fit)\n", + " reset_btn.on_click(reset)\n", + " mostra_btn.on_click(mostra_dati)\n", + "\n", + " # Layout\n", + " fila_pulsanti = widgets.HBox([fit_btn, reset_btn, mostra_btn])\n", + "\n", + " # Lo slider viene aggiunto solo se ci sono barre di errore\n", + " fila_slider = (widgets.HBox([scala_slider]) if scala_slider is not None else widgets.HBox([]))\n", + "\n", + " display(widgets.VBox([\n", + " fila_pulsanti,\n", + " fila_slider,\n", + " sel_label,\n", + " fig.canvas,\n", + " out_fit,\n", + " out_dati,\n", + " ]))\n", + "\n", + " # Restituisce il selettore per mantenerlo vivo (evita garbage collection)\n", + " return rect_selector" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "f8314a82", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "03f039557a544a139713a7b983d337ea", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HBox(children=(Button(button_style='success', description='Fit selezionati', style=ButtonStyle(…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "3c60b19d1c654c8f9ca88c5933408c56", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "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YFBjx47Vf/7nfx5wWevXr9e0adNUUlKikSNH6qtf/ao6OzslfbBb04dvp556qqR974J177336hOf+IRqK0p18sQT9atf/WrA44Zh6P7779f06dNVVFSkI488Uk888UTm8XQ6rUsvvVSjR49WYWGhxowZozvvvDPz+E033aRf/vKX+sMf/pCp54UXXmAXLIcRQAAAAHJp57vSrVdJW9/ov2+aUjrV/39J2rKx//EchJDW1lbNmjVLl1xyiTZs2KAXXnhBM2bMkGVZ+s1vfqMbbrhBt9xyizZs2KBbb71V3//+9/XLX/5yn8t677339LnPfU7jx4/XmjVr9Mc//lE7d+7UzJkzJX2wW9Oe27p161RZWanPfvaz+1zekiVLdNVVV2nevHn6v1Wv6sKLL9Gll16i559/fsB88+fP18yZM/WXv/xFX/jCFzR79mzt2rVLUv8FoOvr6/Xoo4/q9ddf1w033KDrr79eixcvliRde+21mjlzps4666xMXSeffHK2fr04SOyCBQAAkEsP/EjqjX0QOD7MNPsff/DH0nd+ktVVt7a2KpVKacaMGTr88MMlSePGjZMk3Xjjjbrjjjs0Y8YMSdLo0aP1+uuv67777tOcOXP2WtbPfvYzjR8/XrfeeusHL+2BB9TQ0KA333xTRx11VGa3png8rnPPPVctLS266aab9lnbj3/8Y1100UW6/PLLtSvWp9FHXKm/rntVP/7xj3Xaaadl5rvooos0a9YsSdKtt96qu+66S6+88orOOuss+f1+zZ8/PzPv6NGjtWLFCi1evFgzZ85USUmJCgsLlUgk2OUqjzACAgAAkCs7tkqbN+w/fOxhmtKm1/vnz6ITTjhBp59+usaNG6fzzjtPCxcu1O7duxWLxbR582ZdeumlKikpydxuvvlmbd68eZ/L+vOf/6znn39+wPxjx46VpL2ec8kllygajeqhhx6Sx7Pvj5sbNmzQlClTBkybMuVkbdiwYcC0448/PvNzcXGxQqGQ2tvbM9PuueceTZw4UVVVVSopKdEvfvELbdu2bfC/JNiOERAAAIBcefUlyeP56AAi9c+37uWsHpTu9Xr17LPP6uWXX9b//u//6u6779Z3v/tdPfnkk5KkhQsXavLkyXs9Z1+6u7t1zjnn6Pbbb9/rsdra2szPN998s5555hm98sorKi0tPeTX4Pf7B9w3DEPm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hA4AAADANoyAAAAAALANAQQAAACAbQggAAAAAGxDAAEAAABgGwLIMHbPPfeoqalJwWBQkydP1iuvvOJ0SXjfggUL9MlPflKlpaWqrq7WueeeqzfeeGPAPPF4XHPnzlVlZaVKSkr0z//8z9q5c6dDFWNfbrvtNhmGoauvvjozjb7ln7///e/6yle+osrKShUWFmrcuHFas2ZN5nHLsnTDDTeotrZWhYWFmjp1qt566y0HK0Y6ndb3v/99jR49WoWFhTriiCP0gx/8QP94Xh365rwXX3xR55xzjurq6mQYhh5//PEBjw+mR7t27dLs2bMVCoVUXl6uSy+9VN3d3Ta+CuQCAWSYeuSRRzRv3jzdeOONevXVV3XCCSfozDPPVHt7u9OlQdKyZcs0d+5crVy5Us8++6ySyaTOOOMMxWKxzDzf+MY39OSTT+rRRx/VsmXL9O6772rGjBkOVo1/tHr1at133306/vjjB0ynb/ll9+7dmjJlivx+v55++mm9/vrruuOOOzRixIjMPD/84Q9111136ec//7lWrVql4uJinXnmmYrH4w5WPrzdfvvtuvfee/Wzn/1MGzZs0O23364f/vCHuvvuuzPz0DfnxWIxnXDCCbrnnnv2+fhgejR79mz97W9/07PPPqunnnpKL774or72ta/Z9RKQKxaGpZNOOsmaO3du5n46nbbq6uqsBQsWOFgV9qe9vd2SZC1btsyyLMt67733LL/fbz366KOZeTZs2GBJslasWOFUmXhfNBq1jjzySOvZZ5+1TjnlFOuqq66yLIu+5aNvf/vb1qc//en9Pm6aplVTU2P96Ec/ykx77733rIKCAuu3v/2tHSViH84++2zrkksuGTBtxowZ1uzZsy3Lom/5SJK1ZMmSzP3B9Oj111+3JFmrV6/OzPP0009bhmFYf//7322rHdnHCMgw1NfXp7Vr12rq1KmZaR6PR1OnTtWKFSscrAz7Ew6HJUkVFRWSpLVr1yqZTA7o4dixY9XY2EgP88DcuXN19tlnD+iPRN/y0RNPPKFJkybpvPPOU3V1tcaPH6+FCxdmHt+6dava2toG9KysrEyTJ0+mZw46+eSTtXTpUr355puSpD//+c9avny5pk2bJom+ucFgerRixQqVl5dr0qRJmXmmTp0qj8ejVatW2V4zssfndAGwX2dnp9LptEaOHDlg+siRI7Vx40aHqsL+mKapq6++WlOmTNFxxx0nSWpra1MgEFB5efmAeUeOHKm2tjYHqsQeDz/8sF599VWtXr16r8foW/7ZsmWL7r33Xs2bN0/XX3+9Vq9erSuvvFKBQEBz5szJ9GVf75f0zDnf+c53FIlENHbsWHm9XqXTad1yyy2aPXu2JNE3FxhMj9ra2lRdXT3gcZ/Pp4qKCvrocgQQIM/NnTtX69ev1/Lly50uBR9h+/btuuqqq/Tss88qGAw6XQ4GwTRNTZo0Sbfeeqskafz48Vq/fr1+/vOfa86cOQ5Xh/1ZvHixfvOb3+ihhx7Sscceq9dee01XX3216urq6BvgAuyCNQwddthh8nq9e515Z+fOnaqpqXGoKuzLFVdcoaeeekrPP/+86uvrM9NramrU19en9957b8D89NBZa9euVXt7uyZMmCCfzyefz6dly5bprrvuks/n08iRI+lbnqmtrdUxxxwzYNrRRx+tbdu2SVKmL7xf5pdvfvOb+s53vqN/+Zd/0bhx4/TVr35V3/jGN7RgwQJJ9M0NBtOjmpqavU6Ok0qltGvXLvrocgSQYSgQCGjixIlaunRpZpppmlq6dKlaWlocrAx7WJalK664QkuWLNGf/vQnjR49esDjEydOlN/vH9DDN954Q9u2baOHDjr99NP117/+Va+99lrmNmnSJM2ePTvzM33LL1OmTNnrFNdvvvmmDj/8cEnS6NGjVVNTM6BnkUhEq1atomcO6unpkccz8COM1+uVaZqS6JsbDKZHLS0teu+997R27drMPH/6059kmqYmT55se83IIqePgoczHn74YaugoMBatGiR9frrr1tf+9rXrPLycqutrc3p0mBZ1r//+79bZWVl1gsvvGC1trZmbj09PZl5/u3f/s1qbGy0/vSnP1lr1qyxWlparJaWFgerxr7841mwLIu+5ZtXXnnF8vl81i233GK99dZb1m9+8xurqKjI+vWvf52Z57bbbrPKy8utP/zhD9Zf/vIX60tf+pI1evRoq7e318HKh7c5c+ZYo0aNsp566ilr69at1u9//3vrsMMOs771rW9l5qFvzotGo9a6deusdevWWZKsn/zkJ9a6deusd955x7KswfXorLPOssaPH2+tWrXKWr58uXXkkUdas2bNcuolIUsIIMPY3XffbTU2NlqBQMA66aSTrJUrVzpdEt4naZ+3Bx98MDNPb2+vdfnll1sjRoywioqKrOnTp1utra3OFY19+nAAoW/558knn7SOO+44q6CgwBo7dqz1i1/8YsDjpmla3//+962RI0daBQUF1umnn2698cYbDlULy7KsSCRiXXXVVVZjY6MVDAat5uZm67vf/a6VSCQy89A35z3//PP7/Ldszpw5lmUNrkddXV3WrFmzrJKSEisUClkXX3yxFY1GHXg1yCbDsv7hsqEAAAAAkEMcAwIAAADANgQQAAAAALYhgAAAAACwDQEEAAAAgG0IIAAAAABsQwABAAAAYBsCCAAAAADbEEAAAAAA2IYAAgDIKsMwDni76aabnC4RAOAgn9MFAACGltbW1szPjzzyiG644Qa98cYbmWklJSVOlAUAyBMEEABAVtXU1GR+Lisrk2EYA6YBAIY3dsECAAAAYBsCCAAAAADbEEAAAAAA2IYAAgAAAMA2BBAAAAAAtiGAAAAAALANAQQAAACAbQzLsiyniwAAAAAwPDACAgAAAMA2BBAAAAAAtiGAAAAAALANAQQAAACAbQggAAAAAGxDAAEAAABgGwIIAAAAANsQQAAAAADYhgACAAAAwDYEEAAAAAC2IYAAAAAAsA0BBAAAAIBtCCAAAAAAbEMAAQAAAGCb/x+XeLJcqfDG4gAAAABJRU5ErkJggg==", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "rf = fit_interattivo_da_data(\n", + " data,\n", + " prefisso_x=\"T\",\n", + " prefisso_y=\"V\",\n", + " scala_barre=50\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c03c11c9", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "1ab9ad3dd4414a0fa6cfaeec566a4912", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Sheet(cells=(Cell(column_end=0, column_start=0, row_end=5, row_start=0, squeeze_row=False, type='numeric', val…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ax + B : \n", + "A = 23.6313 ± 0.0166\n", + "B = 7.2240 ± 0.0044\n", + "covAB = 0.000072\n", + "chi² = 48.46\n", + "P(chi², ∞) = 0.00\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "32a6ad001b134744b0a13a20a3ef69d9", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "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2K8s/vknDB8O558PO3dCp07w3nvwySdw6KF1XqPsTQ2IjdatW8exxx4LmB38ggULSExMZNiwYRUNxZ5eeuklrrvuOubOnUtOTg4JCQmccMIJAGzYsIHff/+dVq1a8ccff/Dee+8xe/bsisUb169fz5FHHgmYq8rv3r3b8l/vc3NzOeecc+jevTuPPfYYO3fu5KijjqJfv34sXbq00r69e/euuBzzniZMmEBsbGy1t9WrV1faPysri7///pv+/ftX3Ne/f3927dpV5ahNTfsf6ONpaWm1qkekvqSnp9tdgohyKI5RqywWFsJ995mjHh99BE2bwowZ8OuvcMEFWsctiNSA2GjdunW88sorxMXF0b17dz777DO+/PJLDjnkELKysip19T6fjylTpvDyyy9z2mmn0aRJE9q1a1fRwCQkJDB+/HiuuOIKmjZtSu/evTEMo2LEY/369QwYMICXX36ZefPm8csvvzB8+HD+Lr/Kwz4899xz3HrrrWzevJnPP/+cCy64gGeffZb169fz+uuvU1ZWVrFvdHQ0WVlZe73GwoULyc7OrvZW3kiV8//vymWxsbEV95X/Ozc3d6/Xr2n/A328uLi4VvWI1BetPi1OoByKU1jO4mefQZ8+5urlhYVw6qmwcSPMnWteREiCSg2ITcrKytiwYQOrVq0iKyuL3bt389///pdjjjkGMK9r7fP5Kvb/+uuvadeuHaeddlqVr7dhwwZGjBhRsb1p0ya6d+9Os2bNgP9vQK655hqys7P56KOP+Oijj6pdeX5Pf/75JyeeeCLNmjXjtttuIyIigqOPPprQ0FB69uxJRkZGxb4+n69OrsldflranqML5f9u0aJFrfc/0MfLv45W6xGpL16v1+4SRJRDcYwas7hrF1x0EZx9NvzxB7RvD2++CV9+Cf8400SCRw2ITbZu3UpRURGHH354lY/379+frVu3VmxnZGRU+4t9UlISaWlplU4PWrt2bcXCkGlpaSQlJXHEEUfsV639+/fnlVdeISMjg8cee4xmzZrx73//m7S0NDZu3EirVq0q9t2yZUulOsqNHz+eqKioam+rVq2qtH9cXBwdO3asdDpXQkICnTp1qnLeSk37H+jjrVu3rlU9IvWlffv2dpcgohyKY1SbxeJieOgh6NXLnN8RGgrTpsHWrTBypE63spkaEJusW7eOQw89lPDw8Cof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ATp27FhpvkpycjJFRUV07Nix2jqre9/i4uK93g/MeR8//PADw4YNY+LEiVXusy9btmyhv0OHtcWZyv84IGIn5bABSEuDcePguOPM5iMuDp59Fn74wTXNByiLbqUGhP+/1O7YIb3Y12oP44b0qrc1G7Zu3co111xDTk4OU6dOBcy/joeHhxMXF4ff7+eOO+6o9Jw2bdrw119/1eoqU8OHD2f58uWV7gsJCWHmzJkUFBSwbds2FixYUDFXwufzERERQWxsLBkZGdx77721/mxt27ZlxIgRTJo0qeIUtuTkZN4vX0H1H84991xSUlJYuHAhhYWFlJWVsW3bNlasWFGr973yyit58MEH2b17N36/n6lTp3L66adXjH7U5n2rusrGrl27uOGGG3j55ZdZsmQJ69ev51//+lfF4yUlJRWvU1ZWRmFhYaWrc/3111+kp6dz0kkn1epzSePWrl07u0sQUQ7drKwMnnvOPN1q8WLzvrFjzdOtxo83Fxd0EWXRndSA7KFbfCTzLupHiAdCPeDBIMQDIR6Yd1E/usZH1un73X777RXrgFx44YW0bduWNWvW0KZNGwCmTp1KaGgobdq0oU+fPgwePLjS8y+55BKio6Np1apVpdOG9uWGG27gzTffrPSLcIsWLejfvz8HH3wwJ510EldffTXXXHMNAPfeey/bt28nLi6O448/nrPPPnu/PutLL71EbGwsRx99NNHR0Zx44omsXbu2yn2joqL48ssv+eqrryquFDVq1CiSk5Nr9Z4zZ85k6NChDB48mK5du1JSUsKrr75a7f77et9/Xta3rKyMK664gjFjxnDmmWcSHR3NG2+8wfTp0/n1118BuO6662jevDmvvvoqzzzzDM2bN680gX/JkiWMHj2ayMi6zZU0bLX9ORCpD8qhS61ZY17Ravx4yMqCI46Ab781J5q3amV3dftFWXQnj1HXSzwHic/nIyYmhpycnEqTqgsLC9mxYwfdunUjPDx8n6+Rm5vL2rVrGThwYKVFBnem5/HCil9ZvX4LJwzozbghvSqaj+qe4yY33HAD/fv358Ybb7S7FNcIBAK1PuVtX3JzcxkwYADff/89rSwc9GuTa2nYCgoKaN68ud1lSCOnHLpMZibMmmWOfBgGREfD/febcz+auHs6sLLoTu5O3QFq0aJFxXwLMH8p9Pv9hAGX9gijyeYdXNhj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DNIw1PdxceLEicTHx3PMMcewePFiDC1HJlWozxxu2bKF++67jyVLlhASol+F7aCvujRqycnJe50S1aRJE1q2bElycrKl10hPT+f+++/n+uuvr3afF154gVGjRtG8efMDqlcarvrK4p9//kkgEODBBx/kySef5J133iEzM5MzzjiD4uLiOv0M0jDU53HxvvvuY+nSpSxbtoyLLrqICRMmMH/+/DqrXRqO+sphUVERl19+OY888gidO3eu05rFOjUg0iDNmDGj2kng5betW7ce8Pv4fD6GDRtG7969ueeee6rc5/vvv+fXX39l3LhxB/x+4j52ZzEQCFBSUsLTTz/N0KFDOfbYY3njjTf4/fffWb58+QG/r7iH3VkEmD17NscffzwDBgzg9ttvZ/r06TzyyCMH/J7iHnbncObMmfTq1Ysrr7zygN9D9p8moUuDNG3aNEaPHr3PfQ4++GDatm2711WpSktLyczMpG3btvt8fm5uLmeddRYtWrTg/fffp2nTplXu9/zzz9O/f38GDhxYq88gDYPdWWzXrh0AvXv3rrivVatWxMfHs2vXrlp+GnEzu7NYlUGDBnH//fdTVFREWFiYpc8h7mZ3Dr/++ms2bdpUMSm9/BTA+Ph4Zs2axb333rsfn0pqSw2INEitWrWiVatWNe43ePBgsrOzWbt2bUWD8PXXXxMIBBg0aFC1z/P5fAwdOpSwsDA+/PBDwsPDq9zP7/ezdOlS5s6du38fRFzP7iwef/zxAGzbto2OHTsC5qUq09PT6dKly/5+LHEhu7NYlYSEBOLi4tR8NCJ25/Ddd9+loKCgYvvnn39m7NixrFq1ikMOOWQ/P5XUmt2z4EXsdtZZZxkDBgwwfvzxR2P16tVG9+7djcsvv7zi8b///tvo0aOH8eOPPxqGYRg5OTnGoEGDjL59+xrbt283kpKSKm6lpaWVXvv55583wsPDdXUNsaS+snj++ecbhx9+uPHtt98amzZtMs4991yjd+/eRnFxcdA/o7hDfWTxww8/NP79738bmzZtMn7//Xdj4cKFRkREhHHXXXfZ8hnF+erz/8/lli9frqtg2UANiDR6GRkZxuWXX25ERUUZ0dHRxpgxY4zc3NyKx3fs2GEAxvLlyw3D+P+DVVW3HTt2VHrtwYMHG6NGjQripxE3q68s5uTkGGPHjjViY2ONli1bGhdccIGxa9euIH86cZP6yOKnn35q9O/f34iKijIiIyONI444wli0aJFRVlZmwycUN6jP/z+XUwNiD49h6Pp3IiIiIiISHLoKloiIiIiIBI0aEBERERERCRo1ICIiIiIiEjRqQEREREREJGjUgIiIiIiISNCoARERERERkaBRAyIiIiIiIkGjBkRERERERIJGDYiIiIiIiASNGhAREREREQkaNSAiIiIiIhI0akBERERERCRo1ICIiIiIiEjQqAEREREREZGgUQMiIiIiIiJBowZERERERESCRg2IiIiIiIgEzf8BOVULF+2KukAAAAAASUVORK5CYII=", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "34a1d92c18714cdc98d1f3253a18fdc4", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "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ysjI0DPPPKNZs2YlHr/88stVV1en3//+912eM3LkSC1evFhXXXVV4rGlS5dq7dq1euutt/Txxx/r5JNP1htvvKFJkyYl1pk2bZomTZqkBx54oNsse/bsUWlpqTZt2qTy8vIuy7s7AlJaWso5IOhTgUCAK7HBGPoGk+gbeqO5uVk7duzQ6NGjExcQ6o1oNKra2loNHDhQ4XBYa9as0ezZs5Wfny+pf4+AfPOb39Tjjz8uSUpNTdWIESN04YUX6vbbbz+i17K/jo4OVVdXKz8/v8ejO6+88orOOecc1dbWKi8v77C2W19fL8dxelz/aL8fB2P8CEhaWprKysq0YcOGxGPxeFwbNmzodgiQpPLy8qT1JWn9+vWJ9UePHq2ioqKkdSKRiLZs2dLjNvd9XklJQ8b+Bg0apJycnKQPoK8VFRXZjgAPoW8wib7BpOzsbJWWlqq4uDgxdOTn56u4uFjFxcX9/var888/X5WVlfr4449133336ec//7mWLl161NsdMGCAioqKehw+jlRubu5hDyt9zcpbsBYvXqxf/OIXevzxx/XBBx9o4cKFamho0Lx58yRJl112mW688cbE+t///ve1bt063Xvvvfrwww916623atu2bVq0aJGkzveoXXXVVbrzzjv13HPP6Z133tFll12m4cOHJ46ybNmyRQ899JDefPNNffLJJ3rppZd06aWX6uSTTz7okAL0t8rKStsR4CH0DSbRN/S3aDSqV155RdFoVFLnCdM7wg165DW/XmkdrUde82tHuOGgz+krgwYNUlFRkUpLSzVr1izNmDFD69evl9T5j97Lli3T6NGjNXjwYJ122ml65plnEs+tra3V3LlzVVBQoMGDB2vMmDH69a9/LUnauXNn4i1Y+7zwwgv69Kc/rcGDB+ucc87Rzp07k7LceuutSe8KkqT7779fo0aNSvz/N7/5zaR3I5lk5UaEF198saqrq7VkyRIFg0FNmjRJ69atS5xEvmvXLqWk/HM2OvPMM7Vq1SrdfPPNuummmzRmzBitXbs2cQ8QSbruuuvU0NCgBQsWqK6uTmeffbbWrVuXOGSUkZGhNWvWaOnSpWpoaFBxcbHOP/983XzzzRo0aJDZLwCwn5KSEtsR4CH0DSbRN/S3WCymjRs3auzYscrOztbat6t0w7Nvyycp7gzVrooq/baiSsvnTNSFk0u7fU5/ePfdd7Vp0yadeOKJkjrPK/7Nb36jFStWaMyYMXr11Vf19a9/XQUFBZo2bZpuueUWvf/++3rxxReVn5+vjz76SE1NTd1ue/fu3Zo9e7auvPJKLViwQNu2bdM111zTL6+jv1i7E/qiRYsSRzAO9Morr3R57MILL9SFF17Y4/Z8Pp9uv/123X777d0uP/XUU/XSSy8dUVagP/n9fv6ShjH0DSbRN5i0I9ygG559W/HE2c0+dfzjz9c/+7b+ZdRQjcrP7LfP//zzzysrK0vt7e1qaWlRSkqKHnroIbW0tOjuu+/Wn//858S7bk466ST95S9/0c9//nNNmzZNu3bt0umnn67JkydLUtKRigP97Gc/08knn6x7771XkjR27Fi98847Wr58eb+9tr5mbQAB0Im7BMMk+gaT6BtMCYfDenq7Xwe7cOyvXvlA/3lWicLhcL9kOOecc/Szn/1MDQ0Nuu+++5Samqo5c+bovffeU2Njo84777yk9VtbW3X66adLkhYuXKg5c+bo9ddf1+c//3nNmjVLZ555Zref54MPPtCUKVOSHnPb6QQMIIBldXV1KiwstB0DHkHf3CcajSoWi/W4/Fi+twF9gylr1qzRX1pHK+4MlboZQxzH0V/eeF+p7/2x3zJkZmbqU5/6lCTp0Ucf1WmnnaZf/epXiVMG/vjHP3Y5IrjvNIAvfOEL+uSTT/TCCy9o/fr1Ovfcc3XllVfqxz/+8RFlSUlJ6XKbif64oeCRYgABLOOOrzCJvrlPRUWFNm7c2OPyadOmafr06eYC9QJ9gymzZ89W+/YW7aqoSrztan8+n09nnz5BC846L3GJ3v6UkpKim266SYsXL9bf/vY3DRo0SLt27dK0adN6fE5BQYEuv/xyXX755fp//+//6dprr+12ABk/fryee+65pMf+7//+r8u2gsGgHMdJ3FBw/5PYbWMAASzbd9MlwAT65j5lZWUaO3asJPV4b4NjFX2DKfn5+fpWcY5+W1HV4zrzp49XcT+eA3KgCy+8UNdee61+/vOf6wc/+IGuvvpqxeNxnX322aqvr9drr72mnJwcXX755VqyZInKysr0mc98Ri0tLXr++ec1fvz4brf7H//xH7r33nt17bXX6tvf/rYqKir02GOPJa0zffp0VVdX65577tFXv/pVrVu3Ti+++OIxc0sJz90JHTjW7LsfDWACfXOf7OzsxH0MbNzb4GjQN5g0Oj9Ty75yilJ80gCf5JOjFJ+U4pOWz5nYryegdyc1NVWLFi3SPffcoxtvvFG33HKLli1bpvHjx+v888/XH//4R40ePVpS533ybrzxRk2cOFGf+9znNGDAAD355JPdbnfkyJF69tlntXbtWp122mlasWKF7r777qR1xo8fr0ceeUQPP/ywTjvtNG3dulU/+MEP+v01Hy7jd0J3s0gkotzcXO6Ejj7V1NSkwYMH244Bj6Bv7lZZWamVK1dqwYIFKi4uth3nkOgbeuNI7rwdjUZVUVGhsrIyZWdnKx6Pa1dNk371ygf6yxvv6+zTJ2j+9PFJw8eBz0H3jqs7oQNIVl9fbzsCPIS+wST6hv6WnZ2t6dOnJwaJjo4OjcrP1H+eVaLpaTv0n2eVdDnyceBzYB7ngACW7XtLBWACfYNJ9A0mRaNRRaNR+Xy+xKV297/k7rF8xTivYQABLKuqquJGXTCGvsEk+gaTurti3P5XuzqWrxjnNQwggGX85QyT6BtMom8waf8rxnXnWL5inNcwgACW+f1+/pKGMfQNJtE3mJSdna1BgwYpLS3NdhQcAiehA5Zxl2CYRN9gEn3DkTiaC7SmpvJv632lPy+UywACWLZ3717bEeAh9A0m0Tf0xsCBAyVJjY2NR7yNjo6Ovorjefu+D/u+L32JMRGwjHvKwCT6BpPoG3pjwIABysvLUygUkiRlZGTI5/P1ahsdHR0MIUfJcRw1NjYqFAopLy9PAwYM6PPPwQACWNbc3KyMjAzbMeAR9A0m0Tf0VlFRkSQlhpDeisfjSknhDT59IS8vL/H96GsMIIBlvf3XHeBo0DeYRN/QWz6fT8XFxSosLFRbW1uvn19fX6/c3Nx+SOYtAwcO7JcjH/swgACWcbUOmETfYBJ9w5EaMGDAEf0C3NHRofT09H5IhL7EMSrAslgsZjsCPIS+wST6BtPonDswgACWDR061HYEeAh9g0n0DabROXdgAAEsO9IT7YAjQd9gEn2DaXTOHRhAAMu4SzBMom8wib7BNDrnDgwggGV+v992BHgIfYNJ9A2m0Tl3YAABLOuva2wD3aFvMIm+wTQ65w4MIIBlVVVVtiPAQ+gbTKJvMI3OuQMDCGDZkCFDbEeAh9A3mETfYBqdcwcGEMCyxsZG2xHgIfQNJtE3mEbn3IEBBLAsNTXVdgR4CH2DSfQNptE5d2AAASxLSeHHEObQN5hE32AanXMHvkuAZc3NzbYjwEPoG0yibzCNzrkDAwhgWU5Oju0I8BD6BpPoG0yjc+7AAAJYFg6HbUeAh9A3mETfYBqdcwcGEMCykpIS2xHgIfQNJtE3mEbn3IEBBLDM7/fbjgAPoW8wib7BNDrnDgwggGXDhw+3HQEeQt9gEn2DaXTOHRhAAMsCgYDtCPAQ+gaT6BtMo3PuwAACWJafn287AjyEvsEk+gbT6Jw7MIAAlkUiEdsR4CH0DSbRN5hG59yBAQSwbNCgQbYjwEPoG0yibzCNzrkDAwgAAAAAYxhAAMtaW1ttR4CH0DeYRN9gGp1zBwYQwLLMzEzbEeAh9A0m0TeYRufcgQEEsKy2ttZ2BHgIfYNJ9A2m0Tl3YAABLCsqKrIdAR5C32ASfYNpdM4dGEAAyyorK21HgIfQN/d695OQfvj0Vr3SOloPvrJTO8INtiMdEn2DaXTOHXyO4zi2Q7hFJBJRbm6u6uvrlZOTYzsOAMAjnt62Wzc8+7b2/ZXt8/kkScvnTNSFk0ttRgOAXuMICGCZ3++3HQEeQt/cZ0e4QTc8+7bijuTIJ0c+xR0p7kjXP/u2dh7DR0LoG0yjc+7AAAJYVlBQYDsCPIS+uc/T23YnjngcyOfz6altuw0nOnz0DabROXdgAAEsq6ursx0BHkLf3GdPbZN6ere04zjaU9tkONHho28wjc65AwMIYFlGRobtCPAQ+uY+I4YMPugRkBFDBhtOdPjoG0yjc+7AAAJY1t7ebjsCPIS+uc9Fk0sPegTk4mP4JHT6BtPonDswgACWxeNx2xHgIfTNfUbnZ2r5nIlK8ekfp6A7SvFJKb7Oq2CNyj927/xM32AanXOHVNsBAK9LT0+3HQEeQt/c6cLJpZpQMEj3rt2sHaF6TT1ljL5z3rE9fEj0DebROXfgCAhgWSQSsR0BHkLf3OszJxbqrovO0PS0Hfre9FHH/PAh0TeYR+fcgQEEsCw/P992BHgIfYNJ9A2m0Tl3YAABLKuqqrIdAR5C32ASfYNpdM4dGEAAy0pKSmxHgIfQN5hE32AanXMHBhDAMr/fbzsCPIS+wST6BtPonDswgACWDRs2zHYEeAh9g0n0DabROXdgAAEsC4fDtiPAQ+gbTKJvMI3OuYO1AeThhx/WqFGjlJ6erilTpmjr1q0HXX/16tUaN26c0tPTdeqpp+qFF15IWu44jpYsWaLi4mINHjxYM2bM0N///vfE8p07d2r+/PkaPXq0Bg8erJNPPllLly5Va2trv7w+4HDl5OTYjgAPoW8wib7BNDrnDlYGkKeeekqLFy/W0qVL9frrr+u0007TzJkzFQqFul1/06ZNuvTSSzV//ny98cYbmjVrlmbNmqV33303sc4999yjBx98UCtWrNCWLVuUmZmpmTNnqrm5WZL04YcfKh6P6+c//7nee+893XfffVqxYoVuuukmI68Z6Mm+jgIm0DeYRN9gGp1zB5/jOI7pTzplyhT9y7/8ix566CFJUjweV2lpqb773e/qhhtu6LL+xRdfrIaGBj3//POJx6ZOnapJkyZpxYoVchxHw4cP1zXXXKMf/OAHkqT6+noNGzZMjz32mC655JJuc/zoRz/Sz372M3388ceHlTsSiSg3N1f19fVM2OgztbW1GjJkiO0Y8Aj65m6VlZVauXKlFixYoOLiYttxDom+wTQ65w7Gj4C0traqoqJCM2bM+GeIlBTNmDFDmzdv7vY5mzdvTlpfkmbOnJlYf8eOHQoGg0nr5ObmasqUKT1uU+ocUoYOHdrj8paWFkUikaQPoK8NHDjQdgR4CH2DSfQNptE5dzA+gITDYXV0dHS5SsGwYcMUDAa7fU4wGDzo+vv+25ttfvTRR/rpT3+q73znOz1mXbZsmXJzcxMfpaWlkjoP7wUCAcXj8cTl3vx+v1pbWxUKhRSLxVRXV6eamho1NTUpGAyqvb09ad22tjYFg0E1NjaqpqZGtbW1amhoUFVVldra2pLW7ejoUCAQUFNTk/bu3av6+npFo1FVV1erpaUlaV3HceT3+9XS0qLq6urE4BQOh9XU1HTYuRsbG7vN3d7e3iV3LBbrNnc8Hj9k7n15D8wdjUZVX1+vvXv39pi7ra1NVVVVisViqq2t7VXuuro6xWIxhUIhtba29pg7HA4nvobd5d73nIPl7ujo6DZ3Q0ODamtrE7mCwWCXr+G+3E1NTYedu7m5udvcgUCg29yhUKhL7srKykPmPlRnKysrk3JHo9Fe5Q6Hw4f8WYtGo0k/a32Ze//OhkKhbn/WAoFAtz9rx/I+IhaLsY9w2T7iwNz7uGEfsXfvXvYRLttHuP33iLq6Ok/vI0z+HnE0jL8FKxAIqKSkRJs2bVJ5eXni8euuu04bN27Uli1bujwnLS1Njz/+uC699NLEY4888ohuu+02VVVVadOmTTrrrLMUCASSDklfdNFF8vl8euqpp5K25/f7NW3aNE2fPl2//OUve8za0tKilpaWxP9HIhGVlpbyFiz0qba2Nv7FBsbQN3dz21uw6BtMo3PuYPwISH5+vgYMGKCqqqqkx6uqqlRUVNTtc4qKig66/r7/Hs42A4GAzjnnHJ155plauXLlQbMOGjRIOTk5SR9AX+vp4gtAf6BvMIm+wTQ65w7GB5C0tDSVlZVpw4YNicfi8bg2bNiQdERkf+Xl5UnrS9L69esT648ePVpFRUVJ60QiEW3ZsiVpm36/X9OnT1dZWZl+/etfKyWF26DAvpKSEtsR4CH0DSbRN5hG59zBym/gixcv1i9+8Qs9/vjj+uCDD7Rw4UI1NDRo3rx5kqTLLrtMN954Y2L973//+1q3bp3uvfdeffjhh7r11lu1bds2LVq0SJLk8/l01VVX6c4779Rzzz2nd955R5dddpmGDx+uWbNmSfrn8DFy5Ej9+Mc/VnV1tYLBYI/niACm9MV7KYHDRd9gEn2DaXTOHVJtfNKLL75Y1dXVWrJkiYLBoCZNmqR169YlTiLftWtX0tGJM888U6tWrdLNN9+sm266SWPGjNHatWt1yimnJNa57rrr1NDQoAULFqiurk5nn3221q1bp/T0dEmdR0w++ugjffTRRxoxYkRSHgtXIgYS3PA+bhw/6BtMom8wjc65g5X7gLgV9wFBfwgEAho+fLjtGPAI+uZubjsJnb7BNDrnDpwEAVjGDZNgEn2DSfQNptE5d2AAASxrbGy0HQEeQt9gEn2DaXTOHRhAAMtSU62cigWPom8wib7BNDrnDgwggGVcDhom0TeYRN9gGp1zB75LgGXNzc22I8BD6BtMom8wjc65AwMIYBlXVINJ9A0m0TeYRufcgQEEsCwcDtuOAA+hbzCJvsE0OucODCCAZVyvHCbRN5hE32AanXMHBhDAskAgYDsCPIS+wST6BtPonDswgACW8a81MIm+wST6BtPonDtwsWTAskAgoJKSkh6XR6NRxWKxHpdnZWUpOzu7P6LhOHSovgF9ib7BNDrnDgwggGX5+fkHXV5RUaGNGzf2uHzatGmaPn16H6fC8epQfQP6En2DaXTOHRhAAMsikYgKCgp6XF5WVqaxY8dK6ry6x5o1azR79uzETjYrK8tIThwfDtU3oC/RN5hG59yBAQSwLD09/aDLs7Ozu7zFKj8/X8XFxf0ZC8epQ/UN6Ev0DabROXfgJHTAsng8bjsCPIS+wST6BtPonDswgACWtbe3244AD6FvMIm+wTQ65w4MIIBlGRkZtiPAQ+gbTKJvMI3OuQMDCGBZbW2t7QjwEPoGk+gbTKNz7sAAAlhWVFRkOwI8hL7BJPoG0+icOzCAAJZVVlbajgAPoW8wib7BNDrnDgwggGXcsRUm0TeYRN9gGp1zBwYQwDK/3287AjyEvrlPNBpVZWWlKisrFQ6HJXXelHTfY9Fo1HLCntE3mEbn3IEbEQKWFRYW2o4AD6Fv7lNRUaGNGzcmPbZmzZrEn6dNm6bp06cbTnV46BtMo3PuwAACWFZTU6Nhw4bZjgGPoG/uU1ZWprFjx/a4PCsry2Ca3qFvMI3OuQMDCGBZZmam7QjwEPrmPtnZ2crOzrYd44jQN5hG59yBc0AAy9ra2mxHgIfQN5hE32AanXMHBhDAMsdxbEeAh9A3mETfYBqdcwcGEMCy9PR02xHgIfQNJtE3mEbn3IEBBLAsEonYjgAPoW8wib7BNDrnDgwggGX5+fm2I8BD6BtMom8wjc65AwMIYFlVVZXtCPAQ+gaT6BtMo3PuwAACWFZSUmI7AjyEvsEk+gbT6Jw7MIAAlvn9ftsR4CH0DSbRN5hG59yBAQSwjDu2wiT6BpPoG0yjc+7AAAJYFg6HbUeAh9A3mETfYBqdcwcGEMCynJwc2xHgIfQNJtE3mEbn3IEBBLCsubnZdgR4CH2DSfQNptE5d2AAASxLSeHHEObQN5hE32AanXMHvkuAZampqbYjwEPoG0yibzCNzrkDAwhgWWNjo+0I8BD6BpPoG0yjc+7AmAhYlpeXZzsCPIS+wST6dvSi0ahisViPy7OyspSdnW0w0bGNzrkDAwhgWXV1NXduhTH0DSbRt6NXUVGhjRs39rh82rRpmj59urlAxzg65w4MIIBl7ChhEn2DSfTt6JWVlWns2LGSOu9xsWbNGs2ePVv5+fmSOo+A4J/onDtwDghgmd/vP6z13v0kpB8+vVWvtI7Wg6/s1I5wQz8nw/HocPsG9AX6dvSys7NVXFys4uLixNCRn5+feIy3XyWjc+7AAAJYVlxcfMh1nt62W/++4q96uXKAdnYM1VNv1+jce1/R6m27DSTE8eRw+gb0FfoG0+icOzCAAJYFg8GDLt8RbtANz76tuCM58smRT3FHijvS9c++rZ0cCUEvHKpvQF+ibzCNzrkDAwhg2ZAhQw66/Oltu+Xz+bpd5vP59BRHQdALh+ob0JfoG0yjc+7AAAJY1tBw8CMYe2qb5DhOt8scx9Ge2qb+iIXj1KH6BvQl+gbT6Jw7MIAAlqWlpR10+Yghgw96BGTEkMH9EQvHqUP1DehL9A2m0Tl3YAABjnEXTS496BGQiyeXGk4EAABw5BhAAMtaWloOunx0fqaWz5moFJ/+cQq6oxSflOKTls+ZqFH5mYaS4nhwqL4BfYm+wTQ65w7ciBCwLCcn55DrXDi5VBMKBunetZu1I1SvqaeM0XfOY/hA7x1O34C+Qt9gGp1zB46AAJaFw+HDWu8zJxbqrovO0PS0Hfre9FEMHzgih9s3oC/QN5hG59yBAQSwbPjw4bYjwEPoG0yibzCNzrkDAwhgWSAQsB0BHkLfYBJ9g2l0zh0YQADLSkpKbEeAh9A3mETfYBqdcwcGEMAyv99vOwI8hL7BJPoG0+icOzCAAJbl5+fbjgAPoW8wib7BNDrnDtYGkIcfflijRo1Senq6pkyZoq1btx50/dWrV2vcuHFKT0/XqaeeqhdeeCFpueM4WrJkiYqLizV48GDNmDFDf//735PWueuuu3TmmWcqIyNDeXl5ff2SgCMSiURsR4CH0DeYRN9gGp1zBysDyFNPPaXFixdr6dKlev3113Xaaadp5syZCoVC3a6/adMmXXrppZo/f77eeOMNzZo1S7NmzdK7776bWOeee+7Rgw8+qBUrVmjLli3KzMzUzJkz1dzcnFintbVVF154oRYuXNjvrxE4XOnp6bYjwEPoG0yibzCNzrmDlQHkJz/5ia644grNmzdPEyZM0IoVK5SRkaFHH3202/UfeOABnX/++br22ms1fvx43XHHHfrsZz+rhx56SFLn0Y/7779fN998s7785S9r4sSJeuKJJxQIBLR27drEdm677TZdffXVOvXUU028TOCwxONx2xHgIfQNJtE3mEbn3MH4ANLa2qqKigrNmDHjnyFSUjRjxgxt3ry52+ds3rw5aX1JmjlzZmL9HTt2KBgMJq2Tm5urKVOm9LhN4FjR3t5uOwI8hL7BJPoG0+icO6Sa/oThcFgdHR0aNmxY0uPDhg3Thx9+2O1zgsFgt+sHg8HE8n2P9bTOkWhpaVFLS0vi/3lfIfpDRkaG7QjwEPoGk+gbTKNz7sBVsA5i2bJlys3NTXyUlpZKkpqbmxUIBBSPxxOXe/P7/WptbVUoFFIsFlNdXZ1qamrU1NSkYDCo9vb2pHXb2toUDAbV2Niompoa1dbWqqGhQVVVVWpra0tat6OjQ4FAQE1NTdq7d6/q6+sVjUZVXV2tlpaWpHUdx5Hf71dLS4uqq6sViUQUiUQUDofV1NR02LkbGxu7zd3e3t4ldywW6zZ3PB4/ZO59eQ/MHY1GVV9fr7179/aYu62tTVVVVYrFYqqtre1V7rq6OsViMYVCIbW2tvaYOxwOJ76G3eXe95yD5e7o6Og2d0NDg2pra7V79+5E7gO/hvtyNzU1qaamRtFoVJJUU1PTY+7m5uZucwcCgW5zh0KhLrkrKysPmftQna2srEzkrqurUzQaPejX+8Dc4XD4kD9r0Wg06WetL3Pv39lQKNTtz1ogEOj2Z+1Y3kfU1NSwj3DZPmL/3IfaRxxObpP7iMrKSvYRfbiP2HeubCgU4veIHvYRoVCIfYShfcTR8DmO4xz1VnqhtbVVGRkZeuaZZzRr1qzE45dffrnq6ur0+9//vstzRo4cqcWLF+uqq65KPLZ06VKtXbtWb731lj7++GOdfPLJeuONNzRp0qTEOtOmTdOkSZP0wAMPJG3vscce01VXXaW6urqDZu3uCEhpaanq6+uVk5PTq9cN9KSjo0MDBgw4rHUrKyu1cuVKLViwQMXFxf2cDMej3vQNOFr0rW/xd8Ch0Tl3MH4EJC0tTWVlZdqwYUPisXg8rg0bNqi8vLzb55SXlyetL0nr169PrD969GgVFRUlrROJRLRly5Yet3k4Bg0apJycnKQPoK8dzdsEgd6ibzCJvsE0OucOxs8BkaTFixfr8ssv1+TJk3XGGWfo/vvvV0NDg+bNmydJuuyyy1RSUqJly5ZJkr7//e9r2rRpuvfee3XBBRfoySef1LZt27Ry5UpJks/n01VXXaU777xTY8aM0ejRo3XLLbdo+PDhSUdZdu3apZqaGu3atUsdHR168803JUmf+tSnlJWVZfRrAOxTUlJiOwI8hL7BJPoG0+icO1gZQC6++GJVV1dryZIlCgaDmjRpktatW5c4iXzXrl1KSfnnwZkzzzxTq1at0s0336ybbrpJY8aM0dq1a3XKKack1rnuuuvU0NCgBQsWqK6uTmeffbbWrVuXdD3oJUuW6PHHH0/8/+mnny5JevnllzV9+vR+ftVA9/x+PztMGEPfYBJ9g2l0zh2MnwPiZpFIRLm5uZwDgj7V1tamgQMHHta6vP8XR6s3fQOOFn3rW/wdcGh0zh24ChZgWU1Nje0I8BD6BpPoG0yjc+7AAAJYxvlHMIm+wST6BtPonDswgACWtba22o4AD6FvMIm+wTQ65w4MIIBlnIYFk+gbTKJvMI3OuQMDCGDZ/ldqA/obfYNJ9A2m0Tl3YAABLItEIrYjwEPoG0yibzCNzrkDAwhg2QknnGA7AjyEvsEk+gbT6Jw7MIAAloVCIdsR4CH0DSbRN5hG59yBAQSwjDu2wiT6BpPoG0yjc+7AAAJY5vf7bUeAh9A3mETfYBqdcwcGEMCyYcOG2Y4AD6FvMIm+wTQ65w4MIIBl4XDYdgR4CH2DSfQNptE5d2AAASzLzc21HQEeQt9gEn2DaXTOHVJtBwC8rqmpSYMHD+5xeTQaVSwWk/TPf9nZ/194srKylJ2d3b8hcdw4VN+AvkTfYBqdcwcGEMCylJSDH4isqKjQxo0bkx5bs2ZN4s/Tpk3T9OnT+yMajkOH6hvQl+gbTKNz7sAAAliWmnrwH8OysjKNHTu2x+VZWVl9HQnHsUP1DehL9A2m0Tl34LsEWNbY2HjQISI7O5u3WKHPHKpvQF+ibzCNzrkDx6kAy/Ly8mxHgIfQN5hE32AanXMHBhDAsurqatsR4CH0DSbRN5hG59yBAQSwrKSkxHYEeAh9g0n0DabROXdgAAEs8/v9tiPAQ+gbTKJvMI3OuQMDCGBZcXGx7QjwEPoGk+gbTKNz7sAAAlgWDAZtR4CH0DeYRN/6zo5wgx58ZadeaR2tHz69Ve9+ErId6ZhE59zB5ziOYzuEW0QiEeXm5qq+vl45OTm24+A40dzcrPT0dNsx4BH0DSbRt77x9LbduuHZtyVJ+35t8/l8Wj5noi6cXGoz2jGHzrkDR0AAy2KxmO0I8BD6BpPo29HbEW7QDc++rbgjxR3JkU+OfIo70vXPvq2d4QbbEY8pdM4dGEAAy9LS0mxHgIfQN5hE347e09t2y+fzdbvM5/PpqW27DSc6ttE5d2AAAQAAOEbtqW1ST++WdxxHe2qbDCcCjh4DCGBZS0uL7QjwEPoGk+jb0RsxZPBBj4CMGDLYcKJjG51zBwYQwDIuaACT6BtMom9H76LJpQc9AnIxJ6EnoXPuwAACWLZ3717bEeAh9A0m0bejNzo/U8vnTFSKT0rx6R+noDtK8UnL50zUqPxM2xGPKXTOHbgMby9wGV70B8dxejy8DvQ1+gaT6Fvf2Rlu0M/Xv63/e/fvGl2Yq2tmleszJxbajnXMoXPuwBEQwLJAIGA7AjyEvsEk+tZ3RuVn6nvTR2l62g7dddEZDB89oHPuwAACWFZSUmI7AjyEvsEk+gbT6Jw7MIAAlvn9ftsR4CH0DSbRN5hG59yBAQSwLD8/33YEeAh9g0n0DabROXdgAAEsq6+vtx0BHkLfYBJ9g2l0zh0YQADLBg/mJlIwh77BJPoG0+icOzCAAJbF43HbEeAh9A0m0TeYRufcgQEEsKy9vd12BHgIfYNJ9A2m0Tl3YAABLMvIyLAdAR5C32ASfYNpdM4dGEAAy+rq6mxHgIfQN5hE32AanXMHBhDAssJC7mYLc+gbTKJvMI3OuQMDCGBZMBi0HQEeQt9gEn2DaXTOHRhAAMtKSkpsR4CH0DeYRN9gGp1zBwYQwDK/3287AjyEvsEk+gbT6Jw7MIAAlvF+VZhE32ASfYNpdM4dGEAAy2pqamxHgIfQN5hE32AanXMHBhDAsqysLNsR4CH0DSbRN5hG59yBAQSwrLW11XYEeAh9g0n0DabROXdgAAEAAABgDAMIYFlaWprtCPAQ+gaT6BtMo3PuwAACWBaLxWxHgIfQN5hE32AanXMHBhDAsqFDh9qOAA+hbzCJvsE0OucODCCAZaFQyHYEeAh9g0n0DabROXdItR0ABxeNRg96ODErK0vZ2dkGE6GvlZSU2I4AD6FvMIm+wTQ65w4MIMe4iooKbdy4scfl06ZN0/Tp080FQp/z+/3sMGEMfYNJ9A2m0Tl3YAA5xpWVlWns2LGSpHA4rDVr1mj27NnKz8+XxA13jgdFRUW2I8BD6BtMom8wjc65A+eAHOOys7NVXFys4uLixNCRn5+feIy3X7kf71eFSfQNJtE3mEbn3IEBBLAsLy/PdgR4CH2DSfQNptE5d7A2gDz88MMaNWqU0tPTNWXKFG3duvWg669evVrjxo1Tenq6Tj31VL3wwgtJyx3H0ZIlS1RcXKzBgwdrxowZ+vvf/560Tk1NjebOnaucnBzl5eVp/vz5XC8a1jU1NdmOAA+hbzCJvsE0OucOVgaQp556SosXL9bSpUv1+uuv67TTTtPMmTN7PGy2adMmXXrppZo/f77eeOMNzZo1S7NmzdK7776bWOeee+7Rgw8+qBUrVmjLli3KzMzUzJkz1dzcnFhn7ty5eu+997R+/Xo9//zzevXVV7VgwYJ+f73AwaSkcCAS5tA3mETfYBqdcwcr36Wf/OQnuuKKKzRv3jxNmDBBK1asUEZGhh599NFu13/ggQd0/vnn69prr9X48eN1xx136LOf/aweeughSZ1HP+6//37dfPPN+vKXv6yJEyfqiSeeUCAQ0Nq1ayVJH3zwgdatW6df/vKXmjJlis4++2z99Kc/1ZNPPqlAIGDqpQNdDBgwwHYEeAh9g0n0DabROXcwfhWs1tZWVVRU6MYbb0w8lpKSohkzZmjz5s3dPmfz5s1avHhx0mMzZ85MDBc7duxQMBjUjBkzEstzc3M1ZcoUbd68WZdccok2b96svLw8TZ48ObHOjBkzlJKSoi1btugrX/lKl8/b0tKilpaWxP9HIpHOP7z5prT/1aeGDJFGj5aam6X33+/6Aj772c7/bt8uNTQkLxs1Sho6VKqulnbvTl6WnS2NGSN1dEhvvaXU6moVBQJKffttqbJSOvVUaeBA6f/7/6T6+uTnlpRIw4ZJtbXSjh3JywYPlsaP7/zzG29IjpO8fPz4znU++UTauzd52bBhnduORqUD3uKmgQM7M0nSO+9IbW3Jy8eM6XxNfr9UVZW87IQTpBNPlJqapA8+SF7m80mnn9755w8+6Fxnf6NHd34Pqqo6t72/3Fzp5JM7s7zzjro47TRpwIDO1xKNJi8rLZUKCqSaGmnnzuRlmZnSP65Optdf77rdCROk9PTOr31tbfKy4uLOj0hE+ugjtdXUdHZAkgYNkj7zmc4/v/221N6e/NxPf7qze3v2SAceMczPl0aOlBobpQ8/TF6WkiJNmtT55/ff7+zq/k46ScrLk4JB6cCBPC+vc3lrq7TfUceESZM6t/+3v0kHvqVx5MjOXOGwtGtX8rKsrM7XE493/kwd6JRTpLQ06eOPpbq65GXDh0tFRZ2Pf/xx8rL09M6vv9S53Xg8efm4cVJGRmeecDh5WWGhNGJE5+v429+Sl6WmShMndv75vfek/fYNkqRPfUrKyen82aysTF5maB/RRTf7iETf2Ed0csE+IonL9hFtNTXSv/4r+wipT/YRAz76KPn3AKnP9xEJLt1HNNXUKPvA7bKP+Ke+3Efs+7vrSDiG+f1+R5KzadOmpMevvfZa54wzzuj2OQMHDnRWrVqV9NjDDz/sFBYWOo7jOK+99pojyQkEAknrXHjhhc5FF13kOI7j3HXXXc6nP/3pLtsuKChwHnnkkW4/79KlSx1JXT7qO3/U/vkxd66zZ88ep+W995If/8dHZWWl09bW5rR89rNdljX/8pfO3r17nYZ77un63M9/3tmzZ4/TXlPT7Xar33/faW5udhrPO6/Lsrbly51QKOQ0PPZYl2Xx00939uzZ4ziO48TT0rosr3vtNaehocFp+NrXuizruO46p7Ky0ml68cWu2y0pSWy3vaioy/LoH/7gRCIRp+F73+v63G99q/Nr+PrrXZelpTl+v9/p6OhwWk45pcvyxieecGpqapyGO+7o+nX6t39z9uzZ47QFAt1+DUMffeS0tLQ4TdOmdVnW8pOfONXV1U7jypVdM02dmnit3W23ZutWp7Gx0WmYPbvLsvabb3aCwaDTtHZt1+2efPI/v4ZDh3ZZHvnTn5xoNOo0fOc7XZ+7cKHj9/ud5k2bui7Lznb8fr8Tj8ed1k9/usvyhiefdOrq6pzYzTd3fT1f/aqzZ88ep/Xjj7t9rcFPPnFaW1ud5qlTu34NH364s98PPND1udOmOXv27HE6Ghu73e7et95ympqanMYLLuja7zvucKqqqpyGJ5/s+lonTEh8DTuysrosr3/5ZScWizkN3/xm135///tOIBBwml9+uet28/MT22078cQuy2PPPuvU19c7Ddde2/X1sI/o3C77iMQH+wj2EUkfh7mPiE2c2GUZ+4jkfURsy5auy9hHJD76dB9xFHydr9ucQCCgkpISbdq0SeXl5YnHr7vuOm3cuFFbtmzp8py0tDQ9/vjjuvTSSxOPPfLII7rttttUVVWlTZs26ayzzlIgEFBxcXFinYsuukg+n09PPfWU7r77bj3++OPavn170rYLCwt12223aeHChV0+b3dHQEpLS1W/caNyLBwBqa6uTtwHpKCg4Lj8lwsv/utmKBRSYWFh5zKX/eumJI6A7OOSIyCJvrGP6OSCfUQSl+0jQqGQCj//efYRUp/sI0L/+7/679/85p+/B0gcAdnnH/sI/0cfqWTfO1b2YR/xT8fIERDjA0hra6syMjL0zDPPaNasWYnHL7/8ctXV1en3v/99l+eMHDlSixcv1lVXXZV4bOnSpVq7dq3eeustffzxxzr55JP1xhtvaNK+L4467xI+adIkPfDAA3r00Ud1zTXXqHa/b2J7e7vS09O1evXqbt+CdaBIJKLc3FzV19crJyfniF7/0aisrNTKlSu1YMGCpEELAAAc//g9AMcL4yehp6WlqaysTBs2bEg8Fo/HtWHDhqQjIvsrLy9PWl+S1q9fn1h/9OjRKioqSlonEoloy5YtiXXKy8tVV1enioqKxDovvfSS4vG4pkyZ0mevD+gt/4H/2gL0I/oGk+gbTKNz7mD8JHRJWrx4sS6//HJNnjxZZ5xxhu6//341NDRo3rx5kqTLLrtMJSUlWrZsmSTp+9//vqZNm6Z7771XF1xwgZ588klt27ZNK1eulCT5fD5dddVVuvPOOzVmzBiNHj1at9xyi4YPH544yjJ+/Hidf/75uuKKK7RixQq1tbVp0aJFuuSSSzR8+HAbXwZAkvhXLBhF32ASfYNpdM4drAwgF198saqrq7VkyRIFg0FNmjRJ69at07BhwyRJu3btSrqO85lnnqlVq1bp5ptv1k033aQxY8Zo7dq1OuWUUxLrXHfddWpoaNCCBQtUV1ens88+W+vWrVN6enpind/+9rdatGiRzj33XKWkpGjOnDl68MEHzb1woBvBYJAhGMbQN5hE32AanXMH4+eAuBnngKA/NDc3Jw3KQH+ibzCJvvUtfg84NDrnDtwuErAsduBVYYB+RN9gEn2DaXTOHRhAAMvS0tJsR4CH0DeYRN9gGp1zBwYQAAAAAMYwgACWtba22o4AD6FvMIm+wTQ65w4MIIBlWVlZtiPAQ+gbTKJvMI3OuQMDCGBZTU2N7QjwEPoGk+gbTKNz7sAAAlhWVFRkOwI8hL7BJPoG0+icOzCAAJZVVlbajgAPoW8wib7BNDrnDlbuhA7gn0pKSmxHgIfQN5hE345eNBpN3NsiHA4n/VfqPOchOzvbSrZjEZ1zBwYQwDK/388OE8bQN5hE345eRUWFNm7cmPTYmjVrEn+eNm2apk+fbjjVsYvOuQMDCGBZQUGB7QjwEPoGk+jb0SsrK9PYsWN7XM5Vn5LROXdgAAEsq6urU2Fhoe0Y8Aj6BpPo29HLzs7mLVa9QOfcgZPQAcsGDx5sOwI8hL7BJPoG0+icOzCAAJZ1dHTYjgAPoW8wib7BNDrnDgwggGXxeNx2BHgIfYNJ9A2m0Tl3YAABLONwMUyibzCJvsE0OucODCCAZXV1dbYjwEPoG0yibzCNzrkDAwhgGVfrgEn0DSbRN5hG59yBAcQldoQb9OArO/VK62j98OmteveTkO1I6CPBYNB2BHgIfYNJ9A2m0Tl38DmO49gO4RaRSES5ubmqr69XTk6Osc/79LbduuHZtyVJ+75dPp9Py+dM1IWTS43lAAAAAI4WR0COcTvCDbrh2bcVd6S4IznyyZFPcUe6/tm3tTPcYDsijpLf77cdAR5C32ASfYNpdM4dGECOcU9v2y2fz9ftMp/Pp6e27TacCH2N96vCJPoGk+gbTKNz7sAAcozbU9uknt4l5ziO9tQ2GU6EvlZTU2M7AjyEvsEk+gbT6Jw7MIAc40YMGXzQIyAjhnC9a7fLysqyHQEeQt9gEn2DaXTOHRhAjnEXTS496BGQizkJ3fVaW1ttR4CH0DeYRN9gGp1zBwaQY9zo/EwtnzNRKT4pxad/nILuKMUnLZ8zUaPyM21HBAAAAA5bqu0AOLQLJ5fqX0YN1c/Xv63/e/fvGl2Yq2tmleszJ3Ki1fEgLS3NdgR4CH2DSfQNph3PnYtGo4rFYj0uz8rKUnZ2tsFER44BxCVG5Wfqe9NHKf1v/6MFFy1QcTHDx/EiFospM5MjWTCDvsEk+gbTjufOVVRUaOPGjT0unzZtmqZPn24u0FFgAAEsGzp0qO0I8BD6BpPoG0w7njtXVlamsWPHSpLC4bDWrFmj2bNnKz8/X5K7TsDnHBDAslAoZDsCPIS+wST6BtOO585lZ2eruLhYxcXFiaEjPz8/8Zhb3n4lMYAA1pWUlNiOAA+hbzCJvsE0OucODCCAZX6/33YEeAh9g0n0DabROXdgAAEsKyoqsh0BHkLfYBJ9g2l0zh0YQADLjuf3q+LYQ99gEn2DaXTOHRhAAMvy8vJsR4CH0DeYRN9gGp1zBwYQwLLGxkbbEeAh9A0m0TeYRufcgQEEsCw1ldvxwBz6BpPoG0yjc+7AAAJYlpLCjyHMoW8wib7BNDrnDnyXAMuamppsR4CH0DeYRN9gGp1zBwYQwLLc3FzbEeAh9A0m0TeYRufcgQEEsCwcDtuOAA+hbzCJvsE0OucODCCAZSUlJbYjwEPoG0yibzCNzrkDAwhgmd/vtx0BHkLfYBJ9g2l0zh0YQADLhg8fbjsCPIS+wST6BtPonDswgACWVVZW2o4AD6FvMIm+wTQ65w4MIIBlJ5xwgu0I8BD6BpPoG0yjc+7AAAJYFolEbEeAh9A3mETfYBqdcwcGEMCyQYMG2Y4AD6FvMIm+wTQ65w4MIAAAAACMYQABLGttbbUdAR5C32ASfYNpdM4dGEAAy7KysmxHgIfQN5hE32AanXMHBhDAspqaGtsR4CH0DSbRN5hG59yBAQSwrKioyHYEeAh9g0n0DabROXdgAAEs46ZJMIm+wST6BtPonDswgACWlZSU2I4AD6FvMIm+wTQ65w4MIIBlfr/fdgR4CH2DSfQNptE5d2AAASwrKCiwHQEeQt9gEn2DaXTOHRhAAMvq6upsR4CH0DeYRN9gGp1zB6MDSE1NjebOnaucnBzl5eVp/vz5isViB31Oc3OzrrzySp1wwgnKysrSnDlzVFVVlbTOrl27dMEFFygjI0OFhYW69tpr1d7enlheWVmpr33ta/r0pz+tlJQUXXXVVf3x8oAjkpGRYTsCPIS+wST6BtPonDsYHUDmzp2r9957T+vXr9fzzz+vV199VQsWLDjoc66++mr94Q9/0OrVq7Vx40YFAgHNnj07sbyjo0MXXHCBWltbtWnTJj3++ON67LHHtGTJksQ6LS0tKigo0M0336zTTjut315ff4hGo6qsrFRlZaXC4bAkKRwOJx6LRqOWE+Jo7T8sA/2NvsEk+gbT6Jw7+BzHcUx8og8++EATJkzQX//6V02ePFmStG7dOn3xi1/Unj17NHz48C7Pqa+vV0FBgVatWqWvfvWrkqQPP/xQ48eP1+bNmzV16lS9+OKL+tKXvqRAIKBhw4ZJklasWKHrr79e1dXVSktLS9rm9OnTNWnSJN1///29fg2RSES5ubmqr69XTk5Or59/JF555RVt3Lixx+XTpk3T9OnTjWRB/6ipqdHQoUNtx4BH0DeYRN9gmlc6V1lZqZUrV2rBggUqLi62HafXUk19os2bNysvLy8xfEjSjBkzlJKSoi1btugrX/lKl+dUVFSora1NM2bMSDw2btw4jRw5MjGAbN68Waeeempi+JCkmTNnauHChXrvvfd0+umn9+8L62dlZWUaO3Zsj8uzsrIMpkF/GDx4sO0I8BD6BpPoG0yjc+5gbAAJBoMqLCxM/uSpqRo6dKiCwWCPz0lLS1NeXl7S48OGDUs8JxgMJg0f+5bvW3Y0Wlpa1NLSkvj/SCRyVNs7EtnZ2crOzjb+eWFOfX09O0wYQ99gEn2DaXTOHY76HJAbbrhBPp/voB8ffvhhX2Q1btmyZcrNzU18lJaWSuo8MT4QCCgejyeuN+33+9Xa2qpQKKRYLKa6ujrV1NSoqalJwWBQ7e3tSeu2tbUpGAyqsbFRNTU1qq2tVUNDg6qqqtTW1pa0bkdHhwKBgJqamrR3717V19crGo2qurpaLS0tSes6jiO/36+WlhZVV1crEokoEokoHA6rqanpsHM3NjZ2m7u9vb1L7lgs1m3ueDx+yNz78h6YOxqNqr6+Xnv37u0xd1tbm6qqqhSLxVRbW9ur3HV1dYrFYgqFQmptbe0xdzgcTnwNu8u97zkHy93R0dFt7oaGBtXW1mrAgAGJ3Ad+DfflbmpqOuzczc3N3eYOBALd5g6FQl1yV1ZWHjL3oTpbWVmZlDsajfYqdzgcPuTPWjQaTfpZ68vc+3c2FAp1+7MWCAS6/Vk7lvcRJ5xwAvsIl+0j9s/ttn1ERkYG+wiX7SPc/ntEdna2J/YRe/fuldT5j+O29hFH46jPAamurk58EXpy0kkn6Te/+Y2uueYa1dbWJh5vb29Xenq6Vq9e3e1bsF566SWde+65qq2tTToKcuKJJ+qqq67S1VdfrSVLlui5557Tm2++mVi+Y8cOnXTSSXr99de7vAWrN+eAdHcEpLS01Og5IDj++f1+7twKY+gbTKJvMM0rnfP8OSAFBQWHddOX8vJy1dXVqaKiQmVlZZI6B4x4PK4pU6Z0+5yysjINHDhQGzZs0Jw5cyRJ27dv165du1ReXp7Y7l133aVQKJR4i9f69euVk5OjCRMmHNVrGzRokAYNGnRU2wAOxQs7Shw76BtMom8wjc65g7HL8I4fP17nn3++rrjiCm3dulWvvfaaFi1apEsuuSRxBSy/369x48Zp69atkqTc3FzNnz9fixcv1ssvv6yKigrNmzdP5eXlmjp1qiTp85//vCZMmKBvfOMbeuutt/SnP/1JN998s6688sqk4eHNN9/Um2++qVgspurqar355pt6//33Tb18oEd9cSgTOFz0DSbRN5hG59zB2EnokvTb3/5WixYt0rnnnquUlBTNmTNHDz74YGJ5W1ubtm/frsbGxsRj9913X2LdlpYWzZw5U4888khi+YABA/T8889r4cKFKi8vV2Zmpi6//HLdfvvtSZ97/7diVVRUaNWqVTrxxBO1c+fO/nvBwGE48OIMQH+ibzCJvsE0OucOxu4DcjywcR8QHP+CwaCKiopsx4BH0DeYRN9gmlc65/ZzQIzeCR1AVwyzMIm+wST6BtPonDswgACWNTc3244AD6FvMIm+wTQ65w4MIIBlPp/PdgR4CH2DSfQNptE5d2AAASxLS0uzHQEeQt9gEn2DaXTOHRhAAMtisZjtCPAQ+gaT6BtMo3PuwAACWDZ06FDbEeAh9A0m0TeYRufcgQEEsCwUCtmOAA+hbzCJvsE0OucODCCAZSUlJbYjwEPoG0yibzCNzrkDAwhgmd/vtx0BHkLfYBJ9g2l0zh0YQADLvHDHVhw76BtMom8wjc65AwMIYFlVVZXtCPAQ+gaT6BtMo3PuwAACWDZkyBDbEeAh9A0m0TeYRufcgQEEsKyxsdF2BHgIfYNJ9A2m0Tl3YAABLEtNTbUdAR5C32ASfYNpdM4dGEAAy1JS+DGEOfQNJtE3mEbn3IHvEmBZc3Oz7QjwEPoGk+gbTKNz7sAAAliWk5NjOwI8hL7BJPoG0+icOzCAAJaFw2HbEeAh9A0m0TeY5oXOvftJSD98eqteaR2tB1/ZqR3hBtuRes3nOI5jO4RbRCIR5ebmqr6+ngkbAAAARj29bbduePZt7fv13efzSZKWz5moCyeX2ozWKxwBASzz+/22I8BD6BtMom8w7Xju3I5wg2549m3FHcmRT458ijtS3JGuf/Zt7XTRkRAGEMCy4cOH244AD6FvMIm+wbTjuXNPb9udOOJxIJ/Pp6e27Tac6MgxgACWBQIB2xHgIfQNJtE3mHY8d25PbZN6OnPCcRztqW0ynOjIMYAAluXn59uOAA+hbzCJvsG047lzI4YMPugRkBFDBhtOdOQYQADLIpGI7QjwEPoGk+gbTDueO3fR5NKDHgG5mJPQARyuQYMG2Y4AD6FvMIm+wbTjuXOj8zO1fM5Epfj0j1PQHaX4pBRf51WwRuVn2o542FJtBwAAAABwaBdOLtWEgkG6d+1m7QjVa+opY/Sd89w1fEgcAQGsa21ttR0BHkLfYBJ9g2le6NxnTizUXRedoelpO/S96aNcN3xIDCCAdZmZ7ttxwL3oG0yibzCNzrkDAwhgWW1tre0I8BD6BpPoG0yjc+7AAAJYVlRUZDsCPIS+wST6BtPonDswgACWVVZW2o4AD6FvMIm+wTQ65w4MIIBlJSUltiPAQ+gbTKJvMI3OuQMDCGCZ3++3HQEeQt9gEn2DaXTOHRhAAMsKCgpsR4CH0DeYRN9gGp1zBwYQwLK6ujrbEeAh9A0m0TeYRufcgQEEsCwjI8N2BHgIfYNJ9A2m0Tl3YAABLGtvb7cdAR5C32ASfYNpdM4dGEAAy+LxuO0I8BD6BpPoG0yjc+7AAAJYlp6ebjsCPIS+wST6BtPonDswgACWRSIR2xHgIfQNJtE3mEbn3IEBBLAsPz/fdgR4CH2DSfQNptE5d2AAASyrqqqyHQEeQt9gEn2DaXTOHRhAAMtKSkpsR4CH0DeYRN9gGp1zBwYQwDK/3287AjyEvsEk+gbT6Jw7MIAAlg0bNsx2BHgIfYNJ9A2m0Tl3YAABLAuHw7YjwEPoG0yibzCNzrkDAwhgWU5Oju0I8BD6BpPoG0yjc+7AAAJY1tzcbDsCPIS+wST6BtPonDswgACW+Xw+2xHgIfQNJtE3mEbn3IEBBLBs4MCBtiPAQ+gbTKJvMI3OuQMDCGBZQ0OD7QjwEPoGk+gbTKNz7pBqOwDgdUOHDrUdAS4RjUYVi8V6XJ6VlaXs7OyDboO+wST6BtPonDswgACWhUIh7tyKw1JRUaGNGzf2uHzatGmaPn36QbdB32ASfYNpdM4dGEAAy9hR4nCVlZVp7Nixkjqvdb9mzRrNnj1b+fn5kjqPgBwKfYNJ9A2m0Tl34BwQwDK/3287AlwiOztbxcXFKi4uTgwd+fn5iccO9fYrib7BLPoG0+icOzCAAJYVFxfbjgAPoW8wib7BNDrnDgwggGXBYNB2BHgIfYNJ9A2m0Tl3YAABLBsyZIjtCPAQ+gaT6BtMo3PuwAACWNbY2Gg7AjyEvsEk+gbT6Jw7GB9AampqNHfuXOXk5CgvL0/z588/6HXtJam5uVlXXnmlTjjhBGVlZWnOnDmqqqpKWmfXrl264IILlJGRocLCQl177bVqb29PLF+zZo3OO+88FRQUKCcnR+Xl5frTn/7UL68R6I3UVC5GB3PoG0yibzCNzrmD8QFk7ty5eu+997R+/Xo9//zzevXVV7VgwYKDPufqq6/WH/7wB61evVobN25UIBDQ7NmzE8s7Ojp0wQUXqLW1VZs2bdLjjz+uxx57TEuWLEms8+qrr+q8887TCy+8oIqKCp1zzjn6t3/7N73xxhv99lqBw5GSwoFImEPfYBJ9g2l0zh2MjokffPCB1q1bp7/+9a+aPHmyJOmnP/2pvvjFL+rHP/6xhg8f3uU59fX1+tWvfqVVq1bpX//1XyVJv/71rzV+/Hj93//9n6ZOnar/+Z//0fvvv68///nPGjZsmCZNmqQ77rhD119/vW699ValpaXp/vvvT9ru3Xffrd///vf6wx/+oNNPP73fXzvQk+bm5sO6fCrQF+gbTKJvMI3OuYPRMXHz5s3Ky8tLDB+SNGPGDKWkpGjLli3dPqeiokJtbW2aMWNG4rFx48Zp5MiR2rx5c2K7p556qoYNG5ZYZ+bMmYpEInrvvfe63W48Hlc0GtXQoUN7zNvS0qJIJJL0AfS1nJwc2xHgIfQNJtE3mEbn3MHoABIMBlVYWJj0WGpqqoYOHdrjZdOCwaDS0tKUl5eX9PiwYcMSzwkGg0nDx77l+5Z158c//rFisZguuuiiHvMuW7ZMubm5iY/S0lJJndN1IBBQPB5P3PDG7/ertbVVoVBIsVhMdXV1qqmpUVNTk4LBoNrb25PWbWtrUzAYVGNjo2pqalRbW6uGhgZVVVWpra0tad2Ojg4FAgE1NTVp7969qq+vVzQaVXV1tVpaWpLWdRxHfr9fLS0tqq6uTgxO4XBYTU1Nh527sbGx29zt7e1dcsdisW5zx+PxQ+bel/fA3NFoVPX19dq7d2+Pudva2lRVVaVYLKba2tpe5a6rq1MsFlMoFFJra2uPucPhcOJr2F3ufc85WO6Ojo5uczc0NKi2tlY7d+5M5D7wa7gvd1NT02Hnbm5u7jZ3IBDoNncoFOqSu7Ky8pC5D9XZysrKpNzRaLRXucPh8CF/1qLRaNLPWl/m3r+zoVCo25+1QCDQ7c+aiX1EKBSSJIVCoV7tI6qrq9lHuGwfsX9ut+0j/H4/+whL+wiv/h5RWVnpiX3E3r17JUmRSMTaPuJo+BzHcY52IzfccIOWL19+0HU++OADrVmzRo8//ri2b9+etKywsFC33XabFi5c2OV5q1at0rx589TS0pL0+BlnnKFzzjlHy5cv14IFC/TJJ58knVTe2NiozMxMvfDCC/rCF77QZZtXXHGFfv/73ycdWTlQS0tL0ueNRCIqLS1VfX09Ezb6jOM48vl8tmPAZSorK7Vy5UotWLCgVzfeom8wib7BNK907kj/DjhW9Mk5INdcc42++c1vHnSdk046SUVFRYl/tdunvb1dNTU1Kioq6vZ5RUVFam1tVV1dXdJRkKqqqsRzioqKtHXr1qTn7btK1oHbffLJJ/Xtb39bq1evPujwIUmDBg3SoEGDDroOcLQCgYBKSkpsx4BH0DeYRN9gGp1zhz4ZQAoKClRQUHDI9crLy1VXV6eKigqVlZVJkl566SXF43FNmTKl2+eUlZVp4MCB2rBhg+bMmSNJ2r59u3bt2qXy8vLEdu+66y6FQqHEW7zWr1+vnJwcTZgwIbGt3/3ud/rWt76lJ598UhdccMFRvWagr3R38QWgv9A3mETfYBqdcwej54CMHz9e559/vq644gpt3bpVr732mhYtWqRLLrkkURi/369x48Yljmjk5uZq/vz5Wrx4sV5++WVVVFRo3rx5Ki8v19SpUyVJn//85zVhwgR94xvf0FtvvaU//elPuvnmm3XllVcmjmCsWrVKl112me69915NmTJFwWBQwWBQ9fX1Jr8EQBeBQMB2BHgIfYNJ9A2m0Tl3MH6x5N/+9rcaN26czj33XH3xi1/U2WefrZUrVyaWt7W1afv27Ul3srzvvvv0pS99SXPmzNHnPvc5FRUVac2aNYnlAwYM0PPPP68BAwaovLxcX//613XZZZfp9ttvT6yzcuVKtbe368orr1RxcXHi4/vf/76ZFw70ID8/33YEeAh9g0n0DabROXcwfrvIoUOHatWqVT0uHzVqlA48Lz49PV0PP/ywHn744R6fd+KJJ+qFF17ocfkrr7zS66yACZFI5LDewgj0BfoGk+gbTKNz7sDtIgHL0tPTbUeAh9A3mETfYBqdcwcGEMCyeDxuOwI8hL7BJPoG0+icOzCAAJa1t7fbjgAPoW8wib7BNDrnDgwggGUZGRm2I8BD6BtMom8wjc65AwMIYFltba3tCPAQ+gaT6BtMo3PuwAACWFZUVGQ7AjyEvsEk+gbT6Jw7MIAAllVWVtqOAA+hbzCJvsE0OucODCCAZSUlJbYjwEPoG0yibzCNzrkDAwhgmd/vtx0BHkLfYBJ9g2l0zh0YQADLCgsLbUeAh9A3mETfYBqdcwcGEMCympoa2xHgIfQNJtE3mEbn3IEBBLAsMzPTdgR4CH2DSfQNptE5d0i1HQDwura2NtsR4CH0DSbRN5h2PHcuGo0qFotJksLhcNJ/JSkrK0vZ2dlWsvUWAwhgmeM4tiPAQ+gbTKJvMO147lxFRYU2btyY9NiaNWsSf542bZqmT59uONWRYQABLEtPT7cdAR5C32ASfYNpx3PnysrKNHbs2B6XZ2VlGUxzdBhAAMsikYgyMjJsx4BH0DeYRN9g2vHcuezsbNe8xepQOAkdsCw/P992BHgIfYNJ9A2m0Tl3YAABLKuqqrIdAS7z7ich/fDprXqldbQefGWndoQbDvu59A0m0TeYRufcweccz2fr9LFIJKLc3FzV19crJyfHdhwAHvT0tt264dm3Eyda+nw+SdLyORN14eRSm9EAADgsHAEBLPP7/bYjwCV2hBt0w7NvK+5Ijnxy5FPckeKOdP2zb2vnYRwJoW8wib7BNDrnDgwggGXDhg2zHQEu8fS23YkjHgfy+Xx6atvuQ26DvsEk+gbT6Jw7MIAAlu1/EyHgYPbUNvV4jXvHcbSntumQ26BvMIm+wTQ65w4MIIBlnE+EwzViyOCDHgEZMWTwIbdB32ASfYNpdM4dGEAAy5qbm21HgEtcNLn0oEdALj6Mk9DpG0yibzCNzrkDAwhgWUoKP4Y4PKPzM7V8zkSl+PSPU9AdpfikFF/nVbBG5Wcechv0DSbRN5hG59yBO6EDlqWm8mOIw3fh5FJNKBike9du1o5QvaaeMkbfOe/whg+JvsEs+gbT6Jw7MCYCljU2NtqOAJf5zImFuuuiMzQ9bYe+N33UYQ8fEn2DWfQNptE5d2AAASzLy8uzHQEeQt9gEn2DaXTOHRhAAMuqq6ttR4CH0DeYRN9gGp1zBwYQwLKSkhLbEeAh9A0m0TeYRufcgQEEsMzv99uOAA+hbzCJvsE0OucODCCAZcXFxbYjwEPoG0yibzCNzrkDAwhgWTAYtB0BHkLfYBJ9g2l0zh0YQADLhgwZYjsCPIS+wST6BtPonDswgACWNTQ02I4AD6FvMIm+wTQ65w4MIIBlaWlptiPAQ+gbTKJvMI3OuQMDCAAAAABjGEAAy1paWmxHgIfQN5hE32AanXMHBhDAspycHNsR4CH0DSbRN5hG59yBAQSwLBwO244AD6FvMIm+wTQ65w4MIIBlw4cPtx0BHkLfYBJ9g2l0zh0YQADLAoGA7QjwEPoGk+gbTKNz7sAAAlhWUlJiOwI8hL7BJPoG0+icOzCAAJb5/X7bEeAh9A0m0TeYRufcgQEEsCw/P992BHgIfYNJ9A2m0Tl3YAABLItEIrYjwEPoG0yibzCNzrkDAwhgWXp6uu0I8BD6BpPoG0yjc+7AAAJYFo/HbUeAh9A3mETfYBqdcwcGEMCy9vZ22xHgIfQNJtE3mEbn3IEBBLAsIyPDdgR4CH2DSfQNptE5d2AAASyrra21HQEeQt9gEn2DaXTOHRhAAMuGDRtmOwI8hL7BJPoG0+icOzCAAJYFg0HbEeAh9A0m0TeYRufcgQEEsKykpMR2BHgIfYNJ9A2m0Tl3YAABLPP7/bYjwEPoG0yibzCNzrkDAwhgWWFhoe0I8BD6BpPoG0yjc+7AAAJYVlNTYzsCPIS+wST6BtPonDswgACWZWVl2Y4AD6FvMIm+wTQ65w7GB5CamhrNnTtXOTk5ysvL0/z58xWLxQ76nObmZl155ZU64YQTlJWVpTlz5qiqqippnV27dumCCy5QRkaGCgsLde211ybdDfMvf/mLzjrrLJ1wwgkaPHiwxo0bp/vuu69fXiPQG62trbYjwEPoG0yibzCNzrlDqulPOHfuXFVWVmr9+vVqa2vTvHnztGDBAq1atarH51x99dX64x//qNWrVys3N1eLFi3S7Nmz9dprr0mSOjo6dMEFF6ioqEibNm1SZWWlLrvsMg0cOFB33323JCkzM1OLFi3SxIkTlZmZqb/85S/6zne+o8zMTC1YsMDIawe64ziO7QhwiWg0mvgHm3A4nPRfqfNf/rKzsw+6DfoGk+gbTKNz7uBzDH6nPvjgA02YMEF//etfNXnyZEnSunXr9MUvflF79uzR8OHDuzynvr5eBQUFWrVqlb761a9Kkj788EONHz9emzdv1tSpU/Xiiy/qS1/6kgKBQOIGNCtWrND111+v6upqpaWldZtn9uzZyszM1H/9138dVv5IJKLc3FzV19crJyfnSL4EQBeNjY3KyMiwHQMu8Morr2jjxo09Lp82bZqmT59+0G3QN5hE32AanXMHo0dANm/erLy8vMTwIUkzZsxQSkqKtmzZoq985StdnlNRUaG2tjbNmDEj8di4ceM0cuTIxACyefNmnXrqqUl3v5w5c6YWLlyo9957T6effnqX7b7xxhvatGmT7rzzzj5+lUDvRCIRdpY4LGVlZRo7dmyPyw/nvc/0DSbRN5hG59zB6AASDAa7XB4tNTVVQ4cO7fHOlcFgUGlpacrLy0t6fNiwYYnnBIPBpOFj3/J9y/Y3YsQIVVdXq729Xbfeequ+/e1v95i3paVFLS0tif+PRCIHf4HAETjhhBNsR4BLZGdnH/ItVodC32ASfYNpdM4d+uQk9BtuuEE+n++gHx9++GFffKqj9r//+7/atm2bVqxYofvvv1+/+93velx32bJlys3NTXyUlpZK6jwpPhAIKB6PJ2544/f71draqlAopFgsprq6OtXU1KipqUnBYFDt7e1J67a1tSkYDKqxsVE1NTWqra1VQ0ODqqqq1NbWlrRuR0eHAoGAmpqatHfvXtXX1ysajaq6ulotLS1J6zqOI7/fr5aWFlVXVysSiSgSiSgcDqupqemwczc2Nnabu729vUvuWCzWbe54PH7I3PvyHpg7Go2qvr5ee/fu7TF3W1ubqqqqFIvFVFtb26vcdXV1isViCoVCam1t7TF3OBxOfA27y73vOQfL3dHR0W3uhoYG1dbW6uOPP07kPvBruC93U1PTYedubm7uNncgEOg2dygU6pK7srLykLkP1dnKysqk3NFotFe5w+HwIX/WotFo0s9aX+bev7OhUKjbn7VAINDtz9qxvI+oqqpiH+GyfcT+ud22j9i9ezf7CJftI9z+e4Tf72cfYWgfcTT65ByQ6upq7d2796DrnHTSSfrNb36ja665RrW1tYnH29vblZ6ertWrV3f7FqyXXnpJ5557rmpra5OOgpx44om66qqrdPXVV2vJkiV67rnn9OabbyaW79ixQyeddJJef/31bt+CJUl33nmn/uu//kvbt2/vdnl3R0BKS0s5BwQAAAA4Qn3yFqyCggIVFBQccr3y8nLV1dWpoqJCZWVlkjoHjHg8rilTpnT7nLKyMg0cOFAbNmzQnDlzJEnbt2/Xrl27VF5entjuXXfdpVAolHiL1/r165WTk6MJEyb0mCcejycNGAcaNGiQBg0adMjXBRwNv9+vkpIS2zHgEfQNJtE3mEbn3MHoVbAk6Qtf+IKqqqq0YsWKxGV4J0+enLgMr9/v17nnnqsnnnhCZ5xxhiRp4cKFeuGFF/TYY48pJydH3/3udyVJmzZtktR5Gd5JkyZp+PDhuueeexQMBvWNb3xD3/72txOX4X344Yc1cuRIjRs3TpL06quv6uqrr9b3vve9wz4RnatgoT+0t7crNdX4FbHhUfQNJtE3mEbn3MH4d+i3v/2tFi1apHPPPVcpKSmaM2eOHnzwwcTytrY2bd++XY2NjYnH7rvvvsS6LS0tmjlzph555JHE8gEDBuj555/XwoULVV5erszMTF1++eW6/fbbE+vE43HdeOON2rFjh1JTU3XyySdr+fLl+s53vmPmhQM9CIfDKioqsh0DHkHfYBJ9g2l0zh2MHwFxM46AoD80NTVp8ODBtmPAI+gbTKJvMI3OuUOfXAULwJFramqyHQEeQt9gEn2DaXTOHRhAAMtSUvgxhDn0DSbRN5hG59yB7xJgGSfLwST6BpPoG0yjc+7AAAJYtv8FF4D+Rt9gEn2DaXTOHRhAAMv2v8Em0N/oG0yibzCNzrkDAwhgWXV1te0I8BD6BpPoG0yjc+7AZXh7gcvwAgAAAEeHIyCAZX6/33YEeAh9g0n0DabROXfgCEgvcAQE/SEej3PZQBhD32ASfYNpdM4d+A4BlgWDQdsR4CH0DSbRN5hG59yBiyX3wr6DRZFIxHISHE9SU1PpFIyhbzCJvsE0OmdWdna2fD5fr5/HANIL0WhUklRaWmo5CQAAAGDXkZ6WwDkgvRCPxxUIBI542gMOFIlEVFpaqt27d3NeEfodfYNJ9A2m0TnzOAJiQEpKikaMGGE7Bo5DOTk57CxhDH2DSfQNptG5Yx8noQMAAAAwhgEEAAAAgDEMIIBFgwYN0tKlSzVo0CDbUeAB9A0m0TeYRufcg5PQAQAAABjDERAAAAAAxjCAAAAAADCGAQQAAACAMQwgAAAAAIxhAAH6UU1NjebOnaucnBzl5eVp/vz5isViB13/u9/9rsaOHavBgwdr5MiR+t73vqf6+vrEOo899ph8Pl+3H6FQyMTLwjGsPzq3z2OPPaaJEycqPT1dhYWFuvLKK/vzpcAF+qtv3e3fnnzyyf5+OTjG9ef+TZL27t2rESNGyOfzqa6urp9eBSTuhA70q7lz56qyslLr169XW1ub5s2bpwULFmjVqlXdrh8IBBQIBPTjH/9YEyZM0CeffKL/+I//UCAQ0DPPPCNJuvjii3X++ecnPe+b3/ymmpubVVhY2O+vCce2/uicJP3kJz/Rvffeqx/96EeaMmWKGhoatHPnTkOvCseq/uqbJP36179O2tfl5eX150uBC/Rn3yRp/vz5mjhxovx+f3+/FDgA+sX777/vSHL++te/Jh578cUXHZ/P5/j9/sPeztNPP+2kpaU5bW1t3S4PhULOwIEDnSeeeOKoM8Pd+qtzNTU1zuDBg50///nPfZ4Z7tWf+zhJzn//93/3ZVy4XH//nfrII48406ZNczZs2OBIcmpra/sqOrrBW7CAfrJ582bl5eVp8uTJicdmzJihlJQUbdmy5bC3U19fr5ycHKWmdn/A8oknnlBGRoa++tWvHnVmuFt/dW79+vWKx+Py+/0aP368RowYoYsuuki7d+/u89cA9+jvfdyVV16p/Px8nXHGGXr00UflcNsyT+vPvr3//vu6/fbb9cQTTyglhV+NTeCrDPSTYDDY5S1RqampGjp0qILB4GFtIxwO64477tCCBQt6XOdXv/qVvva1r2nw4MFHlRfu11+d+/jjjxWPx3X33Xfr/vvv1zPPPKOamhqdd955am1t7dPXAPfoz33c7bffrqefflrr16/XnDlz9J//+Z/66U9/2mfZ4T791beWlhZdeuml+tGPfqSRI0f2aWb0jAEE6KUbbrihx5PA9318+OGHR/15IpGILrjgAk2YMEG33nprt+ts3rxZH3zwgebPn3/Unw/HLtudi8fjamtr04MPPqiZM2dq6tSp+t3vfqe///3vevnll4/68+LYYrtvknTLLbforLPO0umnn67rr79e1113nX70ox8d9efEscd232688UaNHz9eX//614/6c+DwcRI60EvXXHONvvnNbx50nZNOOklFRUVdrkrV3t6umpoaFRUVHfT50WhU559/vrKzs/Xf//3fGjhwYLfr/fKXv9SkSZNUVlbWq9cAd7HdueLiYknShAkTEo8VFBQoPz9fu3bt6uWrwbHOdt+6M2XKFN1xxx1qaWnRoEGDDut1wB1s9+2ll17SO++8kzgpfd9b/fLz8/XDH/5Qt9122xG8KhwKAwjQSwUFBSooKDjkeuXl5aqrq1NFRUViQHjppZcUj8c1ZcqUHp8XiUQ0c+ZMDRo0SM8995zS09O7XS8Wi+npp5/WsmXLjuyFwDVsd+6ss86SJG3fvl0jRoyQ1Hl5y3A4rBNPPPFIXxaOUbb71p0333xTQ4YMYfg4Dtnu27PPPqumpqbE///1r3/Vt771Lf3v//6vTj755CN8VTgk22fBA8ez888/3zn99NOdLVu2OH/5y1+cMWPGOJdeemli+Z49e5yxY8c6W7ZscRzHcerr650pU6Y4p556qvPRRx85lZWViY/29vakbf/yl7900tPTuVIHkvRX57785S87n/nMZ5zXXnvNeeedd5wvfelLzoQJE5zW1lbjrxHHjv7o23PPPef84he/cN555x3n73//u/PII484GRkZzpIlS6y8Rhw7+vPv1H1efvllroJlAAMI0I/27t3rXHrppU5WVpaTk5PjzJs3z4lGo4nlO3bscCQ5L7/8suM4/9zxdfexY8eOpG2Xl5c7X/va1wy+GrhBf3Wuvr7e+da3vuXk5eU5Q4cOdb7yla84u3btMvzqcKzpj769+OKLzqRJk5ysrCwnMzPTOe2005wVK1Y4HR0dFl4hjiX9+XfqPgwgZvgch+vaAQAAADCDq2ABAAAAMIYBBAAAAIAxDCAAAAAAjGEAAQAAAGAMAwgAAAAAYxhAAAAAABjDAAIAAADAGAYQAAAAAMYwgAAAAAAwhgEEAAAAgDEMIAAAAACMYQABAAAAYAwDCAAAAABjGEAAAAAAGMMAAgAAAMAYBhAAAAAAxjCAAAAAADDm/weI2jefXaU4UQAAAABJRU5ErkJggg==", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import importlib\n", + "from statlib import *\n", + "\n", + "g = 9.806\n", + "ug = 0.004\n", + "\n", + "df = pd.read_csv(\"k1.csv\")\n", + "df.insert(1, \"um\", 0.01/np.sqrt(12))\n", + "df[\"g\"] = g\n", + "df[\"ug\"] = ug\n", + "\n", + "molla1 = Data(df)\n", + "molla1.analisi_stat = molla1.campione\n", + "\n", + "\n", + "# Fg = mg\n", + "m, g = sp.symbols('m g', positive=True)\n", + "F = m/1000*g\n", + "\n", + "# x = h\n", + "h =sp.Symbol('h')\n", + "x = -h / 1000\n", + "\n", + "# y = Fg\n", + "y = F\n", + "\n", + "\n", + "\n", + "molla1 = molla1.calc_var(F, \"Fg\")\n", + "molla1 = molla1.calc_var(x, \"x\")\n", + "molla1 = molla1.calc_var(y, \"y\")\n", + "sheet = ipysheet.from_dataframe(molla1.analisi_stat)\n", + "display(sheet)\n", + "\n", + "\n", + "\n", + "molla1 = molla1.reg_lin(stampa_param=True, plot_regressione=True, calc_residui=True,\n", + " x_label=\"\", y_label=\"\", r_label=\"\",\n", + " titolo_reg=\"\", titolo_residui=\"\",\n", + " cd_A=4, cd_B=4, scala_barre=1)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/UINONintegrata.ipynb b/UINONintegrata.ipynb new file mode 100644 index 0000000..26a2090 --- /dev/null +++ b/UINONintegrata.ipynb @@ -0,0 +1,758 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 9, + "id": "15236ca4", + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib widget" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "f1c8e058", + "metadata": {}, + "outputs": [], + "source": [ + "# Heavy lifting\n", + "import numpy as np\n", + "import scipy\n", + "from scipy.optimize import curve_fit\n", + "\n", + "# Disegnini\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.patches as patches\n", + "from matplotlib.widgets import RectangleSelector\n", + "\n", + "# Tabelle\n", + "import ipysheet\n", + "import ipywidgets as widgets\n", + "from IPython.display import display\n", + "\n", + "# Estrazione parametri\n", + "import ast\n", + "import re\n", + "\n", + "# Funzione di Helper molto comoda\n", + "def curve_fit_xy(fn, xs, ys, uxs, uys, p0, n_iter=7, **kwargs):\n", + " \"\"\"\n", + " Esegue curve_fit tenendo conto degli errori su entrambi gli assi.\n", + "\n", + " Algoritmo:\n", + " 1. Parte da p0.\n", + " 2. Calcola sigma_eff = sqrt(uy² + (df/dx · ux)²) con la derivata numerica valutata nei parametri correnti.\n", + " 3. Rifà il fit con sigma=sigma_eff.\n", + " 4. Ripete n_iter volte (di solito 3-7 bastano).\n", + "\n", + " Se uxs è tutto zero ricade nel classico curve_fit con solo sigma=uys.\n", + " Se anche uys è tutto zero, usa curve_fit senza sigma (come prima).\n", + " \"\"\"\n", + " ha_ux = np.any(uxs != 0)\n", + " ha_uy = np.any(uys != 0)\n", + "\n", + " popt = np.asarray(p0, dtype=float)\n", + "\n", + " for _ in range(n_iter):\n", + " if ha_ux:\n", + " dx = 1e-6\n", + " dfdx = (fn(xs + dx, *popt) - fn(xs - dx, *popt)) / (2 * dx)\n", + " sigma_eff = np.sqrt(uys**2 + (dfdx * uxs)**2)\n", + " elif ha_uy:\n", + " sigma_eff = uys.copy()\n", + " else:\n", + " sigma_eff = None\n", + "\n", + " if sigma_eff is not None:\n", + " sigma_eff = np.where(sigma_eff == 0, 1e-12, sigma_eff) # evita /0\n", + "\n", + " popt, pcov = curve_fit(fn, xs, ys, p0=popt, sigma=sigma_eff, absolute_sigma=(sigma_eff is not None), **kwargs)\n", + "\n", + " return popt, pcov\n", + "\n", + "\n", + "# Funzione principale\n", + "def fit_interattivo(x_data, y_data, ux_data=None, uy_data=None, scala_barre=1):\n", + " \"\"\"\n", + " Strumento interattivo di fit su dati (x, y) con supporto opzionale per le barre di errore.\n", + "\n", + " Può essere chiamato in due modi:\n", + "\n", + " 1) Solo dati grezzi:\n", + " fit_interattivo(x, y)\n", + "\n", + " 2) Con array di errori espliciti:\n", + " fit_interattivo(x, y, ux_data=ux, uy_data=uy)\n", + "\n", + " Parametri\n", + " ----------\n", + " x_data : array-like — valori asse x\n", + " y_data : array-like — valori asse y\n", + " ux_data : array-like o None — incertezze su x (opzionale)\n", + " uy_data : array-like o None — incertezze su y (opzionale)\n", + " scala_barre : float — fattore moltiplicativo per la lunghezza delle\n", + " barre di errore nel grafico (default 1)\n", + "\n", + " Ritorna\n", + " -------\n", + " rect_selector : RectangleSelector\n", + " Tieni il riferimento vivo nella cella del notebook:\n", + " rs = fit_interattivo(x, y)\n", + "\n", + " Note sul fit\n", + " ------------\n", + " - Gli errori su x vengono propagati iterativamente in sigma_eff:\n", + " sigma_eff = sqrt(uy² + (df/dx · ux)²)\n", + " e il fit viene ripetuto fino a convergenza (5 iterazioni di default).\n", + " - p0 (punto di partenza) può essere specificato nel campo apposito\n", + " dell'interfaccia (valori separati da virgola). Se lasciato vuoto\n", + " si usa 0.5 per tutti i parametri.\n", + " \"\"\"\n", + " x_data = np.asarray(x_data, dtype=float)\n", + " y_data = np.asarray(y_data, dtype=float)\n", + " ux_data = np.asarray(ux_data, dtype=float) if ux_data is not None else np.zeros_like(x_data)\n", + " uy_data = np.asarray(uy_data, dtype=float) if uy_data is not None else np.zeros_like(y_data)\n", + "\n", + " ha_errori = not (np.all(ux_data == 0) and np.all(uy_data == 0))\n", + "\n", + " assert len(x_data) == len(y_data), \"x_data e y_data devono avere la stessa lunghezza\"\n", + " assert len(ux_data) == len(x_data), \"ux_data deve avere la stessa lunghezza di x_data\"\n", + " assert len(uy_data) == len(y_data), \"uy_data deve avere la stessa lunghezza di y_data\"\n", + "\n", + " # Stato interno\n", + " selected_mask = np.ones(len(x_data), dtype=bool)\n", + " fit_history = []\n", + " ultimo_fit_dati = {}\n", + "\n", + "\n", + " # Grafico Principale\n", + " fig, ax = plt.subplots(figsize=(9, 5))\n", + " plt.subplots_adjust(bottom=0.12)\n", + "\n", + " sc_all = ax.scatter(x_data, y_data,\n", + " c='steelblue', s=25, alpha=0.5, zorder=2, label='tutti i punti')\n", + "\n", + " if ha_errori:\n", + " eb_all = ax.errorbar(x_data, y_data,\n", + " xerr=scala_barre * ux_data, yerr=scala_barre * uy_data,\n", + " fmt='none', ecolor='steelblue', elinewidth=0.8, capsize=2, alpha=0.4, zorder=2)\n", + " else:\n", + " eb_all = None\n", + "\n", + " sc_sel = ax.scatter([], [], c='tomato', s=45, alpha=0.9, zorder=3, label='selezionati')\n", + "\n", + " if ha_errori:\n", + " eb_sel = ax.errorbar([], [],\n", + " xerr=[], yerr=[],\n", + " fmt='none', ecolor='tomato', elinewidth=1.2, capsize=3, alpha=0.85, zorder=3)\n", + " else:\n", + " eb_sel = None\n", + "\n", + " line_fit, = ax.plot([], [], color='darkorange', lw=2.5, zorder=4, label='fit')\n", + " fit_text = ax.text(0.02, 0.97, '', transform=ax.transAxes, fontsize=10, color='darkorange',\n", + " va='top', ha='left', bbox=dict(boxstyle='round,pad=0.3', facecolor='white', alpha=0.7))\n", + " box_patch = patches.Rectangle((0, 0), 0, 0,\n", + " edgecolor='tomato', facecolor='tomato', alpha=0.08,\n", + " linewidth=1.5, linestyle='--', zorder=1)\n", + " ax.add_patch(box_patch)\n", + " ax.set_xlabel('x')\n", + " ax.set_ylabel('y')\n", + " ax.legend(loc='upper right', fontsize=9)\n", + " ax.grid(True, alpha=0.3)\n", + "\n", + "\n", + " # Grafico Residui\n", + " fig_res, (ax_res1, ax_res2) = plt.subplots(1, 2, figsize=(12, 4), gridspec_kw={'wspace': 0.35})\n", + " fig_res.suptitle('Analisi dei residui — ultimo fit', fontsize=12, fontweight='bold', y=1.02)\n", + " for ax_r in (ax_res1, ax_res2):\n", + " ax_r.axhline(0, color='#444', lw=1, linestyle='--', zorder=1)\n", + " ax_r.grid(True, alpha=0.25)\n", + " ax_res1.set(xlabel='x', ylabel='residuo (y - ŷ)', title='Grafico 1 — Residui su x')\n", + " ax_res2.set(xlabel='ŷ', ylabel='residuo (y - ŷ)', title='Grafico 2 — Residui su ŷ')\n", + " plt.tight_layout()\n", + "\n", + " #######################################################################\n", + " #VERA UI\n", + " #######################################################################\n", + " func_input = widgets.Text(\n", + " value='a * x + b',\n", + " description='f(x) =',\n", + " layout=widgets.Layout(width='420px')\n", + " )\n", + " # campo p0 (utile per funzioni trascendenti)\n", + " p0_input = widgets.Text(\n", + " value='',\n", + " description='p0 (opz.):',\n", + " placeholder='es. 1.0, 0.5, 3.14 — lascia vuoto per usare 0.5',\n", + " layout=widgets.Layout(width='480px'),\n", + " style={'description_width': 'initial'}\n", + " )\n", + "\n", + " fit_btn = widgets.Button(description='Esegui fit', button_style='primary')\n", + " clear_btn = widgets.Button(description='Reset selezione', button_style='warning')\n", + " clear_hist_btn = widgets.Button(description='Reset storia fit', button_style='danger')\n", + " show_data_btn = widgets.Button(description='Mostra dati selezionati', button_style='info')\n", + "\n", + " scala_slider = widgets.FloatSlider(\n", + " value=scala_barre, min=0.1, max=scala_barre * 2, step=0.1,\n", + " description='Scala barre:',\n", + " style={'description_width': 'initial'},\n", + " layout=widgets.Layout(width='520px')\n", + " ) if ha_errori else None\n", + "\n", + " sel_label = widgets.Label(value=f'Selezionati: {len(x_data)} / {len(x_data)}')\n", + " out_log = widgets.Output(layout=widgets.Layout(border='1px solid #ddd', padding='8px', min_height='80px'))\n", + "\n", + "\n", + " # HELPER: parsing e costruzione della funzione di fit\n", + " NOMI_RISERVATI = {\n", + " 'x', 'np', 'numpy', 'math', 'pi', 'e', 'inf',\n", + " 'True', 'False', 'None',\n", + " 'exp', 'log', 'sin', 'cos', 'sqrt', 'tan',\n", + " 'tanh', 'sinh', 'cosh',\n", + " 'abs', 'min', 'max'\n", + " }\n", + "\n", + " def estrai_parametri(expr):\n", + " expr = re.sub(r'^[a-zA-Z_]\\s*=\\s*', '', expr.strip())\n", + " try:\n", + " tree = ast.parse(expr, mode='eval')\n", + " nomi = {n.id for n in ast.walk(tree) if isinstance(n, ast.Name)}\n", + " return sorted(nomi - NOMI_RISERVATI)\n", + " except SyntaxError:\n", + " return []\n", + "\n", + " def costruisci_funzione(expr, params):\n", + " ns = {\n", + " 'np': np,\n", + " 'exp': np.exp, 'log': np.log,\n", + " 'sin': np.sin, 'cos': np.cos, 'tan': np.tan,\n", + " 'sinh': np.sinh, 'cosh': np.cosh, 'tanh': np.tanh,\n", + " 'sqrt': np.sqrt,\n", + " 'pi': np.pi, 'e': np.e, 'inf': np.inf,\n", + " }\n", + " exec(f\"def _f(x, {', '.join(params)}):\\n return {expr}\", ns)\n", + " return ns['_f']\n", + "\n", + " def leggi_p0(k):\n", + " raw = p0_input.value.strip()\n", + " if not raw:\n", + " return np.ones(k) * 0.5\n", + " try:\n", + " vals = [float(v) for v in raw.replace(';', ',').split(',')]\n", + " if len(vals) != k:\n", + " print(f\"p0 ha {len(vals)} valori ma il modello ha {k} parametri \"\n", + " f\"fallback: uso 0.5 per tutti.\")\n", + " return np.ones(k) * 0.5\n", + " return np.array(vals)\n", + " except ValueError:\n", + " print(\"p0 non parsabile — fallback: uso 0.5 per tutti.\")\n", + " return np.ones(k) * 0.5\n", + "\n", + " # HELPER: aggiornare le barre di errore\n", + " def aggiorna_errorbar(eb, xs, ys, uxs, uys, scala):\n", + " n = len(xs)\n", + " if n == 0:\n", + " for lc in eb[2]:\n", + " lc.set_segments([])\n", + " for cap in eb[1]:\n", + " cap.set_data([], [])\n", + " return\n", + "\n", + " segs_x = [np.array([[xs[i] - scala*uxs[i], ys[i]], [xs[i] + scala*uxs[i], ys[i]]]) for i in range(n)]\n", + " segs_y = [np.array([[xs[i], ys[i] - scala*uys[i]], [xs[i], ys[i] + scala*uys[i]]]) for i in range(n)]\n", + "\n", + " if len(eb[2]) >= 2:\n", + " eb[2][0].set_segments(segs_x)\n", + " eb[2][1].set_segments(segs_y)\n", + "\n", + " caps = eb[1]\n", + " cap_x_lo = np.array([[xs[i] - scala*uxs[i], ys[i]] for i in range(n)])\n", + " cap_x_hi = np.array([[xs[i] + scala*uxs[i], ys[i]] for i in range(n)])\n", + " cap_y_lo = np.array([[xs[i], ys[i] - scala*uys[i]] for i in range(n)])\n", + " cap_y_hi = np.array([[xs[i], ys[i] + scala*uys[i]] for i in range(n)])\n", + " if len(caps) >= 4:\n", + " caps[0].set_data(cap_x_lo[:, 0], cap_x_lo[:, 1])\n", + " caps[1].set_data(cap_x_hi[:, 0], cap_x_hi[:, 1])\n", + " caps[2].set_data(cap_y_lo[:, 0], cap_y_lo[:, 1])\n", + " caps[3].set_data(cap_y_hi[:, 0], cap_y_hi[:, 1])\n", + "\n", + "\n", + " # HELPER: selezione rettangolare\n", + " def on_select(eclick, erelease):\n", + " nonlocal selected_mask\n", + " if eclick.xdata is None or erelease.xdata is None:\n", + " return\n", + "\n", + " x0, x1 = sorted([eclick.xdata, erelease.xdata])\n", + " y0, y1 = sorted([eclick.ydata, erelease.ydata])\n", + "\n", + " new_mask = (\n", + " (x_data >= x0) & (x_data <= x1) &\n", + " (y_data >= y0) & (y_data <= y1)\n", + " )\n", + "\n", + " # Ctrl premuto → aggiunge alla selezione esistente, altrimenti sostituisce\n", + " ctrl_held = eclick.key in ('ctrl', 'control')\n", + "\n", + " if ctrl_held:\n", + " selected_mask = selected_mask | new_mask\n", + " else:\n", + " selected_mask = new_mask\n", + "\n", + " xs_s = x_data[selected_mask]\n", + " ys_s = y_data[selected_mask]\n", + " pts = np.column_stack([xs_s, ys_s]) if xs_s.size > 0 else np.empty((0, 2))\n", + " sc_sel.set_offsets(pts)\n", + "\n", + " if ha_errori and eb_sel is not None:\n", + " scala = scala_slider.value if scala_slider else 1.0\n", + " aggiorna_errorbar(eb_sel, xs_s, ys_s,\n", + " ux_data[selected_mask],\n", + " uy_data[selected_mask],\n", + " scala)\n", + "\n", + " box_patch.set(xy=(x0, y0), width=x1-x0, height=y1-y0, visible=True)\n", + " sel_label.value = f'Selezionati: {int(selected_mask.sum())} / {len(x_data)}'\n", + " fig.canvas.draw_idle()\n", + "\n", + " # HELPER: cambio scala barre d'errore\n", + " def on_scala_change(change):\n", + " scala = change['new']\n", + " aggiorna_errorbar(eb_all, x_data, y_data, ux_data, uy_data, scala)\n", + " xs_s = x_data[selected_mask]\n", + " ys_s = y_data[selected_mask]\n", + " aggiorna_errorbar(eb_sel, xs_s, ys_s,\n", + " ux_data[selected_mask],\n", + " uy_data[selected_mask],\n", + " scala)\n", + " fig.canvas.draw_idle()\n", + "\n", + " if ultimo_fit_dati:\n", + " d = ultimo_fit_dati\n", + " aggiorna_residui(d['xs'], d['ys'], d['y_pred'],\n", + " d['uxs'] * scala, d['uys'] * scala)\n", + "\n", + " # HELPER: Fa la super analisi dei modelli\n", + " def stampa_confronto_modelli(history):\n", + " best_AICc = min(h['AICc'] for h in history)\n", + " delta = np.array([h['AICc'] - best_AICc for h in history])\n", + " pesi = np.exp(-delta / 2); pesi /= pesi.sum()\n", + " W = 72\n", + "\n", + " print(f\"\\n{'═'*W}\")\n", + " print(f\" CONFRONTO TRA MODELLI ({len(history)} fit eseguiti)\")\n", + " print(f\"{'═'*W}\")\n", + " print(f\"\\n {'#':<3} {'Funzione':<26} {'par':>4} {'n':>5} \"\n", + " f\"{'R²':>7} {'RMSE':>9} {'AICc':>9} {'ΔAICc':>7}\")\n", + " print(f\" {'─'*3} {'─'*26} {'─'*4} {'─'*5} \"\n", + " f\"{'─'*7} {'─'*9} {'─'*9} {'─'*7}\")\n", + " for i, (h, d) in enumerate(zip(history, delta)):\n", + " marker = ' ◀' if d < 1e-6 else ' '\n", + " print(f\" {i+1:<3} {h['expr']:<26} {h['k']:>4} {h['n']:>5} \"\n", + " f\"{h['R2']:>7.4f} {h['RMSE']:>9.4g} \"\n", + " f\"{h['AICc']:>9.2f} {d:>7.2f}{marker}\")\n", + " print(f\"\\n ◀ = migliore secondo AICc | ΔAICc < 2 equivalente | > 10 da scartare\")\n", + "\n", + " print(f\"\\n{'─'*W}\")\n", + " print(f\" PESI DI AKAIKE\")\n", + " print(f\"{'─'*W}\")\n", + " for i, (h, w) in enumerate(zip(history, pesi)):\n", + " bar = '█' * max(1, int(w * 40)) + '░' * (40 - max(1, int(w * 40)))\n", + " print(f\"\\n #{i+1} y = {h['expr']}\")\n", + " print(f\" {w*100:5.1f}% {bar}\")\n", + "\n", + " best_i = int(np.argmin(delta))\n", + " bh, bw = history[best_i], pesi[best_i]\n", + " print(f\"\\n{'═'*W}\")\n", + " print(f\" VERDETTO — modello preferito: #{best_i+1} → y = {bh['expr']}\")\n", + " print(f\" R²={bh['R2']:.4f} RMSE={bh['RMSE']:.4g} AICc={bh['AICc']:.2f} peso={bw*100:.1f}%\")\n", + " if bw > 0.9: print(\" ✓ Scelta netta.\")\n", + " elif bw > 0.6: print(\" ~ Scelta abbastanza chiara — considera anche il modello con ΔAICc minore.\")\n", + " else: print(\" ! Modelli equivalenti — scegli il più semplice.\")\n", + " print(f\"{'═'*W}\\n\")\n", + "\n", + "\n", + "\n", + " #################################################################\n", + " # CALLBACK: funzioni che sono effettivamente chiamate dai pulsanti\n", + "\n", + " #############################################\n", + " # CALLBACK: aggiornamento grafici dei residui\n", + " def aggiorna_residui(xs, ys, y_pred, uxs, uys):\n", + " residui = ys - y_pred\n", + " sigma = residui.std(ddof=1)\n", + "\n", + " for ax_r in (ax_res1, ax_res2):\n", + " ax_r.cla()\n", + " ax_r.axhline(0, color='#444', lw=1, linestyle='--', zorder=1)\n", + " ax_r.grid(True, alpha=0.25)\n", + "\n", + " ax_res1.set(xlabel='x', ylabel='residuo (y - ŷ)', title='Grafico 1 — Residui su x')\n", + " ax_res1.axhspan(-sigma, sigma, color='steelblue', alpha=0.12, zorder=0, label='±1σ')\n", + " ax_res1.axhline( sigma, color='steelblue', lw=1.2, linestyle=':', zorder=2)\n", + " ax_res1.axhline(-sigma, color='steelblue', lw=1.2, linestyle=':', zorder=2)\n", + "\n", + " dentro = np.abs(residui) <= sigma\n", + " fuori = ~dentro\n", + "\n", + " if ha_errori:\n", + " ax_res1.errorbar(xs[dentro], residui[dentro],\n", + " xerr=uxs[dentro], yerr=uys[dentro],\n", + " fmt='o', color='steelblue', ecolor='gray',\n", + " elinewidth=0.8, capsize=2, markersize=4, alpha=0.8,\n", + " zorder=3, label=f'entro ±1σ ({dentro.sum()})')\n", + " if fuori.any():\n", + " ax_res1.errorbar(xs[fuori], residui[fuori],\n", + " xerr=uxs[fuori], yerr=uys[fuori],\n", + " fmt='D', color='tomato', ecolor='gray',\n", + " elinewidth=0.8, capsize=2, markersize=4, alpha=0.9,\n", + " zorder=4, label=f'fuori ±1σ ({fuori.sum()})')\n", + " else:\n", + " ax_res1.scatter(xs[dentro], residui[dentro], c='steelblue', s=30,\n", + " alpha=0.75, zorder=3, label=f'entro ±1σ ({dentro.sum()})')\n", + " if fuori.any():\n", + " ax_res1.scatter(xs[fuori], residui[fuori], c='tomato', s=40,\n", + " alpha=0.9, zorder=4, marker='D',\n", + " label=f'fuori ±1σ ({fuori.sum()})')\n", + "\n", + " pct = dentro.mean() * 100\n", + " ax_res1.text(0.98, 0.97, f'{pct:.1f}% entro ±1σ\\nσ = {sigma:.4g}',\n", + " transform=ax_res1.transAxes, ha='right', va='top', fontsize=9,\n", + " bbox=dict(boxstyle='round,pad=0.3', facecolor='white', alpha=0.75))\n", + " ax_res1.legend(fontsize=8, loc='lower right')\n", + "\n", + " ax_res2.set(xlabel='ŷ', ylabel='residuo (y - ŷ)', title='Grafico 2 — Residui su ŷ')\n", + " if ha_errori:\n", + " ax_res2.errorbar(y_pred, residui,\n", + " yerr=uys,\n", + " fmt='o', color='darkorange', ecolor='gray',\n", + " elinewidth=0.8, capsize=2, markersize=4,\n", + " alpha=0.75, zorder=3)\n", + " else:\n", + " ax_res2.scatter(y_pred, residui, c='darkorange', s=30,\n", + " alpha=0.75, edgecolors='none', zorder=3)\n", + "\n", + " if len(y_pred) > 2:\n", + " idx = np.argsort(y_pred)\n", + " coeff = np.polyfit(y_pred[idx], residui[idx], 1)\n", + " ax_res2.plot(y_pred[idx], np.polyval(coeff, y_pred[idx]),\n", + " color='gray', lw=1.5, linestyle='--', alpha=0.7,\n", + " label=f'tendenza lineare (slope={coeff[0]:.3g})')\n", + " ax_res2.legend(fontsize=8)\n", + "\n", + " ultima_expr = fit_history[-1]['expr'] if fit_history else '?'\n", + " fig_res.suptitle(f'Analisi dei residui — ultimo fit: y = {ultima_expr}',\n", + " fontsize=11, fontweight='bold', y=1.02)\n", + " fig_res.canvas.draw_idle()\n", + "\n", + "\n", + "\n", + " ######################\n", + " # CALLBACK: esegui fit\n", + " def esegui_fit(_):\n", + " out_log.clear_output(wait=True)\n", + " with out_log:\n", + " try:\n", + " expr = func_input.value.strip()\n", + " params = estrai_parametri(expr)\n", + " if not params:\n", + " print(\"Nessun parametro trovato. Usa lettere come a, b, c ...\")\n", + " return\n", + "\n", + " xs = x_data[selected_mask]\n", + " ys = y_data[selected_mask]\n", + " uxs = ux_data[selected_mask]\n", + " uys = uy_data[selected_mask]\n", + " n, k = len(xs), len(params)\n", + "\n", + " if n < k + 1:\n", + " print(f\"Troppo pochi punti ({n}) per {k} parametri.\")\n", + " return\n", + "\n", + " fn = costruisci_funzione(expr, params)\n", + " p0 = leggi_p0(k)\n", + "\n", + " # Fit con propagazione errori su x e y\n", + " popt, pcov = curve_fit_xy(fn, xs, ys, uxs, uys, p0=p0, n_iter=7, maxfev=20_000 )\n", + " perr = np.sqrt(np.diag(pcov))\n", + " y_pred = fn(xs, *popt)\n", + "\n", + " # aggiorna grafico principale\n", + " x_fit = np.linspace(x_data.min(), x_data.max(), 500)\n", + " line_fit.set_data(x_fit, fn(x_fit, *popt))\n", + " label_expr = expr\n", + " for p, v in zip(params, popt):\n", + " label_expr = re.sub(rf'\\b{p}\\b', f'{v:.3g}', label_expr)\n", + " fit_text.set_text(f'y = {label_expr}')\n", + " fig.canvas.draw_idle()\n", + "\n", + " # statistiche\n", + " ss_res = np.sum((ys - y_pred) ** 2)\n", + " ss_tot = np.sum((ys - ys.mean()) ** 2)\n", + " r2 = 1 - ss_res / ss_tot\n", + " rmse = np.sqrt(ss_res / n)\n", + " GdL = max(n - k, 1)\n", + " var_res = ss_res / GdL\n", + " p_value = scipy.stats.chi2.sf(ss_res, df=GdL)\n", + " log_lik = -n / 2 * (np.log(2 * np.pi * ss_res / n) + 1)\n", + " AIC = 2 * k - 2 * log_lik\n", + " BIC = k * np.log(n) - 2 * log_lik\n", + " AICc = AIC + (2 * k * (k + 1)) / max(n - k - 1, 1)\n", + "\n", + " fit_history.append({\n", + " 'expr': expr, 'k': k, 'n': n,\n", + " 'R2': r2, 'RMSE': rmse, 'varianza_residuali': var_res,\n", + " 'AIC': AIC, 'AICc': AICc, 'BIC': BIC,\n", + " })\n", + "\n", + " # stampa risultati\n", + " print(f\"Modello #{len(fit_history)} — fit su {n} punti\\n\")\n", + " print(f\"{'Parametro':<12} {'Valore':>14} {'± Errore Std':>14}\")\n", + " print(\"─\" * 42)\n", + " for p, v, e in zip(params, popt, perr):\n", + " print(f\"{p:<12} {v:>14.6g} {e:>14.6g}\")\n", + " print(f\"\\nR² = {r2:.6f}\")\n", + " print(f\"RMSE = {rmse:.6g}\")\n", + " print(f\"χ² rid(σ²=1)= {var_res:.6g} (varianza residua)\")\n", + " print(f\"p-value = {p_value:.4g} (GdL={GdL})\")\n", + " print(f\"log L = {log_lik:.4f}\")\n", + " print(f\"AIC = {AIC:.4f}\")\n", + " print(f\"AICc = {AICc:.4f} ← usa questo se n/k < 40\")\n", + " print(f\"BIC = {BIC:.4f}\")\n", + " print(f\"Punti usati = {n} / {len(x_data)} | k={k} | GdL={GdL}\")\n", + " print(f\"p0 usato = [{', '.join(f'{v:.4g}' for v in p0)}]\")\n", + "\n", + " scala = scala_slider.value if scala_slider else 1.0\n", + "\n", + " if len(fit_history) > 1:\n", + " stampa_confronto_modelli(fit_history)\n", + "\n", + " ultimo_fit_dati.update(dict(xs=xs, ys=ys, y_pred=y_pred, uxs=uxs, uys=uys))\n", + " aggiorna_residui(xs, ys, y_pred, uxs * scala, uys * scala)\n", + "\n", + " except Exception as err:\n", + " print(f\"Errore: {err}\")\n", + "\n", + "\n", + "\n", + " #################\n", + " # CALLBACK: reset\n", + " def reset_selezione(_):\n", + " nonlocal selected_mask\n", + " selected_mask = np.ones(len(x_data), dtype=bool)\n", + " sc_sel.set_offsets(np.empty((0, 2)))\n", + " if ha_errori and eb_sel is not None:\n", + " aggiorna_errorbar(eb_sel, np.array([]), np.array([]),\n", + " np.array([]), np.array([]), 1.0)\n", + " box_patch.set(visible=False)\n", + " line_fit.set_data([], [])\n", + " fit_text.set_text('')\n", + " sel_label.value = f'Selezionati: {len(x_data)} / {len(x_data)}'\n", + " fig.canvas.draw_idle()\n", + " out_log.clear_output()\n", + "\n", + " def reset_storia(_):\n", + " fit_history.clear()\n", + " out_log.clear_output()\n", + " with out_log:\n", + " print(\"Storia dei fit azzerata.\")\n", + "\n", + " ###############\n", + " # CALLBACK: tabella dati\n", + " def mostra_dati_selezionati(_):\n", + " out_log.clear_output(wait=True)\n", + " with out_log:\n", + " xs = x_data[selected_mask]\n", + " ys = y_data[selected_mask]\n", + " uxs = ux_data[selected_mask]\n", + " uys = uy_data[selected_mask]\n", + " if len(xs) == 0:\n", + " print(\"Nessun punto selezionato.\")\n", + " return\n", + " print(f\"Dati selezionati: {len(xs)} punti\\n\")\n", + " if ha_errori:\n", + " headers = ['x', 'y', 'ux', 'uy']\n", + " data = [xs, ys, uxs, uys]\n", + " else:\n", + " headers = ['x', 'y']\n", + " data = [xs, ys]\n", + "\n", + " sheet = ipysheet.sheet(rows=len(xs), columns=len(headers), column_headers=headers)\n", + "\n", + " for i, col in enumerate(data):\n", + " ipysheet.column( i, [f'{v:.17g}' for v in col], sheet=sheet )\n", + "\n", + " display(sheet)\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " ########\n", + " # LAYOUT\n", + "\n", + " # BUINDING\n", + " fit_btn.on_click(esegui_fit)\n", + " clear_btn.on_click(reset_selezione)\n", + " clear_hist_btn.on_click(reset_storia)\n", + " show_data_btn.on_click(mostra_dati_selezionati)\n", + "\n", + " rect_selector = RectangleSelector(ax, on_select,\n", + " useblit=False, button=[1], minspanx=0, minspany=0,\n", + " spancoords='data', interactive=False,\n", + " state_modifier_keys={'move': '', 'clear': '', 'square': '', 'center': ''})\n", + " fig.canvas.mpl_connect('button_press_event', lambda e: None)\n", + "\n", + " if ha_errori and scala_slider is not None:\n", + " scala_slider.observe(on_scala_change, names='value')\n", + "\n", + " # Mostrare il tutto\n", + " residuals_out = widgets.Output()\n", + " with residuals_out:\n", + " display(fig_res.canvas)\n", + "\n", + " fila_pulsanti = widgets.HBox(\n", + " [func_input, fit_btn, clear_btn, clear_hist_btn, show_data_btn]\n", + " )\n", + " fila_opzioni = widgets.HBox([scala_slider]) if ha_errori and scala_slider else widgets.HBox([])\n", + " fila_p0 = widgets.HBox([p0_input])\n", + "\n", + " display(widgets.VBox([\n", + " fila_pulsanti,\n", + " fila_opzioni,\n", + " fila_p0,\n", + " sel_label,\n", + " fig.canvas,\n", + " out_log,\n", + " residuals_out,\n", + " ]))\n", + "\n", + " return rect_selector" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "702017cc", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_2932/4231667320.py:155: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n", + " plt.tight_layout()\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ce8f54016b6b401798deb59937bb5ccd", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HBox(children=(Text(value='a * x + b', description='f(x) =', layout=Layout(width='420px')), But…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b73aa6e4169743f69fe0415c6de69b7b", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "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AGyqzuoAMD+maUqSYrGYpXEYhqF4PC6fzyenk3kGu2Dc7YcxtyfG3Z4Yd/uppDHPX9vmr3VROiSEVS4ej0uS2tvbLY4EAAAAKK54PK5QKGR1GDXNYZJ2VzXDMNTb26uGhgY5HA7L4ojFYmpvb9fevXsVDAYtiwPlxbjbD2NuT4y7PTHu9lNJY26apuLxuFpbWy1frax1rBBWOafTqba2NqvDmBAMBi0/gKD8GHf7YcztiXG3J8bdfiplzFkZLA/SbQAAAACwKRJCAAAAALApEkIUhdfr1U033SSv12t1KCgjxt1+GHN7YtztiXG3H8bcnigqAwAAAAA2xQohAAAAANgUCSEAAAAA2BQJIQAAAADYFAkhAAAAANgUCSGK4rvf/a6WL18un8+ns846S88//7zVIaGEbrnlFr3rXe9SQ0ODmpubddlll2nnzp1Wh4Uy+vrXvy6Hw6ENGzZYHQpK7K233tKVV16pcDgsv9+vU045RX/84x+tDgslksvldOONN6qzs1N+v1/HHXecvvzlL4sahLXlySef1KWXXqrW1lY5HA498MADk75vmqa++MUvasmSJfL7/brwwgu1a9cua4JFyZEQYt7uu+8+bdy4UTfddJNefPFFnXrqqbrooos0MDBgdWgokU2bNum6667Ts88+q0ceeUSZTEZ//ud/rrGxMatDQxm88MILuvPOO7VmzRqrQ0GJHThwQOeee67cbrcefvhh/ed//qe++c1vauHChVaHhhK59dZbdccdd+j222/XK6+8oltvvVXf+MY39J3vfMfq0FBEY2NjOvXUU/Xd73532u9/4xvf0Le//W19//vf13PPPacFCxbooosuUjKZLHOkKAfaTmDezjrrLL3rXe/S7bffLkkyDEPt7e361Kc+peuvv97i6FAOg4ODam5u1qZNm3TeeedZHQ5KaHR0VO985zv1ve99T1/5yld02mmn6bbbbrM6LJTI9ddfrz/84Q966qmnrA4FZfLBD35QLS0t+tGPfjTx2N/8zd/I7/frpz/9qYWRoVQcDofuv/9+XXbZZZIOrg62trbqs5/9rP7n//yfkqRoNKqWlhbdfffd+shHPmJhtCgFVggxL+l0Wps3b9aFF1448ZjT6dSFF16oZ555xsLIUE7RaFSStGjRIosjQaldd911+sAHPjDpM4/a9atf/UpnnHGGLr/8cjU3N6urq0v/+3//b6vDQgmdc845evTRR/Xqq69Kkv70pz/p97//vS6++GKLI0O5dHd3q6+vb9JxPhQK6ayzzuLarkbVWR0AqtvQ0JByuZxaWlomPd7S0qIdO3ZYFBXKyTAMbdiwQeeee65OPvlkq8NBCf3sZz/Tiy++qBdeeMHqUFAmr7/+uu644w5t3LhRn//85/XCCy/of/yP/yGPx6Orr77a6vBQAtdff71isZhWr14tl8ulXC6nr371q7riiiusDg1l0tfXJ0nTXtvlv4faQkIIYF6uu+46vfzyy/r9739vdSgoob179+rTn/60HnnkEfl8PqvDQZkYhqEzzjhDX/va1yRJXV1devnll/X973+fhLBG/fznP9c999yje++9VyeddJK2bt2qDRs2qLW1lTEHahRbRjEvTU1Ncrlc6u/vn/R4f3+/Fi9ebFFUKJdPfvKTevDBB/X444+rra3N6nBQQps3b9bAwIDe+c53qq6uTnV1ddq0aZO+/e1vq66uTrlczuoQUQJLlizRiSeeOOmxE044QT09PRZFhFL73Oc+p+uvv14f+chHdMopp+iqq67SZz7zGd1yyy1Wh4YyyV+/cW1nHySEmBePx6PTTz9djz766MRjhmHo0Ucf1dq1ay2MDKVkmqY++clP6v7779djjz2mzs5Oq0NCib3vfe/Ttm3btHXr1on/zjjjDF1xxRXaunWrXC6X1SGiBM4999wpLWVeffVVLVu2zKKIUGqJREJO5+TLQ5fLJcMwLIoI5dbZ2anFixdPuraLxWJ67rnnuLarUWwZxbxt3LhRV199tc444wydeeaZuu222zQ2NqZrrrnG6tBQItddd53uvfde/fu//7saGhom7ikIhULy+/0WR4dSaGhomHKP6IIFCxQOh7l3tIZ95jOf0TnnnKOvfe1r+vCHP6znn39eP/jBD/SDH/zA6tBQIpdeeqm++tWvqqOjQyeddJK2bNmib33rW/r4xz9udWgootHRUb322msTX3d3d2vr1q1atGiROjo6tGHDBn3lK1/RypUr1dnZqRtvvFGtra0TlUhRW2g7gaK4/fbb9Y//+I/q6+vTaaedpm9/+9s666yzrA4LJeJwOKZ9/K677tL69evLGwwsc/7559N2wgYefPBB3XDDDdq1a5c6Ozu1ceNGfeITn7A6LJRIPB7XjTfeqPvvv18DAwNqbW3VRz/6UX3xi1+Ux+OxOjwUyRNPPKF169ZNefzqq6/W3XffLdM0ddNNN+kHP/iBRkZG9O53v1vf+9739I53vMOCaFFqJIQAAAAAYFPcQwgAAAAANkVCCAAAAAA2RUIIAAAAADZFQggAAAAANkVCCAAAAAA2RUIIAAAAADZFQggAAAAANkVCCAAAAAA2RUIIAAAAADZFQggAAAAANkVCCADAUQwODmrx4sX62te+NvHY008/LY/Ho0cffdTCyAAAmD+HaZqm1UEAAFDJHnroIV122WV6+umntWrVKp122mn6y7/8S33rW9+yOjQAAOaFhBAAgAJcd911+t3vfqczzjhD27Zt0wsvvCCv12t1WAAAzAsJIQAABRgfH9fJJ5+svXv3avPmzTrllFOsDgkAgHnjHkIAAAqwe/du9fb2yjAM7dmzx+pwAAAoClYIAQA4hnQ6rTPPPFOnnXaaVq1apdtuu03btm1Tc3Oz1aEBADAvJIQAABzD5z73Of3yl7/Un/70JwUCAb33ve9VKBTSgw8+aHVoAADMC1tGAQA4iieeeEK33XabfvKTnygYDMrpdOonP/mJnnrqKd1xxx1WhwcAwLywQggAAAAANsUKIQAAAADYFAkhAAAAANgUCSEAAAAA2BQJIQAAAADYFAkhAAAAANgUCSEAAAAA2BQJIQAAAADYFAkhAAAAANgUCSEAAAAA2BQJIQAAAADYFAkhAAAAANgUCSEAAAAA2BQJIQAAAADYFAkhAAAAANgUCSEAAAAA2BQJIQAAAADYFAkhAAAAANgUCSEAAAAA2BQJIQAAAADY1P8Hv/vSYw6dymEAAAAASUVORK5CYII=", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "be39856cf85e436fb030f7b3d11d2f9c", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "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9tvF5sbHx+vTTz91G3v11VctvVNaVFRU7OMh9erVU3R0tFu88fHx+vLLL1VQUOAa+/jjj4s96vtcFi9erPfff18zZszQ+PHjNWDAAE2aNEk//vhjmWMGgOqOuuL3e3X17t1bBw8e1IoVK875UbySUFe4q4p1hfT70wgzMzP197//Xb/99luJH5sFUDG4AgvwYs2aNdM777yj22+/XS1atNCgQYOUkJAgY4z27t2rd955Rz4+PqW6DLxly5aKj4/Xgw8+qIMHD6p27dpasmRJsXtWlEX37t01ePBgPf/88/rpp5907bXXyul0auPGjerevbvGjh2rhIQEDR06VK+++qqysrLUrVs3bd68WW+88Yb69u2r7t27/+l+zrxL+L///U+S9Oabb+qzzz6TJNs98viSSy5R79699dprr+mxxx5TfHy8nnzySU2YMEH79u1T3759VatWLe3du1cffPCB7rrrLj344IP65JNPNHbsWN12221q3ry5CgsL9eabb8rX11e33HLLOff38MMP680339S1116r++67z/W469jYWH333Xduc0eOHKnRo0frlltuUc+ePfXtt99q1apVlh4bnpubq4YNG+rWW29VQkKCatasqbVr1+rrr7/Ws88+67bPxYsX69prr1W/fv30888/66233jrvI9TPOHLkiO6++27X75Ikvfjii1q/fr2GDRumzz77jI8SAkAZUFdIgwYN0ubNm3XnnXdqx44d2rFjh2tZzZo11bdvX8vxVwTqigtXV5zRtm1btWrVSosWLdLFF1+sdu3alTleABZV4hMPAXjI7t27zd13322aNm1qAgMDTVBQkGnZsqUZPXq0SU1NdZs7dOhQExISUuJ2fvjhB9OjRw9Ts2ZNU6dOHTNq1Cjz7bffGklmwYIFrnmlfdy1McYUFhaap59+2rRs2dL4+/ubunXrmuuuu85s2bLFNef06dNmypQppnHjxqZGjRomJibGTJgwwZw6dapUxy/pnF+e0q1bN/OXv/ylxGUbNmwo9mjpJUuWmK5du5qQkBATEhJiWrZsacaMGWN27dpljDFmz5495s477zTx8fEmMDDQREREmO7du5u1a9e6bbukx0d/9913plu3biYwMNA0aNDATJ061bz++uvFHnddVFRkHnnkEVOnTh0THBxsEhMTze7duy097jo/P9889NBDJiEhwdSq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AwsAAAAAAAC2RgMLAAAAAAAAtkYDCwAAAAAAALZGAwsAAAAAAAC25ufpAODO6XTqv//9rzZu3Kj9+/frxIkTqlu3rtq2basePXooJibG0yECAIAqgroCAAB4C67AsomTJ0/qySefVExMjHr37q3//Oc/ysrKkq+vr3bv3q3k5GQ1btxYvXv31pdffunpcAEAgI1RVwAAAG/DFVg20bx5c3Xu3Fnz5s1Tz549VaNGjWJz9u/fr3feeUcDBgzQxIkTNWrUKA9ECgAA7I66AgAAeBsaWDaxevVqXXzxxeedExsbqwkTJujBBx/UgQMHKikyAABQ1VBXAAAAb8NHCG3iz4rMs9WoUUPx8fEVGA0AAKjKqCsAAIC3oYFlQ3FxcXriiSd4NxQAAJQbdQUAAPAGNLBs5KuvvpIk3X///Vq6dKmaNGminj176r333lN+fr6HowMAAFUJdQUAAPAmNLBsID8/Xw8++KAmTZok6fdCMzU1VZs3b9bFF1+sf/zjH6pfv77Gjh2rrVu3ejhaAABgZ9QVAADAG9HAsoGnn35aO3fu1OrVq93G27Vrp+eff16HDh1ScnKyXnvtNV122WVq06aN5s+fL2OMhyIGAAB2RV0BAAC8EQ0sGxgwYICysrI0fvx4t/HTp0/r3//+t2644QY98MAD6tChg1577TXdcsstevTRRzVo0CAPRQwAAOyKugIAAHgjP08HAKlp06bauHGj/vnPf0qStm7dqgULFujdd9+Vj4+PhgwZon/+859q2bKla52bbrpJl112madCBgAANkVdAQAAvBENLJtwOBxKSkqSJF122WXq2bOnXn75ZfXt21c1atQoNr9x48YaMGBAZYcJAACqAOoKAADgbWhg2dCePXsUGxt73jkhISFasGBBJUUEAACqKuoKAADgDbgHlg39WZEJAABQWtQVAADAG9DAqgbmzJmjuLg4BQYGqlOnTtq8efN552dlZWnMmDGqX7++AgIC1Lx5c61YsaKSogUAAHZGXQEAADyBjxB6uffff19JSUmaO3euOnXqpNmzZysxMVG7du1SvXr1is0vKChQz549Va9ePS1evFgNGjTQ/v37FRYWVvnBAwAAW6GuAAAAnkIDy8vNmjVLo0aN0vDhwyVJc+fO1fLlyzV//vxij9eWpPnz5ysjI0NffPGF6yavcXFxlRkyAACwKeoKAADg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Hy5JGjJkiBo0aKCUlBRJ0n333adu3brp2Wef1fXXX6/33ntP33zzjV599VVPHgYAALAJagsAAOAJNLC8XP/+/XX06FFNnjxZaWlpatOmjVauXOm6meqBAwfcLrG8/PLL9c4772jSpEl69NFH1axZMy1btkytWrUq9T4DAgKUnJxc4uX/OD9yZx25s47clQ/5s47cVU2VXVvwe2IduSsf8mcdubOO3FlH7ryfw/CMSQAAAAAAANgY98ACAAAAAACArdHAAgAAAAAAgK3RwAIAAAAAAICt0cACAAAAAACArdHAgiVz5sxRXFycAgMD1alTJ23evPm88xctWqSWLVsqMDBQrVu31ooVKyopUvspS+7mzZunK664QuHh4QoPD1ePHj3+NNferKy/d2e89957cjgc6tu3b8UGaGNlzV1WVpbGjBmj+vXrKyAgQM2bN6+2/27LmrvZs2erRYsWCgoKUkxMjMaNG6dTp05VUrT28emnn6pPnz6Kjo6Ww+HQsmXL/nSdDRs2qF27dgoICFDTpk21cOHCCo8T9kBdYR11hXXUFeVDbWEdtYU11BaQAcrovffeM/7+/mb+/Pnmf//7nxk1apQJCwsz6enpJc7//PPPja+vr5k5c6b54YcfzKRJk0yNGjXM9u3bKzlyzytr7gYOHGjmzJljtm3bZnbs2GGGDRtmQkNDza+//lrJkXteWXN3xt69e02DBg3MFVdcYW688cbKCdZmypq7/Px806FDB9O7d2/z2Wefmb1795oNGzaY1NTUSo7c88qau7ffftsEBASYt99+2+zdu9esWrXK1K9f34wbN66SI/e8FStWmIkTJ5qlS5caSeaDDz447/w9e/aY4OBgk5SUZH744QfzwgsvGF9fX7Ny5crKCRgeQ11hHXWFddQV5UNtYR21hXXUFqCBhTLr2LGjGTNmjOt1UVGRiY6ONikpKSXO79evn7n++uvdxjp16mT+/ve/V2icdlTW3P1RYWGhqVWrlnnjjTcqKkTbspK7wsJCc/nll5vXXnvNDB06tNoWmmXN3csvv2yaNGliCgoKKitE2ypr7saMGWOuvvpqt7GkpCTTpUuXCo3T7kpTZD788MPmL3/5i9tY//79TWJiYgVGBjugrrCOusI66oryobawjtriwqC2qJ74CCHKpKCgQFu2bFGPHj1cYz4+PurRo4c2bdpU4jqbNm1ymy9JiYmJ55zvrazk7o9OnDih06dPKyIioqLCtCWruXviiSdUr149jRgxojLCtCUrufvoo4/UuXNnjRkzRpGRkWrVqpWmT5+uoqKiygrbFqzk7vLLL9eWLVtcHwXYs2ePVqxYod69e1dKzFUZfyuqJ+oK66grrKOuKB9qC+uoLSoXfy+8j5+nA0DVcuzYMRUVFSkyMtJtPDIyUjt37ixxnbS0tBLnp6WlVVicdmQld3/0yCOPKDo6utiJ2NtZyd1nn32m119/XampqZUQoX1Zyd2ePXv0ySefaNCgQVqxYoV2796te+65R6dPn1ZycnJlhG0LVnI3cOBAHTt2TF27dpUxRoWFhRo9erQeffTRygi5SjvX34qcnBydPHlSQUFBHooMFYm6wjrqCuuoK8qH2sI6aovKRW3hfbgCC6giZsyYoffee08ffPCBAgMDPR2OreXm5mrw4MGaN2+e6tSp4+lwqhyn06l69erp1VdfVfv27dW/f39NnDhRc+fO9XRotrdhwwZNnz5dL730krZu3aqlS5dq+fLlmjp1qqdDAwA31BWlR11RftQW1lFbAP+HK7BQJnXq1JGvr6/S09PdxtPT0xUVFVXiOlFRUWWa762s5O6MZ555RjNmzNDatWt16aWXVmSYtlTW3P3888/at2+f+vTp4xpzOp2SJD8/P+3atUvx8fEVG7RNWPm9q1+/vmrUqCFfX1/X2MUXX6y0tDQVFBTI39+/QmO2Cyu5e+yxxzR48GCNHDlSktS6dWvl5eXprrvu0sSJE+Xjw/tG53KuvxW1a9fmHVIvRl1hHXWFddQV5UNtYR21ReWitvA+/LajTPz9/dW+fXutW7fONeZ0OrVu3Tp17ty5xHU6d+7sNl+S1qxZc8753spK7iRp5syZmjp1qlauXKkOHTpURqi2U9bctWzZUtu3b1dqaqrr64YbblD37t2VmpqqmJiYygzfo6z83nXp0kW7d+92FeeS9OOPP6p+/frVpsCUrOXuxIkTxQrJM8W6MabigvUC/K2onqgrrKOusI66onyoLayjtqhc/L3wQp69hzyqovfee88EBASYhQsXmh9++MHcddddJiwszKSlpRljjBk8eLAZP368a/7nn39u/Pz8zDPPPGN27NhhkpOTq/XjrsuSuxkzZhh/f3+zePFic/jwYddXbm6upw7BY8qauz+qzk8LKmvuDhw4YGrVqmXGjh1rdu3aZT7++GNTr1498+STT3rqEDymrLlLTk42tWrVMu+++67Zs2ePWb16tYmPjzf9+vXz1CF4TG5urtm2bZvZtm2bkWRmzZpltm3bZvbv32+MMWb8+PFm8ODBrvlnHnX90EMPmR07dpg5c+bwqOtqgrrCOuoK66gryofawjpqC+uoLUADC5a88MILplGjRsbf39907NjRfPnll65l3bp1M0OHDnWb/+9//9s0b97c+Pv7m7/85S9m+fLllRyxfZQld7GxsUZSsa/k5OTKD9wGyvp7d7bqXmiWNXdffPGF6dSpkwkICDBNmjQx06ZNM4WFhZUctT2UJXenT582jz/+uImPjzeBgYEmJibG3HPPPSYzM7PyA/ew9evXl3j+OpOvoUOHmm7duhVbp02bNsbf3980adLELFiwoNLjhmdQV1hHXWEddUX5UFtYR21hDbUFHMZw3SEAAAAAAADsi3tgAQAAAAAAwNZoYAEAAAAAAMDWaGABAAAAAADA1mhgAQAAAAAAwNZoYAEAAAAAAMDWaGABAAAAAADA1mhgAQAAAAAAwNZoYAEAAABAFbJmzRq98sorng4DACqVn6cDAAAAAACUzqFDhzR69GjVq1dPDRo00N/+9jdPhwQAlcJhjDGeDgIAAAAA8OduuOEGjRo1Su3bt1fv3r21YcMGhYWFeTosAKhwfIQQACrI0aNHFRUVpenTp7vGvvjiC/n7+2vdunUejAwAAFRVH330kfr06aPo6GilpqbSvAJQbdDAAoAKUrduXc2fP1+PP/64vvnmG+Xm5mrw4MEaO3asrrnmGk+HBwAAqpB//etfuuiii5Sfn+823rdvXw0ePNhDUQFA5eEjhABQwcaMGaO1a9eqQ4cO2r59u77++msFBAR4OiwAAFCFnDx5UvXr19e8efN02223SZKOHDmiBg0aaPXq1erevbuHIwSAikUDCwAq2MmTJ9WqVSv98ssv2rJli1q3bu3pkAAAQBV0zz33aN++fVqxYoUkadasWZozZ452794th8Ph4egAoGLxEUIAqGA///yzDh06JKfTqX379nk6HAAAUEWNGjVKq1ev1sGDByVJCxcu1LBhw2heAagWuAILACpQQUGBOnbsqDZt2qhFixaaPXu2tm/frnr16nk6NAAAUAW1b99et956q3r16qWOHTtq3759iomJ8XRYAFDhaGABQAV66KGHtHjxYn377beqWbOmunXrptDQUH388ceeDg0AAFRBL7/8smbPnq2ePXvqp59+0qpVqzwdEgBUChpYAFBBNmzYoJ49e2r9+vXq2rWrJGnfvn1KSEjQjBkzdPfdd3s4QgAAUNVkZ2crOjpahYWF+te//qX+/ft7OiQAqBQ0sAAAAACgChkyZIiWL1+uQ4cO8WRjANUGN3EHAAAAgCrk4MGDGjRoEM0rANUKV2ABAAAAQBWQmZmpDRs26NZbb9UPP/ygFi1aeDokAKg0fp4OAAAAAADw59q2bavMzEw99dRTNK8AVDv/D33PydFwyDN0AAAAAElFTkSuQmCC", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# ════════════════════════════════════════════════════════════════════════════════\n", + "# ESEMPIO D'USO (esegui questa cella in Jupyter)\n", + "# ════════════════════════════════════════════════════════════════════════════════\n", + "if __name__ == '__main__':\n", + " rng = np.random.default_rng(42)\n", + " x = np.linspace(0, 10, 60)\n", + " y = 2.5 * np.sin(1.3 * x) + rng.normal(0, 0.3, size=len(x))\n", + " ux = np.full_like(x, 0.05) # incertezza su x\n", + " uy = np.full_like(y, 0.30) # incertezza su y\n", + "\n", + " # Avvio — IMPORTANTE: assegna sempre a una variabile per tenere vivo\n", + " # il RectangleSelector (altrimenti il click destro non funziona più).\n", + " rs = fit_interattivo(x, y, ux_data=ux, uy_data=uy, scala_barre=1)\n", + "\n", + " # Nell'UI:\n", + " # f(x) = a * sin(b * x)\n", + " # p0 = 2.0, 1.0 ← opzionale ma consigliato per sin/exp\n", + " # → clicca \"Esegui fit\"" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}