Skip to content

Instantly share code, notes, and snippets.

@jkjung-avt
Last active April 5, 2018 01:23
Show Gist options
  • Save jkjung-avt/cfeac8d4b94eea14bfc038cf481408c7 to your computer and use it in GitHub Desktop.
Save jkjung-avt/cfeac8d4b94eea14bfc038cf481408c7 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Which Layers of SSD Predict Which Tags and Object Sizes?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Setup and load model"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Set caffe root, label map, model definition, and model weights\n",
"#caffe_root = '../' # this file is expected to be in {caffe_root}/examples\n",
"caffe_root = '/work/caffe'\n",
"voc_labelmap_file = 'data/VOC0712/labelmap_voc.prototxt'\n",
"model_def = 'models/VGGNet/VOC0712/SSD_300x300/test.prototxt'\n",
"model_weights = 'models/VGGNet/VOC0712/SSD_300x300/VGG_VOC0712_SSD_300x300_iter_60000.caffemodel'\n",
"\n",
"# Set confidence threshold (0-1) for object detection\n",
"conf_thresh = 0.6\n",
"\n",
"# Set number of images to search through. Max for VOC0712 is 4952\n",
"max_images = 4952\n",
"\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"plt.rcParams['figure.figsize'] = (10, 10)\n",
"plt.rcParams['image.interpolation'] = 'nearest'\n",
"plt.rcParams['image.cmap'] = 'gray'\n",
"\n",
"# Make sure that caffe is on the python path:\n",
"import os\n",
"os.chdir(caffe_root)\n",
"import sys\n",
"sys.path.insert(0, 'python')\n",
"\n",
"import caffe\n",
"caffe.set_device(0)\n",
"caffe.set_mode_gpu()\n",
"from google.protobuf import text_format\n",
"from caffe.proto import caffe_pb2\n",
"\n",
"# load PASCAL VOC labels\n",
"file = open(voc_labelmap_file, 'r')\n",
"voc_labelmap = caffe_pb2.LabelMap()\n",
"text_format.Merge(str(file.read()), voc_labelmap)\n",
"\n",
"def get_labelname(labelmap, labels):\n",
" num_labels = len(labelmap.item)\n",
" labelnames = []\n",
" if type(labels) is not list:\n",
" labels = [labels]\n",
" for label in labels:\n",
" found = False\n",
" for i in xrange(0, num_labels):\n",
" if label == labelmap.item[i].label:\n",
" found = True\n",
" labelnames.append(labelmap.item[i].display_name)\n",
" break\n",
" assert found == True\n",
" return labelnames\n",
"\n",
"net = caffe.Net(model_def, # defines the structure of the model\n",
" model_weights, # contains the trained weights\n",
" caffe.TEST) # use test mode (e.g., don't perform dropout)\n",
"\n",
"# input preprocessing: 'data' is the name of the input blob == net.inputs[0]\n",
"transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})\n",
"transformer.set_transpose('data', (2, 0, 1))\n",
"transformer.set_mean('data', np.array([104,117,123])) # mean pixel\n",
"transformer.set_raw_scale('data', 255) # the reference model operates on images in [0,255] range instead of [0,1]\n",
"transformer.set_channel_swap('data', (2,1,0)) # the reference model has channels in BGR order instead of RGB"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Find layer that activates to each high confidence object in each image. Record details "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/conda/lib/python2.7/site-packages/ipykernel/__main__.py:52: DeprecationWarning: elementwise == comparison failed; this will raise an error in the future.\n"
]
}
],
"source": [
"# keep track of the following\n",
"labels = [] # object label\n",
"heights = [] # object height (fraction of image height)\n",
"widths = [] # object width (fraction of image width)\n",
"layers = [] # network layer that found object with high confidence\n",
"\n",
"# iterate through each image\n",
"for i in range(0, max_images + 1):\n",
" net.forward()\n",
" \n",
" detections = net.blobs['detection_out'].data\n",
" \n",
" # Parse the outputs.\n",
" det_label = detections[0,0,:,1]\n",
" det_conf = detections[0,0,:,2]\n",
" det_xmin = detections[0,0,:,3]\n",
" det_ymin = detections[0,0,:,4]\n",
" det_xmax = detections[0,0,:,5]\n",
" det_ymax = detections[0,0,:,6]\n",
"\n",
" # Get detections with confidence higher than 0.6.\n",
" top_indices = [i for i, conf in enumerate(det_conf) if conf >= conf_thresh]\n",
"\n",
" top_conf = det_conf[top_indices]\n",
" top_label_indices = det_label[top_indices].tolist()\n",
" top_labels = get_labelname(voc_labelmap, top_label_indices)\n",
" top_xmin = det_xmin[top_indices]\n",
" top_ymin = det_ymin[top_indices]\n",
" top_xmax = det_xmax[top_indices]\n",
" top_ymax = det_ymax[top_indices]\n",
" \n",
" if top_conf.size == 0:\n",
" continue\n",
" \n",
" # iterate through each confident label found by SSD\n",
" for k in range(0,top_conf.size):\n",
" top_conf_k = top_conf[k]\n",
" \n",
" # find index of this confidence in output of mbox_conf_softmax\n",
" conf_softmax = net.blobs['mbox_conf_softmax'].data\n",
" tconf_softmax_idx = np.where(conf_softmax == top_conf_k)\n",
"\n",
" # use index from mbox_conf_softmax to find value in mbox_conf_reshape\n",
" conf_reshape = net.blobs['mbox_conf_reshape'].data\n",
" tconf_reshape = conf_reshape[tconf_softmax_idx[0], tconf_softmax_idx[1], tconf_softmax_idx[2]]\n",
"\n",
" # use value from mbox_conf_reshape to find input layer (after perm) and index of layer\n",
" conv_layers = [\"conv4_3_norm_mbox_conf_perm\", \"fc7_mbox_conf_perm\", \"conv6_2_mbox_conf_perm\", \"conv7_2_mbox_conf_perm\", \"conv8_2_mbox_conf_perm\", \"pool6_mbox_conf_perm\"]\n",
"\n",
" for layer in conv_layers:\n",
" layer_data = net.blobs[layer].data\n",
" if tconf_reshape in layer_data:\n",
" conf_perm_name = layer\n",
" layers.append(layer[:-15])\n",
" \n",
" width = top_xmax[k] - top_xmin[k]\n",
" height = top_ymax[k] - top_ymin[k]\n",
"\n",
" widths.append(width)\n",
" heights.append(height)\n",
" labels.append(top_labels[k])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Summarize detecting layers and labels detected"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Layer Counts {'fc7': 2253, 'conv7_2': 1460, 'conv6_2': 2476, 'conv4_3_norm': 381, 'conv8_2': 1723, 'pool6': 52}\n",
"\n",
"Label Counts {'sheep': 143, 'horse': 260, 'bicycle': 233, 'motorbike': 233, 'cow': 172, 'sofa': 302, 'aeroplane': 157, 'dog': 386, 'bus': 167, 'cat': 248, 'person': 3163, 'train': 210, 'boat': 179, 'bottle': 141, 'car': 817, 'pottedplant': 230, 'tvmonitor': 211, 'chair': 595, 'bird': 259, 'diningtable': 239}\n"
]
}
],
"source": [
"layer_counts = dict((x, layers.count(x)) for x in layers)\n",
"layer_dict = dict((x, i) for i, x in enumerate(layer_counts))\n",
"\n",
"print \"Layer Counts\", str(layer_counts)\n",
"print\n",
"label_counts = dict((str(x), labels.count(x)) for x in labels)\n",
"label_dict = dict((x, i) for i, x in enumerate(label_counts))\n",
"print \"Label Counts\", str(label_counts)\n",
"\n",
"# create 2d array with which to make a label/layer heat map\n",
"heat_map = np.zeros((len(label_counts), len(layer_counts)))\n",
"\n",
"for i in range(0, len(layers)):\n",
" lab_idx = label_dict.get(labels[i])\n",
" lay_idx = layer_dict.get(layers[i])\n",
" heat_map[lab_idx, lay_idx] += 1.0 / label_counts.get(labels[i])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Produce heatmap of Layers vs Labels. Labels are each normalized by total count of that label"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmsAAAK2CAYAAAAR7NsVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XecXFX9//HXOxRDC1XAUAKRJlVCqFGyEBuiWAClNwui\noH7FggWTqFhQBAQLoORHEwREEBREIAuChBKqQAABQwk9gQCBUPL5/XHObO5OZnZnk90pO+/n47GP\nveXcez/nzp2ZM+ece64iAjMzMzNrTkMaHYCZmZmZVefCmpmZmVkTc2HNzMzMrIm5sGZmZmbWxFxY\nMzMzM2tiLqyZmZmZNTEX1sz6kaSXJK2TpydJ+kEPaedJGrmQx/mRpGclzVi4SBfqmF15qyHtQuet\nv0k6TNJTkmZLWqmnfEg6UNK/6hthzyQtKekeSas1OpZKcnz3SVq50bEsLCXnSJolqbOOx31S0g4D\nfIwPSnqw3tta/3JhrQ4kvUfSDZJekPScpH9J2iqvW0LScZIey18mD0v6ZWHb/0maI+lFSTMlXS/p\nUEnq4XiTJR1Sj7z1h0IeZ0uakQs5Szc6roUREctFxP9qTb4wx5C0FvA1YKOIGL4w+6iwzwUKV5LG\nSzqrND+QeZO0gaTzcwF0lqQ7JP1fT9d5jftdHDgOeF9EDIuImTXko9kGn/w8cG1EPN3XDSWNknRt\nLqA+KemIwroRkq6R9IqkeyWNK6zbXNJ/JD0j6f8KyxeXNEXSGqVlEfE68Afg21Vi+G0+/mxJcyW9\nnqdnS/pbX/M0QMYB2wKrRURH+cr8mftGIe5SflasV4A5hn8u5OaLck032/uhLbmwNsAkLQdcCpwI\nrAisAUwE5uYk3wFGAaMjYhjQAdxW2EUAu0bE8sAI4KfAt0gfjk1J0mJ93KSUx2HAu4EtqfLBP8gs\nbEFkBPBcRDzf5wNWf22qfSAv7Ad1zXmT9E5gCjAd2DQiVgT2JL0vllvI45esDrwNuG8R99NIXwC6\nCs2SVqllo1zTdTnwW9Jnz3rAlYUk5wJTgZWA7wEXFmrHfkL6QbAF8F1Jq+blXwMujIgnyg53LnCg\npCXK44iIw3IBeRjwY+C8XHAeFhG71pKXOlgHeDgXPKuZXIh7ufx/Vp3iK3HBqU25sDbwNgAiIs6P\nZG5EXBUR/8nrRwN/Kf1qjohHI+Lssn0or3spIi4DPk36YNy4r8Hk2osnS9X9pX1IGp2bilRI+0lJ\nd+RpSTpK0n9z7cd5klbI60bkmplDJE0Hrpb0Nkln55rEWZJukvT2nkLLeXwG+Aep0FaKY0lJv5A0\nPcf+G0lvy+tWlnRpPsbzkq4tbPdIjvmevO4PkpYsrP+cpAdzjBdLekdh3bz8S/aBXKN5cmHdO/O5\neyHXPJxbtl2xhurtkq7Mv8InS1q7yutSNY9l6caRvnCH532enpfvlmtCZubako3KzsM3Jd0JvCyp\n0vu+18JVMW9KzYmXKtX43iTph1qw+fD9lc5fBROAGyLiG4X3wYMRsX9EzK4xf0dKujNfB+fm87k+\nMC0nmyXpqir5+GvOxxTgnWV53ii/fs8rNfXtWVg3SdLJki7Lr8WNktYtrN+ksO2Tko7Ky6u+lyqc\n87WAdYGbCosPyXker56bpb8GXBER50XEmxHxSkTcn/e7PulH0YT8mXQRcBewe952XVLh5EngQWBt\nSSOATwLHlx8oF95mAtv1EE9FkhaTdKHS589MSVdL2qCw/u2SLs+v0b8l/US5hknSEEm/zu/DFyTd\nnvNW6ThrSfpbfj2mSTogLz8MOAnoyK/jUQuRh6OVWkVmS7pL0ofL1n8xXz+z83W6SWH1NpLuztfu\nWUq1wX09/ucL+39A0sELJtGEnPeHJO1RWDFU0gmSHlVq2fiVKhS6rbFcWBt4DwBvSfp/kj5U4UN5\nCnCkUr+aTWvZYUTcAjwOvHch4vk76QtpVVIN3jl5n7cCzwEfKKTdD/h/efrLwG75mMOBWcBvyva9\nI7Ah8EHgQFKtyBqkX+5fAF7tLThJawK7kL4gSn5GqhXYPP9fA/h+Xnck8Biwcs7Td8p2uQ/w/pzn\nDUk1CEjamfQrfw/gHcCjwHll2+4KbEWqXfiUpNK5+SHwj4hYAViT9EFfUv7Ldx9STerKwJ3k811B\nT3mcv/OIq0nnZ0b+ZX9I/mL7I+k1ejupNuXSsg/9vfJ2K0TEvCox9KaYt98AL5HO+UGk17s879XO\nX7n3ARdWO2iN+duTdO2um493UEQ8CJS+FJePiPdVycccYDXgM0BX9wGlpvgrgbOBVUjn8DfFgiLp\nh9N4YAXgIeCYvO2ywD9J77d3kF7Tq/M2tbyXSjYj1fh0vWYRcWw+7mrArblws5+kpcq23Y5USL1B\n0tOSLsmFP/J5eTgiXimkv7Nwvu4GPpDfjyNy3k4Avh4Rb1WJdRrp3C+Mi0mv3ep5P2cU1p0GPE16\n7Q+l+7X2EdIPu3Xz+3Ef0vms5AJSDetqwL7A8ZK2j4jfAl8FOvN76qcLEf80YLtce/gz4DxJKwFI\n2h/4BvDpvH6Pshh3B3YiXSPb5Tz01Qzgg3n/XwB+LeldhfXrAIuT8v554Ixc+IZU+B5Oeu03BNYH\n+lxgtQEWEf4b4D/SG+B0UoHgdeAS4O15nYDDgH+RCjOPAwcUtn0E2LnCPm8Evl3leJOBQ2qIawVg\nHrBcnv8mcHaeXgl4BVg1z98L7FTY9h05L0NIH+ZvASMK6w8Grgc2qyGOR4DZ+W8e6UtuWGH9y6QP\n49L89qQvGkgFob8A76yy388V5ncBHszTvwd+Wli3TM7P2nl+HrB9Yf2fgG/m6TOA3wFrVDjmPGBk\nnp4E/LHsGG+WtitLWzWPFY4xFni0MP89UtNSaV75OtqxcB4O7OU1mAe8QKodmUn6MpkDnFmet/ya\nvw6sV1j3Q+C6srQVz1+FY78OfKCH2GrJ396F9T8DfpOnS9fmkB7ysX5h3TGlfACfIvUVK8byO+Do\nwut7atn1dW+e3huYWiU/Vd9LFdLuA/y7h3OzBOnL/2/A88BphXX359dyFLAkqSvG9XndfuX7BX4E\nnJ6n1877vDWfh4+Srvu1SAWrycAeZdufDXyvl+tsfPGaqpJm9fyaLUlqwn4LWLOw/ufAlYVzfjew\nNaAe9rlevp7fVlj2y8J1cmhpn1W2PzS/RsX3x909pL8PeH+e7gQ+WyXdk8AnCvMnAr/sIYaqMZal\nvZz82Uf68TwHWLKw/hLSD93FSF1y3lFY11G4jj8IPFDLMf03sH+uWauDiLg/Ig6JiLWBTUm/Yk7I\n6yIifhsR7yUVnn4MnC5pw152uwbpQ6Nmucngp7n55QXSl1yQag0gfdh+JP9C/xTpS+uZvG4E8Jfc\nTDGT9IXzBumXWsnjhekzSc2Z50l6PB+3p75sH4v0q3AssFEpJqWm06WBqYVjX06qqYL0wf0QcGXO\n17fK9luMaTrp3JP/Ty+tiFTD8DzpvJYUO3TPAZbN098gfdHfnJsvypscih4rO8bMQgzUmMfelOcl\n8nGLeXm8fKMKtoyIlfLfiqRCTyVvJ33IF/f5WIV01c5fuedJBZZqaslfrccqqpSP6YXpEcB2pddE\n0ixS4al4zT9V5bhrkq7LSmp5L5XMood+exHxBqmwcgfpS7fYNeJVUheL2yL1xZoI7KDUj/ZlYFjZ\n7pYn1ZYSqTvGrhExmtTn9gfA14FfkPqn7Qb8sqylYDlSgb9PcjPocbl57gXm9y9cmVRwAyj2kSu+\npy4n9d89BXhSqVm60s1Jw4FnI2JuYdl0ul9Dveksvj8iYrNCHj6TmzdL18k7mf+5uhbwcA/7XZhr\ntxulbgI35WbOWaSaumLfxmeje3+80mfhcFKB/57C9Xhx2bbWBFxYq7OIeIDUtLhAk2ekviO/IX1A\nV+2PJmlr0pvs+j4efh/SL+SdIzUZrEOqpSj1F5tBqrHbnfTL+6zCto8Cu5R9WC0TqU9LVxYKeXkr\nIn4YEZsAO+TjHtBDbKUY/kX6BX9cXv4c6QNsk8KxV4h0wwUR8XJEfD0i3kn6AvmapJ0K+12rMD2C\n1FxA/l9qBkDSMqQvh14LNRHxTER8PiLWIDU5/EbVh6noOn5uGluJ7l88veaxBt3yUjhuMS+1dEyu\n9aaAZ0k1hGuWHW9hXcX8vlKV1JK/hVHKRzH2Yp/Cx1jwC3pYRBxew74fo6z/W0Et76WSu4B1VdbP\nUKmv3Zck3URqXh1Cqq0bU7Zt+etemr8HGJmv+5It8vJy3yfVID5LapadGhEvkc7/eoV07yI1pfbV\nwaS7Mcfmz6VSM7NIheGge6Gq27UWESdExChSF4J3A1+pcIwZpP6jxX6ga7Pge7HPch+5X5Fqz0o/\ndB5i/vupp2thkeXC6fmkwvgq+fiT6f5+XkWF/rqkvM8g1ey9QWqZKH72rIo1FRfWBpikDSV9TflW\n99xnZG9SoQhJX5E0NnfyXEzSgaRfVrdV2Ndykj5C+mV7VkRU+mAtWUKpk3/pb3HSL9+5pH4sy5Du\n+Cr/MD+L1By6KXBRYfkpwI+VO8grdfrdrRheWawdkjbNXzIvkz4Qau0rdQKpc/pmuRblNOCEXAOF\npDVK/Z8k7ap0NyGkWoE3Sc0mJV/K6Vci9Wcr9Us7FzhYaYiCt5FqNKdERKUaom4k7aH5Qxe8kPNV\nLW8flrRD/qD8IXBjLhR36S2PNTgf2FXSTkpDK3wdeI18jfW3SP2nLgImSFoq9+HqqSDem/GkGp+f\nKY8lJmk9pc7Ww1j0/FUshFbIx8ak/lAllwEbKPUHW1xpmJ3RNdR6l7ZdXdKXlW52WFbSNnldb++l\nYoxPAP8FStuiNCzP/0h9RCcAa0XEtyPfPFAwCfhEvsaXAI4mNYO+FKk/3x3A+Pz58EnSe/7PxR3k\nczKW1PwLqYZo5/w6rUcqeCJpOOmO0yk1nJtyy5Fez1n5B80xhfzPJdXsTcxxbkqhT5ekbSVtpVRr\n/yqpqXKB92JE/JdUA/mj/HqMIl2zZ5Wn7UG1HzPLkj5znsvXyRfoXoj9PXCUpM1zzOvn87UwFiv7\nXF8SWIrUH+3ZvP/dSE2ZRUsCR+dreGdyP9GIeJPURedXyncCK92I8T6sqbiwNvBeIo3fc5Okl4B/\nk37xfj2vn0OqRXqS9GY7DPhkRBSbYy6V9CLpg/HbpKaI3sZRK3WcLv2dTqqxepT0a/I/OZZyfyHV\nYlwUEa8Vlp9I6udwZY7l3xS+QFiw0Lc6qdP4i6Rf65Op/sHYbduIeC7HWupgfxTpC2uKUjPJlaS7\nbCF1hr0qn9sbgF9HxHWF3f0xp/8v6aaFY/IxriZ9eV1EOh/rkjqQV8tP0dak13M2qcngyzF/3K7i\ndpGPP4HU1Lclqcay0jG+1UMee5Rra/cDTiZdQ7sCH80fxL3lpVIstaQ5gtRs/yTptfoj84ejqbS/\nqvuPiIdJffTWJTXHzCJ1Br8FeKkf8tdTLEeQCgtPkt4jpxfiepl008JepFqIGaShcxa4S7dCnl4m\n3diyG6l26AHmf4H29l4qdwrdC8P/JvWt/HREXJ4L+5VimEz6gfL3HMNIunde34t0Lc8ivS92jwWH\ngzmZdH2XjvEdUs3V3cAxhW4S+wJn5GbZvvoDqXb5KVLN3HVl679Aqll7BjiV7tfaCqSWilmk988j\npPNbyZ6kTvRPkX6sfT0i+vKDZqwWHGdtk4i4nVSYnUr6LBlBunYBiHR3/y9JQ6PMJl3bpebjWt53\nRR3M/0x/FXg5v2bfIP1AeI50zZWPX/cI6YfsU6TC40GF75ivkq7tW/NnT+kmtAUo3czy1T7GbP1A\nVd7n1sYk/Rf4fERc0+hYFoWkR4DPtHo+WoGkn5IGFO2p/54thFx7chswLhZiYNyBluO7g3TDx3N1\nON4JpBsFDhvoY5k1iz6P52KDm6TdgXku4FhPclPgkhFxd27e6zbshfWf3DG8pmF9GiHH1+cxH2ul\nNCZZRMS9So9mOoA0dIlZ23BhzbpImkzqJLxfb2lbhKuNB85ywLlKAwk/Dfw8Ii5tcEw2OC0PnJX7\nyT0F/CAiFvaxS2Ytyc2gZmZmZk3MNxiYmZmZNTEX1mzQkPRjSV9exH2UnnPa5/fGomzbzMrzJenv\nSo/Q6c9jjJdU8W5hpaFteh1SZbCTtIHSsy9flFTLWG/9ccymP/eStpRUfgep2aAyqL5UrH1JWgXY\nnzTMwaJ+ySxK34A+b6v0gOV56v5w5cXysooPfm+A4oDHH46IvoxP1edj9HFdn0jaRumB3rMkPSdp\niqSD+mv/PRx3ch4jbWF9E7gmIpaPiJMr7L9T0quF4SVmS7pkEY5XUtO5l/SfwnHfzLGUhrgYsGdN\n5qEz5kj64EAdw6zRXFizweIg4O9lj5NplQ6ZQRqHbaIklS3vM/X8WK+2Jml70oj/k0mjtq9CGtuw\nFb7oR1D5CQMlAXwxP2Wh9PexOsVGRGxaOi7pWcdfjIjlYuEfjt4XfySNx2Y2KLmwZoPFLsC1tSSU\n9GFJt+XmpOmSxpcnAT4j6Yn8d2RhW0k6Suk5pM9KOk/dn49YPM5BSs87nJ3/791DWP8gjb5ebF7s\nKrhJGibpTEnPSHpE0ncL6w6UdL2kX0p6jjQqfXHZrBzv9nn5o5KeknRAYR+9nZNivrpqiCTdoe4D\nhc6TtGNet52kG/Lxb5c0trCPdXJN0IuS/kHvzyKUpG/nc/6wpH3ywtE5L8Vz9UlJd1TZz7HApIj4\nRUTMhFQzExF7F7b/nKQHc63bxUp3vFZs5i47FwdK+peknys9Z/GhUm2PpB8B7wVOzufqV1UyuVuu\noZop6RrlpyVIupr0vMdf5+3Xq7Q9VUbZl7SCpEvz9fN8nh5eWL+ipNPz9f68pIu6b66vSXo6rz+o\nyrGrxqI02v4sFZ7+IGl1Sa/kY4/L1/XR+bw/JOnTZdv/Ml+7pWeAFh+f1El66ol/qNig5MKaDRab\nAeWP26nmZWD//OzNXYEvaMHH/XSQRvH+IPAtpUe0AHyZNEL4e0nPZ51FelpEN0rP6zsR+GCuadiB\nNHBoNfNIT1QYX+UL52TScBnr5NgOUPcHyG9LGsF9VeY/rmebfMyVSCO2nweMzvnan1RwKD30upZz\nsoCIeHehNuVrwDTgNqXHcV1GGmZhRdITO/6s/EgbUk3ILaRC2o/o/pinSlbP+RhOqkU9VdL6EXEr\nadT24qO59iONat+NpKVIT0r4c/m6QpqdSY8e24P0cPlHmf+IMui9tnMb0oPIVwZ+Tn4iQkR8j1Tb\ndHg+Xwv0rZS0Aem8fJn0kPnLgcskLR4R4/L2X8rb/7eXOMoNybGsRXou5Bzg14X1Z5MeW/Qu0jV0\nfGHd6qRrbzjwWVKBsdbn1gJdj436E92HBdoHuCIiZuX5NYFlSOf9s8Dpmv/M3V+QahY3JT21ZB2g\n6wdLRDxKKhyu35e4zFpGRPjPfy3/R6qV2qAwPxZ4tMZtjweOy9MjSAWn9QvrfwaclqfvJT0wu7Tu\nHfnYQ/K2b+XppYGZwCeAob0cfzxwZp6eAhwKLJbjWDvvby6wYWGbz5P6L0Eq6PyvbJ8HAvcX5jfN\nsa1SWPYcsHmN5+QtYEienwwcUpb+PaQxsN6Z579JevxQMc0VpELiWvmcLVVYd07pHFSIZWxOP7Sw\n7E/AdwvHOjtPrwS8QnqaQvl+hudzukGl4+Q0vwd+WphfJh977fLzUH4u8jl/oLBuqXy8Vaudt7Jj\nfw84rzAv0sPSd6xx+8k57zNJPyJmAhOrpH038HzhGn4TGFbl3L9SluengW16uaYrXSM7AA8X5m8H\nPp6nx5GeD1p8jf9MegybSI9WWqvsenugbP9PAdvV8p73n/9a7c81azZYzCL9+u+VUgfza3KT0Auk\nwlGxGS5IX5Il00lf9JC+sP+Sm6lmkgpvbwCrFY8REXNIo6wfBjyZm51qeQD490g1BkMLy1YhDWD9\naFlMaxTmK91MUXw00as5rufKli0LXQ/E7umcVCVpLVLh6YCIeCgvHgF8qnSelJ73OYZUMBgOzIqI\nV8vy05NZ0f1ZtcXX5GzgI7nm7FPAdVH5sUyzSIWnd/RwnOHFWCLiFVJ/wjWqbtHdU4VtS/lbtsZt\ny48dpNe11mMDHBERK0XEivn/eEi1ipJOkfS//PpeC6yQm4/XBGZGxOwq+3w+0kPvS+b0IU9dIuLf\nwBuSxig9lWAtuj/D8vkqr/HqpOex3ll4313GgtfncsALfY3LrBW4sGaDxV3U+OBzUlPTxcAaEbEC\n6Q7S8r4+axWm1yY96BhSgWmX/EVY+lJcJiKeLD9IRPwzIj5A+rK5Hzitt8Ai4ipSc+YXmd/k9hyp\nQDiikHQE6aHRXZv2tu9enEPv52QBkoYCfwF+GRFXFlY9RqopK56n5SLiWNJD01fMhauS3u56rZR+\nBkBEzABuBHYnNbNVvFM1F55K6aqZQeE8S1qG1KT5OKmGCVKtacnqvcTdLYRe1nc7drYW3X84LKwj\nSU2EW+fXd8e8XKTXaiVJw/rhOL05k1S7uj9wfnR/8PvKkt5WmC+9xk8zv2a5dD2tEBErlRIq3TUd\nwIMDngOzBnBhzQaLv5P6chUpd0zu+svLlyXV1Lyh9FzLfcq3A47OtRGbAAczv9/SKcCP85cDkt5e\n1rdLefmqubP40qSC1sukJrRafI/UtAdArtU4HzhG0rKSRgD/R5VCSQ96KnzVck4qmQTcFxHHlS0/\nG/iopA9IGiJpqNJwKsMj9S+6lXT36xKS3gN8tIbYS+nfS+pXd0Fh/Vmkc7YpcFGF7Uu+CRwk6UhJ\nKwFI2kLSuXn9ucDBkjbP18uPgSkR8ViulXwC2C/n6RBS/79aPQ2M7GH9+cCuknaStLikr5OaBm/s\nwzGqWY5Ukzo753tCaUVEPEXqH/ebfCPC4vkcD4SzSf0B9yYV3IoWAybk17gD+BBwQb7+fw+cqDRE\nD5LWlPT+wrZjgasiotb3mFlLcWHNBoszgV3KfpkPJzXZzCF9Uc3JHZa/CPxQ0oukgtGfyvYVpGai\n/wL/BI6NiKvzuhOBS4Ar8/b/JnUqL24L6b31NdKX+3OkmozDaslIbi66me41MV/O+XgYuI7UR2tS\nLfurEFul+VrOSaXpTwOfULoTtDSm1piIeBz4GPAd4FlSk9bXmf+Zsy+wHamJ8WjgjF5if5LUjDmD\nVDA7NCIeKKz/C6lW6qKyprTumYi4EdiZ1EfqIaW7Z39Hbo7Lr/PRpALfE8C6wF6FXXyOVOB7jtQZ\n/4Ze4i6eqxOBPZXutjyhQmwPkGoGTyads12Bj0bEmxX2VU3pbtPS3bm35OUnkGoEnyNds38v225/\nUr+1aaRC5VdqzFOf0kTEdOBuYG5ETClb/Rip9vJJ0o+Az0TEw3ndkaRr6ObcjHsFULwjdl/S62g2\nKPnZoDZoKA2P8ExEVBwWwQY3Sf8FPh8R1zQ6FqtO0hnAQxHxg8KycaSbeHqqeay2v3cDv4qIHXtN\nbNaiFm90AGb9JdLwCNaGJO0OzHNBrbnlmu3dSEPt9IuIuIP5ffDMBiUX1syspUmaTGqS3K+3tNY4\nkn4MfAn4YW4mN7MauRnUzMzMrIn5BgMzMzOzJuZm0H4myVWVZmbWdiKi17EZ+8sKWiJe5M3eE/aP\n6RGxTr0OVombQfuZpIhX/tZ7wjqacMw5TPjuvo0Oo5u3PntUo0OoaOLdTzN+s9V6T1hHQ/YuHye1\n8Sb88X4m7FPLAxnqRx+p+uz5hpow4VQmTPh8o8Po8vQGezQ6hIp+/vwLfGPlFRodRjerTftjo0NY\nwISJf2DC+M80OowFaPExdS2sSYoJNY+Dvmgm8EBd81aJm0HNzMzMmpibQc3MzKzltFNtUzvltW11\nvLffhjQa9MauukyjQ2gJHZut3OgQWkZHx1aNDqEl7LDU0EaH0BI6xm7Z6BCsAVyz1gY6dty80SG0\njI7Vlm10CC2hY7NVGh1Cy3BhrTZjlnZhrRYdHaMaHULTaKfapnbKq5mZmVnLcc2amZmZtZx2qm1q\np7yamZmZtZy6F9YkjZd0pKQJknbuJe1HJX1zEY71FUm9doSQ9IiklarE+rWFPb6ZmZkNjCF1+qtG\n0ockTZP0gKRvVVg/VtILkm7Lf98rWz8kL/9rb3ltVDNoRMSEGhJdCly6CMf5KnAW8Fpvh1qEY5iZ\nmVkbkTQEOBkYB8wAbpF0SURMK0t6XUTsVmU3XwHuBYb1dry61KxJ+q6k+yVdB2yYFmmSpE/m9Y/k\nmrapku6UtEFefqCkk/L0JEknSrpB0n8L20rSbyTdK+lKSX+T9ElJRwDDgcmSrs5pfyPpZkl3SyoO\ndy7gW5LukjRF0sgKeRgp6XJJt0i6thSjmZmZtZ1tgAcjYnpEvAGcB3ysQrqKTz6QtCbwYeD3tRxs\nwAtrkkYBnwI2B3YFtibVZJXXZj0TEVsBvwO+XlheTLd6RIwBPgr8LC/bHVg7IjYG9ge2B4iIk0il\n3Y6IGJfTficitgG2ADokbVrY96yI2Bz4NXBihaycChweEVsD3wB+W+MpMDMzs37W4GbQNYDHCvOP\n52Xltpd0R65I2riw/HhSWaKmlr16NIO+F/hLRMwF5kq6hFTSLC9t/iX/nwp8osq+LgaIiPskrZqX\njQEuyMufljS5bJvicfaS9DlSvlcHNgb+k9edl/+fC/yy2w6kZYAdgAsklfa3RJUYzczMrEU9xBwe\nYk5/7GoqqTJpjqRdSGWYDSR9BHg6Iu6Q1EGV2reiRvRZKwVVXpqcm/+/RfW45ham+/RQVUnrAEcC\nW0XEbEmTgOLNB1FlGlLhelZE1DQa4YRjzuma7njvZh6U1szMBpXOztvovPb2hsYwUE9WX4+lWY+l\nu+avYmalZE8Aaxfm18zLukTEy4XpyyX9Ot/MuAOwm6QPA0sBy0k6MyIOqBZTPQpr1wGTJP0EWJLU\nhPk7Fv08l7a/AThA0pnAqkAHUCotzSZ13JuZ/78MvCRpNWAXoFgL92ngWGAv4MbigSLipdyvbo+I\nuBBA0uYRcVelwCZ8d99FzJqZmVnz6ugY1e1pChN/eHoDo2mIW4D1JI0AniSVHfYuJpC0WkQ8nae3\nAYZExEwRLRmLAAAgAElEQVTgO/kPSWOBI3sqqEEdCmsRcbukPwF3AU8DN5dWFZPVsqsq838Gdgbu\nIbUfTwVezOtOA66Q9EREjJN0B3BfTnd92b5WlHQn6c7Rbic82w/4bb71dnFSs2nFwpqZmZkNrEYO\nFBsRb0k6HLgyh/KH3EXr0LQ6TgX2kHQY8AbwKqlSaKEoovVHrZC0TES8kqsXbwLGRMQzDYol4pW/\nNeLQLeWtzx7V6BBaxpC9RzQ6hJagj4zvPZHx9AZ7NDqElrHatD82OoSWocXHEBED1TK54PGkOI76\nDMpwJA/UNW+VDJbHTV0maQVSp/8fNKqgZmZmZvXRTo9gGhSFtYjYqdExmJmZmQ2EQVFYMzMzs/bS\nTjVr7ZRXMzMzs5bjmjUzMzNrOe1U29ROeTUzMzNrOS6smZmZmTUxN4OamZlZy2mn2qZ2yquZmZlZ\ny3HNmpmZmbWcdqptaqe8mpmZmbUc16wNgHnf9TMKezPk8NGNDqFlxN/ubXQILUHvn9noEFrCqqds\n1+gQWsdib2t0BNaDdqptaqe8mpmZmbUc16yZmZlZy2mn2qZ2yquZmZlZy3HNmpmZmbWcdqptaqe8\nmpmZmbUcF9bMzMzMmpibQc3MzKzltFNtUzvltYukEZLurrD8VEkb1bD9WEmXDkx0ZmZmZvO1c81a\nLLAg4vOVEkoaEhHzetvezMzM6qOdapvaKa/llpB0tqR7JZ0vaSlJkyWNApD0kqRfSLod2E7ShyTd\nJ+lW4JONDd3MzMzaRTsX1jYETo6IjYHZwBfpXlu2DHBjRGwJTAVOBXaNiNHA6vUO1szMzOZTnf6a\nQTsX1h6NiCl5+hzgPWXr3wQuytMbAQ9HxMN5/uw6xGdmZmbmPms9zL8WEcVlNRewJ974RNf02DWX\no2OtYX2PzszMrEl1dt5KZ+fUhsbQTrVN7VxYGyFp24i4CdgH+BewW2F9sXA2LadfNyIeAfbuacfj\nt1+j34M1MzNrFh0do+noGN01P3HiaQ2MZvBrp4JpuWnAlyTdCywP/JbutWtd0xExF/g88Pd8g8HT\n9QzUzMzMuhtSp79m0JY1axExHdi4wqqdC2m6tV1GxJXAuwY4NDMzM7Nu2rKwZmZmZq2tWWq96qGd\n8mpmZmbWclxYMzMzM2tibgY1MzOzltNOtU3tlFczMzOzluOaNTMzM2s57VTb1E55NTMzM2s5rlkz\nMzOzltNOtU3tlFczMzOzluOaNTMzM2s57VTb5MLaAPjZCbMbHULT+/b49zU6hJYx75c3NzqE1rDk\nco2OoCVouwMaHYKZ9ZELa2ZmZtZy2qlmrZ3yamZmZtZyXFgzMzMza2JuBjUzM7OW0061Te2UVzMz\nM7OW45o1MzMzazntVNvUTnk1MzMzazmuWTMzM7OWo0YHUEdtWbMmaZKkT/Zxm+sHKh4zMzOzalyz\nVqOIeE/5MkmLRcRbjYjHzMysnbVTbVNb5FXSAZLulHS7pDOAAMZKukHSf0u1bJKWkXSVpFtz+t0K\n+3gp/x8r6TpJlwD3NCRDZmZm1jYGfc2apI2B7wDbR8QsSSsAxwOrR8QYSe8C/gpcBLwGfDwiXpa0\nMjAlr4NUwCvZEtgkIh6tW0bMzMysS1vUNmXtkNedgQsiYhZARLyQl1+c5+8DVs3LBPxE0p3AVcBw\nSauyoJtdUDMzM2tfkj4kaZqkByR9q4d0W0t6o9hXXtL/SfqPpLsknSNpyZ6ONehr1nowtzBduqlk\nX2AVYMuImCfpEWBohW1f6WnHV/Fc1/RIlmYkSy9iqGZmZs2js/NWOjunNjSGRtY2SRoCnAyMA2YA\nt0i6JCKmVUj3U+AfhWXDgSOAjSLidUl/AvYCzqx2vHYorF0DXCTp+IiYKWnFCmlKhbXlgWdyQW0n\nYESFNL16H6ssfLRmZmZNrqNjNB0do7vmJ048rYHRNMQ2wIMRMR1A0nnAx4BpZemOAC4Eti5bvhiw\njKR5wNKkAl9Vg76wFhH3SjoGuFbSm8DtdO9/RmH+HODS3Ax6K3BfhTRmZmbW3tYAHivMP04qwHXJ\nNWgfj4idJHWti4gZko4DHgXmAFdGxFU9HWzQF9YAIuIs4Kwe1g/L/58HduglzbXAtQMQppmZmdVI\n9RoVd+Grak4Ain3ZBJBvdPwYqfXuReBCSftExB+r7agtCmtmZmZmtbgj5nAHc3pL9gSwdmF+zbys\naDRwniSR+sPvIukNYEng4YiYCSDpIlJFkQtrZmZmNngM0cD0ThqlpRjFUl3zZ86bWSnZLcB6kkYA\nT5JuENi7mCAiRpamJU0CLo2Iv+Ym0e0kDSXd7Dgu768qF9bMzMzM+iAi3pJ0OHAl6cbUP0TEfZIO\nTavj1PJNCtveLOlCUh/6N/L/8vTduLBmZmZmLadufdaqiIgrgA3Llp1SJe0hZfMTgYm1HqsdBsU1\nMzMza1muWTMzM7OW0+CKtbpyzZqZmZlZE3PNmpmZmbUcDdDdoM3INWtmZmZmTcyFNTMzM7Mm5mbQ\nAbBxowNoAfHSY70nMgC07QqNDqE1vDar0RG0hjlPNjqC1rH0ao2OwHrQ6KE76sk1a2ZmZmZNzDVr\nZmZm1nJcs2ZmZmZmTcE1a2ZmZtZyBupB7s3INWtmZmZmTcw1a2ZmZtZy2qjLmmvWzMzMzJqZa9bM\nzMys5fhu0DqStLykwxp07K0knZCnx0ravhFxmJmZmVXT8MIasCLwxUYcOCKmRsRX82wHsENftpe0\nWL8HZWZmZr2S6vPXDJqhGfQnwEhJtwEPAv8vIi4HkDQJuBRYDvg4sAywHnAcsCSwP/Aa8OGIeEHS\nu4HfAksBDwGHRMSLkiYDNwE7AcsDn4mIGySNBb4OHA58AXhT0r7AEcDjwOnAysCzwMER8XiO6TVg\nS+D6vL2ZmZnZgGiGmrWjgIciYhRwLvBpAElLADsDf8vpNiEV2LYBjgFezttMAQ7Iac4AvhER7wb+\nA4wvHGexiNgW+D9gQmF5RMR04HfA8RExKiJuAE4CJuV9/THPl6wREdtFhAtqZmZmNqCaobBWdDnQ\nkQtquwDXRcTcvG5yRMyJiOeAF4DL8vK7gXUkDQOWj4jr8/IzgB0L+74o/58KjKghlu1JhUeAs4Ax\nhXUX9CFPZmZm1s+kqMtfM2iGZtAuETFXUifwIVIN27mF1XOLSQvz85ifj55al0vp36K2fPf0Cr3S\n04bn8lzX9KYszWYsXcPhzMzMWkNn5610dk5tdBhtoxkKay+R+qSVnA98FtgKOLDWnUTEbEkzJY3J\nzZj7A9dWSV6pUPcSMKww/29gb+BsYD/gX7XGsjer1JrUzMys5XR0jKajY3TX/MSJp9U9hiFN0vm/\nHhreDBoRM4EbJN0l6WfAlcBY4J8R8Wa1zaosPwj4haQ7gC2AH1RJX2n7S4FPSLpN0hjSTQYH533t\nC3yll2ObmZmZ9TtFuOzRnyTFxWzQ6DCa3m6PHtLoEFpGnHdpo0NoCUO+9J1Gh9Aa5jzZ6Ahaxyrv\nbnQELUMaTUTUra5LUty27Mi6HGvUyw/XNW+VNLxmzczMzMyqa4Y+a2ZmZmZ9ojbqleSaNTMzM7Mm\n5po1MzMzaznN8iioenDNmpmZmVkTc82amZmZtRzXrJmZmZlZU3BhzczMzKyJuRnUzMzMWs6QJnnI\nej24Zs3MzMysiblmbQBsv+HrjQ6h+b32QqMjaBkavkyjQ2gNb85pdAQtIaZd1+gQWobGbNboEKwH\nvsHAzMzMzJqCa9bMzMys5bRRxZpr1szMzMyamWvWzMzMrOXId4OamZmZWTNwzZqZmZm1HN8NamZm\nZmZNwYU1MzMzsybWVIU1SV+RNLQw/+2F2MeBkk7qJc1YSZcuTIwLG5eZmZn1nyGqz18zaKrCGvBV\noDhc+3cWcj+13CKyKLeRLGxcZmZmZn0yoIU1SSMk3SfpbEn3Sjpf0lBJ4yTdJulOSb+XtKSkI4Dh\nwDWSrpb0E2CpnO6svL99Jd2Ul/1WSt0LJR0s6X5JU4AxheNPyulukTRN0q4VYtxa0r8lTZV0vaT1\n8/IDJf1Z0uV53z/NyxeIy8zMzOpLirr8NYN61KxtCJwcERsDs4EjgUnAnhGxBbAE8IWIOAmYAXRE\nxLiI+DYwJyJGRcT+kjYCPg3sEBGjgHnAvpJWByYA2wPvATYuO/6IiNga+AjwO0lLlq2/D3hPRGwF\njAd+Uli3BbAnsDmwl6Q1yuPqh/NjZmZmVlU9hu54NCKm5OlzgKOBhyPiobzsDOCLwK/yfLUW4nHA\nKOCWXKM2FHga2BaYHBEzAST9CVi/sN35ABHxX0kPARuV7XcF4MxcoxZ0PydXR8TLeb/3AiOAJ2rN\nuJmZmQ2MJulOVheNGGftBWClGtOqbPqMiPhutwTSx+j5NSvWYYoF+6r9ELgmIj4paQQwubBubmH6\nLeafrx6vkZ8/N6treoelhzJm6aV6Sm5mZtZSOjun0tl5W6PDaBv1KKytLWnbiLgJ2Ae4BThU0siI\neBjYH+jMaWcDw4CZef51SYtFxFvA1cDFkk6IiGclrQgsB9wEnJDnXyY1W95ROP6eks4ERgLrAveT\nmkxLlmd+bdnBNeapGNcCvrHKijXuxszMrPV0dGxFR8dWXfMTf/D7usfgQXH71/3Al3Iz4grA8aRC\n0YWS7iTVWJ2S054GXCHp6sL83ZLOioj7SE2oV+btrgRWj4inSH3WpgD/Au4tO/6jwM3A34BDI+L1\nsvXHAj+VNJWez0exRu7UUly1nAAzMzOzhaWIgbvTITcrXhYRmw3YQXo+/iTg0oi4qI7HjKc3XKde\nh2tZb790r0aH0DpudlNDLfTRzzU6hJYQdy30EJNtR2O+1OgQWoaGbEtE1K2uS1I8tOpadTnWO595\nrK55q6QeNWuNvO+1Oe65NTMzs0FF0ofysGAPSPpWD+m2lvSGpE/m+TUlXSPpHkl3S/pyb8ca0D5r\nETGdNOxFQ0TEIY06tpmZmQ2cRj5dQNIQ4GTSSBUzSCNVXBIR0yqk+ynwj8LiN4GvRcQdkpYFpkq6\nsnzbomZ7goGZmZlZs9sGeDAipkfEG8B5wMcqpDsCuBB4prQgIp6KiDvy9Muk8V7X6OlgLqyZmZmZ\n9c0awGOF+ccpK3BJGg58PCJ+S5UhvyStA7ybNLJFVY0YZ83MzMxskbTA0B0nAMW+bN0izk2gFwJf\nKQ3AX40La2ZmZmbZjXNfY8rrc3tL9gSwdmF+TRZ8wtFo4Lz81KVVgF0kvRERf5W0OKmgdlZEXNLb\nwVxYMzMzs5YzUDVrOwwdyg5Dh3bNn/jK7ErJbgHWy0OUPQnsBexdTBARI0vThaHE/poXnQ7cGxEn\n1hKT+6yZmZmZ9UF+gtHhpAH67wHOi4j7JB0q6fOVNilNSBoD7AvsLOl2SbdJ+lBPx3PNmpmZmbUc\nNXgo1Yi4AtiwbNkpVdIeUpi+AVisL8dyzZqZmZlZE3PN2gBYeYflGx1C81t8aO9pLNlgnUZH0BLi\nvisaHUJrePrZRkfQOtSnyg+rsxa4G7TfuGbNzMzMrIm5Zs3MzMxajhr5vKk6c82amZmZWRNzYc3M\nzMysibkZ1MzMzFqO2qi6qY2yamZmZtZ6XLNmZmZmLcdDd5iZmZlZU3DNmpmZmbUeD91htZA8vLWZ\nmZkNLNesZZIOAI4E5gF3ARcA3wOWAJ4H9o2IZyWNB94JjASmA/s2JmIzM7P21U53g7qwBkjaGPgO\nsH1EzJK0AhARsV1e/xngm8A38ibvAsZExOsNCdjMzMzahgtryc7ABRExCyAiXpC0qaTzgXeQatce\nKaT/qwtqZmZmjaM2uh3UhbXqTgJ+ERF/kzQWGF9Y90pPG068/amu6bGrL0vHO5YdmAjNzMwaoLPz\nVjo7pzY6jLbhwlpyDXCRpOMjYqaklYBhwIy8/sC+7Gz8lqv3d3xmZmZNo6NjNB0do7vmJ048re4x\nuM9am4mIeyUdA1wr6U3gdmACcKGkmaTC3DqNi9DMzMzalQtrWUScBZxVtvjSCukm1iciMzMzMxfW\nzMzMrBW10Q0GbdTia2ZmZtZ6XLNmZmZmLaedbjBoo6yamZmZtR7XrJmZmVnLkR/kbmZmZmbNwDVr\nZmZm1nLa6GZQ16yZmZmZNTPXrJmZmVnL8d2gZmZmZtYUXLM2AH406dVGh9D0vn+0fyfUKm6c1ugQ\nWsKQw49tdAitYZMZjY7AzPrIhTUzMzNrPR66w8zMzMyagWvWzMzMrOV46A4zMzMzawquWTMzM7OW\n48dNmZmZmVlTcM2amZmZtRwPimtmZmZmTWHQFdYkjZB0dx/Sf0XS0ML8t8vWv9Sf8ZmZmdmik1SX\nv2Yw6AprWfQh7VeBZQrz31mEfZmZmZn1q8FaWFtC0tmS7pV0vqShksZJuk3SnZJ+L2lJSUcAw4Fr\nJF0t6SfAUjndWXlfXcVqSV+XdLOkOySNb0TGzMzMjFSCqcdfE2iSMPrdhsDJEbExMBs4EpgE7BkR\nWwBLAF+IiJOAGUBHRIyLiG8DcyJiVETsn/cVAJLeD6wfEdsAWwKjJb2nvtkyMzOzdjNYC2uPRsSU\nPH0OMA54OCIeysvOAHYspK+lUfoDwPsl3QbcRioQrt9P8ZqZmZlVNFiH7ijvZ/YCsFKN21YruAn4\nSUSc1tsOJvNc1/Q6LM26LF3joc3MzJpfZ+etdHZObWgMTdL3vy4Ga2FthKRtI+ImYB/gFuBQSSMj\n4mFgf6Azp50NDANm5vnXJS0eEW/m+dLl8A/gB5L+GBGvSBoOvBERz5YffCdWGZhcmZmZNYGOjtF0\ndIzump84sdd6DFsEg7WwNg34kqRJwD3A8cAU4EJJi5EKb6fktKcBV0h6IiLG5fm7JE3N/dYCICL+\nKWkj4MZ8K+9LwH7AAoU1MzMzG1jt9LipQVdYi4jpwMYVVk0GRlVIfzJwcmH+KOCowvywwvRJwEn9\nGa+ZmZlZTwZdYc3MzMwGPz9uyszMzMyagmvWzMzMrPW00e2grlkzMzMza2IurJmZmVnL0ZD6/FU9\nvvQhSdMkPSDpWxXW75YfcXl7flTlmMK65SVdIOk+SfdI2ranvLoZ1MzMzKwPJA0hjSQxjvTYylsk\nXRIR0wrJroqIv+b0mwHnA+/K604E/h4Re0paHHoePd+FNTMzM2s5DR5nbRvgwTxcGJLOAz5GGucV\ngIiYU0i/LDAvpx0GvDciDsrp3iQN0F+Vm0HNzMzM+mYN4LHC/ON5WTeSPi7pPuBS4JC8eF3gOUmT\nJN0m6VRJS/V0MBfWzMzMzAZARFwcEe8CPg78KC9enDRI/68jYhQwh8Jg/JW4GdTMzMxazkCN3HHd\nrDlcN2tOb8meANYuzK+Zl1UUEddLGilpJVIt3GMRcWtefSGwwA0KRS6sDYCjT1+r0SE0v2cf6z2N\nAaDll2x0CC0hnri20SG0hhuuaXQELUN7fr/RIVgD7Lji0uy44vz+/sc88nylZLcA60kaATwJ7AXs\nXUwg6Z0R8VCeHgUsGREz8/xjkjaIiAdINync21NMLqyZmZlZy2nkDQYR8Zakw4ErSV3K/hAR90k6\nNK2OU4HdJR0AvA68CnyqsIsvA+dIWgJ4GDi4p+O5sGZmZmbWRxFxBbBh2bJTCtPHAsdW2fZOYOta\nj+XCmpmZmbWe9nnalO8GNTMzM2tmrlkzMzOzltPTo6AGmzbKqpmZmVnrcc2amZmZtZwGP26qrtqq\nZk3SCEl398N+DpS0en/EZGZmZtaTtiqsZdEP+ziICs8AMzMzM+tv7VhYW0LS2ZLulXS+pKGSxuWH\nqd4p6fd5kDokHS3pJkl3SfpdXrY7MBo4O2/ztkZmxszMrB1J9flrBu1YWNsQODkiNgZmA0cCk4A9\nI2ILYAngsJz2pIjYNiI2B5aWtGtE/Bm4FdgnIkZFxNwG5MHMzMzaRDsW1h6NiCl5+hzSM7keLj2/\nCzgD2DFPj5M0RdJdwE7AJoX9NEl528zMrP1oiOry1wza8W7Q8j5rLwArlSfKzZu/BkZFxAxJ44Gh\ntRxg4sUPd02P3WhFOjZaceGjNTMzazKdnbfRee3tjQ6jbbRjYW2EpG0j4iZgH+AW4FBJIyPiYWB/\noJNUMAvgeUnLAnsAF+R9vAQMq3aA8R8fOYDhm5mZNVZHxyg6OkZ1zU/84en1D6KN2gbbKKtdpgFf\nknQvsAJwPOlp9xdKuhN4CzglIl4ETgPuAS4Hbi7s4/8Bv/MNBmZmZjbQ2qpmLSKmAxtXWDUZGFW+\nMCK+D3y/wvKLgIv6PUAzMzOrTZP0J6uHdqxZMzMzM2sZbVWzZmZmZoNEG1U3tVFWzczMzFqPa9bM\nzMys9bjPmpmZmZk1AxfWzMzMzJqYm0HNzMys9bRRdVMbZdXMzMys9bhmzczMzFqPbzAwMzMzs2bg\nmjUzMzNrPW1Us+bC2gAY8sGPNjqEphc3/qPRIbSMuG1Wo0NoCUMOHNfoEFrC7ONPa3QILWPYXm9r\ndAhmgAtrZmZm1oraqCNXG2XVzMzMrPW4Zs3MzMxaTxv1WXPNmpmZmVkTc2HNzMzMrIm5GdTMzMxa\nTxtVN7VRVs3MzMxaT1sU1iQtL+mwhdjuMknDBiImMzMzWwRDVJ+/JtAWhTVgReCL5QslLdbTRhHx\nkYiYPWBRmZmZmfWiXfqs/QQYKek24E3gNWAWsCGwkaS/AGsCQ4ETI+L3AJIeAbYClgMuB64HdgAe\nBz4WEXPrnREzMzMDmqPSqy7apWbtKOChiBgFfAPYEjgiIjbK6w+OiK2BrYGvSFoxL4/CPtYDToqI\nTYEXgd3rE7qZmZm1s3apWSt3c0Q8Wpj/qqSP5+k1gfWBm+lebn8kIu7O01OBdQY8SjMzM6usSfqT\n1UO7FtZeKU1IGgvsDGwbEXMlTSY1h5YrNnm+VSUNABOOu7xrumP79ejYYf1FDtjMzKxZdHbeSmfn\n1EaH0TbapbD2EqnfGSzYyr08MCsX1DYCtquyj5qL8BOO3KXvEZqZmbWIjo7RdHSM7pqfOPG0+gfh\nmrXBJSJmSrpB0l3Aq8DThdVXAF+QdA9wP3BjcdMq02ZmZmZ10RaFNYCI2K/K8teBD1dZNzJPzgQ2\nLyw/rt8DNDMzs9q1yy2StFVWzczMzFpP1Zo1SSv1tGFEzOz/cMzMzMysqKdm0KmkflqVevAFMLLC\ncjMzM7OB5xsMICLWrWcgZmZmZragXm8wkCRgX2DdiPihpLWB1SPi5gGPzszMzKwCtVGv+1qy+htg\ne2CfPP8S8OsBi8jMzMzMutQydMe2ETFK0u0AETFL0pIDHJeZmZlZdW3UZ62WmrU3JC1GHhRW0tuB\neQMalZmZmZkBtdWs/Qr4C7CapGOAPYDvDWhUZmZmZj1poz5rvRbWIuIcSVOBcXnRxyPivoENy8zM\nzMyg9nLp0sBiOf1SAxeOmZmZWQ2GqD5/VUj6kKRpkh6Q9K0K63eTdKek2yXdLGlMrduWq2Xoju8D\newJ/Jg2QO0nSBRHxo962bVfz/npxo0Noetp4rUaH0DLefOCRRofQEpZ85fFGh9ASlvvdBxodQuuY\n92ajI7AmJWkIcDKp1XEGcIukSyJiWiHZVRHx15x+M+B84F01bttNLX3W9gW2iIjX8gF/CtwBuLBm\nZmZm7Wgb4MGImA4g6TzgY0BXgSsi5hTSL8v8mzN73bZcLYW1GcBQ4LU8/zbgiVpyYmZmZjYgGjt0\nxxrAY4X5x0mFsG4kfRz4CfB2YNe+bFvU04PcTyIN1/EicI+kf+b59wN+eoGZmZlZDyLiYuBiSe8h\ntUi+f2H201PN2q35/1TS0B0lnQtzIDMzM7N+M0BDd3ROn821j87uLdkTwNqF+TXpodUxIq6XNFLS\nSn3dFnp+kPsZvUVqZmZmNph0jBhGx4hhXfM/uGFGpWS3AOtJGgE8CewF7F1MIOmdEfFQnh4FLBkR\nMyX1um25Wu4GXZ/U3roxqe8aABExsrdtzczMzAZEA/usRcRbkg4HriTV8f0hIu6TdGhaHacCu0s6\nAHgdeBX4VE/b9nS8Wm4wmASMB44HdgIOpq3GDTYzMzPrLiKuADYsW3ZKYfpY4Nhat+1JLYWupSLi\nakARMT0iJjD/jgYzMzOz+htSp78mUEvN2tw8gNuDudruCdJ4IS1N0mIR8Vaj4zAzMzPrSS1lxq+Q\nHjf1ZWArYD/ggIEMqlaSRki6T9LZku6VdL6koZJGSeqUdIukyyWtltNPlnS8pJuBL0vaQ9Ld+VEQ\nnTnN2ySdLukuSVMldeTlB0r6c97f/ZJ+1rCMm5mZtbsGP26qnmp5kPstefJlUn81JP0CuGkA4+qL\nDYGDI2KKpN8DhwOfAHaLiOclfQr4MfCZnH6JiNgGQNJdwAci4klJpVs/vgTMi4jNJW0IXJlvsgDY\nAng38AZwv6RfRYQHCDYzM7MBs7CtsZ/q1ygWzaMRMSVPnwN8ENgE+Kek24HvAsML6f9UmL4eOEPS\nZ5lfcH0PcDZARNwP/A/YIK+7OiJejoi5wL3AiP7PjpmZmfXKfdZ61Rz1gpW9BNwTEWOqrH+lNBER\nX5S0NfARYKqkrSqkL+Z1bmH6Laqcv4mXzX/w9tgNVqBjgxVrDN3MzKz5dXZOpfPa2xodRtvo6XFT\n/7+9Ow+TpKryPv79NaIiCIrbKEgjiigKsjSbIJQwICoqLjgCKgOKOCjquDHqzAvtLIyj4oKOCCoi\nyuquMyqMUCAgWzfNvinYgBuyIyrQcN4/Mropiuqq6rYqI7Py+3mefIi4cSPiRJLQp0/cG7H60jbR\nW8naWkm2qKpzgT2AnwP7JtmyuTX6CODZVXX56B2TrNPc5j0/yc50niL8Mzrj8oaTPBt4OnAVnfF6\nk3LQLs/4669KkqQeNTS0KUNDD/6xOPejX24xmplvvMraPDrvAh0rMbt3esJZLlcB70hyFHAZcBjw\nE+CwJKsBKwCfpnPbskbt+/ER49F+WlUXJ7kK+EIznu0+YK+qui952Ncw+liSJKlbemTwfzeM97qp\nfswyZvoAACAASURBVCkPLaqq0bNTLwa2G92xqrYftf7aMfrcA+wzRvvRwNEj1l+5vAFLkiRN1vKO\nWeslVrgkSRo0PTL4vxv6OlmrqoXAhm3HIUmSNF36OlmTJEkDaoDGrA1QEVGSJKn/LDVZS7JBknOS\n3JDkiCSPH7HtvO6EJ0mSNIYBet3UeJW1LwAHAxsAVwNnJnlms23FaY5LkiRJjD9m7bFV9eNm+RNJ\n5gE/TvImnIEpSZLaNEADucadYJBktaq6A6CqTkvyWuBbwNLebiBJkqQpNF5e+jHguSMbqupiYAfg\n29MZlCRJ0rgGaMzaeG8wOHYp7dcD+05bRJIkSVpiue74JjliqgORJEnSwy21spZkaePSArxsesKZ\nGWbttlfbIfS8Ovn4tkPoG4/YaNW2Q+gPK6/ZdgR94eY9/7ftEPrGky7bu+0QNB4nGADwB2AhneRs\nsWrWnzydQUmSJKljvGTtWmCHZozaQyS5YfpCkiRJmkB6Y/B/N4xXRPw08PilbPuvaYhFkiRJo4w3\nG/Tz42w7bHrCkSRJmoTBKayN+27QVyZ5dDeDkSRJ0kONN2btBODuJD8CjgN+UlX3dycsSZKkcThm\nDYArgXWBM4D3Ab9JcniS7boSmSRJksZN1qqqbquqI6tqB+AFwOXAfw7ybNAk2yXZqu04JEkaaOnS\npweMl6w9JMSq+l1VfbaqtgK2md6wetoQ8MK2g5AkSYNhvGTtH5e2oaoWTkMsrUry5iQXJbkwydFJ\ndklyTpJ5SU5O8qQks4G3A+9JMj/J1m3HLUmSZrbxHt0xvHh58aunqurWLsTUdUnWBz4MbFVVtyV5\nHJ3bwFs2298CfLCqPpDkcOCuqjq0xZAlSRpsAzTBYLx3g65F5+G3OwC3d5qyKnAq8E9V9auuRNgd\n2wMnVdVtAFV1e5LnJzkReCqwInBdmwFKkqTBNNGjOz4N7Ln4kR1JVgB2A44Htpz+8Fp1GPCJqvqf\nZgbsQZPd8eCPfXfJ8tDWz2Fom+dMQ3iSJLVjeHgew8Pz2g3CF7kD8MSqOmFkQ5O0HZ/kX6c3rK47\nFfh2kk9V1a3Nbd9Vgd802/ca0feuZttSHXzgrtMTpSRJPWBoaFOGhjZdsj73o0e2GM3MN16yNi/J\nfwNHA4sf1fF0OonLhdMdWDdV1eVJ/h04PckiOtd3MPDNJLfSSebWbrr/oGl/JXBAVZ3VQsiSJA02\nx6wB8GbgLcBcYI2m7UY6ycqXpzmurquqY4BjRjX/YIx+19B55pwkSdK0G2826L3AF5qPJElS7xic\nwtq4L3L/eJL9xmjfL8l/Tm9YkiRJgvHnUmwPHDFG+5HALtMTjiRJ0iQk3fn0gPGStUdVVY1urKoH\nGKjioyRJUnvGS9b+nGTd0Y1N25+nLyRJkqQJDNCL3MebDfr/gB8l+Tdg8ZPv5gAfAt4z3YFJkiRp\n/NmgP0qyK/AB4ICm+TLgtVV1STeCkyRJGnTjVdaoqkuBvZKs0qz/sStRSZIkjadHBv93w7hv1kqy\nf5LrgYXAwiQLk+zfndAkSZK01Mpakn8GXggMVdW1Tds6wGeSrF5V/9alGCVJkh5qgF7kPt6lvgl4\nzeJEDaBZfj2dV1FJkiRpmo03Zq2q6i9jNP45yQPTGFPfq7O/1XYIvW/1lduOoH888o62I9AM8oS9\n1pi4kzoW/antCDQex6wB8OskO4xuTLI98NvpC0mSJEmLjVdZexfwvSRn8tDnrG0NvGq6A5MkSVqq\nwSmsLb2yVlWXAc8HzgDWbj5nAM9vtkmSJA2kJDsnuTLJ1UkOHGP7Hkkuaj5nJtlg1PZZSeYn+f5E\n5xpvNujngWOr6ivLdRWSJEnTpcUxa0lmAZ8DdgB+A5yf5HtVdeWIbtcC21bVHUl2Bo4Ethyx/d3A\n5cCqE51vvDFrVwOfSPKrJP+VZONlvBZJkqSZaHPgmqpaWFX3AcczaohYVZ1TVYtniJ0DLJndk2RN\n4GXAlyZzsvFug36mqrYCtgNuAb7SlPsOSvLsZbkiSZKkGWQN4IYR6zcyIhkbw1uBH41Y/xSd13nW\nZE424SPlmqzxY1W1MbA7sCtwxWQOLkmSNB2S7nz++jjzYmBv4MBm/eXA76tqAZ1pEhOeZdx3gzYH\nfQTwUuANdO7NDgMHL2/QvSTJbOCHVbXBhJ0lSdKMN3zFrQxfedtE3X4NrDVifc2m7SGSbAgcAexc\nVYsPujXwyiQvA1YCHpvka1W11BcOjDfBYEc6lbSXAefRuR/7tqq6e6Ir6DOTKkFKkqQeMk0TDIbW\nfwJD6z9hyfpHv3fdWN3OB57VFH1+S6egtftDw8tawLeAN1XVLxe3V9WHgQ83fbYD3jdeogbj3wb9\nEHA28NyqemVVHTsDEzWAFZN8PcnlSU5MslKS65KsDpBk0ySnNcvbJbmwmWo7L4mP4ZckacBU1f3A\nO4GTgcuA46vqiiT7JXlb0+1fgNWB/25yh/OW93xLraxV1fbLe9A+sx6wd1Wdk+RLwP48vNq2eP19\nwP5V9fMkjwEe9jouSZLUBS0/FLeqfkwnhxjZ9sURy/sC+05wjNOB0yc61wC9s36prq+qc5rlbwDb\njNP3LOBTSQ4AHl9VviNVkiRNqwknGAyAsapoi3gwkX30kg1VH0vyQ+DlwFlJdqqqq0cf8OBjr1qy\nPLTBExja4IlTHrQkSW0ZPv1Chk9f0G4QswbnfVMmazA7yRZVdS6wB/AzYBU670H9MfDaxR2TrNO8\nauuyJJsBz6Hz8OCHOHiP9UY3SZI0YwxttzFD2z34rPy5//bV9oIZAN4GhSuBdyS5HHgc8AXgo8Bn\nmsGAi0b0fU+SS5IsAO7loQ+4kyRJ3ZIufXrAQFfWqmohsP4Ym85k1KDBpv+7pj0oSZKkEQY6WZMk\nSX2qxRe5d5u3QSVJknqYyZokSVIP8zaoJEnqP4NzF9TKmiRJUi+zsiZJkvqPEwwkSZLUC6ysSZKk\n/jM4hTUra5IkSb3MypokSeo/vshdf5WNtmk7gt535mltR9A/VvU/U02dO0/6Xdsh9I3HffAxbYcg\nASZrkiSpHw1OYc0xa5IkSb3MZE2SJKmHeRtUkiT1Hx+KK0mSpF5gZU2SJPWfwSmsWVmTJEnqZVbW\nJElS/3HM2uBJclCS97YdhyRJ0khW1iRJUv8ZnMLaYFfWknwkyVVJzgDWa9pekOTnSRYk+VaS1Zr2\nzZJclGR+kv9KckmrwUuSpIEwsMlakk2A1wMbAi8HNqOTp38N+EBVbQRcChzU7PIVYN+q2gS4H6iu\nBy1JkjpmpTufHjCwyRrwIuA7VXVPVd0FfA9YGVitqs5s+hwNbNtU11apqvOa9mO7H64kSRpEjll7\n0ETp86TT64MPPWXJ8tBW6zC01TOXNyZJknrO8PA8hofntRvEAM0GHeRk7QzgqCSHAI8EXgF8Ebgt\nydZVdRbwJuD0qrojyZ1JNquq84E3jHfgg9+743THLklSa4aGNmVoaNMl63M/emSL0cx8A5usVdWF\nSU4ALgZ+D5xHZxzaXsAXk6wEXAvs3ezyFuBLSe4HTgfu6H7UkiRp0AxssgZQVYcAh4yxaasx2i6v\nqhcAJDkQuGA6Y5MkSePwNqjG8PIkH6Lznf0K+PtWo5EkSQPBZG2SqupE4MS245AkSQxUZW2QH90h\nSZLU86ysSZKk/pPBqTcNzpVKkiT1IStrkiSp//TIq6C6wcqaJElSD7OyJkmS+o+zQSVJktQLTNYk\nSZJ6mLdBp8PN17cdQe9b9EDbEfSNvHr7tkPoD787p+0I+sID9/nf3qQN0G22vuSjOyRJktQLrKxJ\nkqT+M0CVTytrkiRJPczKmiRJ6j8+FFeSJEm9wMqaJEnqP84GlSRJUi+wsiZJkvqPs0FnpiR7JTms\n7TgkSVJ/S7JzkiuTXJ3kwDG2r5fk7CR/SfLeUdv+McmlSS5O8o0kjxzvXH2brCXLfbO6pjQQSZLU\nfUl3PmOeOrOAzwEvAZ4H7J7kOaO63QIcAHx81L5Pa9o3qaoN6dzlfMN4l9p6spbkO0nOT3JJkrc2\nbTs22egFSU5I8pim/bok/5nkAuB1SV6Q5OdJFiT5VpLVmn6nJfl0kgubrHXOGOfdJck5SeYlOTnJ\nk5r2g5J8uTnGL5IcMGKfPZOcm2R+ki8kA1SDlSRJi20OXFNVC6vqPuB44FUjO1TVzVU1D1g0xv4r\nACsneQTwGOA3452s9WQN2LuqNgM2A96d5MnAPwM7VNUcYB4wsnx4c1XNqaoTga8BH6iqjYBLgYNG\n9FupqjYG3gEcNcZ5f1ZVW1bVpsAJwAdHbFsP2BHYAjgoyQpNxvx3wAurahPgAWDPv/rqJUlSv1kD\nuGHE+o1N24Sq6jfAJ4HrgV8Dt1fV/423Ty9MMHhPkl2b5TWBfYH1gbOaytWKwNkj+p8AkGRVYLWq\nOrNpPxo4cUS/4wCq6mdJHtv0H+npSU4Entqc47oR2/6nqhYBtyT5PfAUYAdgE+D8Jq5HA7//K65b\nkiQtrz59dEeSx9Gpws0G7gC+mWSPqjp2afu0mqwl2Q7YHtiiqu5JchqwADi5qpZWtbp7kocfOTYt\nPHys2mHAJ6rqf5o4Rlbl7hmxfD+d7ynA0VX1kYlOfPDh5y1ZHpqzBkNzJpVsS5LUF4aHL2B4eF7b\nYUyL4Qt/x/CCCWsxvwbWGrG+ZtM2GX8LXFtVtwIk+TbwQqA3kzVgNeC2JlF7DrAlsBKwdZJnVtUv\nm/Fqa1TVNSN3rKo7k9yWZOuqOgt4E3D6iC5/B5yeZBs6Jca7Rg0xW5UH7xHvNU6Mi3f6KfDdJJ+u\nqj8keTzw2Kq6fvQOB79988levyRJfWdoaA5DQw8OB58798juBzFNr5sa2vSpDG361CXrH/3qxWN1\nOx94VpLZwG/pTBDYfZzDjgz2emDLJI+mUxzaoTneUrWdrP0YeHuSy4CrgJ8DNwF/DxyX5FF0KmL/\nDFzDw6tjewFfTLIScC2w94htf0kyn8417s3DzaVTerwVOBVYeykxFkBVXZHkn4GTm1kg99IZD/ew\nZE2SJM1cVXV/kncCJ9MZ///lJk/Yr7O5jkjyFOAC4LHAA0neDaxfVecl+SZwIXBf888jxjtfqmbe\nkyya26nvq6r5LZy7Hpi/f7dP238uvWbiPurYequ2I+gLecyT2w6hL9z6kk+2HULfWP2ik9oOoW8k\nc6iqrj0hIUk9cOZ4N8Wmzqxtju7qtY0ZQ5snn0YzLwOVJEkDqe3boNOiqrZvOwZJkjSN+nQ26PIY\nnCuVJEnqQzOysiZJkma4AXqJkJU1SZKkHmZlTZIk9Z9pes5aL7KyJkmS1MNM1iRJknqYt0ElSVL/\n8dEdkiRJ6gVW1qZB1tiw7RB6Xl3i66Ymq076adsh9IUc+Jm2Q+gLqzztUW2H0D/u/k3bEWg8PrpD\nkiRJvcDKmiRJ6j9W1iRJktQLrKxJkqT+Y2VNkiRJvcDKmiRJ6j+zBqfeNDhXKkmS1IdM1iRJknqY\nydo4kmyT5NIk85P4JElJknpF0p1PDzBZG9+ewH9U1SZVdU/bwUiSpMEzcBMMkjwGOBFYA1gB+Ffg\nFuATzfr5wP7Am4DXAzsleSnwduB7wOOAFYF/qarvd/0CJElSz1S9umHgkjVgZ+DXVbULQJJVgUuB\nF1fVL5McDby9qj6bZBvgB1X17SQrALtW1R+TPAE4BzBZkyRJ02oQb4NeAuyY5JAmGVsbuLaqftls\nPxrYdoz9AhyS5CLg/4CnJXlyNwKWJEmjZFZ3Pj1g4CprVXVNkk2Al9G5BXraJHfdE3gisHFVPZDk\nOuDRY3U8+OM/WLI89MJnM7T1en9d0JIk9ZDhMy5h+GeXtB3GwBi4ZC3JU4Fbq+rYJHcA7wTWTrJO\nVV1LZ6za6WPsuhpwU5OovRiYvbRzHPyBV0xH6JIk9YShbTdgaNsNlqzPPeT47gcxyzFrM9kGwMeT\nPADcC/wDnUTsm824tPOBw5u+NWK/bwA/aG6DXgBc0b2QJUnSoBq4ZK2qTgZOHmPTJmP03WfE8i3A\nC6cxNEmSNFkDNBu0N0bOSZIkaUwDV1mTJEkzQI/M1OyGwblSSZKkPmSyJkmS1MO8DSpJkvqPEwwk\nSZLUC6ysSZKk/mNlTZIkSb3AypokSeo/swan3jQ4VypJktSHrKxNg7t2/UTbIfS8VY55Q9sh9I8f\nnN52BP3hD/PajqAvrPjJl7UdQv9Y+WltR6BxOWZNkiRJPcDKmiRJ6j/OBpUkSVIvMFmTJEnqYd4G\nlSRJ/SeDU28anCuVJEnqQ1bWJElSH3KCgSRJknqAlTVJktR/fHSHJEmSesHAJmtJ3pzkoiQXJjk6\nyewkP02yIMkpSdZMMivJtU3/xyVZlGSbZv30JM9s9yokSRpQmdWdTw/ojSi6LMn6wIeBoaraGHgP\ncBhwVFVtBBwLHFZVDwBXJnkusDUwD3hRkkcCa1bVL9u5AkmSNCgGMlkDtgdOqqrbAJp/bgUc12w/\nhk5yBnAmsB2wLXAI8CJgM+D8bgYsSZJGSpc+Szl7snOSK5NcneTAMbavl+TsJH9J8t4R7WsmOTXJ\nZUkuSfKuia7UCQYPqqW0nwH8A/BU4F+ADwJDwM+WdqD/uOGWJcsvWnUlXrTaY6YsSEmS2jY8fAHD\nw/PaDqM1SWYBnwN2AH4DnJ/ke1V15YhutwAHALuO2n0R8N6qWpBkFWBekpNH7fsQg5qsnQp8O8mn\nqurWJKsDZwO7A18H3siDydh5dCptv6yqe5MsAPYDXr60g3/46U+Y1uAlSWrT0NAchobmLFmfO/fI\n7gfR7mzQzYFrqmphJ5QcD7wKWJJwVdXNwM1Jdhm5Y1X9Dvhds/zHJFcAa4zcd7SBTNaq6vIk/w6c\nnmQRcCGd7PerSd4P/AHYu+l7b5LrgZ83u/8MeENVXdJC6JIkqX1rADeMWL+RTgK3TJKsDWwEnDte\nv4FM1gCq6hg6FbORdlhK3+1GLB/Hg2PbJEmSlllzC/SbwLur6o/j9R3YZE2SJPWz6ZkjOXzOdQyf\nc91E3X4NrDVifc2mbVKSPIJOonZMVX1vov4ma5IkSY2hLZ/B0JbPWLL+0c8Oj9XtfOBZSWYDvwXe\nQGfc+9KMHmD3FeDyqvrMZGIyWZMkSf2nxQkGVXV/kncCJ9Mp8X25qq5Isl9ncx2R5CnABcBjgQeS\nvBtYH3gBsCdwSZIL6TyN4sNV9eOlnc9kTZIkaRk1ydV6o9q+OGL598DTx9j1LGCFZTmXyZokSeo/\nvshdkiRJvcDKmiRJ6kNW1iRJktQDrKxJkqT+k8GpNw3OlUqSJPUhK2vTYJV3PbPtEHrf726YuI8A\nqKvubjuE/vDETdqOoC/U10e/ZU9Lk/X3aDsECTBZkyRJ/chHd0iSJKkXWFmTJEl9yMqaJEmSeoCV\nNUmS1H98dIckSZJ6gZU1SZLUd+JsUEmSJPWCvkzWkmyXZKvl2O+gJO8do/2pSU5slvdKcthUxClJ\nkqZLuvRpX18ma8AQ8MJl2SHJCkvbVlW/rarXj2xazrgkSZKmVGvJWpLZSa5IclSSq5J8PckOSc5s\n1uckeXyS7yS5KMnZSZ6fZDbwduA9SeYn2bo51k+TLEhySpI1m3McleQLSX4OfKw59UbNsa5K8tYR\nsVwyRowvT3JWktWTPDHJN5Oc23yWKVmUJElTKLO68+kBbU8weCbw2qq6PMkFwO5VtU2SVwAfAW4A\n5lfVq5O8GDimqjZOcjhwV1UdCpDk+8BRVfX1JHsDhwGvbs6xRlVt1fQ7CNgA2AJ4LHBhkh82/R5S\nTUuyK/CPwEur6s4k3wAOraqzkzwd+Amw/jR9L5IkSUD7ydp1VXV5s3wZ8NNm+VJgbWAt4LUAVXVa\nU+FaZYzjbMWDydkxPFhFAzhpVN/vVdW9wC1JTgU2By4a1WcHYA6wU1X9sWn7W+C5eXD6ySpJHlNV\nf5rcpUqSJC27tpO1e0YsPzBi/QE6sd07yeOMN8bs7nH6Zin7/hJ4BrAeMG9E3y2q6r6Jgjn4m79Y\nsjy0/uoMrb/6RLtIktQ3hocvYHh43sQdp1VvDP7vhraTtYm+6Z8BbwT+LckQcHNV/THJXcCqI/qd\nDewOfL3p/7NxjvmqJIfQuQ26HXAg8KhRfX4FvB/4TpLXVdUVwMnAu4FPACR5QVWNrsgBcPDrnjXB\nZUmS1L+GhuYwNDRnyfrcuUe2GM3M1/bIuVrK8uL1g4FNk1wE/AewV7PtB8CrF08wAA4A9k6yANiT\nTlI11jEBLgaG6SR4H62q340ZWNXVzbFOSvKM5phzmskOlwL7LcuFSpKkKZR059MDWqusVdVCYMMR\n6/ssZdurR+1KVV0DvGBU8w5j9Ntn1PrciWKpqqOBo5vlBcDzR3R9w1IvSJIkaRq0fRtUkiRp2fXI\nYzW6YXCuVJIkqQ9ZWZMkSX2oN8aTdYOVNUmSpB5mZU2SJPWfHpmp2Q1W1iRJknqYlTVJktR/nA0q\nSZKkXmCyJkmS1MO8DSpJkvrQ4EwwMFmbBnXNnW2H0POyxdZth9A/7pjfdgT9YYBmhv1VVvJ/+1K/\n8b9aSZLUfwboL2iOWZMkSephVtYkSVIfGpx60+BcqSRJUh+ysiZJkvqPY9YkSZLUC6ysSZKk/mNl\nrfclmZ3kkjHaj0jynCk8z11TdSxJkqRl1e+VtXpYQ9XbpvsckiRJ3dK3lbXGikm+nuTyJCcmWSnJ\naUk2AUiyc5J5SRYkOSUdVyd5QrM9Sa5J8oQkT07y7abvhUm2bM6xpM6a5P1Jzmv6HNTC9UqSJKCT\nwnTj077eiGL5rQd8rqrWB+4E9qephCV5InAE8Oqq2gjYraoKOAZ4Y7P/3wILquoW4LPAcNN3E+Cy\nps/i4+0IrFtVmwMbA3OSbNOFa5QkSQOs35O166vqnGb5G8DI5GlL4PSquh6gqm5v2o8C3tQs7wN8\npVneHvhC07eqavRYtZ2AHZPMB+bTSRTXncJrkSRJk5V059MDZtqYtdHrD/uWq+rGJL9P8mJgM2CP\npew7WoBDqurIiYKae+oNS5a3e8aqDD1jtYl2kSSpbwwPX8Dw8Ly2wxgY/Z6szU6yRVWdSyfp+hnw\nymbbOcDnk8yuqoVJHl9VtzXbvgx8HTi6uTUK8FM6t1E/k2QWsHJTXVuc8P0E+GiSY6vq7iRPA+6r\nqj+MDuqg7Z8+HdcqSVJPGBqaw9DQnCXrc+dOWMeYBr1R9eqGfr8NeiXwjiSXA6vRuY1ZAFV1M/A2\n4DtJLgSOH7Hf94GVga+OaHsP8OIkFwMXAOs37YuPdwpwLPDzps9JwCrTc1mSJEkdfVtZq6qFPJhQ\njbT9iD4/oVMRG20j4KKqunpE35uAXcc4z6ojlg8DDvsrwpYkSVMh/V5vmry+TdaWV5IDgbfz4Fg1\nSZKknjU4aWmjqj5WVc+oqp+3HYskSVpOLc8GbZ7lemXz/NYDl9Lns83zXBck2WhE+2pJTkpyRZLL\nkmwx3qUOXLImSZL012gmIn4OeAnwPGD30a+6TPJS4JlVtS6wH3D4iM2fAf63qp4LvAC4YrzzmaxJ\nkqQ+lC59xrQ5cE1VLayq++hMYnzVqD6vAr4G0Dy1YrUkT0myKvCiqjqq2baoqu4c70pN1iRJkpbN\nGsANI9ZvbNrG6/Prpu0ZwM1JjkoyP8kRSVYa72Qma5IkSd3zCDqvtfx8VW0C/An4p4l2kCRJ6i/T\n9OiO4Z9dzvCZl0/U7dfAWiPW12zaRvd5+lL63FBVFzTL3wTGnKCwmMmaJElSY+hF6zP0ogcf4zr3\nY98aq9v5wLOSzAZ+C7wB2H1Un+8D7wBOSLIlcHtV/R4gyQ1Jnt0873UHYNzs0GRNkiT1ofZeN1VV\n9yd5J3AynSFlX66qK5Ls19lcR1TV/yZ5WZJfAHcDe484xLuAbyRZEbh21LaHMVmTJElaRlX1Y2C9\nUW1fHLX+zqXsexGw2WTPZbImSZL6zzgPrJ1pTNamQXbffuJOA+4vb/1G2yH0jUfvu3bbIfSHBxa1\nHUF/+Mv9bUcgaRmZrEmSpD40OE8fG5wrlSRJ6kNW1iRJUv8ZoDFrVtYkSZJ6mMmaJElSD/M2qCRJ\n6j/T9LqpXjQ4VypJktSHZmSylmR2kkvajkOSJE2XdOnTvhmZrDVqeXZKssJUByJJkrS8ZvKYtUck\nOQJ4IXAj8CrgucAXgJWAXwL7VNUdSU4DFgBbA8cluQE4CFgE3FFVQ0lmAf8JbAc8Cvh8VR3Z7YuS\nJEn46I4ZYl3gsKp6PnA78DrgaOADVbURcCmdhGyxFatq86r6FPD/gJ2qamPglc32twC3V9UWwObA\n25LM7tK1SJKkATWTK2vXVtXicWvzgWcCq1XVmU3b0cCJI/qfMGL5TODoJCcC327adgI2SLJbs74q\nnYRw4XQEL0mSxjOT600PNZOTtXtGLN8PPG6C/ncvXqiq/ZNsBuwCzEuyKZ1RhgdU1SkTnfjgz56x\nZHloi9kMbWEBTpI0cwwPX8Dw8Ly2wxgYMzlZG30z+w7gtiRbV9VZwJuA08fcMVmnqs4Hzk+yM7Am\n8BNg/ySnVdWiJOsCN1bVn0fvf/C7tp3SC5EkqZcMDc1haGjOkvW5c1sYwj1AY9ZmcrI2ejZoAXsB\nX0yyEnAtsPdS+n68ScYAflpVFzePAlkbmJ8kwE3ArtMSuSRJUmNGJmtVtRDYcMT6J0ds3mqM/tuP\nWn/tGH0K+EjzkSRJrRqcMWuDc6WSJEl9yGRNkiSph83I26CSJGmGG6AJBlbWJEmSepiVNUmS1H+s\nrEmSJKkXWFmTJEl9aHDqTYNzpZIkSX3IypokSeo/jlmTJElSL7CyJkmS+tDgVNZM1qbBLbse23YI\nPe+Jw75idbIe+PfD2w6hP2zy7bYj6Auz9tiz7RAkLSNvg0qSJPUwK2uSJKn/ZHDqTYNzpZIkSX3I\nypokSepDgzPBwMqaJElSD7OyJkmS+o9j1iRJktQLZnyyluS6JKu3HYckSZpK6dKnfTM+WQOqWEgH\ntQAAEeVJREFU7QAkSZKW14xK1pI8JskPk1yY5OIkr6eTFr8rybwkFyV59oi+X05yTrPtlU37rCT/\nleTcJAuS7Nu0b5fk9Ob4Vyb57/auVJKkAZd059MDZlSyBuwM/LqqNq6qDYEfN+03VdWmwOHA+5u2\njwA/raotge2BjydZCXgLcHtVbQFsDrwtyexmn82AdwDPBZ6V5DVduSpJkjSwZlqydgmwY5JDkmxT\nVXc27d9p/jkPWLtZ3gn4pyQXAsPAI4G1mvY3N+3nAqsD6zb7nFdVC6uqgOOAbab5eiRJ0lgyqzuf\nHjCjHt1RVdck2QR4GfCvSU6lM2btnqbL/Tx4zQFeW1XXjDxGkgAHVNUpo9q34+Hj38YcD/dfN922\nZHnrlR/N1iuvtHwXJElSDxoevoDh4XlthzEwZlSyluSpwK1VdWySO4C3jtP9J8C7gAOafTeqqgVN\n+/5JTquqRUnWBW5s9tm8uSV6A/B3wBfHOvAHn/z4qbkgSZJ60NDQHIaG5ixZnzv3yBajmflmVLIG\nbEBn7NkDwL3APwDfXErffwU+neRiOlW264BXAl+ic6t0flNluwnYtdnnAuBzwLOAU6vqO6MPKkmS\nuqE3Bv93w4xK1qrqZODkUc3rjNg+j85kAqrqL8DbxzhG0Zl88JGR7Z28jTuq6pVTG7UkSdLSzahk\nTZIkDYgeeaxGN5isTVJVnQ6c3nYckiRpsJisSZKkPtQbj9XohsG5UkmSpD5kZU2SJPWfARqzZmVN\nkiRpGSXZuXlX+NVJDlxKn88muaZ51/hGy7LvSCZrA+Csu//cdgh9Y/isK9sOoS8M33DnxJ0EwPC5\n17cdQl8YPuuqtkPoC8PDF7QdQg+Z1aXPwyWZRee5qy8BngfsnuQ5o/q8FHhmVa0L7Efn/eST2nes\nK9UMd9bdf2k7hL7hHxiTc/qNd7UdQt8YPs9kbTKGz7667RD6gq946hmbA9c07wu/DzgeeNWoPq8C\nvgZQVecCqyV5yiT3fQiTNUmS1H+S7nzGtgadV08udmPTNpk+k9n3IUzWJEmSpt9yz4hI5+1KmipJ\n/EIlSQOnqro2PTPJr4DZXTrd76vqb0adf0vg4KrauVn/JzpvrPzYiD6HA6dV1QnN+pXAdsAzJtp3\nNB/dMcW6+WOVJGkQVdXaLYdwPvCsJLOB3wJvAHYf1ef7wDuAE5rk7vaq+n2Smyex70OYrEmSJC2D\nqro/yTuBk+kMKftyVV2RZL/O5jqiqv43ycuS/AK4G9h7vH3HO5+3QSVJknqYEwwkSZJ6mMmaJElS\nDzNZkyRJ6mEmazNMkkOTbN12HP0iyUuSvCXJ2qPa92knot7k97RsksxJ8p0k85NcnOSSJBe3HVcv\n8Tc1sSSvTrJ6s/ykJF9rfksnJFmz7fjUPU4wmGGS/AFYCDwJOAE4rqoubDeq3pTkP4BtgPnAK4BP\nV9Vhzbb5VbVJm/H1Cr+nZZfkKuADwCXAA4vbq2pha0H1EH9Tk5Pk8qpav1k+ATgHOAn4W2DPqtqx\nzfjUPSZrM0ySC6tq4yTPBv6OzvNbVgCOo5O4+QK+RpJLgI2ralGSxwHHAldV1T8u/h5bDrEn+D0t\nuyRnVtU2bcfRq/xNTU6Sq6pqvWZ5XlVtOmLbgqraqL3o1E3eBp15CqCqrq6qf62q5wGvBx4N/G+r\nkfWeR1TVIoCqup3O3/BXTXIS8MhWI+stfk/L7qAkX0qye5LXLP60HVQP8Tc1OcNJPppkpWb51QBJ\nXgzc0W5o6iaTtZnnYW9QqKqLq+pDVfWsNgLqYb9Mst3ilaq6v6reAlwFPLe9sHqO39Oy2xvYCNiZ\nTiLyCmCXViPqLf6mJueddG6jXwXsBnwryV3AvsCb2gxM3eVt0BkmySpV9ce24+gHzd9Wqao/j7Ft\njar6dbP8vKq6rNvx9Qq/p2U38vaVHs7f1LJLshqdiuQtbcei7jNZm6GacvmpVXVHs/44YKiqvttu\nZP3HAc+T4/f0oCRHAR+vqsvbjqWfDfpvKsm4115V87sVi9rlu0FnroOq6juLV6rq9iQHASZry+5h\nt5Y1Jr+nB20JLEhyHXAPne+mqmrDdsPqO4P+m/rkONsK2L5bgahdJmsz11jjEf33vXwsP0+O39OD\ndm47gBlioH9TVfXitmNQb/AP75nrgiSHAp9v1t8JzGsxHmkgJFkB+ElVPaftWDQzJFkR+Adg26Zp\nGPhiVd3XWlDqKmeDzjBJjmkWrwXupfNg3BOAvwDvaCuuPndv2wH0Cb8nOjMbgauSrNV2LDOAv6mO\nLwCbAv/dfDZt2jQgnGAwwyS5nM7TrX8EvJhmrMzi7VV1a0uh9ZwkG1aVrwCaQJJHAvdV8z+L5hlP\nmwCXV9WPWg2uRyU5A9gYOA+4e3F7Vb2ytaB6TJPM3tmMp10bmANcWVWXthpYD0pyUVW9YKI2zVze\nBp15Dgd+CqwDXDCifXHStk4bQfWoC5NcCxxP5+0Oztwb2/nAEHBbkg8Ar6bzgOX3Jtm2qj7UZnA9\n6l/aDqCXJfknYD/gniSfAN4PnAXMTfLlqjq01QB7z/1JnllVvwRIsg5wf8sxqYusrM1QSb5QVf/Q\ndhy9LMmFdB4suTudV3PdTee1XMdX1a9aDK2nJLm0qp7fLF8AvKiq/pzkEcB8ZziOLclTgM2a1fOq\n6qY24+klSS6jU0l7DPArYJ2q+kOSlYFzF//e1JFkB+AoOsNbAswG9q6q01oNTF3jmLUZykRtUqqq\nLq2qjzRvd9gXeDJwZpKzW46tl9yZZPEfnjfTeXUZdCrz/j9kDEleT+cW6G50Xvd2bpLXtRtVT7m/\neSDu7cCfgVsAqurucfcaUFX1U2Bd4F3AAcB6JmqDxcqaBtbSXhidJMC2VXV6C2H1nCQbAscAFzVN\nWwNnABsAh1bVsW3F1quSXATsuLialuRJwP85xqgjyVfpvAN0ZeBPwCLgx3SeG/bYqnp9e9H1HmeD\nymRNAyvJHiYak9M8jmIn4Nl0Kmo30nk8xe2tBtajklxSVRuMWJ8FXDSybZA1t9B3ozOO9pvA5sAe\nwPXA562wPVSSLwErAkc3TW+iU518a3tRqZtM1jTwkrwG+J+quqftWHqZ39PkJfk4sCGdMZDQGRN5\ncVUd2F5Uvcff1OQ4G1SON5HgFcDVSY5Jskvzt349nN/TJFXVB4Aj6CRsGwJHmKiNyd/U5Nyf5JmL\nV5wNOnisrEksGRPyUjoVkG2AU7zF8HB+T5pq/qYmNmo2KMDaOBt0oJisSY3mD42dgb3pTDB4Yssh\n9SS/p4k1t/c+Rmd2cXjwRe6rthpYj/I3Nb4kjwbeB+xAZwbt+cCnquovrQamrjFZ08BLsvhv9UN0\nZlmdCJxcVYtaDKvn+D1NXpJfAK+oqivajqWX+ZuanCQnAncC32ia9gAeV1W7tReVuslkTQMvyXF0\n3p/6Iwc6L53f0+QlOauqtm47jl7nb2pyklxeVetP1KaZy2RNkqZYks8AfwN8F1iShFTVt1sLSn0r\nydeBz1XVOc36FsA7qurN7UambjFZ08BzfNHk+D1NXpKjxmiuqtqn68H0MH9Tk5PkCmA9Os+hA1gL\nuIrOw4TLV77NfCZrGniOL5ocv6epk+RDVXVI23G0zd/U5CSZPd72qlrYrVjUDp9pI8Hv/cNiUvye\nps5uwMAna/ibmhSTMZmsSXBBkhNwfNFE/J6mTtoOoEf4m5ImwWRNglXpvEx6pxFtBfgHxkP5PU0d\nx590+JuSJsExa5LUZUkurKqN245DUn/w3aAaeEnWTPKdJDc1n28lWbPtuHqN39OUOqntAHqBvylp\nckzWpM47974PPK35/KBp00P5PU0gHa9PsluzvEOSzybZP8mS/99W1X+0GWcP8TclTYK3QTXwkiyo\nqo0maht0fk8TS/LfdJ4Z9kg6rwd6FJ1k5OV0Zj6+u8Xweo6/KWlynGAgwS1J3ggc16zvDtzSYjy9\nyu9pYi+qqg2aF5P/DnhqVd3bvFZpfsux9SJ/U9IkeBtUgn2A19P5w/W3wOuAv28zoB7l9zSxRQBV\ndR9wflXd26wvAh5oM7Ae5W9KmgQraxJ8FNirqm4DSLI68Ak6f5DoQX5PE/tdklWq6o9VtfPixiR/\nA9zbYly9yt+UNAlW1iTYcPEfFgBVdSvgYxUezu9pAlX10qr64xib7gJ2WbyS5Hndi6qn+ZuSJsFk\nTYJZSR6/eKX5271V54fze1pOVXV3Vd00oumY1oLpLf6mpEnwPwoJPgn8PMniZ1/tBvx7i/H0Kr+n\nqePrpjr8TUmT4KM7JCDJ+sD2zeqpVXV5m/H0Kr+nqZFkflVt0nYcvcDflDQxkzVJ6jKTNUnLwjFr\nktR9zgyVNGkma5I0jZLsP7qtqrZsIxZJ/ckJBpI0RZK8d3QT8KEkjwaoqkO7H5WkfmdlTZKmzlxg\nC2AV4LHNP1dolh/bYlyS+pgTDCRpiiRZi87jKK4F5lbVn5JcW1XrtByapD5mZU2SpkhVXV9VuwFn\nA6ckeV3bMUnqfyZrkjTFqup7wEvo3BK9seVwJPU5b4NK0hRL8hrgh1XlIzok/dWsrEnS1HsFcE2S\nY5LsksSZ95KWm5U1SZoGSVYEXgr8HbANcEpVvbXdqCT1I5M1SZomTcK2M7A3sG1VPbHlkCT1IW+D\nStIUS/LSJF8FrgFeC3wJ+JtWg5LUt6ysSdIUS3IccALwo6q6p+14JPU3kzVJkqQe5m1QSZpiSV6T\n5JokdyS5M8ldSe5sOy5J/cnKmiRNsSS/AF5RVVe0HYuk/mdlTZKm3u9N1CRNFStrkjTFknyGzuzP\n7wJLJhhU1bdbC0pS3/Kp2pI09VYF/gTsNKKtAJM1ScvMypokSVIPc8yaJE2xJGsm+U6Sm5rPt5Ks\n2XZckvqTyZokTb2jgO8DT2s+P2jaJGmZeRtUkqZYkgVVtdFEbZI0GVbWJGnq3ZLkjUlWaD5vBG5p\nOyhJ/cnKmiRNsSSzgcOArejMAj0bOKCqbmg1MEl9yWRNkqZYkqOB91TVbc366sAnqmqfdiOT1I+8\nDSpJU2/DxYkaQFXdCmzcYjyS+pjJmiRNvVlJHr94pams+RByScvF/3lI0tT7JPDzJCc167sB/95i\nPJL6mGPWJGkaJFkf2L5ZPbWqLm8zHkn9y2RNkiSphzlmTZIkqYeZrEmSJPUwkzVJkqQeZrImqSuS\nfCTJpUkuSjI/yWZN+y7N+oJm+75N+0FJbmy2XZXkm0meu5RjH5XkNd28HknqFh/dIWnaJdkSeBmw\nUVUtap479sgkjwC+CMypqt8mWRFYe8Suh1bVoc0xXg+cmuT5VdXaezaTpJyZJamLrKxJ6oanAjdX\n1SLoPNG/qn4HPBZYAbitab+vqq4Z6wBVdSLwE2CPyZwwycpJ/i/JBU017xVN+9wk7x7R79+SHNAs\nvz/JeU2V76CmbXaSK5McneQSYM3l/A4kabmYrEnqhpOBtZqk5/NJtgVoXsn0A2BhkmOT7JEk4xzn\nQuA5kzznn4Fdq2oOneedHdq0fwV4M3SqZMAbgK8n2RFYt6o2p/NqqDlJtmn2eRbwuarawJexS+o2\nkzVJ066q7gY2Ad4G/AE4Psmbm2370kmmzgXeB3x5nEONl8iNNgs4JMlFwP8BT0vy5KpaCNyc5AXA\nTsD8JmncCdgxyXxgPrAesG5zrIVVdf4ynFuSpoxj1iR1RTPO6wzgjOZ24puBrzXbLgMuS/J14Fpg\nn6UcZmNgsknTnsATgY2r6oEk1wGPbrZ9Cdgb+Bs6lTboJIKHVNWRIw+SZDZw9yTPKUlTzsqapGmX\n5NlJnjWiaSM6tz4fk2S7Ee0bAwtH7jriGK8FdgSOW9ppRq2vBtzUJGovBmaP2PZdYGdgDp1xcDT/\n3CfJys35npbkSUs5tiR1jZU1Sd2wCnBYktWARcAv6NwSnQV8MMnhdMaY3Q3sNWK/9yTZE1gZuBTY\nfpyZoIcn+RSdxOp64BXAD5vboBcAVyzuWFX3JTkNuG3xzM6qOiXJc+i8gB3gLuCNwAOAsz8ltcZ3\ng0oaOElmAfOA11XVL9uOR5LG421QSQOlebDuNcApJmqS+oGVNUmSpB5mZU2SJKmHmaxJkiT1MJM1\nSZKkHmayJkmS1MNM1iRJknqYyZokSVIP+//KVFjoKcBpggAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f6647f5ac90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.pcolor(heat_map, cmap='YlOrRd')\n",
"plt.colorbar()\n",
"\n",
"label_val_shift = [x + 0.5 for x in label_dict.values()]\n",
"layer_val_shift = [x + 0.5 for x in layer_dict.values()]\n",
"\n",
"plt.title(\"SSD Layers Responsible for High Confidence (>60%) Tags of Each Label.\\n(Labels Normalized by Count of Each Type)\")\n",
"plt.xlabel(\"SSD Layer\")\n",
"plt.ylabel(\"VOC0712 Label\")\n",
"plt.yticks(label_val_shift, label_dict.keys())\n",
"plt.xticks(layer_val_shift, layer_dict.keys(), rotation='vertical')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Produce heatmap of Layers vs Object Size"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f6647f5afd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# calculate \"area\" of each object. Image sizes unknown here.\n",
"areas = []\n",
"for i in range(0, len(widths)):\n",
" areas.append(widths[i] * heights[i])\n",
" \n",
"# create 2d array with which to make a label/layer heat map\n",
"k = 500 # number of bins\n",
"heat_map_area = np.zeros((k, len(layer_counts)))\n",
"\n",
"for i in range(0, len(areas)):\n",
" area_idx = int(areas[i] * k) - 1\n",
" lay_idx = layer_dict.get(layers[i])\n",
" heat_map_area[area_idx, lay_idx] += 1.0\n",
" \n",
"plt.pcolor(heat_map_area, cmap='YlOrRd')\n",
"plt.colorbar()\n",
"\n",
"# label_val_shift = [x + 0.5 for x in label_dict.values()]\n",
"layer_val_shift = [x + 0.5 for x in layer_dict.values()]\n",
"\n",
"plt.title(\"SSD Layers Responsible for High Confidence (>60%) vs Label Area.\\n(note that layers are not in order)\")\n",
"plt.xlabel(\"SSD Layer\")\n",
"plt.ylabel(\"Bin (Max Area = 1)\")\n",
"# plt.yticks(label_val_shift, label_dict.keys())\n",
"plt.xticks(layer_val_shift, layer_dict.keys(), rotation='vertical')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment