Created
November 5, 2012 12:17
-
-
Save joemilbourn/4016917 to your computer and use it in GitHub Desktop.
bandlimited_2fsk
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"metadata": { | |
"name": "bandlimited_2fsk" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "# Bandlimited 2-FSK communications below the noise" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "from chnl.two_fsk import encode, decode\nfrom chnl.ser import rand_bits\nfrom chnl.channel import awgn, dB, p\nfrom llib import colours\nimport scipy.signal", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 172 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "## A Bandlimited Channel\n\nThe connection between transmitter and receiver, or between drill bit and the surface, introduces noise and doesn't transmit all frequencies.\n\nWe'll use a simple butterworth low pass filter to restrict the channel bandwidth. The filter is a fifth order butterworth design, and the 3dB point is at 30 Hz. Here we'll set up some parameters and define a function filtering a transmitted signal and adding noise at a given signal to noise ratio." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "channel_bandwidth = 30 #Hz\nsample_rate = 200 #Hz", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 173 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "channel_b, channel_a = scipy.signal.butter(5, channel_bandwidth/(0.5 * sample_rate))\n\ndef channel_filter (samples, snr):\n samples = scipy.signal.lfilter(channel_b, channel_a, samples)\n if snr < inf:\n samples = awgn(samples, snr)\n return samples", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 174 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Show the channel analytical frequency response, to ensure it performs as expected:" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "w, h = scipy.signal.freqz(channel_b, channel_a)\nplot(w/pi*(0.5*sample_rate), dB(abs(h)), color=colours.ttp_dark_red)\nylim([-20, 1])\nxlim([0, 2*channel_bandwidth])\nxlabel('Frequency (Hz)')\nylabel('Gain (dB)')\ntitle('Frequency response of the modelled chanel, bandwidth %d Hz' % channel_bandwidth)\ngrid()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"png": "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\n" | |
} | |
], | |
"prompt_number": 175 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "We can also examine the performance of the channel with simple sine wave inputs. First test the noise generation with 5s of 10 Hz sine as input:" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "run_time = 5 # s\nt = linspace (0, run_time, run_time*sample_rate)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 176 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "frequency = 10 # Hz\nsnr = +10 # dB\nsignal = sin(2*pi*frequency*t)\noutput = channel_filter(signal, snr)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 177 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "signal_power = p(channel_filter(signal,inf))\nnoise_power = p(output-channel_filter(signal, inf))\nprint \"Measured SNR: %.1f dB\" % (dB(signal_power) - dB(noise_power))", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "Measured SNR: 9.8 dB\n" | |
} | |
], | |
"prompt_number": 178 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Success, requested a +10dB snr, and measured it in the results." | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Now repeat the test with a 50 Hz sine as input:" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "frequency = 30 #Hz\nsnr = -10 #dB\nsignal = sin(2*pi*frequency*t)\noutput = channel_filter(signal, snr)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 179 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "signal_power = p(channel_filter(signal,inf))\nnoise_power = p(output-channel_filter(signal, inf))\nprint \"Measured SNR: %.1f dB\" % (dB(signal_power) - dB(noise_power))", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "Measured SNR: -10.1 dB\n" | |
} | |
], | |
"prompt_number": 180 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Success, requested a -10 dB snr, and measured it in the results." | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "#### Test frequency dependent attenuation with a range of sine inputs:" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "signal = sin(2*pi*10*t) + sin(2*pi*20*t) + sin(2*pi*30*t) + sin(2*pi*40*t)\noutput = channel_filter(signal, 10)\npxx, y = psd(output, NFFT=2048, Fs=sample_rate, color=colours.ttp_dark_red)\n\nfor f in [10, 20, 30, 40, 50, 60]:\n print \"Power at %d Hz: % 2.1f dB/Hz\" % (f, dB(max(pxx[(y >= f-2) & (y <= f+2)])))", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "Power at 10 Hz: -1.5 dB/Hz\nPower at 20 Hz: -1.3 dB/Hz\nPower at 30 Hz: -4.9 dB/Hz\nPower at 40 Hz: -14.8 dB/Hz\nPower at 50 Hz: -26.6 dB/Hz\nPower at 60 Hz: -28.6 dB/Hz\n" | |
}, | |
{ | |
"output_type": "display_data", | |
"png": "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\n" | |
} | |
], | |
"prompt_number": 181 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Success, All sine inputs are at the same power, but higher frequencies are attenuated in the output." | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "With an understanding of this (simple) channel we can choose a modulation scheme and tailor it to the channel characteristics. A simple modulation scheme that may be suitable is frequency shift keying." | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "## Modulation" | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Frequency shift keying (FSK) modulates the transmitter frequency to send information. 2-FSK uses two tones, representing bit 0 and bit 1.\n\nEncoding the two bit message $m = \\left[0, 1\\right] \\;$ with tones at 10 and 50 Hz and a symbol rate of 1 Hz:" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "frequencies = (10, 50) #Hz\nsymbol_rate = 1 #Hz", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 182 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "m = [0, 1]\nt, signal = encode(m, frequencies, sample_rate, 1.0/symbol_rate)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 183 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "plot(t, signal, label='transmitted signal', color=colours.ttp_dark_red)\nxlabel('Time (s)')\nylabel('Amplitude')\nylim([-1.4, 1.1])\ntitle('2-FSK encoding of message %s' % m)\npoly = Polygon([(0, min(ylim())), (0, max(ylim())), \n (1/symbol_rate, max(ylim())), (1/symbol_rate, min(ylim()))],\n facecolor='0.8', edgecolor='0.8')\ngca().add_patch(poly)\ngca().annotate('Symbol %d, f=%dHz' % (m[0], frequencies[0]), xy=(0.2, -1.3))\ngca().annotate('Symbol %d, f=%dHz' % (m[1], frequencies[1]), xy=(1.2, -1.3))", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "pyout", | |
"prompt_number": 184, | |
"text": "<matplotlib.text.Annotation at 0x426e110>" | |
}, | |
{ | |
"output_type": "display_data", | |
"png": "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\nz3zGGfO+++6TfX19cvv27fp3n//85+W73/1uKaWUe+yxh7zhhht037e+9S05MjKi/20rjTe+8Y26\nb+3atbKnp0dKKeUvfvELuWTJEmPuN7zhDV6lcfjhh8vLLrtM//vBBx+UPT09ms4QpXHLLbfof7/6\n1a+WX/ziF/W/P/3pT8szzjhDSunn6y9+8Qt5//33y0WLFsnrr79etttt45nXve518vzzz5dPP/20\nlw4ppRwbG5NRFMlNmzbJ7du3y56eHq14pJTyggsukK997WullCl/lQJR7bTTTpOf/exn2bFtpXH5\n5ZfLww8/3Hjm85//vDzllFMKabRbV2k8/60bnpqFTQiBk08+GQMDA/ja176mf3/00UdrwPt73/se\ngBSb+PGPf4zNmzdj8+bNuOaaawAArVYLH//4x3HrrbdibGwMF1xwAU4//XT89re/1e99/etfx7p1\n6/ChD32okJ7R0VF85Stfwc4776z/Gx0dNeLVKgwGAIODg2i32wCAJ554Ai996UudMZ988kksXLgQ\ng4OD+neLFy/Gpk2bAACbNm3CyMiI7ttzzz0LaRweHtY/z5kzB0mSQAiBTZs2YY899jCeHRkZ8cbG\nN23ahD/6oz8yaEqSJDg2b9PS399v/Luvr0/zxsfXZ555Bn/8x3+Mr3zlKzjvvPMwPDyME044AaOj\nowCAFStW4J577sH++++P5cuX62SJdruNj3/841iyZAl22mknLF68GFEUYXx8HM888wySJDH4SH8e\nHR3FbbfdZtByxRVXYPPmzUFrnjdvHrZt22b8bmxsDPPnzw/mW7e9MK2rNGZZk1Li1FNPxVNPPYVr\nrrkGrVZL9/385z/XgPdJJ50UPGZvby8+/OEP4yUveQnuuece/fvh4WFcf/31WLVqFT760Y963999\n991x/vnna8W0efNmjI+PB9Gwxx574MEHH3R+Pzw8jGeeecbAPjZs2KAF7KJFi7SQBGD8XKUtWrQI\njz32mPG7DRs2eLNwhoeH8cgjjxjPxnGMXXfdtdb8dqPzlvH1fe97H371q1/h0UcfRX9/Pz796U8D\nAPbdd19cddVV2LRpE8477zyceOKJGBsbw+WXX44bbrgBv/rVr7BlyxaMjo5CptEILFy4EK1WCxs3\nbtTzU57uvvvuOOqoowxaxsbGcMkllwSta+nSpVi/fr2B16xZswZLly6tzZ9ue35aV2nMsvaRj3wE\n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\nw8DAwMAgNP4/dAICUfD7YKUAAAAASUVORK5CYII=\n" | |
} | |
], | |
"prompt_number": 184 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "In the frequency domain, the 2-FSK signal has two clear peaks representing the two tones. Here we're sending one thousand random bits of information." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "m = rand_bits(1000)\nt, signal = encode(m, frequencies, sample_rate, 1.0/symbol_rate)\ny, f = psd(signal, NFFT=512, Fs=sample_rate, color=colours.ttp_dark_red)\ntitle('Power Spectral Density of a %d bit %d-FSK message' % \\\n (len(m), len(frequencies)))\nxlabel('Frequency (Hz)')\nylim([-50, 0])\nfor i, f in enumerate(frequencies):\n gca().annotate('$f_%d = %d Hz$' % (i, frequencies[i]), xy=(f, -5), xycoords='data',\n xytext=(75, 7), textcoords='offset points',\n arrowprops={'arrowstyle': '->'},\n horizontalalignment='right', verticalalignment='top')", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEaCAYAAAACBmAUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd801X3xz8ZzWiTNume7F3KKkOg0AooMgrCI8qDgIBs\nQVFcIAoKgj4ozw9FkaGAokD1YYPIrIIoZdMW2S100Jl0Zif390foN11pOpJ8Q3vfr1de9DvvyeHk\ne773nHPv5RBCCCgUCoVCsQGXbQEoFAqF8nhAHQaFQqFQagV1GBQKhUKpFdRhUCgUCqVWUIdBoVAo\nlFpBHQaFQqFQagV1GJR6sWzZMkyaNIltMaowZ84crFixwiltrVmzBt7e3vD09IRSqXRKm45m69at\nGDBggNXjw4cPxw8//OBEiSiuRKN3GC1atIC7uzukUinkcjkmTJiAwsJCtsViuHLlCqKjoyGRSODl\n5YXu3bvj8OHDDm0zJiYG3377bYPuweFwrB6Lj48Hl8uFVCqFl5cXwsLC8MILL+DChQsNarM2rF+/\nHkuWLGHkCAsLc0g7arUaixcvxh9//IGioiLI5fIG3S8uLg79+vWDh4cHnnzyySrHr1y5gsjISEil\nUvTs2RNXr16tcPy///0vgoODIZfL8fLLL0On0zHHFAoFxowZA09PT7Rs2RI7duyot5yHDx9mXhRs\nORcAWLBgAVq3bg0PDw+0bt0aGzdurPH8mJgYiMViSKVS5nPu3DkQQvDBBx8gNDQUHh4eCA4OxnPP\nPVfhuvI2HR8fD29vb8TFxdX7u1Kq0ugdBofDwcGDB1FcXIzk5GQkJiZi6dKlrMhiMpkqbBuNRowc\nORJjx45FQUEBCgoKsHHjRshkMofKUdPDHgAMBoPNe9ga7xkSEoLi4mIUFhbiypUr6NWrFwYOHIiT\nJ0/WSVZXJScnBzqdDh07drTL/Xx8fPDGG2/g3XffrXJMp9Nh9OjRmDVrFoqLizF79myMHj0aer0e\nAPDbb7/hs88+w9mzZ5Geno709PQKNv7KK6/Ay8sLCoUCu3fvxty5c3H9+nW7yG0Lf39/HD9+HKWl\npdi5cycWLVqE+Ph4q+dzOBx89dVXKC4uZj59+vTBhg0bsGfPHpw+fRqlpaVITEzEqFGjKlxXZtdH\njx7FmDFjsHXrVjz//POO/opNC9LIadGiBTlx4gSz/eabb5Knn36aEELITz/9RFq2bEkkEgl54okn\nyJUrVwghhHz33XckNjaWuaZNmzZk3LhxzHZoaCi5evUqIYSQy5cvk6ioKCKVSkmzZs3Itm3bmPNe\neuklMnv2bDJ8+HAilUoryEEIIRkZGYTD4ZDi4uJqZT916hQJCQkhK1euJP7+/iQgIIBs3ryZOa5S\nqcjs2bOJn58fkclkZPLkyUSlUjHHf/zxR9KhQwcikUhIixYtyOHDh8nixYsJj8cjIpGISCQSMn/+\nfEIIIRwOh3z11VekXbt2pHXr1oQQQubOnUuCg4OJh4cH6dy5Mzl+/Dhz76VLl5KJEydalTs0NLTK\n/nfffZf07NmT2balu7lz55KRI0cSiURCunbtSm7evEkIIcRgMJA5c+YQuVxOpFIp6dSpE0lKSmKu\nW7JkCSktLSUikYhwuVwikUiIVColmZmZRCwWk/z8fKadixcvEj8/P2IwGKrIq1aryfTp04lcLife\n3t5k5syZRKPRkJs3bxIPDw/C4XCIRCIhgwcPrlYPzz77LPH39yceHh6kT58+5PLly9WeV55NmzaR\nmJiYCvt+++030rJlywr72rRpQ3777TdCCCH//ve/yYcffsgcO3PmDAkMDCSEEFJSUkIEAgG5f/8+\nc3z69Onk3Xffrbb9LVu2kP79+5N58+YRuVxOmjdvTg4ePMgcj46OJps3byb//PMPEQqFhMfjEYlE\nQuRyuc3vRgghzz33HFm1apXV4zExMeTbb7+tsn/mzJnkjTfeqPG6zZs3kwMHDhCZTEZ+/fVXq+em\npKQQDodDtmzZQpo1a0a8vb3J+vXrSUJCAunSpQvx8PAg06dPr3DNF198QZo3b06kUikZOHAguXPn\nDiGkeltMTEwkhBCyZ88e0qZNG+Lh4UGCgoLIp59+SgghRKFQkKeffpr4+Pgw9pOamsq0dePGDdKz\nZ08ilUrJkCFDyNy5cyv81k6cOEG6detGpFIpad++fY3f1d40CYdR9qB78OAB6dSpE3nrrbfIlStX\niEQiIWfOnCGEELJ27VoSEhJCtFotuXv3LpHJZIQQ80O9efPmJCwsjBBCyN27d5kfh1KpJP7+/mT7\n9u2EEEKSk5OJj48PuXjxIiHE/PDy9vZmtrVabQXZjEYjadmyJRk1ahTZt28fyczMrHD81KlThM/n\nk8WLFxOTyUTOnTtHJBIJ49hmzJhBxo4dS4qKiohKpSLPPvssee211wghhJw8eZLI5XJy+vRpQggh\n2dnZzAO3uh8lh8MhsbGxpLi4mJFz165djDNbt24dkcvlRK1WE0Lq5zD++usvwuVyiUqlqpXufHx8\nyNWrV4nBYCAvvvgiGTt2LCGEkP3795PIyEhSWFhICCHkzp07JCsrixBCyJQpU8j7779PCCEkPj6+\nihzDhw8n69evZ7YXLFhAXn311Wq/x8KFC8nAgQNJQUEBKSgoIDExMWThwoWEEEJSU1MJh8MhRqOx\n2msJMTtsjUZDDAYDeeedd0j79u2tnltGdQ5jzZo1ZPTo0RX2jR07lqxZs4YQQkjXrl3J3r17mWOF\nhYWEw+EQhUJBLl26RLy8vCpc+8UXX1R4ISrPli1bCJ/PZ3S0d+9eIpVKSXZ2NiGkou1s3bqVREVF\n2fxOZahUKhIWFkYOHTpk9ZyyB39lvvvuO+Lt7U3WrFlDzp8/T3Q6XZXrRo0aReRyeZUXs8qUOYz5\n8+cTg8FATpw4QQQCARk7dixRKpUkIyODBAYGkqNHjxJCzP+Pbdu2Jffu3SOEELJq1SrSrVs3QkjN\ntujt7c08X4qLi5mXTIVCQQ4ePEgMBgNRqVRk4sSJZOjQoYx8Xbt2JUuWLCEmk4lcuHCByOVyMmnS\nJOb+MpmMeabFx8cTLy8vkpGRUeN3theN3mE0b96cSCQSIpPJSGBgIJk+fTopKSkhixcvrvLAa968\nOfPWFhYWRi5dukR27NhBZs6cSfr06UNu3LhBvvvuO+bHu3XrVjJgwIAK95g5cyZZtGgRIcT80Kv8\nplKZ1NRUMmvWLNKqVSvC4XBI3759yY0bNwgh5gevUCgkGo2GOX/ixInkvffeI1qtlohEInL37l3m\n2NmzZ0lQUBAhhJBJkyZZfYus7kfJ4XAY47aGr68vSUhIIITUz2Hcvn2bcDgckpmZWSvdzZgxgzl2\n+PBhpudz4sQJ0q5dO3Lu3LkqD+wpU6aQJUuWWJVj586dpH///oQQ89thYGAgOX/+fLXfIyQkpEKv\n6uTJk8ybe9lDpyaHUZ7i4mLC4XBITk5OjedV5zA++ugjMmHChAr7Jk+ezPQqWrduTY4dO8YcMxqN\nhMPhkPv375M//viDBAcHV7j222+/rdJGGWVv3eWJiooimzZtIoRUdBhbtmypk8N46aWXyLBhw2o8\nJzo6mri7uxOZTEZkMhmJjIxkjm3dupXExMQQDw8P4uXlRZYvX17hOk9PT9KnTx/mpcYaZf935V/Q\n/Pz8SFxcHLM9btw48tlnn1X5zoSY9evu7k5u3rxJTp48adUWmzVrRjZu3EiKiopqlCcxMZGIxWJC\nCCE3b94kQqGwwsvl1KlTGYexbNky5u8yhg4dSjZs2FBjG/aiSeQw9u3bB6VSiYcPH2LTpk3w8PBA\nTk5OlYRoWFgYsrOzAQDR0dGIj4/H6dOnER0djejoaPz+++/4448/EB0dDQBIT0/HuXPnIJfLmc9P\nP/3EVMxwOBwEBgbWKF/z5s3xzTff4O7du0hPT4e3tzcmTJjAHPf29oZQKGS2Q0NDkZ2djby8PGi1\nWkRGRjJtDxs2DEVFRQCArKwstGrVqka9VCYoKKjC9vLly9G2bVt4eXlBLpdDoVCgpKSkxu9TE3l5\neeBwOJDJZLXSXUBAAHOtWCyGVqsFAAwaNAizZ8/G7Nmz4e/vj2nTptW6kGH06NG4fv06UlNTcezY\nMXh5eaFnz57VnpudnY1mzZox22FhYcjJyalVOzqdDgsWLEDz5s0hk8kQFhYGDodTL/1JpVKUlpZW\n2FdSUgKpVAoAkEgkFY6XtSGVSqscq3xtdYSEhFTYDg0NrfX3tsZbb72F5OTkCkno2bNnM4ntTz75\nBID5//3LL7+EUqmEUqmsUCjx0ksv4dSpUygqKsKWLVuwfPlyHDx4kLlu+fLlEAgEePbZZysk/a1R\n3r6EQmGV7TJ7S09Px2uvvcbYqY+PDwCzPT/55JNWbTEuLg779+9H8+bNERUVhdOnTwMACgsLMWXK\nFISEhEAmk6F///7QarUghCAnJwfe3t4QCASMLCEhIUzOMD09HT///HOF382ff/4JhUJRh/+N+tPo\nHYY1AgIC8ODBgwr70tPTGaOJjo7GqVOncPr0acTExDAO5Pfff2ccRlBQEIYMGcIYt1KpRHFxMdav\nX18vmYKDg/HKK68gOTmZ2adQKKDRaJjttLQ0BAYGwsfHB25ubrh9+zbTdkFBAfOwCA4Oxr1796pt\nx1bSGwCOHz+Or7/+GocOHUJhYSGUSiV8fHxsJrtrYu/evYiMjIRYLG6w7l5//XVcunQJN27cQGpq\nKvPAKf/9qvueIpEI48aNw/bt27F9+3ZMnjzZahsBAQG4f/8+s52WlgZ/f/9ayff999/j5MmT+PPP\nP1FQUID09HQQc4++xuuqkzk8PByJiYkV9l27dg3h4eHM8fJVU9euXUNAQADkcjnatWsHtVpdwdav\nXbuGzp07W5UhIyOjwnZaWlqFh2lNslbH0qVL8dtvv+Ho0aOQSCTM/m+++YZJbFeX7LcGl8vFmDFj\n0L179wq/FYlEgsOHD6OwsBDjxo2rVfFGbQgKCsKWLVsq2GppaSn69esHwLot9unTBwcOHEBeXh7G\njRvHJOBXr16NjIwMXL16FQUFBfjzzz8Z2/D394dCoWCcFWB+LpXpOigoCNOmTavyu6mL/hpCk3UY\nzz33HPbt24ezZ8+CEIJ169ZBr9czzqDMYWg0GgQHByMqKgpHjhyBQqFA9+7dAQBjxozBlStX8Msv\nv8BoNMJkMuHy5cu4efMmANuVRAUFBVi5ciXS0tIAmN9YtmzZgl69ejHnGI1GrFixAiaTCefOncP+\n/fvx3HPPQSgUYtKkSVi4cCEKCgoAmHsVJ06cAABMmTIFGzduxNmzZwGY35Zv374NwNxrSUlJqVG2\n0tJScLlceHl5wWAw4D//+U+932Ly8/OxZs0afPHFF1i5ciWAhunu0qVLuHTpEkwmE8RiMYRCIbhc\nLnNd2bXe3t7MD6o8kydPxpYtW7B///4ax5K88MILWLFiBQoKClBYWIjly5dX6P3VhEqlAo/Hg5eX\nFzQaDVPqaw2TyQSNRgO9Xg+TyQStVstUQcXExMBoNGLTpk0AgE2bNsFgMGDQoEHM99m4cSNSU1NR\nWlqK5cuXY+rUqQAADw8PjB07FkuXLoVer8fly5fxv//9r8bvnZmZiQ0bNgAA9u/fj6tXr2LkyJFV\nzvP29sbDhw8ZOatj1apV2LFjB44dO1br0uPq/u+3b9+OY8eOQavVwmQy4ejRo0hMTKzQOySEQCKR\n4MiRI8jIyMCECROqVCbWhTI5Zs6ciZUrV+LOnTsAzD20vXv3ArBui3q9HnFxcczvSCKRMDaqUqng\n5uYGqVSKoqIiLF++nGmzXbt2aN++PT7++GOYTCZcunQJ+/fvZ45PmjQJe/bswalTp0AIgV6vx59/\n/onMzMx6f8+60GQdRrdu3bBhwwZMnDgRnp6e2L59Ow4ePMiEf9q2bQupVMrUmXt6eqJ169bo378/\n4+3lcjmOHDmCb775Bt7e3vDx8cHrr7/O9AjKl/pVh0AgwPXr15n6+3bt2sFoNOKnn35izgkMDIS7\nuzuCg4MxatQorFmzBl27dgUArFu3DnK5HB07doSnpyeio6ORlJQEwPyQ+eKLLzBlyhRIpVL07duX\n6XHMnz8f27dvh5eXFxYsWFCtbCNGjMCgQYPQqlUrtGjRAhwOp0J4pqbvxuFwkJmZyYzD6NKlC/7+\n+2/Ex8djyJAh9dZd2bZSqcTkyZPh6emJkJAQeHp64u23365yXUREBEaNGoXQ0FB4e3sjKysLANC/\nf39wuVxERkbWOE7j448/Rps2bdCqVSu0bNkSrVu3ZhxeeXmqY8qUKQgODkZAQADCw8PRo0ePGs//\n/vvv4e7ujrlz5+L06dMQi8WYNWsWAMDNzQ179+7Fhg0bIJFIsGHDBuzduxd8Ph8AMHToUCxcuBB9\n+/ZFSEgIQkND8eGHHzL3/vrrr1FQUAAfHx+MHTsW69evt1oOzOFw8MQTTyApKQk+Pj549dVX8dNP\nP1XbwxgyZAhatWoFHx8fqz2v9957D2lpaWjTpk2V8JM1qtOTWCzG+++/D39/f0gkEixYsACff/45\nBg8eXOU6Ly8vHDt2DLdu3cJLL71UrQOqTe+o7JyJEydi5syZGDZsGDw9PdG+fXvGYdRki5s3b2bG\njaxbtw4//vgjAHOPpLCwEHK5HE888QQGDx5cQZ5du3bh8OHDkMlkeOedd/DCCy8wzqZt27bYsWMH\nFi9eDC8vLwQGBmLFihUwGo02v4894JCGxBgoDiU+Ph6TJk1ieiAU+zFkyBBMmDAB06ZNY1sUCqVG\nJk2ahNDQUKxatYptUZpuD4PSdLl27RouXrxIB3VRXJLLly8zL4knT57E7t27ERsby7JUZvhsC0Cp\nmdomFim146WXXsKBAwewZs2aCglYCsVVSEtLw8iRI1FYWAhvb2+sXr2aSbCzDQ1JUSgUCqVWuGRI\n6siRI4iIiECnTp3w6aefsi0OhUKhUOCCPQytVosOHTrgzJkzCAgIQN++fbFx40amlJVCoVAo7OBy\nPYxz584hPDwcISEh4PP5eOGFF3Do0CG2xaJQKJQmj8s5jPT09Aq18aGhoUhPT2dRIgqFQqEALlgl\nVZcBNRQKhUKpGw3JQrhcDyM0NLTCQLW0tLRqR+OWTQHR1D9Lly5lXQZX+VBdUF1QXdT8aSgu5zB6\n9eqFpKQkZGRkMPOxDBs2jG2xXJbU1FS2RXAZqC4sUF1YoLqwHy4XkhKJRFi/fj2GDh0Kk8mESZMm\noUePHmyLRaFQKE0elyurrQ0cDscu3avGQHx8PGJiYtgWwyWgurBAdWGB6sJCQ5+d1GFQKBRKE6Gh\nz06Xy2FQ6kZ8fDzbIrgMVBcWqC4sUF3YD+owKBQKhVIraEiKQqFQmgg0JEWhUCgUp0AdxmMOjc9a\noLqwQHVhgerCflCHQaFQKJRaQXMYFAqF0kSgOQwKhUKhOAXqMB5zaHzWAtWFBaoLC1QX9oM6DAqF\nQqHUCprDoFAolCYCzWE0YY4ePYp58+bh559/btB91Go1Fi1axGxrtVq899572LdvH/7v//6P2a9S\nqbBw4UJ069YN+/fvR05ODqZMmYKYmBicPHmyQTJQ7Ic97OLevXtYu3YtdDodli1bBoDaBYU6jMea\n9evXIzw8HN26dav3Pe7fv49169bhwoULzL4tW7agd+/eGD16NG7evIl79+4BANzd3dGxY0e8+OKL\nGDVqFPz9/REcHIzp06dj0KBBDf4+DYXGqs3Ywy5MJhM+/PBDdOrUCb169QJA7YJCHYbdyczMxHff\nfeeUkJlGo0HHjh3Rtm3bet+jefPmeOONNyrs+/3339GxY0cAQIcOHXD69GnmWEJCAvr3789snz59\nGr179653+02FlJQUbN++3Slt2cMuOBwOfv31V9y5cwcjRowAQO2C4oILKD2u3L9/H59++il27tyJ\n2bNnO7y9zz//HGq1GoWFhQ2+V2XnlpOTAw8PDwCAh4cHsrOzmWNXr15FcnIybt++Da1Wi9u3b6Nd\nu3bIy8vDyy+/jJCQECiVSqxbtw4+Pj4Nlq0uuMKaB/oSFXhCAbhu5p/WrVu3sHLlShw4cADvvPOO\nw9svs4uCgoIG3cfNzQ2XL19GTk4O7t+/j3nz5lG7oFCHYQ8GDBiACxcuoGvXrpg4cSK4XC6WLl0K\nLpcLHo8HLpdb4e+a9lX+96mnnoKvr2+VNnv27AlCCEaPHl2tTEajEV999VW1PZ1evXqhX79+Vr8P\nj8cDh8MBYA5NlKFSqcDj8TBjxgwAwPnz5xEREQEA8PX1xb59+/Dpp5+ib9++Tn8ouAoXX1+DwMG9\nEPrcYPTs2RO3bt1Cjx498NJLL6GoqAgffPBBtf//NdlA5X08Hg/Dhw+Hp6dnlfZ79uwJk8mEZ599\ntlr5amsXzZo1Y1583nzzTSQnJ1O7oFCHYQ+CgoLA5Zqje2KxGCKRCCaTCUajETqdjvm7/L/V7avu\n3/bt21frMJKTk9G5c2esX78e/fr1Q9euXSsc5/F4ePXVV+v1fQICAqDRaAAARUVFCAgIAABcvHgR\nXbp0Yc67fPky+vTpw2xv27YNpaWlmDRpUr3abSiusLKaJisPmqx8cLlcBAYG4tatW+BwOBCJRBCJ\nRMz/rcFgqJMtVP67R48e1TqM5ORkRERE4Pjx4wgPD0dQUFCF47W1i7fffhuDBw/G0KFDIRAIcOPG\nDWoXFOow7EFcXBzy8vKwevVqbNq0CbNnz8bKlSsd2mZSUhKkUim8vLxw/vx5yOVyNGvWjDluMBjw\n9ddf16uHERUVheTkZLRq1QqJiYl4//33AZjj1OXXV7906RKGDRsGAPjrr7+QkJCAr776CgkJCU02\nfq1VFEGrLAKXy8WRI0eQmZmJVatWYcOGDXjnnXfw9ttvO7T9pKQkxMbGYsmSJZg5c2YVh1Fbu2jb\nti3zkE1LS8O0adOQl5dH7aKpQx5DXFnsrKws8tNPPzm8nZEjR5JXXnmFEELIiRMnyO7du+t1n8zM\nTLJixQoSFhZGvv76a0IIIcXFxeT1118nO3bsICtWrCCEEHLgwAESGRlJXn31VVJYWEh+/PFH0qJF\nC/Lhhx8SvV5P/vvf/5Lr16+T6OhoEhcXZ58v+Riyv8NYkjDv0yr779+/T3755ReHtx8bG0tKS0vJ\nl19+Sc6cOVPv+ygUCrJmzRqybds28v333xNCqF00Bhr67KQD9+oJIQS5Z67Af0B3p7YbFxcHrVaL\nM2fOQCQSYe3atThx4gSUSiWee+45p8pCqcovAU8hcEhvRP34sVPbjYuLg0ajwdmzZ/HNN99g27Zt\naNOmTYXKJQqFDtxjCcWF6zg14jWnOy6xWAyFQoF58+ahc+fO2LNnD+7du1chhtxUYbve3qjTw1Ci\ngk5R5PS2xWIxlEol5s2bBwC4ceOG02VwVdi2i8YEzWHUk5SfjoAYjTBpdeCJhE5rNzY2lvm7ffv2\nWLduHXr16oV27do5TQZK9eiUZkehVTS81LmulLeLoqIiEEKQlpYGvV4PNzc3p8tDaZzQkFQ9MGp1\n2Nf2WRiKVRh9ey+EvjLWZKG4DoXX7+HYoFlwk3pg9O29bItDoVSBhqRYIPv3i/Dq0AKiAG8YStVs\ni0NxEbSKIkjbNIOOhR4GheIMqMOoB9ocJSQtgsGXuENfwq7DoPFZC2zrQqcohHuIHwDAoNKwKgvb\nunAlqC7sB3UY9cCg0oDnLgLfQwxDqYptcSguglZRBKG3FwRyT9rLoDRKqMOoB0aVBjyxEG4SMQws\n9zDoCFYLbOtCpyiEQO4JgY8XtErnV0qVh21duBJUF/aDOox6YFBrwROX9TBoDoNiRptfCIGPJ4Te\nXtDls+swKBRHQB1GPTCqteC7C8GXuLPew6DxWQts60JXFpLy9mSltLY8bOvClaC6sB81jsPIycnB\nzz//jD/++AOpqangcDho3rw5Bg4ciHHjxsHf399ZcroURrUGogBvmsOgVECrKITA+1EPg+YwKI0Q\nqw7j5Zdfxt27dzFs2DDMnj0bQUFBIITg4cOHSEhIwPPPP482bdpg8+bNzpTXJTA8ymHwJWIYStmt\nhqHxWQts60KrKCzXw6A5DFeB6sJ+WHUYr732WrXTTXTs2BGDBg3Cu+++i2vXrjlUOFfFqNaCT3MY\nlEroFEUQeHtBKPeEOjufbXEoFLtjNYdR5ix++OEHFBcXVzh28ODBCuc0NcxltUKzw6A5DJeBbV1o\nFYUQ+pirpHT5NIfhKlBd2A+bSe/58+djwIABuH79OrOvbB78poo56U3HYVAqYigqhZvUAwIvCXSF\nJWyLQ6HYHZsOo2XLlvj2228xbtw4xMXF2aXRn3/+GeHh4eDxeLh06VKFY6tWrUKnTp0QERGBo0eP\n2qU9e2NUa8xltRIx9CyHpGh81gKbuiAmE4xaPXhiIXjuIhjVWtZkAahdlIfqwn7UarbayMhI/P77\n7/j3v/+Nc+fOwWg0NqjRiIgI7NmzB7Nmzaqw/+LFi9i9ezcSExORlZWFqKgo3Lx5EwKBoEHt2RuD\nSmtOertASIriGhg1OvBEAnC4XPDFIhjU7BZDUCiOwGYPo2yJR19fXxw5cgRcLhdJSUkNarRDhw7V\nTsd96NAhjB8/HjweDyEhIQgPD0dCQkKD2nIERrUGfPGjcRgs9zBofNYCm7owPpouBgB47kIYVez2\nMKhdWKC6sB82Hcbhw4eZv3k8HlavXg2TyeQQYTIyMhAaGspsh4aGIj093SFtNYSyh4ObhxiGEprD\noAAGtQZ88SOHIRbBSHsYlEaI1ZBU+QVZKs+hzuFwsH///hpv/NRTTyErK6vK/pUrV1a4d32ZMmUK\nWrRoAQCQyWTo1q0bE6sse6Nw1PaVgkwIL19A7zadYChVO7y9mrZjYmJYbZ9um7dL07LBczcvpPXX\n1Uu4kp+O4QCr8pXhCvphc7tsn6vI48zt+Ph4bN26FQCY52VDsLqAUnx8POMoZsyYgc2bNzNOg8Ph\nIDo6usGNP/nkk/j888/Ro0cPAMDy5cshFovx5ptvAgBGjhyJRYsWVVmXmO0FlH4JeAqj7+yFNq8A\np0YuQGxYoqdJAAAgAElEQVTyz6zJQnENFFdu4vzcTzD07BZocpX4tddEjEk9xLZYFEoFHLaAUkxM\nDKKjoxETEwOJRML8XbbfXpQXfvjw4di1axcMBgPS09ORlJSE3r17260te0AIYWar5Xu4s15WW/lt\nsinDpi4q5DDENIfhSlBd2A9WJh/cs2cPwsLC8Pfff2PEiBEYNmwYAHM11pgxY9ClSxc888wz2LBh\ng8utR2zS6cHhccHl881Tg9AqKQrMMxjzxeaQFE8shEGlYbUXTKE4AqshKYVCAcD8Rv3kk09W8dLe\n3t4OF84abIakdMoiHAgfh39l/gZCCHZJB+D5wt/B5fFYkYfiGqQf+AMp2w9jwK5PAABx3k/iX5lH\nwBMJWZaMQrHQ0Gen1aR3jx49wOFwAJidRmRkZIVG7927V+9GH2eMGvNaGIBZD3wPMYylGnA9PViW\njMIm5UNSAMB3F5rH61CHQWlEWA1J3bp1CykpKUhJSUFqairzd0pKSpN1FoB50B7f3fIQYHt6EBqf\ntcCmLgxqLfjlnANPLIJRw14eg9qFBaoL+2G1h9GvXz+EhobimWeewTPPPGOXkqzGQFnCuwy+RAx9\niRpiFmWisI/x0YSUZZgT33QsBqVxYdVhXLhwASkpKThy5AgWLFiA9PR0REVFYfjw4YiOjoZQ2DS7\n2oZH80iVwfYU5+VrzZs6bOqiil2wPD0ItQsLVBf2o8YqqZYtW2LOnDnYu3cvzp49i9jYWBw7dgwD\nBgzAiBEjnCWjS2FUmWeqLYNWSlEAcw+jvF24wvQgFIq9qXVZrUAgwODBg7F69WokJCRgw4YNjpTL\nZTEnvcuFpNzFMKjYcxg0PmuB7RxG+ZAU310EA4shKWoXFqgu7IdVh5GcnIyJEyfijTfeQFpaGoYN\nGwZ3d3d06NABf/75Z4U5n5oShko5DJ5YyPpU1hT2Maosc0kBdD4pSuPEqsOYMmUKBg4ciKCgIDzx\nxBOYOnUq8vPz8eWXX+KVV15xpowuhVFd+cHArsOg8VkLbOqiclktz53ahatAdWE/rCa9NRoNZs6c\nCQDYsGEDnn/+eQDmSQUdNVvt44BBpa1Yby8SwqjRsSgRxRUwPFrnvQy+iPY8KY0Pqz0MPt/iS6RS\naYVjvCY8qtm8PKvrlE/S+KwF9ueSKmcXNIfhMlBd2A+rPYwbN24gIiICAHD37l3m77LtpoqxUvkk\nTyRkdYAWxTWoXFbLcxfRcRiURodVh/HPP/84U47HBoNKA76HZZgejVW7DuzmMCqVW4uFMFC7cAmo\nLuyHVYdBR3ZXj1GthchXzmzzxELolMUsSkRxBQzqqiEpfUEJixJRKPbHag5DIpFAKpVW+/H09HSm\njC5FlVg1yyEpGp+1wGoOo3LSm84l5TJQXdgPqz2MkhLz29GSJUvQrFkzjB8/HgCwa9cupKWlOUc6\nF8Sg0bpUWS3FNahSVvtoTQwKpTFhc6T3r7/+ipkzZ8LT0xOenp6YMWMGDh1quktPVpnGmuUeBo3P\nWmB3LinLAkoA+y8S1C4sUF3YD5sOw2QyYceOHTAajTCZTNi5c2eTXknMqNLSkd6UKlRdD4PdsloK\nxRHYdBi7du3C1q1bIZfLIZPJsHXrVuzatcsZsrkkBrXGpd4kaXzWAlu6MBkMIAYjuALLcsJsl9VS\nu7BAdWE/rOYwymjXrh1+++03Z8jyWFAlVk1Hejd5jGrz6P+yFSoB9qc3p1AcgdUexrJly5CdnW31\nwocPH2Lp0qUOEcqVKb9EK0DHYbgSbOnCqKo4Uy1QZhfsvUhQu7BAdWE/rPYwevbsifHjx0On06FH\njx4ICgoCIQRZWVm4dOkShEIh3nzzTWfK6hIYqslh0DfJpo2h0oSUwKOeJ7ULSiPDag9j5MiROHXq\nFHbu3In+/fuDz+fDzc0NUVFR2LVrF06ePInhw4c7U1aXwLxQTqVxGDSH4RKwpYvKYUrAnPSmOQzX\ngOrCftjMYYSFhTFjMCjVLcVJq6SaOpVLagHzehi050lpbNR6xT2KmcpzBrE90pvGZy2wl8Oo2sNg\ne4lWahcWqC7sB3UYdcCkNwAcgOtm6ZixXVZLYZ9qcxiP7KIpj1miND5sOoz8/HxnyPFYUHl5VuDR\ng0GjY+3BQOOzFtjLYWir2AWXxwPHjQ+TTs+KTNQuLFBd2A+bDuOJJ57AuHHjcPjw4Sb/tlR5eVYA\n4HC54LrxYdLSsRhNlcoTUpbB9uJaFIq9sekwbt68iRkzZuD7779HmzZtsGjRIty6dcsZsrkclZdn\nLYPNsBSNz1pgSxfVhaQAdtfEoHZhgerCfth0GFwuF08//TR27tyJTZs2Ydu2bejVqxcGDBiA06dP\nO0NGl6FySW0ZPJansqawi9HaiwRddY/SyLDpMPLy8rB27VpERkbis88+w7p165h9U6dOdYaMLkPl\nUd5l8MUCGFga1UvjsxbY0oW51LrqiwSb04NQu7BAdWE/bI7D6NevHyZOnIh9+/YhNDSU2d+jRw9M\nnz7docK5GsZqkt4ArZRq6ph7ntX1MNgtraVQ7I3NHsaKFSvwwQcfVHAWcXFxAIB3333XcZK5IIZK\nq6qVweY0EDQ+a4HNHEZ1PU+a23INqC7sh02H8cknn1TZ9/HHHztEGFenxmoY2sNospgHc7pWSIpC\ncQRWQ1K//vorDh8+jPT0dLz66qtMSa1KpaowjXNTwqCuOqIXYHe0d3x8PH2DegRburBqFywmvald\nWKC6sB9WHUZwcDAiIyOxb98+REZGMg7D3d292l5HU8BoLSRFexhNGmt2QecZozQ2rDqMrl27omvX\nrnjxxRfh5uZm7bQmRXUjegEaq3YVXGkuKcDcw2BrmVZqFxaoLuyH1RzGuHHjAJiroSIiIip8unTp\n0qBG33jjDXTq1AmdOnXCyJEjK0w/smrVKnTq1AkRERE4evRog9qxN9bKJ3kiIQx0HEaTxVjNbLUA\nHYdBaXxYdRhr164FABw4cKDKZ//+/Q1qNDY2FklJSbh+/To6d+6MFStWAAAuXryI3bt3IzExEUeO\nHMGsWbOg07nOlBvWyif57iLWehi0xtwCa+MwrPUwWM5tUcxQXdgPqw4jODgYAODr64uwsDC0aNEC\nWq0Wly5dQlBQUIMaffLJJ8Hlmpvu378/MjIyAACHDh3C+PHjwePxEBISgvDwcCQkJDSoLXtitXyS\n5SnOKexitGIXfHchDHQcBqURYbOsdsCAATAYDEhLS8PTTz+NHTt2YMqUKXYTYOPGjRg9ejQAICMj\no8J4j9DQUKSnp9utrYZiVOus5DAErK3fTOOzFlgbh2GlrJYnFtHxOS4A1YX9sDnSGwCEQiH27NmD\nefPm4a233kLXrl1tXvPUU08hKyuryv6VK1ciNjYWgHk8h0AgwIsvvlhHsYEpU6agRYsWAACZTIZu\n3boxhlHWBbX3tujRXFKVj1/MvAdjqRadH8nmqPbptmtuX1VkQHDlIoa2DKlwPOxR0ptt+eh2092O\nj4/H1q1bAYB5XjYIYoNu3bqRhIQE8sQTT5CkpCRCCCERERG2LrPJ1q1bSd++fYlarWb2ffTRR2T1\n6tXM9ogRI8iZM2eqXFsLsR3C6QmLyf3/naiy/8aXO8nFN//LgkSEnDp1ipV2XRG2dPFzwBCiKyyp\nsj9lxxFyduoyFiSidlEeqgsLDX122gxJffbZZ1i2bBmeffZZhIeHIzU1FQMHDmyQkzpy5Aj+85//\nYP/+/RCJLLHf4cOHY9euXTAYDEhPT0dSUhJ69+7doLbsibWkt5uXBPrCEhYkorANIcRquTWfxbJa\nCsUR2AxJDR48GIMHD2a2W7RogXXr1jWo0fnz50On0+Gpp54CAPTt2xdff/01IiMjMWbMGHTp0gVc\nLhcbNmxwqTEgRnX1DwaRvzc0uUoWJKLx2fKwoQuT3gAOl1Nh2d4y6Pgc14Dqwn7YdBhJSUn47LPP\nkJaWBpPJBADgcDg4efJkvRu9ffu21WOLFy/G4sWL631vR2Kw5jD8ZNDksOMwKOxibdAewG7Sm0Jx\nBDYdxr/+9S8sWLAAc+bMAY/Hc4ZMLkt1S7QCgNBPzloPI57Ok8PAhi6sldQC7JbVUruwQHVhP2w6\nDC8vL8yZM8cZsrg81t4mRX5yaHOVIIQ02YkZmyrWSmoB2sOgND5sJr2HDx+Ob775Bg8fPoRCoWA+\nTRGr9fYiIXgiASuJb/rmZIENXdQUkuKzODUItQsLVBf2w2YPY+vWreBwOPj0008r7E9JSXGYUK6K\nUa0BT1T922RZWEogkzpZKgqbGKyEKQFzD4POMUZpTNjsYaSmpiIlJaXKp6mhzs4Hh8eFm5ek2uMi\nf29oWUh8lw3SobCjC2sltcCjGQBYzGFQzFBd2A+bDqO4uBhLlizBtGnTAAB3797FgQMHHC6Yq5H3\nVyJ8+0SAw61eZSIWE98U9rA2gzHwqKxWpWHWkqFQHndsOoyJEydCKpXi3LlzAICQkBC89957DhfM\n1cj96yp8+0ZYPc5WpRSNz1pgK4dR3WBOAODy+eDweTDp9E6WitpFeagu7IdNh3Hv3j288847EAgE\nAACRSMTMNNuUyPsrEX59rc+hJfKXQ5vTNIsBmjLmwZzVOwyArolBaVzYfPILBAKo1Wpm+8GDBw4V\nyBUxlKpR+E8K5D06WD2HrZAUjc9aYEMXhkcTUlqDLxbCwMJob2oXFqgu7IdNh7F06VIMHjwY6enp\nmDx5Mvr3749Vq1Y5QzaXQXnlFmThratdVa0MNqcHobBHTWW1AF3vndK4sFlWO2rUKPTp0wdnzpwB\nIQT/+c9/EBgY6AzZXIbS+w8haRVS4zlCPzk0LISkaHzWAis5DI1rhqSoXVigurAfNToMvV6PX3/9\nFTdu3AAAdOrUCb6+vk4RzJVQZ+VBHFjz9xb5yVkpq6Wwx1/TPkRh8j00GzfY6jl8sQgGOtqb0kiw\nGpLKyMhAREQEvvrqKyiVSigUCnz55ZeIiIhAZmamM2VkHVVmLsTBNTsM97AAqNKzYdIbnCSVGRqf\nteBsXTw8fg7StmGQd21n9RyeuxA3v9iJtD2nnCgZtYvyUF3YD6s9jMWLF+PNN9/E9OnTK+z/7rvv\nsGjRImzbts3hwrkK6od58OvbpcZz+O4iuIcFoujWA8jCWzlJMgpbEEKgLyxB3y3Lqp3avIyQYVHI\n/O0s0g/+gbAxTzpRQgrF/ljtYVy+fLmKswCAqVOn4vLlyw4VytVQZ+ZCHOxn8zxZRBsUJFqfut0R\n0PisBWfqwlCqBk8oqNFZAED7+S+g3ZznoC9w7jxj1C4sUF3YD6sOg8+v/ofA4XBcalEjZ6B+mAdx\nkO3cjdlh3HGCRBS20ReWwM3To1bnunlJoSuiKzJSHn+svh4VFBRg9+7dFaY14HA4IIRAqWw6yV1i\nMkGTlV9rh3F7/S9OkMoCnevfgjN1oSsogVstJ5oUsLCEL7ULC1QX9sOqwxg4cKDVOaOio6MdJpCr\noc0tAN/TAzyhwOa5ctrDaDLoC4shsDIRZWXcZBLonBySolAcgVWHsXXrVieK4bqos/LgHmQ7fwEA\n4hB/mPR6aLIVEAV4O1gyM/TNyYIzdaErLLE6c3Fl3Dyd38OgdmGB6sJ+NL1JoeqIKjO3VuEowByy\nk7ZphpKUDAdLRWEbfUFJrdc+cZO6w6jSwGRwbsk1hWJvqMOwgfphns0xGOURyKTQFRQ7UKKK0Bpz\nC87Uha6wuNY9DA6XC76nB/RFKgdLZYHahQWqC/tBHYYN1HXoYQCAm1wKndJ5DoPCDvrCklrnMICy\nxDe1C8rjjdUcxv/+9z+mKqoyHA4HY8eOdahgroL6YR68a5iltjLO7mHQ+KwFZ+cwRP7yWp/v5iWB\nvqjUgRJVhNqFBaoL+2HVYRw4cAAcDsfqhU3GYWTmQjwiqtbnO9thUNhBX1AMz7bNan2+wEtC7YLy\n2EOrpGxgzmHUrkoKAARyT6gysh0oUUVojbkFp47DqEOVFPCoh+HESilqFxaoLuyHzenNTSYT9uzZ\ng5s3b8JQrsrjgw8+cKhgrkJtR3mXIZBLUZhEx2I0duqTw9A5ubSWQrE3NpPe06ZNw759+/D111+D\nEIK4uDjcv3/fGbKxjlGrg76wBCK/2seqaQ6DPZypC31h7Ud6A4CbTOrUHga1CwtUF/bDpsP4+++/\n8f3338PHxwdLly7F+fPncedO03iD1mTlQxTgA04d1jCnOYymga5eVVK0h0F5vLH5JPT09ARgnoww\nKysLHA6nyfQw6jJorwyBTAqdsshBElWF1phbcKYu9HXNYXg6NyRF7cIC1YX9sJnDGDFiBIqKirBw\n4UJ06dIFXC4XU6dOdYZsrEEIgaFYVedBe4A5h0HHYTRuCCHQFdR+4B5gnk9Kn0jtgvJ4U6PDMJlM\neOqpp+Dp6YkJEyZg1KhRMBgMkMlkzpKPFQqT7+H0C++i3Zzn6tzDcKM5DNZwli6MKg24AjfwBLWf\n5l/gJYGOjsNgBaoL+1FjSIrL5eLVV19ltiUSSaN3FgCgyc5HaWomsk4k1KmkFgD4HmKY9AYYtTqo\nMnIcJCGFLe5uO4Czkz+oU/4CcH5ZLYXiCGzmMGJiYrBnz55qR3w3VrQKcw7i4bFzde5hcDgcCORS\nZBw6g9/HLHSEeBWg8VkLztBF+r7fockrgCiwHrktOscYK1Bd2A+bDuObb77Bv/71LwgEAkilUkil\nUiYR3ljRKYvg0SwQIATiWk5tXh6BzBNZx89Bk61wgHQUtiAmE/LOJWFg3KcYcvKbOl3r5umB4tsP\nsLfVKCiv3nKQhBSKY7HpMEpKSmAymaDX61FcXIzi4mIUFTmvCogNdMoihI6OBk8kgHsdQ1KAOfGd\ndfI8dIoimIxGB0hogcZnLThaF4X/pELo7QlRgHed8hcA4B4WgC5LZ8Gvf1dkx190kIQWqF1YoLqw\nHzYdxuDBg2u1rzGhUxZBHOyPp+I3Qdqu9vMFlSGQSaFKywYxmaCnFVONhry/r8H3iS71upbL56P9\n/BcQOnIA8hKS7CwZheIcrDoMtVqN/Px85ObmQqFQMJ+0tLQGj8NYsmQJunbtis6dO2PgwIG4d+8e\nc2zVqlXo1KkTIiIicPTo0Qa1U1+0+UUQentCFtGmxgkYrSGQe4LnLoKkdSg0eQUOkNACjc9acLQu\n8v5KhG/fiAbdw6dPZ+T9neTwnCC1CwtUF/bDqsPYsGEDevbsiZs3byIyMpL5DB06FHPmzGlQo+++\n+y6uXr2KpKQkjBs3Dh9++CEA4OLFi9i9ezcSExNx5MgRzJo1CzqdrkFt1QedsggC7/rnaQQyKeTd\n2kEU4A2tgx0GxXkUJN2Bd/f2DbqHR/MgwGSCKs15E1RSKPbCqsNYsGABUlJS8NlnnyElJYX5XL9+\nHQsXNqz6RyKxlCSWlJQgKCgIAHDo0CGMHz8ePB4PISEhCA8PR0JCQoPaqg86ZREE8vo7DKGfHD69\nwiHylTvcYdD4rAVH60KTrahz1VxlOBwOfJ+IQN7fiXaSqnqoXVigurAfNnMYJpMJhYWFzHZhYSHW\nrVvX4Ibfe+89NGvWDFu3bsWiRYsAABkZGQgNDWXOCQ0NRXp6eoPbqitaRWGDHEaHV8cj4r2XIfSV\nQZuntKNkFLYwGY3QKgoh9G34OCR59/ZQXrttB6koFOdic2qQ7777Dq+99hqz7eXlhc2bN2PevHk1\nXvfUU08hKyuryv6VK1ciNjYWH3/8MT7++GN88sknWLBgAbZs2VInwadMmYIWLVoAAGQyGbp168a8\nSZTFLOu7felhCtz+uYanO7So1/Vnzp8DAHj7yqDNK2iwPDVtl4/POuL+j9N22T5H3F/7KEzJ5fMb\nfL+rBQ9RcO02uj2S2RHyXrlyBQsWLHDY/R+n7f/7v/+z6/PhcdqOj49n1jYqe142CGKDDh06VNg2\nmUykffv2ti6rNffv32fu99FHH5HVq1czx0aMGEHOnDlT5ZpaiF0vTCYTMZlMZKfnAGLU6Rt8vxvr\ndpELC9fYQTLrnDp1yqH3f5xwpC4UV2+RX3tPtsu9Mo6cJadGvW6Xe1mD2oUFqgsLDX122gxJDRo0\nCOPHj8eJEydw/PhxjB8/HoMGDWqQk0pJSWH+3rdvHyIizJUnw4cPx65du2AwGJCeno6kpCT07t27\nQW3VhWMDpyP3zBXwxEJw3Wx2vmwi9PGiOQwn4ghdaLIVKLyRCk12PkQB3na5p8hfDk2OYwd1Uruw\nQHVhP2w+FdeuXYsvv/wS//3vfwGYQ022wlG2WLhwIe7evQu9Xo+WLVti8+bNAIDIyEiMGTOGmRV3\nw4YNcHOr2wCp+qJTFkFx6QYyDp2GsAH5i/II/eTQ5hfaPpHistyPO4a8c4kIfqYfRAE+drmnyN8b\nmhya26I8fth0GHw+H9OnT8fTTz+N8PBwuzS6e/duq8cWL16MxYsX26WdupB3PhngcPDw2LkGJbzL\nI/KVQZvr2AdDPF2vmMERutDkKlF0MxXy7u3t1sMQ+smhzVOCmEx1WpyrLlC7sEB1YT9sWuvPP/+M\n7t27Y8SIEQCApKQk5u/GRN7fSQgZ3h9FN1Ih8PGyyz2Fj5LelMcXba4SxbfToM7IhcjfPg6DJ3CD\nm9Qd2vxC3Pr6ZxhUGrvcl0JxNDYdxrJly3DhwgXI5eZ1rTt37oy0tDSHC+Zs8v6+hlZTYsH3EEMg\nr/1azTUh9JVBm1/o0FG99M3JgkNyGHkFMOkNyPs7EWI79TAAQBTgA01WPq6+/zWK79j/90TtwgLV\nhf2w6TD4fH6VNTAMBoPDBGIDk8EAxcUb8OvbBfJu7eyWw+AJBeAK3aCna3w/tmhzlRDIpVBeu223\nHAZgzmPknU+GUaNzeNiSQrEXNh1Gp06d8OOPP8JgMCAlJQVvvfUWevXq5QzZnEbJ3QyI/OUQyD3h\n07uz3UIPABA8tC8O9ZiAiwvXoOim/ddCLz8GoanjCF1ocpXw69cVIMRuOQzAXCmV8/tFpg17Q+3C\nAtWF/bDpMDZt2oSLFy+CEILY2FiYTCasX7/eGbI5nHOzPkZeQhJKUjMhaRkCAOj83svo8PqLdmuj\n37aPMOS4ee2E86/+x273pTgHbV4B/KK6A4Ddexg5f1xm2qBQHgdsVklJJBKsWbMGubm55nlwfBs2\nl44robx6C4pLN8DhcODRIhgAwBcL7d6OtHUo2kwfgzP/tn/1F43PWrC3LgwqDUw6PXx6dQLXjW+3\n3BZQVlqrgKRlsEMcBrULC1QX9sNmD+PPP/9E+/bt0bNnT0RGRqJDhw44e/asM2RzOJrcAhTfSUPJ\n/YeQtAhyaFt0XqnHD21eAYR+csg6t0braaPrNdW9NYT+5iISv6juDglJUSiOwKbDePnll7Flyxbc\nv38f9+/fx5YtWzBt2jRnyOZQiMlkLpm89QClqZnmaacdiMDbE/oiFUx6+xYM0PisBXvrQpunhMhP\nDjepByLXvGHXe4sfhbf8B3RzSA+D2oUFqgv7YdNheHp6ol+/fsx237594eVln3EKbKJTFoMYjSi+\nk4bS1IdMSMpRcHk8CORSaBV05Pfjgia3ACI/uUPuLQr0gXtoACQtQ2gPg/LYYDOH0a9fP8ydOxfP\nP/88AOCXX35Bv379cOnSJQBAjx49HCuhg9DkKiFpFQJVRi60+YWQOLiHATwKS+UWwKjSQOgrg5vU\no8H3pPFZC/bUhclggDZXaZfpzKtD3qUtovetAYfLoTkMB0N1YT9sOowrV66Aw+Ewq+IRQsDhcHDl\nyhUAwKlTpxwroYPQ5iohDvIFh8+DOjPPbqO7a6Js5HfiR3EIHh6F1lNiHd4mpW6YDAYkf7IVt76K\nQ+upo5lcg73hcLnw6tACOmURrZKiPDbYdBiNNf6nyVFA6CeHQCYFV+Bm14SmNcocRklKBlTp9lmi\nk86TY8Eeusg4eAYZB04jIKYn7ny3F+HvTLGLbNZwk0lhKFXDqNWBJxTY7b7ULixQXdgPqzmMffv2\n4cGDB8z2kiVL0LFjRzz99NO4deuWU4RzBEaNFpocJTS5Soj8vSFt08wp4SjAPBmhJleJktSHUGfk\nOqVNSt1QpWXDP7oHOr09GYZilcNCUmVwOBwIfWR0VmPKY4HVHsZ7772HCxcuAAD27NmDXbt2YefO\nnbh8+TJmzpz5WPY8THoDTr+wCBwOB96RHSDyk8O3T2dI24Y5pX2hrwxFN1JgVGns1sOgb04W7KEL\n9aN1L7y7d4Bv3y7wCAtsuGA2EPnJUZh8F5mHz5jLd+0wgy21CwtUF/bDqmXyeDyIRCIAwIEDB/Dy\nyy8jMjIS06dPR27u4/N2rLx6CwmvfAIASFr5HYxqDfIvXocmRwmhnxyBg3uj9dRRTpFF6CtH/oV/\nwJe4Q5X5+OiwsUMIwcHO46AvKoUmW8GUvA76bR0CYiId3r7QT4ZLb6/F1Q++wdnJH4CYTA5vk0Kp\nD1YdhlarRXFxMQghOHXqFKKjo5ljzoj324uCpDvI/fMqACDvXCLC350KnkiI/IRkiByU0LSG0FeG\ngqQ78H0iAqr0HLvMYvs49vQcRX11oS8sQUlKJkruZ0KTlcfMGcXl8ewonXWEvjKoM3Ix7MJ25Jy5\nDHVWfoPvSe3CAtWF/bDqMObPn49u3bqhR48eaNmyJfr27QvAvB6Gj4/95tRxNOrMPKjSs0EIgSot\nG+5hAfCO7IiCpDsOq7G3htBXBmIwQt6lLQBAX1Tq1PYp1aN+1NsrvZ8FdY7CrnNG1QaPsEC0nfMc\n3IP9IA7ygya74Q6DQnEEVnMYr7zyCoYPH47c3FxERlq65T4+Pvjhhx+cIpw9UGXmwqjWQptXAFVG\nLtxDA+AT2REZB/6A0MkOo8xBebQMhnuIH1TpORB4SRp0TxqftVBfXZSFB1UPsqDJzmdCUs6iy4ez\nmL/FAT52Wb6V2oUFqgv7UWN2rWXLlujduzd45brmQUFBaNasmcMFsxdlb4+Kyzfg5ukOvlgI7x4d\nAO9XNe0AACAASURBVMD5PQw/c8WNpEUwxCH+UGfmOLV9SvWU2UjxvXTolMUQ+Dp3JgMOl8skukX+\ncmhyFChJyUDansdzjBOl8eKYBYVZ4NbXP5tXtzOZUJB8j9mvzsyF0FeGvL8S4R5qrnjx7tEBogAf\nuDXw7b6uCL3NDyKPFsFwD/GH6lFp7Z+T3kf++eR63ZPGZy3UVxfqzFxIWodCcfEfCH1kTstdVIfQ\n3xua7Hw8PJ6A25t21/s+1C4sUF3Yj0bjMK5/9gOUV28hPyEZxwa+jNK0LACAKjMPPr3CkffXNXiE\nBQAABHJPjLq9x+nJe64bH12WzYJHs4BHIalsqDJzkbbnFIrvpDtVFooFVUYu/J6IgPLKLbsuklQf\nykJSpfcfQp2Zx6osFEplanQYRqMRnTp1cpYsdeLK4q+gvGoeQKgvUUGTnQ91Vh5Umbkw6Y249uFG\nmPQG6PIL4NOzI/IvXIf7I4cBOK8CpjKd3poMLp8P99AAFN9Jw4O4YwAh9Z6AjsZnLdRXF+rMXPj2\n7QKTTg9xILsFHSJ/OTTZ+Sh98BDqzNx6V9JRu7BAdWE/anQYPB4P7du3R0ZGhrPkqTW5f1/Dw2N/\nAwBKUszyqR/mQZ2ZixYTnkHW8XPI++sahL4yeDQPhlGthXtoQE23dCrBz/RF/vnrSF79PQIG9aLz\nCTmZP8a9g6Lb5pkMVJm5kHdtC55I4PQKqcqImB5GFgylalpJR3EpbIak8vLy0L59ewwaNAixsbGI\njY3FqFHOGehWE4YSFfITzHH/knvlHUYePNs1Q8iIAbjz7V6Ig/3gHuoPAMy/roA4yA+Dj36FFv8e\nirDR0dA+6mHUdYoIGp+1UBdd5Px+ETe/3AXA3MMQh/jDPSyQ9ZBU+R6Gm0zKJOTrCrULC1QX9sPm\n5IPLly8HYB6sV9Y9doWBe4YSNfLOJ4MQgpJ7GXAPDYD6YR54QgFkEW0gbdccZycuQdAz/ZhQlEeY\n6/QwAMA9xB+Rn72O9AN/QJNXgNIHWTgaPR3P3jvgEjpurBhK1TDp9HjwvxMIf+cl6AtLIPKTwyMs\nwOkltZURBfigNC0bMJng06cz1Jm58OrYklWZKJQybDqMmJgY3L59G/fu3cPQoUOhVquh1+udIVuN\n6EtUMGl0KL3/ECV30+EX1RUlKZngCdwgDvKFT69OAJdrHgwV7AdwOBVyGK6EyE8ObZ4SJSkZ0OYo\noc1R1vpNl8ZnLdjSRerO32DSG+Af1Q3iIF8EDe2Ls1OWQhToAw6Xi1YvxcKT5YezQC6FSaeHpGUI\n3IP9oc6qX+Kb2oUFqgv7YTMk9cUXX2D8+PGYO3cuACArK8tFQlJq+PXvivyEZBTfS4d/VHdoHpqT\n3uJgX/A9xAiI7gFxsC94AjcM/N9q1uPT1jAvrKSEKs08IWHRrfssS9Q4yY6/iNwzV8zziPl7o/un\nr0LkJ4fk0WqLzZ4bDFl4K1Zl5HC5EPl7w6NZIMRBvrRSiuJS2HQY69evx9mzZ+Hp6QnAPJhPqWR/\nSUliMCLgyV548L8TKL6TDr9+XaHOyjfHo4N8AQA9Vi9Ay0kjAADBQ/u6bJhH6CtjQlIAUHQztdbX\n0visBVu6KL6bBlVmLjQ5Coj8vcETCtDvh+WI2rnKOQLWEpG/NzxaBEMc7MeMQi9IvIOHJxJqfQ9q\nFxaoLuyHTYchEAggFAqZbZPJBJ1O51ChagNfIkabGWOgzsqHNkcBSZtQ8CVicPg8ZulTaZsw1mPS\ntcHNSwKTRoei2w/g2aEFim5aehhGjZZFyRoXJXfSoUrPfuQwzKP8uTweBDIpy5JVRBTgDY/mgRAH\n+zJJ78vvfoGUHw6xLBmlqWPTYQwYMAAff/wxVCoVTp06hQkTJmD48OHOkK1G+BLzNB8D4j5Bl2Wz\nwOXxIA7yhXuwH9ui1RkOhwOhrwzKyzcROKQ3im6kAgAUV27i+JC5NV5L47MWKuvCqNNDX6ICYJ7o\nUVdQDFV6DjQ55sWzXJXgZ/rBP6o73IP9oM7MRV5CEnL+uMxU0tUGahcWqC7sh02HsXbtWkilUrRt\n2xaff/45+vfvj9WrVztDthpxk4gBmEfGdlgwwfx3oC8TjnrcEPrJUXz7AYKG9EHRLfP4AMXFf6BK\nz2JZsseXlO8P4tIbawCY54nybNccXDc+im7dd/o8YnWh7cyx8O3TGeJgPxTfTcf5eZ+i1ZTYeg/u\npFDshU2HER8fjxkzZuDgwYM4ePAg5s+fD64dVgRrKHyJe5V94iBfiIMevx4GYF6+FQD8+nWFNr8A\n+hIVChLvQJtXCJPRaPU6Gp+1UFkXqoxc5JWN1bmTDkmbULiH+EF56YZL9zDKEAV4wz+qGzq+PhHh\ni6YyDiPp42+hyqh54kpqFxaoLuyHzbLabdu2Yc6cOZDL5Rg4cCAGDhyIqKgoyOXsvqHxH/UwyuMe\nFgBiaviiRGwg9JND6C8H30MMz/YtUHDtNgoS7wCEQJdf5PTFnhoD2lwlim8/gK6gGMV3HkDaOgzG\nUg0eHvv7sdAnl8/HgLhPAQAmgwG6/CKYjEbc++EQvMJbwz3EdQaiUpoGNh3G999/DwDIzMzEL7/8\ngldeeQWZmZkwGAwOF64m3KrpYXR8YyILktgHoZ+MWT86eFg/pO2LR0HSXYgCfaHJVVp9wNH4rIUy\nXRRevwevTq2gyVEAHA4Ul2+i+E46/Ad2h05hHkkvfAx6GOXh8vlwk0mgzVVCnZmH4rtpNZ5P7cIC\n1YX9sOkwfvjhB5w5cwbXrl2Dn58f5s2bh6ioKGfIViPVhaT47iIWJLEPIl85PJqZHUbYmEE4PngW\nBHIpJC1DoM1V4ur76yEO8kW7ueNYltS1UWXk4Eifl/Bc3glocpXw6dkJ+QlJUFy+gdYvj2aqjh6H\nkFRlRH5yFCTeATEaUXKXzm5McT42kxELFizA5cuXMXPm/7d35uFRlWf//0zWmclGJjOZZDIhCZBA\n9pCwKKBGW1RA64aCrfWttr5qXVq19urya91epYp7a9W+arXlpULVCghqQEREBYQQSFgCZJ9kskwm\nyyQzk23O74+TnJCSAIWQIczzua5c5Jw5y33uPJzvPPfzPPf937z00kv88pe/ZM6cOaNy8+eeew4/\nPz/sdruyb9myZaSlpZGZmUlBQcGI5w4nGOOZmO/MJPHmKwCISEtCazIwITOZYMME3E0ttO4vw/LR\nVuX4XqcbT1+fiM8CzbsOIEkSW7ZsoenrfUgeD87aJtyNLZiuvJCDz/8f6mgd+tkZaM1G/AIDCIo8\nt6bSngpqQyT2wkOo/P2V/GkjIdrFIMIXo8cpJR986623cLvd/Pa3v2XWrFnccsuZh35qamrYuHEj\nCQkJyr7du3fzwQcfUFxczCeffMKdd9454pqP4UJS4xldbipxiy4C5Gm2Sbcuwnhxrpw2pEmuj2D7\neh89Djl76c57/kDN+5u9afI5geTx8Nl378bVPwhs+2YfAM6aerqaWohbdBF+gf7MevXXqPz80MRF\nE2yIPGcXcZ6I4OhI7LsPosudhuOYHkZft/dT9Qh8g5MKhsPhoLq6mqqqKiorK2ltbR2VWVIPPvgg\nzzzzzJB969evZ+nSpfj7+xMXF0d6ejo7dw6/unW4Qe/zidSf/4Cp9y1BbZBLdnZWWYnMmUrDF4UA\nOEqrcFoafD4+293iwNPTi6PMQn5+Pk1f7yUseSLtpVV4evuIyJjMNeXrlPQfkZlTmHyb91PbnA4D\nPQz9hZl029vodbqRJIkN07+vZAkYwNfbxbEIX4weJ33zz5s3j3Xr1pGVlcXq1as5fPiwMhB+uqxZ\nswaz2UxWVtaQ/bW1tZjNZmXbbDZjsQwfqz3fQlIjEWyIpLWkjIBQDfHX5mMt6K8BUlmHq6HZy9Z5\nH3ejHM7sKK+lu62DjvJa4hbNw154CHW03JPwDwpUjg/WTyDjN7d7y9wzQm2IxGW1ERIfQ0iiiY7y\nWly1jXRW1uG0NHjbPIEPcNJB73375C6+zWb7j7rx8+fPp77++EVnTz75JMuWLRsyPnE6VcV+u+p/\nybQfAmDChAnk5OQo3yQGYpbnw7baEMkX27aiNuq55JJcKv7xCRvXrWevvZbYBvuQ+Oy5YO9Yb7sb\n7Bzoa6Pjs81ENlvQ5aWyv6cVy5YvmG6I97p9o7lt7l9suLe1DmuYh6xyC1KfhwN9bfh/voUb52Qr\nxxcVFfHzn//8nLLfW9svvvjieft+ONn2li1bePvttwFITEzkjJFOwu7du6XU1FQpPj5eio+Pl9LS\n0qTdu3ef7LQRKS4ulqKjo6XExEQpMTFRCggIkBISEqT6+nrp8ccfl5YvX64cu2jRImnbtm3HXQOQ\nKlcVnLYN44nGr/dK/9DOkb669XdSr8strdblS03f7JP+oZ0jfXblvdLnn3/ubRPHBMuGbVLNmi3K\nttPaJHW1tEuVqwqk1bp86culv5be+NGD0r7H/yLVFXwjvRs6T/ri+l940eLRp2bNFukf2jlS855D\nUuGvXpb2P/s3ac+v/yT9QztHOvLGv4Yc6yvt4lQQvhjkFF75J+SkIak77riD1157jerqaqqrq3nt\ntde44447TlugMjIyaGhooKKigoqKCsxmM4WFhRiNRhYuXMiqVavo7e3FYrFQUlLCrFmzhr3O+T6G\nMcBACouQBBP+6mBCkuKo++RrwlIm4m5olr9lNw6mjOhqbmPzgvu8Ze5Zo2Hzt9R9+g0Anp5ePr/q\n5xx57T3cDXZ0M9JwlFtIsnahn5ON1mxE8ngIPofTf5wOA1OBQ8xGYi+/kIq/b8C2oxjdjDS6mlro\ndbqx7SwBRNz+WIQvRo+TCkZ3dzcXX3yxsn3RRReNagGlY8NceXl5XHfddWRlZXHllVfy+uuvExgY\nOOx559ssqZEYeOmFJMYCEJmVjGXdVvSzM3E32umyt7NmyjXse/R1JI+HjnILTduK8Hh5YeVo46xr\nwmmRZ0KVvrIKZ00DjqMWXA3N6C/IpKPMIg8Iz0xXCmWNx7UWJyLYEIm/JpigqAiM+XloYqKwbS/G\ndOUc3E0tNGzZxY47/sfbZgrOY04qGCaTiWXLllFZWUlFRQXLli0jNjZ21AwoLy9Hpxv8j/2b3/yG\nAwcOUFJSwhVXXDHieQFhviEYgeEh+AUFEpog+3xC5hTaD1Wimz6V3g4X69/5B+FTJ2JZtxXrxh04\na5uQPB7cDfaTXHl84bLalPxJpX9cTc5T9+Aot9DVaCdsSjyBYSFUGAIJDA8hMFRLkC78nE4weDqE\nJMYy553HUKlUqFQqsh69E2N+HmFT4nE3tdBZVY/jaA1dzW1DxrZ8HeGL0eOkgrFy5UoqKipYtGgR\nV111FVVVVaxcuXIsbDshASG+EZJSqVSETjYTljIRkAUDIHSymeBoHS37DqPLS8N4SR6OozXKS/Vk\nyenORfrcXXwy+7+GnQThqmvCWdNAT3snPe0dxC2cS0e5BVeDXAwpdLKZiIzBanlas3Fc5Iv6T/Dz\n91fW6gDoL8jk0vUv96/VaaWz2grICxlBDk827z7oFVsF5ycjzpJyOBy88sorlJeXk56ezp/+9CeC\ngoLG0rYTEugjPQyAK3e8g5+/P3CMYCSa0Bh1JFR3En51LiqVH51VVvwC5D+pq1ZOgdHn7qK1pIyo\nGWkcfH4FGpOBxKUj99y8SWdVPa0lR+lubqPtQDkNX+wm4//9BCQJd4Mdlb8f9sJDhE02o47R0+fs\nwnG0BrVRR9zCuWTmpirXSrz5SiJzp3nxacaOYEOk3MOoridsSjy2HSXk//4Oyv66lpoPt5C/5nlv\nm+hVxBjG6DFiD+OWW26hpKSE3NxcPv/8c+6///6xtOukBIT4jmAMiAXI9T9S7r2JkIRY1MYomncd\nIGJaEiGJsfJ8/NoGgqIilNKepX9axdf/9QgA9j2lyrfPc4XuVofye0dVHSCHnxq2FnJg+d/Z98jr\ndNnaCAjTEpJoomHLLsKSJ8o9r0lxdFbWoY7WkfrgLRjz85RrTbt/KeHJE8f8ebyBWj+BLpsckpq4\n+Ds0fyundHccrVHWqQgEo8GIglFaWsqKFSu46667eO+999i2bdtY2nVS/EPGb6LBMyX36Z/hFxiA\n2qhjf5ed8KkJhCaa6Kisw1nbhH5mOq7aJrpb2in94ypcVhuSJOGy2oYkrSv761rsRaVn3V5Pby+e\nnsFB+LK311FX8A2SJLEu/UY6a+T1Op1V8r+uehtOSyOZj9zB4Vf/SWdVHdpYA9q4aOo/30XYFHl9\nRehkeZHnwFiFr8aqg6LC6bY76KioJf7672DfdYDNmzf3C4YouuSr7eJsMKJgaDSDYwQBAQEjzlby\nFsd+6/ZV1MYo/IID0U6MISQhls5KK05LA1Gz0nHWNXL0jQ8xLZiLvyaY7uY2WTCOSVp3+LX3sH29\nD09vL9/c/hiSxwPI5Ux3/Wz4qortpVXDjo9IkkT53z4a9pxDL66k5Km3lO2af30u58VqddDT6qD+\ns28B6KyUexjOuiactY1EZiUTNsmMdeMOufyuOZqWwkOETZGFImySmaCoCPwCT7r+9LzGL0BOpuhx\ndxGRlkSwfgKu6nocZRa6mlqUv6tAcKaMKBj79u0jLCxM+SkuLlZ+Dw8PH0sbBSOgMeq4MD0HP39/\ngiaEoQoMwGlpRDcjDWdtI9aN25l4w2VoTXqc1iZcVhudNQ14envpae+kbX85roZm3PXNVK0qUBLa\ntR0op/xv64cdfD74/AoqVmw4bn9XUys7716m1NCGwXBTZ1U9rfuOKPtbS8pwWW24rDYA6j/b2X+c\nldAkE26rDaelAW1cNLq8aVjWbUVj0hMSL6+vCJsih5pCp5iHTJ315Vh1sCGSkIRYVCoVUbPSmeoJ\nobOiFr/gQLrt7d42z6v4crsYbUYUjL6+PhwOh/LT29ur/N7e7tsN8FwhcvpUzNdcomyHJpoI1kcQ\nNikOx9EaWooOY5iTjSbWQFtJOf6aYNSGSJyWRjnOLUm465uV8Q77LnlGjeNoDZ7uHrpbHLgb7Lis\nTco9nLWNyov+WFwN8j5nfxK8toMVfDxDzmrsbmim7WAFAF22Vtz1sli46psJS5lIw5ZdePr66Kyy\nor8gC2edHJLSmo3o8lJp3Xekv4chr68YCElF5aVhvDh3VH06XlEbItH2F+CKmplOzb8+JyhqAiHx\nRtxNLTRuLTzvploLxh7vF+cWnDb6WRk0zU5UtkMSY9GaotHE6ulqbCEyJ4WAEA0akwF74UE0sXpC\nJ8fRUWbBtnM/ERmTcdU3KwJgLxwUDJBf9KWvrGbnPU8r93DWNAwvGP37BrKmWj/9BpfVRp+7C1eD\nnG23t9NF6/4ygiLDcNXbcNc3o5s+DU2snpbCQ3RUWdFfmEnbwXL8AvwJDA9BlyfPfNLE6tHERROk\nCyc4KgKACRmTyXv+QcUGX45VB+snENK/Vkc/K53PN31GWH8PzN1oZ89vXqHwVy8rxxc+/CId/SHA\n8x1fbhejjRCM84jQBBNaczT+6mCCDRMw5s8AQGMy0LxbFoywSWY6Kmpp3lGC+eqLcTfIghGRlqTM\noBoUDDudNfVYP/2GtgPlSJKE09KgVK078pcPWDv1emrWbMFdL2fOVQRjo5xV11knC0PghDDaD1fR\nWlKG8bKZcg+joRl1TBTx117KoZffpc/VRWRWMi17StGa5XrVE9In4xcchMZkIDI7hdQHfjB2Dh1H\naEx6QifJKdwnZCbjFxhA2OR4gqMjcTe24DhaTcOWXcoMqpo1X9C2v8ybJgvGIUIwxjnHxmejZqYR\nNTMdgPCpicRecSEAWpOe1r2H0cToCZ1sxlqwHdvOEszXXIKroRlXnQ3Tgnm0lpTR192D40gNYckT\n5dlKNQ0YL5tJ6R9X0d3cRl9XDy6rjV5XF3t+9UcMc7NpLT6Ky2rDLyiQziorPR1OmncdJDI7BWdN\nPe5GO8aLc2k/WElbSRnGi3Pp7XDRWVmHxhhF8l2LsW7cTkhCLBqTgT5XF9o4OfzkFxhAwo3fJSI1\niWBd+AnrtvtyrDrzd3eQctdiQPbZvNkXEDYlHnW0jtbio/gHB5H2i1s5+saHeHp6cfeHBH0BX24X\no40QjPOI+OsuJe3hWwG47JM/ETUQzomLps/dLYekJsVRu+Ercpf/jIi0SXTb23FaGghPmUhoYiyt\nxUdxlFswzMnC3WDHaWkg41e3UbthG52WBsKnJeJuasFxpJrQxFhiLptJR0UtrvpmdLnT6Kypp/GL\n3UTNSCV8WiJt+8vx16qJzEmh7WAF9sJDTMhMRm3UYS86jCZWT7AunOQ7byA0KU4exFaplB4GwOzX\nf0toUpxXfDpeCAzV4q8OVrYzf/sTzNdcgjpaR9NXRYRNiScyKxlHmQVXnZw+ZrjQokBwIoRgjHNG\nis8em9RRazIA8jhA7OUX8t1Nr5L0g4X4+fsTrIugZd8R1LF6zN+7hOLH/5fA8FDCkifirGuUxxlm\npqHy98f29T55YF0XQdO2IsKSJxKaFCcX8rHaiJqdQWdVPdaNO4iZP7t/7OQQGqOO8GmJHH71n/hr\ngonMSUETq6e1+CiamCgAMv/fT5j1yq/k9SWGyCGCcaa+8EUO4iA00YQ6Wod990H5bzVJ/lt11sjF\nlnxFMES7GD2EYPgAmthBwQjQBKO/IFP5TB0ThaO0Ck2MnpR7lmDbUSwPlhp1tBQdJlg/Af+gQHR5\nqVjWfoHWHI3GZKBha2H/S0heMOiub0Y/K4POaivWgu3Ezr8QbVw09sKDqI1R6GdnYL7mEi5Z8zz+\nwUFoYvV4urpR9wuGX2CAkvtJYzIoM6IEZ4Y6OhJPTy/hKRPRxOrpae+gvbSSgDCtzwiGYPQQgjHO\nOZX4bLBeXtymidUf95nGGIXk8SihoWn330xkdgoaYxT2wkNKqnBd7jSavtorC0asnqZtewhPmYg6\nRk+vw4mjrIbI7GR6Wjvw9PQSkZaENs5A++Fq1EYdmhg9F775CEERofJ9+23RxBxvU/y1+ehmpJ0V\nX/gKA74YWKcSNiUelZ8fIYkmGrcWEjUjTRGMnvZO9vzqZXocnbQdqmT3Q+dX7inRLkYPIRg+gMrP\nj+iLpg87DqCOicJfHURQZBgAGb+5nZxl96I2RtHndCvf9HW505A8HrRmIxqTge4Wh/wSUqkITTLR\nbW+XewbxRmIvvwDVwDiEJClhp2PRxOjx16qHTVOf9vCtRExLHF0n+CiKYPTn1QqbFEfj1j1EzUzH\nVW+jx9HJZ5f/lMOvvkf7oUpai49i7S9UJRD8O0IwxjmnGp/NX/fisOm+1UYdmlj9kDEPP39/5SWv\n9DCmy5lftWaj0jsYeAmFJsURpAvHPziI8JQE4hbNA+TBdvkewwhGrP64+54pIlY9yIAv1NGRBEaE\nEjpJ/rIQOikOd6MdXe40uu3tWDfuIEgXjmnBXJy1TbjqmuRsAH19XrR+dBHtYvTw7SQ8AjQxetTD\nhKqCdOGoAvwJMQ9Ur4vEMDebsOR4HGU1BEWGEayfAMgvoYFFYPNWLVPyfKkNkagC/FEbj698F5Jo\nUhaaCc4e/upgvnf4X/gHy6UJBnqZIYmxqA2RWNZ+gfGSPHlGXG0jLmsTUm8fbqtNjCMJjkP0MMY5\nZxqfjcxKJnre9OP2q/z8UBujlB4GwHcK/ozGGEVIfAzh05KU3kFoUpwyFnFsUkiVnx9akwHNMD0M\nw9xsLlr99HH7zwQRqx7kWF8cW854IMNvSH9PsW7DV+gvyEQTZ5CLVPUvyhzIHGwvPMihl/4xdoaf\nBUS7GD2EYPg4hrnZZD3y38N+Zrw4l4j0ycfvz8/joneXKdumBXNJueemYa+RfNdiJmQlH7dfpVIR\noAke5gzB2SR0kpmAMC2BE8LQxOrpc3cTNSMNbawBZ10TrjobGpNBWbFfsfITajfIpQ06Kuvo6+r2\npvkCLyMEY5xzNuOzF7zxO8ImHT9QrvLzU8JRACETYzD1ryr/d6b97OYxq60tYtWDjOSLsElxzP/8\nL6hUKjSxeiKzk+V8Y/09DFddE/oLM5Vyr9ZPv1GSFn5779NY1nwxVo8waoh2MXoIwRAIfIyI1CQA\nQpJMRPdn+9WYDDgtjbjqm9HPzqSzyorjaA1d9nbcDXIKEaelkdZj8k91t7QPmwJfcP4iBGOcI+Kz\ngwhfDHIqvph631KyHrsTkLMBdFZZCQhREz4tkc7qeuo+/Yb4ay6hz91Nr9ONq66JtgMVyvmbF96P\n/Rwr+Tscol2MHkIwBAIfxc/fH78AeaJkQIiGwIhQNCYDIRNjaC+t4sir/2TijfNRG3U4jtbQ2+mi\n7UA5AH3dPbQdKMdZ23SiWwjOM4RgjHNEfHYQ4YtBTscX2jgD2lgDIfFGXHVNRF+US8ylM9DE6LHv\nOUToZDPuRjs9HU46jtbI028bzv2Mt6JdjB5CMAQCASDnHNOY9Pirg8n+n58y/en7AXlxZ0vhIULi\njYSnJNB+sEKpoOhulItjbV54n3Kdzpp6Dr240ivPIDi7CMEY54j47CDCF4Ocji+0JgOa/szGqQ/8\ngMDwEEBeqW/fU4om1kBE2iRaD5TTdqBcKc7UVlpJ4xeFtB+pBsC2vYSK/zu+7ru3EO1i9BArvQUC\nAQDJdy8mIERz3H6NUUdFSRnG/BkE6cKw7z5EV1OLvEK80Y6zP1163YavCP/ZRDqrrbhE/fDzEtHD\nGOeI+OwgwheDnI4vIrOSCetfCX4saqMOT1c3GpOehJsup+bDz2n6ei/GS2fIKUVqGoiamU7dx18B\n0Flplaszdvccdy1HeS197q7/2LYzQbSL0UMIhkAgOCEDySO1JgNak4G0h35IT1sHhguz5DGMmnqS\nbllAy97DdNnb6ezPKzbcgPiu+56m7uOvx9R+weghQlLjHBGfHUT4YpDR9MVA5uKB8Y2Un95IZHYK\n2rhoWTCq65l061Xo8lJp3rWfjiorAWFa3A12rBt30Od0k/LTG1H5+eG0NOK0NI6abaeCaBejsqSI\nGwAADoBJREFUhxAMgUBwQgZ6GAOC4RcYgDE/D5DTxLQfqkQbHyMLxo4SnDUNGOZm46pvpnr1Rjqr\nrHRU1JL77AM4axtx1o2tYAhGDxGSGueI+OwgwheDjKYv1NGRBBsmjFhPpdvejjbOQNSMNCzrthIU\nGU5oogl3QzPth6uZ/vT92LaX0N3ioM/VhbN2UDC6W9oBcFmb2P6TJ0bN5mMR7WL0EIIhEAhOiL86\nmGuOrFFWhR+LOlqH2hiFf3AQUTPTaNtfLtfaGFgd3uHEMCebjopaXP1CMRCS6ulwsn76zdh2lNB2\nqIqaNVtEbqpzHCEY4xwRnx1E+GKQ0faFX+Dw0Wt1tE6pmaKJ0aOJiyY00YQ6Rk/jl0WETjYTFBUB\nQOv+MsKSJ+LqTydy5NX36GpqpbPKiru+mT6nWxko77K1Uv3B5lGxXbSL0UMIhkAgOG3URh0hxxTZ\nipqZRsjEGDRGHa17DxOeMlGu+55oomlbEboZqbgbmulp76T0T6vk0rB1jbjqbQB0lNUCULthGwee\neQeA9iPVSuhK4F2EYIxzRHx2EOGLQcbKF1pztFL2FSDtoVtI/P6VqGOikDwewqbEA3IZ38avighN\niCVIF0HNmi2ET0sk+uJcXHU2XFZZMBzlFgBs24uVOhzFj/2FsnfWKfcoefJNWoqPnLKNol2MHl4R\njEcffRSz2cz06dOZPn06H3/8sfLZsmXLSEtLIzMzk4KCAm+YN64oKirytgnnDMIXg4yVL6beu4T0\n39yubOtyUwlPSVDK8oYlTwTkMr6Ow9Vo4qLRxhmoevdToi+ajnagcJPVRvi0RDrK+gVjRwldtlY8\nfX04axux7z6k3KP6g8207jt1wRDtYvTwyrRalUrFgw8+yIMPPjhk/+7du/nggw8oLi6mvr6eefPm\nUVpaSlBQkDfMHBe0trZ624RzBuGLQcbKF/7q4cvsqo06AMJTZMEISTIBoI2LRhMXTe1HX5L2y//C\nLygQZ10TKj8/DHNzcJRb6G5px2lpJDAyjK6mFlxWm9Lb8PT10VFmUbaPpbOmnt0PPM/F7z0zZL9o\nF6OH10JSw82GWL9+PUuXLsXf35+4uDjS09PZuXOnF6wTCARngr86mJjvzh7Sw4D+1eJxBvwCA4ia\nlYHWZMBVK/cwoudm01FWi+3b/ejypsmf9YtFV3Mb7qYWnNX1eHp6cTU00+t08+29TyN5PAC0H6qk\n6Zt9XntmX8BrgvHKK6+QmprKLbfcgt0uf1uora3FbB7MZWM2m7FYLN4ycVxQWVnpbRPOGYQvBjkX\nfJG/5nkCw+SMtwO14TUmA9q4aKJmphGgCUYdq8fd0IzLasMwN5uOcgs1729GPzsTtTGKtv3lBIaH\nEDUjFfueQziO1gDgrm/GUVZD2V/XYt20A4DOmgZ6Wh30Ot1D7KisrGT/028rxwlOH5V0liY+z58/\nn/r6+uP2P/nkk8yZM4eoKDnG+eijj1JWVsaKFSu48847ueyyy1iyZAkAd911F/n5+SxdunSo0SrV\n2TBZIBAIznvO5JV/1sYwNm7ceErH3XnnnVx66aWA3KOoqalRPrNYLMTHxx93jljcIxAIBGOPV0JS\njY2DqQHef/990tPTAVi4cCGrVq2it7cXi8VCSUkJs2bN8oaJAoFAIPg3vDJL6qGHHmLfvn10d3eT\nkJDAm2++CUBeXh7XXXcdWVlZ+Pn58frrrxMYGOgNEwUCgUDw70jjiI8//ljKyMiQUlNTpT/84Q/e\nNmdMqa6uli666CIpIyNDSklJkZ5++mlJkiSpublZ+u53vytlZmZKl19+udTS0uJlS8eO3t5eKScn\nR7rqqqskSfJdX7S0tEiLFy+WsrKypGnTpknffPONz/ri97//vZScnCxNnTpVuuGGG6TOzk6f8cVt\nt90mRUdHSxkZGcq+Ez37U089JaWmpkoZGRnSp59+ekr3GDeC4Xa7pcTERMlisUg9PT3SjBkzpMLC\nQm+bNWbU19dLxcXFkiRJksPhkJKTk6WioiLp3nvvlV544QVJkiTphRdekO6//35vmjmmPPfcc9L3\nv/996eqrr5YkSfJZXyxevFhauXKlJEmS1NfXJ7W1tfmkL44cOSIlJSVJXV1dkiRJ0k033SS98cYb\nPuOLrVu3SoWFhUMEY6Rn37VrlzRjxgypt7dXslgsUmJiouK3EzFuBOOLL76QFi1apGwvX75ceuKJ\nJ7xokXe54YYbpPXr10uTJk2SbDabJEmS1NTUJE2ePNnLlo0NNTU10ne+8x1p8+bNSg/DF31hs9mk\nKVOmHLffF33R3NwspaSkSHa7Xerp6ZGuuuoqqaCgwKd8UVFRMUQwRnr2xx57THr22WeV4xYtWiR9\n+eWXJ73+uMkl9e8zpnx5jUZlZSXffvst8+bNo6mpSZmirNfrh0woOJ954IEHWL58OX5+g03YF31x\n5MgRDAYDN910ExkZGdx66604HA6f9IVOp+Ohhx5i4sSJmEwmJkyYwPz5833SFwOM9Oynu+Zt3AiG\nWHsh09HRweLFi3nppZcIDw/3tjle4aOPPiI6Oprp06f7/BRrj8fDt99+y8MPP0xJSQk6nY4nnjg7\nhYjOdcrKynjxxReprKykrq6Ojo4OVqxY4W2zzivGjWD8+xqNmpqaYddonM/09PRwww038IMf/IBr\nr70WAIPBgM0mZ/psamoiOjramyaOCV9//TVr164lKSmJm2++mc2bN/PDH/7QJ30RHx9PXFwcM2fO\nBGDx4sUUFRURHR3tc77YuXOnsig4ICCA66+/nq+++son28UAIz37qa55+3fGjWDMnDmTkpISamtr\n6enpYfXq1SxYsMDbZo0ZkiTx4x//mLS0NB544AFl/8KFC5VvUStWrGDhwoXeMnHMeOqpp6ipqaGi\nooJ3332Xyy67jL///e8+6Yv4+Hj0ej2HDx8GYNOmTaSmprJgwQKf88WUKVPYvn07LpcLSZLYtGkT\nkydP9sl2McBIz37aa95Gc8DlbLNhwwYpPT1dSk1NlZ566ilvmzOmfPnll5JKpZKys7OlnJwcKScn\nR/r444+HTJubP3/+eTtlcCS2bNmizJLyVV8UFRVJM2bMkNLS0qQFCxZIdrvdZ33xyCOPSFOmTJFS\nUlKkJUuWSC6Xy2d8sXTpUik2NlYKDAyUzGaz9NZbb53w2Z988kkpNTVVSk9Plz755JNTusdZyyUl\nEAgEgvOLcROSEggEAoF3EYIhEAgEglNCCIZAIBAITgkhGAKBQCA4JYRgCMY1/v7+TJ8+Xfmprq72\ntkmjRnFxMbfffjsAb7/9Nvfdd9+Qz/Pz89m9e/eI5990001UVFScVRsFvoVX0psLBKOFVqtlz549\nw342MAFwvGYJWL58uSISwz2DSqU64bPdcccdvPDCC7z88stnzUaBbyF6GILzisrKSqZOncqPfvQj\ncnJysFgsPP7442RlZZGamsqvf/1r5djf//73TJkyhfz8fG6++Waee+45YOg3d5vNRlJSEgC9vb3c\ne++9ZGdnk5qaqryIt2zZopQSTklJ4cYbb1TE6quvvmLGjBnk5OQwa9YsOjo6uOSSS9i7d69ix7x5\n8yguLh7yHF1dXWzfvl1ZwT0SkiSxbt06pYc1depUJk2apDzHhg0bzsSdAsEQRA9DMK5xuVxMnz4d\ngEmTJvH8889z9OhRVq5cSV5eHmvXrqW2tpZ9+/bh8Xi45ppr2LRpEyEhIXz44YccPHiQnp4esrOz\nlZfzSN/c//znPxMbG8vevXvp6upizpw5SraBoqIiSktLiY6OZu7cuWzdupULLriAJUuWsH79erKz\ns3G5XAQFBfHjH/+Yt99+mxdeeIHDhw/T1dVFZmbmkHvt2bOHqVOnKtuSJLFq1Sq2bdum7Dt69Cgq\nlYqrr76aq6++GoAlS5aQn58PQGBgIHFxcRw8eJDU1NTRc7rAZxGCIRjXaDSaISGpyspKEhISyMvL\nA6CgoICCggJFVDo7O6moqKC1tZXrr7+ewMBAAgMD+d73vnfSexUUFHDkyBHee+89ANrb2ykvL0et\nVjNr1iyMRiMAOTk5VFdXo9VqSUxMJDs7W7EV5HxPTzzxBMuXL+ett97itttuO+5eVVVVxMbGKtsq\nlYqlS5cOCS9deumlQ8555pln0Gq13H333co+k8lEZWWlEAzBqCAEQ3DeERISMmT7d7/7nTJ4PMCz\nzz47JNPtsb/7+fnh8XgAcLvdQ8577bXXjntRb9myheDgYGXb398fj8cz4viCVqtl/vz5fPjhh/zz\nn/+ksLDwuGNUKtVxmXhPlJRh06ZNvP/++2zduvW4c45NAS8QnAmiJQnOa6644gr++te/Ki/+hoYG\nbDYb8+bN48MPP6S7uxun08lHH32knGM2m9m1axcA//rXv4Zc6/XXX1fEpKKiApfLNex9VSoVWVlZ\nVFZWUlRUBMi9m76+PgB+8pOfcP/99zNr1iwiIiKOOz8hIYH6+npl+0RiUVVVxT333MPq1auHCBeA\n1WolISFhZAcJBP8BoochGNeMNHtogKuvvpoDBw6Qm5tLUFAQwcHBvPvuu1xwwQVce+21pKWlYTab\nmTlzpvJSfvjhh7nhhht48803ufLKK5Xr3XPPPVRWVpKenk5QUBCRkZGsXbt2xDGPoKAgVq1axe23\n347H40GtVvPZZ58REhJCbm4uERERw4ajALKzsyktLR3yTMPdQ5Ik3nnnHex2u5LyPi4ujo8++oie\nnh4sFgvTpk37DzwqEIyMSD4oEACPPfYYoaGhPPTQQ2NyP6vVysUXX8yRI0dGPOZHP/oRd999N7Nn\nzz6texQUFLB+/Xpeeuml0zVTIBiCCEkJBP2M1XqNv/3tb8ybN48nn3zyhMf94he/4LXXXjvt+7zx\nxhtDaqcIBGeK6GEIBAKB4JQQPQyBQCAQnBJCMAQCgUBwSgjBEAgEAsEpIQRDIBAIBKeEEAyBQCAQ\nnBJCMAQCgUBwSvx/mdvPowPuSfwAAAAASUVORK5CYII=\n" | |
} | |
], | |
"prompt_number": 193 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Just to make sure, we can decode our fsk signal and compare it to the original message:" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "decoded_m = decode(signal, frequencies, sample_rate, 1.0/symbol_rate)\nprint \"Message recevied OK:\", m == decoded_m", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "Message recevied OK: True\n" | |
} | |
], | |
"prompt_number": 186 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "## Modulation in a band-limited channel with noise" | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Communication schemes traditionally are evaluated by sending and receiving many bits and counting the bits received in error. This measuement is repeated for a range of noise levels in the channel, and the ratio of symbols received in error to symbols sent is called the \"*symbol error rate*\" (SER)." | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "We can define a function to evaluate our modulation scheme in our noisey channel at a given SNR, repeated calls define the characteristic SER curve for this communications system." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "def ser_point (nsymbols, SNR, frequencies, sample_rate, symbol_rate):\n message = rand_bits(nsymbols)\n t, signal = encode(message, frequencies, sample_rate, 1.0/symbol_rate)\n signal = channel_filter(signal, SNR)\n decoded_message = decode(signal, frequencies, sample_rate, 1.0/symbol_rate)\n errors = [message[i] != decoded_message[i] for i in range(len(message))]\n SER = sum(errors)/float(len(message))\n return SER", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 237 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Next set up the parameters for the experiment, using the channel defined previously:" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "frequencies = (10, 15) #Hz\nsample_rate = 1e2 #Hz\nsymbol_rate = 1 #Hz\nmessage_length = 1e3 #Symbols\nSNRs = linspace(-40, 10, 10) #dB", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 253 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Now evaluate the ser_point function for each SNR and plot the resulting SER curve:" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "SERs_1 = [ser_point(message_length, snr, frequencies, sample_rate, symbol_rate)\n for snr in SNRs]\nsemilogy(SNRs, SERs_1, '.-', color=colours.ttp_dark_red)\ntitle('SER vs SNR curve for a 2-FSK system')\nxlabel('SNR (dB)')\nylabel('SER')", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "pyout", | |
"prompt_number": 258, | |
"text": "<matplotlib.text.Text at 0x58d9fd0>" | |
}, | |
{ | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEaCAYAAADkL6tQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVOX+B/DPMGwKDKCyDCCQuAEqKKDgihqg5lIu0XVr\nufeWZpmZV++vXDBzrWvdm1qZZbnkVpZrZqGouYAK7ku4BQjKKCCrDMvz+4M8OsIIKHAG5vN+vXjJ\nWec7D+P5zDnnmWcUQggBIiKiCpjIXQARERkuhgQREenFkCAiIr0YEkREpBdDgoiI9GJIEBGRXgwJ\nolrwzjvvwNbWFi4uLnKXQvREGBIGbM+ePQgMDISVlRXs7OwQHByMY8eOAQC++eYbKJVK2NjYSD8q\nlQo3btwAAHh6eqJx48awsbGBvb09nn/+eWRkZNRqvQUFBZgwYQIcHR1hbW0NDw8PTJw4UVru6ekJ\nJycn5OfnS/NWrFiB3r17S9MmJiawtraGtbU1HBwc8Oqrr6KwsLBW665pV65cwbJly3DlyhWkpqbW\n+ePPnz8fPj4+sLKygqurKz744INHrv/SSy/BwsJC57W0adMmAMCnn34KLy8vWFlZwdHREf369UNu\nbq603YwZM6T9nD17Fmq1GosXL669J/eXa9euwcTEBKWlpbX+WMaOIWGgMjIyMGTIEPz73/9Gbm4u\nNBoNFixYAEtLS2mdbt26IScnR/rJzs6Gs7MzAEChUGD79u3IycnBhQsX8McffyAqKqpWa549ezYu\nXryIU6dOITc3F4cPH0bXrl111iktLcV///vfR+7n3vZHjhzBzp07sXTp0tosG0II1ORnSlNSUtCs\nWTM0bdq02tsWFxc/8eM3btwYmzZtQl5eHvbu3YuVK1fim2++0bu+QqHAtGnTdF5LI0aMwK5du7Bg\nwQL8+OOPyMvLw+XLl/Hyyy/rbKdQKAAACQkJ6NOnD2bOnInJkyc/8XOoKn4WuPYxJAzUhQsXYG5u\njuHDh0OhUMDMzAyhoaFo166dtE5V/4M4OTkhPDwciYmJFS7fsGEDgoKCdOZ9/PHHGDJkCADgp59+\nQqtWrWBtbQ0XFxcsWrSowv0kJCRgyJAhUlC5uLjghRdekJYrFApMmTIFH330Ee7cuVNp3V5eXuja\ntSsuXbqkd53Lly9jwIABsLW1RdOmTfH6668DAKKiojBmzBhpvYffeYaGhmL69Ono3r07bGxs8OGH\nHz6yDQoKCjB+/Hg4OjrC3t4eL774IgoKCsrV89tvv6Ffv35ITU2FjY0NXnnlFQDAunXr0KJFC9jY\n2CAkJAQnT56UtvH09MSiRYvg5+cHlUpV4bvjCRMmwNXVFdbW1mjfvj2io6P1tslbb70FX19fAEDr\n1q0xdOhQHDlyRO/6+sTHxyM4OBgdOnQAANjY2CAyMhLW1tbSOkIIxMXFITw8HPPnz8f48eMr3FdJ\nSQlef/11NGnSBCqVCr6+vjhz5gyOHj0KZ2dnndfy5s2b4e/vDwA4ePAgOnToIJ3JvP322wCAnj17\nAgDs7OxgY2OD2NhYAGVnPp6enlCpVOjVqxcuX74s7dfExASfffYZ2rRpA5VKhZkzZ+Ly5cvo2rUr\nrK2tMWTIkHp31lonBBmkzMxMYWtrK15++WWxa9cucevWLZ3lK1euFN27d9e7vaenp/jtt9+EEEIk\nJyeL9u3bi9mzZ1e4bn5+vrCxsRGJiYnSvMDAQLFhwwYhhBBNmjQRv//+uxBCiJycHHHy5MkK9zNz\n5kzh4eEhPv/8c3Hq1ClRUlJSYU1Dhw4V06dPF0II8eWXX4rQ0FBpHYVCIS5duiSEEOL8+fNCrVaL\nb7/9tsLH02q1omXLluLdd98VWq1WaLVaERsbK4QQIioqSowePVpa9+rVq0KhUEg19erVS7Ro0UJc\nvnxZlJaWiuzs7Ee2wT//+U8xdOhQkZ2dLfLz88Wzzz4r3nrrrQrriomJEW5ubtL0iRMnhLW1tdSG\n//3vf4Wrq6soLCyU2qVz584iPT1daLXaCve5YcMGkZOTI4QQYsmSJcLe3l4UFBRUuO6DSktLRWBg\noFi6dKnedV566SXp7/Gg6OhoYWlpKd5//31x8OBBkZ+fX267sLAw0aRJE7FmzZpH1rF161YREBAg\n7ty5I4QQ4tKlS+LGjRtCCCF8fHzEzz//LK377LPPisWLFwshhOjUqZO077t374pjx44JIYS4du2a\nzt9TCCHWrl0rWrVqJa5cuSKEEGL+/PnC399fWq5QKMSwYcNEfn6+OHv2rLCwsBB9+vQR169fF3fu\n3BHt27cXy5cvf+TzMEYMCQN2+vRpMXr0aOHq6ipMTExE//79RVpamhCiLCRMTU2FnZ2d9NOyZUtp\nWw8PD2FtbS1sbGyEQqEQzz77bLmD9oNGjx4t3n//fSGEEH/88YewsbGRDkLu7u5i+fLlIjs7+5H1\nFhcXi48//lgEBwcLCwsL4ejoKL788ktpuaenp4iOjhZnzpwRtra2QqPRVBgSKpVKWFlZCYVCId58\n8029jxcdHS3UanWFy2bNmvXIkAgNDRUffPBBldqgsLBQWFpaisuXL0vrHjp0SO9j7927Vyck3n33\nXZ1ahCj7+/zyyy9Su1R2kH1Ys2bNRFxcXKXrzZw5U/j7++sNHyGEePHFF4WlpaX0OnJwcJCWbd26\nVfTv31/Y2dmJRo0aiTfffFMUFxdL26lUKtGiRYtyb2IetmfPHtG6dWsRGxtb7nW4YMECMWrUKCGE\nELdv3xaNGzeWAqRnz54iKiqq3P4f/nsKUfY3/eqrr6TpkpIS0bhxY/HHH38IIcpeW4cOHZKWBwUF\niUWLFknT//rXv8SECRMe+TyMES83GbB27dph9erVSElJwcWLF3Hr1i1MmDBBWh4cHIzMzEzp58HL\nSQqFAlu2bEF2djb27duHvXv3Sje9KzJy5EisW7cOAPDdd9/hueeek+5/bNy4EVu3boWHhwe6d++O\nAwcOVLgPpVKJSZMm4fDhw8jJycHs2bPx2muv4fTp0zrr+fr6YuDAgViwYIF0TftBCQkJyM3NxaZN\nm7Bq1Sr8+eefFT5eWloaPD099T6nyqjVap1pfW2g0WhQWFiIgIAA2Nvbw97eHv3790d2dnaVHic9\nPR3NmzfXmde8eXPcvHlTby0PmzNnDlq1agVbW1vY29sjIyNDuoGsz9KlS7FmzRrs2LEDZmZmAIB5\n8+ZJN6fvXZpTKBT417/+Jb2O0tPTpX0MGjQIO3fuRGZmJn7++WesXbsWy5Ytk7abMGECAgICEBYW\nhqysLL219O7dG+PGjcO4cePg6OiIV155RbrkOGrUKGzbtg35+fnYuHEjevbsCScnJwDA8uXLce7c\nOXh7e6NTp0746aef9D5GSkoK3nrrLelvdO+ekEajkda5t18AsLCwKDfNy03lMSTqiZYtW+Lll1/G\n2bNnq71tjx49MHHiREybNk3vOk8//TQ0Gg1OnjyJ9evXY+TIkdKyLl26YNu2bbh16xZGjBiB559/\nvtLHNDMzw7hx4+Dg4IBz586VWz579mx8+eWXuH79ut59DBs2DIMHD9Z7w93V1VVvgFhYWOj0orp9\n+3alNetrg6ZNm8LMzAyJiYnSgTQrK6vSg/Q9Tk5OSEpK0pmXkpKic4B6lN9++w3Lli3Djh07cOfO\nHWRmZqJp06aPvCf19ddfY+HChYiOjtbphvvuu+9KN6fvHeyBqt3f6tWrF8LCwnT+nqampvjuu+/g\n7u6OiIgI5OTk6N3+7bffRnx8PC5cuIBr165hwYIFAAA3NzcEBwdj8+bNWLNmjc69pDZt2mDDhg1I\nT0/HjBkzEBkZidzc3ArfXKjVaqxcuVLnjVNeXl65zhNUPQwJA/XHH39g6dKl0ru65ORkrFu3rtzN\n1aqaOHEi4uLipBt8DzMzM8OIESMwZcoUZGZmIiwsDABQVFSEjRs3Ii8vT+qeamJS8ctm2bJlOHTo\nEIqLi1FcXIw1a9bg9u3b6NixY7l1vby8EBkZWWlPp6lTp2LdunVISUkpt6xHjx6wsrLCjBkzoNVq\nodVqpefn5+eH/fv3Izk5GXl5edIB6UEPHxj1tYGlpSXGjBmDd955R3q3fOPGjUfePH7Q8OHDsWXL\nFhw6dAhCCCxZsgRFRUXo1atXlba/1/a2trYoLi7GokWLHtmdee3atXjvvfewe/fuKp1p6QuI7du3\n46effkJeXh6EEDh69Cj27duHwMBAaTshBExNTbFp0yY0a9YMAwYM0Anne+Lj4xEfH4/S0lI0atQI\nFhYWOq+jsWPHYuHChThz5gyGDh0qzd+wYQMyMzMBlN04NzExgUKhgJ2dHRQKBa5evSqt++qrr2Le\nvHlSR4fc3NxHnnk8/NyrEpTGiCFhoKytrREdHS317AgICICXlxc+/fRTAGWn+ocPH9bp225jY4Pj\nx49XuL9mzZrhxRdfxMKFC/U+5siRIxEdHY0RI0bo/AdesWIF3NzcYGVlhSVLlmDt2rUVbm9iYoIJ\nEybA3t4etra2WLx4MTZs2IDWrVtXuP7MmTORn5+v867w4XeI7dq1Q58+fSrse69UKvHzzz/j6NGj\naNasGdRqNVavXg0AGDBgAIYMGYK2bdsiICAAERER5fZd0btRfW2wZMkS2Nvbw9vbW+o5c+bMmQqf\n18P79vf3xxdffIHRo0dDpVJhzZo12L59OywsLPRu/6BnnnkGffr0QYsWLeDp6QmFQgF3d3e968+Y\nMQMZGRkICgoqd2lJX60VtYVKpcInn3wi/e0jIyPx+uuv4+9//3u57czMzLB582ZYWlpi8ODBuHv3\nrs6+MjMzMXbsWKhUKri6ukKlUmHq1KnS8qFDhyIpKUnnMicAbNmyBa1bt4aVlRXeeOMNrFq1ClZW\nVrC1tcXkyZMRGBgIe3t7xMXFYfTo0Xj11VfRv39/qFQqtGnTRickKnqOD7/2KlrH2CkE45OIDECr\nVq3wxRdfoE+fPnKXQg/gmQQRyW779u0oLS1lQBggU7kLeFhqaip+/fVXhIaGwsPDQ+5yiKiW9e7d\nGxcuXMDKlSvlLoUqYFCXm0pKSvDcc8/hvffew7x587Bhwwad65NERFS3DOpy0/nz5xEYGIguXbrg\n6aefRnx8vNwlEREZtToLiaSkpHL95YUQOH/+vNSHvbi4GEqlEgBgbm6OoqKiuiqPiIgqUCchERQU\nhG7duiEyMlKaV1hYiNDQULz33nsIDQ3Fxo0b0bZtWxw/fhxFRUXYt28f/Pz86qI8IiLSo07uSWRn\nZyMzMxMDBw6UhmhYsWIF4uPjsWzZMqSnp6Nz5864evUqjhw5gu+//x6DBg1CaGhobZdGRESPUCe9\nm1QqVblPiO7fvx/Dhw8HADg6OsLZ2RkXLlxASEgIQkJCKt0nP/RCRPR4qnNuINuNa41GA0dHR2na\n0dFRZyCuqrg3LICx/8yaNUv2Ggzlh23BtmBbPPqnumQLCTMzM2i1Wmm6qKgI5ubmcpVDREQVkC0k\nvLy8dIa2vnTpEry8vOQqh4iIKlAnIZGVlQWNRoPi4mLcvHkTBQUFiIyMxGeffQaNRoP169fD3d0d\nDg4OdVFOg8Mb/PexLe5jW9zHtnh8ddK76Y033kBsbCwUCgWEEJgyZQoiIyOxatUqfP3113B1dcVH\nH31U6RevPEihUGDWrFkIDQ3lC4CIqBIxMTGIiYnB7Nmzq3VvwqCG5aiOe4FDRERVV91jp0ENy0FE\nRIaFIUFERHoxJIiISK96HRJRUVGIiYmRuwwiIoMXExODqKioam/HG9dEREaEN66JiKjGMCSIiEgv\nhgQREenFkCAiIr0YEkREpFe9Dgl2gSUiqhp2gSUiokqxCywREdUYhgQREenFkCAiIr0YEkREpBdD\ngoiI9KrXIcEusEREVcMusEREVCl2gSUiohrDkCAiIr0YEkREpBdDgoiI9GJIEBGRXgwJIiLSiyFR\nQ7RZOTg4Zga0WTlyl0JEVGNM5S7gScz497vo2y8coaGhVd6mtKQEpYVFKC3UokRbVPa7tgglhUUo\n1WpRWliEkkItSrUPzC8sQslfy6TftcXSPoqyc3F92wEU3spC+v54NB/aG2YqaygtLaC0NL//r4U5\nTCzNdedZmsPEwgLKRvfXUVqWrWeiVD5xG2mzcnD0zUUI+nQqzO1snnh/RFQ/xcTEPNaHj+v1h+m+\nd41AsyBfiFLx1wH9r4P3gwf7wqKyMPgrECAETCzMYGJhDhNzUyjNzWFiYQalhRlM7v1ubgYT87J1\nlBZmZeub/bWOhTlMzB/83RR/bvgVWacSpdrs2reE+7C+KLlbiJK72vv/FmpRelerO++uFqWFhSgp\nuL9OyV0tSgoKYWKqvB8q94LkwaCxMNcJF5OHQglC4MqqHchPuQlrLzd0+nASGrs5wdzeBuZ2NlA2\nsoBCoZDxr0hEda26H6ar1yGxrnFXNAtuD99/v/TXgbvsoC0d7C0ePuibwcS05k+etFk5iBk0CRnx\nF9CkU1uEbvvkid+1CyFQWlR8P1QK7wfO/Xn3A6W0UDeMSgoKkfR9NHISk6R9mjexhaVTE2gzc1CU\nlQ1RKmBuZwPzJqqyf+1sYPZXgEg/0rQKZg9MM2CI6iejColfur9SIwfkmmCIl3UqC6+Su4XQZuVA\nm5nz17/Z0nRRVo7usgemnzRgSgq1ODbxQ4NqKyJjYVQhUZiZzYNMJWorvKSAyciuIET0B4w28w5K\ntcWAEGjs7oze2/8LGy+3GquLiB7NqEKinpZu1A6OmYHkzXukaYWpEk69AuA+vC/cBvWEub1KxuqI\nGj6GBBm0hy+Bdd+wALcOnULSD9G4GXMMDt384T6sL1yf6Q4zlZXc5RI1OAwJMnj6LoEVZefh+o7f\nkfRDNDQHT8ApNBDuw/rCpX9XmFo1krFiooaDIUENgjYzGynbDyDp+2jcPnoWzk93hvuwvlCHh8C0\nkYXc5RHVWwwJanAKb2Uhees+JP8QjYwTf8Clf1e4D+sL576doTQ3k7s8onqFIUENWsHN20j+cS+S\nfohG9oVrcH2mB9yH94VTrwCYmNXrAQSI6oRRhcSsWbMQGhparWE5qOHIv56O5M1lgZF79TrcBveC\n+7C+cOjhXyNDmhA1JPeG5Zg9e7bxhEQ9LZ1qQd6faUjavAdJ30ejIFWD5s/1hvvwvmgW3B4KE45j\nSXSPUZ1J1NPSqZblXEouC4wfoqHNzIH70N5wH9YXTQJ9OJQIGT2GBNED7py/iuTNe/Dn97+htLAI\nzYf2gfvwvrD3a83AIKPEkCCqgBACWWcuIen7aCT/EA2FUvlXYDwNO98WBjn2FlFtYEgQVUIIgcyE\nC0j6fg+SNkdD2cgCxTn5KEi7VWOj+BIZKoYEUTWI0lLsHTgJ6fuOS/OaD+2DbqvnyFgVUe1hSBBV\n04PjSZmprPDM6Q2wbGYvd1lEtYIhQfQYtFk5iJuwANrbd2Dn1wqdFr4ld0lEtYIhQfQEtJnZ+LX3\na2g7aSS8XhokdzlENa66x05+yojoAeb2KvTYtBCnZn+B9AMJcpdDJDuGBNFDVK3cEfLVLBwaOxM5\nV67LXQ6RrBgSRBVw7hME3/97GQdGTIX2Tq7c5RDJhvckiB7h2Nv/Qd61VPT4fhEHDaQGwajuSURF\nRSEmJkbuMqgB67ToLZQWl+Dke0vlLoXoicTExCAqKqra2/FMgqgSUo+nt0fC60X2eKL6zajOJIjq\ngtTjKeoLpP9+Qu5yiOoUQ4KoCqQeT2NmIPcqezyR8WBIEFWRc58g+P77JewfMQ1F2Xlyl0NUJ3hP\ngqiajk36CHlJN9Bj00L2eKJ6h/ckiGpZpw8noVRbhJPTl8ldClGtY0gQVZOJmSm6rpqD1J0Hcfnb\nbXKXQ1SrGBJEj8GiiQo9Ni7EqVmfs8cTNWgMCaLHpGrjgeC/xnjKvZYqdzlEtYIhQfQE1H07w2fq\nWBwYMZU9nqhBYu8moickhMDxSR8hPyUd3TcuYI8nMmjs3URUxxQKBTp99DZK7hbi5IzP5C6HqEYx\nJIhqgImZKbqu/gDXtx/AldU75C6HqMYwJIhqiEUTFXpuWoSTM5ZBc/Ck3OUQ1QiGBFENutfj6eCY\nGezxRA0CQ4Kohqn7dobPlDE48Pw0FOWwxxPVb+zdRFQLhBA4NvFDFKTdQvcN89njiQwGezcRGQCF\nQoGAxZNRnFeAUzM/l7scosfGkCCqJSZmpui25gOkbN2Hq2t2yl0O0WOp1yHB77gmQ2fR1BY9Ni3C\nielLoTnEHk8kH37HNZEBS/v1CGJfm4ewvV/AykMtdzlkxHhPgsgAqcOC4f3OaOwfMZU9nqhe4ZkE\nUR0RQuDYm4tQcDMD3dfPY48nkgXPJIgMlEKhQKfFk1Gck4dTs76QuxyiKmFIENUhpbkZuq2di5Sf\n9uLqWvZ4IsPHkCCqY1KPp/eWQnP4lNzlED0SQ4JIBrbeT6HL8uk4OGo68v5Mk7scIr0YEkQycQkP\ngffbo7CfYzyRAWPvJiIZCSFwdMICFN7KQvf186Ew4fs2ql3s3URUjygUCgR8MgXaO7ns8UQGiSFB\nJDOluRm6r52L5B/34Op3P8tdDpEOhgSRAbBoZoceGxfixLtLcOvIabnLIZIwJIgMhK1PC3T5Yjp+\nH/ke8pJuyF0OEQCGBJFBcYkIQdtJI3FgxDQU5ebLXQ4RezcRGRohBI6+vgAFN2/DtLElgpZMg7md\njdxlUQNR3WMnQ4LIABVoMrGj3QgU5xagSae2CN32CYOCagS7wBI1APGTF6M4twAAkBF/AUffXCRz\nRWSsGBJEBijo06lo0qktAEDl/RSCPp0qc0VkrBgSRAbI3M4Gods+gbWXG5oP6cVLTSQbhgSRgTK3\ns0HAx+/gZsxxuUshI8aQIDJgjt38cOfcFRTeviN3KWSkGBJEBkxpaQHHHh1x47dYuUshI8WQIDJw\n6ogQpO4+LHcZZKQYEkQGziUiBGm/xqK0pETuUsgIMSSIDFxjNyc0UjdDxrHzcpdCRuiRIVFcXIyb\nN29Kn84TQuC7776Dr69vnRRHRGVcIroi9RdecqK6pzckvvvuOzg4OMDf3x/NmzfH1q1bERAQgI0b\nN2L16tW1VlBaWhrWrVuHc+fO1dpjENU3LhEhSNt1SO4yyAiZ6lsQFRWFo0ePomXLljh+/Di6dOmC\nLVu24JlnnqnVgtLT05GSkoKMjAz4+PjU6mMR1RdNu/giLykNBWkaNFI7yF0OGRG9ZxKNGzdGy5Yt\nAQABAQFo27ZtrQcEAPj5+aFz5861/jhE9YmJqSmc+3ZG6u4jcpdCRkbvmcStW7ewePFi6X5EVlaW\nNK1QKDB58uRKd56UlITc3FydMwIhBC5cuABHR0c0bdoUmZmZSEpKgouLCxwc+A6JSB91RAiubz8A\nrxcHyV0KGRG9IfGPf/wDOTk5eqcrExQUhBs3bsDOzg6nT5d9HWNhYSHCw8PRtGlTJCYmYsaMGQgI\nCMCJEyegVCqlkOAQ4ETlqZ8ORvyUT1CiLYLS3EzucshI1Nr3SWRnZyMzMxMDBw6UQmLFihWIj4/H\nsmXLkJ6ejs6dO+PatWs62x05cgTffvstACAsLAxDhw6tuHB+nwQZod29/gm/2ePgFBogdylUT1X3\n2Kn3TOL555/Hxo0bAQDTpk3DwoULpWXh4eHYvXv3I3esUqmQkZGhM2///v0YPnw4AMDR0RHOzs44\nf/48vL29pXWCg4MRHBxcpeKjoqKk30NDQxEaGlql7YjqK5d+XZH6yyGGBFVZTEwMYmJiHnt7vSGR\nmJgo/b57926dkNBoNI/1YBqNBo6OjtK0o6MjNBqNTkhUx4MhQWQMXCKCceQfc9Bx/ptyl0L1xMNv\noGfPnl2t7ev0E9dmZmbQarXSdFFREczNzeuyBKJ6zd6/DbSZOci9el3uUshI6D2TKCgoQHx8PIQQ\n0u8ApOnH4eXlhcTERPTs2RMAcOnSJXh5eT3WvoiMkcLEBOrwYKT+chitxw2XuxwyAnpDwtnZGe+8\n80653wFArVZXuuOsrCxoNBppaA+VSoXIyEi88cYbGDx4MKKjo+Hu7s5ur0TV5NKvK66s2s6QoDqh\nNyQWLlwIDw8PODs7AyjrmfTDDz/Azc0Nc+bMqXTH06dPR2xsLGxsbDBw4EBMmTIFkZGRmDhxIkaM\nGAFXV1esWbPmiYqPioriDWsyOk59ghA7fh6K8+/CtLGl3OVQPfG4N7D1doH18/PDgQMHoFKpEB0d\njdGjR2PJkiVISEjAyZMnsW3btiet+YmwCywZsz3930Tbt/4Gl35d5S6F6pnqHjsfeeNapVIBAL7/\n/nu89tprGDZsGD744ANcunTpyaokoieijghGKgf8ozqgNyTu3r2LoqIiAGWnKfduNgOAqaneq1RE\nVAdcwkOQ9sthnk1TrXvkh+l69eoFBwcHmJqaolevXgCAa9euwcrKqs4KJKLyVN5PAQCyz1+FrU8L\nmauhhuyRw3LExMRAo9EgIiJCuvSUmJiInJwcdOrUqc6KrAjvSZCxOzbpI1h5quE9aZTcpVA9UmPD\ncgCosNdQq1atql1UbWHvJjJmLv264sIn3zEkqEpqvHeToeOZBBm74vy7+KnFIAy++CPMba3lLofq\niRrt3UREhsu0sSUcQjrgRnSc3KVQA8aQIKrH1BFlvZyIagtDgqgec4kIQdruIxClpXKXQg0UQ4Ko\nHrN+yhXm9jbIPHFR7lKogarXIREVFfVEX6ZB1BCo+3VF6i9H5C6DDFxMTMxjfQcPezcR1XM3Y47j\n5KzPEb7vS7lLoXqAvZuIjEyzrh2Qk5iEu+mZcpdCDRBDgqieU5qbwSk0AGm/8ZIT1TyGBFEDwK6w\nVFsYEkQNgEt4MG5Ex6G0uFjuUqiBYUgQNQCN1A6wclfjduxZuUuhBoYhQdRAqPt15RcRUY2r1yHB\nz0kQ3ecSEYLU3bwvQRXj5ySIjFxpSQm2tBiM8N+/glVzZ7nLIQPFz0kQGSkTpRLOT3dG2m52haWa\nw5AgakBcIrqyKyzVKIYEUQPi3Lcz0g8koORuodylUAPBkCBqQCya2sLWpwXSD56UuxRqIBgSRA2M\nS7+uSGOlgVMuAAAOvElEQVRXWKohDAmiBkYdEYJU3pegGsKQIGpg7Nq3REn+XWQnJsldCjUA9Tok\n+GE6ovIUCgUH/KNy+GE6IpKkbNuPxOWb0XvbJ3KXQgaGH6YjIjiFBuB23FkU5ebLXQrVcwwJogbI\nzMYKTTv74ubeY3KXQvUcQ4KogXIJ530JenIMCaIGSh0RjNRfDvPeHT0RhgRRA2XTyh1KS3Nknbkk\ndylUjzEkiBoodoWlmsCQIGrAXPp1ReouhgQ9PoYEUQPm2N0fWWcuoTAjW+5SqJ5iSBA1YEpLCzj2\n6IQbv8XKXQrVU/U6JDgsB1HlXCKC+d3XxGE5iKhieck3sLv73zHkylaYKJVyl0My47AcRKTDqrkz\nLJ2aIOP4eblLoXqIIUFkBFwi2MuJHg9DgsgI8PMS9LgYEkRGoFmXdsi9loqCG7fkLoXqGYYEkREw\nMTOFc98gpO0+IncpVM8wJIiMhAu/+5oeA0OCyEiow0Jwc+8xlGiL5C6F6hGGBJGRsHS0h03L5rh1\n+JTcpVA9wpAgMiIu/brykhNVC0OCyIiwKyxVF0OCyIg06dgGhRl3kHstVe5SqJ5gSBAZEYWJCVzC\ngnk2QVVWr0OCo8ASVZ+6X1ek7jokdxlUxzgKLBFViTYrB1vbDMWzV7fBtLGl3OVQHeMosET0SOZ2\nNrD3b430/fFyl0L1AEOCyAixKyxVFUOCyAipw8u6wvKSLVWGIUFkhGx9noIoLUX2hWtyl0IGjiFB\nZIQUCgVc+ME6qgKGBJGRUvO+BFUBQ4LISDn17ISM+AvQ3smVuxQyYAwJIiNlatUIDiEdcHPPUblL\nIQPGkCAyYmp+ERFVgiFBZMRc+v3VFba0VO5SyEAxJIiMmPVTrjCzs0bmyT/kLoUMFEOCyMi5RIQg\ndRcvOVHFGBJERk4d0ZWflyC9GBJERs6hmx+yL17DXU2m3KWQAWJIEBk5pbkZnEIDcePXWLlLIQPE\nkCCisq6wu3nJicpjSBARXCKCceO3WJQWF8tdChmYeh0S/PpSoprRSO2Axs2dcTvurNylUC3h15cS\n0RM5NXs5REkp/N4fJ3cpVIv49aVE9Fg4dDhVhCFBRACAJkE+yE/TID/lptylkAFhSBARAMBEqYT6\n6S5I3X1E7lLIgDAkiEiiDg9G2q5DcpdBBoQhQUQSdVgwbu6PR0mhVu5SyEAwJIhIYtHUFrY+LZD+\n+wm5SyEDwZAgIh0u/TjgH93HkCAiHewKSw9iSBCRDrsOrVCUW4CcS8lyl0IGgCFBRDoUCgVcIoL5\n3dcEgCFBRBVw6deVXWEJAEOCiCrgFBqIW3FnUZSbL3cpJDOGBBGVY6ayQtNAb9yMOS53KSQzhgQR\nVYjffU0AQ4KI9HCJCEHqL4c5JL+RY0gQUYVsWrtDaW6KO2cuy10KyYghQUQVUigUZd99/Qt7ORkz\nhgQR6eXSrys/L2HkGBJEpJdD947IOn0JhRnZcpdCMmFIEJFepo0s4Ni9I25Ex8ldCsmEIUFEj6Tm\ngH9GjSFBRI/kEhGCtF+PoLSkRO5SSAYMCSJ6JCt3Z1g62iMz/oLcpZAMGBJEVCl1eAhSOeCfUWJI\nEFGlyrrCHpG7DJIBQ4KIKtUsuD1yr15HwY1bcpdCdcwgQ+Ly5ctYtWoVjhzhOxciQ2BiZgrnPkFI\n+zVW7lKojhlkSJw4cQKtW7fG2rVrER0dLXc5RIS/BvzjfQmjY5AhMWzYMAQHB8PX1xelpaVyl2Pw\nYmJi5C7BYLAt7qvptlCHBePm3mMoLSqu0f3WBb4uHl+th0RSUhLOnTunM08IgfPnz+P27dsAgMzM\nTJw8eRIajUZaZ8+ePUhOTkZYWFhtl1jv8T/AfWyL+2q6LSydmsDGyw2aQydrdL91ga+Lx2damzsP\nCgrCjRs3YGdnh9OnTwMACgsLER4ejqZNmyIxMREzZsxAQEAATpw4AaVSCQcHB+zatQv79u3D/Pnz\na7M8Iqomp9AAHHvrI4TFLIe5nY3c5VAdqNUziejoaPz+++8681avXg1fX19s3rwZ0dHRmDp1Kry8\nvPDiiy+iXbt2AICzZ88iKysL48ePx969e2uzRCKqIm1WDq7vPIicxCTEDJoEbVaO3CVRXRC17OrV\nq6Jdu3bS9JgxY8SWLVuk6S5duohz585Ve78A+MMf/vCHP4/xUx21ermpIhqNBo6OjtK0o6MjNBoN\nvL29q7Ufwa9UJCKqdXXeu8nMzAxarVaaLioqgrm5eV2XQUREVVDnIeHl5YXExERp+tKlS/Dy8qrr\nMoiIqApqNSSysrKg0WhQXFyMmzdvoqCgAJGRkfjss8+g0Wiwfv16uLu7w8HBoVr7/c9//gMTExNk\nZGRI8+bPnw8fHx+0b98eu3fvrumnYnCmT58OPz8/tGvXDj179sSVK1ekZcbWFpMnT4aPjw98fHww\ncOBAqWs1YHxtsWnTJvj6+kKpVCI+Pl5nmbG1BQDs2rUL7du3h4+PDxYuXCh3OXXqlVdegZOTE9q3\nby/Ny8jIQFhYGDp06ICIiAhkZWVVvqNq3zGuhgkTJojAwEARFBQkAgMDxfr164UQQnz77beiV69e\nYuTIkSI1NbVa+0xKShIRERHC09NT3L59WwghxLFjx0RgYKAoLi4WKSkpwtPTUxQWFtb48zEkOTk5\n0u//+9//xNixY4UQxtkWe/bsESUlJUIIIaZNmyYmTZokhDDOtjh//ry4ePGiCA0NFcePH5fmG2Nb\n3L17V3h6eoqUlBRRVFQkAgMDRXx8vNxl1Zn9+/eL+Ph4nY5Db7zxhvj444+FEEJ8/PHHYuLEiZXu\np1bPJJYsWYKjR48iLi4OR48eRWRkJABg7NixiImJwdq1a6FWq6u1z8mTJ2PRokU683bs2IEXXngB\nSqUSrq6u8PX1RVxcw/66RWtra+n33NxcqR2NsS169+4NE5Oyl3K3bt1w/fp1AMbZFm3btkXr1q3L\nzTfGtoiNjYWvry9cXV1hamqKyMhI7NixQ+6y6kyPHj1gb2+vM2/nzp0YM2YMAGD06NFVag+DHJZD\nny1btsDNzQ0dOnTQmX/9+nW4ublJ025ubkhJSanr8urce++9B3d3d3zzzTf4v//7PwDG2xb3LF++\nHEOGDAHAtniQMbZFSkoKmjdvLk0bw3OujEajQdOmTQEAzZo1Q3p6eqXb1HkX2MqEhYXhxo0b5ebP\nnTsX8+fP17mWKhp4N1h9bTFv3jwMGjQIc+fOxdy5c7FgwQJMmjQJK1eulKHKulFZWwBlrxFzc3OM\nGjWqrsurU1VpCwIUCoXcJTQIBhcSv/76a4Xzz5w5g6tXr8LPzw9A2buEgIAAxMbGws3NDcnJydK6\nD7+DqK/0tcXDRo4cifDwcAAw2rb49ttvsWPHDuzZs0eaZ6xtUZGG2haP8vBzTk5ObvDPuTIODg64\ndesWmjVrVu4za3rV1k2T2lbRjeuioiKRnJwsPDw8hFarlbnC2nXlyhXp9//9739i+PDhQgjjbIuf\nf/5Z+Pj4CI1GozPfGNvintDQUHHs2DFp2hjboqCgQHh4eIiUlBSh1WpFYGCgzs18Y/DwiBcP3rhe\nvHixePPNNyvdR70NiaeeekoKCSGEmDt3rvD29ha+vr5i165dMlZWN5577jnRoUMH4e3tLQYMGKDT\nS8zY2qJly5bC3d1d+Pv7C39/fzF+/HhpmbG1xebNm4Wbm5uwtLQUTk5Ool+/ftIyY2sLIYTYuXOn\n8PX1Fd7e3mLevHlyl1OnXnjhBaFWq4WZmZlwc3MTX3/9tbh9+7Z4+umnRfv27UVYWJjIzMysdD8K\nIRr4hX0iInps9ap3ExER1S2GBBER6cWQICIivRgSRESkF0OCjNqMGTPQpk0b+Pn5wc/PTxqqIjQ0\nFEFBQdJ6x44dQ+/evQGUfV+yra0tOnbsiJYtW2LKlCl693/69Gm88sorFS7z9PSUBqlUKpXo2LEj\nOnTogPbt22P//v0AgJs3b2LAgAE18lyJHgdDgoxWTEwMoqOjcebMGZw8eRIHDhyAu7u7tFyj0WDX\nrl0VbtuzZ08kJCTgzJkz2LFjBw4fPlzheh9++CHGjx9f4bIHPxHcuHFjJCQk4NSpU/jPf/6Dd999\nFwDg5OQEe3v7ciO6EtUVhgQZLY1GAwcHB5iZmQEAVCoVnJ2dAZQdwKdMmYK5c+c+ch+Wlpbw9/dH\nUlJSuWWFhYU4cuSIdEai0WjQo0cP+Pv749VXX9U7rMydO3d0Pgk7ePBgrFu37rGeI9GTYkiQ0YqI\niMCVK1fg7e2N8ePHIzo6Wmd5SEgIzM3NERMTo3ccoIyMDMTFxaFdu3blliUkJKBNmzbS9PTp0zFg\nwACcOHECw4cP1wmWgoICdOzYEd7e3vjnP/+J6dOnS8s6d+4sXX4iqmsMCTJaKpUKJ06cwNKlS+Hk\n5ITRo0djxYoVOutMnz4dH3zwQbltDxw4AH9/fzRv3hzPPvssfH19y63z559/6gyF//vvv+Nvf/sb\nACA8PFxnGOdGjRohISEB58+fx65duzB27FhpmVqtxrVr15706RI9FoYEGTWlUok+ffogKioKS5Ys\nwQ8//CAtUygU6N27NwoKCnDkyBGd7Xr06IETJ07g3Llz+PHHH3UGkntw+wcvKT08rU9wcDBu3boF\njUYDoGy0Y45oSnJhSJDRSkxM1HmHnpCQUOEoodOnT8fChQsrPFB7eHhg4sSJmDNnToXLHhzSu3v3\n7tiwYQOAspFcMzMzK6zrwoUL0Gq1sLOzAwCkpaXBw8OjWs+NqKYY3FDhRHUlJycHr7/+OvLy8lBc\nXIyWLVuWu9wEAP3799e5kaxQKHQCY9y4cWjdujVSUlJ0vtjHz88PFy9elKbnzJmDYcOGYf369ejS\npYvOgf/ePYnS0lIUFRXhq6++km6ox8XFoWfPnjX63ImqigP8EdWil156CePHj0eXLl0eex+jRo3C\nlClT0LFjxxqsjKhqeLmJqBZNmTIFn3/++WNvn56ejqysLAYEyYZnEkREpBfPJIiISC+GBBER6cWQ\nICIivRgSRESkF0OCiIj0YkgQEZFe/w+hJKIyJ3fG9gAAAABJRU5ErkJggg==\n" | |
} | |
], | |
"prompt_number": 258 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "This curve shows the system acheives reasonable performance at SNRs greater than about -7dB. A couple of interesting things about this curve: it's for a system operating within the channel bandwidth, and sending one symbol per second.\n\nWhat happens if we change the symbol rate to one symbol every ten seconds?" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "symbol_rate = 0.1 #Hz", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 259 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "SERs_2 = [ser_point(message_length, snr, frequencies, sample_rate, symbol_rate)\n for snr in SNRs]\nsemilogy(SNRs, SERs_1, '.-', color='0.5', label='Symbol Rate 1 Hz') \nsemilogy(SNRs, SERs_2, '.-', color=colours.ttp_dark_red, label='Symbol Rate 0.1 Hz')\ntitle('SER vs SNR curve for a 2-FSK system')\nxlabel('SNR (dB)')\nylabel('SER')\nlegend(loc='best', fancybox=True)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "pyout", | |
"prompt_number": 260, | |
"text": "<matplotlib.legend.Legend at 0x42a91d0>" | |
}, | |
{ | |
"output_type": "display_data", | |
"png": "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\n" | |
} | |
], | |
"prompt_number": 260 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "So, reducing the symbol rate by a factor of ten has reduced the SNR required for reasonable performance by approximatly 10dB.\n\nWhat happens if we instead move one tone out of the channel bandwidth (30 Hz)?" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "symbol_rate = 1 #Hz\nfrequencies = (10, 30) #Hz", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 267 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "SERs_3 = [ser_point(message_length, snr, frequencies, sample_rate, symbol_rate)\n for snr in SNRs]\nsemilogy(SNRs, SERs_1, '.-', color='0.5', label='10 and 15 Hz tones') \nsemilogy(SNRs, SERs_3, '.-', color=colours.ttp_dark_red, label='10 and 30 Hz tones')\ntitle('SER vs SNR curve for a 2-FSK system')\nxlabel('SNR (dB)')\nylabel('SER')\nlegend(loc='best', fancybox=True)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "pyout", | |
"prompt_number": 268, | |
"text": "<matplotlib.legend.Legend at 0x5da1a50>" | |
}, | |
{ | |
"output_type": "display_data", | |
"png": "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\n" | |
} | |
], | |
"prompt_number": 268 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Clearly shown in the graph, trying to operate outside the available bandwidth considerably reduces performance." | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "So, how far below the noise can we operate at four bits per hour (within the available channel bandwidth)?" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "symbol_rate = 4.0/(60*60)\nfrequencies = (10, 15)\nSNRs = linspace(-50, -20, 10)\nmessage_length = 1000\n## Note - this may take some time!\nare_you_sure = False", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 273 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "if are_you_sure:\n SERs_4 = [ser_point(message_length, snr, frequencies, sample_rate, symbol_rate)\n for snr in SNRs]\n semilogy(SNRs, SERs_4, '.-', color=colours.ttp_dark_red)\n title('SER vs SNR curve for a 2-FSK system')\n xlabel('SNR (dB)')\n ylabel('SER')", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": "/usr/lib/pymodules/python2.6/matplotlib/axes.py:4014: UserWarning: No labeled objects found. Use label='...' kwarg on individual plots.\n warnings.warn(\"No labeled objects found. \"\n" | |
}, | |
{ | |
"output_type": "display_data", | |
"png": "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\n" | |
} | |
], | |
"prompt_number": 274 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "With a 0.001 Hz symbol rate our simple 2-FSK system acheives less than one bit error per hundred bits at approximatly 37dB below the noise." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
} | |
], | |
"metadata": {} | |
} | |
] | |
}bandlimited_2fsk |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment