{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# How to visualize an optimization problem\n", "\n", "Plotting the criterion function of an optimization problem can answer important questions\n", "- Is the function smooth?\n", "- Is the function flat in some directions?\n", "- Should the optimization problem be scaled?\n", "- Is a candidate optimum a global one?\n", "\n", "Below we show how to make a slice plot of the criterion function." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The simple sphere function (again)\n", "\n", "Let's look at the simple sphere function again. This time, we specify params as dictionary, but of course, any other params format (recall [pytrees](https://jax.readthedocs.io/en/latest/pytrees.html)) would work just as well. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import estimagic as em\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def sphere(params):\n", " x = np.array(list(params.values()))\n", " return x @ x" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "params = {\"alpha\": 0, \"beta\": 0, \"gamma\": 0, \"delta\": 0}\n", "lower_bounds = {name: -5 for name in params}\n", "upper_bounds = {name: i + 2 for i, name in enumerate(params)}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating a simple slice plot" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAgAElEQVR4XuzdB3gVxd7H8R8BAiShN+kdpRcB6b1IURQVG4ooqNgV9AqCylWxvFzBiiIgKiAoKAg2lF6kWOgtFOm9BhISSt5nFhMpITknu2dzynef5z5cye6Uzywz+e/uzGRKTExMFAcCCCCAAAIIIIAAAggg4IJAJgIQF5TJAgEEEEAAAQQQQAABBCwBAhBuBAQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAABBBBAAAECEO4BBBBAAAEEEEAAAQQQcE2AAMQ1ajJCAAEEEEAAAQQQQAABAhDuAQQQQAABBBBAAAEEEHBNgADENWoyQgABBBBAAAEEEEAAAQIQ7gEEEEAAAQQQQAABBBBwTYAAxDVqMkIAAQQQQAAB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QAABBBBwQIAAxAFEkkAAAQQQQAABBBBAAAHPBAhAPHPiLAQQQAABBBBAAAEEEHBAgADEAUSSQAABBBBAAAEEEEAAAc8ECEA8c+IsBBBAAAEEEEAAAQQQcECAAMQBRJJAAAEEEEAAAQQQQAABzwQIQDxz4iwEEEAAAQQQQAABBBBwQIAAxAFEkkAAAQQQQAABBBBAAAHPBAhAPHPiLAQQQAABBBBAAAEEEHBAgADEAUSSQAABBBBAAAEEEEAAAc8ECEA8c+IsBBBAAAEEEEAAAQQQcECAAMQBRJJAAAEEEEAAAQQQQAABzwQIQDxz4iwEEEAAAQQQQAABBBBwQIAAxAFEkkAAAQQQQAABBBBAAAHPBAhAPHPiLAQQQAABBBBAAAEEEHBAgADEAUSSQAABBBBAAAEEEEAAAc8ECEA8c+IsBBBAAAEEEEAAAQQQcECAAMQBRJJAAAEEEEAAAQQQQAABzwQIQDxz4iwEEEAAAQQQQAABBBBwQIAAxAFEkkAAAQQQQAABBBBAAAHPBAhAPHPiLAQQQAABBBBAAAEEEHBAgADEAUSSQAABBBBAAAEEEEAAAc8ECEA8c+IsBBBAAAEEEEAAAQQQcECAAMQBRJJAAAEEEEAAAQQQQAABzwQIQDxz4iwEEEAAAQQQQAABBBBwQIAAxAFEkkAAAQQQQAABBBBAAAHPBAhAPHPiLAQQQAABBBBAAAEEEHBAgADEAUSSQAABBBBAAAEEEEAAAc8ECEA8c+IsBBBAAAEEEEAAAQQQcECAAMQBRJJAAAEEEEAAAQQQQAABzwQIQDxz4iwEEEAAAQQQQAABBBBwQIAAxAFEkkAAAQQQQAABBBBAAAHPBAhAPHPiLAQQQAABBBBAAAEEEHBAgADEAUSSQAABBBBAAAEEEEAAAc8ECEA8c+IsBBBAAAEEEEAAAQQQcECAAMQBRJJAAAEEEEAAAQQQQAABzwQIQDxz4iwEEEAAAQQQQAABBBBwQIAAxAFEkkAAAQQQQAABBBBAAAHPBAhAPHPiLAQQQAABBBBAAAEEEHBAgADEAUSSQAABBBBAAAEEEEAAAc8ECEA8c+IsBBBAAAEEEEAAAQQQcECAAMQBRJJAAAEEEEAAAQQQQAABzwQIQDxz4iwEEEAAAQQQQAABBBBwQIAAxAFEkkAAAQQQQAABBBBAAAHPBAhAPHPiLAQQQAAB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qlULvXv3pgBxgzHKJpIACbyagNzvEBPaXbt2xZi8nj59Ws3p0SZYslkjd/XkuVel2AJEhMYHH3ygzLiik5QlZlzR5q5igtugQQOegHBQkoCVBChArATGx81NYOXKlZA/48aNg4eHB1KlShVzsVAWMll05MKi7HiJza/c45AjfS0FyLx581QdFixYoOycp06dit9//12d1NAEy9zjk60jARJ4PQFxuStmtPJHnH48ePBAecQSQRItQESkiMdA2UySu35yH082gN5++201n8YWIGLiWrVqVTXXyimKrAn9+/dH0qRJlXfDmzdvQk7N9+3bh1WrVvEEhIOTBKwgQAFiBSw+an4CspDIjpecakiSBUe8qsh9DblELh/78+fPVx6wxCxLTLLk6F1LASLvlvsechIjC+H777+v6iPuIClAzD9G2UISIIHXEzh16pQykxU3vGIKK2Ljl19+USIi+pK43BMRN7xyFy9lypQoV66c8ooVV4DIW2bMmKHMXcXUSjan5A6IzL/yHjHBEnNYKUvMumiCxZFJApYToACxnBWfNDkBcWfbvXt3tVgVKVJEtVbufXTr1g29evV6wWuKyVGweSRAAiRAAiRAAiTgNAIUIE5Dy4KNRmDu3Lk4duyYulwYO8kOmphZ8XTBaD3K+pIACZAACZAACeiRAAWIHnuFdXIJAbENluN0ceWYK1cuiD2xmFfJPY/ly5cjd+7cLqkXX0oCJEACJEACJEACZiJAAWKm3mRb7CYgpyBiKyyuGyWqrZhiyQmIeE1hIgESIAESIAESIAESsJ8ABYj9DFkCCZAACZAACZAACZAACZCAhQQoQCwExcdIgARIgARIgARIgARIgATsJ0ABYj9DlkACJEACJEACJEACJEACJGAhAQoQC0HxMRIgARIgARIgARIgARIgAfsJUIDYz5AlkAAJkAAJkAAJkAAJkAAJWEiAAsRCUHyMBEiABEiABEiABEiABEjAfgIUIPYzZAkkQAIkQAIkQAIkQAIkQAIWEqAAsRAUHyMBEiABEiABEiABEiABErCfAAWI/QxZAgmQAAmQAAmQAAmQAAmQgIUEKEAsBMXHSIAESIAESIAESIAESIAE7CdAAWI/Q5ZAAiRAAiRAAiRAAiRAAiRgIQEKEAtB8TESIAESIAESIAESIAESIAH7CVCA2M+QJZAACZAACZAACZAACZAACVhIgALEQlB8jARIgARIgARIgARIgARIwH4CFCD2M2QJJEACJEACJEACJEACJEACFhKgALEQFB8jARIgARIgARIgARIgARKwnwAFiP0MWQIJkAAJkAAJkAAJkAAJkICFBChALATFx0iABEiABEiABEiABEiABOwnQAFiP0OWQAIkQAIkQAIkQAIkQAIkYCEBChALQfExEiABEiABEiABEiABEiAB+wlQgNjPkCWQAAmQAAmQAAmQAAmQAAlYSIACxEJQfIwESIAESIAESIAESIAESMB+AhQg9jNkCSRAAiRAAiRAAiRAAiRAAhYSoACxEBQfIwESIAESIAESIAESIAESsJ8ABYj9DFkCCZAACZAACZAACZAACZCAhQQoQCwExcdIgARIgARIgARIgARIgATsJ0ABYj9DlkACJEACJEACJEACJEACJGAhgf8DKjGkyK7DXqoAAAAASUVORK5CYII=" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = em.slice_plot(\n", " func=sphere,\n", " params=params,\n", " lower_bounds=lower_bounds,\n", " upper_bounds=upper_bounds,\n", ")\n", "fig.show(renderer=\"png\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interpreting the plot\n", "\n", "The plot gives us the following insights:\n", " \n", "- There is no sign of local optima. \n", "- There is no sign of noise or non-differentiablities (careful, grid might not be fine enough).\n", "- The problem seems to be convex.\n", "\n", "-> We would expect almost any derivative based optimizer to work well here (which we know to be correct in that case)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using advanced options" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAEsCAYAAAA7Ldc6AAAgAElEQVR4Xu3dB3QVxRrA8Y+SACH03kEk9F6kd1CKoqCggKAUy1PfewIWigUL2LEXlKLShQcINgTpSJXeeye0UJJAAkne+QYTkxCS7C2bW/57jgchO7Ozv9nM3u9OyxQXFxcnHAgggAACCCCAAAIIIICADQKZCEBsUOYSCCCAAAIIIIAAAgggYAQIQHgQEEAAAQQQQAABBBBAwDYBAhDbqLkQAggggAACCCCAAAIIEIDwDCCAAAIIIIAAAggggIBtAgQgtlFzIQQQQAABBBBAAAEEECAA4RlAAAEEEEAAAQQQQAAB2wQIQGyj5kIIIIAAAggggAACCCBAAMIzgAACCCCAAAIIIIAAArYJEIDYRs2FEEAAAQQQQAABBBBAgACEZwABBBBAAAEEEEAAAQRsEyAAsY2aCyGAAAIIIIAAAggggAABCM8AAggggAACCCCAAAII2CZAAGIbNRdCAAEEEEAAAQQQQAABAhCeAQQQQAABBBBAAAEEELBNgADENmouhAACCCCAAAIIIIAAAgQgPAMIIIAAAggggAACCCBgmwABiG3UXAgBBBBAAAEEEEAAAQQIQHgGEEAAAQQQQAABBBBAwDYBAhDbqLkQAggggAACCCCAAAIIEIDwDCCAAAIIIIAAAggggIBtAgQgtlFzIQQQQAABBBBAAAEEECAA4RlAAAEEEEAAAQQQQAAB2wQIQGyj5kIIIIAAAggggAACCCBAAMIzgAACCCCAAAIIIIAAArYJEIDYRs2FEEAAAQQQQAABBBBAgACEZwABBBBAAAEEEEAAAQRsEyAAsY2aCyGAAAIIIIAAAggggAABCM8AAggggAACCCCAAAII2CZAAGIbNRdCAAEEEEAAAQQQQAABAhCeAQQQQAABBBBAAAEEELBNgADENmouhAACCCCAAAIIIIAAAgQgPAMIIIAAAggggAACCCBgmwABiG3UXAgBBBBAAAEEEEAAAQQIQHgGEEAAAQQQQAABBBBAwDYBAhDbqLkQAggggAACCCCAAAIIEIDwDCCAAAIIIIAAAggggIBtAgQgtlFzIQQQQAABBBBAAAEEEPC6AGTKlCnyyiuvyLx586RSpUoeWYNfffWVLFmyRKZOnWpb+Tp06CD79u0z18ucObPkzZtXqlevLv369ZPGjRsnlOP++++XypUry+uvv25b2bgQAggggAACCCCAAALxAl4XgHTp0kWOHj0q99xzj7z66qseWZO//vqr/PXXXzJs2DDbyqcBiAZkTz75pFy9elWOHTsmkydPlnXr1okGRK1atTJlcSYA6d69uzGvUqWKbffFhRBAAAEEEEAAAQR8S8CrApCtW7dKt27d5OWXX5b3339fVq1aJTly5PCtGnHwbjQAueOOO5IEZdHR0dK5c2cpXry4TJw40akA5OTJk9KiRQuZM2cOAYiDdUQyBBBAAAEEEEAAARGvCkC0R+Hw4cMyfvx4adiwoYwYMcIEJIkP/Ya/U6dOcv78eZk9e7aEhYVJ6dKl5d///rfUrFlT3n77bVmxYoXExsZKjRo1TDBTvnz5hCzWrl0rEyZMkG3btpk8ihUrJg8//LD07dvXnHP9+nUzhCmlQ3s+NK93331Xfv/9d1mwYIE5bdmyZTJkyBATBLz33numdyRLlixSrVo1efHFF5PkFxoaatJrcHXmzJkkl+nYsaN89NFHKV47pQBETxw8eLDs2LFDfvnll1sGIHqvY8aMMeXSoCUkJESeeOIJufPOO02auXPnGmvtWYk/br/99oQ8+UVCAAEEEEAAAQQQQCC9Al4TgISHh0uTJk3M/I+uXbuaD8S7d++WH3744aYARP+9d+/eMmDAAMmWLZv5QD99+nQTTDz99NPmg/WVK1dMUHD27Fn56aefEvLQoGXPnj3Stm1byZcvnwlivvzySxOUNG3a1JwXERGR5Jr/+c9/5PTp0zJz5kwJDAxMMQDp37+/CYReeukladCggURGRpr/1w//Gqxkz549IUAICgqSd955x8zj0HK/8cYbMnbsWGnUqFHCeckrOKUAJC4uTnTIWtGiRU16PZIPwdq+fbvo0Ko2bdpIr169TP4LFy405+t1H3jgAROUxJ83Y8YME6BoABVf5vQ+bJyHAAIIIIAAAggggIDXBCA6oVt7L/78808z7GrTpk3mw7EGD/qBOP7QD9ja66EfojNlymT++dy5c6bHRD+Maw9E/LF8+XIzSVvzLFiwYIpPg36Ib9asmfng/t///vemczQAGjlypBmapL0CeqTUA6IByJtvvmk+7McfOmlcA4dZs2aZ3pgTJ06YYU46d0ODlPijefPmJjh4/PHHb/nEJg5AtJdGe4rGjRsn//vf/+S7775LyC95AKJBmva0aC9H4kODD/23lStXmqBKe1HUT/+NOSA0HAgggAACCCCAAAKOCnhNAKIffvWDb+LVm3RIkvZK6DCqxAGIznn4+OOPk5hUqFDBTAp/9NFHE/49/kP1jz/+eMthVXqyBjpVq1a9adL7kSNH5O6775bnn3/eBAjxx60CkPnz50vFihUTzrt06ZLUrVvX9LBoD0R8QKK9DLVr1044r3Xr1iZw0WFRtzriV8HSFbB0eJkGX7Vq1TJDsHRuSGKfxKtg6UpZjz32mDzzzDNJst6wYYM8+OCDpodJ8yEAcfRXjHQIIIAAAggggAACiQW8IgDRyec67CqlI1euXGa+ROIhTCktM6sBSPIeiJQ+VGswosOuNBiIiooyS9pevHhRevTokSQAiYmJMR/Q8+TJI998802Sot0qANFyFipU6KYA5PPPP5d27dqZwEEDCR2qNXr0aJO39mC89tprpuchvoclJYfEq2Bpj0XhwoVFh3IlPxL3gOjQKg2sNP+HHnooyanag6LD0HQolq6gRQBCw4EAAggggAACCCDgCgGvCECGDx8uGoRoAJH4uHz5sunReOutt+S+++4zP7rVMrPpCUB06JMOPdIP5DpPJHfu3CZPXfK3Tp06SQKQTz75RCZNmmSGgCUfvuVoAKLX0l4VDXZ0jogGVVpunUCfeEjWrQKQ5KtgpXRech/tadFhaPSAuOLXiTwQQAABBBBAAAEE0hLw+AAkfvL5Cy+8ID179rzpfgYOHCg6lEknazsbgOgeGjopPfHEdr2+buSnPTDx+47o/BPt/dCeCx0elfxwJgD5+uuvZfHixWbFLO3JSO9xq1WwkqdPHoBocHPo0CHTwxI/Z0bTjBo1ysxN0fkxWo4DBw6YoEydNRjjQAABBBBAAAEEEEDAEQGPD0B08rl+GNYPwsHBwTfd46JFi8zcCF1mVocoOdMDovNGdDiVLkmrm/ppb8Rnn30m+/fvNx++NQDRngmd91G/fn2zilXiQ3ssdHUoZwKQ5557Tk6dOiW6spau4JU1a1YpUqSI5M+fP9X6dTQAOXjwoOk9atmypTzyyCNmgr9O4P/000/NSmPxc1t0uJauwqXBmJZRh6CVK1fOkWeONAgggAACCCCAAAJ+LODxAYhOPtc5HTrMKqVDPwjrh2cNEPQDszMBiO5zocOvNKjRno/bbrtNnn32WbObuC7bqwGIfjjXnpKUDl11SlesciYA0d6XlHZQ13kYugfIrTZedDQA0fvQ+S66saPugaIGOuxLe5Z0P5XEx9KlS00wqDvR69yR5Esg+/HvEbeOAAIIIIAAAgggkE4Bjw9A0nkfPnGa9rzoniAaaOiGhjoBXnsedu7caXonBg0aZDZF5EAAAQQQQAABBBBAwFsFCEA8qOa0l0PnuWjvQ/JDe3l0OeCnnnrKg0pMURBAAAEEEEAAAQQQsCZAAGLNy61n67wPnW+iK3FpD8i1a9fMPBTdSPCPP/4QXSJYl+jlQAABBBBAAAEEEEDAWwUIQDyo5nTeiU6E13kmoaGhpmRFixY1GwnqZoFly5b1oNJSFAQQQAABBBBAAAEErAsQgFg3IwUCCCCAAAIIIIAAAgg4KEAA4iAcyRBAAAEEEEAAAQQQQMC6AAGIdTNSIIAAAggggAACCCCAgIMCBCAOwpEMAQQQQAABBBBAAAEErAsQgFg3IwUCCCCAAAIIIIAAAgg4KEAA4iAcyRBAAAEEEEAAAQQQQMC6AAGIdTNSIIAAAggggAACCCCAgIMCBCAOwpEMAQQQQAABBBBAAAEErAsQgFg3IwUCCCCAAAIIIIAAAgg4KEAA4iAcyRBAAAEEEEAAAQQQQMC6AAGIdTNSIIAAAggggAACCCCAgIMCBCAOwpEMAQQQQAABBBBAAAEErAsQgFg3IwUCCCCAAAIIIIAAAgg4KEAA4iAcyRBAAAEEEEAAAQQQQMC6AAGIdTNSIIAAAggggAACCCCAgIMCBCAOwpEMAQQQQAABBBBAAAEErAsQgFg3IwUCCCCAAAIIIIAAAgg4KEAA4iAcyRBAAAEEEEAAAQQQQMC6AAGIdTNSIIAAAggggAACCCCAgIMCBCAOwpEMAQQQQAABBBBAAAEErAsQgFg3IwUCCCCAAAIIIIAAAgg4KEAA4iAcyRBAAAEEEEAAAQQQQMC6AAGIdTNSIIAAAggggAACCCCAgIMCBCAOwpEMAQQQQAABBBBAAAEErAsQgFg3IwUCCCCAAAIIIIAAAgg4KEAA4iAcyRBAAAEEEEAAAQQQQMC6AAGIdTNSIIAAAggggAACCCCAgIMCBCAOwpEMAQQQQAABBBBAAAEErAsQgFg3IwUCCCCAAAIIIIAAAgg4KEAA4iAcyRBAAAEEEEAAAQQQQMC6AAGIdTNSIIAAAggggAACCCCAgIMCBCAOwpEMAQQQQAABBBBAAAEErAsQgFg3IwUCCCCAAAIIIIAAAgg4KEAA4iAcyRBAAAEEEEAAAQQQQMC6AAGIdTNSIIAAAggggAACCCCAgIMCBCAOwpEMAQQQQAABBBBAAAEErAsQgFg3IwUCCCCAAAIIIIAAAgg4KEAA4iAcyRBAAAEEEEAAAQQQQMC6AAGIdTNSIIAAAggggAACCCCAgIMCBCAOwpEMAQQQQAABBBBAAAEErAsQgFg3IwUCCCCAAAIIIIAAAgg4KEAA4iAcyRBAAAEEEEAAAQQQQMC6AAGIdTNSIIAAAggggAACCCCAgIMCBCAOwpEMAQQQQAABBBBAAAEErAsQgFg3IwUCCCCAAAIIIIAAAgg4KEAA4iAcyRBAAAEEEEAAAQQQQMC6AAGIdbOEFBUqVJC9e/c6kQNJEUAAAQTcIUD77A5V8kQAAQRcI0AA4oSjvuA2bN4uuYMCnciFpAgggAACrhbQ9vmvLdslVw7aZ1fbkh8CCCDgrAABiBOC+oKr1neU9G9fSzo3qOBETiRFAAEEEHClQHz7/HTnetKmVjlXZk1eCCCAAAJOChCAOAGoL7gKPV83Obz4QGNpXq20E7mRFAEEEEDAVQLx7XNAlszy/sB2cnuxfK7KmnwQQAABBJwUIABxAlBfcN/PWyKvTV0umTNnkjcfbik1byviRI4kRQABBBBwhYC2z8+8P0V+3bBf8ufKIV881YHhWK6AJQ8EEEDABQIEIE4gxk9ynLd2r3zx0wbJFpBF3uvfVsrzTZsTqiRFAAEEnBfQ9nnnrt3y/PhFsuvYOalWppC89Uhr82URBwIIIIBAxgoQgDjhn3iVlQm/b5YfVuw037C9P6CdlCyYy4mcSYoAAggg4IxAfPt8ISJKnvzsZ7kYESX33BEiT3Ss40y2pEUAAQQQcIEAAYgTiMmXeXx31p+yeMth093/0ePtpUCuHE7kTlIEEEAAAUcFErfP2gPy3LiFEhMbJ891ayStapRxNFvSIYAAAgi4QIAAxAnE5AFIbGycvDJ5mWzYd1JKFMglYx5rL8HZA5y4AkkRQAABBBwRSN4+/7Run3w2f73opPSPHr9TyhbJ40i2pEEAAQQQcIEAAYgTiCltdBV9PUYGf71Q9p8Kk5AS+eWdfm0kMGsWJ65CUgQQQAABqwIptc9j5qyR3zcelEJ5guTTJ+9iUrpVVM5HAAEEXCRAAOIE5K122r0UGS3Pjl0gJ8PCpe7txeTVXs0lCxMfnZAmKQIIIGBNIKX2+XpMrDz79e+y/2TYjUnpj7aWzJmYlG5NlrMRQAAB5wUIQJwwvFUAolmevhgp//3qN9EJkE2rlpKhDzQR3nNOYJMUAQQQsCBwq/b53OUr8vQXv5pJ6fc1qigD76ptIVdORQABBBBwhYBtAUhUVJRs2rRJTp06JV26dDFlj46ONn8GBga64l5szyO1AEQLc+j0RRn89e9yJfq62Sn9X53q2l5GLogAAgj4o0Bq7bNOSh/yzUKJjWNSuj8+G9wzAghkvIAtAci+fftkwIABEhkZKZcuXZJdu3aZO582bZosX75cPvvss4yXcKAEaQUgmuX2I2fkhQl/iE5Q79umhvRoXsWBK5EEAQQQQMCKQFrtc+L9m8YMbM+kdCu4nIsAAgg4KWBLANK7d29p0aKFDBw4UKpWrSrbt283xT5y5Ig88MADsmbNGidvI2OSp/WCiy/V8u1HZfSMleav/+nSQO6sc1vGFJirIoAAAn4ikJ72+Z2Zf8qSrYeZlO4nzwS3iQACniNgSwBSo0YNWb16tQQFBSUJQM6fPy9NmzaVHTt2eI6IhZKk5wUXn138t206D+SlB5tJw0olLFyJUxFAAAEErAikp32+dj1WBn3DpHQrrpyLAAIIuELAlgCkefPm8uWXX0qVKlWSBCBz5swx//7rr7+64l5szyM9L7jEhRq/YLPMXLlTsmbJLKMfaSVVSxeyvcxcEAEEEPAHgfS2zzop/cnPfpHwK9HSrUkl6d++lj/wcI8IIIBAhgrYEoBMmTJFxo8fL88884wMHTpUPv/8c1m/fr18++238sYbbyRMSs9QCQcunt4XXOKsR81YKSu2H5UcgVnl/YHtpGxhNsNygJ4kCCCAQKoCVtrnrYfPyFCdqxcXJ8N7NJUmVUqiiwACCCDgRgFbAhAt/9KlS00QohPSY2Ji5Pbbb5fHH39cmjVr5sbbc2/WVl5w8SWJiY2TEd8tls0HT0venNnk/QHtpFj+YPcWlNwRQAABPxOw2j7/uGaPfPnzX5ItIIswKd3PHhZuFwEEbBewLQCx/c5suKDVF1x8ka5GX5fnxi0yu6XrjrwfPtZe8gVnt6HEXAIBBBDwDwFH2ufEk9I//1cHyZk9wD+wuEsEEEDAZgFbApDDhw+neltlypSx+bZdczlHXnDxVza7pX+9QE6eD5cqpQvKa71bSlC2rK4pGLkggAACfi7gSPuceFJ6rduKyBt9WrJTup8/R9w+Agi4R8CWAERfBLc6SpQoIUuWLHHP3SXK9dq1a/LFF1/IzJkzzRCwkJAQGTVqlBQrVsycNWvWLPnwww/N5ojt2rWTkSNHSpYsWVItlyMvuMQZngqLkH9/9ZuZ/Fi5VEEZ1beV6f7nQAABBBBwTsDR9jnxpPTuzarII21rOFcQUiOAAAII3CRgSwCS/Kq6K7ruAfLxxx+b/UHuv/9+t1fNhQsXRCfD9+nTR4KDg+WTTz6RvXv3mjIcPHjQ/LtujFi4cGEZPHiw1KpVS/r16+fWAEQzPxh6wQzHioy6JtXKFJI3+7aSgCyZ3e7BBRBAAAFfFnA0AFETJqX78pPBvSGAgCcIZEgAEn/jGoh06dIlQ5bh1b1Hnn/+eZk/f76MHTvW7NA+ZMgQU7SdO3ea1bp0meDUDmdecInz3XvivNktXeeG1KtQTF7p2VyyZM7kCc8HZUAAAQS8UsDZ9nnu6j3y1S9/ScHcQWYoVulCub3SgUIjgAACniiQoQGIgmgPiK6QZfcxefJksyO7DsMaNmyY1KtXT7p27WqKoYGR/n3r1q0JxQoNDb2piLqJovaiuOLYdeycvDBhkegY5EaVSsjwB5sy9tgVsOSBAAI+L+Cu9vndWX/K4i2HpWDuHPLBwPbmTw4EEEAAAecFbAlArl+/flNJr169KnPnzpUZM2aYP+08Tp06JQ8//LBMnDhRdA7KoEGDpG3bttKxY8eEYui3Z3v27JFMunW5iPTq1eumIq5du9ZlAYhmvnF/qLwyealcj4mV1jXLyuD7Gsrfl7eTh2shgAACXiXgrvZZ2+Lnxy8S/YKoZMFcZsXCoGysjOVVDweFRQABjxSwJQC51ST04sWLywcffCB169a1DScsLEz69u0rzz33XMIeJMOHD5eaNWtK9+7dTTnCw8OlYcOGsm3btlTL5WwXf0qZ/7nruLw+dbn5UY/mVaRvGyZA2vZwcCEEEPAZAVe1z7pIyNNf/ianL0SYeXq6WEhW5un5zHPCjSCAQMYI2BKAHDt27Ka7y5kzp+TLl8/Wu758+bI8+uij0r9/f+nQoUPCtXWDRO3C13kfemzZskU0KJk3b57tAYhecPn2ozJ6xkpz7c4NKsi/OtkXoNlaIVwMAQQQcJOAqwIQLd7xc5flP1/9JpFR16V5tdLy4gON3VRqskUAAQT8Q8CWAMQTKCMiImTAgAFm6FXioVZaNg2QevbsKVOnTk1YBUuX6X366aczJACJD0LenrlKYmPj5K665eWZu+szHMsTHiTKgAACXiHgygBEb3jrodMy7NvFEhMbR++0VzwBFBIBBDxZwG0ByEsvvZTu+3799dfTfa6jJ+oSu1qmzJmTLnE7ffp0s+Surob19ttvi85N0YnxOjk9MDAwwwIQvfD6vSdl5JRl5oXXpmZZGcScEEern3QIIOBnAq4OQJRvwcYD8uGctUZyWPcm0rRqKT9T5XYRQAAB1wi4LQAZPXp0uksYP/Qp3Qk85ER3vOCS39qmA6HyyqSlci0m1nT9P9+tkWRmiV4PeQIoBgIIeKqAu9rnCb9vlh9W7DS3/UrPZnJHxRKeSkC5EEAAAY8VcFsA4rF37MKCuesFl7yI2w6fkRHfLZHo6zHSqHJJGd69CUGIC+uRrBBAwPcE3Nk+6/DYpVuPSEDWzPJmn1ZmcjoHAggggED6BWwLQHQpXl3+VvfYSH6UL18+/SX2oDPd+YJLfpu6DOSI7xabSZAahGj3P5sVetDDQFEQQMCjBNzZPuuwWO2Z/mv/KckRmFXe7d9Wbiua16Pun8IggAACnixgSwCyaNEis8u4Bh/Xrl0ze2vExcWZORaVK1eWmTNnerLRLcvmzhdcShc9GHrBrEkfcfWa1A8pLi892JTlIL3yyaHQCCDgbgF3t8/aIz104mLZefSs5MoRKB8MbCclCuRy922RPwIIIOATArYEIO3bt5cnn3xS7r33Xrnnnnvkxx9/lMOHD4tOPu/du7e0atXKKzHd/YJLCeXImUvy3LiFcvlKtNQuX0Re7dnCDAPgQAABBBD4R8CO9ll7pAd9vUC0Xc6fK4d89Hh7KZCL3dJ5DhFAAIG0BGwJQKpWrSqbNm2SgIAA6dy5s1lxSo+jR4+afTkWLlyYVjk98ud2vOBSunFdk37IuIVyMSJKqpctLG883JIgxCOfEAqFAAIZJWBX+3whIsoEIafCIkwPyPsD2knuoNRXUMwoE66LAAIIeIqALQFI69atZeLEiVK6dGl54IEH5NNPP5UiRYqYJW91F/Tt27d7ioelctj1gkupUPqye2HCIjlzMdIEIa/1biHZArJYKj8nI4AAAr4qYGf7rO3ws1//LucvX5FyRfKa4Vi0x776ZHFfCCDgCgFbApD33ntPqlevLnfeead89dVXsnTpUunWrZusWLFCjh8/LjNmzHDFvdieh50vuJRu7tzlKzLkm4USeiFCKpcqKG/0aWkmRHIggAAC/i5gd/usPdP/HbvAzNEzPdN9WkpAFobH+vtzyP0jgEDKArYEIIkvHR0dLRqQrF69WkqWLCkvvPCClClTxivrx+4XXEpI2v0/5Jvf5cT5cKlQPL+MfqSVBGUL8EpPCo0AAgi4SiAj2uc9x8+bnumoazHSIKS4vPxQM5ZMd1WFkg8CCPiUgFsDkIMHD0q5cuV8CizxzWTECy4lzEuR0fLixEVyKPSiWQrynX5tCEJ89qnjxhBAID0CGdU+bzl4WkZ8v0Sux8RKi+ql5YX7G6enuJyDAAII+JWAWwOQkJAQM/SqS5cuZvJ5/vz5fQo3o15wKSFGRl2TFyf8IftOhpkg5K1HWktwDiZC+tQDx80ggEC6BTKyfV6z+4S8NnWZxMWJdGkYIo93qJPucnMiAggg4A8Cbg1AdONBXfFKl93ds2ePNG3a1AQjbdu2lRw5vH+pwox8waX0cF6Nvi7Dvl0sumlh6UK55e1+bSRPUDZ/eI65RwQQQCCJQEa3z79vPChj5qwxZerbpob0aF6FGkIAAQQQ+FvArQFIYuV9+/bJ3LlzZd68eRIWFia6N4gGI40bN5bMmb1zol5Gv+BSeop17PGI75bI9iNnzJKQOhwrX3B2HngEEEDArwQ8oX2es3qPjP3lL+P+7L13SLvavjsk2a8eLm4WAQScFrAtAIkvqe6AvnnzZvnjjz9k9uzZEhMTI6tWrXL6RjIiA094wd3qvl+dvEzW7jkh2QOzyis9m0vNcoUzgohrIoAAAhki4Cnt84TfN8sPK3ZKpkwiQ7s3kaZVSmWIBxdFAAEEPEnA9gBk586dZljW4sWLJTQ0VO666y558803Pckk3WXxlBfcrQr85vQVsnLHMfPj4T2aSpMqJdN9b5yIAAIIeLOAJ7XPH8xeIws3HTQrYr3Wq4XUub2oN9NSdgQQQMBpAVsCkGPHjpmgQ4dgHTlyRFq2bGmGX+mfgYHeO1Hak15wKT0JOgHyk3nr5NcN+82PB913h7StxRAAp39ryAABBDxewJPa59i4OBk9Y6X5Qigga2Z5t19bCSnhW4uyePwDQQERQMCjBNwagEyePNnM+di4caPUq1fPBB3a45E7d26PQnC0MJ70gkvtHiYt3iZTlmwzp/RtW0N6NGMypKN1TjoEEPAOAU9rn2Ni48wiIVsPnZac2QPkvf5tpUzhPN6BSXBdiG0AACAASURBVCkRQAABFwu4NQDp1KmT3HPPPSbwKFrU97qcPe0Fl9qzob0gH/+4zpxyd4MK8kTHumZMMgcCCCDgiwKe2D7rIiHPj18ke0+clzw5s8kHA9tJsXzBvsjPPSGAAAKpCrg1APF1e098waVmvmzbEXnrhxsT/js3qCD/6lTX16uI+0MAAT8V8NT2OfxKtAlCDp2+KOWL5pPXHm7BSoV++oxy2wj4swABiBO176kvuNRuafPB0zJyyjLRPUOqlCoor/ZqzoaFTjwDJEUAAc8U8OT2OSz8qgz6+ncJvRAhxfMHy7v92xKEeOZjRKkQQMBNAgQgTsB68gsutds6cuaSDP92sZy7fEWK5ssprz/c0uwZwoEAAgj4ioCnt89nL0XKkHGL5PSFCCmWP1g+GNDODMviQAABBPxBgADEiVr29Bdcarem38C9Mmmp7DsZJkHZAuSlh5qxV4gTzwJJEUDAswS8oX1OHISULJjLrI5FEOJZzxGlQQAB9wjYFoBERUXJ0aNHJTw8/KY7qVWrlnvuzs25esMLLjWC6Osx8s7MP2XVzmOSOVMmefbeBtKGZXrd/NSQPQII2CHgLe0zQYgdTwPXQAABTxOwJQBZsmSJDB48WKKjoyV79uw3Gaxbd2N1Jm87vOUFl5brpD+2ypSl281pXRtXlP7ta7NCVlpo/BwBBDxawJva5+RByPsD2kmuHN67R5ZHPxgUDgEEPELAlgCkQ4cO8uyzz0r79u094qZdVQhvesGldc9Ltx6R92evlusxsdIgpLgM7d5EsgVkSSsZP0cAAQQ8UsDb2uczFyPN6lg6MV0XCBnWo4nkz5XDI20pFAIIIOCsgC0BiO54rr0gvnZ42wsuLf9dx87Jq5OXyqXIaClbJI+81rulFMzNCzAtN36OAAKeJ+CN7bP2hLw44Q85cT5cCuTKIaMeaSWlCvrGxr2e94RQIgQQyEgBWwIQ3ZBw+vTpEhzsWxsueeMLLq2H7fTFSHn5+yWiK2XlzZlNRvZuIRWK508rGT9HAAEEPErAW9vny1eiZejEP+TAqQtmifQ3+7SkDfaoJ4vCIICAKwRsCUAWLFggkyZNkieffFJKly4tgYFJx7YWKlTIFfdiex7e+oJLC+pK9HV5c/oK+WvfKQnImlme79ZYmlQpmVYyfo4AAgh4jIA3t8+6Y7ru17TpQKhpg1/t2UJqly/iMbYUBAEEEHBWwJYApEaNGnLlypVblnXv3r3O3keGpPfmF1xaYLFxcfLVz3/JvLU36uaRtjWke7MqaSXj5wgggIBHCHh7+xwbGydvzVwlK7YfNasUDu7aUFrVKOMRthQCAQQQcFbAlgAkIiIi1XLmzJnT2fvIkPTe/oJLD9qvG/bLJ/PWSVycSJuaZeU/XRpI1iyZ05OUcxBAAIEME/CV9vmb3zbJ/1btMo6PtqspDzStnGGmXBgBBBBwlYAtAUjiwp4+fVri4uKkSBHv7072lRdcWg/Thn0n5c3pK+Vq9HWpUrqgvNqzuRmbzIEAAgh4qoAvtc8/rdsnn81fb6g71b9dnupcz1PZKRcCCCCQLgFbApDY2Fj5+uuvZezYsXLp0iVTMJ2QPmDAAHniiSckSxbvXO7Vl15waT0tOin9pe+XiC4VWTRfTnn94ZZSokCutJLxcwQQQCBDBHytfV6+/ai8M3OVxMTGSdOqpeT5bo3ojc6QJ4uLIoCAKwRsCUDGjBkjixYtkhEjRki1atVMubdt2yZvvPGGtGrVymxS6I2Hr73g0qoDXZ5Xl+nV5XqDsgXI2/1aS/mi+dJKxs8RQAAB2wV8sX3eeui0vDxpqegk9eplCslrD7dkvybbnywuiAACrhCwJQBp1KiRTJw4USpWrJikzLt375ZHH31UVq1a5Yp7sT0PX3zBpQfx3Vl/yuIth82pvVtXl54tqqYnGecggAACtgn4avu8/1SYDJ24WMKvRMttRfPK6Edas2u6bU8VF0IAAVcJ2BKAVKlSRdauXXvTPiCXL18WDU60N8QbD199waWnLmau3CnjF2w2p9a6rYi88EBjyROULT1JOQcBBBBwu4Avt88nz4ebvUJ036Zi+YJl9COtpHBe71zMxe0PAhdAAAGPFLAlAOnWrZt0795devTokQRh8uTJMm/ePJk2bZpH4qRVKF9+waV17/rzzQdCZdSMlaIbZ+mmhcMfbCpVS3vnni7puV/OQQAB7xHw9fb5YkSUvDBhkdk0Vr/8eevR1lKmcB7vqSBKigACfi1gSwCybt06eeyxx6ROnTqivSG6CtaOHTtk06ZN8u2330r16tW9shJ8/QWXnko5eylSXpuyXPadDJNMmUQealFNerasatat50AAAQQySsAf2ufIqOsycvJS2Xr4jOQIzCqv9mou1csWzihyrosAAgikW8CWAERLc/bsWZk6dars379frl+/buaDaK+I3cvxLl68WAYNGiTa+6LBUPwxa9Ys+fDDDyU6OlratWsnI0eOTHN1Ln94waX3Sfp03nr5ef0+c3rjyiXlyU51pUCuHOlNznkIIICASwX8pX2+HhNreqJX7zouWTJnkmE9mkqjSiVcaklmCCCAgKsFbAtAXF1wR/IbN26c/PHHHxIZGSlvvvlmQgBy8OBB6dOnjxkKVrhwYbMqV61ataRfv36pXsZfXnDptV7w1wH5cO5ac3pw9gB59t47pFHlkulNznkIIICAywT8qX3WjWI//2m96H4hevy3SwNpX+c2l1mSEQIIIOBqAbcGIGfOnJE8efLIxYsXUy13oUL2zBtYvXq1GQbWt29feemllxICkPj9SYYMGWLKuXPnThk6dKjMmTOHAMTiE3f83GV5a8Yq0ZVa9Lirbnl5omMdCczqnXu9WLx9TkcAAQ8R8KcAJJ586tLt8v0fW81fB9xZS7o2ruQhtUExEEAAgaQCbg1AGjduLL179xbdByS1Y+/evbbWi06Gf+WVVxICkGHDhkm9evWka9euphxRUVHm71u33mjIb3X44wsuPRWlG2VNWrxVfli+U2Lj4qR4/mAZ8WAzKVuECZLp8eMcBBBwXsBf2+dFmw7K+7PXGMBmVUvJ4K4N+QLI+ceJHBBAwMUCbg1AwsPDJSgoSK5cuZJqsXPmtHf5wOQBiM4Jadu2rXTs2DGhnPry2rNnj2T6ezJ14p/Fn6SBk93Bk4vr363Z7Tl+XkZNX2GWisyaJbP0bVPDfCPH/HS3spM5An4nQPuctMp1w8LXpy6X8KvXzGaxr/dpaVYq5EAAAQQ8RcCtAUj8TY4ePdoMaUp+aGDy7rvvyssvv2yrR/IAZPjw4VKzZk0zKV4PDZwaNmyYZH8SnZye/KhatSoBSBo1dyX6unz1y1+i80P0qFamkAzt3kTyBWe3tc65GAII+K4A7fPNdRt6IUKGfbtYdM+Q/LlyyMhezaV8sXy++xBwZwgg4FUCtgQg9evXF12KN/mhQ510Tsb27dttRUsegIwfP15CQ0MTgqQtW7aIBiW6R0lqh7928TtSWWt2H5cPZq8xe4bkzB4gL9zfWOpVKOZIVqRBAAEE0hSgfRaJjLomb0xbIZsOhEpA1szy4gNNWCErzSeHExBAwA4BtwYg33//vbkH7eV47rnnktxPTEyMrFy5UsLCwmTmzJl23GvCNZIHIMeOHZOePXuaZYLjV8EKCQmRp59+mgDEhTVzISJK3v/fatmw76TJtUO98vJ4Byaou5CYrBBA4G8BApB/HoVvftso/1u12/zDgDtrS9fGFXlOEEAAgQwVcGsAMnv2bFmyZIksWLBAGjVqlORGM2fOLCVLlpSBAwdKiRL2rlmePADRgs2fP1/efvttuXr1qrRo0UJGjRolgYGBBCBueDx1qUh9IUZdi2GCuht8yRIBBEQIQJI+BQs3HTS90HpUKV3Q9IYUzM1eTfyuIGBVQOe1rttzQjrVv91qUs5PJODWACT+OiNGjJA33njD5+B5wTlepSfDwmXUtJVmuV6doP5I25pyX6OKTFB3nJSUCCCQSID2+ebH4cCpC/LGtOVyKizixl5N9zVkSBa/NQhYEPhr/yl5a8ZKs8DDzyMftJCSU5ML2BKArF271ux8rnuCJD6OHj1qdkivXbu2V9YMLzjnqk2X6526ZJtMW7bDLNerE9R1F19Wa3HOldQIIEAPyK2eAe15/nDuGlm69Yg5pXODCvKvTnV5ZBBAIA2BxPvslC6UW758+p+VU8GzLmBLANK8eXP5+OOPze7iiY8dO3aYeRa6O7k3HgQgrqk1Xa73rR9Wmm/lcuUIlOe6NWKCumtoyQUBvxWgfU696nVlwi9+3mCGwuqHKd2rqWTBXH77vHDjCNxKQBdzeGfmn7J2zwlzCvNXXfOs2BKAVK5c2Uw4z58/f5JS6w7pOjdEAxFvPHjBua7WrkZfl7G/bpRfN+w3mXZrUkl6NKsiwTlSn4fjuhKQEwII+JIA7XPatXn07CWzX8ixs5fNyc/cXd98uOJAAIEbAmHhV2XIuIVmOeugbAEy6L47pHHlkvC4QMCWAKR169ZmWds2bdokKfKyZcvMHiA6Ud0bD15wrq81/YZhzJw1cjEiSnIHBcrAu+pIm5plXX8hckQAAZ8WoH1OX/VGX4+Rsb9slJ/X7zMJmlYpJf/p0sAsl86BgD8LLNl6WD7+cZ3oF6SVShaQF7s3kcJ5gvyZxKX3bksAMnnyZBkzZowMGDBAdPM+3V1c9/4YN26cPPXUU9K3b1+X3pRdmfGCc490xNVr8uXPG2TR5kPmApVLFZRn772D4QHu4SZXBHxSgPbZWrXqnBD98kcDkkJ5gsyGsfqhiwMBfxPQ34HP52+QBRtvbKCsozH6tq3hbwxuv19bAhC9i0WLFsmECRPkwIEDEhsbK+XKlZM+ffpIhw4d3H6T7roALzh3yd7IV1eb+HDOGjl76Yr5e88WVaV36+ruvSi5I4CATwjQPluvRh1mMnLKMjly5pJkzpxJHm5VXR5oVlkyZ8pkPTNSIOCFAjocUX8Hjp+7bEZhDO3eVGqWK+yFd+L5RbYtAPF8Cusl5AVn3cxqisio6zJuwUb5Zf2NuSEFcwfJwLtqS7OqpaxmxfkIIOBHArTPjlf2Fz9tkHlr95oM9MPX8/c3lnzB2R3PkJQIeLiALsbw+8YD8vlPG3jubaor2wKQqKgo0WV3w8PDb7q15Ktj2XTvTl+GF5zThOnOYOvhM/Lx3LXmWwk9qpctbJaOLFM46dLO6c6QExFAwKcFaJ+dq95VO4+ZjQt1BSD9JnhIV1YndE6U1J4qsHF/qHw0d43oBoN69GlTXR5sXtVTi+sz5bIlANFJ5oMHD5bo6GjJnv3mb1HWrVvnlaC84OytttjYOJm/bq9M+mOr2QRIhwV0rH+79G1TgwmT9lYFV0PA4wVon52vojMXI+WNaStk74nzJrN7G1WUx+7yzn27nNcgB18TCL8SbVbfXLjpoLk1nfv0wv2NpUrpgr52qx55P7YEIDrP49lnn5X27dt7JIKjheIF56icc+kuX4mWbxdukV827JO4ODF7h/RpU8MsH8lYZedsSY2ArwjQPruuJr/5baP8b9Vuk2G5InllVN9WkidnNtddgJwQsFlg2bYjokMNL0ZGmSvf36Sy9GpVTbIFZLG5JP57OVsCkJYtW3rtUrupPRq84DL2F+fw6YvyyY/rZMfRs6YgupnWv+9pwLcXGVstXB0BjxCgfXZtNegS6e/9b7Xot8YBWTPLo+1qyb0NQ1x7EXJDwM0CuqjNJ/PWybq/NxW8rWhes8pm+WL53Hxlsk8uYEsA0qlTJ5k+fboEBwf7VA3wgvOM6tRvMr75bZOcvXRj/KZOUNeJ6jphnQMBBPxTgPbZ9fV+/vIVeXfWn7L54GmTuS6RPqRbQymWz7fe7a6XI0dPEJi/dq+MW7BJdMK5Hrq0ri6xy5ExArYEIAsWLJBJkybJk08+KaVLl5bAwKS7WxcqVChj7t7Jq/KCcxLQhcl13e4Zy3bIzJW7zDr22o36QNPKcn/TyhKYlS5VF1KTFQJeIUD77L5q+u2vA6LDsnTPJu0N6d2qunRrUokhsO4jJ2cnBHTxmvf/t1p2HTtncqlaupAM6noHgbMTpq5IaksAUqNGDbly5cZeDikde/feWO7P2w5ecJ5XY9oLorv6rthx1BSucN6cMuDOWmZ3Xw4EEPAfAdpn99b1hYgo+WjuWlmz+7i5UBXdMPa+O6REgVzuvTC5I2BBYOrS7fL9H1tNiuDsAdKvfS25q255CzlwqrsEbAlAIiIiUi1/zpw53XV/bs2XF5xbeZ3KfMeRs/Lxj2vNhlp6VC9TSJ6+p76UKpjbqXxJjAAC3iFA+2xPPekO6p//tF50cRA99MOdDm3JE8QkdXtqgKukJKC9HWNmr5GjZ298BmhatZT8q1M9ycviCR7zwNgSgHjM3bq4ILzgXAzqhux+WrdPvl20xUyc1KNT/dvlqc713HAlskQAAU8SoH22rzY0+NBvmXWMvR5B2bLKgy2qmpWFOBCwU+Bq9HWZuHCL/Lhmj7lsgVw55N/31Jf6IcXtLAbXSoeALQHIjBkzUi1K9+7d01FUzzuFF5zn1UlKJUr+ctT5IZ3qVzBzRFhK0jvqkFIiYFWA9tmqmPPn67fNupP05gOhJrOi+XJK//a1pUmVks5nTg4IpCHw175T8uHcNaIrXWXKpF84VpB+7WpK9sCs2HmggC0BSK9evZLcuu6KfuzYMTl37px06dJF3nvvPQ+kSbtIvODSNvKkM3TZ3vG/b05Yfk/L1rlBBenerDIrZnlSRVEWBFwgQPvsAkQHs9Ale8f9tilh+Itu7PZkp7pSvihLnTpISrI0BN6Z+acs2XrYnFWyYC4ZdF9DqVSyAG4eLGBLAJLS/cfGxsqECRMkNDRUhg0b5sFEty4aLzivrDazEsaEBZtk6+EzCTegQwV0V3X9xo4DAQS8X4D2OePrcN7avTLpj60J80Pa177NzA/JF5w94wtHCXxCYM7qPTJlybaEYda6mWCvltV84t58/SYyLACJh23Tpo0sWrTIK515wXlltSUUesO+kzLh981y4NSFhH9rVLmkdG1c0SzTx4EAAt4rQPvsGXWnS/VOXrxV9IOiHjoEVueHsP+CZ9SPt5Zi9a7j8vVvG+Xk+XBzC9XLFjZzPViFzXtqNEMDkJiYGNFd0pcvX+49YolKygvOK6vtpkLrkr0zV+yUPcfPJ/zs9mL5zB4izauV9o2b5C4Q8DMB2mfPqvCTYeHy9a8bRT846lE4T5BZEpU21rPqydNLk3yekQYc+hw1qlTC04tO+ZIJ2BKArFy58ib4q1evyvz58+Xy5cvyzTffeGXF8ILzymq7ZaE1AJnz5+6EcaR6YpG8OeW+xhXlzjrlzTd3HAjYIaC9c3tPnJcHm1e143I+eQ3aZ8+s1i0HT8uXP2+QQ6cvmgLq/iGPd6wjFYrn98wCUyqPENAl9X9YsVPW7j5uhvQF5wg0Q626NAzxiPJRCOsCtgQgLVq0uKlkuvdHtWrVZPDgwVKkSBHrJfeAFLzgPKAS3FCEc5evyPw1e0XHL0dGXTNX0MauU73b5d5GFVk5yw3mZCkSfT1Gft94UH5cvSdh8u7PIx+ExkEB2mcH4WxK9uuG/fLdoi2iGxrq0apGGenfvpbkz5XDphJwGW8Q0Dmbupnguj0nEoqry+n3bVPDvJc5vFfAlgDEe3lSLzkvOF+t2Rv3pR8IdVWNWSt2JXwg1H9vW6ucGZ5VuhCbGvr2E2Df3elcJP1AFr+Zm27idk/DEHmoBT0gjtYC7bOjcval0z0bpi/bIdOX7zAX1V7mh1tXl7a1bpPcQXy4tK8mPO9KOlRvxvIdZtEYPXIEZjWrVt7XuBKbCXpedTlUIrcGIAMHDpQxY8ZIcHCwKdz06dOlU6dOCX93qMQelIgXnAdVhpuL8tf+U+abaV1eMv6oV6GYdGtcSWre5p09eG4mI/s0BPafDJPZf+6WPzYfSjhTx8V3a1pZ7qxzmwRmZcifMw8R7bMzevamPX0hQsYt2CTLtx9NCET0W+5uTSqzYpa9VZGhV4uJjTNf+v2wfIfokCs9dCNBHXmgq1RqEMLhOwJuDUD0BbBmzRrJn//G2M7atWvLvHnzpGRJ39iUiBec7/wipPdOjp+7LLNW7pJFmw/KteuxJtltRfOaHpGW1cukNxvO82OBVTuPyexVu2X7kX+WgS5bOI880KyKGYbC4RoB2mfXONqZi65IOHXpNlm541jCZe+qW1461CvPHBE7K8Lma0Vd0+GnB2TG8p1y9lKkubpOLn+gWWXRpZs5fFOAAMSJeuUF5wSelyfVuSG/bjggc1fvljMXbzSYOiSrbe1y0qhSSZYC9PL6dXXxdeWWP3cekyVbDidMvtXhJq1qlJU7694mFUuwYZarzWmfXS1qX34nzofLjGU7ZMHGAwkX1b1D2te5zSwIwn5N9tWFO690KTJa5q/dI3NX70kYfqptoQYejSv7xhfV7vTz9rwJQJyoQV5wTuD5UFJdxnfOqt2y4+jZhLvSZXxbVC8jrWuWZQiBD9W1lVvR3rKlWw/Liu1HE4IOTa+7895Vr7y0qFaGldWsgFo8l/bZIpgHnq7fhv+wfKcJRPRb8vhDh712rHe7NKtaygNLTZHSEtAv7XR+h9Zr/EiCOrcXlR7Nq0r1MuzBlZafr/zc7QHIRx99lDDn4+mnn5ZXX31VChYsmMSvefPmXunJC84rq81thdZlJX9Zv08WbTqUsHqWXkyHZukmSbrJYd6c2dx2fTLOeAENOpZtOyLLtx1JEnTocAIdXqVBKRtl2VNPtM/2ONtxFQ0+lm47LL+u358wKVmvqxPV29QsJ50aVJDi+W/MNeXwXIFjZy/L9GXbZfHWwxIbGyeZM2eSFtVKy0MtqknJgrk8t+CUzC0Cbg1AUlp+N6W7WLp0qVtuzt2Z8oJzt7D35q8T6X7bsF82Hzyd5CZ0zfvGVUpJ06qlzEZcHN4vEHohwkwkX7njqOgY9vhDh4zoh6Pm1UuL9ohx2CtA+2yvt11X08nJ+kWPLlkdv0y6XlvbVu1ZbFa1ND2LdlVGOq+jiwtoG7n5YKjoymcBWTOLzu3RRQZ4D6YT0QdPc2sA4oNeSW6JF5yv17Dz93cqLEKWbz8ia3YdTzJES3MuXzSfNKlaUhpXLsWSvs5T25qDBh06n0OHV+0/FZZw7eDsAaaXo7n2ejGUwNY6SX4x2ucM5bfl4vrB9uf1+2TzgdCE62UPzGp6nXXJVl0ghCNjBLQ3+Jf1+82CLRf/3utFRwB0rF9B7rkjhGWWM6ZaPOqqBCBOVAcvOCfw/DCp7vGga5uv3n1c/tp3MsmYZu1+blK5lDSuUpLVXjz02Th9MVKWbDlklgrVJXTjD10aUofX6Yee2uWLSpbMmTz0DvyrWLTP/lPf+kXPb3/tlwV/HZCw8KsJN667q+siD7rYA0u4uvd5CL8SLWv2nDCLbew4ciZhg0m9qi5Zr4sHNKnCxHL31oJ35U4A4kR98YJzAo+kZmfXNbtPmIDk/OUrCSLaJa3DtLSxrlqaCXkZ+ahooLFm93HZeui07Dx6zmxOGX80qlTC9HY0rFSCPTsyspJucW3aZw+sFBuKpIuCLNx4MMmeTbqnTucGt5t2VYdqcbhG4OT5cNFlxbWN3Hb4n2XFNffCeXOa/Yx0qJUOR+VAILkAAYgTzwQvOCfwSJpEYPfxc7Jm1wlZu+d4knkEuiO2fsC9+44QhhPY9MzoYgI/r9tnXqrxSyzHX7p2+SLm21QdNheUjU2xbKoShy5D++wQm88kOnf5iukR+XXD/iS/x9oTom1qg5AS0qBicXpGLNa4rva4drd+eXZcDp++mCS1LqGrptrjob1PHAikJkAA4sTzwQvOCTyS3lJAdwU23yrtOZFkbLMmKFskj1QuVdDsG1GpVEHmjjjxHGlvxr4TYaLB374T582wqvjdd+Oz1b066t5ezHxguaNiCcmVI9CJK5LUTgHaZzu1PftaG/eHyuIth2T1rmMSfvVaksK2q11OihfIZRaK0HY1mN/xmypTe+p1aNWfu44l7NehJ+XMHmDaxwYhxaV+SHHaR8/+NfC40hGAOFElvOCcwCNpugSuRF+XDXtPmmBk0/5Tot/qJT7KF8tnJvOVKZRHbiuWT24rqv8x8TIlXA00dh87ZwKNvSfOy6HQpN/exafRDSVrlitivsnTlyuHdwrQPntnvbm71PoNvi4KovPxdIPQ5EepgrklpGQBs19PpVIFzGIh/nZcjIwyq/pp4LHpwKmEvTrUQd8v9SoUN+0jw9n87clw7f0SgPztOWvWLPnwww8lOjpa2rVrJyNHjpQsWbKkqs0LzrUPI7mlLaAri+hShpsOhMqWg6GiO8kmPwKyZJbShfOIBifmv6L5pFzRvH4z1EDXl9dhVHuOnzOBxt7j583fr8fE3mRVLH+wGSoQUiK/+fP24vn9xintp827z6B99u76s6P0J8PCZcvB06YHdOfRs0mGv8ZfX+ePVPw7INE/q5Qu5FP7OemXXAdPXZBDpy/I+ctX5VDoBdMDH39oL7AurtGwYgnTy8F8DjueTP+4BgGIiBw8eFD69Okj06ZNk8KFC8vgwYOlVq1a0q9fPwIQ//g98Nq71EmAuvfEvpPnzZ8HTobd1EsSf3P6YVuDkfLFbwQl+mHbXRsj6jCHg38vT1uuaD7R5Wndceg+AHrf2quhq4wdOBVmvtlM6SiUJ8jcswYbIcULSMWS+SUom3vK5Y57JU9rAgQg1rw4W8zKhLuOnZOdR8+YRSc0KNHVnZIfulCI9pJoMFKxRH4zLNZVhzvaTr0vfVeEXgiXE+fDJeLqNbMfhy4Rn3yem96H9gLrPI76FYqL7jrPgYA7BAhARGTs2LFy6dIlGTJkiDHeuXOnDB06VObMmUMA4o6njjzdKqC9IjcCkjDzwVy/BUZpmgAAEtZJREFU3Uo+tyG+ABqANK1aWnIH3dihPTBrZskbnF0K5c4pOuHakUO/UXx92nLzktNDxwm/9GAzqVGucLqy0/JfvhIllyKjTFBxOTJKLl2JNpuOxcXdyEJ/vmrHsVsGW/lz5ZAKxfNJSIkCpmdDv7lk/ka6+H3mJAIQn6nKDL0RXeJX29MdR87KrqNnk+zEHl+wInlzmg31ArJmMas/6Zc9+m/Nq5W2VHZn2k4tp+5PdPL85b//DBedT6iBhw6putWRuIdHAyn9L0/OG+8DDgTcKUAAIiLDhg2TevXqSdeuXY11VFSU+fvWrVtTtecF585Hk7xdKaDfgGkXe3xAon9qz0HiZWXTcz2doJkzW4AJKvT/cwTe+H/9N/P3bFll7uq9cu5SZJLsiucPln/f08D8m67Tr98sahChAYZ+w6gbVenfk08QTU+ZtDendOHcUqZwHjMHxp09O+kpD+d4hgDts2fUgy+WQntJ4gOSPSfOmw/66T3i28ug7AGSK7u2mTfaUO2NXbnjmFyI+GcfE80zcdsZf43wq9Gyfu9JORUW/vd/aV+/WL5gKZo/pxTJG5wQIJUokMsM0+VAICMECEBEZNCgQdK2bVvp2LFjQh3oy2vPnj2SKdONTcWeeOKJm+pn0aJFsnfv3oyoN66JgEsEtGfEfEMWcdW8+C5ERCX8f/iVaxJxNVoioq4l7GTrkoumkYkub5srRzbTK6O9FrmCApP+PUeg+YauUJ6crAJmR4V4wTVon72gkny4iDqPQttRDUR0iJMOdQoNizBtqvYEa++t/mn1Cx8rZNqbXSx/LtPzUlSDjXz//Km9MhwIeJoAAYiIDB8+XGrWrCndu3c39RMeHi4NGzaUbdu2JdTX/v37b6q7u+66iwDE055oyuNWAQ1QNCjRF+qVqOui38Tpi1WDFPOSvRItv2zYb8YXJz6yB2SRljXKSvbArGaSt37jdyPIuBFcxAcZ7pqT4lYUMs9wAdrnDK8CCpBOAR0OFfl3UKJtpvb6Rv79Rc/3f2xNGLoan50Oi61dvphkD8wi2QOy/t2GBkje4Gwm0IgPOHSyOAcC3iRAACIi48ePl9DQUDPvQ48tW7aYoGTevHmp1iVd/N70qFNWuwQmLd4mU5b8E7zrdXu2rCa9W1WzqwhcBwGhfeYh8DYB2k5vqzHK64wAAYiIHDt2THr27ClTp05NWAUrJCREnn766TQDEGfwSYsAAgikJsAQT8efDw1AOBBAAAF3CdA+OydLAPK33/z58+Xtt9+Wq1evSosWLWTUqFESGOjdux5///33EhcXZ5YY5rAugJ91s8Qp8MPPOQHfSc3vQsp1iQsuVn7LeV6saHn+uQQgnl9HDpeQX1aH6UxC/PBzTsC51Dx/zvl5Umrqkg/aVp5HnheeFyvPi7eeSwDirTWXjnLTiKUDKZVT8MPPOQHnUvP8OefnSampSz5QWnkeeV54Xqw8L956LgGIt9ZcOspNI5YOJAIQ55Dww89tAr6TMW0xHyitPM08LzwvVp4Xbz2XAMRbay4d5aYRSwcSH6CdQ8IPP7cJ+E7GtMV8oLTyNPO88LxYeV689VwCEG+tOcqNAAIIIIAAAggggIAXChCAeGGlUWQEEEAAAQQQQAABBLxVgADEW2uOciOAAAIIIIAAAggg4IUCBCBeWGkUGQEEEEAAAQQQQAABbxUgAPHWmqPcCCCAAAIIIIAAAgh4oQABiBdWmqNFPnPmjHTo0EFeffVV6dy5s6PZ+FW6a9euyRdffCEzZ86UmJgYCQkJkVGjRkmxYsX8ysHKzcbGxsqbb74p8+fPl4CAAHnyySelV69eVrLw63O3bdsm77zzjuzevVuCgoKkf//+0rt3b7828bWbpy3+p0ZpY/+xoO1M+TedNtHXWsAb90MA4pv1muJdPfHEExIRESE9evQgAElnvV+4cEGmTJkiffr0keDgYPnkk09k79698vHHH6czB/877YcffpB58+bJ2LFjJTIyUh588EH54IMPpFq1av6H4cAdz5o1S8qVKyd16tSR06dPS9euXWXChAlSoUIFB3IjiScK0Bb/Uyu0sf9Y0Ham/NtKm+iJrZjzZSIAcd7QK3KYM2eOrF+/XrJnzy61atUiAHGw1nbs2CHPP/+8+XafI2UB/cb+kUcekWbNmpkTJk6cKCdPnpShQ4dC5oCAfljVIKR9+/YOpCaJpwnQFqdeI/7cxtJ2pu+3lTYxfU6efhYBiKfXkAvKp9+iDhw4UCZPnizvvfee1KtXjwDEQVc13L59uxmGxZGyQJs2beS7776TEiVKmBOWLVtm/v7NN99AZlEgOjpa2rVrJ1OnTpXixYtbTM3pniZAW5x2jfhzG0vbmfbzQZuYtpG3nEEA4i01lUo5161bJ6+99tpNZ7z44ovSpEkTefzxx+XRRx+Vhg0bmvkfBCBJqdLyiz/71KlT8vDDD5tv9OM/XPvA4+PyW9Bn7scff5QCBQqYvNeuXSsffvihGcrGYU1gzJgxZtjkiBEjrCXk7AwRSKst8de2OC0X2tgbArSdaf/a0iambeQtZxCAeEtNOVhOHTupE7heeeUVkwMBiGOQYWFh0rdvX3nuuecShhY5lpPvp2rbtq2MGzdOypQpY2520aJFJvjQf+NIv4CaLViwwMylCQwMTH9CzvRIAdri1KuFNlaEtjP1Z4Q20SObNocLRQDiMJ13JNSej02bNiUUNioqSrJkyWLGlI8cOdI7biKDS3n58mXTg6Tjc3UVMY7UBfRbXl3ooHXr1ubEr7/+WkJDQ/kW38KDM3v2bJkxY4YZtpYzZ04LKTnVUwVoi29dM7SxN2xoO2/9jNAmemrL5ni5CEAct/PKlPSAWKs2Hf4yYMAAM/SqY8eO1hL76dlz584V/bY3fhWs7t27y+jRo6V+/fp+KmLttn/55RczZ0YDN115jcM3BWiLb9Qrbew/zzdtZ8q/67SJvtkGEoD4Zr3e8q546Vmr8GnTpslLL70kmTNnTpJw+vTpZjUxjpQFdB8LDUIyZcpkeo50EQSO9Ak0btxYzp49a+ziD11RjEn86fPzlrNoi2/UFG1s0ieWtvPm32DaRG9p1ayVkwDEmhdnI4AAAggggAACCCCAgBMCBCBO4JEUAQQQQAABBBBAAAEErAkQgFjz4mwEEEAAAQQQQAABBBBwQoAAxAk8kiKAAAIIIIAAAggggIA1AQIQa16cjQACCCCAAAIIIIAAAk4IEIA4gUdSBBBAAAEEEEAAAQQQsCZAAGLNi7MRQAABBBBAAAEEEEDACQECECfwSIoAAggggAACCCCAAALWBAhArHlxNgIIIIAAAggggAACCDghQADiBB5JEUAAAQQQQAABBBBAwJoAAYg1L85GAAEEEEAAAQQQQAABJwQIQJzAIykCCCCAAAIIIIAAAghYEyAAsebF2QgggAACCCCAAAIIIOCEAAGIE3gkRQABBBBAAAEEEEAAAWsCBCDWvDgbAQQQQAABBBBAAAEEnBAgAHECj6QIIIAAAggggAACCCBgTYAAxJoXZyOAAAIIIIAAAggggIATAgQgTuCRFAEEEEAAAQQQQAABBKwJEIBY8+JsBG4pMHr0aImMjJTXX389XUpWz09XppyEAAIIIIAAAgh4uAABiIdXEMXzLIGIiAhp0qSJvPrqq3LvvfcmKZzVgMLq+Z4lQWkQQAABzxSYNWuWvPjiiwmFy5Url1SqVEn++9//SoMGDdJV6NmzZ0t4eLg8/PDD6TqfkxBAwJoAAYg1L872c4EZM2bI559/LsWKFZOpU6cSgPj588DtI4CA5wloADJ58mT5/vvvJS4uTs6dOydTpkwxbfbq1aslKCgozUL/5z//kXr16hGApCnFCQg4JkAA4pgbqfxUoFu3buaF9Nprr8kPP/wg5cuXT5BI3KOhPSVNmzaVUaNGydixY+Xs2bOSP39+GTlypNSqVcuk0fMvX74ssbGx8ttvv0nWrFmldevW5pzs2bObc7Zt2ybvv/+++TMmJkaaN29u0uXIkcNPa4DbRgABBFIX0ABEg42ZM2cmnHj16lWpXr26/Pzzz1KhQgXz79OmTZMvv/xSzp8/LzVq1DBtr7bpI0aMEM0jICBAsmXLJl27dpWhQ4fSHvPgIeBCAQIQF2KSlW8L7Nq1S3r06CF//vmnmeeRO3du81KKP5IHIBpotGzZUj7++GMTMGjAosHEkiVLTICh50+aNMnkcd9998mFCxdkwIAB5v8fe+wxk+2RI0fk8OHDUqdOHdEXqP68U6dO5k8OBBBAAIGbBZIHIPrljQYk3377rfz0008SGBgoy5cvNwGHts9lypRJ6CH55ZdfTNDRr18/adWqVZIeENpjnjYEXCdAAOI6S3LycQGd96E9G++++64JQrSLfsWKFeZlpkdKAYgOA0g85rhDhw7y1FNPSefOnc3569evN9+0xR/6bdz27dvlk08+SVFTh38dOnRI3nnnHR/X5vYQQAABxwS0TR0+fLjo3A89tKe5WrVqpl3V4bN69O3b1/RsdOnSJeEi2lbrOXfccUeKAUjy0tAeO1Y/pEJABQhAeA4QSIeA9j40btxYPv30U/OnDpvS4VD6ktOg4lYByLJlyxJeeHrOM888YyZDahCiAYh2/WtAE3/omOXFixfL+PHjzT9t3bpVvvnmGzl48GDCWOb69evLRx99lI5ScwoCCCDgfwIagHz33Xfy1VdfmZsPCwszPR/z5883X/gUKFDALCai/54pU6YEIO0pefvtt01QklIPCO2x/z1L3LH7BAhA3GdLzj4koCuiPP/880nmXkRFRUmjRo1k4sSJtwxAfv/9dylbtmyCxBNPPGHGGv/rX/9K0mOSUgASGhoqd911l7zyyity9913S5YsWcy3c/v27SMA8aFni1tBAAHXCqQ0B0SvoHP49AsjHcLasGFDeeutt8ww2ZSO5AEI7bFr64jcECAA4RlAIB0CDz74oJk8/tBDDyWcreOB+/fvL4sWLZJSpUqlOARLh1S1adPGpNFeE33ZvfDCC2YeR0rL8CbuAVm4cKGZa7J06dKEaw4aNMhMRqcHJB2VxikIIOCXArcKQO6//35p3769mWPXu3dv06YPGTIkRSMNUnQhkUceecT8nPbYLx8lbtqNAgQgbsQla98Q2L9/v+mB0ECgUKFCSW6qV69eUrduXdHAIKU5IDVr1jTfshUuXNishqUvRp2ErpMc0wpAdu7cab6x08mTFStWlAULFpjVt3ToAAGIbzxb3AUCCLheIPEyvJr7pUuX5McffzQTzufMmWNWwdJJ6DoUVr/k0eG0uufHqlWrzCIgOq9P5/wdP37cDLvVL4907h3tsevrihz9V4AAxH/rnjtPp4AupatzNd57772bUugQK31R6VwPnRgevxO6TlbXb9d0yNSYMWPk6NGj5qWXfBne5DunJ58D8tlnn5mVW3QOii7Rq0OydJUWApB0Vh6nIYCA3wkk34gwZ86cEhISYhYO0S9w4g8NRrSXWlcaDA4ONl8maZCiAYgGH//+978lfvXDl19+WWiP/e5R4obdKEAA4kZcsvZfgfgARFfLKliwoP9CcOcIIIAAAggggEAyAQIQHgkE3CAQH4Bol37yYVtuuBxZIoAAAggggAACXiNAAOI1VUVBvUmAAMSbaouyIoAAAggggICdAgQgdmpzLb8RIADxm6rmRhFAAAEEEEDAogABiEUwTkcAAQQQQAABBBBAAAHHBQhAHLcjJQIIIIAAAggggAACCFgUIACxCMbpCCCAAAIIIIAAAggg4LgAAYjjdqREAAEEEEAAAQQQQAABiwIEIBbBOB0BBBBAAAEEEEAAAQQcFyAAcdyOlAgggAACCCCAAAIIIGBRgADEIhinI4AAAggggAACCCCAgOMCBCCO25ESAQQQQAABBBBAAAEELAoQgFgE43QEEEAAAQQQQAABBBBwXIAAxHE7UiKAAAIIIIAAAggggIBFAQIQi2CcjgACCCCAAAIIIIAAAo4LEIA4bkdKBBBAAAEEEEAAAQQQsChAAGIRjNMRQAABBBBAAAEEEEDAcQECEMftSIkAAggggAACCCCAAAIWBQhALIJxOgIIIIAAAggggAACCDguQADiuB0pEUAAAQQQQAABBBBAwKIAAYhFME5HAAEEEEAAAQQQQAABxwUIQBy3IyUCCCCAAAIIIIAAAghYFCAAsQjG6QgggAACCCCAAAIIIOC4AAGI43akRAABBBBAAAEEEEAAAYsCBCAWwTgdAQQQQAABBBBAAAEEHBcgAHHcjpQIIIAAAggggAACCCBgUYAAxCIYpyOAAAIIIIAAAggggIDjAgQgjtuREgEEEEAAAQQQQAABBCwKEIBYBON0BBBAAAEEEEAAAQQQcFyAAMRxO1IigAACCCCAAAIIIICARQECEItgnI4AAggggAACCCCAAAKOC/wfS0RJbNl8RUsAAAAASUVORK5CYII=" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = em.slice_plot(\n", " func=sphere,\n", " params=params,\n", " lower_bounds=lower_bounds,\n", " upper_bounds=upper_bounds,\n", " # selecting a subset of params\n", " selector=lambda x: [x[\"alpha\"], x[\"beta\"]],\n", " # evaluate func in parallel\n", " n_cores=4,\n", " # rename the parameters\n", " param_names={\"alpha\": \"Alpha\", \"beta\": \"Beta\"},\n", " title=\"Amazing Plot\",\n", " # number of gridpoints in each dimension\n", " n_gridpoints=50,\n", ")\n", "fig.show(renderer=\"png\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.8" } }, "nbformat": 4, "nbformat_minor": 4 }