Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@jfpuget
Created January 31, 2016 10:16
Show Gist options
  • Star 31 You must be signed in to star a gist
  • Fork 12 You must be signed in to fork a gist
  • Save jfpuget/60e07a82dece69b011bb to your computer and use it in GitHub Desktop.
Save jfpuget/60e07a82dece69b011bb to your computer and use it in GitHub Desktop.
How To Quickly Compute The Mandelbrot Set In Python: an experiment with parallelism and gpu computing using Numpy, Numexpr, Numba, Cython, PyOpenGL, and PyCUDA.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"# How To Quickly Compute The Mandelbrot Set In Python\n",
"\n",
"## An experiment with parallelism and gpu computing using Numpy, Numexpr, Numba, Cython, PyOpenGL, and PyCUDA.\n",
"\n",
"## Author: [Jean-François Puget](https://www.ibm.com/developerworks/community/blogs/jfp?lang=en)\n",
"\n",
"Motivation and explanation for the code is available at [How To Quickly Compute The Mandelbrot Set In Python](https://www.ibm.com/developerworks/community/blogs/jfp/entry/How_To_Compute_Mandelbrodt_Set_Quickly?lang=en)\n",
"\n",
"Timings depend heavily on the machine and Python version used. The timings below are for a Windows laptop (Lenovo Thinkpad W520) with Anaconda 64 bits and Python 3.5. A more recent machine could be way faster for gpu computing for instance."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's import some useful packages first."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"from matplotlib import pyplot as plt\n",
"from matplotlib import colors\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Display\n",
"\n",
"In order to check code correctness we will display the images. \n",
"\n",
"The display code is taken from [How To Make Python Run As Fast As Julia.](https://www.ibm.com/developerworks/community/blogs/jfp/entry/Python_Meets_Julia_Micro_Performance?lang=en)\n",
"\n",
"We use small image sizes to enable quick check on all code, including the slowest ones."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def mandelbrot_image(xmin,xmax,ymin,ymax,width=3,height=3,maxiter=80,cmap='hot'):\n",
" dpi = 72\n",
" img_width = dpi * width\n",
" img_height = dpi * height\n",
" x,y,z = mandelbrot_set(xmin,xmax,ymin,ymax,img_width,img_height,maxiter)\n",
" \n",
" fig, ax = plt.subplots(figsize=(width, height),dpi=72)\n",
" ticks = np.arange(0,img_width,3*dpi)\n",
" x_ticks = xmin + (xmax-xmin)*ticks/img_width\n",
" plt.xticks(ticks, x_ticks)\n",
" y_ticks = ymin + (ymax-ymin)*ticks/img_width\n",
" plt.yticks(ticks, y_ticks)\n",
" \n",
" norm = colors.PowerNorm(0.3)\n",
" ax.imshow(z.T,cmap=cmap,origin='lower',norm=norm) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Baseline\n",
"\n",
"Let's set a base line, using code from [Julia GitHhub](https://github.com/JuliaLang/julia/blob/master/test/perf/micro/perf.py)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def mandelbrot(z,maxiter):\n",
" c = z\n",
" for n in range(maxiter):\n",
" if abs(z) > 2:\n",
" return n\n",
" z = z*z + c\n",
" return maxiter\n",
"\n",
"def mandelbrot_set(xmin,xmax,ymin,ymax,width,height,maxiter):\n",
" r1 = np.linspace(xmin, xmax, width)\n",
" r2 = np.linspace(ymin, ymax, height)\n",
" return (r1,r2,[mandelbrot(complex(r, i),maxiter) for r in r1 for i in r2])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We use two images for the benchmark"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 11 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set(-2.0,0.5,-1.25,1.25,1000,1000,80)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 3min 56s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Numpy\n",
"\n",
"Let's replace lists with Numpy arrays."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def mandelbrot(c,maxiter):\n",
" z = c\n",
" for n in range(maxiter):\n",
" if abs(z) > 2:\n",
" return n\n",
" z = z*z + c\n",
" return 0\n",
"\n",
"def mandelbrot_set(xmin,xmax,ymin,ymax,width,height,maxiter):\n",
" r1 = np.linspace(xmin, xmax, width)\n",
" r2 = np.linspace(ymin, ymax, height)\n",
" n3 = np.empty((width,height))\n",
" for i in range(width):\n",
" for j in range(height):\n",
" n3[i,j] = mandelbrot(r1[i] + 1j*r2[j],maxiter)\n",
" return (r1,r2,n3)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 8.25 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set(-2.0,0.5,-1.25,1.25,1000,1000,10)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 6min 10s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's check these images are correct. We check with a small size image given the code is really slow."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nprLQmIKeo20pNzvwrW99kuUtazjzUZczL6+icH+U7gNzKNo6yU2nkWxuo667jl1d9eMeY1qTaThK\nXuijhlPahq8Y5jPk1pzoNxxEBruBqLGSEC7ytKMSU91BIRZDdbBdleC0TaQfugjfl0kXzcM0GhYz\nj+MpZIomPZmxi/mkw14ECddXyFoKiVAeSWJwzdSbjSKRJZWJkIiAmstAl83dd9/NFVdccbgDz2qc\na9zBGb+fSy4zl84HLsHxFAbyItEsWwjRet56tnc0zmwHBIgapG7ErHAssLf0bwRhzsHE+XoWwkER\nQpiMRV9F931MxUeRfZqr+qmr62bT995JuK6b/vYmHF8mla+s0fB4COkWunqoDsFws244UoUwybDI\nEs9ZJomwqOaSFQ9Jc6A1BYsSJzyRTmmO8PH/aeffXnI754TeidtXTV8uImJ0iOTlrnsuFw6jCYK4\n055MBT5CmG+SBqqYupy8sZBjqHiwnGBbxdiNqsv7xhCu+KKviC7tqksQSDyxZTlZy6B/98JJdZ+b\nCAXboGAfmkQV0sWaLazbKKMSMS1HxdCGCCjLPqFEis/s/CnvPrOGO373+ykZ20zGW1ev4aNXns53\nf9fFSlOjNxMTa01fEtktnkk6H6bgTCxKM22DtmXY/A8gbtwXUnkuXdoOAvsRLvqxkEF4/FK+Qp+j\n82xnIxv2zmdPTy3tA8nDEinnKvTa+mG3zARPxDLJ+nMRerMRssUhwhUcbTBfD0Cv6sc4YwO37L2X\nqpft5bxLhYSzJMFzdy7ijWe1VnJ5Zg1+9J5zoL0J/6GLeFvs9fS0N5VSiCSyloHlaqRKRLJ9maI/\nvmTctJ+ZhsNBmFYvJMoE7i9tcxFPIGXUPr1AbyDTaBukeupJqjbaBNoBvfbkZquCJ1Mo6U7U6EUk\nOERY0w9kCCBvKyiyX9KlEPJlsiT0KVRbR2pvoiVUhXkwzJdql/GlJ/ez4JJ9LH/oHSw27+WB27u5\n5LrZ3S6ntgbWfWc1S+YG+L3XkestmXalh18qHyJAImfpFEszUhAIUdLxMG0rbYf/P8Lv0bgagNXH\nZUQjoTGUZREf4/Oy+/1IstArHoPkYSo+puxN6JRIhPKDZl51NMMZpz+NoduE5u0Tza7NohDPzEaR\nFA8usFj+X5/iosvTbN26mIce2nQMz+L44Y7/beZPvzX59qp3E7Q30d/RSOdAknQhTN7S6cnE8EqO\n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\ngg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x78dfc88>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_image(-2.0,0.5,-1.25,1.25,maxiter=80,cmap='gnuplot2')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x57f6470>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_image(-0.74877,-0.74872,0.06505,0.06510,maxiter=2048,cmap='gnuplot2')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Numba\n",
"\n",
"Compiling code with Numba is easy, we simply need to annotate the functions with `@jit`."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from numba import jit\n",
"\n",
"@jit\n",
"def mandelbrot(c,maxiter):\n",
" z = c\n",
" for n in range(maxiter):\n",
" if abs(z) > 2:\n",
" return n\n",
" z = z*z + c\n",
" return 0\n",
"\n",
"@jit\n",
"def mandelbrot_set(xmin,xmax,ymin,ymax,width,height,maxiter):\n",
" r1 = np.linspace(xmin, xmax, width)\n",
" r2 = np.linspace(ymin, ymax, height)\n",
" n3 = np.empty((width,height))\n",
" for i in range(width):\n",
" for j in range(height):\n",
" n3[i,j] = mandelbrot(r1[i] + 1j*r2[j],maxiter)\n",
" return (r1,r2,n3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Timing it shows it is pretty fast"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 167 ms per loop\n",
"1 loops, best of 3: 3.84 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set(-2.0,0.5,-1.25,1.25,1000,1000,80)\n",
"%timeit mandelbrot_set(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Checking if it is correct"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nprLQmIKeo20pNzvwrW99kuUtazjzUZczL6+icH+U7gNzKNo6yU2nkWxuo667jl1d9eMeY1qTaThK\nXuijhlPahq8Y5jPk1pzoNxxEBruBqLGSEC7ytKMSU91BIRZDdbBdleC0TaQfugjfl0kXzcM0GhYz\nj+MpZIomPZmxi/mkw14ECddXyFoKiVAeSWJwzdSbjSKRJZWJkIiAmstAl83dd9/NFVdccbgDz2qc\na9zBGb+fSy4zl84HLsHxFAbyItEsWwjRet56tnc0zmwHBIgapG7ErHAssLf0bwRhzsHE+XoWwkER\nQpiMRV9F931MxUeRfZqr+qmr62bT995JuK6b/vYmHF8mla+s0fB4COkWunqoDsFws244UoUwybDI\nEs9ZJomwqOaSFQ9Jc6A1BYsSJzyRTmmO8PH/aeffXnI754TeidtXTV8uImJ0iOTlrnsuFw6jCYK4\n055MBT5CmG+SBqqYupy8sZBjqHiwnGBbxdiNqsv7xhCu+KKviC7tqksQSDyxZTlZy6B/98JJdZ+b\nCAXboGAfmkQV0sWaLazbKKMSMS1HxdCGCCjLPqFEis/s/CnvPrOGO373+ykZ20zGW1ev4aNXns53\nf9fFSlOjNxMTa01fEtktnkk6H6bgTCxKM22DtmXY/A8gbtwXUnkuXdoOAvsRLvqxkEF4/FK+Qp+j\n82xnIxv2zmdPTy3tA8nDEinnKvTa+mG3zARPxDLJ+nMRerMRssUhwhUcbTBfD0Cv6sc4YwO37L2X\nqpft5bxLhYSzJMFzdy7ijWe1VnJ5Zg1+9J5zoL0J/6GLeFvs9fS0N5VSiCSyloHlaqRKRLJ9maI/\nvmTctJ+ZhsNBmFYvJMoE7i9tcxFPIGXUPr1AbyDTaBukeupJqjbaBNoBvfbkZquCJ1Mo6U7U6EUk\nOERY0w9kCCBvKyiyX9KlEPJlsiT0KVRbR2pvoiVUhXkwzJdql/GlJ/ez4JJ9LH/oHSw27+WB27u5\n5LrZ3S6ntgbWfWc1S+YG+L3XkestmXalh18qHyJAImfpFEszUhAIUdLxMG0rbYf/P8Lv0bgagNXH\nZUQjoTGUZREf4/Oy+/1IstArHoPkYSo+puxN6JRIhPKDZl51NMMZpz+NoduE5u0Tza7NohDPzEaR\nFA8usFj+X5/iosvTbN26mIce2nQMz+L44Y7/beZPvzX59qp3E7Q30d/RSOdAknQhTN7S6cnE8EqO\n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\ngg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x5ac3d30>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_image(-2.0,0.5,-1.25,1.25,cmap='gnuplot2')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Removing square root computation within abs"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"@jit\n",
"def mandelbrot(c,maxiter):\n",
" z = c\n",
" for n in range(maxiter):\n",
" if z.real * z.real + z.imag * z.imag > 4.0:\n",
" return n\n",
" z = z*z + c\n",
" return 0\n",
"\n",
"@jit\n",
"def mandelbrot_set(xmin,xmax,ymin,ymax,width,height,maxiter):\n",
" r1 = np.linspace(xmin, xmax, width)\n",
" r2 = np.linspace(ymin, ymax, height)\n",
" n3 = np.empty((width,height))\n",
" for i in range(width):\n",
" for j in range(height):\n",
" n3[i,j] = mandelbrot(r1[i] + 1j*r2[j],maxiter)\n",
" return (r1,r2,n3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It is faster."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 115 ms per loop\n",
"1 loops, best of 3: 2.74 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set(-2.0,0.5,-1.25,1.25,1000,1000,80)\n",
"%timeit mandelbrot_set(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Checking if it is correct"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nprLQmIKeo20pNzvwrW99kuUtazjzUZczL6+icH+U7gNzKNo6yU2nkWxuo667jl1d9eMeY1qTaThK\nXuijhlPahq8Y5jPk1pzoNxxEBruBqLGSEC7ytKMSU91BIRZDdbBdleC0TaQfugjfl0kXzcM0GhYz\nj+MpZIomPZmxi/mkw14ECddXyFoKiVAeSWJwzdSbjSKRJZWJkIiAmstAl83dd9/NFVdccbgDz2qc\na9zBGb+fSy4zl84HLsHxFAbyItEsWwjRet56tnc0zmwHBIgapG7ErHAssLf0bwRhzsHE+XoWwkER\nQpiMRV9F931MxUeRfZqr+qmr62bT995JuK6b/vYmHF8mla+s0fB4COkWunqoDsFws244UoUwybDI\nEs9ZJomwqOaSFQ9Jc6A1BYsSJzyRTmmO8PH/aeffXnI754TeidtXTV8uImJ0iOTlrnsuFw6jCYK4\n055MBT5CmG+SBqqYupy8sZBjqHiwnGBbxdiNqsv7xhCu+KKviC7tqksQSDyxZTlZy6B/98JJdZ+b\nCAXboGAfmkQV0sWaLazbKKMSMS1HxdCGCCjLPqFEis/s/CnvPrOGO373+ykZ20zGW1ev4aNXns53\nf9fFSlOjNxMTa01fEtktnkk6H6bgTCxKM22DtmXY/A8gbtwXUnkuXdoOAvsRLvqxkEF4/FK+Qp+j\n82xnIxv2zmdPTy3tA8nDEinnKvTa+mG3zARPxDLJ+nMRerMRssUhwhUcbTBfD0Cv6sc4YwO37L2X\nqpft5bxLhYSzJMFzdy7ijWe1VnJ5Zg1+9J5zoL0J/6GLeFvs9fS0N5VSiCSyloHlaqRKRLJ9maI/\nvmTctJ+ZhsNBmFYvJMoE7i9tcxFPIGXUPr1AbyDTaBukeupJqjbaBNoBvfbkZquCJ1Mo6U7U6EUk\nOERY0w9kCCBvKyiyX9KlEPJlsiT0KVRbR2pvoiVUhXkwzJdql/GlJ/ez4JJ9LH/oHSw27+WB27u5\n5LrZ3S6ntgbWfWc1S+YG+L3XkestmXalh18qHyJAImfpFEszUhAIUdLxMG0rbYf/P8Lv0bgagNXH\nZUQjoTGUZREf4/Oy+/1IstArHoPkYSo+puxN6JRIhPKDZl51NMMZpz+NoduE5u0Tza7NohDPzEaR\nFA8usFj+X5/iosvTbN26mIce2nQMz+L44Y7/beZPvzX59qp3E7Q30d/RSOdAknQhTN7S6cnE8EqO\n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\ngg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x8c2dfd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_image(-2.0,0.5,-1.25,1.25,cmap='gnuplot2')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Decomposing complex into two floats."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"@jit\n",
"def mandelbrot(creal,cimag,maxiter):\n",
" real = creal\n",
" imag = cimag\n",
" for n in range(maxiter):\n",
" real2 = real*real\n",
" imag2 = imag*imag\n",
" if real2 + imag2 > 4.0:\n",
" return n\n",
" imag = 2* real*imag + cimag\n",
" real = real2 - imag2 + creal \n",
" return 0\n",
"\n",
"\n",
"@jit\n",
"def mandelbrot_set4(xmin,xmax,ymin,ymax,width,height,maxiter):\n",
" r1 = np.linspace(xmin, xmax, width)\n",
" r2 = np.linspace(ymin, ymax, height)\n",
" n3 = np.empty((width,height))\n",
" for i in range(width):\n",
" for j in range(height):\n",
" n3[i,j] = mandelbrot(r1[i],r2[j],maxiter)\n",
" return (r1,r2,n3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Slightly faster."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 112 ms per loop\n",
"1 loops, best of 3: 2.44 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set4(-2.0,0.5,-1.25,1.25,1000,1000,80)\n",
"%timeit mandelbrot_set4(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nprLQmIKeo20pNzvwrW99kuUtazjzUZczL6+icH+U7gNzKNo6yU2nkWxuo667jl1d9eMeY1qTaThK\nXuijhlPahq8Y5jPk1pzoNxxEBruBqLGSEC7ytKMSU91BIRZDdbBdleC0TaQfugjfl0kXzcM0GhYz\nj+MpZIomPZmxi/mkw14ECddXyFoKiVAeSWJwzdSbjSKRJZWJkIiAmstAl83dd9/NFVdccbgDz2qc\na9zBGb+fSy4zl84HLsHxFAbyItEsWwjRet56tnc0zmwHBIgapG7ErHAssLf0bwRhzsHE+XoWwkER\nQpiMRV9F931MxUeRfZqr+qmr62bT995JuK6b/vYmHF8mla+s0fB4COkWunqoDsFws244UoUwybDI\nEs9ZJomwqOaSFQ9Jc6A1BYsSJzyRTmmO8PH/aeffXnI754TeidtXTV8uImJ0iOTlrnsuFw6jCYK4\n055MBT5CmG+SBqqYupy8sZBjqHiwnGBbxdiNqsv7xhCu+KKviC7tqksQSDyxZTlZy6B/98JJdZ+b\nCAXboGAfmkQV0sWaLazbKKMSMS1HxdCGCCjLPqFEis/s/CnvPrOGO373+ykZ20zGW1ev4aNXns53\nf9fFSlOjNxMTa01fEtktnkk6H6bgTCxKM22DtmXY/A8gbtwXUnkuXdoOAvsRLvqxkEF4/FK+Qp+j\n82xnIxv2zmdPTy3tA8nDEinnKvTa+mG3zARPxDLJ+nMRerMRssUhwhUcbTBfD0Cv6sc4YwO37L2X\nqpft5bxLhYSzJMFzdy7ijWe1VnJ5Zg1+9J5zoL0J/6GLeFvs9fS0N5VSiCSyloHlaqRKRLJ9maI/\nvmTctJ+ZhsNBmFYvJMoE7i9tcxFPIGXUPr1AbyDTaBukeupJqjbaBNoBvfbkZquCJ1Mo6U7U6EUk\nOERY0w9kCCBvKyiyX9KlEPJlsiT0KVRbR2pvoiVUhXkwzJdql/GlJ/ez4JJ9LH/oHSw27+WB27u5\n5LrZ3S6ntgbWfWc1S+YG+L3XkestmXalh18qHyJAImfpFEszUhAIUdLxMG0rbYf/P8Lv0bgagNXH\nZUQjoTGUZREf4/Oy+/1IstArHoPkYSo+puxN6JRIhPKDZl51NMMZpz+NoduE5u0Tza7NohDPzEaR\nFA8usFj+X5/iosvTbN26mIce2nQMz+L44Y7/beZPvzX59qp3E7Q30d/RSOdAknQhTN7S6cnE8EqO\n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\ngg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x8cb06d8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_set = mandelbrot_set4\n",
"mandelbrot_image(-2.0,0.5,-1.25,1.25,cmap='gnuplot2')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Code from http://numba.pydata.org/numba-doc/0.21.0/user/examples.html"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"@jit\n",
"def mandel(x, y, max_iters):\n",
" \"\"\"\n",
" Given the real and imaginary parts of a complex number,\n",
" determine if it is a candidate for membership in the Mandelbrot\n",
" set given a fixed number of iterations.\n",
" \"\"\"\n",
" c = complex(x,y)\n",
" z = 0j\n",
" for i in range(max_iters):\n",
" z = z*z + c\n",
" if z.real * z.real + z.imag * z.imag > 4:\n",
" return i\n",
"\n",
" return 0\n",
"\n",
"@jit(nopython=True)\n",
"def create_fractal(min_x, max_x, min_y, max_y, width, height, iters):\n",
" image = np.empty((width,height))\n",
" pixel_size_x = (max_x - min_x) / width\n",
" pixel_size_y = (max_y - min_y) / height\n",
" for x in range(width):\n",
" real = min_x + x * pixel_size_x\n",
" for y in range(height):\n",
" imag = min_y + y * pixel_size_y\n",
" color = mandel(real, imag, iters)\n",
" image[y, x] = color\n",
"\n",
" return image\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A tad slower than mine."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 120 ms per loop\n",
"1 loops, best of 3: 2.88 s per loop\n"
]
}
],
"source": [
"%timeit create_fractal(-2.0,0.5,-1.25,1.25,1000,1000,80)\n",
"%timeit create_fractal(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Cython"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%load_ext cython"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%%cython\n",
"import cython\n",
"import numpy as np\n",
"\n",
"cdef int mandelbrot(double creal, double cimag, int maxiter):\n",
" cdef:\n",
" double real2, imag2\n",
" double real = creal, imag = cimag\n",
" int n\n",
"\n",
" for n in range(maxiter):\n",
" real2 = real*real\n",
" imag2 = imag*imag\n",
" if real2 + imag2 > 4.0:\n",
" return n\n",
" imag = 2* real*imag + cimag\n",
" real = real2 - imag2 + creal;\n",
" return 0\n",
"\n",
"@cython.boundscheck(False) \n",
"@cython.wraparound(False)\n",
"cpdef mandelbrot_set(double xmin, double xmax, double ymin, double ymax, int width, int height, int maxiter):\n",
" cdef:\n",
" double[:] r1 = np.linspace(xmin, xmax, width)\n",
" double[:] r2 = np.linspace(ymin, ymax, height)\n",
" int[:,:] n3 = np.empty((width,height), np.int)\n",
" int i,j\n",
" \n",
" for i in range(width):\n",
" for j in range(height):\n",
" n3[i,j] = mandelbrot(r1[i], r2[j], maxiter)\n",
" \n",
" return (r1,r2,n3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Almost as fast as Numba"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10 loops, best of 3: 115 ms per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set(-2.0,0.5,-1.25,1.25,1000,1000,80)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 2.8 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's check it"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nprLQmIKeo20pNzvwrW99kuUtazjzUZczL6+icH+U7gNzKNo6yU2nkWxuo667jl1d9eMeY1qTaThK\nXuijhlPahq8Y5jPk1pzoNxxEBruBqLGSEC7ytKMSU91BIRZDdbBdleC0TaQfugjfl0kXzcM0GhYz\nj+MpZIomPZmxi/mkw14ECddXyFoKiVAeSWJwzdSbjSKRJZWJkIiAmstAl83dd9/NFVdccbgDz2qc\na9zBGb+fSy4zl84HLsHxFAbyItEsWwjRet56tnc0zmwHBIgapG7ErHAssLf0bwRhzsHE+XoWwkER\nQpiMRV9F931MxUeRfZqr+qmr62bT995JuK6b/vYmHF8mla+s0fB4COkWunqoDsFws244UoUwybDI\nEs9ZJomwqOaSFQ9Jc6A1BYsSJzyRTmmO8PH/aeffXnI754TeidtXTV8uImJ0iOTlrnsuFw6jCYK4\n055MBT5CmG+SBqqYupy8sZBjqHiwnGBbxdiNqsv7xhCu+KKviC7tqksQSDyxZTlZy6B/98JJdZ+b\nCAXboGAfmkQV0sWaLazbKKMSMS1HxdCGCCjLPqFEis/s/CnvPrOGO373+ykZ20zGW1ev4aNXns53\nf9fFSlOjNxMTa01fEtktnkk6H6bgTCxKM22DtmXY/A8gbtwXUnkuXdoOAvsRLvqxkEF4/FK+Qp+j\n82xnIxv2zmdPTy3tA8nDEinnKvTa+mG3zARPxDLJ+nMRerMRssUhwhUcbTBfD0Cv6sc4YwO37L2X\nqpft5bxLhYSzJMFzdy7ijWe1VnJ5Zg1+9J5zoL0J/6GLeFvs9fS0N5VSiCSyloHlaqRKRLJ9maI/\nvmTctJ+ZhsNBmFYvJMoE7i9tcxFPIGXUPr1AbyDTaBukeupJqjbaBNoBvfbkZquCJ1Mo6U7U6EUk\nOERY0w9kCCBvKyiyX9KlEPJlsiT0KVRbR2pvoiVUhXkwzJdql/GlJ/ez4JJ9LH/oHSw27+WB27u5\n5LrZ3S6ntgbWfWc1S+YG+L3XkestmXalh18qHyJAImfpFEszUhAIUdLxMG0rbYf/P8Lv0bgagNXH\nZUQjoTGUZREf4/Oy+/1IstArHoPkYSo+puxN6JRIhPKDZl51NMMZpz+NoduE5u0Tza7NohDPzEaR\nFA8usFj+X5/iosvTbN26mIce2nQMz+L44Y7/beZPvzX59qp3E7Q30d/RSOdAknQhTN7S6cnE8EqO\n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\ngg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xa7b9c88>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_image(-2.0,0.5,-1.25,1.25,cmap='gnuplot2')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Numpy array operations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Code from https://github.com/pyopencl/pyopencl/blob/master/examples/demo_mandelbrot.py"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def mandelbrot_numpy(q, maxiter):\n",
" # calculate z using numpy, this is the original\n",
" # routine from vegaseat's URL\n",
" output = np.resize(np.array(0,), q.shape)\n",
" z = np.zeros(q.shape, np.complex64)\n",
" for it in range(maxiter):\n",
" z = z*z + q\n",
" done = np.greater(abs(z), 2.0)\n",
" q = np.where(done, 0+0j, q)\n",
" z = np.where(done, 0+0j, z)\n",
" output = np.where(done, it, output)\n",
" return output\n",
"\n",
"def mandelbrot_set2(xmin,xmax,ymin,ymax,width,height,maxiter):\n",
" r1 = np.linspace(xmin, xmax, width)\n",
" r2 = np.linspace(ymin, ymax, height)\n",
" q = np.ravel(r1 + r2[:,None]*1j)\n",
" n3 = mandelbrot_numpy(q,maxiter)\n",
" n3 = n3.reshape((width,height))\n",
" return (r1,r2,n3.T)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 3.28 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set2(-2.0,0.5,-1.25,1.25,1000,1000,80)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can check it is correct with the following."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nprLQmIKeo20pNzvwrW99kuUtazjzUZczL6+icH+U7gNzKNo6yU2nkWxuo667jl1d9eMeY1qTaThK\nXuijhlPahq8Y5jPk1pzoNxxEBruBqLGSEC7ytKMSU91BIRZDdbBdleC0TaQfugjfl0kXzcM0GhYz\nj+MpZIomPZmxi/mkw14ECddXyFoKiVAeSWJwzdSbjSKRJZWJkIiAmstAl83dd9/NFVdccbgDz2qc\na9zBGb+fSy4zl84HLsHxFAbyItEsWwjRet56tnc0zmwHBIgapG7ErHAssLf0bwRhzsHE+XoWwkER\nQpiMRV9F931MxUeRfZqr+qmr62bT995JuK6b/vYmHF8mla+s0fB4COkWunqoDsFws244UoUwybDI\nEs9ZJomwqOaSFQ9Jc6A1BYsSJzyRTmmO8PH/aeffXnI754TeidtXTV8uImJ0iOTlrnsuFw6jCYK4\n055MBT5CmG+SBqqYupy8sZBjqHiwnGBbxdiNqsv7xhCu+KKviC7tqksQSDyxZTlZy6B/98JJdZ+b\nCAXboGAfmkQV0sWaLazbKKMSMS1HxdCGCCjLPqFEis/s/CnvPrOGO373+ykZ20zGW1ev4aNXns53\nf9fFSlOjNxMTa01fEtktnkk6H6bgTCxKM22DtmXY/A8gbtwXUnkuXdoOAvsRLvqxkEF4/FK+Qp+j\n82xnIxv2zmdPTy3tA8nDEinnKvTa+mG3zARPxDLJ+nMRerMRssUhwhUcbTBfD0Cv6sc4YwO37L2X\nqpft5bxLhYSzJMFzdy7ijWe1VnJ5Zg1+9J5zoL0J/6GLeFvs9fS0N5VSiCSyloHlaqRKRLJ9maI/\nvmTctJ+ZhsNBmFYvJMoE7i9tcxFPIGXUPr1AbyDTaBukeupJqjbaBNoBvfbkZquCJ1Mo6U7U6EUk\nOERY0w9kCCBvKyiyX9KlEPJlsiT0KVRbR2pvoiVUhXkwzJdql/GlJ/ez4JJ9LH/oHSw27+WB27u5\n5LrZ3S6ntgbWfWc1S+YG+L3XkestmXalh18qHyJAImfpFEszUhAIUdLxMG0rbYf/P8Lv0bgagNXH\nZUQjoTGUZREf4/Oy+/1IstArHoPkYSo+puxN6JRIhPKDZl51NMMZpz+NoduE5u0Tza7NohDPzEaR\nFA8usFj+X5/iosvTbN26mIce2nQMz+L44Y7/beZPvzX59qp3E7Q30d/RSOdAknQhTN7S6cnE8EqO\n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\ngg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xa824c88>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_set = mandelbrot_set2\n",
"mandelbrot_image(-2.0,0.5,-1.25,1.25,cmap='gnuplot2')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There is a better code from http://www.vallis.org/salon/summary-10.html"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def mandelbrot_numpy(c, maxiter):\n",
" output = np.zeros(c.shape)\n",
" z = np.empty(c.shape, np.complex64)\n",
" output[:] = maxiter\n",
" for it in range(maxiter):\n",
" notdone = (output == maxiter)\n",
" z[notdone] = z[notdone]**2 + c[notdone]\n",
" output[notdone & (z.real*z.real + z.imag*z.imag > 4.0)] = it\n",
" \n",
" return output"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It is indeed way faster."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 1.31 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set2(-2.0,0.5,-1.25,1.25,1000,1000,80)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The code can be made faster by only performing computation where needed. There is no need to ravel the input array either."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def mandelbrot_numpy(c, maxiter):\n",
" output = np.zeros(c.shape)\n",
" z = np.zeros(c.shape, np.complex64)\n",
" for it in range(maxiter):\n",
" notdone = np.less(z.real*z.real + z.imag*z.imag, 4.0)\n",
" output[notdone] = it\n",
" z[notdone] = z[notdone]**2 + c[notdone]\n",
" output[output == maxiter-1] = 0\n",
" return output\n",
"\n",
"def mandelbrot_set2(xmin,xmax,ymin,ymax,width,height,maxiter):\n",
" r1 = np.linspace(xmin, xmax, width, dtype=np.float32)\n",
" r2 = np.linspace(ymin, ymax, height, dtype=np.float32)\n",
" c = r1 + r2[:,None]*1j\n",
" n3 = mandelbrot_numpy(c,maxiter)\n",
" return (r1,r2,n3.T) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It is about 3 times faster than the first Numpy array code."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 1.03 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set2(-2.0,0.5,-1.25,1.25,1000,1000,80)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 29.4 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set2(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can check it is correct with the following."
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAANMAAADDCAYAAAAY0SRCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXecZGWV//+++Vau6hwmzzABGBjiDEFZQEBMK2DOOa5r\nWHdd0Z9fcNe0qy6mVQQjuoqKooJKFgYY4hAGmGFy7J7OXblu/v3xVFV3z3SeHqa76c/rdV9dXXXr\nuc+9dc894Tnnc6QgCJjDHOZw5JCP9QTmMIfZgjlhmsMcpghzwjSHOUwR5oRpDnOYIswJ0xzmMEVQ\nj/UEhoMkSXMhxjlMawRBIB363rQUphcaYW5A523HdA5LAB0IH9NZzEz0Azmg8wU73mFyBIA0HdeZ\nXkjNFOZnaLwdaYQLdDQRA5aWX8/Z20eGoLwBPHmUj9WPNKxmelELk847CfPTF+JQAEhApPz6uPL/\nLzZIgDHCZ6UpPE4v0F1+nZvCcWFkYXoRm3kxNF73gh2tEXET1b1gRzz2SHC4xlURGnk49I3wfhrw\nJ3jsmvIWAB3lMfITHGOieNFqphhPo7D6aB+GGNAKmLw4TLnWQa81puacbQZMuB4mp8FswAW2TMF8\n5sy8QYjxJAonH7Xx5fJ20lE7wvRARVAWTfA7cYKqdgoOMXZzQKb8ejRtVAIOjmO/4dADHEAI12Qw\nZ+aVoXAKEqmjNn4KSJb/zlZEESZrYgLf0RE3W73k0xDJock+BVsn6+g4vowfyNWxowhN1A1YI4xn\nMiDEnYAzyr6Hora87S5/LzuB8xgNLyrNJHM8EX6DwglHY3jmA/VHZeRjD5WBB8RIPs9IMMrfVYHG\nSI61a54g3VPLvoNNqIqH48v05iOkbXPI91yEgIzHZ3IQ2qqbAZNwPHCAveVjjBdzZh6gcgFR7pry\ncVPAPMTNMhsjdPMR5pkyie82I66JDNQaRQzNYWnTQU477XHUxg4OPHY6JVdly67FtKcT9B8iUCAE\nqW2cx/MQ/lH7BObolY+xaZz7v+iFSeEUYmyc0jFN4PgpHXH6QEeE8SdrrioILT3Yj6g3C6iKR9ws\n0ZLqY2lLG9HFu3j2oXUc6EvRnY1TdBWKrgaAGwyELzyEOeeN8/hZhLaxJzjvNML8G+04L3qfKcoj\nUzaWjrjJGqZsxOmFGEdmriqIsPRwN5fnK5RclaKt05+NEe5oRJF9QpqDoToAhFSPIIB8WaiKroqC\nRA0ifD6ewEGsvPUiTLnxhsUTwAKggAipTwQvCmEy+QqTM1KGxxJmZ9qPgRCCkRZVx4s6RFh8MCLq\n4Tpi8aLdKOEC87MxwrpNphjCKguQJEFUE8JlKB6eL5FxDGqZ2E1eg9AyAUJAxoNUeTMQ/tR48SJY\n+pBROHlK0oWWAqcyOwVpCWKNKMSR3RQShwsSgCoHSIN+ggDYun0ZxonP0PK+62mq6WVRfRe10Sya\n4jKQIBRQH83SHM+Q0EtoBMybUIhBPEabRpjXaKhD/N7jDbjMcs0UIcQ30bj0iEZJDNpmEySE8ExV\nGF9n/KZvphjmpIV78PbNR3FV4rU9NBVDWI5GSHNwfRnHE7enprismL+P1VLAhueO50AuRj3QNcH5\nzUeYiAeZmC91HLADYS6Opt1mtTDJtGDwgSMao7m8zUbUI9Z0pgKV8PdE4PgyHU+dTGzrcqJLdlKX\nTtCXjaGrwisqOUKXxENFljQdpDMbI2qWiFkmnqNjMP61pQpUhMB3MjGBWlo+1h5ElvpIY89aRLnz\niL7fjDAPZhtqEJG6iZo9I0Etjzker1SRPUzNIWYW2XWwiVioiOWqhEsm4cYOmvIROjJxQrpNbTRH\nPJZFDiR8R6Ozuw7XUwipLhIBkmPQycQzGXTE7zoRfwjEA2MJsH+Ez2etMEksRGbBpL47W0PeKsLf\nSx6FcUcTJFNxMBQRbFZkH1kCWQrwfBnPl8lbBl5/En35Vho8hdDBJnzNoW7efvzlW3GfO55S00Ha\nN62uaitZCpARQtHO+EPmg+e8BKFpJvLd0QRm1gpTlHsm9b0k4iLPNkQQmetTjTBCK40EiQBdFvkL\nhuoQNa0hn5ZsnbBuk83ESexdgHbiM9TU9oDs45klev7yCrqycXoePJuiPRBnlKUAVfJxA5lGRL7d\nRE0+gBZEdHCi61HDYVZG83Q+jDyJWycFk9Rl0xsRjk7pR5Sx/SRJCjBV8eyPGCPf7rar4qQT0J8E\nzSHYu4Ceh9bRlY1RtLWqRgrrIodclQP0sraTmXxIX0P4UFOhVWalMCmchDTBAHYYkTg521T1YsTN\nMnWrbAIhRHRzrAWHWkMUTETNgcKJkG6hyD4SAfFQEbWsuVBdSPaDFFDIR7BdFddThhxFVYbP0lMQ\nD4zJ3NA6ItJ3pJhlwiRj8HkMPjTub5iIJ+xKZldenYZ4OEhM/XlJiKzrscZVJQ9JEuadobpIkjD7\nFEmsOSmKh6Z4pOIZEtEcoZY2fr1tIxuz2wkbVtm/CsgWTZHfJwlB0soaKao5qNKAcEkIs20ygRUJ\nWDjJ71bHmF25eSZJiuPeO4S44UKTO9i0hYEIe+tHafwEYy9k6rJLXLdRpICoWUJXPUK6hSb7REPi\nN0pG8ixYspNo6wHkTByO2wZNByGSJ/jt67HNEgezMdqeX0HBNnA9mVzJxAtkenIiqN9bMofk8IEI\nKPQyOR8qy9jrV3ePkJs3qzRTjA3j3ldBrB3MNkFqRQQajpYgpRhbkDTZI67byJJYI4oaFolQgYW1\nPaSiOWJmiZpIXoS+V21GXvE8/Hs/WxfcySlX/5FHnraQWtow1j1EEjB1ER5QFZ9YqAgERIyR620r\nuYGTyZ0MM/l7Yta4CBJJFNaMa18FjmKd7bGBhBCkoyVEIDRSZIx9ZAJS5UBDMpxHV11qY1lqojlW\nvflXpO+4iO6+FFFDaCmePQF6azjxq5/j2X2ixnZfZAtnnmvBXRdimiUSoSK+L1eTiEK6w4HeFHkC\naswSncXD/WOlvLUiyjfGa+ooiPXFfYiMh4lg1ghThD+Oa78QA/RaswWVcoejJUghhC8xmkZSJB9N\n9omXtYgie0QMi6XLt6KVTFKpPqRNq0mddy+xDWfhAUaqD3Qbant45v440kIhTK/73FaCb18EmThK\nIUysEryI5NGlgNb6Lh56cg2l9maKjo6huFje8LeyhLg2OUDotPFhPrBznPtWMGuEaTyolDofzaf3\nsUADR89cjTJ21C6uiWCBJotbVZE96qI5Tlu8i+Zl2/ECCa2hE1wVSiZqLIuqurBoN9T2gmZDWwuV\n3ILPfvat4GgQy6K6KnFfJhoqora0oZ30NDx6BorsEzVLWK5KTLNHFCYQv3cNQph6JnDuKUZmTBoO\nsyIAYfAJTP4LaYxYTAyRtDhbUBGiqQ57VxBG3FCjCVKNUUSVB/9cAalInqhh0ZzsZ1FDJ7WpPpB9\nuPAuyMRB8aAYojfUxvKrfiW+Jvv0ZIRhFY9HSLefAxtz8PBaeHINFEMwTwhbYfMqnt67gK5MnLyt\n05uLUvJUss7Yj0kPkaw6njL1ACFMh+bijRSAmAWaKYzMsjEFKcTsESQJcZNPVZLqoVAZyLc7FIrk\nIwG64lXrjSqQJZ9UZCCvur8QYW93Hbatk4zkMZ89gdzbv88n/ncbHzr9NM782PAFm5lMHilyOwDf\nfrPHx676M/zyrWBYYBmEl+6gOR+hKxNHlkBVPEISeIFEwR2dPEBBPFQ9RLRvNL+oUk4iMT7zcMYL\nk8IqDD466j5JxOLlbEENR68cpFIgeKi2k/ExVY+Q6qIMYziosjdkYbYCP5ApuRq2q2LmI/Q8eAFb\ntiX4Sfjhcc3n9v7HyF69gmTrT/nIWSvgr5eS70vhyAPrS/FQkb58lKjmIBGQd8fWUJX8xF5GL6uI\nMcCUNBZmvDCF+OGonycRKUKzZUG2gaOnkSqcDYcKUkIvIUtB1Sc6FLIk/Bel/LkqexjqQC63KnuY\noSK4KotKLZy/8Bm+9P3xzemWv3rcwnMsbjb5yNKLye1YSkdnA93ZgXCIBIQ0m6KjE9FcsdDrjC+5\nKImIUI5WDh/nRSFMJiqnjvLp7ElalRDpMkdLkOYd9k5ASHGJ6WMFiIMhph0EIqO7KngBuuZgLN8K\nsSwP7NrJ135734Tn99wn3gePnoSKMOcAwoaN7Sl4vkLYsPEDCctVCakeIbVAv2Vg+zKjPUplhDZu\nYuTSChCBq91jzHFGL9rGRz392VNGEUGYqRPlqxsLFd9rsCApko8uuzSEiqMKkiz5aIpLKnI4VUks\nJMw9RfZQpIDIgr0Qy8K6erpWrOe1r5h4PPX4r/wSluzEXPcQjcmBkEAltQggaloMjl0lDYt6s4gu\nu+hypRR+ZLQgHsDDBXRkxs66n+GaaWTMlurYBCIPbqoRZ6C+qQJF8kno1iHRucMRMYTZp6uHVwJV\nMsM1xSWk2+iqi2/rePvnoXQfx/o/p/jd33dPfMIRBVbXwAabvvzA0nHEsJGlgEK5PCOs2+StAe49\nSYKkIda+Sq6CX9ZSRVfFOyQNSUZo/xIihH7oVdARwjYSZqwwmXwTaYQyt9lSIRtn9FqhycBE+AlD\nc7EFQSRSgDKCRaTIXnXxVBlB2KJGCUNzUWSPkG4jSUJzFNubMSJ5lIN/5j/fuxhr8Wa+95MJ0u8X\nArg7hbWrFtvWiRoWjqdguxpmOapYsA1MzUWWimRLh6+8mYOE31BcOCS63WOJ75gILXSQodAYfY1y\nhgpTDIWlSMMo5IoNPNMDDlNZg1RpJHD4A0ZkcCcNC032qr5PJTtbkgIMs4RjGXj+yB6BIvskQkUk\nKaiaeBJBufZoEJZv5dkteX7124nVxS6aL7Pz6+fDgWcobnolkhQgyz4hXfhJvi8T0h1CukO6EELW\nfHTVI1sysN3hl0wUCSibhBIBkhSwNNVDfylEumRAINOIRBdDqZlH+01mpDBpvBaN1wz72Tym/mn+\nQqKSujNVghQpjzmceRJRHeKGRU0kT9QskUz2091Ti6G6yLJPTW0PK05/jJ7njmdnWwvuCFkGhupg\n6vYQ/0VVPGQ5QFddDM1BkX34v7dw+qrNfPi8Hr5061PjPofb/vweuHERbF+GIokaqLxlEASCwM0P\npGrx4KpTN9OzfRm9+Qiy5JMtifJ4Z5i5G6qDJAVoigjrr126gz3ddezobKA9Eyfv6tQgwufj6bQx\nI4VpJCxlZtNxhTicUniyiCFMkpHSjGKaRUgV+XOnLNpN7cI9KMUQu4D6RJp8ySSZ7Cd86kbCXfX0\n9SfJ2zolW8cPJMJl38jUHJZc+leCx05HruvG7mis3tgAMbOEoTnIlXWhjkbetvgc1v18Ca9+xx/G\ndzJ3rILOGDgamiIIWTTFQ1ddlJKJ58tVLXjcmY/QUNvDridOoS8fIWJYpAthXP/wYIqmDNRbhQ2L\n7lyUExbuIWpYFLYvEzx/jo7K+MraZ5wwSTQQ5sfDfjaTBalClHik5ungZmMjjRXTLEzFq/pB+ZLJ\nUl8meNmdrHjmRLR0AknxYOEeiObIF8LURnOQi1arYis3YV00RyIfIfjWx0UG+M2vJd9dh645aM3t\n8LrfwfXvQ1JdCBfA0VgZXszKbp323TrNi0a+TV/xigXc/OErUP/uiXQks4RhljDyEVBFJLHYXUem\nXNsUb2lD2Tefmst/Tw2wcctK+rvriIcL5IbxoSqokLyENIfo4l2csGg32zsbcPpSBAHUuzoHxnHt\nZ5wwAUiHTFtn5maCV1J3Wo5gDANhzo1dqB8QUR1CZUdclX38QCZdDPH87kUsUTyM1gPQ2AGpPshH\n4LZLiOg2lmHRoHj05qJYropW9lniqT5o6ETKrYPXS+D/ieifXgM1vaz49dX8ZPViFtY8wxv/8nNu\nf/cbeajuVti0GgoW/OAlXPnmHXz5V7sPm+ldd34I7tzG+r/tZt3adh66W6V1TRZr0TxOeGIeiidz\nvX0DoQNncnn8MhQ5QG/sgNfezCN9+zjz1c00715EVvEIyT5G+ZzTxaEGbyJUFD5fuMCCRdt4coeF\n0f1SXE9BVTwUT0EmoBVpTIGaccJk8oXD3qthZhb5aQizbrRw60gYbMKNd/0pqjmEB2UmRE0L21Wx\nXXEbWJk4Wl03vFEC6U9w58vgJdvgvpXU1PSC7JM42ERnTy2KFBDSbULJfmg9wL23b+fW3z6D3Kfx\n1ddeALv2geJx6b8/xboFXTzQtpvPPfVbrrllB+Np3nLhy35Qff0+K8L1P82zZn4NOcvh6VuW037H\nMrbu2k8yFiZUcw7UdcPyrXzx22kWnBjjzPmLiNX0UpONUbT1MpcEmNpQTSiVz6M+lsUJZWjLbec4\n7SzxoPAUZCmg6KnYvkKY0VOPZlzWePKQ6L+JSGCdKkLFFxLzmdy8KwQpE8kWj2vWkNAwIEw3oCnZ\nx5lLd/CovJ490i7e9pJz4R/uhKVvhT2/gD+cAck+WLITlnTiXHklRVvH0Bz0cAFpzZP8t3MN//Yf\neWRZwvvL26DxKVZcvpmtuyZaYjc2Vq9WKHSZXHppwN7NUdL7Yvz9P8/h8w/dwteu6+PyC1LceNkb\nKP7lFexpb8bxFCxXI6TZpJL9RFvbkHyJ9J6FZIohTM2hJpInWduDu3ILbXddyMH+JI6n0JmJs7mz\nEcdX8BFpR9+ZDVnj0jDLlxozS5Aqjb8mki8ocySc4AFR1TlMkJLhfPVzCVBb2jhnpcO58Tg8psNJ\nJX5494f44JW9bP+WQ2RejK+t7+Xin67m0kgeLdlPOnQQta6EUjLhuZOADfh+gPTyGyY10/Fi0yYP\nyPPdnwAUqIn18r2n4EvX9gJw76N5vtTRy+eWOtTU9JLuT2KoLlGzRCqaI7T2IdBtYv1JCvecD4qH\nKftQ141qGSxoPcCCum4KlsF9W1ZWjyszi0goh6M7nkllFTIim2E8ZpnMgPl3JKH+iOoQ1kYmEDY1\nB1Xx2LLxVJp2LCUWyWPUdUNDpyjQA5Z9/K/V/a/hPoKPnAi1PXxi/U9YE5NI9rXwePb5I5jlkaE3\n6/JP1+yo/v+1t57Eib3zYW0Htz3+Ay5XP0GpGELRHELLt0JPLXdnH+U8aQnh47bBgr2wY6kgc2lu\nB8Oi9PRJ7O6qpy8fQZc9HF/YAaMFuWaUMB2KmUQYWYu42GNxKIDQQAqT86UGoxL+PhSG6ohkVMmv\nZneXHI10IUxo0W6ME56l+8YLuf6m4aOm1HexoW0v9z6Z4ad/72PsFNAXFu/630f5zOV9/HV3Pcvi\nCiGvD0O3URJpuPz3YJlc8817+eGePfz6qhX8+t6DrH3JgyxuDIngSHM7mYfX0pePYLkqEc0dV1nH\njBEmgy8gc+KQ96aaM/tooRaRGjSaWTc4Q2EquO4q4e/hoJbXVyQpGELqWHQ0yEXh/HvIb2jl0Z29\nw36/v2YnF33lRvL21PtDU4Vv3bID19uO88N3QfEB5I2nwqLd7NoNp33kPnJFH8d5jtvf/TxFK0D/\nSUD6U1+ALSshVKRu4R7sfIRtHeNnBp4xwiQRrobEFWYG+6rJ6CHviq9X0VpTg6Hh70Ohqw5mOX8u\nGR7KMRg1LBHNW/8S9KUPsLDBZE/n4Tl0qY//Yspme7RQssupQu/9KS9ZuIDfvjZBx7l7OPmCoXRw\nfVlxnR64+mUEWpZ8X4r2nUsoORp7e2rxR0mjOhTT/X4cFtO98ZhZ3kbydUKIC380ziGiOkRG9JEG\n+LkHklY9kQGueHi+TGn7MrR8hOZclN9e1807PtPGli1TQWt/7LB+z17ed/tvWKONEsJpa4HeNQSy\nj+0pdGXipAvhalvQ8WBGCJPCKei85VhPY1xoRlzU4X6CCjmixtEpJBsu/D3k81ARTfExNVG2IEk+\nYd2ulkqEdPE++QgcaOWMmldz01s66Ins5KX/8thRmPELh1s27+RgZJS216Ei0hU3EbrpCvyDTWSK\nE1+5nBHCJJFALlOrqwgTb7pBQgREhlv7kRAp/UfrYuuyW63ZGRkBmuJjqA4RwyIWKmJqDo21PYKC\nK5BQZB/DLCEl0oJEv6Dz/930GL9/aqIMctMTjz02PPHxl9+2ilNPMAi2L6Dfl+nLR3C8ob9kvVmg\nqzR6jsmMEKbBmG7mXYVOd7h5mYhUn6mukB0MQ3ZJjCJIEiIrOmxYGKpDYyJNzCwRb24nWddN7PW/\nxb7xjfjddciRPNo/bueO3Xdx0Zp6di1/irbf7DmKsz92WLc8RXMyDPkwK1qieA+eTXbXYg4cnHwl\n3IwQJoNPVV8vPIbzqEBjQHjiw3xe8ZmOFl8DCD5vU/EwldGbUFZI8wHi4QIrjn8OQ7cJLdgrIoaP\nn4YezYnaHsWDUh3//KNneenLC2z++kIeemyiPflmBj77CZPb/mTwvfPeC23NpA820d5bM6RUQ5ZF\naX7lvZDiUPRG9qFmRDpRJYVoOpRYzEeYbSM9hZoQ/lBSt9CkkatgeiyTyQbAaw1RiCeP8vWIUUJT\nvGpVbNQsUh/LsqC5ncZVm1n3+6/z0PdPFqHgi+5gyXn72fnRT/HFB+7mvE9u5B8unwiX6cxDQz2s\n/95JLF+ow/98knxPLX35CAfTSQqWTkc6QYBEwdaqHQstTyFtG1w1G7pgHIu0oUowIYVgOtI4XJBU\nRHh7oeST0kscX99BYtDNPNzWECrSECoQUW0UyR9zCykODaECDaECijy8IMmSjyz5hDS7HP4OgICI\nbmGoHpIU4Oo2QUsb+/K9WPOL/HvvLqRTn2J3rofnX3I9O0pts16QADq7YMUbnuaGn8t8ZcvNRFJ9\nNDd0EdZFnVZNNI8s+YR1B10V62kSAdIopCzT3szTywSTEV7YyVbMt0o2wkiIIbSlLnskdIvF9V0c\n13SQvd11ZEsm/YVwlexjOEQ0d5RQ9vhQyYQOac4gii2BsG5jDmIZcnprsB8/jfcsuoDeW+t44I5f\nAxAEsPKVu45oHjMR7/jeI3z5Uh3OvZ8f39zNa5vfRqYYwvEU4qEiJUdDlnwyRQBNmNUjWL7TXphC\nfBMo37BH+VgRBoIFY9UGVQIPlQCqqYjOeLarIksBp63cwp62Foy6bp586mQcTxmW5GMiMLWhpeEV\nDMcSVEHoELouP5Cw0gm+uOSdSKGdvPaKV3P/xt8c0bxmOn769BOs79jGp85fQ3iHTU05mz5vmUQM\nm3ioSH08w67OBrL2yPbRtBcmEI780egUXsFCBuzd8XgxBkMJ7U3FxSjf5J4v09afpORonPDBa9n0\n/Q9TG83RXwgPKwgThTQBNysVyVVfD24O5nsKgaMhbY3DrjR/+9vfePnLX37Ec5up2Hogzy+uXsIZ\nD19GsRhClX2S4YLgrUBo95VnbaD/5tdSsPWZq5kqmCq2oYoPNBlevUpn7sFzkRnoSVSB5eiYWj/y\nptUkwgV68xFSkQKZouAr8IPhXFURwg7pNqbmsKChk7yr0lVOaUkXQ3j+eCqYBsap+FWy5KMqHqlw\ngSydqJE2ktE4hAKoM17UglTBY/YrKb56MS/9eT9LTnqaUi5KbvMq8pZBat5+5GKI45oOivafI7CU\nTesAhM67AGVKmHpqGGjNOFFBkhkggzxcqA9/x1AdQroNjR2EdJuoYQEB8VCJmFmqUmkNRsSwiIdK\nhHWblmQ/zfP2s3jNk8RDRSRJpP+EdWtUB3jwOJpS4WoQ5eXJcIFkvJNfh79G+tQ7RaFfSzfMmyB/\n3SzFRz7yVTY9ey2Ps5F/vf1O3Av+TO38fcxrOkh89SaybS10ZUdfMZzWmknjciSUSdfzqAyYhzqT\n1271jBxJTB7SW9XQHFa2HiB5+mOwZyGyFIg+rFJAJZqqKd5hK+yq4qMqLslwgYXHbcOYv4/8lpUk\nQkU8X8b1FBQ5QFMFeaLlqpTK/YjUcpe+yjiDETEskemQSONf8Bd23rWF1W+/kJdd8TM6O/vptrKT\nvCqzD9f+YgNf23sX+7Jp/m3NRqIHfoJiWLB3ASHFozGeYccoWeTTWpgmg0olaytHfnIyQpONWl15\nSPTM8RT299bAo2dQd+79xEsmxV2LUWSfgq3j+zItqT5WrHiezVtWChucipC5olivtgd6atEDiVQ0\nR94yRKqP5iIRkCmG0FWXqCkEaPCSh1iiE3OKmSUU2cfUXDKFMK25Vm785Fo+9R//xz3P7ML3x8MG\n9+LBpmfbq68bjjuVi8+OcNvVa8FVUXcvQuocveX0tBemiWilKCI4MBULu0nGzmAQZPCD/lcd4d8U\nwqiyT93zK9DiGZoW7MVyNCJ13eR2LUaXfWjopHb/PKRcFKuspTTFE2bdwSZo6EQ75QniO5ewsqGT\n9j0LyZVMwrpNY20PluaQ7arH9RQK1kDoPXxIapGqeKLfrOrCMydCLMs3P3kJOD/gf361ZQqu1OyB\naRqcccYa1q8XvaNu+9cL4aETobuOrkyc5w60VjtwDIdpL0zjraZNMnVMrjWMhzaLwzrnVUwt11Mp\n2jptnQ3EPEXkxTV2wKLdJOq6oaUN5u2nZsdSook0xXyEYslElgJM3UayDCiEYf4+9JpeAlelOZIn\nv2sxoXAB/SN3Yt+0GikbG6LZDoWpOmiqh6YKjcfKLVAI84PP30FbYSLdXV8cCIKAtYtTfOSiZbBj\nKZ/9ZjdXLlpOd3sze3ctJm8ZI7LawjQWJp33oXLJOPYTAYWpiqTUMbly8YhRGnJLZ4oh5J5arJJJ\nTTRHLB9B1m04a4MgY3xyDVpzO5oUEO5sIF8OmxsVAVVd2LUYVm1G8mUMX8aI5uADP0R6ZB1Bf5KY\nWSr7XnbVf4Jyc7FBgq4pHuFkvwg6NLfz9nc+yhfPGU/7rhcXLMvm27+8nRsueRtviF/COVKUPc+2\n0JOJ05kZLgtzKKatMIHBUvQRhaTS4a51hM8nCglhHo5XkAZH5KRygy9JEt6K50sosnhdcjTSxRCy\n7BMrmbDhLF5+6/e4+k2w9pVPgWUgPXAO0bYWSKbBLIpmyEt2ctVDt3H1V54gFpHI/LoHbroCbn0l\nNLejXXQH8b//A3JnA14gkSuZ+L5cDZ/Lki+I9M0SUbOEunILZ37lT/SqOXbsOLyn0hwEbM/HxgLN\nAacWq8z8Dhf1AAAgAElEQVRpHowjfDWtQ+MjQUdE6aZKkEAI0kSyvMOKWw0+6KpbzULwfAXL0dAU\nFxBRtyr6UiD7vOVl9az70i38x02beahYCwsLgkF14W64YjcsbINQESrrV74supSf+YgwEc/aAGc8\nirFqM7XN7TSs2kxTQ6fg9VadgZol08JQXeEv7VnII598E196z8idFudQxksehJY2kTWujj/Vaxpr\npuFR6eA2lUmvkzXtQGil0KGtUxACVn2teITCBWHerXieJ/8mOv984Ybt/Hi9zV3/byXRulX86Mn1\nFHbC3fceBMljX38GgILl8/m/B0Rrc/z5NzfDX7t402Vv52OtrZBrg0Qas7cGvxhisP9karYIlcs+\nvOIv4s2n5kLhY0J2obeWsG7jhwu0nvY4j95xEd250R+301aYhmPokZj6KtsaJi5ImuyVuegCaqKH\nmkzBoFaQAZSDCsq7fgqbVmOrBTbtzVT33r17L92983He+WGuXPmtYY/n+QFfuu7GgTd2wqnz/kbu\n048Qec8aSrd0EWo6SPS+lxLuT1IcFN2TZR89kYZTryR68qnkrdlZnzSVKD18MrlVOzAad5J69gxo\naUMdRyrYtK1nWsB1LON91fc0RK3QVGqk8YS/h0NEtYkbVnkdZ+j1U2WPhniGiCH6q6YieRKhIvF4\nBrmml1v67+cn7bfx+4faRxh9Yvjt1xdw/e/6+dtHXyVouh48W5iEldQj2YNoDs7eQ7r5LpKX/31K\njvtiwCkNrWz8ykWgeNx51VXs660haxl83ArPLHpkY5AggcjmnkpBSjE+QshDEdNsQqqLobrDtqOM\nGBambmPqNhHDIqQ5GJojtKzs86qVy3jVm7P8sC/FBz94/RGeBbz+03uZV69zZ+9G1j/scPVxzWBr\nougvkET1rFniq5vuZMvfHz3i472Y8Pn3NUAuSu+955GzDEqOTsmdgaHxwTAYvjx8spisj1QhdlRl\nbyCEXUZYt9BVl4Z4hkUnPEsEsLrrCC3YixzNIfUn2V77CL/c+hA7NqS5d2dx+INMAvu7bN7whefJ\n5QOu/s0WSNTBvvmCKEX2QXN45ykxWj44Wg+HOVTwPy+/mMvqzmX+vgV0Pt7Ajn3zsZyxH+UzQpim\nMvydZOKCpEg+puIS0RxqozkkENpnUFGfJPlVLjrHVVFXbhGRoMYOWLKTbVtUFqwMUZLnccNNz0zR\nGQ2gL10mXbz8Rt77qgauPycC244T3A7HP8dl19w35cecjYjHI1z71DO84+R3cCC9iD09tXSmE+Vs\nf6rd2ofDtA2NV3yZqdRICSZm2mmyR0hxqDVLxA2LpkSapY0d1MUzVUHSVVHWLHwkUfviHmzCe3KN\nCG2f8Cx3Rv/ImT/6ITtTD/HVr/5tCs9oeDx7sIdrnr4H28iJEHtXPeQmY9S++PCal61k868+R01K\nJxwqVrnY08Uwjq9gzcQMiBRCi0yujcrhqGXshmiG4g5h+1ElwdcQMwXHXH08w6rWA2Q9ha5yWfqh\nfpNcbunoewpkY7B5FTfe8yT9/T188JvPTtHZjI6HHvO44KzNyPUHIZeERbtFEGIOY+Luezdxaf//\n8OvV7yT6xjjuZ1pH7TQ/GNNWM4HwlaaiKLCW4U07U3GpNwvVLa7ZGIpf3RQ5IBnOo6uiGXHR1nFd\nlZr5+0iECyRCxSEVrFGjVK5dQqQDqS6UTK796EnMbzBYv/6F81m+8t0cxY9fCcl+rvq/bTy8eW59\naTw4/8KAWz+9mPhbbsa6x6cnF6W/OJ5MzWmsmSbaGW84VFKEKhpJmG3uqBTCIEohVMUjXOZPkCWf\niCGog/sLYaKuSkPTQUI9tTieSm0kT6Khk6AYIij3QtXWPYTbk+SL/d8i+2iI0gu8BBEEEE8kCL77\nYd5+RYgbd+ls2TmzOcOPNjRVouOpRu758lks9y5mT08ttqcQBOJ6uv7oj/Zpq5kiHHl/oso6kqm4\nRFWblDE6FzeIrAFR8Xp4uxRTt8mVTAr9SbT6LmL1XUQjOWKRPNrKLZjJfkKhIlqoCM+vwPcgoTey\nYUMfXV3H6EY+s52f394xJ0jjgCrLvHvt8Vz4mjw9tk6+ZJIZRBcwVo+maauZjgQxRAmFIfkkdavc\n2Gv07yiyR9SwqiQagyEI713U8meFdAJNt9FedQvaPeeLpEhbF53n8hEReHBV3EQPP/n5LtrSxy4k\n/barHmZpYi74MB6EMHlpw0q62pvJZGNkSxN7nE9bYapjQG2O1uNIZujNr8g+SIJRVSmn9fjB6O3D\nJMk/rFfR4M901a0W3VWywwkX4Oxn8NJRMkufILV/NW3mLuq6V1ByVOKZJgKzSHsmS1/fsato3bIr\nTcMpcylEY6G+XoKcRGzP2Tz79El09KVwPKXK5joeTFthUhF5c4cr1mBIR7wKM5CmuMhywJL6TlTZ\np60/SUWAirZWXieQhnJJSz6aIvgTDPVws06RfVKRPBHDwg8kDNWlsa6bsOyjWQZ89x10nHAHb/js\nc7znFT380zU7+NS7nuDptiTXvepcaiSJN74xzPe/f+wiaY9vLvD45rnF2rHwt+uW8YOPnETPnoXk\nLWMM2prhMW2FyWB40smEblc56irQFZeIaaFIPk2NHeiaQ0cmXrV1K0SMkuSjyT55Wyei28iyXzXd\njEELsCFdmHtNTQdRHI18ub191LCIt7SJSthIXlSuLt3JA5syPLBJJK9+6doeoIe37M7wx6tOPqaC\nNIfx4U0nraLupg/wzw3nsbcnSt4ScWRRxTx+TFthGq5fbVIvoR/CvpOKiIwESQKkgFAgoTgaq1ra\nONA3dJWqkrnQonisPvkpnnn6JAq2Xi1FFi0qHSRJJKwmNId4NEdWt3F9mUS4ACUTjtsmct5aD7Dy\nH4fvMn73pi5a337PkV+IORxVnHuGzncvv5j+P6yjYGtDuAmdURZoh8O0Faa4bhHTbLKuJogZZY+I\nbmOoLiVHI0BwayfCBSQpIGqWqInkMeq3srtxPWuKZ2E8f1L16ZItmZgNnUSLIVLhAkZLG/MPtFJy\ntKo3FQQSQSChhIpEZR8zXECet59Ee7MIKigerNoM81Psecl62tdvJpsf2SDIFOZ8lemK5ckGUnKC\nOxq+wcGb60gXwmSLYSxHxZ5A683BmLbClDKLRAybxZEujm89wOa2VvoLIZpTfZRsnWWNHeW2H4KB\nJxkqUptIc3v4r1x+3W/Z+YkIDe2LcDwFP5Bo8BXq3vkzSje+CVO3kHWb2mQ/kqdUueZsV8FxNSLL\nn4eDTVDfJYrq/viPYFig+PBP34WHL+Q7393AN74xR0oyU/Hf57yG15gXk+k/Mv73wZi29Uzf0EtV\nzRQu+0kRTWgmy1UJAglzkGaKmSVqojmMhi3saljPqdZZHNhyclUz5UomRmMH0UKYVLhA7RmP0vnI\nmUM1ExJBQFUzheMZzPn7RPNg3RYZDas2w7wUu8+9n7b1mznnnTuO3YWaw6SxMtVASkpy91lf52B3\nHb35CH35KJajkrNESLxnUGVtEFBtwzlSf6Zpq5kytkG2HJbMlk9uOJ+pVE6N75BA6vQ5UwpY0L2c\nncUQbYf4TPm9CyjoNv35CNEDrezrqR3eZ8rF6JU9Fqku+u5FZPORqs+kbFqNVNrGol1rWLQGIuGd\n5AvDP5CiIYVccc7Um47Y0tcJdHJR5+v44+UfxvvDm3B9GQhje86kTL1pmwHRP9x7tlklbKygNx8V\nzDwBEEiUpABbc9jc1kJvPjpk6yuE6c7G2N7RyG33nkd7f5K8ZVRJT2xXI1MM47gKlquScTTa+1Ic\nTCfIlUzS+QiYJdi+DA60QlsLW/+0fNj5n39iHe2/OH+Kr8ocphr3P2rzT7++HX3Fw4Q0B0UeePhp\nY7Q4PRTTVjNZgM3h4fG0rR+2zmR7KkHJRJF92jsaURVvSKbvcOtM6WJ4yDqTM6jYL1cSGrErGyMV\nLhAxLPKWQa5kora1iHUmT4HNq0Dez9kntvPuSxv552/v4JPvSPF0e5LrX3UORo/Mhz4U4Qc/mKPW\nms741VOb+fRV3+OHdz/Av7V+CsdTsF2VsG6TLo5fRKatz/Q+AmREOHu0rhWHdpRQZFG+lZhABoQs\n+aQiwy9sSpJPfSxb5fWOhwrURnPEF+xF+9y38f62jvSSJ6g5sJr9+i7qe5dTsjUS2SbysQMs/Mb/\n0tNz7DIgTlsZ5iWnRLnmV53HbA4zAY2NEn4mwrZXXc+zT5/Egd4aHE8hXc4Yn9E+UzdUW8nsH23H\nQ3sdeTIxIF9Ux52b5wcy/YUQUbOEUkkXqgwfyNiuSsESlF6+Lwui/EIYNpyIsvEMajatgVQf8/zj\nIBfFKOfmSVqIhmgUzyvS3394hsULgRWLE8SJAHPCNBo6OgJq9IDcwgc5rvUA7q2vpDOdIKRb404p\nmrY+05EgC3QA2UCm1wqRc3QKoxBhgCCPTBciw656ix6natlBhXAijVbXjXPrK8l3NFLcPw9ft6G9\nGToaRfQvH0FN1/L+Vy1l5crJcCBNDX75xbWCIXYOY6JIib93bKG+pY14PFOlIRgvpq0w5RmxQdu4\n0Q/kgJKnknN0+i2Dkjd6lVTJ0ckUTQrD9C4t2TpRwyKc7MfpqifbVU8uHyWbj+A8v4JSf5JSMYRT\nDMHyrcgK9BTbWbs2RX390e7IOwIebubtFzWycvExOv4Mguf7/PzRzdz1pyi1uk3ELBE3S9WgRHiY\n/M3BmLZmnseIrUPHjQAhUAqiNsr2FWxboUIBaSouMW1onY8kiTQSx1Mp2gbJcB5kmbylEzEskpE8\nnurSebCJbDFEgGgkTG8tUaNEMlxAkiD18Fr0aI7/bPkUwWmP8/tfHTjCs5k4Muk0fO/L/OKuIlt2\nzdUzjQXbDWg46SAXvPtBqL2FxC/exn03XVFNV9OGKc8ZjGmrmUBE86YiPNLD8Fqu5Kl0lcLVLePo\nWJ5c3Txfor8QwXZFdCek22iqS+/+eaQLYdLFkBCkMnKWSa7CpuqqYjNLfOC7T7Ov0+Kcc144c+tz\n/xwj9K0vQ3+Sq966jLXHj95Ccg4Cd90l8fKv7ST9y9diXChTG82RDI8v637aaqa+8l8PpqSnbQ9j\nM7hanjqEfUaTvYGCQFtHU102H2glXQwNWegVfwUppV+mhJIVD2JZWLWZN5zQye+eg+s+fSLHP3D0\niSDXnqZQ07ES32kERRGtabJRhDc5h9Fw4XkncsPH3ws/qKf3WynRLG4MjVTBtNVMlcKFzKh7TQxp\nhC82Xji+QtHV6CmZZCyDg/1Jtnc00p2NUXIGFnptVxM1MIEQOrXpIMqaJ0X17XPHc1H+H3n4Pe9n\nSd86PvOZo9/Z/MTmWj615nx0KyaCD/VdcBgn+hyGw5/v2soJb/kyvX02+WKouqCfCBXQZA9jlIXc\naauZBuMAU9PQLEBovIoPNV54gUze1ZGlAC8Tr7bLzFsD+0R0C9dTaIhn0DQHd/syweiq28j5CMv7\nUmzbcj/mjn287bx5/H1Hgf37e4/wjAaQjEvkCgHOb94IyTr48QkDjK7PHc8fP3keTR/485Qdb7Yi\nnc5x9dnnkK/bTWudhxHPoOybz97OBmQJ5FEcj2m7aHscAfMHvVfD8DVOk8V4W20eiphmEVI9wrpV\nLTocjESoQG0sS8SwiJY7nUfNEmaoiFTXDQ2dsOZJrs+keP/7rzvi8wCYV6/z488vYf1DDl9c/lZw\nNJGdUeEaT/bzZeUXbOl5lBtumjpa5tmO33/+FC6rP4fee8/jvg1n0d6fImtrfMbTh120nbZmnsWP\nhvyfA6Zy2bOXAVNyIsg6BnlHxXJVvGGon/KWQcnWKTkaPXmxbmWV66/wZW59fgev/9aDUyZIN/73\nfE5YanJRzal88aUXws4l8OwJ4GrglYMgJZMrT76I77x17ZQc88WC//hhJ0Rz1Lz6z+UHo405SvOz\naStMHTxBetD/NmNkQkwC/cBk2BFsX8HzFfoLh+s215fpL4SxHA3XK+8jBUjv/Bks2s3LLnXoKwyN\nLW74+tk899xzE5rDR69oJL1hFa//5Lnc9JkzhW/04Nn4fSnyhTD5kkG+ZFAsmUJDXfBq5r/l/kmc\n7YsPP7zs5aSv/Ffu+8BbRdvTHUsB0RtYG6bzSQXT1mcKODwsHgC7EUT+U9VephfxRJmID+X4CgVH\nJay59OYiojSjepFFte7g1yVbJ/rTd6Gm+jAaOlm9MMFdTwp/aeHC+dTXRondcC1fuuIUCjG4696D\ngMf+TJb9PUUUSeIz730D0VqVP/3mDqjvZvkZlxJ/5mz4XT+RRBr/mRMp9NYMCdWbmo2KhJ1OoD/5\nZTI/voIbn3qeN33tySO/cLMYoXVPEd92GX07lrK/ZBJK9lezX0bDtBWmkeAjUoXqEaQrU4FuJt/4\nLECiaOvVRNgKbFdFVcRCqe0pFAthYoYFz6/g1OZNwC6ueusyLn7ZhSztXQA9NVy5JgLnFvnPJXGI\n9nPVA3dy9U3PEjZlvnS+BJkIn33XB0RP29TTcOt8aFsB+QilYoiCZVAsZ27oqkvJ0TECB02VxRP2\n9I0Qazuia/WigK9AbQ+FzavoLYTpvfc8MuOgSJ5xwgTC5OtgarutV0zK8QpUwVPRFQ9VDrBdFdsV\nTaKVcu8mUephVbsoAKIJtC/zyzu6ePDKV3LWmTJYPfDESuitEY2gO0rlbuuWCK2DiMjFM3DHRaJ8\n/sGzobED67njyXc24La1HNZt3fEU0Q7UDNBcFX3hHtZd82t61Dm2pDFx/zlQ24zvyzhj5HQOxjQW\nJpsdOJyCNqxj55a3/QiSytGLLMZGJfVIZXwmnz8oWz1Awg9EybsEZZNPNLs3NYd4qEgkVBSFhWdt\n4G8XroQn18Ct80AKCLrqyWdj0J/E0BxUxUMCrjrhdVz1+uMhkAh+dwH01MIHr0V65Cyc2y8m01NL\nbz6C4ymUnIHcO1X2MMv1Wf2FCJ4vY2xZyUP//hpoaaNw4qMsO6uL9o7pF8k91tAUCc03wNaR9F4M\nwyBnGUjjyMWZtgEIm+twGbuXkY3wo4arzJ0MuoHJBI/zljnkcsdDRZpre6hrPUCsvgu59QC0tMHT\nJ4mufic/hdPeTL69mZ50gr58hHQhXOZsQ0ThluyEnlqCrnos2ac3F6X4/Q/jruvCSfaTLZmHCRKA\n6yvkLLNq5zueQqE/KSJ9j57Bzz52Oueuqp3U9ZnNMAydj7/lYqSzN/Ab8wa+432FhSc8y4KFe2iI\nj50+MI01k8BextdhvQ+hqXRE54sjwXhSjwDyjkbCGEggzVsGeriAqniEdJuWhk68eAY3FyXf0UjE\nU8jtWoz++GmYqzbTm07Qm49gl00JTfFQFJ+40YcULsC++dg7l+A7Gu17FpIrmYTzEYyvXYalOeTK\nwlSwBoQpPGg+JUfHDxwUSaXkaMS3rISzNvDh/7iYHV/fiXh0zKECSZJ4ZE+ar9+wDdhG8IfXwKZt\nxGp6iRgWvRtPpThKO85pL0y9jE+YQGSeSQgt1cqRnVx/ebz6UcaxfBWhGwVsV0OWfRKhAo2JNCzf\nirNrMR17F2C5KsUdS/F9mZBus6Kzgd5clLytM9hAzRRC1Dd2QMnEeeIUMrko+3tqy1pGwnZVsj21\nQ6KdwSCTM1MceB0zS7iegqd6wvY/8RlYvYl/+dbvuebXO4/g6sxOlEoW9933UPX/S79+N3+9Kgeb\nV1Hf2cDxrQd4YOvwnB8wA4RpoggQybF7ESfXVH5fY+I+lQccBBoZORTv+hLqoLUHTfGYX9tD8vTH\nCNqbyRxopWDrZEtmNWTe15dizwPnDBlHVXxUxUUKF3B7a1Dm78PubKAvF8VyVdyyOef5ItxuuWrV\nvFNlwWMhxhkYM1MMEzOLlByVllSBdPQAH/ifh7nx2o/y5Mb/o6MzTY+V5WD/0EjkixUnrGqif3+B\nA9kMndufoP7WH8EOC9qbcfuTY3pN01qYHG5G5RX0oUyqHWclQAEifQhEcGGifZ+6EG1qQhx+wfot\nk7rQgJdlORqbD7Sy1FVpuvAu/O3LyJZMssUQIOF6MtmSOSSAARAxSphAfyHMnu3LmO8pBM3tZHYt\nJlcK4flCKxVtvRzaGHSe/gBXQcQoDWlcnbMM/ECiM50gedcrWOI9zTM/f467XvNOiEt8o3s9n/7v\n2yd4RWYnPvquczjj0WX8autjhDb+O8Fjb8bPRVFOeYKip9CRHt2BmNbCZPNjQnyfrkkK02BUUko1\nxEmPRtJyKHxE6LwANHCohjv8eWW5GkVbh84GSrZOrmQCEpmiWWZJOjzuk7eMas1UW18KVXMo7F5E\nuhgiCAS982Ae7JEweBxN8QkCmaKt01cIAw28kX8jvrENogloykDnkbaUmx343vc+w6rWf+D0RzOc\nfkmK0t8j9OybT8EySD1zIrGWNuq76tnR0TjiGNNamAYjYGr62zrlbbDHsJCBsOZox3AQGewGosZK\nAnxkMrZOTLOrRCyG6gg+9JOepu/+c/HLKUajNxqWyutVKmkY8SkojXkRBJ2ZU1RJRXKiWXUg43oK\nfYUwNZFG4vkoPnnkfBa6LG677TYuueSSsQae1Vhr/oXTbl1CMTuf9nvPE75pudlZthhi5dkPsu1g\nU5X0dDjMCGHKIRZpm8bacZLYU/4bQZhzMHpGuYUIUIQQJmPJU9FlD1MVhWQtqT5qa3t45gcfItzQ\nybaDTeUf58gqbU3NRlMOL+bXR2gt2pePUlvusp63TBJhUdMkKx6S5sCKDCxKvugF6biWCJ/7Tgf/\n9rI/sC70ftyeWvoL4WpqVsEyuP/2i+nLR8jNZGEq8i+E+Q5pRmp+NnXIM1A8GC//TTF8o+rKvjFE\nKL7kqRiK6MruBxKPb1lJtmSS3rNwSL7ckaDk6JSGSZ03yzwWIc1BPiQRs2hrQ0pFZCnASKS5avsv\n+NCptfzx5j9NydxmMt598il89tKTufYPXawO6SLKahl4vkTJ0apa6tD1vEMxbRdtK7D5LiBu3ImR\n1R4ZMuXtALCPgTL6Q5FFRPzSvkKvZbK5o5GNuxexu7uOg+nEmIKUd1R6SuaYW3YYtqQKhJDppIsh\n+vPhIetOBVuvVgUDaDW96Kdu5Prdd5F6xV7WXXApIMzH525ZzNtPXzmeyzNr8NOPnCEo2u4/l/cl\n3kh3e3N53U8iUwxVr2vJ0bE9mdIoPZumvWYajGNB41gR4L7yNh/xBFIO2acH6AlkmmyTdJdJUrfQ\npJG5A3osEZQYL4qeTLEoBKrWKCINQ6xZCWwUHR1ZFtTPiixMPFkqEgQSqmUgtTfTGk5hHjD5r/rF\n/NcTJ7HoJftZdf/7WGrexb1/6OC8y0Z6fMwO1NXChh+czLKFPvS+lkJPit58hHyZcLI3FyFAomBr\nVRL/AOmwSOpgTNtK28H/R/gzGq8C4NRjMqOh0BjIsogP83kl/H40qSc12cNUXEzFGzUoETOLVZ+q\nPp5mzclPYeg2oQV7xW0RKopeVPmIqMo9y2PVl7/AuRcX2LJlAfffv+konsWxwx+/38xf/2Dy/ZM/\nCO3NpA820VYuYSlYOh3pBF4gkS+Zgss+gJyjUfS0EemRp72ZB2DxjerrPaPs90LBQSTidCMCI+lD\nPi8hAhQ9HD0+IMdXyDoGmTH6ruZKJtmiiedLZAphnn/ueHZtWcmBTavJtjfDqRuxc1FKXfXY2RiE\ne7jmPSdw3asv5WfX+aw9bexw/EzE166x6ErbvO6vP+YPLd8junQHzXXdQzpf+L6MPcisK3qjV9HN\nKDMPDr9xjzUqgYheYAFDzb9iecsgsiiOxsW2fJV+C5LG8CSTARK2p2IXFBTZpyOdIG8ZFGyd3vZm\nmtpaCBwNAgnFMkj8RueS+jroKrBkawutbpGhCwmzAw8+P0Bmc9qaVVx20YMklu6g5YlTSD96xqTG\nnBGaKSCNX85lcBFZ4tMNAUJrljg8UBIgghTtiLD6VPfEsH2VzmKYkjuaFpFwPAXL1ShYBulCmO5M\nnN1tLXSmE/QXwtiOhlUyCfqTZQJNly9dcTr3f/P0KZ7xscGppw7PwHjlLzaz8VkL6bjtpGSfVCSP\nesgSRKUDxmiYEcLk8QQ2vzzW0xgX2hD9JoYj8fIQqUl9HB0Nm3EMCs7I+i9TDGE5KkVHLzfDlinY\nepX0pWjrov1OJA+tB3hs4Z+47P9u5txPPXYUZvvC4pWrFvOqCxeNvEMxRPC7Kyh215WTlSdeiDMj\nhOlQpJlacsqpRsVnGqlAvIjwpTrL21SG/HOuRn5EgZKwy40LMuXVfc8XDbRtT5iB5rLtSKc8QfvJ\nt/H693ewZcvM5yh/yYL5/OjiN3DZJceNvFNLO6x5EsmX0RWP+niGRLiAMQZZ/2DMIGEqEpSp/D1g\nOy/sutNkUEJ4G2mG50y3y9tBhOD55e3I4qsSeVen6CoMF6i1XY2So5bZlYZmZOQsA6e7Dl56H/ae\nJnZ3DP907vvW2whr09vdNjQJVYHgR+/ivs+8ksbsMtZsWMzOX5xFIqqglqefiCoYmsx5/3knUiZO\nNNXHccc/xwlnPMrJC/Yij5MaGWaQMJW4Gp+hYdqpqq492uhBaNLRaMV8hEC1lfc70nY6WWfk9jmu\nJwQtCEQWewUhzYFoDu45n/C+lZy+pGbY7yd7l3DHO9/K4uRU0oJOLT7x6qV84aPr+M3G7fj3n4vb\nXUewdTmLF0H/n17KpZfIvP6EVfT/7NX85ENn8vS1a+Gl98Hah2HdQ3TvWcie7omx3E/vx8sY2MvU\nkPq/EOhBPLnqGHv9qY+h9GPD39JjI+sY+IFNRBuqwy1XI6TbSIFc5dI2NYdEuIDaVQ/PnEj9x77D\n+6Maj/2/YQbuqufsZpnz1iT42EkJkoUW/rrreX5719TRPR8Jfvzh01ndex6nL1nKzx75A8W+FKWS\niVoIk/j95RDL8s8rDM5feR7cE+bNC/bC+qWCVqC5HfYsJBYqkorkMVSX7nxkXMedUcKU42ISh7ST\n3Fwwn+MAABbsSURBVA4sOzbTmTB8RACiBxFGHy3/wWdAk5X+//bOPEqyqr7jn/terV1d1et0zwwz\n07OzDDAMIosiKlHZhAjISRSIR5RFJBoP5+REs7gcMEdPYjTHTFSM8YgJGiK4ISoGiDFBEGaYYZBh\nmJmevffat1dvufnjVnVVL9W1THVPV1Ofc+pMdy2vXk3X7917f/f7+/5Qotp6ylBSlhsBtE0LqMJ7\nZ/NmmWds24l2xl5EKA4vvAHGe8F9CIB9X76SwKogX/yfEd558AwY64NIF19afw8hv4HeLhkfh4d5\npo4zPHm6gi4+d9sAf/qVAwD85ff2cM+qDVxgvImrUvdyItKFRNDuzeLZtxn/O5/gHStWQzRM+qmt\nMLgOn5BoQkKyHQbX4QcGlo1xZKKHwUjxcjZX4qipgkkyNuO+HGoTtVGmlPNNoRJ4ECVNqua8HaaK\ncPuZKWkqjyCZbzrgK1GXR9KBvKJc+e7YQyv4v5H9HBExbrk0B11+7rj969zxrgfh0TeCFebLb83B\nB1/C/OR1ZHIe2txdaNE0nPcinLsbfgiaJrAfuxlW7OL0619h32DjV7Zbtmikx31cew0MvhwgejTI\nPee9maE7I3zhgQiXbvPzqRu7yPzMTXiiZ3JLwLR08OSwnrsQ4WhEj6whnm7D5zbpDqToHO/F6h3n\nxPHTGI52YjmqFqyAw9zr9KYKJgCD7Xi5e/L3LOpqv/KUnVH9DKOKDWs10xxBqecL6YNq2pjFTS8O\nOdpm8co2LReHxpZx/rK3cNmGlfB2E8Rx+MYLsHyLclMaWg6vnElmeDmjkS50zcFvuejqmUCsGOKN\nx8/n3j97CS3igfhb4MWVkDxGyJviotUreWL/IT5+zQa+8tiBGj8t3HZbgG99K8XW1d2kDJPffXsz\nQ7/cyPYDv+CS/vV88sw74OVx7r/AhXtoB+vPBfS1WLqtDEBzHixbxzBdyq76eNFtUQjV+NvjsvC0\njfP0CyNstHXGEkESGf9k87qCFdxcCfOmC6Ysn50STKD2dLoofrmaBRMVGG5qq/yFYiYQ1AUlQOWu\nHknTjZRMrqGSWS/dgRSefIB5Q3Hw5OAnaei+VG3c/no9xEJE4iFylotwsp2s5cKt2xhuE188RGBo\nBW+7At524Sb4fgoebYfu1WDrPPb5rax95Sr+OP0dPn/eTbz78p/CnnPAY0BnlCePHOBvH5opEnvi\nl3fCf+2HRJBLLvbxPktn1ZkJjIFVeP5zNesdwZnBl/EOnkXG6kMf78VjePnMxw/ybPgoOIdJhC8h\nnGxHSjEpAo5npqr4Q/4MOcuFAPoyQZZbG7Dye26JrI9kzjNpmVbJl74phK5THqOPEEOIWRKRi0EE\nWy86lddR1VDqcFvuWEG3gU+3cek2yztiDPSOs3XTa8jLfk3upXNwxzoQug1rDyHO3U3qwVuJxjqY\nyJu7gCrZ8LpMetuTrNi6C3n3dthzNvzwPaTGe5WZ5oohuOlheOB2hMuCtrQS03bEYNVxRm/cTv9A\n+X2sq69ew4/vfi/aU8sR8RAkgmrbIBUAlwWBFJnxXuJJldLpOO04vrY0XPsTePR6duw9g+j4MnKW\nPmdhZqE90EDvGBve8AJIwY9+fB0nIl2kLRdJy0NpR+JvlhG6Nl0wAbi5lQDfmXH/RmZXcTcLfua2\nFquFIFOngtMJuQ18LpuQP80lG/fTM3AYLeNn8Ohq+kJxklkfXZ1Rem56GH5xBbtf20Qq5yGbV0m0\n5d2Q/G6TdVc9Ds9fgOgdJzfSP6W0O+jL4nWbeN2m8gLsDvOq6/ccuHiIa255pKrP8uoX/47Nr4Zg\noodsxo9hurEdpd5IZn1T7ABO/8MfETuwgcGd24ikAli2TizdNqvxvjuvuPe6TNq8Bss7o6zrH+HQ\nSD/PvLaJeM5L0vQwSqmhW/lgarpp3lzsR13dmyVdPp0Mav3n5uQ/Q0Gt3s7sjkxx04stc+ial52H\n1hIYXk5nV4SJiR5Gop1omkNCCvw7tzEx3ks03Zb3T1ekJ0u6fSQfvR6/J4erZF/Glfdhtx1Npdx1\nW33Z+kd48PnfcP9Xd1X/Yd61D8IDEA9hJtvJmqrtaSbfB8uRYjKA9z93IeMHNhBOtk9WyNqONuXc\nCxQqlHOWjgR625PsOTzAwdE+YoaXlOWZVWtZjqYcmSBEgO/i5toZj2iogKp3b2axEEBl7RqBlr/N\n9NCQ6ELS6c3i0Rw6A2pVoOWLGoWQeP0ZzGlX/+noeS2bEJKgX203CyRtnhyufMvSzkAK711f4/m9\nKa68/zdMJKqXKa0b0Dj4xRvg2CqiP7uasViHcrLNeUgZ3nxTbnV+sbQfJ79GSma9GFblfKlAIoQk\n4DWIZX1E89bSJoIxZgqTy41MTaOAmEochwOT8qJSHJQye/FdImojhaqXasTnKKR0j+WPaU0eV2BL\njYlsGzlbZyzRzkSynbFEiLFEiNF4B0dHljMc65xsEGDaOo7UptxM28V4Mkgm5yGWbiOZVV59harV\nSV7bxNmrOnnfTbV97QYPO6y/6yk4ugV/ezKfUBD5LJ0L29HI5NxMJNuxHF11bUy2zxlIjgTbEdiO\nUIFj6xyI9DCeCWA5OhaCEWYG0lyG0k07zcvwCdzcimCmAf0QavE9X25GC0Uc9TkaabGfRaXkQ6g/\nfiEDOGH40YVDh8eY4lBbQGn5lBIg4M2iCTnDFSlp+JBk8bkhk/Pg9+SwbB3/iiFc7Unou5a//pd7\n+epTdYil2gRcHsH7zAie0T7Cka7JcvKs6SadD1zDdJEs47uRtfTJsvOM5cKaxb8Q1P/RxCz3m0xd\nO02nSUemyiyVll4xmKb5aAxxlGwpVXKfLTViOS8xY+7q3ZThI2V4SWR8OHL6Y+pLbdou0oYXw3Kh\neXLoq45B3++55JowN15bh8dUyoaXwtCWpitQPOuU4ZkMJCDv3V5ESogZHmKGh7jpIZG/zRZIDmrk\niVBemDzXZaCpgynOmjkff2WBzmO+SaIUE40ugZeoL05p2teWGobjYjTjn9MRyZGqpDsyi24tkd/L\nsRxd+SgcWQOJIDwzSv++t/Djx2sv69jzFzfDwfVkn72I0WhRYGuWiHmTWS+lS5mo4WUs68dwXPkm\nC3NvPAyhgmU2F0KHyhe1pg4mSGNTvj9roeB6sZdqVINEZfpSlZ5Y57GPodaaxS+SIGO7Gc20kbM1\nrFk6yxeeF0m1lXSeV+sZp+T3nOnG2LcZObiON687nT9/71tqPsezv/JNeOPvMB1NaeiAtOHBdpQC\nPm148mskQcbS1Xk7OpUCqLDGHmbu9emhCo9DE6+ZCqT5MEHKV4JGUf+da2mMvfKpZgS1hjrZHlSz\nMYaSNnUzVfcXzfnQhINPt/G7LPRpyVaVOfPR7suiaxLL0TEs16T5peVoZDN+PC6LQ74TPH3U5K47\n4Wtfr3xO11yhc3H3ZjpPS8HAYYIb96MFE8gTKxmLq11FibI3A+VDmLKqn0ZGqaxsqLYQtclHJrB5\nBYPtcz4nAry6MKezIISZP2MZAxVU07NWjtRIW26ihpdw1jvDJthydOKZmVvEGhKfy1KSpUCKnkue\nZPOG33Hb2dWZllzRcwF/9RmTewIfhB3nQ2eUQHcYd0mqvvC+SdNNqopUOKggGqFyICWYPRkxG026\nzzQVL5/AxxcQFTTYQWCOwuWmow+lcJgvM642lOZxrhG925uZlv2TdAdSBAqKgr5Reroiqsn1O34F\n8ZCSFKXbCPuPs/HTD6mXaQ6RhJqQB4NtxEfeDDuS8NuLVf/fjB9WKVOd9CtnsvvIGsbiIVI5ZWec\ntV0kKtgXQ1GBX83FqLCmnF6E+uRSVkAY/ANu3oOLy+Z8nolaRzWbILYchQXxCubnM6VRU5cOygdU\n2PATchvomoNbU71KYhk/bt1mRWeU7vUHVYlM3ygc2KC6xe/fCC6L7rVewvfdBW4Tzt+BeNOzAHzs\nYzfAP/cqdXekCyPcjbR19HgI99ZdtI0tQzu6GsNyEUu3IaGqQMpQ/SgDKohqqeZeEsFULVmUHdd6\n5rcBwEIzitL0VTajqp0k6mruorzuMW560YWDW3MIeXLYjs5Esp0XBtcR8+RwZfx0nVhJb+844oy9\nWIkgNuAVEk6shNOOq1ue++//Lvf940chEcQaW0Y82a56XOU8eI6sYeWyMWxHrdMcqVUMpFz+c9Tq\nN1SrQfSSCaYU19NRxXUnjUqZb533M1o4bNT8/zTm5yJRWFcIytdO2VLDtjVyGY1efxbL0UkZXvb+\n/iyWheKYhpeetz9F9FfvYCLSRcCTw51sp7c7DL4s515WXOY/fN9m2HAADg9gxzpIjPYRSQWQ+TT8\nwSNrOB7unmzWbMxhpl/Igta6mDla4/NhCSQgCkjC2Oyu6rk2sIu5d7ObjdL09nxtBRS6J86Fg0bE\n8OJIiKYDZC0XE4kgxyZ62PNvN7Pv6GpShpdIug3T0VTT6i0vs/uJT7P3wQs4d3Una1JnwM+vhLWH\nyGZ9qrtHOkAsHSCcbGco2pm3LBOEs7OrHWzU3/c4tQWSjdpvqqdJxJJIQBTx0VnDYN6G6hq4VNZQ\nBbyoad98TWU7qFzd69EsQp4cupC0+7J4XDZ+j4Fbtwn6lI6gsz3J6vUHaT/tOFqsAza9BsuHIZBC\nPnwTOX+G4XiIE6+eTjrnxbI1koZ3choJEM76ZqgZbNQUrR6HpwTMYo4wlSWdgCiSI8On8fPZqp6d\nRikL3CytLJ9Bcdo3H1OPOJWDKee4iBqCbp9BznLhcdlkcl6ySBxHw+u2mIiHYP9Gesd7Cfmy+N0m\n39+7i82+Ac4zvIRH+okngqrMwhGTjbWnV8tOZ5z6Rhabk7OPWzLTPIWDwecw+FrVr8iirkZ7aX6l\neSkmxV37Rn8uicqKVTquJZU6wbDcGHlTTInAlgIplX+faetE4iGiyXYyJ1byR5u3sS24gVS20Exb\nEPRnkRT7TxUkREnTPWVUkihNZj2BVPCKP5keYEssmBQ2e5AVZ/dTSaO+fEtBelTKIGraMnvX2/rJ\nUN6ptpSJvII7WVI2nsl5sR0Nme/ON1kFa7kg0gVSEGhP4nFZuLSpHrelppml2KgRqZ6mCDnqSzhM\nZ0kGU45/wmGk5tdFUMaWS40kc9fhnMxxK6WPpRST3TkKivLZ8Lgs3KE4dEbBdCPWHKHnomdZForj\nz5e9g2orCgLLKfqmOyhViFHHZzBpnN/7kgwmgBSX1/W6KEtHbV5KCnX1bXRQpSscUyLyglM13Utk\nvVMe9XlUTjUYiuMaOIz5yplEXt7C+N4z0Cd66L3qcTad8xJbb3gEv6eYf3WkmJzijVBfIIGaFjYq\nq7vEEhBFHA7hcAyNVTW/NgPsQHnx9bM0BLKgrsIm6o8eoHHGnRZqdCh3Zc7aLry2jVe38+sgFQy6\n5qBrDgGvgd4ZxRpezujhAUbiIfyeHDLrIzTSj5AC39gyVnSFiaX9mLZLKdNRo0o9U1iL+mYhS8qE\nshaSXE6IfXW/vlBg2OwVu9MJ5299NKbvbqFBdheVv1B2vqxcE3DWmiNKWeHPoPmyJAbXMRzrIJv3\nrRvK1y0FfVnO2XCAvt5x9g8vJ2PpRE0vYeqbnuWor+DSYO42sEs6mBxOYPAAXm6v+xgnUFOkDprX\n9agcY6h1Txe1u8pOx6AYoNXi0W36tryMvvIExq6tjCeCxDN+ktm8oUle2RBLtxFoTyLJ9+g1PVjU\nN7WzYIZ1VzUcQI3qc6W1lnQwQYoMH0FjFW6uqvsosfzNQ3P78k1Hor4caZRe8WQpKA5Oq/REIORP\nMxLpYsWaI7B8mPiTlzMc6WIsH1ClFbSdbWl2H1zPcCJELJ/EqLSxOhtHKTWTqZ7XqK7KeYkHE4CN\nzW5cXIk4ydXP/vy/Z7L0VBMHKRYGeqk/MyWZvZGC5Qg8mnKCBbUOPX3jfow9ZzPx03czkWzn0Ngy\nYpmZct2xZFB1ize9k5bStVBof1rrHtI4ta2rlpicqDwdmIgGXTs8qC/dMpqn+0YtBFGfrV50ikFZ\nyjJfGiHA7zFY0RFjVc8EK/tH2Hd4gLF4iNF4aNKeS0omC/0ylktlBaHmdVIYFUS1lPtHUEmo4TKP\nR5eWb17tJLmoYccqtM58rWFHXFwkUKLZWksQCtiU/9Lrmo3PZeH35OgMJtD6R5TvnenGsNxkLJ1w\n1kvE8JG23KQtt1JNoJIc1QZS4TNEqS2QYqjRqFwgzcXrJphsdpDkDxp6zCwqhT5IfXPxxUwOFUwF\nQ5palQU26gtpl7zWQSCEpK8zynlveIGubTsZ2b+RYEcMKQU5WyNherGkPkUm5KCU3NWkwG2KNtPV\nJhkKJp07UImGetUir5tpHoDGFgL8Bzpnzcfhm9rnvBJuoGCwVU0/qFK8FNPm/YEkF523k1i4m6ND\nK3DpNqajEU4FiOWmClhtVMYuSuVgNlEXt1pdcE3USFSLp0a5ad7rKpgAdM4nwKNoFTz36qUblUav\np2Vms9COCpBaHJK8qLXUMuHQF0ji1hzVxcL0YDoa9rQyCokKjGrS3wU5UK0lF4dRo1etfoStYCoh\nyIvo81hrWzDKP3fe3uHUIyiuEQZqeJ0GhJCTo5uclmFNUrTWmms0ylLM6tU6LZtApfDr1eO1gmka\nQV5C5+z5fhuCqH0XH6+PBWrpHpOSpJ48OYpTtwnqK/rLoYJnbwPOpxVMMwgS4CHcXDP/b4XS+HlZ\numuq2ehgpg2ZTvk1V7nCvGrWTOWQqBEsRuPccBsSTEKI04F/RXW8/JSU8ktlnvdd4ALUBeE54E4p\npS2EeCvwI1SSCOARKeV9s7x+QSLcwwdo49sL8VaAGpkKW5KbWDoC2lrQKF9OX8+IU44wRTV7soHH\nhcYFUy9qivweIDJHMF0ppfx5/ud/B/5bSvn1fDDdK6W8rsL7LNhw2cZ3cHPLSasj6iEIbMj//HqY\nAs4npRXF5d3nG0O5YKpJEiClHAfGhRDvrvC8n5f8+hxMqYNYVBfkNH9CGzoe3r/g752g+IcvePnN\nh/fdUieKGn3mo/VOLczrBVEI4QJuBUqD6xIhxItCiMeEEPOz4VMjaW4+1afAQVTZ/FEaU0K91MlS\n/L86yKkPJJh/oet21BTvf/O/vwCskVKmhRBXAT8ENs/zOVRFihsJ8INTeg5ZiuuG0s4LW07BuSxG\nwiglBKiExMmYn9SCydNYPF3xeRWDSQhxN3A7akp6tZSyKtmSEOJvgF4p5R2F+6SUyZKfHxdCbBdC\ndEspw9Uccz4xeYTo4pqBTlK7m0WLU0HFYJJSbodZe7aU/eYJIT4MXAFTjRiEEP1SypH8zxeiEiAz\nAmm2xV2LFoudWrN5/cDzqESUg1r3nSWlTAohHgM+JKUcFkIUbNuSqBHtESnlfUKIjwIfodiQ4hNS\nymcb+YFatDhVLMpN2xYtmpHW9kaLFg3ilAaTEOL9Qohd+dtvhBDnlHneWiHEb4UQ+4QQD+VT7i1a\nLCpO9ch0ELhMSrkVuA94oMzzvgD8vZRyM2qP7kMLdH4tWlTNolkzCSE6gZeklKtneWwM6JdSOkKI\ni4HPSCmvXPCTbNFiDk71yFTKh4HHp98phOhB6QALwuFjKLPVFi0WFYti7SGEeDvwQeDSU30uLVrU\ny4KPTEKIu4UQO4UQO4QQy4UQ5wLfAK6TUs4wxJFSTgCdQojCua5CFUq2aLGoWPBgklJul1Juk1Ke\njxJK/wC4VUp5YI6XPQXclP/5A6iaqBYtFhWnNAEhhHgAuAHlbSEAU0p5Yf6xUkXFOuB7KJ+SncAt\nUsqF0jm2aFEViyab16JFs7OYsnktWjQ1rWBq0aJBtIKpRYsG0QqmFi0aRCuYWrRoEK1gatGiQbSC\nqUWLBvH/BRQ0r7xXqxYAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x8f68ac8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_set = mandelbrot_set2\n",
"mandelbrot_image(-2.0,0.5,-1.25,1.25,cmap='gnuplot2')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Numexpr\n",
"\n",
"We can avoid temporary array creation with NumExpr."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numexpr as ne\n",
"\n",
"def mandelbrot_numpy(c, maxiter):\n",
" output = np.zeros(c.shape)\n",
" z = np.zeros(c.shape, np.complex64)\n",
" for it in range(maxiter):\n",
" notdone = ne.evaluate('z.real*z.real + z.imag*z.imag < 4.0')\n",
" output[notdone] = it\n",
" z = ne.evaluate('where(notdone,z**2+c,z)')\n",
" output[output == maxiter-1] = 0 \n",
" return output"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is faster."
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 749 ms per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set2(-2.0,0.5,-1.25,1.25,1000,1000,80)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 20.7 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set2(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Check."
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nFg3i/wHWvDSwPpmEiwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xa372668>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_image(-2.0,0.5,-1.25,1.25,cmap='gnuplot2')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Numba vectorize\n",
"\n",
"An alternative to NumExpr."
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from numba import vectorize, complex64, boolean, jit\n",
"\n",
"@vectorize([boolean(complex64)])\n",
"def f(z):\n",
" return (z.real*z.real + z.imag*z.imag) < 4.0\n",
"\n",
"@vectorize([complex64(complex64, complex64)])\n",
"def g(z,c):\n",
" return z*z + c \n",
"\n",
"@jit\n",
"def mandelbrot_numpy(c, maxiter):\n",
" output = np.zeros(c.shape, np.int)\n",
" z = np.empty(c.shape, np.complex64)\n",
" for it in range(maxiter):\n",
" notdone = f(z)\n",
" output[notdone] = it\n",
" z[notdone] = g(z[notdone],c[notdone]) \n",
" output[output == maxiter-1] = 0\n",
" return output\n",
"\n",
"\n",
"def mandelbrot_set5(xmin,xmax,ymin,ymax,width,height,maxiter):\n",
" r1 = np.linspace(xmin, xmax, width, dtype=np.float32)\n",
" r2 = np.linspace(ymin, ymax, height, dtype=np.float32)\n",
" c = np.empty((r1.shape[0], r2.shape[0]), dtype=np.complex64)\n",
" c[:,:] = r1 + r2[:,None]*1j\n",
" n3 = mandelbrot_numpy(c,maxiter)\n",
" return (r1,r2,n3.T) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Even faster!"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 629 ms per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set5(-2.0,0.5,-1.25,1.25,1000,1000,80)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 17.8 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set5(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Check."
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x8c303c8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_set = mandelbrot_set5\n",
"mandelbrot_image(-2.0,0.5,-1.25,1.25,cmap='gnuplot2')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Try parallelism"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from numba import vectorize, complex64, boolean\n",
"\n",
"@vectorize([boolean(complex64)], target='parallel')\n",
"def f(z):\n",
" return (z.real*z.real + z.imag*z.imag) < 4.0\n",
"\n",
"@vectorize([complex64(complex64, complex64)], target='parallel')\n",
"def g(z,c):\n",
" return z*z + c \n",
"\n",
"def mandelbrot_numpy(c, maxiter):\n",
" output = np.empty(c.shape, np.int)\n",
" z = np.zeros(c.shape, np.complex64)\n",
" for it in range(maxiter):\n",
" notdone = f(z)\n",
" output[notdone] = it\n",
" z[notdone] = g(z[notdone],c[notdone]) \n",
" return output"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Not paying off."
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 793 ms per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set2(-2.0,0.5,-1.25,1.25,1000,1000,80)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 27.3 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set2(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We should parallelize the top loop. We can do it via guvectorize."
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"## Numba Guvectorize\n",
"\n",
"Let's try guvectorize too. It amounts to reusing the sequential code."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import numpy as np\n",
"from numba import jit, vectorize, guvectorize, float64, complex64, int32, float32\n",
"\n",
"@jit(int32(complex64, int32))\n",
"def mandelbrot(c,maxiter):\n",
" nreal = 0\n",
" real = 0\n",
" imag = 0\n",
" for n in range(maxiter):\n",
" nreal = real*real - imag*imag + c.real\n",
" imag = 2* real*imag + c.imag\n",
" real = nreal;\n",
" if real * real + imag * imag > 4.0:\n",
" return n\n",
" return 0\n",
"\n",
"@guvectorize([(complex64[:], int32[:], int32[:])], '(n),()->(n)',target='parallel')\n",
"def mandelbrot_numpy(c, maxit, output):\n",
" maxiter = maxit[0]\n",
" for i in range(c.shape[0]):\n",
" output[i] = mandelbrot(c[i],maxiter)\n",
" \n",
"def mandelbrot_set2(xmin,xmax,ymin,ymax,width,height,maxiter):\n",
" r1 = np.linspace(xmin, xmax, width, dtype=np.float32)\n",
" r2 = np.linspace(ymin, ymax, height, dtype=np.float32)\n",
" c = r1 + r2[:,None]*1j\n",
" n3 = mandelbrot_numpy(c,maxiter)\n",
" return (r1,r2,n3.T) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Way faster than the sequential code compiled with Numba. "
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10 loops, best of 3: 43 ms per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set2(-2.0,0.5,-1.25,1.25,1000,1000,80)"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 1.02 s per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set2(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Check"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xa847a20>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_set = mandelbrot_set2\n",
"mandelbrot_image(-2.0,0.5,-1.25,1.25,cmap='gnuplot2')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's try Cuda target. Since there is a bug, we must pass the iteration max as an array too."
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import numpy as np\n",
"from numba import jit, vectorize, guvectorize, float64, complex64, int32, float32\n",
"\n",
"@jit(int32(complex64, int32))\n",
"def mandelbrot(c,maxiter):\n",
" creal = c.real\n",
" cimag = c.imag\n",
" real = creal\n",
" imag = cimag\n",
" for n in range(maxiter):\n",
" real2 = real*real\n",
" imag2 = imag*imag\n",
" if real2 + imag2 > 4.0:\n",
" return n\n",
" imag = 2* real*imag + cimag\n",
" real = real2 - imag2 + creal\n",
" \n",
" return 0\n",
"\n",
"@guvectorize([(complex64[:], int32[:], int32[:])], '(n),(n)->(n)', target='cuda')\n",
"def mandelbrot_numpy(c, maxit, output):\n",
" maxiter = maxit[0]\n",
" for i in range(c.shape[0]):\n",
" creal = c[i].real\n",
" cimag = c[i].imag\n",
" real = creal\n",
" imag = cimag\n",
" output[i] = 0\n",
" for n in range(maxiter):\n",
" real2 = real*real\n",
" imag2 = imag*imag\n",
" if real2 + imag2 > 4.0:\n",
" output[i] = n\n",
" break\n",
" imag = 2* real*imag + cimag\n",
" real = real2 - imag2 + creal\n",
" \n",
" \n",
"def mandelbrot_set2(xmin,xmax,ymin,ymax,width,height,maxiter):\n",
" r1 = np.linspace(xmin, xmax, width, dtype=np.float32)\n",
" r2 = np.linspace(ymin, ymax, height, dtype=np.float32)\n",
" c = r1 + r2[:,None]*1j\n",
" n3 = np.empty(c.shape, int)\n",
" maxit = np.ones(c.shape, int) * maxiter\n",
" n3 = mandelbrot_numpy(c,maxit)\n",
" return (r1,r2,n3.T) "
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"Slightly slower."
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10 loops, best of 3: 53.7 ms per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set2(-2.0,0.5,-1.25,1.25,1000,1000,80)"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 906 ms per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set2(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Check"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xac85fd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_set = mandelbrot_set2\n",
"mandelbrot_image(-2.0,0.5,-1.25,1.25,cmap='gnuplot2')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## TensorFlow\n",
"\n",
"Code from https://www.tensorflow.org/versions/master/tutorials/mandelbrot/index.html"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"Timings on my machine:\n",
"\n",
"5.29394221306\n",
"\n",
"34.6283330917"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## PyOpenCl\n",
"\n",
"We reuse the boilerplate code from PyOpenCl documentation as much as possible."
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from __future__ import absolute_import\n",
"from __future__ import print_function\n",
"\n",
"import pyopencl as cl"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%load_ext pyopencl.ipython_ext"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We create a context interactively in order to select which device to use."
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[<pyopencl.Device 'Intel(R) Core(TM) i7-2760QM CPU @ 2.40GHz' on 'Intel(R) OpenCL' at 0x407ca20>]\n"
]
}
],
"source": [
"ctx = cl.create_some_context(interactive=True)\n",
"devices = ctx.get_info(cl.context_info.DEVICES)\n",
"print(devices)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The code is moving the heavy duty piece to a piece of C code thta gets compiled and run on the selected device.\n",
"\n",
"Input and output for that code is handled in Python."
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def mandelbrot_gpu(q, maxiter):\n",
"\n",
" global ctx\n",
" \n",
" queue = cl.CommandQueue(ctx)\n",
" \n",
" output = np.empty(q.shape, dtype=np.uint16)\n",
"\n",
" prg = cl.Program(ctx, \"\"\"\n",
" #pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable\n",
" __kernel void mandelbrot(__global float2 *q,\n",
" __global ushort *output, ushort const maxiter)\n",
" {\n",
" int gid = get_global_id(0);\n",
" float nreal, real = 0;\n",
" float imag = 0;\n",
" output[gid] = 0;\n",
" for(int curiter = 0; curiter < maxiter; curiter++) {\n",
" nreal = real*real - imag*imag + q[gid].x;\n",
" imag = 2* real*imag + q[gid].y;\n",
" real = nreal;\n",
" if (real*real + imag*imag > 4.0f){\n",
" output[gid] = curiter;\n",
" break;\n",
" }\n",
" }\n",
" }\n",
" \"\"\").build()\n",
"\n",
" mf = cl.mem_flags\n",
" q_opencl = cl.Buffer(ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=q)\n",
" output_opencl = cl.Buffer(ctx, mf.WRITE_ONLY, output.nbytes)\n",
"\n",
"\n",
" prg.mandelbrot(queue, output.shape, None, q_opencl,\n",
" output_opencl, np.uint16(maxiter))\n",
"\n",
" cl.enqueue_copy(queue, output, output_opencl).wait()\n",
" \n",
" return output\n",
"\n",
"def mandelbrot_set3(xmin,xmax,ymin,ymax,width,height,maxiter):\n",
" r1 = np.linspace(xmin, xmax, width, dtype=np.float32)\n",
" r2 = np.linspace(ymin, ymax, height, dtype=np.float32)\n",
" c = r1 + r2[:,None]*1j\n",
" c = np.ravel(c)\n",
" n3 = mandelbrot_gpu(c,maxiter)\n",
" n3 = n3.reshape((width,height))\n",
" return (r1,r2,n3.T)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Following code is faster on gpu, above code is faster on cpu."
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def mandelbrot_gpu(q, maxiter):\n",
"\n",
" global ctx\n",
" \n",
" queue = cl.CommandQueue(ctx)\n",
" \n",
" output = np.empty(q.shape, dtype=np.uint16)\n",
"\n",
" prg = cl.Program(ctx, \"\"\"\n",
" #pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable\n",
" __kernel void mandelbrot(__global float2 *q,\n",
" __global ushort *output, ushort const maxiter)\n",
" {\n",
" int gid = get_global_id(0);\n",
" float real = q[gid].x;\n",
" float imag = q[gid].y;\n",
" output[gid] = 0;\n",
" for(int curiter = 0; curiter < maxiter; curiter++) {\n",
" float real2 = real*real, imag2 = imag*imag;\n",
" if (real*real + imag*imag > 4.0f){\n",
" output[gid] = curiter;\n",
" return;\n",
" }\n",
" imag = 2* real*imag + q[gid].y;\n",
" real = real2 - imag2 + q[gid].x;\n",
" \n",
" }\n",
" }\n",
" \"\"\").build()\n",
"\n",
" mf = cl.mem_flags\n",
" q_opencl = cl.Buffer(ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=q)\n",
" output_opencl = cl.Buffer(ctx, mf.WRITE_ONLY, output.nbytes)\n",
"\n",
"\n",
" prg.mandelbrot(queue, output.shape, None, q_opencl,\n",
" output_opencl, np.uint16(maxiter))\n",
"\n",
" cl.enqueue_copy(queue, output, output_opencl).wait()\n",
" \n",
" return output\n",
"\n",
"def mandelbrot_set3(xmin,xmax,ymin,ymax,width,height,maxiter):\n",
" r1 = np.linspace(xmin, xmax, width, dtype=np.float32)\n",
" r2 = np.linspace(ymin, ymax, height, dtype=np.float32)\n",
" c = r1 + r2[:,None]*1j\n",
" c = np.ravel(c)\n",
" n3 = mandelbrot_gpu(c,maxiter)\n",
" n3 = n3.reshape((width,height))\n",
" return (r1,r2,n3.T)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is way faster than the rest"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"Let's check it is correct"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\IBM_ADMIN\\Anaconda3\\lib\\site-packages\\pyopencl\\__init__.py:206: CompilerWarning: Non-empty compiler output encountered. Set the environment variable PYOPENCL_COMPILER_OUTPUT=1 to see more.\n",
" \"to see more.\", CompilerWarning)\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAANMAAADDCAYAAAAY0SRCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXecXGW9/9+nn+mzvaUnJEsCCb0LV5Eiohfscu3Xrvfa\nbrP8roritVwV27WAvaEoCogCggihhBYgIaSQXra36XP6749nZlu2zCYbsrvJ5/U6r0xmzpx5ztnz\nOc/3+ZbPVwqCgOM4juM4fMhHewDHcRxzBcfJdBzHMU04TqbjOI5pwnEyHcdxTBOOk+k4jmOaoB7t\nAYwFSZKOuxiPY0YjCAJp9HszkkwvNML8HJ03HdUxLAJ0IHRURzE7kQKyQM8L9HsDHMQjAKSZGGd6\nIWemMD9F481I41ygI4kosLj0+ri9fXgIShvAxiP8WwNIY85MxzSZdN5KmJ+8ED8FgASES6+Xlv5/\nrEECjHE+K07j7/QDvaXXuWk8LoxPpmPYzIuh8ZoX7NfqEDdRzQv2i0cfCQ6ecVUgNs7+/eO8nwL8\nKf52VWkLgC4gDeSneIyp4pidmWJsQOHkI/0zRIEmwOTYMOVahr3WmJ5zthky4Xo5tBnMBlzg+WkY\nz3EzbxhiPI3CmiN2fAlxE510xH5hZqBMlEVT/E6cYHB2CkYZu1nELAITz0ZFoKOC/cZCH9AGeFP8\nXhnHzbwSFE5FouqIHT+JMG+SR+wXjj6iCJM1MYXv6IibrU7yaQjn0KSAnK2TcTUcX8IvUTNa2gKE\nd84a53gmQyTuApwJ9h2N6tK2t/S97BTOYyIcUzOTzEoi/BaFVUfi8Mxj7q6JVBh8BI235hkPRum7\nKtAQynHuKU8z0FfN/o5GFMXD8WV6c1FSjj7iey6CIJWsmRzEbNXDkElYCRxgP0OzYSU4buYBKi8h\nyr3TftwkYq2gMDc9dPMR5plyCN9tYsjsrdGLmKrL0sYOzjj9SbTGDvY9cQaWo7Fl9yIOpJIMjCIU\nCCK1Vfh7HmJ91D6FMXoIAm6qcP9jnkwKpxJj/bQe0wBap/WIMwc6EIFDNogVhAdz+DqiTi+iKR6J\ncJ6m5ACLm9pJLt3BxofPo30gSWc6QcGTKXjiW24w5L7wEOZcpeucDGJGs6c47jTC/Jvod475NVOU\nx6btWBriJqudtiPOLMQQRDhUKIg1yVg3l+srFB2NvGWQyUaJdzQiyz6m5mBqNqATUmyCAHIlUhU8\nBQWJaoT73K3wHGIIZ4ND5bGmOMJcLyDIOxUcE2Qy+R8OzUgZG4uZm2k/BoIE4wVVK0Ut4oEzHBHF\nOWi/JYt3IYcKzE/HiRoW6aJJsWTmSRJEVUEbQ/bwAom0q1MDdE5hLNUMmXGVxpmSpU1HrKcqxTEQ\n+pBRWDMt6UKLgTXMTSItQaz7QhzeTSFxMJEAVClAGvUn2LxtOfqqTcx/543UVfWzoKaX+ngKXXEZ\nShAKaIhlaEmkSGgWGgHzpuRiEI/RxnHGNRFqEH/vaIX7z/GZKUKIr6HxssM6SnzYNpcgIcgzXYEC\nHaivcN+sZXJK9S78ffORPIVkTS/NRRPL0TBUFy+QcEtmnip7LJ+/j9Wyz0ObVrE/F6UO6J7i+OYj\nTMQOpraWWgrsKn13otltTpNJphmDdx/WMRqBhukZzoxDHZU/dSdD2f09FdiuSueG1US3LSe+ZCc1\n6Th9mRh6ybyzXXF7xkIFljR20J2JETEsYpaJ52oYVB5bKkNFEL6LqRFqcWn/vcDABMees4hyz2F9\nv5HKn7SzCdUIT91UzZ7xoJaOWcmqVJU9QrpNWLfY0dFIPFSgKpIjWjSJ1HfRmIvQmY4T0W2SkRzJ\nWAYpkPBtnY7uOlxPIaR4SARIrk4XlTkkhkNH/G33HsL3FgEHxju3KR5v1kBiITILDum7JrBieocz\nI6AistanOztDZWIimbKLoYiwqyL7yBLIUoDny7i+TMHW8QaS6Mu30eApmB2N+JpD3bz9BMu34W0+\nkUJTO53PnoRVmq1kKUBGkKKdqacGqYh14p4pfnciwsxZMkW575C+l2BquWazBRGOjLkaRsxK40Ei\nQJcFkUzNJh4qjvi0aOtEDYuBdJyqvQvQT3qW2ppeUDxcw6L3Ly+jJxOj+6HzBz19ALIEquTjBjIN\niATYqZp8AM0I7+BU41FjYU6SSed9yIdw65QzGeYaIhyZmFiUyfPzJMAszUoxc/x8b8tVsdJxtFQC\nybDwdyylp6+a3myUnGVQdIRRGjEsbFdFlUCXfVxPRkYQuo+pE0pDmPIdTN1cHI056RpXWI00WIZX\nGULAAube02Ux4maZviibQAhBpMkCDjW6uL3joSE/mKnZKLKPREAinEdTSoaW4kEiBYFENhfBdlUc\nb2SSlqaMnaWnIB4Yh3JD6whP3+FijpFJxuBTGLy34m8YiCf3cuZWXp2GMFclpv+8JEQMZrLjqpKP\nJAnymJpbijMFyKWYk6J4Ir0olqEqmiXa3MZNzz/J+sx2IoZVWl8FZAomkgSyJIikl8gXVV1UaYhc\nEsJsOxTHigQsPMTvDh5jbuXmmSQpVLx3eTYyD+3HZiwMhNv74JTR6UGCyTPHddkjrjooUkA8nMdQ\nPUzNRpV9IiVzrzqWYcGSnUSb2lHScVi+DRo7IJzH/91rsMwiHZkYB7a0krcNXF8ibxn4gUxXWkT9\n+mx9RA4fCIfCoZh8IHL6Jotf3T9Obt6cmpliPFLxvgriyT3XiNSCcDQcKSJVMTmRNMknrjrIEsLt\nbVhEzQILa3tIRnLEQwVqYxmqIjkSJ25GWbEVPtHGtoX3cOq1f+SxjUXklgOEzn6UJGDqwj2gygER\nwwICYub4D81ybuChhDXCHHqGy5xZIkgkUTilon0V5l4VrIQg0pEiEYgZKTLJPjIBVaWbvzqSxdAc\nqiI5amMZVl7zK/rvvoy+gQSmbqNKAf6zJyH3VXPSlz/Jpn2iqmhfZCtnnW/D316CaRapCufxfXkw\niSik27QPJIGAat2myzr4kaiUthZE+Ualpo6CKBvZh0iQnQrmDJki3FrRfiHmnuu7XO5wpIgUQqwl\nJpqRFMlHkwLimrgFVdkjYlgsOeF51KJJdVU/0obVVF/0d2IPn4cngZHsR9ZtqOnl2QfjSAsFmV7z\nqS0E37wYUgmUXISwUTLYIjl02ae5ppd1z6yhYOvkbQND9rD8sV0sEuLaZBGZ4JWSaj6ws8J9y5gz\nZKoEBmKNdCSf3kcD9Ry55Nuy+3siZ0NctVGkAE0Wt6oqe9TGMpy6aDfzTnge15fR67vAVcEy0GIZ\nNM1BWrgHavpAs2H/PMo52h//+D+BrUMsg+aqJHyZeKiA2nIAffUGgsfOQpF9omaRoqMRUx0se3x/\npY4w+woMyX9VgirGV0waC3PCAWHwYUy+jDSJLyaKSFqcKyiTaLrd3mWEETfURESq1ixUefifK6A2\nliGi2zQkUiyq76Kuqh9kH+nieyEbBSmAQoi+0AGWX/sr8TXZpzctZrV4PEKqbQ2sl2DdOQQbVkMu\nAgv2IgGZTavYsHcBPZkYBUejOx2n6Ctk3Ml9cR4iWTVVwfkHCDKNzsUbzwExB2amMDLLJiVSiLlD\nJAlxk09XkupoqAzl242GIvlIiIBpud5o8DPZoyY6VIY3kI+wt6cWy9GoCueJbFpF9s3f5cPf3cZ7\nTz+dsz706Ji/n07nkKIPA/DNN/j8y6dvh1/+E5hFsAxiS3fQlIvQk4khS6ApHpIEXiCR9yYWD1AQ\n5qqH8PZNtC4ql5NIVGYeznoyKZyIwQcm3CeBiCHMFVQzNWWgqaBcIDh6tpMJMBWPkOKijHGvqopL\nPHSwhy0IJGxXxXJVIvkwvY9cxJbtEX4crqzy+e6Bx8hc20qy5ce8/9xWgjsvJzuQxJOH4kvJcJ6e\nbIyo6iIRkPMmn6HK+Yl9TFxWEWNIKWkyzHoyhfjBhJ8nEGXIcyUgW8+Rm5HKmg2jiZTQbGSG1kSj\nIUs+iVABpfS5IntDWQ0gYkuhAjgai6wWXrzgWa77XmWW/J/u9PgTm1jcZPL+JZeR3r6M7p5aulJD\njxNJCgjrFnnbIKJ6yBIVmXwgSBVh4nL4OMcEmUxUTpvg07njuZMQ6TJHikjzDnonICR7xLTJMtYC\namPZEf+XpQB5GPEMzcFYsRUpmuWhndv50s1rpzy+5z78Lnh8DRrgl5YrId3B9RQ8ZKKmhR9IFB2N\nkOIRUjwGbA07kJnoUSojZuNGJi5RXwTsnmSMszpoG5+kQn+ulFFEEDl2U9WrmwzltddwIimSjy57\n1BvWhESSJR9ddaiNZQ4eryHiTIrsIUsB4fn7kKJZOLeW7hUPcdUVU/enrvyfX8DSHYTPWUdtfEjl\nTh02A8ZDRYb7rpK6Q51uocseulxWghgfzYgH8FgOHZnJs+5n+cw0PhqP9gCmCQmOjLBlnKH6pjIU\nySehOqO8cwcjahZQZR9dPbgSKFSKM2mKS0i3MTUHz9bx9s9D6VnG2j8l+N3fpxrBASIynByDRwJS\n+aFRh3QHSQoGyzOihkWmOBQokCRIlsZU9GT80ixV8BS8UWlIMmL2LyJc6KOvgs7EGTOzlkwmX0Ma\np8xtrlTIxpm4VuhQYCLWCaN9XiK7OxjTuQAidpQIi6W6Mg7ZwrqFrnoopWpaSQJN9ci3N2FEcoQ6\nb+Pzb1+KtXgL3/lx5TmUgPAS3FdHYUcdtqMRDxVwPAXbFZoRAEVHJ6Q7yFJAqnBw1YA5LOPckD1G\nm3+9ttBlMhGzUAcjoTFxjHKWkimGwlKkMSZkGXHCs93hMJ01SHJpO3i2DlCkgKRmoytDbu1ydrYk\nBRhmEdsy8P3xVwSy7BMzLCQpIFYq/pMIiI6uXzrheTZtzfLrm6dWObRovszOL19M0LaJ/DNXijWZ\nFBDWbfxAwvdlTM3F1FwyRQNT9zE0l3TBHFFQOBxKKYNdnKfITl+ayDNQNEnZBgQSDUh0M1KaeaK/\nyawkk8ZVaLxyzM+amT61naOBcurOdBEpUjrmWOZJRHFJ6DY10SxRs0gyOUBPXzWaItY6NTW9tJ7x\nBD3PrWRHW/OgWtBoGJpDWLdGrF90xUORAzTFxdQcVNmHX13DGa1beN+FfVz356crPoe7bnsr3HQC\nbF+GIgWES8Qtd9AoOx4AWk/ZTO+OpfTlIiTCPlJexJ/sMbx7Ic0eHH/EsDhr6U52d9eyq7uOA+k4\nOU8bLDqspNPGrCTTeFjM7JbjCnGwpPChIsbEPXJjqk1I8QkbFqcs3EPtwj2ohRA7JZHBkCmaVCcH\nCJ+2nvnddfSnEmQtg6Kt4wfSYL5cWLdZcvmdBE+ejlzXjdXRSMEemg1iZhFDc5BlX2Q+dDbwpsXn\nc87PmnnFW/5c2cn8dSV0VYGjoSkeIc1BL9VCyZKPH0iDs+CKsx4jVdPLjqdOpT8XIaQ5ZIsmjndw\neFZXRY2VpriEdZueTJSTF+4hHiqQ3bYcyQY8DZXKytpnHZkk6gnzozE/m81EKgslHq55Orzsfrxj\nxVQHU/ZRZI94qEDeMqjyZYJL72b5xpPR03GaFQ8W7oVolmw+TFVEmICqXDYBIaRbVEVyJHMRgus/\nDJtWwW2vJN1VL9zhTe3w2pvhhneBbiOZRXA0WsNLaO3Rad/5N5qWjF/KfsUVzfzxfa9C/XsAsg/h\nPOFwHjMTQ1JdaqNZcj21DGSEn7OquQ1l33yqX/17qqSAJ7e00t9dR9QskrfH16lVZFHEGNZtoot3\nsWrRbnZ01eP01hAAdZ42riLRcMw6MgFIo4atMdRoebahnLrTfBjHKFcLT16oHxBRXEIlc0xTPIJA\nYiAfZuveBSx58AJCLQegvguq+yAfhr9eQlS3sQwLTXXpy0axSjNEWLdJJgegoRMpdzq83gb/TyRu\neyVU97Hit5/mx6sXs7BmI6//y0+5+21vYF3tHbDxZNhWhO+/iE+8cTtf+PWug0Z671/fCvccYO2d\nBzjn7C7W3WPQsjqLtbiWVeuXIXsyNzo/J9R2BlfFX40iBxiNHUj/eCuPDezlzCsbadq9iLTiYQ7z\nPGaLI0kVNYsosk8inGf+wud5eoeF2nMhrqegKR6KLyMT0II0KaFmHZlM/vug96qYnZLFGsKsO5QC\nxeEmXKXxp6jiElZHxmUcT8X2hCMnn46TqOuGNwDcBvdeDC/ajPz3k4VikOyTaG+iq68aWQowNYdI\ncgCa27j/7l3c8buNyH06X7z6RbBzH8geL/v4M5wzv4eH2nbxyWdu5vo7tgMbJh3rxZf8dPD1Oy2d\nG39mc8r8arKWy4bbF9F+9yq27d5HMmYSqboAanphxVau/dYAC06Kctb8BcSq+qnNxMhZBm7pHE1t\npMEmlRwZtbEMXjhNW+55lmnnYmgOyXAeuRCi4KnYgVAVmVOKrqPz8AxmbzeKQ9G/hiGBlKlki8dV\ne4RreDg0xWNBTS+Py2vZu2cnb/r7+XBRM7x7Nez9GexIIlX1wZKdhJfsoenjn6dg65iag5QPQ1sz\nj3m/4StfyyLLEl983cNwxQa4MUu6x+Hu7WLmEUSaOm68URDg6X19AJz9zg3ku3bwsitga+du+N9L\n4MFP8al1f+JLf+rjVbkq3ta0H9VbjaG6SEDB0YkYReLxNImWNqQA+nYvIm8Z6KpL1LAI5eq47LRG\n2u5zqI1mSYbzqKkEnYUwEiKkMFEEblaRSRojfKkzfcqkLwTKjb8WUPn6SOZwNMEDoop7EJFqopnB\nzyVAa27jglYHKRGHx0042eIHN3yQ93yyl+3Xy0TmhfnSgx1c+pOzeVkkh1nVTyrUgV5XRLF1eO5k\n4BF8P0C64heHNNJKsXEjQI5v/1j8W3P6Yq59xyKu+4GoVrr/iTzXdfby8SUOieQAmXQcU3MI6bYQ\nbjl7Heg28dUbyNz3YlA8QrKPXNuDbBnMb2pnfnUfecvgga1DeTQyc0iEciy54yVHYRyHChmRzVCJ\nWSYzZP4dTuA2Msq0Gw1DdVEUj81PnUr9jqXEIznM2h6k+i4ouZuXffiOwf2v5xGC962C6j4+/NAP\nOSUmk8w382Rm62GM8vDQl3H54DeGZr0vXbOak/rmI591gHueupWrtI+Qz4fRNIfw8m3QV83fso9z\nEYuJLd8GC/bCjqXQ1A6NHciGRX7DanZ119GXjaLLHo4n4mwTZevPKjKNxsHJmTMXNYiLPZmGAogZ\nSOHwxV5iqjPobBgOU7NLcls+Wil7IG/rZIom4cW7YOVz9Pz2Jdx4y9heU+q6eaRtD/c/neYnf+9H\n9IiYOXjbdx/jP6/u5y97qlgWM4g4AyLWlUghveoWsAyu//rf+cHe3dz06VZuur+Dsy94mMUNYeEc\naWon9ejZ9OfDOJ5CRPUqKuuYNWQy+G/kUTIoR6qmZ7pRg3DbT2TWDc9QmA6tO+H+HntGKhfTSTAi\nDy9nGUiZGNKL7yP3SDOP7xy7yHugaheXfPHX5OypSo68cPjGHdtxvQDne+8Aay3yE2fAot3s2h1w\n+gfvJ1vwcZznuPsd2yhYPvpPAlIf/gzB1hVgFmlYuAc7F2FHZ+XKwLOGTBLhQZe4wuxQXzWZ2OVd\nftaVZ63pwUj392gYqlPKX/NH6X4jdBbqugnWvgh96YMsrA+xp+vgHLqqj/xs2kZ7pFC0S6lC7/oR\nL1q4gJuvStB54VbWvOThEfv1Z8TM/NBnX0qgpMn0VdMxkKToquzprpswjWo0Zvr9OCZmeuMxs7SN\nt9YJIS78kZhZI4pLZNw1UoBRyqCOljIYymUShuri+TKF509Az0Zpyka5+Qc9vOW/DrBly3TI2h89\nrN2zl3fefTOnaBMY2W3N0HsKgeJhuSqdA0nSRZPCOLl9Y2FWkEnhVHSuOdrDqAhNiIs6loVdFkfU\nODKFZBO5vwGqwnk01cNQRdmCJPmEdZuwYWFqDrrqirVULgIHWjiz5hX8/o2d9IZ3cuG/P34ERvzC\n4U+bd9ARmcCVY1pIr7qF0O9fjdfeRNaaemffWUEmiQRySVpdhUPsunRkISHGNVbsR0Kk9B+pi63L\n3mDNzvgI0FQPvVRnFA8V0DWHxppeAleFQEKVfUyzKMTzVRcKGv/vlse55ZlDqD+agXjiib4x3//C\nP63ktJUGwc55pHyZ/lxkMMhbRp1epNue2CU0K8g0HNNdbXq4KMvpjmWymYig8pEcsyF7JCYgkiT5\n6IoQhNQVl7p4mqhZpLq5jVhtD8nX3ox10xtwe2pRIzmMq7bx191/45I11exasYm230y1v97swDnL\nq2hKhCEfZkVzDPeRc8nuWsz+jkMvK50VZDL46ODrmTAraQyRZ6y1W3nNdKT0GgA0ycNU/HE9dmXE\nzSJGqfw8GirQumoTpu4QWrAHWQrgydMxoll0KUBSPChW868/epYLL0+x+WvLWPfk4XYtmpn4+IdC\n3HWbyXcueidBWxP97U10DiRHlGooUoCuOoPvhWSXgj8+ZWaFCGWylMQxE0os5lNyKY/zeSNiPZRU\n7XHVfAB67UMvYazRLSQC5Am+HjULIiBbGkNYt6iNZVjc3EZD6xbO+cOXWffdU2DrCrj4Xpa8eB87\n3/cxrn34Xi768FP8w2umon06+1BfB2u/s5rl8038r3+EXG8NfbkIHakkeUunJxMjQCJn6eRKWuaW\nJ5NydT43F7pgHI20obIzoQqRbaFxMJFUhHt7IT5VusVJNd0kzSK64qJIwZhbvWFRbxSJKA6K5E+6\nhRSXeqNIvVFEkcYmkiyJsoqwbhHWnRKRAkKaja56SFKAq9sEzW3sy/dhzcvzX31bkc54it3ZHrZe\neAM7rANznkgAXd2w4nUb+PnPJb607RYiVf0013cRNUS4IBEuIEk+EcPGKCXHitjc+A/IGW/m6aXE\n1jBHTgZ4LJRnwHI2wniIIUw+XRJrl2UNnSyt72Jvbw3ZoklfLjJhLU1E9YhMub3xSIR0C5AI69ZB\n+gym5gyaeQB2fxXWk6fzjoUX0/fnWh66+yYAggBar5wbjoap4C3/9yhfuFxHftFafnhrN69sfAsD\npcyHmGFRdFWSYZ90HnB0YVaP4zCd8WQK8TWgdMMe4d+KMOQsmKw2qOx4KJdBmKWsAstVkaSA01u3\nsLe9iRXVfTyzYTWOp4wp8jEVhHRrsGvecBgTSHKZoz7zfZlCKsFnFr8NJbyDq15zJQ8+9dvDGtds\nx082rmdt5zY++g+nEdlhD8qX5SyTsO6gKgVqo1l2ddeRccanzIwnE4ibvO4IHn8hQ/ZuJasYg5GC\n9qbsYZQqUD1fpm0gie0pnPSuG9jwvfdSFcmRLpro6uEv5qUpLLMSw/rIRoyhbAffUwgcDbYkYHea\nO++8k8svv/ywxzZbse1Ajl98ZilnrLuaXCGEKvvURLMopb9p1Cxy4tmP0v/Hq8hZxrg17LOCTDB9\nakPlNVDTIXy33Jl7+FhkhnoSlWE5OrriIT97ErFQgZ5slESoSLZoCDWdYKylaiDiPJqDoTksaugk\n56p09tTi+zKZojnO98Y/Tpl4suSjKh410SzhBkg05lDTWQj7UKcf00Qq4wnnCgr/WM+LfpJhyZpn\nKGSjVD23kqKjkWw5gFwIsbypnf5cZFwyzWgHhM7bAGVaRBirGWrNOFUiyQyJQVZCalOzCek21HcR\n1m1iZhEIiJoWYcMalNIajpDmEDUtQrpNU3KAxpYDLF7zDIlQAUmCiGGVqkQn9r6Wj6MqZa0GX9Tx\nRHLEoz3c1XID6iXrYclOaOmGeeNrMBxLeP/7v8jGTT9kPev5j7/+Ff/Ff6Ju/j5a6rtInLyRVFsz\n3emJfckzembSeBUSyiFLd6kMSdoejpZeHeN7EpOjyqBNzaG1uY3qMx+HPQuRpYBEqTtEWSNbU7yD\nIuyKHKAqLlWRHEtPeB59/j4yW1pJhPO4vozrKRQdfVAQX3SW0ErfFXoM5eMMR8QQBG1IpAhe/Gf+\nct8fedvH3sVLr7uZrq4UPdbB8sbHKr7/i8f40t4H2JdJ8R+nPUj0wM3IZhH2LiCkeDQkUuzsGl/e\ndEaT6VBQrmRt4fBPTkbMZBNWV466eR1P4UBfNcFjZ9Fw4QMkiiaF3YtQZJ+sZeD5MvOq+mlt3cJz\nW1rJFk3KNC+n+qh13dBbgx5IJCM5skUTVRbCihIBmaIpBE1Kmt7DQx4iRCfGFDOLqIpHWHdI5cPM\nzzXzm4+cxUc/dzP3PbsL369EDe7YwcZNnYOv60+4gEvPi3LXZ84GV0XfvQipe+KV+4wn01RmpSjC\nOTAd2dhJJs9g0EdlHxiqg+fL9OfDaIpHw+YT0eNpGufvw3JVltT0kt61GF32obaHqnAeSv2LADTV\nFfpv7U1Idd2Ypz6FtHMJsfou2vcsJFM0iZhFmmp7sDSHTFc9tqeQH5aUWSZYGWVtOU3xCDaejBTN\n8rWPXA7Od/n6TVum4UrNHZimwZlnnszatU8AcNe/XUyw7iTorqMrlWDzgRbcCUoyZjyZKq2mTTJ9\nutzVVCKbJdR+hiNWMudcTyVn67T11BLxFJGV3dCJtHAPVbU90NwG8/ZTs2MpseQAhVyEfNEcVPyh\naEIhBPP3YdT0EjgaTZEc8V2LCYfz6B+4Hfv3ZyJlYuQnyKQI6RaG6qEqnnBItG6BQojv/b+7acuP\nnfR5LCMIAs5eVM37Lz4Bdi7l41/r4ROLltPd1szu3YvIWQbOOKq2MIPJpPNOVC6rYD/hUJguT0ot\nh1YuHjMLI27pVD6M1FNLTdEkGc6TyEVQNQfp3EcgnIenT0FvakeXAsJd9YOudbPsGVQ82LUYVj6H\n5CmEfBkjmkV+7/eQHj0XfyBJxLAGn5TDA8PlDhTl8eiKR6yqH2nJTmhq581veZJrX9R9CGc5t2FZ\nNt/81T38/NI387rY5ZwjRdm9qYnuVILezOTpyjOWTGCwGH1ckpQ73LWM8/lUISHMw0qJJBMMTgiS\n5A+qggaBhO9LyLJ4bTkamUIIRfZJWgasO4fL7/g2n319wNkvfwZsHeXBC0i0N0EiDaG8EH9ctp3P\nPHI3n/3SemIRifSve1B+/2q4/RXQ1I5xyV9J3vdi5K56fCBvGXieMug+l0q9Z8OGRcwsorRu4awv\n/YE+NcMN7DjDAAAgAElEQVSOHVPsQHEMwfZ8bGzQHLBrKFgGQSAN6ppPhBntGh8POsJLN11EAkGk\nqWR5hxUXtZSPa6juoGKoH8hYroqmuMCQoDwAfdUgBVzz0nrO+Z/b+dwtz7GumIBFWaGgumgXvHo7\nLNovmiGXPHT4CqTjcNZj0HIAzn0Eznwcc+Vz1Da109i6hfraHiKGhaa4g2L5YcMujc2F3Yt47MPX\ncN07TpmW6zWnccFaaG5Dlv3BdjWVYAbPTGOj3MFtOpNeD9W0AwarVUdjeLaDrrpEwnmI5KB1C0/f\nJTr//PcvnudHDxa59/+tJFp9Ij985gHyu3z+dn8XSB77BkSHvLzl8am/O0Rr+7n9t3+Av3Tzhle9\nkX9paULOtEFygFBfNV4hNOIJGtJsEW+SfbiiJJK/4XhcaVIoPvRXDbasaT5tPY/d81IsZ+LH7Ywl\n01gKPRLT36O2mqkTSZO8khZdQN2Ifq4AwbBWkOLfkG6jvu0nsGkVtpZn457U4N67d++jZ2ABztvf\nzCdarx/z9zw/4Lobfzf0xk44bf49ZD/2FJF/XkrxNotQQyeJBy8g0lc9wrunyD5GIoV0xoeIrrmA\nnDU365OmE8VH15BduYNw406qN56N1Nw22LBgIszYeqb53MAS3jn4nsahywmPh0rc32MhojjEdZtk\nOH9QkFSRPWqjWSJmEVkKqIrkiJlFquJplOo+/pRey4/b7+KWdW3Tcg43f2UhN/5+gDvf9wrIRQge\nOZdgIClMQwDZQ45m4bwdpJruJ/mav03L7x4LOLW+hfXXXUagutz96c9yoL+KVNHko445Zj3TjJ2Z\n9GFEApHNPZ1EqqIyQcjRKAs7hjRnzHaUIV2kEkUMi1Apz87UHDHLKh5XrljGla/P8oOUwXvec/gy\nwq/99z3MqzO4p/9J1j7q8NllTUKJdUsr+DKS6kKowBef/Stb7l9/2L93LOFT/9wA2Sh9D1xI3tbJ\n2wZFb/yCnBlLpuEwmN4K20N2f5eEHTXFxRy1TgppNpriURtPs+SkZ4kBue46ogv2osQySP1VbK99\nlF8+v44d61LcvzM3HacCwP5ui9d9egvZXMBnb9qClIzBvvngKaLBmObw1lOqaX7fRD0cjqOMr19+\nKVdXX8i8vQvofLKO7fvmDwbWJ8KsINN0ur+TTJ1IiiS0FiKqQ31cOAUMzcEYpk8nST6xkmnneQrq\niq0kVRcaO2DxLp7fJrOg1aQoN/Dz3z87TWc0hP5USXTxNTfxzy9v4MbzauD5EwSZVj7H1d/8+7T/\n5lxEPB7h+888y5tOfht7U4vY21tDTyaG68v4AYPd2sfCjHWNl9cy0zkjJZiaaadJHiHFpUa3Seg2\nzckBFtV1Ux3NDhJJVx10VfRElSQh7mi3NeM8dapwba/axD2xP3LWD3/AzuRjfPGL907jGY2NTZ09\nXL/xb9hmRgSIu+oheyTlXeYOXvnSVjb/6uNUV2tEQ4VB13h/Lorjy1j++GbejCVTsrRNR/kFpeNM\ndjsJ2Sx7cItrDjHVJRHOURPNUhPLsLLlAKuW7KQ52U/ULBDShdxwef0kSSKY63sKZGKw+UR+8+06\nBgbgPV+f/hlpLKx7wqO7djNyU6cg06LdEB3tdTyOsfC3+zfyss99nUzdVuIfenKwm3slmLFkArFW\nmo6iwBrGNu1M2aNOLw5ucdXBkP3BTZFEHyND9dBUl4Kt47gqNfP2k4zkqI7kiJtD2QTxUF7UMYFY\n+Jfy7L7//jXMrzNYu/aFW7P8z3cyFD78X5BI8Zlfb+PRzekX7LdnM158ccAdH1tG/Jpbse7T6MnE\n6MtVZs/M2DXTVDvjjYVyilBZp0GYbd6EEsIgctt01SVSysCWJZ+w7iBLAQP5MAlPob6xA72nFsdT\nSYTzJBs6IR8m8BRUxUM/Zx1uf5xrB75J5gmF4ngqHEcIQQDxRILgW+/nza8O8ZtdOlt2zW7N8CMN\nTZHofKaRv113Hsu8S9nTW4PjqfiBRBCAe7A3fARm7MwU4fD7E5XjSKbsElUcqnRnUiKFNJuqSH6Q\nSMNh6jYFWyfbX4VW20Oyvot4JEsiksNo3UK4qp9wqIAeKiBtXYHvQUKv45FHUnR3H6X2K2ft4Wd3\ndx4nUgVQFZm3n7mKl74yR6+tk7MM0gUTr7ROmqxH04ydmQ4HMUQJhUFAstTYayLBRhDB1kSoMCii\nMRzlnLdyFDyXSqAbFvrL70C778WgOUiWAY0dSNmocDy4Km6snx/fuou21NFzSb/ps0+yND7TRKVn\nJkKYXFi/gu6ORtKZ2IhMkkowY8lUy9C0OVGPI5nRGQg+SAFJ1UEppfWIcvEJXJqST0107LiPRICu\nuoNFd3LJwUA4D+evw09FSS9bT9W+1bSFd1DbfSJFRyaebiIwC7SnM/T3H70sky0709SfOvOyXGYa\n6uqAjERs73lsfGYNPakEtqcMqrlWghlLJhWRN3ewVl4wQl87XtKF00vkWVzfhSr7dKQSlAmUt3QR\nJ/Bl7GHFXYrsoSkesZL66mgoikcynCdiWHi+jKE51NX0EpICNMuA77yPzpV/5XUf38Q7XtbLB7+5\nnY++9Wk2tEe44YqLqJZlXv96ne9+15rWazMVPLklz5NbjgdrJ8OdP1jI/73/TLpKRYCH8viZsWQy\nGFt0MqE6GKPWPbrqEDeLyLJPY30XuubQnYkN2rpDpdxCmrjgaIQ0B1n2BwVK9GEB2JBuoco+TY0d\nyI5GwTJQFY+oYZFsbhOVsNEsrNgCS3by0LNpHnpWeMuu+0EP0MM1u/7CrZ8+9agS6TgqwxtWr6T6\nd+/hg3UXsbc3Oli9nCtObdU+Y8mUHOs9zUIflQ9XG0uLDHNJxHjCgOwpnNjcxr7eg6NUpm6jKx5r\n1jzDhg2ryds6bmm20lVnUG9OU1ySuk00miWdi+D6MolwHiwD6YTnRVlDcxutV4+to/C3Z7tpeeuR\nD9Aex+HhgjN0vnn1ZaT+eDYFWxt8AAMjrJhKMGPJlNBsoppNxlVFYFRxiek2uupStHW8QCKi28RC\nBWQpIGIWqYtl0Ou2sbdhLWsK56JvO5ls0SQAskUTs76LWCFEMpLDaG5jQVsztqMNlkwIF6iEEioQ\nAoxQAXXBXpIHWpD1UvXliq0wP8meC9fS/uBzZHLjGwTp/OFpiB/HkcPyZD1VUoK76r5Ox601DOQi\nZAphbFeZUOdhIsxYMlUZRWKhIotDeVa2HGBzWwuZgklDIkXR1lnW0ElnKgFSMLjuqYmnuTfyZ151\n483s/HCY2rbFxEMF/EDC8xUa3vpT8r95AyHdQtFtahMpAk9BK5mNtqtguxqx5VsJOhqR67rh8juR\nb/1HUfmqevDBb8OjL+Fb33mYr3517neLmKv4ynlX8UrjUvoGQpPvXCFmbD3TVzSLmGaT9lTCuo0p\ne0Mzk6Ph+zJhwyJuFpGGzUxG/RZ216/l1OJ5HCjNTACZokmooZNoIUQynKfujCfofPzMETNTEEj4\ngYQaKmBKAbF4mtDCPfj75w3NTK1bYH4Vuy9YS9va5zj/bTuO5qU6jkNEa7KBKjnJPWd/lY7eGvqy\nUfpyUWxXGRSn6Rqm4BoEDLbhHK8/04ydmVKOTrrU6TpTck+OXjP15aJDa6ZMnD09tZwpBczrPYFd\nhdBBa6b83gXkdJv+XITEgRb29tSOvWbKxNEUlyWag75zCal8GNdTSITz6JtWIVnbWbTzVBadIhEJ\n7ySXH/uBFA0pZAvHTb2ZiC0DnUAnl/W8ij9c/QH8P7wex5fJFMI4nntIpt6MzYAYGOs9x8DyRg65\nJxMnXQjh+2K9kwdsxWNzWzOpQnjUFqInE2NHZwN/vv8iOgaS5C0D2xWLTtvVSBfCOK6C5WikbJ0D\n/VV0p+NkiyapfBgMi+D5EwgOtEB7E9tuXTHm+F+8qo72n108zVflOKYbDz5u86833YW6/NFSwefQ\nw08bI1wyEWbszGQhmg2Mdo+nXA3THxlnslyNoCh6kHZ01aPKPt6wTN/BOFMgDfYnHchHRsSZXM8d\nsT9ATzZKVThPuBRnyloGWlszISnA8GVRzSrv57yT2nj75Y3867e285E3V7OhI8KNL78Io0/mve/V\n+d73jqfyzGT8esNz/Ntnv8b37nuIf2/+GDu76kkVFKJmkf5c5aUrM3bN9HYCZETYdaKuFaMzINRS\n3CgxxQyI2oOEUUpjIaA6miVqinhRVThHIpKjauEe9E9+Ee8vF5Naup7qAyez39hJXW8rRUchkW4k\nF2tn4de+RW/v0bvGp7eGedEpMa6/qXPynY9hNDSAn4ry/Mt/xMYNq2kv9dgqk2lWr5l6EClFAPsn\n3HPUOXmqKBn31Ipz8/xApjcbGczNG95QLEBogeetgFBJ+olAEkKRj5yFvP5MqjaeAlX9zPOXQzaK\nUcrNk9QB6qMxPC/PwMDRUQVasShGnDhwnEwTobMTqvWA7MKHWTFvP84dL6c3HSdiFCtOKZqxa6bD\nQQZx62SQ6HMMsq5K3p24oMPzFfpy0UHv33CUNabLUsSRRAqtphf7jpeT7Wwgv38enmFBRyNBZwNB\nWzPkIqiZKt718sW0th5e+83DwS+vPUPolh/HpChQ5O9dm6lrbiMeyxA2ppa9MmPJlAMOVy5xAMgC\nRV8l62kM2BpFb+JTLjg6A7kwOevgZKairRPSbaJV/Tg9tQx01ZPORUnlIthbWsn3V5EvhLALIYLl\n25AV6C10cfbZCerqjkaveODRhbz5kgZaFx/pjsCzH57v87MnNnPPbVGqSwpTcbM46JQIT+KQmLFk\n8krb4SBAEKpQem0HCmlXp8sy6bJM0o5GEDBiA5FGkrNMutJxPF+0zczbGn4gkQzncRWPro5G+rJR\n0vkQ+/pq2LB5JXu66unPRejJxLEfPRu1fR6fr/ooXz/zfEzphb/U6VQKUgl+cUvheD1TBbDdgPrV\n7Vz8iUdY9I0PceoVf0FTXWQpEClmY3R8HI4ZSyYQ3rzpWLr3MvYsV/QVum1zcEu7GpYvD25eAL3Z\nGJar4LgqId1GU136DrQwkA/Tl4uQLg6ZUOlCmIItZoDAVYV+nVnk3f+3gX1dFuef/8KZW5/8lzih\n678IqQSfueYEzj7xeE1TJbj3XonLv7KN1K/+EeMlovN6daQyWbYZ64Aox5k8hhwRh4NeJldwtXxl\nhPqMJnmiM2A+Qk4WOhDPHWghXQiNCPSKf10UORBd/AKQFQ9iGThxM69b2cXvNsEN/3YyKx96bBrO\nZmKcfbpCddcKfKcBFFm0psnGEKvJ45gIF190Mj//17cSfK+RnutrhPOqAmlkmMEzU9lRPZ0yICnE\nWqxSOIFCwVPptXVStk5bfxW7u+voy0axhgV6bVcTNTABZC0DvbkN7ZSnxcy0aRWX5P+RR//53Szp\nP4v//M+XTOMZjY2TGmv56OqL0Ysx4XWs7zquTlQhbr93K6uu+TK9fS7ZQgirJD5ZFcmiyT6GPP7i\nY8bOTMNxgOlpaBYA/QihlqlUqniBTM6TkaWA9oEkuuqSCOcpDFuGhDQbz1OojadRVBd3x1Ly3XVE\nVBclH2Z5XzXPb3kAc0cXb7poHn/fkWP//v7DPKMhJOMS2XyAc9MboCoGP1o5pOj63Epu/dA/0Pje\n26bt9+YqUqksnz3vfArVu1hQ6xFOpNi+dwH7e2qRpYPjmsMxY4O2SwlGtOCsZuwap0NFpa02R6Os\nNR41igf1jwXRQbAmliFmFgnpoj9SzCwSDhVEFnp9F5zyNDdmTN71rp8f9nkAzKvV+dGnlrJ2ncO1\nJ7xJrNc2nzikNZ4c4AvqT9jS8xQ/v+V41W2luOWTp3N17fn0PnAhDzxyLgf6q8k4Kp/wtTGDtjPW\nzLP54Yj/Z4Hp1PfpY8iUnAoyrkbOVSg4Gp5/cCQ4b+sULIO8ZdCfjVJ0NIqOJp5nnsIdW3fw2m88\nNG1E+s2XFrJqWYhLqk7n2oteQrB7EcGzJxE4OoGn4jsaFEJ8YvWlfOuac6blN48VfO6GDohmqX7F\n7YR1m7BuYSqz0Mzr4ilqGZJHthGZEIun8TcGEE+Tqc5Qti+LIG82Sl185KLe82VShRCqIhozD+Qi\nJMN55Lf+FDat4qVNDl//v5HBwEf+9zwSV3yDlSvPrHgMH3h1A1/4aA2xs5fy8mUWdIfgofPxxujP\nFI7kkC6+lPmnfm6KZ3ps4gdXvYzXrzwJWZLx7zgLaeVzgOhcr43R+aSMGUumgIPd4gGwGyHkP10h\n0D4EoaayhnIChbzrE1Y9ujNRqiI54fUDQGSvD74GCrZO9CdvQ6vuw6jr5uQFce59WhQWLlw4j7qq\nGLGf/ZLrXn0q+ZjPvfd3AR770xn29xZQJIn//OdXE61RuO2390FdD8vPvIT4sxfA77JEkgN4G08m\n21dNdljqS0izAQkrlcBY/w3SN76W32zYwhu+/NThXrY5jdA5zxDffhU9z59Aj2UQTQ6MSJweDzOW\nTOPBR6QK1SFEV6YDPRx647MgkMlbBvHQyEiW7aqoij34OpcPkzQs2LqC05o2Arv4zDUncOklF7G0\ndzH01vCJNRG4IMPnF1dDdIDPPHQPn73lWcKmwnX/oEEqwcff+h44Zx1Ub4Y7luC3tSLnIhQKIXKW\ngeWIP6mmeBQcHSNw0FUZ7ng5nPkkxHcfzqU6NuDLUNVP3tZJ5cPsuP+iEQ+p8TDryATC5Otkerut\nlxtjVkqovKeiKz6qFGC5KraroKsesiSaCoviMgtTG7bSq+oHX+aXf+3i4f96BeeeJYOdgt1R0Tza\nU6CzUOq2XoRSABjZg3ga/nqJELh8+Dxo7KD43ErSnQ347U0HdVt3fbmUAhxguCrGot2c841f06se\n1xyfFGsvgJomfF8edI1XghlMJptdOKxGG9NL4pa2/QiRyomLLCZHOfVIpTKTz0cEZ5HE7OT5MkHg\nIckBsiyMVEkKMDSHWKhANFQQOhLnrOPOl6yEp08huGMeSAF+dx3ZTAz6qzA1B1XxUIDPrIrzmdeu\nBF8muPkl+L01yO/7LtKj52HdfSkDPbWkCiGR1W4PzdOa4g42rc4WQxBIhLauYN1/XAXNbeRPepxl\n53fS3jnzPLlHG5oiowUG2Dqy3kfI0EvJz5NfqxnszbsBlzsr2E+so8aqzD0U9CBy+aaKTDE04nIn\nwnnm1fRS09ROvK4bZd5+aG4j2LCaYN98WPMMdnsTufYm+lIJ+vOiEjhbdh54CizeBX01BN11FGSf\nvmyU/Hc+gHvOfrzkADnLOIhIAI6nkiqEcUotI21PIdNXTbBzCTxxBj/919O5oHU68krmFgxD50Nv\nvBjpvEf4behnfMf/AotWbWLhot3UVhD0nsEzk8B+YEEF+/UjZiod0fnicFBJ6hGImqmEPGTGZYom\n1ZEcquIR1m2a67rx4mnsbJRcZwNRVyWzazHak6cTOXEzvSUS2Y5wp2iqK+SdzSKECrBvPtauxXi2\nTvveBWSLJpFCCONLb8DWHNKFELanDFYGAyNiX3nbwA9sZMkX7vktrUjnPsL7PncpO/53J9B9mFdq\nbkGSJB7bO8D//mIbsI3g91cRPPs80ap+orrNwFOnlgQqx8aMJ1M/lZEJROaZhJilWji8kxsoHa9u\nguOIPL4hMlmOjiJnqArnRLvO1i3YO5bSsW8+jquyc/syfF8mYli09tQykA+XTIghAzVbNKGxgyAf\nxnrqVFLZKPt7a4QZiYTlaGR6agkCaXAmDIIhAyNdGHodM4s4pXWU4ylIJz0LqzfwsW/+jut/s/Mw\nrs7cRLFo8cADjw/+/2Vfu4e//HcWtq6gvruOE1sO0L9t+bjfn/FkmioCRHLsXsTJNZbe15j6msoD\nOoAGxnfFu740zC0uvGgt1X1Un/UYwYEWUgdaKNo6qUKoVD4P/f1V7H7wghHHUeQAVXGRpAC3pxZ9\n/j7srnpSuQiWq+J6CkVHHwwU266KVdKzUGRvcI2kyMOJFSZmFsjbPo3JflLRA7zn64/ym++/i6fX\n/5bOrjS9VoaOgeMSzgCrTqxnYF+RA9k0Xdsfou7238DOIrQ1Y/dXMUbSwwjMaDI5/BGVKxhAOaRU\norKDAkT6EAjnwlT7PnUj2tSEOPiCDTg6tcMqMouOxpa2ZpY8fB4tF9+Lv30ZqUKIdCEESLi+RN4y\nBr1uZYiYEPTnIuzcvowFnoLU1M7ArsVkiyE8X8LxFIrOwY8Fz1fIlEpBQro1onF11jLwA4nOVILk\nvVdw+QkFWG9y75XvgGTAV3vW8m9fuXuKV2Ru4gNvO4czH13Jr7c/TujJz+M/8Ub8bBT1tPXkPUWI\nnk6AGU0mmx8R4rv0HCKZhqOv9K+GOOmJRFpGw0e4zvNAPZPPcEVHF3VN3XXkbZ1MyZTLFsWNPZpI\nAAVHw/EUTE2mrb8KXbfJ71lIqhAiCETp/FjfO+g4to7j+iWvoE8QyBRsnYFcBFkKuLztvbj3dKGm\nstCYgp7DbSk3N/Cd7/wnJ7acw+mPupx+aRWF+6J0759H0dZJbjyZZHMbdd117OyqH/cYM5pMw1Hy\nQh82nNI2fMWwkCG35kS/4SAy2A1EjZWEcJGnHZWY6g4KsRiqg+2qBCdvJP3gBfi+TLpoTtJoWMw8\njqeQKZr0ZMYu5pMmvQgSrq+QtRQSoTySxOCaqTcbRSJLKhMhEQE1l4Eum7vuuovLLrtssgPPaZxt\n3Mlpty8jl5lP5/0X4XgKA3mRaJYthGg9Zx3bOhpntwMCRA1SN2JWOBLYU/o3gjDnYOJ8PQvhoAgh\nTMair6L7Pqbio8g+zVX91NV1s/EH7yZc101/exOOL5PKV9ZoeDyEdAtdPViHYLhZNxypQphkWGSJ\n5yyTRFhUc8mKh6Q50JqCJYljnkgnNEf45Lfb+Y+X3MJZoXfj9lXTl4uIGB0iebnr7kuFw2iCIO6M\nJ1OBjxHmW6SBKqYvJ28s5BgqHiwn2FYxdqPq8r4xhCu+6CuiS7vqEgQST2w+kaxl0L9r8ZS6z02E\ngm1QsA9OogrpYs0W1m2UUYmYlqNiaEMElGWfUCLFtTt+zntPr+HWP94+LWObzXj7mlP5+OWn8P0/\ndrHK1OjNxMRa05dEdotnks6HKTgTi9LM2KBtGTbfBsSN+0Iqz6VL2wFgH8JFPxYyCI9fylfoc3Se\n7Wxk/Z6F7O6ppX0gOSmRcq5Cr61PumUmeCKWSdafi9CbjZAtDhGu4GiD+XoAelU/xmnruXHPPVS9\nbA/nXCwknCUJnrttCW8+o7WSyzNn8JP3nQXtTfgPXsA7Ym+kp72plEIkkbUMLFcjVSKS7csU/fEl\n42b8zDQcDsK0eiFRJnB/aZuPeAIpo/bpBXoDmUbbINVTT1K10SbQDui1pzZbFTyZQkl3okYvIsFB\nwpp+IEMAeVtBkf2SLoWQL5MloU+h2jpSexMtoSrMA2G+XLuCLz+5j0UX7eXEB9/FUvMe7r+lm4te\nNbfb5dTWwCPfW8Oy+QF+76vI9ZZMu9LDL5UPESCRs3SKpRkpCIQo6XiYsZW2w/8f4XY0rgRgzVEZ\n0UhoDGVZxMf4vOx+P5Qs9IrHIHmYio8pexM6JRKh/KCZVx3NcNopT2PoNqEFe0Wza7MoxDOzUSTF\ng/MsTvyfT3PBpWm2bFnKgw9uPIJncfRw6/8185c/mHx39XsJ2pvo72ikcyBJuhAmb+n0ZGJ4JceR\n7QpJuKyrUvDVceWRZ7yZB2Dx1cHX+47iOMpwEDl8PYjs9dSoz4sIB0UvR04PyAkUMq5G2p14FZku\nmqTyIVxPJlsIsXnTKnZsPpEDz57EQFsznLYeKxMj312HlYlBqJ/r334yN1x5JT/9Ppx9+qwyXirG\nl75RpDtl85q7buSPLd8hvmw7TTW9g2pTAN6wRg8ABX/iazHrrtRMKyAoOyL6EGlPw82/QmlLI7Io\njsTFtnyFAQeS2thF/UEgY7milEBVPLrTcXKWQd7WMQ600HCghcDRIJBQLYPkb1dxaV09dOVZ8vw8\nWtwcIwMJcwMPb+2jHH08fc1Krn7pIySW7qBl/WkMPF55xfNwzIqZKSCFX8plcBGpQjMNAcLFXuRg\nR0mAcFK0I9zqlamwVQ7bV+iyzEmknyUcV8X2VAqloreedJw9bc30lPpP2Y5GsWjCQBJcFQyP6151\nJg9+9axpHvHRwWmnVY/5/id++RzrnysiLdtOUvapiuRQRmk9dFewxp0VZPJ4CptfHu1hVIQ2oIuh\njIvh8BDxsn4ONg2nA2lXn7BBQX8+TNEROX1BIIkqYVsnZxkUbB3LVUWT7EgOWg7wxMLbuPrXf+CC\njx154cwjjZe3LuHKi+ePv0PRJPj9qyn01qDIPrEpivbDLCHTaJTd1jMV5TVT2zifFxBrqa7SNp0u\n/6ynkhuXUCLrHER6Eoi8Pj8Q8RRF9gmd8DzSqU/RvuYuXvvuDrZsmf0a5S9aMJ8fXvY6rr5syfg7\nNbfDmmeQPAVDdWlIpIibxcGcyUowi8hUIChJ+XvALl7YuNOhoIhYbaQYu07TLm0dCOL5pe3w/KsS\nOU+j4MmM5ai1XI2CreEFMunCSNMlXQjhdtchXfgA9p5GdneOXSbZf/1bCGsze7ltaBKqAsEN7+CB\n/7iShtQJnPLQKnb+7DwSUQW1NPxEVMHQZC76/D1ImRix6j5OOHEzJ53xBKsX7K1YGhlmEZmKfBaf\nkW7aI2EqHQn0ImbSieQffQSh2kr7HW47nYyrjxtgdDylFDMRJSRlRAyL4P+3d+ZRclV1Hv/c96pe\n7dXd6e509qSTmBAIkGRYlUXEYRcFZGZU0IMLoyiMHM+Mc3TGZQRHPGfUcTTicmRGmXFhQGVEEGXA\nAY+CkEASJMTsa++1r2+588et6qpeqmtJddLd1OecnHR3vXr1Xvf73fu7v/v7fX+hBPLJS/AfXstZ\nvZOvMdpHevnVe26it73jOK9y+vjoNav51G1n8+Otu3GevhBzqAu5aw29KwTRn17ElZdp3HjaOqL3\nvVGEONAAABdFSURBVJX7bj2PbfeeDxc+jTjnOcR5v6f/wHIOjGswXo2ZPbxU4TBQ3+2ePIZRI1cX\n1fefIoyVH5v8ka5OwnLjSAiMy93LmgYBTw4hNcxCZoXfyBPyZnENzAdHo/v2f+MDAYPnPzvJiQe7\neX2PzsUbwtx+ejvt6YU8un8nDzwx2UrxxPPdD57N6SMXc1bvCv7j+Z+RiraTzvhwp/20/+Q6tFCC\nO9Z6ueSUi+EpP+9YdhCeXgWLjsKCPjiwnDZfhnZ/GrduT+E2j2VWGVOSy2hjYMzP9gJTeMIzCgcV\ngBhGhdGnSgB3KM1kWVTmRyPzQMp2IQB/hWTYnOXCtnXWbXgR7ZSdiLYY4vmzYKgLjH0A7PryVQSW\n+PniM0f4891nwkAPRDr4Uu/thH1Z9JBkaFjyAL9r4AqPn46Qi3+6ZQW3f3U3AJ/80XY+sngVm7Jv\n4LLU39IXa0NKgc/IY7y6luBlj/PmBcsgGiHx5AbYuxKfkMoYEiGcfb14gZXdgxwe7mRftPSbn8ob\nmlXGJCfRLMijNlFPUl++uilWAu9DpSbVct0OY5Nwe5iY0lQZQdJ2owmJVy/5/8PJkCqtLwhlmscW\n8of+P3FQi3HTBVno8HHrrV/j1su/Bw++HswIX7nQRt7yLNmPX0sm34HXPQ8tkoYNL8Lp2+GnoGkC\n++fvgoXbWHv9K+za10xRa8Vpp0F6MMBbroZ9fwzw8P1b4OlPcuzWCPd8Z4QLNvr5xHXzSP3CTSzS\nQd5yqdw6Wwcjj/3suQgpGDmwnHTWi+Gy6Aik6Bjqwu4a4uixhRyNdGDZ+piSC4ep1+mzypgAcmzG\nw21l36tMhHqK/WYKfaiyknrFNPtRwjHFPMVa2pjFLQMHE/8kWtmmrXNwuJMzOy/iot7FcEkeOALf\n3AYL18OhZci+BbDzFNLHFjIQbUcTkrzlwtM5jFh4jLOPbuJjH92ONuKG+Oth6xJIHCLsSXHu0kX8\navd+/uaq1fzrL3bXebfw3vcafPe7ec5cMo9UzuIP9y3n2C/Xs3nfY5zf0wt3PQ6d67n7z9y4j73A\nyjMkuJZg6TY5y0Uq58GydXJmkJFkEI6U1BaFkPiNPG7dxhcY4qktfay0XCpzPOslXuhxXN6FshKz\nzpiyfHaMMYFaY7Rz4pNgjxcTZRhu6h8MipFAUG5ggOqa6UnLhSxbQ8UzXjqDSdwFA/OF40rk8uE0\nzLtAyY393+twYmGG42GsQoFhznTj1m1MTw5/PEyobwFvvNzkjecuhh8AD3VApwOOziOfP5MVL1/N\nX6X/nc9vfDvXvOkR2HE6eHLQFuN/D+7mn3+4f8K1/urxd8Ovj0IyyPnnuXmH6WXJKQlyvd0YD6xi\npaOxLvgynn2nksr3oA9248kbfOaOvTwbOYi0D5KIXMBQIoQsq24uz6gHCHqzqpAT6EmH6DFXk88b\nZE23ql8y3ViFNLxq/UNmRaLrmNeYT5hjiEkCkTMhCbZRdKqvo2qhXOG20rlCLhOvphoLLGqPsrxr\niA2rdyMv/g3Z7adjxMOq8+HyA3D6dhLfv5loPMxIoasHqJINn5GjI5Bi6RnbkLdthh3r4eFriQ/M\nx+M28Sw8Bn/xY/jWrWDkEd4s6Da0xWDpYQZu+AY9KyrHLa+6ahEP33YD2pNLEdF2ZEoVVzqJEMJl\nIYJJUkNdRAtVyR2Lj+D3p+GtP0M+dD0vvLKOyFA3pqWTmqQOrIjXncfrtljZPcDKTVtACh7++TUc\nGu4kbeskbTdHyo6/r0Ki66wzJgA3NxPgexN+3svkWdyzBR9TS4vVQ4ixruB4wq48Xt2hzZfm/Nf9\nia5lB9EzPvYeXkJ3KEEi66WjPUr3jQ8gf3k523avJpnzkM0bOFLg95QKElde+Sjy+bPQuwfJ9i0Y\n7esLSm7M4zbxuE30YBLRHuVV98vsOX8vV9/0i5ru5dV7vsianfOQw52kMz5yphvbUdkb6ZwHu+y5\nPuUt/0Ns70r2bNlEJBXAKsgAFAU5yzEKUgOGbuEz8ixoj9Lb08+Bgfn8dtca4qZB0nIzQMkLgMrG\nNOvcvKnYByxh9oTLx5NBRfvcHH8f32K2epDJFZniloEtTVw5D1sPLCfYt4COjgiDw50cK6yJklIQ\n2LqR4aEuIqlAQT9dkS7U/aRzXhI/uQ6/kcc1VLpqQ7dx6Q6OFIRREmi6FNDTz/dfeIa7v/5i7Tdz\n2U4YWQ3xMGYySMZ0kym4YumC+lJxxtz13DkM71nFcCqAaevEMz5sRxuT/V3E586DkHhcOhLoCibZ\ncWA5ewe7ieUNUrZ70lzLSszKmQnCBLgfN2+Z8IqGMqiZu51YGwFU1K4ZaIV/Cya8ItGFpN3IY2g2\nncGCRoRQUT8hJB5fBjPrnbKlilbIZRNCEip0AxFIgt4sLt0h4MnSEUjh++C9vLArwRV3PcNwsvY0\nnd7lGnu/8HbkkcWMPHI1I4mQ6iyS8xTKy7XRNVEi6xldI8Uz3tHCvqkQwkErBCJiOS/RnIElNUwE\ng0xMTJ5jM1Mchz1IbMS4ALGDmpKbpWZ0skihopSdHP99FNOUDqNmqHbUGk0gsKVgOOel08jRFwtP\nqN6lsMfi0mzaCuIs43UmHFsjknbhN3I4UkPXbAKeHImsj45AWUvu3atZv+gA77hR52v31X79+w44\nrLztCfa++wv4g0mG4mEcKUjnDSxbBVWK4W9QuhexzNThGKe8alaqZ+hYrCR4Y6GCQ+MZmuKcs9SY\nIMOduLkZMYlT11f4v1kj+8lC7QI1123Non4/YdQfv/jIDec96MKhzWWOUagtYjk6w0m10A95M4Wy\n+LFh9nTegySHx6X0+3xGHtPS8a84hieYRHRfyz/edydfe7KB1gh+4NIhfL4BjMFuhhKhUdctZ7lG\nZ6BM3j0qyDnh3m1t1IAyto5VQYcwi9pYH4/J2LXTeGZNbl699FU/ZFYQg3E5H80hjtpSKJs3sKVG\nzHITM6feSk5klUJtLO3DGWd3xeCDabtI5zxkTTe6kVddQOa/zPlXRrjhmuqu1wRSDmyLgy8zOkOq\nz3OPceWSubFROykhZqp7iltuEoV/kxmSg5p5IlROTJ4qZ3JWG1O8iqT/qyfoOqabJCq40uwSeIl6\ncMrDvrbUyDk6AzkPCbOy4+JIjZzlnlQsM1XoymEVyjvSh5Yik0H43SA9uy/g4cfqL+vY8ffvgj2r\nSD97LkPxUszWKovSxTPeMXrgUdPNYN5DztELTRamdpiPoYxlssQrh+qD2qw2JkhjUzkqlEX1bprp\npRq1IFGRvlS1Axs892FUNknpQRJkHBcDOS95RxuTXT4WwXAiWNZ5XigJ6LLjc6ab3Ktrkft6ecOK\ntfzdDRfWfY3rv/IdOPsPmFIoIRgYLSWRUm3GqhlKkLH1wnVXNyCncN99TF36sr/K6zCL10xF0ryf\nEM9XfD2G+nU2Y0N0JtCPWkMdbw+qyRhEpTbNY2zeX9Q00JB4dRufbqGP+0XaUnWYD/syuDSJ7SiZ\nZ4+mhjHL0UhlfHjcJvt9R3nqcJYP3iq491vVI8lXX65zXsda2henYfkBwqt3o4USOEcWj86KUorR\nhm8pSydl156pGaV6ZkOthaizfGYCm1fIsXnKY6LAn07M5ZwQRpi+Wq4cyqjGR60cBGnbRdQ0GMkb\nE2SCLdtFLD0xgiaExHBZeFwW+NN0nvcUa1Zu5b3ra9OVuHze2fzDpy0+4r8Ftm5EtEcJdURwlYXq\nRzXBLRcpu7b5IYoamKoZUoLJgxGTMUv3mcbi4U683IOokoMdBFYdz4XNMOajMhxqyx6vHz9qv26q\nGX2eOzcu+ifpCiUIGHnmt8XonT9Ad0cENAfx5l9DIgSaA2k/I74jrP7Mf6oP0BwiCTWThUJ+4n0b\n4AUBz56LfOlMSAVg2UEEkHj5NLYdXMZQIkTGdDMYD5N1lPRZNYoZ+LUMRsU15fgWr7+ZW/tMY8nx\nZdy8DRcXTXmchVpHzZUmKsUF8UKmJ8k3jXJd2qhsUCOmh7Arjy4kbk3t7kVTAVyaw6L2KF2rd2M6\nGsb8AdizCrxZ5O7V4LKYt9zDyOduU8m1m7Yg3vB7AO6443r4RjccXoKMtpMZ6kLaOq5YG8aZLxHo\n70E/vISc5WIkGURCTYaUofZZBpQR1dMreU4YU61kUTJhK1B5a3OFAVROX7Ws8UZIokZzF5XzHuOW\ngS4c3EISdptYjs5QIsSWA8uJGXn0jI95Rxcxv3sQ1r6KGQ9jC4kH0I4ugqWHYHEppnj33fdz11c/\nDIkQ5sB8YsmgWhOZboyDy1jUNYTjaCSzXhypVTWkfOE+6t3dqqQvX4k5Y0wprqOthnEnA+wC1k/7\nFZ04bJT/v5jpGSSK6wpB5dopW2rYEvI5jS5PDsvRSWW9vLrzFDqDSey8QfelTxB5/DJGou14jTxG\nIkR35zCaP80ZF5ccrwc+txZW7oX9K7DjYdJDXQwngshEEAHsObCcY9H20cK93BRi+sUoaL2LmUaU\ng2d9AKKIZASbbTUdawM7mHo3e7ZRHt6erq2AYvfEqXAQRPIGjoSRlKp9iqQCHBruZMf9N/HqoaUk\ncx4SGZ8Kc6/fAeteYdvjH2fn98/ijKUdLEutg19eDiv2k816iaQCRNMBYukAw8kgA/Ew+UKnipEK\nzcds1N/3CPUZko3ab2qkPnhOBCBKeGmvYzL3oULmc2UNVcSDcvumy5Vto3p1r6HZhF0mupCE/Wk8\nLhuvO49Lcwh6VR5BRyjB8pV7CSw6ih5rgzW7lKCJP43877eT9WbpT4Q4vPMU0nnPmH7AA4WN25G8\nMSGbwUa5aI0oPCVgEnGEsczpAESJPBk+jY/JJHUmkkFJGruYW1G+HCW3bzpcjzjVjSnv6ERNwTwj\nT85043HZhU1ViSMFhstmKNYGu1fTNdRFyJMj6Db50c5trPEs44ysl+G+BcQKBYmOLBlSND11uGWI\nxmYWm/oCDuOZM26ewiHHP5Hj3prfkUUtTndxvOKPMwuT0q59s+9LoqJi1c5rFbITsqZB1nQVRDFV\nhoSUKhXItHViiRCRZJDk0UX85es2sjG0mmSh7MORgpAvi5SMllnkC3tcScs1ZlaSKN3BRgypqBV/\nPPIvc8yYFDY7kFW9+7FkUJG+uZB6VM4+lNsyudBX42SorFRbznAhMyFeVhKRNQ1sR2Vwx9L+UhWs\nrUNElXyEgkkMl1VoGFf6FLNCcwIbNSM10hQhT3NaFc1JY8rzdZxJq1GmJgqFXhtziyRT1+Ecz3mr\nhY8ljHbnSGYrr049LgtPOA7tUaTpRiw/QNe5z6oNYE8Ob6FljtJIF1hSkC9kQTiorJD6pfbVTNQs\nvfc5aUwAKd7U0PtizJ1s83JSqNG32UaVrnJOSemhz5gGsTHrHYnXUDHV9nAc97KD5F9Zx9CO9Qy8\nsg59uJPuKx9lzenb2XDDg6MGBaq4r+ji9dOYIYFyC5sV1Z1jAYgSDvtxOIzGkrrfmwVeQpV5z2du\nJMiCGoVN1B89QPOEOy3U7FBpZM46Ljy2g0d3CusglZyqaw4uzcFn5NHbo5h9C+g/uIz+eJiAkcfJ\neuno70FIgae/h572CJGUn7ylAhLFsohGXNhG+3zNKRHKekjyJsLsavj9c6VidzzFnnnzaU7f3WKD\n7A6qP1CWo5PJG2gCTl12ELeQhLxZNG+WxL5e+mJtZAqqQ0cK66ewL8P6VXtY0D3I7r4FZGydqOVm\nhMbcszyNFVzmmdoA57QxORwlx7fx8IGGz9GHcmXCzF7Vo0oMotY9HdSvKjueHCUDrRWPy2L+qX9E\nX3yE7IsbGEkGiaX9pAryXVYhAzye8eEPphDCIZXzkLBcWDTm2lkwQbqrFootjKYKa81pY4IUGT6E\nxhLcXNnwWYrN1dzMbl2+8UjUw5GmOc0PihkHi6sdCAQ9WY6NzGPBsoOIBX1En7iUIyPzGEkFiKb9\no+FvgHmBFDv29nIkESZeyHiotrE6GYdQBlHvVsEe1KBTjTluTAA2NttwcQXiOFc/+wr/r2H2STFX\nYy+lwkAPjUemJJM3UrCkwJBKCbbIqWt2kX/5NAZ/fg2RVICDw51EUhMdz/5ECFsK4pYxKildD8X2\np/XuIQ1TX3R3jqUTVaYNE9GkscNAyWV1MXu6b9RDCJWO1Cg6JaMsp9vIIgQEPFl6wnGWdQ2xuKef\nV/avYDgRoj8eHhVHkZLRQr+MrauoINS9ThpBGVE95f5Fgf5K66pohXSiORsaH0+Sc5t2ruICdk/T\nzjizSKBG5HpLEIrYVH7oXZqN123i9+QIBZNoC/pwHI2sqVSGMrbGSN4gYhqkbRdp24VEYKNmiloN\nqXgPUeozpHjhfY0EKF4zxmSzhSSXNvWcOVQI/QCN+eIzmTzKmPZSCn3Xg40K3thl73VQZezdbTE2\nbtpC18at9O1aQ6gthiMFeUeQsFTianmakIPK5K4lBG5TkpmuNchQ7Lv0EsqVbzRb5DXj5gFonEaA\nH6Nz6nScflbrnFfDjXJtobZ+UOV4KIXNe3wpzt/wItGReRzu70HXHCxHYygVIGaOdQxt1IAVpbox\nm6j9wSHqG9RM1ExUq2gKVHbzXlPGBKCziQA/QauiudcoHaiIX3u1A2cxQZSB1KOQ5EGtpbqFQ48/\nhVtIUnnVZcJ0BPY4J0miDKOW8HcxHajekotDlKpw66FlTGWEeBF9Grs5FYXyT5u2Tzj5CEprhOV1\nvE8DwsjR2U2Oi7AmKc0SU81GWUpRvXrdshGU29hoPl7LmMYRYjv6CSheDwKLOL5w82yifI9JSUIe\nP8VGDKCCEI0U/eVRRtd4PkyJljFNIESAH+Dm6un/KFRmgMHcXVNNRhsTZch0Kq+5KhXm1bJmqkRR\nA6KWkvtaqWRMdW28CCHWAvcBm4BPSCm/VOG4+4GzUAPCc8BfSyltIcTFwM9QQSKAh6SUd9VzDc0j\ngckDJ8yYBlCjdDHcvIq5k0Bbicm06TQqa6Y3MuNUIkJJ1ms6JKUno66ZSQjRhXKR3wZEpjCmK6SU\njxW+/i/gN1LKbxaM6WNSymurfM4Jmy79fA83Nx13dkQjBFGtQ+G14QJOJ+UVxdun+bOaMjNJKYeA\nISHENVWOe6zs2+dgTB3EjBqQ07wbPzoG7zzhn52k9IdfwdQ9aFtUJoaafRrJ12sm0zogCiFcwM1A\nuXGdL4R4UQjxiBBiejZ86iTNu072JbAftfl7mLlZ7dtscpR+V/s5+YYE05/ouhnl4v228P0LwDIp\nZVoIcSXwU1Te6EknxQ0EePCkXkOO0r5K+bpi3Um4lplIhFKNWTGh9kRg8hQWT1U9rqoxCSFuAz6A\nuv6rpJQ1NeUTQnwK6JJS3lr8mZQyWfb1o0KIzUKIeVLKkVrOOZ2YPER0Znmgo0xH58AWzaeqMUkp\nN8OkPVsqPnlCiPcDl8NYIQYhRI+Usr/w9TmoAMgEQ5pscdeixUyn3mheD/A8aqvAQa2hT5VSJoUQ\njwDvk1L2CSGKsm1J1Iz2kJTyLiHEh4EPoWboDHCnlPLZZt5QixYnixm5aduixWyktb3RokWTOKnG\nJIR4pxDipcK/Z4QQp1c4boUQ4vdCiF1CiB8UQu4tWswoTvbMtBe4SEp5JnAX8O0Kx90D/IuUcg0q\nVet9J+j6WrSomRmzZhJCtAPbpZRLJ3ltEOiRUjpCiPOAz0gprzjhF9mixRSc7JmpnPcDj47/oRCi\nE5UHWEwcPoyqamjRYkYxI9YeQohLgFuAC072tbRo0SgnfGYSQtwmhNgqhNgihFgghDgD+BZwrZRy\ngiCOlHIYaBdCFK91CUrrsEWLGcUJNyYp5WYp5UYp5SZUovSDwM1SyqmUs54Ebix8/R5UTVSLFjOK\nkxqAEEJ8G7gelTAtAFNKeU7htfKMil7ghyi9kq3ATVLKE5Xn2KJFTcyYaF6LFrOdmRTNa9FiVtMy\nphYtmkTLmFq0aBItY2rRokm0jKlFiybRMqYWLZpEy5hatGgS/w/WDE1STfWSJwAAAABJRU5ErkJg\ngg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xac9e940>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_set = mandelbrot_set3\n",
"mandelbrot_image(-2.0,0.5,-1.25,1.25,cmap='gnuplot2')"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\IBM_ADMIN\\Anaconda3\\lib\\site-packages\\pyopencl\\__init__.py:206: CompilerWarning: Non-empty compiler output encountered. Set the environment variable PYOPENCL_COMPILER_OUTPUT=1 to see more.\n",
" \"to see more.\", CompilerWarning)\n"
]
},
{
"data": {
"image/png": "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\ngg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xbc8dd30>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_image(-0.74877,-0.74872,0.06505,0.06510,maxiter=2048,cmap='gnuplot2')"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\IBM_ADMIN\\Anaconda3\\lib\\site-packages\\pyopencl\\__init__.py:206: CompilerWarning: Non-empty compiler output encountered. Set the environment variable PYOPENCL_COMPILER_OUTPUT=1 to see more.\n",
" \"to see more.\", CompilerWarning)\n",
"C:\\Users\\IBM_ADMIN\\Anaconda3\\lib\\site-packages\\pyopencl\\__init__.py:206: CompilerWarning: Non-empty compiler output encountered. Set the environment variable PYOPENCL_COMPILER_OUTPUT=1 to see more.\n",
" \"to see more.\", CompilerWarning)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"10 loops, best of 3: 20.6 ms per loop\n",
"10 loops, best of 3: 173 ms per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set3(-2.0,0.5,-1.25,1.25,1000,1000,80)\n",
"\n",
"%timeit mandelbrot_set3(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## PyCUDA\n",
"\n",
"Modified from http://wiki.tiker.net/PyCuda/Examples/Mandelbrot"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import pycuda.driver as drv\n",
"import pycuda.tools\n",
"import pycuda.autoinit\n",
"from pycuda.compiler import SourceModule\n",
"import pycuda.gpuarray as gpuarray\n",
"from pycuda.elementwise import ElementwiseKernel\n",
"\n",
"complex_gpu1 = ElementwiseKernel(\n",
" \"pycuda::complex<float> *q, int *output, int maxiter\",\n",
" \"\"\"\n",
" {\n",
" float nreal, real = 0;\n",
" float imag = 0;\n",
" output[i] = 0;\n",
" for(int curiter = 0; curiter < maxiter; curiter++) {\n",
" nreal = real*real - imag*imag + q[i].real();\n",
" imag = 2* real*imag + q[i].imag();\n",
" real = nreal;\n",
" if (real*real + imag*imag > 4.0f){\n",
" output[i] = curiter;\n",
" break;\n",
" };\n",
" };\n",
" }\n",
" \"\"\",\n",
" \"complex5\",\n",
" preamble=\"#include <pycuda-complex.hpp>\",)\n",
"\n",
"complex_gpu = ElementwiseKernel(\n",
" \"pycuda::complex<float> *q, int *output, int maxiter\",\n",
" \"\"\"\n",
" {\n",
" float nreal, real = 0;\n",
" float imag = 0;\n",
" output[i] = 0;\n",
" for(int curiter = 0; curiter < maxiter; curiter++) {\n",
" float real2 = real*real;\n",
" float imag2 = imag*imag;\n",
" nreal = real2 - imag2 + q[i].real();\n",
" imag = 2* real*imag + q[i].imag();\n",
" real = nreal;\n",
" if (real2 + imag2 > 4.0f){\n",
" output[i] = curiter;\n",
" break;\n",
" };\n",
" };\n",
" }\n",
" \"\"\",\n",
" \"complex5\",\n",
" preamble=\"#include <pycuda-complex.hpp>\",)\n",
"\n",
"complex_gpu1 = ElementwiseKernel(\n",
" \"pycuda::complex<float> *q, int *output, int maxiter\",\n",
" \"\"\"\n",
" {\n",
" float real = q[i].real();\n",
" float imag = q[i].imag();\n",
" output[i] = 0;\n",
" for(int curiter = 0; curiter < maxiter; curiter++) {\n",
" float real2 = real*real;\n",
" float imag2 = imag*imag;\n",
" if (real2 + imag2 > 4.0f){\n",
" output[i] = curiter;\n",
" break;\n",
" };\n",
" imag = 2* real*imag + q[i].imag();\n",
" real = real2 - imag2 + q[i].real();\n",
" };\n",
" }\n",
" \"\"\",\n",
" \"complex5\",\n",
" preamble=\"#include <pycuda-complex.hpp>\",)\n",
"\n",
"def mandelbrot_gpu(c, maxiter):\n",
" q_gpu = gpuarray.to_gpu(c.astype(np.complex64))\n",
" iterations_gpu = gpuarray.to_gpu(np.empty(c.shape, dtype=np.int))\n",
" complex_gpu(q_gpu, iterations_gpu, maxiter)\n",
"\n",
" return iterations_gpu.get()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's check it is correct"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\IBM_ADMIN\\Anaconda3\\lib\\site-packages\\pyopencl\\__init__.py:206: CompilerWarning: Non-empty compiler output encountered. Set the environment variable PYOPENCL_COMPILER_OUTPUT=1 to see more.\n",
" \"to see more.\", CompilerWarning)\n"
]
},
{
"data": {
"image/png": "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\ngg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xe8da9e8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_set = mandelbrot_set3\n",
"mandelbrot_image(-2.0,0.5,-1.25,1.25,cmap='gnuplot2')"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nurikCP8Foxb/V5d1ansAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xeda8208>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mandelbrot_image(-0.74877,-0.74872,0.06505,0.06510,maxiter=2048,cmap='gnuplot2')"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10 loops, best of 3: 31.9 ms per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set3(-2.0,0.5,-1.25,1.25,1000,1000,80)"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1 loops, best of 3: 193 ms per loop\n"
]
}
],
"source": [
"%timeit mandelbrot_set3(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Number of iterations\n",
"\n",
"Total running time isn't the only way to look at results. Time per iteration is also interesting. We have two flavors of code, those who loop first on pixels, then on iteration of complex computation, and those who loop first on the complex iteration using array operations. The average number of iteration is way lower in the former case. Let's compute it.\n",
"\n",
"We must be careful though, as we set to 0 the pixels that did not escape horizon. let's use a code variant that does not do this."
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from numba import jit\n",
"\n",
"@jit\n",
"def mandelbrot(creal,cimag,maxiter):\n",
" real = creal\n",
" imag = cimag\n",
" for n in range(maxiter):\n",
" real2 = real*real\n",
" imag2 = imag*imag\n",
" if real2 + imag2 > 4.0:\n",
" return n\n",
" imag = 2* real*imag + cimag\n",
" real = real2 - imag2 + creal \n",
" return maxiter\n",
"\n",
"\n",
"@jit\n",
"def mandelbrot_set4(xmin,xmax,ymin,ymax,width,height,maxiter):\n",
" r1 = np.linspace(xmin, xmax, width)\n",
" r2 = np.linspace(ymin, ymax, height)\n",
" n3 = np.empty((width,height))\n",
" for i in range(width):\n",
" for j in range(height):\n",
" n3[i,j] = mandelbrot(r1[i],r2[j],maxiter)\n",
" return (r1,r2,n3)"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"23.46311\n",
"582.160638\n"
]
}
],
"source": [
"(r1,r2,n3) = mandelbrot_set4(-2.0,0.5,-1.25,1.25,1000,1000,80)\n",
"print(n3.mean())\n",
"\n",
"(r1,r2,n3) = mandelbrot_set4(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)\n",
"print(n3.mean())"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
@dferens
Copy link

dferens commented Nov 27, 2016

👍

@thesmiler
Copy link

Hi, any chance you can add an open source license to this Notebook?

@skintigh
Copy link

Wow!

@HRLO77
Copy link

HRLO77 commented Jan 13, 2024

Very nice

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment