{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# AI4M Course 1 week 3 lecture notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# Explore the data\n", "\n", "\"U-net\n", "\n", "In this week's assignment, you'll be working with 3D MRI brain scans from the public [Medical Segmentation Decathlon](https://decathlon-10.grand-challenge.org/) challenge project. This is an incredibly rich dataset that provides you with labels associated with each point (voxel) inside a 3D representation of a patient's brain. Ultimately, in this week's assignment, you will train a neural network to make three-dimensional spatial segmentation predictions for common brain disorders. \n", "\n", "In this notebook, you're all set up to explore this exciting dataset. Run the code below and tweak it to explore further!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Import packages\n", "For this lab, you'll import some of the packages you've seen before (`numpy`, `matplotlib` and `seaborn`) as well as some new ones for reading (`nibabel`) and visualizing (`itk`, `itkwidgets`, `ipywidgets`) the data. Run the next cell to import these packages." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Import all the necessary packages\n", "import numpy as np\n", "import nibabel as nib\n", "import itk\n", "import itkwidgets\n", "from ipywidgets import interact, interactive, IntSlider, ToggleButtons\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "import seaborn as sns\n", "sns.set_style('darkgrid')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Loading Images of the brain\n", "Run the next cell to grab a single 3D MRI brain scan" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Type of the image \n" ] } ], "source": [ "# Define the image path and load the data\n", "image_path = \"BraTS-Data/imagesTr/BRATS_001.nii.gz\"\n", "image_obj = nib.load(image_path)\n", "print(f'Type of the image {type(image_obj)}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Extract the data as a numpy array\n", "Run the next cell to extract the data using the `get_fdata()` method of the image object" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "numpy.ndarray" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Extract data as numpy ndarray\n", "image_data = image_obj.get_fdata()\n", "type(image_data)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The image object has the following dimensions: height: 240, width:240, depth:155, channels:4\n" ] } ], "source": [ "# Get the image shape and print it out\n", "height, width, depth, channels = image_data.shape\n", "print(f\"The image object has the following dimensions: height: {height}, width:{width}, depth:{depth}, channels:{channels}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see these \"image objects\" are actually 4 dimensional! With the exploratory steps below you'll get a better sense of exactly what each of these dimensions represents.\n", "\n", "### Visualize the data\n", "The \"depth\" listed above indicates that there are 155 layers (slices through the brain) in every image object. To visualize a single layer, run the cell below. Note that if the layer is one of the first or the last (`i` near 0 or 154), you won't find much information and the screen will be dark. Run this cell multiple times to look at different layers. \n", "\n", "The code is set up to grab a random layer but you can select a specific layer by choosing a value for `i` from 0 to 154. You can also change which channel you're looking at by changing the `channel` variable.\n", "\n", "Keep in mind that you could just as easily look at slices of this image object along the height or width dimensions. If you wish to do so, just shift `i` to a different dimension in the `plt.imshow()` command below. Which slice direction looks the most interesting to you?" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Plotting Layer 88 Channel 3 of Image\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Select random layer number\n", "maxval = 154\n", "i = np.random.randint(0, maxval)\n", "# Define a channel to look at\n", "channel = 3\n", "print(f\"Plotting Layer {i} Channel {channel} of Image\")\n", "plt.imshow(image_data[:, :, i, channel], cmap='gray')\n", "plt.axis('off');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interactive exploration\n", "Another way to visualize this dataset is by using IPython Widgets to allow for an interactive exploration of the data. \n", "\n", "Run the next cell to explore across different layers of the data. Move the slider to explore different layers. Change the `channel` value to explore different channels. See if you can tell which layer corresponds to the top of the brain and which corresponds to the bottom!\n", "\n", "If you're feeling ambitious, try modifying the code below to slice along a different axis through the image object and look at other channels to see what you can discover!" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "178a91296a37420f9bbd7f04aed50b67", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=77, description='layer', max=154), Output()), _dom_classes=('widget-inteā€¦" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Define a function to visualize the data\n", "def explore_3dimage(layer):\n", " plt.figure(figsize=(10, 5))\n", " channel = 3\n", " plt.imshow(image_data[:, :, layer, channel], cmap='gray');\n", " plt.title('Explore Layers of Brain MRI', fontsize=20)\n", " plt.axis('off')\n", " return layer\n", "\n", "# Run the ipywidgets interact() function to explore the data\n", "interact(explore_3dimage, layer=(0, image_data.shape[2] - 1));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Explore the data labels\n", "In this section, you'll read in a new dataset containing the labels for the MRI scan you loaded above.\n", "\n", "Run the cell below to load the labels dataset for the image object you inspected above." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "nibabel.nifti1.Nifti1Image" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Define the data path and load the data\n", "label_path = \"./BraTS-Data/labelsTr/BRATS_001.nii.gz\"\n", "label_obj = nib.load(label_path)\n", "type(label_obj)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Extract the data as a numpy array\n", "Run the next cell to extract the data labels using the `get_fdata()` method of the image object" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "numpy.ndarray" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Extract data labels\n", "label_array = label_obj.get_fdata()\n", "type(label_array)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dimensions of labels data array height: 240, width: 240, depth: 155\n", "With the unique values: [0. 1. 2. 3.]\n", "Corresponding to the following label categories: \n", "0: for normal \n", "1: for edema\n", "2: for non-enhancing tumor \n", "3: for enhancing tumor\n" ] } ], "source": [ "# Extract and print out the shape of the labels data\n", "height, width, depth = label_array.shape\n", "print(f\"Dimensions of labels data array height: {height}, width: {width}, depth: {depth}\")\n", "print(f'With the unique values: {np.unique(label_array)}')\n", "print(\"\"\"Corresponding to the following label categories: \n", "0: for normal \n", "1: for edema\n", "2: for non-enhancing tumor \n", "3: for enhancing tumor\"\"\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualize the labels for a specific layer\n", "Run the next cell to visualize a single layer of the labeled data. The code below is set up to show a single layer and you can set `i` to any value from 0 to 154 to look at a different layer. \n", "\n", "Note that if you choose a layer near 0 or 154 there might not be much to look at in the images." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAADeYAAANJCAYAAADTXA0aAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd7gkVZ34//fMMAw5S1BAEPSDiqwBReWroq45IbrqGnF3VTDnVdaAuq5Z1/ATXRVBVwVzWMyuKIqCGFnEj3EQRSQHYYBJvz9OXaa7bnffrr6d7r3v1/PM80xVVzi3uvrU+dRJyzZu3IgkSZIkSZIkSZIkSZIkSZIkSZIkSerP8kknQJIkSZIkSZIkSZIkSZIkSZIkSZKkhcSOeZIkSZIkSZIkSZIkSZIkSZIkSZIkNWDHPEmSJEmSJEmSJEmSJEmSJEmSJEmSGrBjniRJkiRJkiRJkiRJkiRJkiRJkiRJDdgxT5IkSZIkSZIkSZIkSZIkSZIkSZKkBuyYJ0mSJEmSJEmSJEmSJEmSJEmSJElSA5tNOgGSpOkWEVsAjwceBNwR2AXYFljWstkdMvNnE0ietKhFxAnAU1pWPTUzT5hMaiRJkqThMdZcfCLiMODbLau+k5mHTSY1kiRJGhbL7tLCEBHHAq9uWXViZh45mdSoXxFxKnCvllX3zsxTJ5MaSZIk9ctYWQARsbG2at/MXD2JtKg/1mdKGhU75mnR6NB54bzM3GcyqdE0i4gjgQ8P+bBzFs46VIYM4tLM3GWex+hbRNwN+CSw57jOuRB1qDCZ8eLMfNsAxzuM9sI/wMrMXNc8dZIkSZoPY031y1izf8aa/ekRaw4sM5fNvZUkSQuTZXf1y7J7/yy798d6IkmSJE0rY2X1y1i5f8bK/bGeS5K0lNgxT5KGY9FVhEXEAcA3gK0nnZYF7OUR8YHMvGrSCZEkSZK0IBlrSpIkSQuDZXd1Yj2RJI1RRDwf2KFl1QnOWCJJ0kQZK0vSIhYRtwcOb1m1OjNPmFBypImyY54kDcdXJp2AEXgn7QHkOuALwI+Aq4DWabjPH2O6FpKdgRcx/1F9JEmSJC1NxpqSJEnSwmDZXZ1YTyRJ4/V84OYty6cCqyeSEkmSBMbKxsqSFrvb0/7e6zvACZNJijRZdsyTtBT9ADh6Hvs/CziwZXkd8NEBjvND4MSG+6wZ4DyNRcQ+wP1aVm0EHpqZXxvH+ReZF0bEezLz4kknRJIkSdJIGWvOwVhz3n4DvH3SiZAkSVoELLvPwbL7UFlPJEmSJGkhMFaeg7HyvFnPJUlatOyYJ2nJycwEcpB9I2Jb4G211adk5kUDJuV9g6RjDP4fsKxl+YcGkAPbBjgGeMGkEyJJkiRpdIw1+2KsOT8XTPF3K0mStGBYdu+LZffhsZ5IUleZedik0yBJkgTGyn0yVp4f67k0cZl5Ku2/Y0kaiuWTToAkLTCPAbaqrTt+EgkZsVvXln88kVQsXBfWlo+OiL0mkhJJkiRJC4GxpiRJkrQwWHZXP6wnkiRJkrSUGCtLkqQlzY55ktTMU2vLfwW+PImEjNgOteXLJ5KKheujwHkty6uAYyeTFEmSJEkLgLGmJEmStDBYdlc/rCeSJEmStJQYK0uSpCXNjnmS1KeIuCVwaG31RzNz3STSM2L1EWw2TCQVC9cNwKtr654SEQdMIjGSJEmSppexpiRJkrQwWHZXA9YTSZIkSVoSjJUlSZJgs0knQFrIImIVENW/3YDtgLXAZcAFwBmZednkUjh/EbE7cGdgV+AmwPXAxcBvgB9l5kiCi4gI4A7AzYAtgauA/83M/xvF+fpUH9kF4MNjT8V4LBv2ASNiM+AQYB/K/bSKci/9FTh9lL+VCd1PHwVeCtymWl4BvA74hxGec5bFcN0jYivg7pS8dgdgDfB74Lv9pD8itgXuVu2/HXAFsBr4dmZe2yQtXY6/B3AAsB+wPbAFcCXlWXAOcPao8kpJkrQ4GWsaa2Ks2bfFEPNMu4i4E3Br4KaU7/CvwE8z8+cjPOcy4O+AW1HyiO0pI89eBJyZmeeP6LzGn5KkRiy7W3bHsnvflmDZ3XqiiP2Bu1Cu+wrgEuDXwA8yc+2ozjuIqtPkbSn53E6Ue+RiSuzz6xGdcxlwJ0rssyvl+XEx8JPMPHtE59yO0mj6lsC2lHjiAkrMc8kQjj/R52J1v98VOJDyPa6hxJFnZOZvh3yuHSi/rd2BXSi/rauBPwG/BH6dmRuHec4GaduC8j0fQIltr6b85r+fmX8a0jk2q85xC8p3vR74M3DWqH4zS11E7Ep5Z7EvsDXl93sO5Xu9vo/9b0r5fexDeZ9wMXAuJU9eP6Q0bkF5L7IXJT9dUZ3ngiqdfxvGeTqcdxlwO+AgYA/K7/Fy4JTMXD2Kc0rqbdJlgnEwVm5jrDwPSzBWnqiI2IVN5ditKPnS+ZSY6KoRnfNASuy3O7CR8v2eQyk7zzuvmHTdUUTsSSkD7k25fy8F/gCclplrhniemTJfUGKwHSkDI11GeddwdmZeOazzDZC+kb8Dqa71XSll3pl6yKTkFfOuh1S7iFgOHEyJM3ah/H7/TLnev+9j/xWUe+J2wM7AdZRy0KmZ+dchpnM/4PaUZ8iOlN//xcA5mXnOsM7T4bw7UH77M3nPWuC3mfnZUZ1z2tkxT2ooIvYFHgvcn5KhbNFj840R8XPgXcDHMvOGOY69HPgdpZA942mZ+cEB03oi8OSWVSdl5j/2sd+WwNHVvgfRPaC4LCI+A7yuSYOoiFgN3Lxl1b0z89TqIfQvwAspDa/qXgNMpNBffTdPrq0+IzN/OYn0DFtEHMvskTtbvToiun2+b6+XmRFxW+AVwIMphcFONkTEj4B3Uu7TvisppvV+yswNEfEKoLWQ8aiIuFNm/nhU552xUK57RBwGfLvl8/Myc5/qs92q7Z9MCf7rboiIjwAv71RZGBE3B44FHkfnvPq6iHgf8OomgXVEbA48ADgcuDel8qOXqyLi08BbMvNX/Z5HkiQtLcaabYw1jTXBWHOiqr/zecBzaM87Wrc5D3grcNwQG3DtD7wceCil8qDbducC7wY+2G9llvGnJGlYLLu3sexu2R0su3e0VOuJqs8eAbwKuGOX3a+OiPcCb5hwo7k9gH8FjqB0Ium23R+ADwL/2W9Dt4jYh9IQ8UaZuaz6bCUl1nohpcFep/3/CPw7cPww4q0qPa8DHgNs3mGTjRHxTeBlmfmThsce2XOxdp7D6B7TbQ28DHgmpUNep/3PBV6VmZ/u95wdjrGKkq8cSbm/l/fY/KKI+BpwAmWwlo6/r4g4FbhXy6obf0tdtj+S9obu38nMw6rPdqHk5U+ldNzqtP8ZwDGZ+b890t5VROxIiX+fSPdrfTbwH5l5Upc0n5iZRw5y/i7nO5X2a9jq26W9eVez0jKM9A7wvR5L+3P4xnNGxB0p+cED6HzPXRoRbwHe1mlmoog4lPLMuw+dy3QXVed//6ANtiPi7pT3Ofel83sVgLURcRrlncVXGx6//vvZNzNXR+kI+HzgWcCeHXa9hvIblDQGxsptjJWNlcFYeewi4gTgKS2rXpOZx1afHUSJiR5C6TRVty4iPgf8W2b+ZghpWUaJG15G5+sMcElEvBV4Z2Ze1+DYY6s76lCufWpmnlB9dk/K/XJYl92vq+rWjs3MvzQ5by0NBwEvAR5I6RzVzfqIOAv4DKU8fVGX4x1Ge2x5Y0zVIw2rmeA7kIh4ECUvugudnz1rIuK/KfWQf+mS5p55UsP0HEb7NWx1rw7l97pZaZlvegf8XrvFGZtT8sjnUTrUdtr3W8ALOg2sVL2jeDElTrlJh903RMSXq/0HGkQoIrahxEJPAfbvsd35wEnAG5t09J4jRj24+uxBzM5Pz6P9XeiS0uslkaSaiDiaMkr2GygFml4BJJQH4O2B44GfVI2Luqpecr23tvroAdO6M+XFeqv6sTvtdzjwW+BtlNH5eo3ysRPwNODXEfGcQdLZct5dge8C76N7QXSS7s/sipHFOrLLUETEZhHxbuAXlIZp3QJIKM+jQ4CPA2dFxC3mee6puJ8y83PAmS2rlgH/McpzLpbrHhH3oIzY8gy6v7zfnPKi4Ef1/DUiHgmcTQlwu+XVMy/qf1ClvV9/BL4I/BNzB7ZQvoN/As6JiGOqwFuSJOlGxpqzGGuqq8US80yziNgbOIvye92nx6Y3p3SO+3ZEdGyM1+Ccm1ff67mU+GmuGO3WlLznnIi4zRzbznVu409JUt8su89i2V1dWXZfkvVEW0TER4HP071BGpSZ2v6VUr6+eY/tRiIilkXEqyiNu59Hj055lX2B1wO/q+KH+Zx7L+CHlDy2Y6e8yt7AfwGfrTqezOecj6E0rH0inTvlQbk37wecERH1htW9jj3S52Kfabgd5X5/BV06ilVuDXwqIo6rGpA3Pc8jKX/reygj5s91jF2BJwHfAu7Z9HxNVY0QzwWeTZdOeZVDgG9FxDEDnOM+lNkYnkvva3074BMR8amqA4MGFBHPpTxHHkT3e25n4I3AV+rXOyL+HTiN0mGuW5luV0oZ8eNVQ/0m6ds6Ik4Gvk8ZZKnX972S0jnwKxHxjSgdSQdW5R8/peQ/nTrlSRojY+VZjJXVlbHy+EXE84EfAw+nc6c8KBMd/QPw04i43zzPtyPwVUoe1+s670IpxzWtZ5to3VFELI+INwGn0r1THpRnwdOBn0XEHQY4z/YRcRLwM0o8O1f5cQXl9/Jm4OSm52tqHO9AqvrTjwFfpvxt3b67LSnPnV9GxN83OYfaRcTNKO9t3kCXTnmV+1LeoTystv+tKXHKsXTulAclb38opQx0twHS+FBKmeR19OiUV9mL0rH19xHxlDm27efcrwTOoKS/Ufy4FNgxT2pm+x6fXUeZgrfbyAW3Bc6MMmVoLx8CWqfvvWNEHNJ/Em/0T7QHuWdn5mm9doiIl1F6Kt+0w8cbKdPedhoFcAvgXVFG4RrEtsA3gLvX1t9AmVJ1GvxTbXkN8In5HrQqnN0tIh4VEf8cEY+OiPtUjeAWrCg9/v+H8uK/07Om13d7R0pDtYMHPP203U/1So37VxUjQ7dYrntE3Bn4CqUSYcYGyrTjs0b5ozQUPSUitqr2fyTwqSpNM9YDl1fHqbsN8LkGQecOXdavp+STV3Q5z3JKxe07+zyPJElaOow1jTVnGGv2sFhinmlWNRL9NqVRRCdXUv7mVvegVAgN1Fi0agjxTcr3ulmHTW6g5IOd4sFbAqdHGf19kHMbf0qSmrLsbtl9hmX3Hiy7t1kq9USbAZ+mNJZrdT2lfNxptPRbAl+bb8ezJqqy/Kcoo/p36kCyjhIPdJq1ZXfgGxFxxIDnvinwHWY32LsGuLrLbg+nNJodSEQ8gTIyemtHrQ2U76TT37gZcEJE3LvPU4zjudhVlFlGTgXqDZSvovPzCuAoymwGTc7zWsqsC52ej1Du825xJPRuuD9v1ff1Vdobqs48t7td/9dHmRmu33PcHziFzg0LZ85V//sfTWlE7qAxA4iIZ1Li+tbGjmvpnqf+PaVD78z+bwf+jfbrfx3lu+rksZSZ+fpN366UPK3euWXGGuBvXT77e8ozZ9DOBTejvL86oMM5u+WnkkbLWNlYeYaxcg/GyuMXES8H3kF7/dN6upfftwa+GBH1cka/tgW+Tum02moN3a/zXYHPLKC6o+OAl9JezlxLuaadzrsr8PWI6NZJaZaICMoAFY+lezxxBSWe7mTUMcjI34FEmbH988Dju2xyPSX2bbUD8KVBOnsJKB3rvwXUO5JeSedyzJbAyVEGDJoZPORUync9Y6ac0OkdzLaUeudeHQDbRMTTKffFbh0+3kj3OurtKe97Gr0PqZ371cBraX9+zZxz/aDHXUzsmCcN5mLgI5QRzm4PbJGZW2bmLpm5JeVl5EMoL7lbH7A7UkZhW9ntwNVUoR+rrX5mk8RVBbSjaquPm2OfZ1J6eLcWSC6kTDd6J2BlZu6YmVtTCkpPZvaU1S+OBiPotXgDZXp3KKPnPAPYMzNXZeYOlMLuA4AfDHDseYsyGsXDa6s/k5n1Qk1Tj6Q8sE+nFNI+SKkI+hZwXkScFxH/FfMc+b1P/0MZSWjm3w9rn59S+7z136UdjvceynfW6lJKz/t9Wr7bbYFHUa5Bq10pAc4go6RN1f2Umd+ifKetRjUa6mK47lsCn6y2X0epbDwE2Dwzd6a8tLoHs6fCvhXw0oi4FSV/XkF56fXGKl0rM3Onav8HAT+v7X934KkN/t4NlN/JKymB9B6ZuVmVT+4IrAIOpAShq2v7PiciHt3gXJIkaekw1jTWNNY01pyYKKOif5rZDRpPB44AtsnMHTJzVbXNy9jUmOsQyu+66Tk3o4zqWZ914nuUyqyZa7wLZWaHgyiVhq2NrLYHPh0RnSogejH+lCTNh2V3y+6W3S2792UJ1RO9hpLvQRm1++nAXpm5RVU+3ooymvZZtf0CePkA5xvUhyl/e6ufU+6T/TNzZWbuXMU9t6SMan9xy7argI9EGQG9qU+xaTaDb1PygB0yc5vM3I7SqerpwF9q+z0lykxlTR1IacC+jNKA7B3AXSgxz07V33g7ygwxrY22lgEfjGYzZ43sudjDlpTGaDMzS3wOeCCwdWZuXz2v9qTc//UGsMdUMd2cIuKllHis9fm4kdJR7whgl+o+3zkzV1I6DM10qPzrAH9XU7tT7q1VlIZwxwP3onwHO1bXf39KLH19bd93RJnNo6eqU+nJzB6Q55OUGdC2qOLTzSkx8yvY1ED0cMp9PUpvZ9Mz6bLaZ++g+/PraODEEadtUAcB/1n9/3JKJ+9bZubmVZ66DaVD3B9q+z0xIg6LiMcDL6jW/ZnS+H/v6ne5I6XB7tNoz9+glOVirsRFmXXyE5QyYqs/Usqge2TmVpm5LWUwpCcBv6xtuz/w+QE7Z7+fTbPk/ZzyDukm1Tm3o8wK82jgVwMcW9L8GCsbKxsrGytPk/tTysFQ7qljKTHQyqoeaBUlRqrPrrYFpbwxiPdRZtiGMmvWE4Bdq3LKDpRyyuOA39T2Oww4ssF5JlV39DQ2le8vBF5EiZ1XtVzTwygDcrbaBXhrPyeo7u+vM3u2wQsodZN/R4lrd8zMbSjf152B51FmhOzUKWnYxvEO5HWUesZWfwGe03Ku7Sm/3Yez6d3TFpTn5ShnL/81m/K6j9Q++w29Y7Bu+eM0OI7yHUHpyPxgYKuqfnxLysAg9XLDlsC7q46Un6Xk0xspZZ17syk2X0XpYP2Z2v47UmZ5nFM1KM9xtA/espHyHdyD6n0PJTa/E/BuZndAfk0VLzZ1FzYNcnQ9m94xzdSLr6Jcn7cNcOxFY9nGjZ065UoLT0ScALROs3leZu4z5HM8nPLQ+mxmdhvtrL7PoZQGRq1TDT8xM+uBYus+f0eZfnfGdZRCcF8Po4h4EGWk8hlXAzfNzI6jUUXEnYDvUzLGGZ8EntYrUKqC4ffQ/iL1WkqlRb3CoHW/1UCnKXk/BTwpM+svhCcqIp5NeUC1um9m/m/D4xzLAI3UKA/OTwFHZeblA+zfWIff02sy89g+930UJShu9SPgwZl5SZd9llEKkv9W++gLmXn4HOdbzYTvp4g4lVLBMeP1mfmKls/vQpm+t9UjMvOLXY53GLMb/q3sle8s1Ove5W+F0rjzYZn5vS77bQZ8gVL4nXEpcA5wT+A84IGZ2fFle0RsA5xG+ywQP8nMeuVBp33/A/hAZtYrOrptvyWlUvPIltW/Bg7IzJ4FsQ6/xadm5gn9nFeSJA2HsWbb/saaQ2SsCRhr9tQh1vxOZh42wvO9hNkv/t8A/Fu32CUi9qBUTNy2w8dzpjci3kqptJtxPfCMzOzZMK4acfAU2ivlPpeZXWeuMP7sHX9K0mJg2b1tf8vuQ2TZHbDs3pP1RG1OBJ6emZ1GAp8Z8f1LwP1aVv+V0qhsba9zzleH3/JGSoO4t2Rm14Z7UWaF+gJlFoMZPcv0EbEPszvMQOk49dzMfG+PffeiNMDds2V1z3in2u9YOucxf6DcB107qESZOe3DtdVd79GW/cbyXKz2O4zOMd211f6f67HvQZQBYFpnO39HZr6wj3N+k/ZGbxcCR2TmnA2Wq+fkE4AzM7PeKWlmm1Npzz/unZmn9jjmkcz+rgAuAQ7PzO/32PfvKTPrtf49z8vMd3Xbp9rvC7Q3ul8HPCEzP9ljn5tRrl2nmUZOzMwje51zUB3ypp7Xs8sxjqT9GjdO7wDf67F0/v2eTXnncEGX/XajzCTSOnvQacCtKY2fv0m5XzvOIld1Mj6D9t/G2zPzRZ22b9nvRcxuWP0/wOMys+OsJRGxOWVGv6fUPnpnZj5/jvN1e6fxn8CLeuXhkoyVa/sbKw+RsTJgrNzTBOq5TmB2WQPgJ8BD5/j9Hcvs+/CgzDx7jnN2K6f8B/CKHvVrO1Bm1vq7ltU/zcz6DOud9h1n28VTaf8OZ3wNeEy3vLC6d4+vnfMG4Gbd7veWfb8J3Le2+n3ACzNzTYdd6vsHcJ/M7NjxukNs2U995mrG+A4kysyYP6Q9djuNUp/ZdYbLiHgh3TtG7ZuZq7vtO6gO8dNAv/MO17hRegf8Xjvd/xuB5/eKk6PMxFkfdOuzlMF7rgMeP8c7ig8A/9Ky6gZKeaRreSYitqMMdnKzltXXAY/MzK/22O8QynuA1pk2rwIOzMzze+x3LJ2fzRcAD8jM+iAEwhnzpEYy84uZ+cl+A8hqn+9TptNt9Zw59vk55SE6YwuajaRdHw3mo90CyMpbaA8gPw/8Y68AskrnWsooMqe0rN6KMvJAU2dU55yqALJSv/ar6fzSf1SWUUY7+1lUU95OufpUt+dTHsRdC9SZubGqoPxg7aNHVC9Vmpqq+ykzz6SM0tjq9VFGkhuWxXbdH9+tUSRAlQ8/k/YRTnamNIq8nhKEdK1grPLEel51x4jYb66EZeYx/Qa21fZrgH+iPV+/FbNHQJIkSUuUseasdBprjoexZnOTvp/uFREb5/GvayVtlNHJ/7W2+iNV/NO1Uq6qxPx7Zo9IP6eI2BeoN7x6fM7RKa86728pHeVa85PDY7BZK4w/JUl9s+w+K52W3cfDsntzU3U/LaF6oq9QBhjs2CCtOuf1lN9U63ezG6V8PTIRsS2lQWurF2fmm+bq0JGZF1FGum9tsHTHiHjgAEl5RfbolFed73w2zXQ146Ex2KxSV1Pug56zRmUZFPKU2up/mOvg43ouzuGfezV4q875C+C1tdVz/n2UwWtaG0JeBtw9++iUV513bWaekF065Q3ROkpjvK6d8qr0fJPSoLVVz+sQZSaa+kw4z88enfKqc/2Z8r6ga6NRzeky4EHZpVMeQGb+ldkN9e9B6ZT3a0pnzY6d8qr9z2V2B7vH9EpUl3dIPwYenV065VXnuoHyzuJrtY+OqjpAN/XpzHzBXHm4pPEwVp6VTmPl8TBWbm7S99PI6rl6+BPlOnftlFd5LfCL2rqe5aIe3p+ZXQe9BMjMK2jvmANwhwVSd/QzSjmza15Y/e3Ppn0W8c2BR/Q6cEQ8hNmd8t6RmUdnH53yqnNndumUN2SjfAfyUtpj0dWUTrw946vMfDtLfMayIXhzzjF4DeVdwa9r62YGU3ruXO8oKIPWtn6Xm1Nmm+/lX2jvlAdlQIOunfIAMvMMSkzfGjdtB/QcqKiLdcBD0k55XdkxTxqD6gVn65S0d65e/vdSH03kqGoUgZ4i4ua0j+ANZbSDbtvfhTJd6oyrKCOT9/XyqipAvYD2TPtpA1QkPSsz1zfcZ+Sq0fPqo1Cc0KvQ3IfVlOlkH0eZLnonYCVlStpbUwrBX+mw397Al6vR5aZSlKlyD6qtfl72PyrNi4GLaut6jo7WxTTeT6+g/XdyIDDIlMCzLMLr/sXM7PQbaJOZ51FGt6w7LucYraba/7vAH2ur55yxYBBVnvGm2ur7jOJckiRp6TDW7Ms0xgbGmg0twphnGj2G0tlsxpW0z2TXVWZeyOxGYP14Me2VSidn5mf73Tkzfwe8s2XVMuAZDdNg/ClJGgvL7n2ZyrKWZfdmLLv3tNjridYBR/fz26g67NQ7gR3c8HxNHUX76OA/BN7R785ZRi0/tsMxm0hmz1Lezedo/05W0j6TQr/emJm/6XPb99eWR/adDPhc7OQbmXlSn9seT7lPZ+wZZbaxjiLifsCda6uPatIAdow+nD0GnKmpf893mOOZXb/Pf0qPckWr6rf+mj7Tpdn+vbqGc/ks0KmR8kt7dZRr8d+15T3n6Cj3j8BNauue3k8D/6p8eRTtDZNXAUf3kc5Wa4HnNtxH0hQyVu7LNMY2xsoNTUnMBlN6P43Yv/bq/Dij+m3XO0AOEhNdTvm+5pSZZ1Fm85vvOfs51zDrjp6Vmdf1cc5rgPosqHP9fcfUln/O7EEhpsHI3oFUcWq9k9YL5uhI3upVlJne1dzF9DGDa5WPdnoX8bPM/EAf+19FmTW4Vdd646qcUx+84IuZ+Zm5zlWd7zRm52//HBHb9LN/i/dl5s/m3mzpsmOeND6to6YtZ/ZL3LrPAa0v2fajvxEKjqL9t/3dzDynx/b1Cp+Tsoz617fqZX5rkLwTswOJXn6SmT9ucs4xqo/sshE4YcBj/YAyRfK+mfnMzDw5M8/JzMszc11mXpGZv8rMD2fmg4FDgN/VjrEnswur06T+AuM8ymhBfalGdPhwbXX9mHOZyvspy0iIH62tfk1ErBzC4Rfbda8XAnv50Tz3P6u2PMjsCv2qj5551xGeS5IkLR3Gmt1NZWxQMdZsZrHFPNOoPvr9Sf1UVLY4kfbZ63qqGh/8Y231OzttO4dP1JYPa7i/8ackaZwsu3c3zWUty+7NWHbvYgnUE325GtCiX/WZvQ5oeL6mnlBbftcAjYY/RXvHrnv20wi8xfsbNOReT5nNolXTa7QB+K8G29e/k1sNeVbHuqbPxU76ngUhMy8Dzq2t7nVN6zPJnQt8ut/zjVmT2SD+j/b4fWtgrx7b18se72/42/kwMGejXc2yntn5ckeZeS1Qn5XxIuBLfe7/e8rsfK16vbOoPx9Oy8x6g/Je51vN7GdU02fOl3LuWW8kLRzGyt1NZWxTMUPlxssAACAASURBVFZuZhpitmm+n0blMqDnTM81w4hT55qJcxTn7Ncw6o5+kZmnN9i+778vIm4K3L22+o1ZZiGdNqN8B3IfSqfkGX9mdieurqr44MT+k6YWH+1nwJHKfOuN6/v3isFuA+xTW9e0Xr0+ONW2lNnWm2jyjmlJ2mzSCZAWuupl9H7Vv+0omVWnCpRb1Jb37nXczFwXEccB/96y+mig67SjEbE5ZWSQVnONVnZYbXnOUcK7+DFwl5blu1GmLO7HOKcw71tVEVavpPnfhgWqG2Xm1xpuf2ZE3JVSIN6/5aN7RcSDM/PLg6RjxA6tLX9ugEqtT9I+ysWuEbF/Zv62z/2n8n6qHEtpeLh5tXwL4Gn0OapgD4vpum+kfdr0udRnHLiM2RUPTfbfoeNWc4iI7YHbUkYH3JZSiTVXZWzP54AkSVrajDVvZKw5B2PNvk1LzDMfvwHePo/9e/126pVvfVcIA2Tmmoj4KmXmvX4cRBnldsaVmVmvEOznvOdGxBpgy2rV7SJi6+xvRHjjT0nSUFh2v5Fl9zlYdu/bYii7d3Msi7ee6NSG5/t9bXmg8nE/IqJTA+iueWk3mXl1RPyGTY2ldqQ0pqt39urm1IannO81+r8mA65k5mURcSWwfbVqOeWZdmWTk47qudjFdxpu/3vgdi3Lva7pvWvLHxvgdzUOV1BmkehLZm6MiD/QPgPjDpTG4W2q384ta6sbPXsy84qIOB1ncm/q7My8osH2f6R9hoXv99sRuGX/nVqWe/026o2l+5qloeaTwGNblu8QEVtmZqeZ/zqZ5me9pIqx8o2MledgrNy3xRArj7Keq5PvZea6uTe70TDi1FMbbj+U2HiMdUenNty+yd9Xj8HWMFhZcxxObbh9k+tQr7P9WsOyPZQZ+qZxpsFp990G29brfWF+9c697on6M+QyGubpmfmriDib9ncih9J/+ebSzDy7yTmXIjvmSQOIiFWUKbMfB9yLTY1/mthx7k34APBKYFW1/JCI2DszO2XoAI8Gdm1ZvhD4bLeDR8RWtGeyAHeMiN37SFvdvrXlPRrsO62Z9UMpBdVWx48zAZl5SUQ8hhKktxaUn0XDl95jUr+f6qPB9+Ns4Ho23fdQKsv6DSKn9X4iM1dHxPtpn1b4lRFxQjVSxaAW03W/qmElQ72x5R8bvrioj1CzXb87RsRtgSOBI5j9orAf/TwHJEnSEmKs2ZGx5ggYa95oocWaF2Tm+4Z90IjYBbhZbfUgo6b+mP475tUrla6MiKMGOCfADWzKL5cDuzG7gqsT409J0sAsu3dk2X0ELLvfaKGV3Tta5PVEqxue7+ract/l4wHchfbfzzXAYyNikGOtqi3vQf8d81Y3PNd8r1HT882cc/uW5e3oo2PeGJ+Lra6qZsFroq9rGhHb0d7IG2bPcDAt/jhAI81+760DaP/tXJKZ5zc8F8BPsWNeU007NtTfWTTdv693FhGxM3DT2upBnjn1fVZSOj33O/Pe1D7rpaXOWLkjY+URMFa+0UKLlUdSz9XD6obbDyNOHds5J1R3tLrh9k3+vjvVls+c0tnyYLTXoT5zWt+zU7do2olVRZM4qtMgsU32b1JvXH+G/GTAgYPOqh2rySy+0/AMmXp2zJMaioj7AcdRRnOZj23n2iAzL4qITwJPqlatAJ4B/FuXXZ5ZW/7gHAWTXWmfoh1K0DoMO829yY0uHdI5h60+5foV9AjKRyUzfxoRXwAOb1l9WESsajBt7shVowttU1vdT0O4Npm5NiLOp72yY+cGh5jW+2nG6ymjMG1dLe8OPBd44yAHW4TXvdGom8D62vJV89x/xVw7RMTWlNF7/oXZeWgTcz4HJEnS0mGs2TdjzSEx1gQWV6w5H/XrcG1mXjzAcVY32LbegGFvSh44DDvR3z1i/ClJGohl975Zdh8Sy+7A4iq7L9Z6oiaDXkCf5eOI2JbZs3H0ckFmfrG2rh5/bM1w449+jeQaDfF8A51znM/FmlH+ffWG5tB/g+dxG+V1qDfU/csA55rPfkvZtL6z6PRcGOSZ88eIWEd7u8XF9KyXliRj5b4ZKw+JsTLg83MujcrKmbm+NoDLIPUyI4/7Jlx3NMq/rx6HTWsMBqO9DvOOwzLz6oj4G7PzHvXWJA6rf6fQLA5rck/U8/rGz5DK7+Y4bi9L8RnS2HwyZGnJiYjHUUbUmG8ACf3//t5dW/7najrwNhFxEO3Tla4H3j/HsZtkqk1tPfcmN6r3/J64iNgNeFBt9UmZed0k0gPUK5C2okw9PU06jaDR9IXvjHoBp8lLiam7n1pl5l+B/6ytfmlEDDQNOYvvug8yksMw9++pGiHz68DTmX85aq7p4iVJ0hJhrNmIseZwGWv2b+rupyGqX+NhXd9epiGfMP6UJDVm2b0Ry+7DZdm9f1N3P7VaxPVEoyof70xp4N3vvxd2Ocao9J3XDTia+XyM/HwTei7OGOXf1+meGaQD3DiM8jrU86VB85ZB91vKpvWdxbQ8c6b6WS8tRcbKjRgrD5excv+m7n4ag3HHYCM/5xTUHY0zDpvWGAyMwxareX2vI3zvM6q6fJ8hQ+aMeVKfImJfypTbrb+bDZRCzteBnwJ/Ai4GrquPuhERxwKvbnrezPxRRJwBHFKt2g14FHBSbdP6yC5fysw/zXH4zZump4GF3uDnSczOI8c65XrNLzus223sqdCwvAU4mk0Fmx2BlwLHTCxF6tebgbvX1v2Fkif/gDJSywWUguh1mdk2skVETCLglyRJU8xYszFjzeEy1tSkmE/MzfhTkqaMZffGFvoz2bK7Rsl6ovEyrxuBST0XNVb1mWYG/S2N8jcoSZowY+XGFnr50VhZmizrjhY/4zBpgbJjntS/VwNbtiz/CXhEZv6kz/3nMyXsu9kUREIJGG8MIqtREJ5Q2+e9fRy309Sit8nMcxuncPGpT7l+Tmb+aCIpKS7rsK7TaCqTdHmHddsNeKzta8ud/v4FKzOvjIg3AW9qWf28iHhXZl7Y8HBe9zGpXiY+rbb6XcCLM3NtH/s7NbgkSerEWHNpMdZszphn9OrXeFjXt5d6PnFmZh7SccslyPhTkqaWZfelxbJ7c5bd+2Q90djV87qLMtPGuvM3yefiqHV6Pu7A0hshvp6/DDqz56D7LWTznb1kWnV75lwzwLEW6zNHWoqMlZcWY+XmjNk0FEug7qie9y7FOAKGEIdFxDKa1dsuBos1BoPR1eX7DBmyxXwTSkMTEZsBD6+tPrJBAAmw6zyS8Cngry3L94iI1im3n0x7kPpr4Jt9HPfiDut2aZ68xSUi7gLcprZ6kiO7QOfCVX1a2YnKzBuYXRmxb9PjRMRKYK/a6k4vPBa6d1NGJ5mxFfCKpgfxuo/VI2kvO50GPL+fwLYyn+eAJElahIw1lxZjzcEY84xF/TpsFRE3GeA4+zTYtp5PLPk8osb4U5KmjGX3pcWy+2AsuzdmPVEfMnN1Zi5r8O+wDoep53U7VY3UNKApeC6OWqfn4/5jT8Xk1TsK7xMRqwY4zq2HkZgxWl9bXjHAMRZrI+JOz4VBnjl7MXsygYk/cyQ1NwVlAmPlMTJWHsxij9k0Vou97qie9y7FGAxmx2EHDHCM/YCVQ0jLOM03DlusMRjMzusbP0Mqt5jjuJonO+ZJ/dmL9pE0/pyZ32p4jDsPevKqcP5ftdWt06wfXfvsfZk555TDmXk5cF5t9R2ap3DRqY/sshb470kkpMUtO6y7aOypmNsvassHD3CMA4H6C/36cRe8zFwDvK62+unVyCZNed3H4+9qyx/tJ69tMfBzQJIkLVrGmkuLsebgjHlGKDMvob1BMMCdBjhUk31+WlveJyKmbRTbSTL+lKTpY9l9abHsPjjL7n2ynmis6vHHZsDtJpGQRWSiz8VRy8yrgN/UVv+/SaRlwn5FeyPylQyWvxwy9yZT5era8rZNdo6I5cDew0vO9MjMS5n9DmmQe6K+z1rAWaikhclYeWkxVh6cMZuGYbHXHZ1VW75L1SF1qanPQnq3AY6x0GIwmGccRrMBZBeael5/pwEHnKo/e3yGDJkd86T+1EcK+GOTnSPiVgzWa73V+4B1LctPiohtIuJetI9Esgb4cIPjfqO2/NAB07coRMQWwONqq0/JzEkHbA+pLd/AdL6YPL22fPgABYDH1JYvyszfziNN0+xDwO9allcCrxngOF738ag/C+ov4eZSHyVMkiTJWHOJMNacN2Oe0fthbfnwJjtHxJbAAxvscjpwTcvycuBBTc65yBl/StL0sey+RFh2nzfL7s1YTzQGmbkaqP8tSzqvG4JpeC6O2rdry09YajMtZuZ64Iza6ic0OUZEHMJ4Z7pYV1seZLa7K2rL9VkF5nIHYPsBzrtQ1J85RwxwjPoz56dVh3VJC880lAmMlcfAWHnejNk0DIu97qgeg20JPGoSCZmwen5x74jYo+ExnjisxPRhGDEYzD8Ou/eA510I6vfETsC9mhwgIgI4qLb6+/NJlGazY57Un/pUv02nPH3ZfBOQmRcAn2lZtS3l4fnM2qafyMz6A6qXT9aW71dNO75UPZLZ3+9Ep1yPiFsyO7D6XmbWpzifBqfUlvelwYuJiNiO2aPr1I+5aFTTiL+qtvoJwG0bHsrrPh4DPwsi4hbM/h1LkiQZay4dxprzY8wzel+sLT8uInZusP+Tge363bgayfgLtdUvr0aVl/GnJE0jy+5Lh2X3+bHs3oD1RGNVz+ueFxFbTyQli8PEn4tjUL9nDgAePYmETFh9FpynRMQ+DfY/dnhJ6Ut9loVBOsjVG/PfOiJ2arB/vWy22NSfD/eMiPrsLV1FxM2ZPSDUYnvmSEvJxMsExspjY6w8P8ZsGoZFXXeUmX8Bvldb/bIlOGve6cAfWpZXAK/sd+eIuBvwgGEnqodhxGAwOw7re9b6KkZdzAPA/pL2ewLgOQ2P8fza8lXAaQOnSB3Z0EHqz59qywdERF+jekXEw5hdKB7Ue2rLL6IEPa3e2+SAmfkNZvem/ljDxldtFvhIcfXv6kLgK/M96KDXJCK2AU4CNqt91GQEn7HJzFOZPb3tO6vgsB9vBnar7z/fdE25T9B+zZYD/9bkAF73sak/Cx7Wz05VcPjfzP4dS5IkGWs2YKw5m7GmMc8QnQxc1rK8PfD2fnaMiN2B1w9wztcBG1qWDwTeNsBxWtOykPOJVsafkjR9LLs3sMCfyZbd58Gy+0CsJxqPt9PeWGxX4MT55FcLPK+br2l5Lo5MZn4LOLO2+n0Rse8k0jNBJwOXtixvBXw0Iraaa8eIeB7wwFElrIu/1JabdnQmM/9K+4xPmwH/1M++1exMT2l6zgXmE8DFLcvLKL+NORtMVwMyHQds0bL6espsV5IWpmkpExgrj56x8jwYs2lIlkLd0X/Ulv8OeNMkEjIpmbmBUmZu9YyIqA9uMUtE7AqcQCmjj0s9Bts/IjYf4Dj1+Pvx/QyoVMUY72fwmfqmXmZuZHZZ54iqLDWniDgUeHpt9YemtCP7gmbHPKkP1ZTb57SsWgYcHxFb9tovIh7F7NFT5pOO7wE/a1m1P9D6cuvMzPzxAId+Ee2jKewPfD8i7tDkIBGxX0S8DfjAAGmYuIjYC7hvbfVHM7M+1e4gvh0Rz+rnBXVLevYDTgXuWPvoZ8DHhpCmUXltbXlf4CsRsWO3HSJiWUS8BnhG7aPPZ+bPh53AaVIVmuoVrE2nngav+zj8b2358RHRc4r3iNieMkLR3UaWKkmStGAZa/bHWLMnY01jnqHIzOuAt9RWPzkiXt+rYrzqlPcNoHFjhMz8FfD/1VY/PyKOryrV+xIRyyPigRHxFRbPaIjGn5I0ZSy798eye0+W3S27d2Q90Xhk5qXMnrnrUcCXIuImTY4VEYdGxMnMbtS0ZEzLc3EMXgKsb1neifJ8vGs/O0fEyoh4SkTcZiSpG4PMXAO8tLb6/wHf6vZ3RcRWEfFm4D+rVdeNMIl1P6ktP7lBg/dWn6otvyrmmBUuIu4JfJZF3CAUIDOvZ3bj6LsCJ/XKA6oG4R9g9rub46o8RdICNC1lAmPl0TJWHhpjNs3Xoq87ysyvUOodW70gIo6LiC067VMXEbeKiKOGn7qxeg/w65bl5cAnI+JFEdGxg2XV+eq7wK2AjcANI09lcTbQ+jzYEviXAY7zRcqgHTN2A94zRz31KuAjwP0HON9C80Hgz7V1n4iI+/TaKSLuDHyJ9j5jVwHvGG7yBAuj97M0qG3n+XC9JDM/3bL8XtobC90D+ElEvBb4ysxU51XDoXsBR7FpuumNlCk/7zmP9Mx4N/ChLp81GtllRmb+MCKOpmTcMwI4KyK+RAlYTs/MGzP1qpf5nsBBwF0ooy/cvvq4dXr4heQpzO6wPKxRVPahFJbeHBFfpowY8zPgV5l57cxGVUH4rpRpo58ArKod53LgiVUl3VTKzM9ExAnAkS2r7w78KiLeAHwmM88HqEY0uB/lRUZ96uG/AE8beYKnQGb+T0ScTrlOgx7D6z56XwLOB/aqlpcDn42I4ygvz/4vMzdUwcAtKaNvvRjYpdr+VOCwcSZYkiSNhLFmn4w1b2SsOQTGPADcdAgVSd/OzOzy2VuBRwN3all3DHBYRLwF+PrMfRURNwceC7wc2KHa9oeU+6yJF1Fmyrt3y7qnAg+PiA9S7umzMvOamQ+rRh23ouQT96bkiTMNaesd/RYq409JGg7L7n2y7H4jy+5DYNm9OeuJxiMz3141on5iy+qHAH+IiBOBL1AabV8x82GUUd73B25HyfcfzqZy+mljSfj0mpbn4shk5ncj4hjaOyHtAZweEZ+hPB+/k5mXz3wYETelxNUPAo6gNCa8N/DLsSV8yDLz+Ih4BOX+n3FX4BcRcRrwfeAiYFvg1sCDgZkG5ldTOui9smXfUT7DPk97Z+f9gYyIzwO/Ba6tnT8z89sdjvM+4DnAzEwP2wLfjYh/Bz4+UyaqGoLejfIu44mUcsSlwCWUstRi9Q7K99zaCPQI4JyI+A/gizOd7SJiB0pe+zLKO6BWZ1PeLUkaL2PlPhkr38hYeQiM2YDR13Mtdkul7ujxwI+BvVvWHQU8LCLeRcknzp3pHFyVyQ8EDqWUSe9BebYs2FmZM3NNRDyF8p3N5HcrKXW5L4qIU4DfUQZB2YNSLj+45RDvpTxrb96ybiT5Y5XWr1HK/DPeE2WGvx9QZtuud+T+WGZeXTvOpRHxMdpnKz8S2CsiXg98LzPXAkTE3tX5XkLp5AwlLj10OH/V9MnMqyLiScA32fRM3hr4ZkQcTykD/Sgz11VlkYMo1+9ZzO4vdvTM80bDZcc8LWY7MXs61yZ+DrQGkR8AnkR7A6MDgI8DRMSVlMxu2w7HejVlVKxhBJEfp0xNXR+J/DLg5EEPmpkfqho2vZ1NI8YsBx5R/SMi1gNXUF4+bsN4p7sdhyNryz/MzHOHfI6tKI3cHj2zIiKup7yQ3poyWkA3lwIPz8xzemwzLZ5NKfA9oGXdrpQXtO+o/ubrgO277H8R5W+9ZKSpnC4vB74zz2N43UcoM6+PiOcAn2NT/reCct2fDdwQEVdTrm+9jHU+pTKmPqW8JElaeIw1GzDWBIw1h2mpxzy3ZH75D5SGYh0rLKsX9Y+ixKatFTV3p8RBM3nSFsyu9P4h8BpKZVjfMnNtRBxByYNaR0zfGfjX6h8RsQa4hpIX1s+96Bh/StLQWHZvwLI7YNl9mJZ62X0Q1hONx79QGoQd2bJua+CZ1b8mv8mlblqeiyOVmW+OiG2BV7SsXkZLXl7dM3+jc4y2WDyWMhtca+y+gtKw97Au+1wH/ANw0w7rRyIzz6oaqbY2Ct2d0pC3kxOBWR3zMvO3UWaneX3L6u0oZbA3R8Q1lBmUtqe9PDTzN7+aRdwxr2rw/Y+U90CtsxXtS8kbPhAR11JmnOyUB0DpKHl4Zo5zRkVJhbFyA8bKgLHyMC31mG2k9VyL3VKpO8rMSyLiAZSOiPu3fHQzyqApbwI2RsQVlHx5m/GncvSqzuGPoAw+0jpb4B70npHua8ALKB3DW42y3P16Sr42c98to3Quvl+X7b9Kyd/rXkIZAGT3lnX3rf5tqL7zbdg0gMqMUygDwtRnW1xUMvPbEfFMyoAIMzO1LwP+ufq3oSp3bUf3mdyPzcyPjzyxS1R9FANJXVQ9rR8O/KjLJtszO4BcD7w8M183xHRcR/soLDM+PN8XVpn5HsrINN1Ga1tBCV63pXsAuZb2KeoXhIi4J7BfbfWwRnaZyyrKqBS9AshTgNtl5unjSdL8VCPZP5RSANjQYZNVdA8gfwLcLTPPGlHyplJmfpdS4JzPMbzuI5aZXwCeQcnr6jan5JH1wPb/gHu1jpAlSZI0w1gTMNYcFWPNdsY8fcjM8ygN6n7RZZPtmd0x7ruUBm8D5RXViMkPoczO97cum21JuZ97dcq7kDJS7KJg/ClJ08eyO2DZfVQsu7dbkmV364nGIzOvz8ynUhqxdWvM2s9v8grgD0NO3oIyLc/FccjMVwKPozSE7mQVnWO0GZ1+jwtKVcY4nNKBop/yRgKHZebXKI0CW13RYfthehKlMep8vQF4Z5fPtgZ2oL08dCnw4C4z8C061Yx49wI+1WWTrejeKe+blGfO70eRNknjNS1lAmPl0TBWHi5jNs3XUqk7ysxfAYdQDRzawTLKLN3dOuUt+BgMoIqn7g6c2cfm6ymdyB9WPZvHFodl5g8ocdhV8zzOZcD9gQs6fLycMrhAvVPexymduuuz8i1Kmfl+Smze6f3EcsrvolOnvCuBIzPzNSNM3pJnxzypgcy8mDI19MsojX26WQd8ATg4M984gqTURx/fyPxHkgBufEAeSJnS9xvAtb33AEqG/QXKKIJ7ZOarh5GWMXtqbXkNcNIQj3808C5KgHRDn/tcBBxPuY8empkLqnFZZq7LzGdTpsQ9id6Frg3AGZSp5g9ewi9gj2GeU0Z73UcvMz9AGenrFHp/X+dRRvG4U2Yu6cpZSZLUm7FmV8aaczPWNOYZusxcDdyJEs+c12PT84DnAPepKkrmc86NmfkGYG/gVZQGCv3Ex78B3kcZsX/PzPzxfNIxbYw/JWn6WHbvyrL73Cy7W3bvh/VEY5KZH6LMFP584CxKA7a5nA+cQJkNa/fMPGVkCVwgpui5OHKZeTJlNrCXUhq2zuUC4EPAoVXH2wUvM2/IzNdSZjp5CWWWz/Mpz7U1lBnQTqbMrndgZp5R7bpr7VCXjzidl2fmAykdKN4NfJ9yf15Lgzy2elfxfMpsSD/vsekayruJ2yyVTnkzMvNvmfkY4FDKu4s1PTZfS5md8MGZeb9cuDP9SOpgisoExsrDZ6w8ZMZsmq+lUneUmZdl5hHAXSgztc7V6Wsd8D3guZS8elHIzJ8Cd6PMJHc8cC6lk906yuAgpwP/DtwqM1+UmWsjot7Jd01mXj/idJ5E6cj9bEqHyl9X6ezUibTXcc4G7gC8h97P2l8Aj87MJ8y3A/5Ck5n/Q7nWrwJ+N8fmfwLeCuyXmSeOOm1L3bKNG+f1XldasiJiBXD76t8ulB7GV1IaBP0wM+fV83uOc78HeFbLqq9VLxZHca7NgYMpFRM7U0b9uo4yjez5lJHO/pCZi2KEgXGIiJXArYB9KNMrb0eZavg6SkHkEuBnVUO4RSMiNqOMYrEv5eX75pS/9ULgB5l56QSTt2h53UcrIm5CqWjYm/Jbvh74M/DzzFxwI11JkqTJM9Y01hyUsaYxz6hExMHAbYDdKQO9XQj8jBL3jOzlckTsQqls25WST2xBmVHvCkpjv18tpe/X+FOSpo9ld8vug7Lsbtl9nLzu/YmI7SjXaQ9KXrc1cA0lX/89kAutwe+4TfK5OAkRsTubYtZdqtUzz8ZfZuZvJ5W2aRMR3wD+vmXVw6qGhAtKROxDma1iN0oecSXwK+D7mdlP54xFLyK2oFyjvYCbUPKBiynvL07PzKsnmDxJY2KsbKw8KGNlYzY1t5TqjqrfysHALSjPl+0oHbcupTxjzra8WUTEoZROijN+nJkHTyo9g6o6GB5KGRxmJ0pn5T8DZ2bmryeZtmkSEftROjPuSimPXEWJw/5vseUD086OedICExFbUx4srb3ZH5GZX5xQkiRJkiRJC5yxpiRJkrQwWHaXJEkLRTXozvmURvUzdsvMiyaUJEnSImWsLElSERFvBV7Usuq4zHzmpNIjLRXLJ50ASY0dSXsA+QdgwY0mJkmSJEmaKkdirClJkiQtBEdi2V2SJC0ML6G9U94v7JQnSRqRIzFWliQtcdXs7k+rrf7GJNIiLTV2zJMWkIjYCnhZbfW7nfJckiRJkjQoY01JkiRpYbDsLkmSJiEiVg2wzxHAi2ur3zucFEmStImxsiRpMWoah0XEtsCngO1aVv8JcPZYaQw2m3QCJPUnIlYA7wH2bFl9EfCByaRIkiRJkrTQGWtKkiRJC4Nld0mSNEFHRcTDKR3rvpqZ13TbMCJ2o8yU90JgWctH5wH/PdJUSpKWHGNlSdIidk5EnAx8LDN/2WvDiHgg8A7ggNpHb8zM9aNKoKRN7JgnTamIeAKwLeV3uifwSOBWtc1em5l/G3faJEmSJEkLk7GmJEmStDBYdpckSVNkGXCf6t91EXEm8Avgz8DVwFbArsCdgbsC9Zkd1gGP79WhT5KkfhgrS5KWkF2AY4BjIuL3wI+BXwGXU2KsHYBbAvcEbt5h/y/jrOXS2CzbuHFj1w/XXvy77h9KGqn7P/pILrjwoq6fH3z7Azn+XW9k+fLlY0yVJElS/1beZL9lc2+lpWDFypsaW0pT4uZ7bc3Kld3jyDVr1vHnv6wZY4okSZJ6W7/2AmNLAUsvtrTsLkmSpsX2263kJrtsMdC+GzZs5MKL1nDttU7SoMkyttSMpRZbLjbGypKkpWLfm2/DihWDFWGvuWYdF160hh7dhCQNqFts6Yx5LAjBDwAAIABJREFU0gJ0m9if/3z9K+yUJ0mSJEkamuuuX89f/mplpSRJkjTtLLtLkqRxWrd+Ixs2bGT58v4bhW7cuJFrrl3HpZfdwNq1G0aYOkmSCmNlSdJicsPaDWy5YkWjfdat28DlV9zAlVetHVGqJHVjxzxpAVi+fDnbbbsNB+x/Cx5433ty+IPvx2abNXvYSpIkSZLUauPG0qDm+us38Ldr1nHV1b6clSRJkqaRZXdJkjRJ11yzjj9c+ze23GIFW2yxglWrVrBys2WsWLGcmfGkN2zYyPr1cMPa9Vx33XquuXYda9c6PYMkaXSMlSVJi9mfL7iWlZstY8stN2OLLVaw+crlbLbZMpYvX8ayZbBxI6zfsJH16zZy3fXrWbOmxGGSJmPZxh5zVK69+He+IZEkSZI0kJU32a//oVO1qK1YeVNjS0mSJEkDWb/2AmNLAcaWkiRJkgZnbKkZxpaSJEmSBtUttlw+7oRIkiRJkiRJkiRJkiRJkiRJkiRJkrSQ2TFPkiRJkiRJkiRJkiRJkiRJkiRJkqQG7JgnSZIkSZIkSZIkSZIkSZIkSZIkSVIDdsyTJEmSJEmSJEmSJEmSJEmSJEmSJKkBO+ZJkiRJkiRJkiRJkiRJkiRJkiRJktSAHfMkSZIkSZIkSZIkSZIkSZIkSZIkSWrAjnmSJEmSJEmSJEmSJEmSJEmSJEmSJDVgxzxJkiRJkiRJkiRJkiRJkiRJkiRJkhqwY54kSZIkSZIkSZIkSZIkSZIkSZIkSQ3YMU+SJEmSJEmSJEmSJEmSJEmSJEmSpAbsmCdJkiRJkiRJkiRJkiRJkiRJkiRJUgN2zJMkSZIkSZIkSZIkSZIkSZIkSZIkqQE75kmSJEmSJEmSJEmSJEmSJEmSJEmS1IAd8yRJkiRJkiRJkiRJkiRJkiRJkiRJasCOeZIkSZIkSZIkSZIkSZIkSZIkSZIkNWDHPEmSJEmSJEmSJEmSJEmSJEmSJEmSGrBjniRJkiRJkiRJkiRJkiRJkiRJkiRJDdgxT5IkSZIkSZIkSZIkSZIkSZIkSZKkBuyYJ0mSJEmSJEmSJEmSJEmSJEmSJElSA3bMkyRJkiRJkiRJkiRJkiRJkiRJkiSpATvmSZIkSZIkSZIkSZIkSZIkSZIkSZLUgB3zJEmSJEmSJEmSJEmSJEmSJEmSJElqwI55kiRJkiRJkiRJkiRJkiRJkiRJkiQ1YMc8SZIkSZIkSZIkSZIkSZIkSZIkSZIasGOeJEmSJEmSJEmSJEmSJEmSJEmSJEkN2DFPkiRJkiRJkiRJkiRJkiRJkiRJkqQG7JgnSZIkSZIkSZIkSZIkSZIkSZIkSVIDdsyTJEmSJEmSJEmSJEmSJEmSJEmSJKkBO+ZJkiRJkiRJkiRJkiRJkiRJkiRJktSAHfMkSZIkSZIkSZIkSZIkSZIkSZIkSWrAjnmSJEmSJEmSJEmSJEmSJEmSJEmSJDVgxzxJkiRJkiRJkiRJkiRJkiRJkiRJkhqwY54kSZIkSZIkSZIkSZIkSZIkSZIkSQ3YMU+SJEmSJEmSJEmSJEmSJEmSJEmSpAbsmCdJkiRJkiRJkiRJkiRJkiRJkiRJUgN2zJMkSZIkSZIkSZIkSfr/2bdjAQAAAIBB/tZj2F8eAQAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQAAAAAAAAAAAAAAAMAg5gEAAAAAAAAAAAAAAADAIOYBAAAAAAAAAAAAAAAAwCDmAQCxdze5abtvF4CNYiQ2kImnWQerZx2ZepINIKGI/+D3pq9La+pjMI8/rmuUija5sUnFsTm6AQAAAAAAAAAAAACAgGIeAAAAAAAAAAAAAAAAAAQU8wAAAAAAAAAAAAAAAAAgoJgHAAAAAAAAAAAAAAAAAAHFPAAAAAAAAAAAAAAAAAAIKOYBAAAAAAAAAAAAAAAAQEAxDwAAAAAAAAAAAAAAAAACinkAAAAAAAAAAAAAAAAAEFDMAwAAAAAAAAAAAAAAAICAYh4AAAAAAAAAAAAAAAAABBTzAAAAAAAAAAAAAAAAACCgmAcAAAAAAAAAAAAAAAAAAcU8AAAAAAAAAAAAAAAAAAgo5gEAAAAAAAAAAAAAAABAQDEPAAAAAAAAAAAAAAAAAAKKeQAAAAAAAAAAAAAAAAAQUMwDAAAAAAAAAAAAAAAAgIBiHgAAAAAAAAAAAAAAAAAEFPMAAAAAAAAAAAAAAAAAIKCYBwAAAAAAAAAAAAAAAAABxTwAAAAAAAAAAAAAAAAACCjmAQAAAAAAAAAAAAAAAEBAMQ8AAAAAAAAAAAAAAAAAAop5AAAAAAAAAAAAAAAAABBQzAMAAAAAAAAAAAAAAACAgGIeAAAAAAAAAAAAAAAAAAQU8wAAAAAAAAAAAAAAAAAgoJgHAAAAAAAAAAAAAAAAAAHFPAAAAAAAAAAAAAAAAAAIKOYBAAAAAAAAAAAAAAAAQEAxDwAAAAAAAAAAAAAAAAACinkAAAAAAAAAAAAAAAAAEFDMAwAAAAAAAAAAAAAAAICAYh4AAAAAAAAAAAAAAAAABBTzAAAAAAAAAAAAAAAAACCgmAcAAAAAAAAAAAAAAAAAAcU8AAAAAAAAAAAAAAAAAAgo5gEAAAAAAAAAAAAAAABAQDEPAAAAAAAAAAAAAAAAAAKKeQAAAAAAAAAAAAAAAAAQUMwDAAAAAAAAAAAAAAAAgIBiHgAAAAAAAAAAAAAAAAAEFPMAAAAAAAAAAAAAAAAAIKCYBwAAAAAAAAAAAAAAAAABxTwAAAAAAAAAAAAAAAAACCjmAQAAAAAAAAAAAAAAAEBAMQ8AAAAAAAAAAAAAAAAAAop5AAAAAAAAAAAAAAAAABBQzAMAAAAAAAAAAAAAAACAgGIeAAAAAAAAAAAAAAAAAAQU8wAAAAAAAAAAAAAAAAAgoJgHAAAAAAAAAAAAAAAAAAHFPAAAAAAAAAAAAAAAAAAIKOYBAAAAAAAAAAAAAAAAQEAxDwAAAAAAAAAAAAAA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AAAAAAAAAAACinkAAAAAAAAAAAAAAAAAEFDMAwAAAAAAAAAAAAAAAICAYh4AAAAAAAAAAAAAAAAABBTzAAAAAAAAAAAAAAAAACCgmAcAAAAAAAAAAAAAAAAAAcU8AAAAAAAAAAAAAAAAAAgo5gEAAAAAAAAAAAAAAABAQDEPAAAAAAAAAAAAAAAAAAKKeQAAAAAAAAAAAAAAAAAQUMwDAAAAAAAAAAAAAAAAgIBiHgAAAAAAAAAAAAAAAAAEFPMAAAAAAAAAAAAAAADgf+3dQQkAMAADMeZfdKfhXmOQKKiBowCBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAACBMA8AAAAAAAAAAAAAAAAAAmEeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgECYBwAAAAAAAAAAAAAAAADB2fZ6AwAAAAAAAAAAAAAAAAB8w2MeAAAAAAAAAAAAAAAAAATCPAAAAAAAAAAAAAAAAAAIhHkAAAAAAAAAAAAAAAAAEAjzAAAAAAAAAAAAAAAAACAQ5gEAAAAAAAAAAAAAAABAIMwDAAAAAAAAAAAAAAAAgOACVHmix3JGlgkAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Define a single layer for plotting\n", "layer = 75\n", "# Define a dictionary of class labels\n", "classes_dict = {\n", " 'Normal': 0.,\n", " 'Edema': 1.,\n", " 'Non-enhancing tumor': 2.,\n", " 'Enhancing tumor': 3. \n", "}\n", "# Set up for plotting\n", "fig, ax = plt.subplots(nrows=1, ncols=4, figsize=(50, 30))\n", "for i in range(4):\n", " img_label_str = list(classes_dict.keys())[i]\n", " img = label_array[:,:,layer]\n", " mask = np.where(img == classes_dict[img_label_str], 255, 0)\n", " ax[i].imshow(mask)\n", " ax[i].set_title(f\"Layer {layer} for {img_label_str}\", fontsize=45)\n", " ax[i].axis('off')\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interactive visualization across layers\n", "As another way of looking at the data, run the code below to create a visualization where you can choose the class you want to look at by clicking a button to choose a particular label and scrolling across layers using the slider!" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Create button values\n", "select_class = ToggleButtons(\n", " options=['Normal','Edema', 'Non-enhancing tumor', 'Enhancing tumor'],\n", " description='Select Class:',\n", " disabled=False,\n", " button_style='info', \n", " \n", ")\n", "# Create layer slider\n", "select_layer = IntSlider(min=0, max=154, description='Select Layer', continuous_update=False)\n", "\n", " \n", "# Define a function for plotting images\n", "def plot_image(seg_class, layer):\n", " print(f\"Plotting {layer} Layer Label: {seg_class}\")\n", " img_label = classes_dict[seg_class]\n", " mask = np.where(label_array[:,:,layer] == img_label, 255, 0)\n", " plt.figure(figsize=(10,5))\n", " plt.imshow(mask, cmap='gray')\n", " plt.axis('off');\n", "\n", "# Use the interactive() tool to create the visualization\n", "interactive(plot_image, seg_class=select_class, layer=select_layer)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### And there you have it! We hope this lab has helped you get a better sense of the data you'll be working with in this week's assignment. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.6.3" } }, "nbformat": 4, "nbformat_minor": 4 }