{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import warnings\n", "warnings.simplefilter(action='ignore')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import tensorflow as tf\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. 准备 CIFAR-10 数据" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "(x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x_train: (50000, 32, 32, 3)\n", "y_train: (50000, 1)\n", "x_test: (10000, 32, 32, 3)\n", "y_test: (10000, 1)\n" ] } ], "source": [ "print('x_train:', x_train.shape)\n", "print('y_train:', y_train.shape)\n", "print('x_test:', x_test.shape)\n", "print('y_test:', y_test.shape)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "x_train_normalize = x_train.astype('float32') / 255.0\n", "x_test_normalize = x_test.astype('float32') / 255.0" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "y_train_one_hot = tf.keras.utils.to_categorical(y_train)\n", "y_test_one_hot = tf.keras.utils.to_categorical(y_test)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(10000, 10)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_test_one_hot.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. 建立模型" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2.1 建立 Sequential 模型" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "model = tf.keras.models.Sequential([\n", " \n", " # 卷积层1与池化层1\n", " tf.keras.layers.Conv2D(input_shape=(32, 32, 3), filters=32, kernel_size=(3, 3), padding='same', activation='relu'),\n", " tf.keras.layers.Dropout(0.25),\n", " tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),\n", " \n", " # 卷积层2与池化层2\n", " tf.keras.layers.Conv2D(filters=64, kernel_size=(3, 3), padding='same', activation='relu'),\n", " tf.keras.layers.Dropout(0.25),\n", " tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),\n", " \n", " # 平坦层\n", " tf.keras.layers.Flatten(),\n", " tf.keras.layers.Dropout(0.25),\n", " \n", " # 隐藏层(128个神经元)\n", " tf.keras.layers.Dense(1024, activation='relu'),\n", " tf.keras.layers.Dropout(0.25),\n", " \n", " # 输出层\n", " tf.keras.layers.Dense(10, activation='softmax')\n", "])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2.2 查看模型的摘要" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "conv2d (Conv2D) (None, 32, 32, 32) 896 \n", "_________________________________________________________________\n", "dropout (Dropout) (None, 32, 32, 32) 0 \n", "_________________________________________________________________\n", "max_pooling2d (MaxPooling2D) (None, 16, 16, 32) 0 \n", "_________________________________________________________________\n", "conv2d_1 (Conv2D) (None, 16, 16, 64) 18496 \n", "_________________________________________________________________\n", "dropout_1 (Dropout) (None, 16, 16, 64) 0 \n", "_________________________________________________________________\n", "max_pooling2d_1 (MaxPooling2 (None, 8, 8, 64) 0 \n", "_________________________________________________________________\n", "flatten (Flatten) (None, 4096) 0 \n", "_________________________________________________________________\n", "dropout_2 (Dropout) (None, 4096) 0 \n", "_________________________________________________________________\n", "dense (Dense) (None, 1024) 4195328 \n", "_________________________________________________________________\n", "dropout_3 (Dropout) (None, 1024) 0 \n", "_________________________________________________________________\n", "dense_1 (Dense) (None, 10) 10250 \n", "=================================================================\n", "Total params: 4,224,970\n", "Trainable params: 4,224,970\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "None\n" ] } ], "source": [ "print(model.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3. 加载之前训练的模型" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "加载模型失败, 开始训练一个新模型\n" ] } ], "source": [ "try:\n", " model.load_weights('save_model/model_cifar10_cnn.h5')\n", " print('加载模型成功! 继续训练模型.')\n", "except:\n", " print('加载模型失败, 开始训练一个新模型')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4. 训练模型" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 40000 samples, validate on 10000 samples\n", "Epoch 1/10\n", " - 94s - loss: 1.5399 - acc: 0.4477 - val_loss: 1.3247 - val_acc: 0.5785\n", "Epoch 2/10\n", " - 94s - loss: 1.1781 - acc: 0.5793 - val_loss: 1.1671 - val_acc: 0.6141\n", "Epoch 3/10\n", " - 94s - loss: 1.0313 - acc: 0.6347 - val_loss: 1.0538 - val_acc: 0.6586\n", "Epoch 4/10\n", " - 93s - loss: 0.9202 - acc: 0.6755 - val_loss: 0.9969 - val_acc: 0.6661\n", "Epoch 5/10\n", " - 93s - loss: 0.8314 - acc: 0.7067 - val_loss: 0.9409 - val_acc: 0.7016\n", "Epoch 6/10\n", " - 93s - loss: 0.7516 - acc: 0.7350 - val_loss: 0.8693 - val_acc: 0.7119\n", "Epoch 7/10\n", " - 93s - loss: 0.6788 - acc: 0.7619 - val_loss: 0.8355 - val_acc: 0.7244\n", "Epoch 8/10\n", " - 94s - loss: 0.6024 - acc: 0.7891 - val_loss: 0.8053 - val_acc: 0.7333\n", "Epoch 9/10\n", " - 95s - loss: 0.5279 - acc: 0.8146 - val_loss: 0.8017 - val_acc: 0.7266\n", "Epoch 10/10\n", " - 94s - loss: 0.4718 - acc: 0.8355 - val_loss: 0.7983 - val_acc: 0.7293\n" ] } ], "source": [ "train_history = model.fit(x=x_train_normalize, y=y_train_one_hot, validation_split=0.2,\n", " epochs=10, batch_size=128, verbose=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5. 以图形显示训练过程" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "def show_train_history(train_history, train, validation):\n", " plt.plot(train_history.history[train])\n", " plt.plot(train_history.history[validation])\n", " plt.title('Train History')\n", " plt.xlabel('Epoch')\n", " plt.ylabel(train)\n", " plt.legend(['train', 'validation'], loc='upper left')\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_train_history(train_history, 'acc', 'val_acc')" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_train_history(train_history, 'loss', 'val_loss')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6. 评估模型的准确率" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10000/10000 [==============================] - 7s 693us/step\n", "\n", "accuracy: 0.7254\n" ] } ], "source": [ "scores = model.evaluate(x_test_normalize, y_test_one_hot)\n", "print()\n", "print('accuracy:', scores[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7. 进行预测" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 7.1 执行预测" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "predictions = model.predict_classes(x_test_normalize)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 7.2 预测结果" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([3, 8, 8, 0, 6, 6, 1, 6, 3, 1])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predictions[:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 7.3 定义函数以显示10项预测结果" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "label_dict = {\n", " 0: 'airplane',\n", " 1: 'automobile',\n", " 2: 'bird',\n", " 3: 'cat',\n", " 4: 'deer',\n", " 5: 'dog',\n", " 6: 'frog',\n", " 7: 'horse',\n", " 8: 'ship',\n", " 9: 'truck'\n", "}" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "def plot_images_labels_prediction(images, labels, predictions, idx, num=10):\n", " \"\"\"\n", " images: 图像数组\n", " labels: 真实值数组, 其实每个元素的数字代表一种图像类别的名称\n", " predictions: 预测结果数据\n", " idx: 开始显示的数据index\n", " num: 要显示的数据项数, 默认为10, 不超过25\n", " \"\"\"\n", " fig = plt.gcf()\n", " fig.set_size_inches(12, 14)\n", " if num > 25:\n", " num = 25\n", " for i in range(0, num):\n", " ax = plt.subplot(5, 5, i+1)\n", " ax.imshow(images[idx], cmap='binary')\n", " title = str(labels[idx][0]) + ',' + label_dict[labels[idx][0]]\n", " if len(predictions) > 0:\n", " title += '=>' + label_dict[predictions[idx]]\n", " ax.set_title(title, fontsize=10)\n", " ax.set_xticks([])\n", " ax.set_yticks([])\n", " idx += 1\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAroAAAEwCAYAAABYPtI6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzsvXeYZdlVH7rWCTffW7mrOlTnNDlIM2KUGEmYJzIiCUuGJ96zMbaJfrzPPBtwwB9g/GwwwcYy6AkMTyCERJB4QiggjeJoYk/sMB2ru6u74q26+YT9/ri37wrV3dPVUzWjuazf9/XXe9e+95x99l57nX3P+p3fQuccGAwGg8FgMBgMgwbvle6AwWAwGAwGg8GwGbCNrsFgMBgMBoNhIGEbXYPBYDAYDAbDQMI2ugaDwWAwGAyGgYRtdA0Gg8FgMBgMAwnb6BoMBoPBYDAYBhKvio0uIuYQ8WFEfBIRn0HEf/sSjzeMiP90o/p3k334l6/k+QcBiPhTPXt4GhE/gIi5G/jOv0HEn75G2xc3vpcvDkTcjYhPX6Pt3yHiN7zcfRokmJ0MLhDx7Yh4FBFPIOLPrON7P4KIP7jOcz2IiB9dfy9fOdyMrSLi3yLiazejP4OE3j7iQ4j4PCI+h4gPqPYJRPwKIj6OiG96pfrJgYhv6vnCJxAx/0r35+XCq2KjCwBtAHirc+4uALgbAN6OiF/3Eo43DADr2ugi4shLON/VYBvdlwBE3A4APw4Ar3XO3Q4APgB8/0s5pnPu9RvQrw21E+fczzvnPrmRx/y7BLOTwQUi+gDwWwDwTQBwKwD8fUS89Ua+65z7befc71/lmMHG9vKlAxGHEPGm7tVXs9WvxWt8leK/AMDHnXOHAeAuAHhOtb8NAJ5yzt3jnHuIN/Rsd8NxA37l3QDwS865u51zTfa9gbaJV8VG13VR61XD3j+R6QIR9yPiJ3tPfR9DxH2IWELET/XqTyHid/Q+/ssAsK/3q+Y/3mA3fgMRP42I777aEyFEnETEj/TO/yQivr739z9DxEd7v6J+uPe3XwaAfO/8f3gTQ2LoIoDuOAYAUACAC7wREX8cEZ9FxCOI+Ees6dbeU4uTiPjj7PO13v8PIuLnEPFjvadFv72OG807e08O/w9EnNCNiHhbLzrxRK9fB3pNPiL+j56dfOLKr21EfD8ifk+vfBoRf6Vnyw8j4v4bHai/4zA7GUzcDwAnnHMnnXMdAPgjAPgO/gFE/EeI+NWeT/5TRCz0/t5/Yt+b419DxEcA4Cd6Y/nbiPgIIh5DxG/VJ0bE+xHxS9h9WvdFRDzU+/t7EPHDiPhxRDyOiL/CvvONve88hoh/goilG7zONwLA0V6fd16lL9e6z2lbfQgR/wIAnsVudOB5RPxD7D6N/NCVsVHH/m+9cRCR1J6N/Vt2zsO9vxcR8X09u3uc92WQgIhDAPBmAPhdAADnXMc5t8za7waAXwGA7+it4Twi1hDxPyHikwDwACK+rTdGT/XGLNv77jf35uZRRPx1XF8U4ZHenL4VEVH1+R8CwPcBwC/0PiNsoveZf97zS08j4k+y7/5cz8d9HrtRsatGu75m4Zx7VfyD7pOYJwCgBgD/4SrtXwGAd/TKOeje0AIAqPT+Ng4AJwAAAWA3ADzNvlvuHftq/25ln3sNdJ8gvAAAvwEAd7G2PwaAn2R9HeqVR3v/5wHgaQAY69Vrr/SYvtr/AcBP9OxhDgD+8CrtFwAg2ysP9/7/NwDwRQDI9mxiAQBCPicA8CAAtABgb28u/wYAvofN89Xs5AfZeacB4Oeg+wv/QwDwdgDwem2/AQDv7pUzPbvYDQAxANzd+/sHAeAf9MrvZ+c+DQD/qlf+QQD46Cs9B6+Gf2Yng2knAPA9APA7rP4DAPCb6jNjrPzvAeDH2Pz+dK/8twDwX9nn3g8AH4fug6ADADAD3XvKg1fGEgAqABD0yt8AAH/aK78HAE4CwFDvO2d68zwOAJ8DgGLvc/8CAH6+V/7Va9jKz7A+jQPAT/X+/nEA+F4AyPTarnqfu4qt1gFgT6++G7oPi97Qq79Pjcdre+Ur9y+/9/c7mY1dGct/emUeAOAXmU0OA8CxK9c8SP+gG1l+uGcrjwPA7+jr7NnCb7K6A4Dv65VzAHAOAA726r8PAD/J/n5lnj7AbO4t17CTL7Jz+ADwrQDwYej6lX8JANuUbV/xE9omXgMATwFAEQBKAPAMANwDAPf1zpOD7l7p+BVbebX8e9U8rnbOJQBwNyIOA8BHEPF259zTAACIWAaA7c65j/Q+2+r9PQSAX0TENwNACgDbAWDyKsdeha7hvlgfHgWAR7H7RPcfA8DDiPh/Oef+MwC8Fbo3lSt9rfa+9uOI+I5eeRq6jnPhZsbAQMBuiOY7AGAPACwDwJ8g4j9wzv0B+9gRAPhDRPwzAPgz9vePOefaANBGxMvQtYkZdYqHnXMne+f6AHSfqnzIOffOF+ubc+4cdH81/3vohlXfBwCPAMC3A8CXAOBfIeIOAPiwc+5474f3KefcE71DPArdG9HV8AH2/6++WF/+rsPs5O+8ndzeG99h6N68//oan/tjVf+gcy4FgOOIeBIADqv2IQD4Pew+aXfQjTJewaecc1UAAER8FgB29c5/KwB8oTePGejOMTjnfurFLsI5Nw/defxV7HJB3wfdH0l3QvfhzdXuc7PqMA87506x+jnn3Bd65T+ALsXn/1bf+T7sRiIDANjau4YjvbYP9/5/FAC+q1f+RgD4dvbELwcAO2FtWP/VjgAA7oXuZv8riPhfAOBnoDsn10ICAH/aKx+C7lo+1qv/HgD8M+j+mDjJ5ukDAPDDAADOuc/Ai+xTenuPjwLAR7EbKfolADiLiK93zj18la9wm3gjAHzEOVcHAEDEDwPAm6D7g+/Pe/uqFiL+5fX68LWIV81G9wqcc8uI+BnoPv246osZDO8GgAkAeI1zLkLE09BdeAK9jfJD+u89vMs5d+WxfgAA3wwA/xsA7AeAn4eug7gqEPFB6P7af8A510DEv73a+Q03hW+ArqOYA+gvyteDnI9vgW546dugu2m4o/f3NvtMAldfB+5qdUT8Y+g6KY3/7BjnDxHvB4AfAoC/B90nb/8DAMA59/8i4ld6ffsrRPzH0H0CpPt0rRcF3DXKhqvD7GRw7eQ8dB8eXMGO3t843g8A3+mcexIR3wPdp1hXQ13VrzqvDL8AAJ9xzr0DEXdDd4NyBVezGwSAv3HO/X19YkT8Veg+rdP4I+fcL7PP3QpdW/lOAPgs9GwFbvA+B+u8RkTcAwA/DQD3OeeWEPH96rhXrpOvDQSA73bOHb3K+QcJMwAw45z7Sq/+IehudK+HVm8jelNAxLfA1X+0NhzjYvdoFd8P3SfKHejuV45c5XsAa21iIPGq2Oj2fplEvU1uHro3hf+AiL8E3V8kH0HEGUT8Tufcn/W4Lj50f3Vf7i3+t0D3lzUAwCp0H8EDwI090UXEfw4APwrdDfF/copcDgCfAoB/AgC/hl2ieal3/qXeJvcwAPAX6CJEDJ1z0c2MiQHOAsDX9XhlTegS/x+5YhMA8OcAMO2c+wwifh66C/9GOXEAAPf3HP0ZAHgnALwXAODFntQh4jdC96nILHTDWT/huvzBK+17ofuL/dexy7e7E7obmBvFO6HLMX8n9J4IGa4Ls5PBtZOvAsCB3vifh+7cvYvfF6Dr5y/2onvvhrUb4WvhexHx96AbCdgLAEdB+u8hdqz33MDxvgwAv4WI+51zJxCxCN0o5LEXe6KLiPcCwH+F7tPa3wWAexy9s3KlL1e7z70YdiLiA865LwHAuwDg86q9At2NUBURJ6EbdfjbFznmXwPAjyHijznnHCLe45x7/Ab786qBc24WEc8h4qHepv5t0OU+/2iv/Tdf5BBHAWD3FXuALu3ms72/70XE3c6509Bdv1fO+aJPdBHxDwDgAQD4E+jSpI6v47IeAoD3Y/cdIgSAd/T6FQDAf++tqwC61Ij3ruO4rzheFRtd6IZMfq+3gfSgG1b6KCL+CAD8Re8zPwDdyfh3ABBBl8P0hwDwl4j4FHRDgs8DADjnFhDxC9iV6vn/nHP/5w304Qh0uXEr12j/CQB4LyL+79D9hftPoMul+hFEfA66Bvxl9vn3AsARRHzMOffuGxwHQw+9cNGHAOAx6PIWH4fumP4pdG3CB4A/6P26RQD49d4PpRs9xVcB4Deh++T+MwDwkRv83gIAfJtz7sw12r8PAH4AESPobnJ+Ebo3lBvFCCIege7TlDVPhwwSZieDayfOubi3sfhr6M7j+5xzz/SeyF+5L/wcdN/fmOv9X77qwdbiLHR/CFUA4Eeccy1lE78C3XvSzwLAx26gr3O9J8of6D2IAQD4WehyWF8MTQD4IefctcL/V73P3QCOAsA/Q8T3QfdlpP+m+vwkIj7eO945APjC2kOswS8AwK9B997mAcAp6G6MBhE/Bl3KUwa6P0J/CLrX/6Lj1LOnH4IulSqArh/5bedcG7vSpx9HxHrv7+vBBwHgPc65eJ3fA+fcY72n9lcoDr9z5UcKdl9YOwIAl6DL461e9SBfo7hCWH9VAhH/2jn3v7zS/TB87WAjbKJHOflp59zXlIPuhSRf2+PrGV4CzE4GFy91bns3+4865z60cb362kKPbvFR15XcM2wQsKuQ8F08OnMTxyg552rY/WX1WwBw3Dn3ivLsWZ8K0H2p8oedc4+9kn1aD14tT3SvCtvkGjTMJgw3ArOTwYXNreGVwgb96P1HiPi/QveFxccB4L9vwDFfKt7b44jnAOD3Xk2bXIBX+RNdg8FgMBgMBoPhWnhVJIwwGAwGg8FgMBjWC9voGgwGg8FgMBgGEuvi6JbzgRurZPp1/g7q9d5S1vQIp+T7xHcVk2LNZ69ZAQDH9+36HPo47MuqTbM5rk/voOOsESV01xmT610XAKT8nNc5jj6r7kPqeJkq1XoMzXZyw6+WrwdjY2NueprkLV9pesw63qC/Pl7kMqQI5XVarzuf8rO667oL3I7XM87rWa9HjhyZd86tSVO7ESgPjbqxqe3s5FRMYqm8l6Zpv5zNZUWb78vU8XxcPHWp+trxGuVud+icvnft7/UOfM22JJEvQXusv2v7c/N+43qNaULXos/peeQ7+Th3T6rOyT7Lj3L27FlYWJjfFJ9SLpfc2NhYv+4FNP+eyrrss/4lqu9pImVM+X1h7dqS4OdZM0e4Dh93nY/q+RWnuK4fu/6wIz+u9inX8RtrbFPY+JoRumaX0qQlmo4dP7lpPiWTCVyO+Qf0qV9RLOc/YfbA1wcAQBBKnwIBbZde7Jbi2I2305DXjsyPhLlQtGlfxe8Vej8RBLIeZtl2bs2Ng99TZFsSy/mPY/JV2jSKRSXPzD6wUq2JpjBL16bXaNRRqqpszfoejXur3oJOu/OSfcq6NrpjlQz863dRghh0ZBiZUB6KO8NOpy3a4kReZCZDm+dEOVluMN3jkmF6yg5dVKTPgTToMCONzWeXjp48R5LKm1IUU5/SVDs4Ok6s9o3t9No3xtTJ69TG12GGkCRqbNl3PXWdHTV+dXYpjQ599n9+8kblJNeP6elp+OQnP9mv84WzYZvOdWDTNrprfpSxsqfbqNVb2yiBfEOi1gNom6JjbdZGd2pq6loSWC8ZY1Pb4V//9l/QH9iGcGFOJnZqt2gN7923X7QND0nlrZDd3DLqhpXx5fhnmK8K1IYliZv9cqkob0qhr248rO4r57S0tCjq5TKpXIWhPG6AbBOs7nxxKl/m9q4Tk9M3l0a9QecIpE/J5egG1unIc8TKf+dzlKMC2XW+9evfcO3OvESMjY3Bz/7cv+jXS+MHqT9+Rny2UiYZ5NW29I/1FZmU0vOYb1cLMVCDm2eb65yvbp3etTeSen0naXLNtjSV/eV90nPmedf+saTBN/ToSZ+izym/J4+bzdIYZDz5YxOcrGOG+tdYkMpoD37T926aT8nlsvDa19E+JSyTb7is1uHi4nK/3F6Ve4SRKelTglH6oYWhWnjKp0SrdP8++9izoi1kDwunD2wVbXm1eU0j8g1JLNtGJuSmc+se6p+vbCVlfjUI5XpZWZT7sbnZy/1ypPYwD9wvEwS6Nh33E5/4nGjbvpseYORDaRsXzknf7udpzZaL5Bsf/sR61dWuDqMuGAwGg8FgMBgGErbRNRgMBoPBYDAMJNZFXXCA0BGhUgrrgQqZZ4FoBB7IMF4QyFCJd21q7ZoQQZuF1eJUHZeFhH1Nr9H0oZQ9ro9laE7TAVJ2ng7KcEHi0yP5jupPJ5EnRRYiQkWPyKnrDFjY0QtUODVifUd5HKf6zkPdvn91bt1GAxHXcCZfSWwWXQJTPdYMKuSc8hF3mnOj6AgsDIqg+JJreA6bT13YTPieB6UC41s6ckntugx3pR0Kvecysv/FvHRlPAKo13NWOYN8hq01Nd5txuHLBnLtZ9Sa5VMeBIouoegTHl57jrOMyqUiolBvyDAjb+YUMAAAp/yux7mBKrTJ6RNRW/rDQFEg8ix8LXjJawiGGwcHCKmj8Y/9kX45Covis4lPYVAvVNSFpuQRuqTeLysGCbSd/G7EQv4tZUOM1QCdSIbAPeULmw26b2o/qWksnMLmeXLuHaOxeJqOo2whZtxUxZoDRH1/JtsYGRkRbdk8hZU9RflLVR0ZRzOprSer9kuEjxCUyFbyE3QNJWXbi0tL/fLopEyaN7VP0gqWW3zglK2r9dRokZ0lqZy3ocpQvzyxRZ4zcIpWUGUcYl/abmm8IOoR81XtpuIiR2Qr2aJep3L+ozb1N8jkRduYoog1apQgrbHSEG1zF4gmlFf26Kt7YLEy3C93WN836lZkT3QNBoPBYDAYDAMJ2+gaDAaDwWAwGAYS60wB7MDxkLujMIBT8jmY0KPpNJJv8fp5FdLnEj4qqqvfCM2w0E7sZJgnjdg51fdiJSuC7tpvwaN6i9f5FAZpJjKcOrtAj/nrHfmcvVaTIQufhcLKORXaVG/XVwoUMshn5dimHgtZqRDKmlAYK0fpdd4M3kA450T4+5WWF3sp55fSd1pmQccA+Uc1dYNsrB3J+Qx0zJTJ3PgvKlukqQ0vHS/nfCE4CBj9htMMMr68tpAprmQ9Rf3Rn2UKCO2mDKn5vlzDuYDWWtRWYWdgUjuxbHMo3WfCaCWZUIb8PD2PzBeget7AQ52Nhuz7wtycqE+OU1hWUwf8jOyfz/qn7YqzMAJ1nLby7VxdIuK2vIlmg+DAc3SuhI1fonxngjRPubIcg7Fdk6LuVSl0XWrI0HCnJcPcCQuHp0PDoq3MqDS8nwBSug0AoNMm/61VhnJKNo9Pk16XQurrOnJxAAAxmyetHqfvBZmA/FE+n1cf5ZQbJf+nKX/crl9GtR30fQhYiD3M0v28VJFUgeIitU3uGBVt+bKkxFQ7ZB9BoHy2p3xBk+gpmjZZZHYUxcpWnBzvVn2Fyp0V0ZbG4/KzVbL7xdll0eZnqL8TO+U5AkUDa9fJPnN5OQa5rLzupMWkwBStqtMgW5kck2Obq0gqS8Rs5eKZC3T86NqKIOuBPdE1GAwGg8FgMAwkbKNrMBgMBoPBYBhI2EbXYDAYDAaDwTCQWBdHF52DIGG8JZ/xXJWERtZn3BOV7UOn8xHSKIrnFavMaFzDJ1TSF1O7KVvOyvK8aJtfkFy3MCBujgeSF9WJ5bA0GW/muTPyuC5L3JPIl3yWTknKEdWqlJXl/GXJoSllFceHcWx2TkrO8FiZZegJdNY0yfnh9BvOa9vMDGWIeF3+2GbgZeGVqsvQ6UUdyyITKyIcTz15/ORJ0TY5tUXUUyahNzEq5X00RyrdhOt+ObPXITrIMO5tGtO1+4oDGDJ5p1C1eYlc35mQpwBVWRK9jqrTGkpRZR5Lyd/FLSVTptZ7i81boSB9k04fLIiSag7rLAPco48+JtoixTceqdxH/cmqVLhrstSyc6p3GDzOvXRaXlFJGKZcqoq3bd4adOBDDEzaCsgnpoqf3Wb8+DUyRoH09ZUCraf0MZmFqTMvObtbbz/UL+Oc9O1tJFsoqYFfbdZFPcfGKaveM/HGJHfRY/JiWmquXaA+BJEcez9SfSgyealqVbQF07eKemOY5K9SxUtPmB3nUnlfQmXHXsJk8pKX75maH4QwNEE+dXWZ7ru5kpTkKo/QeA9vlTzSmqRoQ+jRXOXU3iNS/j5maziTkXOMLOXu0qy0sZye49oq+6JclwVf2mC5SNeSRipTG/Ppa7KmqVTrHrNfLXenMz7ms9SHqeltom3H9K5+eet2eY9rK17wzOmZfrnRJN58qvYzNwt7omswGAwGg8FgGEjYRtdgMBgMBoPBMJBYp7wYAI/fYkASKzrcGbMwmaekgDqxDA9mmNxPkqhsUyrExmVKdGai133D3+uXH/3il0TbheUFUa8zekKcyBDkmRkp4XPq/Pl+OTsss6XsmNxDfc1K6ZKOCpOFpQk6Z0uGLBYuXxD1wjCFUWZql0Rbi4VJJssytFBQGZiSiEKdPHHNi6pWvQRcT17s5QyL38g510d5UPJNoQzdJSzDWVPFvZarFL68NL8o2rSMzViZhWhRS/GpOt6gvJgag5d/Fq4OBIQMozY51s9QZVoCRpvyQcsZyvEOWbafSIdfUzWPFZpHdDKMByz7VBqrsVZSg7UVohuVCjKs6Ck7izvU3yCUbniZSYotqmxDeaVV1GHD0Ilk/4KMotYwn5wk8jpj5pM7HTmWGRXqdMz/pNxfbzp9iN17WEjTU3OWxGxeVLwfFVWghbTWwlSuQxyX4dbGKo1RdOqYaIuRQtmpnHqoq+xsnLaSiRRt7pySJWRzqjPotRg1zm+puZe3WGhP0XU3Z6X/KeOEqOMQyVZp+bOIrclQZ39Ucos+oyQFei1vIjwEyLLMhMjKW6ZkeH2lTVREVOuwXVXrwKO5ClNpV/o+0mE0Ju2hq/MUms8XFf0pJ21leIz2WKWyNKxVRTFqMD+XFJRMHXMUzaqieWXUGgnpWgqK6pH1JGWjsoXaD999WLQBG3eXV7QWtS4LebLPe19/Z788d07a6s3CnugaDAaDwWAwGAYSttE1GAwGg8FgMAwkbKNrMBgMBoPBYBhIrIujm6IHbY84TdUG8TOSWPJZRkrECakoeZ9A8Vm4pNCaTJlK2oZzOxqNJdH26Y/+eb98aVn251JN7unPnKfvnrl4TrT5OSnxkviUTrBYkWn3wgJ9NshJ/kpW8StzHvFx5jtN0bZ1x05RbzFJmlOnJEd3kaX681H2dfeErIcsnSyyVJ6bLS/mMf6WSzfmXI4f5kUoX/z6vOtca6LYqqnipPnM3jodyQWcW5ApGVfqNC/NtrT5eoPs0ctK3lO9KQl1pQJdXKyuU7KCbz6z5ivBlb4aPHSQRZ7OlWyUy4kByPS8HmjJK5W6l6XnDbxrp7AFAPCR5tUpri83tFhJKCZK4qy2SvZwVqcSDjSnj65tuiLtgaf5ffLIEdF25223iXrKUx0n0o5yOkU64xs3G+o9iYD6E0cqZXIg+8fTlrbb9Fm9djYSzsn3N1Lm15x+XsMkKTtKnigJZB+HVtncT8j0wPktu0Q9dkyWS6VXduNT/XIzlIs2mJXvh/A893V1z3CTY6LOuaAt9b5KkXH7O6tyztrKxoM8k/qqS9sMxiQXGUPG5XaS61lmh/UV+zRGJaPl8bpOib55SJIEVpmEGjK7PHf2jPhskckQNpQ/TyLJic2w66kvS3lQryA9M5fs0vefDJOIHNspU0kXmbQbAEChzO7nSpY1UZJyEXsvBJ08Z+0ycV2rc9Ieb73vkKiPTTFJS3X/yYZyTIYrZIPF0Ypoa7L3ACJlKyMled0j0zQPqzV6f8nXmno3CXuiazAYDAaDwWAYSNhG12AwGAwGg8EwkLCNrsFgMBgMBoNhILEujm6cIsw1iWuzGBHP4nNf/Kz47C0HiLvxltskr3XEVxxdxr3yfMnl8TzJ+0mYZqKiwMKpM6eob03JLXIFmUrVLxH3xRtZFW15xZPpsHR+HaVbWhmh66yUpCbe5dlZUV9ZIp5MWXG8cnnJ1Tq7RPp+YVlyqOZmz/bLpUuy71MVeZw84yoKjuEmal6maQr1BuMgM85coObXsTY/kG26jozArShI4KXX/s3madVYxpmqKS6l1kPMMw3RViT5fhcVp+vyEtVTdc6IkW0bq1JD+bLS1Z05f7FfvvXAXtG2b/cOUfeZluIaTWDHxkRTctekh6XymvHaTLgUfKb/mHLdZ6W33ayy8W5LTqLzJF/Wz9O8ZRS3NqPtKiI+fKKOCwnX45Tj4lS64HqdeIGXLsnjFCuSO+8Y384pndpOjb6bC6Ufm1PcwMeeJg5vMSuva/9eaTsBI9y1G8rnBdSWtuX7A4nSD064S26xOVG6nhsOns6c8VXTNWni2eeULnuo0qhmTxzvl1uPPiTa4vsUX5vpqDonecsZxvVtgZz70kU5Z36WjpMWZX/QKW3uiI5bHpO8xvA841rWpE8JJ6WmO5yjzwbKFltzkgfus/dO0oMyPXArQ/3z1L0wEyteMPN5bvPo22uQpCms1mkOIsb1P/3EU+Kz23eRrm5ZadoOF+UcO2YO1apM6wwqjW7KdGtL6rh77qL3ccb3S0625qQi2+RcOiNTN597bkbUR8u0x7nt9jtE2yPPEDd5WaW2Lpblfsdj+7O2etekMCztKpclWykWJX8376gNE7lGx4eldvNTz1Cq86PPkkZ1XXHPbxb2RNdgMBgMBoPBMJCwja7BYDAYDAaDYSCxLuoC+lkIhijlbWOB9slRRj6KXmxQGK3RkY+0KxkZ8ku5BIwKQ/m+DB+0OhSan1ORpflVeszOU+gCAIxMSPmuekoht3GQ4X5fSb50Qupvqy5Dfq0aHWeXkoZpKHrCZSYphiokWV1Uj+hZaK5Zl2ESP0NjcnlFSqxdrMpQ/K5xmgeh1rSJ0ek4TWG5SZNTKlDoxgsUFYXJx61hH6g+csUcT3EX0LvObzYV0ufSWrMXz4u20VFpN/kcheraLTlHhawMM05NEEXHqc7XGzQvxYz8XqclQ8U+m6haWxp5rFP5MmrK2nTGLGWqpiqoT/I/bHomVwYPAHKMN4En/JHfAAAgAElEQVTs5Jq6kGWh8ZKSrBtS8kUeCy1mlSxTTke6Gc3GU3PM035CIs/ZWZH9KxfpsyPKjk7NSBrTyXNUP3biU6JtaZ5C3bWWom9Ez4i6DywtbV2GNm8/dFDUv/1b3t4vb1e+qs1Sj7aUv+nUZd8rjnw9Npk/TCS1ZyOBiBD65Ds8Nt9cagwAIGXpZgP1LKe0JK8tnqHU6xXlk1cvyOvu5CjE60De03D2cr9c3CZD1Z2KSsUM5AvyKlV4ZlndX5iEXTx/UX6W2Ua8Iuc+uyilnqImk3vMS0rL8ikpr5nJU8i5vFVKrPnssp0n11VbaVHFzDd1NlF6TiNNU2gwn9ph95i2kpsrbqN1kE/l/CcqFbaHZHOlnJz/uUV5H26x+9++23eLtt33bGf9ketb0zFXL9C8Hvvi06KtVlUUhEO0PhKQfa9sIfpjVp0j68n7Ec9KXd4u90KX2yp9dImoDMW83KsFKTuupj9FshMnj5ENXnqB1lLU3hifYk90DQaDwWAwGAwDCdvoGgwGg8FgMBgGErbRNRgMBoPBYDAMJNbF0c3li3Dozvv79ZkvH+2XS0OSo3v/A/S5gi/T7nUUz5XzNjGUnJDESUmV8pbpfvmJIydEW2mY+Dbbd8lUmc6T/JuQ8W7TtkyJ1+lIPgnvn49yyJ55kqRZKlnJPy0oWZEik225MCvT+saam8z4YiNlOSZVllpvaVHKmpyalVytbZOUmjLg3GhNBtpAoB9AUKG5SBh/NvJUKkgu96OkfxLFrfTc1bmcAADuOjmB10iRsXqseFioJZIYv2u4LOczUikYgXEICyUpw8I5uuhLW0SVrjObZ+vBk22xmjd3Hd61/Krsq7RU9dWXkaTb6XTg3OnT/XoUkY2urkg/kUQ0V+fPS271klp7dcad3zIm+bIlJYPjBzTnHSUhF2Ro7XmB5LLVFZ+3xQfcST9x9sK8qJ+aIa5bvSOPmxsiPh0WpS+SwlAAxQzZw8Uzx0TbhQvSxzz00Bf65VuUbN3EMHE6mzUph1Vfkf4xuoVShtaqxE1stXX65I2DhwjZDM2bY2sNUnVext/2FJe7Fsr1U3vtXf1yJXiNaGusSvuLmOwSZtWts0M2FOalfdVVamaeEjZKZH9C5R+bbH51Et0mk05r1GRfi6oPLXacbElaEZelAgBI2P2ulleegqU3ziuepX5/gA999DL6FM/zIF8ivmhtntbe1HYpz7h7H62Dkbwch7MvnBL1CydpHzM6If17qDixnSnic+84PCXaPGaDXktJHSqJtpOPkoRYfVHyyw/dKdfw4dfd0i9fPCt51xVGzD18n+TuexU5x3m2jwoLco5bHekbLi3SOKNKUO8zf5gou15dle+lzF0mH7NGLnADYE90DQaDwWAwGAwDCdvoGgwGg8FgMBgGErbRNRgMBoPBYDAMJNbF0fX8AApDxN/YtZe4Hk1JFYWde/b3y+OKy7h8SnJ2I6Ztl8RSi+3+N3+nPO7e1/bLe+44LdoeffzJfnmkJHkxFy5LjlzAUi1mQ8VDUhSRGtOVrC5JHbmRIn1XM0sSxTUZnyAec1txAeeXJLcWWSrAskotHPhMn1DxBE+ek2kBJ4aJY3hgB/GK3Cb+xplfWIT3/f4f9OvIxiFUOrqlMnHJ9u+RWsf33SnTTwasy06NrdaQdZwvqbhjMePdar3TTFZy27gebiYjubVjIyqdMWPRBUorN8PTvIaKPxdLW1hm2sjLVWkXq1XJkYp4qmWUYzDGUoYe2C/5XKHSeObDp3nBm4larQYPffHLdG6mVZkqjnazSevw9OwF0aa7zG1lZEhqihZzcm6y7LuhSg8csHStXiDnraE0bgN2Hqd42LOLUvMyYqLRhbJ8DwGA7IGnAwZYm5651aIxqZTldX7da2Qa0HqVfFerJfW2z54lm3vhhRdEWzOWdnVmgWyu2WC+sS55dxsJz/OgWCRfFrM5jBJ1Xsb1j5V+K2ZUivRJ4lKu1OVYzymdUmTpyzsNlVaaa8Yuy+PEKv9tNkM+cEX5sVyobske1fV6aDcYLzSVdlttSp/CX0UoBLI/5R3Tou7zZk/2D/l9Q91CUN8BmVNJX8YcwF7gQ36U7nUZdm/1FNO5lKM1k6/IvcdexkUHAJg9S7rKs5ckb32qJH3D3XcSX3Z6aptoc2ztxyp1+fFn5HtHc2fn+uXJPfI9qMOvk+8hlceo/82mXN+VMvmj7KS853mh0tFl/ufSiTnRNn1wUtSbMa29wNMC5WyNKq78/Jz030sLtD/Le3IeNgL2RNdgMBgMBoPBMJCwja7BYDAYDAaDYSCxvhTAngd+lklkXXquX777NfeJzxaH6PGzvyqlgBIVCgtYGPXkOSmT8saRPaIOBZIHKRdliCgXUN/yGfn4O6fCzjzF7vZtW0XTsyp0l2GyNitKcmb3jgP98sHDMtS+qNIClioUorzAUkYCAKCS3xgeofBCVaX59RmtIV+QYc/mqhyTE2w880xiJoo3L5Tk0hSaTE6rw8IoYSBNbpVF5guqLbnlsKi3WLpET4X8siokyUPxiaY1MCrD0KgMB3k6Vy6TRtNpLH1FT+CSbXp0UxbWO33mpGg7f1nawuIChcWaTRmWTVRKxE6TxqTdlnO/Y5rCTDunpaxOMaOXvmOll4+60Gh14InjNB6FPKPXqHSd7Ziub2hEprDl0lMAAB0W0p+ryTCer+a4nCNqUJzIUCIyKSDfV2lfA0kpytYpJN2JVkTb4qKkPPHx1ibXSSjOvKroAJ2mlDGaniA/MTYi6Vp1lRJ4cYnCkGPD8lpeexeFQWdUWuxqU/qm52fIPj3mt6Jk8ySkEBECNhf5MpOPakiKQcB4K4kKpwaopCOZT0lBpWP1ldQcu1Yt9RV1yDbzigoXeHKtcXqMlhNLFI2p06L5jpVXCfNkOKlKT51RMmohC5eHsTxnR6dTZ+fJ6TnlaZ6V3abqD7wH+DL6FA8RcowiF7KweRxJ+gdPH60pW3klQ7jvNqIyPPq5r4i255Xc4R1vpPXUDpW0Y5XOOebkOVZB3s9vO0j7i/EDkjYQFuWeps5oRBO75HEyQ3QeTTMdzUt7eOEJomjMnJX3pjcelnSo1CPfqlXBnEf7sSiRviiN5L0qZVJ5qZIZ3QjYE12DwWAwGAwGw0DCNroGg8FgMBgMhoGEbXQNBoPBYDAYDAOJ9XF00YeQyXG0WpwfKIkfIePIFopa3kfyKbOMC1UKJAft/e/9XVH/tnf+KJ2jPivaMizNnedJrtOevdtF/fIiyVu0ajK13tSWcVFfXCE+SbsjeVx795OM2r79MrVe9fHHRL2+SlwyLWUTJ5J/xeVBhoeHRFviiHdbGZZ8sLgjr9v3aDxnLhLfRqc63UiMDI/A933Xd/frbSaBVczLueeSNHnFG1V0OlhZId5jGit7U9JPAUuB6ZRkVJOlmXWpPKfnKW4b43oF6jhhqLhtjA/oFPGSp8BspbLvxYpMyTkyTPyqpCM/m/Pl+C0vEPdp5vxp0bafSfz5iieoecuct/oyZuuExDlYZZx9Lr1TKMhxyTOO7I7pfaItUuM0N0u+YX5BSgFNTm4R9ew48Zfry/KzqUdGODQiOXLZrEwZ2mJdaMSSo5tTPjCJyBf4ipOWYdJkYUbaXJST9fvvJS7gwV1SxqjVkX7t1As0fi8cfVa0PXAfce+mp+Vxzh5RcpCMt5kyzma6iYaDHkCGjUUmx2S3nOQq5pl8X4zSz62uSP+dMMmw3JCUXZosyjSvPN+2ltLiHFRfPT/yVdruTHDjt13H7guao5uwlMTOae6xrGc4q1j1p63ulbw5UO8lJEC2isrHofKlPLM5f69ksxGAB5M+7T9Os/dFkkRea9Qme0hilXI+K9fajoO7++WLp+WamJ1XEnLbyE8vKF+wpUrnKSfy3j6Slz5v/1ve1i+PbpP2WW1K3msN6T2AtpLcy1xgHNi67GstL/ciIZN43H+PlFjLjcs1sbBA7w81IiXdxtZrVvHdlRsT78bUWDrrJN0Yvq490TUYDAaDwWAwDCRso2swGAwGg8FgGEisi7oAiIA+hXIbLOTfashH5WFI4aTVBfX4WYVfQ6BH8FuH5TPt48/JTCEXZli9IbNrnJk53S/fM3W/aNu+S0rvbLtMYcj6CRmGGM1KaY7yMFEZTp48Ldq2biNKxPKKDFFEio5waY7CoqmWdPHlVDQYdQE9OX78m0WVNQ1SlekLaV46CxTOdWvyuG0gnIM0omvnoTwty1PKUP/zORmCbLbkeDaYNMxpNQ8ZJS+2c8+ufvnUOWknH/34p/rlyJPUj1xWSoYVWJ+KeUmPGKrIcPTwEIV17rnnTtE2MU5h7n07JI3GQzkqPNTJ5YUA1koVNbfQfG/bKu1223aSzUsSaUMNldmJU0rwZfz5i54PIZMsnNhCYfNcRnZkfp6y/tXrUuYPVOadFqPmDE3Itb+dUToAAMpDNDeVcUlrWGASgYkKzSqlIpG5raEkrzqRzhpG459RlJ1cltZE6GSofYuyuYkRqueUpNSEolpUWEauhbNnRduZF073y1OjkrpVvfRlUQ+ZJF+H+S0tL7WRQAAImB/0kcYl58s1vHyZQriLtYuibe6izBw5UiaZuttvldJJoaLYtZnPjFQInMsdauqCp2SrOD1Kh/91hseE8bc8p/W8+Gf1OVS2T0FNkvelQOlCcX+kjxNyWo2ebp0Yi9FCkpcx22KaJFBbIv9QZ/sU5WqhukT3GKd85JZp6Tc85v9vf+Au0XZHS1KpfJ/Wd3NeUgwmmdRpQcnCwZL0G7Mnab/j+/K+UVEZxPyE+teOFHVlie4jmUB+b/6ClC/dX6L7WBvkPbm1KqUaA0btW6lL2lfb0RhMDctzpqp/XGJ22yT5l9MvyHv3zcKe6BoMBoPBYDAYBhK20TUYDAaDwWAwDCRso2swGAwGg8FgGEisj6PrQPCCfMb12TouU3JybuOnj8iUuiMq/eyBUeJ55LJKaieQnJC5y6f75bQtuSU791G6YF/xPQsVKQU0PkmSQguLkhdTXZFyG5y6MzEhU8YGjIvcUtJeWsKrydM5Kj6QrreY7Ekcy98jY4xHiCg5VBmU45Vl8jqJI55MuIlyL0vVFfizv/xEv55GxNXxVJrNEpOhKyv+4e4DMm3txBhxOce27hRto4pbmWPpG5efkxzsp5871y83FSdOKYhBwIhnZZUScv/OXaL+wP33Uv+UNFGRcRk11a6j7CZmKWAb1WXRFqkUtfkC9Wl4WPK1L81e6pfn52UK2nxR8g8np2j8CgWVLnsT4fsBDDMOvM/Gqd2Wtozsd/nighyXlRW5hn22Lv1UTuqZ85dEvbJC/NmhIclz5ml/2y2VIlZJV2VD5k6LkpOWVxJYXsCMQHEmi3m2Tp2c7x1jco4LTMKnviLHJFY8YWSmvkfxlJ97ntIwHzwoJYVA8VEvXqB0p1mWqjzdICmga4HzWQPG/0yVJOAqS9M+NyclKJeXZKrWY0ce7peff/JLom3/fpnSfff+W/rlkXHJfwbGQU1SJd3oZP/48vc9/daCdA5c0lDzeVMm/ZUmeuzlZ312HP12huYF67po43Jn+nu6B2x96HvjpsLzAJkPm9pBc6V9SsLu0fp9iKXZOVHfsnu6Xx4Zk+/CFBflVqrN3gvZnpH3tchj782gXN/btqnPMi5rdE6m452L5IinbE2Ui1KmrJgnGbNApa73PFmvMJnW+QXJL+6clnU3Sv6xoI7r55ndq7TYbcUL331ob7+8ZydxkWdn5R7vZmFPdA0Gg8FgMBgMAwnb6BoMBoPBYDAYBhK20TUYDAaDwWAwDCTWmQIYIGRcn6ES8fyGyyq1K+MprTjJK5tfkvyh8TJ1o5iRXI7EkxyW0xdO98uTIzJ93i7GqWrJr8HDjz4n6ucvEvejXJL83TCUXMxnTnDNSfnbIGX1tuIh1epSO3N4lHg9sSJqXrwk+TfFMuPU+JLPUigQhy+TUXzKSGrZJXXi7U1uId5oEGpu2Mah0WjCI48/3a/nQuLudNpSGzdkWqmv+7r7RNuZ8+dEfYFJYt5+222iLaM0bhuM4xwqvvY995LGbaspeVmZUC6JA3uJ933bLZK7uG1c8jkrBVoDqeJznmN8r8tLknd0cV5ywbju4/Ky5F12ItnfkOkPZrJyDBKWWjdSfPHCsOQQ3w40nkNDKvXpJgIRBZ+20aRx81GlKWZpnpNErsMgkJy0lPEiM1l5PePjW0W9xPxYTmslszENQslB02meHUuNG6sU1UMqzbPn8TS60lYCpp2btiXPdiirzhmTPSSJtI1OrFJfM5sslKXvPDNLfuPZFz4h2tpt6ceiNtmS41zZNTzRzQPnnOZycs4OHzrcL++/RWqPNlYlZ/eZxyhN++OPSL3ghz4nuf3PPUs+7eAtd4u2A4eIvzs8Iv2C1kn2fT4vWl9W5T0X7XI9RIwTrVOia6RMrzVR9550TTrjGwNqjq4SqfWY5necbqJuu4Lne5Bj7ytk5mnd5ivSVng65kBp2S9dkLayZSvp6ia+HKV4Ra69aIne87ms1je/H1VKsj85JX9cKBNnt9WQPrzdkHxjrgPM0+gCANTYu05+oE7iy/cJMmO0H5pWabHTVF7LiaOkSz2iUqu32R6j1pTf89XWM5+leof5v43S+7cnugaDwWAwGAyGgYRtdA0Gg8FgMBgMA4n1yYsBgM/CdVNb6FF+oEP6TKpj6449ou0RRj8AAFhGCjM4vy7ahsZlOGyoQo/dw5wMSe5m1IXSkJQ7+3/e9z9FvcH6t9KU0kuNpuwDj2ZPjcjH/q1FCm/Vs7qvkrLx/NHj/fKlSzJcvbIqQ5TDw3TSipIK8ZnkUNiRffVVWuSJIn12KMfkeTbxJ07c6cDcDI3L6AiFQrbvkOGNW+880C+HKiz7zBMPi/okC1GWUI715XmZ6rNYodDsmApXffvb39wveyrf7dCQDOmOj5EdLS5KWsipM8dFvbpMtIyVqgwdrTLJuuW6nLPFFSnZEjM5tlDJsmSysu4xmbihihy/4WEKoY5skWslW1DhKiZpVWvKkNhmIghCGGMpenlqyFJeXmuaUAg99OScbmGpgwEAkIXnMiqVq6Z45HK01ny1MDg9AVW4EhR1gadubtTlevaUhBiXInOeDM81qmRn509LG1tUeVeH83ScyTEZMs/l5BxziScXSDpPUKAQ6dyM9CHTW6WkYrlD17LCaAw+3mjQ+2bghJyWx2S5nCfHlqfc9VV64OGxaVF/44Pkj/bvl/epz3/2b0X91CmSJqs/LkPVK0za7Y47ZXrY6Wl5Th4iT2Lpx5JUXkvKKIBrwriMOoCK5qOnAnnaYX2v1ql72WfXpCTm/VsjL6aPe226xGYiTVOo18nfxh3yp4rNAzEb3yRRUpMF6TcaK+TTc0PynhxUpH99/YNf3y9/hdFjAAC+8Mjj/fIdBw+ItskReZzVBfIjQ8Py3rRjUlKwmsznLCzLPU2LUwcUFfLSgqRoFMpE9di1X9L1sCXpE3uYPZxelPTLoEI+ua6ofKePS8nZU8ee75e37n5Dv+xt0D7FnugaDAaDwWAwGAYSttE1GAwGg8FgMAwkbKNrMBgMBoPBYBhIrIuj63mekLOqjBC3Lk7kobKMA3Zwj0zX+sijkoeyElI6yhQlt3Fyu+RYPfscScC8/uvfI9q+9EVqq9eljFXUmRf1y7Ncukru92uRki4C4viMeFIaanuezlOdk3y62JeyZZNbqJ6otJpNxYtsNYljVA8lny5OiYsTtWRKyy2hlALaViKeXjumts38hdNpt+D8sWf79RUmrfSt3/gj4rNvf/vb+uVPflrKGm1RElhbCsR5zgeS85VDyW2bHCLOYXlIplXMsbS5seK9af5mzFJezh6VY332skwl22EpGYOc5GeXyyTTskVxJ6POtaWBQiW356vUzbxeLsvxqjDemK/4pbW6THN96RKtj1ZLtm0mPM+HAuOHRozLlVcpl4crxKdMY8WnU+kn8yW69jWyR0pGKHXU7umVwaoqkys4JQUVs/UVJ3IMVxak/+E9CBVHt1Yl/v7FC5IvOzkqbXm4SOmTGx3F71R845id1Sk+4vYdxCM9dGCvaLv7Vlk/dpJ85+NPkWzjo4pPvrFAQMbL9ZCuxQuU5B7jICZq7lHNmcck4w4cvFO0pSr1+sWLf9ovL83LeTneJp79pfNHRdu+A4dF/Zbb6DxbFM8yUNzpOKL+RbG8ZySO+L3axtG7DidW8cXxOoJiTreJOdCHVWRfRhT2vM20DYk0TaHTpLVYLND9JwLpa9McjUVeSQAWipKbzu/ZWkrvfFW+v3GgQP7n/jvuFW2PPkb3xkZbzmk+L3m4OZbi21MDfuGCvP9k2fsbu3bvFm0upe+GSlp0uibfGbnIjnviuWdF28Hb7hH1faMkS7n4Ffne0SKTWItAnnNBvZcyNEJ+bO++ff3yQ9lHYSNgT3QNBoPBYDAYDAMJ2+gaDAaDwWAwGAYSttE1GAwGg8FgMAwk1s3RLZaIezgyTryKGOWhWh5xi3IlxStTenBnz5GO2xvvk6ldWzXJJyqUGX/t/IxoO3HsGPVHpd3zlH5enXFEymOSJ1WtSn7dEEvTd+jg7aLtq0+S/ttjz58WbW988JtEPcwQN/PkiRPynKvynDy1cKspNTl3TRL/J1+UWn+jo5Kn6QLiAMUd4lDp9KUbCZcm0GoQ7+eOu2jM3vq2t4rPjg2TTu0bXvdm0eYp7mI55KkTJQfWz0g+Z5ChcdE6pSmQbVSXJLeqojhyKeMW7T0k537LjoOivrhEfO3ysNQ0jRgnEhXZM1TGyfVCWy3J3a4pfVbH0oDWGrLt3EXSFuacbwCASKWPTBjnrFBUaaU3EalLoc746eU85xVLn3J5juZqpSpTI6epHNP9B0n/cXh0XLT5oeZtUp1zsgEAOh3ifzaUZnWrLcc07tD8YyK5gK4teaQ81fnwsEyzmc8QNzBQ+qjDJcnvHipTvaPO0VBj0mlTnzyU3MARxmMvZOX3Zs7JVLhchvO2Q6QD+tHc5tqNx3yWL8qKZ89cW6odf3pt7deO4srvmN4t6rsZ7/Grl6Rud8w443OXpW3OKT7vc88d6Zf37Nkv2vbtU7qqk5TCuKzSNgOSDbU6So+3I68zZBx2rY2rUwDzZoc6JbH4pOyO0srlNf+GEwu/dCAA+KxvhRJxbytjkofbTmnNZDLS7udnlDb7OK3TlQuyLafepfjys7QveMNdMrX9O77rHf3yzJnToi1RNpjj712oISyXpH9MUvruhRmpjZth90OdLjpQeuWTO8j/VBekz5ufVXuuKvm8rVO7RdvM7Ol+2ZXkOxQ7D8n3tk4/e6pfnp2h9xnijvRTNwt7omswGAwGg8FgGEjYRtdgMBgMBoPBMJBYF3XBuRTSmMJ1Q6MUBqg3ZeikwUK1WhJp5/QOUT/2DMlyVRsyVFIqykfc06Q8AWeOyZDaeRZOeOABGS5oqLBueRuFhEa3ydSPZxefF/Vmm/qUKcowY2WCZHnuKcvrmpuTYfHTZ57sl+tNSa1Yrsr+TUxQ+GDIyTDJrhJ9d0tFhuZClLJqnYjJrHC5F51OcgORyRVg935Kg/nOH/iH/XIjkWGSoydIyiRF2ZZTci8RC40tLkt7g1SGkROWLlaxaiAFCletrkg5O/+SDOtcuExpDdttJU2j0iEWmfzZyeMyxHPq7FnWH3mdo+MyXTUPQVerUoZlYV7KVDlGOfBUKlRk9WJeUlyGlfxZjoWdmzUpUbeZQETIMlmqhXka7xeW5LUmCY3L8IiU7tu6dVLUOyw8F3UkTSN10nZWGM2mqSgeSUzn9BUFJhNKv8bpCDlFKcqHitrF/FGqJK+KLNSq0+pmfLneuW/VUnQtJUeF7LtaZiuKyKfMLEgJxUZd2iCXwJraSj4PN5EOhQjgszA6L4O6TkC2TtekqdWheLzmZ3M5SYcql4nesUa+i127pgagk/1bXSIbf3xehpifefKroj46RnY+NSVTCU9t3c36KmkNY4qONzFJUqA6lbVeDzGjQ8VKikykANZDoKgyjtGAXHo9CsTGwvM8KDB/FyfU0RFFY/KYT28pP3FZUSNH2LTGkbxv5LfK1PaLIY3hF598XLR9y1u/sV92Lelrz74gKY3ZPPmCdkfuGbZNyWvJZsnHLK/K/USOycJqWtUl7WcZdUlLPDa1bCujb332cSmverpBY1Qalr5paEz6xx2HyI+MT5IvDzZIstCe6BoMBoPBYDAYBhK20TUYDAaDwWAwDCRso2swGAwGg8FgGEisi6ObxhGsLhBfNM/kntotyR/BlA6NSv5lfFRyEo95J/vly4tSzmLBl9yeoRJxjQ7fLnlJJ89QaspIUTiXVyT37sABknE5sGefaDtzUXLSnnnmKerPvJT3yWSJQzNSktJeM89Iru/sApMf8qTchp+T3926g3jDuxQXameZeDM5T/K/2i2VBjQljotIIbl5FF0YGR2F737Xu6g+RfybJ5+WvCcu6dNRPK5EpQ10jAOm5WpQXVDC+WGqzRM/72RbFMs+zC8Qh5ineAUAUJRYGK6QpBiXpQIAWOQyLYpnOT8vuWFtxquOVWroRPG0/Ayts0JO2lSW8Tf9WJ6z09Jph2nBaF7WZiKJY1hmEm8Xz5MUU6Eo19rhW+/ol0fHJSeuUJCcr1aTxntpaVG0RZGS4XI0poWCvPahCvm4YlbKZ+UVJzZgPM1E8eDiWM5bxBxUS61hnpLVU/JYiUrdy7JOQ+DL+XepSivepvrCnOTlzbMUxaurkn+4tCzlsjgXPVsmXx4nm+hUnAN0nKPLmpQEFjLOKSq+LGgeMauHKo10sybHYXaW7n0XL0pu7UqVvhuq9V1Wdlxk3N9CIM+Z6NSyF8lfHj99UrS1Wp/ul+NEPrMaG98m6nfccWu/fGC/5PpOTMi1VBki7mc2L6VBHbD1ofx1rCz4nPwAACAASURBVO65gEy67WWUF/N8H/JMLi/hKb5VKuILZ0jWqlNU3GWVZv7SWZqLHbvVOwHKT49upzF99ktPiLbi5x7ql++5XcrJaSnRDEtfPD4l9widhtyn8HuO3mOlzM4vXJC2m3TU884OfTZW6yVJ5STns2S/59j7LAAA3hjZ0eK85P3Hyqfc++Y39MtT44yjmzWOrsFgMBgMBoPBcE3YRtdgMBgMBoPBMJBYF3Wh3W7DyRMUPtl54JZ+OefJ0FzaofBroGRa1sq20OP5UkWGSg4fPiTqn/zEX/XLjap8BF8YpXDBiRn5GH16h5Qp23Po3n45m5HDsHen/OzyIj12f/Y5KaHBpVnOL8sxWFGSa62EQp8ry5JKsWVKSpOdXaD20WlJ0VjgIdRUyZSp+JELaKzb7LMdRQvYSDQaDXj8iUf69SNPUegGQYaYfZ9CE0EoQ8N+oEPo9FlfhQcDldWG21ioJEoybPy8jOqPk5+tZEjex8squTNfzy/LQqcippkChS+jhgqdK8mWDpO0wkhRDDyV7YqFi5O6tKn6Kh2noGx8YkheS8BC9pmNiRbdEIIghNEJClWNMEpCoOeYzelqTYb4ajU5hlkW8uLSWQBrMwNtmyQpv6yif3BJMZdKikFdSQO1mFTdsqJLLCzOiXqTUStuuUX6uJBl1dMBX1/JWnEJsXZdhtpnZs+J+tw89aGjKDCNOvWnuixDohmVoY6P/ac+TeHz1VU5BxsKBACWzS1lGc5cLP0Gl8RSileAa+gdjA6hpMeefOxRUa8t0fiNliUdYeYitVWG5D0sVH4sZRSoSknOp87alwnoPGFWZYP0aM4W1ZydOf2sqFeXKez+2CNyPjMqq+T09N5+edtWeS/cuo1oD9smZVuxJCX/ME+Dj97Ll23R8zzIswyCqy3y06eOSvmuOpPWKhYmRFuks6myNeuHcsxOnj4r6iuLtBa33yGz3/3Vpz5PfWvLNXP/HXeIeptRzDStKqMkC6uMDqCpFHlGgfBCec/L5qXd59l67yiqQlvdj9rsnje9V1JAa0xGs6qkGUcm5VgDuydfahGVLU41H+bmYE90DQaDwWAwGAwDCdvoGgwGg8FgMBgGErbRNRgMBoPBYDAMJNbF0W20Y3jiBHFfd95+f7+cgpQFQy5llUp+xoqSr1leJp7M2Ojdou2b3/4WUb/7rsP98gc//BF5TiRSzdCQ5Att3yY5sCUmBeXHsu+jU3JYtu4hXko1L3kyjz9JaX0v1iTfyoWSqzU0RZIf4/sk71bzUROW7vaok9ysE7PEW8modI7NluTmNNg0xCmNz2oipc82ErXaCnz+c5+kPqwQdygTSm5bvsAlU+S4+07WHftd5oWaoyvHIZdlEmw5yQ/L5KgPQUHKsOQycl4yTI4m0Hy/nJI4YzJ6UVtyINuMM7WGM6rkkYAdJ9A6cEpuChgXdaio0iwWafxKeSU9FspzhixtKiaSQ7yZcAAQMQkoPleBSpWcCHkpOS6BSjPOqaw5xbtt1uX4N6vkj5rSNQnutxfqFKeSs3v0OeJFnj19WrTFiTynY9z+bVunRNvoENlgsyF517q+vERra2FJphxvdiSHOGH9bajjVFeIK6jTgxcCuQ5nL5LM1uwsvSfRUr5nI+FcChHjrnNZQoxl/zzO5dXHATln3H3WlJxYqynXwaGD9E7KvXe/VrQ9euTpfvkrj8g0vtWaTivNUrhvlTJgb3zjG0U9YOvh9BmZ8v7LX/5Sv3zbLbeKtsqQ9GOX2DxdunRJtGl/NDVJ6YP37Nkt+85kG+urkhesZRzDgO5brY6WM9w8ICJkWZrqi3PEVT/z/FHx2Tvuu61f9gPpW1cTaT0lNqatphyzsdFRUT97juZq68Fdom3Pa2iuTpyWcpt7d0ve875d9N1WTe5TtJzflqnt/fKFGWkrS+z9gYxaFXEq52aJ8YuzBXnv1O8pOPZOUEbdD+tV8kc79sjr2nWr5POeXyKOc41J1Wo5s5uFPdE1GAwGg8FgMAwkbKNrMBgMBoPBYBhI2EbXYDAYDAaDwTCQWBdHt5UgHKuSBtt8QvxKF0p+ltch/o5LJfdFp7XctpW0M9/0+ntFWy6UHI09u4iH8i3f8/2i7UMf+Rj1bVbyhy5WJS+l1SI9vYzibS02Zf3EGabXq7hGbpw0MEe2SP5pqjhLiMQ5THPqsyh5hBHj31QTyVXMhfTZnEpTWEfJB4uYhqxjXJwEN09HNwx8mJwgfvLFJmlMJolM/Vdh3KYA5XWuqLSBqyvEUYoSrY0q+XQu1ew8Bsa7zeRl+kvNq46RloinSLoFpcFbzNOcJpG0IcFTz8rjoOYXM83bvOIXj5YkX3sHSzu9Y+u4aOOyi+2W5B96Tq7XgJEVhyvyujYTrXYLjh97rl+/9Tbir+UVt5ZPqacUZlPF5brE0lHWV6QvaDcVd5W9T5Ao3u3e/bv75YktcnwTZWMh4xQPKS3VNfq8bPnx1LwAAM8fJR5hrS71gvVneVrvVKW7rat3IZrsuhsNyffjurpZxclduSzTBS8zvc6E69nC5sI5fi52Np3llxG0FXUbUlTrkplRviB98psefJv6KB0sUNrCB++m91Vuf819os3TNHt20vEx+Y7AXqVFGjC72X3gTtG2bSfde/J5uWaHFEeXj93iouRyJ4qLumWCOOPlsn6XhPlDJVKcpNIHR2weUtxs62D9SBKoLhPnvFYley0V5D0GGec0m5V9HB2R781cnKf1U1cp3nfvkxzUoQl6R+iF4y+ItsO7aI69QNpcxyl96xat04rq+2osfUEnonqBvYMEADC/TP6wuSTvqxU1xwX2LoKH0q+OFKWdrSbkn4pKx32YaeMOTcr77Fxb6orXYuarHNn8RlmNPdE1GAwGg8FgMAwkbKNrMBgMBoPBYBhIrC8FcIJwbJn2xn/++af65bt3ybDeVIZCrAWVqm7rlJTT2TpOYb59e6UMGKhH+RfnKOzyvj/6mGh77AmS92m35PdiFbECR9fhVBg8ycqwY8IlplQK25hRAGJPtuX06DLJsFZHSRWp1J4BkxvzVYjUtViqWSUVEqpwko9U70R0jk2NJLkUXERhjKEihSJWlQRRxEIfhw7fJtrcVinZMjdPc395QYZTa8syxMLlk3Q4OmUhn2IgwzaH75ShwwtMlmVuRdIumh0Z/m2ylLC+Cq1nGd2kqFISD6tw0ARLATu1Ta6V/dsnRX1LluyvplIJL7K0s75KkVwoSvm9Upn6MDYm2zYTLk0gYrSKVo3G2NOSXCyQ5anQcaLS+h4/fqxf5qFLgLWpM0MmRafTDqdMPseLFR1GyftwiSG1nKHRlBSEJqufOyclhvh3UT2KcCoFdKNDtsxTgAIA1BckZSNkYedYjVec0HXWl6UdxU1p50nC19rLE5JO01RQL3y2LgMn54yHf2OQfiFWc8ivJdV+Vl1azPwI6lTcjDqzbece1XklQ8jqnpPHOXVWpo5udqhP+pzlITqP7vtSVfq8gM19sbJb9s/J/i1WaZwvXJL94amXs56k42RkFbBE52wtbZ70nEaaJiKteoFJML7+G6Rc6eFbKN3xuQVJMZhZkXbVPE7j0lTUn1VFVZsoESVlIZX3queeIWnPN992l2gbL8m9x+oC3fMqSsIMFV2v2mD+EpXkHjOPYrEs2go5ef9psrHLZhV9DJV8aZaNc0Pa4N6tRDNdCOT3lqpyTMI80Rzi5sb7F3uiazAYDAaDwWAYSNhG12AwGAwGg8EwkLCNrsFgMBgMBoNhILEujm4CCDXGy/nUY8SDO/7CSfHZt7M0d/u2SR7kqZPHRf3N993eL+cUf3G1I3kyH/w4pVd8/NkLoq0RMykmlVJXp+/kXCNPSc5ovixPQ9dWHNiIcbwQJe+tDfJauMRLoKSqfKWDUyjQOGcUz4yrwSSKi6OlYmLGHcqUifuJ3rqmfl2Iow4sXCDeYcJkT5qKc9M4R6n/Rn05XuM5KaUVtol3m/fkdTZ9eVzn+JyqNIKMoNxoSq7Qm+6TPOHbbrmjXz57VqZVXFiWMi1tnvZXpb0OmKReXukNjSsJseEiXXei+j47f1bUj85TOlZUElaVLcQTy1cUL6ssx3Z0nD5bUtJEmwkPAXJsLXQYd1VL5yEbQ0+n/FW820qlRMdR6aJLRSnp47PxL+Sk34gjWtPHn5dps6uLkr9YrRNvNHFy3sKMSlnN+p9V5EZk9tFoSSm0OSUN1WByY76SbRxREkMdxo/XnOE4YlzVRKfdVIRjZFx/RiJWn9pQ1FZX4XOf+0y/Xo2P9MtFJdGUMD8RKe6qliVMEppfp0i5keIx8/uAryTYWm1qSxR3GxWHOGTpaUeH5bstpZKcsyih8U21jJqYBzn6nuLz8nnyFLc2CGTd43OqSOJ8iNZkLldSVFhg52xJOanNRBAGMDpFfNatBw72y3erdLwj4+TrKqPy/pORtwYISjTGC5fUex+plPI7e4b88nBB+tOQybddVjnHp4vSL/sxDXjSkpzcWEmcJUC+K6PeYciweWyqF5a2bpHvgTBlRqjVZf+WVX9bjN/dXJbHnWvSHsCNy3dLUMm0Zovkr70sS++NG+NV7ImuwWAwGAwGg2EgYRtdg8FgMBgMBsNAwja6BoPBYDAYDIaBxLqImkEQwNj4RL++uET8kYtLUsPxi08Sny2JJC8GQHKCJqZIOxd9yVd8+JGnRf1jn/5Sv9xOJTcLGPdJc5Q0EsandIr8pNOJcu5WojQHuTYlKg1O8BUXirX7ikNTLpdE3Wf995ziijHtxVTxgEFxdKemiB9UrlD5BaWPt5EIwwCmmAbuzFni6sRtnYKT6qeOHRVN1YycXz6j9VSOSV3x6VKhnSvn12e8H50a97EvfELUH2TcoduVTTWHJO+Va66i4kG1uN5pIrlVWhP4zPOX+uX5ptQ0bYXS/vJbaJxHpiS/L1uh8fPzcr4LOkVtgbhh6G8ef3stUKQET5jOKeK1NW3bbTlvWkc3z1OVKt5/sy41MNuLxPU/15Dc1ZTNIyoOZ6iO67P3AsKcSnuuhrTToePWliQPt9WqsbJMq6kZazlmk5HSDo9A6YAyvm9TpUHmOqyo3lGIFffXMd5oJrw6X3ejgehBLiR7jnxm26kc3CzTQU/1OwyKs+uxa3Wg7wNyDfPrc4qDnTIfjWqWnLpncLtWtxrwQM5h4FMf2m3pN4SurjKMOFZ8Y/auhn4fxFPzy3mR17uPdmpyDTqlJdtih836klu+mUjTFJoN8rcztfP9cie6JD67aw9pEe+YlHzpQ9sOibrPFnE+I/n57bacyPYqnX+lKn3TnQeJM5xTaX2XL8txmmA+ZWZO3ifOL8jPupB8+N4pyYktF0grV+9Tmh1lc4zDXVNzzN9ZAACYLFFq32fr8t2rZ06d6pf37FLviGTkdUdNGq9zZ+g9lE5b9u1mYU90DQaDwWAwGAwDCdvoGgwGg8FgMBgGEuuKUSKiCL+HIUvb1pKh0dOXKOTarj8n2t5870FRzw9v7ZerLRla+uxXHhH1FpON0vIvWZbKU6dE5ClhNXwV3lqjaMGiQFkV1hUyXSo+iVkZes/nKXwQKHmaSIV9Vll4NVHUijYL7w6NyHDL5FYlV8PyEDdXKQzh1PhsJMJsCNMHpvv1FZZSsD6jNFtYzK2lUvUuqnSdGTZPHSc/q+WcwF37+tDxcKtsO3Hkq6J+bpVsbEKleNZyRAkL89WU/Nmso9DMiba0xRmVyrFRoOssT28VbZN7JA0oN8woCDo+zkKUpZKkxhSU3JjH1rLbxBC0RpLEsLpMNtFcJQrU5QvSp7SZvE6ixiyKVNierSc9T54KzYch2c5a2T/yd0GoQ7yiCjGTqmrVZX/abZUydIWoA8qUoVhm6b9V6NipNdGuky3ptL5VFfbjdIVExcx5uD29ztoBAAgCCjtiqnOrbxKcg5TNea1O0n4FRXfjTIFEPcuJFKWoE/HxU2lqPSU7yegJ2t7SmKVXVvJiSazGGrlkmLZN2QXn6JrbSmpOpC9Wx9F0PCdSxStqnqJsCNky2R1xHl+FsWN1D2sMk4+Zmpb+ZzMRRzEszJJPidn4P/u8lGfcc4loDa9/4D7RNj4s+7xrnCiWWsrv3PJlUZ++hUL6l2ekDOWJE3SPGR6R0l4VNY+rbMrPMgogAMDRM+dEfcsYnXO8oOihwyQfOTIsaWvnLsoxqTCaw/CopMPV63JPM7dCFI7FuqR9VVmabu0sm2pNzJ480S/nme2i5vbcJOyJrsFgMBgMBoNhIGEbXYPBYDAYDAbDQMI2ugaDwWAwGAyGgcT6dIScExI/wGWufJk6s8OkbS7XJJ/usaMyde83N4iTseqknMX5JVnPMq5h3JA8mRaTXykUJJ8yCHXKRvosKr6NhzplI33XKR6kY78Vwqwcg1ok+SWdmHh6nK8LsJZHyHm4dSUbVGJpI4cnJMenE8vPHmVpS0PGd4k6GyPbcTX4QQCVEZK9mpgk7tBFxdHlzB2d4rKtuGQRa9ec3ARunHMsOGmKhBYp2aX6PKWu9LKSr+S3JafvAuvvEyBt/kTA5rMkpVWKO0ZEfWLbtn55bELKxGRV+toOuxanuJXZgMnZBdKmfSUxw1OaelombxMRd1owe4ZkaTh3PFGpaLnsVZCVY4i+lnCieiZU0mqFwjU/q7n9MeN01mqSk8glwgAAUkYO9VQ61DSR380w/v4WNt8AAPVatV9eUWmmY5U603H5M2XMjY7kgvNr0f6Gf1UfJ1ScZp+ttUaD/LMeu41EJ2rCuXPP9OsnZsl/FdT8Boz0nKxhmUq7SRjHOFWShWFGp42n9li9TyCmV/ERtZwXshTkmi++9ru0LvX4dpgPT5WspJaI89j7DYhyDFLN52V+5DpmAhGoMRiR62rbHbf0y0Mys+2mIk0dNJo0NpUc9ev4aZmK+OwpkhurrUge/X2vv1XUR0fIT0+N7xRtxbxM83t26TT1Z4e8+FqOzrNSlzzbWKUgX01Zit0J+V5FEEyL+lKNOLKxduFsIleUFOzYpLzHNJn/WapWRZun0kWfZ9KYj504JdrG797bL2fUex8zxyTfuMQ4xRnGhfcsBbDBYDAYDAaDwXBt2EbXYDAYDAaDwTCQWCd1AWR8mYU4fF+FQxzLduTJttOXJR3hfR/8q375rQ++VrSduiBDDQ2WlSdV+/QwR4+//YwKV6rwUSZPIYLmqgxZaKkvLukT5uSQ8ZCw/p4OD/MQUVNnYFLhI/7dYUYDAAAYmyTJqfkFmaFleX5W1s9SWHg/ywKzJia1gfDQg3yOwjXZHMn/6HBgErEwmZZrQt1HFp7TTfrL17m+lIVDnAqN1FR48HkW/h3KSLrJ8y2ZZecZRk1ZrMgw3ug0jf3W3TJUPbxVzm+WZWPzUtm/SNETfBZK8kMpsxSwNaBDmWtoATwb0ssoLwbOgZ8SXYSHYFMlBcWvIVEUIs9dWyKwrTLRxZEM6XPKgR4XDi0JGCof4zPZrUBLzylZsFyGjpXNy3lbWqD+1lelnwgVzcpnc9VRmbNiZSucsoPK7nkGLJ0BLqdoL7UVCn026hTa1BklNxQOwXPMj3D2kcqMxmkZa7K1Kdk/ZDSHQNN5lOwkH05tb47T3dTYurXpz/rQdARNMUpY/yOlQ5eye67zNP1AntLx9e+0tJyWF2MZ4JTcXszq5W0y5L3jDikbGiDN1/Kxp+Dlgud5kC8wCgCj83mJnJtLs5Rd7FN//nnRVhmSc3Hgjv39ciGQEl07yhOinmV2djSVYXpkipGZtpo3JQkY5SiMPzm+RbRtiaX0ZH2RZDxX1XFKjBLa6EjKXaCyZhazNG9LypBOzZwU9edPkywYKLrolu0kx3bks18RbV//WrnPu+9ND/TLD32aspPqNXmzsCe6BoPBYDAYDIaBhG10DQaDwWAwGAwDCdvoGgwGg8FgMBgGEuvi6PqBD6PDJLHUahHvo96UnJCMT3yNWPHTPMUl/NzDR/rlUxek9Fi1LiVfFmvE51NKWlBk3MZYcZ+y2WvzF3N5yVnS6f0CJl+jU0rGIl2d5kkpCSyWMrGjUkjmlazI+BhL2TcuuTgdJuvWzsgpbGYl3yZlvME6SyH5Ymk+XwocAERMfqfeJDspD8vrbNVZWlc1Z4ni14nMmirNJq6hB15blsQxTqZTKZ3rKu3n5zvEQTzTUCmKC7J/wSTJvUxtl5ytPRMkCTc2NCbavKJMNVlnnLmW4ikHisOXY/znXEHK2AQZGutcXnKGs8rewlDy6F8+OCG9xfmVTnESHeMru0hxYDXnmJdVXtVEczHZ+tZ+gqfg1bJra2jijIuZRJIvmyjZug7zgc2mfEegzmSC1vCUM0pSkaU215JhTj3G4K2ao8vbAp12uCOvZWmBuOlRh/mUTeXoOoiZw0/YeSNPzhn/HCj+rs6SnTIf7anxi9T1pMwetZxXmtKYZdT9TdOE+XE0d15/lt8zQEuIsf6u4TKiPi5/v0HJqOG172mRSiU7cogko7bvlvJWrUvynYWTzz/aL+ciyTXfTKAHEBbpmvgSCpUE2q5hkueceU6+3/L5v3lS1AsV2tMUitJ/FvNyDLcM0TiFBenvz8wTr3WlIeeipfYiS1V6R2m1I99Xal2W0l+FBvUpSuV7H8s5mv9MVsqUdTrSrpZq9N7P+Zo8x2Ko/C5LVz41Jjm6c6fO9MuBOsfO/fKe5wfElR4ukVSb3ovdLOyJrsFgMBgMBoNhIGEbXYPBYDAYDAbDQMI2ugaDwWAwGAyGgcS6OLouddBmPM8s2ya3VYrL0Cduj05H5xQHzMsTX+OM0s31FCcxZtw8zf1ttUgfrl6XvDdPnZNz8YoZyU/M5yX/xmP8pkxO8q/yBeq7Tgk6vyg1blOWMjEIZX9GKpJfOTlKXOipKcW3YbzWVZUitFaV6f2GR+m783OUri9Wmr8bCedSiJh2qZ+hORuZkNcZlZidRHI+VRUixuF1iqP7/7P35tGWXHd9729XnTrzPffc+XbfnjTLsmzLlo1sY9kydsAEWIzBz88rQCaeeQlkIqy8vJeEJGsFSB6BQHiLxyOE2cSAbWwHbIjxIE+yrXlqdUs9d995OvNQVfv9cY/O7/f93e6WrtRXkg+/z1paqupdt4Zde+/ap37f+v6UPSakMd2lR5TrGbz3mYzyrRUeg91xvA/Xj6Ov4cQkeyuWK9i1ykVuxznlxdyJVapokUrYK+1sqFJZgxZPXaf0edX+nJHaj/Rt9rvUp/tHmqbUEalMpVet9jiGNMXqvgVKay37u9Z57UpxLDy2tZ5XpiSOlV42URrOvriPYQc1uf0Geocn4pxKKpW01OXqFJjdNm67K282FF25TF9LRrQz7f+9sbwC6/0uj63Q/Paz3TgikVWewkj4PivdYCS9X1MtVMb1UOxUq/q9Ev47oe3PRVhHExVODxuQ9qzW7YbXQ5W6Oqe+sYhj8Q2I2q/04NVtsa78l+UnGanyvK85HDwz03wtR25Gb9yJCf7W4OLxp6FsXaWAzYjrzEdX/mbi2pOST1m7vrXO7XXxIs4vXnXXseFyr4ntaGsd++xnPvX14XIcqDH7ZrzHB8XzdaqCGt1b5l89XN6sowZ2pbUG66F4FhQD1Bd3s5iS/sSDTwyXF1ewzx44dMNweePUM3juaqyS7awwi8c4ctstsD5xhFMhNzvY5gLRD6cO4LPSF7C+tkQug60an09ylfFtL9gbXcMwDMMwDGMksYmuYRiGYRiGMZLsSbqQpimEznIi7FLUti19fv3sVKQwJWXNIuIqKSmpQk9Z5ogUfrvsdMS6Tq2opQubmxzy3+jjq/tKGcPr4yIFb0WlEs4TyxySFG14Mir0Feb42rod3DanQubyb+MWhjfiFv9tY2sdylJlW5bPcZiqE145TeW1xDkMLVYnWd5RVpZcibi/WroQJzqFqQhXKp8gp36zyZBvoEPXIqSSUWHPggrxj41xW5gTtidEROUc2qmURIrgbA7Dgz2x2lBpkNs6tCnsfvIqRJ8Nr5yGVofkZRhe95VeD6VG2SyvZ6NrY+nyfHBBQFGO+5C8V5GWOMnrUZZIujWDK9su2z8l2xHWZNriLhVyhLiPddbrYV9rixBg0sY0w7GyFyuJ/RaU3Vws7k2/g8fQUgaJluiQtuuT2duVzKAkxrVmDeVQtRrKoeSfYj/cP8tC8kRhLO55Tz4zumpTrr+QlPRHrcs6S1Nl5aas/eR6GmNbaLU4zK3lL7pevHze9fEZ0emrPizGtV3pjOXtVhHehPD8ZIdI1TgxNjsB6zM3c7ryQJ37U1/jVK7dFXz2hIm26eTzvZqM5loT9xPaWuY2fPz+E8NlaWdJRBQKm8Wpwxim77Vx24snWVbwFULrsaig5CAzLFusbOB+D86y9Vh1bBrKskrSWHQ8vs8UcduZY8oqbZxtwz73la9D2ekmW6etNS9C2ZSwWCMiWjhydLh86BBamx4+iJZya+tczw1SsirRKMfGsI11U5SWUsLXMrsgpGzXyPbS3ugahmEYhmEYI4lNdA3DMAzDMIyRxCa6hmEYhmEYxkjitHbvqhs7t0pEZ59zQ+MbgaPe+5nn3mzvWDsZOaytGM8HayfG88XaivF8uCbtZE8TXcMwDMMwDMP4RsGkC4ZhGIZhGMZIYhNdwzAMwzAMYySxia5hGIZhGIYxkthE1zAMwzAMwxhJbKJrGIZhGIZhjCQ20TUMwzAMwzBGEpvoGoZhGIZhGCOJTXQNwzAMwzCMkcQmuoZhGIZhGMZIYhNdwzAMwzAMYySxia5hGIZhGIYxkthE1zAMwzAMwxhJbKJrGIZhGIZhjCQ20TUMwzAMwzBGEpvoGoZhGIZhGCOJTXQNwzAMwzCMkcQmuoZhGIZhGMZIYhNdwzAMwzAMYySxia5hGIZhGIYxkthE1zAMwzAMwxhJbKJrGIZhGIZhjCQ20TUMwzAMwzBGEpvoGoZhgr2xDAAAIABJREFUGIZhGCOJTXQNwzAMwzCMkcQmuoZhGIZhGMZIYhNdwzAMwzAMYySxia5hGIZhGIYxkrwiJ7rOuapz7o+cc8edc086596iymecc/c55x50zt39cp2nxDl3t3PucefcQ865wst9PvuBc+43nHMrzrnHrtH+qs65//1a7Os5jvObzrkfuMy/v9E590uD5R9xzv2X/T6XveKcu8M599dfguOccc5NX+bfP+Cc+6HB8mXr8RsBG1OMF4JzLu+c+6pz7uHBvfg3L3J/L8mY9xzn8C9ezuO/UOz589IzKs+fV+REl4j+MxF90nt/KxG9joieVOXvIqJHvfev997fKwucc+F+nJBzbuI5Nnk/Ef2M9/4O731b/F1mP87nZeI3ieg913B/VSJ62QZ97/3Xvfc/cS33+TzayV65g4j2faC5Et77X/Xe//bLdfxriI0pxguhS0Tf4r1/He30xfc45978Iva35zFvH8aUb8iJLtnz5zmx58/lecVNdJ1z40T0diL6r0RE3vue935LlN9BRP+BiL772TcdzrmGc+7nnXMPE9FbnHPvGryZeXTwKzA3+Nu/Pnijc79z7pecc5/Yw6l93Tn3e865b3HOOXXOf5eIfpCI/t1gm3ucc/c65z5GRE8MtvknzrnHBv/9I/G3/9I595Rz7gvOuQ86537yBVXcS4D3/vNEtHGlcufcd4m3Yv/TOTc3+Pefltc1qINjRPSzRHTD4D7+R7fDfxyUP+qce+9g+3ucc59zzv2Jc+6Uc+5nnXPvH7xpedQ5d8Ngu2POub90zj3inPu0c+6IOL13O+e+7pw74Zz7TrHfXW1g8Hbvj51zXxv89817qKYrtpPBvv/VYJ+POed+7dltnHOfdc69cbA8PfiFmyWif0tE7x3U0Xudc5POuY8OrvErzrnXijr+rUG7O+uc+z7n3H8Y1M8nnXPRYLvL9o0BPzX4968652683L0T13Hn4J7c75z7lHPuwB7q6CXFxpRX7pjySsfv0BisRoP/vNzGOXfjYLx72Dn3gHPuBudceTAGPTBoM9892BzGvOd5Gr88GNfe75zL60Ln3Jxz7iOD4z/snHvr4N8/OmiXjzvnfnTwbz9LRIXB8X/vBVTJy4Y9f54X9vy5HN77V9R/tPML4qu08+vtQSL6dSIqqW1+hIj+i1j3RPSDg+U8EZ0nopsH679NRP9I/Pt1g3//IBF9YrD8TiJ66DL/fUkcIySi7ySiD9PO26B/QUQHRflvEtEPDJbvIaKmONadRPQoEZWIqExEjxPR64noTYPj5IlojIhOEtFPvtz34DnuzzEieuwKZRNE5AbLf5eIfn6w/NPyuojoscF+YF9E9P1E9BeDup4jonNEdGBQn1uD5RwRXSSifzP4m39IRL84WP44Ef3wYPlvE9FHxb35JO38sLuJiC4M6vwe0QaGbYqIfp+I3jZYPkJET17DdjIpln+HiL5rsPxZInrjYHmaiM5coa3/MhH968HytxDRQ6KOv0A7D+LXEVGLiL59UPYRIvoeukLfGCyfIaL/c7D8Q6JehvduUI8/MDjGl4hoZvDv7yWi33i52+ZV2qyNKa+A+/CN+t/gPj1ERA0i+rnLlN9HRN8r2kqRiDJEVBn82zQRPU1EjnaPeWNXaCcPEdFtYrs7iehXiOgZ2hkDXifK/rvoxyERjQ+WJwf/L9DOmDs1WG+83HX6Iu4F1J8qs+ePPX8u+98rMQSWIaI3ENGPe+/vc879ZyL650T0L6/yNwkR/fFg+RYiOu29PzFY/y0i+vu0cyNPee9PD/79g0T0o0RE3vvP0M7D8Ip47xMi+gQRfcI5N0NEP0NE55xzb/Xef/Uyf/JVcay3EdFHvPdNIiLn3IeJ6G7aafh/4r3vEFHHOffxq53DNwCHiOi/D35dZYno9HNsr3kbEX1wUNfLzrnP0c6Du0ZEX/PeLxIROeeeIaI/H/zNo7QzABARvYWIvm+w/Du085buWT7kvU+J6KRz7hQR3XqV83g3Ed0mfhBXnHPla9RO3umc+ynaeRhO0s4EZS/3/W20MyCT9/4vnXNTzrnKoOzPvPd959yjtDPgfXLw74/SzqB+pb7xi4P1D4r//8JVzuEWIrqdiP5iUEchES3u4RpeamxMMV4wg/t0h3OuSkQfcc7d7r1/jIjIOTdGRAve+48Mtu0M/j0ion/vnHs7EaVEtEA7kye97zo9RzsZbHc/Ed3vdt7o/m9E9FXn3P/hvf9PtDPh+CFxrtuDP/sJ59z3DpYP084ka/2F1ME3CPb8sefPZXklTnQvENEF7/19g/U/op2H0tXoDG7wC8I59066fMW2vPdvFduNE9H/Qju/cnq086vtkSvstvlCz+cbmF8mov/kvf+Yc+4e2vk1RkQUE8pkdoXfngddsZyK9ZSeXzv2z7EuCYjozc8+tJ7lxbaTwUPq/6GdX87nnXM/TVwXso5eSP0QDerEe5865/p+8HOXXlgdXa1+HBE97r1/y1W2eSVhY4rxovHebznnPkM7OtHn+iDq/UQ0Q0R3Dh7+Z+gy/XowUb5X//uA/9V7/6xMJUM7Wsm/TUQ3EtG/IqLfvdLBB+Pvu4noLd77lnPus5c7/ohhzx+y58/leMVpdL33S0R03jl3y+Cf3kVETzjn/oFz7h88j108RUTHntV4ENHfJKLPDf79erejzSHaed397DE/43c++ND/ycbzu0T0ABFdR0Q/5L1/h/f+t3VjvAL3EtH3OOeKzrkSEX3v4N++SETf5Xa+7C3TTsjhGwp1X8ZpJ6xDRPTDYrMztPNGjZxzb6CdOiQiqtNO6O5Z7qUdPVA4+DX6dtoJOT9fvkQ7HZxo50EjHyB/wzkXuB091fW00x6uxJ8T0Y8/u+J2NJzXop08O4CsDe63/IL0DO2EJ0n9++Xq6P2DY91DRGve+9pVrkVypb7xLO8V///yc+xnxg2cC5xzkXPu1c/zHF5ybEwxXihuRy9ZHSwXiOivEdFx59zPOOe+d/BG9oJz7nsG2+Scc0XaGQtXBpPcdxLR0cEuoT977+tXaCd3iEnuPyGiE7TzJu3nvfe3e+9/znu/MtjNp4noxwbbhoOJzjgRbQ4mubcSkfyArj944/wNjz1/7PnzfJ4/r8Q3ukQ7N/n33I4Y+hQR/S0i+ne0M4hfFe99xzn3t4joDwe/gr9GRL/qve+6HSuRTzrnmoN/3wsfIqIf8d7He/w78t4/4Jz7TeJO8+ve+weJiNzOxyWPENEy7bzi377sTl4BOOc+SDu6omnn3AUi+te0E4J59r78NO3U+yYR/SXxgPLHRPRDzrnHaUfPdoKIyHu/7pz7otuxi/kzIvop2gn/PEw7v+h+ynu/NBionw8/TkT/zTn3z4holXbazbOco536rxDRBwbt5Er7+Qki+hXn3CO000c+T0QfeJ7ncMV2Mngj9P/RztugJcI2+H8T0Yfczkcj/0P8+2eI6J875x6inTDUTxPRbwzOrUU4oF+VK/UNscnEYL9dInrfVfbTczs2L780eKhmaCf89PjzPZeXARtTjBfCASL6LbfjvBHQTgj6E865DxDRxwbb/E0i+n+dc/+WiPpE9DeI6PeI6OODMO7Xieg40e4xz3v/z57HOTxCRHdcZULxD4no15xzf4d2JDc/Rjth4w84556knYnBV8T2v0Y7b/ge8N6//3nWw8uOPX+eF/b8uQzPCrdf8bidrxO/z3vfexH7KHvvG26nhf0KEZ303l9NC7LviHMq0k6D/lHv/QMv5znthWtxXwzj5cDGFOOF4pz7lPf+217u8/irjj1/jOfDN8xE91rgnPvHtPMLJEs7X1//Pe9962U+p98nottoJ6zwW977n3k5z8cwjOePjSmGYRivbP5KTXQNwzAMwzCMvzq84j5GMwzDMAzDMIxrgU10DcMwDMMwjJFkT64L48Wcn60Uh+udmD/sq7e6sG0Q8By6lM9C2a7E8Wk6XNRSChfquTh/qZgmaHPpAnfZ7YiIEnEMIqJEHMerbYMQqyVOedu438fTEfsJ3PP/3ZB4PB9ZX2q3agWPk8lgbfb6+LFlegVpSqvXp14cX/GzzxfDWOj8dMTnKBZhmQjvUhjguYYBnp5z8p6pdqKuRF52glVN6VXVOrgjuWmi/lDvB1aDHJaVuN8k9TqU6bvQ9/wPmQTvZzdR5xeI+6/6Sl+0+Yxq/06tp2K3Tl3XeuLXvPcztA/k8jlfLJcuX6jarrznTt0n3ZAd9EVdqtuO2G+g6kXcZO9V3at2Jd8beFWY7tpY7lfv54qnuqvdy7/VY+dV13eV8bLuS+muhn75fpjECaVpui9jShAEPhRt3YuTdKpuC1l2zpqeqEBZFOr+feX7u3vs5OPosemqrp8KuenVWyZRkvC/dHr47OmKsT6M8Bmr+3BePIMLOfXY12PDVc5nTzcX2gny1LmlfRtTJiYm/MLCQXEaYn5BeK1ejpEh1qG+/anYNknwXuh+mYr7lsaqfkXbif2Vy4iIkvTKVt5RFF1xPZvBMjle6rFJ10kQ7Jqh8bZqLOj1ed6nz1XuJ1TPpl4fvx2EMUacztrqOtXrjRc9puxpojtbKdIv/PC7huvHV1aGy59/+BnYtlTkB/ubbjoMZVWvJnXN9nC5r1wxonIB1uWEsFbDCUMuJyYX6mZtt9q43hU3KIMNPF+egvWNJt+UpdUVKKM2n28lUj7L6vbE4g42+/jDIFfA64xF50j72IDKOT7OzCSe67nlZVhvisFRns7nT+w1aczzZzoK6KeP8OTlQJmvZT6P9yXvuP7G8tiJqmWswDDga0mc6lQRbivn+/U2duR2l7dNVFsM1Q+OvhjANps4uDV7V35oJpVDUBbfeedwufa5z0LZSgb3s9zj9jjZXIWy05s4gMVl8SAvl3E/Lf4maryL30flmph7oBWKh7gazH57vX+W9oliuUTv+o53D9dx4oHnEYsf1hk1G8uo4FQ2y+3P6cCVw/sYRryezeMA3G5zP+13se32e7ieJnzfYvUg7MRY30nCx0nVRENOuOQDk4gojvU694O++hF+tfVU/SCWD/xA1W23h3Uif+zLe7K5tkn7RRiENFXlsS4OuB8EfRzbbz/K86e/8wPfDmXzVd2/+dr6ffxx2unqBzf3oUpOTQZEn7nK74KddbGsX+Qk6n5v1bj9nTyHY/szyxvD5fHZg1AWprjfV9/E49GrrscEba6Nz9GskxMx9aNQTMRC9WLHqzcKXryI0j/0vvnHfnbfxpSFhYP04T/64HC9K571fZVzpdfjtjM1tgBlsfJx6Hb5bzc28V6kat5S3+I/7myhLXYonoHrCZ5Ppojje028FNGTxfl5/J0wPzs/XD6k2kOGeL9xgs+COMG5SKk4PlzWOXN6XayU80t8G7frW1BWFs+jsXIRys4tXYL1dofryIkq+Vf/18/RtcCkC4ZhGIZhGMZIsqc3ui4MKRJvkHrnzg2X77z1GGw7WRWzef0mvIG/EnyBZ/vVEr7ZTBP8tZ6IX4k6BOMc/2qMO/grpaJe85PYT1P9SglD/JXlxK+NrPpp0BG/z5WogXalnhG/jiP1G6OxiZ7uqfh1PD42BmXFHL850mG7Uh7fSmTEdcuQxa7Q2zVkLEv0ziO8XhFvW8MIf/k22lz3gceG4lVMvyfeOnV6OtyCbaEr3ojXsClQsy+kKOptmtoNSaVAvY3no17wUizehLSamFL+1J9+erg87htQ5vvqrYnYb6xCreXyNKw/Xea28egWvmUYF2+Hqup2Z1WfjEXfCf1L9/vXkQrXQQj9ym10d/hNl3P/1pG4RFluxj3R3zM4NkVZ8XZLRWF0jD+FLKEqGrFL1iT6ZareMItN+x7L0liFMqW0Qr1FJrVfl8ZiWe9H1Ke6Lr1tRtyvbJbHou2r3K8XjVPndRWtxfoW51VottVz4Mg8rDd73Bf7HiN7vV3jj4gEqbfllSJH2cJQvenXsjnxFjyNcLwO8hiVKRT5b0tt3La3zM+l0+cw0nhsDiN9Cwf5DV+5hG/XnIooZUVb7Qd471MhL9PyCN02vbzOl9DdyQVEUYnvQUbML7zDqGu/I6IcSmJQUhGyREQOWjUcw10B+/fkzATvt4hl8u32kSk8Rq6A9zgUMspiFe9bsYzXks3wtruGGyfbLhZ22+q5K8bHjJJxZsXbXiKi2QmOFEyOT0JZknL7LCl52uYGRhGquepwuTLDz7R8FuvjhWJvdA3DMAzDMIyRxCa6hmEYhmEYxkiyJ+mCJ0exiANOVflV9fwBFEb3hHC7pz4aa6gPY0Lx4UiiQuppD0PdefnBGV05JKQj8/0uSiCKIrSYyagPWUIMs/QzfJxVde7NDodrQqe+gszheiFiWcaYCm+NFTAUlhdfDuuPQ2TYrttRdak2DVJZJ3yd+xhkpKzztBBx+CMRIa2OCjK3eonYDvejvoGhpM/3QUUkd33w0Uv4Whvqg/emiLD1VVmo2kIi4nMNFfLpqNBmV2wbq499gpRPuJZTHxem2BayYj+rDssuVjCU80SN+9npTWwL14v9ZNTHM3ntCiC/oHkJc8h4wtCu/Kp315fM8oMfFabPqBBXKtp9rbYBZdk8Xnsmx/vqqHGiXOKxaayK/blew237DbEeYBg8SHAdHDzUB0ipkF0kffyQxaltSYRbvZJWaGeNQOxXS5dC8ZV2pL7Y9nkMkUqpSUaMKasrKNfZT5xoG0GoPzzmOru0hvf+dbcegPWeqL9WT437IYZpqcTh1e36IhR1W0ImNI7yO3J4H8DZI4ft1uXwbydE+Pz2Ej5j6x0+5lfvxwzP+QLes4kZljKEWbzOjJIuwONPS2fEx8NauuDVB8KJGLtSPbjvI2GQoXKB5ybyo9ZUzRlcUUoxlIQjwnvR6XK76vVx23ZfP6x4LOi2leRAyBzaDfy7Zh3rcH6O21zk8XyaW3hvslUeY9ptdd8ifjZkdkm58N60m0JykEPJQaGAN316ittVmqDDSa3NcppuH+eAcu5IRJQN+dpCMd/RffuFYm90DcMwDMMwjJHEJrqGYRiGYRjGSGITXcMwDMMwDGMk2aNG11NfaG1m59iqJZ/DOXMUskYobaHOTGuWCgVpgYWalYwSnRaEfVYSK42KEJ9klUapUUc7EGnMHWVR+1KvofHxmLRUUebKdaFncao6I60HElqhjMpkUy2ijqcktFtJihoamU1lq1bDMpVcoirsp2SyjfAq2U9eLHHiaV0aZgvz8kTpltte3KcM6tVq6tqkLYpyj4NsYkREsVAht5VdVktmulN/FyntVV/ozrpKS9tRWcqkRZc2T5fuM0qGRdsx7jdwQmultKcXeqjDTYQZ+WyK7W9CWGWNKVF2pLTJOaFpTvaQ4e9aIG3EvLuyVlgapuvECdpMXWptLy2dh7IbbkSLqVKJ663VwfGnI74RGCujzV+lSkjI23aa2EATlVwi7sksasqIUNh5OWXYrnW3MtNgtqAyUCp9m8xUFKksUKHQU+pvAnRmtFTajYkyfbz9RGp0ndPaeV6+sIy6YW031mpyf+q08DoLwiKKiIjGeIxO83jPNlfYAD/v8dlTHUOdo8zOlsnpvobnEImxKyVsm9UCt9tD82gnduzG6/DUp1gTmfH4PPa72qaoQDXGSQtInbSFMkr3T9xOvLIp20+CIFRJD6780YHUw+t2r78RKI1JjTbe00YX21W3yfV0aRGt3w4dZqu32jY+49o9XD+4KjOPoS68WMb7dv11bPXVUd6X1YMiQU2AiV16TfUMJG7n5Zx6xqn5TxhyP0jV3C1JuW+1Wjinmp7AhEqR0MM3lHXbtcDe6BqGYRiGYRgjiU10DcMwDMMwjJFkT9IF8p4IrCj4tfXmNtpHRCL1Uk9FLQpKVlAu8rY6XBAmKCvwIoxfVlnUZOQhVrY82QJeaqclXrMre43ZccxWEgnbnqMLaE+z1l0dLveUbGCXh5cIodS3MESR5jAkkKtwmFRbXgkFAuWyeF06SiP/VEZ39zOJUY8CuuQ4/NEIOfxejlCi0RP55JstrL9WQ+VSF3ZeHSUx6CivG5mlrKfkCV0RYfPqJmXVeiyslHrKkknvV55CX8lzMlK2EqssbtOYYz03xevbixiu8irHugzC1wM85tEi13sUKK1HAftOIDzYtFRmP/HeUyyyFO5qwIKrZUqLVWJ6uR5FKhSvQmz1BofY2l0Mscl8h/XGKpSUVGaiIMPnnitiWw4dSgW6HWH1p6QLMhw4ruzkdARYZi56LumAF7KHUOdtFG1Zh3rjGNtDX2QF64mskvtpWejIYWhZnKPuw2nA13ZxGe3F1rcwA2Vf2EW2m9h/xg9iHeUrHP4PHD4jmiJUvLSKoWFtQ1cWEpOpKZTDFPI4NsTCY7HVxoydJCR1swuzUHTw+iOw7op8zCiDxwg8jsmxyBa2y+NRtIVEWSimqp0kJLfVeUNfOuScwqm2EgjJjh5f9PWtrrAE4cknH4eyjRr200KJ78f6Bo7ZS6t8L7odnKe022uw/vQJYX3YwTlDsYzn++iMkOl4nI8dOMJSi+tuVeMNIRM5bg+5KrbzTgv7TxyI/h8paZ+wPu3H2Ad6CZ6fzAhXFBKhILw272Ltja5hGIZhGIYxkthE1zAMwzAMwxhJbKJrGIZhGIZhjCR70ui6IKCs0PZ1e6wRWV5GzcXBOdYz5ZQmN0mU0ExIwrSd2C5dntBfkbbekdYX6u+yWTyHdpu1JTWVRndiFtPTTaWsqfFKMxcL7d3aKmpoDk+h5Us24upeX0UtYKQ0fLGwTkvV7xEvdCuFHF5XPntla6Bs5ippha8hfQpoMWBtT9OL+ltHTVKnJvWRSteo9hsKq52OSoXaVZpY4ZZF3mEzT73UR2pbMtwvuOvoOlPrGXEc5URGobDlK4Woe8q/5g5Yf8bxPV3torZtQqXkrNdY0zVVRu3VkQrrssrKYs0HSrMuUna7/kun0SXvwSZQttddXV/YY2kdaaulbNdEfY8rzX29gRpKH/C1ByFqmYPg8lZaRETNltJMCj1vqDTjhTxaVc3Ns4Yvl0F9ZeBkP1XpWnVaZJn2PMB73Ff3UaalDpRGV6bX7iqrpLiH6z1RLrf1Kq30tUY+CzJgSaf7JbeT5Q0cZy+uoAZyZpzHplCNIT11f6dEet5sEdMDl8qsj1y8gLr61RY+F0LxTcjcgWkoq1SwrcoBaFPZLgVlTrl6cA4t84pVPL/lLW7zY+p7lZJK8Rzl+TrjENuJfIbp8bnfRT1vKCwWY50i9yVE63Ilchxxqv9oq86C0K4WSlh28clLsD45y/09UP27L+wkXYA2ZeUKrmeE5aYP1DhWxzGvvs062CDAceLsWf6+YHkR7+k97z4K65Uq3/8gxLaSdSotcsxtstvBvtau89iwtoHzQ90cMmJ+NlXm87lWNqj2RtcwDMMwDMMYSWyiaxiGYRiGYYwkNtE1DMMwDMMwRpI9aXSDMEOlcdadLp4+O1zupThnzudZz5IoQYYvoW8fpayh0VqeQlFpVwNezypNVdpgvUg2q46RQa2HlPf2lIZqW2nSckJ7OZnH67zzKGusNsdQ6+T7qJPxwmezlUWNz24PXq6TZhO1YoHwyyyo1MGB8tIMxXVr/fN+0emn9OQi34t+TxrMKo2h0GsHyqc2Vak9s0JP21V6wED7IwoNb6CuOxT3M1BaT62tlKeg/Yxpl9ZcaHTVppHQjPpJ1GuejvH87jt1erhc28AUprco3feY8IS9TsmZSo6PGXbUuao27j3rvfR92E88eUpF3aTivnqliZUaVHWbqLGBfWR9nb0r82hVShOH1JiSYW1bxil9sjiQ1svGSsuaE97hYzntf6u0v1nuH+UyekxmQuFBrbyl4/TKKdIj9d6i31XnK+TxvRS13n2hk457qKNP+t0rrkOK4qt4IL9YHKEnuNQbO6XjC8Q40VApnTeUeP6mo5wqN1fHOklD7YXMJ6AkkDRWZv2kHpM31zAFbEGkQV9dR93tmQu4bUWknW628b5MzswMl2+74VYsm0Ltb6Ml9puq9M8exyMnnseB8qCmrNB3OqyvMMK6lsNI4SVMD625WgpgqfuOe3g9G8oP2YnvaI5ddyeUPfLYg7A+f5A105OTmCt8aoJ1uM0W9q1OH+upVGUddl/NjTod9bfCr7mjvnfJRlwHW9sXoOyZk6ifPSqy8+o+kCmr3AXbXGcbK5hqPRbP/e42Pq83YpxzjY/z+mRR3odrM6bYG13DMAzDMAxjJLGJrmEYhmEYhjGS7Em64L2nrgixnz13brh89Ogx2LYrwixBqsLMyg5G2tIUivhqPJNTkgPxOjyn9uNCDi30dSrXGF/Bl7IcWuymGGpKnTqmSGGrw4OhsPcJlczi9MUlWM+K1/5OZeDsdDB8Gaa8QV1ZJ+VEWDSrQqSpCtNEEe8nSeR92L8wYz9JaXmTrycnjGhCdVgn4ls5FYJMtJWSqHt/FYnBznFEyl1VKJUMoWpD+QBvTEwilK7kL91IhTZFXQdZ3I9LWNaypiyEnlzEdnLq5HE+9y7e+3yCIcmbQj6/Uhu37Tk+v7iLIflI2bOF4jrTXcZB+4j3lCQcqkI7QSX9EetpH8eUuIfX50W/bCnpT7aL/TQR9mKZBPcbiTB4oOQyWZWe0on2EagQeSHCobbZZUnK5jaGpIslIQ3IVKAsG6l04OKcGusqPWdbhZ1FG9Sp1qVEQ0ucMtreUPQneR/2U/EyNlake+7hcPEjDz82XN7cVFaNEV/nO77lm6HsDXe/Hfcr0qg2+hh67Stpikx97EJsC1URYr7hxpugLKvGjSQRaX2byiJqFVMWB+LZ4/RzKRbPQjVuZQNs46k493IF5U8L89fBer8nbKpyuN+uOPel5TNQFilry4KwIo2y+Fzfb1CucOVnnbTP2tzAcPraKsrGqpNs2dbv4Riu5TPHruP28KobD0HZuEgdHqn+/OBxPObFJTHrdcKOAAAgAElEQVR2KfmHV+P01CzLXFptlDk40T5ueRXe74sXH4P1z3/+/uHym+98A5RViijDaLdZelNRsrrE87gWjeF1XlKp7S+d5GfgRJ4lOdIm8sVgb3QNwzAMwzCMkcQmuoZhGIZhGMZIYhNdwzAMwzAMYyTZk0a31+vTufOsrZifPTBc1qq+ZoO1R2WlQ0lTpRcUmrBYlYXqFEPi8q5KgRcJLXCaxb9r9VADmwgrkZ7S5fXUMet91pqM51GzVBQXPlZAHdLkNNq2lKZY49MKUIuz0UKdWSI0hlVlRyU1uto6JaO0QlezVtk/HCWiDqW2LKO1tUI/pfW7+swjoQ3UGsNA6XAjUZ5RqR1DISaMi3iv4yms64LQIObyqHtrELbVjEjt2U/wmG1xW+oxlq0oLZgTaX7HIrzOAypd9azQQSUqJXYq+lVX1bvKfExByvWQvMRNRls1PYtO/wjadHXfjh06COtb66wXe/Lp+6HMJ2gjJI9fKmDq1LE8a/G8suTK7rKt4+V2Fy17gkBpf4VNYT9BjW6jxd8+ZPOoiYsC1ORnhMYwKqj01SgxpbywLcuqMa8vvmHQ7Yi0lZ/QbWZEn8iE+/feZGJynH7wfe8Zrt/zTtbrPvbYE7CttLa8662o0R1T+vikx7rMThsr7OJF1OwWy6y1nF+Yg7Ioy/UwPY06+lIB79nGOlt9rS6vQlkyd+XOl8lgm5dWkts11JcWJpS9ptDr51Tf8aGyVQtY39mP0f5sfYtTKK9vqvpR39eUx44MlyP1zcL+4y67rLNFe/n9kGr3OXXfwojv8fIyaqlJfRO0tcF9+otfOYtbimHtrjegfrdew+8Jtjd5vVBS9qU6fb1oD6UCjp2bwnqsl6Df4vgknsO2sFXbXMF5iR9X3wAV+JwmxzHVcV20lcWVi1DW3cK+lgo/zrUl7hPxNUpHb290DcMwDMMwjJHEJrqGYRiGYRjGSGITXcMwDMMwDGMk2ZNGl5wjLwxgw4D1E41t9HCcHWcfuWxGCWOUJigS+qF6AzVBsdKYliPWnhQrJSjrC1/BeqL8/7JaJ8w6pEJlEsoS5clZW2MNZV95Xs5VWO8SJnid0s+RiCgS2rF8BY/RvoDpBgsZPv8oh9pQaViZqjSpTunk+l2+zvAlS8PoKBS+fVIDmdmlvBUpgJXOye1KASv2o3S3WnQqvZqjDNZfaYLbZmcM20lSQW2bX2dtU9JFraL2+GsK7WeaQS1gN89tdUuleSwXUId57Chr3QoqVWJGpR3e7om2oPyWMzK1ttITJ8qT0/kr65/3kzAIaawk0qcKnXulgh6ylTFeH1N9f2IcdWcPfu0rw+XoLF5rJtD+vEJDHmCfHReeoxk1juVyOHz2ujw2NLZwjEsClQJYaHZ1t/Qx63vjFL8tCDxedxiIMUXVgUtUalyRTlj6Jg9OiP8uh3XgCLWKoJ4XWt9Q98lrSJgJaGKC20m5xO1kehbH73yOy3IF7IeBGh8DkdY10bpllfq41eb70mjifZD+xtonvljAMaVbFGNBDrXc23XUMo5XeWxI1fjYFbrqrkpf21W+7FPTvJ/KhHpuerzOqCCO43HcaHRYdxl7HG8aSuO8uc3XXSzhMfcbn8pxUrRX9S1HIsZTp9rvVh2v/cQp1iSvbeK1B8rHOCN8+rcb6llf43v15An8PmO7gf63cizuq3scKX/mnvjTQlbNGUTT1qmO81l8/myH/O1V6rD/TM0uwHquKMcK9dwY5/GxWsX5YXXsAG5a4XOIRN/OqGf3C8Xe6BqGYRiGYRgjiU10DcMwDMMwjJFkT9KFOE5obZ3tJlYunB4uv+62m2HbfJZfacfK2quo0gqSCAFXVfiNHIbNsiIE2FVhlW3xen6dVIiviPstlHiOPzmvrGLqGE5o9TgkWV9DW5Gow6GPtseQQBxg9W7VeD+bDQzzrG6jrcihKr+yb7SwLBGWKFGEr/aVixRlZVpad3nLlWtN4IhyYvcZIT9RjkyUCsnBrjPSVjBiP9o1zatwdCLC0XEG21BDhENW6ihFyWew3bQiERqewDZUOYLhl6PXHR0uHzh8G5SFkxwCb33hi1DWXcNzWD7PIbKLTzwAZUtzGGaqRRzOzyyvQVm1zjIgbRnlVXg1EDKHRDeifSSfz9Orbr5luF4uc6ispMKd0l4szKqwvBrJNrdZ8uE9/p7PqT7TFOmR12oonRovcX2PjeP5yPAkEZGXYfEWjnFe178Ik6YJhivDUG6rxhRlt5MQjyNxBkPvYYRhx3yeQ4LlPJ67k/ZySjIUq5B+IsLCsZAe7fJuuoY4F1AU8flLq7cCKi0oEv09p2QYUQ7PsSNtl1RId2YGU5qWx8TxleWaHMcClQu508H+3RISI20LFqq2Ke+EMn2jVITd5TOBiKhex3ZcqvK5Z9XzNwxVeNhxe5S2T0REUUFIXJpK/qLYbrIcb6xZvMqW1xafpBS3uM4DITEKdTp40Q87Km3ul7/wKKwnnutwewvvaT/Gv93YkLZcSjbZ4z576hRKIFTXo0Dcm25b2S0WcNDrC0lcs6FkOGIMrNfwmJWKag95tsc7v4ztqDyGUptpztZLE1P4bAoj7oe3v+HNULZrpBBVJJ/tUVbLpl4Y9kbXMAzDMAzDGElsomsYhmEYhmGMJDbRNQzDMAzDMEaSPWl0a7UG/cVf3jtcPzjJmrXxMdQvrq1wmsNWA3UdRw5jqriKsKjQ2ss0xVPcqPF+YyX1zUxzGtDDB++AstY2amIvPcP64riJ2qyxotIGCruLWh01X2mBr7ujtIBJH/e7scIWG4+dPA1lnRhVK30h1nFK8yW1cHGKyq04VimUpXZMauj2MTWwI095YRmXEYqc0Kn0k3L5OVKIShlaqlPaqm19hvdV66s66vPWpZteA2W3fsu3wvrUAqdHDMqqXYyj/ZWs+ThBTdq6SCN9/TehXunuIzfC+uNfuW+4/KvCJouI6EtnMJ3k2BinrH3Hda+CMn+O21iyjrZFWocbiPaQvIRpo6MoQwfm58W60JSHWk/HGrRUdQmdtjjMcD/tdVXaSof3Zkxo3ZoJfk+QCm1toOzFVjZQE50rsp4sUJaAcQf7ZVZ8e+BUn0gT1tBFSner0342u7xtrBKxR6pS8p6Pk9W2PcJuTuvnUtW7Ei/070JDvJ+txhHqKaUNna6/fk/YqOk0zeqJJ+2lCnlsF/kC2pZVhUY/CNVzQI7DqiK2t9BaaUU8Gzc30VYyl8cxpjLOusd2W1nNgR0W3vt+D9tNbYu1lj01Hha09aZoAUr6S4Wi0H2r51KiUmR3enzMxZVz9FIR9/u0eXF5uF6aZa11YVylURZjXdzFOcKNx3CeEqd8z588jt/qbK5fgPUHv7Y0XJ4/cBOUFfLcjvqxqmDVv0OhUU09nnujqZ6BQifcV3OPXJ7PvVXHNletoLY2L1I5by5iiurGJs7l7n47P3OmZ1Q7Sq6s3981VuzzI8fe6BqGYRiGYRgjiU10DcMwDMMwjJFkT9KFdi+mx85xuG7hyJHhss5MFKYcBijdcB2UVSpoe1Ov8av0bgfDB9o2Za3DIZpCHvdTrXIItFzGsHJr/QysZ0IOJT/4wENQtr6Or+uPLXDoo5vgb4OMiIVVSuq61jFEsNnm9/MpFaAsVdZkS3W2FKvm8TYV5CmocAZFOvML1588RrqP4emAiHLSCkyEuLQMQ2bkCtTvLt0441DsU9nEpMrupyVsWUrXo/Xd9GtfO1zOHbseylYy47D+6AkOSa0sr0BZexNDkvUGW8psqMw5W8JS6I1vfiOUvfWf3gPr5bv52u5/M8ocPvy5T8L6Wm1xuDw7hqHWbxKSiJayzQr6uJ4RwgudjXA/ceQgY58TYVOnwngyM1BfZfZSyh+an2fJyROPYl+LOxjmnRYeOQdmVVi3zKHDcllluFIyh3aP+2ykZBcyoyQRUZTl8SnpojVRLDI8UqqkSLsyO3G7Svu4n7EituV0S1hp9fFactKKTN1+nTGsLULfjTYv6zD3NcV5coEYv8SxQiXviGPertfHi4mVnCMRdm3TUzNQ1ulhXTcabAWWyWI7aTX5PjjVf7QEJyuyVpXH8DlVHMMw8vxBtjBcWlqCsrKw3wuUJiPu6z7M7Q/aF+22k3Mi41YYYd8ZK/MYU6lg+L6mbDmlnCNWWST3kzRJqCbGZies9EKVEbItrN8Wz6K8q1JQFnIh12GphNKVXh9D+n3RzhJlPSaHqmr1EJQ1mlin9W0e31OVFVNLigIxJhbyeN+qZV6PE5zfLF96AtYrIgPhRBXtvabm8FlaLHJ9JgnOYdw+2g3uFXujaxiGYRiGYYwkNtE1DMMwDMMwRhKb6BqGYRiGYRgjyZ40uplMhuamWUOUE3Ysy2uoV4yEPKNcRa1YV6Va9CHrQKIC2t5s1lEX2RWa1HlhJ0ZElM2IFH0X0c6kt7EI69UCa0tuvfEGKHtYnd/UAdbReKW/6op0fpHS8LVX0X6o1uZte7Hej9IwCeuYorIMy2VkuknU/nVVilBpXxIK7ZW+jmuJI0cZYXfTu7ILDrlEWI9paxX1O2zL8bVFygSp71AzNX7r7Vx2FO/vV1e5rW6dQfuuNIvapsdPnRounzv1NJQVVVrXGWE/tLiOWquu43Z99zveAWXNJmq4CiVOwfj27/p+KPvyE6inOnP+GT7XC+ehLFtg/Z/LYR8c62IKywn38mh0U0/UlRY7ok51JuJE9AOtT9PrsyLl8rFDx6Ds9JkTsC7b6uwRrCeX8HjjVZ+dGENN/uoG656d0iRmlLY2yPB+Y+WV5j2PI4nHbxZSwv1KGVyiNLpBWdk/FXi91lBp2QNu9+0+/l2jg+Nhvcl/22rxsk4VfC1xzlFGfH/QEeOu1uenQqObyeCAs3pe2ewJa8kDh/FbkrNL2IcXF/lvGy2tOeU6O3gQn0va+06mYz0whxrNqRnUCfeEfVu+gmNTUbS/ZhvTxOuU2Aey/P0KqfvkUhwLpMVVFKBGs1LifnVwXmm326rNR1z305PT9FKReqKO6KvxImuH4yb2p6VVvserF3COsLWBc5ogJ+zlCOclr7/jLbDe93y9BZWjutfhcUK3z8kJtCLrd7mO2y2cT+RVetzqON+bqqrvSZHOulHD51i/h9rvuMPX3e/inGZpCW3UHn5EfEtURb35xDifw8IhbOdZZb+oU2pfa+yNrmEYhmEYhjGS2ETXMAzDMAzDGElsomsYhmEYhmGMJHvS6I4VcnT3a27h9SLrN+5/6CnY9rab2WN3TqUj7KsUhJ02a8tyBdQh5cvozzsvfAcnlQ5Fpr2rXUKNbtJEvc34FKf3m547DGXTB+dgfWxcpACu1aBMeiKuL6M/nVP+iZHUpSg/2aLS9wYyha7yxi2XWfPT7mBd9pSZpdQ1RkJ7uZ8+ukSOnNAgOqG/kWlciYi80DLqtL6p0jW2e+L8lQgtuh79cDdEatzHH30MyrZEGsPJaZXmcQI1mknKbTNUqTJbdfROpMIEn884pvK89dWckvqud6FGt6P6Q6bB1/naN6D26553fTusf+iDvzNc9krn/cjTx4fLYxnUcs+EuJ4Iv9YCoSZzP0nThGot1nlJD1Kt0ZZrOit2pPpIocL1/5a77oKysTxq29bWWW/32AOnoKw8wX124TCORVEe6ztNWOuYVeeTyaImLRD6xazS2lFHeHCq9MWk0qw6oU12yg+1oXSb2Sy37W3lo9xOuD10+9g26nXUcHaEvtt5WQf7PKaI7xG88NTVdp1OeJ1nU7yW1uIWrLc3uY5uvul1UDY5jfdwvMoHqitdvfT1npyYgrJ6De9D68Kl4fLa8iUom5/FZ4+XH7uE2N7imPXRE5MTUOZC5S3c4/PNqrTIGaX7TkT9+VT1q6zQjxfxmMU8rpdEHywqj/l9xdOOUHdANsvPy0Yd78Wl85xSvd/De9pr4vjuRYrgGxfwkO0Ur+/kWT5mLsR+0Rbf6tTrOG/KhDjGtDs835DfA+2U4Vgg97uo2hUdF2mdY+X529O6fx6bcjk8xvIlrL+L53jbiary/CbWPN/xBjz3N70Z09Uj195/197oGoZhGIZhGCOJTXQNwzAMwzCMkWRP0oVsJqTrJlk6sLjCdhftnk5Px6G6QIWrsxGG6lrEIZj1DUybW57ElIilModDoizaduQyfMyJI2hnsb6M5xAVeT+ZApZlVJilL1L4jStLoUDYgDXzGJ48sIDxje22sIopqhTAKnzQE6kJC8qebUHsd7uGqWbPXULbE4lMr+r3ITww3LcjSmVsWVxaoCzE5GY9h+G2nkrjPDnHsplOB7fdmpmH9ftPs3Qlm8FmPina8PQUHuOCSmPYE1ZF5QpuG6g0kNNHjg2X33nnm6DsXe/5zuHyzMJRPEYXryUj2lGni/c3qyQRr3k1pzNeehqtx9bbHJ5uTmB64NtvvxPWZ9p8nM1Hv0ovFZ48JSLkL1PcOiVdkem280p+kMthiLrf5TFlvIqyoHe+625YP36c623ti5jGtN/gca2SwzpMEgwBOpGiM4NDAeWVJCsrxpG+ctYRGZGpnapwKkYAyYmNAyUd0JZTYZmP2XUqDNoQ1kUxtutQPSaqwgIyEtaQmXCf35uIwaIvJFlOjWVSMhao0HspxPF7q85ShsBjG5qYRFlTW0jsCmUlY2pzG15bQxuoMMTGcPgI9/9aDsfrzXW0epo5wvK8ahH3U9vkcz+mLM2aatzYEFaXZ57GdnL9TWirFhW4v7iMSqGccrvZqqH9WrmC/Wxs/MpppfeTICAq5rhNVIu8fO4k2ss9cP/Xh8td5X158zzW6Y23cfrbbIRt5Y8+9XVY397i9rBdw2OuLLKkrNVEKWSg7MbGhHRTt6NYpQSW42Pc13LRnlhW9nJqKlAak8fEvt+sY/u8dJH7f7WK851yju9/p4XWl9ffgPOzmTk+5n6kErc3uoZhGIZhGMZIYhNdwzAMwzAMYySxia5hGIZhGIYxkuxJoxsSUVlYQB0QOrPlGmq+Wi3WqHQ6WJaoFISxsFfa2EQbsLCCmqqpIq/n86h7qwt9bzZEDV8Y4LY9ka4wV1UpiTtop+NFSuBE2XJFQqszq3SQqdKH1ZusmWx1MAXn8jra3hSErUyxdADK8nnW0FWqaLF2YQ33I+tzekwJB/cRL7W4IsXpblcz1iT1le5yo4p2NZM33jhcbql0rE+vo15y7lWvGS6fP4spXxORQtk71EC2VPrnV9/OqYTf8573QNlN1x+D9YUF1h1NzqJmOBW/KddUakmKUJcV97ht/N5v/jco+8JHPgzrr5nlc+jE2N42hRbrVa+6Hcre9m60KcssLw+Xv/j4I3h+1Kb9whGRlKUVstyfdIrLvBC+ZiIcuhKVJntzk7W2KyuokbvtVTfD+sIxvlffUXo3lG1ssA5xrIzn4x1aAW1scnpMn2Kd9ZWezgvNnHeo94N0xspHzTtsK07YxAUBjqsdlZK1l/Axg4J6xyFOr5pBHXimp7YVacabYkzbF3HdAOcchUJrL+0Ra9uoc3QdPt9MoCzCimj9dSnldr++jv2yegNq6Wt1fo5tbKAOtyCsNkOls2zU0cptTHx7UF7Asf2Br94L6y7D53BgAa3H1i9wu148dwaPoWwS15dYW/nlz/45lN2i+sNb73nncHn+MOpU2x2+95sbaKeZV98s5HNc9z2d4n4fSZOUmttc55uLbHNVr6vn7iavJ8q6rz+H9S1t2c5eQK3qyhr+bRyz9nqqgm1w5ka2mswWse8vLqpng+j+nQ5+P3Dqma/BervFuuxAWcgl4tuTAwfwfqcen4FPPXk/n5/SIscxzo0OH+ZrqZbRptUV+Z531ZxqfRWf17Pz3Ce8x7HyWmBvdA3DMAzDMIyRxCa6hmEYhmEYxkhiE13DMAzDMAxjJNmTRtcRUSRS600UWLOWL6Df7WSF173yTo2U9m68yjqQs0uLULbdRC/IW4SX6ROPPApla4usi3n1TbdCWRChB2pjkzVWKycehzKXwfMrF/lamup8EqG9q3dRi3xSedqePsverksbqCtrqzSwQZHPIdXaNyHhy6m6rEyhBu288DrONlnDk+yjno4IvS0D4YfaVyLdvvDp28yhHvvRNuqemo+fHC4XqtjeKlOoia2Jaz27iHoqL1p9fhM1zc1NvL//9Ce/f7j83ve9D8p6faXtFrrhVgN1T13RNpQ1JWWUf/Cf/vFHhstf+f0/hLLCGnpXtht8MQfmUFN4YOH1w+W77n4nlM3OojYwW+L+kRufwRNcR2/ra0kQBjRWYk1oVrSHSKV5lnrLrEphXBhDTeJ4lfWzrS7qwabm8fpunWbN2vGHMF30/DRv+9QJTNd57DrUL2YzfB8XtzGVsE5v3RGGuKFKFwytQXmQR1n81iAWw0aaKh1koDx4Ez5mlFcpWWM+Tj7F8brfQl3jxgqPa1t11hTqFKrXFIf+uBnhm1xTqbiTJtcgpNAlotkyjhs33HLbcLnexOssKL3+5BR/gzFWwfZWED7Jq6uo33WE/Ud6r+9KvxpgO7l4jlPULszh2J6VVuVdPPfp8SOw3t5iDfGE8ol/8mF8/tWFFvnW12Kq1oLw8pWabyKiuQUcgyPxHs2pdryfBGFI5Umuq4ZIW1wZx/YwMc3PlJxKhVwuoS/w6XOswf+Dj30UyhJ3DNZnZ7n+52fwnuaFN+6BwzdC2cQkzn9yOT6HSxfxW5Nc8HpYn57itl2ZUPMdod+94w70ePcq5ft9931RHB/HYN1eK2PXD5cXFtCPOSfyE1TK+H3Q8hLOjW68hfXQ4T74cdsbXcMwDMMwDGMksYmuYRiGYRiGMZLsSboQOEdFkXY3ETH0zW2VDjPg0EFuDF+j9xKcX8cdDhd3uvga/fzTF2D9NbexnUVDWZFNVzgkMDmNVl8XTmEKugceZgul8Tm0sVpfQRuPuRkOUa41VMrdVd52u4UWGpcu4uv5dotDQjoFsA5RjotQsotR1lCRaWCLKF2YmMawbC/hdIPbIrSobdKuKZ6IEt6/F7HYvgrTp0LicuBNb4ayR5fxPtSXuI31tlWYNIsWPqdO8nX36souToS9p8bx3kcTGK4aH2f7tsUlbG8bdVxvizSg6jJpYlxYCikbHu25Nj/PqRRf8+rXQVlrE8Ogs9fdNFyevhnlOpUZ7gM6GlRvYH+dKPI5pRNYJ/tJQAHlQj52IcftuVJG+64pYd83fwBTSE5Mos1escT3eHoOy44/jZKn+QVO9To1i6HtvLDaeuxJTLGcqC5UEKHOsIVDa09JheSfen/llJyZrLIe0xFgIZfp9XFsckoS0RfphLNqP+0aj8GrGyjf6W1g/2mLMLlT9mf7hyMnQv45YbGox1Jp3RiVsT+7LFqnTYu0yFspSs+26tjXpkUbGyvjfvIibW5JSQOKBWzH9TrXb1MNFLMqbfy5p58cLutwbxSJ9MsZbCc9lf7Zd/ne33TseiibquI4trzG62ePowSnKtKnd/vYLpIOjsnlSNhgKruz/STIhFQQofu2sDPd2lBSNRHSl7aTRET5Et7j08LO7cmnT0LZwkEMzefzbOfY7qOU5fSTDw6XnziJ+5lSFqWHDvE4lyZ4ft/xnd8B6zPzPHZtbauxQDwAxpTMK06w3X/rt/F+nbIzlOnaiYjGK3y+6+rZdPJplt1cuIBzmNVlnBO+5o4bhstTM2Luc42GF3ujaxiGYRiGYYwkNtE1DMMwDMMwRhKb6BqGYRiGYRgjyd7sxZwDi59tYTuzsYm2R9Md1jP1SAktiqgBlPscVxqVj3/i87B+0zHWId5wDK05kiZbdm1v4fnodIVVYTPz9rf+NSg7/zTaeBw/zuuX1tEW7OkV1qX0SKVyTVA3NT/BxyyUUae5uI3nWxT6pohQDBiKw1QPosXRdqxSowoJ2HZHpjvcR3sx74kSYUMiNMatqVnY9K4ffP9wOX/nXVD2mT/EdLeNU6x1SlXK16iAGqnGNmux+g28Z7kia+aKedRhTc2hRi7McblO09xQOjhZ1xPKfqgrzre2jHZn2sbm9SIFZ1bt58IiprONqlzeVTZ+gbA/Szuo2UoTpYVfYi38chv1u/tJLpenG2+4Zbg+N83tY2YatbUVUReZDPafrtIHyj5yxx1vhLKnz6Eu7omn2TasokbEUpU177qNXVi6BOsHFlgrmlG2PB2l/5Qq3TRV1oLCYCwT4n5CldI2FF51SarqIIN9pN/j43TV9wQtocsN1vB8oj6egwu4Hpz0yrtWgrrL4YhIXLtMBzypLBWznvX6ZWVD6EmlcRYa52oRx4KlGo7JK8vc9/I57Jc5kY4+UvaURdW/5T1td/HbgoVjaNGUipSrKyuo9Tx89BifTxF1wWsrqOetCf3kuNItF7LYlyYqfB+rRay/ktDTJ8r+cek0WmM1xLPy2C2oC95vpKVpJNpKpNOtC6H9xQ2830vruL66wXVYLqM9o1PfWVy6yGNMRh2ztsX9tN3FMeTSOfwm6eRTzwyXDx9C+8hcEXWuD9zPeurTZ85AWVHojcfH8RncVs+xuC+s6pRGN47xnr/5zXcOl8+fW4ayr3/l68PlSgXbUUaM+URETWHHOT0rx5FrM6bYG13DMAzDMAxjJLGJrmEYhmEYhjGS7Em6QIQ2FUVhqXLk8GHYLi/CN7HKMBNkMTSWijB3EGC4/8IllBz86m/9wXD5u77tHVA2LbIhFVYwJLR9EcPOVOdzqp3BkMtCBUNhqyXe7/HTGGpwwm5scnYOykjZkxREdCNSmZJClVVIht6TGbTPyQpbmXIByw4sYFhicpZlIqvKnmY/kfZlXZH17dA7UCbyph/5wHD5aypsU5nB8FBUenq47D22qX4PQ8MtmS1JbyvChSdPPwNlh2/ATEBBjsO0nVhlmlKZ0QpCBtGsY/v78z/92HD5kUcfgLKZObSE+7ZvZXuXG265HcoycyhVqW9xOK3VRXlCVyoxljkAAB1YSURBVMgVdNKqVg3P74uf/+xw+cIi3of9pFQq0Te96a3DdZnpT4cDnciw12yhvOIr930B1n2G7834NIZqtzs4pmxuc7+YU6HarRqHX8NxrMRWC+10mqJ9ZJRdYFYNtV70/9Qp6YIMu3p8F6HfTPRBroL15VNcT2ORMayN0qVyhseRbohZtkIlyQq9tA7EPrBfOHIUiEx5UcjtpKjC9q2I70MvQflGNo/X0omFVZrK+lRVIX4p94g9jjd9YWFYU1ab07OYMawgxu/JCoafy1Xs3weETebJxx/BbYWNWauNfX99DWUOnQ6fb1FJNDIRPkPmRAa2UlHVgRhjWg0lx1HPtHrM2558/Gl6qfApUSruZSjaTamCbUVKYC4uYuj9aw8qeZy8b1V81kO4n4gunX94uDwxcwzK8uK+papH93ooKaKU782FC+eg6N57vwzr4+NsRVYZx3aUCgvDrRq2FS1HkNleMxmVmTGDbeWxx/i+NpX1alZkOnVq4IpjvE6ZcW0/FFD2RtcwDMMwDMMYSWyiaxiGYRiGYYwkNtE1DMMwDMMwRpK9pQAOAsoLTajMXtjeRAun1jZrAPtt1PIkhCkHt1fZbumc0mlmlJ3O2gb/7Yc+9udQNj7OWto5ZVM2E6L2N9ji/bSaqC2pzKBuarXJmqtU2QZ1hf6ztYnaPx+ivqUg9HQHVErE6XFMEynT1PZVCuB6nfVAM13UDRbzeH4TImXjptAgOdq/FMCpJ2rFfK2psJMrHL0Ztv3UfaxXXdpGzWNV3cNcXug3Vf7VpYuoX+p02TIlm0O7n2yetUNFZXsSZXHbQNzDnhK6xtriTNzuj//JR6Hsd3/j14fL3uHfuQy28Sce4RS1f+/v/2Mou1lpdp3QT24oO5y2sNvrN7HP3fs/PwXrj9z3peHyZGYf00MrnAsoC3XO7cYrsVYgbJlaypbp3vtwLFjf5raeq2D9thMcq4olPn5nC9tgq8da+WaKZZRBnevSKuvOfBf7bLaE448T15Yoja7M85tROX9TpeFrd7geesoyLlbnQB0+ZraPdSKt2+p9PGa7hvrDSOw2EOnc9zMZsPdEXh6XuD5zWWXfleM6aahU14UMajTzQoPaaTXVtmgnNzbB2tW+She7dJafW5tr+M1HJo91nQp9ceqVDZ3KzZyJ+BzmlZVkv83XuXIJU9zX1bWMSZvCLOosI7Uu0yu3O3jva+Lbh556LuXzyrpNPO+Wzr9034d4n1JHnHecCls69Q1QVaRmX1BpxTe2UOcsP7nJ57BtbLRwTGm2+G+TNeyzefH8mZjAb5smxlHPXSzx+S0toe3pww/jdwlTU3z+WlvdElawnS6OE6HS4fb7PF87ehgtzdo9nCs9ceH0cHluHre94QZ+1mdUvfe6OJZ2hPbb7cNIYm90DcMwDMMwjJHEJrqGYRiGYRjGSGITXcMwDMMwDGMk2ZuPrnMUZoXWosNaw34HdSgyc1xjAz1s0wpqRGrCq3J9FbU8rz6GXqrjU+w5euESplJd22Qd4tmW8hQtoTZrRugCWznUqBw/fxbWn1lmvY3LYbrEmvjTXhfrwCuJ3GqXtS99padbmEQ9qtQm92PUTJ46xXrU6VnUbbmKSuc4JlJTyu1o//DkqSf0q/kZ1od94cGHYNuP/9ffHy6/9g2vg7IbX4frOaG1jZXuu9VEjZT0/wuUhu/2N3zTcPnojbdCWaGA24ZCo7tLkxuh7mh1hT2WP/UJ1OjmI76fk1PowdjuoQ7ulEhJ+yd/9AdQ9t3f9z5Yl3rtdaUpo4Tb45c/8xdQ9MhXvwTrOc/644LqK0T7mBLYESXu8prgNMEO1BSpnE+fPae2xT6cy7HmPeNQS9tQ9SS1zXEPdc6xE9oxpbnPetTZN5e4TXbrWGcL16PuPxKXnIbYrrxYdT3sqV7ViRPenqUctscoxj4St4RXpdLv5gr8KMhOY4r2Rf2NRSo8SoW+3O1nCmDy4O8pLZajCB9j2TzXw+Ya3oekjNddHBdp2XPY93Wa8UCYgQYqbXNBeLUWItRvJn2sPy8ejon+/kJ9pxCIh0gQYP1uC6/15WXUBRdV6vDyGPcHrVNNve5/4jjqnsptc+rbh6b61qUu+kBb+fzuJ54cxY6vMRF+0n31TK7XeUwpFrAdHZpDT/Xjp9gzNlIpyMfK+K1HuyNS0Pd7qoznOPPzmPJ5dh7Tnr/6NbcNlz/3GfTwP33qCVi//ijPBe6++7VQdv4ia8jX1/F5Mz6O/b0hxtk7X4/7OXAAr/Pnf+EXh8vtNo6d113Hnv4rK+tQtrKEY3BbpJOOxfcDu5rmC8Te6BqGYRiGYRgjiU10DcMwDMMwjJFkT9IFT0SxCB9tb/Hr+bJKwxhlOXxTV9IF5dpCXlhdHTu0AGU3H8V314uX+BV4XqVPfNU0h4TDrAr5qTR31TH+25VtPL/HL2AqwHNbbOPiPW4bivB1FOKFaUuNmghTNZUVVKOD4a3ZPO+ruIDyjbV1Dm+dPv4UlF132/WwvjDJYYmnRDh/P8OMnogS4rBfR6QJPXfhDGybCfj+1lW4N5vF+qxWOWxy8hLKS/oqPW9OtMfiBKbYHauyTZAOt01OYvrn2VlMqQznrkLZJx5/cLi8vY33typCh5ubWJZ4DK1Xyuxj8/hDmC745psxnDZ/iO+3rq9TT3HbOPHk41CWC/CYM6I/lPIYlttPkjShurCCW11hi77TZ07DtmeFXKGxhf2wXMCQX6HA9e0dto2NFNvZmdO83ziL0qkwy+04F2Lq1NkyWgHNTHI7O7GM/fKxx9D+afIQ7yso4L0oiPtYyWMIOlfAMU8OOYmy/omV9SA1hOSgj0N/KtLmFgt4nWMVXN9cV+nUh+yvLZ0MY8q0pUGI72uKBa4UT8pyTaUElilYs1ls9y5SKZWFjKDXUBZ1AYfx5yexLVIZ+2VWWAKGSlZDyupJyic6KuX45iY/B6T1HhHRWBmfxxmR6jZW8Xuv4sNFYU2lUzznxdiQpnju29toYSif6+Uy2mfuJ94H1O3x9cciPXxbpUnfFOmaT5x4FMq++a63wPrBebbvCiLsh1rW1mjxOKYt7gLx7H3mFKZ1Xlw8g/tp8lxkaQmlmoF6/nRF+8hE2JYLRWG9msUxpTKOz7hA2L2GSha0vo22jp0u3+NWB+dNn/70nw2XG6q/VMvYRzxx/+kJuZZJFwzDMAzDMAzjKthE1zAMwzAMwxhJbKJrGIZhGIZhjCR70ujGcUzrG6yR3RTa20MHMX3eeJW1oWe3UPe2tYhWKEevu2G4PHMM08itnXsS1i8+dZz/bhxtmsKUNbFFlaq3r9Ja1hqs1UlVSrzJcdSPtDzrR/o93LYr1n0fda9NnZIzw+fnIvyNsay0onNjrItzStS8uswaGt/F+skX8brnRNrKm2/ken5kFfVU15KUiBriN1S3wRrMdAZFN9cd4RSIidINe6X5K4j004myWQpV6t5xoZecUKkJZWrKdhNTZR46hO04EDZvLWVZp3XOy8usUcoo67GS0OgWlX6uoc6hJtLQ1uuo5336+GOwfuDIMXE+WF/nz5wZLsfK3qeaxzaVlzpHpb3bTza3tujDH/3wcH1Z6NA6yq5PagJ3pcZVfbgp7OY6Kl1wNsCUp4enuF+cXkOtXafF+rpCGf9ubBrXMyK184FDaBe4jhI1CoQtl2q6FGWF1ZfSywYRtp2UWFubV6lmoxK2h/Ul8a2BsrVqNbgsE+g04mgp1BNawEYd2+5+4T3e/0TYeyWp0iIHXJYrqHai9Np9MY4kSgPrCPtBQLxtfQX75cWnnhkuzx3GbyrKM6iJ7Iv0tKHTOuC+WhffddSxESUJn1+xhO0kzOA9lBrSVhv7VeBUGmJhFZqmeH7SblF/U5FX2n5pP6afm/tJnHja2ub7nIpvIJot1e5boi23cJx48FG0wnz96942XL7x5jug7MRJfA4XinzPOyqNcldohrtd1Ls36mgvt7Z6cbis72mugPV98mlug6urH4KyI9cdGS5PTmJ79CmOG9mIn2tPnXwayh74+sOw3hHfFmUi7GtLi/wdjXN4jMkq9pFOh/9WSr3VY/4FY290DcMwDMMwjJHEJrqGYRiGYRjGSGITXcMwDMMwDGMk2ZNG1xFRIObGB2ZZh5YLUPvUrLGWN6f0GdvKV3fZsY9lVuubDmCK26Ov5+PMKn/UjYvsXbd0HlPMlZWv3LjQt6RF1FoGBdRXloVOs6bS+a21WKPW6qG+jzpKl5SINKsBnk+k9E2x8NJcrKEWamWdRSy9FM+98xD6dx45xtqco4dZf5q9H7We15K+J1pJuM56XdZItVTqUZ9nDZj2ZeyotNJSLtZVerqM0jKOz7DH6aGj6C08LXTLTuuA1X1YXOS0i17p1XJ5FFcm4vxdBttQKHTWlXHUPMbpKq63uZ20lC7v7GnUTN0odFCNJtbXxfPs3arTU/eVQWFLpovNovZ0P+m0WvTYQ+w/LD1RwwDHjb64550m6t50SuhI+JHmlB4+r1K0Vma4X+hUnhvrrBnOR9j3vdIdNonvVbakvF1TPKaLuB9EWZW6V/roVlHrGylf3VqDx9mu6i+FEh5zeoHHy/pZ5XkKulvleam8pceFZrcuvi3w+5kBmNBTE/W6eO87HR6Ts3k8qcRhHSUi9bX3qr2p1NxOaIFPPILpV0/cz9rFu975zVBWWcB7mIhvN2Lln65tQ9ttPodmEzWkMj1vX3nj6rG0K9LPa8/XQH1rsLrK45FPcdtY+ZXDflR/bQjdt7yO/SZNUqo1+D4LKfMuPeodd7x1uKzH5Uhdj0ydnCRYD60WXl+lwn2t38M21+1JDbTShas26IVOPFV+67F6Bm43eV41O4ffL/3g+75vuHz0GM6p0j4ec2mR77/2qD537gysn7/A30xFCU4noww/HycnMT9CqazSDte5fdZq3OZMo2sYhmEYhmEYV8EmuoZhGIZhGMZIsifpwg48N/bi1X5Xx62EbcpUFUMCRZVS8sIa2499+UvnoOzON78R1uOQQ8v3P4bho7KwSYnVK/eJWZQ5FIW9T7itLV6UlMFfWbowPsbpElMV6tDhjJawkSppOxiVzk+GzbpNDG/NTXN9LsxjGGLuIEo/nniCU78eEOmAe13c57UkcY5qon5JhqM7WH9xmWMT3mEIt6VC8WURQj143c1QVpnG8OBNt3Kq3FtufjWUHZrnsE5G/dTLFVGOkBNhZa9kIjpWWxJpZwN1LYmU/CxgGGdmDlPJPvkIp4VsKWuspeVLsH7icd62qdrb6gpb0/RUuLKpf+NKa5jsS/f716cpWJ91e9w++j1sKzIcm89h/RaKylpLXE6gbP76ymqtLmzjesqmrChWt1dRcrWZVelRZ1jykS/h+eVUCK5N3P8SHa4U7SoMcT+ZrBqyQx67OoR9utfH9pDL8X4LZZTopNtct/0+9judwjQrUsSWhA1iGOAYtp+kqQxv4n3oybGzh+eeBDjWJ577XjYqQpkn7N+9lrBSUmNBwbFMJEzwGD0lT5A2Yf0W1jWpY9ZF3beVvWFTPE/6KoydxFrKwOfUbul2gdddq/H5tZpYf8Uit5uqeq5ruYRMJSytxvab1CfU67Gkx4lpTrmMqXvvejPLTBYWUOJ26pmTsN5qSTkk1qG2TyuIVN1zc8egrCvSEC83dNpkvP/SwlJlh6aMSvleEXORnLIalPdxdWUdyrodLf0RsiDVjno9tBPstHm/nQ62+6kploSVx3D+lYmwPfRj/tt+n4+v01O/UOyNrmEYhmEYhjGS2ETXMAzDMAzDGElsomsYhmEYhmGMJHvS6HpPFAvNhheWXcubqOXJiSn0deNoJREom6axHGvbNmNMgXfm+BlYn5ibHS5faKJ+JBbylryydwq8slRJWPAykUE7pY0EdSgVoducjFDjkwitlk7111E6QjfJf1up6P3gtTTbfA5apxIJLdyYshAqKdFpSeh4Unl++5nm1TmivGhaQq8dqTSLlTzXUV1pkHo1bAsbIv00eayvdgPv2YknOSXj0rnzUFYWqYQj1U6iAtZnIDRTqdIrBUpPtS205qnSzGUjro+TJ05AmdY2rqxyKuFuH/VT9Tpqur72xXt5W21jI7SoGaVZ7yh9sbRWyryEWss4jmljTWjfhIVOTmnQimI9l1U6eqfSbbe5nXVr2Obayq6vVefySKWxnBS69jSPWsa1Jmp2O9vcPvIO20qur6yBYFWlJU35vl3qoCa7MInX0vVCj6rsDJ2ynJLNN1K+PV5qkx3WQbuBx5QS1FKZNbraiuiaI8bBVJy/tlnqCW13T+mNe8qiqS1s94o5ZSflsR5iMUYfOIo6++kxHs+nDmEK+Y0NtLqUaV69sqRs79JL8vl1lA50dY1toMZEinEior7S5Mt0wTp9eldZD7bFsyeO8ZjSwU7bP+pnWk5YNe7nNyEa74k6Xb53k5M8bmQifJbWtjmVc6+HGmivUiP3RR1GWdxPnOD1BSKNdiaDetRslusll8MxLvU65bI4d6XXH1fzqrlZ/j6nUMBU4Z/79Nf4+BHOdyoVtCycmeVvWPrq+bO6vATrFIjvCdRzI4rE+SqL2TjRYxPXbbcn5pjXRqJrb3QNwzAMwzCM0cQmuoZhGIZhGMZIsifpQhAElBdh354IcW3W8bV/VWQX0xl7atsY8pP2NRN5tN1yfXx3/czjnPlrPIfbHp1lq5iWCiv6VFkVeT6/bIDVMFHEEGVPhJ0jZRvV3Oawns4nlVEWPvJVfrGIW+tQU0+E0BMlM5AZUrT1z6knV2B9boLDaMfmWfbxP546S/uFc44CkQksL0IlTcJrWTr3zHC5rSxoLp3HLG9LKxzSb27jdXsVNpWtRodUYEsVpnUhtoVAhFycjqOo9YD4HvZ7GPK5/gjbwDkVEltbQ7uXhQPcjp88vgxlqcpMtL3Jf+tVXqVASEb+//bOrrlt44zCu/gmSFGWLSX1pB036U1vkun//x/NTGaa2HWaOLJSSaRIAcTX9q573pPKsTJiZ4I5z5UwAEFwd7FY8T08J3i69tSW/qcULF38kSOuAO+dS/P4fgWkD1El2SVDnEcOt1Ym1B2sdKWB8dHd2X2eysUZyDjqM2uZhGlPOScmBjtelyDBGt9TihVZOmUgV5ionDpC+//s7byav7g229UqvmdJ/kN+tPNPB2lyzZYspsAaqEpobHiyputB6gE2iZwc+KSEyYz9roljoafyeoBNLpkPo/0sB7idBlZzUbl1crH/80+sVKA+j+2wa+x4u9tYCVYDc7YnCVFPY7MFKcPN1sqWGpCivTi3comhp5ROkFllmZ1/QuAP/rDMwSdxzCdkicm9P0JbNy3bqB2PJE3d6jSW40eQoFxd276530crtXGiNcyZvd+329gur7/7wexraZwlWWw3HoMFWGvVlOjJEkaULiS0TulIsnMJiXbL2j4nmib2Dqc/pt6ud+oqnrci6zmUFThnH4F5ZmUYSEvzM0ttshxT5+K4kb2YEEIIIYQQH0ALXSGEEEIIMUu00BVCCCGEELPkURrdvu/de7CXKJfRTuRibTWnfziPca0cgZiTLvKsBr0GaS3LtdVy4O6SNCsV6hBpCR+81SG1LupQMjp4sbDaOw8Rk+1ua/b1oL1bn1i9TbWw5/Wg96tYT1dYPVADdj+cPNtD/KVV2jn34tRahZyfRQuSFdgzpf54/+P4JHF5He1NCrBXmajPDqBf+olsn/ZkbVKAhvfipY063je2JdAK6MN2WaQBIo0Ubk+ko+btIURd1ETn+TtE9XIk8UuKAH779h///bttrW7M0/ViN3rHMdzwJ2lyfW77v4BoT8+5yEck8d7VoIsOELHdUuRpA9GpXWM1sIG0yw7sahzbwnGX47RBOtMEvLQ86cuXZH/mId562JAmd2A7IhhXib2+3MwFFOVKkbYT6Okmsh/ypO0PIEgNOxq7IPfrE7uPbZZasLFrh4f1nE/JOE4mmvbmBiy6HLdfBq+z+zYbO27uT2M/dSv7uVOyiEtgHhnpHmlgHmto3joc7NjEyNU8tWOI7cX2oKu+vra/O8nzhzWR+z1pu0EDWVVWu+09Ww3GsVpW9lmIsb6sn7y7o99NwP6OrNGOSQjBDUNsx80uvjfrsLsxtsswcEyxveYM5qlvv31tz0MnLiASuu9YnwzrALIBa8nqDS3FEnqOeXqG41jvDnb+QYVsmOj+dmRx18RxxpHJz06fm+2fLt/G96fz4vRzaMl+dvHKbOdFXDvdN/gcfRobVH2jK4QQQgghZokWukIIIYQQYpZooSuEEEIIIWbJo3100f91vYo6lBPyhS3KqAO6vrEapYJ8/FLQGk3k6RcoWu/8WdRyLMi3LcfIS1rC70Z7DT+DFmporRbrpKJYPtD/paTNWoA2OZAOMiFPVg/+lOxVWpVWN4V2jyMdO4BusF5ajc9EsZU5aDo70DyyhvQpmbx3B9DiBhCLdqyrfh41xS9rqwfyFI+4Ar12IN3lm9dWM4Uek+j97JxzKfg/pqTd9r3VNo3gVcjvOZDubJzA27Oz420P4+3rb2wEMPsjbjfRD5FsNl1ObRJAwM1aO9TopuR5mZEmHO9XjqE8JmPfu7vL6P3cgM6v31s95QTexJQA7GrSvCcwx3SkrZ3IUxi1bYH6bQLtt0/sedi3druJGtKUNLnZaLdT0PRlBc0T0OnsIz5S7HmSxTbpBjt2WZmO0eF+tA04gt78wDbKNJcOE2ovo/rvqfR0/4t+6N37f8f7YnMbdYQV+Ruf5HFOZD3q/Y9XZvvyXfzNyfn6U7OvLOjzoGco62Oh/a6ubOTvD2+sZznq0MvSzk2e7tP7Fv2Cbd+/gN9fHGguCtQXqNFNOQ6cdMELjEjPbdvivbLdWF/fjI5dQNsvl+wyfzzGMbjtXWxjbBvWtaKOuCAP/zSzHrIhifPU9a0dRwX5zYIduBtGq7vt4T4t6T2TpKTteKIs/fjlWkHriSxHX347jpp7+7ujCdZc7cH2cUWa7QrGL//sJ4X5cbm0n/PzL/5qtnM4TwdzniKAhRBCCCGE+ABa6AohhBBCiFnySOmCdyWUNVZQNs8Ku2beQgziv7bWFmV7a60mzpexJL0+pfLBwZ73chsjT+vafo1eGpsgWwLqycalgxL1LduiDLbMUoOtFZfBeyhBeiqJFlxmhu/hOYaRy85YXmp7W05dwfWsqDTXcYQg1BOMBdMRy9PBezfANQaIzszOLsyxn/4x2ozUn3xm9vX0b9i+idKLW4rNLZbWVm31PMYd/6LcDxKSnMp4GVuvQAkwjLYc2FOsZdfGMd+2NvIQK4lFQWU8Ou8IGaYHspNKqE2wtMVdivKUnMpeFVljpWD5NwWy6joifde5d1Da9VACLimKNoXPU1KZNBwoQhvt+TIq09N5B5BLjWRT5uE9WY6S0VyQjLFzBrqewFGq2FmB4lpB9pBSp04TWRZOIBH6hb2PfS2Oe3Lkcnh5BzoPW9MF+H7ExP4eUfEyDIO7gnv+BqKv6yXJE+DZk+YUqXtv79kfdzHK9bOLP5l967V9vqBNJtv+XV/FqO43r61U4d3335vtZhclOcuVtc9cPzsz2weY+2s6dgJtUsNjk6wG8fnS9TxOpgePvb21z+4B70969pzUtnxfwD3a9/8/ezHnnBtAwlct4lzHEooErP1Yirbb0TrlPD67vCc70MaW/5t2C8fae3Z1EiV69PhxIdjzZhlII0nHNkz2elFm8oxsRhdV7Jth5LUGx97HG5nnkHxhx8qf/xKtMjn2vqzi+vDLr/5m9n3+ytqLpS6+NsseXlP9VvSNrhBCCCGEmCVa6AohhBBCiFmiha4QQgghhJglnmP8Pniw91fOuX/+6oHi98CrEMLFrx/2eDROZofGivgYNE7Ex6KxIj6GJxknj1roCiGEEEII8XtB0gUhhBBCCDFLtNAVQgghhBCzRAtdIYQQQggxS7TQFUIIIYQQs0QLXSGEEEIIMUu00BVCCCGEELNEC10hhBBCCDFLtNAVQgghhBCzRAtdIYQQQggxS/4Dic2L20Bs70UAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_images_labels_prediction(x_test, y_test, predictions, idx=0, num=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 8. 查看预测概率" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 8.1 使用测试数据进行预测" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "predicted_probability = model.predict(x_test_normalize)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 8.2 建立 show_predicted_probability 函数以相看预测概率" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "def show_predicted_probability(x, y, predictions, predicted_probability, idx):\n", " print('label:', label_dict[y[idx][0]])\n", " print('predict:', label_dict[predictions[idx]])\n", " plt.figure(figsize=(2, 2))\n", " plt.imshow(x[idx].reshape((32, 32, 3)))\n", " plt.show()\n", " for j in range(10):\n", " print(label_dict[j], ':', predicted_probability[idx][j])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 8.3 查看第0项数据预测的概率" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "label: cat\n", "predict: cat\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "airplane : 0.0039044837\n", "automobile : 0.009814439\n", "bird : 0.011785377\n", "cat : 0.5836158\n", "deer : 0.011877953\n", "dog : 0.34001246\n", "frog : 0.014927296\n", "horse : 0.0033384464\n", "ship : 0.01755957\n", "truck : 0.0031641857\n" ] } ], "source": [ "show_predicted_probability(x_test, y_test, predictions, predicted_probability, 0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 8.4 查看第3项数据预测的概率" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "label: airplane\n", "predict: airplane\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJIAAACPCAYAAAARM4LLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAFRFJREFUeJztXV1sXMd1/s79We6SXFIUJVGUJZmy9WM5luM2jpuiLmAkNeD2xXlIi7hAkQIB+tICLdCHBEELtEALuC9t3woYqFE/FHUNpECDIkARpE7tALEjWa7tWLIlVbIryZREWeKfyN29P6cPu7pzzpGXXIrXS4maDxA0d2d27uzluXN+5vwQM8PDY70INnoBHpsDnpA8SoEnJI9S4AnJoxR4QvIoBZ6QPEqBJySPUrAuQiKiZ4joQyI6Q0TfLWtRHncf6HYNkkQUAjgF4GkAFwAcBfAcM58ob3kedwuidXz3CQBnmPksABDRywCeBdCVkOr1YR4fHwcABNGA6gvIbY5hoDfKTBB7nmVFm0i/BPKKzL3l/CR7aQ0vUpeh3K0DAJFdiepdoYe7Dlvp5Zf3U+1bn0jX+fOsUbRPnT57lZm3d71hB+shpPsAnBfXFwD8ykpfGB8fx5/9+XcAAMPbDqq+Wlgp2iP1YdW30HTEc2P+06IdBLkal4uHHxlirAnCrYbiZwfmjyIfqunK8uwz+3L5uV1HpB9xEITuVisQmXxJyP5Ocz/9PTfnwID7zZVAv7hgd02VUHUtfXqyaD/1m7/9cdebCXzuwjYR/QERHSOiYwsLi5/37Tw2COvZkS4C2COud3c+U2DmFwC8AAD3T01xzlUAQBqOqXFJPFS0s1DvSEEsdqRlR4yc3VDj4ti1m6zf2kS81Y3IvT+Gw6KVuG09CPWbury0XLRD0RfLGwNotRI3R5CoPs5bYn79HlcqbldO00x8R6+xLZ521m92vLEx91wHanWxDr295uKaBvT6s0X9/HvBenakowAOENE+IqoA+CaAH6xjPo+7GLe9IzFzSkR/BOA/AYQAXmTm90tbmcddhfWwNjDzDwH8sKS1eNzFWBchrRUERsApACAzMkxGuWg3VF+17pY5fv9E0Q7mrqtxw0tOfmo1mnr+4WrRzke3FO16RWtON9cHAIHR/FpNJ99kuVtvtaoFLWlRsKp6N/Xc3i9N3DpyIyNJzbISafmmVquJYUIOgpbVcmSibSScFU0Wnw1/ROJRCjwheZSCvrI2RogUbZU0QEX15aHbv5us1e5QXA8JfX1kUG/r+fGjRbt1VdusJh85VLRpxrG5Jg2pccOh29YXlrV5oSpYxQC7ewfjxlwh1H+j4aM56O4dJZrthYm495BjowNzc2pctOfhor20ZVT15akTC7LAzVfN9fMmwXKDTPeF2dr3F78jeZQCT0gepcATkkcp6KuM1Eabb5NQswEgYCdXZKk5txCCBgnZpEF1NSzOnbxD23aovqUFJ3Mk504V7ZRqalzuRBjciM3hqNDDK4lbY+u8lumQuHEErbs3hBkibOi+yC0RzZ3udy5fuqbG1ckdxtPoNtUnzRKJOAaJA63S5+LcJQz074zsQXYP8DuSRynwhORRCvqr/jOQdRzT8kxv6yxpOtdba0uwwSxy3xtdMCfr253Vu7bjftWXslChK+5n87adatxyLHyJLn2q+iBO/G9UHUvkiXE1LM7db2kY36GhumO/rYUl1dcUpoeo5lTy8Ia29Efjjm1TrJ9jJvyM6oKbhYbFpuRYJwXajNI+Ol0b/I7kUQo8IXmUgv5rbZ3tNrPuqZKdGfLOhJ92TK49cOa0Gtd46/WinX5ZH9pCuJoyDxbtimGPDTh2Mzw9q/pC4bqaDwnfcdaW4Sxxc9bHt6i++KJgl4va+h5PCC30vBsXjWjLeWPmXbemQd2XH3RW74ZwlAtIs7ZKKthoanzf7SFxD/A7kkcp8ITkUQo8IXmUgv46thEhDtuqZmBUTGkOyI1lNRL0PnzdncinFz5R40ZiJ8MsfHJJ9bWq7pSc4azLdOmKGje0S6jnIzZuzqnhtUUng1VmF9S4hnAiS69Oq75Kw5mv03l9qj9wbaRoJ8tOhuHaA2rc7DkXBVapaRmpPunMHqGw0rOxXjeFJ0NKmgxat3jSrQ6/I3mUAk9IHqWgr6wtIMJApb3fcmisqblQ13PjyyyuF2NH+4uPf1GNG4m+VLSXFjS7SUIZxyV+dktv+XHN8YMbWUv1BcKXORHOX3Fg4t8qIvwcGsvClLG0qNc4JO7dEHMMDGv2tbXuYtcy47O9WBPXwkpfS/SekYrfYh43ktvIB+F3JI9S4AnJoxR4QvIoBf2VkYIAQ0PtU/O0qo8VkszF1YO03JIKdZQq7tS9NqEd3+dvuOONmTl9/EDi5L615NTzilV9Z90cqTkrGKg4+WNeHOlUY/MYA3dtM4c0l6QsqCWouWXn5dASwwYjvY76bpdyIbSauozpl/uEDV2DCr5TffltnJGsuiMR0YtEdIWIfiE+20pEPyKi053/x1aaw2PzoxfW9k8AnjGffRfAj5n5AIAfd6497mGsytqY+TUimjIfPwvgqU77JQA/AfCd1eYiIkQd9b1WH1R9iyLcOoo0fWdiu47EKXbAWj3P4a4p1D7hkVDRJUNJWtq5rCZS1ESBfjxxJFLZiPmyVN9LhounxqEsrgm1O9N6d0WYNqRzXJxqFthimYlNz1/NBJvKxLpsVjbxgd1Nbs3utjpuV9ieYOabtv9LACZWGuyx+bFurY3bWRK6WrBkxrb5+dluwzzuctyu1naZiCaZeZqIJgFc6TZQZmw7cPAQVzr5CitVfetc+BrX4qrqS8lt0QvzIiOIyahWHd1atCeGdKiS9NbSWTr0Nh6Kdysk/Z5Vot4eF4sDaMvaMmFhZ6MdBeK6IhmwWUczSLt1IRIabgaZuFX/TsrdbwkNJwttnHkPuN0d6QcAvtVpfwvAv9/mPB6bBL2o//8C4GcADhHRBSL6NoDnATxNRKcB/Ebn2uMeRi9a23Ndur5W8lo87mL0OWMbEHUcrELSqntVeAPMXtEhytcWnXPYzPSFoj1W1/Fkjzx8pGjHVR2KLR25EqEWByaGTspIQdA9o5qUOWxWtkyZKKze3T2tfCDjy9T8JrRbzBGQlhPlHHHo5M7YavQy1sLImlnQP/Xfw0PBE5JHKeh7XNtNlhCZ7TQXbGPBOKXNzDj/69nrLif8qXd/rsZ98M7Pivb+/Q+rvqn9h4v22DZhPzXbeJYLazDr90yODJUzm54jirqXiciFei7rqth5QjGHNdJJVrpSXRJlhmDrfy7uStoy32jp617gdySPUuAJyaMUeELyKAUbkLGtDSkDAEC16o5FHjr0kOrbf/i+or204OSl948fV+PePvZG0X79NV0d6uSJwp0KBw8/VrQPHDqsxm0Zc7H6lYp+PGHYTS5aIaO6kXAS4eiWpzrvgIT0DMiMCSFXRzy9gayMJMwGgfFySHPv/O+xQfCE5FEK+szauFB/AxMLxqKemrUoh8LqvWXc+Ss/+ZROOLp//76i/dP//onqO3fOmQ1uvO0cz6xry5FHXazcnj17VF8kKk9mop5aZkKcc2FCuKVMqWAxtpSqtBSQtKKb911lADL1UqQ5QK3rFvXffS83rNOy0l7gdySPUuAJyaMU9Jm1EajD0gITBhREjt3EoT0EFZZioSEFsQ5pOnDw0aKdp/odmZ7+ftG+ftVlMTnd1BlBLl/8sGg/eEBrj4e/4ObfMTFZtCNTzzRN3LoS488ty4uxOXClboel5tB2JZ9qln1CfLBTs+SPt5T7sslJV4ffkTxKgSckj1LgCcmjFPTdsn0zNUxo+HIoVOGK9QWTpgLB29m8B7JM+u49U6pvaspdH73sHOVSk9F15oozB8xc1RnhTp502WT37dtftB988IAaNzHhLPH1ug4rh0iU3jApdbKWqB0iMtLaE35p2baH/0zdwq2NqUHFxmmEfYxr8/BQ8ITkUQr6nIwUCDtbb2i3YKkmkznMlI5c6oDU6rQiQ0hVx8bV6y7Rp1KzDYuVbMSWAlu47sL33r4qDo/fOarGbR13OTV27tTW8Z2TU2KNmu2NjzuTwvYJVyOFTOBZLkwIqcl2IjOoKMu2eVQkQsLZ1oXxyUg9NgqekDxKgSckj1LQX/WfGcQ3ZSTTJWQmYs33lVMWdZdvpMq8bDLGXrrkVP7paSffzM/pY5ZYOK/Vh3TqnSEhdw1G7nuZceK/KGLvTn90VvU1Gv9VtFNTFn18266ifeSIC144sF/LWdu3O6+HEVOKdKDmZEGZmB5G7knlkk0Cgdbnof4T0R4iepWIThDR+0T0x53PfdY2jwK9sLYUwJ8y88MAvgLgD4noYfisbR4CvcT+TwOY7rQXiOgkgPtwO1nbCEAnhio3fsEsKmvbJKBCUwWFwuJrtmtZbvOd42+pvsXrM0V7q8gWd2F6Ro0bGXWsIY60CSFPXcLUkWERgxbrU/xK5OaPB4ZUXxi4WirXZrXnwccfnSjac7OOPR4/pv9MlYpb1549uk7Jrsm9RXtyl2OJuyb2qnFDw46BUM3E7wWmynkPWJOw3UkB+EsA3oTP2uYh0DMhEdEwgO8D+BNmnpd9K2Vtkxnb5swb6LF50BMhEVGMNhH9MzP/W+fjy51sbVgpaxszv8DMjzPz46NbRj9riMcmwKoyErWD1/8RwElm/lvRdTNr2/PoMWsbc44kbXtCypN6AKDULSUwsehSEmK4PmtCWBQqf2NZ17Q9dNDFr/3yY48X7bfe/YUa9+Yxd9wxt6gz3mapS8WzY9Kp6k8++aQaF1WdjPHRxzq+7o03XH6CLxzW+QlGRt2LdvmSM1FcvnxZjUsSt46dwlMTAPbtm3LrFUcfNxY0N5BBCXGk5bhGq3u8XTf0Ykf6NQC/B+A9IvqfzmffQ5uAXulkcPsYwO+s+e4emwa9aG0/RfeATp+1zQPABji23TxdvzXeyzWtE7xMsppT9yTktUGndv/6U5rGZWyYjE87+NgTatwjX/py0TYVURGIG24bd9niHnjgQTUuEnVWpg48qvp27T3k1lvTWeVGBWuTXgjXrn2qxkmWtWP7TtUnHelCkYU3yLU4nIn6eIl53jn5kG2PDYInJI9S0FfWluc5lpfb1uFwXh+qRizKYJkaI6lIPJ6mwnHLHJbKbGjWlznNZJJz9/60jGPYrr0u7NvW6CRxHYhsbuf+TydPXW6JA2gTUl0fdfPnxjJ/fc6tMRJsaWhkSo2D8Le+Nresuj657NYiTw8GAn04Lc63QcOaDBrXG1gr/I7kUQo8IXmUAk9IHqWgrzLS4sICXnvtVQDAXPqu6hsSJ+ZZU1uUEyFLJKKEepZpC6xUmROTDS0TspBUixtNE1uWSed/faofixj/rVucQ9nw8BY1TpZyt8nPZJZbm/FWJ4SXieO1fBMJp7rAOKXJ7yl/QOPPT6LcKw3qOYKG9ojoBX5H8igFnpA8SkGf49oCVOM2C0tC7Q8divphAwMjqi8XKXBkrJbN7Cat5TJr2s17F+OET3jO5vBYWK/ZZC4jkYZGWg0CaHNFJMqgNpv68FiZA4xlXoaPJ4k4nDb102S2u5XYo0TL+LCzmL+hOTgGQm1J7wV+R/IoBZ6QPEqBJySPUtD3uLa849i2eOO66hoUtcVsUtVM0LtMpddKtJkgTYVpP9AyEgtZSDqG5alJVi7U/yw18XUk1XpRM828jsxOLmo29BGGPNbJbabZvFuOA70OKQveUqtWtOX8YaJlwVTISEtbdP3fnXuGsVb4HcmjFHhC8igFfWVtrWQZ58+/DwA4c0mrzIMiQ21k0slkasN2Gc8yo+Lnudu+40rQtU96AmTWPVmwCqt2ywTrwQqpcULhOGdP+FstwVZNOhnp0Cez/hLpLLPyVN+WKVXWbPF5AvNMx5z5ZdcRXY9lVLtw9wS/I3mUAk9IHqWgz1obIeC2dhbbw0xh2bbJN6W2hEBmLdHbtSxvGpqE8JIDBCzuZZKmq+rWxulNvnaSZdmSYZlYb2LWmIu6KmycwuXPZsk6bXYWpbWZWiSRu05Fu75LB0LvPnKwaEekQ7RnT72HtcLvSB6lwBOSRynwhORRCvpu2U47Yc9ZS1t8E5FKJU21aQBCfpJVM3MjOwTSsc3IN7mQVaTanZt4r0rs1mHEDzWHVNXtuExaka2KL9ZoS9ZL+YyELAjjoRCLG9qyocmgM6OMHXIpb+6b0lnfGiIM/OwHOgVQNVnEWtFLxrYqEf2ciN7pZGz7y87n+4joTSI6Q0T/SkSV1eby2LzohbU1AXyVmb8I4DEAzxDRVwD8DYC/Y+b9AK4D+Pbnt0yPOx29xP4zgJt7Xdz5xwC+CuB3O5+/BOAvAPzDipMRgM5uHsbGIUvYA+LI8hRxLeLJQph6Z3LdZBOaut4BkWFtbESnvpRh2VlmrMG5dDYT8w3ozVg6qNnaatJskBn2u7DgWIo0V0iTAQDMCwfsaJte/96DTq0fG3N+5Rc/OKPGfXrmnJvDnBBUzd+mF/SaHynsZCK5AuBHAP4XwCxzITRcQDsdoMc9ip4IiZkzZn4MwG4ATwB4aJWvFJAZ2xrNtefd8bg7sCb1n5lnAbwK4FcBbCEqzMe7AVzs8p0iY1t1YO0lLj3uDvSSsW07gISZZ4moBuBptAXtVwF8A8DL6DFjGxgIb9aabZnMtWiKYXrnCsWJv2xbpy7p8H9rKXQRGCBi3paWtFO8jtW3J+vCbJA4+aaRWFnts+PTOp1iQt2Vyd8t12vMBPUdTi7afnCf6gvEmj88+mbRbl7RDv2hcLALjWeedbjrBb3YkSYBvETtEIoAwCvM/B9EdALAy0T0VwDeRjs9oMc9il60tnfRTolsPz+Ltrzk4QGyJ+2f682IZtDON7kNwNW+3fjOxp3+LO5n5u2rDeorIRU3JTrGzI+vPnLzY7M8C39o61EKPCF5lIKNIqQXNui+dyI2xbPYEBnJY/PBszaPUtBXQiKiZ4jow44P0z1XKHAzV+PsG2vrWMZPoX3EcgHAUQDPMfOJFb+4idCpIjXJzMeJqA7gLQBfB/D7AK4x8/OdF2yMmVcuoniHoZ870hMAzjDzWWZuoX1G92wf77/hYOZpZj7eaS8AkNU4X+oMewlt4rqr0E9Cug/AeXF9T/swbbZqnF7Y3gDcbjXOOxn9JKSLAGQoQ1cfps2M9VTjvJPRT0I6CuBAJ/qkAuCbaFehvGfQQzVOoFffrjsM/T79/y0Af492CMCLzPzXfbv5HQAiehLA6wDeg/Oa+x7actIrAPaiU42Tma995iR3KLxl26MUeGHboxR4QvIoBZ6QPEqBJySPUuAJyaMUeELyKAWekDxKgSckj1Lw/0+wFLljZLdHAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "airplane : 0.48062932\n", "automobile : 0.003105312\n", "bird : 0.2798591\n", "cat : 0.0024371676\n", "deer : 0.03524343\n", "dog : 8.478916e-05\n", "frog : 0.0015711904\n", "horse : 0.00014148484\n", "ship : 0.19596696\n", "truck : 0.0009613181\n" ] } ], "source": [ "show_predicted_probability(x_test, y_test, predictions, predicted_probability, 3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 9. 显示混淆矩阵" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 9.1 查看预测结果的形状" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "predictons shape: (10000,)\n" ] } ], "source": [ "print('predictons shape:', predictions.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 9.2 查看测试 label 真实值的形状" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "y_test shape: (10000, 1)\n", "[[3]\n", " [8]\n", " [8]\n", " ...\n", " [5]\n", " [1]\n", " [7]]\n" ] } ], "source": [ "print('y_test shape:', y_test.shape)\n", "print(y_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 9.3 将测试 label 真实值转换为一维数据" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([3, 8, 8, ..., 5, 1, 7])" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_test.reshape(-1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 9.4 建立混淆矩阵" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
predict0123456789
label
076310542326421135333
11679513179112262091
25526175611758592475
316360567104154701655
4102584278715532562
5214520991587352523
6424155488838301
71603647111401273332
847322821181312180622
9247115451311201525761
\n", "
" ], "text/plain": [ "predict 0 1 2 3 4 5 6 7 8 9\n", "label \n", "0 763 10 54 23 26 4 21 13 53 33\n", "1 16 795 13 17 9 11 22 6 20 91\n", "2 55 2 617 56 117 58 59 24 7 5\n", "3 16 3 60 567 104 154 70 16 5 5\n", "4 10 2 58 42 787 15 53 25 6 2\n", "5 2 1 45 209 91 587 35 25 2 3\n", "6 4 2 41 55 48 8 838 3 0 1\n", "7 16 0 36 47 111 40 12 733 3 2\n", "8 47 32 28 21 18 13 12 1 806 22\n", "9 24 71 15 45 13 11 20 15 25 761" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.crosstab(y_test.reshape(-1), predictions, rownames=['label'], colnames=['predict'])" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{0: 'airplane', 1: 'automobile', 2: 'bird', 3: 'cat', 4: 'deer', 5: 'dog', 6: 'frog', 7: 'horse', 8: 'ship', 9: 'truck'}\n" ] } ], "source": [ "print(label_dict)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 10. 保存模型" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 10.1 保存为 json" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "model_json = model.to_json()\n", "with open('save_model/model_cifar10_cnn.json', 'w') as json_file:\n", " json_file.write(model_json)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 10.2 保存为 yaml" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "model_yaml = model.to_yaml()\n", "with open('save_model/model_cifar10_cnn.yaml', 'w') as yaml_file:\n", " yaml_file.write(model_yaml)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 10.3 保存为 h5" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "模型已保存到: save_model/model_cifar10_cnn.h5\n" ] } ], "source": [ "model.save_weights('save_model/model_cifar10_cnn.h5', save_format='h5')\n", "print('模型已保存到:', 'save_model/model_cifar10_cnn.h5')" ] } ], "metadata": { "kernelspec": { "display_name": "tensorflow-keras-practice", "language": "python", "name": "tensorflow-keras-practice" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }