{ "metadata": { "name": "", "signature": "sha256:47555d9fde75ae18312b22a4e5384666c964959b8bac5168114420aa7f7eed1e" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "import os, sys\n", "import numpy as np\n", "from TimeFreqAuditoryScene import *\n", "from Chambers import *\n", "from IPython.display import Audio, display, clear_output\n", "from IPython.html import widgets\n", "from IPython.html.widgets import interactive\n", "%matplotlib inline\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reproducing the stream segregation example" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "freqs = [400,200,380,230,360,250]\n", "n_tones = len(freqs)\n", "duration = 2.\n", "fs = 44100.\n", "\n", "for tone_duration in [0.2, 0.05]:\n", " n_rep = int(duration/(n_tones*tone_duration))\n", " scene = Scene()\n", " run_time = 0\n", " for i_rep in range(n_rep):\n", " block = Node(delay=run_time) # create a node\n", " for i in range(n_tones):\n", " tone = Tone(freq=freqs[i],\n", " duration=tone_duration,\n", " delay=i*tone_duration) # create a leaf (pure tone)\n", " run_time += tone_duration\n", " block.add(tone)\n", " scene.add(block)\n", "\n", " # draw spectrogram\n", " sd = SceneDrawer()\n", " sd.draw(scene)\n", " plt.ylim(min(freqs)-10,max(freqs)+10)\n", " plt.show()\n", "\n", " # generate sound\n", " x = scene.generate(fs=fs)\n", " display(Audio(x, rate=fs, autoplay=False))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEZCAYAAABsPmXUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAF/5JREFUeJzt3XtQVdf9/vHnEJAaRUW8AgaM2igR1HihBCWg9V4d463E\nqcFqbJpO01rr1DSZRPxO0mkzxtiYGWs7Bm1GYySaqommnZpSr/WCTkisEmVA8G4MchErIOv3h+P5\nSQyei+ccYPl+zTjDPnuz12eJPqyz9jp7O4wxRgAAqwQ1dgEAAN8j3AHAQoQ7AFiIcAcACxHuAGAh\nwh0ALES4A4CFCHcE3O7du/X444+rXbt2ioiI0NChQ3Xo0CG/tRcbG6tPP/3Ub+cHmqLgxi4A95fy\n8nL94Ac/0MqVKzV9+nRdv35du3btUmhoqN/adDgcuttn9WpraxUc7Lv/Cjdu3NADDzzgs/MB3mDk\njoD68ssv5XA49MMf/lAOh0Pf+c53NHLkSMXHx2v16tVKTk7W888/r3bt2qlPnz71RtxlZWWaM2eO\nIiMjFR0drZdffll1dXXO/X/5y18UFxenNm3a6NFHH9WRI0c0c+ZMFRcXa8KECQoLC9OSJUtUVFSk\noKAgvfPOO4qJidH3v/99GWP06quvKjY2Vp07d1ZGRobKy8ud5/7rX/+qmJgYdejQwXncrdoyMzM1\ndepUzZw5U23bttWaNWt08OBBJSUlKTw8XJGRkXr++edVU1PjPF9QUJBWrFihXr16qU2bNnrllVdU\nUFCgpKQktWvXTunp6fWOBzxmgAAqLy83ERERJiMjw2zfvt18/fXXzn1ZWVkmODjYLFu2zNTW1pr3\n33/ftG3b1pSWlhpjjJk0aZL56U9/aqqqqszFixfNkCFDzMqVK40xxmzYsMFERUWZQ4cOGWOMOXny\npDl16pQxxpjY2FizY8cOZzuFhYXG4XCYjIwMU1VVZa5du2ZWrVplevbsaQoLC01lZaWZPHmymTlz\npjHGmKNHj5rWrVubPXv2mOrqarNgwQITEhLiPOeiRYtMSEiI2bx5szHGmGvXrpnc3Fyzf/9+c+PG\nDVNUVGT69Oljli1b5qzB4XCYSZMmmYqKCnP06FHTokULk5aWZgoLC01ZWZmJi4sza9as8dePAfcB\nwh0Bd+zYMTNr1iwTHR1tgoODzcSJE82FCxdMVlaWiYyMrHfskCFDzLvvvmvOnz9vQkNDzbVr15z7\n1q1bZ9LS0owxxowaNcq89dZb39peQ+FeWFjofG348OFmxYoVzu38/HwTEhJiamtrzeLFi82MGTOc\n+6qqqkyLFi3qhfsTTzxx1z6/+eab5sknn3RuOxwOs3fvXuf2wIEDzeuvv+7c/vWvf23mzZt313MC\nd8OcOwKud+/eysrKkiTl5+frRz/6kebNm6fRo0crKiqq3rExMTE6e/asiouLVVNTo65duzr31dXV\n6aGHHpIknT59Wj169PCojm7dujm/PnfunGJiYpzbDz30kGpra3XhwgWdO3dO0dHRzn0tW7ZURERE\nvXPdvl+6Of00f/585ebmqqqqSrW1tRo0aFC9Yzp37lzvnN/cPn/+vEf9AW7HnDsa1SOPPKKMjAx9\n8cUXkqQzZ87U23/q1ClFRUWpW7duCg0N1eXLl1VaWqrS0lKVlZXp888/l3QzqE+ePPmtbTgcDpev\nR0ZGqqioyLldXFys4OBgdenSRV27dtXp06ed+65du6bLly/ftY3nnntOcXFxOnnypMrKyvTaa6/V\nuz4A+BvhjoDKz8/X0qVLnSFeUlKi9957T0lJSZKkixcv6q233lJNTY2ys7N1/PhxjRs3Tl26dNGo\nUaM0f/58VVRUqK6uTgUFBdq5c6ck6ZlnntGSJUt0+PBhGWN08uRJFRcXS7o5Qi4oKLhrXU899ZTe\nfPNNFRUVqbKyUi+++KLS09MVFBSkKVOmaOvWrdq3b5+qq6uVmZl519U3klRZWamwsDA9+OCDOn78\nuFasWOHy7+b2c7o6P+AK4Y6ACgsL0/79+5WYmKjWrVsrKSlJCQkJeuONN2SMUWJiok6cOKGOHTvq\n5Zdf1saNGxUeHi7p5oqV6upqxcXFqX379po2bZpz6mLq1Kl66aWXNGPGDLVp00aTJ09WaWmpJOm3\nv/2tXn31VYWHh2vp0qWS7hxpz549WzNnzlRKSooefvhhPfjgg1q+fLkk6dFHH9Xy5cuVnp6uyMhI\nhYWFqVOnTs7lmw6H447zLVmyROvWrVObNm30k5/8ROnp6fWO+bZ3E9/c39A7DsAdDsMQAU3E6tWr\ntWrVKu3atauxS7mryspKhYeH6+TJk/Xm6YGmhJE74IatW7eqqqpKV69e1YIFC5SQkECwo0kj3NFk\nNOWpiC1btigqKkpRUVEqKCjQ+vXrG7sk4K6YlgEACzFyBwALBexDTE317TYANHXeTLAEdORubt7u\n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\n6dKlxijVK+70b9GiReaFF14wxtzsW/v27U1NTU1jlOuxnTt3msOHD5u+fft+6/7mnCvGuO6fN7ni\n05H7gQMH1LNnT8XGxiokJETp6enavHlzvWO2bNmijIwMSVJiYqKuXLmiCxcu+LIMv3Gnf0lJSWrb\ntq2km/07ffp0Y5TqMXf6JknLly/X1KlT1bFjx0ao0nvu9G/dunWaMmWKoqOjJUkdOnRojFK94k7/\nunbtqvLycklSeXm5IiIiFBwcsDUV92TYsGEKDw9vcH9zzhXJdf+8yRWfhvuZM2fUrVs353Z0dLTO\nnDnj8pjmEoDu9O92q1at0rhx4wJR2j1z92e3efNmPffcc5Ka1/JWd/p34sQJff3110pLS9OgQYP0\n7rvvBrpMr7nTv7lz5+ro0aOKjIxUv3799Mc//jHQZfpNc84VT7mbKz79te3uf3bzjWWRzSUkPKnz\nX//6l9555x3t2bPHjxX5jjt9mzdvnn7/+987n8b+zZ9jU+ZO/2pqanT48GHt2LFDVVVVSkpK0ve+\n9z316tUrABXeG3f697vf/U79+/dXTk6OCgoKNHLkSH322WcKCwsLQIX+11xzxROe5IpPwz0qKkol\nJSXO7ZKSEudb3IaOOX36tKKionxZht+40z9JysvL09y5c/XJJ5/c9a1WU+JO33Jzc5Weni7p5sW5\n7du3KyQkRBMnTgxord5wp3/dunVThw4d1LJlS7Vs2VIpKSn67LPPmkW4u9O/vXv36qWXXpIk9ejR\nQ927d1d+fr4GDRoU0Fr9oTnnirs8zhWfXREwxtTU1JiHH37YFBYWmuvXr7u8oLpv375mdeHDnf6d\nOnXK9OjRw+zbt6+RqvSOO3273axZs8zGjRsDWOG9cad/x44dMyNGjDC1tbXm6tWrpm/fvubo0aON\nVLFn3Onfr371K5OZmWmMMeb8+fMmKirKXL58uTHK9UphYaFbF1SbW67ccrf+eZMrPh25BwcH6+23\n39bo0aN148YNzZkzR3369NHKlSslSc8++6zGjRunbdu2qWfPnmrVqpWysrJ8WYJfudO///u//1Np\naalzXjokJEQHDhxozLLd4k7fmjN3+te7d2+NGTNGCQkJCgoK0ty5cxUXF9fIlbvHnf69+OKL+vGP\nf6x+/fqprq5Or7/+utq3b9/Ilbvnqaee0r///W999dVX6tatmxYvXqyamhpJzT9XJNf98yZXAnZv\nGQBA4PAJVQCwEOEOABYi3AHAQoQ7AFiIcAcACxHuAGAhwh3NVllZmVasWOHcPnv2rKZNm+aXtj76\n6CNlZmY2uD8vL09z5szxS9uAN1jnjmarqKhIEyZM0Oeff+73ttLS0rR+/Xp17ty5wWNSU1O1YcMG\nderUye/1AK4wckez9cILL6igoEADBgzQwoULderUKefDDlavXq1JkyZp1KhR6t69u95++20tWbJE\njz32mJKSklRaWipJKigo0NixYzVo0CClpKQoPz//jnZKSkpUXV3tDPbs7GzFx8erf//+euKJJ5zH\njR07VtnZ2QHoOeAGX9wTAWgMRUVF9e7Fcfu9ObKyskzPnj1NZWWluXTpkmnTpo1ZuXKlMebmPVaW\nLVtmjDFm+PDh5sSJE8aYmw95GD58+B3tvPfee+bnP/+5czs+Pt6cPXvWGGNMWVmZ8/VPP/3UTJ8+\n3ce9BLzTPO7UD3wL42JGMS0tTa1atVKrVq3Url07TZgwQZIUHx+vvLw8Xb16VXv37q03T19dXX3H\neYqLi9W1a1fndnJysjIyMjR9+nRNnjzZ+XrXrl1VVFR0j70CfINwh7VCQ0OdXwcFBTm3g4KCVFtb\nq7q6OoWHh7v1vM3bf5GsWLFCBw4c0Mcff6yBAwcqNzdX7du3lzHGynuIo3lizh3NVlhYmCoqKjz+\nvltBHRYWpu7du+uDDz5wvv5tDx6OiYnR+fPnndsFBQUaMmSIFi9erI4dOzqf+HPu3DnFxMR40xXA\n5wh3NFsRERFKTk5WfHy8Fi5cKIfD4Rw53/71re3bv761vXbtWq1atUr9+/dX3759tWXLljvaSU5O\n1uHDh53bv/nNb5SQkKD4+HglJycrISFB0s3nmKakpPilr4CnWAoJuGH48OFau3Ztvbn3b2IpJJoS\nRu6AGxYsWKA//elPDe7Py8tTz549CXY0GYzcAcBCjNwBwEKEOwBYiHAHAAsR7gBgIcIdACxEuAOA\nhf4fJfHohIZ0WX8AAAAASUVORK5CYII=\n", "text": [ "" ] }, { "html": [ "\n", " \n", " " ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEZCAYAAABsPmXUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFtFJREFUeJzt3X1QVNfhxvHnEpAWQUHqKxiw0cQ3UHxjDEpEGy2kMMa3\nEieGjKZN22laa53al0nEGdOZZoyxJjPUdiyaNolKNFUT03aalPqWaERmzJsoDAi+p4lBECsg5/eH\n4/1JFHcXl3U5fj8zzOzde7nnnOv12cPZs2cdY4wRAMAqIbe7AgAA/yPcAcBChDsAWIhwBwALEe4A\nYCHCHQAsRLgDgIUIdwTc7t27df/99ys6OlqxsbGaMGGCDhw40GHlJSYm6t133+2w8wPBKPR2VwB3\nlvPnz+s73/mO1qxZozlz5ujSpUvatWuXwsPDO6xMx3F0s8/qNTc3KzTUf/8VLl++rLvuustv5wPa\ng547AurIkSNyHEff/e535TiOvva1r+nBBx9UUlKS1q1bp7S0ND311FOKjo7WkCFDWvW4a2trtWDB\nAvXr10/x8fF6+umn1dLS4u7/05/+pKFDh6pbt24aNmyYSktLNW/ePFVXVys7O1tRUVFasWKFqqqq\nFBISoj//+c9KSEjQt771LRljtHz5ciUmJqp3797Ky8vT+fPn3XO//PLLSkhI0De+8Q33uKt1y8/P\n16xZszRv3jx1795d69ev1wcffKDx48crJiZG/fr101NPPaWmpib3fCEhISooKNCgQYPUrVs3PfPM\nM6qoqND48eMVHR2t3NzcVscDPjNAAJ0/f97ExsaavLw88/bbb5svvvjC3VdYWGhCQ0PNqlWrTHNz\ns9m4caPp3r27OXfunDHGmOnTp5sf/OAHpqGhwZw9e9aMGzfOrFmzxhhjzKZNm0xcXJw5cOCAMcaY\n8vJyc+zYMWOMMYmJieadd95xy6msrDSO45i8vDzT0NBgLl68aNauXWsGDhxoKisrTX19vZkxY4aZ\nN2+eMcaYjz/+2ERGRpo9e/aYxsZGs3jxYhMWFuaec+nSpSYsLMxs3brVGGPMxYsXTUlJidm3b5+5\nfPmyqaqqMkOGDDGrVq1y6+A4jpk+fbqpq6szH3/8senSpYvJyMgwlZWVpra21gwdOtSsX7++o/4Z\ncAcg3BFwn376qXn88cdNfHy8CQ0NNTk5OebMmTOmsLDQ9OvXr9Wx48aNM3/5y1/M6dOnTXh4uLl4\n8aK779VXXzUZGRnGGGOmTp1qVq9efcPy2gr3yspK97nJkyebgoICd7usrMyEhYWZ5uZms2zZMjN3\n7lx3X0NDg+nSpUurcH/ggQdu2uYXXnjBPPzww+624zhm79697vbo0aPNc889527//Oc/NwsXLrzp\nOYGbYcwdATd48GAVFhZKksrKyvToo49q4cKFmjZtmuLi4lodm5CQoJMnT6q6ulpNTU3q27evu6+l\npUV33323JOn48eO65557fKpH//793cenTp1SQkKCu3333XerublZZ86c0alTpxQfH+/u+/rXv67Y\n2NhW57p2v3Rl+GnRokUqKSlRQ0ODmpubNWbMmFbH9O7du9U5v7p9+vRpn9oDXIsxd9xW9913n/Ly\n8vTRRx9Jkk6cONFq/7FjxxQXF6f+/fsrPDxcn3/+uc6dO6dz586ptrZWH374oaQrQV1eXn7DMhzH\n8fh8v379VFVV5W5XV1crNDRUffr0Ud++fXX8+HF338WLF/X555/ftIwf/vCHGjp0qMrLy1VbW6tn\nn3221fsDQEcj3BFQZWVlWrlypRviNTU1eu211zR+/HhJ0tmzZ7V69Wo1NTWpqKhIhw8fVlZWlvr0\n6aOpU6dq0aJFqqurU0tLiyoqKrRz505J0hNPPKEVK1bo4MGDMsaovLxc1dXVkq70kCsqKm5ar0ce\neUQvvPCCqqqqVF9fr1//+tfKzc1VSEiIZs6cqe3bt+u9995TY2Oj8vPzbzr7RpLq6+sVFRWliIgI\nHT58WAUFBR6vzbXn9HR+wBPCHQEVFRWlffv2KTU1VZGRkRo/frySk5P1/PPPyxij1NRUHT16VD17\n9tTTTz+tzZs3KyYmRtKVGSuNjY0aOnSoevToodmzZ7tDF7NmzdJvfvMbzZ07V926ddOMGTN07tw5\nSdKvfvUrLV++XDExMVq5cqWk63va8+fP17x585Senq5vfvObioiI0IsvvihJGjZsmF588UXl5uaq\nX79+ioqKUq9evdzpm47jXHe+FStW6NVXX1W3bt30/e9/X7m5ua2OudFfE1/d39ZfHIA3HEMXAUFi\n3bp1Wrt2rXbt2nW7q3JT9fX1iomJUXl5eatxeiCY0HMHvLB9+3Y1NDTowoULWrx4sZKTkwl2BDXC\nHUEjmIcitm3bpri4OMXFxamiokIbNmy43VUCbophGQCwED13ALBQwD7EFKx/bgNAsGvPAEtAe+7m\n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\nRU5ErkJggg==\n", "text": [ "" ] }, { "html": [ "\n", " \n", " " ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 44 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating Shepard tones (more complex)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Parameterization\n", "# Global parameters\n", "fs = 44100.\n", "# Shepard tones\n", "delay = 1./8.\n", "duration = 1./8.\n", "fb1 = 12.\n", "# declare gaussian envelope on log frequency\n", "mu_log=np.log(960)\n", "sigma_log=2.\n", "genv = GaussianSpectralEnvelope(mu_log=mu_log, sigma_log=sigma_log)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 49 }, { "cell_type": "code", "collapsed": false, "input": [ "def up_or_down(type='up', n_context=3, delay_context=0.2):\n", " \n", " range_context = [1,5] # semitones\n", " scene = Scene()\n", " \n", " run_time = 0\n", " context = Context(fb_T1=fb1,\n", " n_tones=n_context,\n", " tone_duration=duration,\n", " inter_tone_interval=delay,\n", " env=genv,\n", " type='chords',\n", " bias=type,\n", " range_st=range_context)\n", " \n", " run_time += context.getduration()+delay_context\n", " trt = Tritone(fb=fb1,\n", " duration_sp=duration,\n", " delay_sp=delay, env=genv, delay=run_time)\n", " \n", " scene.add([context,trt])\n", "\n", " # draw spectrogram\n", " sd = SceneDrawer()\n", " sd.draw(scene)\n", " plt.show()\n", " # generate sound\n", " x = scene.generate(fs=fs)\n", "\n", " display(Audio(x, rate=fs, autoplay=True))\n", " return scene\n", "\n", "w = interactive(up_or_down, \n", "type=('up','down'),n_context=(0,10),delay_context=(0.1,5))\n", "display(w)\n", "\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEZCAYAAABiu9n+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtU1HX+P/DncBFR8a4owwgmLJdENBFDQ0E38bKYeQVL\nCdDtcnTXNTfbOsXgWiddK0vOMdtVdFtDJS00lVopvAempuZdFmTEtLyBAgIzvH9/+GO+jDrOhRk+\nnxmej3PmHD5z+Xxeb515vz7vy+f9UQghBIiIiB7CReoAiIhIvpgkiIjIKCYJIiIyikmCiIiMYpIg\nIiKjmCSIiMgoJgkiIjKKSYIc1r59+zBkyBB07NgRXbp0wVNPPYUff/zRbsfz9/fHd999Z7f9E8mR\nm9QBEFmjoqICf/jDH7Bq1SpMnToVNTU12Lt3Lzw8POx2TIVCgUdde6rVauHmZruflE6ng6urq832\nR2QNtiTIIZ07dw4KhQLTpk2DQqFA69at8fTTTyMsLAxr167F0KFDMXfuXHTs2BEhISEGLYDy8nKk\npqbCx8cHvr6+eOutt1BfX69//Z///CdCQ0PRvn17PP744zh69ChmzJiB0tJSxMfHw8vLC8uWLUNJ\nSQlcXFywZs0a+Pn54fe//z2EEFi8eDH8/f3h7e2NpKQkVFRU6Pf973//G35+fujatav+fQ2xqdVq\nTJ48GTNmzECHDh2wbt06HDp0CFFRUejUqRN8fHwwd+5c1NXV6ffn4uKClStXIjAwEO3bt8fbb7+N\noqIiREVFoWPHjkhISDB4P5HFBJEDqqioEF26dBFJSUli586d4saNG/rXMjMzhZubm1i+fLnQarVi\n48aNokOHDuLmzZtCCCEmTJggXnrpJVFVVSV+/fVXERkZKVatWiWEEGLTpk1CqVSKH3/8UQghxIUL\nF8TFixeFEEL4+/uLvLw8/XGKi4uFQqEQSUlJoqqqSlRXV4vVq1eLgIAAUVxcLO7cuSMmTpwoZsyY\nIYQQ4uTJk6Jdu3Zi//79ora2VixYsEC4u7vr95mWlibc3d1FTk6OEEKI6upqcfjwYVFQUCB0Op0o\nKSkRISEhYvny5foYFAqFmDBhgrh9+7Y4efKkaNWqlYiNjRXFxcWivLxchIaGinXr1tnrv4FaACYJ\nclinT58WL7zwgvD19RVubm5i/Pjx4urVqyIzM1P4+PgYvDcyMlJ89tln4sqVK8LDw0NUV1frX/v8\n889FbGysEEKIUaNGiY8//vihxzOWJIqLi/XPjRgxQqxcuVK/ffbsWeHu7i60Wq1IT08X06dP179W\nVVUlWrVqZZAkhg8f/sgyf/jhh+LZZ5/VbysUCnHgwAH99sCBA8XSpUv126+++qqYN2/eI/dJ9Cgc\nkyCHFRwcjMzMTADA2bNn8fzzz2PevHmIi4uDUqk0eK+fnx8uX76M0tJS1NXVoWfPnvrX6uvr0atX\nLwDApUuX0KdPH4viUKlU+r9/+eUX+Pn56bd79eoFrVaLq1ev4pdffoGvr6/+NU9PT3Tp0sVgX41f\nB+51q82fPx+HDx9GVVUVtFotIiIiDN7j7e1tsM/7t69cuWJReYga45gEOYWgoCAkJSXh559/BgCU\nlZUZvH7x4kUolUqoVCp4eHjg+vXruHnzJm7evIny8nKcOHECwL0K/8KFCw89hkKhMPm8j48PSkpK\n9NulpaVwc3NDjx490LNnT1y6dEn/WnV1Na5fv/7IY7z88ssIDQ3FhQsXUF5ejnfeecdg/ITI3pgk\nyCGdPXsWH3zwgT4ZaDQaZGVlISoqCgDw66+/4uOPP0ZdXR2ys7Nx5swZjB07Fj169MCoUaMwf/58\n3L59G/X19SgqKsKePXsAALNmzcKyZctw5MgRCCFw4cIFlJaWArh3xl5UVPTIuBITE/Hhhx+ipKQE\nd+7cwRtvvIGEhAS4uLhg0qRJ2LZtGw4ePIja2lqo1epHzpYCgDt37sDLywtt2rTBmTNnsHLlSpP/\nNo33aWr/RKYwSZBD8vLyQkFBAQYPHox27dohKioK/fr1w/vvvw8hBAYPHozz58+jW7dueOutt7B5\n82Z06tQJwL0ZRrW1tQgNDUXnzp0xZcoUfZfM5MmT8eabb2L69Olo3749Jk6ciJs3bwIA/va3v2Hx\n4sXo1KkTPvjgAwAPnvmnpKRgxowZGDZsGB577DG0adMGK1asAAA8/vjjWLFiBRISEuDj4wMvLy90\n795dP21XoVA8sL9ly5bh888/R/v27fHHP/4RCQkJBu95WOvm/teNtYCIzKEQMjrVyM/Px1tvvYW+\nffsiISEBw4cPlzokckBr167F6tWrsXfvXqlDeaQ7d+6gU6dOuHDhgsE4BpGcyKol4eLiAi8vL9TU\n1DwwgEfkDLZt24aqqipUVlZiwYIF6NevHxMEyZrdk0RKSgq8vb0RFhZm8Hxubi6Cg4MRGBiIJUuW\nAACio6OxY8cOvPfee0hLS7N3aOSk5NzFsnXrViiVSiiVShQVFWHDhg1Sh0T0SHbvbtq7dy/atWuH\nmTNn6meQ6HQ6BAUFYdeuXVAqlRg0aBCysrIQEhICAKitrcVzzz2H7Oxse4ZGREQm2P06iejoaIMp\ngQBQWFiIgIAA+Pv7AwASEhKQk5ODM2fO4JtvvsGtW7cwd+5ce4dGREQmSHIxXVlZmcEFSL6+vigo\nKMDrr7+OZ5991uTn5dqVQEQkd5Z2HkkycG2LSl7cW1LEKR9paWmSx8DysWwsn/M9rCFJklAqldBo\nNPptjUZj8WwmtVqN/Px8G0dGROR88vPzoVarrfqsJEkiIiIC58+fR0lJCWpra7Fx40aMHz/eon2o\n1WrExMTYJ0AiIicSExMj3ySRmJiIIUOG4Ny5c1CpVMjMzISbmxsyMjIQFxeH0NBQTJs2TT+zyVzO\n3JJw9uTnzOVz5rIBLJ+jakpLQlZXXJvL1B3CiIjoQdbUnbK64pqIiOTFYZOEM3c3ERHZErubiIjI\nJHY3ERGRTTlskmB3ExGRedjdREREJrG7iYiIbMphkwS7m4iIzMPuJiIiMondTUREZFNMEkREZJTD\nJgmOSRARmYdjEkREZBLHJIiIyKaYJIiIyCgmCSIiMopJgoiIjHLYJMHZTURE5uHsJiIiMomzm4iI\nyKaYJIiIyCgmCSIiMopJgoiIjGKSICIio5gkiIjIKIdNErxOgojIPLxOgoiITLKm7nSzUyxERC2e\nEAJarVbqMJqESYKIyE60Wi0uX74sdRhNwu4mJ1FfX4+6ujqpwzDg7u4OFxeHHfYiajK5tSRatWrF\n7qaWqq6uDqWlpVKHYaBXr17w8PCQOgwiySgUCri7u0sdRpOwJeEk2JIgIlOsqTsdNkncuXNH6jD0\nWrduDVdXV6nDoPvodDrU1NRIHYYBDw8PfldIMk4xu6myshIxMTFQq9UYN26c0fdduHChGaN6tICA\nALRt21bqMOg+NTU1KCoqkjoMA3369EGbNm2kDsPmtFotqqurpQ7DgKenJ9zcZFfFORzZ/QsuXboU\n06ZNM/m+gICAZojGPK1bt5Y6BHoIDw8P9OnTR+owDDjrGE11dTXOnz8vdRgGAgMD4eXlJXUYDs/u\nSSIlJQXbt29H9+7dceLECf3zubm5mDdvHnQ6HWbNmoWFCxfiv//9L0JDQ3H37l2T++WZO5ni6urq\nlGftcuTp6YnAwECpwzDg6ekpdQhOwe5jEnv37kW7du0wc+ZMfZLQ6XQICgrCrl27oFQqMWjQIGRl\nZWH9+vWorKzEqVOn4OnpiS+//BIKheLBoDlwTURkMVmOSURHR6OkpMTgucLCQgQEBMDf3x8AkJCQ\ngJycHCxevBgAsG7dOnTr1u2hCYKIiJqPJGMSZWVlUKlU+m1fX18UFBTot5OSkkzuo/FiVTExMYiJ\nibFliEREDi8/P7/JC6FKkiRs0UKwdkVDIqKW4v4T6PT0dIv3IUmSUCqV0Gg0+m2NRgNfX1+L9qFW\nq9mCICJZO3jwoCymBv/00084duyYVZ9tlovpSkpKEB8frx+41mq1CAoKQl5eHnx8fBAZGYmsrCyE\nhISYtT8OXBORI5BLkmgwcuRI+Q1cJyYmYvfu3bh+/TpUKhUWLVqE5ORkZGRkIC4uDjqdDqmpqWYn\nCHq4b7/91qypw82ldevWGDVqlNRhEEkqKipK6hCazO5JIisr66HPjxkzBmPGjLF6v+xuIiIyT1MG\nsB127SYHDJuISFKyvE7CXtiSIFM2btyI2tpaqcPQa9WqlVlLzhDZWotsSaxZs0bqMADc++E/99xz\nUodBD8EkQWSoRbUkiExhhdx8Vq9eLas7sLm5uSE1NVXqMJyCwyaJixcvsruJiMgMLbK7yQHDJiKS\nlDV1J+8tSURERjFJEBGRUQ6bJNRqdZNXNyQiagny8/OtXhSVYxJERHYyf/58WdVVy5cv55gEERHZ\nDlsSREQtRIu6mI7LchiaNWuW1CE84F//+pfUIRAReJ0EgUmCiEyzpu5kkiCnNWnSJKlDeMDmzZul\nDoFasBbV3TRhwgSpQ9D76quvpA6BiMguHDZJEJnCs/bmM3bsWKlDeMCOHTukDsEpOGyS4Nk7EZH9\nOWyS4OwmIvngWbu8cXYTERGZxFVgiYjIppgkiIjIKCYJIiIyymEHromI5C44OFjqEJqMLQkiIjLK\nYWc3paWlcQpsI35+flKH8ICLFy9KHQIR4f+mwKanp3PtppaKSYKITOECf0REZFSLWuCvc+fOUoeg\nd+PGDalDoIfo2rWr1CE84Nq1a1KHQGQRDlwTEZFR7G4ioibr0KGD1CE8oLy8XOoQZMeuy3LcvXsX\nNTU1FgdFRESOy2hLor6+Hl999RWysrJw4MAB1NfXQwgBV1dXREVF4bnnnsOECROgUCiaO2a2JIiI\nrGDT2U3Dhg1DdHQ0xo8fj/79+8PDwwMAUFNTg6NHj2Lr1q3Yt28f9uzZ0/TILcQkQURkOZsmiZqa\nGn1iMMac91jizJkz+Oijj3D9+nXExcUhNTX1oe9jkiAispxNxyQaKv+UlBQcPXrU4DW1Wm3wHlsJ\nDg7GypUrsWHDBnzzzTc23TcREVnO5MD1N998g6SkJKxbt07/XE5OjtkHSElJgbe3N8LCwgyez83N\nRXBwMAIDA7FkyRL989u2bcO4ceOQkJBg9jGIiOTIxcVFVg+rymDqDd27d8fevXuRnZ2NV155BXV1\ndRYdIDk5Gbm5uQbP6XQ6zJkzB7m5uTh16hSysrJw+vRpAEB8fDx27txpkJSIiEgaZl1x3aFDB2zb\ntg1qtRqxsbEWzT+Ojo5GSUmJwXOFhYUICAiAv78/ACAhIQE5OTn49ddfsWXLFty9exexsbFmH4Mg\nySwzUzhuRC1dfX291CEYsKaeMJkk4uPj9TtPT09HREQEPvzwQ8uja6SsrAwqlUq/7evri4KCAgwf\nPhzDhw83ax8N4yIAuBosEdFDNKz+2hQmk8SiRYsMtuPj4/WJw1q2OOttnCSIZ+1E9KD7T6DT09Mt\n3ofRJNGuXTt9ZX7/tCmFQoGKigqLD9ZAqVRCo9HotzUaDXx9fS3ah1qtZguCHsnagTp7klv3A7UM\nTWlRmLV204ABAx6YBmuJkpISxMfH48SJEwAArVaLoKAg5OXlwcfHB5GRkcjKykJISIh5QSsUsqoA\ndDqd1CHQQ8jpO9KASYKkJMulwhMTE7F7925cv34dKpUKixYtQnJyMjIyMhAXFwedTofU1FSzE0SD\n+vp6KBQKWQ7YkjywQm4+bm7yu+uAVquVOgTZkH1LwtZ4xTWRvDBJOAabtiQ2b96s32F5eTm2bNmi\n37lCocDEiRObFi0ROQ1WyM7LaJLYtm2bvitn2LBh2LZtm8HrUicJDlwTEZnH7t1NcsPuJiIiy9l0\ngb+1a9c+sglZW1uLzMxMiw5GRESOxWh30507dzBo0CAEBwdj0KBB6NGjB4QQuHLlCn788UecOXMG\ns2fPbs5YDbC7iYjIPHbrbhJCYP/+/di3bx9KS0sBAH5+fnjqqacwZMgQyaafsruJiBxBt27dpA7B\nwLVr12x30yE5Y5IgIkfAJCERhUKBtLQ0djc10njBRLlovPQKEUmnobspPT295SQJBwzbrpgkiMgU\nm97jWs6YJIiILGeXtZvef/99gx3f//f8+fOtCLXp+vbtK8lxH+bnn3+WOgR6CEvXA2sODXdgJHIU\nJpPE4cOHcejQIYwfPx5CCHz99dcYNGgQfve73zVHfETkAAYMGCB1CA+Q03pzjsxkktBoNDhy5Ai8\nvLwA3LtpxdixY7F+/Xq7B/cokydP5sA1PRLP2onuseuyHEFBQTh27Bhat24NALh79y7Cw8Nx9uxZ\nqw5oCxyTICKynF3GJGbOnInIyEhMnDgRQgh89dVXSEpKsjpIIiJyHGbNbjp8+DD27dsH4N6KsFL3\nP7IlQURkOZsu8NdYVVUVvLy88Oc//xm+vr4oLi62KkAiInIsJpOEWq3G0qVL8d577wG4t/rr888/\nb/fATFGr1VYPxBARtST5+flQq9VWfdbkmMSXX36Jo0ePYuDAgQAApVKJ27dvW3UwW7K2wEREzWXK\nlClSh9BkJlsSHh4ecHH5v7dVVlbaNSAiIpIPky2JKVOm4MUXX8StW7fw6aefYs2aNZg1a1ZzxEYW\nSElJkTqEB6xZs0bqEIgklZ2dLXUIBqy5vcMjk4QQAtOmTcOZM2fg5eWFc+fO4e9//zuefvppq4Mk\nIiLHYfKmQ2FhYbJbm4hTYImILGfzi+kUCgUGDhyIwsJCREZGNik4oub26quvyupkQqFQ4P3335c6\nDCKLmByT+OGHH/Cf//wHfn5+aNu2LYB7X/bjx4/bPbhHee211yQ9fgOFQoElS5ZIHQYRkV0YTRLF\nxcXo3bs3vv32W1mdjTXYv38/VCoVevXqJXUoJFM8a28+aWlpqK+vlzoMPRcXF6Snp0sdhmzYZYG/\ngQMH4vDhwxg5ciTy8vKaEp/NcUyCSF6YJByDTe9M179/f0yZMgUrV67E/PnzDXYs5c2GGo7PJEFE\nZBmbrt20YcMGuLq6QqfT4fbt27hz547+IYcrromIyP5MrgK7Y8cOjB07trniMQtbEkRElrNpd5Oc\nMUkQEVnObkuFExFRy2TyOgkiIrLOpk2bUFtbK3UYTWIySWzevPmBRaE6dOiAsLAwdO/e3W6BERGR\n9EyOSYwbNw4HDx5EbGwsgHsXZTzxxBMoLi7G22+/jZkzZ9o0oJycHGzfvh0VFRVITU196GKCHJN4\nUG5uLmpqaqQOQ8/DwwOjR4+WOgwiasTmazcBQF1dHU6fPg1vb28AwNWrVzFjxgwUFBRg2LBhNk8S\nzzzzDJ555hncunULCxYs4IqzREQSMpkkNBqNPkEAQPfu3aHRaNClSxe0atXKrIOkpKRg+/bt6N69\nO06cOKF/Pjc3F/PmzYNOp8OsWbOwcOFC/WuLFy/GnDlzLClLi8azdiKyB5NJIjY2FuPGjcPUqVMh\nhMDmzZsRExODyspKdOzY0ayDJCcnY+7cuQatDp1Ohzlz5mDXrl1QKpUYNGgQxo8fj+DgYLz++usY\nM2YM+vfvb3Sfe/bsMevY9tamTRtERERIHQY9xA8//IDq6mqpw9Dz9PTEk08+KXUYRBYxmSQyMjKw\nZcsW7N+/HwCQlJSESZMmQaFQ4PvvvzfrINHR0SgpKTF4rrCwEAEBAfD39wcAJCQkICcnB7t27UJe\nXh4qKipw4cIFvPjii5aViIia3bFjx1BVVSV1GHpt2rRBeHi41GE4BZNJwsXFBU899RQ8PDwAAIMH\nD7bqFnj3Kysrg0ql0m/7+vqioKAAK1aswNy5c01+/rvvvtP/HRMTg5iYmCbHRM6FZ+3U0jVl9dcG\nJpPEpk2b8Ne//hXDhw8HAMydOxf/+Mc/MGXKlCYduKmJRq1WN+nzRGQ7PGuXp/tPoK1ZGddkkli8\neDEOHTqkvybit99+w8iRI5ucJJRKJTQajX5bo9HA19fX7M+r1Wq2IIiIzGCX+0k0CAsLw/Hjx/Vn\n/vX19QgPDzeYpWSOkpISxMfH6z+n1WoRFBSEvLw8+Pj4IDIyEllZWQgJCTEdNK+TICKymF2ukxg9\nejTi4uIwffp0CCGwceNGjBkzxqKDJCYmYvfu3bh+/TpUKhUWLVqE5ORkZGRkIC4uDjqdDqmpqWYl\niAZsSRARmceuLQkhBLZs2YJ9+/ZBoVAgOjoazz77rFUHsxW2JIiILNeilgpPS0tjS4KIZE2n08li\nuZw9e/Zg7969ePfdd22XJNq1a2d0BpJCoUBFRYXlkdoIWxJE5Aiqqqrwv//9T+ow9MLCwlpOS8IB\nw7ar+vp62S1J3KpVK7i48JYl1HLJpSXRoG3btrYfuJYrDlwbqq2tRWlpqdRhGOjVqxdat24tdRhE\nknF1dUWbNm2kDsO+A9dyxJbEg9iSICJTWtTAtQOGTc1MCAGtVit1GAbc3NxssqwNkTXscp2EXNXV\n1Ukdgh5/+PKk1Wpx+fJlqcMw4OPjA3d3d6nDIDKbwyaJ1157DVFRUYiKipI6FPTo0YM/fBlyc3OD\nj4+P1GEYcHNz2J/cIwkhoNPppA7DgKurK0/e/r8WOSYhp/53tiSopdNqtbh69arUYRjw9vZ22qRs\nLY5JEJEk2JJwDC1qTIKI5EOhUPCs3Uk57PxEtVrd5JtpEBG1BPn5+Vbfg4fdTURELQS7m4iIZEQI\n4fAntEwSRER2IoSQdDFUW2B3ExGRncitJeHq6sruppZKbl9G4F4y5xREasmc4TfgsEmCq8AaEkKg\nsrJS6jAMtG3b1uF/IETOoEVece2AYdsVWxJEZEqLmt0kxwpR6uNLHYPcyO070oD/T+RIHDZJ3L17\nV+oQ9HhjHfmqrq6WOgQDnp6eUodgF0zIzsthu5vq6+ulDsMAv4zyI9evtjN+V4QQsrpNJwB4eHg4\n5b91U3CBPyKShFx/j0wShlrUmAQRyQcrY+flsAv8ERGR/TlskuAqsERE5uEqsEREZBLHJIiIZMQZ\nTmaZJIiI7Ehut3W1FJOEk5DrGQtnvVBL5+rqKnUITcIk4UTkdoGhi4vDzosgsglnOEliknAirJSJ\nyNaYJJyEM5yx2Bq74IiaTlZJori4GO+88w7Ky8uRnZ39yPfKrQLgD1+e2AVH1DSyvE5iypQpj0wS\nCoVCVjMGuEy3PMnwqw3AOU8o+G/tGKy5TsLupzUpKSnw9vZGWFiYwfO5ubkIDg5GYGAglixZYvF+\nGypmOTxInqT+XrS070vDja/k8iDbsHuSSE5ORm5ursFzOp0Oc+bMQW5uLk6dOoWsrCycPn3aov1K\n/UNvKT98InNJ/Rvkb9I+7J4koqOj0alTJ4PnCgsLERAQAH9/f7i7uyMhIQE5OTm4ceMGXnrpJfz0\n009WtS6ISBpSJwQmCvuRZOC6rKwMKpVKv+3r64uCggJ07twZn3zyiVn7aLxYVUxMDGJiYmwcJRGR\nY8vPz2/yQqiSJAlbZHhrVzQkImop7j+BTk9Pt3gfkiQJpVIJjUaj39ZoNPD19bVoH2q1mi0IIpI1\nuQygN6VF0SxTYEtKShAfH48TJ04AALRaLYKCgpCXlwcfHx9ERkYiKysLISEhZu1PoeBS4UQkf3Kr\np1xcXOQ3BTYxMRFDhgzBuXPnoFKpkJmZCTc3N2RkZCAuLg6hoaGYNm2a2QmiAW86RERkHt50iIiI\nTLKm7uQaAUREZJTDJgl2NxERmYfdTUREZBK7m4iIyKYcNkmwu4mIyDzsbiIiIpPY3URERDbFJEFE\nREY5bJLgmAQRkXk4JkFERCZxTIKIiGyKSYKIiIxy2CTBMQkiIvNwTIKIiEzimAQREdkUkwQRERnF\nJEFEREYxSRARkVEOmyQ4u4mIyDyc3URERCZxdhMREdkUkwQRERnFJEFEREYxSRARkVFMEkREZJTD\nJglOgSUiMg+nwBIRkUmcAktERDbFJEFEREYxSRARkVFMEkREZBSTBBERGcUkQURERjFJEBGRUW5S\nB9BYZWUlXnnlFXh4eCAmJgbTp0+XOiQiohZNVi2JLVu2YOrUqfj000+xdetWqcORjLNfSe7M5XPm\nsgEsX0tk9ySRkpICb29vhIWFGTyfm5uL4OBgBAYGYsmSJQCAsrIyqFQqAICrq6u9Q5MtZ/+iOnP5\nnLlsAMvXEtk9SSQnJyM3N9fgOZ1Ohzlz5iA3NxenTp1CVlYWTp8+DV9fX2g0GgBAfX29vUMjIiIT\n7J4koqOj0alTJ4PnCgsLERAQAH9/f7i7uyMhIQE5OTmYOHEiNm/ejFdeeQXjx4+3d2hERGSKaAbF\nxcWib9+++u3s7Gwxa9Ys/fZnn30m5syZY/b+APDBBx988GHFw1KSzG5SKBRN+rzgCrBERM1CktlN\nSqVSP/YAABqNBr6+vlKEQkREjyBJkoiIiMD58+dRUlKC2tpabNy4kWMQREQyZPckkZiYiCFDhuDc\nuXNQqVTIzMyEm5sbMjIyEBcXh9DQUEybNg0hISEPfPZh02Tv96c//QmBgYEIDw/H0aNH7V0cmzJV\nvvXr1yM8PBz9+vXD0KFDcfz4cQmitI45/3cAcOjQIbi5uWHLli3NGF3TmVO+/Px8DBgwAH379kVM\nTEzzBthEpsp37do1jB49Gv3790ffvn2xdu3a5g/SSsam5TfmyPWKqfJZXK9YPIrRTLRarejTp48o\nLi4WtbW1Ijw8XJw6dcrgPdu3bxdjxowRQgjxww8/iMGDB0sRqlXMKd+BAwfErVu3hBBC7Ny502HK\nZ07ZGt4XGxsrxo0bJ7744gsJIrWOOeW7efOmCA0NFRqNRgghxG+//SZFqFYxp3xpaWni9ddfF0Lc\nK1vnzp1FXV2dFOFabM+ePeLIkSMGk2kac+R6RQjT5bO0XpHVFdeNGZsm29jWrVuRlJQEABg8eDBu\n3bqFq1evShGuxcwpX1RUFDp06ADgXvkuXbokRagWM6dsALBixQpMnjwZ3bp1kyBK65lTvs8//xyT\nJk3Sj7V17dpVilCtYk75evbsiYqKCgBARUUFunTpAjc3Wa3yY9TDpuU35sj1CmC6fJbWK7JNEo2v\nvgYAX18n7HMjAAAFhUlEQVRflJWVmXyPo1Sk5pSvsdWrV2Ps2LHNEVqTmft/l5OTg5dffhlA02e8\nNSdzynf+/HncuHEDsbGxiIiIwGeffdbcYVrNnPLNnj0bJ0+ehI+PD8LDw/HRRx81d5h248j1iqXM\nqVdkm/rNrTTEfdNhHaWysSTO77//HmvWrMH+/fvtGJHtmFO2efPm4b333tPfmP3+/0c5M6d8dXV1\nOHLkCPLy8lBVVYWoqCg8+eSTCAwMbIYIm8ac8r377rvo378/8vPzUVRUhKeffhrHjh2Dl5dXM0Ro\nf45ar1jC3HpFtknCnGmy97/n0qVLUCqVzRZjU5g7Dfj48eOYPXs2cnNzH9mElBNzynb48GEkJCQA\nuDcIunPnTri7uzvELDdzyqdSqdC1a1d4enrC09MTw4YNw7FjxxwiSZhTvgMHDuDNN98EAPTp0we9\ne/fG2bNnERER0ayx2oMj1yvmsqhesemIiQ3V1dWJxx57TBQXF4uamhqTA9cHDx50qAEmc8p38eJF\n0adPH3Hw4EGJorSOOWVr7IUXXhCbN29uxgibxpzynT59WowcOVJotVpRWVkp+vbtK06ePClRxJYx\np3x/+ctfhFqtFkIIceXKFaFUKsX169elCNcq968C0Zgj1ysNHlU+S+sV2bYkGk+T1el0SE1NRUhI\nCFatWgUAePHFFzF27Fjs2LEDAQEBaNu2LTIzMyWO2nzmlG/RokW4efOmvt/e3d0dhYWFUoZtFnPK\n5sjMKV9wcDBGjx6Nfv36wcXFBbNnz0ZoaKjEkZvHnPK98cYbSE5ORnh4OOrr67F06VJ07txZ4sjN\nk5iYiN27d+PatWtQqVRIT09HXV0dAMevVwDT5bO0XlEI4UCdwURE1KxkO7uJiIikxyRBRERGMUkQ\nEZFRTBJERGQUkwQRERnFJEFEREYxSVCLV15ejpUrV+q3L1++jClTptjlWF9//TXUarXR148fP47U\n1FS7HJvIGrxOglq8kpISxMfH48SJE3Y/VmxsLDZs2ABvb2+j74mJicGmTZvQvXt3u8dDZApbEtTi\nvf766ygqKsKAAQOwcOFCXLx4UX/DlrVr12LChAkYNWoUevfujYyMDCxbtgxPPPEEoqKicPPmTQBA\nUVERxowZg4iICAwbNgxnz5594DgajQa1tbX6BJGdnY2wsDD0798fw4cP179vzJgxyM7OboaSE5nB\nVmuFEDmqkpISg3VuGq97k5mZKQICAsSdO3fEb7/9Jtq3by9WrVolhLi3ftHy5cuFEEKMGDFCnD9/\nXghx70Y1I0aMeOA4WVlZYs6cOfrtsLAwcfnyZSGEEOXl5frnv/vuOzF16lQbl5LIOrJdu4mouQgT\nPa6xsbFo27Yt2rZti44dOyI+Ph4AEBYWhuPHj6OyshIHDhwwGMeora19YD+lpaXo2bOnfnvo0KFI\nSkrC1KlTMXHiRP3zPXv2RElJSRNLRWQbTBJEJnh4eOj/dnFx0W+7uLhAq9Wivr4enTp1MuteyI0T\n0sqVK1FYWIjt27dj4MCBOHz4MDp37gwhhFPev4AcE8ckqMXz8vLC7du3Lf5cQ4Xv5eWF3r1744sv\nvtA//7Cby/v5+eHKlSv67aKiIkRGRiI9PR3dunXT3/3sl19+gZ+fnzVFIbI5Jglq8bp06YKhQ4ci\nLCwMCxcuhEKh0J/JN/67Ybvx3w3b69evx+rVq9G/f3/07dsXW7dufeA4Q4cOxZEjR/Tbr732Gvr1\n64ewsDAMHToU/fr1A3DvHtPDhg2zS1mJLMUpsETNaMSIEVi/fr3B2MT9OAWW5IQtCaJmtGDBAnzy\nySdGXz9+/DgCAgKYIEg22JIgIiKj2JIgIiKjmCSIiMgoJgkiIjKKSYKIiIxikiAiIqOYJIiIyKj/\nB6l0q0OkCN9hAAAAAElFTkSuQmCC\n", "text": [ "" ] }, { "html": [ "\n", " \n", " " ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 50 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }