You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Statsmodels.ipynb 48 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "markdown",
  5. "metadata": {},
  6. "source": [
  7. "# Statsmodels"
  8. ]
  9. },
  10. {
  11. "cell_type": "markdown",
  12. "metadata": {},
  13. "source": [
  14. "Statsmodels is a Python module that allows users to explore data, estimate statistical models, and perform statistical tests. An extensive list of descriptive statistics, statistical tests, plotting functions, and result statistics are available for different types of data and each estimator.\n",
  15. "\n",
  16. "Library documentation: <a>http://statsmodels.sourceforge.net/</a>"
  17. ]
  18. },
  19. {
  20. "cell_type": "markdown",
  21. "metadata": {},
  22. "source": [
  23. "### Linear Regression Models"
  24. ]
  25. },
  26. {
  27. "cell_type": "code",
  28. "execution_count": 1,
  29. "metadata": {
  30. "collapsed": false
  31. },
  32. "outputs": [],
  33. "source": [
  34. "# needed to display the graphs\n",
  35. "%matplotlib inline\n",
  36. "from pylab import *"
  37. ]
  38. },
  39. {
  40. "cell_type": "code",
  41. "execution_count": 2,
  42. "metadata": {
  43. "collapsed": false
  44. },
  45. "outputs": [],
  46. "source": [
  47. "import numpy as np\n",
  48. "import pandas as pd\n",
  49. "import statsmodels.api as sm\n",
  50. "from statsmodels.sandbox.regression.predstd import wls_prediction_std\n",
  51. "np.random.seed(9876789)"
  52. ]
  53. },
  54. {
  55. "cell_type": "code",
  56. "execution_count": 3,
  57. "metadata": {
  58. "collapsed": false
  59. },
  60. "outputs": [],
  61. "source": [
  62. "# create some artificial data\n",
  63. "nsample = 100\n",
  64. "x = np.linspace(0, 10, 100)\n",
  65. "X = np.column_stack((x, x**2))\n",
  66. "beta = np.array([1, 0.1, 10])\n",
  67. "e = np.random.normal(size=nsample)"
  68. ]
  69. },
  70. {
  71. "cell_type": "code",
  72. "execution_count": 4,
  73. "metadata": {
  74. "collapsed": false
  75. },
  76. "outputs": [],
  77. "source": [
  78. "# add column of 1s for intercept\n",
  79. "X = sm.add_constant(X)\n",
  80. "y = np.dot(X, beta) + e"
  81. ]
  82. },
  83. {
  84. "cell_type": "code",
  85. "execution_count": 5,
  86. "metadata": {
  87. "collapsed": false
  88. },
  89. "outputs": [
  90. {
  91. "name": "stdout",
  92. "output_type": "stream",
  93. "text": [
  94. " OLS Regression Results \n",
  95. "==============================================================================\n",
  96. "Dep. Variable: y R-squared: 1.000\n",
  97. "Model: OLS Adj. R-squared: 1.000\n",
  98. "Method: Least Squares F-statistic: 4.020e+06\n",
  99. "Date: Sun, 16 Nov 2014 Prob (F-statistic): 2.83e-239\n",
  100. "Time: 20:59:31 Log-Likelihood: -146.51\n",
  101. "No. Observations: 100 AIC: 299.0\n",
  102. "Df Residuals: 97 BIC: 306.8\n",
  103. "Df Model: 2 \n",
  104. "==============================================================================\n",
  105. " coef std err t P>|t| [95.0% Conf. Int.]\n",
  106. "------------------------------------------------------------------------------\n",
  107. "const 1.3423 0.313 4.292 0.000 0.722 1.963\n",
  108. "x1 -0.0402 0.145 -0.278 0.781 -0.327 0.247\n",
  109. "x2 10.0103 0.014 715.745 0.000 9.982 10.038\n",
  110. "==============================================================================\n",
  111. "Omnibus: 2.042 Durbin-Watson: 2.274\n",
  112. "Prob(Omnibus): 0.360 Jarque-Bera (JB): 1.875\n",
  113. "Skew: 0.234 Prob(JB): 0.392\n",
  114. "Kurtosis: 2.519 Cond. No. 144.\n",
  115. "==============================================================================\n"
  116. ]
  117. }
  118. ],
  119. "source": [
  120. "# fit model and print the summary\n",
  121. "model = sm.OLS(y, X)\n",
  122. "results = model.fit()\n",
  123. "print(results.summary())"
  124. ]
  125. },
  126. {
  127. "cell_type": "code",
  128. "execution_count": 6,
  129. "metadata": {
  130. "collapsed": false
  131. },
  132. "outputs": [
  133. {
  134. "name": "stdout",
  135. "output_type": "stream",
  136. "text": [
  137. "('Parameters: ', array([ 1.34233516, -0.04024948, 10.01025357]))\n",
  138. "('R2: ', 0.9999879365025871)\n"
  139. ]
  140. }
  141. ],
  142. "source": [
  143. "# individual results parameters can be accessed\n",
  144. "print('Parameters: ', results.params)\n",
  145. "print('R2: ', results.rsquared)"
  146. ]
  147. },
  148. {
  149. "cell_type": "code",
  150. "execution_count": 7,
  151. "metadata": {
  152. "collapsed": false
  153. },
  154. "outputs": [
  155. {
  156. "name": "stdout",
  157. "output_type": "stream",
  158. "text": [
  159. " OLS Regression Results \n",
  160. "==============================================================================\n",
  161. "Dep. Variable: y R-squared: 0.933\n",
  162. "Model: OLS Adj. R-squared: 0.928\n",
  163. "Method: Least Squares F-statistic: 211.8\n",
  164. "Date: Sun, 16 Nov 2014 Prob (F-statistic): 6.30e-27\n",
  165. "Time: 20:59:31 Log-Likelihood: -34.438\n",
  166. "No. Observations: 50 AIC: 76.88\n",
  167. "Df Residuals: 46 BIC: 84.52\n",
  168. "Df Model: 3 \n",
  169. "==============================================================================\n",
  170. " coef std err t P>|t| [95.0% Conf. Int.]\n",
  171. "------------------------------------------------------------------------------\n",
  172. "x1 0.4687 0.026 17.751 0.000 0.416 0.522\n",
  173. "x2 0.4836 0.104 4.659 0.000 0.275 0.693\n",
  174. "x3 -0.0174 0.002 -7.507 0.000 -0.022 -0.013\n",
  175. "const 5.2058 0.171 30.405 0.000 4.861 5.550\n",
  176. "==============================================================================\n",
  177. "Omnibus: 0.655 Durbin-Watson: 2.896\n",
  178. "Prob(Omnibus): 0.721 Jarque-Bera (JB): 0.360\n",
  179. "Skew: 0.207 Prob(JB): 0.835\n",
  180. "Kurtosis: 3.026 Cond. No. 221.\n",
  181. "==============================================================================\n"
  182. ]
  183. }
  184. ],
  185. "source": [
  186. "# example with non-linear relationship\n",
  187. "nsample = 50\n",
  188. "sig = 0.5\n",
  189. "x = np.linspace(0, 20, nsample)\n",
  190. "X = np.column_stack((x, np.sin(x), (x-5)**2, np.ones(nsample)))\n",
  191. "beta = [0.5, 0.5, -0.02, 5.]\n",
  192. "\n",
  193. "y_true = np.dot(X, beta)\n",
  194. "y = y_true + sig * np.random.normal(size=nsample)\n",
  195. "\n",
  196. "res = sm.OLS(y, X).fit()\n",
  197. "print(res.summary())"
  198. ]
  199. },
  200. {
  201. "cell_type": "code",
  202. "execution_count": 8,
  203. "metadata": {
  204. "collapsed": false
  205. },
  206. "outputs": [
  207. {
  208. "name": "stdout",
  209. "output_type": "stream",
  210. "text": [
  211. "('Parameters: ', array([ 0.46872448, 0.48360119, -0.01740479, 5.20584496]))\n",
  212. "('Standard errors: ', array([ 0.02640602, 0.10380518, 0.00231847, 0.17121765]))\n",
  213. "('Predicted values: ', array([ 4.77072516, 5.22213464, 5.63620761, 5.98658823,\n",
  214. " 6.25643234, 6.44117491, 6.54928009, 6.60085051,\n",
  215. " 6.62432454, 6.6518039 , 6.71377946, 6.83412169,\n",
  216. " 7.02615877, 7.29048685, 7.61487206, 7.97626054,\n",
  217. " 8.34456611, 8.68761335, 8.97642389, 9.18997755,\n",
  218. " 9.31866582, 9.36587056, 9.34740836, 9.28893189,\n",
  219. " 9.22171529, 9.17751587, 9.1833565 , 9.25708583,\n",
  220. " 9.40444579, 9.61812821, 9.87897556, 10.15912843,\n",
  221. " 10.42660281, 10.65054491, 10.8063004 , 10.87946503,\n",
  222. " 10.86825119, 10.78378163, 10.64826203, 10.49133265,\n",
  223. " 10.34519853, 10.23933827, 10.19566084, 10.22490593,\n",
  224. " 10.32487947, 10.48081414, 10.66779556, 10.85485568,\n",
  225. " 11.01006072, 11.10575781]))\n"
  226. ]
  227. }
  228. ],
  229. "source": [
  230. "# look at some quantities of interest\n",
  231. "print('Parameters: ', res.params)\n",
  232. "print('Standard errors: ', res.bse)\n",
  233. "print('Predicted values: ', res.predict())"
  234. ]
  235. },
  236. {
  237. "cell_type": "code",
  238. "execution_count": 9,
  239. "metadata": {
  240. "collapsed": false
  241. },
  242. "outputs": [
  243. {
  244. "data": {
  245. "text/plain": [
  246. "<matplotlib.legend.Legend at 0x1788c9e8>"
  247. ]
  248. },
  249. "execution_count": 9,
  250. "metadata": {},
  251. "output_type": "execute_result"
  252. },
  253. {
  254. "data": {
  255. "image/png": [
  256. "iVBORw0KGgoAAAANSUhEUgAAAeEAAAFrCAYAAADmYTGwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n",
  257. "AAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlYlGX3wPHv4I4a4G6mabhlmWlWrkEpoKllC5Zptkr2\n",
  258. "lmhvb+WaltavzUqt1zTNViw18y1IRTNcstTMJVeUcs8dAVkFzu+PWxBk1GGYFc7nuuYCZp55nnsG\n",
  259. "5cy9nWMREZRSSinlej7uboBSSilVVmkQVkoppdxEg7BSSinlJhqElVJKKTfRIKyUUkq5iQZhpZRS\n",
  260. "yk3KO+vEFotF9z4ppZQqU0TEUpzjnRaEAXQPsvcaP34848ePd3czlB30d+fd9PfnvSyWYsVfQIej\n",
  261. "lVJKKbfRIKyUUkq5iQZhZVVwcLC7m6DspL8776a/v7LF4qx5W4vFIjonrJRSqqywWCyetTDLGnsm\n",
  262. "rssC/cCilFJlj8uDMGjAuZB+MFFKqbJJ54SVUkopN9EgrJRSSrmJBmGllFLKTTQIX8Kjjz7K2LFj\n",
  263. "3d0MpZRSpZQG4UuwWCw2LZoKDg5m1qxZLmiRUkqp0kSD8GXYspJbVzcrpZSyh8cE4ZiYlYSFjSE4\n",
  264. "eDxhYWOIiVnp8nNs3LiRdu3accUVV/Dggw+SkZEBwOnTp+nduzd16tShRo0a9OnTh0OHDgEwevRo\n",
  265. "Vq1axbPPPkv16tWJjIwEYNiwYTRq1Ag/Pz/at2/P6tWri/16lFJKlXIi4pSbOXVR1u6Pjl4hgYGj\n",
  266. "BCT/Fhg4SqKjV1g9hzUlPUdmZqY0atRI3n//fcnOzpb58+dLhQoVZOzYsXLy5ElZsGCBpKenS0pK\n",
  267. "ioSHh0vfvn3znxscHCyzZs0qdL4vv/xSTp06JTk5OTJp0iSpV6+eZGZm2vyeKKWU8i7n/pYXL1YW\n",
  268. "9wk2n7gYQTg0dHSh4Jl3CwsbY/OLL+k5VqxYIVdeeWWh+zp16iRjx44tcuzGjRslICAg/+fg4GCZ\n",
  269. "OXPmJc8fEBAgW7ZssfqYBmGllPJ+9gRhjxiOzsy0nrgrI6Ocy85x+PBhGjRoUOi+q6++GoD09HSe\n",
  270. "euopGjdujJ+fH0FBQSQlJRWaL75wXvidd96hVatW+Pv7ExAQQFJSEidOnLD59SillCr9PCIIV6qU\n",
  271. "bfX+ypVzXHaO+vXr58/z5tm3bx8iwjvvvEN8fDzr1q0jKSmJFStWFOzxFwnAq1at4u2332bevHmc\n",
  272. "Pn2axMRE/Pz8NF2nUkqpQjwiCEdGhhIYOLrQfYGBoxg6NMRl5+jUqRPly5dnypQpnD17lgULFrB+\n",
  273. "/XoAzpw5Q5UqVfDz8+PUqVO88sorhZ5bt25dEhIS8n9OSUmhfPny1KpVi6ysLF599VWSk5Ntfi1K\n",
  274. "KaXKBo8Iwr163cbkyWGEhY0lKGg8YWFjmTy5B7163eayc1SoUIEFCxbw6aefUrNmTebOnct9992H\n",
  275. "xWJh+PDhpKenU6tWLTp16kTPnj0L9X6HDRvG/PnzqVGjBsOHD6dHjx706NGD5s2b07hxY6pUqUKj\n",
  276. "Ro2K/b4opZQq3VxeT/hcvUWnXNNb6XuilFLez556wh7RE1ZKKaXKIg3CSimllJtoEFZKKaXcRIOw\n",
  277. "Ukop5SYahJVSSil75eRAdDTceaddT9cgrJRSShWXCLzzDjRtCq++Cg88YNdpdIuSB9D3RCmlvND7\n",
  278. "70PnznDzzYB9W5QuGYQtFssnQC/gmIi0Pnff20BvIAtIAB4TkSQrz9UgbCN9T5RSyvs5Y5/wbKDH\n",
  279. "BffFAteJSBsgHhhZnAsqpZRSXmPtWnjtNaed/pJBWERWAYkX3LdURHLP/bgWuMpJbXOpatWqUb16\n",
  280. "dapXr46Pjw++vr75P8+ZM8fdzVNKKeVKyckwdCj07QtNmjjtMtbr/9nucaBURKgzZ87kf9+kSRNm\n",
  281. "zZrFHXfcUeS47Oxsypcv6dumlFLKY333HURGQlgYbNsGNWo47VJ2RxOLxTIayBKRqIsdM378+Pzv\n",
  282. "g4ODCQ4OtvdybhMXF8fAgQOJjIzkvffeIyQkhG7dujFz5kxWrVqVf5yPjw979uzhmmuuITMzk9Gj\n",
  283. "RzNv3jwyMzO55557eO+996hcubIbX4lSSqnLmj4d3nsPvvwSgoIueWhcXBxxcXElupxdQdhisTwK\n",
  284. "3Al0u9RxBYOwNzt69CiJiYns37+fnJwcvv7660seP2LECP7++282b95M+fLleeihh3j11Vd5/fXX\n",
  285. "XdRipZRSdhkwAB59FCpVuuyhF3YuLyxza4tiB2GLxdIDeAEIEpGMYl/RC/n4+PDKK69QoUIFKlSo\n",
  286. "cMljRYSPP/6YLVu24O/vD8DIkSMZMGCABmGlPFBMzEqmTIklM7M8lSplExkZWqwyqohAQgLUrg1+\n",
  287. "fkUf/+wzSEkBf38ICDBfmzc3xyvPU62aSy93ySBssVjmAEFALYvFcgAYh1kNXRFYeq6m7q8i8i9H\n",
  288. "NchSrMXdF+fIHT+1a9emYsWKNh17/Phx0tLSuOmmmwq0RcjNzb3Es5RS7hATs5Jhw5aQkHB+9WtC\n",
  289. "wmiASwfixERYvhxiY2HpUkhPh7lzoWvXosempMDOneY5p0+br9u3m1W3LVo4+iUpW4nAyZNQq5Zb\n",
  290. "m3HJICwi/a3c/YmT2nLums48u30sF3wyqFq1Kmlpafk/HzlyJP/7WrVqUaVKFbZv3079+vVd1kal\n",
  291. "VPFNmRJbKAADJCS8xtSpYy8ehN96CyZONEkaQkPNCtrrrrt4D+LZZ4vel5YGVaqUsPXKbqdOwZNP\n",
  292. "QsWKcJnpRWfTtJV2aNOmDdu2bWPz5s1kZGQUmvv28fFh8ODBDB8+nOPHjwNw6NAhYmNj3dRapdTF\n",
  293. "ZGZa74dkZJS7+JOeeAKOH4dFi+C55+D664s/hOfra/05e/bAgw/CwoWQUSZm+1xvxQq48UZo3NhM\n",
  294. "FbiZBmEbXNgTbt68OS+//DLdu3enRYsWdO3atdAxb775Jk2bNqVDhw74+fkREhJCfHy8q5utlLqM\n",
  295. "SpWyrd5fuXLOxYflata0adGOXWrXhjvugMmT4Zpr4MMPISvLOdcqa7KzYexY8yFn+nR4913n/R6L\n",
  296. "QXNHewB9T5RyD2tzwoGBo/hsyFV0njMLZs6Etm3d07g//oAxY8z88Zw50LGje9pRWvz4o/lw89ln\n",
  297. "UK+eUy7h8NzRJWyMBmEb6XuilPvExKxk6tSlZGSUo64lmXfK76Dh9i3w9tvQv7/jVovaa/VqU6nH\n",
  298. "SYGjTBFx6u9Tg7CX0vdEKTfLzoZp00xJukcegZdfhiuucHerlJexJwhr/kWllDpzBlauNIt2WrVy\n",
  299. "d2tss2mT2f5kbVtUWXf0KNSt6+5W2EQXZimllL8/zJvnPQEYzArtgQMhPBz27nV3azxDZia89JKZ\n",
  300. "P8/MdHdrbKJBWCmlvFFIiEkCcsMN0L69WcRVoBBNmbN1K9x6q3lPfvvNI1Y+20LnhD2AvidKuVhu\n",
  301. "LviUoj7IwYMwYgT8+Sds3Fi6Xtvl5OaaVc+vvw5vvAGPP+7QxVfFSWuqc8JKKXUp2dkmwUb9+jBq\n",
  302. "lLtb4zhXXWWq/pw4UbYCMJgPIIsWmd5vYKBDT213WtNi0J6wB9D3RCkXSEkxiRqyssz877kCK0pd\n",
  303. "TFjYGGJjJ1q5fyyLF08ocr89PeEy9pFJKVUmHThgVhE3aGCSNpSlAJybC2++aRZyqWKxK61pMWkQ\n",
  304. "vsCnn35K69atqVq1KvXr1+df//oXSUlJgKmP/PDDD1t93urVq+nUqRP+/v7UrFmTLl268Pvvv7uy\n",
  305. "6Uopa7ZtM6tlBw406QovU4601ElPh/37oWVLMwR/6pS7W2SfPXvMPm4XjhpeMq2pg2gQLmDSpEmM\n",
  306. "GDGCSZMmkZyczG+//ca+ffsICQnh7NmzF31ecnIyvXv3ZtiwYSQmJnLo0CHGjRtHJS9ZnadUqXbl\n",
  307. "lTBjBvznP+7PfuUOVauaHNR//GHmjJs3h/HjTVlFb3D6NDz/PHToYKoeubAsbGRkKIGBowvdFxg4\n",
  308. "iqFDQxx2DZ0TPic5OZkGDRowe/Zs7r///vz7U1NTadKkCW+++Sb79+9nz549fPHFF4We+/vvvxMS\n",
  309. "EkJiYqJd1/bU90QpVQr99RdMmGAKRVxkZM8jZGebkYtXX4W77zZtdkMCjoJpTStXzmHo0BCHro7W\n",
  310. "IHzO4sWL6dOnD5mZmfhcsLrw0UcfJSsrixYtWlgNwikpKTRp0oTevXvz4IMPcuuttxIQEGDztT31\n",
  311. "PVFKKbeZNg3mzzfVjtq0cXdrbOL9C7MiIiA4GO680/6hEjvPceLECWrVqlUkAAPUr1+fEydOXPS5\n",
  312. "1atXZ/Xq1VgsFgYPHkydOnW4++67OXbsmD2vQCml3OPMGZg9G86tg3GriAhYtsxrArC9PCsIx8eb\n",
  313. "3K2LFkFAgJm/ybuNH2/9OePHFz7u44/PnyMiwuZL16pVixMnTpBrZb7h8OHD1KpV65LPb9myJbNn\n",
  314. "z+bAgQNs3bqVw4cPM3z4cJuvr5RygDVrIDLS3a3wXqdOwQ8/QKNGcO+9pieanu6868XHw8SJZuj5\n",
  315. "QuXKlYk5fM8Kwr6+5mv79pCYaFbB5d0uFYQLHtez5/lzzJhh86U7duxIpUqV+Pbbbwvdf+bMGRYv\n",
  316. "Xkz37t1tPleLFi145JFH2Lp1q83PUUqV0Jo1Zu7wzjvd3RLv1agRLFgA+/ZBnz5mTvbKK83QsCPk\n",
  317. "5pqV2h98YFJMBgWZwJ+W5pjzeyHPCsJRUSYZ+dKl9u/js/Mcfn5+jBs3jqFDh7JkyRLOnj3L3r17\n",
  318. "6devHw0bNmTgwIGICLm5uWRmZpKRkUFGRgaZmZns2rWLd999l0OHDgFw4MAB5syZQ0ctwq2Ua/z6\n",
  319. "qwnAX3wBPXq4uzXez98fHnvM/B3dsQNCQ60ft2ABvPWWSX6yfj0cOwa7d8PJk9aP79fPBN9ff4VX\n",
  320. "XjH7t9991+vLRsbErCQsbIx9TxYRp9zMqYu62P2eYtasWXL99ddLlSpVpG7dujJkyBA5ffq0iIiM\n",
  321. "Hz9eLBZLoVvDhg3l0KFD0q9fP2nQoIFUrVpVGjRoIEOGDJGUlBSbrunp74lSHm3NGpHatUV+/NHd\n",
  322. "LSl7Fi0S+fe/Re65R6RtW5GaNUWuuUbkhx+sH5+T49r2uUB09AoJDBx1bigWkWLGSl0d7QH0PVGq\n",
  323. "BPr2Nes/dBhauUHh1JZawEEpVdZ8912ZWMCjPNPFUlvaSoOwUsq7eUgALk7JO1V6XCy1pa00CCul\n",
  324. "VAm5ouSd8kyRkaEkJIzmxYTjPGXH8z1rdbRSSl3Kvn1wiTzu7jJlSmyhAAyQkPAaU6cudVOLlKv0\n",
  325. "urklC0PSGFDuM7uer0FYKeUd4uOhc2dYtcrdLSnCFSXvlIfZssXkpWjenOtTjlP1xtZ2nUaHo5VS\n",
  326. "nu+vv6B7d7O39I473N2aIlxR8k55GH9/eOQRk1WsalWTJrkYNQPyaE9YKeXZ9u2Dbt1g5Eh44gl3\n",
  327. "t8YqV5S8U25y9qz1mgSNGsGDD5oADHYnmHLLPmFVlO4TVsqKw4fhtttg6FAYNszdrbmk4pS8U15A\n",
  328. "xGQEe+EF08P94w9zf3g4zJ1r9SleUcpQKaVsduaMKSjQv7+7W6LKko0bYfhwk9f6vfdMas1Fi0xN\n",
  329. "ggIpkXNyYN06iI42ty1bNAgrpZTLJSfD6tWwciWkpEDNmlCrlrld+H3Vqh6ztVldKDER/vMfiIkx\n",
  330. "6w+eeALKlzdD0BERMGMGyT7+LFligu6PP0K9etC7t7l16aIZs5RSyukSE80i7RUrzG3nTrj5Zngn\n",
  331. "OYJ6yfGk4cvHt0eRGr+W+MQ0jqf6cjTFl3+Sq/Jc5hsE+v6Df8Pq+C6Mom4LO4vVKMerVAkaNoRd\n",
  332. "u8DPL//uJIs/n3aeyw/3w9q10KWLCbqvvAKNG5fsktoTVkopG8TFwcKFJuju2QMh7U4yoN5PdEpf\n",
  333. "Rs0XnqBi11vN4p0VK8wTwsOhWTPYvt2U6ktNJenIMSr99TeVxaym/rbcfczoNp+BA00K7OrV3fby\n",
  334. "yq6ICLP9zdfXVOErsMAqPd1UXXz7bQgJMb/S7t2hWjXrp7JnTlh7wkopz7Bhg6lb+/HHHjVeu327\n",
  335. "GaEctDqCl6r/wRskUvGa6vhs+hu6djV/nQMbmoML1kSfMaPQH/S8rFpTZCN3soh1tOfVBk0Ja7OD\n",
  336. "uXOv5dlnhMeDEug+pCmhoVChwsXbVNZTZDr09cfHn//gFBEBc+dy9izMmgUTJkCHDuYDWKtWDmt+\n",
  337. "YcUtu2TrDS3Pp5SyVVycKUe4cKG7W5Lv2DGRp582zXr/fZGcrkFyrl6dSHCwSGZm0SclJoqEh5uv\n",
  338. "FwgNHS0g4keifE24+JEoIBIWNkZERE5sOyIpflfK31VaypZybWR/3Zsks3vPIucqXDrP3AIDR0l0\n",
  339. "9ApnvA351wwNHS1BQeMkNHS0U69lS1tK/PrXrBHp2VMkI8N8BZH27SXnZKJ89ZVIYKBISIjIunXF\n",
  340. "axt2lDLUIKyUcq/oaJFatUSWLXN3S0REJD1d5M03TWncYcNETp4890CBP9bWguzlBAWNKxQ48m5B\n",
  341. "QePOH5STI7J2rWTVb5h/wN7mIZKRcf6QvGB+4S0vmDuaO4L+pZTo9WdmiowcKVK3rsi335r7EhMl\n",
  342. "NzxcfoxKlNatRW69VWT5cvvaZk8Q1mQdSin3mTPHrECNjjYJOWwUE7OSsLAxBAePJyxsDDExK0vc\n",
  343. "FBGz/fPaa2HPsr38ujyd99+HGjXM9e7NaMXPtVtxb/UgYn7ZUuzz25RVy8cHbrmFCjdeD0BWvUbE\n",
  344. "VOhLq1Ywb55poyNTZNryPnpaXmy7X/+ff8Itt8DWrbB5M9x7LwC/7/Gn88G5vPi6PxMnwq+/wu23\n",
  345. "O7rVl1DcqG3rDe0JK6UuJTdXZNAgkT//LNbTnNEzW7dOpGNHkY6tU+TvAaNEatQQWbnSodezfp6R\n",
  346. "1s9zwbD2smUiN94o0qGDyC23fOSQnrCtr8umHrwL2dUT3rPHjLZ88on5dyciaWkiL7wgUqeOyOzZ\n",
  347. "ItnZJW8bOhytlCrtHD0cO22aSN3aObLyiU8l98orRQYOFDlwwCnXi45eIWFhYyQoaJyEhY0pViDP\n",
  348. "yRH57DOR2rXT5QrfjdKWDZcP5pdg6+ty9fD35RTrw8zgwSJBQWYqYc+e/Lvj4kSaNhXp10/k6FHH\n",
  349. "tc2eIKyro5VSXsVRw7Fnz5qkSL8tTeFgblPKz02H66+HqVMLrWp25PBvr1632b2K18cHBg2C8PDK\n",
  350. "jHvoFC8v7EOWpTwHrwjgn9c+JKyY57X1deXVyy04JG3yYvco/otwgLz3b+rUsQVShPaw/r4WXPk8\n",
  351. "ciTJM+fy0kvw/ffw4YdmW5i7aRBWSrmGiEO2HjmiYtHJk9Cvn8nNsHxdNcp3qQ3btpkJwXPbVBx5\n",
  352. "PUeqUgXe+u4OsjrcRLW1q6iRlMw1//43hHUuVhEBW19XsYKei1zyw0xmpvnFQqEtY7H3z+DJ6yE0\n",
  353. "1Pyq7ay34HjF7TrbekOHo5VSeb7+WuTeex1yqmINR1qxbZvZgvKf/xSYB7zEyueSXs9pzrU5KfBG\n",
  354. "mV9tkCRWrivHf9ll89M99nWVxDffiDRsKHL8uPk5MVEy7gqXweGJ0qSJ8xfgY8dwtGbMUko5T2Ym\n",
  355. "/PvfsHixWd7brp1DTmtvxaKYGHjsMZMB6ZFHCjxQIDewtS6SR1ZIKtDmtIr+THtmK29Ft+KNt3x4\n",
  356. "9FHbBh088nXZ49QpePZZU+no88/hlluIjl7J6NGH2bmzF/XqbeHdd4X77uvi1GZoFSWllOf4+2+T\n",
  357. "5+/qq+GTTwrl4nU1ERN4Z76XwtcfnqTdvY3d1hZn2rgRnnzSVN776CNo2tTdLXKBJUvMNrf77oP/\n",
  358. "+z/w9eXzz3/j6aevIC3tfJqrwMDRTJ4c5tQPGfYEYd0nrJQLOWN/q0fauRNuvRUefhjmz3drAM7I\n",
  359. "ML3e1Z//xbYrOtJu+5dua4uztW1rCgz07GnSLW66JQK5sa1JrZlXjL60iIiAzp3h/vvNKqvJk5Eq\n",
  360. "vsyaBU8+2bpQAAb37m2+FF2YpZSL5OUOLrjKNCFhNIB3DgFeSvPmsHy5WW3sRqdPw513Qo9KPzP2\n",
  361. "eH8sL4+Ff/3LrW1ytvLl4fnn4Z57IOWmeCynN5kHgoNNhM5btOTt4uNhzRrz/Vdf8fcNdxMRYUam\n",
  362. "b7jhczZseLrIU+xZ0e5s2hNWykU8LfOQU/n4uD0AJyaaijdf7O3C2NWhWK5uBAMGeFRxCGe65hq4\n",
  363. "oYNZHbyz/HX8ebweOc1awhdfmGr03u7cymdp356P2s3g5pvN73vtWqhZ85DVp1y48tsTRqY0CCtV\n",
  364. "Ujt3wnvvwdNPm9SL115rqut89lmhw/L2ZVYgCzi/XsITP53bTAT++svdrSji1CnzB3lg83Vck7gB\n",
  365. "S3Y2rF9vhjDLEMucKAgP58qE1XzWfzF9kz/nn5enkRsxxN1NK56DB2HiRPPvLU9UFMk9wunhs5Sv\n",
  366. "Yvz55Rd46SUzEhAZGUpg4OhCpzB7m0Pyf84bmYqNnciKFeOJjZ3IsGFLXB+Ii7uc2tYbukVJlTYp\n",
  367. "KdbvX7JEZOhQkalTRWJjRbZuFVmxQmTHjkKH5WUeGs0ESaWKrKCrvM4IGdv2gQJVArxIXJzJ9di1\n",
  368. "a34qQE9w4oRJ8fj88+eaFRJy0e1HZc22bSK3B+dK51anZNUqd7fGBqmpIuPHmzSio0eLZGWJiEhS\n",
  369. "ksjYsSYT5QcfmGxiF7pcdjJnZAJD01Yq5WC5uaakSmioyJ13luhUBfdlVidJuhMrUwI6y/E2N4lU\n",
  370. "ry4yZ46DGu1kGzaIhIWJNGki8vnnjkm66yDHj4u0aWNyAud/LrhEecGyKDfX/FNr0MCk7k4dUCC1\n",
  371. "46lT7m6ekZsrEhVl9vz26yfy998iYioPTp5siiA9/LDIvn32X8IZObHtCcK6MEspa3JzTW67N94w\n",
  372. "k4svvggDB5bolBdmHipXOYdrhr5OrV63QXa2uVnz44/QoAG0bm3mWt3pjTdgyhQYM8bshalY0b3t\n",
  373. "KeDECTMb0LOn2amSP/Xr718oA1ZZZ7HAgw9Cr16maP3G9+LpnH0utWOjRjBiBDz6qPk35y7dusG6\n",
  374. "dWZdwfTp5F7hT9SXMHYstGoFsbFwww0lu4THZEIrbtS29Yb2hJU369lT5KabRObPd39P78UXRZo3\n",
  375. "F/H3F+nd2xS7/fVXkbNnXd+W/ftFzpxx/XUv49gxkdbX58prkUc8aWTcKyR3MZm3/ijfXj4Z+JOk\n",
  376. "DXpKJCBApFcvke++yx8CdqmuXfO7poe7hEubNqaC1AoHJvNyRsYwNGOWUg5y+DDUr+9ZK2mPHIHV\n",
  377. "q2HlSvjlF/O1atWix2Vl2ddDzciAVatM8oPMTFPIoBhiYlYyZUosmZnlqVQpm8jIUJdsvTp2DLrd\n",
  378. "IUyr9gKda+7AEhPj9Gt6A5t/H+cyb8X/ZwaTZvkzdy48dHcqo1vM58pFs0yWs/ffN4va4uPNquSo\n",
  379. "qJIlX87NNf/W5s2Dd98t+u/1zjth0SJ2VGvPI/WXMvJNf/r2dfx/R0dnDLMnWYf2hJUqTU6fFqlY\n",
  380. "0czXdu8uMmSIyNtvmzqq1hw7ZuYDbzo3L92pk8irr4r8/nuxLuuMGr+2OHJEpNW1ubLmlmGS2769\n",
  381. "58xpullJfh/Hjpm1UHXqmGUQy2PPmtGFoKDzJwsPN2sloqNFEhKsr4y60I8/irz1lkirViKVKolU\n",
  382. "q2b+rRUYWTl2TGTGDJG7gxLl+8rh8tnkRLcM+NgL7QkrVUx580551VZKg6ws2LcPEhJgzx7ztUoV\n",
  383. "eP31osdmZpqEB1WrQrNmJt+hHcLCxhAbO9HK/WNZvHiCXee8nGPH4PagXGZXG8otPr+bHrzHlMax\n",
  384. "nyNGFBzx+0hPh6++Mh3VSpXgh5w7uerPRdC+PSxdaubZFyyAHTvg+HGS6jUg7chxksr5klypCokf\n",
  385. "TiHsgV7nT/j662bi/n//O7+tLTycw+/P5bvvTGK1jRuhRw+TgbJ3b/PP1ptoT1ip4pg2zXzc37DB\n",
  386. "3S3xes5YaXopJ0+KzAt4UpKq1jdz5Xv3OuU6ruaoEQVH/j5yckRiYkQeCEuUBeXDpXXDROnXT2TS\n",
  387. "JJHVq0XS0kQWzVskdzd4TLbRMv9iMVVbWm/3uepP/zRsL2G3Joq/v8jAgSILF5pzeTN0dbRSNsjM\n",
  388. "hMhIM7/6yy9lJMu9c7lypWlysuktRfnu5orEf8ydL7xQKlZAXzyr2thi9YYd+fvw8TFTtHfe6U9u\n",
  389. "7lxa7TZZqdauNVPD27dD+fKtSUnpQQR30oqdrKM9D6UuJeDZrSxcCElJZuo5KQnOHo/i5YoRLO06\n",
  390. "g8gB/nTrVnoyadrjkkHYYrF8AvQCjolI63P31QC+Aa4G9gL9RKSUZQZXpdY//5iE73XqwG+/QfXq\n",
  391. "7m5RqRAZGUpCwuhCAcRkKOrh0OukppphyptugsCavnAIMzw6Y4ZDr+MueVnVLlTcrGrO+n34+ECL\n",
  392. "FuY2aJC5Lz0dOnVazKZNT/AQUUwngqeYQRL+1PRJ4+abTf0OPz8zW+Dn50/TpnPpW8H6Ndy1wM9d\n",
  393. "LtcTng1MBT4vcN8IYKmIvGWxWF469/MIJ7VPKcd66y0IDTUbDt2957YUuXAPtFlp2sOhfzwzMqBv\n",
  394. "X5MT+cMPwZIcdckawN7IUT1YV/w+8lSpAnXq/A1AEv48yPkRiWbNVhEREWrzucpUkZM8lxuvBhoD\n",
  395. "fxb4eSdQ99z39YCdF3me8wfglSou3UTqlbKyRPr0McmTvGm1bHE5Y++qKziq3c5IJelKuGhOuK6I\n",
  396. "HD33/VGgbsk+BijlQp6071fZJDvbFD/q8/dkHv28G+XLu7c6kzO5sgfrSI5qt6OG471JiRZmiYhY\n",
  397. "LJaL7kMaP358/vfBwcEEBweX5HJKqTImNxeeeAK6bX6XJ3Km4VM33N1NcrpevW7z+KBrjSPa7TGp\n",
  398. "JG0Ut3QpcV9+Cbt3m5sdLrtP2GKxNAZ+kPMLs3YCwSJyxGKx1Ad+FpGWVp4nlzu3Uk61ZIlZtFOz\n",
  399. "prtbouwgAv/6FzRf9iHDsifhs3IFNGxYrHOUtUU+3s7anHBg4CgmT/aw0YCcHHjgAbNfumVLk7C8\n",
  400. "Z08sHToUe5+wPT3h74FHgDfPfV1oxzmUcq5ly8zyzZ9+0iDshUTgP/+BqxbPZFj2m3YH4DK3yMfL\n",
  401. "ec1wfLm9yTSZAAAgAElEQVRy8NhjMG0a1K5dolNdsidssVjmAEFALcz878vA/4C5QCMusUVJe8LK\n",
  402. "bdavNyVivv0WunZ1d2tUMYnA2jYRVN2zietz/8Tyy2qzJ6mY3JHFS5Uyhw6ZZfmBgTYdbk/GrEvu\n",
  403. "0RCR/iJypYhUFJGGIjJbRE6JSHcRaS4iodYCsFJus2sX3HUXzJypAdgL5eaaPCoV/o6ndfp6LJkZ\n",
  404. "8Oabdp2rLC7yUQ5y5AgMH27qJa5e7dRLacYsVXocP25SKb32mgnEymFcMbeamwtDhsDWrfBuB19Y\n",
  405. "RokScbh9kc+2baZbX6EClC9vvlaoYBLFlNMPAh7pxAmTS2DWLHj4YfM7rFfPqZfUIKxKj5o14eOP\n",
  406. "oXt3d7ekVHHF3GpOjlkF/fffZj1dhZySJ+JwSRavEyegWjWoXLnoY8OHm5KYZ8+afVZnz5rbpk1O\n",
  407. "/8Ou7HD2LNx6K4SFwebNcNVVLrmsVlFSygbeusrWUyryXEp2Ngx6WMg5+A+fLL7Saolkezm6Xizp\n",
  408. "6WZ4culSs/gvIQFiY80f75JIS4MRI0w2t+BgE9iV66WmWq/RbSN75oS1J6zUZXjrKltHtduZc6tZ\n",
  409. "WfBQf6HfplHcd+UayvnGAY5LqOLQPbcTJ8Ibb0CbNhASAlOmmOBb4SJJkIsjOxsaNID33oP+/c0w\n",
  410. "/H33mRW4jvxU4mYe/2HWHe91cVNs2XpD01aqUsJbU+k5qt3Oev0ZGSJ39c6R76+JlJy27USOHy/R\n",
  411. "+Zzu4EGRpCTnX+fMGZHoaJH77hN57DHnX89FHFWmscTOnhX57DNTo9HBsCNtpWawV94rOhoOHnT6\n",
  412. "Zbx1la0jK/IEBo4udJ+ZWw2xu23p6XDPXTkM3fYUveqsx2f5T1Crlt3nc4kGDeCKK5x/napVzRa7\n",
  413. "+fNLTXUouFSZxqWua8TmzWb04osvTE1MD6DD0co7bdxohupWrnT6pdy+ytZOnlqRJyUF+t4tjNv7\n",
  414. "OF0a7ccnOtZz5kDPnjXb2+6+G6680t2tMauqrTl50uuS0Lj1w2xmpplOmD7dTCk89pjH5JHXIKy8\n",
  415. "T2KimS/74AO49lqnX85VtXIdzZHtdtTc6u7dsOmWCKZViafZlWewzPnBMwKwCCxcaBZHNWpk5nw9\n",
  416. "1ZkzcN110K0bjBwJ13tHQQu3fZg9eNAseGve3KxM94QPVwXo6mjlXXJzzR7gpk3h/fdddlmHr7J1\n",
  417. "EU9qd3Q0PP44bPIP5srdK8yd4eEwd+6ln+hs//xjyjSdPAlvv23+YHu65GSTMvHdd+Gee2DChBKn\n",
  418. "T3Q2t+WFzskxK9h79HB679ee1dEahJV3mTgRFi+Gn392zKpU5XS5uebXNmMGzJsHHSfcCYsWmRXA\n",
  419. "S5favQ/YIdLToVUrMzw5erT3JdFITIRXXoGvvjI3D/8A4UkfCp1Bg7Aq/SZPNr0nDxtSUtYlJZk9\n",
  420. "wFUO7eG96GbUrw+cPl3iRBwOdeBAsYtDeJzt26FGDU0C4mYahJVSHmPHDhhwVwoz5QlubHQKn5+W\n",
  421. "esxiGFUKbd4Mzz9vpjdq1HBLExxewEEpbxcTs5KwsDEEB48nLGwMMTHOX02tYMECeKzTLpan3Uq7\n",
  422. "2/3w+TFaA7A77N1rhiNKs+xsM98REmLyPQcEuLtFxaKro1Wp5a2ZrrxZTg6MGwfHpn/HKstTVHjl\n",
  423. "dXjySXc3y1i2zJSl693b3S1xne++M1Woxo83v4eLbXnyVjt2wCOPmGmNDRu8clpBe8LKs2Vl2f1U\n",
  424. "dyQHOHXK/C3Yvdssts3x7K3EDhUbCwvrRNB/akc+Sh1IhXlzPCMAi5jKOA8/XKpSQNrkuefMIrhv\n",
  425. "voEbbzTVMUqLkydNnu0nnjCvywsDMGhPWHmyzZvhwQfN3r5KlYr9dGcmB8jJMYF282Zz27LFfE1K\n",
  426. "gmuuMVs5T50yP1evbqaoCt5q1zZ16jt1gmbN7Bup9ZQ8vBs3wosvwv79sLpePLW3/2YemD7d7GV1\n",
  427. "p8xMGDTIlGdat85r/1CXSNu2sHw5fP89PPss3HwzREW5u1UlV7Mm7NzpdcPPF9IgrDxTSopZBT1u\n",
  428. "nF0BGByfHGD1avjsM/OZYPt2sxC1XeuzBDfYTd+WW2nW+E/8o7/AsueEiay//0xOdX+SksxOklOn\n",
  429. "4Oy6jTSeMYpyq49xZH4t7iv/Df+k+9OxI3TsaILyzTdfvsPmCUPt+/bBmDFmlPfll02nt8LdvrCd\n",
  430. "EtUBdpi0NLOHtnp1k1nNWrnBssJiMVnAevY0BZtLCy8PwIAWcFAeKDdXZMAAkSefLNFprCeMH1ns\n",
  431. "hPFxcSK33y4SVW2w7L8mSE526ClJ+xLNg6+8ItKsmcg994i8/LJIq1bnLxYeXvRkH30kEhBw/piA\n",
  432. "AEl55F+y5N2t8u9/i3TsKOLrK9Kuncizz4rMny9y4kTR07izqMTJkyLPPy9ys98uie3+piQnF3gw\n",
  433. "MdG87sREu88fHb1CQkNHS1DQOAkNHW1/gv8//hCJiDAJ+5X3OnFC5PPP3d0Km2BHAQcNwsrzfPKJ\n",
  434. "CWapqSU+VXT0CgkLGyNBQeMkLGyMzX/Qc3NFfvpJ5LbbRNo0SZLokaslp2tQ0QCbm1v4iT17msfb\n",
  435. "t794IMo7pl07kUWLRCZNEtm+Pf/hjAyRNWtENt06WLYEdJUl5XpK19aJ8vzzIj/+KJKSIhIUNM5q\n",
  436. "EA4KGlf8N8lGZ86IvPWWSKsa/0hcqyGSE1BT5PXXHVqNxmMq7ZQ1OTkiM2aU6MOTw509KzJ1qkjt\n",
  437. "2iJDhxb9v+aBNAgr75eYKFKvnsiff7rl8rm5IrGxIl26iNza5Khs7jNKcmvWNN1SWwKsLT1BW3uL\n",
  438. "QUH5kSjtqmbyTf/vpE/nk1Ktmoi//16n94Szs0XWrRN57TUzEvBluYflaJVGklu+gsjTT9tVevBy\n",
  439. "vVxvLRvp9U6fFunf34zSPP20yLZt7mtLVpbIggUi110ncscdbvtbYA8Nwqp0sDb+6mS5uaZT2rGj\n",
  440. "yB2Be2VnyLOSGxAgMmSISEKCOcgBQ63Fkhf0W7YUGTNGJDRUpHp1yWndRt4Yt1b8/eNkOoPlZ4Ik\n",
  441. "hp5Sv8pv0q/fPpkzx/zdysoq/iUTEsyI+f33i9SoYQYkIiNFfvhBJOfqJkVHAorBll6uO3r4qoBD\n",
  442. "h8y0St26It27m7kYVxs3znwK/u47r+j9FmRPENaMWarMS0szuxw2bTLrwPp99yA+Vzcy2zvq13df\n",
  443. "w6yldzx71iysaduWmJiVNHz4YW5I3A/A1ubd+bt5OGtTWrH04LVsOVSTZs1MkR0/P7OiOyfH5DbI\n",
  444. "+77gfVv/FK5K2UFI2xM0Gngb3bqZErr57ixZzuewsDHExk60cv9YFi+eYPMxVh08CL//Dn37FqtN\n",
  445. "6iIyM03mKT8/UzDFlXJzwcc7d8/akzFLV0erMu3AAfN3++3kCILqxVPuc1+TCN8TVl36+xetMFSh\n",
  446. "gtlywrlV0B2ug0X7oX17ro/6L9f/3//R58RsJh7fjlxRmTMVW5G5JonMCleQU8mXFU9FkVPdn3Ll\n",
  447. "4IqTf9FuzouUyz2L/99/UDnpGJbyPljaPweDrKywjooqUc5nW7aM2VV+ce9esxXq6aeL3SZ1EZUq\n",
  448. "mX3VF7Nkidlnd911xd+9kJ4OP/xgVqx/8EHRx700ANtLg7Aqs9asgfvvNx3e26Pjsaw8V17vqafc\n",
  449. "X17PVhcGxk8+MfeLYPnnH6pv30714cNhm3ltD6+KOP/aEgOgwQMmsI/9C04ehGxgzx7r17L2oaAY\n",
  450. "bNkylre9aurUsQUq7Vyi1N3u3dC9O7zwgtkDq1xj8WIzGpKQAC1bmg+GbduaalQX1ocWMVujDh6E\n",
  451. "I0dMGcbbbjOZrry41+swxR2/tvWGzgkrW2RluWXeadYskZ7+a2T5zHPzvbYsuvJWxVmx7cTX76gt\n",
  452. "Y/l27RK58kqRjz92bEOV7VJTRX77TWTaNLMdLC3N+nE//yyyZYvIsWMOXU3vadA5YeV1XnzR5H/9\n",
  453. "/nuXJPjPzob/PC8EzPkvo3Nfpfy8r+H22z2vvJ4j2fLaXPT6HVZPNifHpGF87jl4/HHHN1QpO2gp\n",
  454. "Q+VdFi+GwYNN3sNatZx+uVOnYND9aQzfOYTgGpsp/78FEBjo9OsqJzl50qQuVMpDaClD5T0OHzbz\n",
  455. "R19+6ZIAvH073N/uL6Zv7cQdwbmUX/erBmBvpwFYlQLaE1aul5Njan8GBZk9QU7200/Qvz8svHMG\n",
  456. "nW7KNAt4tLatUsrBdIuS8g7798NVV5ns/062fj0c6hVBfMt4/I/5wsNRGoC9UXZ26auFqxTaE1al\n",
  457. "2O7dZifEnzWDqXVuiw7h4d6z/UgZp0+bkZMPP4RbbnF3a5S6KJ0TVuqcI0cgLAwmTIBajXzNnZ5Q\n",
  458. "Xk8VT0oK9OgBnTubGo9KlTLaE1alTnIyjGi7hLZhdRj837ale/tRaZaaapI8XHcd/Pe/Oo2gPJ5u\n",
  459. "UVJlXmYmvNRxJRN23Ee1n77H0qmju5uk7JGeDn36QMOGMGuWZlVSXkGHo5VnioqCd991+mVycmBc\n",
  460. "r995Zfv9+C6cowHYm+3dCy1awMyZGoBVqaY9YeVc27ebrUjLlkGbNk67jAi8PmAbT8/vRrWvplMx\n",
  461. "/G6nXcsVYmJWMmVKLJmZ5alUKZvIyFD7MksppVxGtygpz3LmDNx3H7z1llMDMMA7r6Ty+PyeVP5w\n",
  462. "UqkIwMOGLSlUSSghYTSABmKlShkd51HOIWJSUnbqZDJjOdEnn8B/P6uKz8/L8R08wKnXcoUpU2IL\n",
  463. "BWCAhITXmDp1qZtapJRyFu0JK+f45BNTmOHXX516mX09Imi5PJ4/O/hS7boop17LVWypu1uqnD5t\n",
  464. "pivuv9/dLVHK5bQnrJzj7rth4UKoUsVpl/jrLzj4Uzydzq6g2qpFZhtSKWBL3d1S49Qp6NbNFHdW\n",
  465. "qgzSIKyco1YtaNzYaafPyDDJr65sWvoScURGhhIYOLrQfYGBoxg6NMQp14uJWUlY2BiCg8cTFjaG\n",
  466. "mJiVTrlOESdOmADcrRtMmuSaayrlYXQ4WnmlqD5z6FG9EY2XRcFTpSsRR97iq6lTxxaou9vDKYuy\n",
  467. "3LYI7Ngx6N4deveG117TRByqzNItSsrrLJ74O7eM60mFNSuofmsrdzfHq4WFjSE2dqKV+8eyePEE\n",
  468. "51349ttNYu/x4zUAq1JDtygp95k/H/r2dXqlm91rjnPduPtIems6TTQAl5jbFoF98w3UqePcayjl\n",
  469. "BXROWJXc1KkwdqzJ9etEqUnZnAx9kBNhA2jy/L1OvVZZ4bZFYBqAlQI0CKuS+v57+L//gx9/BD8/\n",
  470. "p11GBFZ0GomvXwVu/N6xw6RuW5jkAVy9CEwpVZgORyv7bdgATzwBMTHQpIlDT31h2saWLQeRktqT\n",
  471. "qb+NxFLecUOlZT07ldMXgZ08CdHR8MgjjjmfUqWMLsxS9tm/Hzp2hA8+gHvuceiprQVGH59UPvxw\n",
  472. "O0OGOLamrNsWJpUFf/5p9ov362dGS3QBlirltIqSch0/P5gyxeEBGKynbczNrcrChd87/FplLjuV\n",
  473. "q3z7LdxxB0ycCG+8oQFYqYvQ4WhlHz8/U5zBCVwZGMtUdipXyM2FV16B2bNh8WK46SZ3t0gpj6Y9\n",
  474. "YeVx8gLjV/TnZ4KJ4U78OO2UwKgLkxwsNRW2boX16zUAK2UDnRNWHicmZiVfPvoNs0/MpDJZAPxY\n",
  475. "tSXyzfRCC4YcVXM3JmYlU6cuLbAwKaR45zlzBjZtMgvV/vgDnn8ebrih6HH//S8cPGjyaV9xBVx/\n",
  476. "PbRrBwEBxW6zUsrz2DMnrEFYXd7Zs2b+NzISKlRw+uUy9h0lKfBGjlaoxg0Ze9h1RX32zviYsAd6\n",
  477. "5R9jbfFWYOBoJk8Oc92q5kmT4OOPzSK11q1NQL3pJujTB+rWLXr8N99AQgKkpZnKQZs3m+C9YoV5\n",
  478. "rrcR0blepQrQIKwcLz3dVErw8YG5c6FyZedeLzeXXU16sKXKrdz/6/NYLpIX2iNWNW/caN6XVq2g\n",
  479. "QgX7euY5OSaQ+ViZGXr6aWjRwqR4bN3a+jHukJFhErQsWgQ//aSBWKlzNG2lcqyUFLjrLqhfHz77\n",
  480. "zCW94N1PvknikQzu2D8OS0B5E/itcMniLRGIizNznEOHFn28bdv8b+3eb1zuIu0VMbmV4+Jg2jRT\n",
  481. "cSgoyATkZ591T+ATMb35kSPNcPu0aRqAlSohD/lorTzOqVOmyk2zZvDFFy4JwCf3p5L15TdkzY6i\n",
  482. "Zt1Lfz506qrm3FyTCaxTJxgyxKbqTNa2VSUkvMbUqUvta4PFAv37w/TpsGsXbNliVqMfPeqewPf2\n",
  483. "23DVVfDOO2bl8//+Z3rpSqkS0Z6wsu7ll6FrV/PH1wV/9EUg4rmqNH7mDyY9dPnPhpGRoSQkjL5g\n",
  484. "TngUQ4f2KFlD5s6FCRNMIYpRo+Deey/eWy3A6T3zBg1gwICLP756NUREwI03Qps257/Wq1e861xs\n",
  485. "njckxOwJDwzU3q9SDqRBWFn37rum9+uiP7izZ8Pu3fDVV7YNzjgt3eL+/eaDR1hYsV672/cb33IL\n",
  486. "REWdX+z15pvm+z594NNPix6/apWZawfzOi0W2L7dZEGbMqXo8Tfe6NTmK1VW2b0wy2KxjAQGArnA\n",
  487. "n8BjIpJZ4HFdmFUG2bM4ac8e87f/55/Nrh1vZH219igmT3ZgHubiEjErsatWLfpYQgKsWWOOybs1\n",
  488. "aQIdOkClSq5vq1KlgMsWZlkslsbAYOBaEcm0WCzfAA8Cn9lzPlU62LM46exZGDgQxozx3gAMLiiE\n",
  489. "YA+LxXoABjOsHBjo2vYopYqwqydssVhqAL8CHYAU4DtgsogsK3CM9oS9QUbG+T3AJdx+VOxtQykp\n",
  490. "LL5/Ju/JcBYttrh2B86KFWa4vVMnF15UKVWauayAg4icAiYB+4HDwOmCAVh5iS1bzFzi2rWQmXn5\n",
  491. "4y+jWIuTRDh+3xCOr9rBp5+5MADn5pqKPg88YPZAK6WUG9k7HB0IDAcaA0nAPIvFMkBEvip43Pjx\n",
  492. "4/O/Dw4OJjg42N52KkfKzYX33jPVbd5+29R6dcACrOIsTsruEkzVNb8T2qYzdaucBi6/DajETp2C\n",
  493. "QYPM1/XroWFD519TKVVqxcXFERcXV6Jz2Dsc/QAQIiJPnvv5YaCDiDxT4BgdjvZEZ86YBBxZWfD5\n",
  494. "53DNNQ47tc2Lk7ZuJfuGtpSXc0E7PPyiSTkcZv16c5177zUrh12w71kpVba4MmPWTmCsxWKpAmQA\n",
  495. "3YF1dp5LuVLVqiYBxX332bT/tThsWpx05gxHg+7mGM1ozQ6TF/q+RwhzaEusOHnS5Hp2UvlFpZSy\n",
  496. "R0m2KL0IPILZovQH8KSInC3wuPaEVRFRkxez4bmNzJKnmU4ETzGDWoFvu7bwglJKOYEWcFCFHTsG\n",
  497. "deq4uxX5srOhdu19nD59dZHHXFp4QSmlnMBlq6OVh/vlF7j7blNWLyPD3a3JN3EigPXFWw4tvKCU\n",
  498. "Ul5Cg3BpkVd0oHNnswK4Rw+T+N/ZpQdttHo1fPQRtGkzz+rjDk3vuHgx/PCD486nlFJOormjS4sx\n",
  499. "YyA2Fl56yeaiAy4hwulTuQwcWI6PPwYfn04cPOiEwgt5li0zH0L+9z/HnE8ppZxI54S9zcWq3KSn\n",
  500. "m16vh1W4kY+mE/vOFn7o8SEffGDui4lZydSpSwusoA5xzKKsFSvg/vvh229NLV6llHIhXZhVGmVm\n",
  501. "moxWP/9sbj4+sHy5u1tlm02byOgaQnj91czd3IIqVZx4rTVroG9f+PpruOMOJ15IKaWs0yDsjS7W\n",
  502. "sz11ypTT27kTWraE2283ty5doHp117ezuJKTybrhJp499SqRa/o7tzhDejq0amUmncOcvuNYKaWs\n",
  503. "0iDsybKz4bXX4PhxcztxAg4dMl+PHy8aiHNy4PffoUUL8HdBSkdHEiGn34MsXBHAkXEf8cwzl39K\n",
  504. "iSUlgZ+fCy6klFLWuTJjlgIzVLx7tymGvmOH+Rofb4aPK1YsfGy5cmYFc/PmZgVz7dpQvz40amS9\n",
  505. "J1yuHNx6q2teh6OFhpId9yuN/Ttz70MuygutAVgp5YW0J1wSV18NVaqYodBrrz3/tU0bz1md7AaJ\n",
  506. "NwQR8OdK84Mr8kIrpZQH0J6wM5w4AeXLWx8S/uuvMh1srTlyBLbHV+UOgPbtYcYMdzdJKaU8libr\n",
  507. "sCY93fTe7roLmjaFlSutH6cBuJCsLLNDaP1zUaYHvHSpc+azp08325CUUsrL6XB0Qbt2wVtvwXff\n",
  508. "mZSPDz8M99zjHauRPcC//gWHD8OCBWYnlVPExcEDD5gtSYGBTrqIUkoVnw5Hl9TZs2ZO99VXoUED\n",
  509. "d7fGe0ydylfZD7B8eR3WrXNiAN63D/r3h6++0gCslCoVtCesSuajj0h/431an/mN6NX+tGzppOuk\n",
  510. "ppo90oMGwXPPOekiSillP90nrFxr2TJyHhpIcLnVvDC9KXfd5cRrPfGE2Wv96acel5pTKaVAg7Bt\n",
  511. "RGDWLPjtN5g5092t8V67diFduxJZdy417wtm/HgnXy8+3uyp9pCqUEopdSENwpeTkAAREZCcbALx\n",
  512. "DTe4u0XeKSkJ2rfnq4Yj+KbaEyxc6MR5YKWU8hIahC9GBCZPNlXlR4yA4cPN3l9VLDExK5kyJZas\n",
  513. "jHK02JtDdM4otm3z1WRVSimFro6+uG++gc8/N0PQTZu6uzVeKSZmJcOGLeHFhOM0J540fFndYDKr\n",
  514. "V3d2TBlCpZQqg8pGTzgnB9LSdL9vCYSFjSE2diI/E0wwKwD4hnBmh7Vg8eIJjr/gzz9DcLAuwlJK\n",
  515. "eQ17esJlYyavXDkNwJcQE7OSsLAxBAePJyxsDDExRTOEZWaaQZM0fAFYR3ueYgYZGU7IGvbVVzBk\n",
  516. "iMlcppRSpVjZGI5WF5U3zJyQ8Fr+fQkJowHMMHNODrz8MnVzTUB8iCimE8FTzCAJfypXznFsg3bv\n",
  517. "NnP2S5eCr69jz62UUh6m9PWEz56FxER3t8JrTJkSWygAAyQkvMbUqUvNvtxBg8j99TeOZQyjatVt\n",
  518. "JOHPg8wlCX8CA0cxdGiI4xqTkQH9+sErr8CNNzruvEop5aFKV084KwsefBCuuQbeecfdrfEKecPM\n",
  519. "FzqbBvTvT27KGR4OiKaqbxW+HLWKjz4aS0ZGOSpXzmHo0B6OXZT1wgsmHeXTTzvunEop5cFKTxDO\n",
  520. "yDAlfCpWhNdfd3drvEalStlF7qtIJhN3zkX8WvB4wEJOnKrE//4HlSt3pW/frs5pSFoaHDigGbGU\n",
  521. "UmVK6RiOTkuDu++GatXMdqSKFd3dIq8RGRlKYODowvfVvo+rm9UnosZ89h+txMKFLkhU5esLCxc6\n",
  522. "p/ShUkp5KO/fopSRAXfeCVddBZ98okk47BATs5KpU5fmDzM/+0x3Yn7owrad5Vi0CKpWdXcLlVLK\n",
  523. "85XNjFnZ2TBnDjz0kNmKpOwTEQHx8UgVX0Y0imLlFn9iY3Vnl1JK2apsBmHlGMHBsMIk4VgaEM7N\n",
  524. "f83VkWGllCoGTdahiic93axI/vtvpIrZk7u1Snvab5jh/AB8+DA884zJ662UUmWUBuGyavNmuPlm\n",
  525. "2L+flHL+DK4aRaxfOPW2LCWgiZMjcE4ODBgAdevqSmilVJnmfUE4OxuOH3d3K7xXbi5MmgTdu8NL\n",
  526. "L/Hn6K9pHxIA/v50OTyXWk1dMAY9caKpfTh69OWPVUqpUsz7lhKPGgVHjpiqSKp4RKBPH0hKQtau\n",
  527. "Y3ZcE168A959FwYNclEb4uLgo4/gjz90IZ1SqszzriA8fz7Mmwe//+7uljhdXu3ezMzyVKqUTWRk\n",
  528. "qP3Zqc6tfMbXF557jtRbbudfkeVZvx5WroRWrRzb9os6fhwGDjQJOerXd9FFlVLKc3lPEN6xw6Qz\n",
  529. "XLIEatZ0d2uc6rJFFYorPj5/5XNSbjU6HQihfXtYv97Fe4CrVYMPPoCwMBdeVCmlPJd3zAknJ8M9\n",
  530. "98Bbb0G7du5ujdNdsqiCLZKTTW8zb+XxuWpEJ5q0p936GTz/vHnY5Uk4qlSBvn1dfFGllPJc3tET\n",
  531. "XrwYbr8dHnus0N0OHbL1IBcrqnBh7d4LX/9L/Vpzx9bf4LPPIDTU5NKuVo2kaVHE3x7B0z4z+O5n\n",
  532. "f264wRWvQiml1OV4RxDu1w/Cwwvd5fAhWw9iragCUKh2b97rfzHhODexgSs5ROWlSSTc05fATZug\n",
  533. "USNOnIDJb8K0af707TuXn9/TDFhKKeVJvGM4GorsJy3xkO0FYmJWEhY2huDg8YSFjSEmZqXdTS0p\n",
  534. "a0UVLqzdm/f6mxPPTfxBfY6yXHryTGpTjlRsxAsvQPPmcPQorF0LM2e6IQCLQGqqiy+qlFLewzt6\n",
  535. "wlbYOmRrC1t71a4a/s4759SpY6mUnEHbjP0MDCxP062/wrnH8l5/Gma+dx3teYJPqLZ1F61amUXI\n",
  536. "mzdDw4YOb57t/vtfsyVp3jw3NkIppTyX1wZhW4ZsbXXxXvXY/IDo8OHvJ580K779/CAqqnAJvy1b\n",
  537. "6DVmGL127oSsLAgIgLDBcNv56+S9/oeIYjoRPMUMkvAnoEIW27dDvXrkt9st8+YbN8L48fDrr86/\n",
  538. "llJKeSsRccrNnNpOv/wi8vPPlzwkOnqFBAaOEjPmaW6BgSMlOnpFsS8XFDSu0HnybkFB4/KPCQ0d\n",
  539. "bfWYsLAxRU84eLBIUJBIz54iiYki+/aJ9OsnEhws0qqVSM2ahU8SHl74+cnJIhs2iHToYPWY7GyR\n",
  540. "SZP+kBo1lhQ6TePGrxZ6/dbfo1F2vUfFkpws0qyZSFSUc6+jlFIe5FzcK1as9LyecGoqPPwwTJ58\n",
  541. "ycMKDtnm1cEdOrSHXb08W3rV1oa/AzhFy3/2m5RTmzZBYiL88EOhfblERMDHH5stVnXqnL898ohZ\n",
  542. "9d2+PcyYUfjE1aubrVgBAQBI+/bseWEGsR/CsmVmhPeqq9rStetBDhz4Al/fA1Stms7QoSGFXr8t\n",
  543. "PXyHEzH7uYOCoH9/51xDKaVKCc8LwiNGQJcu0Lv3ZQ/t1es2hwSTyMhQEhJGFwpYZiFUj/yf8wL1\n",
  544. "dCJoyQ7a8zs5lGP//gD4q7oJOm3bmoPP7cvND7B+fvDgg4UvOmeOCdAzZhQais7Kgn37ICEBDtwe\n",
  545. "RdblSHMAABLgSURBVJvtETx2eAbJ9/oTEmIWiU+bljfcfBXw8EVflyPnzW0WFwdbt8KaNc67hlJK\n",
  546. "lRKeFYTj4uC77+DPP116WVt61XmBunlCPLexGoAfq7ZAvpzBdRd+EIiKshpgwXQUExNh3z5//npg\n",
  547. "LgkzTMDNux0+DA0aQGAgBAb6c/bFuXzXHZo1K37BIUfOm9vs9tvhl1/OfxBRSil1URZxUj1Xi8Ui\n",
  548. "xTr3mTNwww0wdSr06uWUNhXLoUPwySem2lDHjoBZ5FTn0ce5+UQCu66oz94ZHxP2QNG2JifD7t2w\n",
  549. "d+/52759578HaNLE3EywPX+7+mqoUMExL8HaYrLAwFFMnmzfsL1SSqmLs1gsiEixukueE4Q3bzY9\n",
  550. "yDffdEp7bJKdDYsWmTnc1avhgQfg3/823dA8p08X6eXu3286f6tXm6979kDTptC4cdHb1Vebp7mq\n",
  551. "jG5MzEqmTl1aoIcfogFYKaWcwLuDsLvt2AG33GKi49VXm0VTDRoUOSwnx0x55gXc1ashI8NMY3fu\n",
  552. "bL62bQsVK178UqU13aZSSpVl9gRhz5oTdqerr4ZrroEtW0yUfe45mDs3/+GTJ82CqA8/hCuuMME2\n",
  553. "JMRshS3OfG2pS7f5/vumKtK117q7JUop5XW8J22ls/n6nu/5Ftg2tGcPPPOMGV7+6y9YuhR27YJZ\n",
  554. "s0w9iebNize07Oh0m241d64JwqW8tKRSSjmLBuGCoqIgPByJXcov2/y55x6zJsvfH7ZvN+u0rr++\n",
  555. "ZJdwy7YhZ9i0yXw6WbjQ7HtWSilVbO4Lwikp8Pbb52veusqGDdCnD6SnF3kou5o/88Ln0rGnP4MG\n",
  556. "mYXRe/fCa69B/fqOubxbtg052vHjpi7whx/CjTe6uzVKKeW13BeER482i6FctUw4KwvGjYOePU0m\n",
  557. "p8qVCz28YQNcd50ZXX3xRZP06plnHF/43pYKSR4tN9dkDBkwwJSYVEopZTf3rI5ev970Rrdvhxo1\n",
  558. "nHL9Qo4eNePIOTmm57ZgQf72IhGzNXnCBNOxc0Vc8fptQ8uXQ3Aw+OhshlJK5fGOLUrZ2XDzzfD8\n",
  559. "86benrOlpprrpaWZjBlgenJz55KYCI8/DgcOwDffmGQZSimllD3sCcKu78pMnWpW0w4Y4JrrVa1q\n",
  560. "Vjq3amV+Prfy+bffzH7eRo3Mfl8NwEoppVzN9UF40yZT7N1Vc8FgNvWeW/mcu2Qp78z05667zPzv\n",
  561. "5MlQqZLrmqKUUkrlKVMZs06cgEcfNV+//tqkkXS0UpUNSwRefRXuuut8hSillFJWuTRjlsVi8Qdm\n",
  562. "AtcBAjwuIr/Zez6HEbHay169Gh56yFQUfO01xxVJKKhUZcMSgZEjTfrOZ591d2uUUqpUKslw9GTg\n",
  563. "RxG5FrgB2OGYJpXAgQNm1e7p04XujomBe+81aSffess5ARhKUTasvAC8ZAn89JNmxFJKKSexKwhb\n",
  564. "LBY/oKuIfAIgItkikuTQlhXX/v0mAN99d6EavitWmCHoH35wfoXEUpENq2AAXrZMA7BSSjmRvcPR\n",
  565. "TYDjFotlNtAG2AAME5G0Ikdu325WPjlz+fG+faaYfGQkDB+ef/eGDWY30vDhW3j55blOn6ctFdmw\n",
  566. "Nm0ywVcDsFJKOZ29Qbg80A54VkTWWyyW94ERwMsFDxr/8sumNu+ttxI8fDjBwcEla601AwfC/Pmm\n",
  567. "AtKjj+bfvXMn9O4NgwdvY/bsb1wyTxsZGUpCwuhC1zLZsHo49DpO1bYt/PYblNcCW0opdSlxcXHE\n",
  568. "xcWV6Bx2rY62WCz1gF9FpMm5n7sAI0Skd4FjRN5/3yT4X77ceVuSrr3WRFzIT8Kxdy/cdpvJghUV\n",
  569. "NYbY2IlFnhYWNpbFiyc4vDlenw1LKaWUXVy2OlpEjlgslgMWi6W5iMQD3YFtRQ6cMMFkwnDmnuAm\n",
  570. "TUwQPpeE48gRU+f3P/+BRx6B2bNdO0/bq9dtGnSVUkrZpCSro4cCX1ksls2Y1dGvFz1iKLRoYdfJ\n",
  571. "Y2JWEhY2huDg8YSFjSEmZqX1A88l4WDpUhLFn7AwM0IdGWkeLhXztM6Qnm7epJ9/dndLlFKqzLJ7\n",
  572. "4k9ENgM3X/KgESPsOnex9tv6+8PcuaSmQq8QuOMOeLnAzHSpmKd1tM2bTdrQ66/XUoRKKeVGHpkx\n",
  573. "KyysePO4mZmmKFODBjBrVtHiPjpPe05ursnT+frr8O67ZsjAlelDlVKqFHNpxixnuuh+23QfM8Q9\n",
  574. "eDDccANgqhMOGADVq5uF2Naq6+k87TmPPQa7d8PatWY1uVJKKbfyyCB8sXncfsfWwuqjJu3VOW++\n",
  575. "acoFL1umu2oua8wYs5BN3yillPIIHlmVPTIylMDA0YXuu7/BIJ44sg6+/RaqVAHg11/N6GpUlFZC\n",
  576. "skmzZhqAlVLKg3jkX+S8oeOpU8eSkVGOepYkZm9dTKUvPs8fRk1KMsPQH30EDRu6s7UeJCsLFiyA\n",
  577. "L780CUwqV3Z3i5RSSl2CRy7MKkQEQkOhQwez7/jcXf37Q40apjRxmffPPzB9OsyYAS1bmnnzPn20\n",
  578. "16uUUi5UahZmFWKxwP/9X6F6tp9+Clu3wvr17muWx3jlFXj/fVOjcelSuO46d7dIKaWUjTy7JxwR\n",
  579. "AfHx4OtrJn79/dm1Czp3hrg4s821VMvMNKuZN2yAq682VaIudPAg+PmZ5eFKKaXcxp6esEcuzMoX\n",
  580. "H29qES5aBBERZGaaYegJE7w0AOfkwJEjJllGfLz1Y775Bpo2hSuuMIH1nnvM609NtX78VVdpAFZK\n",
  581. "KS/l2cPRvr7m67m80CNHmg7hkCHubVax/PijyRx29CicOgUBAVC3rkmU8dJLRY/v1g3atYPatU0P\n",
  582. "V5NpKKVUqeWZw9GpqVC1Kpw+bYakZ8zgxzX+DBliyt3WqOHYttpFxNQxXrvW3Hx9YWLRLF8cOwaH\n",
  583. "D5vAW7u2LpZSSqlSyp7haM8Lwqmp0KYNfP89tGoFmMW/7drB119DUJCDG1pcBw7As8+awAtm1XaH\n",
  584. "DqZhHTu6t21KKaXcpnQE4eHDzbDt558DJt1xjx4mzr36qoMbaY/UVIiONg1q1EiHi5VSSgGlIQj/\n",
  585. "8ospS7h1a/6Y89tvw8KFZn2WS0dyc3PNQqoKFVx4UaWUUt7Ka1ZHW60VnJ4Ojz8OH3yQH4A3bTJB\n",
  586. "OCrKhQH4zBnThmuvhblzXXRRpZRSZZHLe8LWagUHBo7mx1sO0zwnzWzRwXRCO3Uy67KeeMIpTSws\n",
  587. "Lc2Md3/8Mdx+OwwbBl266HCzUkopm3hFT3jKlNhCARggIeE1Rh+pAR9+mH/fxx+bkeDHHnNBo06d\n",
  588. "gptuMouu/vjD5F3u2lUDsFJKKady+X6Zi9UKPp5bHWrVAsyW2rFjYfly6/WBHS4gwORevk1rDiul\n",
  589. "lHIdl/eEL1YruHLlnPzvn///9u4txqrqjuP49y/eay2pNRamNpCxmrbxQoxXWhkTKyg4rQ8qxrTz\n",
  590. "5C0GL4hpO9JCTRBiYsXQxNhgG9JgdYwpYpQqaCf6ogaDBS9YAUWxFktACiTcnNWHfcCRzOCcy569\n",
  591. "z/D9vMyZPfustZKdNb/stfda687sDvj00wepUREGsCRp0A16CPe1V3BraydTpvwEyO5+X34ZZswY\n",
  592. "7JZJkjS4Bn04et9ewYfdOIYR2zaz58gj2DzrQcZPvIhdu+Dmm2HevGzBrIbbtg2mTYOpU+G003Ko\n",
  593. "QJKkgStkitLEiRdx2ZFbOet/H3LOprWMf3IBAPfdl22H296eQ6WvvJJth9jTAy0tOVQgSVJ1ilms\n",
  594. "46OPoLUV9uzJNmdYupQ1m4Zz/vlf7NrXUE89Bddfn718deWVDS5ckqRmWjHr6qth9Gh4/3344x9J\n",
  595. "3xjOhAlwySVw110NbsjixVkAP/tsNg1JkqQc1BLCg7+lz9KlsHw5LFgAxxwDwBNd2UZDt9+eQ327\n",
  596. "d2drPRvAkqSSGdw74d27s3lH998PkyYBsHVrtllSVxeMHZtLUyRJyl35h6N7emDZMrj00v2Hbr01\n",
  597. "WzFy/vxcmiFJ0qAofwgf4PXXYeJEeOstOOGEXJohSdKgaIq1o/f5/HO46SaYM6eBAbxsGbz0UoMK\n",
  598. "kyQpX4WF8Pz52XtZHR0NKvDFF+Haa910QZLUNAoZjt66NVuwasmSbP2MunV3Z9OenngCxo1rQIGS\n",
  599. "JFWnnMPRc+dmc3R7ufdeuPzyBgXwG29kAdzVZQBLkppKvnfC69bBOed8aRmsfYfefBNGjKizkr17\n",
  600. "sylPM2bA5Mn1N1qSpBqV7+3o9nY47zzo7Nx//Kqr4MwzYfr0BlW0Zg2cckqDCpMkqTblC+FTT4WV\n",
  601. "K+Goo4Bsi8LrroPVq+HYY3OpVpKkQpTvmfC8efsDuKcH7rgDZs82gCVJgrxDeO5c+OwzABYuhGHD\n",
  602. "sllEkiQp7xBesgRuuIEdO7LHwg88AIfVU+PevdmYtiRJQ0C+z4QrewX/7sHhvPMOPPZYnYV2dmY7\n",
  603. "MD33nItySJJKpXwvZm3Zwsc7hnPGGdkspVGj6ijw6afhlluygk48sVHNlCSpIcoXwinR0QEjR2Yv\n",
  604. "ZNVs3Tq44AJYtCj7KUlSydQSwofn1RjIRo6ffx7efbeOQnbuzCYXd3YawJKkISXXF7OmToV77oHj\n",
  605. "j6+jkPXrYezYbONhSZKGkFyHo4877t8sXPge7e0X5VKHJEllUbrFOrZvH8HUqc/xzDPu8StJ0oFy\n",
  606. "30Vp7dpZzJu3NO9qJElqOvlvZQjs3DlsMKqRJKmpDEoIH3305wM/eccOmDUrW2xakqQhLNcpSgCt\n",
  607. "rZ1MmTJh4F+YPh02bapzfUtJksov1xAeP/43TJkygYkTB/h29KuvZmtbrlqVZ7MkSSqF3FfMGrDd\n",
  608. "u+Hss+Huu2Hy5FzaJElSXko3Rakqc+Zki0tfc03RLZEkaVCUI4RTgg8/hIcecnckSdIhozzD0ZIk\n",
  609. "NbHmHo6WJOkQYwhLklQQQ1iSpIIUF8IvvACrVxdWvSRJRasrhCNiWESsiIinq/ri9u3Q0QGbN9dT\n",
  610. "vSRJTa3eO+HbgLeB6l6Dnj0bLr4YLrywzuolSWpeNS9bGRHfAS4HZgFTB/zFtWvh4Ydh5cpaq5Yk\n",
  611. "aUio5074AeAuoLrtju68E6ZNg5Ej66hakqTmV9OdcERMAj5NKa2IiLb+zps5c+b+z21tbbS1tsL6\n",
  612. "9fD447VUK0lSaXR3d9Pd3V1XGTWtmBUR9wI/B/YCRwPHA0+mlH7R65y+V8zq6XGbQknSkFPLill1\n",
  613. "L1sZEeOAaSmlKw447rKVkqRDRpHLVpq2kiRVyQ0cJElqgHJu4LBlS7ZVoSRJ+pJ8QzglmDQJFi/O\n",
  614. "tRpJkppRviH86KOwaxdcccVXnytJ0iEm32fCLS3Q1eXylJKkIa98z4Tb2gxgSZL6ke+d8IYN0NKS\n",
  615. "S/mSJJVJIYt1HKQxTlGSJB0yyjccLUmS+mUIS5JUEENYkqSCGMKSJBXEEJYkqSCGsCRJBTGEJUkq\n",
  616. "iCEsSVJBDGFJkgpiCEuSVBBDWJKkghjCkiQVxBCWJKkghrAkSQUxhCVJKoghLElSQQxhSZIKYghL\n",
  617. "klQQQ1h96u7uLroJqpHXrrl5/Q4thrD65D+C5uW1a25ev0OLISxJUkEMYUmSChIppXwKjsinYEmS\n",
  618. "SiqlFNWcn1sIS5Kkg3M4WpKkghjCkiQVJJcQjogJEbE6It6LiF/mUYfyEREfRMTKiFgREa8V3R4d\n",
  619. "XET8KSI2RsSqXse+GRFLI+JfEfF8RAwvso3qXz/Xb2ZEbKj0wRURMaHINqpvEXFyRPwjIt6KiDcj\n",
  620. "4tbK8ar6X8NDOCKGAX8AJgA/AK6NiO83uh7lJgFtKaUxKaVzi26MvtKfyfpab78ClqaUTgVeqPyu\n",
  621. "curr+iXg95U+OCal9PcC2qWvtge4I6X0Q+B84JZK1lXV//K4Ez4XWJNS+iCltAd4DPhpDvUoP1W9\n",
  622. "3afipJReBrYccLgdWFD5vAD42aA2SgPWz/UD+2DppZT+k1J6o/J5O/AO0EKV/S+PEG4BPur1+4bK\n",
  623. "MTWHBCyLiOURcX3RjVFNTkopbax83gicVGRjVJMpEfHPiHjExwnlFxGjgDHAq1TZ//IIYec8Nbex\n",
  624. "KaUxwGVkwys/LrpBql3K5iDaJ5vLQ8Bo4CzgE+D+Ypujg4mI44AngdtSStt6/20g/S+PEP4YOLnX\n",
  625. "7yeT3Q2rCaSUPqn8/C/wN7LHC2ouGyPi2wARMQL4tOD2qAoppU9TBTAf+2BpRcQRZAH8l5TSosrh\n",
  626. "qvpfHiG8HPheRIyKiCOBa4DFOdSjBouIYyPi65XPXwMuBVYd/FsqocVAR+VzB7DoIOeqZCr/uPe5\n",
  627. "EvtgKUVEAI8Ab6eU5vb6U1X9L5cVsyLiMmAuMAx4JKU0u+GVqOEiYjTZ3S/A4cBCr125RcRfgXHA\n",
  628. "t8ieP/0WeAroAr4LfABcnVL6rKg2qn99XL8ZQBvZUHQC3gdu7PWMUSURET8CXgJW8sWQ86+B16ii\n",
  629. "/7lspSRJBXHFLEmSCmIIS5JUEENYkqSCGMKSJBXEEJYkqSCGsCRJBTGEJUkqiCEsSVJB/g/QBf7c\n",
  630. "eU1AMwAAAABJRU5ErkJggg==\n"
  631. ],
  632. "text/plain": [
  633. "<matplotlib.figure.Figure at 0x17772400>"
  634. ]
  635. },
  636. "metadata": {},
  637. "output_type": "display_data"
  638. }
  639. ],
  640. "source": [
  641. "# plot the true relationship vs. the prediction\n",
  642. "prstd, iv_l, iv_u = wls_prediction_std(res)\n",
  643. "\n",
  644. "fig, ax = plt.subplots(figsize=(8,6))\n",
  645. "\n",
  646. "ax.plot(x, y, 'o', label=\"data\")\n",
  647. "ax.plot(x, y_true, 'b-', label=\"True\")\n",
  648. "ax.plot(x, res.fittedvalues, 'r--.', label=\"OLS\")\n",
  649. "ax.plot(x, iv_u, 'r--')\n",
  650. "ax.plot(x, iv_l, 'r--')\n",
  651. "ax.legend(loc='best')"
  652. ]
  653. },
  654. {
  655. "cell_type": "markdown",
  656. "metadata": {},
  657. "source": [
  658. "### Time-Series Analysis"
  659. ]
  660. },
  661. {
  662. "cell_type": "code",
  663. "execution_count": 10,
  664. "metadata": {
  665. "collapsed": false
  666. },
  667. "outputs": [],
  668. "source": [
  669. "from statsmodels.tsa.arima_process import arma_generate_sample"
  670. ]
  671. },
  672. {
  673. "cell_type": "code",
  674. "execution_count": 11,
  675. "metadata": {
  676. "collapsed": false
  677. },
  678. "outputs": [],
  679. "source": [
  680. "# generate some data\n",
  681. "np.random.seed(12345)\n",
  682. "arparams = np.array([.75, -.25])\n",
  683. "maparams = np.array([.65, .35])"
  684. ]
  685. },
  686. {
  687. "cell_type": "code",
  688. "execution_count": 12,
  689. "metadata": {
  690. "collapsed": false
  691. },
  692. "outputs": [],
  693. "source": [
  694. "# set parameters\n",
  695. "arparams = np.r_[1, -arparams]\n",
  696. "maparam = np.r_[1, maparams]\n",
  697. "nobs = 250\n",
  698. "y = arma_generate_sample(arparams, maparams, nobs)"
  699. ]
  700. },
  701. {
  702. "cell_type": "code",
  703. "execution_count": 13,
  704. "metadata": {
  705. "collapsed": false
  706. },
  707. "outputs": [],
  708. "source": [
  709. "# add some dates information\n",
  710. "dates = sm.tsa.datetools.dates_from_range('1980m1', length=nobs)\n",
  711. "y = pd.TimeSeries(y, index=dates)\n",
  712. "arma_mod = sm.tsa.ARMA(y, order=(2,2))\n",
  713. "arma_res = arma_mod.fit(trend='nc', disp=-1)"
  714. ]
  715. },
  716. {
  717. "cell_type": "code",
  718. "execution_count": 14,
  719. "metadata": {
  720. "collapsed": false
  721. },
  722. "outputs": [
  723. {
  724. "name": "stdout",
  725. "output_type": "stream",
  726. "text": [
  727. " ARMA Model Results \n",
  728. "==============================================================================\n",
  729. "Dep. Variable: y No. Observations: 250\n",
  730. "Model: ARMA(2, 2) Log Likelihood -245.887\n",
  731. "Method: css-mle S.D. of innovations 0.645\n",
  732. "Date: Sun, 16 Nov 2014 AIC 501.773\n",
  733. "Time: 20:59:32 BIC 519.381\n",
  734. "Sample: 01-31-1980 HQIC 508.860\n",
  735. " - 10-31-2000 \n",
  736. "==============================================================================\n",
  737. " coef std err z P>|z| [95.0% Conf. Int.]\n",
  738. "------------------------------------------------------------------------------\n",
  739. "ar.L1.y 0.8411 0.403 2.089 0.038 0.052 1.630\n",
  740. "ar.L2.y -0.2693 0.247 -1.092 0.276 -0.753 0.214\n",
  741. "ma.L1.y 0.5352 0.412 1.299 0.195 -0.273 1.343\n",
  742. "ma.L2.y 0.0157 0.306 0.051 0.959 -0.585 0.616\n",
  743. " Roots \n",
  744. "=============================================================================\n",
  745. " Real Imaginary Modulus Frequency\n",
  746. "-----------------------------------------------------------------------------\n",
  747. "AR.1 1.5618 -1.1289j 1.9271 -0.0996\n",
  748. "AR.2 1.5618 +1.1289j 1.9271 0.0996\n",
  749. "MA.1 -1.9835 +0.0000j 1.9835 0.5000\n",
  750. "MA.2 -32.1812 +0.0000j 32.1812 0.5000\n",
  751. "-----------------------------------------------------------------------------\n"
  752. ]
  753. }
  754. ],
  755. "source": [
  756. "print(arma_res.summary())"
  757. ]
  758. }
  759. ],
  760. "metadata": {
  761. "kernelspec": {
  762. "display_name": "Python 2",
  763. "language": "python",
  764. "name": "python2"
  765. },
  766. "language_info": {
  767. "codemirror_mode": {
  768. "name": "ipython",
  769. "version": 2
  770. },
  771. "file_extension": ".py",
  772. "mimetype": "text/x-python",
  773. "name": "python",
  774. "nbconvert_exporter": "python",
  775. "pygments_lexer": "ipython2",
  776. "version": "2.7.9"
  777. }
  778. },
  779. "nbformat": 4,
  780. "nbformat_minor": 0
  781. }

机器学习越来越多应用到飞行器、机器人等领域,其目的是利用计算机实现类似人类的智能,从而实现装备的智能化与无人化。本课程旨在引导学生掌握机器学习的基本知识、典型方法与技术,通过具体的应用案例激发学生对该学科的兴趣,鼓励学生能够从人工智能的角度来分析、解决飞行器、机器人所面临的问题和挑战。本课程主要内容包括Python编程基础,机器学习模型,无监督学习、监督学习、深度学习基础知识与实现,并学习如何利用机器学习解决实际问题,从而全面提升自我的《综合能力》。