diff --git a/vnpy/trader/ctaStrategy/strategy/.ipynb_checkpoints/backtesting-checkpoint.ipynb b/vnpy/trader/ctaStrategy/strategy/.ipynb_checkpoints/backtesting-checkpoint.ipynb new file mode 100644 index 00000000..eb8e6fcb --- /dev/null +++ b/vnpy/trader/ctaStrategy/strategy/.ipynb_checkpoints/backtesting-checkpoint.ipynb @@ -0,0 +1,155 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from vnpy.trader.ctaStrategy.ctaBacktesting import BacktestingEngine, MINUTE_DB_NAME\n", + "from vnpy.trader.ctaStrategy.strategy.strategyAtrRsi import AtrRsiStrategy" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# 创建回测引擎对象\n", + "engine = BacktestingEngine()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# 设置回测使用的数据\n", + "engine.setBacktestingMode(engine.BAR_MODE) # 设置引擎的回测模式为K线\n", + "engine.setDatabase(MINUTE_DB_NAME, 'IF0000') # 设置使用的历史数据库\n", + "engine.setStartDate('20120101') # 设置回测用的数据起始日期" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# 配置回测引擎参数\n", + "engine.setSlippage(0.2) # 设置滑点为股指1跳\n", + "engine.setRate(0.3/10000) # 设置手续费万0.3\n", + "engine.setSize(300) # 设置股指合约大小 \n", + "engine.setPriceTick(0.2) # 设置股指最小价格变动 " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# 在引擎中创建策略对象\n", + "d = {'atrLength': 11} # 策略参数配置\n", + "engine.initStrategy(AtrRsiStrategy, d) # 创建策略对象" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2017-05-09 06:14:07.610000\t开始载入数据\n", + "2017-05-09 06:14:07.702000\t载入完成,数据量:275971\n", + "2017-05-09 06:14:07.702000\t开始回测\n", + "2017-05-09 06:14:07.712000\t策略初始化完成\n", + "2017-05-09 06:14:07.712000\t策略启动完成\n", + "2017-05-09 06:14:07.712000\t开始回放数据\n", + "2017-05-09 06:14:15.346000\t数据回放结束\n", + "2017-05-09 06:14:15.346000\t计算回测结果\n", + "2017-05-09 06:14:15.370000\t------------------------------\n", + "2017-05-09 06:14:15.370000\t第一笔交易:\t2012-01-11 10:18:00\n", + "2017-05-09 06:14:15.370000\t最后一笔交易:\t2016-04-01 13:17:00\n", + "2017-05-09 06:14:15.370000\t总交易次数:\t3,501.0\n", + "2017-05-09 06:14:15.370000\t总盈亏:\t624,734.56\n", + "2017-05-09 06:14:15.370000\t最大回撤: \t-215,542.46\n", + "2017-05-09 06:14:15.370000\t平均每笔盈利:\t178.44\n", + "2017-05-09 06:14:15.370000\t平均每笔滑点:\t120.0\n", + "2017-05-09 06:14:15.370000\t平均每笔佣金:\t57.73\n", + "2017-05-09 06:14:15.370000\t胜率\t\t36.82%\n", + "2017-05-09 06:14:15.370000\t盈利交易平均值\t8,651.96\n", + "2017-05-09 06:14:15.370000\t亏损交易平均值\t-4,759.33\n", + "2017-05-09 06:14:15.370000\t盈亏比:\t1.82\n" + ] + }, + { + "data": { + "image/png": "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\nQMaMGfNYJwstMR44cIDu3bvTr18/Vq1aRWFhIZ6enhgYGHDv3j18fHzw9vYmMDCQl156SZYJzaOO\nS03kzNaov+3209GjR1m9ejXe3t7ExcWxaNEi5s2bx86dO4mMjGTZsmV07NgRU1NTysrKyMrKYt26\ndVRWVsrKqaenR3Z2NseOHWP37t3S33v37k3fvn2xs7MjLS2N9PR0ADIzM1m7dq2snPczqjtwvv76\n64SHh1NZWYm5uTnOzs4YGxtTWFhIVlYWK1eupLKyEjc3N1xdXbWWU26f/xVGdZt0ORPco47LjIwM\n1q1bh6urKwsXLmx2VfFxqDXEeWux5V/JRd988w2VlZUolUocHR01xlhbW4uNjQ0nTpwgOztb6g59\n8+ZNVqxYQWVlpbQFLof+yrjURM5sjfrbTWqEEABUVlbSp08fXnrpJebOncvZs2fJyckhPDyciooK\nAgICmDZtGqWlpZibm+Po6PhAHwO5VF5ezu7du3n22WfZu3cvd+/eRaFQSA+wp59+GpVKRWxsLDU1\nNTg5OcnOeT/jgQMHyMrKwsPDA39/f7788ksAHBwcyMnJwcrKSitsqa2crYGxKeefGZfOzs4sWLBA\nNs7WFOfabsu/yqnpXLR3716ys7OBxnNnwcHBODk5sWrVKs6cOUNJSYk0MdSNyydHf7vtJ/USckpK\nCiqVCkdHR8zNzbG1tWX58uW88cYb0jLq8uXL8fDwwNfXF319fdnOUNwvhUJBbW0tkyZNoqCggJiY\nGAIDA6XDjFZWVhQUFGBmZkbnzp01wtmUMTo6mmHDhhEQEMCuXbtITU1l06ZN9OrVi4CAAPT09GRj\nFE3KdbWRU93qXpsZ/xunNo3L+33eGuJcW2158+ZNrK2tJXtqI+efYRw6dCjOzs5MnToVf39/7O3t\nMTExoUuXLhgZGcnq79Y0Llut5Cmy0pzy8vLEiRMnpJI4dblmYmKimD9/voiPj5c+e/3118Xly5dF\nTk6O2L17t6xlxcnJyWLx4sXi/PnzUntrNZe69XVOTo6YPHmyVLqnLu28vzX249TVq1fF3LlzRXx8\nvCgvLxdCCKncsSljXFycEEKIgoICcf78eXHx4kVZGIUQIiUlRYSFhYn8/HyJq+lPTXMmJyeLrVu3\nitzcXIlJPTa1hVHNuXnzZnHnzh1RU1Pzh5yaGpdCNPp8+/btIjc394GSZ22K80eJH03aMjk5Wbz3\n3nti1qxZUkmztnH+FUY5+dRqLc+fJ0lP/EpNREQEJ06cwM3Njfbt2wONs2X1/lxdudAAABNcSURB\nVO+tW7cwNTXFxsaG2NhYRo0aRfv27enRowf29vayMIaEhLBt2za6du1KcnIyaWlp9O3bV3oDUv80\nNzentraWrVu38sorr0iNmdSfP0799NNPhISEEBQUhBACR0fHB95ymjKGhIQwbtw4TE1NUSqV2NnZ\nPXZGgG3btrFx40bMzMw4e/YspaWldOvWrUVbaoJzy5YtbNq0CTMzM3777Tc6dOiAnZ2d1trSwsKC\n2NhYlEqlVPbcHKcmxiXAd999x6ZNm7C1tSUxMZG7d+9Kzem0Jc4fNX40Ycvy8nJWrlzJkSNHqK6u\nxt7eniFDhjywGqhpzv8Loxx8TdUanj9Pmp7YjsK1tbWUlJRw9OhRrK2tiY+Px97eHktLS+rq6jA0\nNGTcuHGcOHGCzZs3U1paire3t+zlpfX19dy4cYMVK1ZgZ2fHvn37KC4uBh7uHAvwwgsvoFAopL3Z\nx70k2dDQgL6+PiUlJbz55puUl5fz888/A41dLl1cXKTvaIrxfpWUlPDll1/SuXNnTp06RVRUFA4O\nDvj6+moFZ319Pbm5uXz22Wd4eHjwwQcfUFVVJX2uDYzQGD+ZmZksWbIENzc33nnnHcrLy7WOU6VS\ncffuXVasWIGzszPx8fFs374dDw8PevXqBaAVcV5WVqb18ZOUlISZmRkbNmzg6tWrUm+Z5vKQpjhb\nA6OaJz8/X+ufP0+inqiVmvz8fFauXMnTTz+NgYEBQgjc3d3x8PAgNTUVQ0NDnJ2dpQRiampKjx49\n8PDw4IUXXiAoKEiWQa++FFPNc+nSJTw9PTE3N+f48ePcu3eP/v37N8tiZGRE9+7dH/tZiuPHj7Nu\n3ToyMzPx8vJiz549ZGZmUltby8CBA7l48SLHjh3jueeee4hDLkY15/fff09DQwOurq6EhIRgY2OD\nu7s7FhYWVFRUkJiYyMCBAzXG2dTf0dHRlJaWkpKSwq+//kpNTQ1ZWVl4enpq1JZN4ycpKYmAgACy\ns7NZsWIFJiYmXLt2DV9fX63hNDQ0ZMWKFXTq1IkuXbpQW1vLmTNnKCwslBojaiLO72eExlWvvLw8\nampqtC5+1q5dS1ZWFsOHD5dstn//ftLT0xk2bBjQ/GRAzvjRdkY1Z0REBAYGBiiVSszMzHB2dqZn\nz55a9fx50vVEVT+lpKRw5MgRfvnlF6BxkHt7ezNo0CCsrKxITk4mJycH+M8pdGi81Ey9NPi4tWPH\nDiIiIvDx8WH//v0sW7aMOXPm8NRTT1FZWcm5c+d4+eWXAaQ3+PtZ5dC2bdvYuXMnkydPJikpiWXL\nljFlyhR27dpFjx49GDhwIFOmTEGhUHD16lVZ2e5XeHg4ERER9OvXjyNHjrB//36mTZvGunXrALC2\ntsbZ2RlovARQE2rq71WrVvHpp59ibGzM1q1bmTt3LqNHj+bcuXOcPHlSI4xqqePn2LFjALz11ltS\nd9g1a9bw8ssvc+3aNeLi4rSCU73i8dZbb/HNN99w4MAB1q1bh5ubm3TR5/2SM87VjEePHgVgzJgx\nWhc/6jifMmUKycnJzJs3T/osMDCQ+vp6SktLNfqgbQ2M8GCcR0VFsXTpUgwMDPDx8dGq58/fQa1+\nUnPgwAGOHTuGEIKDBw8yYsQItm7dikqlwszMTJoVDxw4kOLiYmJjYwF5t0SgsWNlbGwsJiYmBAYG\nMnLkSObPn8/hw4dJTU0FICcnBzc3N1xcXFi9ejVbt26lrq5ONtbIyEhOnToFwIgRI/D29uadd97h\n3r17dOvWDW9vb86cOQM0bqNUVVXh5uYmC9v92rdvH6dPn6a+vp5nnnmGkSNH0qNHD2pra/H398fF\nxUW6hNDGxob8/Hzpwj85GZvzd2RkJOnp6RgbG9O3b18GDx6Mvb09FhYW9OjRQ1ZGgIMHDz4UPyEh\nIdINwABPPfUUAwcOpF27dlhaWmqEs7k437ZtG9XV1QwfPpzFixdTUFDA2LFjGTVqFOXl5VIDPbm0\nf//+FhmHDBmCp6en1sRP0zifOXMmxsbG1NTUAI3bZerLHDWh5nKRtjFC83EeHBzM8ePHSU1NRaFQ\nAJp//vyd1Oq3n6qqqjhx4gSDBw9GT0+Pf/7zn1y6dImUlBT69esn7Ve3b9+ejIwMOnToQKdOnWQf\nVNXV1Rw8eJA2bdpgaGiIvb09bdu2pba2lh07djBmzBjOnDnDli1bOH36NLa2trz55ptSUMjFeODA\nAfr27Yu/vz8mJibs2bMHIyMjAgIC8Pb2loJ4x44d9OrVS9omk9OeVVVVHDx4kKFDh9K/f3+uX7/O\n/Pnz0dfX5+TJkwQHBxMaGkpSUhIRERH0798fLy8vQL5kUlVVRVRU1EP+VqlUREVFMXXqVFatWkVF\nRQWbNm3Czc2NwYMHy36QsaKiotn4SU1Nxc/Pj9LSUoKDg0lLS2Pr1q106dJF2sqT0+cVFRVER0c/\nwHn58mWuXbuGv78/tra2pKamUllZyTfffMOAAQPw8PAAHr/P1WXF5eXlDzFeunSJq1evEhAQQO/e\nvdm/f7/G40elUj0U5z/99BPGxsb0798fgHbt2vHVV1/h7u4uS9O81sgIf5zXd+7cyYsvvgig8efP\n30pyllr9/1BGRoY4efKk9HtOTo7Yvn27qK6ulkpOk5OTxauvvioyMjKEEEL6+/03ncrNeefOHbF/\n/34RGRkpFixYIK5evSp99uqrr4q7d++KNWvWiMmTJ4vMzExZGGNjY0VwcLC4cuWKqKmpEbm5uWLX\nrl3Sbbt1dXViypQp4vLly0KIxptu6+rqxNmzZ0V6erosjEIIER8fL5YsWSIuX74sqqqqRFFRkQgP\nD5fKYktLS8XNmzeFEEIMGTJEXLlyRZSXl4tTp06J69eva4SxsLBQREZGNuvvCRMmiIKCApGZmSmO\nHDki0tLSZGEUQoiEhASxbds2UVhYKOrr60VBQYEICwtrNn5u3bolhBAiLS1NHD16VFbOpmMzPz+/\nxThX37yckpIiIiIixLVr12RhjI+PF6+//rpYvHixEEKIu3fvtsioHp9FRUUiPj5e1vg5f/68CA0N\nFcXFxaK+vl7k5eWJnTt3thjneXl5Qgghjh8/LrKysmRhbC5f/lEu0gSjEI3PmwULFki/Z2dnt5jX\nJ06c+EDMyPn8+Tur1W0/hYWFERUVxe3bt4HGvcm0tDT09fUxMjKioaFBuj156dKlAFLHSzkvKGvK\nCXDx4kWef/55bGxsiI6O5tatW+Tl5eHo6IhSqWTmzJmEhYXJ8taxceNGQkNDGThwIPn5+RgZGSGE\n4OrVqxgbGwNQXFxM586dsbW1JTg4mIULF2JgYICfn59sbbqXLl3K+vXrsba2Zs+ePRw8eBADAwNS\nUlKkVayGhgaUSiU1NTX06dMHMzMzzMzMGDBgwAP30MjNeOnSpWb97ezsjKWlJY6Ojjz33HOytblf\nvnw5q1atIjMzkzVr1nDnzh2EEFy/fv0P46dLly4888wzsnE2Nzbr6+tJTU1tlnPJkiUAuLu7M3Hi\nRLp37/5Y+fLy8liwYAGhoaFUVFRItybr6em1mIuWL18ONJ7z8vX1lSV+hBAsWbKElStXkp6ezqpV\nq8jKykJPT49r1641G+fz5s1j1apVAAwdOhQHB4fHzgkP50s9PT2SkpK0ihHg6tWrHD58mL179wKN\nuaelvO7k5CSd6QN5nz9/Z7WaSY0QgvT0dGJjY6mqquLcuXNUV1ejVCpp27Yte/bsAf7Th2DSpEmM\nHDlSds7a2lpu3rz5EGfHjh1p06YNP//8M1OnTsXCwoKlS5fy/vvvS0lYzq0HlUrFrFmzpO2H6Oho\nbGxscHZ25ocffgAgNTWViIgI5s6dS8+ePfn8889l44PGy/CKiopYv349M2bMwMXFBYVCgaWlpTSB\ngMb99zlz5jB9+nS6d++Oi4uLxhmtrKxa9He3bt1k3VaERn8XFhayfv16PvnkEzIzM1GpVLRv354O\nHTrw448/Ag/Gz/PPPy8r4/2s/21sapLz3LlzdOrUidWrVzNjxgzpvJadnd0D4/J+xlGjRsnKCI1b\noBUVFaxYsYL/+Z//ITc3l7q6Otq3b0/79u2bjXMPDw+++OIL2RhbypfqvP7TTz9pnPF+qVQqxo8f\nz65du6itrcXR0RFLS0sOHTr0UJy7u7vLHuc6afmZmj179hAVFYWenh6Ojo7o6+vTu3dvnJycSEtL\no02bNtjb29OuXTtu376Nh4fHA+VyXbt2lYUzPT2dLVu2MGDAAAwMDGhoaMDb2xtHR8eHONPS0vD1\n9cXb25suXbrwj3/8g379+gGPd+9fbUt9fX0cHBzYsmULJSUlAPTt25dTp04RFxfHuHHjSE9Pp1ev\nXiQmJuLi4sInn3xC3759Hxvb/brflvr6+iQmJuLn54eRkRE//vgjFhYWeHp6Sj739PTE29sbpVLJ\nlClTpHJPbWDs0KHDH/r7cUvtc3UpaUZGBl5eXiQkJLBx40aMjY25desWI0aM4MaNG/To0UNqoiZn\n/Dzq2NQE5549ezhw4AAKhYLAwEC8vb0B2L59OzU1Nfj5+QFoPBfd7/NOnTpx+PBhKisrOX/+PDEx\nMdTX15Ofn09QUJDG4vxR8mVGRgaenp5cuHBB9lzU9PkDjauI7777LsXFxYSEhKCvr8+gQYNITU3V\nWJzr9KC0cj1MCMG6detIS0tj9OjRfP/996SkpDBt2jR8fHyoqqoiOTmZpKQkunfvTmlpKVVVVRpb\n3rt48SKHDh3i2WefpXfv3igUCvr06UNFRcUDnPfu3aOyslJKyO7u7o+draktt27dSl5eHpMmTWLW\nrFns3r2bzp074+Liwrp164iJiaGqqgp9fX1GjRol+9X2alsOGzYMHx8fPvroIwwNDSksLCQ1NZWP\nP/4YgNu3bz9wwNLHx0drGeX0Nzzs8y1btpCcnMz06dOBxjt6QkJCgMZu1tXV1QCy+/qvjE2VSiUr\nZ3OMly5d4l//+hcAQUFB/PLLL6hUKoyNjcnNzaW6ulr2XNSU87vvviMjI4PPP/+cDRs2cOzYMZYu\nXUptbS1hYWHk5+ejp6enkTj/s/mytLSU8vJy9PT0ZGVsasvQ0FCuXLnCjBkz6NChAzk5OSQlJZGU\nlMSECROor6+nrKxM9jjXqXlp5faTnp4eFRUVvPjiiwQFBfHhhx8SGhpKSUkJ+vr6mJmZ4efnR3Z2\nNgkJCfTq1Ut6U5JbGRkZnDp1imHDhrFmzRoALCwsAJrllHv23pwtV69eTUBAAK6urlKJaWlpKQqF\ngtGjR0u2lPshd78tv/32W+A/+9DZ2dkEBARgaGjIypUruX79ulTdomN8UE19/tFHH7Ft2zapU7Wz\ns7N09qhjx468/PLLsk4KW+L8M2PT19dXo4wffPAB4eHhki0rKyulCxUBvLy8ZFtJ+CPOjz76iPXr\n16NSqaiurmbUqFH06dMHGxsblEolY8eOlWwpZ5w/ar5Ur7zKydicz3fu3ElJSQmJiYksWrSICRMm\n8PbbbxMZGYmLi4tUkaWT5qWV208NDQ1cvnwZExMTHBwcsLOzIyMjg5iYGIKCggBwcHDg+vXr2Nvb\n4+zsjFKp1AirqakpRkZGTJs2jaNHj1JeXo6Hhwd1dXXScromOZvaUqlUcuPGDS5fvsycOXMIDw8n\nOjqaqKgofH198fPz0zpbCiE4cuQIO3bs4OTJk7i6ujJz5kyNcLYGxj+Kn6FDhzJ79myuXbvG7t27\n8fT0JCAgQCs4tXFstmTL6OhogoKCMDc3Z8mSJQwZMgRra2sUCoXW2DI9PZ2kpCSGDx/Ot99+S0FB\nATt27MDDw4NBgwZpVfxoS76E5n1+69Ytjh07xuLFi3nttdekfmIAPXr00FjO1KkZaaDi6k8pISFB\nLFmyRCrJLSsrk0ph1dKWEjn1za+nT58WkyZNksoQNVFK3pya2vLevXtiwoQJory8XJSVlYnffvtN\n5ObmapRRrZZs+f7774vZs2eL33//XZN4QojWwdiSz1UqlUhPTxcHDx4UOTk5GqZsHWOzuVz06quv\nSlxRUVGipKREk4hCiOZtOX78eMnn+/fv1wqfa3u+FKJlnxcVFQkh5L/tW6c/L61cqQFQKpXExcWR\nm5uLi4sLWVlZFBQUPFDRJHejspak5nB0dOTChQucO3eOwYMHy35bcUtqasvs7Gzy8vJ49tlnUSgU\nODk5yd59tSU1tWVsbCyBgYEMGTKEUaNGYWpqqmHC1sHYks+DgoKwtrama9euWuHz1jA2/ygX6enp\n0aVLF0xMTDTK2Bxndna2dCjY2toad3d3jdsStD9fQvM+z8/PZ8SIEYB2MOrUvPSEkPlioUdQUVER\nu3fv5vz585SVlTF+/HjGjBmjaaw/1O3bt7l58yZDhw7VNMoDau22FC3cwqtpaTNja/F5a+BsDYzQ\nejjV0tZ8Ca3Pljo1SqsnNWolJSXRtWtX2Q+uPonS2fLvp9bi89bA2RoYofVwtgbpbNm61ComNTrp\npJNOOumkk07/TbqNQZ100kknnXTS6YmQblKjk0466aSTTjo9EdJNanTSSSeddNJJpydCukmNTjrp\npJNOOun0REg3qdFJJ5100kknnZ4I6SY1Oumkk0466aTTEyHdpEYnnXTSSSeddHoi9P8As3vnM53b\nctMAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# 运行回测\n", + "engine.runBacktesting() # 运行回测" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# 显示回测结果\n", + "engine.showBacktestingResult() " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/vnpy/trader/ctaStrategy/strategy/__init__.py b/vnpy/trader/ctaStrategy/strategy/__init__.py index 4ba01490..e30cb707 100644 --- a/vnpy/trader/ctaStrategy/strategy/__init__.py +++ b/vnpy/trader/ctaStrategy/strategy/__init__.py @@ -20,7 +20,7 @@ for root, subdirs, files in os.walk(path): # 只有文件名中包含strategy且非.pyc的文件,才是策略文件 if 'strategy' in name and '.pyc' not in name: # 模块名称需要上前缀 - moduleName = 'ctaStrategy.strategy.' + name.replace('.py', '') + moduleName = 'vnpy.trader.ctaStrategy.strategy.' + name.replace('.py', '') # 使用importlib动态载入模块 try: diff --git a/vnpy/trader/ctaStrategy/strategy/backtesting.ipynb b/vnpy/trader/ctaStrategy/strategy/backtesting.ipynb new file mode 100644 index 00000000..719b9348 --- /dev/null +++ b/vnpy/trader/ctaStrategy/strategy/backtesting.ipynb @@ -0,0 +1,201 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from vnpy.trader.ctaStrategy.ctaBacktesting import BacktestingEngine, MINUTE_DB_NAME\n", + "from vnpy.trader.ctaStrategy.strategy.strategyAtrRsi import AtrRsiStrategy" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# 创建回测引擎对象\n", + "engine = BacktestingEngine()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# 设置回测使用的数据\n", + "engine.setBacktestingMode(engine.BAR_MODE) # 设置引擎的回测模式为K线\n", + "engine.setDatabase(MINUTE_DB_NAME, 'IF0000') # 设置使用的历史数据库\n", + "engine.setStartDate('20120101') # 设置回测用的数据起始日期" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# 配置回测引擎参数\n", + "engine.setSlippage(0.2) # 设置滑点为股指1跳\n", + "engine.setRate(0.3/10000) # 设置手续费万0.3\n", + "engine.setSize(300) # 设置股指合约大小 \n", + "engine.setPriceTick(0.2) # 设置股指最小价格变动 " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# 在引擎中创建策略对象\n", + "d = {'atrLength': 11} # 策略参数配置\n", + "engine.initStrategy(AtrRsiStrategy, d) # 创建策略对象" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2017-05-09 06:24:06.267000\t开始载入数据\n", + "2017-05-09 06:24:06.343000\t载入完成,数据量:275971\n", + "2017-05-09 06:24:06.343000\t开始回测\n", + "2017-05-09 06:24:06.353000\t策略初始化完成\n", + "2017-05-09 06:24:06.353000\t策略启动完成\n", + "2017-05-09 06:24:06.353000\t开始回放数据\n", + "2017-05-09 06:24:14.304000\t数据回放结束\n" + ] + } + ], + "source": [ + "# 运行回测\n", + "engine.runBacktesting() # 运行回测" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2017-05-09 06:24:41.723000\t计算回测结果\n", + "2017-05-09 06:24:41.760000\t------------------------------\n", + "2017-05-09 06:24:41.761000\t第一笔交易:\t2012-01-11 10:18:00\n", + "2017-05-09 06:24:41.761000\t最后一笔交易:\t2016-04-01 13:17:00\n", + "2017-05-09 06:24:41.761000\t总交易次数:\t3,501.0\n", + "2017-05-09 06:24:41.761000\t总盈亏:\t624,734.56\n", + "2017-05-09 06:24:41.761000\t最大回撤: \t-215,542.46\n", + "2017-05-09 06:24:41.761000\t平均每笔盈利:\t178.44\n", + "2017-05-09 06:24:41.761000\t平均每笔滑点:\t120.0\n", + "2017-05-09 06:24:41.761000\t平均每笔佣金:\t57.73\n", + "2017-05-09 06:24:41.761000\t胜率\t\t36.82%\n", + "2017-05-09 06:24:41.761000\t盈利交易平均值\t8,651.96\n", + "2017-05-09 06:24:41.761000\t亏损交易平均值\t-4,759.33\n", + "2017-05-09 06:24:41.761000\t盈亏比:\t1.82\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAGgCAYAAABSVpb1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXlcVFX7wL/DwLANmyCLIrIIIuIKpkaYFSaWppXmkolJ\nGvZaLmmamllR+ZZli1qW/czsLc0y2+3VFs0lF3xxxxZz3xcUUGGA8/vjzMrmoCwK5/v58GHmzrn3\nnvvMmXue+5xn0QghBAqFQqFQKBQ3OA613QGFQqFQKBSKqkApNQqFQqFQKOoESqlRKBQKhUJRJ1BK\njUKhUCgUijqBUmoUCoVCoVDUCZRSo1AoFAqFok7gWNMnLCwsZOLEiRw5cgRHR0deeOEFtFotkyZN\nwsHBgcjISJ599lkAPvvsM5YsWYKTkxNpaWl07dqV/Px8JkyYwJkzZ9Dr9cyYMQMfHx8yMzN56aWX\ncHR05Oabb2bUqFEAzJ49m9WrV+Po6MjTTz9N69ata/qSFQqFQqFQ1AA1rtSsXr2a4uJiFi9ezPr1\n65k1axYGg4Fx48YRHx/Ps88+y6pVq2jbti2LFi3iyy+/5PLlywwcOJCEhAQ+/fRToqKiGDVqFN9/\n/z1z585lypQpTJ8+ndmzZxMcHMyIESPIysqiuLiYLVu2sHTpUo4dO8bjjz/O559/XtOXrFAoFAqF\nogao8eWn0NBQioqKEEKQk5ODo6Mju3fvJj4+HoAuXbqwfv16tm/fTlxcHI6Ojuj1ekJDQ8nKyiIj\nI4MuXbqY2/7+++/k5uZiMBgIDg4G4JZbbmHdunVkZGSQkJAAQFBQEMXFxZw7d66mL1mhUCgUCkUN\nUOOWGnd3dw4fPkxycjLZ2dm8++67bNmyxebz3Nxc8vLy8PDwMG93c3Mzb9fr9ea2OTk5NttM2w8d\nOoSLiwve3t6ljuHj41MDV6pQKBQKhaImqXGl5sMPPyQxMZGxY8dy4sQJHnroIQwGg/nzvLw8PD09\n0ev15Obmlrk9Ly/PvM3Dw8OsCFm39fLywsnJydzWuv2VyMjIqIpLVSgUCoVCUQFxcXFVerwaV2q8\nvLxwdJSn9fDwoLCwkJiYGDZt2sRNN93EmjVr6NSpE61atWLWrFkUFBSQn5/Pvn37iIyMpF27dqxe\nvZpWrVqxevVq4uPj0ev16HQ6Dh06RHBwMGvXrmXUqFFotVpmzpzJsGHDOHbsGEIIG8tNRVS1oG9k\nMjIylDysUPKwRcnDFiUPC0oWtih52FIdBoQaV2pSUlKYPHkyDz74IIWFhYwfP56WLVsydepUDAYD\nERERJCcno9FoeOihhxg0aBBCCMaNG4dOp2PgwIFMnDiRQYMGodPpeO211wB47rnnGD9+PMXFxSQk\nJJijnOLi4ujfvz9CCKZNm1bTl6tQKBQKhaKG0Kgq3aVR2rQtSh62KHnYouRhi5KHBSULW64beZw4\nAb6+4Fjjdg0bqkMeKvmeQqFQKBT1hdxcCAyEBx6wf59ffoGCAti0CRYvBmtbyKlT8MwzVz7Gzp1w\n9Gjl+1tJlFKjUCgUCkV94cUX5f8vv4SlS0GjgTvvhA8+gDNn4J9/4MIFqYB8951se/vt0Ls3dOwI\nAwfC3LmW4/3vf/KYO3bAypVw4EDpc+bmQqtWcNdd1X55SqlRKBQKRd3FYICioqo/plXU7g3D7t0w\nYwasWCGVGJOf6cqV8Mgj4OcH4eHg5QVffAE9e0qlp1EjuU/TpvDTT/DWW7Btm9y3e3fo2hVat5bK\n0eOPlz7v5s3yf1FRtctNKTUKhUKhqLvodNJ3ZOVK+9rn58v/334rJ/RFi6BvXzl5nzljOWbTpqX3\nXbIE7r0XTp6smr5XNYMGyf9t28Jtt0FWFrzyCmzdCpcvw9Ch8Nhjss0TT8A998jr+fNPOHcO/vhD\nWm0cHOQx/v5btv35Z3juOfl6+3ZbJbK4WO6zciV06wY//FCtl6iUGoVCoVDUPQoK4OOP5QTs7w+j\nR0Nhofxs5UqpsAwbJiddIeR/ABcXmD4dMjPlcsu778ollv/+V1oyNBrZ7tgxafUwHRPkEszy5RAQ\nAIcOycl97ly5z8WLNXr5pcjLgzvugP/8R/YvLAy+/14uJ7VrB87OsGABzJkDM2fKfZYsgWXLwM0N\nvL2lMgewZw9MmCBlM3y43DZtmpThXXfJ4775JowbJ31u3N0hKUnKe+hQW5lVMbXi+vzee+/x888/\nYzAYGDRoEB06dFAFLRUKhUJRPpcugVZrmVivxB9/QGoqhIRIP5FHHwUnJ3j+ecuyy4IFcrI9f15O\n0llZcrvJ6vDDD7L9vn3SgrN8OfTvLyfpNWsgLk4qK7NmSb+R226T1o2vv5bntcbdHX7/vWpkcTWY\nsu6bloIAevQou+24cXIZqSJZDx4MbdrI5SgTGg2kpECnTpZts2bBrbfK17Gx4OEhFR+T4lTViBpm\n48aNIi0tTQghRF5ennj77bdFWlqa2Lx5sxBCiGnTpomVK1eKU6dOiZ49ewqDwSBycnJEz549RUFB\ngViwYIF4++23hRBCfPfddyI9PV0IIUTv3r3FoUOHhBBCDB8+XOzZs0fs2rVLpKSkCCGEOHr0qLj/\n/vvt6uOWLVuq8pJveJQ8bFHysEXJwxYlDwtVJovffxeiYUMhOnWS77//XogXXyy7bUGB/J+cLISr\nqxDW01yvXvI9CLFhgxCnTlnegxCRkULExAhx5Iilza5dQtx5p+UY+flCHDsmX+fl2e4PQnz1lRDH\njwvh4yNE585CvPGGEBcvWj4/fbpqZFIZcnPluV97TQiDoeqOO3euEMXFttuKi4Vo1kyI55+X3xvI\n78vEuXNmWVTHb6XGLTVr164lKiqKxx57jLy8PCZMmMDSpUttClquW7cOBweHcgtaDjeau7p06cI7\n77xTbkFLnU5XZkFLVftJoVAoKmD3bpg3Tz5lO1wHXgqmJ/9Tp6Rl5N57peVk0iTZv7w8ePBB6fvy\n0EPS0fX8eenzsXGj5Thffy39Ynx9Ldt+/FFe54IF0LixdHpt1EgupZiWmn780dJep5Mh0SCXZdLS\n5DJMcTEsXCijfAIC4OxZ22s4eFBabz76SJ7D1VW2f/ZZueRVkkuX5BJXeHj5cjlyRPoLBQRULL9/\n/1u2Gzeu4naVZeTI0ts0GumDY6JkKjxvb7ksZ5JhFVPjSs25c+c4evQo8+bN49ChQ4wcOZJi01om\n109BS1X/yRYlD1uUPGxR8rDlRpdH47feIvCjj+Ctt9ixfDkFxgfGq6FSshACjcGA0OnkZKjRgBC0\niIpiz0cfET55MoaUFJxuuYVinY7s118n+7bb8Fy7lsivvoKvviInLg6PjAxO9+7NgXPnICoKSvZh\n/37La19fSE+XCsLGjfKcleizW+fONNq+nb+2bpUKzdmzpRUaI+4LFtDo3XfxtFYuZsygUK/H0LAh\nZ3r14sSQIQDEGR/0/54xg+ykpDKP1+LBB3G4dIm8li058vjjGPz9y2wX9vvvXExL48T1NC6ryWG4\nxpUab29vIiIicHR0JCwsDGdnZ06cOGH+/HooaAmq9pM1100WzOsEJQ9blDxsqTV55OVJv41r5dIl\nGb2zYQP06kWr7dtljhKQvilNmtididZuWVy8CLNnw9q18M03UsmYOlVaXy5dgiZNiOvYEd57D5o1\nk6HDPXrg+8QTsG6dDDF2cICgIDw2bYKff8bv9tvxqwkrU1wcDBmCPd/4rn/+wdPacrRhA4wYgeOO\nHTjm5hL81lsE33svREaam0Ts3AkTJ5Z9QK0WDh7E5eBBfLt2haeesv389GlpGfrlFxq8/jrBsbGV\nvrzqpDqU/xq3K8bFxfHbb78BcOLECS5dukSnTp3YtGkTAGvWrCEuLo5WrVqRkZFBQUEBOTk5pQpa\nAmUWtBRCsHbtWuLi4mjXrh1r165FCMHRo0crVdBSoVAoapV9++TSRkkKCmS4LUirgjGwAr1eTn7z\n5lk8PIz31Urx5psyJ0nr1vDXX9KpNjJSRgyFh8OHH171JZXLTz/Jvn/zjXw/daq0sPznPzL6xvTg\nGxEhlzx274Z//Uu2GzxYLmds3QqHD0vlJinp+lg2K0GBv790lm3bVm7o1ElGWWVlSYXxhx/k92ey\njF26JCO4ZsyA998vfUBnZ/ld/fqrjNiyDqXOz5eRTU8+KaONWrSo7su7PqhyLx07ePXVV8X9998v\n7rvvPrFu3Tqxf/9+MXjwYNG/f38xefJkUWx0PPrss8/M7VauXCmEEOLSpUviiSeeEAMHDhQpKSni\ntNHpatu2beKBBx4Qffv2FbNmzTKf6+233xb9+vUTffv2FRkZGXb1Tzn62aLkYYuShy1XLY9Ll4SI\nixNi376q7VAtU2XjY8kSi5NlXp4QX38txOLFQvj6lnZOFcL2/ebNQrz8snz98MPy/d9/23de62MK\nIcQjj9ge+5577L6ECmXRoIEQEyYIsW6dENOnC/HZZ0L88IMQhw7J82RlyWs4elSI3bst+xkMts62\npn6dOWN3v2qLK46NwkJ5LY6OQgQHy20XLwrxwANyu7Uc8vKEaNfO8t7FRYiffpKvi4psvzNjEM31\nRnXcS2tFqbneUZOWLUoetih52HLV8ti4Ud5wGzSQN+GyMG0/fPjqzlELVNn4mD9fiNtvL63AlPU3\ncqQQ8fEyIgiEGDu27HamyKDySEmR7davt2wzGITIzhYiOloet3NnIU6eFOJ//xPi0UeFyMwU4vJl\n2Xb7dhk9dPJkxbJYvbp036wn7O++kxO8PRw9KsSyZaWjcK5D7BobR44IsXdv6e0mmS1ZIq+1pPL5\n889CpKbK148+Kj8zGK7r30513EuvP/ucQqGoH6xfD+PHS6dKV1fL9vPn5TLCxYvSZ2DcOGmO12gs\nCdKqk8uXq/8c9nDunMyzYr3cY8pz0r8/fPopBAXJRGjffCNl9fTTMuJn6VLZ7vx5WePnu+/Ax0dG\n7lj5Gdpw5IiMxhkzBjp3tmx3dJTRRLt2wWuvyURt/v5yaWvePLmU4uIiv5/WreXSkNFh1Xn/flun\nXBOrV8Nnn8nzmWjWzPL6rrvk9dhDUJCMhjJFKt3oNGokl95K0qUL3HKL/O4ffVQuCW7fbvn81ltl\n7pzLl2WOnjVr5HfXuHHN9f06oEJvr83WSXrKoEOHDlXaGYVCUU8QAsaOlRlYH3tM+mrceafM2vrk\nk7IuTXq6bDtrlsVxdNEieZPevRtGjJDK0MSJ8PLLVTOpnTghQ03//rviUNrqYO9eeW4vL1kU8PXX\nZZhx9+6QkCAnqNBQS4isEHIyd3aWSuDhw1IG4eFSRocPg6cn9Okj22dlydBfvV5OmvfcA6++CgMG\nyBo/zs5SoZk1q+z+mXxUZsyQCtezz0ql64MPym6fm0vUv/4FDRrI78tEdrZMVOfjA/36yYR1QUF2\nOx/Xa1JT5Rh4/33pQ9OqleUzBwep2JgeEFatqo0e1joVjqK33nqr3M80Gg0fffRRlXdIoVDUQYqL\npcNjeLh82jTV1wkPl7k+jh2TE9ucOZZJcupUefMePlw+nfbsKTOgHjsmP4+IkPv++9/yLzNTZji9\nGo4ckYqA6djLlkkrkokdO6QVYsaM8iNRSjJrljzmAw/Y1z4+Hu6+GxITwZgR3WTxsLFimNBopCIC\n0km2eXPLZ489VvoJ3d9fFhN0cpJP8jNnWrK6arXwyScWR92K8PCQ0UYNG0pl89ln5fdp6mN2tlTC\nPDzQgSwtcPmytOY0bSrztTz2mCVSq0kTe6SjAFliYOhQGdFUlhL/1ltStnr9dekoXSNU+YJWHUD5\nTNii5GGLkoctdsnj4EGLD8DOndIBNDbWts2HH8rPW7USYv9+Ib75RoicHFtfiZJ+GA8+KMQ775T2\nL7AHkx/I4cNy36Ii6Wg5fLh8HxNjaTt/vtyWkHDFw5rlERsr9zlwoOyGFy4I0b+/EGfPyutt0sT2\n2hYurB4/kawsIbZuFaJ3b8u5mjUTokePyh1n167yP5s5Uwg3N1Hg6yvEU09Jh3CtVoiwMHkuKNtv\npI6j7h221FpG4S1btvDBBx9w8eJFhBAUFxdz9OhRfv7556tWps6cOcP999/PggUL0Gq1qvaTQlHX\n2LdPWlNOnJC+FwDvvCN9KZ5/vnT7lBRpLWjZUj7Rl1UFOS9Pmtf37IGjR2V20hYtZL6Pjz6SyyKm\n5Jq7d0vrRUnfjIwM6acye7a0TJhyV91zjzx3aKjcb/duuWQTHS1Da+fPlxlsFy+WSzZXIiQEdu6U\n11FQAL/9Jq0xnp7y8w8+kAUD9+yx+EYMHy6fskeOlFas6vATMVl0li+X/4WQT/WVfbKPiSn/syef\nhCefZHtGBnEODrISNMiw5a1boX176TuiUFQ19mg+3bt3F59//rl48MEHxYoVK8TkyZPFi+XV3bAD\ng8Eg/vWvf4nu3buLffv2qdpP1zlKHrYoedhSrjymT7e1PLz6qrS8mN7PmVN6H4Ph6mvTPPOMjAwx\nYX1uk1Vo1SppLSgviqhBA2n5EUKGLptCZp96SlqOTO0GDZLbExKE+O03uW3ECIs8TPVtMjJKn+O3\n3+S+M2datnl7CzF69NVdd1Wwf7+0GFUx5rFRVCRrJr35pnx/8WKVn+tGQN07bKm16CcXFxfuv/9+\nbrrpJjw9PUlPT7+iE3FF/Pvf/2bgwIH4+/sjhGD37t02tZ/Wr1/P9u3by6391KVLF3Pb33//vdza\nTxkZGWXWflIoFNVAyRoveXnw+efydXy8tG7o9TIhWFqaXPsviaPj1TuM3nef9L05dkxG14DF+rBz\np6xHk5QkrQU7dlj2a94cTFbns2ctfioLF8L//ictTa+8In1Gjh+Xn33yibQ+rVsnfWBAZrvVaGSi\nM2OCUdq0KR2xtWSJPOb48RZn6PXr4Y03ru66q4KmTS0WrurAwUFGXpmSBlpHuykUVYhdSo2zszPZ\n2dmEhYWxbds2NBoNFy9evKoTLlu2DF9fXxISEhDGm2B11H4ybS/rGAqFooo5flxOXB9/DFu2yKid\nV1+VzqoXL8LmzZYsqZ98IpehqhpTltZGjWTBQJAZVouLZdSIKUw2PFyGwxYXy9Dn1atlBE5hoVxi\nMtXZ8faWipKp8F50tIweMilvaWlyeS04GIz1egDCp0yRS0wdOsilL9MS0rffSjnMnm055uTJUpGq\nL9leFYpqxq5HoqFDhzJ27Fjefvtt+vbtyzfffEPsVdaQWLZsGRqNhnXr1rF3714mTpxoYz25Xmo/\n3egF6aoaJQ9blDyMCEFchw4cmDyZpiArJBu5FB7Obicn23Deakb70084nTpF2DPPkB8Swj7j96Tr\n1YuwzZvZP306+SZfF4CwMEs4NEjF6ORJ+Qd43norkcuWAbbfucOvv9Kua1cO3nsvITNnkrNjB3/9\n+iva3FyapqfzZ2Ym+thYjhr30b/7Lhe9vCjWaGjl74/u5EmKXF3J3Lq1hiRTe6jfii1KHtWMPWtU\n2dnZ5tIFeXl5YteuXeLgwYPXvPb10EMPmX1qNm3aJISQPjXff/+9OHXqlOjVq5fIz88XFy5cED16\n9BD5+fni//7v/8w+Nd9++62YPn26EEKIPn36iIMHD4ri4mIxfPhwsW3bNrFz504xdOhQUVxcLI4c\nOSJ69+5tV7/UuqctSh621Hl55ORIv5Pt26/c9vx5i1/I448LsXSpjB4qLKzdDK9FRVfOnmsPJt+Y\nsq7l8cdl+YEvv5SRTCZAiO7dhXjppfKPe/fd0r+njlPnfyuVRMnDlhqPfjp27BhCCEaMGMH7779v\nXi7y8PBg+PDhrFixokoUq4kTJ/LMM89gMBiIiIggOTkZjUbDQw89xKBBgxBCMG7cOHQ6HQMHDmTi\nxIkMGjQInU7Ha6+9BsBzzz3H+PHjKS4uJiEhwRzlFBcXR//+/RFCMG3atCrpr0JRp0lIkH4n06db\nigma8qVYs3QpPPAAZ7t1o8H//id9ZKKjoW/fGu9yKa4mmqcsvL1L+wqZMOXxMvoDmshp3x6PH3+U\nWXHL4513LEtQCoWiyrhi8r2NGzdy8uRJHnzwQctOjo50Na1ZXwPWyfsWLVpU6vN+/frRr18/m20u\nLi68+eabpdq2bt2aJUuWlNo+atQoc3i3QqGwg5gYmQTP5ADbsaMMzzb5hhgM8MwzMuEdkB8cLDMB\nKwD44733iIuPl6Ha5aESzikU1UKFSs3LL78MwHvvvceIESNqpEMKhaKW+flnePtt6Wfi5gaDBkmr\nx//9n3SoHTrUEl30558cP3KEoFrt8HXIxo3VG02kUCjKpEKlZsmSJfTv35+CggJmz55d6nNlAVEo\n6ggGgwyl3rxZOsk2aGBZvlmwwFLCoEkTqdAMGSKTxzk6Unz+fO32/XrkpptquwcKRb2kwkVnUd5a\nskKhqDsMGmRRYjp2lNus/VECA2X4s6srdOsGDz4oFR1VgFChUFxnVHhXGmBMBT5q1CjOnDlDRkYG\nWq2W+Ph4vLy8aqSDCoWiGrl0CT791PLe0RG2bSvdTqORqfvXrpXVo+trsTyFQnFdY9ed6euvv+ae\ne+7h22+/ZdmyZfTs2ZPVpjV1hUJx43LypKwMnZkpk+QZDOXX9Bk0SFZbLisSSqFQKK4D7LIfz507\nl2XLlhEQEADAkSNHSEtL49Zbb630CQsLC5k8eTJHjhzBYDCQlpZGs2bNVEFLhaImKSiAv/+GX34B\nFxeZzt8eTCUEFAqF4jrELqVGr9fTsGFD8/vGjRvj5OR0VSf8+uuv8fHx4ZVXXuHChQv07t2b6Oho\nxo0bR3x8PM8++yyrVq2ibdu2LFq0iC+//JLLly8zcOBAEhIS+PTTT4mKimLUqFF8//33zJ07lylT\npjB9+nRmz55NcHAwI0aMICsri+LiYrZs2cLSpUs5duwYjz/+OJ+batEoFDcyQlxdBefvv5eVqJct\ng3Hj5LY5c6q2bwqFQlFL2LX8FBUVxfDhw/n+++/58ccfGTNmDP7+/ixfvpzlpvL1dtKjRw9Gjx4N\nQFFREVqtVhW0VCjKorgYVq6Ur9evl4UQQeaESUyUFhaTkl5QIJWctDRZMNKUfv/IEVlr6fRp+f7u\nu2VdJJNC88wzZReWVCgUihsQuyw1Qgj8/f35zVh51tXVFVdXVzZu3AhAnz597D6hq7E6a25uLqNH\nj2bs2LH825jEC6quoOWhQ4dwcXHB29u71DF87Mgfoepz2KLkYcu1ysMhL4+mL7zAP+npoNUS16ED\nxU5O/DlnDrnt2oFGQ0h6Og1LPDTs++cfPLZsoeG6dRTrdDj068fJvn250KkTga1bo583D4D8NWvY\n+fXX+H/8MU2M1Z/3vv8+IeHhuO7bx5kePdg/fbosuFgF360aH7YoeVhQsrBFyaN6sUupMSXhs+by\n5cu4uLhc1UmPHTvGqFGjGDx4MHfffTevvvqq+bPrpaBlXFzcVV1bXSQjI0PJw4prkkdYGLz2mqwY\nvWoVDVatgnvvBcDB2ZnmI0bAgAFw5oy00hw8KJPdNWwIU6cSfuutsqpzZiYObdpATg7+EybgP368\nLGvwzjtw+TLOH3xA3Pnz4OEhl5pcXGhuSttfXIyvRoNvlUhDjY+SKHlYULKwRcnDlupQ8OxSan78\n8UfmzJnDxYsXEUJQXFzMpUuX+P333yt9wtOnT5Oamsq0adPo1KkTAC1atGDz5s106NCBNWvW0KlT\nJ1q1asWsWbMoKCggPz+fffv2ERkZSbt27Vi9ejWtWrVi9erVxMfHo9fr0el0HDp0iODgYNauXcuo\nUaPQarXMnDmTYcOGmetYWVtuFIoaIT0dvvgCFi6UGXonToS//oJHH5Vh0sOHwxtvwOjRchmpZUtp\nQcnMlMnufvrJcqzt26U/jXGpFQ8PePddiIyEiAi4+Wa5vWlTaNZMvt6xA2JjZdp+f/+r88VRKBSK\nGwC7lJpXX32V9PR0FixYQFpaGmvXrr1q35R58+Zx4cIF5s6dy5w5c9BoNEyZMoX09HRV0FJxY1NU\nBIWFpSOEPvgAQkNlhNETT8Arr0gF5777wM8PNm2ytNXp4M8/yz9H48Zlb3/ySdv3ERHSD2fGDFlk\nEiz/FQqFoo6iEXakDb7vvvtYtmwZc+fOJTY2li5dupi31UWUidCWOiMPIaTicY2ZcLeuW0d7owO6\nmexs+M9/YNQoSEmRFpeOHeHll2WV65wcyMuTlho7l0BvFOrM+KgilDwsKFnYouRhS3XIw67oJxcX\nF/755x8iIiLYtGkTBQUF5OTkVGlHFIoqIzdXKjAGg+32V14BJyfYsOHqj33zzbS94w5pGdFo5F/D\nhrJ44ahRMGkSrFghs/SOGSMVmttuA3d3CAiocwqNQqFQXE/YpdSMHTuWF154gdtuu43ff/+dm266\niaSkpOrum0JROS5ckJYYDw+Zxl+ng2eflQpOYaFUODp3ln4nL78MCQkyQ+6VWLUKfv1VZt/dsIFj\nDz8sSwW0bAm33irDpQ8elOHUDz8Mx4/Lc/7zD/z2m6x6rfxYFAqFotqxS6nZs2cPZ8+eRafT8cYb\nbxAQEEDTpk2ru28Khf3MnAleXnJpqW1b6VPSpw88/7xUcEzJItevhx9+gMmT5ev77oN9+2S0UUIC\nxMdLBWTZMqkgbdkiizjedpu0tHTowPFHHpFKy86dUtkRQjr0vvOOjGoyERoKt9xSG9JQKBSKeold\nSs1nn33Gp8aid8HBwSxfvpz//Oc/1doxhaJMdu6USocpER3I5aYXXpBp/z//XOZd+esv+PJLqZiM\nGwetWlmiiJKTpdVl1y75+vbbZZv16+W+3t5w//1SQerQAe65Rx4nJwfWrKmd61YoFArFFbHLY9Jg\nMNiURbjaEgm1hRCC6dOns3fvXnQ6HS+++CJNmjSp7W4p7OHSJRnefPw4BAVJ5aRlS7l81KkThITA\nv/8NLVpAeLj8s8bBQeaFKUnDhvIvJkYep2NHePBBeOklecyiIhg2DG66Cf71L7mPVYJHhUKhUFx/\n2KXUJCUlkZKSQo8ePQD473//yx133FGtHatKVq1aRUFBAYsXL2bbtm28/PLLzJ07t7a7pShJUZFU\nQu66S1pzUM2gAAAgAElEQVRkDh8uu93OnbB5s1zeMbFt29Wf96abpAVGo5EKDUhFauHCqz+mQqFQ\nKGocu5SaCRMmsGLFCjZv3oyjoyNDhgy5oRyFMzIySExMBKBNmzbs3Lmzlnt0g1FUVP3nmDXLUo8I\nZHRRTIy0zri6wrx5sHgxfPut/LxDB+kH8+67UhG51urrxvGhUCgUihsXuxN2JCcnk5ycXJ19qTZy\nc3NtyiM4OjpSXFyMg0MFLkXLl5vT1xMSAqtXy+WKrl3hvfdg92748UdYtMhiYaijxHXsCB99BA89\nJDdkZUmH2PKuOT9f/i+ZhK4ijh6VjrYXL8ploIAA28+7dpVh0tY0aCAdfhUKhUKhoBJKzY2Mdb0o\n4MoKDcC99yK0Ws4lJeH611+4hoVhaNAAp7NnoX17m6ZHR47k2COP1C3FprCQgE8+Ifitt+T7IUM4\nsHs3BUFBRI4ezd+vvkr2bbfhvWoVxS4uXEhIMIctB737Lo3mz2f7t99iCAys8DSa/Hwixo/Ha8MG\ndnz1FQWNG8tlp/KWnq4TVFE6W5Q8bFHysKBkYYuSR/VSL5Sa9u3b88svv5CcnExmZiZR1mG35dGh\nA5pOnWhgmtQXLcJpyBDo3Ruee04ud5w6Bf/8Q6NOnWjk7S3DiEeMqN6LqU6EkIrJmjUy/4qRHV9/\nTau2bWlq8jcBIr76Cjw9Ze4XkKHRRUUweLB07m3ThtbPPSdltHGjrDlUkvx8MBVF7d2bVr163RD5\nXFRWUFuUPGxR8rCgZGGLkocttVbQ8kanW7durFu3jgEDBgBlVx0vxcaNUFxsef/QQ3LCLi6WTqQg\nJ2p/f5n3xOhEzQMPyJBgEydOQGCgLGo4ZUoVXVEVcPmydJDt3x+eekqGQMfEwJtvysKKDz8sM+K2\nbk1BRobMw3L8uCwH4O0tiyWuXQvNm8PWrTJjLkiFqLhYhkzfcQfs3y+XkrZvh6++ksdt3FgmtOvW\nTe6TmSnrIikUCoVCcQ3UC6VGo9Hw3HPPVXYni/JS0TaQuU6++UYWIpw0SWaxvfNOGaVj4tVXZWiw\nu7uc0J96SlZPri327JFJ56ZNk7lZvvxSbh89Wv5/4onSzrcBARZfl5wcmaU3J0fWM9qxQ/5fvx4W\nLJDZfH/7TSo4b74pFcLt2+V5fvkFDhyQfjK33KIUGoVCoVBUCfVCqakRevaUyzdxcdCokWW7l5e0\nRPznP7I+0MCBEBYmFZ5ly+SyTXkUF0tF6r//lUrCbbdVTV9Xr5ZKzYQJ0gIVESEdo3v3loUYnZzs\nWwZydJTXBBAbK/+Hh0sFxoSDA4wdC126yHP16iWVu44dYcgQablRKBQKhaIKUEpNVaLRyCWmvn3l\n8o519M+4cdIisWSJTPC2bZuc0O+5R35uqhy9bZv0MwkJkZYPkLWK1q+HTZtkKLMJg0EqIaalH3s4\nfRoGDZLRRgsXSiVkyxaLVUanu/rrr4i4OBkxBlJOH38MJn8lhUKhUCiqAKXUVDX33Qcfflg6nNnV\nVVpz7r5b/rVqBd27yzwrjz8ufVrCw+Vy0NdfW/YbPFgqALffLn1gLl2S7xs0kErJ11/DoUMQHFxx\nv6ZOlX4uHh6yHw8/LI8HUuGoSf74QypSvXrV7HkVCoVCUadRSk1Vo9FASkrFnxsdlnnqKcvyTbNm\nljYDB8qcLNnZMsJo3jxptZk+XSpH1iQmSife/fulf8vWrdJ596ab5LlCQ6X/ijXbtl17srprITJS\n/ikUCoVCUYXUeGKV3Nxc0tLSeOihhxgwYADbjOntMzMzeeCBBxg0aBCzZ882t589ezb9+vVj4MCB\nbN++HYBz586RmprK4MGDGTduHPnGZG8///wzffv2ZcCAASxduhSQdZ+effZZBgwYwJAhQzh06FAN\nX3EFeHtLy8uhQ7LKNEC/ftISk5Mj/XE0Gssy1MSJ0qpz7hw89pilwOI330jlpVUrqVB16iSVmtWr\npV9OSopc/hLCdqlJoVAoFIq6hKhh3nrrLbFw4UIhhBD79u0T9957rxBCiN69e4tDhw4JIYQYPny4\n2LNnj9i1a5dISUkRQghx9OhRcf/99wshhHjhhRfEl19+KYQQYt68eeLDDz8UBoNBdOvWTeTk5IiC\nggJx//33izNnzoj//ve/YtKkSUIIITIzM8XIkSOv2MctW7ZU6TXXCP/8I8SWLUKcPy//pAojhLu7\nfH/gwFUf+oaURzWi5GGLkoctSh4WlCxsUfKwpTrkUePLTw8//DA6ozNqYWEhzs7O5ObmYjAYCDb6\nhdxyyy2sW7cOnU5HQkICAEFBQRQXF3P27Fm2bt3KyJEjAejSpQtvvPEGnTp1omnTpuiNlZTj4+PZ\ntGkTmZmZ9aPuU2iobYFHk1pTVCSdkD09a6tnCoVCoVDUCNWq1Hz++ecsLFHp+OWXXyY2NpZTp07x\n1FNPMWXKFPLy8szKCIC7uzuHDh3CxcUFb6tEdu7u7uTm5pKXl2eu5eTu7k5OTo7NNgA3N7cyt9tV\n96muoNFYoqoUCoVCoajjVOuM17dvX/r27Vtq+969exk/fjwTJ04kPj6e3NxccnNzzZ/n5eXh5eWF\nk5OTTc2m3NxcPD09zcpNgwYNzEqLXq8v8xhXVfcJVZ+jJEoetih52KLkYYuShwUlC1uUPKqXGn+M\n/+uvvxgzZgxvvPEGzZs3B2TBSZ1Ox6FDhwgODmbt2rWMGjUKrVbLzJkzGTZsGMeOHUMIgbe3N+3b\nt2fNmjX06dOHNWvWEB8fT3h4OAcOHODChQu4uLiwZcsWUlNTASpd90nV5lAoFAqF4sZDI4QQNXnC\nxx57jL1799K4cWOEEHh6ejJnzhy2bdvGSy+9RHFxMQkJCYwZMwaQ0U9r1qxBCMHTTz9N+/btOXPm\nDBMnTuTixYv4+Pjw2muv4eLiwq+//srs2bMRQtC3b18GDhyIEILp06ezd+9eQC5/hYWF1eQlKxQK\nhUKhqAFqXKlRKBQKhUKhqA7qgbesQqFQKBSK+oBSahQKhUKhUNQJlFKjUCgUCoWiTqCUGoVCoVAo\nFHUClZnNiHWUlE6n48UXX6RJkya13a0a47777jMnQAwODiYtLY1Jkybh4OBAZGQkzz77LACfffYZ\nS5YswcnJibS0NLp27VqLva56tm3bxsyZM1m0aBEHDx60Wwb5+flMmDCBM2fOoNfrmTFjBj6mYqU3\nKNay2LNnD48++iihxqzVAwcOpEePHvVGFoWFhUyePJkjR45gMBhIS0ujWbNm9XJ8lCWLoKCgej0+\niouLmTp1Kv/88w8ODg4899xz6HS6ejk+ypKFwWCoufFR5YUXblCupkZUXSE/P99cg8tEWlqa2Lx5\nsxBCiGnTpomVK1eKU6dOiZ49ewqDwSBycnJEz549RUFBQW10uVp4//33Rc+ePUX//v2FEJWTwYIF\nC8Tbb78thBDiu+++E+np6bV2HVVBSVl89tlnYsGCBTZt6osshBDiiy++EC+99JIQQojz58+Lrl27\n1tvxYS2L7Oxs0bVrV7F06dJ6PT5WrlwpJk+eLIQQYuPGjWLkyJH1dnyUJYuavH+o5ScjGRkZ9aNG\nVBlkZWVx8eJFUlNTGTp0KNu2bWP37t3Ex8cDsr7W+vXr2b59O3FxcTg6OqLX6wkNDTXn/6kLNG3a\nlDlz5pjf79q1yy4ZZGVlkZGRQZcuXcxtN2zYUCvXUFWUJYtff/2VwYMHM3XqVPLy8uqNLAB69OjB\n6NGjASgqKkKr1dr9G6lrMrGWRXFxMY6OjuzatYtffvml3o6PpKQkXnjhBQCOHj2Kl5dXvR0f1rI4\ncuQIXl5eNTo+lFJjJDc3t8waUfUBFxcXUlNT+eCDD5g+fTrjx49HWKUvKqvmFljqa9UVunXrhlar\nNb+3Vwam7ablO1PbG5mSsmjTpg1PPfUUH3/8MU2aNGH27NmlfjN1VRYArq6u5usbPXo0Y8eOrbfj\no6QsxowZQ+vWrZk4cWK9HR8ADg4OTJo0ifT0dHr27FlvxwdYZPHiiy/Sq1cv2rRpU2PjQyk1Rq62\nRlRdIDQ0lHvuucf82tvbmzNnzpg/z8vLw9PTs8z6Wp51uPq39fd/JRlYj5+SN666QFJSEjExMebX\nWVlZeHh41CtZHDt2jJSUFO69917uvvvuej0+SspCjQ/JjBkz+PHHH5k6dSr5+fnm7fVtfICtLBIS\nEmpsfNSPWdsO2rdvz+rVqwHsrhFVV/jiiy+YMWMGACdOnCA3N5eEhAQ2bdoEwJo1a4iLi6NVq1Zk\nZGRQUFBATk4O+/btIzIysja7Xq3ExMSwefNm4MoyaNeunXn8rF692mx2riukpqayY8cOADZs2EDL\nli3rlSxOnz5NamoqEyZM4N577wWgRYsW9XJ8lCWL+j4+vvrqK9577z0AnJ2dcXBwIDY21u57aF2S\nSUlZaDQaHn/8cbZv3w5U//hQZRKMiHpcI8pgMPD0009z9OhRHBwcmDBhAt7e3kydOhWDwUBERATp\n6eloNBqWLl3KkiVLEEIwcuRIkpKSarv7VcqRI0d48sknWbx4Mfv37+eZZ56xSwaXL19m4sSJnDp1\nCp1Ox2uvvYavr29tX841YS2L3bt388ILL+Dk5ETDhg15/vnncXd3rzeyePHFF/nhhx8IDw9HCIFG\no2HKlCmkp6fXu/FRlizGjh3LK6+8Um/Hx6VLl3j66ac5ffo0hYWFPProo4SHh9t9D61LMikpixEj\nRhAUFMTzzz9fI+NDKTUKhUKhUCjqBGr5SaFQKBQKRZ1AKTUKhUKhUCjqBEqpUSgUCoVCUSdQSo1C\noVAoFIo6gVJqFAqFQqFQ1AmUUqNQKBQKhaJOoJQahUKhUCgUdQKl1CgUCoVCoagTKKVGoVAoFApF\nnUApNQqFQqFQKOoESqlRKBQKhUJRJ1BKjUKhUCgUijqBUmoUCoVCoVDUCZRSo1AoFAqFok7gWNsd\nqAmEEEyfPp29e/ei0+l48cUXadKkSW13S6FQKBQKRRVSLyw1q1atoqCggMWLF/Pkk0/y8ssv13aX\nFAqFQqFQVDH1QqnJyMggMTERgDZt2rBz585a7pFCoVAoFIqqpl4oNbm5uXh4eJjfOzo6UlxcXIs9\nUigUCoVCUdXUC58avV5PXl6e+X1xcTEODuXrcxkZGTXRLYVCoVAo6jVxcXFVerx6odS0b9+eX375\nheTkZDIzM4mKirriPvGD4mnr1pbM7Ey8s73Jds/G97IvZ1zOgAFwAy6Ce547ee55UIhZmhVtq2x7\n87bqam+8jqruY4AmgPDwcDY02MD8e+cTHBzM4cOHOX78OFOXTIUcIBbGNBvDG5+8YTlWAKS0T2Hh\n/oUkOSWx6q9VcMFy3OgG0fj4+LBh74bKy6UzRP0ZxR/8AXkQUBhAp06d8PT0ZPPmzWSdzZLtvfPA\nHaIdosnKySLcOZx9ufvwLvAm2yFbHjgWok9Gc/z4cbJ12fL4zYD94Fvki6OjIycMJ6AxcBl8z/py\nRntGHr9hHuSBx2UPclxzLOe8ZOy3N5AHNIJO2k7o9XpWnVgFLpDklUSLFi3Ys2cPq7auqnh8+QHZ\nsj9ntGfkNl/o07IPJ06cYMPRDUS7RpN1OUvK2BM6B3Xm0qVLZB7NvOHGtMsFFy57Xr76Prohf+um\n79MRcEL+3r0h4HwAJ8QJue2S8Rj5V3FNjfJIappk/v5qXI5N5ThatX3Vldu7QLhLOK1atSIjI4PD\nFw/bf874PKJPyN+QeWxTYjwat3lckr+Fso5b0fdaLePLGx7q+BDHjh0r8zdWqfFl/bu2p48xeTzW\n4THmzJlDfaA6DAj1YvmpW7du6HQ6BgwYwIwZM3j66aevvJMXdO3aFfwhMDAQkMtWOAGuEO4QXq19\nrlEKq+ewUVFRoIHExES6d+9OYmKilKULoIcU3xRiYmIsO7hCtCGaZs2agQa6dOlCn7Z9Sqne9iil\nZeIJjRo1Ah10DulMeHg4YWFhNG/enOjoaHACHx8fcAe8IDg4GAzg6ekJheDu7k64dzgUAR7QsWNH\nGjRoII/tAZ21ncEJvLy8CAoKkttdAA00bNgQAI1GQ1vvtlAEbm5ulr45WfXT2fIyMDBQjkMXSIlJ\noWXLlrRp04bY2NgrX28z6BzRGS8vL3l8P9mf0NBQ3N3doRBcXFzkpG3E3d29slKtOzSUVt0r4gON\nXRvjXexdocW3XDQQFBREUvukyu9bFbgZr9P0u3eqoK0OAgIC8Pb2lhGjRZU4j944vio6vhGtVluJ\nA1czzuDr60vjxo0rt58d16mofuqFUqPRaHjuuedYvHgxixcvJiwszK79GjRowN5Fe+XkhpyEUm5N\nAWdo3bp1dXa55giBtiFtLe+dKP9G7Vb25vLw8vJi72t7iYiIAKQykpiYCJcBV4iMjOTWW2+13Fw1\nEB0dzdNPP83eeXuJj4+nZ8+e8rzGNi4uLman76shMDCQlLgUPvjgAz788ENGjhxpOU9jiI+Plw0D\n4IEHHiCpdRKJiYl0bt4ZDw8PEhISCPeVCm1kZCQBAQHmvvv7+5M+Mp3w8HBcXV3ldldI6ZwilSak\nYty0aVOS2idZFB+AhladdEEqVhqpgLRr1475j86nWbNmtGrVisTERPz8/MC1ggt1lPsHBATIPhqQ\nypIrxMbGEhQURLAmmNjYWFKSUkALAZcCaNmypTy2wjJJOQHORoUXwBU8PDxwdnaWk3FlJzPjpGmX\nYlpN3HXXXXRu3hlHR0fCne17QOvRowdtw9peuaHp9+yJHEt65MNAIWalvyTOzkZNvjJKU3XhIvtt\n/r6vhOmeWdY4uNLYqBdrJTVLvVBqrhYHBweioqKkxm6QP7yEhARWvLWCu+66q9osHDWGE+AgI8Ks\nt1XFU5OTkxP+/v5ERUXZHC8iIoIVr66AAOjXrx8RERF0bt7ZRpHSarVERUXRo0cPhg4dyndzvpOK\nlxO4urpKJbOIyk8mOVIRGThwIC1atDBv7t69O0OHDmXvor2MGDECdNKKNGzYMAYMGECbNm3o2LEj\nwcHBNG/enPBwOQnEx8dz9913y4PowNvbm379+jFgwADLdqOlKi0tzTxeNBoNXbt2JTQ01NI3N+jc\nvLN87S+P16dRH0aMGMFdd91FcHAwQUFBJCYmXtlS5ShN/Cb8/f3pHNEZfGDMzWO4+eabcXBwQK/X\nW27eGmmladiwoX3WirqIv5WlxrT0BKXHmZtUrp2cnK5OqTFOmsnJydfW32vAwcEBd3d3NBqNtESW\nhSNmS42Pjw8ODg4WZR3kdZe8BzqCh8HD/HvW6/WggbCwMKL9pWKv0+lK7efo6Ein8E4EuATY9LE2\nsVvpdDJek66Mz8raZk0lHxQVV0YpNeVx2fIyISGBto3aEhwcTEhICN27d2fYsGGlJuMbDjfoSlcS\nEhIAy03ErISUfGrywD6c5E3bbPWwQqvVkpSUZLbgaLVaOnbsaLsUU6L9XXfdJRUAd2ntCQkJoXNM\n58pNJi7Q+UxnevbsSffu3QF5LJOCYFKkIiIiwE0qIlqtltTUVFJTU0lOTmbAgAH069dP3uyMN+r4\n+HjZjyDMCkdqair9+vWT8tPIZaykpCT6dOljnjTj4+PN8tFoNHQu6MzDDz9s6a8fpKWlmZWv7t27\nk5qaau5vfHy8tOaUhcb4NOwp24WFhcn9HCA5OZkWLVrg4+NDdHQ0ycnJZsuMTqcjPj6+zCdpG+qw\nmd3FxcVsUUAH+EC0S7RtI70c3zqdccYyULknbjdpMQwLC6v+B6MKLK96vR69Xm+rXFvtB4AXNp/b\nLE+6ga/G1/b4GjmOTPcQLy8vcIFWrVrRsWNHABo3bmxR4E27aTQEBgbabx2pAcwW4SspHjr5sIWX\n0SJlzRV+SoqqRxm/ymH+6PnS/wIYPny4+YdrmhC1Wi0BAQHs2bOn1vp4LTg5OYGP/OGGhISAG7ji\nSkOHhhS4FkCx0XHN2RI1RgPghB0Hd5c3wvKW+UwKhAk/Pz/ZnwoYPnw4oStDufPOO2nRogV33303\nGz7aIBWHCkaxtVnY3d39ilaoiIgIVjy/QsrECtP3DjBixAiSDyabl9VwBzywWRaLiIjgjvg70Gg0\nJCUlodVq6dmzJ/v37wewyKZQ3tDd3d0t59TD/Hvnl+pDmVg5GppxMvoB5ViUmoiICCb/PdncZz8/\nP/z8/OjevTtbtmyx2T0yMhJ+KONcpidzK0fZOoUndInowullpznseFhuc4WOMR3J2pCFi5uLuale\nrycgIAAhBK4GVw4XHrb/bqqXiq7JSlmtebNMllfTd1doOT9IBaSkEuvk5ARuEHwpmMNuh4mNjeX4\n8eOy69ZWPBfpK3bq1Cmb/V1dXTEYDJRk4MCBLPxhoXm8V4gbuGncyBE5lb3iqsXoP4ehAsuRM7hr\n3Ons2JmA1gHsW7+vdBuTw3lJGgIHqqy3CpRSUy4l/TbK8uPw8vK6vhzc7MUJAnwCGHrzUFq3bi0n\nWA9o5C2VuNOnT5vNzvtyrX6g7tC2UVsZGVMRXnIytdehNz4+Hj8/Pw5fPFyulaBZs2Y0a9bM1lKx\nEHwdfTnDmXKPrdVqpdKRbVdX0Gq1NgpMWbRo0cJsQYmIiOC7Wd+h0WgsSo7xOBMmTLD0ATmGvv32\nW7y8vMxWoc7NO5sV47CwMPOS4JWWmZKSkvhu1nekp6ez4e8NpT5v2rQpqUmpZoUKbB2s+/XrZ35t\ncoR3cXGxUbbKpAgIgfDD4aUms7qAv7+/eSwSCRyU33F6ZDq//vorHJTtvLy8yM3NRaPREBwcTLQ+\nmlV7VkE+dt9VtVpt9TpmFwI64/hrABwG9wJ38jzzCAsLw8vLy2Jtsno4cHZ2Bo1RgTEqQKb7359/\n/mk5vgtER0RTUFDAmVzLb9DPz4/Lly9zghNmy4ufnx9JSUmk9EjB29sbjUYjI4us8PLyku3PAh4Q\n5B3EiaP2PEVVIVbPVhEREbQNa0umk7zfubmVULJMVjAXcNW6EhAQUPr+5Q/8XcH51PJTlXPdrJ10\n6dKFIUOGMGTIEGbNmgVAZmYmDzzwAIMGDWL27NnmtrNnz6Zfv34MHDiQ7du3A3Du3DlSU1MZPHgw\n48aNIz8/H4Cff/6Zvn37MmDAAJYuXWp3f6yXJsojMTHRHNVyQ2H0TYmNjTU/xc8fPZ/Q0FCLWV2H\n9B2xntw0lG2qtsYNs3ndXrp37y4jfCLl01xZlPw+kpKSmD9xfukaXk7YLJtptVoIklFAJstbVWJa\nHuvRo0cpBbd79+42ClJUVBTx8fHSEkLpSS0iIoIx/cbIcHc7z2sy6ZtwdHQkuDAYLy8vGjVqVK7S\nbS1P01O7iaSkpLIjc9zAW+MNDlLhvSEV+isQGBgol+OMc9OYO8YQGBhIYGAgXbp0MTvVR0ZGEhsb\ni06nQ6PREBMTwx3RdxAdFF3B0Y2ToMZiqdPr9dUjR630bcHZGLXZBDpHdy5zecfLy8vGAdhkNXVx\ncQFPbCyukydPtnHs79mzp3REt/rdubq62igz5i5ptQwcOJAePXpIfyLT79R4PB8fH/l7cANCSvj6\n1QJardbskN85pLN07LdWQhoYIxjd5HWGhobaPPw6ODjI1AxQ/pKthhvfN/M647pQag4ePEjLli35\n6KOP+Oijjxg7diwA06dP5/XXX+eTTz5h+/btZGVlsXv3brZs2cLSpUt5/fXXef755wGYM2cOvXr1\n4uOPPyY6OprFixdTWFjIjBkz+PDDD1m0aBFLlizh7NmzV9XHspScxMTEUhPCDUFDW+VEq9WSmJhI\nz5496dq1q1RqnCEmJsa89m0yvYaGhso8KuWhw+xHUhmSk5NL3UArwtRn65umg4ODZeI14unpSXq3\ndH777TcWLlxYqT5VB9a+NGA7qWm1WkaMGMGKUStsrD4VUdKZ0cXFhSZNmhAVFUXTpk3tOobJt8PV\n1dXs2G0Tzmp6IvWWFqA+3n2IjIysPqWmFm/yiYmJZpmmd07nzjvvNC8DNmrUyDzezMoPclmzdevW\n3HbbbVcc905OTvRx7FPm91ul/nkaS8oAkyN4x44dbcZeZGRkmQ7AOp0OvI0pLYwKtun+Z7Iu4gFt\nC9paHhQcwaNYOt25u7ubowLj4+Nt/BNNJCUlSUXKS/rl6HQ6/Pz8bMadSfmvUb9FY9Sh6aFMr9dD\nY0hNTZVKlh6C3YzfsYtRth5SViV/i56enjzR+gkpr7Ichh2h0+VOpfyLFNfGdaHU7Ny5kxMnTjBk\nyBAeffRR9u/fT25uLgaDwXyTuOWWW1i3bh0ZGRlmx9agoCCKi4s5e/YsW7duNWvJXbp0YcOGDfz9\n9980bdoUvV6Pk5MTcXFxbN68ucr6HRUVZZvv4UbBTd5srJ8qrB1cfXx8wEWa4ps1a0a4PlzeID25\ncrivDvp497HPH8SKsLAwuywUJenatavZz8PNzQ00MhTftM3Z2ZnAwMDr1qrg5eWFq6ur2VehRYsW\ndO/e3e7+ljWJBgQElOmkXR4RERGk9ErhpptuMm/z8fGxPEm7Gyc6N+lDERoaSlRUVOlImKoIx/UA\n7+KKtObqJyYmhpSYFNq3b2+eUIODgwkODjZ/T8HBwcTHx0trBlIZskfmbm5uxMfHm7/f+Ph48zGr\ndIw6yfsjLpj7COVbWs0WQzf5ux9z8xiio6NLKdgmx36c5bEiIiLkvs62eZdM5wkJCWHFqyu47777\nAIv1UqvVSiXBBZtlsMjISHNAQrt27UjpkWLT/2rHE1JapHDzzTfbbA4ODpZWZI2VX5E/dOjQgTHN\nxjBp0iRSU1Ntfo8ajQZ/f/9S1lQzOqk8mdNCKKqEGldqPv/8c3r16mXz5+/vz6OPPspHH33EiBEj\nGD9+PHl5eTZOae7u7uTk5JCXl2dTx8nd3Z3c3Fyb7RW1zcmpWsezkJAQApxukEFptdYfGBhY5vJa\nVFSU/BEan658fX0JCAgwm6TbtWtHSueU8hU54xKVdci0PURERNjktLGHqKgoJk2aZF4qcXNzI6Vz\nCtohLVIAACAASURBVHfffbf5acrHx+ea8tpUNWFhYTbWqMjIyGsKoTYdy+QQ7eTkRGho6BX9gqzR\narVERkbaLKV269bNnI/HvITRiPITkpWwkF01GqucJbVESEgIkZGRODg4mCfhkt8bSNmbFLuoqCi6\nd+9+xYRtfn5+pfyZTEuoVa14u7q6gsbyIGJyDjcRHx9vnlCtx6Beryc5OZnbbrutTAXbz88PnC1+\nc6Z9rZdSTeHqWq2WsLCw8q8tBIYNG2ae+Nu1a8eYO8aY963xaKhIucRW8v5l/v59jddmvP81b96c\n5ORk8/WZ/eKsiI2NtUmoWZIrRhsqKkWNOwr37duXvn372my7fPmyeVDExcVx6tQps7JiIi8vDy8v\nL5ycnGzqOOXm5uLp6Wlu36BBA7Myo9frSx2j3JwMJbA3fXNhYaG8eVh5thcVFcklmhOYJVxUVGTz\n3xp7t11V+0Krz6w88A8cOGC+xpLXevPNN3Py5EkuXbqEh4cHSUlJLF++nMM5h7l8+bKMPNqwgcOH\nD9uey/jgfvLkyatOf52ZeQUn5DKIiopi1Z5VCCEICQmhd+/enDlzhk+2fIKvry85OTk2/bkeanuZ\n+mAa09nZ2VfVr6KiIrrGdOV///sfAAUFBTbyt/eYppu4qX1AQAB+fn5mR3EhBAAGg4GCggLy8/Pl\nNifjZy5YnE65tjFtMBjAsfK/gYraXbE/RiPDzp07adq0qXlSLim/wkI5m/3555/k5eVRVFREYWGh\nuZ111E+pczrJbTt37jQ/XB04cEC2KwSBsOs67ZKLMXfKF098wcqVK1l1fpVl8syR13n06FEKCwsp\nKCiwsbIUFhbi5+dX6ndjIioqiscSH8PDw4OMjAyzTNzd3SEfLly4IO/RORZ5liVLk6zy8/Nxd3cn\nPz+fgIAAEhMTeeOvN8jLy+PkyZMVX2dl5WJHe+vvx83NDS7IbcHBwXzx+BcYDAaivo/ij7w/8PLy\nws/Pz3xtBw4cMN9nhRDk5+eTl5fHY4mPMffzuaXOmZ2dbZaf9WfXwz3qRuW6iH6aPXs23t7ePPLI\nI2RlZREUFIRer0en03Ho0CGCg4NZu3Yto0aNQqvVMnPmTIYNG8axY8cQQuDt7U379u1Zs2YNffr0\nYc2aNcTHxxMeHs6BAwe4cOECLi4ubN68mdTUVLv6ZG+RLQ8PD44ePcr+NfvN27RaLXha1YoBG7+J\nkti7rdLtvSDgQgD5LvlcLrwsFa0C+VHTpk2Ji4sjIyOj1LXGxcWVctI7f/487c+3p3fv3mi1Wv74\n4w/effddLoqLFquNsWKAv79/lRcpq4jMzEz4SprbBw8eTFRUlCy/sENGTVn3pazrrU3i4uL46aef\nzK+vhrZt27Jnzx7OO51H76w3y78y12qyaFpb7xo1agSHITwvHM9GnpzkJLfffjvBwcGEhYXxzTff\ncOTUETn2XOQT/slcOQldy5h2c3PjbMHZSv8GKmpXVnsnJycul3D4iI2NrTBAwNfXFwrgzjvvJCoq\nikWLFgGW7y4mJgZWA4ayz6nX623Ocfr0ac6fPy8jDoGzubY+f9ciRx8fH+677z4ZXXde9jkiIsL8\nX6vVmi1Nx48fB2Mwkre3d4XjxsPDgzZt2pivoU+fPnyb/i0RMRHsOLsDT09Pevfuzd5YSy6qsoiJ\niYENMg+Y6QEpLi6Otm3bmvfds2cPq1atKrVvtd0zsR0DDz74ILcfu9183zMt0X766af4nvTljjvu\nsLHqtG3blvnn5vPI5EdwdnamadOmJCYm0rx5c+Yunmt7zobSt+j06dOwybY/19M9qjqpDuXtulBq\nRowYwYQJE1i9ejWOjo68/PLLgHQUHj9+PMXFxSQkJJhLE8TFxdG/f3+EEEybNg2AkSNHMnHiRD77\n7DN8fHx47bXXcHR05Omnn2bYsGEIIejXrx/+/v5V2veoqCh69uzJ8jXLbT8IgHCncE78XcMhidZ4\nQ/LNsognByDbOVsqNforO/KaftR//PEHIBUVf39/8w9vypQpfPfddxw+dtiSs8QFcKtEJs4qIjg4\nWIapBwSY+92vXz+mfj21VlPR20taWto17T9y5Eh+/fVXTmSfIDw8nJEjR1b6GGVN5F5eXqCTDo+m\nyc+k0ERFRcllCKuo7vDwcPbt2Vd2Po7rHQ+uyqerpI9KhX41JcaoidatW3Pw4EGZwyi37F2vhcDA\nQNglX5fMEWW6D5jvB7orL4eU7P/NN99M+iPp+Pv7s3zzcrPz+5WiR60jJK3vR9b79uvXjyVLlnDy\nRNkWmyqnxBjQarUEBweXUoA0Gg0BAQGllqlM7UFayoKDg20crG1yElUySlRhH9eFUuPp6cm8efNK\nbW/Tpg1LliwptX3UqFGMGjXKZpuvry/z588v1bZr167SmbSm0diuMddm5mGNRoNeryfbNVvm0ci7\n4i5mrG8uJXF3dy/t1V8LSdnCwsJKTaTlJdG7HqmM/0tZmBWMi9Ln5aoLfpbA5M9gioraULDBkp3Y\niqr2BdHpdGaLopmyUvKXRyXyxJjb+0B6p/Qr+nQlJiay8Kfyo+jMPhV2KnbW3/1vv/125RxQFeFE\nmUksg4ODr6iwmbMbW9e4spMWLVowZcoUioqKWLduHd7e9vlWWSsy5UU9mqL4dpzYUak+XRVaaHu4\nrc0YKK9fFaW2KGufMpO1Gh8uTYkNFVXDdaHU3OiYaxE5Am7gXOhM6zOtaRTZCLbXYsfcpCPqH3/8\nga+vL9MemUZQUJC5VEFlKGuibNy4sW2GYVdIvzOdoUOHXlu/K0lERATpI9NtrHD2JNFTVIx1yHJi\nYiILl9tO5jExMRw+fJhzhecA43ioggTb1r45gPxduWOfwuwI3he9ydbZmW3RhAc2UUnlUVJBKNMS\nqAMuVu70UEEm58piLPFgsrgkJSWxN6xsJ3zTBBwREUFS+yRWnSi91GMvpjw0V0NFinhISAhsutpe\nVQKNVOCtx0B5/bqiBbgMBby8ZK3KWlO1KKWmCjDlXMg8lQlNIeR8CAEBATK02EhthRQHBgbi7u6O\nu7s7w4cPr9JjR0ZGwm4sCp0xv0NNX6tWq61UCHNdpDqKUAYGBoJOKitDhw4lMTHRZmL09/cnOjqa\n/fv3c8LNmD22ElYKa8yWTB2WrLImHCG8MJx9lJF+viSm6KnSPrelMJcPqER/Q0JCKswjFBERwYq3\nVpA8JNlyTXbcZRMTE/nnn3+uLT2EkxwH2UIqdCaLiz1LQebcRNe4Wn5DP0g4YXeG54oiKk1LTZcu\nlaOFm6yOlcjLpbAfpdRUAWaHuwaARi6bmRJHWbepLaq16rIrRAdFk3U2q/rOYQf1/eYQGhoKf1d+\n6aAiEhMTIV2+LmtiDAwMNJvhM89lSsuOjorr5JSD9e/D3d3dthCjxljLqpLGF7twg2htNFmeWXaN\nIesSGVDaN80UwgxlWJyu4K8SEhIirSVbV5VWtuy5U3uA3qCHIoh2iP5/9u48Lqpy/wP4Z1a2YQvD\nBVIUQTEXFOqapHJdkspbmlJhLhU3w9JKU9G01HJPW25qy7Ws6JZL2vXeum1q6nVLpNTUC+ISuf1c\nCBMQmIF5fn+Mc2RkgHGc9czn/XrxesE5M4fnec6Zme+c85zv1zSpuRG192lcXBzwkw3/x5FsuBRu\n0Q87g2YAjQeMGtvfKxsKEs2XmsrKyiyOqfDwcFNqhGv4+nuXo3lE8j05CAoKMl2X7zcb77//PqZN\nm2b6pnvlTknzweyOuTUDBw7EwIEDHb5dc7bQ9u0bTg3vCraUtfAFjSZHvA6xsbEY1XtUvXMkevbs\niTFjxlgeW9fOhbGXxjLQCQgIcExyv1qfKWq1GjBcf/brxsTGxmLU3aOuK/9IfHw8EhISrn6o2lMJ\nvSUwfPhwwGD6AG3evPl1Pb1Zs2amOXcu0q9fP3wzxcZ5b+bxaKDSSUPvrQqFwlQ2oiE2TJK2VWho\naJ35bU2aNDF9TtRzMsid8y7lhKPoIOZ02unp6dKbcXR0tKkKa7XpDbT9Te3rfntzAXM2VEfr168f\nCnIKcM899zh823R9OnTogOf6PidlbnUEa0n5ajMHktHR0UDFlUy0g56z+3+Z6XS6q4UYrwgMDLSo\nT9QQmy4hVJu2OShxEHr37m3XnU9A3WSKwNVxk3Jimc8QhKLOGdxrSR+qwbA8W2Vj4cOuXbviuUHP\n2ZWltnnz5hh1xyjTrdYuYJ73ZlOiztpBXj1nXGrn2rmWWq126XtveHi41bOmISEhdRLxxcbGYlCP\nQW75bJAjt11++v777/HNN99g8eLFAIB9+/Zhzpw5UKvV6NGjh3R305IlS6RbvadOnYrOnTujpKQE\nEydORFVVFSIjIzFv3jz4+flh06ZNWLZsGdRqNYYMGYL09HQIITBz5kwUFBRAq9Vizpw5dYsgOkBM\nTEyd69GtW7cGIoFEQ6J0B8k333zT8PV+DRxzB1Gtb7XOOr1pviRx/Phxp2yfbNeyZUsolUq3XOas\nPRH16NGjeGPNGzfejtpnfDSm3CiXL9s2+1ar1Zo++Op7d1MDwRXBCA0NRXJyMrp27YqCB68vm7VZ\nfWcHk5OTUVhYiL0lexH2Rxgu4iIQ2cgt37XdBOD3WoGdjZOPVSoV0tLSsGfPnuv+ItO2bVtkZGR4\n5uUQjalGVHFgMe5odweOHTuGcnX51aroGiA8OBxnf69/UpD5zJwrWJtILNULMwA4dXW5SqViVmEH\ncsuZmjlz5kiVuM1mzJjhlOKVGzZsgF6vx8qVK/H8889LOXBcITY2FgWvFaBz585o2rQpwsPDrd5y\naUFtqn1zQ6ci1UCE+up1aGdfmpFuByW3MufEcCRzheqGmINblUpl+tZ52yDbgho1pOOm9lyD4OBg\nLJ++vN4zRI0JCwuTqmnXceXOIPO34uTkZNxzzz1S+x2ldevWpjlJ11n2QTqTo4NUu8zc5mitbUFK\n69atkZ6e7t2Tdq+lMNWw6qfph3vuuUeq5l2nNEdj70Mu+hpv7ey4VCy1GaTSLmbh4eGWtdTIbm4J\narp164aZM2dKfzujeGVycjJ2796NvLw86bFdunSxTH7kQNbmMpjf7OPj4xvMayBRA/BzQO0b87Vh\nO6pl20Oq3EtuY+0yiCP07NnzumpnqVQqxMTEWJ0QaUED0xmT2vMcNAD8TBNDe/bsWaeQoa13pigU\nivo/IK58pwgNDbXtNWkn6bJcq1q1gmy426VZs2YWZ1mlORgKJ0/4x9X6VR45N83PVEy1Y8eOmD59\nuumY9IfFHKSoqKh6g1mpjpSLaqXW93ps0qQJUG5ZAR0wndlx9v71FU6NWz///HN89JFlbot58+bh\n7rvvxu7dVxMPWCteeeLECfj7+1tMUrye4pWBgYFWl6vVahiNxkbPhFxv+uaqKtMMu9p1Q2qv0+tN\n59PNNXRqk2pFXTnlLoSw+jiLxze0TAsEagMxrMWweuu31OaIVNWtW7fGzlM7LWpKeSpPb9+NuLZv\njurr9Wzn3LlzUv2m2iyO0Vr1cQDL18W5c+dw4MABi8tNFy9a3vrUWJ0f8/yKOrWfggFUAWqo0aJF\nC4u6PY5WXl4OVFxJXtgkHodx2Or7Q22dOnVCfNN4HNYdxsCOA/F///d/OFZlupXdfJbXXCvKmsLC\nQukLlqyOc39Aq9BCr9cjLy/PNLn4V0BdqpbeN0tLS+udlyKEqHOW3NoxVFxc7NBxu3Zb/fv3R0JC\nAgwGA94KfUuq+VZRUYFmzZohvzzf6vPIdk4NaqwVr7TGWcUrQ0NDodPpLLZhS0ADXH/tjeDgYLzy\n/CtWa8cEBwdL80527NiBU6drXVC9kgW0UluJOyLuwM7inbjpppugUChQJqznTLeljklSUhI+/PDD\nRtvtqFpII0eOxKfzP0VKSopH1y3xtNpPzuSuvnbo0AFbt27F7/rfLd5hLI7RK3NE1Gq16VZaPx3O\nGU2p8CMjI/HAAw9g0aJF0m3cYWFhprOPh6xs6xohISGYOHEiNg/bLNV3sni8HmjZtiXuu+8+p45P\n7RpGaWlpOFx6uNHaUoBpftRh5WF0794dhYWF2FO5B7M7zcbhw4fxyze/wM/PD341fvhD9Ued58bF\nxcnu+F6/fj0QCPTo2gNpaWlISkoy1Uv6r2mMf93xK4ArtcoA4EjdbWg0GsTGxuKXkl+kuY/WjqGI\niAinj5+5flRtFy5cMBX+vHJLvdz2YX2cEbzZdPnp8OHD+Oabb7B582acOHHC4Y2oXbxSCIFt27Yh\nKSkJXbt2xbZt2yCEwOnTp+sUrwRgtXilXq/Hnj17kJiYiK5du2LLli0ATIUPnXVqNTY2FgWLrU82\nNJ/WtXrq2XzrasDVSYft27dHmzZtnNJOZ2nZsiW+mfLNdWcqJvlp1qxZ43dyNAMSWySaztAartwV\ncs0dtzZdbqrna1nLli2R2DLR1I7adxH5AYlhibj11ludPuek9lyj5s2bY5B6kE2Tkc1nrZs1a2a6\nzFJuuqty2LBhAEyX19yZ98otFJaX+Pv164eCdwukCuC2CA0NNd2E0cC8G0fmeboeAwYMQEpKCkZ1\nG4V27dq5pQ1y0eCZmuLiYjzzzDMoLCxEq1atoFAocPz4cSQmJmLx4sVXb1l0gFmzZjm0eOXQoUMR\nGRmJ/v37Y/v27Xj44YcBwGkThW3J2hkfH2+61l+7jo351tUrJQ2w03QnVe2zTgCAAHh0ocBrk5IR\nAQACgOiaaJzUn7Q8QxoMdGndxXRX4jmt6QOrkWy2cXFxpgrY5qtSV+apWLsrKCEhAV26dMGlS5dQ\nXFV8dUUQEBMeY/ckZHtFREQgIiLCpmAkNDQUKDbNh2vZsiUKepq+LNW+y1CtVvvM5PwmTZpgdr/Z\n6Natm/TF0Px+W3s/hoaGmoKSrXW3YT5Tcyj7EDIzM7Hz6M6rK1VAJCLRo0MP3HXXXc7uTr169+4N\npVJZfyZiskmDQc0rr7wiXcYwX4/U6/V46623MHfuXMyfP9/uf3z77bdbnIbr3LmzU4pXKhQKzJo1\ny+52Opo5W6p027bflTconSnHxPJmy9GiRQtTxd7abiSTJpG7mCe4VgKh2lCU6q/OJwkPD4dOp4NO\np0Nqaio2rLKsOxQVFWWqnXZl4ru5bIP5slWY8UqNp9pBTa2ssOHh4WjatCmOFR+DttK9OUCup1p8\naGgoRmEUWrZsafFlqfaZXo1G4zNBTUpKisUl/DoCgDbKNmjbtm2DCQeVSiUSEhLqngFUmO6Gi4mJ\nseu2fkcx72dn3cziKxoMagoKCvDGG29YLNNqtZgwYQLuv/9+pzZMrqKiooDfcLVe0k1AUHkQEGLK\nE2FOZGcR4F25pROXYNssKDsq7RI5SnR0tMXlp6ioKPwp+k/Yt28fTp4+aTrrCNM38KioKMTFxSE9\nPR3Tv58OnLm6nWuP4Z49ewLvArhQ6xLMtTcKWssKa/7iIAAoTGdCXV1E8HruQjSfpa7vzKefn5/p\ng9n8xcgHit3Ul5aiWbNmgB/QNKIpmjdvbjpGGsk8be0uI61Wa9N8J2eLj49vcCI5Na7BOTX13Vqs\nUCiY0tlO4eHhQDMgOvjqm1xISEidjKbh4eFAgCnhFIIAhALtIxspR9DyymNaXrmNlMhNat+OrVAo\n0LNnz6tzIq7chNKsWTPExcVZBBi1M9pKj78mSG8T1gY6nc50Kdcflmcsaj22Y8eO+NOf/nR1nRq4\no+oO3HXXXS5JdVDbgAEDHDqHx+K92cZsw3IWFBSE6OhoxMbGom9yX9P75nXQarUuPybIORqMTBQK\nhV3rqH5NmjS5ekr+ymWoTp06YXb32RanPps0aQL4XfnW2Qx4LuW5Bl90Go0GiAMmTpxoU5E4Imdp\n3bq1RZ4YnU6Hnj17ms5SqoHoatNxHB0djfT0dKn69zdTv0Hbtm2lL0xSsONvej3ExsZi+ZPLERIS\nAq1WazobdDNMuUk0dWvnREdHS5d9NBoNoAWaNm2K2NhYz8yae0WDZU2qTX2xyMPTSEkjObNWULRT\np04NzpmqcyYvzDPq15FjNHjisrCwEH379q2zXAiB8+fPO61RcpacnAxsuPJtsgJI1CeiZ8+e6N27\nd91JhKFAU3VTHIs6hjFjxuDtt9/Ghv0b6m40ENBpdbiIi+jRowe+ibaxSByRE8THx5tqDx21XBYe\nHl5vEjlzHaCTJ0/W3WDl1ceYP8S0Wq3pbJDiSrHLeuabNW/eHLMfmo0PPvgAMF5tiyer74xObGws\nBvUahLKyMkRGRmL3kau5vmxN7ic3rVu3BvxMZ+XMfX/99ddRUlKC/H/nW32OxWVNtamiua/cQu0L\nGgxqvv32WwCm/DD//e9/ERAQgF69ejnk0tO1tZ82bNiABQsWSBO9nnnmGSQnJ3tN7SdbmevkbNmy\nBTsX7USXLl3wxBNP1HlccnIy8C/TG/BOvWmmflpaGt749I06jwWuflCoVCqfe2MjDxYMy8y9miuX\npur5AM7MzJR+j46OBtRAm/I2iIyMBGD6wP/ss89w6tQpKf9U27ZtUVJSgjNVZ6SzOmYqlerqLeZG\nx1VhdgeVSoWsrCycPHkSRUVFV1eEA+0N7ZEP6x/ichYbG4vZD81GZGSkRbDa0JxCi+zvOtNZmttu\nu43vmzLRYFATEBCAcePG4ciRI2jZsiUUCgXefPNNJCYmmhJj2WnOnDnYvn27xUS4AwcOYPLkyejf\nv7+0rHbtpzNnzmDcuHH4/PPPpdpPgwYNwnvvvYeVK1fikUcewfz587Fu3Tr4+fkhIyMDffv2RV5e\nnlT7ad++fZg3bx6WLVtmd9tvlMWt38tRbwp6c/Bz9OhRfLSsVlbmK6efEQbTLbBX9mDtOQye/k2U\n5K9bt24oKyvDht+unlk0f5gEBARIc8gaOlZbt24NaE1zzmp/kQoPD8cff/whBTXt2rVDaWkpzp07\nV/f5V/j7+9tUENLTmc/iLFmyxLSgGoDCd28MUKlUSE9Pr7PcWtkaM4tJ4n6moFtWdbJ8XIOnXF5+\n+WUkJSVh27ZtWLNmDVavXo1t27ahXbt2mDt3rt3/9NraTwBw8OBBrF27Fo888ggWLFiAmpoar6r9\ndL1iY2NRkFOARx991Op6c/Bz1113SUn9+vXrh37d+qFp06YY8acRSGx9tc4Ji6GRJ2nRogU6dOhg\nMfHXrG3btvUmqqyjgTQG5ltzmzVr1mC9qdatW5vOFsnorsAWLVoAAgiqCgJ0ttfFkiNrd0bZXA2d\nZMept3TbWvsJMOUi6NevH6KjozFjxgysXLkSZWVlFm9Crqz95Gy2JOuz9rjU1FQUFhYiIyMDn332\nGfae3gvAt9/UyPOYLyO9//770rKuXbtiUOIgm6vGmyt+l5WVWUwINU/+/fXXX4GAq2c7r63tYxYf\nH+/Vl52siY6OxqDeg7Bz506Uo9w0CVvv7lZ5GPOnm8Z05sYc6FhMLvZv+KwOeZ8Gg5obvaXb1tpP\nADBkyBAp+OjTpw++++47JCQkWGTWdWXtJ08tKJaWloaEhASUl5dfDWS0QHV1NVBqvaBmYzy1r87i\nS/11d1/Ncz/y8vJQWVmJvn37okWLFja3KzAwEBcvXrQo1FhUVIRz586ZilwGmI75iooKKag5ffq0\nxfbz8vJQXFwM+EMqiOjtVCoVAgMDERkZibMhZ00FRO18/XuD691ntd/zoTF9GS8vL0deXp60rqam\nBog0zbPytGPC09rjTRoMalx5S/d9992HlStXomnTpti1axc6duyIzp07Y9GiRcjMzMSZM2fq1H4a\nNGiQ1dpP/v7+2LNnj/Rt8YcffkBaWtp11X7y5Nnw5rYFBQVh2YZlgJ8pEHz3oXcRGxt7XXVhfKnA\nI+Bb/fWEvpq/qMTHx9vVlg4dOiAyMhJ33XWX9No1F/87cOAANh/ZjI4dO14N8ANNl7ev/V/du3fH\nlzu/dHoRS1fJy8vDyJEj8dlnn+EX/S945JFHMFI1Ev369ZNdXSh7juPExET0e7sfNvxkmtMVEhIi\nJdczH5PmcfK0IqCe8Lp1FWcEbx5zS/ecOXMwduxY+Pv7o23btnjwwQehUqm8pvaTO7Ru3RqIA5YP\nXo4ePXpwgjDJjvmSgbVju0OHDljecbk0N6ehIprJycnAznpXeyVzkdyPZn6Etm3b8vVfi0qlwoMP\nPohjx47hmPoYoqKiLMfHR0pM+CKbbul2hmtrP/Xo0QM9evSo8zi51X5ypNjYWBS8VoCamhrZfTsj\nebjRD1prt9mal508eRLR0dE89uV3tckhlEqlVPurttjYWNzR7g6PuWmEHKvBoCYqKspV7SA72DrZ\nmEiOevbsKR3/8fHx9c4BBOSblC42Ntb2O8l8UFBQEFBsuUylUl29XKmQ77Hhq3ygFBoRyYmtd0/5\nAn6xaZhOp7N6V5i5dtifKv/EgFBmGNQQkce6ng/sRnM1sSaaT4mOjka3bt0QExODu+66y2JdcnIy\nfv31V0RFRfHypcwwqCEiWQgMDASE9XWxsbH4ZgprovkS82Wl1q1bWw2OAwICZJOMka5iUENEstCh\nQwdsPrjZ6jpzwUzyHQ1dpkxOTkazZs3qLVND3svlQU1ZWRkmTpyI8vJyGAwGTJ06FV26dMHevXsx\nd+5cqNVq9OjRQ7rjSW4FLYnIOSIiItzdBPISAwYMwOHDh93dDHIClwc1K1asQI8ePTBy5EgcP34c\nzz//PNatW4eZM2diyZIliI6OxujRo5Gfnw+j0Si7gpZEROR+nGAtTy4Pah577DEpSVZ1dTX8/PxQ\nVlYGg8Eg1eS48847sX37dmi12noLWo4ZMwaAqaDlG2+8ge7du0sFLQFIBS337t3rkQUticixIiMj\ngQp3t4KI3MmpQU19BS07duyI8+fPY/LkyZg2bRrKy8ulYAQw5RY4ceIE/P39ERYWZrHcVQUtfan2\nhi/1FfCt/vpSX5s2bYqnkp+SavzInS/00cyX+gr4Xn8dyalBTX0FLQsKCjBx4kRkZ2cjOTkZeBFg\nGwAAIABJREFUZWVlVotRajQai8Jkrixo6Uu1N3ylr4Bv9deX+moWEhICQP6vX1/at77UV8C3+uuM\n4K3xT3cHO3LkCJ577jksWrQId955JwBTIiStVosTJ05ACIFt27YhKSkJXbt2xbZt2yCEwOnTp+sU\ntARgtaClXq/Hnj17kJiYiK5du2LLli0AcF0FLYmIiMi7uHxOzWuvvQa9Xo85c+ZACIGQkBAsXboU\nM2fOxMSJE2E0GpGSkoLOnTsDAAtaEpHNmPKeyLe5PKip786jLl26YNWqVXWWs6AlEdmKZ2KJfJvL\nLz8REREROQODGiIiIpIFBjVEREQkCwxqiIiISBY8pvbThg0bsGDBAjRv3hwA8MwzzyA5OZm1n4iI\niMgmHlP76cCBA5g8eTL69+8vPfbQoUOs/UREREQ2cfnlp8cee0zKGWOu/QQABw8exNq1a/HII49g\nwYIFqKmpQV5eXr21n8z1nHr16oWdO3fi6NGjUu0njUYj1X7Ky8tj7SciIiIf4BG1nwAgJSUF/fr1\nQ3R0NGbMmIGVK1eirKwM4eHh0nNdWfuJiIiIvItH1H4CgCFDhkjBR58+ffDdd98hISHBop6TK2s/\n+VJBMV/qK+Bb/fWlvgK+1V/2Vb58rb+O5PI5NebaT2+88QbatWsnLb/vvvuwcuVKNG3aFLt27ULH\njh3RuXNnLFq0CJmZmThz5kyd2k+DBg2yWvvJ398fe/bsQWZmJgDghx9+QFpams21n3ylmBgREZGc\nKIQQwpX/8KmnnkJBQQGioqIsaj/t2LEDr7/+Ovz9/dG2bVtMnz4dKpUKS5YswdatWyGEwNSpU9Gt\nWzcUFxcjOzsbly9flmo/+fv7Y/PmzViyZIlU+ykjI8Pi7ifAdPmL9WGIiIjkx+VBDREREZEzcLYs\nERERyQKDGiIiIpIFBjVEREQkCwxqiIiISBZcfku3p5JzjagHHngAOp0OABAdHY2srCxMmTIFSqUS\ncXFxmDFjBgBg9erVWLVqFTQaDbKyspCamurGVl+/ffv2YdGiRcjJycFvv/1mcx+rqqowadIkFBcX\nQ6fTYf78+RZJHz1R7b7+73//w5NPPomYmBgAQEZGBu6++25Z9LW6uhovvPACTp06BYPBgKysLLRt\n21aW+9ZaX5s3by7bfWs0GjF9+nQcP34cSqUSs2bNglarleW+tdZXg8Eg230LAMXFxRgyZAhWrFgB\nlUrluv0qSAghxHfffSemTJkihBBi7969YsyYMW5ukWNUVVWJwYMHWyzLysoSubm5QgghXnrpJfH9\n99+L8+fPi4EDBwqDwSBKS0vFwIEDhV6vd0eT7fL3v/9dDBw4UDz00ENCiOvr44oVK8Rbb70lhBDi\nq6++ErNnz3ZbP2xxbV9Xr14tVqxYYfEYufR17dq1Yu7cuUIIIf744w+Rmpoq231bu68XL14Uqamp\nYs2aNbLdt99//7144YUXhBBC/Pjjj2LMmDGy3bfW+irn163BYBBPP/20GDBggDh27JhL9ysvP10h\n1xpR+fn5uHz5MjIzM/Hoo49i3759OHTokJTJuVevXtixYwf279+PpKQkqNVq6HQ6xMTESLl9vEGr\nVq2wdOlS6e+DBw/a1Mf8/Hzk5eWhV69e0mN37tzplj7YylpfN2/ejOHDh2P69OkoLy+XTV/vvvtu\nPPvsswCAmpoaqFQqm49fb+tv7b4ajUao1WocPHgQP/zwgyz3bb9+/fDKK68AAE6fPo3Q0FDZ7tva\nfT116hRCQ0NlvW8XLFiAjIwMREZGQgjh0v3KoOaKsrIyqzWivJ2/vz8yMzPx/vvvY+bMmZg4cSJE\nrdRE1uppAVdrZ3mL/v37Q6VSSX/b2kfzcvPlOfNjPdm1fe3SpQsmT56MTz75BLfccguWLFlS53j2\n1r4GBARIbX/22Wcxfvx42e7ba/v63HPPoXPnzsjOzpblvgUApVKJKVOmYPbs2Rg4cKBs9y1wta9z\n5szBX/7yF3Tp0kWW+3bdunWIiIhASkqKtD9rf5Y6e78yqLnC3hpRni4mJgb33Xef9HtYWBiKi4ul\n9eXl5QgJCbFaOyskJMTl7XWU2vuusT7W3vfXvtC8Qb9+/dChQwfp9/z8fAQHB8umr2fOnMGoUaMw\nePBg3HvvvbLet9f2Ve77FgDmz5+Pb7/9FtOnT0dVVZW0XG77FrDsa0pKiiz37bp167B9+3aMGDEC\nBQUFyM7ORklJibTe2fvV+z+1HaRbt27YsmULANhcI8obrF27FvPnzwcAnD17FmVlZUhJScHu3bsB\nAFu3bkVSUhI6deqEvLw86PV6lJaW4tixY4iLi3Nn029Ihw4dkJubC6DxPnbt2lXa91u2bJFOk3qL\nzMxM/PLLLwCAnTt34tZbb5VNXy9cuIDMzExMmjQJgwcPBgAkJCTIct9a66uc9+369evx3nvvAQD8\n/PygVCrRsWNHm9+bvKm/1/ZVoVBg3Lhx2L9/PwB57dtPPvkEOTk5yMnJQfv27bFw4UL07NnTZa9Z\nlkm4Qsi0RpTBYMDUqVNx+vRpKJVKTJo0CWFhYZg+fToMBgNiY2Mxe/ZsKBQKrFmzBqtWrYIQAmPG\njEG/fv3c3fzrcurUKTz//PNYuXIlfv31V7z44os29bGyshLZ2dk4f/48tFotFi9ejIiICHd3p0G1\n+3ro0CG88sor0Gg0uPnmm/Hyyy8jKChIFn2dM2cOvv76a7Rp0wZCCCgUCkybNg2zZ8+W3b611tfx\n48dj4cKFsty3FRUVmDp1Ki5cuIDq6mo8+eSTaNOmjc3vTd7U32v7Onr0aDRv3hwvv/yyLPet2ciR\nIzFr1iwoFAqXvR8zqCEiIiJZ4OUnIiIikgUGNURERCQLDGqIiIhIFhjUEBERkSwwqCEiIiJZYFBD\nREREssCghoiIiGSBQQ0RERHJAoMaIiIikgUGNURERCQLDGqIiIhIFhjUEBERkSwwqCEiIiJZYFBD\nREREsqB2dwPs8cUXX2DdunVQKBSoqqpCfn4+/vGPf2Du3LlQKpWIi4vDjBkzAACrV6/GqlWroNFo\nkJWVhdTUVPc2noiIiJxCIYQQ7m7EjXj55ZeRkJCATZs2ITMzE8nJyZgxYwZ69uyJxMREPPbYY/ji\niy9QWVmJjIwMrFu3DhqNxt3NJiIiIgfz6stPv/zyC44cOYL09HQcPHgQycnJAIBevXphx44d2L9/\nP5KSkqBWq6HT6RATE4OCggI3t5qIiIicwSsvP5m99957GDduXJ3lQUFBKCsrQ3l5OYKDg6XlgYGB\nKC0tbXS7eXl5Dm0nERER1ZWUlOTQ7XltUFNaWopff/0Vt912GwBAqbx60qm8vBwhISHQ6XQoKyur\ns9wWjh5oX5GXl8exsxPH7sZw/OzHsbMfx85+zjiB4LWXn3Jzc9G9e3fp74SEBOTm5gIAtm7diqSk\nJHTq1Al5eXnQ6/UoLS3FsWPHEBcX564mExERkRN57Zma48eP45ZbbpH+zs7OxosvvgiDwYDY2Fik\npaVBoVBgxIgRGDZsGIQQmDBhArRarRtbTURERM7itUFNZmamxd8xMTHIycmp87j09HSkp6e7qllE\nRETkJl57+YmIiIioNq89U/Pee+9h06ZNMBgMGDZsGG677TZMmTKFyfeIiIh8lFeeqdm9ezd+/vln\nrFy5Ejk5OThz5gzmzZuHCRMm4JNPPoHRaMSGDRtw4cIF5OTkYNWqVVi+fDkWL14Mg8Hg7uYTERGR\nE3jlmZpt27YhPj4eTz31FMrLyzFp0iSsWbPGIvne9u3boVQqrSbf69ixo5t7QN6ipqYGR48ebfAx\nsbGxUKlULmoRERHVxyuDmpKSEpw+fRrvvvsuTpw4gTFjxsBoNErrbzT5HsAEfDdCTmNXVFSEIUeO\nAM2bW3/AqVN4S6dDixYt6t1GdHS0zUGPnMbOHTh+9uPY2Y9j5zm8MqgJCwtDbGws1Go1WrduDT8/\nP5w9e1Zaz+R77iO3RFTBwcFAeTlQK32AhTNnMO7yZdNj6llf0LEj4uPjG/1fchs7V+P42Y9jZz+O\nnf2YfO+KpKQk/Pe//wUAnD17FhUVFejevTt2794NgMn3yMWaNzcFPdZ+6jvDQ0REDueVZ2pSU1Ox\nZ88eDB06FEIIzJw5E1FRUZg+fTqT7xEREfkorwxqAGDixIl1ljH5HhERke/yystPRERERNfy2jM1\nDzzwAHQ6HQDT3SVZWVlMvkdEROTDvDKo0ev1AICPP/5YWjZmzBhMmDABycnJmDFjBjZs2IDExETk\n5OTgiy++QGVlJTIyMpCSkgKNRuOuphMREZGTeGVQk5+fj8uXLyMzMxM1NTUYP348Dh06xOR7RERE\nPswrgxp/f39kZmYiPT0dv/76K5544gkIIaT1TL7nXnIau6KiohvexoEDB3jcuQjHz34cO/tx7DyH\nVwY1MTExaNWqlfR7WFgYDh06JK1n8j33kVsiquDgYODHH29oGx2ZfM8lOH7249jZj2NnPybfu2Lt\n2rWYP38+AFPyvbKyMqSkpDD5HhERkQ/zyjM1Q4cOxdSpUzFs2DAolUrMnz8fYWFhTL5HRETkw7wy\nqNFoNFi0aFGd5Uy+R0RE5Lu88vKTWXFxMVJTU3H8+HH89ttvGDZsGIYPH45Zs2ZJj1m9ejWGDBmC\nhx9+GJs3b3ZfY4mIiMipvDaoqa6uxowZM+Dv7w8AmDdvHiZMmIBPPvkERqMRGzZswIULF5CTk4NV\nq1Zh+fLlWLx4MQwGg5tbTkRERM7gtUHNggULkJGRgcjISAgh6uSp2bFjB/bv3281Tw0RERHJj1fO\nqVm3bh0iIiKQkpKCd955BwBgNBql9Y7IU0PkEEYjjh8/3uBDYmNjoVKpXNQgIiL58tqgRqFQYPv2\n7SgoKEB2djZKSkqk9Y7IU8NkSvaT09jdcPK9s2eRdvYscO6c9fVnzmBt27ZS3iU5jZ07cPzsx7Gz\nH8fOc7gtqGnfvj0UCgUAWGQDBgCFQoH//e9/9T73k08+kX4fOXIkZs2ahYULFyI3Nxe33XYbtm7d\niu7du6NTp054/fXXodfrUVVVdV15aphMyT5yS0TliOR7aN4cuOWWelebk/PJbexcjeNnP46d/Th2\n9nNGMOi2oCY/P9+h28vOzsaLL77IPDVEREQ+yu2Xny5duoR///vfuHjxosUZm7Fjx9r0/NqVupmn\nhoiIyHe5Pah59tlnERwcjLi4OOlyFBEREdH1cntQc+HCBaxYseK6nmM0GjF9+nQcP34cSqUSs2bN\nglarxZQpU6BUKhEXF4cZM2YAMCXfW7VqFTQaDbKyspCamuqEXhAREZG7uT2oSUhIQH5+Ptq3b2/z\nczZt2gSFQoHPPvsMu3fvxmuvvSbNmUlOTsaMGTOwYcMGJCYmIicnB1988QUqKyuRkZGBlJQUaDQa\nJ/aIvE1NTQ2OHj1qdV1jt2MTEZHncHtQU1hYiAceeAA33XQT/Pz8pOUbN26s9zn9+vVDnz59AACn\nT59GaGgoduzYYZF8b/v27VAqlVaT73Xs2NG5nSKvcvToUbT75z9Ndylda/9+oHNn5/3zWnlsioqK\nLPIqmTGPDRGRbdwe1Lz22mvYsmULdu3aBZVKhd69e+OOO+5o9HlKpRJTpkzBhg0b8Oabb2L79u3S\nOibfo+tW323XZ8449/9em8fm2tvHz5xBwaBBiI+Pd247iIhkwO1BzTvvvIOqqio8+OCDMBqNWL9+\nPQoLCzFt2rRGnzt//nwUFxdj6NChqKqqkpYz+Z57edvY3XCCvRvVSB6bAwcOMBi3kbcde56EY2c/\njp3ncHtQs2/fPnzzzTfS33369MHAgQMbfM769etx9uxZjB49Gn5+flAqlejYsSN2796N22+/ncn3\n3MgbE1E5JMGeE5mT81HDvPHY8xQcO/tx7Ownq+R7Zs2bN0dRUZGUJv7ChQto2rRpg8+56667MHXq\nVAwfPhzV1dWYPn062rRpg+nTpzP5HhERkY9ye1BTXV2N+++/H8nJyVCr1cjLy8PNN9+MkSNHArBM\nrmcWEBCAN954o85yJt8jIiLyXW4PasaNG2fx9+OPP+6mlhAREZE3c3tQc/vtt1/3c6qrq/HCCy/g\n1KlTMBgMyMrKQtu2bZl8j+Sn1i3f1vB2byKiq9we1NjjX//6F8LDw7Fw4UJcunQJ999/P9q3b8/k\neyQ/197yXRtv9yYisuCVQc3dd9+NtLQ0AKZssCqVCocOHWLyPZKnRm75JiIiE6W7G2CPgIAABAYG\noqysDM8++yzGjx9vUeGbyfeIiIh8j1eeqQGAM2fOYOzYsRg+fDjuvfdevPrqq9I6Jt9zL28bO7cn\n37sBTMxnyduOPU/CsbMfx85zeGVQc+HCBWRmZuKll15C9+7dAZgKY+bm5uK2225j8j038sZEVJ6e\nfK9eRiOCgoKs1osy86WJxN547HkKjp39OHb2k2XyPXu8++67uHTpEpYtW4alS5dCoVBg2rRpmD17\nNpPvke9oaBIxwInERORzvDKomTZtmtXaUEy+Rz6Hk4iJiCReGdQQkQ0ayXED+NblKSKSP68Oavbt\n24dFixYhJycHv/32G5PvEdXGy1NE5GO8NqhZvnw51q9fj6CgIADAvHnzmHyPrKqpqcHRo0frXd/Y\n2QyvxstTRORDvDaoadWqFZYuXYrJkycDAA4ePMjke2TV0aNH0e6f/zR9wFuzfz/QubNrG+UJeHmK\niGTGa4Oa/v3749SpU9LfTL5HDWrojMWZM65ti6fg5SkikhmvDWqupVReTY7M5Hvu5Wlj583J9Zyu\nkctT3pbcz9OOPW/CsbMfx85zyCao6dChA5PveQBPTETltcn1PEDHjh3rPVPT2FwlwLWXrzzx2PMW\nHDv7cezsx+R7DcjOzsaLL77I5HtEjtLInJvjx48jbd+++ucqnTqFb7p2RevWra2u5nwdInI0rw5q\noqKisHLlSgBATEwMk+8ROVJjc27ME6wbmKuUtm+f9edzvg4ROYFXBzVEgI/fsu1sNzrBur7n884r\nInICnwhqhBCYOXMmCgoKoNVqMWfOHNzC3B2ywVu2vVBjZ4EauXRVU1MDABZBT1FRkcXdjgyKiHyP\nTwQ1GzZsgF6vx8qVK7Fv3z7MmzcPy5Ytc3ezyJF4y7b3aWSf1XvpCjAFqjffXDeQNU8ItyMosmWd\nLesBBlRE7uITQU1eXh569uwJAOjSpQsOHDjg5hZ5H1vvdLHnuTf6IcLLSzLVWKDqjKCosXW2rL+B\ngOpG19v73NpnuRoKyJz9WnZmMHgjd+s19Fzz2DGQ9Qw+EdSUlZVZnJZWq9UwGo0WuW1sNT47G8XF\nxVbXKZVKTBg7Fv7+/na31VMdP34cad9+a3ozt+b8eXwzYECdhIc2PffwYSA8/MbWJyTU3/jz5+tf\n19j6G3mus9d7ctsaW++K/13f8eJsxcXOP97rW38jzy0okF7H9QVkTn0tN/K/b5St72HW/n+jz922\nDQVZWZz47gEUonYqXpmaP38+EhMTkZaWBgBITU3F5s2b6308EykRERE5n6Nz/PjEmZpu3brhhx9+\nQFpaGvbu3dtoNM1ESkRERN7HJ87U1L77CTBV9HbWKU4iIiJyD58IaoiIiEj+rn+mLBEREZEHYlBD\nREREssCghoiIiGSBQQ0RERHJgk/c0m129OhRPPTQQ9ixYwe0Wi327t2LuXPnQq1Wo0ePHhg7diwA\nYMmSJdiyZQvUajWmTp2Kzp07o6SkBBMnTkRVVRUiIyMxb948+Pn5YdOmTVi2bBnUajWGDBkiy4rg\nZWVlmDhxIsrLy2EwGDB16lR06dKF4+cgrE1mqbq6Gi+88AJOnToFg8GArKwstG3bFlOmTIFSqURc\nXBxmzJgBAFi9ejVWrVoFjUaDrKwspKamoqqqCpMmTUJxcTF0Oh3mz5+P8PDweo9XOSouLsaQIUOw\nYsUKqFQqjp2N3nvvPWzatAkGgwHDhg3DbbfdxrGzUXV1NbKzs3Hq1Cmo1Wq88sor7jn2hI8oLS0V\no0ePFj169BBVVVVCCCHuv/9+ceLECSGEEE888YT43//+Jw4ePChGjRolhBDi9OnTYsiQIUIIIV55\n5RXxxRdfCCGEePfdd8WHH34oDAaD6N+/vygtLRV6vV4MGTJEFBcXu75zTva3v/1NfPTRR0IIIY4d\nOyYGDx4shOD4Ocp3330npkyZIoQQYu/evWLMmDFubpF7rV27VsydO1cIIcQff/whUlNTRVZWlsjN\nzRVCCPHSSy+J77//Xpw/f14MHDhQGAwGUVpaKgYOHCj0er1YsWKFeOutt4QQQnz11Vdi9uzZQgjr\nx6scGQwG8fTTT4sBAwaIY8eOcexs9OOPP4qsrCwhhBDl5eXirbfe4thdhw0bNojnnntOCCHE9u3b\nxbhx49wyfj5z+emll17ChAkTpBIGZWVlMBgMiI6OBgDceeed2L59O/Ly8pCSkgIAaN68OYxGI37/\n/Xf89NNPUv2oXr16YefOnTh69ChatWoFnU4HjUaDpKQk5ObmuqeDTvTYY4/h4YcfBmCKxv38/Dh+\nDsTaZJbuvvtuPPvsswBMNXdUKhUOHTqE5ORkAKbjZ8eOHdi/fz+SkpKgVquh0+kQExOD/Px85OXl\noVevXtJjd+3aZfV43bFjh3s66GQLFixARkYGIiMjIYTg2Nlo27ZtiI+Px1NPPYUxY8YgNTWVY3cd\nYmJiUFNTAyEESktLoVar3TJ+srv89Pnnn+Ojjz6yWNaiRQvce++9aNeuHcSVtDzl5eXQ6XTSY4KC\ngnDixAn4+/sjLCzMYnlZWZlFTaOgoCCUlpbWqXNkXu7NrI3fvHnz0LFjR5w/fx6TJ0/GtGnTOH4O\n5MjaZHIQEBAAwDQuzz77LMaPH48FCxZI660dUwAQGBgoLTcfm7WPtWuP15MnT7qoR66zbt06RERE\nICUlBe+88w4AwGg0Sus5dvUrKSnB6dOn8e677+LEiRMYM2YMx+46mPuWlpaGixcv4p133sGePXss\n1rti/GQX1AwdOhRDhw61WDZgwAB8/vnnWLNmDS5cuIDMzEy8/fbbKCsrkx5TXl6O0NBQaDQalJeX\nS8vLysoQEhIi7ZCbbrpJ2ik6na7ONkJCQpzfSSeyNn4AUFBQgIkTJyI7OxvJyckoKyvj+DmITqez\nGDNfDmjMzpw5g7Fjx2L48OG499578eqrr0rrzMdJfcdP7fE0H2vm4+/ax8rNunXroFAosH37dhQU\nFCA7OxslJSXSeo5d/cLCwhAbGwu1Wo3WrVvDz88PZ8+eldZz7Br24YcfomfPnhg/fjzOnj2LESNG\nwGAwSOtdNX4+8c757bff4uOPP0ZOTg6aNGmCDz74ADqdDlqtFidOnIAQAtu2bUNSUhK6du2Kbdu2\nQQiB06dPQwiBsLAwdOvWDVu3bgUAbN26FcnJyWjTpg2Kiopw6dIl6PV65ObmIjEx0c29dbwjR47g\nueeew6JFi3DnnXcCAMfPgbp164YtW7YAgE21yeTO/MVj0qRJGDx4MAAgISFBujS5detWJCUloVOn\nTsjLy4Ner0dpaSmOHTuGuLg4dO3aVRrPLVu2IDk5ud7jVW4++eQT5OTkICcnB+3bt8fChQvRs2dP\njp0NkpKS8N///hcAcPbsWVRUVKB79+7YvXs3AI5dY0JDQ6WzKsHBwaiurkaHDh1cPn4+Vyahb9++\n+Prrr6HVarF//37MmTMHRqMRKSkpeO655wCY7t7ZunUrhBCYOnUqunXrhuLiYmRnZ+Py5csIDw/H\n4sWL4e/vj82bN2PJkiUQQmDo0KHIyMhwcw8d76mnnkJBQQGioqIghEBISAiWLl2Kffv2Ye7cuRy/\nGyRYm8zCnDlz8PXXX6NNmzYQQkChUGDatGmYPXs2DAYDYmNjMXv2bCgUCqxZswarVq2CEAJjxoxB\nv379UFlZiezsbJw/fx5arRaLFy9GREREva93uRo5ciRmzZoFhUKBF198kWNng0WLFmHXrl0QQuD5\n559HVFQUpk+fzrGzweXLl/HCCy/g/PnzqK6uxqhRo3Drrbe6fPx8LqghIiIiefKJy09EREQkfwxq\niIiISBYY1BAREZEsMKghIiIiWWBQQ0RERLLAoIaIiIhkgUENERERyQKDGiIiIpIFBjVEREQkCwxq\niIiISBYY1BAREZEsMKghIiIiWWBQQ0RERLLAoIaIiIhkgUENERERyQKDGiIiIpIFBjVEREQkC2p3\nN8AT5eXlubsJREREspeUlOTQ7TGoqYejB9rR8vLyPL6NANvpSN7QRsA72ukNbQTYTkfyhjYC3tNO\nR3DGCQTZXH7at28fRowYUWf5pk2bMHToUDz88MNYs2aNG1pGREREriCLMzXLly/H+vXrERQUZLG8\nuroa8+fPx7p16+Dn54eMjAz07dsXN910k5taSkRERM4ii6CmVatWWLp0KSZPnmyx/OjRo2jVqhV0\nOh0A0yWl3NxcDBgwoNFtKhQKp7SViIioPkuWLPGZy0/OIIugpn///jh16lSd5WVlZQgODpb+DgoK\nQmlpqSubRkREZLOxY8eie/fu7m6G15JFUFMfnU6HsrIy6e/y8nKEhIS4sUVEREQN85UzNZwo3Agh\nhMXfsbGxKCoqwqVLl6DX65Gbm4vExEQ3tY6IiIicSVZnaszzYL788ktUVFQgPT0dU6dOxeOPPw4h\nBNLT0xEZGenmVhIREZEzKMS1pzcIeXl5SE5OdncziIjIB/nKx7IzcvLI6vITERER+S4GNURERCQL\nDGqIiIhIFhjUEBERkSwwqCEiIiJZcMst3ZcuXcK///1vXLx40WKW99ixY697W0IIzJw5EwUFBdBq\ntZgzZw5uueUWaf2HH36Izz//XKr39PLLLyMmJuaG+0BERESexS1BzbPPPovg4GDExcXdcI2lDRs2\nQK/XY+XKldi3bx/mzZuHZcuWSesPHjyIhQsXokOHDjfabCIiIvJgbglqLly4gBUrVjjOHaOFAAAg\nAElEQVRkW3l5eejZsycAoEuXLjhw4IDF+oMHD+Ldd9/F+fPnkZqaitGjRzvk/xIREZFncUtQk5CQ\ngPz8fLRv3/6Gt3Vt0Uq1Wg2j0Qil0jRd6N5778UjjzwCnU6Hp59+Glu2bEHv3r1v+P8SERE5gzNq\nIvkKtwQ1hYWFGDx4MCIiIuDn5wchBBQKBTZu3Hjd29LpdCgvL5f+rh3QAMCoUaOg0+kAAL1798ah\nQ4cY1BARkcdiQUv7uSWoWbJkicO21a1bN/zwww9IS0vD3r17ER8fL60rKyvDwIED8fXXX8Pf3x+7\ndu3C0KFDHfa/iYiIyHO4Jahp0aIFPvvsM+zatQvV1dXo3r07hg8fbte2+vfvj+3bt+Phhx8GAMyb\nN8+ioOWECRMwYsQI+Pn54Y477kCvXr0c2RUiIiLyEG4paLlgwQIUFRVhyJAhEEJg3bp1iI6Oxgsv\nvODqpljFgpZEROQuLGhpP7ecqdm+fTv++c9/SnNfUlNT8Ze//MUdTSEiIiKZcEtG4ZqaGlRXV1v8\nrVKp3NEUIiIikgm3nKn5y1/+gpEjR+Lee+8FAHz11VfS70RERET2cEtQk5WVhYSEBOzatQtCCGRl\nZSE1NdUdTSEiIiKZcOnlp4MHDwIAcnNzERgYiD59+qBv374ICgpCbm6uK5tCREREMuPSMzWfffYZ\nZs+ejb/97W911ikUCnz88cfXvc3GClpu2rQJy5Ytg1qtxpAhQ5Cenn5DfSAiIiIPJdygoKCgzrKf\nf/7Zrm199913YsqUKUIIIfbu3SvGjBkjrTMYDKJ///6itLRU6PV6MWTIEFFcXNzoNvfs2SMA8Ic/\n/OEPf/jj8h9fsWfPHodv06WXn/Ly8pCbm4tx48Zhz549yM3NRW5uLnbu3Ins7Gy7t1lfQcujR4+i\nVatW0Ol00Gg0SEpK4mUuIiIimXLp5acdO3Zg9+7dOHfuHN58882rjVCr8dBDD9m1zYYKWl67Ligo\nCKWlpfZ3gIiIyMlY0NJ+Lg1qxo0bBwD45z//iUGDBjlkmw0VtNTpdCgrK5PWlZeXIyQkxCH/l4iI\nyBlY0NJ+Lg1q3nrrLYwbNw4//vgjfvzxxzrr582bd93bbKigZWxsLIqKinDp0iX4+/sjNzcXmZmZ\nN9QHIiIi8kwuDWpuvfVWAMDtt9/usG02VtBy6tSpePzxxyGEQHp6OiIjIx32v4mIiMhzuKWgJQCc\nO3cOkZGR2LNnDwoKCjB48GAEBga6oyl1sKAlERG5i5s+ll3OGQUt3VL7acaMGXj77bdx5MgRPP/8\n8zh48KDddz8RERERAW4Kan755Re89NJL+PrrrzF06FDMnTsXp06dckdTiIiISCbcVqXbaDRi48aN\n6NWrFyoqKlBZWemOphAREZFMuCWoGTRoEO68805ERUWhS5cueOCBB+zOU0NEREQEuHGicE1NDSoq\nKmA0GlFdXY2bbrrJHc2wihOFiYjIXThR2H4uvaXb7MSJExg/fjxOnDgBo9GIqKgovPHGG4iJibnu\nbVVVVWHSpEkoLi6GTqfD/PnzER4ebvGYOXPm4KeffkJQUBAAYNmyZdDpdI7oChEREXkKh1eTssGj\njz4qvv76a+nvr776SgwfPtyuba1YsUK89dZb0nZmz55d5zEZGRmipKTE5m2yoCV/+MMf/vDHXT++\nwusLWpqVlJQgLS1N+vuee+7BxYsX7dpWXl4eevXqBQDo1asXdu7cabFeCIGioiK89NJLyMjIwNq1\na+1vOBEREXkst1x+0mq1OHjwoJRh+MCBAwgICGj0eZ9//jk++ugji2VNmjSRLiUFBQVZ1HoCgMuX\nL2PEiBF47LHHUF1djZEjR6JTp04W5RSIiIg8BQta2s8tQc20adMwbtw4hIWFQQiBP/74A6+//nqj\nzxs6dCiGDh1qsWzcuHFSQcvy8nKLqtwAEBAQgBEjRsDPzw9+fn7o3r078vPzGdQQEZFHYkFL+7k0\nqDl79ixeeeUVFBUV4Y477sDgwYMRHByM1q1bQ6vV2rXNbt26YcuWLejUqRO2bNlS566l48ePY/z4\n8Vi/fj2qq6uRl5eHBx54wBHdISIiIg/i0jk1L7zwAtq0aYNJkybBaDRi7dq1aNeund0BDQBkZGSg\nsLAQw4YNw5o1azB27FgAwIcffogffvgBsbGxGDRoENLT0zFy5EgMHjwYsbGxjuoSEREReQiX5qkZ\nOHAgvvzySwCAwWDAoEGD8NVXX7nq39uMeWqIiMhdXPix7FZeX9BSo9FY/F77byIiIqIb4ZZbus0U\nCoU7/z0RERHJiEsnChcWFqJv377S32fPnkXfvn0hhIBCocDGjRtd2RwiIiKSEZcGNd9++60r/x0R\nERH5EJcGNVFRUa78d0RERORD3DqnxpG+//57PP/881bXrV69GkOGDMHDDz+MzZs3u7ZhRERE5BJu\nySjsaHPmzMH27duRkJBQZ92FCxeQk5ODL774ApWVlcjIyEBKSgrvvCIiIpIZWZyp6datG2bOnGl1\n3f79+5GUlAS1Wg2dToeYmBgUFBS4toFERETkdF51psZaQct58+bh7rvvxu7du60+p6yszKIeVGBg\nIEpLS53aTiIiInuxoKX9vCqosVbQsjE6nc6icnd5eTlCQkIafd6lS5dQU1MDADAajVCpVFCr1TAa\njTAajQAApVIp/W4L863r1p5nXld7u0IIqFQqqQ1KpVJal5eXh65duwKAtE0hhMXjqqurIYSAEAJq\ntWlX19TUWDze7Np2mftsbltNTQ1UKhWUSqW0HfN2jUajNFYKhQJqtRpVVVVQqVTYu3cvunXrBqVS\niaqqKmg0GqkNCoUCRqMRWq0WNTU10nK1Wo3q6moAqDPm1tZd+7zaj6k9rtbGWqPRSOPZpUsXKBQK\ni/1k7qv5dyGENHbm9pvXmftvHgsA8PPzg16vl5537X43P16tVsNgMEjbMrdDrVZDr9dDqVRi3759\n6NSpkzSO5nVqtVraV9e2FwBUKhVqamqkfWo+JlQqlfR8c3/1er3FtmofB+Zj0zze5mPCvNx8PP30\n00/o2rWr9Nja26jdBqPRCIPBAI1GA4PBACEE/P396+yz2se1QqFAdXU1jEaj9BjzsX3t8Wz+f+Yx\nMG9XoVBI+7uqqgpBQUFQKBRS3819q66uRmBgoHQsBwUFobKyEpWVlVAqldBqtdLvCoUCAQEBqKio\nkMZVq9XCYDBIx6RarUZwcDBKS0uh0+lQUlKCgIAAAJC2Y/7x8/MDAOzcuRNJSUkW70UajQZKpRIG\ngwEqlUp6rxBCQKPRoLKyEv7+/nX2p3kMax+ztY9j8/hVV1dbHLc1NTXw8/OT+lNTU4Pg4GBcunRJ\n+v+//PILevToAb1eL+0D8/uP+X+bt6nT6aDX66XXqPn4qX3Mmd+/zMvre880j4f5taNQKKDRaKDX\n66XXkHlM9+zZg6SkJKmv5vcPcxtrj6n5f5uXqdVqaDQaiz6Z+24+9s3Lrb2Xm5drNBppTM2vj9rP\nVyqVOHz4MAta3gCvCmrs0blzZ7zxxhvQ6/WoqqrCsWPHEBcX1+jzrq327WmCg4MRGhrq7mbUKygo\nCIApqDSPpXmZJ9LpdAgLC3PKtv39/R2yHZ1Oh5tuuskh23ImTz82ASAkJMTmsdTpdNLvGo3G4r3h\n2vcJc5DSEPNxdvPNN1v9H7UFBwdf93tR7W0FBgZe13OvR0REhMX/tCVLvPk9wNlzGq31256xdAcm\npb0xsg1qPvzwQ7Rq1Qp//vOfMWLECAwbNgxCCEyYMOGGCmgSERGRZ5JNUHP77bfj9ttvl/5+9NFH\npd/T09ORnp7uhlYRERGRq7i0Sre34CQtIiIi53P0/CEGNURERCQLsshTQ0RERMSghoiIiGSBQQ0R\nERHJAoMaIiIikgUGNURERCQLDGqIiIhIFhjUEBERkSyoZs6cOdPdjfAler0e69atQ0VFBW6++WaL\nYoGexBva6Q1tBLyjnd7QRoDtdCRvaCPgHe30hjYC3tPOG8GgxoWOHDmC0aNHQ6vVYt++fSgqKkJM\nTIxTi87Zwxva6Q1tBLyjnd7QRoDtdCRvaCPgHe30hjYC3tPOG8WgxoXy8/MRFhaG8ePH45ZbbkFB\nQQEOHTqE2267zd1Ns+AN7fSGNgLe0U5vaCPAdjqSN7QR8I52ekMbAe9p543inBonOnv2LGbNmoX/\n/Oc/OH36NEpLS7F7924AQJs2bdCjRw+cOHECR44cYTtl0EZvaac3tJHt9L02eks7vaGN3tROR2NQ\n4ySFhYXIzs5GixYtUF5ejmeeeQYDBgzAmTNnsGXLFmg0GrRo0QJhYWEoLi5mO728jd7STm9oI9vp\ne230lnZ6Qxu9qZ3OwKDGwYxGIwCgpqYGTZo0wRNPPIH09HRERkbiww8/xLRp07B48WIAQPPmzXH2\n7FkEBAS4vJ01NTUe305vGUtvaKc3tNHcPrbTMbxln3tDO72hjd7UTmdiUONgSqVpSMvLy3HzzTej\nsLAQADBjxgysWLECXbp0QWJiImbPno3HH38cANC0aVOXte/EiRMAIM1699R2Ap4/lt7UTk9vY2lp\nKQDPPy75+vHNdnpDG72pnc7EicI3qKSkBKtXr4ZGo0FISAhUKhU+//xztG/fHjt37kRQUBAiIyMR\nERGBM2fO4PTp03j66acRExODW265BVlZWdDpdE5v58WLF/G3v/0Ny5cvR2pqKpRKJf71r3+hXbt2\nHtPOkpISvPrqqygvL0dISAiCgoKwdu1ajxvLkpISrFu3DlqtVtrna9as8ah2Xrx4EcuWLcPly5eh\nVCoRFhaG1atXIyEhwWPaCJjGctGiRTh+/Dji4uIghMD69es96rgEvOf1s2rVKqhUKuh0Omg0Go97\nLxJCQK/XY9u2bQgKCkJQUBAqKiqwfv16j2pnTU0N3n33XQBAVFQUysvL8a9//cuj2gh4z+vclXim\n5gbs3LkTI0eOxIkTJ/D+++9j27ZtUCgU0Gg0iI6Oxh133IG9e/dix44dAEynBuPj46FWqxETE4M+\nffq4pJ05OTmYMGECLly4AK1Wi6ZNmyIwMBAqlcpj2vnLL7/g6aefRsuWLeHv7w+DweCRY5mbmyvt\n848//hgrV64EAOh0Oo9p565du5CZmQmj0YiCggJ88MEHAICAgACPaSMAfPfdd3jggQfQpUsX/PWv\nf0VISAj8/f09bp97w+vHfFyePHkSH3/8MXbt2uWRrx+FQoH9+/fj/fffx4EDBwCYjku1Wu1R7fz9\n99/x7bffSq/voKAgKJVKj2qjt7zOXY1nam7A1q1b0bVrV4wZMwZFRUX4/fffkZycjPbt2wMA4uLi\nUFFRgR9++AGffvophBAYMmQI/P39XdbGkydPYseOHRg/fjwGDhyIEydOIDExERqNxqPamZ+fjxYt\nWuBPf/oTPvvsMyiVSlRXV6N3794e00YAyMvLQ2JiIp544gncfPPNyM3Nxf/93/9h0KBBHtPO//zn\nP+jfvz9GjBgBPz8/HDlyBL169UK7du08oo1CCCgUChw7dgwRERG49dZb8c477+C3336DwWCQ3mzd\n3U7A818/RqMRCoUC33//PXr06IHRo0cjPz8fpaWlSEpK8og2mgkhYDAYsHTpUpw7dw5BQUEIDw9H\nRESER7Tz+PHjCA8PB2C6fHPmzBlcunQJlZWVSEhIQEJCgtvbWJunv87dRpBNjEajMBgMYv78+eLc\nuXNCCCGWLl0qFi5cKL744gsxatQoMXr0aPHxxx+LkydPCiGEKC4uFkII8fvvv4vCwkKXt/Ps2bMW\n63Jzc8WDDz5Y5zklJSUub2dhYaGYOnWq+Oqrr8SFCxfE6tWrRVZWlvj73/8uNm3aJD744APx5JNP\nil9//VUI4f6xPH/+vBBCiPnz54sZM2YIIYS4fPmy2LJli5gyZYp0TPz+++8ub6cQQkyYMEFs3bpV\nCCHE22+/LX7++WchhBC7d+8WI0eOFNXV1dJj3dXGwsJCMWHCBLF06VJRWFgojhw5IrKyssRTTz0l\nNm7cKHJycsRjjz0mjh8/LoRw/z739NePeSx/++038e2334pDhw6JyspKMXDgQPHkk0+KZcuWid9+\n+00I4Z6xFEKIw4cPixdffFFs3LhRasv27dvF3r17xeuvvy7Wrl1rcWy6YyyPHDkinn/+eTFt2jRR\nXl4uhBDi66+/FitWrBDHjh0TgwcPFq+//rq4ePGi29oohOV75h9//CE+/fRTsWfPHiGEZ73O3Y2X\nn2ykUChQXFyMjRs34tNPPwUAPP7440hOTsbbb7+NPn36YPLkySgqKsKXX36JiooKvPrqq7hw4QLC\nw8PRtm1bl7dz9erVAEzfkIxGIxITE9GyZUvk5+dLj7906RIWLFjg0nbu3r0bM2fOxK233orjx4/j\nzTffxH333YeffvoJZWVl+POf/4yHH34YcXFx+Pnnn1FWVub2sfzHP/4BAHjiiSewceNGHDt2TDrN\nq9PpUFxcjNLSUixcuNCl7ayurgYAHDp0CF999RUuX76MrKwsJCYmAgC+//579O/fHyqVCtXV1aio\nqHD5/gaAHTt2YNasWejbty9CQ0MxduxYxMbGon379njiiSfQp08fZGRkoGPHjti7d69H7HNPff1c\nO5Z//etfcddddyHh/9s787Aqq67/f5gOyCigxpFJQEVFERARHFKUyqHMLDUfNR/zeSybNKvLC618\nUyuHTHPIKcVAUMsUB9Q0E0xBBcUJGRSVQZlikvEw7d8fvOd+FKEne3/e52Dn+w8XnMN1fa619lr3\nvvfea+3u3amvr+ftt99m/vz5FBYW8ssvv1BZWakRWyYkJLBw4ULc3d25desWwcHBAPTu3ZvevXvj\n4uLCrVu3uHbtGgClpaWy2zIyMpLZs2czdepUFi5cKHXXLSsrw8XFhcOHD5Ofn8/NmzexsrKiqKhI\nI/HTNGd++eWXTJw4kT59+gDaE+faIN2k5k+qpqaGH374gYCAAM6dO8eFCxcwMTHBxMQECwsLXnvt\nNdzc3DAyMqJnz560adOGRYsW0a5dO41xxsXFkZiYiJ6eHvr6+hQVFWFra4uenh7QuHRtaWkpG6e6\nDLa4uBg3NzcmTZpEnz59MDMzw9jYmOnTp3PmzBmEELRp04bc3FxcXV0xNzfXuC3PnTtHQkICNjY2\njBs3ji+++AJobGJ19+5dzMzMsLCwkJ3T0NCQ8vJyfH19ycvLIz4+XvqsqqqK2tpaXnrpJfbs2cOi\nRYsA+Pzzz2VjVPu8qKiIXr16MXLkSCZNmkSnTp0oLy9n2rRp0rK+gYEBRUVFuLu7a4XPtTV+mtrS\nzc2NvLw8AExNTRk+fDiOjo4YGhrSq1cvTE1NZbWluqxYpVJJcT59+nTq6+sJDw/HzMwMgEGDBmFo\naEhcXBwlJSVYWVnJxqlmVF8TUFpayrRp05g3bx7Hjx+nqqqKjz/+GCEEmzZt4tatW9y4cQMbGxtZ\nbdlSzrS1tUWlUgGNW2WajnNtkqGmAbRZ4n/3/gEUCgXe3t706tWLo0ePsmXLFnx8fAgICKC4uJi1\na9dy4cIF2rVrR9euXYHGB47cao5z7dq1AHTo0IGioiIOHz6Mu7u7VP4nB6cQQiqDdXV1pWfPnlRU\nVLBkyRKsrKyYMWMGX3/9NWlpaXzyySfcvn0bOzs7HBwcEELIZss/8vnWrVvx9fXlvffe49///jdL\nly7l8uXLdO7cmbZt28rGeT8jNL65DxkyBKVSyccff8yPP/7IZ599RmlpKceOHeP27dvY2try7rvv\nyt6TQu1zOzs7evbsCcClS5fQ19fH2NgYIyMjPvjgAywsLLh9+zZOTk4olUqt8bm2xA+0bEs9PT1s\nbGwAWLx4MWZmZly5coWnnnoKFxcXWW0J/ykrrqmpwcrKiqysLBwdHQkODmb27NmMHz8eIyMjbGxs\n6NmzJ4WFhRgbGwPy5SI1o5eXF3Z2doSEhLBs2TJu3rzJV199xaeffkpkZCS2trYAvPHGG1hYWMg+\nLlvKmdbW1rz55pt8/fXXVFRUaDzOtUry73hpt7KyskRYWJjIyMgQFRUVQqVSibCwMNHQ0CDq6+uF\nEELcu3dPvPHGG2Lv3r3S/8TFxYmYmBjZOEtLS8Wvv/4qysrKhBCN+7zh4eHNckZFRUn/l5GRIc6c\nOSMLo9qWmZmZQqVSiaqqKhERESFqa2ul71y6dEkIIcRbb70ltmzZIurr68WNGzfE2bNnZWFsjrO6\nurpFn0dGRgohGs8oJCcni9jYWI0xhoaGCiGEiI2NFV999ZVYtGiRCAwMFHPnzhVCCBEXFycGDx4s\n4uPjZWEU4uFxWVhYKH744QehUqmk7yxatEhs27ZN+r24uFgkJiaKU6dOycb5KHGuqfh5VFs2NDSI\nkpISERcXJ3777TdZGFvi3Lt3r3QG5OTJk9JZlTlz5kh5U05VV1eLJUuWPHBGb8eOHaKyslKcPHlS\nREdHS9+dO3eu2LBhgxBCiLq6OtHQ0CAbZ9NxWV1d3WLOfPfdd8XGjRtFYmKi7HGuzdJtP92nffv2\nMXPmTAoKCtixYwe7d+9GoVDQoUMHaQkawMLCggkTJrB582bq6upwcHDA39+fp59+WjbWmJgYtm/f\nTnJyMtBYUty2bdtmOb/99lvp7IWTkxP9+vV77HyHDh3i7bff5s6dO2zevJl9+/ZhYmKCra2t9KZT\nX19Px44dAXB0dKRTp07o6+vj5uaGn5/fY2dsidPY2LhFn2/atIm6ujpsbGzo1q0bAQEBGmNUN81K\nSUkhJiYGHx8fvvvuO9LS0khNTcXf35/o6Gh8fX0fO6NaTcelpaUl5ubmKBSKB7qdDhkyhM2bNzNp\n0iSEEHh5eTFgwABZGB81zjURP/Dotpw8eTJCCPz9/Rk4cKAsjC1xKhQKOnfujIeHB2fPnuX8+fNA\n40qYp6enbGxq3b17l59//lk6G2dpaYmlpSVt2rShf//++Pn5SXcgWVpaSj42MDB4YFX0caq5cWls\nbNxizuzYsSNubm54eXnJHufaLF1J9306fPgwkyZN4pVXXqFt27YcOnQIc3NzAgMDH/quk5MTpqam\ndO7cWdaBX1tbS3V1NStXrqSmpgaFQoFSqcTKyoouXbpoDefp06cZPXo0EydOxNzcnJMnT9LQ0MAz\nzzwDNC6tHjp0iIiICEJDQ7GwsGDixIkYGRnJwvdnOe+XttqyW7dujB07Fg8PD6ytrbG2tsbT01NW\nW/6Zcamnp0dFRQWzZs0iISEBpVLJ/PnzpTJauaTtcf5/sWXbtm0fO9+jcHbt2pV79+4RFRVFREQE\ntra2jBo1SrYtnLq6OvT19SkoKEClUpGeno6dnR1OTk4P5Mt9+/bx/fffs2vXLqysrBg7dqzsxwf+\n27jUlpyp7fpbT2oSEhLYsGEDBgYGdOzYkd27d1NTU0Pfvn1p06YNMTEx5Obm4u/vj6GhIXl5eVL3\nRX19fbp3746hoeFjTXRCCCoqKli6dCkDBw6UAs3e3h5/f3+uX7+OEOKB0+3qHhBycTZl1NfXJyws\njIaGBvr06YOVlRUNDQ2cPn2agIAADA0NKSkpoXfv3ri6uhIYGMjYsWMfe3D+FU65ff5XGAsLC7Gx\nsaG2thYDAwPpwPrj1F8Zl7///jvZ2dkIIfjwww8ZNWqULD0ztD3OW4st/wpnaWkpXl5e9O7dm8DA\nQMaMGfNYJwstMR44cIDu3bvTr18/Vq1aRWFhIZ6enhgYGHDv3j18fHzw9vYmMDCQl156SZYJzaOO\nS03kzNaov+3209GjR1m9ejXe3t7ExcWxaNEi5s2bx86dO4mMjGTZsmV07NgRU1NTysrKyMrKYt26\ndVRWVsrKqaenR3Z2NseOHWP37t3S33v37k3fvn2xs7MjLS2N9PR0ADIzM1m7dq2snPczqjtwvv76\n64SHh1NZWYm5uTnOzs4YGxtTWFhIVlYWK1eupLKyEjc3N1xdXbWWU26f/xVGdZt0ORPco47LjIwM\n1q1bh6urKwsXLmx2VfFxqDXEeWux5V/JRd988w2VlZUolUocHR01xlhbW4uNjQ0nTpwgOztb6g59\n8+ZNVqxYQWVlpbQFLof+yrjURM5sjfrbTWqEEABUVlbSp08fXnrpJebOncvZs2fJyckhPDyciooK\nAgICmDZtGqWlpZibm+Po6PhAHwO5VF5ezu7du3n22WfZu3cvd+/eRaFQSA+wp59+GpVKRWxsLDU1\nNTg5OcnOeT/jgQMHyMrKwsPDA39/f7788ksAHBwcyMnJwcrKSitsqa2crYGxKeefGZfOzs4sWLBA\nNs7WFOfabsu/yqnpXLR3716ys7OBxnNnwcHBODk5sWrVKs6cOUNJSYk0MdSNyydHf7vtJ/USckpK\nCiqVCkdHR8zNzbG1tWX58uW88cYb0jLq8uXL8fDwwNfXF319fdnOUNwvhUJBbW0tkyZNoqCggJiY\nGAIDA6XDjFZWVhQUFGBmZkbnzp01wtmUMTo6mmHDhhEQEMCuXbtITU1l06ZN9OrVi4CAAPT09GRj\nFE3KdbWRU93qXpsZ/xunNo3L+33eGuJcW2158+ZNrK2tJXtqI+efYRw6dCjOzs5MnToVf39/7O3t\nMTExoUuXLhgZGcnq79Y0Llut5Cmy0pzy8vLEiRMnpJI4dblmYmKimD9/voiPj5c+e/3118Xly5dF\nTk6O2L17t6xlxcnJyWLx4sXi/PnzUntrNZe69XVOTo6YPHmyVLqnLu28vzX249TVq1fF3LlzRXx8\nvCgvLxdCCKncsSljXFycEEKIgoICcf78eXHx4kVZGIUQIiUlRYSFhYn8/HyJq+lPTXMmJyeLrVu3\nitzcXIlJPTa1hVHNuXnzZnHnzh1RU1Pzh5yaGpdCNPp8+/btIjc394GSZ22K80eJH03aMjk5Wbz3\n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\nctMAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# 显示回测结果\n", + "engine.showBacktestingResult()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'orderID': '1', 'direction': u'\\u591a', 'gatewayName': '', 'tradeID': '1', 'exchange': '', 'symbol': '', 'volume': 0, 'tradeTime': '2012-01-11 09:18:00', 'rawData': None, 'vtTradeID': '1', 'offset': u'\\u5f00\\u4ed3', 'vtOrderID': '1', 'dt': datetime.datetime(2012, 1, 11, 9, 18), 'price': 2464.4, 'vtSymbol': ''}\n", + "{'orderID': '2', 'direction': u'\\u7a7a', 'gatewayName': '', 'tradeID': '2', 'exchange': '', 'symbol': '', 'volume': 0, 'tradeTime': '2012-01-11 10:18:00', 'rawData': None, 'vtTradeID': '2', 'offset': u'\\u5e73\\u4ed3', 'vtOrderID': '2', 'dt': datetime.datetime(2012, 1, 11, 10, 18), 'price': 2448.8, 'vtSymbol': ''}\n", + "{'orderID': '3', 'direction': u'\\u7a7a', 'gatewayName': '', 'tradeID': '3', 'exchange': '', 'symbol': '', 'volume': 0, 'tradeTime': '2012-01-11 10:19:00', 'rawData': None, 'vtTradeID': '3', 'offset': u'\\u5f00\\u4ed3', 'vtOrderID': '3', 'dt': datetime.datetime(2012, 1, 11, 10, 19), 'price': 2448.4, 'vtSymbol': ''}\n", + "{'orderID': '4', 'direction': u'\\u591a', 'gatewayName': '', 'tradeID': '4', 'exchange': '', 'symbol': '', 'volume': 0, 'tradeTime': '2012-01-11 14:21:00', 'rawData': None, 'vtTradeID': '4', 'offset': u'\\u5e73\\u4ed3', 'vtOrderID': '4', 'dt': datetime.datetime(2012, 1, 11, 14, 21), 'price': 2456.2000000000003, 'vtSymbol': ''}\n", + "{'orderID': '5', 'direction': u'\\u591a', 'gatewayName': '', 'tradeID': '5', 'exchange': '', 'symbol': '', 'volume': 0, 'tradeTime': '2012-01-11 14:22:00', 'rawData': None, 'vtTradeID': '5', 'offset': u'\\u5f00\\u4ed3', 'vtOrderID': '5', 'dt': datetime.datetime(2012, 1, 11, 14, 22), 'price': 2455.6, 'vtSymbol': ''}\n", + "{'orderID': '6', 'direction': u'\\u7a7a', 'gatewayName': '', 'tradeID': '6', 'exchange': '', 'symbol': '', 'volume': 0, 'tradeTime': '2012-01-11 14:57:00', 'rawData': None, 'vtTradeID': '6', 'offset': u'\\u5e73\\u4ed3', 'vtOrderID': '6', 'dt': datetime.datetime(2012, 1, 11, 14, 57), 'price': 2444.0, 'vtSymbol': ''}\n", + "{'orderID': '7', 'direction': u'\\u7a7a', 'gatewayName': '', 'tradeID': '7', 'exchange': '', 'symbol': '', 'volume': 0, 'tradeTime': '2012-01-11 14:58:00', 'rawData': None, 'vtTradeID': '7', 'offset': u'\\u5f00\\u4ed3', 'vtOrderID': '7', 'dt': datetime.datetime(2012, 1, 11, 14, 58), 'price': 2445.8, 'vtSymbol': ''}\n", + "{'orderID': '8', 'direction': u'\\u591a', 'gatewayName': '', 'tradeID': '8', 'exchange': '', 'symbol': '', 'volume': 0, 'tradeTime': '2012-01-12 09:51:00', 'rawData': None, 'vtTradeID': '8', 'offset': u'\\u5e73\\u4ed3', 'vtOrderID': '8', 'dt': datetime.datetime(2012, 1, 12, 9, 51), 'price': 2452.8, 'vtSymbol': ''}\n", + "{'orderID': '9', 'direction': u'\\u591a', 'gatewayName': '', 'tradeID': '9', 'exchange': '', 'symbol': '', 'volume': 0, 'tradeTime': '2012-01-12 09:52:00', 'rawData': None, 'vtTradeID': '9', 'offset': u'\\u5f00\\u4ed3', 'vtOrderID': '9', 'dt': datetime.datetime(2012, 1, 12, 9, 52), 'price': 2452.0, 'vtSymbol': ''}\n", + "{'orderID': '10', 'direction': u'\\u7a7a', 'gatewayName': '', 'tradeID': '10', 'exchange': '', 'symbol': '', 'volume': 0, 'tradeTime': '2012-01-12 10:31:00', 'rawData': None, 'vtTradeID': '10', 'offset': u'\\u5e73\\u4ed3', 'vtOrderID': '10', 'dt': datetime.datetime(2012, 1, 12, 10, 31), 'price': 2455.2000000000003, 'vtSymbol': ''}\n" + ] + } + ], + "source": [ + "# 显示成交记录\n", + "for i in range(10):\n", + " print engine.tradeDict[str(i+1)].__dict__" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}