{ "cells": [ { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "import sympy\n", "from sympy import Symbol, Function, cos, diff\n", "from sympy.codegen.ast import Assignment, Print\n", "from sympy.integrals.integrals import integrate, Integral\n", "from sympy.plotting import plot\n", "from sympy.plotting.pygletplot import PygletPlot as Plot\n", "from IPython.display import Markdown" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle f{\\left(x \\right)} = x^{2}$" ], "text/plain": [ "Eq(f(x), x**2)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\operatorname{f'}{\\left(x \\right)} = 2 x$" ], "text/plain": [ "Eq(f'(x), 2*x)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\operatorname{f''}{\\left(x \\right)} = 2$" ], "text/plain": [ "Eq(f''(x), 2)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = Symbol('x')\n", "\n", "def f(x):\n", " return x**2\n", "\n", "display(sympy.Eq(Function('f')(x), f(x)))\n", "display(sympy.Eq(Function('f\\'')(Symbol('x')), diff(f(x))))\n", "display(sympy.Eq(Function('f\\'\\'')(Symbol('x')), diff(diff(f(x)))))" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\int \\left(x^{2} + x + 1\\right)\\, dx$" ], "text/plain": [ "Integral(x**2 + x + 1, x)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\frac{x^{3}}{3} + \\frac{x^{2}}{2} + x$" ], "text/plain": [ "x**3/3 + x**2/2 + x" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = Symbol('x')\n", "i = Integral(x**2 + x + 1, x)\n", "sympy.solvers.solve(i, x)\n", "display(i)\n", "display(i.doit())" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\int \\cos{\\left(x \\right)}\\, dx$" ], "text/plain": [ "Integral(cos(x), x)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\sin{\\left(x \\right)}$" ], "text/plain": [ "sin(x)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "i = Integral(cos(x), x)\n", "display(i)\n", "display(i.doit())" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\left\\{-1, 1\\right\\}$" ], "text/plain": [ "{-1, 1}" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = Symbol('x')\n", "y = Symbol('y')\n", "sympy.FiniteSet(*sympy.solvers.solve(sympy.Eq(x**2, 1), x))" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "![](plot.svg)" ], "text/plain": [ "" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADnCAYAAAC9roUQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABF+ElEQVR4nO3deVxU1f/H8dcwrAqybwKKCyqrC+CS+5qaZS5l5lZamktqpWWZZaVmfVs0rVzStL5u1U/lm4p90zR3cUMEERdAZZVF9n3m/v4g+aosijJzZ4bzfDx8OMydufczA7y5c8655ygkSUIQBEHQDiO5CxAEQahPROgKgiBokQhdQRAELRKhKwiCoEUidAVBELTI+AHbxdAGQWcNHDiQvXv3yl2GIFRFUd0GcaYr6K309HS5SxCEWhOhKwiCoEUidAVBELRIhK4gCIIWidAVBEHQIhG6giAIWiRCV9CIiRMn4uTkhJ+fX8V9mZmZ9O/fHy8vL/r378/t27cBkCSJmTNn0rJlSwICAjh79qxcZQuCxonQFTTipZdeqjSGdunSpfTt25crV67Qt29fli5dCkBoaChXrlzhypUrrFmzhqlTp8pRsiBohUZCNyOvmIX/iaKoVKWJ3Qt6oEePHtjZ2d1zX0hICBMmTABgwoQJ7Ny5s+L+8ePHo1Ao6Ny5M1lZWSQnJ2u7ZEGo8O2Bq0QkZGlk3xoJ3fCbWWw4Fs9Hv0dpYveCnkpNTcXV1RUAFxcXUlNTAUhMTMTDw6Pice7u7iQmJla5jzVr1hAUFERQUBBpaWmaL1qod/5zPol//RHDf8KTNLJ/jYRuX29npvVqwZawm2w7dUMThxD0nEKhQKGo9krJak2ePJnTp09z+vRpHB0dNVCZUJ9dTs3lnd8iCGpqyzuD2mjkGBpr031rQGu6tXRgQUiUxk7TBf3i7Oxc0WyQnJyMk5MTAG5ubty8ebPicQkJCbi5uclSo1B/5RaV8trPZ2hoZsx3YzpgotRMPGosdJVGCr4Z3R5HSzOm/vssmfklmjqUoCeeeeYZNm7cCMDGjRsZOnRoxf0//fQTkiRx4sQJrK2tK5ohBEEbJElizq/nuZ5ZwLcvtsepkbnGjqXR0Qt2DU35fmwH0nKLmbX1HCq1mLSsvhg9ejRdunQhJiYGd3d31q1bx7x58/jzzz/x8vJi3759zJs3D4DBgwfTvHlzWrZsyauvvsp3330nc/VCfbP6UCx/RKXy7qA2dGpur9FjKR6wMGWdpOTWsBvM236BGb1bMufJ1nWxS0EgKCiI06dPy12GoOeOXEln/PqTDPJ3ZeXo9o/U11AFead2fKFjE14I9mDlgav8EZWijUMKgiA80M3MAmZsOUtLJ0s+HxFQV4FbI61dHLHwGV/aetjw5rZwLqfmauuwgiAIVSooKePVn06jVkusHR9EQ7MHrelQN7QWuuYmSlaPDaSBmTGv/nSarALRsSYIgjwkSWLubxFcTs1lxYsdaGrfUGvH1uplwC7W5qwaG0hyVhGvbzlHmUqtzcMLgiAA5R1nuyOSeXtgG3q20u54b63PvRDY1JZPnvXl8JV0Pv8jRtuHFwShnjsYc4vP915iSIArU3o01/rxtdOIcZ9RwU2ISsphzaFYfFwb8Wx7MRBeEATNu3orj9c3n6O1SyM+H6mdjrP7yTbL2IIhPnRqZsc7/xdB+M0sucoQBKGeyCoo4ZWNpzAzMeKHCUE0MJXlnFO+0DVRGvHdmA44Wpkx+afTJGcXylWKIAgGrlSlZvrmsyRmFbJqbCBuNhay1SLrfLr2lmasmxBMQYmKV386TUFJmZzlCIJgoBbtusjRqxksHuZPkKfdg5+gQbJPYt7axYoVo9tzMSmHt345j1pcKiwIQh36+Xg8G49fZ1K3Zjwf5PHgJ2iY7KEL0LuNE+8N9iY0MoWv/rwsdzmCIBiIvy+nsfD3i/T9J2N0gTwtyVWY1K0ZV1LzWHngKs0cGjIi0F3ukgRB0GOXU3OZseksXk6WLB/dHqWR9kcqVEVnQlehULBomB8JWQXM2x5BYxsLurTQ7Gw/giAYpvS8YiZuOIW5qZL1LwVjqaVLfB+GTjQv3FE+oiGQpvYNmfLzaa7eypO7JEEQ9ExRqYrJP50mPa+YH8YH0VjGkQpV0anQBbC2MOHHl4IxNTZi4oZTZOQVy12SIAh6QqWWmL01nHM3s1g2qh1tPWzkLqkSnQtdAA+7BqwdH0RqThGv/nRarCosCMJDWbInmr1RKbz/lA8D/XRz9RGdDF2A9k1sWTaqHWdvZPHGtnCx6oSBiImJoV27dhX/GjVqxLJly1i4cCFubm4V9+/Zs0fuUgU9s/5IHOuOxPFyV08mdWsmdznV0srKEY/jh8OxLNodzYQuTVn4jK8s10oLmqFSqXBzc+PkyZP8+OOPWFpaMmfOnId+vlg5Qrhjb2QKUzedYYCPM9+NCdSFkQrVFqA7XXrVeKV7c1Kyi/jhSByuNha81rOF3CUJdWT//v20aNGCpk2byl2KoMfOXL/NrK3naOtuw7JRujM0rDo627xwt/cGe/N028YsDb3E9rMJcpcj1JGtW7cyevToiq9XrlxJQEAAEydO5Pbt21U+Z82aNQQFBREUFERaWpq2ShV01NVbuUzaeAoXa3N+mBCEhalS7pIeSOebF+4oLlPx0vpTnIrP5MeXg+nupd2Jh4W6VVJSQuPGjYmKisLZ2ZnU1FQcHBxQKBQsWLCA5ORk1q9fX+M+RPNC/ZaSXcTw745SopLYPvUJmtg3kLuku8m7MGVdMDNWsnp8IC2dLHnt5zNEJmbLXZLwGEJDQ+nQoQPOzs4AODs7o1QqMTIy4tVXXyUsLEzmCgVdll1QyoT1YeQUlbHh5WBdC9wa6U3oAjQyN2HjxI7YNDDlpR/DiEvPl7sk4RFt2bLlnqaF5OTkits7duzAz89PjrIEPVBUWj4rYWx6HqvGBuLnZi13SbWiN80Ld7uWlsfzq45jbqLkt6ldcLXWrStOhJrl5+fTpEkTYmNjsbYu/4UZN24c4eHhKBQKPD09Wb16Na6uNY+zFM0L9U+pSs1rP5/hr5hbLH+hPc+0bSx3SdWptnlBL0MXIDIxmxfWnMDF2pxfpnTBrqGp3CUJWiZCt35RqyXe/CWcneFJLHrWj7GddXrUi/636d7Pz82aHyYEcTOzgJd/DCOvWEyALgiGSpIkFv4exc7wJOY+2VrXA7dGehu6AJ2b2/Ptix2ITMphsrhcWBAM1td/Xuan49eZ3KM503rp91h9vQ5dgH4+znzxXADHrmUwY/NZSsrUcpckCEId+uFwLN/8dZVRQR68O6iN3l+VqvehCzCsvTufDPVlX/QtZm87R5lKBK8gGIKfj8ezaHc0T/m7smS4v94HLujBZcAPa1wXT4rL1CzaHY2J8jxfPd9O5y8HFAShettO3WBBSBT9vJ1Z9oLh/D4bTOhC+TwNxWVq/vVHDGbGRiwdHoCRgXyjBKE+2XEugXnbL9CzlSPfjmmPidIgPpQDBha6ANN7t6SkTM3y/VcwNTbik6F+BvGRRBDqi10RSbz1y3k6N7Nn9bhAzIx1fz6F2jC40AWY3c+L4jI1q/6+hqlSyYIh3iJ4BUEP/BGVwqyt4QQ2tWXdS0GYmxhW4IKBhq5CoeCdga0pKVOz/mgcJkoF8wyg11MQDNkfUSnM2HwWPzdr1r8UTANTg4wnwwxdKA/eBUO8KVOrWX0oFpVaYv5T4oxXEHRR6IVkXt9yDj83a36a1BErcxO5S9IYgw1dKA/ej57xxUih4IcjcZSpJT582kcEryDokN0Ryczceo627tZsnGjYgQsGHrpQHrwfPu2DiVLB2sNxlKnVfPyMnxjVIAg64PfzSczeFk57Dxs2TOyIpZnBR5Lhhy6UB+97g70xVhrx/cFrlKkklgzzF8ErCDIKCU/kjW3hBHna8eNLwTSsB4EL9SR0oTx4336yNSZGCr756yplaonPRgQYzIBrQdAnW8Nu8O6OC3RqZmfQnWZVqT+vlPLgfXNAa5RGRny97zKFJSq+GtXW4MYBCoIuu7PCd89WjqwaG6gX65rVpXoVunfM6udFQzMli3ZHk1NUyupxgfXqL60gyEGSJJbvv8KyfVcY7O/CslHtMTU2nCvNHlb9e8X/eKV7cz4fEcDRq+mMWxdGdkGp3CXVG56envj7+9OuXTuCgoIAyMzMpH///nh5edG/f/9qVwMW9JMkSSzaHc2yfVcYGejONy/Uz8CFehy6AM8He/Dtix2ISMhi1JrjpOUWy11SvXHgwAHCw8MrVn5YunQpffv25cqVK/Tt25elS5fKXKFQV1RqiXe3X2DdkTheesKTz0cEYGxAcynUVv195f8Y5O/KugnBXM8o4LlVx7iZWSB3SfVSSEgIEyZMAGDChAns3LlT3oKEOlFUqmLqv8+w9dRNZvRuyYdP+9T7UUN6u0ZaXTtz/TYv/xiGhamSjRM70salkdwlGaxmzZpha2uLQqFgypQpTJ48GRsbG7KysoDyj6K2trYVX99tzZo1rFmzBoC0tDSuX7+uxcqF2sgqKOGVjac5c+M2Hwzx4eWuzeQuSZsMb2FKTbiUksNL60+RX1zG6nGBPNHSQe6SDFJiYiJubm7cunWL/v37s2LFCp555pl7QtbW1vaB7bpiYUrdlZhVyIT1YdzIKOCrUW0ZEqCzq/ZqiuEtTKkJbVwasX3aE7jamDPhxzB2nkuUuySD5ObmBoCTkxPDhg0jLCwMZ2dnkpOTAUhOTsbJyUnOEoXHcCklhxHfHSM1u4iNEzvWx8CtkQjd+zS2seDX154gsKkts7eF893Bqzzg04BQC/n5+eTm5lbc/u9//4ufnx/PPPMMGzduBGDjxo0MHTpUzjKFR3QiNoPnVh1HQuLXqV3o0sJe7pJ0jhicWgVrCxM2TuzI3F8j+HxvDElZhXz0jJ+4eq0OpKamMmzYMADKysp48cUXGThwIMHBwTz//POsW7eOpk2b8ssvv8hcqVBbIeGJzP0tgiZ2Ddg4sSNuNhZyl6STRJtuDdRqic//iGHV39fo5+3E8hfa15vrw/WBaNPVDZIksWzfFZbvv0KnZnasHheITQNTucuSm2jTfRRGRuWTn38y1Je/Lt1ixPfHSLgthpQJwh1FpSpmbQ1n+f7yix5+ntRJBO4DiNB9COO6eLLh5Y4kZhXy7LdHOXM9U+6SBEF26XnFvLj2BP85n8TbA1vzr5EB9fYqs9oQ79BD6tHKkR3TumJpZszoNSf5vzMJcpckCLKJScnl2W+PcjE5h+/HdGBar5ZicYCHJEK3Flo6WbJzeleCPG1569fzfBoajUpdr5u9hXoo9EIyw747SkmZmm2TuzDI31XukvSKCN1asmlgysaJHRnTqQmr/45l8k+nyS4Uk+UIhk+tlvjijximbjpLaxcrfn+9G209bOQuS++I0H0EJkojFg/z5+Ohvvx9OY2hK49wKSVH7rIEQWNyikp55afTrDxwlVFBHmyd3BnnRuZyl6WXROg+hvFdPNk6uTMFJSqe/faouIJNMEiXU8vbbw9dTuOTob4sHeEvJv5/DCJ0H1OQpx27ZnYjwN2G2dvC+TAkkpIytdxlCUKd2HEugaErj5JTWMamVzoxroun6DB7TCJ064CTlTmbXunEK92asfH4dV5Yc5yU7CK5yxKER1ZUquLd7Rd4Y9t5/N2t2TOzG52ai0t664II3TpiojTi/SE+rHyxPZdScnnqm8McjLkld1mCUGs3MgoY8f0xtoTd4LWeLdj8SiecRPttnRGhW8eGBDTmPzO64mhlxks/nmLJnmjR3CDojd0RyTy14jA3Mwv4YXwQ8wa1qderPGiCeDc1oKWTFTund2Vs5yasORTLc6uOcSNDXD4s6K6CkjLe+S2C6ZvP0tzRkt0zu9PPx1nusgySmPBGw0IvJPPO/0WglmDxMD+GtnOTuySDISa8qRuRidnM3HqOuPR8pvZswRv9W2Eizm4fl5jwRi6D/F3ZM6s7rV2smLU1nNlbz4mVhwWdoFZL/HA4luHfHSO/uIxNkzrx9sA2InA1TJzpakmZSs3KA1dZ+ddVHCzN+HxkAD1aOcpdll4TZ7qP7mZmAXN+Pc/JuEz6+zjz2YgA7BqK2cHqkDjTlZux0ojZ/VqxY1pXrMyNGb8+jPd3XqCgpEzu0rTq5s2b9O7dGx8fH3x9fVm+fDkACxcuxM3NjXbt2tGuXTv27Nkjc6WGSZIkfjl1k4HLDhGVlMO/RgawZlygCFwtEme6MigqVfHlf2P44UgcTewa8OVzbQnytJO7LK1ITk4mOTmZDh06kJubS2BgIDt37uSXX37B0tKSOXPmPPS+xJlu7SRlFTJ/xwUOxKTRubkdXzzXFnfbBnKXZaiqPdMVyyDIwNxEyfynfOjn7cxbv57nudXHmdDFk7lPtjb4lSlcXV1xdS2flcrKygpvb28SE8Xl05qkVktsDrvB0tBLqNQSC4b48PITnhiJ5adkIZoXZNSpuT17Z/dgXOembDwez4CvD3HgUv25oCI+Pp5z587RqVMnAFauXElAQAATJ06sdvn1NWvWEBQURFBQEGlpadosVy/Fp+czeu0J3t8ZSYC7NX/M7sGkbs1E4MpINC/oiDPXM5n3fxe4ciuPZ9o25oOnfXCwNJO7LI3Jy8ujZ8+ezJ8/n+HDh5OamoqDgwMKhYIFCxaQnJzM+vXra9yHaF6oXnGZirWHYlnx11VMlUbMf8qbUcEeYt4E7an2jRahq0OKy1SsOhjLtweuYmGqZO6TrRndsYnBrUJcWlrKkCFDePLJJ3nzzTcrbY+Pj2fIkCFERkbWuB8RulU7di2d93dGEpuWz2B/Fz4Y4ouLtbiMV8vE6AV9YGasZFY/L/bM6oa3qxXv74zkmZVHOHO96o/a+kiSJCZNmoS3t/c9gZucnFxxe8eOHfj5+clRnl67lVPEG9vCeXHtSUpVan58OZjvxgSKwNUx4kxXR0mSxK6IZBbvjiYlp4gRHdx5Z1BrnKz0+xfoyJEjdO/eHX9/f4yMyv/mL1myhC1bthAeHo5CocDT05PVq1dXdLhVR5zplisuU7H+SDwr/7pCqUri1R7NmNHbCwtTMeetjETzgr7KLy5j5YGr/HA4FnNjJTP6tGTCE56Ym4hfqPoeupIk8efFVBbvieZ6RgH9fZyZP9gbT4eGcpcmiNDVf7FpeXyy6yIHYtJws7Hg7YGteTqgcb3uha7PoXvuxm2Whl7iZFwmLZ0s+fBpH7p7iSscdYgIXUNx9Go6i3dHczE5B383a94b7E2XFvVzcun6GLpx6fn8649L7LmQgoOlKTP7ejG6YxMxX4LuEaFrSNRqiZ3hiXzxRwxJ2UV0a+nAmwNa0aGJrdylaVV9Ct2U7CK+PXCVLWE3MDU24tXuzXm1R3MsDfxiGj0mQtcQFZWq+PeJ63x/8BoZ+SX0bu3Im/1b4+9uLXdpWlEfQjclu4hVf19jc9gN1GqJ0R2bMLOvF45WhjuG20CI0DVk+cVlbDwez5pDsWQVlNLP25lpvVsY/JmvIYfu/WH7XJA703q1xMNOzJWgJ0To1ge5RaX8eDSe9UfjyCoopUtze6b1bkG3lg4GeSWSIYbuldRc1hyKZWd4IpIEIwPdmd5bhK0eEqFbn+QXl7El7AZrD8eSmlOMv5s1r3RvxmB/V4PqcDGk0D0Vn8nqv6+xL/oW5iZGjAry4JXuzUXY6i8RuvVRcZmKHWcTWXMoltj0fJwbmTG+iycvdmyCrQHMn6rvoVtUquL380n8+8R1zidkY9fQlAldPBnXpamY31b/idCtz9Rqib8vp7H+aByHr6RjamzEU/6uvNipCUFNbfW26UFfQ/d6Rj6bTt7gl9M3ySooxcvJkvFdmjIy0ENcRaYtqlIoyobCrPL/i27fdTur/LZHJ/Ae8qhHEPPp1mdGRgp6t3GidxsnYlJy+feJ6+w8l8iOc4l4OVkyumMThndww6aBOLvSlKJSFfujb/HL6Zv8fTkNpZGCgb4ujO3clM7N7fT2D59sJAlK8v8XkhUBmnVfmFazrTS/5v0bm4PC6HFCt1riTLeeKigpY9f5ZDaF3eD8zSxMlAp6t3ZiWHs3+ng7YWas+2dcun6mK0kSZ29k8X9nE9h1PomcojJcGpkzKtiDFzs1wbmRfs+j8djUqn+C8a6zy6qC8v4z0Du31Q9Y6sqsEZjbgLk1WPzzv7nNvber3GYDJo/9vRHNC0L1opKy2XE2kZDzSaTlFtPI3JinAlwZEtCYjs3sdLbzTRdDV5IkLqfmsTsiiV0RycSm52NuYsRAXxdGBLrzRAsHw5qqs7SohjPN6m7/E5rFOTXv28j4AUH5gNtGsp44iNAVHqxMpebYtQx2nEtkb2QKhaUqrC1M6OvtxJO+LvTwctSpNkddCV21WiIiMZt9F1MJjUzmWlo+Rgro1MyeYR3cGOTngpW5idxlVk2thpLcmsOxptuq4pr3b9Kg5jPKmkLTtCHob7OLCF2hdgpLVPx9OY3/RqWwLzqVnKIyzE2M6OHlSI9WjvTwcqSJvbzDmeQM3eyCUo7HpnMwJo39l26RlluM0khBsKctTwU0ZqCvi/auGrunUyirdh/Vi3NAUle/b4VR+cf0SsFYzRno/YFqXG/7CUToClW7desWR48eJSkpCQsLC/z8/AgKCqqY6xagVKXmZGwmf0SlsD86laTsIgCa2DWgm5cD3Vs6EORpp/VLU7UZuoUlKs7dvM3Rq+kcuZrBhYQs1BJYmRnTo7Uj/b2d6dXa8dE6IyUJSguqOKPMqptOIaXZvWeRD/NR/c5jTK3ASDebl3ScCF3hXgcOHGDp0qVkZmbSvn17nJycKCoq4vLly1y7do2RI0fy1ltv0ahRo3ueJ0kSsen5HLmSzuEraRy/lkF+iQqApvYNCGxiS4emtgQ2tcXLyRJjDbYHayp0JUniZmYhFxKzOXvjNqfjM4lKyqFMLaE0UtDew4auLR3o7uVAWw+b8jbvmjqFqrt9d6CqS2suytSq+o/hlcLS5t5gffxOIaH2ROgK95o7dy6vv/46TZo0qbStrKyMXbt2oVKpGDFiRI37KVWpiUjI4sz12//8yyI9r7ydz9TYiFbOlrRxaUQbFyu8XRvRytkKB0vTKodI7d27l1mzZqFSqXjllVeYN29ejceui9DNKSrl6q08rqbmEZuSwY2kJBKTU1EWZ9FIkY+DshBvWzWtrFU0bVCKi1kxpiV3h+tDdgoplFUHYk096ebWYGFb/vFeKUZ36hkRuoJ23DlLPHvjNheTc4hOzuFSSi5puf/rcLEyM8bToSFN7BvgZmOBm40FzlamTHt5DJvWr8KvRRO6PdGZLVu24OPjU+2xKoWuJEFxbsUZpaogi9zsdAqy0inIzaQ4N4OS/CzUBbdRFGWhLMmhgSqPRop8rMnHXPGAs807nULVhWal9s27zkD1u1NIqD0RukLVxo0bx8qVK7G2Lp8OMj4+nkmTJrF///46PU5GXjExKblcSsklPiOfuPR8Em4XkphVSEmZGhQlKIxzMDHOooFxJg2UWVgoc2jUoBQTZSFKRTFGihKMKEFBKUqpjF1LInluXkvMpDIs1KU0VJfSUFJhqZawUquxVquxVamwV6lxUKmwUknk0oA8hSUlxlaUmVmjtLDBvJEdVjaOWFrbY9TA5p/QtKkcovW3U0iovUcL3YEDB0rp6emPdMS0tDQcHXVv+RBdrQvkqS0tLY3U1FQ8PDwoLS0lJSUFDw+PihB+pLokdXkbp7oMJNU/t1WUqksoVpVSoi6lRCqjRFJTippSJFTV7EoBGEn//H/XfZIEeSnFNHQ1R4L//VOAVM25ggIjTJTGmBqZYqI0wdTIFDOlGaZKU0yVpiiq/z2pFV39GRN11c7j1HXmzJk/JEkaWNU2jZ3p6soYyvvpal0gX21Hjhyhd+/eODg4cO7cOVycHMvbKP/pJZ/68hi+/2rJg68c+ud2mbqUK6YmRJmZctnElMumJlw2NSX3rk41C0nCXVLipjDDVdkAk7wyStPz6RXcE1sLR65cjCfuaiozZ76HwsKmyiuFGjZsSH5+5Z77orIicktyyS7O5nbxbTIKM0gvTCe1IJXk/GSS8pJIyE3gdvH/lrY3NjKmuXVzWtm2oo1dG/wc/PCx98HC2KLW76eu/oyJumrnMesScy/UO6VFDxGSWdy4fAHltYvc+rg1UlEWJiu8kUwkFHf9vf2+C/DrhP/tu6JTqPyjd5a5FeGWVpw3cuW8uoDI0tsUSuWXaDZQmtHK0oNBNi3xsmtDCwdfPG1a4GBx7xy/x48fZ+HChby3YBkAO499Cg7NUTTtXOuXbm5sjrmxOY4Naj5LyS3JJT47nricOK5lXePK7SucSjnFrthdACgVSrxsvfB38CfAMYBgl2DcLN1qXY8g3E2Erq66r1OoymFGVQ5H+ufrsqKa9/9Pp5CUnk1guwBMGzmCuQ0pOUVs3nuQKbPeqQjWV2e+zdqftlWcbRYZKTmbdo4TySc4kXSCS5mXkEokjBXGtLZrzTDH/rR1bIu/oz9ulm4YKR48bCw4OJgrV64QFxeHm5sbW7duZfPmzY/zDj6QlakV/o7++Dv633N/RmEGkemRRKRHEJEWQWhcKL9e/hUAN0s3gl2C6ejSkScaP4G9Rf1cFFR4dBoL3cmTJ2tq149Fq3WpSqEo565AvF3jYPc9wwphebt/7s8pbw+tlgLMG93b4ePYuorB7rZVj+38p1Oo6X17dQFefrEETP/XaRQ8MpEUKwcO3DzAgRsHOJN6hhJ1CcZGxrRzbMf0dtMJcgnC194Xc+NHGxNqbGzMypUrefLJJ1GpVEycOBFfX98an+Pg4PBIx3oQewt7enr0pKdHTwDUkpprWdcISwnjVMop/rrxFzuv7kSBAn9Hf3q696Sne09a2bZCoVCIn/1aqm91idELNblzpdDDTuBx/7aSvJr3rzSt/kqgB43hNGv0WFcKLVq0iGnTpmFnZ1fl9r/++ovYnFhKm5Vy4MYBojOjAfBs5El39+50ce1CoHMgDUzkuxRYrrZAtaTmUuYlDiUc4lDCIS6kXwDAuYEzvTx68aTnk3Rw6oBS3glXBHnV4yFjDzV9XA3XqD/SlUIPMYbTwgZMat9JU1dCQkL4/PPPMTc3p0OHDjg6OlJUVETkzUiipWgaBjUk3yIfBQoCHAPo7dGb3k1609y6uWw1309XOmDSC9M5nHCYQwmHOJp0lMKyQhwsHBjQdACDmg0iwDHgoZpYBIOi56FbVlzDpZRZNZyFZv9zpVANL+O+TqGaZz+67zF6fKXQuHHj+Pnnn/n888+xdrImLDuMOMs40ozTAGjv1J7BzQbTr2k/HCw08zH+celK6N6toLSAQ4mH2Bu3l8MJhylRl+Bm6cbQFkN5puUzoiOu/tBM6P76668sXLiQ6OhowsLCCAoKqtj26aefsm7dOpRKJd8sX86TvZ6o1OGTdvMqm9Z9h7I0Dy93B/r36ISyOKdyuJYV1vzyqps+ztya33bvIy7lNrmlRiTfLkRtasW6Tf9314QelqBQ4OnpiZWVFUqlEmNjY638Mi9cuJC1a9dWjAVcsmQJgwcPrvS42l4e+zB8fHxY/tty3vzxTczbmlOkKqKZVTMGuA8gfGs4R/YcwdTUlBYtWvDjjz9iY2NTaR/aeM9qeu1BQUEcPXqU8ePHc+bMGezt7dm2bRuenp51Xsfdbt68yfjx40lNTa1ow501a9Y9jzl48CDPjnqWJn2aIPlI8M/V1p1cOjHcazj9mvbDVKmZiy0e9H2RJIlZs2axZ88eGjRowIYNG+jQoYNGarkjJiaGUaNGVXwdGxvLxx9/zOzZsyvuO3jwIEOHDqVZs2YADB8+nA8++KDOa5k4cSK7du3CycmJyMhIADIzMxk1ahTx8fF4enryyy+/YGtrW+m5GzduZNGiRQC8//77TJgwodJj/qGZ0I2OjsbIyIgpU6bwxRdfVIRu/N+byNs+G99mjVEXZiEVZmFc46crBflqE1QmljRy8qi+HfMBnUIP8tZbb2FtbV3lN9LT05PTp09rrHOmKgsXLsTS0pI5c+ZU+xiVSkWrVq34888/cXd3Jzg4+IGXx9YkrySPkGshrDq+iixlFuoiNaqLKsrOlqFOVCNJEkVFRdy8eRNjY2PeeecdAD777LNK+9L0e/ag1x4UFMTEiROJiIhg1apVbN26lR07drBt2zaN1HNHcnIyycnJdOjQgdzcXAIDA9m5c+c935ODBw/yxRdfsGtX+fCzpLwkQq6FEHI1hMS8ROzM7RjhNYLnWj2Hq6Vrndb3oO/Lnj17WLFiBXv27OHkyZPMmjWLkydP1mkNNVGpVLi5uXHy5EmaNv1fV+7975mmHDp0CEtLS8aPH18Rum+//TZ2dnbMmzePpUuXcvv27Uo/85mZmRWfrhQKBYGBgZw5c6bKcEZT43S9vb2rvP/gkRN0t3dH4d4BpYUNm3eE8kSfQXi2aVsRlJK5NYFd+xJ24TLGDWyJOHmShQsX8scffzxOSdWSJIlffvmFv/76SyP715SwsDBatmxJ8+blbakvvPACISEhtQ7dGzk32HxpMzuv7iS/NB9/Z3/eaPUGoctCWfvt2mqf17lzZ3777bfHeg2P6mFee0hICAsXLgRg5MiRzJgxA0mSNLrmmKurK66u5UFpZWWFt7c3iYmJNX5PGls2ZmrbqUwJmMLxpONsjdnKush1rItcR0/3noz1HkuwS7BW1koLCQlh/PjxKBQKOnfuTFZWFsnJyRWvSdP2799PixYt7glcberRowfx8fH33BcSEsLBgwcBmDBhAr169aoUun/88Qf9+/ev6Hzu378/e/fuZfTo0bU6vkZa908nSxxv/haMXAdPfcl+qQunTbtAh/Hg8ww070mGqTs5SluMLe3ByAh3d3cSExM1UQ4Ahw8fxtnZGS8vryq3KxQKBgwYQGBgIGvWrNFYHfdbuXIlAQEBTJw4kdu3b1fanpiYiIeHR8XXtX2fwm+F8/r+1xmyYwjbYrbR26M3mwdvZvNTmxnuNbzGwAVYv349gwYNqnKbpt+zh3ntdz/G2NgYa2trMjIy6ryW6sTHx3Pu3Dk6depUadvx48dp27YtgwYNIioqCgAjhRFd3bqyos8KQoeHMtFvIuG3wpn030m8sPsFQuNCKXvQ2l8P8KDvy+P+TD2urVu3VhtUVb1n2pCamlrxR8fFxYXU1NRKj6mr9+2BZ7r9+vUjJSWl0v2LFy9m6NChtT6gJjxMjVu2bKnxL9KRI0dwc3Pj1q1b9O/fnzZt2tCjRw+N1jZ16lQWLFiAQqFgwYIFvPXWW6xfv/6xjylJEocTD7PuwjrO3jqLjZkNU9pO4flWz1dcpfUw79nixYsxNjZmzJgxVR5HU++ZvsjLy2PEiBEsW7as0rzDHTp04Pr161haWrJnzx6effZZrly5cs9jGls2ZlaHWUwJmMKu2F1sjNrI24fepnHDxoz3Hc8IrxGPNO5Zl78vJSUl/Oc//+HTTz+ttO1h3jNtUCgUGv3E8cDQ3bdvX6136ubmxs2bNyu+TkhIwM3t3l5be3t7srKyKCsrw9jYuMrHPKwH1VhWVsb27ds5c+ZMjTUDODk5MWzYMMLCwurkB/Vh379XX32VIUMqL/f8MO/lHWpJzb7r+1gdsZrLty/j0tCFeR3nMazlsErjaR9U14YNG9i1axf79++v9gdQU+/Z3ft/0Gu/8xh3d3fKysrIzs7G3l7zV4mVlpYyYsQIxowZw/DhwyttvzuEBw8ezLRp00hPT6+yndXc2JyRrUYy3Gs4hxIO8WPkjywNW8oPF37gZd+Xea71c7WaA+JB35fa/EzVtdDQUDp06ICzs3OlbbV5z+qas7NzRRNLcnIyTk5OlR7j5uZW0QQB5e9br169an8wSZJq+vdQevbsKZ06dari68jISCkgIEAqKiqSYmNjpWbNmkllZWWVnjdy5Ehpy5YtkiRJ0pQpU6Rvv/32YQ9ZK6GhoVKPHj2q3Z6Xlyfl5ORU3O7SpYsUGhqqkVrulpSUVHH7q6++kkaNGlXpMaWlpVKzZs2k2NhYqbi4WAoICJAiIyPveYxarZb2Xd8nDQ8ZLvlt8JOe3vG0tPPKTqlEVfJIdYWGhkre3t7SrVu3qn2MNt6zB732wMBAaeXKldKUKVMkSZKkLVu2SM8991yd1lAVtVotjRs3Tpo1a1a1j0lOTpbUarUkSZJ08uRJycPDo+LrhxGWHCZN2jtJ8tvgJ/XY2kNaf2G9lF+S/8DnPcz3ZdeuXdLAgQMltVotHT9+XAoODn7ouh7XqFGjpPXr11e57XHfs9qIi4uTfH19K76eM2eO9Omnn0qSJEmffvqpNHfu3ErPycjIkDw9PaXMzEwpMzNT8vT0lDIyMqo7RLW5+lihu337dsnNzU0yNTWVnJycpAEDBlRsW7RokdS8eXOpVatW0p49eyruHzRokJSYmChJkiRdu3ZNCg4Ollq0aCGNHDlSKioqetAhH8mECROk77///p77EhMTpUGDBlXUERAQIAUEBEg+Pj7SokWLNFLH/caOHSv5+flJ/v7+0tNPP10RwnfXJkmStHv3bsnLy0tq3rz5PbWp1Wrp75t/S8/95znJb4Of9NT2p6Tfr/0ulakq/4GrjRYtWkju7u5S27ZtpbZt21aEmhzvWVWvfcGCBVJISIgUGBgoFRYWSiNHjpRatGghBQcHS9euXdNIHXc7fPiwBEj+/v4V79Hu3bul77//vuLnbMWKFZKPj48UEBAgderUSTp69OgjHetMyhnp1T9elfw2+Ek9t/aUtkRvkUrKqv9jWt335e7a1Gq1NG3aNKl58+aSn5/fPSdMmpSXlyfZ2dlJWVlZFfdp4j17kBdeeEFycXGRjI2NJTc3N+mHH36Q0tPTpT59+kgtW7aU+vbtWxGmp06dkiZNmlTx3HXr1kktWrSQWrRoUe0fj39Um6v6cXGEUElkeiRfnv6S06mncbd057W2r/FU86cwNtLPizUehS5eHKEp4bfC+frM15y9dRZ3S3dmtJ/BoGaDxJVuukvPr0gTKiTkJvDN2W8IjQ/FztyOqW2nMqLVCEyMTOQuTevqU+hC+afSI4lHWH52OTG3Y2hj14a5QXPp6NpR7tKEykTo6ruckhzWnF/D5kubUSqUjPMZx0S/iViaWspdmmzqW+jeoZbUhMaF8s3Zb0jKT6KPRx/eCnqLJo0qLzIqyEaErr5SS2pCroaw7OwybhfdZmjLoUxvNx2Xhi5ylya7+hq6dxSVFfHv6H+zNmItJeoSxrQZw9R2U2lo0lDu0gQRuvopKj2KJSeXEJEeQVvHtrzX6T187B/t8l9DVN9D9470wnS+OfsNO6/uxNHCkbkd5/Jk0ye1cnWbUC0Ruvokuzib5WeX89vl37Azt+PNoDcZ0nyI6DS5jwjde0WkRbDoxCKiM6N5ovETvNfpPZo2kudSW6H60BW/xTpEkiRC40IZunMo/3fl/xjjPYbfh/3OMy2eMYjAnTt3Lm3atCEgIIBhw4aRlZUFlF9Ka2FhQbt27WjXrh2vvfaavIXqqQDHALY8tYV3O75LRFoEw0KG8W34txQ9aOkmQavEma6OSMxL5JPjn3A06Si+9r582OVDvO2rnlBIX/33v/+lT58+lWYvi4+PZ8iQIRUzPj0scaZbvbSCNL44/QV74vbQtFFTPnriIwKdA+Uuqz4RZ7q6Si2p2XppK8NDhnPu1jnmdZzHpsGbDC5wAQYMGICxcfk44s6dO5OQkFDrfZw6dYqAgACKiopQq9X4+vrWOqzrA8cGjnzW4zPW9F9DmbqMl/a+xOITi8kvrbxkvaBdInRldDPnJpP+mMTik4tp69iWHUN3MMZ7TL1YW+v+2cvi4uJo3749PXv25PDhw9U+79y5c6SlpeHp6cmVK1cYO3Ysfn5+2ihZL3Vp3IXtz2xnrPdYtsVsY1jIMI4mHpW7rHpNNC/I4M7Z7ddnvsbYyJi5wXMZ1nKYQfQ2P+zsZadPn2b79u0oFAqKi4vJy8vD3t6eM2fO8OyzzxIVFVVp5q47SkpKCA4O5urVq+Tk5KBUGv4fqboQfiucBUcXEJ8Tz3OtnmNO0BxZFxY1cGL0gq5IzU9lwdEFHE8+Tle3rizssrBejbndsGEDq1evZv/+/TRoUPUvfK9eve5ZieR+ycnJdOvWjaSkJNLT02nYUIxLfVjFqmJWnlvJxqiNeFh5sKT7Eto6tpW7LENU/RlUTRMz1M30EsIdobGh0hObn5CC/x0sbbu0TWMzKOmq6mYvu3XrVsUsdNeuXZMaN25c0+xN0tNPPy1t2rRJaty4sTR9+nSN1myowpLDpAG/DpACNgZI35z95pFnpBOqVW2uijZdLSgoLWD+kfnMPTQXz0ae/Pr0rzzf+nmDaE6ojRkzZpCbm0v//v3vGRp26NAhAgICaNeuHSNHjmTVqlUVS6Lc76effsLExIQXX3wRV1dXTp06pXdLMOmCYJdg/u+Z/+Pp5k+zJmINY/eMJT47Xu6y6gXRvKBh0RnRvH3obW7k3mBKwBQmB0yuVzOBaZIYMlY39l/fz8LjCylWFfNBlw8Y0rzyZPpCrYkhY9omSRKbojcxZs8YCsoK+GHAD0xrN00ErqBz+jbty69P/4q3nTfvHn6XBUcXUFBaIHdZBkuErgZkFWUx86+ZLA1bStfGXfnt6d8IdgmWuyxBqJZLQxfWPbmOKQFTCLkawujdo7lyW/vrk9UHInTr2IW0Czy36zmOJh1lXsd5fNPnG2zNbeUuSxAeyNjImBntZ7BmwBqyi7MZvXs0v13+jQc0QQq1JEK3jkiSxC8xvzBh7wSMMOLnwT8zxntMvessE/RfZ9fO/PbMb3Rw6sBHxz/iw2MfUqwqlrssgyFCtw4UlhUy/8h8PjnxCZ1cO/HL07/ga+8rd1mC8MgcLBz4vt/3TAmYwo6rOxgfOp6kvCS5yzIIInQf083cm4zZM4ZdsbuY1m4a3/b9Fmsza7nLEoTHpjRSMqP9DFb0WcHNnJuM2jWKY0nH5C5L74nQfQwnkk8wevdoUvNT+b7f90xtO9UgpmAUhLv18ujFliFbcLBwYOq+qfxw4QfRzvsYREI8gjvDwV778zUczB3Y+tRWurp1lbssQdCYpo2asmnwJp5s+iTLzy7nnUPviHl6H5EYNFpLJaoSFp9czPYr2+nl0YtPu31arxeHFOqPBiYN+KzHZ7Sxb8OyM8u4kXuD5b2X49zQWe7S9Io4062F9MJ0Jv0xie1XtjM5YDLLey8XgSvUKwqFgol+E1neezlx2XGM3j2ayHQxn3FtiNB9SNeyrjF2z1guZV7iXz3/xevtXxftt0K91btJb34e/DOmSlNe2vsSoXGhcpekN0RqPIQTyScYt2ccRWVFbBi4gYGeA+UuSRBk18q2FZuf2oyvvS9vH3pbdLA9JBG6D7Djyg6m/jkV54bO5T9gDmL8rSDcYWdux9oBaxncbDDLzy7no+MfUaYuk7ssnSZmGauGWlKz8txK1l5YSxfXLnzZ60usTK3kLktjSktLSUhIoKhIf3qkk5OTcXV1lbuMh2Jubo67uzsmJiZyl6IRd/++dHXrypc9v6ShSb2eXF6sHFEbpapS3j/6Pnvi9jDCawTzO8/HxMgwf1nuiIuLw8rKCnt7e725dPnixYv4+PjIXcYDSZJERkYGubm5NGvWTO5yNOrXy7+y+MRivGy9+Lbvtzg1cJK7JLlU+0skhozdJ780nzcOvMHx5OO83v51XvV/VW9C6HEUFRXh6emp0dealJREWlpaxYrA7u7uWFuXX72XnJxMeno6CoUCDw+PivsNgUKhwN7enrS0NLlL0bjnWj2HSwMX5vw9hzF7xvB93+9padtS7rJ0imjTvUt6YTov732ZsJQwPn7iYyYHTK4XgXuHNl6rs7Mzvr6++Pr6VgRrYWEhmZmZ+Pr64uXlxY0bNwyuQ6Y+/Rx1d+/OhoEbKFOXMWHvBMJvhctdkk4RofuPmzk3GR86nrjsOL7p8w3DvIbJXVK9kZWVhZ2dHUZGRpiZmWFmZkZ+fr7cZQmPwdvem58H/Yy1mTWT/5zMkcQjcpekM0ToAjGZMYwLHUdOSQ4/PPkDPdx7yF2Swbp16xZRUVHEx8dTVlbey11aWoqpqWnFY0xNTSkpKany+WlpaVy8eJGLFy9WPF/QTe5W7vw06CeaNmrK6/tfZ3fsbrlL0gn1vk03/FY40/ZPw8LYgvX919PcprncJem1mJiYKsPQzc0NR0fHitEGSUlJJCQk4OnpWav9Ozo64ujoCJR3pAm6zcHCgfVPrmfmXzOZd3geWcVZjPEeI3dZsqrXoXss6RizD8zG0cKRNQPW4GbpJndJeq9169YP9TgHBweuXr0KgImJyT1ntiUlJfec+cph586d7N69m5ycHCZNmsSAAQNkrUefWZlasar/Kt7++22Whi0lrySv3vWX3K3eNi/sv76fGftn4GHlwcZBG0XgasHdwZqVlYW5uTkANjY2ZGZmolarKS4uZvHixXTt2pVXX32Vnj17olKpatxnjx496ryp4dlnn2Xt2rWsWrWKbdu21em+6yMzpRlf9vqSIc2HsDJ8JcvPLje4ztKHVS/PdEPjQnn38Lv4OvjyXd/vxKTjWpKQkEBhYSFQ3m7btGlTACwsLLCzsyMqKoqEhAQuXrzI+fPn+fbbb/Hz80OpVFa7T1NTU/r27cu2bdsYM6buP7YuWrSI6dOn1/l+6yNjI2MWd1uMhbEF6yLXUVhWyDsd36l/c5hIklTTP4MTcjVECtgYIE0InSDlleTJXY7OuHjxotwlSJcuXZLc3d0lFxcXqV27dlK7du2kuLi4iu29evWS/vvf/0qSJEnz58+XXnzxRUmSJCk8PFwaNGjQIx/3/v3OmDFDUqvV0ttvvy39+eefj/6C7qML77EuUKvV0udhn0t+G/ykBUcWSGWqMrlL0oRqc7Venen+dvk3Pj7+MZ1cO/FNn2+wMLaQuySd9NHvUVxMyqnTffo0bsSHT9c8b0Xr1q2ZMGECnp6ejB8/niZNmtzT0fbRRx/xwQcfcOvWLc6dO8fSpUsB8PPz49SpU5X21717d3Jzcyvd/8UXX9CvX79q9/uf//yHFStWsG/fPrKzs7l69SqvvfbaI75y4X4KhYI5QXNoYNKAVedXUawqZnG3xRgb1Y84qh+vEthyaQtLTi6hm1s3lvVehpnSTO6ShCpcuHCBoUOHkp6ejo2NzT3bevTogSRJfPXVVxw8eJCbN28CoFQqMTU1JTc3Fyur/82Pcfjw4Yc65v37VSqVzJw5k5kzZ9bZ6xLupVAomN5uOmZKs/L2XSSWdFtSL4LX8F8hsDl6M5+GfUpvj9580fMLTJXy9ozrugedkWpSVFQUfn5+FBUVVZp858KFCyQnJ2Nvb39PuAIUFxdXdMzd8bBnujXtV9CsV/xfQYGCZWeXgQRLuht+8Br2q6P8DPfTsE/p49GHL3p+gYnSsCeu0We5ubmYmJhgYWGBhYUFKpWKoqIizM3NSU5OZsyYMYSEhDBz5kz27t1LkyZNAMjIyMDBwaHSDF4Pc6Zb1X4HDhTzJWvTJP9JKBQKvj7zNWD4wWvQ3YZbL21lycklFWe4InB1W2RkJH5+fhVfDxgwgCNHjlBQUMDw4cP58ssv8fb2ZsGCBXz00UcVjztw4ABPPfVUrY/3oP0K2jPRbyJvBL5BaHz5yCKDnpO3pl42GXr86sy2S9skvw1+0ox9M6SSshK5y9F5utizfubMGWns2LHVbo+KipIkSZKGDRsmxcTEaKusR6aL77GuWX9hveS3wU+ae3Cuvo9qqF+jF7Zf2c4nJz6hp3tPvuz1pTjD1VMdOnSgd+/eqFSqasfqlpSU8Oyzz9KqVSstVydowst+LyMh8fWZrzFVmvJx148NbhyvwYXu7tjdLDy2kK5uXfmq11ei00zPTZw4scbtpqamjB8/XkvVCNow0W8ixWXFfHf+O8yNzZnfab5BXTJsUKG7//p+5h+ZT5BLEMt6LROBKwh66rW2r1GkKmJ95HpMlabMDZprMMFrMKF7OOEwcw7NwdfBlxV9VmBubP7gJwmCoJMUCgWzO8ymWFXMzxd/xlxpzswOhjFu2iBC91TKKd44+AYtbVryfb/v6/uCeIJgEBQKBe8Ev0NRWRFrL6yloUlDJvlPkrusx6b3oRuVEcXrf72Om6Ubq/uvppFpI7lLEgShjigUCj7o8gGFZYUsO7sMazNrRrYaKXdZj0WvQzcuO46pf06lkWkjVvdfjZ25ndwlCYJQx4wURizqtoickhw+OfEJjUwbMcBTf+c31tuxGCn5KUz+s3wi5DX91+DS0EXukgRB0BATIxO+6vUVbR3b8s7hdziWdEzukh6ZXobu7aLbTP5zMnkleazqtwpPa0+5SxIEQcMsjC1Y0WcFzaybMfvAbCLSIuQu6ZHoXejml+Yzbd80kvKS+KbPN3jbe8tdkiAIWmJtZs3qfquxN7dn2v5pXMu6JndJtaZXoVuqKuXNg28SnRnNv3r8i2CXYLlLEmrh2rVrREVFERUVRUREBFFRUUD5DGFnzpyp2Hb9+vVKzy0sLJRt6R5Btzg2KF/T0MTIhMl/TiYlP0XukmpFb0JXkiQ+PPYhx5KO8WGXD+ndpLfcJQm11KJFC3x9ffH19cXW1hZbW9uKbebm5hXb7izjc7f169czfPjwh166RzBsHlYerOq3ioLSAqbum0pOSd1Ouq9JejN6YfnZ5fwe+zvT201nmNcwucsxbKHzIOVC3e7TxR8Gla/0IEkSt2/frnK+hOjoaKZMmUJWVhbjxo1j9erVXL16lU2bNrF58+aKx/Xu3ZsxY8bg4+PD+++/T3Z2NitWrODZZ5/l3XfffeT10nr37s17771H//7979mvoHta27VmWe9lvLbvNWYfmM2qfqv04ipUvQjdzdGbWRe5jpGtRjIlYIrc5QiPKS8vD2Nj43smHS8uLiYiIoIXXniBNWvW0K1bN6ZOnYqfnx8lJSXExsbi6elJWloaaWlpvPzyy6xYsQILC4uKJXZAM0v3CLqrk2snPun6Ce8efpf3j7zP0h5LdX6CHJ0P3f3X97M0bCm9PHoZ3MQXOuufM9JHERMTU2WbqpubGzb/3M7MzMTO7n9jqk1MTAgICGD79u0EBgbSqFEjVCoVPj4+ODk53bN0j6OjI46Ojvj4+LBixYp7ltgBzSzdI+i2Ic2HkJqfyrKzy3Bp6MKbQW/KXVKNdDp0I9IimHd4Hv4O/nze43ODnk3eULRu3brG7XeaFnx8fCruMzIywsjIiIiICIKCgjAzM6OoqIjIyEgGDhyIhYVFlUv3pKWl4erqKpbuEZjoN5GU/BR+jPoR54bOjPF+tOYlbdDZ8/CbuTd5/a/XsbewFyv3GpCcnBzMzc0xNf1f21tpaSmSJGFvb090dDRFRUVER0fz73//m7Zt22Jra1uxdA/8b4mdFStWYGlpyd69eyv2VdPSPeHh4ZX+3R24dy/dc/9+Bd2mUCiY13EefTz68FnYZ+y/vl/ukqqlk6GbXZzN9P3TKVOX8V2/77C3sJe7JKGO3N+0AOVtvFFRUQQHB3Ps2DFGjx7Nxo0b8fT0pHnz5kDVS/e0aNFCLN0jVFAaKfmsx2f4O/oz7/A8otKj5C6pajUtK6Ht9S0kSZKKy4qll/e+LLX7qZ0UlhwmRwn1ki4sJZObm1tx+/PPP5fmz59f8XVVS/fcWa7nbrq8dI8uvMf1QVpBmjTg1wFS7229peS8ZLnKqDZXdepMV5IkPjr+EadSTvHxEx+Lix/qma+//hpfX1/atWtHfHw8CxYsqNh299I91RFL9wgADhYOrOy7koKyAmbsn0FBaYHcJd1DIUlSTdtr3FjX1l1Yx7Kzy5jadirT2k3T5qHrvejoaLy99euS6osXL97TIafr9PE91mdHEo8wff90urt1Z3nv5SiNtDoSpdphVjpzprvv+j6WnV3GIM9BTG07Ve5yBEHQc93cujGv4zz+TvibL898KXc5FXRiDFZURhTvHn6XAIcAPu76sRiLKwhCnRjdZjTx2fH8fPFnPBt58nzr5+UuSf7QvVVwi5n7Z2JjbsPyPsvF2maCINSpucFzuZF7gyUnl+Bu5c4TjZ+QtR5ZmxeKyoqYfWA2uaW5rOyzEgcLBznLEQTBABkbGfOvHv+imXUz5v49lxs5N2StR7bQvTNS4UL6BT7t9imt7Wq+kkkQBOFRWZpa8k2fb1AoFLz+1+vkleTJVotsobshagO7Yncxvd10+jbtK1cZgiDUEx5WHnzR8wuu51zn3SPvopbUstQhS+geTjjM12e+5knPJ8WsYYIgaE1n187MDZ7LwZsH+S78O1lq0HpH2vWc67xz6B1a27Xmk66fiJEKgiBo1YttXuRS5iVWR6ymlW0rra8srNUz3fzSfGb9NQulkZJlvZeJSWyESvbv38+4ceMq3S+W6xHqikKhYEHnBQQ4BvD+0feJyYzR6vG1FrpqSc38I/OJz4nni55f4Gbppq1DC3rk/PnztG/fvtL9YrkeoS6ZKk1Z1msZViZWzDowi9tFt7V2bK01L6yNWMv+G/uZGzSXTq6dtHVY4RF8FvYZlzIv1ek+29i14Z2O7zzwcefPn8fZ2ZkePXoQHx/P+vXr6devn9aW66ktsbyP/nJs4Miy3st4ae9LzD00l9X9VmvlUmGthO7hhMN8G/4tTzV/inE+lT86CsId58+fZ8yYMRw6dIgdO3awadMmevToUbFczx0fffQRc+bMqfPlempLLO+j3/wd/Xm/8/t8cOwDVpxbwezA2Ro/psZDNyE3gXmH59HKthUfdvlQdJzpgYc5I9WE0tJSMjIyeOuttyq+trGxuWe5njuqW1bncZfruaNfv36kpFRe2nvx4sUMHTr0gXUI+mOY1zDOp51nXeQ6/B38NT6EVaOhW1RWxJsH30RC4uteX4uOM6FG0dHRtG3bFiOj8q6GiIgI/Pz8tLpczx379u17qJrF8j6G4b1O7xGTGcP8o/NpYdMCT2tPjR1LYx1pkiSx6MQiojOjWdp9KR6NPDR1KEGHZGZmEhkZyenTp8nPz79nW3JyMhcuXCAyMpLs7OyK+7Ozs4mMjGTXrl20aNGi4v6IiAgCAgK0tlxPbYnlfQyHqdKUr3p9hamRKbMPzNboHLwaC93frvxGyLUQXmv7Gj3ce2jqMIKOsbCwoGXLlpXO+goLC8nMzMTX1xcvLy9u3LhRMZP+jRs38PLyIiMjAw8PDwoLCwGIjIzEz88P0PxyPbUllvcxPK6Wrnze83PicuL48NiHPGCu8UdX07ISj7pOxYW0C1L7n9pLU/6cIpWpyh51N4IW1fVSMpcuXZLy8vIqvk5KSpKSkpIqvo6JiZFyc3Ol3Nzce5bXuf9xd4jlegRtWRuxVvLb4CdtjNz4OLupNlc10qZrpjQjyDmIpd2Wanu2dkFHlZaW0rBhw4qvTU1NKSkpqbh99/33N0vA/5brSUlJITMzE6DSRRBiuR6hLkzym0RsVizODZ01sn+NhK6XrRdrBqzRxK4FHRATE1PlVV9ubm6VRhnUpYkTJwLg4uIClC/XczdTU1PGjx+vseML9YNCoWBJ9yUa27/sk5gL+qd169pPw2liYlJxZgvlZ6V3znDvv//+TjBBMCQ6s0aaID9JUx0HgI2NDZmZmajVaoqLiykuLqZhw4Y0bNiw4mu1Wk1mZqZGz5blosn3VtAv4kxXAMDc3JyMjAzs7e0f6wKW27dvc+PGDcrKyrhy5QoNGjSgVatWWFhYYGdnR1RUFAqFgiZNmlQcp0mTJly+fBkABwcHLCwMazy3JElkZGRUGjss1E86tQS7IJ/S0lISEhIqXYSgy5KTk3F1dZW7jIdibm6Ou7u7aDqpP6o9cxGhK+itoKAgTp8+LXcZglCVakNXtOkKgiBokQhdQRAELRKhKwiCoEUPatMVBJ2lUCj2SpI0UO46BKE2ROgKgiBokWheEARB0CIRuoIgCFokQlcQBEGLROgKgiBokQhdQRAELfp/9cwK9QqbllgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sympy import symbols\n", "from sympy.plotting import plot\n", "x = symbols('x')\n", "p1 = plot(x**2, show=False, label='$f(x)=x^2$', legend=True)\n", "p2 = plot(x, label='$g(x)=x$', show=False)\n", "p2.extend(plot(-x**2, label='$h(x)=-x$', show=False))\n", "p1.extend(p2)\n", "p1.save('plot.svg')\n", "Markdown('![](plot.svg)')" ] } ], "metadata": { "interpreter": { "hash": "96fc3968b0459c7bb0304f66d2259bbe1d74f60096901795baa92b56e1ba9010" }, "kernelspec": { "display_name": "Python 3.10.2 ('AN2_Analysis_2-DUdzbZjr')", "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.2" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }