Updated notebooks for new library organisation
[cipher-tools.git] / 2014 / 2014-challenge2.ipynb
index f891699dd893278e07180ce95c29375cae73321e..e83e214070a0f27905f6d344b75e5cf3fa7f0f43 100644 (file)
@@ -2,10 +2,8 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 3,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 6,
+   "metadata": {},
    "outputs": [],
    "source": [
     "import os,sys,inspect\n",
     "import string\n",
     "%matplotlib inline\n",
     "\n",
-    "from cipherbreak import *\n",
+    "from cipher.affine import *\n",
+    "from cipher.keyword_cipher import *\n",
+    "from support.utilities import *\n",
+    "from support.text_prettify import *\n",
+    "from support.language_models import *\n",
+    "from support.plot_frequency_histogram import *\n",
     "\n",
     "c2a = open('2a.ciphertext').read()\n",
     "c2b = open('2b.ciphertext').read()"
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 3,
+   "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "<matplotlib.axes._subplots.AxesSubplot at 0x7f8012c71eb8>"
+       "<matplotlib.axes._subplots.AxesSubplot at 0x7fd7aa938668>"
       ]
      },
-     "execution_count": 4,
+     "execution_count": 3,
      "metadata": {},
      "output_type": "execute_result"
     },
     {
      "data": {
-      "image/png": "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\n",
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAD7CAYAAACWq8i5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAGXNJREFUeJzt3X+0XWV95/H3p1B+TAsSNKYsgsZOM1rK+ANSSFdtR6WFgJ2GTpXBtpJxKJkW7KLj9Ec67ZQR6xTbaW0Z23RYkhrUqaLVIa1gmhW11iqYIBQEyuIWZUgWQiT8cLTV4nznj/OkHq7nnPvckHAuyfu11lln7+9+nv3sc+6593P2j3NuqgpJknp8y7Q3QJL09GFoSJK6GRqSpG6GhiSpm6EhSepmaEiSuhkakqRuhoYkqZuhIUnqdui0N2Bfe9aznlXLli2b9mZI0tPKTTfd9MWqWjxXuwMuNJYtW8b27dunvRmS9LSS5N6edh6ekiR1MzQkSd0MDUlSN0NDktTN0JAkdTM0JEndDA1JUjdDQ5LU7YD7cN+BbNm6D42sf/7yVz7FWyLpYOWehiSpm6EhSepmaEiSuhkakqRuhoYkqZuhIUnqZmhIkroZGpKkboaGJKmboSFJ6mZoSJK6GRqSpG5zhkaS5ye5Zej2WJKfT3Jski1J7m73i1r7JLkiyUySW5OcPLSuNa393UnWDNVPSXJb63NFkrT6yDEkSdMxZ2hU1V1V9eKqejFwCvAV4IPAOmBrVS0HtrZ5gLOA5e22FlgPgwAALgVOA04FLh0KgfXAhUP9VrX6uDEkSVMw38NTpwN/V1X3AquBja2+ETinTa8Grq6BG4BjkhwHnAlsqardVfUwsAVY1ZYdXVU3VFUBV89a16gxJElTMN/QOA/4kza9pKrub9NfAJa06eOB+4b67Gi1SfUdI+qTxniCJGuTbE+yfdeuXfN8SJKkXt2hkeQw4EeB981e1vYQah9u1zeZNEZVXVlVK6pqxeLFi/fnZkjSQW0+expnAZ+pqgfa/APt0BLt/sFW3wmcMNRvaatNqi8dUZ80hiRpCuYTGq/hG4emADYBe66AWgNcO1Q/v11FtRJ4tB1i2gyckWRROwF+BrC5LXssycp21dT5s9Y1agxJ0hR0/Y/wJN8G/DDwH4bKlwPXJLkAuBc4t9WvA84GZhhcafU6gKraneRNwLbW7rKq2t2mLwLeARwJXN9uk8aQJE1BV2hU1ZeBZ86qPcTgaqrZbQu4eMx6NgAbRtS3AyeNqI8cQ5I0HX4iXJLUzdCQJHUzNCRJ3QwNSVI3Q0OS1M3QkCR1MzQkSd0MDUlSN0NDktTN0JAkdTM0JEndDA1JUjdDQ5LUzdCQJHUzNCRJ3QwNSVI3Q0OS1M3QkCR16wqNJMckeX+Sv01yZ5LvS3Jski1J7m73i1rbJLkiyUySW5OcPLSeNa393UnWDNVPSXJb63NFkrT6yDEkSdPRu6fx+8CHq+oFwIuAO4F1wNaqWg5sbfMAZwHL220tsB4GAQBcCpwGnApcOhQC64ELh/qtavVxY0iSpmDO0EjyDOAHgasAquprVfUIsBrY2JptBM5p06uBq2vgBuCYJMcBZwJbqmp3VT0MbAFWtWVHV9UNVVXA1bPWNWoMSdIU9OxpPA/YBfxxkpuTvD3JtwFLqur+1uYLwJI2fTxw31D/Ha02qb5jRJ0JYzxBkrVJtifZvmvXro6HJEnaGz2hcShwMrC+ql4CfJlZh4naHkLt+83rG6OqrqyqFVW1YvHixftzMyTpoNYTGjuAHVV1Y5t/P4MQeaAdWqLdP9iW7wROGOq/tNUm1ZeOqDNhDEnSFMwZGlX1BeC+JM9vpdOBO4BNwJ4roNYA17bpTcD57SqqlcCj7RDTZuCMJIvaCfAzgM1t2WNJVrarps6fta5RY0iSpuDQznY/B7w7yWHAPcDrGATONUkuAO4Fzm1trwPOBmaAr7S2VNXuJG8CtrV2l1XV7jZ9EfAO4Ejg+nYDuHzMGJKkKegKjaq6BVgxYtHpI9oWcPGY9WwANoyobwdOGlF/aNQYkqTp8BPhkqRuhoYkqZuhIUnqZmhIkroZGpKkbr2X3ErS1C1b96GR9c9f/sqneEsOXu5pSJK6GRqSpG6GhiSpm6EhSepmaEiSuhkakqRuhoYkqZuhIUnqZmhIkroZGpKkboaGJKmboSFJ6mZoSJK6dYVGks8nuS3JLUm2t9qxSbYkubvdL2r1JLkiyUySW5OcPLSeNa393UnWDNVPaeufaX0zaQxJ0nTM56vRX15VXxyaXwdsrarLk6xr878MnAUsb7fTgPXAaUmOBS4FVgAF3JRkU1U93NpcCNwIXAesAq6fMIZ00Bn3teDgV4PrqfNkDk+tBja26Y3AOUP1q2vgBuCYJMcBZwJbqmp3C4otwKq27OiquqGqCrh61rpGjSFJmoLe0CjgL5LclGRtqy2pqvvb9BeAJW36eOC+ob47Wm1SfceI+qQxniDJ2iTbk2zftWtX50OSJM1X7+Gpl1bVziTPBrYk+dvhhVVVSWrfb17fGFV1JXAlwIoVK/brdkjSwawrNKpqZ7t/MMkHgVOBB5IcV1X3t0NMD7bmO4EThrovbbWdwMtm1T/W6ktHtGfCGF3815CStG/NeXgqybclOWrPNHAG8FlgE7DnCqg1wLVtehNwfruKaiXwaDvEtBk4I8midhXUGcDmtuyxJCvbVVPnz1rXqDEkSVPQs6exBPhguwr2UOB/VdWHk2wDrklyAXAvcG5rfx1wNjADfAV4HUBV7U7yJmBba3dZVe1u0xcB7wCOZHDV1PWtfvmYMSRJUzBnaFTVPcCLRtQfAk4fUS/g4jHr2gBsGFHfDpzUO4YkaTr8RLgkqZuhIUnqZmhIkroZGpKkboaGJKmboSFJ6mZoSJK6GRqSpG6GhiSpm6EhSepmaEiSuhkakqRuhoYkqZuhIUnqZmhIkrr1/o9waZ/yX/FKT0+Ghp60cQEAhsA4Pmd6uvLwlCSpW3doJDkkyc1J/rzNPy/JjUlmkrw3yWGtfnibn2nLlw2t41da/a4kZw7VV7XaTJJ1Q/WRY0iSpmM+exqXAHcOzb8FeGtVfRfwMHBBq18APNzqb23tSHIicB7wPcAq4A9bEB0C/AFwFnAi8JrWdtIYkqQp6DqnkWQp8ErgzcAbkgR4BfATrclG4L8C64HVbRrg/cDbWvvVwHuq6qvA55LMAKe2djNVdU8b6z3A6iR3ThhD0tOcF0M8PfXuafwe8EvA/2vzzwQeqarH2/wO4Pg2fTxwH0Bb/mhr/0/1WX3G1SeN8QRJ1ibZnmT7rl27Oh+SJGm+5gyNJD8CPFhVNz0F27NXqurKqlpRVSsWL1487c2RpANWz+Gp7wd+NMnZwBHA0cDvA8ckObTtCSwFdrb2O4ETgB1JDgWeATw0VN9juM+o+kMTxpAkTcGcexpV9StVtbSqljE4kf2RqvpJ4KPAq1qzNcC1bXpTm6ct/0hVVauf166ueh6wHPg0sA1Y3q6UOqyNsan1GTeGJGkKnsznNH6ZwUnxGQbnH65q9auAZ7b6G4B1AFV1O3ANcAfwYeDiqvp624t4PbCZwdVZ17S2k8aQJE3BvD4RXlUfAz7Wpu/hG1c/Dbf5B+DVY/q/mcEVWLPr1wHXjaiPHEOSNB1+IlyS1M3vnpL0pPmZi4OHexqSpG6GhiSpm6EhSepmaEiSuhkakqRuhoYkqZuhIUnqZmhIkroZGpKkboaGJKmboSFJ6mZoSJK6GRqSpG6GhiSpm6EhSepmaEiSus0ZGkmOSPLpJH+T5PYkb2z15yW5MclMkvcmOazVD2/zM235sqF1/Uqr35XkzKH6qlabSbJuqD5yDEnSdPTsaXwVeEVVvQh4MbAqyUrgLcBbq+q7gIeBC1r7C4CHW/2trR1JTgTOA74HWAX8YZJDkhwC/AFwFnAi8JrWlgljSJKmYM7QqIH/22a/td0KeAXw/lbfCJzTple3edry05Ok1d9TVV+tqs8BM8Cp7TZTVfdU1deA9wCrW59xY0iSpqDrnEbbI7gFeBDYAvwd8EhVPd6a7ACOb9PHA/cBtOWPAs8crs/qM67+zAljzN6+tUm2J9m+a9eunockSdoLXaFRVV+vqhcDSxnsGbxgv27VPFXVlVW1oqpWLF68eNqbI0kHrHldPVVVjwAfBb4POCbJoW3RUmBnm94JnADQlj8DeGi4PqvPuPpDE8aQJE1Bz9VTi5Mc06aPBH4YuJNBeLyqNVsDXNumN7V52vKPVFW1+nnt6qrnAcuBTwPbgOXtSqnDGJws39T6jBtDkjQFh87dhOOAje0qp28BrqmqP09yB/CeJL8B3Axc1dpfBbwzyQywm0EIUFW3J7kGuAN4HLi4qr4OkOT1wGbgEGBDVd3e1vXLY8aQJE3BnKFRVbcCLxlRv4fB+Y3Z9X8AXj1mXW8G3jyifh1wXe8YkqTp8BPhkqRuhoYkqZuhIUnq1nMiXPvBsnUfGln//OWvfIq3RJL6uachSermnoY0i3uB0njuaUiSuhkakqRuhoYkqZuhIUnqZmhIkroZGpKkboaGJKmboSFJ6mZoSJK6GRqSpG6GhiSpm6EhSepmaEiSus0ZGklOSPLRJHckuT3JJa1+bJItSe5u94taPUmuSDKT5NYkJw+ta01rf3eSNUP1U5Lc1vpckSSTxpAkTUfPnsbjwH+qqhOBlcDFSU4E1gFbq2o5sLXNA5wFLG+3tcB6GAQAcClwGnAqcOlQCKwHLhzqt6rVx40hSZqCOUOjqu6vqs+06S8BdwLHA6uBja3ZRuCcNr0auLoGbgCOSXIccCawpap2V9XDwBZgVVt2dFXdUFUFXD1rXaPGkCRNwbzOaSRZBrwEuBFYUlX3t0VfAJa06eOB+4a67Wi1SfUdI+pMGGP2dq1Nsj3J9l27ds3nIUmS5qE7NJJ8O/CnwM9X1WPDy9oeQu3jbXuCSWNU1ZVVtaKqVixevHh/boYkHdS6/t1rkm9lEBjvrqoPtPIDSY6rqvvbIaYHW30ncMJQ96WtthN42az6x1p96Yj2k8aQpC7++959q+fqqQBXAXdW1e8OLdoE7LkCag1w7VD9/HYV1Urg0XaIaTNwRpJF7QT4GcDmtuyxJCvbWOfPWteoMSRJU9Czp/H9wGuB25Lc0mr/GbgcuCbJBcC9wLlt2XXA2cAM8BXgdQBVtTvJm4Btrd1lVbW7TV8EvAM4Eri+3ZgwhiRpCuYMjar6BJAxi08f0b6Ai8esawOwYUR9O3DSiPpDo8aQJE2HnwiXJHXrOhEuaTJPtupg4Z6GJKmboSFJ6mZoSJK6GRqSpG6eCJekJ2nchRBw4F0M4Z6GJKmboSFJ6ubhKUl6mlgIh8EMjX3AD3ZJOlgYGgewhfCuRNKBxXMakqRuhoYkqZuhIUnqZmhIkrp5IlxP4MlzSZO4pyFJ6jZnaCTZkOTBJJ8dqh2bZEuSu9v9olZPkiuSzCS5NcnJQ33WtPZ3J1kzVD8lyW2tzxVJMmkMSdL09OxpvANYNau2DthaVcuBrW0e4CxgebutBdbDIACAS4HTgFOBS4dCYD1w4VC/VXOMIUmakjlDo6o+DuyeVV4NbGzTG4FzhupX18ANwDFJjgPOBLZU1e6qehjYAqxqy46uqhuqqoCrZ61r1BiSpCnZ2xPhS6rq/jb9BWBJmz4euG+o3Y5Wm1TfMaI+aYxvkmQtgz0bnvOc58z3sUgHLC9s0L72pE+Etz2E2gfbstdjVNWVVbWiqlYsXrx4f26KJB3U9nZP44Ekx1XV/e0Q04OtvhM4Yajd0lbbCbxsVv1jrb50RPtJY+xXfvmgJI23t3sam4A9V0CtAa4dqp/frqJaCTzaDjFtBs5IsqidAD8D2NyWPZZkZbtq6vxZ6xo1hiRpSubc00jyJwz2Ep6VZAeDq6AuB65JcgFwL3Bua34dcDYwA3wFeB1AVe1O8iZgW2t3WVXtObl+EYMrtI4Erm83JowhSZqSOUOjql4zZtHpI9oWcPGY9WwANoyobwdOGlF/aNQYkqTp8RPhkqRuhoYkqZuhIUnq5rfcStIQPxA5mXsakqRuhoYkqZuHp3RA8xP+0r7lnoYkqZuhIUnqZmhIkroZGpKkboaGJKmboSFJ6mZoSJK6GRqSpG6GhiSpm6EhSepmaEiSui340EiyKsldSWaSrJv29kjSwWxBf2FhkkOAPwB+GNgBbEuyqarumO6WaRr88kEdSJ6u/7djQYcGcCowU1X3ACR5D7AaMDSk/eTp+sdMo+3rN1upqiezPftVklcBq6rqp9v8a4HTqur1s9qtBda22ecDd41Y3bOAL85zE+wz/z4Ldbvss3C3yz4LY7ueW1WL51xDVS3YG/Aq4O1D868F3raX69pun/3fZ6Ful30W7nbZZ+Fu16jbQj8RvhM4YWh+aatJkqZgoYfGNmB5kuclOQw4D9g05W2SpIPWgj4RXlWPJ3k9sBk4BNhQVbfv5equtM9T0mehbpd9Fu522Wfhbtc3WdAnwiVJC8tCPzwlSVpADA1JUjdDQ9KTkoET5m6pA8EBHxpJFiU5NckP7rnN0f6IJG9I8oEkf5rkPyY54qna3gnblSQ/leTX2/xzkpw6pu072/0lT+U27g9JPtHuv5TksVm3R5N8LslFE/qfMqL2I/tzm/enJC9K8vp2e1FH+/3+eq7BidHr5tsvyauTHNWmf61t48kT2r+lp/Zktefr+Hn2eVeSC5O8YB59ThxRe9kcfX4uyaJ5btvWJGfPqu31CfED+kR4kp8GLmHw+Y5bgJXAp6rqFRP6XAN8CXhXK/0EcExVvXpCn43AJVX1SJtfBPxOVf37We3eMGl7q+p3J4yxHvh/wCuq6rvbGH9RVd87ou0dwA8B1wMvAzJrnN0Txhm1jY8CN1XVLWP6HA78OLCMoSvyquqycePsK0meCXyyqp4/ZvlngPOr6rNt/jXAz1fVaft4O1YAvwo8l8FzEAZ/T184oc+8nrf2JuBC4AOt9GPAlVX1PyaMsTev53m/TtvvwNuqatukvrP63FpVL0zyUuA3gN8Gfn3czybJZ6rq5FHrmGOcXx/zOMY9z5cC5wK7gfcC76uqB+YY4+XAD7TbPwduBj5eVb8/oc9ngXcCvwUc0e5XVNX3TejzGww+evAZYAOwueb4I57kHuA+4CNV9cZW+6bnsteCvuR2H7gE+F7ghqp6eXsX8N/m6HNSVQ2/A/ho+yM8yQv3BAZAVT2c5CUj2h3V7p/ftmvPZ07+NfDpOcY4rapOTnLz0BiHjWn7R8BW4DuBm3hiaFSrj7Oi3f6szf8IcCvwM0neV1W/NaLPtbRgAb466UEk+URVvTTJl9q2/NOiwcOqoyf1n62qHprj3dmrgPcn+QkGv9DnA2eM2bbZ2zSfbXs38IvAbQzCvUf389ZcwOB18OW2vW8BPgWMDQ327vW8gtGvz7sn9DkN+Mkk9wJfpiM0ga+3+1cyCL8PtT+KT5DkZ4GLgO9McuvQoqOAv57jsdC2Z48jGLym7xzXuP1hfWOSFwL/FvjLJDuq6ocm9Ploko8zeN5eDvwM8D3A2NBg8Jy9BfhkeyzvBr5/0gOpql9L8l8YvIZfB7ytvTG4qqr+bky3R4DTgSuS/BnwU5PGmNOT/Uj5Qr4B29r9LcDhbfr2Ofq8C1g5NH8acPUcff4GWDQ0fyxw24T2HweOGpo/isG7kklj3MjgsyqfafOLgZvn6LN+L56zjwPfPjT/7cBfAkcCd4zp89lp/6zneEz/gsGXXH4YOHI/jfGJvegzr+eNQSAdMTR/xKTXWWuzN6/nvXl9PnfUbY4+fw78T+Ae4BjgcOBvRrR7BoO9sT+Ztf5j9/JndTjwsY523wH8HINgunWOtluBG4C3Av8GeHbH+g9jsHd1CzADnDePx/Ai4PeAvwXWM9iz+a0xbW8emv537XW0Y2+eu6o64Pc0diQ5BvjfwJYkDwP3jmqY5DYG7zK/Ffhkkv/T5p/L4Aczye8An0ryvjb/auDNE9ovAb42NP+1VpvkCuCDwLOTvJnBO+hfm9Shqn52jnWO8mye+K73H4ElVfX3Sca9G/5kkn9ZVbftxXj7xdDPc49jGYTujUmoOQ5p7IVLk7ydwR+Pf3qequoD47vM+3n7Ywbb/8E2fw5w1Rx9TuEbr2eA5wB37Xl+xjwP8359VtXI36s5nAusAv57VT2S5DgGe2uz1/0ogz2y1+zFGKP8MwaHrEdq58jOZfDG7H3AhTX3v2O4lcFzfRKDbX0kyaeq6u8n9NnGYG/zexl8keAfJfnxmnzo8BIGe8tfBN4O/GJV/WOSb2GwJ/hLI7r90Z6JqnpH+9lfPMfjGeuAPqcxLMm/YvCO5cNV9bURy587qf9cvxTtpNaecyUfmfQiS/KrDF6Uw7/8762q35xjjBcw2M0MsLWqxu5i76226/tjDF7MMDg0sYlBMF5ZVT851HbPH+ZDgeUM3jF+lb5DE/vVk/157sV47wJeANzONw5PVc06rzWrzx3AdwGfo/N5ayeKX9pm/6qqbp5ju+b9POzt63OhmvUG4hAGYXBZVb1tTPvfZPB4R57Dm2Osoxi8m/8F4Duq6vAJbVdU1fZZtddW1Tsn9Hkjg2/GGPVz++798Tfhm8Y5WEJjoWm//D/QZj8+1y//U6md1N1zbPWvZ7+wh9o9pX+YF7Ikd9WYk/ET+ox8/hbC87aQX5/zNet5fhx4oKoe38djvJ7B83UK8HngrxiE+kf25TgLgaEh7QNJ/hj47Y7DGDoAJfkFBkFx074OpIXG0JD2gSR3MrjUsvtQk/R0ZGhI+8BCPtQk7UuGhiSp2wH/NSKSpH3H0JAkdTM0JEndDA1JUrf/D01s6fDIlGlbAAAAAElFTkSuQmCC\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7f8012c71898>"
+       "<matplotlib.figure.Figure at 0x7fd7abfb7860>"
       ]
      },
      "metadata": {},
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 4,
+   "metadata": {},
    "outputs": [
     {
      "data": {
@@ -71,7 +70,7 @@
        "((5, 25, True), -761.8388033231918)"
       ]
      },
-     "execution_count": 5,
+     "execution_count": 4,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 5,
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
   {
    "cell_type": "code",
    "execution_count": 7,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
   {
    "cell_type": "code",
    "execution_count": 8,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "calm weather allowed us to complete the hull survey and establish its integrity no major remedial works were required and the pumps and extra bulkheads were installed out in deep waters over the next five days we are now testing the system for reliability and safety before moving on to phase three of the operation operation trojan remains on target\n"
+      "calm weather allowed us to complete the hull survey and establish its integrity no major remedial\n",
+      "works were required and the pumps and extra bulkheads were installed out in deep waters over the\n",
+      "next five days we are now testing the system for reliability and safety before moving on to phase\n",
+      "three of the operation operation trojan remains on target\n"
      ]
     }
    ],
    "source": [
-    "print(' '.join(segment(sanitise(keyword_decipher(c2b, key_b[0], key_b[1])))))"
+    "print(lcat(tpack(segment(sanitise(keyword_decipher(c2b, key_b[0], key_b[1]))))))"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 9,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "<matplotlib.axes._subplots.AxesSubplot at 0x7f800850a358>"
+       "<matplotlib.axes._subplots.AxesSubplot at 0x7fd7a6ada710>"
       ]
      },
      "execution_count": 9,
     },
     {
      "data": {
-      "image/png": "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\nRU5ErkJggg==\n",
+      "image/png": "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\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7f800b778a58>"
+       "<matplotlib.figure.Figure at 0x7fd7a6adad68>"
       ]
      },
      "metadata": {},
   {
    "cell_type": "code",
    "execution_count": null,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [],
    "source": []
   }
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.4.3"
+   "version": "3.6.3"
   }
  },
  "nbformat": 4,
- "nbformat_minor": 0
+ "nbformat_minor": 1
 }