{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " First Leaf (基本操作) \n", "
\n", "
\n", " cc by Shigeto R. Nishitani, 2017-10-31 \n", "
\n", "\n", "* file: /Users/bob/python/doing_math_with_python/first_leaf.ipynb" ] }, { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 入力とヘルプ\n", "\n", "pythonの動作環境としてnotebookを使っていきます.notebookは,文章フォーマット(title, head, 目次, 表),数式(tex記法), グラフ作成などreportを作成するための基本的な機能が備わっています.さらにhtml, latex, pdfなどへの出力が可能なため,科学技術に関連するすべての分野で社会人になっても標準的なツールとして使うことになります.read -> eval -> printというloopでcodingを進めていきます." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## よく使うkeyboard short cut\n", "1. 入力はshift+enter\n", "1. 改行はenter\n", "\n", "1. command mode(cellが青色)\n", " 1. hでhelpを表示\n", " 1. escでedit modeへ\n", " 1. ^jは下にcellを挿入\n", " 1. ^kは上にcellを挿入\n", " 1. ^xでcell cut\n", " 1. ^yでcell paste\n", " 1. ^mはcellをmarkdown cellに変更\n", " 1. yでcode cellに変更\n", "1. edit mode(cellが緑色)\n", " 1. emacsのkeybindが使える.うまくいかないときは,closeして再openするといい.\n", " 1. escでcommand modeへ" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 数式処理libraryのimport\n", "\n", "pythonはいろいろな用途に対応する汎用言語です.数式処理をさせるにはそれに必要なlibraryを読み込んでおく必要があります.sympy(symbolic python)がそれです.libraryのimportの仕方は幾つかありますが,全部読み込んでくれる\n", "``` python\n", "from sympy import *\n", "```\n", "\n", "から覚えてください." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## restart\n", "\n", "何回も入力を繰り返して,特にimportをいろいろしたり,変数への代入を繰り返すと,前のものが残っていて,挙動がおかしくなります.そういうときは,jupyter menu barにある[kernel]->[restart]で入力を一旦クリアしてもう一度関連するcode cellを入力しなおしてください." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## help\n", "helpの表示は関連するlibraryをimportしておいて,そのあと,「?」マークに続けてキーワードを打ち込めばいい." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from sympy import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "?Rational" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## その他の参考サイト\n", "* [sympy tutorial](http://docs.sympy.org/latest/tutorial/index.html)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# print\n", "\n", "出力が複雑な式だと,ひとめでわかるように見やすくprintしてくれると嬉しいです.jupyter notebookではmathjaxをつかってlatex形式から綺麗に表示してくれます." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\int \\sqrt{\\frac{1}{x}}\\, dx$" ], "text/plain": [ "⌠ \n", "⎮ ___ \n", "⎮ ╱ 1 \n", "⎮ ╱ ─ dx\n", "⎮ ╲╱ x \n", "⌡ " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy import *\n", "from IPython.display import display\n", "init_printing(use_latex='mathjax')\n", "x = Symbol('x')\n", "com1 = Integral(sqrt(1/x),x)\n", "com1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## その他の環境で\n", "\n", "notebookではない環境ではprint(pretty(com1,use_unicode=False))が比較的綺麗.なにも明示せずにOutで帰ってくるmathjaxが一番読みやすいんですが,途中の経過を自動で表示してくれるわけではありません.そこで,比較的覚えやくて綺麗なpprintを多用します.\n", "\n", "その他の明示的な出力コマンドは次の通り.\n", "```ptyhon\n", "str(com1)  # 文字列で\n", "\n", "print(com1)  #標準的な出力\n", "pprint(com1,use_unicode=False)\n", "print(pretty(com1,use_unicode=True))\n", "print(latex(com1)) # latex表記\n", "srepr(com1) # 内部での厳密な取り扱い(Advanced Expression Manipulationをgoogleへ)\n", "```" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " / \n", " | \n", " | ___ \n", " | / 1 \n", " | / - dx\n", " | \\/ x \n", " | \n", "/ \n" ] } ], "source": [ "print(pretty(com1,use_unicode=False))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "⌠ \n", "⎮ ___ \n", "⎮ ╱ 1 \n", "⎮ ╱ ─ dx\n", "⎮ ╲╱ x \n", "⌡ \n" ] } ], "source": [ "pprint(com1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 代数式\n", "\n", "例えば,\n", "$$\n", "(x+y)^2 = x^2 + 2xy + y^2\n", "$$\n", "という展開をおこなったり,微分,積分,線形代数計算を$x,y, A, b$\n", "なんかのシンボルでそのまま変形したい時があります.\n", "\n", "こういうことをおこなってくれるシステムが数式処理システム(Computer algebra systems)と呼ばれるものです.\n", "代表的な商用製品としては,Maple, Mathematicaがあります.\n", "同じコンセプトでフリーのものには,Octave, Maxima, SciLabなどがあります.\n", "\n", "これをpython上で実現しようとしたのが,sympy, sageです.\n", "sageのほうが入出力が綺麗なんですが,残念ながらwindowsでは動きません.\n", "したがって,sympyでしばらくどこまでできるかを試してみます.\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 2 x + 1$" ], "text/plain": [ "2⋅x + 1" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = Symbol('x')\n", "x + x + 1" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 2 a + 1$" ], "text/plain": [ "2⋅a + 1" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = Symbol('a')\n", "x + x + 1" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'a'" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x.name" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 2 x y$" ], "text/plain": [ "2⋅x⋅y" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x,y,z = symbols('x,y,z')\n", "s = x*y + y*x\n", "s" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 2 x^{2}$" ], "text/plain": [ " 2\n", "2⋅x " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = x*(x+x)\n", "p" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 2\n", "2⋅x \n" ] } ], "source": [ "pprint(p)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\frac{2 x^{3}}{3}$" ], "text/plain": [ " 3\n", "2⋅x \n", "────\n", " 3 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p.integrate(x)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\frac{2 x^{3}}{3}$" ], "text/plain": [ " 3\n", "2⋅x \n", "────\n", " 3 " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integrate(p,x)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "32\n", "128/3\n" ] } ], "source": [ "print(p.subs({x:4}))\n", "print(p.integrate(x).subs({x:4}))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# plot\n", "\n", "簡単なplotです.\n", "\n", "1. 複数の関数のplot, 色の変更まで.\n", "1. parametric plotして円をaspect_ratio 1:1で.最後に追加.\n", "1. sin(x) * cos(y) ぐりぐりはできなさそう.Axes3Dでできることを確認.\n", "\n", "はじめの%matplotlib inlineはplotをnotebookのなかに表示させる呪文です." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%matplotlib inline\n", "\n", "from sympy import *\n", "x = Symbol('x')\n", "plot(sin(x))" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "p = plot(sin(x), cos(x), (x, -pi, pi), ylim=[-0.5,1],\n", " legend=True, show=False)\n", "p[0].line_color = 'b'\n", "p[1].line_color = 'r'\n", "p.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9eZAc2X3n93l51d33AXQ3gEYDGGCA4cyAc3AoifK1omR6rTDtdQSlWK1phg5aUpi7UtCiwiF5QxHekEK7Fm1zY6mVTdmyRFGkLC6XOmiRokiJx8xghgTmwuDo6vvurvvI6+XzH9V19QH0UUD3zOQnAoGuqsyXWVlV75u/3/sdQilFSEhISEjIcUM76hMICQkJCQnZiVCgQkJCQkKOJaFAhYSEhIQcS0KBCgkJCQk5loQCFRISEhJyLDHu83oY4hcSEhIS8qAROz0ZWlAhISEhIceSUKBCQkJCQo4loUCFhISEhBxLQoEKCQkJCTmWhAIVEhISEnIsCQUqJCQkJORYEgpUSEhISMixJBSokJCQkJBjSShQISEhISHHklCgQkJCQkKOJaFAhYSEhIQcS0KBCgkJCQk5loQCFRISEhJyLAkFKiQkJCTkWBIKVEhISEjIsSQUqJCQkJCQY8n9GhaGhBxblFJIKXEcB8Mw0HUdTdMQQiDEjv3PQkJC3kIIpe7ZNDfsqBty7FBK4fs+UkqUUti2vU2QdF1v/NM0DV3XQ+EKCTm+7PjDDC2okLcMdWHyfR+gITZ18WndLggCpJRkMhkqlQpjY2MADbFqFa+61RUSEnK8CAUq5NhTF5tqtcrrr7/O1atXG4Kykweg1VISQiClRNd1lFIopfA8D9d120QpFK6QkONHKFAhx5YgCBquPKiJje/7+xINIURDxHZz8dVf930fz/PaXguFKyTk6AgFKuRY0WrlBEEANIVF07RtFtP9hKJVoO61zU5j3U+4NE1rC84IhSskpLOEAhVyLKivG/m+v02Y6mia1nhtr+xFoO61b+v/recKIKXE932UUo3jtAZkhJGFISGHIxSokCNlL8JU5zBi00n2Ilzf//73eeyxxzAMo7Htbq7CULhCQnYmFKiQI6Gew9Rqgdxvsj7IRL6TW/BB0SpcrYK01eLauk/d6jIMIxSukJAWQoEKeajsJEya9mALmhy11bWbxQXtIfGu67a91mpxha7CkHcioUCFPBS2Jtc+DGGC4+MW3I17RRbWhav1ud1chWGARsjbkVCgQh4odWGanp5mbGzsoQlTneMuULuxF+GqC1YdTdPwPI94PL7NXRgS8lYkFKiQB0J9Eq2vuczNzXH69OmHfh7HSqBUgAgmERQQygblokSEQH8MRNeehriXcCmluH79OlevXm27CQhzuULeqoQCFdJRdkquPcp1kyMXKFVFyO8ivL/DYB0jeB6BImAYRAJNpVEIlJjA19+LNN5HoD+978O0XmPTNJuHD5OQQ97ChAIVcmjulVz7ziVA+P8ezfl/UHQhRIQAB09cQpECbDQhUGoUoRYItAi6/+8w/D9Aak/jWx8l0J/a91G3XvMwCTnkrUwoUCEHZj85TEfFUVhQ0vsOp4Z+H+GvItU0hn4FPbgOgKIPITSEWgcgAKT2LEJJdAVCgB68hG7/NI7+nyGtn0FoZzp+jodJQm5d3wojC0MeJKFAheybrcK0Vzfe1kX9h8HDFCgpl/Hd30MLphnofh4U6PqzCHmdgAiKKIgedJVu7BNolyB4GfDxiSHEVbRgCk8bJ/D+PXhfRUX/Z4T5Dx7Ke9ircG3dx/d9TNMkGo2GwhXSMUKBCtkzB0murVMvU6Tr+kM40yYPS6Bs50v43r9BJ4UuJJnKI8QTPejyJcAHbHTtUQhuI7RLaCKGCDy0YBrBZvsQqhC8REVcRSgbDQmUwP4YSn4YIv8MIY7mJ3s/4VpaWsI0TYaHh9v2CZOQQw5DKFAh96UTybUPqqKD53msrq4Si8Ua4dWtPGiBUkpRsv8XlPenCO0SQXAThyxWxERXg7ApPogxCK4DHip4FQn42iNALxanMNUbALjaVQL5Ym1s/Wk0eQOBBO//Qqo8evQTCJF8YO9nv7QKTT3Yok6YhBxyWEKBCtmVTibXCiH2Xej1XufleR7T09Osra3R39/faEwopSQSiZBIJEgkEliW9cAESsoCmfLHiWg2LhCnhCILgOtcIBJ/s7GtLrpALTQeB9qTqOB7ADiAq51DE2Mo+ffNbeRLKO0CmvLxRBe293n04C7J+GcQIv5A3tNBCYJg23djP0nIdcIk5JBWQoEK2UZdmAqFAnNzc1y6dOnQybUHqUS+27m9+eabZLNZTp8+zXPPPbet2oLjOJTLZcrlMplMhkKhwIsvvtgmXPV/B3U5Vr2brFV+mYQAR94loj+OCl5BKROlXcLHw+UJhKYjSKLUIrrSEUKiSCLVdNt4gVzFFusY2lUM+QpC1CwvFSxQYgKlVgCQ8nuUKj9LMv57CBHb8focBftZXzxoEnIYEv/OIxSokAZbk2uFENi23ZFJ4LACVa1WmZqaolKpcObMGS5dutRw37UKlBCCaDRKNBqlv78fz/N47bXXePLJJ9uEa2FhgXK5TBAERKPRNtGKx+P3FC7bn2Sp/DGS+jBB8AJKDRDQjSuu4AaTxISBFn2FagAEYGjjBME0EMEQ59G1U2jBS7RKvtQfQclrePIaUjuPpSporOOIs7jyBpoYxOAkiiWkfJFy5b8jEf9dhIgc+Jp2kp0sqP1yvyTk3Toh+75PNBrFNM1QuN5mhAIVsmtyra7rHXPLHVSgKpUK6XSaYrHIxMQExWKR4eHhfd2t1+/GW4WrjlIK27bbLK5KpbKrcHnBInPln8cQChHM4GnPoSOo+N8CQBcn8OUrjfEN7XGCoP7YwQ+WqQYzAET1p7HUNEL04MuXG/sEwV1sUujaD2HLr9eeU2v4YgiDEyiW8eX3yFd/i+7Yr7Vdi6OamB9khOa9hAvg5s2bTExMEIs1LcrQ4np7EArUO5S9JNd2yi1XH3s/7qdSqUQ6naZarTIxMcGVK1cQQjA7O7ttnHtNjvc7rhCCWCxGLBZjYGCgbcytwlWuzhMZ+00MIw/+JXLmTQheJalFG/tZ+ii+XGo5QqXteJr+CMhrANjyGjYWpn4ZTaURonmtNW2EnP9tYpuuQ4BAreKLYXTxBKUgh+t8jkD00Rf7xXtfzIdAPU/qYVL/zJVSmKbZsHrDJOS3D6FAvcPYT3Ktrus7LmQfhL2KXaFQIJ1O43keExMT9PX1bbMQ9iN0B43i2ypcjr/BG/lfxdIMdN4N1ncA0J1LqOhrAEi/G4/r1E9XE48SBDdbRk3hyjfajqNpj1D0/x5TmyAuqgg1DxhUAgfwqMo3ielPoIIbmycWJxv4qGADgJz9b4ga7yJu/gf7fo+dpJ4Pd1THbhXHwyQhhw0ljxehQL1DOEhybSctqPuNlcvlSKfTKKWYmJigt7d313EediCA4+f5Xv6/JaWZlIMy/cYSXgACi3g0g69dwVfdYFgU5SIqCPA8F4IIlnaZqOFhmasE6ixKv9E2tqdqd/hekKZAjKTxNDo6nn9tcwufqrxJTH8C1BI56eCpRWL6E0j5PUCxWv4VRlN/gql3vuLEXjlKgZJS7inY5aBJyLtZXKFwPXhCgXqbc5jk2k7+AHcTqEwmQzqdRtM0zp07R3d3933PqXWc+nvZzc132DwoP6jycu4jmEJSDRbpMR7FC76H0C4jOMmK/zxK5hCYRLUIUuRBBxX0ocfexEPhAUoZaNIn6l/Esu4gRIDjnEVZdxrHUlQpyxkCLqIpgRD18/ax5SRSezeeegGAqrxBQn8GT14jUAVWyh9jJPXZA7/Pw3IULr7WYx/mu3o/4QqCAMdxtu1TF6q6ezEUrs4TCtTblKPoXHsvWoVFKcXGxgbpdBrLsrh48SKpVGrP4+zXxXdQlFK8nP1F3KCCqa+hlIYmkhR5nIqXpkevyw8kjUdx5PebO8tBYKPxMGpcocSruECUU3RpQ2hmha0O1FJpGBl7GdN/nLjxKkLbFGP9cbLebRLaGFLNA1CWN0hol/GCNwhUwGz5d4EfOvD7PQxHUcaqlQdx7N2EC5oeiZmZGaLRKENDQ43XwiTkzhEK1NuM1sCH4yBMdeoW1OrqKul0mng8zuXLl0km91cV4WHW1ruR+xfk/BWGrRSBEhj6o6y4tWi9pH4WN7jVsnW55W8dzVpoG0uq5mK9HawgieGhkRLnQE0CoIk+gtgcAJ7xJmX/MeLGa0hvmKz+GkIoyl6CqBYHrQJIqmoZQ/thZr1XUd7nMaK9wDMP4Grcm06Emb+VqAtOEATbAjR2y+UKk5D3TyhQbxPqybW+7/P888/z3ve+99hMGEopyuUyS0tL9Pf38/jjjxOPH6wSwsNag7pd+DwLzrdJGUmU6CXjlxgQa43XIyJGtf63Noojbzdei+mXcUQz1FwXI1Rlq5gBYhBbXscJTHrNH0CTLyC08yiuNzbxjVtI4yk8UUYEBQACbRXXn8AwbqFpilJpjIqWIzAVQoA/+Dk8+V9i6ntrgNgpjtqCOiq2rn+FScidJRSotzg7JdceF4IgYHl5menpaTRN4/Tp04yPjx9qzE6WTNqNxer3uF39POBjaYOsuK+T1E5S2RQZQ3Rjb0bjGWIAUzsH1C1BBSKOallD0rVRCJab70HFKPu3Nrf2yHg3SBpPE8jFbefiKxNbDAMzzeeMNHHzWQSKQqRWTimuLuOI18HI8+Lsr2Gt/2Pi8TiJRIJkMkk8HicWiz2w78c7zYKqI6XcVv9xJw6ahPxOF65QoN6i7JZcC0dXObz13BYXF5mdnaW/v5+nnnqKpaWlPf2Q78eDdvGVvHW+k/3fMEWeHvMJcv5LAKSMbso+GKKHmP4EnspQkGs4skg8mMRTeQBM0YunlhHBID3mCAk9jq8KbcewjCtU/fZovkBFKQQJurRRgs2afQKLjL+OHWzQb9YCIuq4QZVS0LRCbTFFRAzjqhWC1IucPflfE/UfpVQqkc/nWVpaolqtomlaQ7jq/6LR6KEnvdCCOhj3S0J+p3dCDgXqLcReO9fW85c6IVB1i2Uvd8dSShYWFpibm2NoaIinn34ay7KAzrnmHqRAKaX4q41/jmADjwF0URMWQ8QJlIOmPcWiO0OvWqAa1ESkx7hARTaLwsaNM+S96yjNJSun8XiUvL9An/EEKV3hyNdwguyWI+vk5QJukCGnuunRJwhUGkt/Atut5VFteK/TbzyGF7yGRoI1v4pUZUy6keQJsNHEKCpYRQjFZOW3eHfPH5NMnmg7kpSSSqVCuVwmn8+zuLiIbduHFq6jsqCOqvZgnU79zrZyv8jCunC99tprPPbYY41tt7Y20XX9LS1coUC9Bdhv59oHUaLoXpOP7/vMzc2xsLDAyZMnefbZZzFNc9s4nUj67WRu1lb+JvM7eMEGAoMePUlJ3iamjWGIcaacmvXSpY9QDaYa+xii/X36QX7LqLXJK+NPk/GhR3+WqNYeshzXL7Pm1dawPJUnI+MMGE+w7rUGWgTk5ALd+hmUGKLqbrr2jEeRm6WVynIS3T6HEV/FVWe4UfxDnu7+aPvZ6DqpVGpb1OS9hGtrgd1IJLLjxHkUE+FRuxYflEDtxlbhcl0XXdd3TUJeXl7mk5/8JJ/+9Kcf2jl2klCgjjH1UHEp5b4613ZKDOpj7SYIvu8zMzPD0tISo6OjPPfcc7u68TRN2+aqOAitFlSrMALE43GSyWRjIt3Pmsvrxb9muvoSEWGjC49uI4GvnmLaTnPCaq4fJfRu8pu5nBoWZTnZeM0SQ5RlU7yEilDym68D+CLGtDPJSetpNHUHqfI4qj05VKoKZdUDQocW96BUVTwuknGb61E5/yb95hOUN12GUqtSDs6R8aYRzizn4j9Kr3n2vu//XsJVL/eUzWaZn5/HcZxtwvWg1wV342ELxE7HPw5rb7tZXPl8nnx+603TW4dQoI4hh0muhc6WKNppLNd1mZmZYXV1lbGxMd773vfed5LolOUjRK29+NTUFIuLi4yMjPD00083aueVSiWKxSLLy8uNNZdqtcrs7OyuFsCGs8iLhc/jSEHc9Og2Jlhyc5Rklh79BCU5XT86VdkUh27jHGX5WuNx3BjB9Vabj/VzFGRLqSOlU/BrYeRL7l0iIsWIdYV1r1kodvNqseGv4wYOfcYYXjDfeD7jlzG088igGe2X86eJi0E0YTETKLqo1QZUBLyc/13+wcBvHvh667pOV1cXXV3tUYFbhcu2ba5du4au69tuFCzLetsGZxx1gvL9yOfz901+P86EAnWM6FRy7YOqoec4DtPT06yvr3PmzJl9hbJ3Yg3K931yuRxLS0ucOXOG5557Dl3XG2ty9QmxFSkl165dwzTNNgtA1/VNKyvK1/nX5PAYMGx6zHcRKJPSphB1Gd1kNw2cPmMcO2iuN2miXXAdud72WNH+esJ8hA2vaVE5qsS6jBDTn6YqXwZq1ydhPErGqR0/L/tJaf1ItUHCeJxpOw2scMJ6krKsiZRUFXT9HAtuFk8vsOHdZcC4QNa/w6r7GtPVbzIe62ytvq3Clc1meeaZZ/B9n0qlQqlUYmNjg9nZ2YYbaqursBPCddQCdZTrO77v3/fGMJfL0dPT85DOqPOEAnUMaM1hAg4sTHU6vQZVt0Cy2Szj4+NcuHBh3+d3mPDwuitxeXmZaDTKhQsXGBkZ2dO+9UinkydPbhuzXC7z5exnyKgVdOESOMPc8mY4oRuggUCjvGk9WaILQxsmKlKUpUdZ2qz6OQQn0dBJGUM40iWln8AUDhV7mZLR7t5TbOndpHRy/jwrQZ6T1pMQ3CTApiybQm4HG5hilJhQrLjNyhRr3gw9xghusIhAZ9UPiGhjVIJa+HtVFRAYKHyu53+fsch7MFqqrj8oDMPY0eKqX+9yuXxP4Uomk5imeeyDM44Dvu/fNzI2n8+HAhVyMOrC5HkeL730Es8++2xH7sg6ZUFVKhXy+TyFQoHz5883mgQehIO4+DzPY3Z2luXlZcbGxnjuueeYmZnpyDUyDIPb6hWWeQNQWFo3GZHnpDmGo2o5Skl5AukFVIIBFvU8MXcSX9gADJvnKPkr9TOlTyRZdV9jdXOZLeqeIa6P0G9Cxb8JSiPvT7WdQ9I4z6pXe27JTdNnnKXH0JhzZtq2K8oFotZ7qLgvNyqlS2XjBgOgTKLGE8xVp4iIMpqKEmg2ZbnGsHWFdfdVKsE6r5c+zxNd/+TQ12037mcdG4ZBd3f3NnfTVuGamZnB8zwMw9jR4trKUa9BHWUU4V5ysEKBCtk3W5Nr60ENnXIXHFagyuUy6XSacrlMPB5nfHy8rcnfQdiPQHmex8zMDCsrK5w6darNldipMPOsu8HXM1/C0Fx81Y2jaqHfCUPg+xG6jEvYumDevQ0aDBmnyQdNi6hartBqEJXdTNv4AYoVb4kVD2LaKOORCTz5vS3btE+4GX8RIZ4mohVxguZ4GhbT9hz95lXKfnO9qijnORl5jjcrNavJUUVS3incSBqAde8uUa0PO8iy5Nxl3Fun2xzgOLGbcHme1xCutbU1pqendxQu3/ePzII6auttLxZUoVBgbGzsIZ1R5wkF6iFyr+TaTnLQKL5isUg6ncZxHCYmJujv7+f27dsdEYS9rEF5nsf09DSrq6vbhKlOpypJ/MHSp1HkKfgJTlgRbAUxkQAs8v4gy+4CCb15nKgRIe9uvhd0/GimvmSERYqyWoL6RxkYVPRmsEQ1KLPiu5T8QU5Huyj6r6ITJ+O1W1SGiDLrTJLQu0kIibuZ/JsyLrFiT1F1bjFmPUJ5s6yShsG0naVLP0VB1oIvisY8A/opinIOqRzixgWcYJTrpRl8/ox/OPizh752O9Hp77FpmvT09Gy7+98qXLlcDsdxKBaLbYEZiURiW6pDpzlq6y108YUcmr0m13aS/VpQ+XyedDqN7/ucO3eOvr6+xmudjL7bbZzWqMDTp0/fM/iiE8EWf7n2RbLeCgoLhcRRK3Qbw8S1UV4v13KKTkXG2fBrQiCAvD/f2L/fPE3Ov9t43GeOsuY1Q3l7rQlWvXTzgEpnzZ4h0DxuVooMcJE+M0GRZgQgQJdxnnU/Tc530IxhokLiqwqrm2MrFGt+gR6tD1dlSJmPsVCZptc4CUoDEYBQ+MoApRHTe5iyq5iiVnHi9dJ3eE/3Bxi0On9H/bBcXVuFa21tjVKpxNjYGKVSiXK5zMrKCuVyGd/3MU1zm6uwU8IVCtSDJxSoB8R+k2vr+3RqDWovOUfZbJZ0ujaRnjt3bscvcqcCLnYSOtd1mZ6eZm1tbc9RgTu5+PZyzerXdqE6x7ey30QIha65nIoMk9BP8WZ5iVPRZhCC0XIaA+YpCrIpOJbW7pqTbO0V1P56vzXBstvcf501SnacbibwIs3nM9VSwwrL+CsMGiP0mDFWq81t7KCIp58mimCyWqvdl/WXOB25wrr3KgA5f56xyFXSdpasn2PIrOU2KRTfzP4p/2j4n973eu2Ho16H0XUd0zTp7e3d1ujSdd2GxbWbcNUtr/2W4norCFShUAgFKqTJQXOY6kLQiS/8vSwopVSjSaBhGFy4cGFbxFUrD6IChOu6TE1NHShc/aAuPqUUgQr4vxc/Q9nX6Y6UQRlIFeG10hx9Ri8bm5UbDGGy4TUDFWJ6lELLJSj6zaKuBjFyLduiNLLe3Jajt//MLJEkK1bIEPCIfhVbvkpE9LEkVtu2W/OXKFceBXPTOtpkw5tl1HoGTzVzoRbdKbq0fmy1gSEizDsBZVkTzlVvjhHrLCvuFHcr32fevsNY9MK+rt+9OMpcoPutA1mWhWVZ9xSu5eXlhnBZlrXN4tpNBI6DQN2vK0A+n9+1O/VbgVCgOkSnkmsflEAppVhfXyedThOLxXj00Uf31IupUy6+utDdunWLjY0Nzpw5c6Bw9YNUpKh/Br8//1lWHZukKXGlzknrPLN2raPtoNXNklsTnhPWGBn/FlEtSUofxQmiRLXHKPkOOnHS7hKW1oUlTIbMYTStRExTSJVFx2LVm24eXOlkvPbeUF3GaXKy5iK8XZ3hhHWBbiMB/hvt2+mjzIhZTgYXsfVmwq8le7hRvMMJ4yRlsQSAr1x0cRLUBqZ2kXRlnrPRCyxu1vKzA5uaeab4Rubz/OOR/3Ff1/BeHGWh2IMGKuwkXEqpNuFaWlqiXC4jpWwTrnp1+KMWqL0cP3TxvcOph4q39nk5aHJt/Q7usLRaPUopVldXmZqaIplM8thjj21LZr3fWPVow4PiOA6Tk5Nks1lGRkYOJEx1doviu9ckKYTgOxvf40bpDQKqSOVT9pOIiN3YpixrvZ6Seg+66AV1gbuVdQbMoM29dzbWh+N5OLImkiljkLlKU4DORE4T17uR9gqOuUKveYZVrz1s3FHtArvirlKWZ0jqQ5Rk04oyRC+QYymYZSLyGFm/tmZlGaMEco6iFOiajtJqn/WaP0OqcolbZm29bM6ZpkvvoRzkyPgrnIpcYNG5zbxzm8nKDc7Fn7j3xd4jRy1QnaiSD7XvSSQSIRKJtK3DbhWuxcVFyuUyjuM0bkJbLa6HJVp7cfF1ak45KkKBOiCdTq41DKOj5Yl832dpaYnp6Wm6u7t54okniMViBxrLdd0DnYfjOKTTabLZLKdOnaJUKu05wXY3DhJmXsHmz9b+FolNXItT8Cv0GDFW3NpEfsIawtQkXVzhbmWVZWMGJ6iJV4/RRUE2a/FVZal5LtTWilrJ+hmyfq2iRK9/hkHzJLpYQqraNTRFgjV3vm2ffvMU0/YyKT3JSeskBbmEKWLM2k3hm6nOMRY9g8ImXd2M2CPLROQyG5trT3HRx5xw0JWBFD6+8qDaC5EcABl3FW2zeO3LhWtMxB7viLAcZbj1w7BidhOuumuwp6eHcrnMwsIClUoFKSWRSGSbq7DT53k/gTrqSu+dIBSofVIXpunpafr7+4nH4x0LbDispQK1yWJ9fZ3V1VUsy+Lq1atEowevIHAQF59t20xNTZHNZjl79iyXLl0iCIJGUdfDcBCB+jPxXRyVIwiSlFQJTQhORfuYc9YYNE9iMMiN4m2gzJnoSJuLzlHNVu4xEWfNW2o87jeHyfpN8UrpvQ1xAsjKAjfLJoJhJuIpNrw36TZPk5ftFSZ0ksAqRVlCOjFORceIiG5W3eZ5SHzWXJcBawRFc/+p6iSnIqfJyznsYICytsq56HnmnVpJpqy5xqA2TD5YoawKDHpnmfEcvl59g9jGX/F48sqh+0IdtQV1lOtfkUiE/v7+tjxBpRSO4zQsroWFBcrlMkEQEI1G20QrHo8fWLj2YkHB8Wpiul9CgdojW5NrS6USqVRqX+6ye3HY5Nq6AMzOztLb20tPTw+XLl069HntR6Bs2yadTpPP5xvC1NpEsVP5VPsRzC8s/g0FLYOQSQRgiprl4wQlhsxLvF5aYDjSPK+YbsKmBy6mxVhzm4I0GDnBvNMUh5Te1SZQPcYAOT/XfKwNsu7XEm6/XywzbJ0F1f590dBZcptjVIIq03aEMXP7pKUJnWVbAyVgs1uvQlGQikHzCtdLNcts1p6hy+ihJHMoFIaWgACGzLOkPSiK2hu8EXmDZyLv3rG9xn6KvR61SByl9baTQAghiEajRKPRewpXJpOhUqkcWLjuJ1C2bR/q5vQ4EArUfdgtudYwjI5YPHUO6uKTUjZaTgwPD/Pss88CcP369fvsuTf2IpzVapWpqamGMD366KPbJrROVYDYOo5t20xOTuJ5HslksjGxWpbFkrPBX6x9Fy2wqCiHpFFzs12IXWKyMks1KDASGSTTEpWXbalGfjIyzILTzHfaOkXbqtL22NvSNiOp9zQECiDjlpl3qlxJvouc/yZSeQxYZ0hXF7fs18ftaomTkQHyLRZZQh9hqjrLxfgVVrxmDpUdVMh6zdwmT3kk9TFKsiaWi+4s52JXeT43h1QBj8QnuFudZN5dZC2R4V0nLjf2ba1S3lozr7WCQ/0a1/OJ3qkWlO/7RCKR+2+4yb2Ey7bt+wpXPTij/n7v995zudxbupI5hAK1I3tJru20QO3XxdfaC2lkZIT3vOc9jf/jkx4AACAASURBVLupurXXCe5lsVSrVdLpNIVCgYmJiR2FqdPUBapureVyOcbHxzFNk0ql0jap/h/613GURBguEUx0zWPQOEslkFSDmlj1mgkym5f9hDVIXjbdkALV8jese01LJyKirLtNYdHQWXXbhaYa2G2PB6wx0vYcN4rznLBOMWBVUWr7BBcR3ZTlNBmvi5TeRSUoYIkodyu149+pTHMmdorsZuuObmOc10szDBl9FFRNEGfsKUYjo6x7CwxbZ5gseUhV+xyXnFUMDHx8/nL9q7wr1RSo3dprtFZwWF1dpVQqNfKJLMvCtm0KhQLxeLxjQQt74Sgj6TrZtToWixGLxRgYaJaiahWuenX4arVKEATEYjEcx2F1dbVhcW0Vq7d6BB+EAtXGfpJrH4RA7UVU6nXq6gVUd+rF1KlyQLCzQFUqFdLpNKVSiYmJCS5fvvzQ7qA9z2NjY4NMJtMQxSAI8Dyv7W7xM7N/RX41wNB9FGAHPsqJc9dZpcdUzYRYt2mh9JgJ8psfgY5BNSjTb57AEBYxLYWjyiSUi6ccevTeWp2+TQatURadZv6TEVisBU1BA0A0f27LbpaMZ/FIvN0Fo6Ezb9esuIxXICL6sYRLvznBwub4AQFZT2KKGDE9xhulRaQK0EgBTYvNCwS9+iA3CzaVoMC5+Glm7FmKssQj8bPcraaZqs7wRukWl5MX73nddyo9VL+JW1tbo1qtNqLbpJTbXFaJROKBWDrH0cXXKe4lXNVqlRs3blCtVllfX6dSqaCUIhaLkUgkuHbtGkEQ3DPHcStf+cpX+NjHPoaUkp/+6Z/mE5/4RNvrv/3bv80f/dEfAbUb5Js3b7K2tkZfXx/j4+OkUqlGy/mXXnqpI9cgFCgOlsNkGAaO4+z6+n4xDAPbtnd9vbXqwqlTp/iBH/iBXX+YnRSLVoHaKkxXrlx5aMLkOA5TU1Osra0RjUZ5+umndz3293PTfG3tVVwl0YVEehGE4eIgeSQxwuJm8EGf1kVW1qpHxIIY5aJHt3aWfCBBj/L9fF1gXB5NDHKr0rSQLsaTlLzTnIwmSRgQ1UwE86hNqysV9LGmrTVPSglWnPZE3AHzJNcKCzyZusyqdxOFYtg6za1yc91ryd1gPHqaJafUtm/OzzERO1sL2lE1q2/BW+aUGCWj1x7nZY4uLlIJamHyZd9prF8tO2sY6PhI/mLtr+8rUDshhMCyLJLJJKlUiosXa2PU11rqpYdaXVb1CbTuJozFYocSmKMWqKOw3urCZRgG4+PjjefrwlUul3n99dd5+eWXuXPnDk899RTnzp3jueee45d+6Zd2HFNKyS/8wi/w1a9+lbGxMZ555hl+/Md/nMuXm9b1xz/+cT7+8Y8D8OUvf5nf+Z3faYtq/Nu//ds2Ie0E72iBOkyDQMMwKJfL999wj+zm4rNtm+npaTKZzH3r1D0I6mHmr776KpVK5aELU73qxMbGBuPj45w4cYL5+fldj1/xHD45+WVyvkOvJXH9BEGgqFdfi+hNt93J2CA+/azaLhlZZSHINl4741tti045u71t9rqXJeuV2PBqwjFgDSDVGGfjXUgyBH77ZzRojTC7RaA0UXPvXS/OczH+CLaaxgu2/yQ9ZWFpKSDb9nzBr6LRvsawocpERARXOSTFOLN2Dg2dAMmyu875+Gmm7RkKstRYi5qsTnGrfIeLiYNVl9i6BtW61rLTnX/dZbW6ukq1WgUgHo+3CddeIwqPWqCOkzgKIYjH48TjcX7jN36DL3zhCywtLfErv/IrTE5OsrS0tMto8OKLL3L+/HkmJiYA+NCHPsSXvvSlNoFq5Y//+I/5iZ/4ic69oV14RwpUJ5JrH7SLrx54kMvlOHv2LBcvXnzoC9Hlcpk7d+6Qz+cZHx9nYGDgoQvT+vp6W5PEQqFwz2CLf37zi6z7BSJCo+prOIFPUq9d14hmsmAvMhI5iS/jTFUcFp2ai+9y8hR3K8XmQFFBvcSeJUzWW8QrGcTIthSHTWkJVjebCW7ky6AEI3RxoussK940CkVESwEtAqUESy2CdauyxHj0NOteYfu1kAa3K/M82XWeGbsZtKHRxZydJa7HqQS1gI0KVcbMswgheSFbswAfTZxhcrOeX8GvtllRJiYjkXH+ZOEav/7IwQRqryLROoEODg627V+pVCiXyxQKhW0Rha1BAlsjCo96Dephrre1sp9CsYZhcPHixYaFuxMLCwucOnWq8XhsbIwXXnhhx20rlQpf+cpX+NSnPtV4TgjB+9//foQQ/NzP/Rw/+7OdqZr/jhKoTibXdjKxtnW8uhutWCw+tMCDrZRKJdLpNNVqlTNnzuA4TtuE8iDZWkB2a9WJe0UD/tHMC7xRmSFAwwcCPGQgEFbtc7oQH2fNKfL9bIY+M6CsWq2i5mcZ16IsOU333Fh0iGm7mVw7khzibmW68TgVJMjTjOjr1bqYlUVm8zASOc2ZmEXObxee4cgI09WtFlWCsheQ1ANKsiaWKb2rERzxWnGF84mTrLhL9JuDvFleRAEnI6eouE3hWnNzuLK59jBvr2MJE1d5rLobXIifYcquCeeweYVvbUwDa9wtL3E+0d55eC8cNopP07RGBGYrrRGF2WyW+fl5HMdB1/WGpeW67pGJ1FGK414F6pFHHtnTeDv9pnb7TL/85S/zgz/4g23uvW9/+9uMjIywurrKj/zIj3Dp0iV++Id/eE/HvhfvCIFSSlEqldB1fd818naj0xaU4zisr693dH1nvxNHqVRicnISx3EabTeUUkxNTd1/50PS2gvqXgVkd4sqnC6v8YWFF0ADZITArLneek2TPqIEIkXWlaQrtSCCsVgvtyo1gdIRLNhNsRiNDjBlzzYeW1p7e4ZAtR8/Fo/Tok90612sbQrMolMgX40S00z6owNkqFlsltieP1fxJctOnmGrm5QhKMoCfcZJZqkFR/hKsmJLEmYSk17U5kHvVOa4GD/Lglv7nDT6gebEWZRlLifGuVut5XBlvTLD5hCzFZ11MmgIAhR/uvRtPnH+H207L2QOgjSwBIEB5iUQp6m3931QYea7RRTWu/DWIwlff/11PM/DNM1tPaEepIVz1CHunWy1MTY2xtxcM8hnfn5+16ovn/vc57a59+rbDg0N8cEPfpAXX3wxFKj70ZrD9Morr3DlypUDlfvZiU4JVKFQIJ1OY9s2kUik423f9/IDLRaLjVyieqPCVjpZMmXrZNbaPXcva2w7WVAyCPjE618iEJKCCymjlojq+dCX6OVOeYOIVsRqKTLrqmb5plOxQRadpn/e3HL8rN+0tASw7K61vb7ibLQ99vV2ATuZOMGb5VlWKopL1hkq+hLzpeWamG4SFzFmqjVLacXNM0Q3XYZgxs61jZX1SwxZp3mz3F6VY8ktECFCF728WqyVX3okMdoolzRVXSKmxagGVSwtgu12s75ZcunR5Bg3S/N8O3OTpfI0I9pn0dVrCLUOKAyVQyBRgEIj8FNAQC1NOEVC+48paf+Qh0VrF97FxUWuXr0KNCuUl0qltkKv9bJDdfE6TPWGrRxV/pfv+x0tFPvMM89w584dpqamGB0d5XOf+xyf/exndxzzm9/8Jn/4h3/YeK5eJSOVSlEul/nrv/5rfv3Xf31/b2gX3nYCtVsOk2VZHU+sPcx4uVyOdDqNUoqJiQmSySTXr1/vaNv3+4WatwrT1kaFdR5ERGA9IGRmZoalpaV9BX/sJFD/0+tfJu9VcPAwhYbSqwReFIsot8sZQDAe7WParU3WUc1kzm7W0EsZUVpbOq21tG/vNpJtj09EBtui8QbNAVa8pkCZGMzb7QLmb1pcCsFNN8vp6Dj9sYCK0ywi2616WKc5zqqbJxGM4Kn2VvIATmByKnKOaedO47mCX+KcNcp0pdDynIdQGkoEVAOH8dg4FVnijbxLj1GtdQQWkPcqPBFf4kMDr9Pv/zmarhFsloQSmLhEEdSe04WPRe0YSoFHgZT5ByT6PodfeRfK+BC69f5t5/ww2K1C+W7VGw4bUXiUte72akHtNVHXMAw+9alP8aM/+qNIKfnIRz7ClStX+PSnPw3ARz/6UQC++MUv8v73v7+tgs7Kygof/OAHG+f1kz/5k/zYj/3YQd7W9vPqyCjHDNd128LFofMuuYO2oaj3YtI0jXPnzjW+QHVrr1PcK6+qWCxy9+5dfN/n/PnzD61fjKZpuK7L0tISi4uLjbbu+7mb3SpQX55/he+sTeEhUZpCFwLpJakEPuMJk+VN4dG15md1Nj5IusWFV/Br7jhd6IxGBvFxGLYGEGgMmD0sukuUZBlfSbqNZJtA9ZpdbQJ1MjpMutK0xnS0Rl5TnYgW51p2lmd6HmHJm8RXEmkasOXjL/vg+nFMw8UTtRejRHijuIynAi4mR1hsSQ52A5MoSfKbarvsZLiSOsNkpeb6y3llMnaEiqxSkVkeTY3Sz3f4qeEv0WcE9OoBmgClBIgEhnCoWUoV7EASEQagasnPWBhIFHEkNkp4iOD76M6LeE4vgf6fYsZ+9cjrwN2rekM9orCefLw1orAuXgetUfgg2Yt3pFAo7Ou3/YEPfIAPfOADbc/VhanOhz/8YT784Q+3PTcxMcGNGzf2fJz98LYTqHrgw9a7G9M0991HqFMopdjY2CCdTmNZFhcvXiSVSrVt06lada3jbRWoQqHA3bt3CYKAc+fOPdRGZr7vY9s2L7300oGEqU7rjcFUcZ3//fY3qfg+huWjB1EqOAjhE8Fg2alF3plozDvNhFxTE5yMDJDSU6AsNpwSnjvEqltlQOvjtWJTvK6kdN4oASRIGRGKRpwR8wIRPaAalLa1zrBEe2WI0egJ0pX2hN2cV5sIr+WWGI+PMhyRTJbbRSymRZh1crhKctEcJSvn8ZVkyBhm2a1tO18sETEtPM0lKeK8VtygS4ujazpyM+hjrrpBVFhoQmO1atJvdbPg5Bi1svz3w19hzMpQDQxSeoCDouLraEIjokkMQEMSqICIsBCiZnKZQKAccoGPwCUqQN+8cXCIYIocgfw8XvmbCOsTmNZ/tO/P+UFzr4jCarVKqVSiWCyyvLxMtVpF0zTi8XjbGtdRW1D3q7MXVpJ4C9FpC2ovKKVYW1sjnU4Tj8e5fPnynpoEdoJWCyqfzzM5OYlSatfW7g8KKSWzs7MsLCwghODd7373oQrs1i0oL5D88stfYq1aIWEpSrZJl6kjNj0051J9jRp3p8wuCqLIeHyEigtv5IpkPBuweVfXKHdKzRByf0s9vbrIAVR9j1cKyzhBTZQ0BN2GznjiAjHTY8VdJusV2/aPaO2TSFJPtLkApytZYoxzKhphpiVScDQywopdO/9b5VUe7xpn2Z1hzmsm7JaEw4g1yrI/RUIN4LLBelDirOpjWa8do+BXuBQdoyhhyt5g3anwMye/x3/YfQcNRV7q9Ok+CoEGGJpPQguoV8yVykShyAceOoKkJgBBMZDEtFoDRCcw0JFYQhDFw1ZxHFVAU4tI+1dxnMvE4v8KXe/sDdGDEIjW0PZW6hG2pVKJbDbL3Nwc1WqVl19+ecfiug+avbj4XNft2Jr7UfG2FKid1ikelAW1UwSTUoqVlRWmpqbo6uri8ccfv29r5k6j6zr5fJ67d2vhx0chTHNzc8zPzzM6Ospzzz3Hq6++emhXSf2z/WcvfIl0eQOUwvENED5VaVNfQigFZSzN4FzsJG7FZ94pM1ta42y8n4zXDLkTNF1/GjWLo86w1c2q1wxSOBUbYKolNPx0bICpyjqZXG28frOPRDzB6WiE2U1x2SpYJ6zBRnBCnZL0SRezPNt3jsnNSLvclu/qK4VF3tN9iWuFu23P364s8nT3o3w307T6lkSZHj1JfrN3VcmWzFarnIut8gtjf88Jq4IADBEQE0bjM3EVxFo+H6XAVoqEpjAEgKKqoCihq8X4jWg+gRKUVRylfAQFDKHhKQ9D5PDUDQrl/4R49H8lYr2PTvEwi9Tquk4qlWp4PlzX5Y033uCxxx5ruAnX1taYnp5uRBRuLa7byYjCd0IvKHibCtROdLo0EWyPlAuCgOXlZaanp+nt7T10L6aDksvlGv2gLl++3JGKxnudDKSUzM/PMzc3x8jICM8991zj+nSifbymafy/mSleCBYxlYmmBzjKQwQCLVobezzaT48eZbmouFZeJ2k0ZagvEmVu82sgUCzYTQvpVKy/zRU4FE21CVTKaP8sU0b7TcdwpJfv52qBGEP6IBd7uknbc23buFsmjrgWZaq6SgA8n1nmmd7zlOQG6XJ7oAXAdMXmXOwsk9X2sP8NW9FndrO+mTxsBx7dxgh5WeJU9AQ3MgV+emyK96S+Q5fuEt8UcakMIpsfqa0UbmAR0bxGBY2iEnRp7RalQ5yYXqSsDFQA3ZuVOXwUnirjKklcKDQCTDQ84piihFImpepHceUvk4p9ZNt7OwhHnaRbrztXjyhspbUD7/LyMqVSaVsjw3p18oO8h3dCLyh4mwrUTh/Kg7Cg6m5DTdNYXFxkdnaW/v5+nnrqqX2V4a9TL/J60NyKbDbL5OQkmqYxMDDAwMBAR8Spvj52v55AdWE6ceJEmzBtHecwfG3hLt9wlsDQUYHC0eruNoXydCwVJRpN8MJ6zYK5mBogXW1G7OVarKexWB+LdtNi6rXizLfcw8gt+U5l2X6DU5Fbb3ia12dVOvTbBiWnh8vdKabtGZSC2Wq78IxGh8kWmyHj17JLvKdnAlOk29p3nIz0c7e4jiF0zidPsLDZQ2o0Msj1/DLnEoOgCo0+UbfKizzedYbJYoV/cuLbPJuaIqF7xDXwFJSlDgg8JAYBlUCnS69SUAIpwVebbWUCrSForgKpSugCLOGDgA2pExXgqQBLCzAEVAONCLW/TVWmpHQSmofAwnZ+Cze4Q1/8Xxx68jzqMkf3EpbdIgpd123UKJyfn29rZNjqJtypOnkr9xMox3He0q3e67wtBWonHsQalK7rzM3Nsbq6ytDQEE8//fShvhR1i2y/P7q6MOm6ziOPPEJXVxdTU1Mdbbmx23m1ClO9H1W9T9BWDltl/XZ2lU+8/FegwPY9EjW/E4GnYek6VV9i45IuNkXA8JvXoNuIMtviwuu3Em0CVQ3aBWexxboy0Nrcf1sfAyw77TlLUikyns231m2GIwM81t3H97e46Lxgu2DfKeYYME+SlSvYm21BUnoKKOEryVLVpcfqIicLaCoOlJgsr3E5fpK014zqk36cDw3+Cc/2zNWS1WWckvRJ6C66ECT0+joTRDaFTRcKHfCUIC4kEsmybxBgoCuDbqO9B1ZM+GQDQURA/Zsf0wIcJQhULQnaU7DkCyLCQWIRuP8fZW+KkdRnMPSDu76Ps0DtRGvr+N36QZVKpUZ1cmDHUHghxH3zoPL5/L4qmR9X3pYC9aAtqHovpo2NDUzTvOekvB/q5Y72OlYmk2FychLTNLdFBh62Q28rO7nmWjv4Dg0N7ekaHMbFl7UrfORbf4al6RQCDz0QOIFPRMao+pLqpivqQmqQyUpznWi9palgvzJpLe9bdJqPDNEuOCORHpbcluKx8UEmK01L7FRsgHSlKYRDVhfLTst6k4KFliTbFafCYGWALjFK3LJZdNaxhNG2pgUwFu1nsphnyYZziQE0PUOgAm4Vm67HvF+hy+zjTDTOK7nm/nerGfrNJFlV4nxsgB/q/j2eTK5QVTquNOg3a9eiKCOcMJpiXJQWfUYzcbkSGERF82YuofnkJQjhsSF1+vXm9yrjdxM3skilkfPj9GwKWEQoikE3rvLQRZmYADuwsISLROKrV0kX/nNOJ/9PouY4B+GtJlC7sVtbjXpEYblc3hZRWKlUWFhYaAhXJBJpm/cKhcJbPoIP2nLZ3950woLyfZ/JyUmef/55oFbe48SJEx0RJ9h708KNjQ1efPFFZmdnuXTpEk8++eS2sPVOClTrWHWL6bvf/S62bfPss89y4cKFPV2DgwqU4/v8N9/4AlXHoyBtlISYZuL7OuXAJxVt3mclW85jPNFLxm8KVDLVjKA0hcZ8S4TekEjgBM1r32+1R1sm9HaXbXLLetRQpN2VOqQlKMj29ikrTpG7pSyvZ6qcj51jIj6GG7R/3t1687iT5QwR1cu5+Ckqsv3maq6aIUp7fURXSXQVpUuT/BeDn+VMNEdJ6TjSoM+onUugoLtlXckONLr09rErgYG+5R7PBwzhYwmXNRmnGJhkpUFUr11DXQRYWolVv2ZHZaSFE+SwAwdf1aaZiPDwVQJLSIRS6CwxXfopyt5NDsJxWIN6kNQjCoeGhpiYmOBd73oXzz77LFevXsWyLCKRCLlcjlu3bnHt2jVefvll3nzzTT71qU/xta99bV/r31/5yle4ePEi58+f5zd/8ze3vf6Nb3yD7u5unnzySZ588kl+4zd+Y8/7Hoa3pQW1E4ZhHNiCcl2XmZkZVldX25oETk5OPrTkWqVUw2KKRCL3DVnXdf2e/aX2Q93Ft7CwwPT0NIODgzzzzDP7dmceRKCCIOCnvvon3M5n0HRFLIhg+5KS5oEQjMZTLLs1S0UXgqly0woaiMRYdgS9eoxuI46JxZXEOJ4MiGkRVp0SMgjwlKLH7KJcjdZyf5SimPUYEQMYhgBd4bhuo2YdQMlvdwf6W9arkiJKa4G+QTPF0mbLDgk8v77M0z3jTMROkN4scSSA2Uq7m3CmkiWppUgZUYp+8/M8Genl71anudp7mpvlZgRfUS3x8TNfRwQOMd1FCND1ACFABlAIIhgClr0EmubjK4GmwNIkarND1JDe/t5yMkJCax47Kor4SrDuxxht+QpoArp0mwWvn4jIoImaC9AOutC0AppQaFRxZYSo7lCRUQyRYabwC5xO/luSkfP3+CZs5+1iQe0XXdfRdZ0TJ060PV+vUahpGt/61rd49dVXefLJJ+nt7eV973tfm6i0spdeUADve9/7+PM///MD7XtQ3pYCtZOL7yBfZMdxmJ6eZn19fccCpvtt034/dqqQXkvyXWJj+d+RiHo8cbGLqKWBehXlXgHjMdC2Wy97KXW0F+r+8evXrzM0NHQgYapzr0rkO5HJZPinf/cX3LDXSWgGrlKUpE+3oVPaTEQdSSQbAvVIaoBy4DAeHyAIBIVqQLUSIx8EjEc1Xsk2E2af6hvhVr5pQVnCZKZSc/kJFF1WlIJXm5RNNBAOOkmGTZMeQ0fakriwqCgXFMxX23s12VvyqU5Ee1mymy5FTQlez69S8m3eM3CWtD3LaLSfW4X20kanYv28nF1iItGL1FUjMKNLT6Eo82pulfHkAPPOOjHN5mNn/gYvCBgybYSAqm8S0QPm3RiW5hEVElOTmJqHVCAQmKL+PXHIyyhZJah6USIo+nV7m/gCZGSULsNm0YszrFfQN38WTqATUKAY9NCt1z6XqFagFMTo0qsYIiDQdTZkFJM4tjTRtA1uZX8Gb+F/IGaMNNxW9Si33X6771SB2u03VI8o/Pmf/3mGh4d55pln+LVf+zUymQzz8/M77gP77wXVqX33wttSoA6LbdtMTU2RzWbbehFt5UH0hKqP53trFHN/iaz8Od2J2/SdNFFaNwQuwq6g46JskAik6EWJc2A+hYj8V2jGiR0rSewHpRTLy8tMTU2hlOLSpUuHbrmxVwsqn89z584d/vX8bW44WaJYlAMXNOi1opRUrRJDVNdZd8pc7RnDcQN0X2cym2WSCkPRBGtuM6m1y7SgucxCxm1aN1HNYLrcFJixeA/z1aYlczbZx+3SOh4w4zpErAFu59fRMDgVTTGo6+T8lvUsNJaC9g64tmz/npxNDHCrWKsT+Pz6CmcSg3TpSVpbtgN06QmgQLqc5UKyj0BtkNAjvJKrrYd5SpJ3A7p1jZ8a+3sQgqjmowvFuh+nFt4QENddytKky2xehHIQoVdvWkbVwCCl2WgCUpvP33K7iAhFXLiNHDNP1SpNQG271SDKAB6GkOSDBIaooFGkGKRIabV1uaRWJSdrblJHgaMsfKogbCqqi0AvEx3/DGejn8StRiiXy2xsbLQFC7QKVzQaPXKBOqooub2IY2sVib6+vh3rbNbZay+o7373uzzxxBOMjIzwL//lv+TKlSv76iN1EN6WAnWv8NV7hUtXKhWmpqYoFAqcPXuWS5cuPdS275aZQagvsr42jVJfAxXHSL6LsnYFgjdRMt08tjiFqXVjksFkA6HW8d1XCJx/iy96sMQvIuX+72LqScbpdJre3l6eeuoppqamOjIR3E+gisUid+7cQUrJJ9emuGnnqPqK7oiGvXnTeKG3j/n8Oqe6B7GUzt+vzHKXEoYmiJnNr/OpRFebQBVaQsK7jAiz5VYB6uXNlsi/wUiiTaBS5pb1p83HATBjV+nrGeVOtszY/0/em8fKmp91fp/fu79v7VVnv/fcvVffXm+3bcwIBiSjAUUajBAwEM1kIUZ4QhIpiULyB7IgiZQJmdGMkhiGsTQEAQY7EyDBJJihscdLd7u7b3fffT37UuecOrXXu/9++aPq1HZ7uW1fu3H7ka503zpVb721/b6/53m+z/frzXLMtUAlXItG5AVdadztTNLLPX1ywn+906YbwWO5vrI4gCWMAYj141bnkEdzs+RNi/XOiK1XCxv8Z+e+xqzdG3y/FTtJDh1FZqxcZ04M4Sr0qZ14O3VwzUlgNTRJRg/Ylhk8lVLWA/bHyBAAWS1iP3UIpEnRGGShAjQVcJi4lA0fpSBSRSJSbNHBFRGd1MbVYkyVEKERqCqv+/8pP1D83bckCxzJD+3s7BAEwXAGcdxm47sFGkmSvG8qDfcrFHv69On7Ot/9eEE9++yzrK2tkc1m+eIXv8hP/uRPcuvWrffkI/WtxAcSoN4u3s6CotvtcvfuXbrdLmfOnOHxxx+/rzf5QWVQSvUIer+NY72AlBsYegOhPUHMIZH8d/2VEAvX/LtI1SVIV0jSDUg3sPUPI3Vs/QAAIABJREFUYas6BU1iCR8EhGofS32a45UKcfDfYTrvriw8rn5RLBZ59tlnh03WBzFg+07n6XQ63L59mziOWT59il/+2l9xu1MjJO2DjqE4ZuZZdotsNptsd2O2u9s8Vh4tYo8UZrjaGoFCIEf9xqxmsBGMVL5PZotcbo7KfZ4xuahNl7Q6STR1PLkpCWU/m9jsddnsdXm2dIxKnFDJ29wJqpx0KtzsTlLS11qTx2cyFW60D9kNOnx45iS3exucyyzwWr06cb+NXosTzvxYP0zy8ydeZMHZAwUpGgqBqyVEiTG0heqkDnPmiGVYizPMW6OsL1WjrOko6olLfnCbp0UoBRvJIp5oMh26SJHCI5AGzoCEoQuJIVJaqU0jdXD0NkpphMrA1hIyWkQgdSwtIFUOBgEaPt9o/DI/WPosuj76/r2V/NDW1ha9Xg9d1+9RcRjPtjKZzAMvxx2p8r8f8aCtNu7HC2qcsv4TP/ETfOpTn+Lg4OA9+Uh9K/F9BVBHgHIEUO12m7t37xKG4dAH6b2g/7cLUEopgvCLtNpfoO1vgBaii5M4+pOQXkGqPrVY15+gJ0Ma4Vdx9bMYYwtomF5B6qcJVYgjO5giQgeEihHGJkH3V+j2TmB5v4rnfPwtr2Fvb4+7d+9SKBTeUv3iQQHU9BxUr9fj9u3bBEHAuXPnMDyPn/nzz7MbdEiEJG/YXJhdZL3T5E6jzpKdZ7PbB5p5N8v1xigrscZ+sK5mcHss81h2c1z3R8emNvnjbkT+xPHGGFHBQJso/5li8lgoMZGNAdRDn7tB/9+sXWQ2V2E76NAZZHELdoHN3mSmIv3R9+jlgypn3AphfO/u9FxmnpdrOzxbWuZKZ52fPv4KJ7w6kTSJ0agMMpggGdHKoe/cFEiDUBl0E4uetHDSFEfE2FpKNSqwZE8CT6AM3LG6qBBwGKd0hU0BKIwBWi3xyBldmqmDJnpYg76WpaWsR8VhJmcKSTu1MUWCJhS6MJEqIqsFNFMHSxwSk/LvDn+FH6r89rtm7p7n3bMgjg/Dbm1t3TMM+63aa4zH+2n3fr9K5g/SC2p3d5f5+XmEELz88stIKalUKhSLxfvykfpW4wMJUG8HMkezUGEYcvfuXZIkeVsfpPuJbwegpAzYPvjPiZKLSCEQzj5CPURbbdCOrgE6ZetHSFWbRjySsvfTOxhihozxNAqHSKU0kh10kUfKLhqSY7oko4GNTkQGXa0Tdz7FQXeZQv5fYZpnhkK2d+7cIZ/P8/TTT79tyeJBES6O+mK+73Pnzh06nQ7nzp2jUqlwab/KP/6TP6Ee9XhmYZEokRz0unx1Z51YSnQhWO2MgOBkvkB1v58RGJrG7fYoIzlXKHO5Oco8tKnvw64/yqZczWBtDJCOuXm2g9FCfSpb4nZndO5TmTK3OqOZpBOZIqvdcTkkawLA9kOfa7UWncjm/MwC60GVOWsSoIQS1PTJ71E9ijnoRcxaLvuDnpuGYKXVf67X6tv8wsltTmbqIAQhOoYa9RyFAF+aNBKXmL5KREP2P99I6ORNHx8DXxmkiaClLKKwxIzRJatHdKVJQZ8E7lhqZLQAW0vpSYNIlZg16jRSl6zuA4KsHlJLM8zqHQyhaKQVHD2kkXrMGv3XnNND6kmGitnF0nxqSYai7pPVYlqpiaX5BNzhpcav8wPlT/N2IaV8y4Xasqx7+i5HZJ8j4Jq21xgHrumZoreKIwWZ9yMetJvu/XhBfeELX+Azn/kMhmHgui6f+9zn+kojb/PYBxXiXVhV37OKg0eeUONx8eJFwjDENM0HIp4aBAFXrlzhwoUL9/0YpRS71Wt0ov8C3ZBgVFF0sYyPUI9fZ1DPwzGe4yC6jqllKeo5ovQGAJZxnp406CR7eJpOLMeM98zzhMkbgGJWU1Q0hRB9iZoEHV1IQjIk6X/I2t0Pk81mOXv27LvW0tfW1tB1nePHj7/n92j6PDs7O0NV9SPSxT/75jf4y407VBwXhOCVvX5/5emFeS4e9L2Vnpld4PXDI58lxUImy67fX/CeKM9NANIzlQVer488mcqWTX1A0Z6zJ8kTjxfmuDZWGny2tDTU0wO4UDrGq/Xx4+O8Wh8xop4tHuPV+qgfdL4wz6XG6FrKlkdtjO7v6gYfmVvgcmdrWCo8681yoz1Z8numsMwrtS1c3eDRUoHrnV0ecma43O4D1KP5Lf7+iTfRFWTMkCDVOWY1SZVgNyrgiBjH6INeNzWpjPWMDpMMs2Plvk5qkdX7mZJSCj+1aMcZznm76GL0G1rxy8zZo/dOKkhUAUmXjD5ZBm2nWXJaj450ECIdXIc1zPCkgkBZZLWA/SRHPXVxtb6/VKRCJA45HRbsn+Spwn/MW8Xq6iqe5zE3N/eWf7+fkFIOVcqPwCsMQ3Rdv6dMOD7r9+abb/LQQw+9L32oarVKEAScPHnybe/z0z/903z2s5/9tn+z38V4yx3BBzKDGo+j+aEjW/Xl5WVOnTr1QM79XjKoox7PxuZXKC58AcM7RkwPXcyByNGRdwEJysYwzrMfXQIgknX2ZJM5+0dpJTvsh6vDc8YsoYssqeovGu34MgXrw/jxy+xLQU8pZowMkWogiUmkCzRI0n/JiYdeZaH0W2jau//Avt0SXxRFrKyssLu7S6FQ4KmnnkIIwV63w//y8tdZ6zTZbLUo2g4X9/vAcqZQ4vWDEci0B4t53rSZFyaaaTPvZDE0naJlc6FogOq/z1oieCp7DFB4ukkz6LJg5rBtm4Jts5yEKKGQSlIwHU56MY3YpxkHb6G/Nzk7N91/CuQkU9IUk+XDZa9ILRj1uwyh85XtLTKGxVOVOa51tskY9w5U7vT6AOKnCW8c1Hh+bplG1H/ustnm31u+RDe1WbT72aBJyl6cI5AGKXrfMXcQFpPX6GnTmoLeEKCEENh6TELAVlzEEikLZgspwTUm3wtNQKwM2nGFjL4z8bes1uFGMM9xe5RdOlpKILM4WgdNQCR1tpIlFCGmUCg0NNFDyhyaFlCNTRrJl8jopzmX/dF73qMHweLTNG2YPY1HkiRDwKpWq3S7XZIkwbIsstksvV6PIAiwLOu73ou63wzqu+n39p2KDzRAHXkxua7LY489xv7+/gNl+dyPWsM4XTs/00A7/s8IjRPU4tcAiWs+x0H4CqAo6BeIA4m0Lw8frwkPQ/8Q13pvsGQ/Dowakr10m7zxEKbax9AWSPFoJBGm/iNE8oBGz6fnwbzWRBcgCIhxsIwOfvoiq4c/ymLuX+LaT7zja9A07Vsaco7jmNXVVfb29jh16hSPPvoorVaLdhTxR9cu88LaCjtBh+1Om3kvw53WIYtelrLtMut5VByXJJW4hsHdZh0rMmn5CfOuzY1BqcvQBJ5l0hos3mfzJe60RyW2C7OLXK6NSnZPzczzem2UMZ3Nl7jT6mcXlubSFIqH7SVcU0doikjFeLpJL43v6UcJJVjrTs4/VYPJ3tJ0geJ0tsQbh7u04pAXd6ssuDk0NbnInvYq3G6NziuBvW5E0chgiiqfOHmRjnQp6v3rPggzZI0IXShMTeIx+qzaqcWsMSJDtFKb0hh4SQU5fVwACmpxjtJY/2o1KiMlzFuTrw3gIFYUzDZ3glnOOqOe4HZcpGT6VKMc89aRY3FKKzUxhEY7degql1RlMLUQU5PDTM7WOvjSJKMrummXb7b/gIK5zKz90MRzfydp5oZhUCwWJ6os42Kv1WqV7e1t7ty5g5Ry6MI7rZn3nYj7MSsMguB73gsKPsAAdfXqVdI05fz580P2T6PReKCK5u9GZ9/Z2Rlab3zoqVnudn4VS1ugG98CJJ75PPtRv79kaXMcJB0CvcYx4yMkyRvYxgkOk5BeeA3Q2A5vsGQ/QSe+hMDEM89zmCSY2uM0w4vD53a0CoI2qeWzk0BHnuaMcwddKAwVkJDDEW1C2WKz+bNUsv8jZe8n3/a1vFdViiRJWF9fZ2dnhxMnTgwHnNd3dvjjlTt84+LLuIZJzrE5puWomC5CE1w7OKCtupRnPP5mfW14vqfm5tnt9hdRVzdYD0cL7COlGa7UxyzYHQfGJPH8ZEoiqDvqP3m6wWp7tMMvOy43x4Z3z+RL3G01EAgWs2XOFgvEIqGZ9ljv1TmeKbAy1hcrWy5bY/0tFBN9s6PbxiOju3xtq8rj5QV80WM7aJE3XGAS+PKGyysH2/zDx66jGwJTJLhaxHpQxtUjdK1/4kCa5M3RZxWnxsSvPEhNGAOoWpJldopankwpoGX0iM24TM+3Oe2OSpGHcYbC4LkKhs9KUOG0UyNWJoh+H8zWU3zp4mr958zrAfvJcRI66EICh/ipi6v7ZLSIRHkYoodCIEhwtDyB3OeLB/+En53/pzjGSNLruz0HNS72emRlczR83uv13lIzb9oTyrKsbxu47scL6rvplfWdjA8sQH3oQx+6pyz1nfCEmo5xT6hyucyFCxfQjDZXa/8+usjhJzso4ilwmqUnbQJZAwRbwTVmrb/DQXxncNtRKA7ifcrm32UrvMXOwBdIIJi1ztBJ+nNSgaxhh6fA6ZvftbU2VT7CvHqp31NQ3b4gqNYlosRB+7+kE13nRPFX3/I13W+J78ikcGtra2hSqOs6UZryh2++zh9fucRWp81sJksjDLl00AeW5xeX+ObuUR9H0UtH/Yx5L8PlgxEAPVaZ5bX9UTnJMSbLK7udEUBYmsadMcBZyuTY6o3Q63S+yJX6iPCw6OWGfS2AsuVwF1AItjtdltw8r+z3r8XWHRazFYr5LI20x1q33i/njYHnSa/I6hggasBKZxJ4CmZ/J3z18BBTEzw3f4KV7r33uXS4x4+evEbObuAZMSpV7CUFbD0mOzbrpI2lbIkSzIyBTy8xKE2pkSepBmNCJIHUKRuTGVU7sSmYXTQBt/1ZTto1TE3Skg7FAZFCCMgaIWthGak0soOBYEtLaSU2pggwhMKXJh0ZkSibgtEfCtaEgVL9cySyz4zP6SGtNIOltRDkgTb/Zu/X+QeL/2S48L7fag5H1yGEGALReD8sTdOhJ1StVmN9fZ0oijAM457+1nthBH6/eEHBBxigvlueUEchpWRnZ4e1tbUJT6hUdrhZ/28R2jJ+qkBfwBAFerKNqZURGPSkhZ+OgChvPcst/zIZvURBnyOQ/UUxbz7BVlinluzgjlGlFYpuGtF34ekvVqG9ghMeQ9r9Bn812iTUz7Gg3SVUOikezSRAo4emzZME/wd36jXOlv7ne17buwHUuOXG4uIiH/nIR/rah2nKF65e4ctrqzTDAEPTWHI9ejLlwO8vlGeLJS7ujXo0T88vDvtQACfyBar+aMH0x3pCmoDrY+W6su2wOXbfBcNmfYxCPue4EwDlGtMSUZPpzXR/qTfWbwzTlINuyOXDflmraGfJKo8n8ovc6R7QS2NKpscqI4A6k61wa2r+aas7up5YKjq+RMQmD+dmuTkYHj6bqRBlXuJk/hDPiKmHNgUrxBSSXmxSHmREsdQomV1aiUM7dWjGNkUr7E9GCUkj9qhYHZLYABRBrOMZ8cTs0kE8KskdxX6UY97p31awAjbCMp4ekTd6jPe2B27w9KRJdoyenjNCGukCJX2XapzH0iVSOqQqRBcKW2tTi/usPkfr0U7L5PRDPC0kUjqm6BIqk266yf978Bl+fPZTwPsrdXQ/oes6+Xz+HtuLOI6H/a2dnR263S5pmuI4zj1mhm/1+t5tDup+Aex7IT4Yr+I+4zvhCSWEYGNjg42NDSqVyoQnlFKSV2v/PTvBDTLGaZrJCjnjNHvRZRQSS8uS009i0Gd9CTRS/zTr6XUAumkdRZFZ8xF60uFWb3X4vDnjDJG8Ojzupvtkk5M4Tg9TLyOVzUG3S8k91p/qF+Bjs6vy5NUbCNHBEiYxCqjRVDmM4K/pHfwSHyr/72hjAPh2NHMpJdvb26ytrTE/Pz8EplRK/vzWTf7V6xe5XhtlKKfyefaDkG6SULQd5jNZ8rZN2e7XymOZogFFy6ERBbiGwfWxDGfey3D9cHR80s2yErTHzl/k8GAEdrP5AusHI4Bq9yazh/3uZGlruze5MK+3R70rDVgbKwcKBKtjf2+EEVf2D9nze5iawQkvi4NJ1rCGg75H2dLw+r0iK+3WxG0CwU6vy25P8ezcce729mnFazy1tEfBDNjx82SMsA8GMPR0aiYOe0GWGdvG0BRCA1MHU5PDM/ezFYE1sMtoJi55I6aaFAhSA1skGFMaglJCZoockbNCNnoVKnabgjFJRe+lJXQtIkg9HH30fnv6IZvRCSx9QOrQAmpJdjg8XDRCAqnjaCm2CFgPS0ilo4k8sWoTS42iabDqf5XXW4/xdP5H/tYD1NuFaZqUSqV7zAzHPaHGZZ6m+1vvBkDNZvOBGJX+bYgPLEB9pzOoo8X5iJ76VmaFt9p/wHbwVcrW0+xHb2JpBVpJF4VEoGFqS6yHtxEIzrjPI1XEjnVr4hy2NsdqABq7E7dXw7scM8/TSq9gJscRVoVV9iilcxwGA3VrEyz1GNVgRLpYsM5xKDc5bdUwRIxSWaTq4YkOHWkRx9/km3u/wIXZf40xNsk/TgYZJ37MzMwMBWSVUvzbu3f5py+9yN1GHUvXeWpunkRKoiRhu9uhO9ggNMOQc6Uyr2yPKNrPLS7yylY/e/IMiwvlReqRj5M30DSBjUBPJY0kpCcl5XxuAqDCqYxnP5hcPPfGsi9H09kcK+cVNGMiUzvu5dgcA6yTuSIrYwB1KltgZQygFr0sO4PZplhKNro+G90ABTw+s4huKQ7DSYCs2NkJgMrqJteb/QxLIXh1r8qF8gxnFi/iahH7cRZDU+TNfpbspzoGio2ghKVLPDPGGPSiIqmRM0a9qEQKCubk8x/9QjQBnpHQCB1MPaXdcznl1DA0yW5UoGBN9h8TJbCNCF866IlJ1ui/hm5iI7QuuoBq7LBEgKn3AfIgytBRKU5q4A5mvrJ6RCA9HK2HLhKaicdhYhBj4EsHV49IVQuJi65F7EcGEotvNP6QWfPU+wZQ34n+zjt5Qh31t5rNJtvb2zQaDS5fvjxRJsxms0Ma/HuZgfrbHt97249vIx5EBiWlZGNjg2984xv0ej3K5TInT568B5xq4Ztca/4OBfPRQa9JQxcL+LK/yJWsJ9iL+kQABRwkJjuRQE9Hci5l62mu96rsxVUM/QRi7OMSymS/qwjkE6yoLnfDdQIZEMlBnWUQ1XAFWxs1lrtpk61khr2kf5spOoQyixCKjJaCiknUCl/f+xkS2V/Qjkp8R1T5F198kUajwYULF3j44YexLIsXVlf4qT/+I/7rv/oSZddFA6I05Y1qlSSVhHHKo8UyM4P36fzsHK/ujEp5rmFwpz7qvQRxwmqjwdXqAa9t7vLK+g43dmvsNkOCLuQTi6CT8HRhkQ9XjnGhvICmBLOOhwDKtst6ZwQgS45HKx71as4USqRj/ZpTpclh7ewUmSE7RR8vO5NOsIveJE152c4QS0kiFZf2Dtjc71E9jHgmf4xTmf7OeRwQAR4uzBBNgexi5UUMzSfBwNVTjIFIayexqYVZpNCxdEmQ6OTHTQgTZ2KGqZU6GGPHQapTtiYBqyMdLF1im5K1qMKKX8FX9yrlb/tFLF2iaynNVOMgygyeY2boI1UwA/bivsKDVNBIXSwt4SAevU+akNRjoz9PJQ0CVaQrM33A1AOCVO9nfZgIAY4uECJhL4b/a/93CFL/felBfTd7X0c0+Pn5ec6ePcuTTz6J53k89dRTLC4uDmWeLl26xMsvv8zP/dzP8Ru/8RscHh7yyiuvDLOwd4p383P6/d//fZ588kmefPJJPvaxj/HGGyPhgFOnTvHEE0/w9NNP89xzzz3Q1w7fZxnUt+MJNd5nGXeQvXTp0j2gF6VNXql9Gksr0k62AUHJeoqt4AoAM9YTrAXXh/efsZ7gTq9vBW6nWU46s6QUudZdGd5nM9jgtP04zeQqdnyKfS2kS415JmVeavE2J93H2A375b9YBcyZj7EX9rOodrrPkv04t8IEV0Tk9JC83hpI1YQ4mkcgewhxyNer/5CPzf0BQgh83+ell14il8tNyCF9fWODf/HSS5iaxs1aDQm8sr3N2VKJREmypsXdwzpBkrDR6u+0n56fx9VNMqZJd/B5nJ+b45tj2dT5uTku7436S2cKBe42xzKWTI7re6N+zodmZrh60D92DYvHi7O0rQjL1AiSCAtFI43pDlh93lT/SZ/aidueB/7bZ2fNzmQ5MJ3ik1tT51vOFbi4v8ur2/3X9PTMEpqlcRB08QdK590pxuEz8zWybo0wNak4PVIpyOshu2EehKI0ltnEanLBNJgqyU4d1mOPRWfyNbhjw7aWLomkRjtycEU8kUWpsd+WpUtCabAZFLGNyfNlzEPu+hU0wDX671/Z8qmGOebt/n1Lls+6XyIRJqYeEUkLSxv0swYbLUNr0U5sHN1HJ48pQqrRPl9xvsjz2of5bsf7Sc44CtM0KRQK95TyfvM3f5PPf/7zvPDCC3zmM5/h6tWrzM7O8md/9mdveZ778XM6ffo0X/7ylymVSvzFX/wFn/zkJycUy1944YWJrO9BxgcWoN4qvpVywDgwzc/P32NtPp2VKaV4o/EvMLRl2qlJW7VwtQorfpOS+SyuZrIdjsBpzn6SW93bw+NIi9mPTwGTvQmAardL1n6OVW4OF5xqtM0573G2w1E/qhruYAmPaGB3vh1cp2Qu0E76ZcJatI4uMlyNFnnG2SAlQ6gEjcjF1W3CtC82mrDNV3b/Edb6PyYJEz784Q/jef3M4eLODr/z6mtc3d9jb7BLe2J+jhu1GmGacqde56m5eVzNuNcuPlW8tL2JbRg8O7tAiuTq/qTad3dq51fyPBgDqNxUxmqN1eTDJKUXJVyujs55NpcjbEvmvAyzWQ9PmlwoL9JJInb8DntT2cw4eaH/Po+VCxVUpwRk79YnyQ+H0ZSh4TSjVJi8srVDxjS5MDuPryKuNUb9Nc/0OT27QSt2WHCPhnYNYpVB1xRBYmCMlfDGVctDqVEay45iKShak+VOfYoQUo+cYenwKPb8HDNuj4b0qPc8TnmHHEYeBWvyfpamWA8LlOhRNCfLgZ6esh+5Q0df6Cukh1LH1lJiqdFR7pCkkTUiGpFH2e7hGRFBksHSfVxNQyqFEF00ZWAKQds84PO7f8jPLv0C38342wBQbxfHjx/n1KlT/PAP/zCf/vSngbf3j4L783P62Mc+Nvz/Rz/60Xf0lnrQ8X0FUO8l0jRlc3OTzc3NtwSmo5gGqMut/4+vN15lyXmcjeAapnBoAJ20QTPtkUgPSYWz3iy6SLnVvcXRTlEXJiqa4266TlbPUNIrdGQNoQRl41FuRJu4UY28kaOXjhbQjWCTrJ7Hl31QM4RN2XqMw/Y+uu0QkuKnHrEqYmkGSujkjAyCFjfjEkXtLkIDTSoi6aNrUEttDKFI1Qb55X9NfueTeJ7H1b19vnDlKp+70s/IlvN5cpZFO4q4VN3joXKZ3V6XM8USV3aqpFKxlMuRd22u1Q54JJPlcrWfRYRJwus7uzy3uERGmjw+M8NWu0ksE1Y6o/6QNcjOjkIohtnYUWxOHa83JwkOWwPAO+wF9MKY23v1YdZTsG2inuR8fg7XMdB1jWrYoaWFRDJlOZOfmJ86mSuwNtY7Op4ZidgClEyLvTGA0oGbUwDWCPsLdjeOeXW7yoXZBR7z5lCm5Fpzl+dPrhIoDUePESgOIwdLU+iDhdwaK9f5iUllbIi2FXlk3dHrr4VZjnmj4yA1qNiTgNxJHLLmZAanBt9LU1OgwY32ApqWMqtPbh5SJXD1hE7qktEk5lgm1kkrpCIilqJ/HsDRE/aiPMftOtVoDseIaEYuM4NrcvSEVAl0oUiIMZXC0HyasYNnxCRJBlMLSBG82XmFs41HeK744MtLbxfvN7393WK6B/VO/bL36uf02c9+lh//8R+fOPeP/diPIYTgl37pl/jkJz/5rtf3XuIDC1DfqifU+CzPwsLCkJn2djEOUJ2kxldrv4unl9gJ+jNJFesMa36f+JA3llkbzC5thRGtOOW4c5b96C66MMkYp1mL+7uTTtpFxi4L7nE60ua637+9l/aYt0/QG2jzAYQy4LjzFI6M2A6abARN9N5dclj4/tHCqJi3F9ny+30fS9gYmiCULo868yxZVSwtpZda2CIho4V0pY2hwWG6xl7md/izv2rxb67dQACPz85y9WCfjVaLhysVwkadSEpuHR7yg8eXWTmok8r+j2m73Wa73eZjx49xtTppH7GYyfL6TpVESg56/V3+3zmxzCmVsN5pUu12eWx2ljfGHnfc89gcy7BO5vOsjQHUiXye9fHjXI7V9hjbr1jk+kFt4v6X9vc57PVB4+n5eTaqHXQhOF0ocdopMG9l6ciIrV6LGSczAVDzrjcBUKfyZV4fYxOey5e50Rypqec0Y2I+C6Dm+0NW4PMP75Ex+1YVGSNiN8iTKkHO7YNQlGpUzBHAdCIDJTP0UotI6SToBH5/MyWEohU7dLs2UglI+8n3Ma85HLIFcLVJcPJTg7I9CUSeHbHv58imMa4+uv9+mMM1EywktWSGWbGLrknC1CXBx9UV7WSOsjWuUdjjVncWz+qDWc4M6CUGnpHg6AmHkceM3SVrRByEGcqWT0ZXpApss90nZIgEXXT4o50/oHO7y3xmboI08J3yhno/Aep+iCHNZnMCdN4p3ouf0wsvvMBnP/tZvvrVrw5v+9rXvsbS0hJ7e3t8/OMf59FHH+WHfuiH7uu57ye+r0gS8PbyRGmasrq6yje+8Q2klHzkIx/h7Nmz7zpPcARQSile2P9tIuWTMSokhMxaZ1nzbwKwZD8yBCdbc2nFknrS5FJnn1nrSbLGWdb8ydQ5785xkMxQDSd33yu9dY45j2AKi0X7cWJ1mi8frrEXJRzE/UUuVZIM41rzJ8QbAAAgAElEQVRcAkuMpE8iFbJg98UmbwRlOmm/p+TpEbHMoQmwRYJSEiFCEvcuXulzQJ/Usd1uUxlIqdys1Xh0ZhZBf+j2G3c3CeOUs2M0WlPT2K13kRE8u7DIUQJQMM2J8lfetnl1Y5uLqzvUDro8mqtQshzKY7ItualMdm5KR23WmyQwFKZkYTJTjzffZrFJFWw02jTbEa+v7HF7rYG/LzEDjaezCzxfXuKxwsxbKCpP3pK1Jw0PHyrPTtxj3nKG4HR8fo+s18A0YqLEoB5lMHQ1kTFFqQ4I9oIsK90KgXDoCQcMDaFBzoowdIWhKxCQt0JsQ+KaKa6TEiibhsxyszvHzfYca+0KBXuyNLcf5IbqFEdxEGbIOBHVKEc7Gr2nkRy9f5beYrW3AMC6n0MMrtvUmuz4I7JOPcwQ4SFlfzHUBPhyBCg5IySS/eXJ0WK2/Tz7UYmb7Tm2ggqtZJZG7NKKHVwz4YXCV1haWsI0TWq1GleuXOHll1/m4sWL3Lp1i52dHdrt9rflMn0U7ydA3c+M03ux2rhfP6c333yTX/zFX+RP//RPqVQqw9uP7js3N8cnPvEJXn755ft63vuN77sMatoTKkmSYca0tLTERz/60fc05GYYBr7vc7v7De72XmbBfoSt8Ga/tBe3AEHOqLAejAgAeeM4K/760ZWyHxr0/ADdNEhFPxs77jzMpeYOKYrzuYfYHCNVGMKgl+TopsusNHeG54nl5HVvqx1m9BIt2d+tbwR3mbcX2Y/6j9ny17GETaRCrvjHeD6zgiYkmugQKxNLiwkTE1tPiJTOUmmNf/AxnT/8+pM0goBHZirUfR8JXKpW+ZETp/mbO6sA1P0AP06GZIen5xZ4daP/vK9v7HKmWEComBuHk1JAj1YqvLJx9F4JDts+K9U6EsVj8zNkPIv99qRvUWNKhqk7RYTpTR23ptREDv0pOnp3qh/VnuxH3Tqo0xw7R962WLbzzOQ8dFOQSIkpBPFgd7o7NW8VTJFqlgslqns7ZL0ux2YPyZox9cDGMxN0XZJKQWmQzQSpQSex2AhKGLoiSTRyY+y9TmzjjWVX7cihbI9eXyKhMDi2jf7GYLtboNV2yOs9lrx+JqiJe2E3SEw8K8E1E+qJSxj0O1kFe/L9LDktrjQXKLmj5xUCdK1//ZYmOUwcHCNkx89xLNN/zrwZ4scFXLOJqUkOQxdT89iP+wrrGTPGNQWJ0tDokUgTKRSHkYujdfg/23/Of3T85yeu5Ug7r9PpsLGxQa/XG2rnjVtsOI5z39Txv+0A9V5o5vfjBbW+vs5P/dRP8Xu/93s8/PDDw9uPfLZyuRzdbpe//Mu/5Nd+7dfe+4t6h/jAAhQw1Mkaj6NZKMMw7pHl+Vamrw3DwE9afP3gd/D0EonSmbPOo4k8oezg6mVSZRLJfva07D7Gtc7Iun1GLnOr18+cTugnSNJtysYJXm9ucdSbutxe5Yn8OTb82xxzzrLh+3yzuc4jmRPAqHS0GezySPYs635f4kgBDnlaQ123ySwqVD6z8SKH5jZd6bAWLnLa2cLSUpqJhalDzgiohTlyVkBDaczlN/iJ5xRffOUpbhzUeO7YEq/v7vJUZZ4v31zl+eWlIRsvSBKu7x7wI6dO8eU7I209gJVGi8crMzy/UOTSwT5+kqALwUptsvR1plzilW7/fLd2a5wuF9mudTlXKVAqZKhH/gQ93dY0Vhoj0DM1baL8Z+s6q40RwGVMc6IcWHYctsf6XwuZzFAHEPo9t42x8t7JQoG1ZpNWGLHT6g7LjbrQOFPIsVTM0ZExiZRU/S5Zw+TmWLkPYLPTBiQPndjF1iTNyCMVCntAfEikQCpB1c+RIiiNAUIyJTSrTa2xSaLDWALXCD1m3MnSnWMkuFZCjMWN1gKOFjLrToJqmOrknRHg2EZKkJo0A4fj5r2EnkBZHAQ682Pn8YyY3aCAq9k4gwHfrBURp9awb9WTMbaCROr4skBLCjQtwiYhVWBoCj8ycI0ETemgJcRpgp/Cm63rfGn/a3x89geHz/lW3lDjFvKtVovt7W2CILjHYiObzb7lmvBBAqj78YL69V//dWq1Gp/61KeGj3nllVeoVqt84hOfGF7Xz//8z/P3/t67u3e/l/jA+kHBW3tCXb58GSEE9Xqd48ePs7y8/G192er1Ov+2+gccOLtEqccd/06/1xNUAcEZ92Gud1Y5l5mnYtnc6N4mGUzrl5J51lWD8bmlZU6wL6oEanJXOmtWKFslLrVXx25VnM3MsxWM/IrKZpFI1kgHFgsGBie94yQqRsNASUESJkSyh2ELDF2jK2uEMgAUT9pbZM0ujcSjEeawzZAUQRSbeEaEEBI/dfn67bNcvH1uwEJb4GsrYx5JxxeHM06zGY/YTzlZzHFp/wA1eKkfmpvl6k6fZVfJuCyV8wgBb2xN9qiW8wU2xgDlueNLvLoxykafXlrgoNdlppihmYSYusbVgxEb7uFymZuHI0B4tFzh+hjh4vGZmYn7Pzk3x5tj9Pan5+d5faz/9ezCAq9VR/2lCwsLvLr79sfPLizw2uC45Np8aH6WroxpJiGr7QYnsgXuNOucXd6iUupiCIkmwCImZ0dIBd3ERBcKXQM/Mpj1RgCTJILMQPdO9it6Q6UIgCA28MbID9VOlvnsCDQ6kYVtTpa9tjs5PD1m2T0cPnajW6ToTmaqcapxGHvktZDSWJYWJAaHaYZY6pSMLq4xyhhbkU0tzlEeI2kEcZ6yM/oMutEMB0mKoSuaoTMsP4aJg20EpFKQSA1dg1ZkYeuKWNr0UkVGy/FfnflHnMvcXw9mPJIkGSo5HP1L0xTbtoeAlc1mOTw8RNf1B2ptfr9Rq9VoNBqcPXv2be/zMz/zM/zWb/3WO/pF/S2M7z8/qPEMKkkS1tbW2NvbY25ujh/4gR94ILugPbnD19LXmI3n2QvvIBCkqj8smzcK3O5tkqJY8Q/Z6GVRaYU5TWA4io2kw/jncsp9mNebGyxbM6Rij1jFg9tPc71dJ0hjBAI13DcIOkmChoYc8M4lcNp7mmbcY6fXZjvuYGt57o7JJJ2yFlmPmxy5MpTUKZphDZFKek6O87O30QU4VkgsNUxdEeqCUFj4sYGmUp4/u0rkVwgbZ7iytc9MxuWg21+k3tja5YnFOa7tH5DXTFaCHpd2Qx6fn+HWYY1EKdr+CIBrXZ9a1+fDy8c4XS6yMij7nSkVuVubLAFuNyfLbVIpNuttNuv9258/vsjThTk0S7Dead9DR89OHbvm5E/AfJcGdDzlFzVdrutNHY//ve6HNHsRbw4EZy1d43g5R2GpiVHySVId25JICVk7ohebtBOb4lh/yBlz3vVjY4I+3gwc5jLdsWObkjM2v6Qg70yCTCt0mDUnS5q6ANdO2IkKGGHKyexkVnsUB0EWz07oJDZ6KMkPMrtqkMOxU3QtYTcscNoYbQhqcQaEIpUa+kCGyTZaNEOPgt0jSA32IwttwBTMWQFpaqHrEZqIUKr/uG5i4GkJlgaIvnq3rUmaSZd/vvJ5/qdHfxnPeG92E4Zh3DNbpJQiDMMhYO3v79NoNNA0jUajMZFxPQil8neL7ycvKPg+IEkkScKdO3d48cUXMQyDkydPUi6XHwg4KaX4i8afAGBgoYBT3jl2w/6OO6uXCWUfBcpyhsOkTV35bAtBL50no49UI067j/B6s9+s3IgOqZgnsDWbZedhXmvs0ksj1vx9zmUmd07V8JCHMo9yyn0Em5NcbyW8dLjH1dYB1biDAm511sipEXFgLdqhZI5+hHvRIcpOURnFvm5xp3kCoE/zHTSuM0ZEmJi4ZoKvbCI0nn70Egf+Js0gpGy76Ecq00pxs1rjQ9kcK2NeTFerB5QNi48cP8ZGY7Is9MhMhW+ubLG+2+CZhQUqnktxys/mVKnITmsEULoQ3D2Y8mNqdbmysc+lO3s0qz6aL3imOMc5L0vRtid6RwDNYPL4YKofVZ3qR43T2TVgdYzObk6VFy1Nmyg/WprG7foom0tSyZX9XZLcHbqhgTvIVgz6JIKutFBjBIQg0cnZIwp3EE0uVGqq3Bckk2Dc8N2JbAa4hwgRJqNSnmkohKlxqbGIY9w74C4H6bBlSBqJRy+2kErDMkeLdMEO2PX7Ct+HYRbHTHGMhF4yKrkJAQqbKNXY8gsIPaQzUKfQBEjVr1GauqQR9l9TzoyRUuAYEWGiYxkhGhY5U6Oe1Pi1G797X5TsdwshBI7jMDMzw6lTpzh//jxLS0ucO3eO5eVlTNOkXq9z7do1vvnNb/Laa69x8+ZNtre3abVaD4SUMR73A1C9Xm9oMfS9Hh/oDGp9fZ21tTWWl5eHGdPm5uYD0+N7o/Uqa8EdKukcW+EmjuYOadwn3dNc7/TLXpW0zCp79KVABVmtxJXOFhnd5tHcKTQsLjbXJ869H/ZYtB/njeYNxrOsS81NTngz7EUHHHeOEaUOX9uv4RiKTuoDglbS44ncCW4MlCgUgoXMPO3e0THs1BKcgciyaack3QzmYPe96hdZzFbJGSFZ06ceuuTtENcIiJVO3gpoJzZCgx/62CW+9DcXuHVwyIXlJV7Z6pffjrkOK4ddTpWKrNZHi3YjitmvdTlbLnHncLR4HznRKgVvrO2Sty2sooZnmkOSw0zGZW2MVHFupsyNMTWJvKlPAJ9j6Fze3BuyBC29ryl4obyA1BW10GetOdmP2pjqR+2M9aOO5XJsdSbp6nfHAOlMsciNsXLi6UKBG2MAda5c5kptvPxYoVO+jNQE5qC0FyUaUgksU4JSeGPDs2k6uakaB40gNhAoWoE7zK81FFKN+lJBagIjAA4TnaI7CciHgUfZmxKAjRx20SgmveH9W4FD1hk9v22lVIMcMoVsZvL3pes99ntZutLGtvoAqeltwsTDHth/mHqX2+0ZMnZ/QXeNlEQKDE1h6G2C2MAxE7JWP4sSQtKJbfJ2hKsrUqXQRUKMxNGy7EZ7/K+rf8avnP77POhI0xTTNMnlcuRyuYm/RVE0LBNubW0NiQSu606QMr5VQ8M0Td+RPn8Eyt+LIrpvFR9ogKpUKiwtLU18WA/KEyqWMf939fPowqBDf2FftJe51buDLWw2Ov2F0xYWHUNB0v8yPpQ5y+vNPmGgm4a0oyz6VGd7Xi9TDSV3uytcKJ7iZnd1+LdESbL6PD2R4dXDGtBfYM9lT3C9OyJf3GrtYOo68aAXdbOzjqt5BPQXBMPrkcQahtlfvCPioS2QZiVcrZ/jwzNXBqZzklT1lbH90MM2QyxNIpE4lskP/p3LfPlvnuTVjW1O5z26CmqdmF6U0OoGLOWybLf7C/1Jz+VOrYFt6DxzbJ6Lu1WO5XNc3Rn1fQBOlUu8cmuLguvw+NIMb1Sr7LYmG/fGVLntdKXCm9uj8yy4DqutUQa0lMuwWmuxUeuD0MOzFTq+yWI5i+ea2LbJnWadareLVIrj+TyHYwzB+Yw3AVClKfr6NJ3cndrpWlPeVbKwh5cJUYBnxnRDm15sUMn2P6MoMci7o++qNwCkbmTR8F3QFI0oi9IkUWKQc0P8ATpFsY5jJqz7ZdJEQ0hBkoLV8yi7PYSAwyDDTGYyQ1Ty3kVT0xWWJWmlLn7bZDHXoh56FI0p1QgnZr1ZxFONCbKGrim2g/xED0sIRSuymB0A1G63jBL6YM5HoWkx7dClNLhWDRdo97+DUQ7XamPpKdWuh6lZCFwiOmjKRWg9lDD5cu11Hs2e5OOzT9/zmr6deCe7C8uysCzrHqXyI1LGtKHh2wm+vtNze1NjFG8VHwQvKPiAA1Q2m70nxX5QiuZfqX2Jw/iAs96jVJsHzGfO0Isl5fQkKtbAVViiS8GocL3Tz45Ousd5ozlis53LnOC1+jYKeKZ4lo1ghePmIlc7hyQoQPBmc48z2Vm2g30WnVmSxOOF6jYXSseBUfZwubXBrJmlLvuLeCBiHneOcXugbJ6iqDUhM6jsaTp0mza5Yn9H7GZiEt/FGOyQDyObzbDEslPHM0L2gyxlp0fW6tCKMrhmRD1yyVg+sRJ85Aev8eJXz9NOFMcyOS4f9oGi0QuY0zPMZFwMTWe13r++MEl5c63K86eWSJFsH05p2yV98Gn6Aa/f2eHxxVlMV6fa7g4zov3e5AI5XdAp5XMTAJWxJr/uIo7oBBG3tvtZzzPHF6htdcmYOgulHBXd4bm5RQKZUA8D5FTJyJ/qN9WnyoM7Y+VBIZgo/7mZiCizh2coRNrvHwld4Vhjfldjz9fwHZTSqUUeug5daQ6ICYMeazS5YPqRiWsl/cXdkgSRjuOkdHFodl2INVQKyutytJbFqUZhigjRi0xyTh8kDV0hNY2VRhnPvvc31Oi55L2QnXaBY/lRZioVKE3QiWYouKMNRMbusdPJ4xoRsSYxNUXNd5nN9EHLMRJSqaNrKabRwY8NHCOhk6QchmWkpugmJraZEiUhQhiYwqAXOSglKNsav732/3DKneeh7OI91/utxntl8Qkh8DwPz/MmDA2PSBndbpf9/X1WVlZIkgTbtidAa9wX6t1KfGmafmCyJ/iAA9TbCcZ+u4rmrbjBpfYVZown+Nr+HqGSLMQhm+khM0aBvbiFjBVnM8e43ulwJvcwieqy6beGi+hxZ54rzYPh8cXGNh8tnedi8/YAnPoRq5QgtTjnPszLh5uoQQZ0pVWlZGWpx/0FP1UKjwx1RlnG7d4eIjUJ4r5zqqs5HNZE3/3UsgjiiOTQI+/qRCokiaAwaPuYTsCt+inm5tvYWkLF7tJNLMyBfpqMTXJG0J+7sUIqBcWzH72OvPPDtDsRtq4TDjYHe+0ux4p55jIe+7XJLGh1r85SPkfBsYf9oLmMx43dg4n7uYbJa7e2Kbom5YJHW0p2OiM2mwDWDifnow67k4ARqsnvg5xaZHYHJccwTlnbaxAHCdtjWZvMpSxpGQqejedaGJrGs3MLhGlKolJqft+UMZGSWcuiOqZ2ca5U5uZR/0mTzJ5s4FoxUkIqdSxLkqQahUHGJJXCs0L2OxkiDNLUJOf6HF2xOTWnZGqTGzFj6rsfhQ6O1QdMw1CkWkqcmtxtzWCrhIVci8OeRzEzCVCNnkcpNz7PJPClQ7frsFycJLB0EousGZFxI6qdHPPZ/qZjv5vDtlKUalH33Yn5KMtMOQgyOHZ/0+GYCXGqYeoSU0857LnMZjsIoUiSLAeRQUCKplygh2skpErDMiTd0ECYEbbmEcmQWqAj0Pgfbv0x//z8f0LBfPfM434iTdMHYgj4dqSM8dmtaV+obreL53k4joNt2/esca1W656y4/dyfKAB6q3iQWRQf7z513z1oMoj3ilCFVNJcmzqfbv2rJllN2pjCYOD0Gcv6lKtdTnlLJE3MuScDqGM2PbDCWuF87nT/HV1jUezi+zE26QDkHoke4IbzSZ42lAbDSBIY3LMTADSRlznfOEcB72AjVaX/TSC0EDPxiCgrVJk7GBmYwJScHS6XRvfigEHpUOvngEZYQmJrenc6C5w2t2nkbh0ExvblKBBK3SxjIgwMsiYEYamWCh3WO28xNraaZ46scDFnRHdOm9bNBsBrq7hp6PS3OlKkYt3dpgtZKhUPO7W6pwoFjloTs7qrFb7gNXwYxp+zJOLFY4tFbh+UKMTRZwqFVgdI2TkHZv1+hiBQQjWxwDM0ATr9VHWZhs6+8Hoe5E1DXbGwKniWBx0+gvrfqvH2ZkSd8Zmtp5YnOXuno8AirbFMccjZ7s4loGh61Qcl/yMjRBwULqObiQopdGOTIoDUNIGn3kqBfVeFsuM0PS+yYoY+65ICe6YYGuSCDLO6FgpRc6ZFLM19cmFzPddbDcCHSQaG70SsW+SdSIMffT5TJMoAKLUwPNC1htFlgsNhIAo0XHHCByGmdAMHPJ2QIJARyEESEySNOirXAB1P0MnsXAGtHPLkDR6LrPZ/nHWDolTjYbvEiiNMFXYJkgRggJNU/iRhm2mmLocyJjFKBS2rtNNEza7Pv/N5c/xvz31H9yjWv+txHdyDkoIgW3b2LY9odhw5At19erVoYV8GIYT9vHVahXDMD4wXlDwfcDim45vN4PaCw/50sFLZIXLjUHpLtEABOcyx/9/8t48WLLsKu/97b3PlHPeeaiqW3NXdVd1d6ladEtiMDxhZNq22kJhkMEh+QHiIXgBD2F4PAcR8BdgXuhZ4ZDimRkJCIQIjOQwEvBksEFDq9Vdquqpxu66de+tO+fNOfOMe78/Tt6beW5Vt6pF24ZmRXTXzcxzTp48Z5/97bXWt77FjW5KkjhRXGAzSHMdZ8tHuNbZ5NnGJjeaESUOYEZW8w8Uj/JULa1lutLZZtJMUrULHMsd4Svbm7SigOeaa5wtL2TO5Vp/i9OFBU4Xj7DgHqHeK/D55QYvtBu0RASWQDsJYuS7LE8zmroRajgBCQF9HxJX0HcUdQXPrR/nZmcKIxR5O6Yfp2uavBWgjcBzE3aCPO3Eo5dIZuZ2mDu5waWldc4fSMMqlpR02gG3thuMKYe8k8bZC47NtZUUeLaaXdbWmzxycI7b9SzDbzbvsdPPTrjtXsilq2uojubNs3PMFrOrxoWxSlZOqOARjoR7j4xXM68Pj1czkkuHJ8Yy+8+NZdt2iyh7PqPWDSLaYczSTotr6zu8eHuLq2s1Li2uc8W/Rl/5GBHRDF28Qc2SMYacFbHTy7HdKxAnAjlI5MSJwBtl7/l2Bjj8wGV0IX3Am0eM0NEFgmoxO+Ydst6EUAbjGm53K2w30xV9P7Qp5bMeldYCZ8A2dHMJSztjGAO1VhE1MpsoCQkOXX8K1xleV8cOWe+m17ITOBgr1fjrjzAS827KzIOUubfSrOILB6QhGow/ZIIfpDm/gq0RRuBYmihRGBERJ4oYHwcbKQ2X21v8m+f/413v12u1/xlhtN18lWVZHD9+nIcffphHH32UBx98kKmpKYwxfPzjH+f9738/X/ziF3nXu97Fz/3cz/HpT3/6VY/7tXpBGWP4sR/7MU6cOMFDDz3EhQsX7nnf18Pe0AD1eveEiqKI37j8RyQmYcoaQwvDfcXD1EQXhWQnTFd9s+44zw4o47PuGM83ho35DnrTfHF7hZavuL94mPuLR3h653bme4IYxjnExXq2i+5z9Q2qeAjgRH6OY95hbjQSvry1zcX6JqFJCFRI3B+u7qQNuj9MvGqpiXoj7UK8hKg3nBysXLQHaEJA6AuudabZTYfYGLQxWEqTJOl+BTdK8wxC0dc286c2KE22eWF5gxMTYzw8P7OXY1rv+BzIF8nZFqdnpugGw3sRxRq/EzHj5fBGCAUHJvY1E3Qslga5rF4Qc+n6Gs3NLmcqE5ydmUJJcUc9U34fQaHiZQkNRSebnN5PaBD7jif2ESKWR5iKrhTcHgk/LlQrbHa6SDckN9fHMtCLXaTQeANWW9d3qPs5YqFAGnIjOZ4otMgO5ey4fmhyKvO6oPY1U3TmB4XYQ5upZH9vv+di2wmWYwhcwVJ9kq1mif2PUKOb2yPWAHjFmOXaGNh3elpSRSw2XPZ1GqGcC/HDIt2okubIJHSj4fW0lKHppwSUrU6FxJLEA/JG3guJBoQj19bpuBQJYbhbDpHet7yj0cYQmwBIyCuLi60VPnT1c3ec52s1Y8z/tDxPkiS0o4g/fP4y2pi99vEHDx7kwx/+ML/8y7/Me97zHj70oQ9x/vx51kaagt7tWD/6oz/KZz/7WV588UV+//d/nxdffDGzzWc/+1muX7/O9evX+dVf/VU+8IEP3PO+r4e9oQHqbvb1DKwoirh+/Tp/+tR/4UJ4jUmnys1wHSUUG0EaNjqZP8Tm4G9LuCTGINPG7nuhvIfKh3m+mYJOOw7pBy5tX5FX6cMlgAdLC9zo9/hybYWHK9lKcIngYP4gnpnkme06X93Z5Ha/hRNm2WR631wRqyTDIHCc7KwzytySFkTNIWCZXEg7zLHWT1e9rhXRGnxf0fGJEoklNVFoYakEIyRGSRbevIJWfaQWrG1mPaKXNuscq4yxXrtTIifxA168tUVVOByfSoFpdZ9HdahazhAWiq7Dzc0G15ZrXL2+xXjskjOKI2PD2H43ynoQ3TC7SGmHWY9op5fNX90eKRB2lMzku+bKRRojQHtkYox45PxcHQOGwskmWoC2NEoZLGOIE0G9kyOMLeTgsseRQo14tpbMzvC7CuCQjplavK+XVpLN8+VUtp6sqMpshtl97H0elcrFtHSe9XrWc4z0naGtSFg0+3fmd1rdHLlSQLeXbWYnhGG15RGJkZCqFxKFw9qdkhdyu1nClwIlDb1B/ZMUEEQDpXYV0QvSvy07wBgwMiCObBAJJrGxLY2LS4RPZCL+ZP15fuvlJ+84178LZozhy9t1/vkn/ogz01PIuyzAd4t0jx07xhNPPMEP//APv+LxRntBOY6z1wtq1D796U/z3ve+FyEEb3nLW2g0Gqytrd3Tvq+HvaEB6m9KtYzjmBs3bvDUU0/heR7XpjcxGKp2BY3hVPEInvQ4wBRhIjlZOMy58ml6SYIlFGdKR1jsponx+4pzPL0zVA1+uHyYp2urXNzZwNFF7ivOcsSb56nttb1c01NbKxyVVUrC4UzhEP3A4a82VhlTWfXupvERyfBWStcQ90a8KMeAP6ydSKyIqDviNeUjVDJ8LUZWyNI2mK7NS+2pvVVs2Q4IE5kWWA4Up8s5nygWFJwArSXKgiNvu40jDGU7be0xap5lUVYuuRHPpWArbtVSINhu9VleqfPNRxfYau2nQmcR+Ohktn27LSRPX77N6q0mh6wCb56dwZih3yEFd+ajRl4XHJvlEVCcLRWpjRAujk5kw4Oz5ez98Nysd+ILhXOwjXA1IJASjE4XBq3AQyuDN1JTpEZCslqnXsOuJYGD4wzBdsaZppuMMBVlns0wKxfVjrMAP2FnPS6AuWrWI4xiiZsP0DnBcm2MMLSIE4mXuzO06euSlcsAACAASURBVMc2dj5hs5EFs+7Aq0nsHq3ucBFljCCUkno7C2rt0Ox5W61uDj8ehm1zTkIyGH85NyIeXH5bGYxJQ4EqHgCxSD907DQaoKWPFJDoBC1CfnPxST556+Idv+Nvs728U+cHP/Wf+S8bW3zHieM8MH33DravRYfvbr2gbt++fU/b3Mu+r4e9oQHq1ezVqsx31Se+/OUv4zgOb33rW4nHJU/Wn+NYfoEodilwmCc321zY7tMOinxhq8alWocvrO3wwrZPTs/xcjPgTPEoZ0qHWOq09oDnXOUwT20P9eRs6bDa1Ih9nJWCcLBVmUl7lq9sb9AbtAZ/rrGBDoeTmJACO856UYa06FUkksRX9EOwwzxhxyZs2zjkCTo2VpjDDnP06intGEAVEpLuEOCMFRNqi6Xu+OB8Nf2BSkHJ9emEDkKASFKGoGuF2FaMl09oHb/ES+vbPDg3O/y9SrK60eTGao0Z18MdJC9OzU8zwp9Aa0PQjTlWqnJo4A3ZSnJrJzvh7q8jmx8bTmwbO136rYjams904nF+appHD87jjbCwDo9VCOIh4CyMVzIe2kw5W5Wfd7OFksG+nOZosfBcqcCS3sSeCIljC9eJ0Rq6XZvYkggFRBa7jr0xBm+E8BD0bQQGv+8gggnOVE8zaZ0kzzFIDmHiWbrBHGF0AL83Q5GTVOR9zDv3c9A9wUHnMDtxVpw23jf2i6rERpitQwu6ub1zUgXNpl9kY6uS8ewAkkRguYPiWy9hu5mCdd+3sXPp+0IYfG0TD0Jzvd4Ylm1wvJgwGo6zfC6i0ckThS4dLITtEw8+F1Lj99IxrqSBOAU3x47pD7yoQEc0Ox5t32W9UWCnm2ejmafZ81BRFWEUYQyeJfh/X/5r/uT2Zf62Wy8M+fdfeopf/KsvEiQJ9TDkRx575BW3bzQa9yxzdC+9oF5pm9fSR+pvYm9oFt8rXTCl0oLA/UycOI5ZWlpibW2NgwcP8pa3vGVvm8+sP4NlDlDrF3ixtcq56gLtuMG0W+L6oCngicIMz+ysoIRAa8Fit8VKt8MBb4wgcnmoOosjFV/YvMXuev5sZY4X62mb9NVeiwfy4yzGDe4vzfFCY4dndrYoWg554dAz4d7v0logTDLwYqAdhRSSPN0oRiMQUtDrGtjFLQFxRxEPFvfdOMGOc3R22WFCItoWFgJig4yglAhiGaByMbpnc4tx5vNNPBVTdXp0I4e8HVOwQhIDhVzITjdHIRfR9h1cJyBfMUx+0xqXPi84f2yeC8tr3D87wQsvpyGm5e02h2eqbPt91mvZWigpBEsbdXbafSwlePPJOfpxwosr2cl0ZV+oMNnnYRUGHk2j49O44XPu8CzddZ9D40UmxwuUix4gWG936IbRHQW2el+FVbM/zOcoIVgc8b4WxioZdYpqxaFW7mEGahFJbNGPJa43BEQ5Iu4aBYpCMcbv2/QDhyhW9KVCSEE9CbHaDW5Hw/o3V7nU46F3N5ForvaG1+d0YYHb/T4nClWqjqCX1FgPsrnNKWeaRnwz895ErkRzpM5OOoZ6N0dcE0xMDEOI7XYeq5CevxAC7Rga7Txx7CDyQ+B23ZjNVpnpSpuWiZCAUoZW12OyMlIvpqAeFpADkke/a1MaiNlKJyLRKQED5aN1mr/KiTz1LvS0xjYeWoYIIdHCoGxNYgSNuE+iFRaKVpxgjObfXf1LctLmf5k7wb3avTQMfL3sv928xaeuXmOp0WS91SFvW3zv0YU79CRHrdVqcerUqXs6/r30gnqlbcIwvKc+Un9Te0MD1CvZLlFiF3ySJGFpaYnV1dW91huj4HWltcrv3brIwdw4L3Zuk1cu11vpJDDtVljvd5h1Slysp9JGD1cP8ZVa+veDlQM8M2Do9QLBl7Zv8+DEQQLjU3UKfHlzhV2wMgikynHAh6e3h5NMJw5xjMIoEBKEFphEEDVtlC2J0CAEIlZE1ihFL5WW3bV4n/KCnSjiXSVrS0BXEhc1OAIsqMWA5ULHQXUFY4nHDTnL2ZkVtJE0oxw7oSROJF1t4yiNjiTNxKMoU/UJx04oT/WIHt3guacVh8fyrKxl62dubTQ4f2zuDl29E7MT3FhKWX5xYrh0ZY23njrEkYkyiwNQOjReZmVrCFACWKll66FavaxySD9MJ7+NnQ4bOx1OzU+yvJp+92wlhx0Jzk/PIJQgwaCE5OTkOH4co42h5YeM59Nw0ny5SK3XZ6qYx1GK2WKB8ZyH3+tj2RbXS8tYrgEMJpH0MZhEYHkDcd+YvaLXwLfo921CbadPpgO2rfe0ijxhsxYNvSEbxUo/m0taD7PeksHg64jn2+l2h70ZDCELOYfNaBlf+0Q66wEKI4nsLowMlyQWuPmIRAk2t8tMTbQQIqXEj04iUgoCo4i0YL9Ua6EYsrJdJVcehjNz+ZB216VUSO9R23cReKhBmw43F0Jig4qwbU2v61IqBliWptXyCLVDaBniQGK5Yo+qb9maMJQoyxAN/i0Kl44OMLEF0lDrh/zsV/+UH3r5FI+NH8wolr+SosP/iFYb650OH7/4LH958xYtP2Ayl+P01CQ5S/Ho1MSr7vtahGLvpRfUO9/5Tj7ykY/wnve8hy9/+ctUKhXm5uaYmpr6mvu+HvaGB6hX6gkVx3GmvfvdgGnXfnvxrwEo23mgzn3FWS40llnIj/NsIwUYF5vEwFyuwsV6Gr47W5njmVr6+X2lKZ7b2UQjeGFni7OVWZqdmBkrz0bc56BXxhUuFwdabTNeie24vZc4CWJNRRdpRH7askIIkAadmBRcgEDG5LVDXw7yBDYQSBgUQRpb40SKaABKfTuEmOEoGHU4JdCVUErBL8lDLTFsNydRdojrxEgl6McWrpWQ0wmxlliOoRs6tGVC4FvYKkEoTXmmR3z/Fu7qIWLbodnPkhTCfkIusXCrRdYb6eSU3+fJSODarW3qnT6nD1bYjEKmi4UMQB2aqLC8PQSonGOxNPJaCjKfSwFL20PA7PUinn1pfc8Lm6kUWB/JgZ0+MMmVtWERcd6rcPX2CClhxnBzF2jP9BAqRBiIIoXwNAKBGllEJLGkG7mERmEsg+MO74eKbBhRHz+cn+JGb9jW5Ghhmpf7w7h/JcnRJJuvW/Oz3ZjzVo4X2pss9sGVBR4sHyHQWc913p3npX42j+W3PVRpcM8Kho1ahWqhh1OM2M8q7PY8YgucKEGN5DN1rBCOjUnMHg1eCIiRaA2dnodxII59SARKGaSEKHCwcwMhXVtjjKDbdWgmDtJKvz3NhWpCEZL4CuVqctIiJMKxDbE29Omn26mYRAs8y8FPNB/vLDE9O8c5pe5QdBgFrVwu998VoKJE8+mrV/jtr16iFURM5/McKJWo9fpc2drmY098J8H29qse4/XuBfX444/zmc98hhMnTpDP5/mt3/qtV9339bY3PEDdzZRSLC8vs7Ozw/z8PI899tgrVoa/1Nngr7avciA3xgvNFYqWx5VW+vB60gUEJ71JLg/IEDnpEuk2026Rm606IDiUr7LcbhNrTU7ZHPKqXNhKwyx5ZfFN00d5dmeT+sjqd8PvQiixlUSThpnqSUhOuPTFAICEwMQgrCEAB0mSPrGDOUMZwTCAJIgCw67onpGQDxz6Vno8k9cIX4A3ON5I/QoSrJYiKhuW2hOcmk49vN16LiUNfiJRaHJWhK8lrhvT95307BMoHelQa+7gbY5TyXl7obKpcoGrS5toDdWix5GpKrd3Wry8mvUGjs6Mc/N2+t7LK01yrkVhxiZnW/QHLL2JYi4DQIcnqlxdHT7UC5NVFjcb2ddbw9eHp6pcHQGgmWopA1DevvYc9e4QQCp5l1uD9iDhgT5WIcGWhn7fJjfIx+gEcl6M1oJ+x0ELgzW43iZQiPwQuM9MzHC5O5TG2k+dd2X2XMoyR3NEDHZClqglWfDZ6Q/BPNAx2wG83O3ycOUkRu6wHdWw5Z1tKoSx2OvPAsiCZn27wthELwNCkNYFKlfT7uSpVDt7VPWgV0S7Ic2WQ3UsG/4z/gQBEaBRlkFGRVDpuRu7TxwpLDvBdhJazQodlaBsiHyF7SVYXkwSCZRt8CyLiJBYhRBZGCvBil0SO6JsubR1ALEgVBFJImnj83Mv/jX/6/FH+JEHHk2/8y5tNvr9PlrrvYXtvern3Ys9t7HBh598iqVGk/FcnplCkfVOl+WNTc5MTvG9Z84w5Xms30O799fSauPxxx/n8ccfz7w3yvwTQvDRj370nvd9ve0ND1CjHpTWmuXlZTY2NpiamnpVYNq13178PABVq8AKDU4UZ7lQX+K+4gy3u3WOFaZwE5f7nCmmilXaUcSbKofwpE3d8olNQjuM6MQhY04OL1ZcaaSr2rNjM6x3uvzX5RUcqchLh64OEbHAEooITRSS1pgMHvK+DlFIkt1qfwsIBLgDFQKlqRiPlkgnztjRyJ7A5AeTYF5jxZJksIqPrAEFXZD+LxoBKBfoScgPtrXTSaUVeLR8l7IXkHciWr5D0Y3IWRFRZKceQpx6eJYVEyOIsTBGYM5ss70JR3Pz9MOQMNEcGi+zs5WCQKPjE0Qxj54+yJdezCq8769dkgievrRCMe9wbKbMte0GnX42nOft09+r5rNkkmrBg5EoWc7Nbp/sK+LZHAGrct7l1oj3tTBV5dmVDeJ8BLMJ0hiCyEo9gV1ygYZe2yVWYITE9YYTtdwn1NpNsmoaG0E2BFqLsqHMmOy5zuTHqY2I2+aFw3qcDa+afoJBcLG5iQTOVe6jm2SvoUKRr2r8ffVMiSOodfJMFHqowWKm33ZQucGGhZjGToGxiS5JLAkGrT6cUkSn5VIsD79nuwOxC9YAgxMVYCUKVIKUoMICxmqx0ywQaIE1iBqIQcGyEKmHpuyY2ApIQomyDTpJSycSK8Ro6Is+IrGwbI1ILIRtCOO0O+/HXrrA5foW//5tj++12dhttbFrjUaDpaUl1Ii3FUURnuftKTqUSiVyudw95aqavs9/eOYCn7+1RMG2WahWWGt3WWw0ODU+wbFClWa9z7vOnqbZqH9N7+2N1AsK/h4AFKTAtLKywvLyMrOzsxw+fJhcLvc1wWmxu81fbL7AvFflhdYK8944OlEcdxdodTRrTcGBiQpf2rpNRTlcb6zTjSO+YfIg/3XrNjllMe2VWGp3OZqrgq8p5fNM5ss40uKpjbStuzAQBprIkIYddEw0ACCjQEQCYZu90J5EILVCCYEtFJFOCLsxeduhF0Z0iFHCIjEGV0nCMIEISp5DJwhJEkOu6NJPIiKl8WKbYJfmnNeQwK7oW8Gy6TKYSHIgOhJTTKv7H/BST9IZSMxIIQi1JIcmZ8f0Igvb0oQ9F8dN6AYWSIn7jXVe+kvJ2ZlDXNna5uZy1lPqBzG9HZ83HZ7jq7eGhYar+0gUR2fGeeHmBs2OT7PjM1FyseMEz5L4A7HZzX01VP199U+7+ahda3SzBa0rI/uPFTxWR+SRFiYqPDdC2Ei0RktNcioAzYCQYrBVgjEQ9lK2nnB0uh4IxJDEAljO0NctK48Vf8STc6psj+SfJuwim+EQbBSSbbLXZ7cX2a4dyM1wtbuSea9nxTBwyDXwUqNF08SczR9gQ6yh0cy7c1zvZokVSd9G5dPzrXfyVIs9LEcT+Da4Iz57KaHdyBFriSkMEc5YYGKFsBL6bZcgl6B6ORg0TzQyoduyKYylx0qsHv16ldhJUGjs0CFyQixHEwcKy02w3DgFJAVoCaSelUgsUAlR3xqE/hQ9oUm0xigoWS4dHWESw19v3uK7/vwP+M1veYKx3J2epDGGXC6XIQTs97a2t7fp9/t7IrGlUmkPuHa9LWMMn7l+g9977nniRDNdKFDr9Xl5Z4tTkxMcL1a4vdZiuVfno//iH2MNWsV8rTmr0+lQLBZfdZu/S/aGB6j19XWuX7/OzMzMnse0srJyT3JHH7/1efLK5ZA7Q+jnycdF/mrjNg9WZ7nW3KJie7w4UO2etnJc67e4rzLJV7ZWkEJytDjGi/VtZiyPmh/RjEMezpdZ3G7SCFMZljBJUEqiSQEoiDUWEk9YJMJgC4URBhMZImMIk5hICPLCpmci/EHNh4gsOiQg0pBg0dh0ZJS2X7AVIoSGSJHHCEj6Ai1siMDRNmFfIIyhaNv4fki+oFA2dLWfTmC7xKHB3NMNXXZ6OcbzfTw7puW7FN2QohvQDR08OyFFVIPnhfiJwrMT/MjCKIn6phbP/dUK33zyBF94/lbmupfzLtdubRLHhvOn53l2dYP5sRIr61mPodvJFqROlopcv7mN6yjuPzpNPfJZ2s4SKBY3h17I/nxUzrFYHiFYzI+VuN0YTvoHJ8rUe6MtI0YkpFTaPDE61Udrge3qNLSlQceSMFRoTcZjUiOAZAKBHGG9LRQmuDqihj7tljIANeuO0ewNf9vB3BS3RvJGCsmKnyVQKJFd0VetIuth1qOaL82w3Vrmq70W8/YUE3ZAvxPe0ZDb71qI6uB885pGL08pCtDF5I7aldCGwFd4Ix6ecjRBv4BTaNFJLIQFSS5A9y2cQTjUKcZEocR2NK1Gnl4osQfXbLRJgWMUmgQhwYtyBKqP5SYk8aDwPATpgVSa2JdYUhD2LIRMnwPXkyS+JLE1jpIs9xu8409/h//r4W/mXcfuz/yWu+WgXsnbSpKEXq9Hu92mVquxuLhIFEVsa81/Wl9nredTdl1sJXlhc4v7JyZZmCmzuFZnuVvn8ESFbzyxwAPzad3avTQrvBs7+e+yveHroAqFAo8++ignTpzYu7n3Ine00q2z0u5gh5P8+dIKG12fFxrpBNAM00nqRHmCbhJxujzJtX6TguVQ931A8EBhnBfr2xzJl+kkade4c+OzXKvVEAam7TxHilW+Zf4w//TwKb597ihvqs6y4FWwEkXPTyAUdPshnSiiG8eEYbI3KfZMRFEMY9/GNoiRGsqOidgnQLBnQgL+MG/VlRGWURglaesEy3JoxoadviEIXJJNh2TLJtf0Uh2/fnoOt5uVPQkkz0oZbqPM/oIb0Q8tlDSIQKKkQUmD7SUIRyO/qc3ixhZvOppthXB8dpw4Tg/83JVVTlSrdxTDCgM73ewiIzcI5wVhwgtXN6jEDieKVc4dnKXoKI5MVQni4UWZKXn0RjyquUo+Q1GfrOzvSioyfy6P0MuPTY+zM99GW2ktmFAGHQmILCKRMjBHNFjRkUC5wzdcsz+PkX5mC8WEXUJhcdCb4pA3zYI3gyddpp0xiiqHRFBU2dDlwdzUHR7URpAFo1n3TkZYNx4OotWox+WeJp+fwhL7JmV3Xx2Mp9muFzHJnVNK1PKIEgsd71OTz/Vp7VQQu5FbAVE0MgFLQ9h1aNby+A6ofLJ3jMSLMP6AheuGiEG9VB8/HaPCoEIbGdm4xsN0SvR8F8I8jQAs4RAbhUHSDmJAEoaCvm9IItCx4EOXvsT3/tkfsdwe3ufXQpJQSlEqlZifn+fkyZOcOnuWS5bNb66ssNb3Kdk2m+0OuuNzTHhs3m7wzNXblCybY5NVdro+P/wtw5qnrwVQr0cH4b9t9ob3oMrl8l17Qn0tD+o3rj/D51c3OD9+gEUanKpM8ZXtFc6Nz3GxtsbBfJkL26u4Ug2a2glOlMe5VNvgPqdIMwh5bPIARgsWchP4YcTDk7N89FsfZ6rw6i745cuXuRaF/H+3V7i0sU4/ienGETnbohtGWI4kRtMxEbaRRDJVKDCYYT5JQt7YdAaJbeOACNN/IQ2xDHNPkBcWrUGspy8TZB/0IMKROALjCBoYkDZqB7RncJRHze0wOd7BsRKavkvJDSm6IfWehy0g0ZKOb2M5CUGg8NyYbs/G9RICBctnbrP2Fy3edPwQX72ZhvMa+5TMX1qqcd/8OIfGCyzvDPQOq3nWd7LbbTeyDDZbKa4sbsGAyX9grsDYIY+6H7BUazAzXmWtNQxd7dffa+3z0EZFbA+NVzLqE6uVJuQABcpKiDoWRoA9CIMZbVC54Ti0RidyA8cnxlBqHAubfmRY6wSE/hjbcUhNCG7JHYIBHVxgqNgJrTgBbAQWE9jk+lPMVsvYUpO3HFbFNtGg+nrKrrIRZj3QZN+ElpMOt/bR1g/mpvhC7TZH83PknC5bYZ05d5KX4uyxALQNvZ5LQfrIAXHHGIhskK6mW89RmhreMx0pQmlDEqdhOcAqxAQdG7eYjttYS/rCQqIx0qA7ClkeeFjCIaKPEBD5AstOlU/iTtpmoxco4kCC1HiRAmsQ9pQQyhgnVoRKU8SlY0JyxqYvIkgEPjF+P6bZ3+K9f/YpvnFugQ+ef8vXxeLb6ff53M2b/OXiIi/XGxwuVbA9Sa3eoxi7eJ7HlZ0tDpZLTEzmWa63EcD33X+Q65df3CNj9Ho9cncJO+5dT60RQrxhmhXC3wOA+noEY7f8Ln9863nGnRzP1tfIWzaXG5tIBJv9dBKs2HmWTZuHJubY6HY5Y5Xp7vR42JniUr3GQ5NzXF2r8/jxk3zbwhG++dDhex44lmXx1okJnnjoYQD+7MYNPvH88zy7uYE0Et1LFRVibZBqkFyXBtu2CIMEMyA5dIhQWpDsJpLNiCSfBTIAPVh4t0yI0CmzD8A2imAQzzMuqB4kA2Ua7YCxBG0MN7cmGa92EcIgIsV6r0RsCWKt9pQI/DDNRcWBpB0ZlDFIk+rRmVJM+K1dLv7FMg+dOMhOp8fSanalP1PNc+PWDgg4/8A8l5bXKbkWo1mR8VLujhzVxs4IwBio1/rcWEkJKiXPIqcV5w/MkEhoByFSWXv9nBCw1Rkm8SfyDrVOn5ytKLkO0wWPsZyL0HBD1NhwOggLCCHRNsYxqJEhJiKJGMnNoCFsOBghqeYLPLPd2Ls3J4sTvNwbXoOjxQmudYa5roXcOMv+MNznSZvLnS0So1ncTr37Y4VJNvslTpaqjLmKgmWxGTb3vkMYwUo/S1k+4E1zuZMVFy2qPFDjZq+B51u8aewIUkh2OznvWtyxYEDE6bVyFCo9hIKg4e69LysJvZpHfiI9x27DJS5GFIIScX5475IB7Tzu2/SVQvcVckDCEJ7eyzOFtp+GRl2DyscILYl8Qa/noF0JFoi+wHgGX0bp4LdA+ALjDjUrOzpt3dEXEcQQWwl5bdOzYvLY7EQ+n1t+mT+/9TKzTo5vnzvIj8zNYb0KUCVa8weXX+BzLy8SJ5qSsul0A/KhotcOub5R4+zMNM3Ip9lt8vCBWV7errPTM5yYmWSikOP7H397pjdUvV6n0WiwuLiYaWhYLBZxHId2u025XH7Fc/q7aG94gLqbfS0P6ndeukCoE46Vxnm6dptzlXm+sr3C+fF5LtRWeaAyjY3irdUjXFxawxWK9ThmslBkrdXhTVPzFC2bX/1H/5SHZ2Zf8XteySzLynh97zhxgnecOMF6q8UH//TPud7YQWuDFjGRhpy06CcJkTYIIxFNg2tLAq1xlcQXCUYZcEBGAj1QnrblEIRQUI4cmoMaqtBLEPHA04JM0aZxQPUhyaXCnYsrE1jlCGEJ/MTGcyJsqQl6Fpansa2UJGC5aWdXLIMf2IMiYoNVjAi/tcvzf7nC284cY201O/mNFz22tnpg4LkXVjl6cIxw3wLj4GSFemO4Op+q5NmsDwFKSVhaH076YZhw+do6/SAdB3nXwo8SlDaUPItDc2PUu33GLAdtDIeqFYKddcJWTIOYQqxYrnXwx2OCEwnYBt0ViLwBaSAxiNzwokmlwbcIfUGiJaKg94goBwoVtpvDcy3bWbZiwcoqB0y4+QxAHS5McLUzhOuctLnV2yExmheaKSA/UJrDhDMcLxcJSFfoi70sQClx54S74Q+9Rl/HfKm2zZurh1NyjhmO0bhnDevtChq/nscb7xEiM8XiOgdJz0IbiAoGgaBj9bF7ao90oXIJVq9C2yQgDSKXoEOJdDTCMiRdC1mKQUASWshBobNpFekQgyuGzNbdSIGConbpEKTX3RgSO0m3s0n/dUiTHgb6RNgouiaEJA2DF6XDzX6bX79+md+6cYW5fImy7TCdL1Cwber9gHrgs9Xr0gwDxu0cYTficLnKtdYOOdvCkYpb2w0enp/l0vI6JybHCK2ESyvrPDA3RRAleELyr//hW+/oDdXtdllYWNhrXLjb0PDWrVv84i/+4h4V/vd+7/d46KGHOH369D1R4Hd2dvie7/keFhcXOXLkCJ/85CfvYAIuLy/z3ve+l/X1daSU/NAP/RA//uM/DsDP//zP82u/9mtMTaW5sl/4hV943ejnb/gc1Gv1oNpRwCdevkjJcnmhsUFO2VxpbjHm5HBxOOnM0GkYLixtsbxRo59oJgsllJBoA998aIEfe+Qxfv3xJ74ucII0dr0/LAkwWy7z6//kcd63cAQ7BhlBTlj0dUJldxITkLdtQp0+/EFiyMU2MlDQkagmqIak6rvonsZqgZWk16ith/kHIwROMJywkgKIEUwvqOHA3+iW99QObCdlUgFIy2BMmndKBseyRcr4s5yExAi0kPi+hclr/G/tce3KKvcdyLbXaLaz96rbDthe7nL+6BzWQMcvibPXa3Y8u5KcqXiEo3p7s9U9cAI4NFNFD5bUPT/GUYqN7Q6btQ7bO126vZAwSifggmezWu8SFWN6xxNwDDqQqcrH4ImSA11CHUpMyyKIFV2tiByJ2vfYjU70ADtRNnS528Zl1/x9uaWcyq4zD+cnSEZUQ4QR3OrV2Qx6fGlrkwtbfZxkilP5o+TVAAwNrPhZGvu0U2U9yC4WDnkTfLG2QkXOUbEKe8ffLWPYtbik6a4WUsAeMWEZer5Dt2fvPZtCQhSMKOgb2GppwkEIMiU/DEHb9tjraWblE+KORbuZp5Ek7MWsdwV3bQMD3cqeDlOwsg0iTO/BHhPcMSkByAIRC5CDIS0MtiMpCBthoCJsHKHS69Vq82KjxpPrq/z1yjJPbqxwpbGNn8TkIouCtilaLpudh7TNgwAAIABJREFULq5SxImh2fM5UC3z7O11zh2cZXG7iTaG07NTWEYSN2K+8/RJJkv7859pDkophZSSUqnE3NwcJ0+e5E1vehOf+MQn+Nmf/Vnm5uZYXV3l3/7bf8s73/nOO45xN/ulX/ol3v72t3P9+nXe/va337W3k2VZfOhDH+Ly5cs8+eSTfPSjH8201/iJn/gJLl68yMWLF1/X2qg3PEDdzV6taeEnb16iE4ecrkzhJzGPjB1kwZrkqJjmCzdXsWPJYqvJ6WKF5dDnkZl5bjYbPJAv8/Nv+1b+3be9g7cdOHTXY9+rKaXuOD/f93nhhRd49tlnec+bz/Pf/rfv5ztPnITAkAsVnX6IN1AW75k4Q5hIBhOrQKBdidCCdhRjpET6CroS1ZCormSi52E1BaoHyhkZHgLkCAO7ZUV7gJUkim4tNzh3Qxim4GU7CdGgEZ3tJugElG0gTJXQlTLphG4LEqFIHMHSY3VevrnNmcPTAByarrK+vU/pYKJEFGuef/Y2B3MFTsyNc2sjGxZMkixDxLOz3kEpn/VS3H31UqN0dEuKzPEXZsfouxGtBzQYSIxI46cj8kUaQdixiRJFnAgY6WirR7T3HKl4qTP0ZKq2x1Jv6B1VLI+l3hA4LCH3FPJ3bT+AefsAa6EwTifO1jZt+H0+v7nFZifHce8YpwsLNKLscaacOxUJylaaP73e2aEb5JgSZY7lZvfq8EYtlBb+pnvH+1oLoiBL6hClhHBn0HamlScugmkNf0ffDdD+YDGiEvSgJYzbz9Nv5dAqlecq78asXY09eB4KAy9CW4YS6fm4g7FtbIOXpHIUzmB7Iw10BVHP4PZsoj50g4S2H9NK4rQOEUCluVs/iWklIVJIDqoiD3iTPDQ5TRjGGJPW63XDCIt0wbzT7nNkbIybm3UePTTPnFekttrG9gUHqiW+85GTd1wzeHWShJQS27Y5ffo0P/VTP8Xv/u7v8tnPfvau2+63T3/607zvfe8D4H3vex+f+tSn7thmbm6O8+fPA1Aqlbj//vv/u6iX77c3PEDdzYOSUt6V8RIkMR+7cYGS5SK1Ys5M8OxyjSubNW42d7CE4HanTdG22YgCjpSrtIKA/+fb3sEHDh7lHxw6/LoISY6G+MIw5OrVq1y4cIHJyUkee+wxJicncW2b//sffwe//d1PMJXLIxJB7GucnsCLZBrGGMzRkW3Ij0RzM+0c3NQzElJgLEGnEwESESmCrsbdUtg1iV2XuCiceNdFAGskxdPo5vZaJdhOvKeMblmDGillSHa7pDoaHaeyNUQi3UYDliHKQe0f9Ll8a52Hj80xWb6zz1CvN8I0W2tidTXHqhXmxlMVcwGsbGZX/j0/66V093XorY0QMywlWRoBpCNz4/gj9VIdJ6R9v05lolIxkfRBCgVJ1wLfQkuB2cXEkWZ+MmZYCA3MS2+P/ABw0CtnpGkXCtnOvkcL4xkPqqRclvtZz2c/YI3Z2WuYkzY3ByDYT2Ke3N6k7ec54hxh1h2GdppRtiYMYHUk5LcV9rjZS3C4c7VvAklUSNAVTVjLhijDSJEUE+L2PlFezxA1LZq7NYB5vcfaExIYacRpXIO/6bIRG2J72CU63L2WAuLuwCNWIYO6daKBex/IGDFgowY6RvgDlZW6hEAhYomRglBq8tICmQoDC6BPjGOGi0ElBBN4iB1DfcdHxPD0tVWcUJALJGPC5VRpjGk7z4lClUNeEd2MmRE5nn5uhaSXUPE8btze5l+/65teMVf9teqgms0mlUrlFT9/JdvY2GBuLmXSzs3Nsbm5+arbLy4u8tWvfpXHHnts772PfOQjPPTQQ3z/938/9Xr9VfZ+bfaGB6jXYn+yfIXD3jinnHm+uLjGjFeiHvgc8wrUgoCHJ2aoRyGnx6coOg7/x/m38Kl/9h7ecfQEtmWh97cO/TpNKUUYhty4cYOvfOUrFItF3vrWtzIzM3PH4H1ofo7/+K/ew7npaVxpYUlFHBhEALIL+VghYvBHGvbFjhmG6wSM9I0jcWFXKk4gKNgORkmMkISxQGxJrJrC21ZYkcRuCKQPCYreiBcVDFog2PbQi3LciCRJKdi7dGRpJxht0jwVJu0AXIGdt/lcWl7BNdkhWs67LK5mH4ByzuPalQ3qt1o8fGCaM0dmaI8IxOY9m63WcLJ1LJnJR1UKHrdH9PwOz40RRENAy+eG4cywkPBsaRskCCftRURfoLVECzXI6g4hRURkvAs7zP6e8XJ2QgmCLCjE+wqLy1bW89gPYHcDrFHqONwZAgRoxQEXdja5Ugs45h7hsDfDrd5+EsUEG0G28NkWFl/c2uSB4kLm/aRhpTEyAXHeEA+8oaRukRRIZx4hIRkZz5ah23Yxu2PcAtMaAaVSgg4kGAjbNsEuJd0G0U338e0Y6Q/El3Nmb5EmBiodvhWjBvdAGINoKazQhr7CCLn3fBl7cO9EqtChgEQaTJyGIEOpsY2kLB1UCzq1kLlikQP5Es8ubXBkvEK3F7He7OAYybMvb2AlkksvrSNiaLR9Or2Q+w9McWVlizBKeP8/+oa9RdYr2asRrVqt1ivq8H37t387Z8+eveO/19pksNPp8O53v5sPf/jDe4SMD3zgA7z00ktcvHiRubk5fvInf/I1HfPV7O81QI16UYnW/IcLF3hmeZObjQZKCG7UtrCFYDOJKDsuVxs1To9P8s4Tp/jsu/8l33nsJGrgMd0tLPf1WJIkbG5usrq6uteL6sCBA686MAuuw8f/5bv5h8eOkhOKquciBi03wp5GBiACqCbOHhjZIxO/dhmSIAR7ygIALRNhjXhcrlSgBLEliOw0RCh9C2tHEa6X91ayjjv0olKSRCr8qQdelOvFJLFAWQYVKoQElaR5KwmYMjTeFvHF2y9z7ujc3nU+PDu2lyvatdqArWe04cqL6+T6hjMzk5w6NIkUgoXpaqbL8OG5MaKREOCBqWy+qpDLJpZ32qm+XVDQ9E6nkjwIIJKIaJCsGMyVIjIZD0nuSyWOVYcAIzAsj4TvJLBFFqA2oizVfbOTBZ/9+nyH8lnAspHc6mVDgq7K/r68tLk5CBtq4OnaJklY5lT+8DBHRVrYu99mRZHQGJ7c2uCBwmF2DxKNOm0KQiFJepLAjOQ1XU1UG56L3SmQlMD0h7/JFDUyGgCKBNNVyHaJ0JV7JBMgQ/fK7f4+C0RvBKx2xVKMDQ2LJLYwkSRiKCVmbCiw27F38FvQ6NDsfW4nAzWXLkQrEQ9Vpzk3P0OnHbC00+TE1Dhb9S5tP+TM7BRXV2ucW5jluaUNzi3McmVlm+Mz4wRRwu1ai7OHZ5gq53nXWx644/q+Fnu1XlCf+9zneP755+/474knnmBmZmavNfza2hrT09N3PUYURbz73e/m+77v+/iu7/quvfdnZmb2cmPvf//7eeqpp/5Gv2PU3vAA9bV6Qu3aXyzf5FaryZmxSTb7XY7nijTiiIen56gHPm+anuXHzr+FT/6Tf873nDqLLbM5jVfLa92L7coxPfnkkwghmJycZGFh4Z5DhkIIfvGffQc/+Nh5Ot2AcctFCoFQaRJbCEGnG6ECgdWGHCrNKRnS8MVIiiIenb8EFJPhG30n2W1YCqRVOABIQT+R+FtpuEcqQ9TdbcetifqDQk1h6HZsem0Hv+/Q6zgERhB1bLQQJIFAWhoZAZ6m/paEL8S3uG96jELOIYmzK//JaoHbG9lwXqcbcuPaJovPbzItXKbyOWYqLnJA5Mjt63grVfYa1zsjArBFj5XtJv2ipnPCENkGgtS7NNZgkTMi1itG9fRMFqxyxmJH9xhzchzOj3G+eog5t8JD5QOcKx/k0epRjuamebi0wLnSAo9WjnIoP8WDpQPcX5zlvsI0xlJpkn5gK62sWvlo+BbgSGEyE0IE2PTb+7a506OKjeFLWxv0/TwPFBcQwJqf9Z4A2snw2E9ur3Mqf5g5MYHZn5NyDUHTzY4tQI9pkh0L1bVpyAgEuHpkIwVRZ5Ab0hDGFu0B2cV4ZghAnoHB310rHC6ydg8lQfYk7Fg0fYPWEoTAkbu5KLCjAZkiSSnpWsJuYwDjgrsb3tbgrBtUC3KWja0ltxZ3uG9qgvtnJ1nabNCPYs4dnOX55U1Ozk7w3NI6R6aqPL+0wZmDUzx3a4NDE2WqeY+XVmv8n+/+lr3xeTe7lyLcVqv1dYX43vnOd/Kxj30MgI997GM88cQTd/3+H/iBH+D+++/ngx/8YOazXXAD+OM//mPOnj37ms/hlezvBc38bi03RntCGWP4lUtfAWCzk1JwuwJcpdju9/jJR97G951+kMKrNAr7egHKGMP6+jo3b95kcnKSRx99lCiKuHr16ms+FsC/ett5DlUr/Jv/9DncWCCdlJDQJQEFHgqfhG4Qk4slQaDJuRa9OEZE6YOKBTlf0h/QhrPsPigkiu4g0R+4JqPdp1crmKkuQoKVj4l7Fv3Qxo8kOpZpSNGX6MHEnYQSaYGJBUaotBV6JxX/NAEoDN0HEr6wusb5YJzuvt5OBybL7GwNvYy8Z7M0EgKs13ssXd+msd2jUnA4sDBGXlmcmJ9gu9Wl0fHZGKmfKuacTP7q4HSZlkroV9I2JyJJa852HVCZiOFkrE36txnoJ/Yk0jJoI3Aci7Mzszy1tcIGCRt0qUxVeLo2jPe/eWIu8/qRyXmeqQ0LZ89Up7jWbAI2VafA4WIZyxLMKYOvfbb8Juu9LFnE3ufBjTt5bvtZQLdEdhpQSF7qpMBXD32+uOHzyNgR2ibrzc24ZZY72XzXV2rrvHX8CC832hiRfeYiQDVszFQ2bBnbgqAjoJRO0H0votjx6BfThYIpatzQQfsOXTemENj0Bgr8wgwK1CETBVChJHE0xjXkew46UQQYtExr3MrCoUVIoPReAXs8OI6xSAvVvTS6oGJBYhliEiZqFi4OzSTgyESVoB/x3GKqMCMj6DUD7p+dwpKCi4vrzJQLrO20ydk23V5IJedxa7PJ2UPTXF+tcf7QDN/zDWc4NPXqwHIvjRJfq5L5rv3Mz/wM3/3d381v/MZvsLCwwB/+4R8CsLq6yg/+4A/ymc98hi984Qv8zu/8Dg8++CDnzp0DhnTyn/7pn+bixYsIIThy5Ai/8iu/8prP4ZXs7wVA3c12a6G63S7/+eIzPLezxanKOFebO5ybmuV6vcb/fu4x/sXps5ScO5lI++21ApQxhu3tbW7cuEGlUuGRRx7BddPv2ZX0/3rt7Q8c51eKOT74B39KveejZFqao72U0pwq5EGoDLaR+GGCROA2QdsCnWhiNLadqlQkDhQTi86gh89u4S+kgJWPJb1BYrthDGY7j12M6Pk2kW9DQYOThm5ETqM9jYkEwk7PC0B4BtMTCDeluBsJJoHYCEQP4nHDpWqDiacEDx2f59mX0rqfIMhe84X5Ma7eGE7yk2MFNgYswF43ZG2pQa8X7rV0Pz5fJfI1x0plLEsyMV5kq96h34to+X2eyW/TtlL1ASQQgtkNX2mT1on5IlWIT9IJ0UhACJQWhE76PTEJ9bCf0Ruvh31GrRVlwTfU2TEw2um3EYYcNopnNof6eyXhIm3JsfIEBUfQjnt0kiwYjCUu22S/d7WfBazjxUkut7L5J61t/n/23jxIsvUs8/t9Z82Te9a+dVdXV+99e7m378oIjWbQZZUIQEgDONglgQbGNkjIlwEZGYYBHIMt20x45DEwgUwII8cQBhvCCA1EgNC90l1636qru7rWrC2zcl/O8vmP7+RafXu/M6CeN6KjK5eT52TmyfN87/s+7/PcyNd4bmSaK5UlPBkwZqVY6vOfmnTS/PXGEqcyE1wvr7SBXOR0/LjAJ8DMGjDW9b2VdQJfibu2oiJchB+W2TQQuQj5iAKliuFihKAROAFaFYIoyKhEq4OMoFQ9miCKOtWmxI8pG5rWwHlZc9sLKxEK+ktLMVUDWw2jtwbXZSAx8wI7J2hKyfCAwfR4gsuLW+3S8dN7xzg7n0UAI/EY88vbnNk7hq5rZItlhmJRbm3kOTgyQNP10V3B6cFhqAS87129en93ivsRin0QL6juGBwc5Etf+tKu+ycmJvjTP/1TAN71rne9bRb3uc997oH3eb/xRADUnTIogGvXruF5Hn8e/hiFphHRDd4ztY9/803vIxN5e1mR/ngQgMrn88zNzeE4DqdOnSIa7WVZ9Q/qPkyc3jvBb//wd/FTv/fHrFWq2ELDqyj1ZkNT8jNSgC11PELgkVJdQENKtMgHRAxBEEg8PIwoeBbUjYCIp1EP2RSapczi1A0QKxkK+wtKWcHxkYFiCQozzC4EyEDBpLAlQU1D2BLNkPhKTQlR1/BNiXQFMgKiDjUzYOVpQXFhmROZBHlPsrDUW+Iy+laZY0MJtrc7K/+p8TRXb3Qu6umEw8XrnSHXmG2xeDtHPQm5ExAYqDJReKESQqkTaJ5QIr7KLR7PlGiaIGhV34Kw7xFGyrS5Uez0gjJWhJulTqYX082e25qAhVIfO6/RCyz94q8jhs18s8K5LfWZRHUDgcaBzBRRS7DWzGOZNnQlQgPYbDR6MyNH310p2GpUVNlvPcu++BAxx2e5Wt71vCEzwW1KnMtv8FR6gvnKKlIDt0vayc1IzG0dBn2oCuoRwJBEyxaNeOhNFpHEaw7VeA02DDYdF6Mi8GMSdLDKOrVwWFc0hVKrECBqGjISEGmaVHI+XlwpSpiewDVke/A8EBLb02jogVJTcWl/z+rDVSQjxzYJsj56OEs1FLUQDShuV9uqIzOpuCI/AE9NDXP+RhZdE9SLLnPL25yaGePC+TVOzo5x4ewqB6cGaboBy/kKn/3FD9y1tNeK1gzU3eJhAervcnzd96D6o16vc/nyZba3t0mlUgwdPsjfrK9wMD3As6PjfPEDP8THTj33QOAE9wdQxWKRN954g4WFBY4dO8aJEyd2gRMoGvyjAhTAzMgA/+oD38SoYeLLABEAPvgNSEkTAkkFr635EtgCrdlLifYFSF3ga2DWBOYOWDmI1HXMEji+ThlXUdvDKNd9glKn0ayHQ5jCkMhwlkXYATJc3ItwoBdLoocMrMAIIJAIQyKaCgg0VyCjUJqFV2fLOOMmM1O9gqerff0or2+AV++7GDT7Hl/c2mH7CGw9E1LwAxmW6wR6Q1OSFLpS45AW7ea61gS/i06u16GLD8D+ZKZH+25fMt1DZtifzOB19YH2xTOUuth3ccPidrm3fLdW6wUI0Sc5PpMYoOy5nN3c5m9XtljY9KnUDE4m9jBiK8LDnuQw/bFQ6AX9YTPK7Upn3wvlAtWayaiV7tmjrRlc68q8Lu5ssscaxcqbeN08FA28CFAWyLLedoSu674akg2jYjeR6zq1qK56U1qnN1WN+NCaw0so1ipA4ASwrlFsSjBb6RsE9dY53pnnkxZtPcpoiFyBpcp7wgerINCv+5weGcXQNJ7ZO8ZOoclavsLKdpUDgwMcGx3iVlhiPjSS4vKtTQQwnY4yt7zN9HCSizeyTI+luTif5eTsGEvZArV6k4998CVGBu7PGuN+lMy/HgHqicigQM0T3bx5k1wux/79+9vy+J+9co4PHjzGx049x2T84XWs7gZQlUqFubk5PM/j4MGD92xkPg6xR8/zWFhYYHttjZ9+4QD/9s1lCm6DYr2JpkGt4GIZggBJPGpRaFGcuq6afovdF5asRB1EJGwkuy66puGXA8xA4ASAVOWtwAB7M0Iz4So1BUtRyYUmlPtvfxZlSsXcsiU4AdIXCEPJ1UgDJUETSKStBG+xBUEAb8ULaKUCR+wE5oaij69mO418TYPFld4sZHW987iuCZZC3T9fg+YJk5VoA2kIhKewyOuyGZFdvxbN70hGASgzr67HNfXZdh7uBcJ+oVarL/MbsB1udjH2ZuJpLhY6md+g7bBW6yU75INeOnm/4+5ULMml/DaEL3soPYYjbOKG3R7kHYskWenLjAawWe8rC8axeXU9y14zSRD12WpWOBwf5c1cr2/U9UqOQ7FhCu4m3a0uaUGwbtBItzGewJKkGg5FQ82kiaqG6+m0TsqK7aKXBEFCSRgl6zZFoxESIAQWBrWy6v8RUedvS/TYj4RalOFMNUBTBCR9k6LuKl+sMIsyqoLIokBrUeBdyexAhnM3Ou9tLBOnlKuDgLF0nKFElCu3NhDAqX1jnL+RZSARYTtfIWJq5PNlBmIWl+azzI6nySQc3v30XqSU9/V7vx+AeliSxN/leCIAanl5mVu3bjEzM8Phw4cRQrC8vIzruvzkyWcZj9199uB+wjAMGo3eHkKtVmN+fp5KpcKBAwcYHNxtb/C4o+UavLS0xJ49e3juuee4cOECv/2T38MPfOb/JGGYVAKPwJCYaEgZUC652IBrSQJbIDyJNARoAr0m8R31A/KMcLkJoAkiDUHVVsBTkQFC19oXgGAtgIwBA57KgnY0ZCoEo7KAuESLBEoiyJKIcNhS6AKjLvB1lPxMU1G4ha/6UhiojM8B2QQvKbgUKWGkBU95aWJVi0pRXaj3jme43WWGODacILvZZTg4OcDlUo7KfmikBML02iAkXNlhnEnQEfitK1sg6XHH8KWa7QlDeOB1sfeiusH1rqxEF4L5Ui/1e6XaCzb9s0t2n9L6nmiK7a6S36Dt9NyG3SXB0UicpUoHoG8VitwulhHoPDU0RV3USRiRXQDlmTrd7HchBQthRrXo1omWdGYTA2xXeyWaQA0WX87nGPUTbIkSoqsE6loaRk7gj3TAO2/XMbc1iEk8aeAlJZG6Qb3loyVbHVSomGqUQeiKZFOrouxOujIj0UpKDYi7BiXTw3cUoSEwURRzAA3MAthbGrOpNLf9AsPJGCNRh6tzGxzY0/ntHpkYYmV1h2rY/zw5M4r01MLr2N4Rzt3IYhkaCctmKV/jyJ5hbq7kSDoR9o/HWc+V+Oj7j3P16lWazSamaZJIJNrCr9FodBch4n69oO71nL9v8fX1bt4mhoeHGRsb6/nSW4Ay/RjAqfV6rQyq2WwyPz/Pzs4Os7OzDA8Pv+MS+FJK1tbWuHXrFqOjo7z44ovtXpbv+wwlY/zeT38vP/g/fwEtMMASFKtN1STWIKaZlBoulivwAzVcKXWhejCtfZiCWKBTDXnmjaBL+0wX2HVBPbwwe45Ay0YIMmXlEeVIBSyaULX+1gXEAywQBoiihoxKxcra0VTJKsymfInKUkwR0sHUfrWmamS7puScuYP2lGIqWjXBJh6VqmqMCwHWiEWjAo0BqA8JNhN5mrpQ2VGLBBEAviQwUU10qQY2A1sNN0vAaAq8WDgEKkCrC/xEB5CshkbT6pTrDqYGOZfP9ty+2lUKG3fiPdmQJbSefhQohf3u6D+f9sR6ASthWNwu95Y7635vhj+bHODqjjqO19cVW/CF4SSnkpNcKWdpBj4Z09kFpgcTQ1ztAtxq4JOvw4BhKyDvyhyNsPS7rlfJFB2KqZpieK5r1DLgOxJrU8Mb7qKPRDT8HXCT4bnU9NuKHX5cEq+bVCIunh4QL9v4HlQtSaJpULI8pAUJz6RkugRRMDyBZ0iqnqfOPRFmVibUdA+9osp5kQ2hhtMHLZ7eO8aVG1nyfhkBzC9tc+rgKJVqlbmFrXal4eS+US5fy4KE549NUKg3EcCRySEuza+rvtOcKu0trOQZT8f5yI8+z9NPdeTQWorlLWPDarXa48Ybj8dpNBpPnBcUPCEA5TjOrvLbo84t9UeLtj43N8fGxgYzMzMcOXLkkYDpftL/bjZgOp3m2WefbbMBQfWzWvNeYwNJ/tePfCc/9W//hJ2dOnFHJ9AFVd+j6LlKhDuQCAlGCQxDZTK+r0okAM2qC7FQE80RmE1wwzKYK8MrNooUYW1DvWBA2lPlu6IOiUCZ3YXW8SIaEBQNhCdwgaCoejyaH1qBmCAaQvULNAUmwga9KfB1ibQVYAlTsf58C6oioCYkO0YZTmloPkgPclqeYDAc8Aw/VtEIvbJat11lJdL+1GW4Qm+xDSUErcZ86ym+RCsLCBTGJa0IjtRwbBvbNEgLhzPpSVXWRJKwLTXK4LsU3QYT0UQPQO1PZrjaNd+UNiMsVXrBpr+8199/mo6nuZDvUNQ14FbfkG+/SnpUN3hjM4snAzJ2lOODKQxN8Fp9ue95u0kUY06K17fWOJwaoUiJ7WaVUSvGtXKO1oedjzWJbRg0Ux71eOd43TgYpQ7IRxoWlW7lkwSYOYE7qB6v1z2IgFYF2dSohiMPFem1Fz61ugshEUhUJKSU+n6saVCxPJXx+mCW4KibYXmjSCxicnB0kFu3thifSOH5nYt+ImrjFZt4XtAGp1MzY1y8uoYApkZSXL+6Tq3h8eLxSRquz5kD47jNgOcOTtIoN5l2YhweG+BMFzgBWJbFwMAAAwMdkeRuN97NzU22t7cJgoBcLtdjs+E4TpsE9vXmBQVPCEDdKUzTvKer7v2G7/tks1my2SyHDh3ipZdeemRNvtYg8d2YOzs7O8zNzWHb9h3ZgLB7pX1gcpj//ge/lV/43P/HRrmG5kMqZlLQXFKmxU6ziRSQMEzKSvWUiAteNcC0NSqmQLgSaYav2wjA6gCW3pT4VlgS1CWs2wqgAGEpXT6EIJACuWXgGkqNoWWkqNUh0FXfQNTVgKQ0pWqIG0JRgiX4llSPW6hVsUtY/gPRCIHLB62qMkEsBSyERBEh1f+yq28kA9W36lZX0usdHywAowZe1229Ab7dKnsq5Yhc0EBWgEoNU2iYhk7V65xrU/EEy+UOwHjAiJ8i7Vg4psGg5RBL21QDlx23zpgT42y+kx2N2DGyfQSJbB9gWX39p5lEhvm+rGyr3luSm00MciGvKPr5RoPXVjc4lRnh6eQUt+vb5Jo1dDRu9GVUptCYK6j7rhVyZGybg8lhoprFSrlXGaMyIImvmjTHukYVDAjqAlyJsSPYiatMRy+CH7aF/Wj4QRngJcFaE7ihPfveAAAgAElEQVS2Ttn0MQvgphQBItk0KVouXrxDKfeitCnlzYanMnYf4gtgFzQy+yMM7Y1y89Ymly6rodPSTg1D1/D8gIOTg+Q2KszfzmOZgqmxJEPxKBdCcBodiFPaqVFreBzaO8S5cyskYham0nOh2fCY2TOIJzR+6EPPcz/RcuNNJFSF5+bNm+3bpVKJcrnM+vo6tVqN3/u936NYLCKl5NVXX+XEiRPEYrv1Ee8U92O1AbBv3z4SiQS6rmMYBq+//voDbf+w8USw+N7OcuNRM6ggCFhcXOTVV19F0zQymcwDqT/cLe4mnVQul3nrrbeYn5/nyJEjnDx58o7g9HZxanaCX/jQP2bQskGHWqFJtCYolBvtE6IadNh9rqFMEV0PzLrAzkmSFR2zGOAbolPnhx4WoO9oGFsCGSpPS1sS5A2aeYsmhhKP1cJB19bEvkVnHCb05kHrNLalSVtHUEYUGCEAUxkwQsiea0g17xUVih3YRF3gwjcoUS7BuCqLEg3Q6rKnpCmaatXdDgl+nxICfWucY8PDPey8Q4MDPeA0Go31gJMO3NjZYbNSZW5rh/NrWyxulXnz9iZXl3bIZuvoVZMJmeEpZ4JnU1McSQwzHUtjhDTzYTu6i9G32Qc+Gcvpux1hsY8V2E/Rj+oGl3e2+Fp2nZ1iwOnkFKfTE7vmtY4kRyh03ZdvNMgWGwh39/p3byxNaRiiG70LLz8O1pqmJIxAfaetBQUqm7Z21O84WjTwpa76pOFjrQ+91lXGbKtAmB1hYzcG05U4AxcFJ+LDPDU+zM1L6xS2q9TqnW03tisc3zvC6X1j3JzfplBSQOt6kolIlNy2Kv0NpqJ4dY9SpcHkSIqlpRxCwFAySrFUJ+7YDKZjLC/n+W/+2XsxjLtTxd8uWnNQkUiE4eFhZmZmOHHiBM8//zy/8iu/wvvf/340TeN3f/d3efnll+86t9Qd92O10Yq//Mu/5OzZs21wetDtHyaeCIC6UzxKBiWlZHV1la985Ss0Gg2ef/55ZmZmHgs1vBV3moWq1+tcvHiRS5cuMT09zZkzZ9orrAeNl45N8/EPfCNxqWNEdAJfovuCaENDcyW+oG3fgQA82f4zMAV110NIDaMpsDcCUhUdKx8QtyyMcoARSv5oPrBuEZR0mjsWvjSVNQL0EA3aSwgtVPxGgZXeEO2/taps/y26JGhwZVtjUGu0Zq5UpocPCKEYiTpoxVAot3Wd0AXSFOieAEtDq4NeFYpq7HYfmDJp7CFHeL3ZFdBzoQaw+qwvJuO939f+dC+AxQ2ThWIvcGSrFVaKFS5kt/ja4gbFos/CahVZNJkWQxyLjfFMeoIJ3cHSdFJ3KAmW3F7Sxd5YL80dYLGvZ3UwOYgbloebQcDr2XWadZ1nUlM9porNPvkpUOSIr26ucTo52QZSgKiwkQgqgxJnvXO/8KBpCsx85wP3Y5Aqdz4/N6Uyp6qQ+HGBEfI9fBvM8G/XkcRC7zE30XWemKqcd3ItzfFKmnEtysLVLa5f38D3JIk+lZiZ8QzVjRob6+X2KRCxdPZm4lw4v0Jlq8aR6WFMKcgXaqQTDvVyg0bT59jsKAuLOY7MjpHLV6hWGvz0h/8hI8MP3+++G0kik8lw9OhRjh49ymc/+1n+9m//lr/+67++r3Lf/VhtvJPb3yue2BLfw2RQUko2NzeZn58nnU7z3HPPYYUntpTysfa0uk0LXdfl5s2bbG9vMzs7y/Hjxx9Lrfm9Zw5Rq7t85g//miaCQEgano+Nsu4IopqqpwlB4GjgS0VOMAR6LcCPdAgSNc8HTaNS87AqEi+QmIECiMhtQTlqESQl6BKtDEFcAY1REYqQYUu0CgRR0aaTSwtF5Q7LM9KmTbSQOtAEzQv7VbpQoKN1qMXSUn2hFn1Yq4F0QnHfCvgR9X6MWkipD9+L1FV/I3AEeo0wo5P0G84aNdUfacVUPMHtUoclJ4Bbhd6yWj9RIWX3qpTsS6e5uNXpHQ1EnJ6MC2C1otIBL5As7BTJmA5vbSqyg6EZHJsYoxHxcDWflVqBstvc1X/qP3umYylul3dr7XWHrelc3dmi6rnETZMzQ1MsFre4Wtja9by5kETx5laWQ6khttwiE7EkF7c6z60Ngr0BjRGwNwXVAQ3flz2lvYLjoZfAT0C6YhEYgmaYQsuWW65QhIfW31rrt6FBomlSC3z2V2N4l6rk6jvk2OHggRG2c50s89r8BlNTKXbKdfaPZLh8RZXv9u4ZYEsIMkkH25esrKjPyNQ0mutVxkfilCsNErbFytoOx2ZHuXRljaOzo1y6usbh/cMcPzzOS8/N3PWzvVfci8W3s7PTQzG/3+vD/VptCCH45m/+ZoQQ/MRP/AQf/ehHH2j7h40nAqAexBPq7SKXyzE3N0csFuP06dM4Tm/J5HE3J1uWG7du3WJ1dZXp6WkOHjz40OXDtyNcvP8fHKdYqvNv/uQ1dA18XSBdpaoRVCUpy6CER2AJjGaHci67XiuwBFHZYffJlhKFFlLVKwHWpo6XDC/OXW8h6JJN6jAV1JyRj5r810uqBCQNBRyap/YvPEWeCLSORA1ClXxEIwQ0LbwYl0PACncROCACgVYM8CN9n6nfyZSkDuhg1AS+AUZJqj6Yzi7AGnGiPWByMDPA9Z1Ov8bSNOZ3+tQh6r1UcLsv49qTSPSw80acKOvVXkbfWqVT3vMCSaMZ8EbXheLM6BiBLpGGZKlWYLtR3ZVhDUdiPQClI5gv9h7r4dQQ50KtwLLr8tW1LMfsOBMZxVJszX0dT43w5laHtXi9sM1oJIbh9743KaCZ1oguScojoWirLtSiKOw3oatSXSJnkbeUBbxRVOMFfhTiZY1yIsCPQqyiUYkFlEwPs6oU1YP1JiNzMDRucLvLE8xt9i4UDE2wJ5Oksl3jSghOAItLOZ49vYcb85tshGW+gVQUUwpW14qsb5Q4emAUXxdEp4e4Mb/B2HCC7VyFM8cnSUcsfuT7XuBR414Adbch3fe+971ks9ld9//qr/7qfe//y1/+MhMTE2xsbPDyyy9z5MgR3v3ud9/39g8bTwRAPUoUCgXm5uYwDIOnnnrqvpuPjxJBEFCtVrl48SJ79+7lxRdfvKfMyd2ilY293Qn+X3zrGW4urPOXFxbQ0ShrPpam4wYBzWaA7kuMmsR0dKoyUBlVqDoRhISIZqUJcXWMfkRDr3cu/L4pMIoCrSoIopIgSls/LXDArAjcqCSISvUcBwJHtkHGj4OoqWxJSqEGfM2w7FeTBI4giIBZBzeUHpKhIoDUVZkxsETI0JMdKadAIk0NEYBeknhRlYXpdYkf7QXzFoxKUyDNkDxhCMyiZDITxbY1cqXeDCTZlx0dzAxyqUv8NWGaLBR7gWKj0ttL6l+QTMQTbNQ6K/8RJ0q2D7D6AUxInbMrHcXpU8PjGLbGWMRlvpyj7nsUmr2lyYOpwTYFveuV+l5XsNZsks9W2JdM49g6Vwtbu/YPMO4kuZbLcSw1zOVi5zPIOA7FaB2rCM0wa/LiAmdLUh9FMSPrgrrnwyBqYLzLO6XeEtITgmbL8l1Axrfg1QaRcH0g+xyFby3mmJxMsbZZ4tjMCFsrBd58dYF9B4colzvPPXFgjEtfW2L6wDDFUp1MMoLmS7ZyFTQhOLB3iMsXVhnIxJANj7TUiJQ9nIjF1s0cP/ebH3rovlN3PApA/cVf/MXbbtey2hgfH7+r1cbExAQAIyMjfPd3fzdf/epXefe7333f2z9sPBE9qLtlN2+XRbWICDdu3ODQoUOcPn36HQcnKSXr6+u8+uqr+L7P7OwsMzMzjwRO0Es1749SqcQbb7zB+14Y59jEMHjguIJIaCfiCUncVDxstx5g5yRmMSCmGcSsTkPGi2oIr/NZCreLpWUJoi7Y613vo1uxQtzhOxBKSFarCYyisqNH0xC6QPNkm/cdWKJNqnAjqk/U2h6pmIA9Pa9AqL6ErySM0FWW5zsawgO7KNosxPbnVwuzs+4I32tgCpbKNapVn6Vcg7RrctCMcyyeplKvo3Vd1CN9F5iZdKYtWguQsSMs9ZXz1sr9dPLemOjraQ1EIrtKgvm+LM3SDN5c3uDyUp6goHM6NkFad5hwOq8VM3rZIBFN59pOrwTS4fQA+VCMdqFY5MpmnncNTPfQs0HNdS2XSlQ9l6u5HM9kJtrvZdSK4zqqrGpUOtvVhgT2qsTKQiOl0UhKrFAGyU0JImGbzosJ7PCw3KTAzEnSVwIO34y2wQkgu14jFu30mRxbJ2lI0giunV9le7uCABqlJpoQJOM2hyYGuXJ+Fd8NWLm5xexUGtkIyIelwSP7h5m7tk4sZmEJKJXqDGZi+J6ksFPllV98H8nUg0mm3S0e1qzwbnE/VhuVSoVSqdT++8///M/blhr3s/2jxBMBUG8Xd7pw12o1Lly4wOXLl9tEhJZz5L1CCPHQrrq5XI6vfvWrbG5u8swzz9zRPfdho7uf1YoW4eLKlSvMzs7y9NNP85lXvoeJTILAlVSKDeJNgUbHhgDAjugIKXB3XJoFF3vbwyz7aEL1pVrhRTVE14Wq2fAxCqKtgxbEVFYEKpPSy62/JaImsUoaNDS0qobUBdIR6K1tHdHW7EPvkCpAzWtpVYleFoozbooeryt0kLpEr4h2KbIdQuBpSmXALMi21tsu/HQ7pc5WjKcVtbbk+twsVKlUA+ZWCsTqOjNalCN2glqlSqRrsWH0eYpN98nUDDkOa33ZyGrl7oC1p0+uK26Y3O7L0qpdvVI3CJCe4PXFddY2akyJNM+lJ9U8XNc2h1NDu/pnVn+NE9is1tmpNHk2PanMLYETmbE2q9CXkjc2spzJTHJmYILL2wpdvIjA8DVEqJmHL8HTuhYXAqfZ2Z8XSmYBeA4QSJLbGsNvSFJzcPt2jpGhjs6d5wXsnxrk4PQQx/YMoxU8bl3KEY30OhRns0UOTMah7HLzRifTmxhNUVkpk4qplcrxg2NcvZLFNHWGU1E21kscPjTKRraIAD76sfcwve+dV45pxcPq8L3yyit88Ytf5ODBg3zxi1/klVdeAZTVxrd/+7cDqs/0rne9i1OnTvH888/zHd/xHXzrt37rXbd/XPHElPjupGjeYvLpuk6j0WB+fp5CocCBAwcYGhp6YIBoES+su/hG9UexWGRubg5d1zl+/DjxeLz9Wo+LFdhPuLh16xZbW1scOHCgR+XC0HX+9S98gJ/4pT9kdadMs+ET8TQawiUeUXNRtSDAciWuKZACjCZgaIiCBE9iuT4YoDkGXsPDS4SZWFxHbwRYGzr1vepYRNBVOgspxVZJQ1YkXlyV24TbeY5o0c6FGshtkScCG/SKxI+pMp7WFB2hViEIDKlKcuG1yKgoirlRk/i2aMsb6a0+FgLfEWiuRJTp2GuEYVbVar0VGnAr38u8G0smWCmVqXkBS8U6k8kEK1slhICpeJSYqVEvlBkybbZC5l//2TaVSLFZ7+8/9dLH1/pLgn3n7L5UmktdpAtT7O6D6V3brBTLmBgsFHcYcOJMDySp0exxJAalVHG1L6PaF09xLa/ue309y2g0xkQ6yvV87/4AsuUKw1YUW9NDRRJoxCCyI6hrksi2oD6oYxaCNjmnEPVIV3V2oj5eTDBQNcnFlMnh8GuS54eGuVhba3+Wo0MJohGLhGPhVpqUlgtkN0q9WWvCYT2Uv0qnHMYzcW5f3yQ+GKNaVYC8byrJ0o0tZCDRCnVOnRzj4qVVhICZqQFuXF/n2LEJrl1aZd++QV78hlleeGl213t+J+OdtNrYv38/586de6DtH1c8MQB1pzAMg3q9zuLiIltbW8zMzHD06NGHzlweBKCq1Spzc3M0m00OHTq0S+RR1/XHNkjceq2FhQVWVlbafa07ES7isQj/089/Dz/9332BfKNBs+qi6YJ6sYER1fE0MG29TT8mqmQWhBBg6mh1n0DXkdUAGw19OwAklqHj1jyMsqA5EprBRZWlQeAoUNEKKHuEeIeJF0Q6f3tWB4jQO/cD+BGBXlLkCWmFw8QtaSWhhF31qkQgCMyQLm8rEKKpWGCtuZrOByfQAkngglmSeLHweX2kikNDg1zd7L1Yb1V6gWQsHmelUEJKyJbqjCfiZEMbkEHbZihm4xVr7LUctvwmVd/H68tYJhPJnv7T8H30n+y+73g2neFqvvdY+/tgQ47DQnGHXK1ObqVO1DCImiZnMuNUpcv14jaHUoO8sdnbeB+wHG7T6cOtVyvsiSWZdlKs62U2wixKR2Cjc3ZznQOpDJvNSrsH1kxrJG/7FMfUcbspDSfrURtXK466EbQlrwqiycQtjbEbOnHbxi822T+UpFZuUC41WL2Ypdr0WOmiwR86Ps616x3R3etXs0ztGyCTcLh5JcvcmvpOHF3HNHUOzQxx5fyqGssSMLMnzZWvLDMyFiM1FGF9LcfkZILVpS2OHx3h4OwoH/jQszzOCILgntekhy3x/V2PJ6bE1/8Ft6REzp8/TzQa5cUXX2R8fPyRymr3k/U0Gg0uX77MuXPnmJyc5Nlnn72jAvHdBnUfJKSU1Ot1Lly4gO/7vPDCC+zZs+eubMChwTj/8uPvJxboRGxTiZlrGpGKxCr6VD0fK7QW9wQYXcO5osvOwgP0hg+6RlNKiJgIoeMsd/atVwR6XifQdcTbnY6tzAllh9Ae3nQUSOFLzDJontaW/JGmoo93DkxNfopm77nQIj2YRXY5wOohAQNN4EU1pC+IbEEs0rsAcfp6S2PxOLd3+mzoG71zSOOJTvmp2HCpunB1o8zaVgM3HzApY+g1n6N2gikrgq1p1Ou9qgyjfZYwQxGnTUFvxWatt/8UNXt7S/uSKfJ9r7tZ6wXXQ5lBtqo13lrZ4NpqnpTnEMXiQCLTzvoydoSLXQQQUIrsF7c2ubi9Sanq8uzAOLoQPDM4zs2CyjhvFPLENItxJ44uBCfSo5TGDeKbHVCpjerYW+p23ZLE8pLIZsDUlxo8XxiglK2wdjvH/KU1bF1ne6NMo+ZSLjY4eHC055hK+c57M02d44fHGDRNrry1TKNrULdSrPP0gVGuhuBkGBpTY3FuXVXEkdGBJAtvbTAScdi+ts14zCYiA556Nsnrr7/O2bNnuXHjBuvr61QqlUfSyntSrTbgCcyggiBgeXmZpaUlLMti//79jI6O3nvD+4i7zVZ5nsetW7fY2Nhg//7998zUHkeJb3t7m7m5OYIg4MCBA20mzv3E/ukhPv0z38Yn/+X/jSGVwWFTSoQUmOUAK6LhigBpahiOgRdmVL6lEREa9dDbSDf0tjCEBKKBQK5pNAcl0tPwTdoeQH5MtEtxgRNSx0Pb7fZskykwdwLcdOgr5YNR0lT2o6Pms7q0Ao2yKhcKVyICRUvXywF+vAOGWl3t2ywHeOE+IFS87sIioQmitkGx0uTk5DB14bOQ3+H6dq/0z1QywXqpAxQx02Q+11vm6vehGk/Eyba3UUzFy2sdkNOE2v9xO42PT8lv0ugDn6lEkq2ukmAmEmGpj1mYb/SC0UAk0pNBjTjRXT0rt6+vmrRsvryo9PkGLZuZ4UEihs7fVHs1+2YSKd7YUFlW3fd4Yz3LM8NjlOq9jLrVSpmMHeGloSm+vLICQGVEJ7bmURk3VG8wJtAqARiC8U0N8WYNASz52+iGhh9mSbLvWHe2+yj5qwWOPjWBIQRL1ze4/sYSAIdPTrYzq8OHRlm9vsHZv7nJ8TN7mF/YZmIowcK8AuCjR8e5em6ZvTODZBe2OXRkjFgiwif+xXehG+q8ajQabQHYzc1NqtUqmqYRj8d7lMvvhwB1vwD1OCWG/q7EEwVQKysrLCwsMDo6ygsvvMDS0tJjV3/oB6iWHNLy8jJ79+69b52+R8mgSqUS169fR9d1Tpw4wdra2kMxAU8em+LjH/7H/I//+38gikZJ99GaAYEmaNY84rpOo+Lj2QGWqdHqYWvNQOnjAU1LoDV8Ajuc7hcgfIG1rlMbD99rM/RdEqFJYrj/noRGyDad2E0KRCM0BRRCCce2nFIjoqPFh5IqMktBKG3UeY5eDankXc0V39HQPInWkPhGr+YegO5CxQoggMsrofr3vkkq0uPi5mYbpIt9F+DZgQzns525JF0IbuV6e1a+7L2wTiYTbJY7q/2haJQbW73AMZYwmZAxUlETTQugXCNjmOx4ykRiyomzU+sAUsq2WSj07rfUV0aeSvTS2GOGwfVcn4GhE2WxqIAv13QprW4Qs0xmImkGYw7zpTyWrnNuq3do0xCC7UqNpVKRM6PjXNvZohyqaMwk0ryxts7xweE2Fb82ZhDNelTHDPyIxsDZGpm3auguzDw1SaHUYHuzzKFjE1y7onpPN+c2GRlPsrGu+krrqwX2HxqmUmkyNBCltlOjtlZkZa1Ad1KzfjvH8HCcgbjDjbc6QLuxkOP4zDDnL6yAgMOHRrh2fpmp6QE2l/LMHBzBMHV+9pe/sw1OALZtY9t2j8WO53ltRtza2hrlcpkgCHpUyxOJxK4Wwf16Qf3nDOrvcdy8eZNGo9Gj/vBOKJq3Xq/b/mJsbKxtf3G/cSfm3b2iXq8zNzdHrVbj0KFD7RP2YV6rFS+/5yiLi1v8yV9cwqj6mHGDuhsgNUHgq9q4aEJMgqi7+Do0YkboKaV+sDHbpBTW5TwNElIQbElqI4AOniMVcplKK03UJTIi8J1OzymICIySUm7QXIGdBzemSNy+LdEaqqeEEAi6+k8yzNC0Lma7EASWxCipma62IgaqD+XrEivv08joHUkk4OBgZlfDv1Jzubi2QSbqsG8szWa9uitb6rf0nh3MMLfZm3Ut5vtVHHq3GXIibHT1tYZjUbIldXurrLKmsWScSsknZVoMxm2chuSwHaeGT853GY84FLo8yxKmxc0+wkS1L7M7kB7g3GYvuPaTLJ4aHuatjXV2Gg0WigV0IfiGySkKkTqXc1uhyj08PTTG6+HA6JvrWQYjDvsHB7A0jTfW1P1Xt7d4emSUtzbWkYA7apK63WTkSpN41qcWHv7q+WWagSA9FMMMAo4fHm33G6Mxi+GBGIHrU6s0sJs+izc26YbZw6f3cDUUhtUNjT2TaQgCLl9c7bz3w6OszW9w/ss3mNw/hBkX3LicZWJPhtxagb37h5ncm+FH/qtvwrTu/ds2DINUKtVT0g+CgFqtRqlUIp/Ps7i4SLPZJBKJtLMs3/fvucD0fR/T7BeK/PsfTwxAzc7O7rpIm6ZJpbJ7qPBho0VG2NzcbNtfdAPig8SDlPjuxsxrHdejZIo//kPfyNJinjcu3KZe9NB8H+ImLhJbqP5SpekT0XQagUQWfTK2QbHYRGpQNzRMW1c+QbqgWnXREyaRzYD6mJpFMkth2U6AUZO4IWgI2aVYYYMeJgBuVFPlPEcDrXd4U5oCuwqNmOpNBbaanepRYReKvSfq9DjhglIucOM6dlXgiwAvriEk5PqGWRO2xbUN1ZPIV2vkb9Z4ZnKMdMbG1QOubm0TBJLb+d7MJ2n1DlVNp5Pc3ukFqJVC7+3+hdREMsFmF2CNxKLtEmHV9ajmPZpxWO/KwqKGwYwWxwoloSKmwSJV8qFOX8I0uZHvBc5+59+jg0M9UkwAub5S40Q8wZdXlgmk0rg7OTCAEHB2fb3nedv1GjPJNHXXYzDisF2v4UvJW+vrnBkb59LWBh85+QwvnUjza//P52n4vnIq1nWaQQBCp7hVobhVYfboGPNXFMjphkZiINpT3tt/fIKbXeSItVtbRKMWe/cNsrGwxdWvLQBw/Ll9XLm0xpGjY1x5cxEBxJMRDD/g9usbHDg+QaPW4NDsEIPDcT7yiW/BMB9+TlHTNGKxWM+MpZSSZrPZVi3f2tqiXq9TLBbboJVIJIjFYui6jpTy69YP6oklScDjz6AajQYLCwusra1x+vRpjh49+lDgBPdX4guCgIWFBb761a+2iR4jIyO73uujAhTAL/3C+zm4dwhNSjRNwyh52B649bBEJAR+M6SPC0Gp5qEJHQ0dzRPEKhKzqthwhq/jbLqkFmiX2Ly41p47clOdeZiWbYLWkMqjqi4QrRJpaDMPIYuva9Cz6UisPG2li8AQStG8NZslJXpNgi2wC73lNbOuWImepaR3huomJ8ZGdjHzZgcHcP3ebetNj8uLG8zd2mJMOHzjnj1Yfavf/gv6UN8A+Hg83gM+AIW+zKafTj6R6h3YHYnHWC/39V+qdZYKVeZzVea3qmi+TSnnEa8aTEmHWc3hYCTO4XiKPbE4gxGHq33lvX7fqcOZgR79QYCkZbWp3KVmkwsbG2yUK0xEEzw7Mk7GViuCM6PjvL6+xsWtTeq+xzMjY+3XiBoG//67PshHTj7NU8/M8Ov/x48Td0yMQEK1jimArmyw2qX+4HsBYxO95a5aqfOZD40kmNqT4dD0ANe/tsDOZqdfmF/d4fTJCa6G4DSxJ4MJLM5tMLEvycKlFRIxm4PHxvnJX/rORwKntwshBLZtMzQ0xL59+5iYmGB6eppTp04xOjqKlJKVlRXeeustfvZnf5YPfvCDNJtNvvSlL7G11a/+8faRy+V4+eWXOXjwIC+//DL5O4wDXLt2jdOnT7f/JZNJPvOZzwDw6U9/msnJyfZjLVr64wxxD+T9uoFl3/d3XfALhQJLS0vtqeiHjXK5zNzcHPV6nUQi8civBwp8XnvtNV566aVdj0kpyWaz3Lx5k7GxMfbt23fXEkA2m6VSqTA7+2izGfl8nl/4xT/i9moJ6UsCIJABmq3jmhoEElsIxdhDmejWOrqdigIevpaouQQxk/xhqI2pJ5k74IbXFTMvcTOqRGdtKY8ooSu1Cql19P6MUoCXDAkTnlSvbwrMfIA01DxUN33cKAe4KQ2zGBDYnfWZUfRpDOkYdYmv7V7QvDA9wXKlzHJXpnNoaIDrG52MI2FbNOpeuxcF8MzUOG8urnFgfAAnbrFWLrNRrvTM4hwfHXJCZZIAACAASURBVObSeicrOT6Y4dJW52IxHI/29KMARvsA6PTEKGfXOhnC0xNjvLXaoYFPJBOslHqHfDNOhHxXj+rk+EhPr+xAMka20SBtm0QjJqauUXEbVGTAjudS8zxODI9woasEuD+V4WafQO6Z4VHe3Ogcmy4E3zAxRa5R58r2Jt3Q+8L4BP/kyHHeOz1Df2yu7fAvfvx32cwW8LzQedmXxAfjJEZSxFIONy6Fc1C6YHA0ydZ6kcxgjPRAjMxIgvWFbVZubrWERjhweoobV7LE4jZ7pge59uZtZCA5+vwMvpQsXFrDbXocPT3F1Tduc/T0Ht71bSd47/ee2XV871QsLS1hGEZblLU7Go0GX/va1/i5n/s5vuVbvoWzZ8+ys7PDa6+9ds+Wwic/+UkGBgZ45ZVX+PVf/3Xy+Ty/8Ru/8bbP932fyclJXnvtNaanp/n0pz9NPB7nE5/4xCO/R3aPAQJPUInvncig6vU6N27coFKpcOjQobZU0eOItxOzbTHzUqnUfZcP7yZ19CCh6zo/+iOn+Ny/u8TyRoFq1UXTNUTZI+aY1ANP2SNF1GlV8wMI+1ABoJWbyLg63sAxEQ2P+JJBbVQppvtOaFerqUFYqwzUQVoaRiXAjymwMcoBbiLMjGzRUTg3BGZJQlUShLNKetnHS3UpEMQ1zHygtusKL6nj5CS+kATx3sLCcDTC126somtwZCTJXLFEOmIzt9FbDpsdHOD8Uu9sUK6qVu431tRzT04MM5xyMCI68/k8lWZzF2HC68t2JxK9hImRWHRXdrRa7AWfoO/cGUvEewBqJpPiVlfp0dAEN7Z7gcV0HErlCiXXg3KNA3GHW12Z3b54jGqxwanUCJap40mJY5nk67U2W/BAOtPTwwI4PjjMl1dVCTBjR5hJpdioVXn3nr381Olnd1HhWzE8nuYz/+9/zX/7w/8La/MlKhVXmWhul6lsl0mkYwzGFevPtAwGBhxKq3l2bm+zc3ubjbiNGY+0r4QC2FzMceKZvdw8v8S11xcASKQcgkqdjaVtDh0bx7QNSrkKR54e5od/9mVmjk3e8fjeqfA8j0if4kUrbNtmZmaGqakpfvM3fxO4PyduUFYZf/VXfwUoq4z3vOc9dwWoL33pS8zOzjI9Pf3gb+Ih44kp8d0pHtYTqtlscu3aNd58801GRkZ4/vnnyWQyj71k2B0tzbylpSVOnjz5QOXDRy3xSSnxfR/LstB1wXd9zzSOlDi6hpBKcNWtuuiuEpA1qx66q8Ap0jUkGZhauyQnAM0NMKsQCatIgS0wS4APdl5lVNIMs6OuBZbviLbuX2AJ7FLXxTigbWgI4Md1rJ1ecBYBmOXdgO3rUkkx9ckm7Anpu34Ac9kiE3aUqZizq7xQ72PvDUQdbm/1go8mdK4ubnLxepbGdpMXhic4khlgKNLpS202es/J/mvNRLK3nDeWiPcQKAAW++aw+mWKBvsMLg8ODVLt+i0kbZtr273lvWbfijzjRLlVLHJhY5M3VrLkdoq8urhModwgGhjMRtNkTIfTw2M8OzrBiaERnh0bZ6G40wbQfKOOJyX/6h9+Ex8/8wK2puH7Pq7r4rounucRBEF7gSWE4Dv/2Uv86M9/B44hqRerRCJqAVLaqaADuWyB9cVtrrx2k32HOiMk1XKDTEa97/G9Axw5MUEzX2bp7G0SKXX/kVNTBLUG19+8TSoTI3ttlcLSFifP7OFbfvT0f3RwggcXin3cVhut+IM/+AO+//u/v+e+3/qt3+LkyZP82I/92B1LhI8a/zmDegBA8X2f27dvs7a2xr59+zh06FDP674TAFWr1bhx48YuZt6DxMMCVCuD830fKSWGYXDq1CkAnnrqJD/zT38frdoksDQ8W8PzQBMaEQmNaoAWuHjSx45aeJrANzS0iksQZlG+Y6K7PvFFnfqQ2qdW87EaOoGl4UZkyAZUczAtarjU1XyTG16nmzFFLbdChXHhy453FeDGBHrFx4/p7dJeEEj0SmdmClSfy4/rRHI+3pCBh8QxDa6v9tb1V/MVDF/nzPg4V7e3qDRdIrrOre0+CwvHIlfu7Tct5zrPCQJJpVjl8rr6Ye/JxNk7lqLounh+QDHssawVe4dv+xFrPBknW+48ZyqVZLmLZKFo7b0Xj/7hXMfsvRTsyyQ5t9EpO+7PpHsYf1HDYK7Q+34tJwLhHFbd9zF9n9fXOirqB9IprufKNHyflB1hbzLF9x87zvsP9v6OgiBAStn+v3Xuts7DIAh48dtOcPzF/fxv//z/4vX/cIWIY1Kve2wubZEYTND0AoJAsjq/zsBIgkjUIpFyEEhOPj3J+S/foHVk9UqDkak0489Nc+5vb2BaBkee3sutC4uc+UdH+aYPPcfR52c4f/48/yniXgBVLBbvOOwPj8dqA9Si/I//+I/5tV/7tfZ9H/vYx/jUpz6FEIJPfepTfPzjH+d3fud3Huh17xVPDEDdKe7XEyoIAlZWVlhcXGRycvJt7S8eJ0C5rku9Xuett966IzPvQeJhAKp1IWjJrLT+tWJwKMlv/tYP8Il/+vsUCzUMU8N3A2TEpO5LhOsjTB2BDoUmesRCw0e6HlozwI6YBH6AV2kQq1jURkx8XcN3TMxigGupcp5Z8HHT6rPunovyHNrzTlIX2DkFQBBmYuUAN9VqgAmEFGhVNcPVug8NtHpAENEwqgG+E85qxXVmUxmytTKzIwOcu9X7A983mGZxfYflXJF0zOHg+AABkovLfStQ0VugGInabPYBVrkrW8rmy4wl4ly7rV5n/1CSsaEk1cBFF4K1UhkJrN2jnDcSj/UA1P7BTM8wcdK2d5UVF/tYhPlyLyimnQh0bXJkZJg3usDnqZERLnbNPc1mMtzomrnaG4+zXCkjg4Ah0+RYIsmHjxxlT2aARqOBbdvt86s1J9j9GwuCgGKxyLVr1xgZGSEIAmIph5/51z/I6q11Pvcrf8KVry3QbLgUVrYQQkNoGi4wMTtMbiHParWj5nH0xVnmL62x/+gY+dUd5l6bRzc0nnpxlmbTY3wqxXd/5Ac4+a5Dba3OR3UVeNh4ULPC7ngcVhsAf/Znf9YWse7evhUf+chHeN/73ne3t/FQ8UQD1L2i1VO6efMmw8PDPP/883edNXgcANUa7F1ZWUHXdV544YVH/mHoun7fPahuYAJ2AVN3mJbk+374KJ//nYsUCg0MXeBXGhCze4Bf6h29PmGaiKaL64bHE7EQbkDiVsD2CXU6yq6z0otpytqilUWVffy4rqjplYCmLbByKisyKj5eCFJeVLS9okCx/KKbAfV0BzQCQ6DXJFJTjL6goz7E/HqOqYEkjfruEvCA47AYXq13KjV2btR46eAU+wcz3Az7OKamsZjvBZLJgTSb5U6P0tIEK4XeXpLXVRJd3ioy6DhcXlLbpCMmsxODoAsm4glKzQbZcoWVQu9+mn3nYDLSS2ufyaQ5l+0ch8qOOmCStExWusgTpqYx11XuE4KefpYQUGw20IVg0HFIWjbD0RjpkK1n6Trr9Qq25zIYj/KL/+BdPJXJUCqV2NnZYWlpqQ1SiUSCZDJJIpHAcRzFpvQ85ufnKRaLHDt2jERCpc6tDGvPgQl+/t99lOUbWX7nn3+B+QvLCE1Qr/lohs767W0GxlLYUYuBkSSRqEljp8zevWlyyzlK+SpHn5th9UaWWMzie3/6vRx5bqbnvL+fWaR3Kh7FC+pu0bLKeOWVV+5plfH5z39+V3mvBW4Af/RHf/RYyGH98cQA1L08ofofb5ERkskkZ86cwbb7DYF2x4O69PYfQ/9g75tvvkkQBI/FD+peGdSDAFOtVmNubg7f9/nGf/Qcp06d4pc/+YdkN8o4mkajWMeK29SaHlgGmDqi3kSGGnaaZar5mtY+PJ/IjqGynriGF9UwSj5eQt+VRWlStFlfblwQ2QhnoUARLFoDuprA8AOaAaAJ7FxAM6ar1+oiTfiOhpVzceO7fwpx22Jzs8L+oQw3Q1adoQlurveSIyxD5+x8lrrncXrfKKu1MgNRh6trvaXBnT4m3uzoEFdWO2U0IeHWRm/fp/t7q9RdhCs5d7OT0Y2n45QqLgcSKWJRG8vS0TTB6dFRmoFP1XVx/YCkbVN1Xbwg2NXTSvVpC84OD3J+fZ24aRExDGYzKXL1OtO6jqHpJC2LatNjMhKn6QVkohEubm0im7DZrLF3KsVXlpQaw3gijkfAWDzOB585wz85dhwzPJ+j0Wh7FS6lpNFoUCqVKJVKZLNZqtVqeyZoaGiII0eO9MwL9Wda+4/t5Zf//c+wvZbjS7//FS78zVXWb2+znS2wPlcBGeAWStQqTZyYjWlqxFJRDp0cZ2x6iB/8+e/gwOk7EwD+UwLUvfb9KFYbH/rQh/jt3/5t9u7dyxe+8AVAWW18+MMfbtPGq9UqX/ziF/nsZz/bs/0nP/lJzp49ixCCffv27Xr8ccQTA1BwZ8uNFsOtdQIUi0WuX7+OYRicOHHiP4qD7tsx81qluUedEL9bia+71t8C6rcDppYiei6X48CBA20Zl3gcfvl/+D4+/V9+nq1iDR2BW25iSolf97CTEWq63qb2+oCoNpAxtcKWEQtRd4kvaeSPhqQI0UuKaPWU3ISGUQ7wHYG1HaC5sg1QflTDKvo0QzBzHQ2r4BOYAs9WqhOBpbXLeuEHgNA0Uk2NsiF7KM9awP/P3psGR5KX576/zKysfVNVqSSV9l3qfXphWDwYYxMcMBybA4HBGLDxgWsH9xgbhgEbbDAeYxxeWMydaz5cc44XvBzbEDZh7GPAgAeYfbqnu7WrtJdKUkmqfa/K+6EqszJL6kXd6gW6nwhFtNS1ZGVl/p//+77P+7zE0zmyhSLHe4JcXNtkrC3AxIqxUXWkzc/l5Vp669LCBrJJ5MhYgA17mt1sLRKRBYG1uDFasjbVfboDHlaa7IxWd4ypt0LRaDob9DiJLEdJ1S0WBlobZArgsppZLyapKgoi4JAEtqIpfBUzoiCgVKvsbCTxVc1UFahUqxSSJUgr5CmSp0hGthPebLzmUNDHbKxG0iZJoMVl1+Tqw34fz9VrHoMtXvxOOy1WK7/64IvpuspcNUEQsFqtWK1WWltbyefzTE1NIQgCAwMD5PN5FhcXyWQymqedGmnpPe1EUaS1M8BbHnk9b3nk9QCk4mmi4U1ia9uUShWq5SpVFILdfoYe6NPeX53ntp8V2Z0kKKXee3glJBKJA/lsqrieURtQ20hsNwlmAP7iL/7iwO95UNxTBLUfVCVfoVBgZmaGcrnM8PDwFXO6h4lUKsX09DQmk4kTJ05gb1JWHZaj+X4E1SyAEAThijeBWoNT/QSHhob2kFgw5OV3/p+f5ZFf+CJ5BXLFCoogYJdF8slaY2UlkUWQRUw2c63eVKx9NkkAsyRgihRJdYuUnRIlp4icrFBy1wQT5p0KRX99ESorSLtQtUpUrRhSexWLoAkroDYeQ8pUqTjV9KGAKVulKNcIz5asUrJJpFE40dnO82u1xbWzxcX0Wi0CKpYqTIY3OTPUQbG0l+ib6bxUrjKzsEUxW2Q06GK9kCfkdTO93jSSI2UkLL/DbiCodreTaJNAYjNljMJSTXJzr90oR+4LeLm41qgNdfu8zOvk5AG7lbV0I53nc1g18oFaD9a0bpRIv89r+P/joXatFmU1SVjMEqfbOkgV8litMm89dpyf6N/b03QlVKtVVlZWWF9fZ3h42OBlp6JSqWiR1traGqlUCkVRNIcF9Ufd2Lm8TlynnQyfHtjzXvoNmpo9UO8Vfe31ThLUtfDD6mQO9xhB7RdBCYLA9PQ0uVzuijfEQXGtPgQ1RVYoFPadBaXisIYWNqceryWA0D8uFosxPz9Pa2sr586du2ou3N/m4Y/+8r/z67/wRZRCiVyxQgETVKookoholqFSoZqvIADmUpFqfWx8GTAL4J4vsXOyvhBUqqhmeOW6saucrCBUpJoBrbnhaK6iahYxx8sU/CZQFOS0glDBEBmV7RKW7SLFgNwQTQAvLEY5M9DBsyvrBJ0Oopu62o4Ci2u79Po92MymWvqSWnpP7XFS0e1zs7pVi3zCkRSySaQj5CLtLbIWrw/Hs1lZaY6OSsbNSJvXSFD7EdZW1iht32hS6zV/r66mdF5PawtbKw2xQ6/fy/ZaI4XY7fOwudYgRZfNooklbCYT4d1d2h1OulwuTCaRJ1bXcMsyLx7o4kMvexmtB8hAJBIJpqen8fl8nDt37oqEIEkSXq/XsChXq1UymQzJZJLNzU3m5+epVCrYbDYt0nK5XIZU/ZXEGPr7Q/09kUho9TD1frke0+fbgfsE9UMIdfzF7u4uvb29nDhx4lBGrKvRyn4LealUIhwOaymya03tPawISsVB6kyqI7rFYuHUqVNXbBRshtfn5LN/+3/xG7/4P1lf3CaXzOP02UnXbZCsFhN5tYdJNiFUKjURBVAoV3CvFkmMmKnYREotMqZUmbLLRNUiYF8rUnKaUUyCoS+q7JSQd0uUWmpkV3RLiNkK5lSFSl3Sbt4uUvQ3FueSV8azUyHtMn5P58PrPDgU4oWlvQ3XA60tXJhdJxRwU3EorO2mGG7zM7FsVO+ZFeOmolSuEl6KsRVPc6Q7gGAVkCSReLYRuYiCsKdnak+zbRNhdfvcBpNZi0liM2dMAS41DVKMNBFYoql3q/l3vRowYLdxaaP2WUMuJ0MBHyvxJAs7cfxWKxPRGMP+Frpa3PzOj71yj3T9SiiVSszPz5PJZDh69OgNpdVFUdRISIWiKGSzWc2IdWlpSTNiVR/rdruxWq1XVBDm83mmp6eRJInBwUEtDQhoZKU+r/k1DgP38rBCuAcJSq+S6+7upqurC4/HcyjkBA0ln56gqtUqS0tLRCIRent79/RPXQmH4aEHjUbbRCKB3W433EzNyOfzzM/Pk8/nGR4exn2VusGVYLaa+YO/fDd/9IG/5bnvhUlvZ3C6LKSzBfIWc200hyris5jI1QlLkCRI53GHzewerRGiWFSQcpWa+4Msa7RUdkqakAKoOafrBBLm3TJlj1l7fMVhQiw07I1MFXAE3DjMAhtNqbZqSWG8o5ULy0Z5+dZu7XGRWBKbxcSxniDiPg4t5abbqt3jILpTI5a55Vra8OxwJ2c7O4hk0kTiKfoDXkOdB/bWn5oJy+9yGAiqv7WFqWhDmNHZ4mZNJx93mU1s6QjMKZuY16Xrgi6HIf032uZnKlYjOFEQGG0LkC+U2UimyeZKPLMSIVsq47KYqQgKAYeNc10hPvzyH9lzTvaDoihsbm4SDofp7e1ldHT00O5DqG3AVCPW9vZ27T0LhQLJZFIbe5HL5ZBl2aAgtNvtrK2tsba2tm9mRZ8OVOu3zX8TRVEjqxslrXt51AbcYwS1ubnJ9PQ0HR0dWi/TwsLCoY1WhyuP3NC/50Fe62YdINQURW9vL+FwmGw2iyzL2o3odrux2+2a8ezW1hYDAwM31XcFtcXh4T9+C3/9+X/n3/7uWdKpAhZJpJgpIFpNOK0y6WSWnCRhsckUK6BUKigCOCcSJIfNVOSaM4WUqVDx1COh3RJFXy1S0t/yFYeEebcWJZmSJRSrjJysUPbUa0+yiBwvUrDUXmew1U04kqLVZUEWBUp19wirbGJhZYdUrsCJ4TZeWK5FUgPBFhZXG4t3rlBmcXGHsZ4AsiRqprE+p43lJqFDh9fN5o6RBBciO+zUDUyHO7x0ud3kCiXWEzUiC3ldROJG+fgewURTdG23GMU0AYfVQFAD7QHOrzZItz/YwgvrDcGHWwJ93OiymHmgo51qucrGbpoXlqKki7V75VRvO89FongtFnxuG+H4Lr/x8pfx344e4XqQy+WYmprCbDZz5syZGzZVPij0Ygx934/qHq6SVjwex2QyEQgEyOVympN4M+HoiUclKH2aUF/jVd//ICnCe3maLtxjBGWz2fb4192qmVCxWIzZ2dmbGrlxMyk+NWpSb47Ozk46O2s2LerNmEwm2djYIJlMUi6Xcbvd9Pb24nQ6r/Hq14+3/t+vYuhIF4999B9IxnOIZplivkwpnUc0maBapZjPIZpElHo0YpEE3BfT5DvsVOxmzPmiVkOq2BqRUskpIcdLlLy1hVmx1VJ7UllEMdeGD6o9VAAlr5k2TDiCLsLLNbLZShUY7wlwaaMWeXQ6LSyu18hkYnaD8T4/k+vbuPZpM+j2O3lhKkrQZ8fUIrMUS9Dj87CbMDbj5otNQwH9bta2GsSxvB7HjMR2JE2330mw1YXdLpPKF7Xps82EJQrsSQluN8nYd5oaevUmtlA7NY3XE3C5XZxyOCgXyiTSeV4IRynXiXuszcvGTu31Qx4nU1sxjgUDrOVSRLNpPvFjr+C1Y8N7zlEz1GzCxsYGo6Ojd80UWLPZTEtLC/F4nHK5zNmzZ7Hb7aTTaZLJJCsrK6TrzcvNYgyVQK4ULR1EjNH83HK5fM1NrZq2/GHEPUVQHo9nz4J/2DOhKpUKExMTOBwOTp48uUeZdxCo86UOguupM5nNZvx+P4IgsLW1RXt7O52dndpOcWNjg1wuh9lsxu12az/6XP1BcO6V43zyS7/E7/3S/2JtKYbNaSOnSFAqgSwjSCLVYgnBLAMC5YqCeyJJtrdGlEWPjJirULVJVKwS5u0CxUCdMHSHU5EEbOtFSoHazVq2SlhiOQrtNu0xJasJW1Uy+PRPLsc4NdjOxcgGGR23KArMLW4z0O5gep+aVLXebLy5k8WUEDg90qGJJ7RzbZJYiBpTd61uh4GgrLLEUt3uaGM7zcZ2mqM9QQobBboDTgI+B26XFbfVwm42RyyVpSfgNcjJ3TYLy9tG81d9PcokCoRju5hEkYDTjtdqwW4ycbq9nVSmgFJVeGG2EV2d6mtnre7vJ4qwUbdGEhTwSLBZLDMZj2ExSTz84gd5zejQnvPTjHg8zvT0tNb0freIDKBxbG1tbZw9e1Y7tv3EGOoo942NDebm5qhUKtpUXDUzod+QXq8YA/aSVqlUumoE9cM6B0rFPUVQ++GwIihVmbe7u0t3dzcDAwPXftJ1HFu+yTPtSjiIACKTyWgj4Y8dO6aRqMPhIBAIaI/bL1d/o6TV0Rfgc//6Ab76xe/wd5/7d8gVakMDKxUsThtlQUaoVKhItUtSQsIRTpEe8dSablNFirYa0VRskhZFld0y8laOcoulZnfkNCMUKijqiPkWC3KhSqlee+oPtFDJ7P2+pxY3edFoF09dXjH8vaqA1+rC2eHg0kpDDGE1iSxvNkimXFGYD28R8rvpCXi0NN9g0Md0U99UtsmdorethemVRu1IAJY3a8/fiKXZiKU52hskvFR7jEUSCIUcyC4Bs1nCZBJx2mS2EkkUdYS4zUq6UKRaUSiVK7htFsIbu+ykSmwn07T32jk/3VDvPTDQYbA/0pvPHutq40Jkg+PtQXLVEhdTOyCB02TivceOMCQqPPnkk0iSZBAfOBwORFGkVCpp42iOHz9+U5u2w0a5XNYmElzPsYmiqF37KlQxRjKZZHt7m8XFRS2q0SsIrybGgL2RVrlcJhqN4nA4KJVKKIqCJEn7ijEOs3Z3N+GeIqj9vsQbdTRXoSqQdnd3GRoawu12H2i0+9VwPSm+gxBTsVgkHA6TSqUYHh6+Zt7aYrHQ2tpKa2ur9jeVtJLJJJFIhHw+j8ViMZCW3letGa/7hZfzY286x2fe95e88N05qtUKxZ1kbZuOQrVSQTDJCIKAa7JIZtCNIgkUfVbEbJmq3UTFbsKyU6Dgr0dRsoRlq0TVWfvdEi+QrxMUkshIdyuX17dodTuYm98kXyhzYqjdoNSrVBWSW1kCLhuxlDFFl4jnWNmI0x9ysFBPc410Bbk0axRRBJ1mwsvbCAIc6W8hHE9jloxRgiyJLG4YIyprUyN2T9DL0kaDLPSEBTUyjCdyLEYaAoe+VjsL2yqppDk52MFFnYfgycEOtpMN0lGavh59rWqwrYVZnVjCJst0udxciG1StYIkCbjMFn77lS/nx4YaG7FyuayljpeWlkin05TLZUqlEsFgkMHBwetyZLldUCdf9/T03JRAQy/GUK1/FEUhn89r52NtbY18Po/ZbDaQuN1u35e0dnd3mZ6eJhQK0dnZaWim10db6XT6UEbp3K24pwhqP9xoBFWpVFheXiYSidDX16dd4MVi8dBEF4flAFGpVLTmx/7+/pu6GfcjLXUctdo4mc/nNSmvPtJS4XDZ+MifvZsL35ni8+//K7LZIvlcGUQRUTKhlMsgy0j5CvZwksywByQBU6pE0V67ZMtyrS9KKCvIWQXyFc1Lr+A2YytDrn51T65sMd7TilhSmCnU6gjzK9sEPU4266KEo91BJqejdLd5SctF8vWG3G6/i5VIjSxWIhkeGOvg+cUoxfzea8ZhdwCZWmowvIvbaaaQzmgOGgA9ATfhdWPtaKep+bbFaTMQVHfQy/Jm43ezSWJx0/gaSaO6nK0mj7+ITu1nNknMRRvkNtDWYlDv2W01l4kjHa04JZnvLa9StoHZKiJLImZR5Ldf+aO8YsjYgGsymWhpaaGlpYVMJsPU1BQul4u2tjZyuRyrq6t76jhqhHE7m2ALhQLT09MAnD59+paQpiAI2Gw2bDbbHjGGeq9sbW2RzWYNkafdbicajZLL5Th58iS2etag+fxUq1UmJyd573vfe9ODSO9m3PMEddAISlEUIpEIi4uL+yrzDpKWuxaupOJrFkBcKZevmt2q/n4vetGLbslC0KyK0kt5k8kkq6urFAoFLeWh/vQcb+MXP/+TXPo/C1z85hw7G0kqZaXW0CsJZBM5nM9HyQy4QBIp+SwIuTKKzUTFZcYSSSNIZioOC6JYMsjM+3tamVhrpNZcssxlXUSRK5To8LuIAQgCu9u1BX1lI854f5BL65soCFj0FuoKXJxc50VHu3huds1wDswmiYU1Y8Ouy2plMZykt92N0j+kSAAAIABJREFUxWNmen0bU9MUKZdNZnXLqPrLNs2D8rlsBoLqDXqY1TUHh/wu1nTGtAGPnTWd4q/T7zZMAh7s8HFZ5wHodlig3i7lMJswCSIhm4NLy5tIAYmyFaQqmGWJfKnE+172kj3kpKJarbKwsEAsFmN0dHTfKF2t4ySTSdbX15mZmam5kzschpTYzVp8NUO9d5eXl7UJAbcbZrOZQCBgSKWrkWc0GtVs1sxmM+Fw2HA+1Hu3VCrx2c9+lq9+9as89thjnD179rZ/jtuFe4qgbnYmlKrMa2lpuaIy7zBVgc0pvoOk8+LxOLOzszidztsq41WPaz/SUiOtWCzGxMQElUoFt9vNK3/uQX7ql3+CQrLMlz/7f7j4+Azb0QSCAJY82OcTZEdaUEwi8laWks2JaSePWBSo1JtzqzaZY71BrU40ubzFSJefmfVt2rxOpqc2ONIb5PxCo+4SjuxwcriDsqIwOdUgr8mFTYY6nESyRSJbxugGoJqvcKKzjcuRLU1ePtjhY3rB2LAb9DhYjyaJRJMQhZFuHy67DUFIqHMb6fA6mck2ohdJgMWokehyTYRVKRk3QK1eh4GgOv1utnRRWavXYSAoyaSbgSUKhGNx2txOOt0uZEHkybk1Sg5Q/FAqVpBlEUVQKBVLvPXIUd5y5sSecwKws7PDzMwM7e3tnDt37oobp/3qOKoTRCqV0pwgyuUyDofjiuKDgyCbzTI5OYnD4bimI8qdwPr6OoVCgZe85CVYrVYtfafWf2dmZnj00UepVCqsrq7y4IMP8pWvfOWGPPh+kHB3fUt3ANfjQK4ayMqyfE1l3mESlBpB3ajT+Pj4+KFKxm8GgiBgNpu1nPyxY8fw+XwaacXjcZLJJGffOsJD7zqJCZmZ7y4SnYsRjuzwn/XoqBp00JaDpGSh2gLH+tq4VHdyiGynsMqSlp4rFMqYRAGXYmKnUObyXJTudg8ruohlenGLoaBvz/EurKd5yYlevndxac//xXeyrEbjDPT6Wc9mSWYLyMLexTiZNroypBJ5lpa26Wx1EWh3MRPdxtqUXupra2F+vUFYogALTVZKJcEYWeSb/AGLTVF3Mtc4DkkStIZgs0niVE87qWyBmdUY2xtpAkEneX9tKrEsiBTlas0yqiLw0s5uPviqvU24xWKRmZkZSqWSIS11EOidINRF90riA719kVrzvBLUxnxV1n639Qupm97e3l46Ojq0+1qSJDwej2aDViqVeMlLXsK3v/1t3v72t5NIJHjb295GX18fX/ziF+/kR7iluKcI6qB1l+v1zNPjMO2JRFGkUCiQz+cxmUzXdBpXrZv0TuN3AxRFIRqNsri4SFdXl2F3rebp9WMXVLm7+VUyPQ+28UCpROGFNWa307SbbThlCy/M1yKerUQGSRSoVBV20zlODnVwPlyLkpa3EvzIWA9PPF8jmUpVwaSIiIBaVh7tCrC1lsRiEinoZjGJgsDKwjZj3a1M6VR4Xa0eVldr6baFpW1a/U7cATeLTSTitltYihjFEKFWNzvxDJtbKTa3UthtMlZFYLQzwNz6NpWqgqvJ7LW/3UhYdrNkSAlKosCCbvyHSRRY0Ikw3HYLC3on8jY/oknAVBUJr25TzJWZqSsIh0J+Lha2EURQzCAhIBTBbTHTbnfwx2/6L3u+VzVlNjg4eNPN3c24kvggl8vtmSWlr3mqirlUKsXU1BR+v/+qEd2dQKlU0sypr1UHu3jxIr/yK7/Ca17zGr7+9a/f1mzIncY9RVCwv2EsGA1eVbWbuthfyzNPj8OIoPQCCJ/Px/nz56lWq9qIAX1hudlpfHh4+K6SnCYSCWZmZnC5XJw9e/aadQVBELDb7djtdoM9jTcU4Vc//y+EC3ksJhGbLJIrVdncTTPeG2BipVZEmVuN4bKZSeWKHO0OMj0VxW6RtbrO0vouJ0Y6OL+wjs0isxTeIpMtM9IXYFLnNj7a08rs1AaWeJaBbh/hOgEFXHaiutGyW9tpxtxBvEELE0uNFF9vm5fLSWPvVLkp0vE4bFy4sFb/t5meXh8WUaLFaWO3PnlXKRvVDwOhAJd06sNQi53l3YYgIuRzsrTTSPf1Bb3EcwX8dhv5bBErJi7U1YcOi8y0bpx9Qa5SEcGOCUGATLmMWzFhroh84W2vM1xX6XRaE0HczpSZ/vponiWlF+okEgkURSEYDOJwOMjn89oAxDsNNYXZ399PW1vbVVW3f/iHf8g3vvENvvCFL3Dq1KnbfKR3HvccQe0HdSYUsK8y7yC4WYJqFkCMjIwARrfmSCRCKpXSJLwej4exsbFD9RS8WeTzeebm5igWizedahQEgfHeTl483st/nA9TKFc5NdTB+blapBSJJZHqI6My+RJjXS0krGaW57coFCqcGO3g/HyjxjS7tEWLw4LPamK57pE3sxjj5FiHNt69nKt9h4VihZ31FF2tbiLbKVbWdmmGSRCZuLTOqWMhJiJbFEsVqhXjJsgkCSytG58bbHEQrfdSZTJFVhZ2yOVKVKsKrS6ZFr8Nv8eL3eYgXSixm84iisbv19fiZjWexWkz47DItLps2Ey1USb5bJnsVopILEOEXSRJwOpo7L4Huvya36DXaWW+mMAhmcgqZYQCuCoiZlnisZ99LW61B61S0TZvY2NjN+TVeNjQ1zwlSWJra0uL6PRNtblcDpPJZIi0HA7HbbtnisUi09PTKIpyzbrwhQsXeN/73sfrX/96vvOd7xy6YOQHBcI16i8/dG3KxWJxTwT1zDPPEAgEWFtbIxQK0dPTc8NqN0VR+P73v89LX/rSAz/veutMyWSS2dlZLBYLbW1tWh0nnU7X+od08m61WfJ2oVKpaJ5+6iJxWFhY3+HnP/V3KArYLDImSSRVHzdRS+3VFlu/04qziiZwEEUBX4uNTZ0F0VDIw1okRbHYiGrMskSgzYUoCawtGMnE67HR3evjhctG9Z5sErEoItlcLUILhTxUrCI7O1mDuGGoy8/8snHC7kh3gNmlxt/G+4JMhRtRmMMmky2VqVYb12vA5yCeyiGbRERJpNXnYjGyq13TbUEX69u1CMpsklBkKNQjt86AnRXdOejpcLMYSyIKAt0DLVzO70AZPKKMUFCQTRIfee1DvHK8JmOOxWLMzc0RCoXo7u6+azZDULuvZ2dnKZVKjI2NXdH6p1QqaZFWMpkkm81qoo3mBuPDgt4Ud3Bw0CA7b0ahUOAP/uAP+Na3vsWf/umfcuLE/oKUH0LsezHdcxGUPsWnzjtKJBJYLJYb9sxrfv2D4CDEdD1O4+owt0QioU0glSTJIO/WNwceFvSS9lAodEusbPo7fLzi5AD/cT5MrlAyRFHL0Thmk4RFNuGqyvicNo2gqlUFe9PoByVbpjfgYjbSSNcVS7VZVT6fAyMNQTyRY6CgEPA6iOkm4w52BZiZaaTcIpEEo30BWjv9XFzcoFInF4fVuAO2yBKLTdFYLmvsXeoOtTCpUwZ2tLpYj9XIp1yu0uKyGaTtQb9TIyeAgW4/Ezr3i5YWt0ZQfreNpViSLo+NYqHMZHYHqQjWikixWkYUBH7m7FFeOT6o9Q0pinKg0Su3A/rrbmBggGAweNVrW5Zl/H6/oUaryrxTqZTWYHy1qb0HQaFQYGpqCkmSrpnifv755/nVX/1V3vCGN/Dtb3/7no2a9LjnCEqFWhtRG0+7urpua/HxIMTUHJVcrSa23zC3Uqmk7Rjn5+fJZrOYTCY8Hs9N++xB7VzOzs7icDhuuaT9519zlm9dCKMoMLW8hdthIZkpsJvOcXqkk8RmhpWVXaJCgt5Qw5FhOZpkpNfHzNouo92tLExsYLWY8NjNJLKNOk+xWKKcKiIIoA+0PS4rly9F8HisBH1ONuupQdM+58wsmbh8YY3ukBfRJROO7GiPV9Hb4WN20WiBlM43pQVNxgWx1efUCAog1O5lR5e6bPO7iMYb7yPJjQ2CySQQ1nkC9nf4aMuVmApvYB9yIGRLCCUQJShXFUa9dl7slXn22WfJZrP09/fT2dl5V0VNqiO6xWK5rvrmlaBvMFahyrzVPr79GoydTucVa296YdC1eq4KhQKf+tSnePzxx/niF7/IsWPHbuhz/DDiniMo9aIuFouMjo7idrs1Nc3twEEcIPQqqa6urhuOSmRZxufz4fM15NRqR7vaLJnL5fZYFl1rp1woFJibmyOfzzM6OmoYFneroI+i8sUyYz2tnJ9bp8Vpo7BTYHurtpAoCghV44IfTxRw2y0kN2qPyRfKDHV4SWZjmpN60GVjfjZGf5+bcLSx2HcFXExvZdnZydKi2GkPuNhNZAkvGtN2ogArdfVeJBIHAc6d7Ga+qbfJKhvJpyPgMk7wBdZjxvEauYLxGm22uMnqXNMFERZ1hDTUVWtcDnodhNxOVtd22YxnqEiQyOSxlATsZplUschgi4dP/9yrmZuZwWq10tHRQSwWY2VlRfNiVBfpOyE8UBSFlZUVIpEIIyMjhuv6sNAs84a9DcapVEprMNbXtSqVCpOTk9dFnM8++yy/9mu/xpve9Ca+/e1v33X9WXca91wNanFxEVmWDZ3cCwsLWCyWQ2t6e+KJJ/Ylk2YBxNVu7O3tbebm5mhpaaG/v/+2hPtqLUv9KRQKWs+J+mM2mzWbp42NjUOZHXVQ6GtRFtlET9BLZiPL9naGE2MhLsxEtMeO9AeY0hmxvvRoL089s2h4vaPjHbwQjhLwOkhvZKhUqiDA8Hg7k+FNBAF8skwi2egncjnN9A4FuHB53fBaA11+FptI68RIB9MzGwwdbWd5J8lOMovPbmY33YjcTgx3cFFn3toecLGuU+PJJhFRFLR6kigKWK1mMvnaa9gtMnmlQlltHO72M6tTJZ490k0hV2JqdoOBbh/T0W0UQGqTKSpVSkoVSRQIyFY+8IqjOIUqY2NjezYd+o1NKpUyzBfTD/u7VddDOp1mcnISr9fLwMDAbbVI2g/ValXr1VL7tfL5PG63m0AgcMUG43w+z+/93u/xxBNP8IUvfIEjR65vjtYPMe7XoAC6urr22AfdqplQ6kV5o07jJ06cuKGmxxvF1dwfdnd3WVxcJJfLUS6X8Xg8DA0N3RHloD6KGg0FsJUFlutWRZNzURxWE5m6V14imdf6pIa6/LzwzBKhoJuIzol8bn6LNp+T9hYnE5E6KSiwNL9Fd4cXq8XEwrTRJSKVLpLbStPht7G+3RAeWOW9EW42U6RUqjB5fg1JEjgy1EKirBgIqtA0pqPV7zQQVF+nn9nlRkqwL+RjXmcW29PZYpC52+1mzCaJkc4ASqHK1GRUE22YLLXbvmKGvFKGCthMEqaqwKt7/QyH2q6YztvPqkfvL7exsaGRll6sc7OkVa1WCYfD7OzsMD4+flui9euBWquSJIloNIrf72dwcFA7J/oG4/X1db7//e8TCoX4m7/5G97+9rfzH//xH/ejpqvgnjszV3I0P8yZUCpBybJ8IKfx+fl50un0dTmN3w7oDS/tdjvJZBKfz0coFCKfz7O9vc3CwgKVSkXzUVN/bvXO9udfc5atSJLpCxFkk0SL28puMk+pXGV0IMjFuVptZmM7zfGxDuYj26SjGUqlKlZRMjTrFopl+h125maM7uTFQoVCMk9L214xistpZXm5RnLHjnVwaS6KgEKkyQjWZjWxtNyIZCoVBZtgITy7Tn+3F3fQydp2gqUmwUS+ZCQsm8V4qzqdxsZOse6aLpsk+tpbkKsCjqLIzKUoY8NtGjk57RZmVrcwSQJVn1QbTSKAVKpyqs3Pe376Jw5snnol0lLrnpubm1rdUx9pXa/EW3X27ujo4Ny5c3dVHUxRFFZXV1lbWzMMYJRleU+D8cLCAl/72tf47ne/S0tLC3/1V3/Ft771LR599FFOnz59Jz/GXYt7jqD2w2FHUJIkUSgUtLTcQZzGx8bG7qobsFgsMjc3Ry6XY2RkxLBzVW8+Nc2RSCSIRqPMzs5SrVYNO2iXy3Woqr7+Dh89AS+zM5uUyhVaXGZ2kzWPuom5DTpa3azXhwIuLG8z2NbCVD0dt7Syw9EjIS7ONlJqsiIw3tvGhVljyk5EIBfLYbPK5HRznPo6W7i8XdP6TZ9f4+TJThK5AsvLxlpTu8/OUspoBpuqj/OIrMSJrMQZ7PPjtplwd9opUms+Xm7qmdIrBwF26mo8j9OK323HJkmMt/lZWd5BSZV4YbYRbVV0hrf9PT6iiTQpoUROKVEVFRxFgTaPiz/6pf92aNeeOhRTr5bTS7z1Tt7NEm/1GEqlknbt3aiF0q2E6u/ndDo5d+7cVTdlTz31FA8//DBve9vb+PM//3MkSdJqzA6H45YcXz6f5+UvfzmFQoFyucyb3vQmfvu3f/uWvNetwj1HULdiJpQKNZXncDi4fPkybrdbU8o5nU7DAq2Xx3Z0dNwyp/EbhephFo1G6e/vv6p8V01zOJ1Obay8vqC8trZGKpVCEARNuuvxeG6q36RUKvEjJ/1864la+m4xktRIqVpV8DisGkENhfwIeWNad3FhC5/bxk4yR2ebh+nLEVAUhkeCht6kkN/NxIVV+odaWdxKUKrXgBK7RhPZiQtrnDvbS8KVJZFqmLkqTQ27FrNEJGIUPyhKmbXlOGt1chscaKWcyhP0OLA5LbhcFkrVKoFuK0pVQZZNJFI5vBWJbCSDLFu5MNcYtOhx2yBai+RcTgtzq9u69zeR2M2yHahiyoO3asJmNfO597zulm+M9pN46xWm4XBYIy2TyUQqlaK7u5uRkZG76t5QFIXl5WXW19cZGxu7arYjl8vx6KOP8txzz/GlL32J0dFR7f8EQdDul1sBi8XCN7/5TZxOZ+1++ZEf4TWveQ0vfvGLb9l7HjbuOYLaD4dlT6QKIHp6euju7tZuvOXlZa23Qh1oGIvF8Hg8t91p/FpQFIWtrS3C4TBtbW3X3BleCfs5Vqs9WvqBdvrHNe+gr3R8a2trrKysMNDby2t/7Aj//I3LNVJyWlivBw7T4U36u33YzDITz68iItDd3aIp7LK5EiOdPnaSOVwmE5t1xV9sPYnXZSWeymOzyizM1nqcFua2GBlvZ2olRluri9VlY4QjCLA4vYmpVKEv5GYxkkSSBLZixuGHfT3GvimAZMq4OSqX8+SyJXLZ2t+PjHcwOdWI7I4e6WB5qRGpOZrSfWu6+lpvt48L4SgBr52hDj9PXlghGwBnVUQpgSiL/OrrX0rQe2dqOs0K00KhwMTEBNVqlc7OTtLpNE8//fQtb6a9XmQyGSYmJrSJBle7N77//e/zwQ9+kHe84x384R/+4W0nWXVDCLWNQKlUuquyM9eDe46gDjuCupIAQhAETaba3d0NNFzRVXVcPB7n4sWL2uLs8XiuOo32ViOdTmu9YQ888MChD3Lbr0erXC5rCih1B62vVeilzPF4nJmZGbxer+b/9nM/5eXf/3OafLHMVHiT3i6fVs/xOqzMXoyAAlUUhKpiGB44M7fBg6d7eO6JRe14ksk8/f0Bkuk8Qz0BJs+vav83Mxnl6PFOBJPIxrKx1tTX42e5nlZLJfMcP9VJCYWZaSMZmZom7AZbXWxuNsnJ88bvf3fXmCJsHr8R2Wo8v6fLZ5CXpwtFTg12MDcTZceRpiKDVBZQKrUT8epTQ/z4qSHuNNSNx+rqquZ/qcd+03pVB/Tb4ZpSrVZZWlpic3OT8fHxq1o8ZbNZPvGJT3Dx4kX+9m//luHh4VtyTNeDSqXCmTNnmJub473vfS8PPvjgHTuWG8E9R1D74UYiqIMo81Sn8Xg8ztDQ0J5+pEQiYRihbrVaDU20tzrC0gs0rte1/bBgMpn29GiptYpkMsnGxgaZTIZSqYQkSfT09BAMBrXdqM9r56dffYK/+efnaq9XX6CGewLMX4gw1N/KRF38sLK6y9EjIS7N1KIRWZaIryZxuywkUw0J+cJCjBMnOllfM5IQwMzEOseOhvY08lIxksb0+TVOnepmbKiNqbkaSQnAapMYopmggq0uNrca6j2zWSK20zg2syyytKpzjwjYie406lNutxXqWo/RvlYy6QKXZ2M47SbmI3GqDgG3bCZdKHK0K8gH3vjyPZ/xdkOdvut0Ojl79uy+qrb9mmmv5QCxX2r9RpBOp5mYmLimK7qiKHzve9/jkUce4V3vehef/vSn73hqUpIkzp8/Tzwe5w1veAOXLl36gWoEvk9QXN9MKBUHIaZqtaopfK7kNG42mw0j1PXS7p2dHRYXFymXy9jtdgNpHcaFrz++u0mgodYqWlpaWFlZIZfLMTQ0hNlsJplMMjk5qRG52+3mxx/s5qvfuEQ6W2R+OcaDx3u4+NQy5VKFaDSBxWKiUG9yXVraxumwkM4UGO9vZeLZFYZH20mmjK4OlUKFgNuuNf6qGB5s5dKTSxw91clEeJNqVUEUBbY3jTUpQYDwzAapZJ6BgQBVq0RVgZUmEUU2a3QrDwbdbMYa79nb7WdG58/X39fKlM7+yOd3Eo030oiLazG6g07EEpiB2fVa9NXZ4yMXT1KmQrJYpNPt5FO/aByfcbuhj0pUs+OD4EoOEPul1vW2Rdcr2KlWqywuLhKLxa4pbc9kMnz84x9namqKv//7v7/rxrB7vV5e8YpX8K//+q/3Cepuxo0uwAd1gFDrOK2trQcSQOil3fpxAqqT+cbGxh6VnMfjOfBOUTX+POjx3S5sb28zOztLMBg05Pr1RK6OWEgkEvzIqTb+/clV+gMO1qaiVMo1McPubpbjxzp5YbLWvJvOFDgy3kE8lWO6PupidrqWurtcj7REUSC+niKxm6Ur5GF1vZFiK2drRDd9fo3OPheR3Tz9PQEWmlJ5/b0BFuZqRLISrokuzr50ELMoEl6K1QxvbTLLOgk6QC5nJCzZbPxepKY+q3i9l8okiRwdbiMRz7GysIMgCuxkGma5iWyOpFLCYpJoES08/MaH8LrunCoukUgwNTWlfb+HlZrbL42sklYqlTLYFqlkpUZa+nsgmUwyNTVFa2srZ8+evWrU9Pjjj/OhD32Id7/73fzJn/zJXTN3amtrC1mW8Xq95HI5vv71r/OhD33oTh/WgXDPERRc30yo5r/rHSCudgGqTuNWq/XQjDXVYqfT6dTcLqrVqrZTXFlZIZVKGQQHHo9n3+ZItRHYZDLddcafUFM9zczMIAjCVaXFzWPl39vTR2T5K0zXpeT9/S2EF2spusnJCC1eK7vxmrpudm6Tsb4AG7oBhQuzm7T6nWxtpxkdamP2+VrtKR8v4HXbiCdztLe5WZhtRC/RxRSDY22Y5b3kbrPudf5YndtiYz1BR4cbf1cLgknghUsNW1qr1cRSU4QViTbIURAFlnXmtsFWF2aTyMnBdlbmt6BQZaUunujocLCyXSOoYyNtPL25hUkEE1VOdTuQ8lvMzhYOxYvxICiXy1o6+dixY7dMYq3HlUhrP689h8NBsVikUChw5MiRq0Z16XSaj33sY8zOzvLlL3+Z/v7+W/5ZDoL19XXe+c53UqlUqFarvPnNb+Z1r3vdnT6sA+GeszqC/UduPPHEE3tUOQd1Gp+bm9Om796JTne94CCZTJLJZJBlWZN07+7ukslkGBkZuSsagfVQDXFjsRjDw8M35K/2jW9O8unP/jsALpeVcqWqjcHo72shvFJb3Pva7WRjBRK5IuVy4zro6fWzspWgzWFnUxc1dff6WNtN09flITxhTAVarTLtQSepSpWteu1IEKgNTUw25Obt7W421oxih/HxDuLpPN5WJ0VFQbaYuDQZ0WpbnSEvq7rG3/4+PxVFwe2wUi2WsZtlnr9Qk5dLJhHZaSZTTxkOH2knvLLNWE8rS5kUkWoOr2im2+vmTz/yJoNlUTKZJJfLaT57t4q01Ki9q6vrrjOehVpD8OTkJA6HA1mWSaVq36dqEOtwODCbzTidTv7zP/+TD3/4w/zSL/0S73nPe+6aqOkHGPteDPckQZVKpT1Gm88++yxHjx7FarUeiJjK5TJLS0vX5TR+J5DP51lYWGBzc1MTW6i1G7WmdSdl7vpZOZ2dnXR1dd3wza4oCr/2gb9lbr4W5Rw9GuLSREOePTAYxCyLzD1bW9SHxlqZmTem2I6f6ODycxGa0dXrYnsrRy5rFNMcORpi6rll7E4z7cNBZuY2GegPGCItgGPHOrl8oaEIlCQBq1kmm2kIIMaOdTI1uY7LbcXustDZ7WM9mqCQLZLNFOkfCnJJN48q1OtjrR5RdXQ6Wa2PF3G7rdhbbEjFKiarzOViHLdgwirJ/NnH34zHuX9UqqZM1Z98Pr/HQPhGVKbqoL5qtebvd9jq0JtFpVJhfn6eZDLJ+Pi4IarT9/PNzc3x8MMPk81mKRaLvPvd7+ZVr3oVp06duqmBnPcB3PfiuzpMJhOlUkmzJ4KrE9NhOY3fSqiGs36/n5e97GWYTKY9/npLS0sUi8U9VkW3wx9ML2s/jH4wQRD477/4EB/+jX8AYHo6SjDoYrPuEm4xiUR0taLwTIzePj9LK7W0mMViYm1qk86Qk7WIURxht1hw9ziYnI4a1HuZukAhmy4SPr/K8XO9GLc+NexuG50g+vpaCc82jkUUBZaXtlGqCsl4jmQ8h4hARFUSCrAebURTbR1ujZwAbE47bGURBBgZDHLpcoRCvoyj34mnbEKQBD7w8z96RXKqfX6LQbADtQ2OmkpeW1s7EGnpR05ca1DfnYJqo9TZ2bmviEnffzU7O4ssyzzyyCM8+OCDnD9/ni996UvMz8/zzne+8w59gh9u3I+gqN1IExMTOBwO2trakGX5upzGfT4ffX19d91gsUwmw+zsLKIoMjw8fE2LGL0IQ/25lVZFpVKJcDhMMpm8JbL23/v9f+G735sDYHi4jZm5TTraPRQ2kvT0t3LpYiMKae/wsBnPUC5XOT4eYvLpRZwuK6JdJp6opehEUcBlFkjt5uka8bG8UiOvYJuLWFPDrmQS6R9qJV2bivsOAAAgAElEQVSuslaXlAdanWxHjaM0jh4NMaE7jv6hIOH5RvowEHQR06n5unr9LOuGE44eaWOq3ndls8kURQgGXFgUSBXLbMXS+ENuosUcoijw0684yi//zMtu/KTWoRen6F3v1ahc/alWq0xOTmKz2RgaGrrr7pFKpcLs7CzZbJbx8fGr3iPJZJKPfvSjrK2t8YUvfIGenp7bdpwrKyu84x3vIBqNIooi73nPe3jf+953297/NuJ+ik9FuVzWHM1VAUQqlSISiZBKpahUKjidTi0Fpi7O6XSa2dlZJEm6roX/dkPfbzU8PGyQ3x4UampD7dFqFmFcj+tDMxRFYX19naWlJXp6egiFQrckHRrdSPDL7/1LzZboxPEuVifWScZzyLJES6uLjY1G79HRk11Et1Kk1uKU6yPgWztc7KSLlEpVxsY7mHluSXv88MlOpme26OtzszxtFDUMjQSZv7yOIAmMnulhfnmHwf4Al19okJEggMdlIxFvSNPHT3QZCOvoyS4u634/cqqLSzpBhTdoZ3e3RqBHjnUCClMvRBgcCTK9GKv1aQWtFApFTo128keP/NTNnNKrQh+Vq+aw+Xwel8uF3+83RFp3A3Z2dpiZmblmLUxRFL75zW/y0Y9+lF/5lV/hF37hF257lmR9fZ319XVOnz5NKpXizJkzfOUrX/lhHM9xP8WnR3OdyeVyMTY2BhgX59XVVZLJJMVirfjc1dVFe3v7XaV+09v/XKnf6qDYz6pIbYxMJBJ7XB9UMr9SYV2dYOx2u29q+un1oL3Nw399/Sn+4R+fZXS4jXQkSSZdq/WUShXsNhkBRRtSOHUpwpHxdi4vNOpRW+spxk50MTGzQSpmjH5mL6xx/Fwfy/NGwQRAri7tVioKU08t4fJaMUsCZrOJYn2kRnePn5UF3cwoASKrxkhML7AAWNep+draXUS3M3g8Nno6vGTiORYWa8deEcBqMeFsd7CWSNPhd/M7/+M1Bzp/B4XaGqHWY9va2ujr69MaruPxOMvLyxSLxX3ni90ulMtlzcnlWgrWRCLBRz7yETY2NvjqV7+qucHcbnR0dGimzC6Xi/HxcdbW1n4YCWpf3JMR1Be/+EXcbjdnzpwhEAhccVekH8zX3d2N1WrVFuhsNqvl4tXF+U7sEHd2dgyDDW/3bBm9GiyRSBgaaFWboqWlJW3q7u0qJmezBf7gU1/j+e/UUn3HTnVx6YWGSGH8RBcTl2tiiKFBP7HFGEVFIJ8ziiDOvHSQZ787t+f1x46GEBGYnt2gUperO11W8smc9jtAi9/G7mYai91EsN/HbqpEe7ubmYlG/amnz8+SzlvP67OTSOS0Wleoy8uqjqBOn+0lnykyf3kdf6uTSN1Joq3dTUEASYQ1oYjPbOY33/tqjo0dziDOK6FSqRAOh4nH44yPj1/xO1YUhVwup0Xk6sbPbrcbUsm3grRisRizs7P09vbS0dFx1ajp61//Or/5m7/J+9//ft7xjnfcNbXlxcVFXv7yl3Pp0qWrWi39gOJ+BKWitbWVb33rW3zuc58jHo8zMjLCmTNnOHfuHCdPnsRisfCP//iPdHZ2EgqFDAIIvROzmtZIJBLaDlEVG3g8Hlwu1y0jjGw2y+zsLADHjh3Dbrffkve5FppnAak1CnXXnEgktImrsViMYrF4W0QYdruFVzw0ohHU9OV1gm1uNuupvcW5TTweK4KosDIRpVysMHys02DkKgiwtRBjeKSN2SaD18xOlrXwFn3j7WzsZMmkC/T2+Zl4btnwuFCXn93NNIVsmZXLmyBCyWGit8dFJldmZzuPySI0PaeFuM4dwmRRGBzwY5NlYqu7rExtsFMXXfg6PBpBdfX4mJ2Osu0ScCLyxp84fsvJSU2XhUIhzp49e9XIXRAE7HY7drud9vZ2wEha6nyxUqlkIC23233DEXepVGJmZoZSqcTp06evuomMx+P8+q//Ojs7O3zta1+7pU7jB0U6neaNb3wjn/nMZ34YyemKuCcjKD3K5TITExM88cQTPP300zz++OPs7u4yPDzMW97yFh588EFGR0evy2lBURRtLpIaVSiKYnB8uFlDy3K5zMLCAjs7OzfcL3SrsbOzw+zsLIFAgL6+PkRR1MZiJxKJq9b5Dhsfe/h/c+GZWv2ofyjIgs42qLPHjZKvEl1sRC/jp3uYuFSLrMaOhph5ehGzxUTbYCtL9bRc70ArK5cbUvRApxesMmZRZG3JKFtvbXWwFdWZuQ60sjzXSA1abDLtfT5KlTIIIEhgc1jIZ8vk0jnK+SqS2cx2vcdqYKyd+bozhWw2YXJbyGQKHD8aYnZ+i6RQwdViZ6QnwO9+9NbVnUqlErOzsxQKBcbGxg61HqveR3ohRrlcNihNXS7XNUlrc3OT+fl5+vv7aWtru2rU9G//9m98/OMf5+GHH+bnfu7n7pqoCWrn+nWvex2vfvWref/733+nD+dW4b5I4lp417vexc7ODr/1W79FKpXiySef5Omnn2Z6ehq/38+ZM2c4c+YML3rRi2hvb7+uOo/q+KCSVjqd1oa0qW7n19MQqZe1d3d335WNjrlcTrNhGh0dveqipe8vSSQSpNNpBEHYQ+Y3+xnXV3d537v+l1b/GRxtZX52C0EQGB1sRVQUpnRiBJMs0dbrY2M9idtiYrcuUbc7Lbja3KxH4oyMtDGn62kC6B0OYnFaa3Ol6ujpD7A8Z4y8jpzsZuL5xuymnoEAy+FGPcrrdxBPZLU7r7XLyeZGI5oaPBZibqZGsqPHO9nYSeO1mbG7bVyYjGDyWmjx2vj/Pvt2JOnwF1l939q1Fv7Dft9m0qpUKnsiLZPJpPVdKYrC2NjYVVOGu7u7fPjDHyaVSvHYY49pTi13CxRF4Z3vfCc+n4/PfOYzd/pwbiXuE9S1sLq6SldX156/q8MFn3rqKS3SikajDAwMcPbsWc6ePcvp06dxOp3XdbOqxWOVtHK53FWbZ3d3d5mdncXj8TAwMHBXSnZV08/h4WFDGvSgr6OvZzWP3rheMm/G3/359/nSn30XAJtdRpIleju9TD21iNUm4/Q72dLVeAJtbjp6fFz6ftjwOh6fg5ZOL0uXIyhV460xfqKTyWeXGDrVzWYsQ2I3y/jxTibPN1J+kiRgs1lI6wQQRx4wElbXsJfVcONYxk73MFknUKtdpoRAuV7jGjkeZHmmFv0pTjMls4jFauKPH30THe2H70ifz+eZmppClmWGh4fv+Byz5vaIVCpFPp+nXC4TDAYJhUJXTLMrisLXvvY1PvGJT/ChD32It771rXdV1KTi8ccf56GHHuL48ePa8X3yk5/kta997R0+skPHfYI6TFSrVWZmZnjyySd58sknef755ykUChw7dkwjraNHj14Xmah1m0QioZFWuVzGarWSz+cRRZGxsbG7LvesN8Vtb2+np6fn0G/y/cjcYrEYnN2vVleoKbfm+OOPf5PYZhZJEjlztpdnvzGpPaazP8D6elwTN/haXQRbbMxObVBtIqJTL+plbXnXkLZzuKyUMnmKdcd0u9NKz7EQqwsxUolG9DM03sHc5YazhSgKOFxWw2Pae31E64o+2Swh2czk6vZF46e6mZhYZ2CwFbvVxKUXatFa77ifjVSBEgpv/ulxHnrpyA21AVwJiqJorvc3swG5lSgUCkxNTSGKIl1dXVpdS+3pczqdmjBjbGyM3/md3yGfz/PYY49p9bD7uKO4T1C3GoVCgeeff54nn3ySp556isuXL+NwODh9+rRGWr29vddcxFVV1NbWFn6/X+vTAgxR1mEtQDeCTCbD9PQ0ZrOZ4eHh26ZgbHYxb1aCqedGkiQtFdXd3U1iW+EPPv7P+BwyS5NRRk50MaPvMzrTy+ULKwgC9PX5WbwcYfxML5MXGyk7f9BFfG0Hu9OCp93Lal15d+RUNxNPLxiOc+R4J4mdNC2hFmanopRLFUaPdjKte8+B0TbCOmeLjh4f67p5USMnupiebBDa8Rf1k95JszgZZeR0L1MT68gWiWB/gKXdJD/zX0/xk68Z1xbmqw1/vF6k02mmpqZwu90MDg7eda73ereKoaEhgwuGimq1SiaT4cknn+Sxxx7jwoUL2Gw2HnroIc6ePcsb3vCGfTMn93FbcZ+gbjcURWF3d5ennnpKIy3VGkklrDNnztDS0oIgCBoxxWIxrYlQT2YqUamRlroAqYuymgK7lSiXy5qk+G4xndXXJxKJBPF4nGw2i9lsprOzE5/Ph9Pp5H9++uv8y18/BdRqSha7md36vCdBgL7xDixWE1NPNFJ7R17Uz0R9qu7YsQ6m6kRkscl0jXYQnt3C77MTWzcawfYNtbJYH9PuDTjpHOsgtpnRoiOAUL+HyELjeUfO9DBxvpHuGzgWIr6Tob3dg6goXKqnAr0BJ4lcGbfHSld/gOeXN3nJqV4+8pHX7zk3+uGPKmnpTWGvNMW5Wq2ysLDA9vb2XRm9Qy3lODk5icViYXh4+KrZilgsxgc/+EGq1Sqf//zn8fl8XL58mWeeeYaHHnqI0dHRW3ac73rXu/jqV79KMBjk0qVLt+x9fsBxn6DuBqhD2p544gmeeuopnnnmGVKpFMFgkOXlZX7yJ3+SRx555Lrd0PUTeROJhDZOXp8CO4yalX6nereKNCqViqZwVO119E4YpWKFv/jUk8SiNVLqG2ljaW5T6zfqH20jvZ1iK6IbcSHA8KkeEvEcmwubKJVGj5Nkkjj18hGe/c6s4TjaOr1sLMUMfxt/oIfJZxbxdXhw+G0okogkmclmihTyZQq5IsEuL6IoYrPJmGWJna00q/WZUqNnezUxx/i5fvK5Itlklq1qle6Qlz/+7M9e9/exnymsvncNIBwO09bWdkvStjcLVTC0srJyzZSjoij80z/9E5/85Cf56Ec/ypvf/Obbft1+5zvfwel08o53vOM+QV0Z9wnqbkQ0GuUDH/gAS0tL/PiP/zjLy8u88MILmEwmHnjgAS09ODw8fN1SdzX/ri7ONyvpTiaTTE9P43K5GBwcvOtEGoCWzguFQnR3d++7CFUqFS4+M8fv/o//TbVSu7S7h32szO3i8lgxVco4HBY2NtOUCo2GXdksceRMLxcen93zmj0DAWwOCyvLu2QztVrRkVNdTDyzaHhcqMdHROceMXaml6nnGwKKgaOdhCej2u9HXtSviSecXhv5SpVSsYLVJjN8oovLzywRHA6SzZf4zJ++Ha/3xvvg1LSpah6sjt7Qj04/rI3OzSKXyzE5OYndbmdoaOiq/XRbW1s8/PDDSJLE5z73uTtqVru4uMjrXve6+wR1Zdxv1L0bUSgUeNvb3mZQ5SiKQiqV4tlnn+WJJ57g0Ucf1abfnjlzRksP7ifx3a8ZUi/pXl1dNfjqqaS133DDYrHI3Nwc2WyWsbGxOzLj6lrIZrNMT08jyzIPPPDAVWthkiRx6sFRfuY9P8pf/7/fAiCyEKdrwE8xmWFzLcku0DnsZ20pgXrP9AwFmXx8moHxTsK6mtDAeAfhCzWSaQm6aRsOsra8o6X2VIR6fUTCxogq02RlJOo2H6JJJKIbXNgz0s7lCyt09/oJtHt4/qkFfCEPu4kcH//dN9wUOUHtmkmlUiwuLmpOC8C+DbR3wvUejEKN0dHRq/pMKorCl7/8ZX7/93+fj33sY7zxjW+866L9+7g+3I+gfkCgpjX09axYLMbQ0JBWy3rggQeuWzihH27YbN3kcrnIZrNEo9Hb2utyEOgHHI6MjBzIGLdSqfJb7/5zpi6s4PE5CLU7WZ6Kkkk1SGP4gW5mL0eRLRJmymR2ckgmkd5jnYSnamm3noEAyzoyEgSBsz8+zvTFCMndxniNrqEWVqcbDbyh/gARXUOvt9VFMp7TorqRB3qYqTcLSyaRtv4A/3975x4dVX31/c+Z3EiYJJMbITdynUmGS4Ako8Gi8ojSBwG7WnlVpKVP0Zf2bUu0dtniy2JVVosUQQUEgXfhomDFVqm30kotPGLFB0gQUCCZXCYEcg8JuZPJ3M77R5jDBEJI0mRmCL/PWq5lYJzZg5yzz/7tvb/fkLH+VJVfwu7nR8BYP66oJH75wsPk3JUyyD+53nR3d1NcXAxAenp6vwn+Zqr3rpVWcHDwsA9SXLlyhaKiItRqNWlpaf2+f0NDA7/85S8JCAhg8+bNisKJpxEV1C0RR3yjDbvdjtFoVBLWqVOnsNvtTJkyRamy9Hr9gJ9yu7u7lWVglUqFr68vQUFBykLxSEo3DQanM2tMTAwJCQlD6pHUVzfz2gvv02CqpfVSB8mTYrlQUq8kCYD0nCR8VBKFX5Yov6ZSScRkRGG1yTSU9VaNkFQSEZFqWi93kDg5jtrqFuxWB7LVQbfZqrxOb0ii6Ktr6uiTDCmcc/k5aVIcFSX1RESpSdJFc+6rC5ivWJg4I5Urnd00mq388H/fxwNzJg36eztxXfy+2fTbQHBOyLn2+oBeR8pqtXpI/49kWaayspKamhoyMjL6HciRZZm//OUvrF+/ntWrV/Pd737Xqx6qRIK6JSJBjXac/aeTJ0+Sn59Pfn4+RqOR4OBg5WjQYDDcMB0IPRNRpaWl2Gw20tPTCQoKuql0k/PmMxzSTYPBbDZTXFyMJEnodLp/e2Lx+KdnWb/8bZzXwERDMoUuiSJtchyy1YrJxeYCehLR1JlaTn9Z1usKiU0No6b4moyRys+H7P/Q09LcRU1FE51tXQQE+iH5qjBf7VepfFSEhAfT0tQzuDE+IRxNpBpzexcXS+uITIyioboFTYSaOF00FZWXWfhf3+KR/5Uz5O/trEjGjh17yz7OULDb7cqRsqtVi6u/2K3+3nR2dlJYWIhGoyElJaXfqqmuro7nnnsOtVrNxo0bvaZqckUkqFsiEtSdiCzLNDY2KkeDBQUFVFVVkZiYSHZ2NpmZmRw+fJjw8HCWLl16yyfp4ZJuGgzOycf6+vphXxR9d8tB/rz5oPKzPieZopMXiI4Po62uGVu3jcRJcZSduSZtlJGdRNH/lJA8OZ6Wli5anMKtUUFcrr22wCupIEjtT0dzF5JKYnxyFAm6GK50WpABh0MmUD2G7ivd2MxWWhvbCYvRYLwqOJuek0zx2RoCx/qjnZpA4ZlqFizO5fv/Z9aQvqvD4VDU+dPT0926IuC0anEmrc7OTuXvjfMf50ORM8aMjIx+zSwdDgfvvfcer776Kr/73e945JFHvKpqcrJo0SIOHz5MY2Mj0dHRrF69mqeeesrTYXkbIkEJenA4HJSXl7Njxw52795NSkoKFosFvV6vVFpTpkwZ8PLtYKWbBoNTLTs6OnpAS86DRZZlXnl2L0c/OQP0jI6nTonjcmUTjVeXZn38fEiZEk/pN1UEhwVhv9JNZ1uP+oNaE0RUUiTdVgu1Jb0HITKykyjKNyk/S5JEcEQQ7U3XlCPidOOpNvX0tCJiNLS09Nh1SD4qIidEEhYxFh8ficqaVmY8OJGfrBiaxE1bWxtGo7GXgK+nuX5Hq6Ojg+7ubtRqNQkJCWg0mps+7NTV1fHss8+i0WjYuHGjV4omCwaFSFDXs2rVKj766CNUKhXjxo3jD3/4g9eJRY4Uhw8fZufOnbz88svExsZisVj45ptvFOmms2fP4u/vz/Tp05V+Vmpq6oBubK7STc7E5apG7exn9XdsYzabKSkpQZZldDrdiLoXd3dZWPnENs4X1RIVqyHQX4Xd7qC67JryuY+vitRpiUjIGI+bev33kgomz0ilrrJFWdiVJIgYH8qlKheb9uzkXs68sdooasqv9bGSp8Zz/qpP1MS7U7B0WblQWk+sPo7xCeH86uWFg/5udrsdk8mkSPy4y49rMDgcDmXgJS0tDYfD0ctfzDm8c+rUKbKzszl27BibNm3ipZdeYv78+V5ZNQkGjUhQ19PW1qYsJm7evJnCwkK2b9/u4ai8A1mWaWtro6CgQBnCKC8vJyYmhqysLAwGA9nZ2URFRQ3oBuGcAHOqYLhKN7mqlzsb47W1taSlpbmtn3CppoWtK97FdKKczrYugkLGEBETpizKQs90nY8KCvN7yxpNNCRTeLQUH18V2uxkmi51EBYdQslXFcprJElifFIUdRXXqqykyfFUFPVM62migmnvtBARrSZgjIrLjWY6W7tJnh6PZlwoK155fNC9oqamJkpLS4mLiyM+Pt4rb+TOyi4qKuqmFbLZbKa5uZnf/va35OfnU1dXR25uLjNmzOD+++/nvvvu80DkgmFGJKj+WLt2LRcvXmTbtm2eDsVrcSYPZ8IqKCjg8uXLvQwfp02bNmC9t+ulm5y6es4jnrCwsD5leEaKisJqfvP4VtqvjogHBY8hIrYnScUkRdJY0UB3Vzcx2khaL5vparcQEqHG2mmmq+PaiLqvvy96QzI2u8yl2lYaa1tIm5qI6RsXm42MGC6W9lRLkTGhJOljqatopKq0nokz0yk5U4V2agKxGVHM+m66ktAH4i1msVgoKSnBZrORkZEx4vJXQ8F5zNzc3NyvC6/ztXv37mXLli2sXbuWuXPncvHiRQoKCujq6mLJkiUjGuuBAwd45plnsNvtPP3006xYsWJEP+8ORSSovli5ciV79uwhNDSUzz77bMjjtncqNpuNoqIixYbk9OnTyLLM1KlTlX5Wenp6v0//zhuq1WolJSUFq9WqJCyz2Twi0k03o68kFZcWTVNVI00uQq5h40IIHR/GmEA/igt623Lo706l8H+ujaZHxoURqx2PtduGpFIhSRJjxgZwua6F+gtNaKJDaahpxWF3EKcdj29QAH7+Pjz4RC4PLbw2redM6K49m+sHDdra2qioqCAlJYVx48Z5ZdXU2tqK0WhU+or9xVhTU0NeXh4xMTG88sorbtd+tNvt6HQ6/vnPfxIfH4/BYOCdd95h4sSJbo3jDuDOTFAPPvggdXV1N/z6mjVr+M53rjmOrl27FrPZzOrVq90Z3qjDOZr+1VdfKZVWSUkJYWFhiuGjwWAgNjYWu93OwYMHCQ0NJTU1tc/jwpGQbroVrkkqIlaDvw9IvjLVLiPkANrpifj6qqivaqb5qpV8cPhYbGYLV1yWfvW5aRS59K20WUmUfX2tmkrKTOSCsZZAdQDa7GTOG2v42ctPYJiVcctYrVYr7e3tNDY2Ultbi8PhIDg4GI1GoyQtb6mgXPther2esWPH3vS1DoeDP/7xj2zbto1169bx7W9/2yPJ9ujRo7z44ov84x//AHruEwAvvPCC22MZ5dyZCWqgXLhwgXnz5ok9hRHA6cLqqoJhMpmwWCxkZWWxbNkysrOzCQ4OHrBL8fX9LKd0k/P4qy/ppsFQUVjN/1v5HhWnz9N1VZZo4gwtJacrsFnsRE+IoLWuha4OM34BvuhyUqmpaCQmObJXMgoKCcTHz4f2yz0VmV+AL5pojTIhmHF3Gk31rUTFhqHy9wVJxdJV3yFJHzOgOF2XWXU6HeHh4TfYkTgFhF2nKt2tq9fS0oLRaOxXK9FJVVUVeXl5TJgwgfXr1/c7aj7S7Nu3jwMHDrBz504A3nrrLY4fP86WLVs8FtMoRWjxXU9paSlarRaAjz/+mIyMWz+xCgaPJElER0ezYMECHn74YX76058iyzK/+MUvaGxs5JNPPmHNmjWYzWYmTZqkVFmTJk3qczzdufQZHBys+Pi4Sjc59QP9/f17WZEMdGxelmX8QuHeJRPpbGrl4lUb98KjpcRpx4NKwuLSd7J22zj3ZTG67GRsZgv6u1JoqLpMU00LSZPjKTxapry3LieFwmMmouLDiIzRYHc4aKq6TFR8OEkZsTz2izmoQwamrdfR0UFRURFhYWEYDAZlKjIgIICoqCjluNq1Cm1sbKS8vBy73T6oqcqhYrfbKSsro6Ojg6lTp/Y7jelwONizZw87duxg/fr1PPTQQx4/ouzrAd7TMd1J3NEV1KOPPkpxcTEqlYrExES2b99OXFzciH7m888/z1//+lf8/f1JTU1l165dXuGp5E6OHj1Kbm7uDRd6d3c3p0+fVhaKz549S2BgIFlZWUrSGswOz/Wj7k5jQ9d+1vW9MadBn1O5XbbL7Py/7/LpH/4FQGikmrBxwQQFB3L+TBVX2nt2miJjwzB3dtHRckV5r4kztHSbrah8VKhUEkEhY2lr7qTu/CXMV7pJzEyiorCaifek8e0lM7l3QdaAvpfTVqS5uXnIIr6uU5VOtQdZlnupPQxVosiJc4fN6W3W3429srKS5cuXk5KSwvr1671GmFgc8bkNccTnDXz66ac88MAD+Pr68utf/xqAdevWeTgq70SWZVpaWigoKFCGMCoqKoiLi+ul6h4eHj7gUXdXY0On2KmzGmtvb6ejowO9Xn+DQd/hd4/x0dZPaa5pprmuBYCxoUEkZ07gQlE1oRFqqkuv9TpDIntu7i0NPb2pMeoANNFh1F8ViZ08S4/DLhOXFs3CZ/+TcfEDWzRtbm6muLiYmJgYJkyYMKxP806JoutVQoKDg/tVvb8em81GaWkpZrMZvV7fbw/M4XCwa9cu3nzzTTZs2MDs2bO9qkKx2WzodDoOHTpEXFwcBoOBvXv3MmnS0HUQBX0iEpS38cEHH7Bv3z7efvttT4dy2+CU63EuFBcUFChLqM6kdaujpOvfr6qqioqKCgICApBluZd0k6tN+qWqJv609iP+++0vcVw1LgwKGUNCRiySBJKkovZ8A+2XO5mgj6Pi7LVBiPS7tdScv8T4xEhCIoNprG1lzpKZzP3RfQOqUqxWK2VlZXR1daHX60d0cdmVvlTv+3PkbWxspLS0VLHt6C/ZXLhwgeXLl5Oens66deu8cokY4O9//zvPPvssdrudpUuXsnLlSk+HNBoRCcrbWLBgAY8//jjf//73PR3KbY3NZuPs2bPKAMbXX3+NJElMnz5dSVo6ne6GHovTakKWZdLT05UnfVcJntbW1hukmzoaunjv5f0Y88vw9VVRV35tmdfX3xf9DIQ8VtgAAAq6SURBVC3tTR09R3s+KkKiQqksruVybQu5j+Qw7YGJ/Mdjd+MXMLBBhYaGBkwmE0lJSYwfP97jFYarI6/TxTkgIACLxYJKpUKv1/d7ROdwOHjzzTfZtWsXr732GrNmzfL4dxJ4HJGg3MVARtvXrFnDiRMneP/998XFOczIskxHR0evUffS0lIiIyPJzs4mKyuL06dP09HRwa9+9atb7r71Jd1ktVrpbrVS9XU9pvwLGI+WofJRERkXrlRO/oF+pE5PxdJtJeOuVLIenELWQ5MH1UMzGo34+Pig0+mGrGc40jQ0NFBaWkpERAQqlYq2tjbF3NB1alCtVnP+/HmWL1/O5MmTWbt2bb+j5oI7CpGgvIXdu3ezfft2Dh06RFDQv+eGKhgYsixTV1fHn/70J1599VUiIyNxOBykpKQoVdb06dNRq9WDlm5qa2ujpbmFpovN+Kr8CQwYQ4D/GDThoSRPmUBA0MCmB13fu7q6mqqqKrfKPQ0Wi8WiVKAZGRm9EqiruWFTUxNPP/200v9bsmQJTz75JJmZmV5hIy/wCkSC8gYOHDjAc889x+eff+5W1Yr33nuPF198kaKiIvLz88nJGbqf0O1KQ0MDixYt4rXXXiMzMxO73U5JSQnHjh0jPz+fkydPYrVayczMVKYG9Xr9gG+irtJNTksJX1/fG0bd+0uAnZ2dGI1G1Go1qampXmEQ2Rf19fWUl5eTkpJCdHR0v681mUzk5eUxefJkHnvsMc6cOUNBQQH+/v7s2LHDTRGLa8DLEQnKG0hLS6O7u1vxNMrNzXWLQG1RUREqlYof//jHbNiwQVycN6Grq4tTp04pAxiFhYWo1epeU4ODcfG1WCy9pgad0k3XL806Pa8uXbpEenq6R5dT+2Mwx452u50dO3awd+9eNm3axL333uvGSG9EXANejVjU9QbKyspu/aIRQK/Xe+RzbzcCAwO55557uOeee4Ceo6qmpiZl1P2dd96hsrKShIQERdE9OzsbjUbTZ2Xk7+9PZGSkckwnyzJms5nW1lZladZisWC1WgkNDUWr1XrNDpArziPSioqKAVnEl5aWkpeXR05ODkeOHPGKo2xxDdx+iAQlEPSDJElERkYyd+5c5s6dC/RMoZ0/f57jx49z6NAh1q1bR2dnJ3q9XqmyMjMz+1SukCSJwMBAAgMDiYyMxGQy0d7ejlarxWKxUFNToyyPD6d007+D2WzGaDTi5+dHTk5Ov0eedrudbdu28ec//5nNmzfzrW99y42RCkYbIkGNIgYqjCv491CpVKSmppKamsqTTz4J9IymOw0fd+3axZkzZ/D19e1l+JiWlqYcDRqNRlpaWoiPj0en0ynJZySkm4aKLMvU1NRw8eJFdDqdcix9M4qLi8nLyyM3N5cjR464bVfLFXENjC5ED+oOY9asWeL83Q04DR9PnDih9LNMJhNhYWF0dnYSGRnJ66+/Tmxs7IArI1cR2IFKNw2Vrq4uioqKCAwMRKvV9vu+NpuNrVu3sm/fPrZu3Upubu6wxDBSiGvAKxE9KIHAXUiSRGhoKLNnz2b27NnIssxbb73F73//exYsWIAsyyxbtoympia0Wi05OTlkZ2czffr0mx7n9SUC6xzdbmhooKysTJFuciatwerpuY64O9XR+8NoNJKXl8fMmTP58ssvvcbaQzA6EBXUHcIHH3zA8uXLuXTpEhqNhmnTpikCmCOBcCHtjSzLbNu2jcWLF/ea0LPb7b0MH0+dOoUsy8qoe05ODhkZGQOujBwOh2Jq2NraeoOpYWho6E0dj69cuUJRURFqtZq0tLR+1c1tNhubN2/mww8/5I033uCuu+4a/B+Km3H3NSAYFGLMXOAehAvp0HFWRSdPnlT8s4qLi9FoNL0MH2+lDu5KX9JNAQEBvY4G6+vrqampISMj45bq+oWFheTl5TFr1ix+85vfjHgvTHBHIBKUwD0Ii4LhRZZlGhsbFYHc/Px8ampqSEpKUhJWVlYWISEhA1bBcEo3NTU1UV9fjyRJhIWFodFobuoPZbVa2bRpE/v37+eNN94QPRzBcCJ6UAL3UF1dTUJCgvJzfHw8x48f92BEtzeSJBEVFcX8+fOZP38+0HOUZzKZOHbsGAcOHFAMHydOnKgkrcmTJ/e5SCtJEv7+/nR1ddHe3q4kN6d0U21tLcXFxQCUl5fT0NBAQkICr7/+OnPmzOGLL74QVZPALYgEJRh2hAvpyKNSqdBqtWi1Wn7wgx8APaoVX3/9NceOHWPHjh2cO3eOMWPGKKruBoOB5ORkTp48iclkIicnB4PBoAxRqNVq1Gq1Ytppt9vx8fHhk08+YefOnfj5+fHFF1+watUqfvSjH4nFV8GIIxKUYNiJj4+nsvKaF1JVVRWxsbEejOjOwN/fH4PBgMFgAK4ZPp44cYJjx47x/vvvc+LECcaMGcOCBQsIDQ0lNDSUiIiIPh8gCgsLef7555k7dy579+7F399fUdVwt7K6cKK+MxE9KMGw40kX0qVLl7J//37GjRvH2bNnR/zzbheqq6tZuHAh8+bN44knnuDkyZPKflZrays6nU5ZKJ40aRJbtmzh4MGDbN++nWnTpnk6fOFEPfoRQxIC9+EpF9J//etfqNVqlixZIhKUC1arFZPJREZGxg2/Z7PZOHfunJKw/va3v7Fw4UI2bNjglR5Uwol6VCISlODOoKKigvnz54sENURkWfbqnqFwoh6ViCk+gUBwazyVnAbqRO3r68vixYvdHZ7AA4gEJRAIvIKDBw/2+/u7d+9m//79HDp0yKsrPMHwIRKUQCDweg4cOMC6dev4/PPPvcJbSuAeBq4iKRAIBB7i5z//Oe3t7Tz00ENMmzaNn/zkJ54OSeAGxJCEYFSxaNEiDh8+TGNjI9HR0axevZqnnnrKLZ9dWVnJkiVLqKurQ6VSsWzZMp555hm3fLZAcJsjpvgEgpGktraW2tpasrKyaG9vJzs7mw8//FCI5AoEt6bPBCWO+ASCYSImJoasrCwAgoOD0ev1VFdXezgqgeD2RSQogWAEqKio4NSpU9x9992eDsXjrFq1iszMTKZNm8acOXOoqanxdEiC2wRxxCcQDDMdHR3cf//9rFy5ku9973ueDsfjtLW1ERISAsDmzZspLCxk+/btHo5K4GWIIz6BYKSxWq08+uijLF68WCSnqziTE0BnZ6fYYRIMGFFBCQTDhCzL/PCHPyQ8PJyNGzd6OhyvYuXKlezZs4fQ0FA+++wzoqKiPB2SwLsQU3wCwUhy5MgR7r33XqZMmaJ4LL300ks8/PDDbvl8s9nMfffdR3d3NzabjYULF7J69Wq3fPZAZIqgx13ZbDa7LS7BbYNIUALBaEaWZTo7O1Gr1VitVmbOnMmmTZvIzc31dGgKFy5cYN68eULIV3A9ogclEIxmJElCrVYDPb0wq9XqFf2e0tJS5d8//vjjPi0/BIK+EFp8AsEowm63k52dTVlZGT/72c+8Ysx9xYoVFBcXo1KpSExMFBN8ggFzqyM+gUBwGyJJkgb4AFguy7I4TxPclogjPoFgFCLLcgtwGPhPD4ciEAwZkaAEglGCJElRVysnJEkKBB4EjJ6NSiAYOqIHJRCMHmKA3ZIk+dDz8PmuLMv7PRyTQDBkRA9KIBAIBF6JOOITCAQCgVciEpRAIBAIvJL/D0IxAXOwTOmXAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%matplotlib inline\n", "from sympy import *\n", "from sympy.plotting import plot3d\n", "x,y = symbols('x,y')\n", "\n", "plot3d(sin(x)*cos(y), (x,-pi,pi),(y,-pi,pi))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## scipyのplot\n", "\n", "scipy lectureの[matplotlib](http://www.scipy-lectures.org/intro/matplotlib/matplotlib.html)\n", "を参照しています." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '
');\n", " var titletext = $(\n", " '
');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('
');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('
');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", " nav_element.append(button);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "\n", " // Add the close button to the window.\n", " var buttongrp = $('
');\n", " var button = $('');\n", " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", " buttongrp.append(button);\n", " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", " titlebar.prepend(buttongrp);\n", "}\n", "\n", "mpl.figure.prototype._root_extra_style = function(el){\n", " var fig = this\n", " el.on(\"remove\", function(){\n", "\tfig.close_ws(fig, {});\n", " });\n", "}\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(el){\n", " // this is important to make the div 'focusable\n", " el.attr('tabindex', 0)\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " }\n", " else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager)\n", " manager = IPython.keyboard_manager;\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which == 13) {\n", " this.canvas_div.blur();\n", " // select the cell after this one\n", " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", " IPython.notebook.select(index + 1);\n", " }\n", "}\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " fig.ondownload(fig, null);\n", "}\n", "\n", "\n", "mpl.find_output_cell = function(html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] == html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel != null) {\n", " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib notebook\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "X = np.linspace(-np.pi, np.pi, 256, endpoint=True)\n", "C, S = np.cos(X), np.sin(X)\n", "\n", "plt.plot(X, C)\n", "plt.plot(X, S)\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '
');\n", " var titletext = $(\n", " '
');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('
');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('
');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", " nav_element.append(button);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "\n", " // Add the close button to the window.\n", " var buttongrp = $('
');\n", " var button = $('');\n", " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", " buttongrp.append(button);\n", " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", " titlebar.prepend(buttongrp);\n", "}\n", "\n", "mpl.figure.prototype._root_extra_style = function(el){\n", " var fig = this\n", " el.on(\"remove\", function(){\n", "\tfig.close_ws(fig, {});\n", " });\n", "}\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(el){\n", " // this is important to make the div 'focusable\n", " el.attr('tabindex', 0)\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " }\n", " else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager)\n", " manager = IPython.keyboard_manager;\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which == 13) {\n", " this.canvas_div.blur();\n", " // select the cell after this one\n", " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", " IPython.notebook.select(index + 1);\n", " }\n", "}\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " fig.ondownload(fig, null);\n", "}\n", "\n", "\n", "mpl.find_output_cell = function(html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] == html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel != null) {\n", " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create a figure of size 8x6 inches, 80 dots per inch\n", "plt.figure(figsize=(8, 6), dpi=80)\n", "\n", "# Create a new subplot from a grid of 1x1\n", "plt.subplot(1, 1, 1)\n", "\n", "X = np.linspace(-np.pi, np.pi, 256, endpoint=True)\n", "C, S = np.cos(X), np.sin(X)\n", "\n", "# Plot cosine with a blue continuous line of width 1 (pixels)\n", "plt.plot(X, C, color=\"blue\", linewidth=1.0, linestyle=\"-\")\n", "\n", "# Plot sine with a green continuous line of width 1 (pixels)\n", "plt.plot(X, S, color=\"green\", linewidth=1.0, linestyle=\"-\")\n", "\n", "# Set x limits\n", "plt.xlim(-4.0, 4.0)\n", "\n", "# Set x ticks\n", "plt.xticks(np.linspace(-4, 4, 9, endpoint=True))\n", "\n", "# Set y limits\n", "plt.ylim(-1.0, 1.0)\n", "\n", "# Set y ticks\n", "plt.yticks(np.linspace(-1, 1, 5, endpoint=True))\n", "\n", "# Save figure using 72 dots per inch\n", "# plt.savefig(\"exercice_2.png\", dpi=72)\n", "\n", "# Show result on screen\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "以下にしめした3DでぐりぐりさせるAxes3Dはsympyをimportしているとうまく動かない.\n", "どっかで,conflictが起こっている.\n", "notebookのmenu barのkernel->Restartで初期化する必要あり." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '
');\n", " var titletext = $(\n", " '
');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('
');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('
');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", " nav_element.append(button);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "\n", " // Add the close button to the window.\n", " var buttongrp = $('
');\n", " var button = $('');\n", " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", " buttongrp.append(button);\n", " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", " titlebar.prepend(buttongrp);\n", "}\n", "\n", "mpl.figure.prototype._root_extra_style = function(el){\n", " var fig = this\n", " el.on(\"remove\", function(){\n", "\tfig.close_ws(fig, {});\n", " });\n", "}\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(el){\n", " // this is important to make the div 'focusable\n", " el.attr('tabindex', 0)\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " }\n", " else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager)\n", " manager = IPython.keyboard_manager;\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which == 13) {\n", " this.canvas_div.blur();\n", " // select the cell after this one\n", " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", " IPython.notebook.select(index + 1);\n", " }\n", "}\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " fig.ondownload(fig, null);\n", "}\n", "\n", "\n", "mpl.find_output_cell = function(html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] == html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel != null) {\n", " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib notebook\n", "from mpl_toolkits.mplot3d import Axes3D\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "def f(x,y):\n", " return 4*x+2*y-6*x*y\n", "def g(x,y):\n", " return 10*x-2*y+1\n", "\n", "x = np.arange(-3, 3, 0.25)\n", "y = np.arange(-3, 3, 0.25)\n", "X, Y = np.meshgrid(x, y)\n", "Z1 = f(X,Y)\n", "Z2 = g(X,Y)\n", "\n", "fig = plt.figure()\n", "plot3d = Axes3D(fig)\n", "plot3d.plot_surface(X,Y,Z1) \n", "plot3d.plot_surface(X,Y,Z2, color='r') \n", "\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '
');\n", " var titletext = $(\n", " '
');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('
');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('
');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", " nav_element.append(button);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "\n", " // Add the close button to the window.\n", " var buttongrp = $('
');\n", " var button = $('');\n", " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", " buttongrp.append(button);\n", " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", " titlebar.prepend(buttongrp);\n", "}\n", "\n", "mpl.figure.prototype._root_extra_style = function(el){\n", " var fig = this\n", " el.on(\"remove\", function(){\n", "\tfig.close_ws(fig, {});\n", " });\n", "}\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(el){\n", " // this is important to make the div 'focusable\n", " el.attr('tabindex', 0)\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " }\n", " else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager)\n", " manager = IPython.keyboard_manager;\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which == 13) {\n", " this.canvas_div.blur();\n", " // select the cell after this one\n", " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", " IPython.notebook.select(index + 1);\n", " }\n", "}\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " fig.ondownload(fig, null);\n", "}\n", "\n", "\n", "mpl.find_output_cell = function(html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] == html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel != null) {\n", " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy import *\n", "import matplotlib.pyplot as plt\n", "\n", "t = symbols('t')\n", "\n", "plt.rcParams['figure.figsize'] = (4,4)\n", "plot_parametric(cos(t), sin(t), (t, 0, 2*pi))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "figsizeを同じ大きさにするといいらしい.aspect_ratioとは違うので注意." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "base_numbering": 1, "nav_menu": { "height": "48px", "width": "252px" }, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": {}, "toc_section_display": "block", "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 2 }