diff --git a/__pycache__/faceAnalysis.cpython-38.pyc b/__pycache__/faceAnalysis.cpython-38.pyc
index be9d98db7d3ca728b47a04dfbe0e50c2cc4334fd..9e98b6702b934e5048221bfedb7773e89133c1ea 100644
Binary files a/__pycache__/faceAnalysis.cpython-38.pyc and b/__pycache__/faceAnalysis.cpython-38.pyc differ
diff --git a/__pycache__/utils.cpython-38.pyc b/__pycache__/utils.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..9ae17aa26d2f6d16163380aa3638854330503071
Binary files /dev/null and b/__pycache__/utils.cpython-38.pyc differ
diff --git a/buildEmotionModelFromFer2013.ipynb b/buildEmotionModelFromFer2013.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..0a910ec7a3cac5f029351fe158a80932962b50fd
--- /dev/null
+++ b/buildEmotionModelFromFer2013.ipynb
@@ -0,0 +1 @@
+{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"buildEmotionModelFromFer2013.ipynb","provenance":[],"collapsed_sections":[],"mount_file_id":"12gj_RNUkhCcpPsrHCcnjM-aFz0bHG8Nk","authorship_tag":"ABX9TyP/j4/kXn/SBJc9poEkTWTi"},"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"language_info":{"name":"python","version":"3.8.5"}},"cells":[{"cell_type":"code","metadata":{"id":"1321rUeQzURj","cellView":"form","executionInfo":{"status":"ok","timestamp":1616663382789,"user_tz":-60,"elapsed":3339,"user":{"displayName":"Boulet Timothé","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GiayvINTDL_0Iuf52iuumxhg4psHVMYz59ow2vJ=s64","userId":"06174172927805952140"}}},"source":["#@title Imports\n","import tensorflow as tf\n","from tensorflow import keras\n","from tensorflow.keras import datasets, layers, models, losses\n","import tensorflow_datasets as tfds\n","#from google.colab import files\n","\n","from matplotlib import image\n","import os\n","import numpy as np\n","import matplotlib.pyplot as plt\n","import matplotlib\n","import random as rd\n","import cv2\n","import csv"],"execution_count":19,"outputs":[]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"-6y_a77Xmx3X","executionInfo":{"status":"ok","timestamp":1616662751659,"user_tz":-60,"elapsed":5015,"user":{"displayName":"Boulet Timothé","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GiayvINTDL_0Iuf52iuumxhg4psHVMYz59ow2vJ=s64","userId":"06174172927805952140"}},"outputId":"fa99ea9f-0f75-42a2-fba5-c09606d4198d"},"source":["#from google.colab import drive\n","#drive.mount('/content/drive')"],"execution_count":15,"outputs":[]},{"cell_type":"code","metadata":{"id":"a4LizvrK0fes","cellView":"form","executionInfo":{"status":"ok","timestamp":1616664903890,"user_tz":-60,"elapsed":1577,"user":{"displayName":"Boulet Timothé","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GiayvINTDL_0Iuf52iuumxhg4psHVMYz59ow2vJ=s64","userId":"06174172927805952140"}}},"source":["#@title Hyperparamètres\n","classes = [\"Angry\", \"Disgust\", \"Fear\", \"Happy\", \"Sad\", \"Suprise\", \"Neutral\"]\n","Na = len(classes)\n","N = len(X)\n","maxNbrImagesForEachClasses = float('inf')\n","h = 48\n","l = 48\n","p = 1\n","input_shape = (h, l, p)\n","\n","epochs = 5\n","batch_size = 128\n","validation_size = 0.1"],"execution_count":22,"outputs":[]},{"cell_type":"code","metadata":{"cellView":"form","id":"J26HwuSTpVQK","executionInfo":{"status":"ok","timestamp":1616663639205,"user_tz":-60,"elapsed":726,"user":{"displayName":"Boulet Timothé","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GiayvINTDL_0Iuf52iuumxhg4psHVMYz59ow2vJ=s64","userId":"06174172927805952140"}}},"source":["#@title Fonction utils\n","def afficher(image):\n","  if len(image.shape) == 3:\n","    if image.shape[2] == 3: # (h,l,3)\n","      plt.imshow(image)\n","    elif image.shape[2] == 1: # (h,l,1)->(h,l)\n","      image2 = image\n","      plt.imshow(tf.squeeze(image))\n","  elif len(image.shape)== 2:  # (h,l)\n","    plt.imshow(image)\n","\n","def predir():\n","  pass\n","\n","def normAndResize(image):\n","  #For an array image of shape (a,b,c) or (a,b), transform it into (h,l,p). Also normalize it.\n","\n","  image = cv2.resize(image, dsize=(h,l), interpolation=cv2.INTER_CUBIC) #resize for h and l                                       #\n","  if len(image.shape) == 3 and p==1 and image.shape[2] != 1 : #if we want (h,l,3) -> (h,l,1) , we first transform it in to (h,l) (grey the image)\n","    image = image.mean(2)\n","  image = np.reshape(image, (h,l,p))                                    #restore third dimension\n","  image = image.astype(\"float32\")\n","  image = image/255                                                     #normalisation\n","\n","  return image"],"execution_count":32,"outputs":[]},{"cell_type":"code","metadata":{"id":"33votd1Y0fcg","colab":{"base_uri":"https://localhost:8080/"},"cellView":"form","executionInfo":{"status":"ok","timestamp":1616664902296,"user_tz":-60,"elapsed":102287,"user":{"displayName":"Boulet Timothé","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GiayvINTDL_0Iuf52iuumxhg4psHVMYz59ow2vJ=s64","userId":"06174172927805952140"}},"outputId":"ec40cf93-99e9-458f-b24b-a9d45934f7db"},"source":["#@title Load data as array\n","nbrImages = 35887\n","maxNbrImages = 10\n","emotions = [\"Angry\", \"Disgust\", \"Fear\", \"Happy\", \"Sad\", \"Suprise\", \"Neutral\"]\n","\n","def traitement(a,b,c):  #For testing\n","\tpass\n","\t# arr = strToArray(b)\n","\t# print(a)\n","\t# plt.imshow(arr)\n","\t# plt.show()\n","\t# pass\n","\n","def strToArray(string):  #Fer2013 provides images as string so it needs to be transformed\n","\tA = []\n","\tlenght = len(string)\n","\ti=0\n","\tnbr = \"\"\n","\n","\twhile i<lenght:\n","\t\tcar = string[i]\n","\n","\t\tif car != \" \":\n","\t\t\tnbr += car\n","\t\telse:\n","\t\t\tA.append(int(nbr))\n","\t\t\tnbr = \"\"\n","\t\ti+=1\n","\tA.append(int(nbr))\n","\t\n","\tA = np.array(A)\n","\tA = np.reshape(A, (48, 48))\n","\n","\treturn A\n","\n","\n","\n","#LOAD DATA AS ARRAY\n","X = []\n","Y = []\n","\n","filename = \"/content/drive/MyDrive/Colab Notebooks/facial emotion recognition/fer2013.csv\"\n","filename = \"data/fer2013.csv\"\n","\n","with open(filename,'r',encoding='utf-8') as file:\n","\t\n","\tcsv_reader = csv.reader(file, delimiter=\",\")\n","\tnext(csv_reader)  \t\t\t\t\t\t\t\t#Passe la ligne de titre\n","\t\n","\ti=0\n","\tfor row in csv_reader:\n","\n","\t\ti+=1\n","\t\tif i>maxNbrImages: break\n","\t\t\n","\t\temotionNbr, stringImage, typeImage = row\n","\t\ttraitement(emotionNbr, stringImage, typeImage)\n","\t\timage = normAndResize(strToArray(stringImage))\n","\n","\t\tX.append(image)\n","\t\tY.append(emotionNbr)\n","\n","\t\tprint(f\"Image {i} sur {nbrImages} chargée\", end='\\r')\n","\n","X = np.array(X)\n","Y = np.array(Y)\n","Y = keras.utils.to_categorical(Y)"],"execution_count":24,"outputs":[{"output_type":"stream","name":"stdout","text":[""]}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":108},"cellView":"form","id":"9c7SsmqlpVUT","executionInfo":{"status":"ok","timestamp":1616664903889,"user_tz":-60,"elapsed":1586,"user":{"displayName":"Boulet Timothé","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GiayvINTDL_0Iuf52iuumxhg4psHVMYz59ow2vJ=s64","userId":"06174172927805952140"}},"outputId":"6cd175f5-9d89-42cf-80b8-71d4d8eb82a6"},"source":["#@title Visualisation\n","N=5\n","plt.figure()\n","for i in range(N):\n","    k = rd.randrange(X.shape[0])\n","    plt.subplot(1, N, i+1)\n","    plt.xticks([])\n","    plt.yticks([])\n","    plt.grid(False)\n","    \n","    #plt.imshow(x[k])\n","    afficher(X[k])\n","    plt.title(classes[np.argmax(Y[k])])\n","plt.show()"],"execution_count":25,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 5 Axes>","image/svg+xml":"<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Created with matplotlib (https://matplotlib.org/) -->\n<svg height=\"90.742263pt\" version=\"1.1\" viewBox=\"0 0 352.7 90.742263\" width=\"352.7pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <metadata>\n  <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n   <cc:Work>\n    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n    <dc:date>2021-03-25T11:37:36.406415</dc:date>\n    <dc:format>image/svg+xml</dc:format>\n    <dc:creator>\n     <cc:Agent>\n      <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\n     </cc:Agent>\n    </dc:creator>\n   </cc:Work>\n  </rdf:RDF>\n </metadata>\n <defs>\n  <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n </defs>\n <g id=\"figure_1\">\n  <g id=\"patch_1\">\n   <path d=\"M 0 90.742263 \nL 352.7 90.742263 \nL 352.7 0 \nL 0 0 \nz\n\" style=\"fill:none;\"/>\n  </g>\n  <g id=\"axes_1\">\n   <g id=\"patch_2\">\n    <path d=\"M 10.7 80.042263 \nL 68.424138 80.042263 \nL 68.424138 22.318125 \nL 10.7 22.318125 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#pab695eacba)\">\n    <image height=\"58\" id=\"imagef06a7def3f\" transform=\"scale(1 -1)translate(0 -58)\" width=\"58\" x=\"10.7\" xlink:href=\"data:image/png;base64,\n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\" y=\"-22.042263\"/>\n   </g>\n   <g id=\"matplotlib.axis_1\"/>\n   <g id=\"matplotlib.axis_2\"/>\n   <g id=\"patch_3\">\n    <path d=\"M 10.7 80.042263 \nL 10.7 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_4\">\n    <path d=\"M 68.424138 80.042263 \nL 68.424138 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_5\">\n    <path d=\"M 10.7 80.042263 \nL 68.424138 80.042263 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_6\">\n    <path d=\"M 10.7 22.318125 \nL 68.424138 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"text_1\">\n    <!-- Neutral -->\n    <g transform=\"translate(17.416444 16.318125)scale(0.12 -0.12)\">\n     <defs>\n      <path d=\"M 9.8125 72.90625 \nL 23.09375 72.90625 \nL 55.421875 11.921875 \nL 55.421875 72.90625 \nL 64.984375 72.90625 \nL 64.984375 0 \nL 51.703125 0 \nL 19.390625 60.984375 \nL 19.390625 0 \nL 9.8125 0 \nz\n\" id=\"DejaVuSans-78\"/>\n      <path d=\"M 56.203125 29.59375 \nL 56.203125 25.203125 \nL 14.890625 25.203125 \nQ 15.484375 15.921875 20.484375 11.0625 \nQ 25.484375 6.203125 34.421875 6.203125 \nQ 39.59375 6.203125 44.453125 7.46875 \nQ 49.3125 8.734375 54.109375 11.28125 \nL 54.109375 2.78125 \nQ 49.265625 0.734375 44.1875 -0.34375 \nQ 39.109375 -1.421875 33.890625 -1.421875 \nQ 20.796875 -1.421875 13.15625 6.1875 \nQ 5.515625 13.8125 5.515625 26.8125 \nQ 5.515625 40.234375 12.765625 48.109375 \nQ 20.015625 56 32.328125 56 \nQ 43.359375 56 49.78125 48.890625 \nQ 56.203125 41.796875 56.203125 29.59375 \nz\nM 47.21875 32.234375 \nQ 47.125 39.59375 43.09375 43.984375 \nQ 39.0625 48.390625 32.421875 48.390625 \nQ 24.90625 48.390625 20.390625 44.140625 \nQ 15.875 39.890625 15.1875 32.171875 \nz\n\" id=\"DejaVuSans-101\"/>\n      <path d=\"M 8.5 21.578125 \nL 8.5 54.6875 \nL 17.484375 54.6875 \nL 17.484375 21.921875 \nQ 17.484375 14.15625 20.5 10.265625 \nQ 23.53125 6.390625 29.59375 6.390625 \nQ 36.859375 6.390625 41.078125 11.03125 \nQ 45.3125 15.671875 45.3125 23.6875 \nL 45.3125 54.6875 \nL 54.296875 54.6875 \nL 54.296875 0 \nL 45.3125 0 \nL 45.3125 8.40625 \nQ 42.046875 3.421875 37.71875 1 \nQ 33.40625 -1.421875 27.6875 -1.421875 \nQ 18.265625 -1.421875 13.375 4.4375 \nQ 8.5 10.296875 8.5 21.578125 \nz\nM 31.109375 56 \nz\n\" id=\"DejaVuSans-117\"/>\n      <path d=\"M 18.3125 70.21875 \nL 18.3125 54.6875 \nL 36.8125 54.6875 \nL 36.8125 47.703125 \nL 18.3125 47.703125 \nL 18.3125 18.015625 \nQ 18.3125 11.328125 20.140625 9.421875 \nQ 21.96875 7.515625 27.59375 7.515625 \nL 36.8125 7.515625 \nL 36.8125 0 \nL 27.59375 0 \nQ 17.1875 0 13.234375 3.875 \nQ 9.28125 7.765625 9.28125 18.015625 \nL 9.28125 47.703125 \nL 2.6875 47.703125 \nL 2.6875 54.6875 \nL 9.28125 54.6875 \nL 9.28125 70.21875 \nz\n\" id=\"DejaVuSans-116\"/>\n      <path d=\"M 41.109375 46.296875 \nQ 39.59375 47.171875 37.8125 47.578125 \nQ 36.03125 48 33.890625 48 \nQ 26.265625 48 22.1875 43.046875 \nQ 18.109375 38.09375 18.109375 28.8125 \nL 18.109375 0 \nL 9.078125 0 \nL 9.078125 54.6875 \nL 18.109375 54.6875 \nL 18.109375 46.1875 \nQ 20.953125 51.171875 25.484375 53.578125 \nQ 30.03125 56 36.53125 56 \nQ 37.453125 56 38.578125 55.875 \nQ 39.703125 55.765625 41.0625 55.515625 \nz\n\" id=\"DejaVuSans-114\"/>\n      <path d=\"M 34.28125 27.484375 \nQ 23.390625 27.484375 19.1875 25 \nQ 14.984375 22.515625 14.984375 16.5 \nQ 14.984375 11.71875 18.140625 8.90625 \nQ 21.296875 6.109375 26.703125 6.109375 \nQ 34.1875 6.109375 38.703125 11.40625 \nQ 43.21875 16.703125 43.21875 25.484375 \nL 43.21875 27.484375 \nz\nM 52.203125 31.203125 \nL 52.203125 0 \nL 43.21875 0 \nL 43.21875 8.296875 \nQ 40.140625 3.328125 35.546875 0.953125 \nQ 30.953125 -1.421875 24.3125 -1.421875 \nQ 15.921875 -1.421875 10.953125 3.296875 \nQ 6 8.015625 6 15.921875 \nQ 6 25.140625 12.171875 29.828125 \nQ 18.359375 34.515625 30.609375 34.515625 \nL 43.21875 34.515625 \nL 43.21875 35.40625 \nQ 43.21875 41.609375 39.140625 45 \nQ 35.0625 48.390625 27.6875 48.390625 \nQ 23 48.390625 18.546875 47.265625 \nQ 14.109375 46.140625 10.015625 43.890625 \nL 10.015625 52.203125 \nQ 14.9375 54.109375 19.578125 55.046875 \nQ 24.21875 56 28.609375 56 \nQ 40.484375 56 46.34375 49.84375 \nQ 52.203125 43.703125 52.203125 31.203125 \nz\n\" id=\"DejaVuSans-97\"/>\n      <path d=\"M 9.421875 75.984375 \nL 18.40625 75.984375 \nL 18.40625 0 \nL 9.421875 0 \nz\n\" id=\"DejaVuSans-108\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-78\"/>\n     <use x=\"74.804688\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"136.328125\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"199.707031\" xlink:href=\"#DejaVuSans-116\"/>\n     <use x=\"238.916016\" xlink:href=\"#DejaVuSans-114\"/>\n     <use x=\"280.029297\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"341.308594\" xlink:href=\"#DejaVuSans-108\"/>\n    </g>\n   </g>\n  </g>\n  <g id=\"axes_2\">\n   <g id=\"patch_7\">\n    <path d=\"M 79.968966 80.042263 \nL 137.693103 80.042263 \nL 137.693103 22.318125 \nL 79.968966 22.318125 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#p283aca081d)\">\n    <image height=\"58\" id=\"imageaf94f0259b\" transform=\"scale(1 -1)translate(0 -58)\" width=\"58\" x=\"79.968966\" xlink:href=\"data:image/png;base64,\niVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAYAAADhu0ooAAAZw0lEQVR4nG2bya9l13Xef2vvfbrbvLZetSxWkSyKsjpbhmTJVuzATpQo8CCQ4QQBAk8yz1+QfyF/QQbJLPAkRhAjmWgUBBKlEJIsmrTExkVWsapY9fp323PO7jLY55x7i84FLt677Ttrr7W/9X3f2k++/Rf/MdqRAGBqKGYevQ4UZzVqbcE6CAGxDpwnVgWxLIiFxlcZ7X7Osz/UyN0VZdWyXhXEKPzxgw9xUbGbrdk3K6a6ZqQaRqphrFo8QogKgEw8Y9UA4BF897yWgCaiCAD8aPY1/tcnX8H9Zof20EMAGTvyyrI3WfPb156iJbL2GT/+5HX0b8bsfRSIAkY8mDUEA1HAFQrx4EsDMaJiBBuJeYYA4jxytYDMoBYGc2m4f1Fy8s0xV1/PmRwtqXLL48U+R9UCgIBgo2YVCjwKGw1a0sX3QdQxQxEIpCB9TI/s1nvul6d8984jfib3wGqUioTfTLDjHP+lhjYYPrw84vynN9l/GDFrjysVIQMjESRGlBMkRBDwhRByjfiIuICIELWACGQmZVlSFairBfnpBbdm+4yf73L5YI+Te46r/YrdO2t0H0jIWJFThAyrGzLxaAJKIgEHAVQXPECICo90jzQhKsaq4cuTzzGveC7aEX/z5A5+HAkTj/OK//P3D5j8rOLmBy1RCXaqiRrMOmL6L5YQkQBECEaIRohGEQqDqO4CSoi5QYwCHxHriG1LXK2JH1yyd7zH+OlNLr804vLLYxbXC9QoYoPGxnQvlMNGTaksSgKZeKxovCgycWiJQ7A+KjShqwKNj4qpqvna+BmnxYRf+FcJYw9BuPp0j52PFTffniHWs35lgs9APJgmYqJKwSEQFUhMJRwFohECBqU80nii1iBpAZRzSGvTR41BRAiXV8hPT7n2wS7Z8k3OvzHC7mhCFNYhxwZNqwxryai0JRM/3Pss95nuS9sjBBR1yPB9WSPYoLvVEMaPDIfvO8YfHENmaG5NsWONRNB1gMhWoEBUgleQrcLwGA3RCSpGohbEeogR2gRUYgwxRDAGyQy69MR1zfR//A0ffP8buKPPWMcMFzSVtlS6pQmG02aSAFB5Km2ZhJxMPKWyjFRLJi5tDYlDNfQlfe7GPF4foLSneFJx7V3L+NcvCLtj7H6FG2mUjSiXkgek0g2m3wvd/siEqISoQfymlMSFVLIhID6kgAExGvKMuKrT4xyEDCk8Y9PwSn5BoSyltMN3zUPFsd3hpJ1y3o5wRlMoy0IKRrplomtKcSgCNuphz658wbkd83S5izur2DlOoBMmI/w4xxcKs/S4scbnAjEFa6JIKtutWF0hFCFuwMgHogiqsal8h8gFvAelIEQkz4i1B2Nwb93luw8+4avVE3Z0jSKQi09ZInCdOYd6wb7Z5dP6GuftiImR1AYARUTriNpqQzYYViFn4XI+/egGR+8odh41mHlDLA2+MmRziy9NymS/BZVgemDrX3gpCCISE1ClFfDQBxpjuquuNpSA9Uie4+5d5+EPS/784AP29IpSLLn4l1AVIBNHJp4QFW0wLFxOpe1QsqWyZN2eBLBRs/YZj+cHXH9bMzq2mFkDAUKpUS6gbMBNtgIRIRgw/Z7eBiMklbOEfhUiEmPKbB8kQOjK15i0CFlGe/+I579f8c/+8S94I38x9MxMHLoDA4/gUZRiOdQLfC7MfcnaH+K6C1ISqUOG0iGVbZfVuSv57MU+b/3iHHswggAYRdSCXtq05WSTtKhSRlU03ZORob3Evpdm3YfCVlBA1JowrYj7O8Rur8amob1/xOMflHzrz/6WH+y9Sx0z2g5ENHELVWNCViKZOPbUiteKY16tzjHK44LGBU0TDE3IOvIgBISLZkT2sEIu56BSkMEoEEHN69QOI0QRgpYueRHTI+5QVQI+h6iFKC+DVMwM6mrB8ffvcvZHLXsHC9RfP+Dov77L8vtf5fm/qfnhW2/zpfI5q1BQKksdspRFUZTKkuOHwPufY9VwaBZoiYxUy6mdsPQFZ3YMMPReGzWn6zGTx2nLqMbjS4P4gF60oARfqK1MbmJLgcYv9E8lBBOJBtCy2bMh4G/us/rTGf/uzZ/jo+K//elv8/evf4PXv/OYH+4/5UY2w0ZNHTNqnzFSTeqDMSMEhVZrNJEW/RL7KcWyp5foPDDRNad2ypkdc2bH3C6u0BJY+IJZXbBzGUArou5Ktg6oVUMsM6JRA8PbrlTTE5Ft1EWBHQmmluFxx+RY3al4Ze8ZE13zebvHTtnw+h885Gu7z9g1KwqViADAC7vLKuRdX0zPjVTD/fyUUuxL1aKJZHhGqqGNmmAUWgLPm10WvqBQLpVzk5Et/Ka1+QguQAjEPBG9VLJp2/XxmShd4H2garNH/8FNa1QT+eRnd/kvX5ny9euf8+r0grcmL7iWzcnEk3eN/oXd5ZezuxzkK6amRnf9MBPPuZtwI7viyMwG1QIM7Wes2oHcr0zOwqfeetxMaJc5zZ7B3L/WJWgDmCFTA/jAJkggtZcepYa6FhJZCHHIJDESM0N+2XL/r1ueLvb5/E+W/JPrHzDSDYd6MbSPua94VB/yYjXlbnXBjWzWPV+iJfCs2WPhC1Z5wZGZsadXZKoZBECpWmxMdHE/WzJzFQBPF7uoS8PytmJ9rWL/g4btjhVyvSE7fdl2d9OBIkFLyqZKQaoGlO1RViXtJ4GohfyTY0afj7hYVdwrTgG4nV1go+bSjzn3Yx7OD/nW4WN+sPsur5srtMAyKEoJ/KS+x6/Xt/n16hafqkPeGj3nq8WTFKRY2o70t1ETlDA2DTZoTi6mFBeK9Y2IPXBMnhmKS4uEAErhC5XYEClZMnSSTr2EHnBCeiHqLqvbqKtSW9GNZ/X1O5x+2/PvX38HGzV3szMATtwOf/n893jv6S2+cuc5/2r//3Lipzx0u8PX/G4+588nz1GTY95vHT9eP+Cd2Wvku47X82M0nQgPUEtG6LivjZqyarEyZu83cPIHsD5QVC880jpileNLRciEbgd0pd1llE6PRhEkxo4bdjUe4hY5AIygVi3n/2jK/itnKAl8XN/g3CWCfmonKAnsTlc8ne3wHx7+GQD7xSoRAJexdDmFdjyYnvBqcc5E1zwYHfOfH32PP7rxMf90+j4j1ZB3PbeOWWJI0XM4XvG03GPvwxWLu2O0jajWQ4jE3Ax9X4WY+Lt0idumgCn87gUB3UaUixv6p9OXxEyzuBt4MF7yWX3ApR0xMyUAN/MZv3/wkO/sJ/040XXaf+LxUViFgis/4tyN0QRe2B1ObVqkUdYycyXHfspe1AMYAd3nFYflkk8PPG5kKM6gOnVI60CrDogSydE2VWUUQZF0tonbJbpFA806Iq4j9TaASlDudgvkRsNRtaAJGUZ51j7n8/UOO3s1r2VXTPU6OQqhGIIMJMKwp0+5l59Sx4xlKAhRJQF+6Fn5nGd2n5Uuhr3aEw4tgVI7yBNOFFeBbOkQH4kqBZmqTwYuEAU6foKJSja8kPS7silQZVOQYj1oQVxg/saUo4MTbpVXidIpz1k74dlsh53sGiOVpNi5H/Px6joT3eBRhCgUyvFqcc7rxQsOWFAq27Udwxv5MW8vH3Dc7tCYjImuCbFzFjrDTEkAiYiHbBXBb6oNESQkR+GLaowIZijNrczqOmLqgLIe8T7tYQ+0ltk9xTf3TrhfntKEjEKlxr9cF/zq+W0Arh3Med7sctaMub2TWM3Kp374aX3I3JeUynJgFkxVjZbAe+tXuHIVt/KrYbES+U8yrYmGTAK68PgqJ2Qy+FbJ9ZChb4YOTHt6i3TCu39ShbRayoJeB9TaIk0iAKIE8YHlK4Fb5YypWjNWDXt6xVSt+edv/Jr//eQBD68OOcjv8s3JI/7l/i+4qZfUUXPixzx3e9ioOTIzPmpucu4mvIi7nXLJ+ProCVOdKKJHqEPGlR8zDyU2aMamYWeyZnWtQjnQtUucPNNElcw93UZcuWFFsSNAJg4MH2IAFRMImZVF1m3yc0VSL40R9ltGqqVUllIs1/WcA71gZ7fmTnHJ02YPFzdmWB2TZ9Tfzt2EIzNjqmo+aY5Y+4z9bMU3Ro/ZU6uNVxQVcypWoQCSbGuCYadsePRdhzSKnccG07qhQygb0RJxlQxcNypB2c4c26ZK4iFfBqTxiPNJZ8aY7BIfGE+TXXLpx+TiBtpWh4xrZj70PI9iHiqmqh5Ivo/CRNf4zrp8tThDEwZ21Es3JZ19gmKuEqL3ntHN8YxrX1kwMi0///xr3P4J6FmbslmHYftFIXH0nutK3DxQPqLbrmzb5NDjXMqkVoSDKU1jmLmSXZMTRLj0IwBmoSJE6VwDN2jRpFBSq8jFs6NnyXHQfnAfStkIgV7N9Fo1Ez9kGaDSllujK94oj/npN15j/WHJZNYibUC7iM/VxtXsdiUCRlwcGqtq6UCoc/mcJzqfbJJRyerVKfGR5tGdA24WV5RiWXbuexOyoVx9VJtxggTymKgdmiGoXpd6hBaN6rLZSzcbzeDr9hYoQOMNT+o9JrrhW68+5oPDLzN5rNCrlpgblDcD0g4UkOQ24jNBtxFTx8FKkdaC98S6Ru3tMvvyAa4U7v6o5cO3jvid3Sfs6jXzUA5BFsoOKNxf8PZ8xUbDc7eHj0IuHs8mkC/OXgLJPqljlvqs8mQSWLmcR5f7PB3v8a3Dx/ztTpoiqFX6vLh8wBzxHetTnWekfMQ0CYSCEfTaQWeRiFbESUW9rzh4b0E0ivnxhPeObvNbE0UT0grOXMWT1R5GeZRE3n12mz957SP+7eFP0ETmoeTT9oh3F69wt7zo9nMDkszpEzcFSA5+l72Aoo1mACclgdP1mOadA17YA370vQqzJjmQ1hEpkt+Vp0xKYLBTTFSCWaW2IgGU6/jjFqGPuaE+ENa3KnSTSv3945u89+IWk7JBq4D1mnWbkRtHCAr7ZMz5nRGvmxVahHdmr/OfPvwei88n/Itvv8uVqyiU64wzjyKSKTdkX0ugjQZNoAkZI9Xy1O3x/GyXo4cBVwrnH++zGyJ+lGFEBgLRm/K91k6kvkPa/qZson1oBU5AFLJqmDwNtBOFPxCy6ZLlvEQ/L1hOPXrHoh6XILA4cKiRozpW/OzdB/zV/m+xCjn/89nXWbyYMLqx5LieUOoSJQEtEUXEKM9htkRnkYmuyXDk4pj7ikw8x+2Ud569Sv53FaPnDbN7OcWFYnTiMUtLzAwSEj3sCBQ90EoEI52V2fcd8TGhrUjycI1BFiv2/u6K5f0pJ79jKEvL0mokQHalcV4Yv5COSBtcSH8sP9X81bNv8uRsD/f5CG2Ft75yzPPlDjfHSYyfricczybsjtfsl2ty5Tksltwqr9g1K3589oDzesS8Lmg+3uHaw0B2UWNuZmQzobhwyNqmKZ/zhC5QtgR5AiO3USyDxyIy3EUr4nJFfP+USfsaz/71hJH2HB4sWI1bls/HiFXU1zqJZ1L5LF/1yG7Ls4td+GjM6EpoDhOqnlxNuFYtCQhPTvco3hvx4vaY53lAGgVTx/7hnFvTOb/+5T12PxTcWNi9iFQnFlW3lOeeYATV+KSVQ5KZUcsQ5LZNZOiIcLJQumarksMmfosZa017Y8rv3f+EvXzNQbbkVn7J0ddmzH3FqZty7sasfUYmnt+dPOIPq0fsKs3Vdzw/Wj7gL599m3cf3SE2ml9d3IOYsj75LFKcK+xU4ypwa8XF1QHz1SHX343s/+oMezQmqg4orSO7ahkBuvG8dBPScKk3D7b3aK9eJPSyzL+UVZQgec7qZs6bk2Mu7IjfzG/ws/Y+ioiLikI7DooV14oF1/M5mTg+cyOeiyfEnPv5CX9x523eP3iFS1vxYr3D46s9LqsJZ6MMsYI7asELaqnJr4T8UqhOWlb3dvGlojxp0OfLVKZAcbpGWpcwpTMIQiaErPe8Em+HjhlFtbUgkVQKeZbaSzdvEWNodoRMPG+NnvN6dTJMuTLx7OoVU52Ifs92xp2l2QroGBmrlgOzZO5Kbo+ueHN6TPFqQtomGC7tiJN6wuOrPS6e7ZLNDM1Bhm4CxYVFd3sxakHPmyQdfeeC+IQrvXJ5CXn7jAYtqB6aJZVwzBQSs8SQRNIcVCfOqQmMt8bzI9Wwo+qB9WQdHendeEVEq7pD2UChLKd2OpB9LYGRbimUY8escVExW1T40mBHaQakbNiMMAMb6RgCdFIzZmYYFW5PHiLdIDjqbjgm3ShCKWKm0rQ7Mwl9O2G78jm1yVAxDoPbPoOlODIJQ6B+S7Vo8ZSyZkcapmrNZ/qQFzZJtN5FGKkWq5LaiSE1ep93wKK6EUkHNrEzAjalKOmkTN77XVsZBUxfz1FJNyFOXxZyjWQa1WSIJJtCtbD2+cBpe0XR31TXE4e5iiRdOQhgoBDPXTPjtp5jS0XdKZt5KHlqD/j5/B5Pr3aJZwXZsiu7VeqPoTQol8YQqnYgMY0guj3qq2xgRf2opa9S4/MUspaIskmpI0IodPrCtkCvCuJyjWkip+24I/QO343zgvS8dmPL9Cqkz2ro3AIAG3lJo4aomPuKdxd3+Xh2xHxWoRvBlVCcp/JzlUaZtMWiErKu30eth31qp1niua5f+c5tAEwyvTaaNCoIpjODCwUhJ3dTtFKYOjJry5cyuTkiw0vP2Q7hFHEIsg+u/0wdDZdhxFN7wHvLO3wwu87pYgxBCHnsFh2W1w3FLKBbwfVnEpZCGBdpZhsU0RjaHZ2yuDUr6sW36QXqsFe1DHc7EiRqlCsIZYL0lc03RlV363VjOjOUAvr/LQBA22lTGzVnfsIzu89H6xs8We2xaHOa1gzlplpwI+n2qRqqpbwI+MoQRchmDVEp/CjHVcK2vt7MfONGeEcRoooETTpfZJJH6nOFG2sYa+xIsM4QYie/hMFoznt3oMvgFzO+HbyNmmUoOPcTnrQHPFodcLqesGpybGuIjaKb8ONGqfza3fRZ5SDOoN0xmKVPmGIUdmIG4OpzELvfhZ4ZbZ0zCqYb0qj+Mfg8Wf12LARrXipdRSDHD0DUl6tHBpPri/sxgU/FiZvyotnhdD3hal2yrjPC2qBWGt2NLH0HLq7aSC9XCJJJClQrQqlxY9WdotlQWmRTwmoTegoqZIkzbjtoaZUiQQvWp5H7F0szRHkpk9sTbSWbswstCWVP3JTjdoeLtmJlM9brHLvKkZXGrARdyxBY3/R1k4CmnXagp9LhLldpbKUGpTJcc9z8NMpvoo5GaCfgSo1eh+5sAOg2mU7lZeDyvGJ5u9hqMYZlzPEIY+wQVJ/FdCBKbabgMRu48dIXrFxObQ12maFmhuJMoZtE3ZQHV4JuUzJCBm4M2YKNG6/TON+Xqawhva8v4R5oU+n2zKJHwwPN+HOLWae9GzKhuLBEnVE8zXl475BrxYIs91z6EVoCXhQoyPBDyUKifnU0wwhiHipe2F0u7Ii1z2i8YbkoMWcZ1QvBrHv4TxnU61RtdiwDVfWlEJcgLtDumvTaNpnfChJ6X9cA3cnOnga6keArRXnlaceKdqzQa01xaZk80Tx+fsCt0Ww4rzDzJV4ln6cU+w9OabZRs4oFy1Bw2Q2ZLu2IZ8vdJOOOC8pToTqNA0dVvpN93XDL1BEnibATQDdpwu0qhc82YjvGTclGzYC8abQvLztmAO1EY5qAxLT56wNDdZag3TwueW96k2vFgjerY+q4mYy3ogd7UhMH23PVBXnlRpy0Ex4v93lyvkdzPKI8UxTnyWVPHlbn9xjSoCt02NFlydSdv5XLQAh6EBKVjPhtCNkc1tjuPd2HXJlslCHwHQExmDoyeibMRru8bV4ju+W5WVzRSEYdc/Lu/J6WdJZoGQpWoWDuS87smHM75slyj0fHB7jjivJUUVxCvkzZVH4zaccklz31whSobjtQiuDz1CFeiiFuxHYPRMlK6ZRAvy8grWTWxq4kkkNIk9DOjpI1Ov1EMZ9d47+/Meab9z7jsFgOR1N706tvNzNX8qLZ4cV6yvF8wux4QnZmGF8I2TxiVh3iGyFfhAE5TR1RbaSdKpQDWUWiTgCVz7tAdUcuwiZ7Q/fbCt7IsBfSaz1ySYCsDokkVDJk2hcp0OIiUlxAfV7xy9MHyFFDXqQu76wmBIXq/rqtDTQaVStUKxQ1ZDMhn0d0dyjF55JGgSSfWSLoVcAXMmwpV6U9ms0j2cLT7GQbLNDp2rWNOCVDq0nf3dmdwwkrBVFtnXONkM8D4hWr62o4tq3rNJ9RbcQ0imgUzaIkugrVQLWCbJFqyBeCG3Wn0brrymaQz5PFOpDuJi24rRTKR1TTnT+MKThXpWvKlpGdzyzNnuGl0SCpMnsfV/WI21Fb89Jhx+1bRxiUg2wdKM+FZk8G7zcdTY/kM8/Oo0h9pRCfAMU0abLlKkUrEDqFRAu6TohJBzbbVWTHSSrqtgOmTHCFdAcwoToLFJcpAlvJ0COH40PdkdxtZtR7R6bfsC/ptx6DujeKg/LCE5VO8C6JFkaVJljVSYtZba2w9FSyYzUu7SHluyDpNfBmgfvD0bpbpL6Eo0oXni8ixZVH14Fm32yy1rMh9XIP7SlsX5kbrhsZ/N1eiEPSfkLErDwViUz4TLpsCKoUivOG3KX3hlzhyyTxQjeFHoJT3cXrvqHHDQHvyjJbhfS+7nSpBDBNIJ91mdzRNLsqmV6yAdJIajUS0qIOBdqjrrbxpfOt/Ys+T//wo3wcvBqz9hRX0OzopBS6C1rfKNF1IJtb9CogIU2gXaE3K6ulQ9aO3rmYJus2LUS+SD5tO1Evo6ZAPvOIizT7hmanQ+AYichQrv0W2Oa6AyBF+H/YI9QjV2yKyAAAAABJRU5ErkJggg==\" y=\"-22.042263\"/>\n   </g>\n   <g id=\"matplotlib.axis_3\"/>\n   <g id=\"matplotlib.axis_4\"/>\n   <g id=\"patch_8\">\n    <path d=\"M 79.968966 80.042263 \nL 79.968966 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_9\">\n    <path d=\"M 137.693103 80.042263 \nL 137.693103 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_10\">\n    <path d=\"M 79.968966 80.042263 \nL 137.693103 80.042263 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_11\">\n    <path d=\"M 79.968966 22.318125 \nL 137.693103 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"text_2\">\n    <!-- Happy -->\n    <g transform=\"translate(89.472597 16.318125)scale(0.12 -0.12)\">\n     <defs>\n      <path d=\"M 9.8125 72.90625 \nL 19.671875 72.90625 \nL 19.671875 43.015625 \nL 55.515625 43.015625 \nL 55.515625 72.90625 \nL 65.375 72.90625 \nL 65.375 0 \nL 55.515625 0 \nL 55.515625 34.71875 \nL 19.671875 34.71875 \nL 19.671875 0 \nL 9.8125 0 \nz\n\" id=\"DejaVuSans-72\"/>\n      <path d=\"M 18.109375 8.203125 \nL 18.109375 -20.796875 \nL 9.078125 -20.796875 \nL 9.078125 54.6875 \nL 18.109375 54.6875 \nL 18.109375 46.390625 \nQ 20.953125 51.265625 25.265625 53.625 \nQ 29.59375 56 35.59375 56 \nQ 45.5625 56 51.78125 48.09375 \nQ 58.015625 40.1875 58.015625 27.296875 \nQ 58.015625 14.40625 51.78125 6.484375 \nQ 45.5625 -1.421875 35.59375 -1.421875 \nQ 29.59375 -1.421875 25.265625 0.953125 \nQ 20.953125 3.328125 18.109375 8.203125 \nz\nM 48.6875 27.296875 \nQ 48.6875 37.203125 44.609375 42.84375 \nQ 40.53125 48.484375 33.40625 48.484375 \nQ 26.265625 48.484375 22.1875 42.84375 \nQ 18.109375 37.203125 18.109375 27.296875 \nQ 18.109375 17.390625 22.1875 11.75 \nQ 26.265625 6.109375 33.40625 6.109375 \nQ 40.53125 6.109375 44.609375 11.75 \nQ 48.6875 17.390625 48.6875 27.296875 \nz\n\" id=\"DejaVuSans-112\"/>\n      <path d=\"M 32.171875 -5.078125 \nQ 28.375 -14.84375 24.75 -17.8125 \nQ 21.140625 -20.796875 15.09375 -20.796875 \nL 7.90625 -20.796875 \nL 7.90625 -13.28125 \nL 13.1875 -13.28125 \nQ 16.890625 -13.28125 18.9375 -11.515625 \nQ 21 -9.765625 23.484375 -3.21875 \nL 25.09375 0.875 \nL 2.984375 54.6875 \nL 12.5 54.6875 \nL 29.59375 11.921875 \nL 46.6875 54.6875 \nL 56.203125 54.6875 \nz\n\" id=\"DejaVuSans-121\"/>\n     </defs>\n     <use xlink:href=\"#DejaVuSans-72\"/>\n     <use x=\"75.195312\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"136.474609\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"199.951172\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"263.427734\" xlink:href=\"#DejaVuSans-121\"/>\n    </g>\n   </g>\n  </g>\n  <g id=\"axes_3\">\n   <g id=\"patch_12\">\n    <path d=\"M 149.237931 80.042263 \nL 206.962069 80.042263 \nL 206.962069 22.318125 \nL 149.237931 22.318125 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#p24e4b45c0c)\">\n    <image height=\"58\" id=\"image4d608d3c94\" transform=\"scale(1 -1)translate(0 -58)\" width=\"58\" x=\"149.237931\" xlink:href=\"data:image/png;base64,\niVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAYAAADhu0ooAAAZd0lEQVR4nJWbWa+t2XWWnzGbr1vNbs4+59SpJuVy4ootx8GEiBsSCSEUbhHijhvu+QX8BvgB/ACukbhDQYCiCAWZNLYcsNyVq+xy1el2u7qvmXMMLua31z5OsF1Z0tZe+nT2WnPM0b3jfceRfyr/0vg1L6lr/MUjbNEi+x4bRkgJvENWS/KjFWlVkWtPah3TQujPHbmG8cTQCjQYVhlyOnKy3vP2+o517Gn9RO0T2YRdqhnV0+fIZqx5vV2w/XxJ8zLwpf90hX3/J9gwAODPzrD3noKC2BsmTAliKO/Nyo8I4dcZiQgiUt6OUzFQM1JX0LXouitGVg4NggbQUP69BsDAnGEeENDRs901vPTKrqqoXEbEOK0PACR1ANQ+cdL29KcVvAhINkxng5xHTteYCPhiC4AkBe+wUD6DbOUSzL6AofcvVUgZy4rEWIxcteRFMdKcYAHMC+qLgeXb73/PDxTS6Lm+XXDrW2LMdPUIQHDKkB+OVIdE047sntQc3lvTvj5FL69wj87RRfvgtdkh5tzxfbkQw1SQL2zo/QfkXH43NdbWaBvJtce8YE5QXzxqHmz+EwxEBVEwb6CCHQLpAHgjNQkRY6gCZpmkjqwON19McIo/G7j67Y6nm7eJzmFna6wJyJj+hmHlrCbFOETAGdgXCl03/4EDVST4o5EaHBakhGQUNAp5/q1x/u4kmLdj+JsI/lBuQStDvSfnYpz4ROUygwmTOtQENaGqJ+5+d0Ss47F7hpvKhcv45jmleNXP36NSgkkEky/oUfH+eGu27LA6otFjwaFeSI0jV0JqhFyX3BSFuAPrKWHtQb1gwZGrUqCIVnLYhGyCEyP4TPSZQ4rc9Q0A3itnjzdcf+0ENzU8+dYduY1I9CV3RcCBZJtDWBAHplqKFfx6Q8V7cHNo1BXW1Vgs4aqVI3WOaeGYupKGLoEfDJdA1NAgTAshLSF1xniRoVZiN3K26IleOYyRm11LPwXWzcCqGmjDxM5VOHF09Yia0D7ec/ebS04+aqlu33DnfciixdDgsPksoJh+kdCFEr7eYV2DRY9Gh0VXQrUqXpxWghshbo1qZ/hBGZeO3AACku9zVcArmOCdcd7uWZ/0JHVcDx1ZHTd9S58ChzHSVhOVz0zZc7I48OpZ5PaDhqf/a49Wntz6csRsuMkwYY6+8l7miwgAbrVCRLBxRPt+Nk4eKpoTrIpYFcptRVfaSSyflKsSmn404t6I24xLxrgqueh7Ixwg7CEcPNPKoRFetw2vlmvaVemNh00NB4+k0jZYTVw827GIIwcpSb9e7dl+qeHJ/xa0DuTWY05wk0IvSNZfODda7AhutcItF6XY9D2SEpbSG2EhEAJUcQ7Z+1YiaBDMlZy02WsuGaLMPbWEvMvgJiP04CYI+xIF5jxaeaZFBQLNQZBcKnZaGLo2HjU7gtNjYVrWI7fv9IyP2nIOKRGT6/lS97ORx/ZWzhD44B243paKWlW40xPy68uHqK0qpKnJVSghe2wjpcLmWAqBeUidMKYCHFIjpLZUX43lEkzkGMq5mj8/QXU7FzoP/bOMnIx0i4FHiz1vNRvuUk3jJ0YNtGHi0fmW1994zOIzZfF8RJKROs+08rhRETUQMAU8SDLC9rdOWP7Xn2P9gH90Bo/P4fJq9qZHuhZbtFg9ezMIWjtS40jtgzHmYDg3xrXgpvuW89BPRYu3cm1Mp4rF+cq94bvEyXrHH779Ed/oPmWvNa/Tkn2uOOSK1k8kLbmoJnRxovtnn/Hif75NfeuprwbAc/ulQLP2rH46IEkRJ5ANC45w/RXP6k8bdLPBVgtu/t4jTl/fkF+9wq8WsFqgbZxbhKDRkVrHuBTSogCEXJWeiBRMm5s5esID/NNWiScD33zvU356d4Z3yvura768eM2z6ob34iWNTFzlJQBPojL4yCY33KVmzqIagEk9akJzyRF5WRDGf7Rh87zj5Id5fuZKjgJBIw/tQ2b4drKEV6+QRYfVVclNN4dr7ZhaR+qEaVG+SOe+KFpSw4IVwOANSYI5g6g07cgqDBzGyLIZOK0OXMQNUTI3uaOScsDGTaAwiadxE4MLTOZRX0DEqInX+wVxa8eUMBFyLmDETbnY4maEpEaQDMxgWQ4D7WVGplSS+N5IEfDFoyX3ILegNai3GePa8XrNgUUtn2mCZMHmm72dGpwYJ3XPwg/4uWrstUbdROcGHEoWIUpmEk90maiZ5DLBZYIo3ilT9VAz7z3rpjeemR3PHqoNoLOr93uazzbY7R0SYmkpwZXEnuFVaktu5gpyZcfw1ADiCtLBlS8WFSQJLoNFxzQFbseWrh551t5xEg7UbqKRkZ6KbO5ouL8fAgCH4cRw2PF5ExKbpczVvlzqdIgs7uQB+4ocLyCc/HjCxnIN1g+4yzvS3Ra/XGDNDPXcDNqr2ZvNQ6HRaMWDTcZm75EEmQuSSxB2AuoYlhXDOuDFWISBi7Dhkd/iRSGD4sjI0ViAKJko+Qjys80tS4xpOQ9FTsBg8f2ai7+ejngXM2xOy7D4/isshAIaQig9VDOyWqLeH2/GgpTcbAStSh7ee86iQqX4SjErMyeDw2899ZVQXxXPH/Y1n94+JTw5cDit+Hw65cV0giL8Zv2ihKoFNhpLTpojSqbzA7e5ZdBAnyPJHEkd47ly/ZVI3AZchrPvZ6rrEQ2ONwICUSOgyt0/+ZDhxBF3xvoHG+TyqrAJZrikZF9CxGa7TUD9XIRqhVpxQYlVwjmlt4r6JxXNK2P3jrH8ubH4bGT9iefF70f6k8BHm0f8xYt32e5rnDPeOb/lnz/7DlESGYdHqd1EJYlsjls3ciNlBk3quOtr/NMD1Vf2eKfcbDvSR0ve/y8eN+R5ankwNtz9/Wfs3vLFSx6Gpx3tZ+cQ/AMVce9VmYfrYMXIpnjSVRnvFe+VcQjwqubiu4n9hSfsBT8qWjkOF57hkdIshzmyhNRH7ODRszsyQrZII6Uo3VfhLI6TsOcuNdxKy6SeKXuQgpXf6W5x58ZPz8+4/MF7nH9v/5CjVupGuP2yxzy4oaAUc8BqUab1N430BepppFxKbVBnfKU4pzhfwnbqA+21o32+Z1x01NcFC2+fRbbvCuHtLe+d3fDu4obH7ZYX3YrbQ8M/vPiEU79npzWNm1i4kSiJ3iIYNDLR+onKJZwYAqg6zIRFGHgUdyzCwB+/9Ruc/WA+uwNmriAMZ0bYCXEG5L7XB3JJj2WvTCp1AQe5NqzOhDoTYj6GR0oeBo+bwLyjvlPCIAxrx/6pcHgv8bUnr/n6yed8pX3Bqd8B0Gvkw+oFL/MKh9K4icaNeAzF0d/nqhtZhpFFGOnqkd2+5pAiyTxRMpupIS2skAHz6CIKYkoI+4fJX1TxfQH0MiUIpf6pL5BvWgq5LXnp6kxVT1ShjFApOXLy4I3xxNi+27D8tCc3nlxFQJA20YWRLzWv+d36Z7wdDjQibNR4njv2WrP2PZ0MeNHizTdeK9/ztLojSKbyibt9w3aouBlbHlcbfr4/IW5mYq5ymEDQjIkQTn+Y2T/1NNdKc5VwQyqUYanhWHCkzjOshdRBbgzaTN1OLJqxhJEYZoGUDJyRW2PzvqN95Yk3PXXlqNfC+KLmhyeP+erqBc/jCSduIDqlN8+3+/dZuQPnsqVxU6m4ZHqryDiiJGrnOA87Vr7QpHdnDR+/Pudbn7zPX8V38V7nScajUQq4n6MydC9HmitH9XqP9BPWVkg/QhVR70ldZFw7xrWQOyuYtZ1oqono87GBjyngvRak5I1cwXAe8IeAH5S4K+PZbtfwYlgzdp6NRSbN3GjDyh1Y+/5YgO5fGWGay30licqn4/Nn3R23q4aXl2v6Vy1USitzO9nNFlrB4EEmpf7stjzwHhkmbJqgqbDakxvH1M752RjSZGLMBK9HI9UE5xQRN/MppWhNrSMtSr77yfAHoR88tUusXV9y0ASPsnAjnQzH9jKap7fIZA8kiKN8ZyMTBHhSb7jsFtxsO3oi4TJS3ZWxzM1o6R4dOXdIyHZfHniH7PtCa3pfJvjGkWtBa8Oi4arZSKdHtGJvNiwpuFejkVpIC4/WDgz8CBi0fqRzA41koihRMgs30LiJjGMyz4RnsvCAhGYjPYoX5dTveRrveFxv6ZrSrppXgktGbgvliZZCagLO3+7Ae6hK4ttuXzii4NHak+qChDQWA7xXgi+Q7H7qzyrk7NA8D5+uIKFcz9i4cQVsGIg3Oj+ykJFuNtRTvORRpjc8eR+yeR5qswkZR7aSsyd+z3m1Y1FNiAqLz5VpKewfBzSUHLWZBg3M1ZVhRKZCo0jbotGXpL6XGarSN0UMVceUPVmMrAWO5Vx+LM88jZbSXlj7wkqYAwnK0vc0kvEC+oZu0ltkpzV7rdlpfTR0skCU0kIgMeHxFmjcxFnYs657LBjNjfLq90tr6146ZDtBLJcUrI5wuy3e/Bv80LF31qCNIc7Q7DgMkWF6yJ2UHJp9MXJyyPgwrond/xiiZVzrXPGmA3rzbLThTpsZ5za8SituU8dknhN/oHETtZuIkmjcRCWZbI5eI50feNps+N5iwlxETyfGoSI3xUDJs/Yiatg0Fk3FO4hlyNNQAPy0kNKEo4IKOTnSNBt1771caMwyk/Iw9fsyvbhU+F0MLAt7rejNoSg7C1zmJT8anvKj/RM2qebVYcn1vqUfIyJG8EpXj5w1B561d3y4eMGzeE2UhL8f4bwxLh2yEaYnE4fzSHPpkUkxJwTzDtSwcSxVN1YggusTca/40RUyeioN2PaB+pWnugV/KGNQbgr5pdWDkRjEnRF3GayADpeA0bHNDRuLNGQ22vDJeMEfv/gaH/3wLaqrQneKzlxwKvrWfoBthI/Wxn9/+6t8+MFzvrJ+xdXY8ZO7c9JthR+Nkx94dn9woL+oGJ9HmpcHrPKE45CaMwaIFuTvdj3NZ2BuAeZxY2k19ZVw8nEm3iUsOIZTT2pK/qV2hl3JcBnC3vAHnemWUhHJwj5X7LXGu56Ntvx0OOejnz1m8Ukg7ObCF8D3hRA3KRU7HhQ3Gen/Bj7+xnv88N0n2OhhEqprTzgkupfCEJTxxJiWjvb5LFYhguVctEdN2DghqsjugHz6OcvPV7SfXnB4d0GuhOUnO/zPX5PfesTdhyu27zh8D6mF4cLQYIS90H0OYbBCLDuQ5JG5tT0UGc9Oa573a+KLCo1w+/WEX03kwVP9PJJrYTg30lppPvdcfDdx9icfs/r4CXcfdJijiM4thEPm8CiUqagzxsWs6xoEvCv6CoBpCeG52VrO5Osb3P7A8nmHbndYP5D+wVf57A+XbH9rIl4J9XWpstNp5o9+77v8q4s/49/+4F9Q/fszfJ/Q6BCzUoErJalnnI29yR03Q4sJHJ4l/uMf/Qd+PD7h333vj3DfOcUl2H195A9++4f84PoJL6vHNC+f4v/6I84uH9O/f8a0qLAguCHTPxJUBauV1AU0+lkITgUciBMslVy1YUS6BvEemxI6DMg4ouOEOCH87DVP/zzQXNYMZ8LFdwYOjyO79xx/+fI9/urVu/T/7THpmVHdjrixAOtpKfguHVuJ4rhOC64OHVoZT/7M86/v/g3pYiJcRt79/oR5uPkdz5/+nw/pflzx1rcn4vMbzDukH3G5KAMYuEnZvafkfcRvPH40zAuSjaAnHe52U0DCQ7940BtzRkww70EzppBfvKTa7Xjy0Zp8vi45sEvEQ834rXPMC4ukhN5AldxGpqUjdVBVCSfKRtsyb2ppVc3L0ove+ZNUmEOdqK4HZMp86T8vZpUg4UeFKSHnZ7z8x88Kr9wIvjfc7Z76csXwbNZP08wpCQQNDpfSzN9zLEykDGaI90hT485Pi/HDiN7eodsdbHe42ztkscAtWro+0XSR1HqmVaC+nphOGtJinn4WRhcKqsomRKHMmM3ArRVw4Qelutwjh7GUWxGazxSrQvn+pNh6wfU3z7n8PUUmId4Jy5+B7A48+YuRF66jvoH2KiNZMe8I4a7H+gHLD1OD5YzMeFe8xy0X5McnDI8axKB6dcBf3WHXt+ihR8apSJTz39+TcGLG7mlFroXxVEirRB0Tfp6dPMZJ2PO02/Bq/ZS4EYazgO8rwmFEUi7iV1IggXPkLrL98pLX3xQuPrhke6gZfrYsfXwYaP/8I94ev4SoIaMWztpD0B99fFxp+YVXXSE6e7mpyU3g7v1I/0gIfcXi8xWrj88In7zE+qFEgRkyZcJGCVvh6hsn9Bel9YwnhltPLKoHAbdQm8rb7R3ffnegH5pivm9pa0+4KaF7f47D2wuuvxLZfJipn2x5stiSsqP3ZU8BM/L1Lf5//CVutcI9fkR6si5M/d8y8g1CTKqCksy7WWgt/W3/1Ng/Ey5/Z0H78susPs3U1xOuzyCQusDuWcXdB3IEEtOpslr2PG63BFcOvteajTbsckW7GDg8iUXb6Rz9aU21rcCgP3Mc3jLGR4o7PXC23vHB6RXbqWbfV7hREKO0Ru8hhkLd+nmKkV8i7duUyqpNUx2Lkt8NLF5UpK4ITqktTML2N4z9W47msqG6m7UQD6kR/FAKwbgsmyVPVlvcPGopjtEC29ywS1UhumQWpGJR0FNXsPZ4Zkynmeqs5+Jky+N2R+UyL7dLVGc23ig5bYpN9gs1p/C6/z9Dc4aUEC3gHj9vplhRtcO+kE9aP3C9qSlsX/nkGQ4ajKeKPBl4dLplNW+KdX4kWxGMaklc1Duenmx4bjA0NWntcX3B0RYKrRrWI8uuZxlHujByUW9ZNydM2XOgnOsYiffDyT3q+2WGAqWXts2RNzJXNBi9J+/ntMhVGcjTiuPQzf2PM7p1z9niwEW746TqqVyidlORISiE19v1DflUOK0P3J419CmQsierYCYEryyqkWVVFLhnzS1LPxD9fRsRQq/Fo4CEUGZs/9Ayf7mh41z17neMZvlB4zyfxiINaqe45URVJ7xXqlAqa3RKF0fWVU/lMq2faP1DIXIo0WW8KJ0bWPqeL7ev2eQGP7MOk3n2szQ+aMCJsfQDz6ob9lqeT5MnHIS4K1tt5cMdEgvnJWYzBPxlhqY0w8GmbIZ5Ny8YlhwqM2ph6mOVaOuROiaakFjEkXXsqX0iiFLPXqxd4YOgCEqejJsXgd4Kt0TJ9BbxKE70yDJscss0c7crX3YGX05rpuwZD5HlHcSb0iLlXuuNoaSd/qpdQJv7z6EvOwwxYMt5zSUZcr/XIsAkjPsKzY6hSvQhM9a+hKh/WPrIOAYNnMUiF2xyS55nuiiZPCMzL8qEBysUyl7rIlWUvGCnRfXuNTKpg02kvjH8pi8yZ0rgy3abxVls+uWGGpYmdBDcOJatTkqolA2TMkKBI3ezFqOOaQzovJ15G1rUHMs44ERxpniBfa7YzNq/n8M3SqaeFdwoeR6mS/i+eRnAUWU75Mi2rwmbIo6RtSxVqeGXC7QKRU5MZXvsly9Umc1tJj3ojA7QYqgbBQ2zdK+CTg51hSwTMXZjVcgzhGTuqJsUMjozaJgNcUx4eo3FSFEcVuR99zDSeYyMoDNRtks1KTvcVNoH3pUCBKWmmJW11myI6q/ZHLMZQN+PbXP8y0x8uQQ6CUyCmQNvKJDEcxgLq3hPib75SuIZNBSp3h5E3tqlo5dV5WhYyVfPZL60JYTJHKruyEYAiHclR1WRpJhzBVX92jVWs8IKTmn+Q36BKpEsZS1tKPwPBiaO7IxxCnineBcIogQpuweTlp2EIQeCK3RncCUs1eTo5Sz3tOZDyPZHgVhI6slZiNPcQ9WOHrWUi7H3KO9Xhu69PeOI7fe4/RI3NfPaSclVpiIluqksBdtcQc3PJFp09FMgukJ46+yNIPnoqeCUIErrJ7wYyTzBMkkceFAEZ8Zknm2uOeRIUs821Uy3Nctro7qbygr8PVNyX0zfoFJ/vaEpobd3OBHqZcVw6mcSrIB1lwXVefjN5RlWGv04BqgoAGAuUtFn2jCVcDVHsrKEoXOoFO8Wzzi1Y1gfcuRmarkaFlweOi5vF3QfR9Y/mwiXB0gJPcx7jFkf1MBZJfxC252WEvnqBv995WR4m/6tjuHUM66F4VRmmZ8HmjMJWdyssglTLnDPiR3XMGqfqHzGvbGYoXNOqkGWX6y2u1RzM3a83C15fbnCvajpnhthl5FxKj1fbd4Wy8fV+Pu++nfYqc/oZoP79CXdbk1z0jGtKw4XkcOFYzgVprWROy0TQygVOCV/9KR3RcYQygr5mB+KlaZyoNZPZY9IrLQR80zquRwWvNwtubpZFiM/F5rbjN9PxdCcEe+w9IaKZgb5ngX8O7wsJfT6GjeN+P0St+3w+47Q18SdZ9gJ07KsqaaTjDpjAlTL1pn3JUC9U6bs0fm21eQ4uqkJlcukN/SWfap4fVhwebPEXtW0r4Xmal6XHdKRzMP7skrk5I39BZu1lzf3cr+osbtDgb45E6ZE13fUNxXTMjCsPcOpsH8rMF4IuVK0yuTgcT7jvdFWE0P2uHlvPquj8uU/DhxcPELH+8J1PXS8vluQL2vaF47uhZW1gV1C+qmEqfcPAnZdHw0VLQRZkBCxafyVxv0tY6eRfDvh+qGsA2TF7SNyscQflPZSWH7m2LwT2L3rSAtPbjJaOzQqG1cTfJEdkzpS8oRQFrKif5AlRYyUPbeblnTV0LzwdC+M9nUm7hIy5SOvhCu0psRQNlKDvz8tmPH/AF2Hyu3qKsl0AAAAAElFTkSuQmCC\" y=\"-22.042263\"/>\n   </g>\n   <g id=\"matplotlib.axis_5\"/>\n   <g id=\"matplotlib.axis_6\"/>\n   <g id=\"patch_13\">\n    <path d=\"M 149.237931 80.042263 \nL 149.237931 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_14\">\n    <path d=\"M 206.962069 80.042263 \nL 206.962069 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_15\">\n    <path d=\"M 149.237931 80.042263 \nL 206.962069 80.042263 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_16\">\n    <path d=\"M 149.237931 22.318125 \nL 206.962069 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"text_3\">\n    <!-- Neutral -->\n    <g transform=\"translate(155.954375 16.318125)scale(0.12 -0.12)\">\n     <use xlink:href=\"#DejaVuSans-78\"/>\n     <use x=\"74.804688\" xlink:href=\"#DejaVuSans-101\"/>\n     <use x=\"136.328125\" xlink:href=\"#DejaVuSans-117\"/>\n     <use x=\"199.707031\" xlink:href=\"#DejaVuSans-116\"/>\n     <use x=\"238.916016\" xlink:href=\"#DejaVuSans-114\"/>\n     <use x=\"280.029297\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"341.308594\" xlink:href=\"#DejaVuSans-108\"/>\n    </g>\n   </g>\n  </g>\n  <g id=\"axes_4\">\n   <g id=\"patch_17\">\n    <path d=\"M 218.506897 80.042263 \nL 276.231034 80.042263 \nL 276.231034 22.318125 \nL 218.506897 22.318125 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#p2234b1ecff)\">\n    <image height=\"58\" id=\"image224fc34bea\" transform=\"scale(1 -1)translate(0 -58)\" width=\"58\" x=\"218.506897\" xlink:href=\"data:image/png;base64,\n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\" y=\"-22.042263\"/>\n   </g>\n   <g id=\"matplotlib.axis_7\"/>\n   <g id=\"matplotlib.axis_8\"/>\n   <g id=\"patch_18\">\n    <path d=\"M 218.506897 80.042263 \nL 218.506897 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_19\">\n    <path d=\"M 276.231034 80.042263 \nL 276.231034 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_20\">\n    <path d=\"M 218.506897 80.042263 \nL 276.231034 80.042263 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_21\">\n    <path d=\"M 218.506897 22.318125 \nL 276.231034 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"text_4\">\n    <!-- Happy -->\n    <g transform=\"translate(228.010528 16.318125)scale(0.12 -0.12)\">\n     <use xlink:href=\"#DejaVuSans-72\"/>\n     <use x=\"75.195312\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"136.474609\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"199.951172\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"263.427734\" xlink:href=\"#DejaVuSans-121\"/>\n    </g>\n   </g>\n  </g>\n  <g id=\"axes_5\">\n   <g id=\"patch_22\">\n    <path d=\"M 287.775862 80.042263 \nL 345.5 80.042263 \nL 345.5 22.318125 \nL 287.775862 22.318125 \nz\n\" style=\"fill:#ffffff;\"/>\n   </g>\n   <g clip-path=\"url(#p9c29323ff9)\">\n    <image height=\"58\" id=\"image063193e9a9\" transform=\"scale(1 -1)translate(0 -58)\" width=\"58\" x=\"287.775862\" xlink:href=\"data:image/png;base64,\n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\" y=\"-22.042263\"/>\n   </g>\n   <g id=\"matplotlib.axis_9\"/>\n   <g id=\"matplotlib.axis_10\"/>\n   <g id=\"patch_23\">\n    <path d=\"M 287.775862 80.042263 \nL 287.775862 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_24\">\n    <path d=\"M 345.5 80.042263 \nL 345.5 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_25\">\n    <path d=\"M 287.775862 80.042263 \nL 345.5 80.042263 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"patch_26\">\n    <path d=\"M 287.775862 22.318125 \nL 345.5 22.318125 \n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n   </g>\n   <g id=\"text_5\">\n    <!-- Happy -->\n    <g transform=\"translate(297.279494 16.318125)scale(0.12 -0.12)\">\n     <use xlink:href=\"#DejaVuSans-72\"/>\n     <use x=\"75.195312\" xlink:href=\"#DejaVuSans-97\"/>\n     <use x=\"136.474609\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"199.951172\" xlink:href=\"#DejaVuSans-112\"/>\n     <use x=\"263.427734\" xlink:href=\"#DejaVuSans-121\"/>\n    </g>\n   </g>\n  </g>\n </g>\n <defs>\n  <clipPath id=\"pab695eacba\">\n   <rect height=\"57.724138\" width=\"57.724138\" x=\"10.7\" y=\"22.318125\"/>\n  </clipPath>\n  <clipPath id=\"p283aca081d\">\n   <rect height=\"57.724138\" width=\"57.724138\" x=\"79.968966\" y=\"22.318125\"/>\n  </clipPath>\n  <clipPath id=\"p24e4b45c0c\">\n   <rect height=\"57.724138\" width=\"57.724138\" x=\"149.237931\" y=\"22.318125\"/>\n  </clipPath>\n  <clipPath id=\"p2234b1ecff\">\n   <rect height=\"57.724138\" width=\"57.724138\" x=\"218.506897\" y=\"22.318125\"/>\n  </clipPath>\n  <clipPath id=\"p9c29323ff9\">\n   <rect height=\"57.724138\" width=\"57.724138\" x=\"287.775862\" y=\"22.318125\"/>\n  </clipPath>\n </defs>\n</svg>\n","image/png":"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\n"},"metadata":{}}]},{"cell_type":"code","metadata":{"id":"oSf4medy0fgr","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1616664903891,"user_tz":-60,"elapsed":1573,"user":{"displayName":"Boulet Timothé","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GiayvINTDL_0Iuf52iuumxhg4psHVMYz59ow2vJ=s64","userId":"06174172927805952140"}},"outputId":"c6a7c032-e6b9-4057-cb3e-b5a5e82b3e27"},"source":["#Images et labels\n","print('X:', X.shape)\n","print('Y:', Y.shape)"],"execution_count":26,"outputs":[{"output_type":"stream","name":"stdout","text":["X: (10, 48, 48, 1)\nY: (10, 7)\n"]}]},{"cell_type":"code","metadata":{"cellView":"form","id":"n4cvkzgQpVL7","executionInfo":{"status":"ok","timestamp":1616664903893,"user_tz":-60,"elapsed":1567,"user":{"displayName":"Boulet Timothé","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GiayvINTDL_0Iuf52iuumxhg4psHVMYz59ow2vJ=s64","userId":"06174172927805952140"}}},"source":["#@title Modèle\n","class MyModel(keras.Model):\n","\n","    def __init__(self, input_shape):\n","        super(MyModel, self).__init__()\n","        self.conv2D1 = keras.layers.Conv2D(32, kernel_size = (3, 3), activation = 'relu', input_shape = input_shape)\n","        self.conv2D2 = keras.layers.Conv2D(64, kernel_size = (3, 3), activation = 'relu')\n","        self.conv2D3 = keras.layers.Conv2D(128, kernel_size = (3, 3), activation = 'relu')\n","        self.maxPooling = keras.layers.MaxPooling2D(pool_size = 2)\n","        self.flatten = keras.layers.Flatten()\n","        self.Dense1 = keras.layers.Dense(64, activation = 'relu')\n","        self.Dense2 = keras.layers.Dense(Na, activation = 'softmax')\n","\n","\n","    def call(self, x):\n","        y = self.conv2D1(x)\n","        y = self.maxPooling(y)\n","        y = self.conv2D2(y)\n","        y = self.maxPooling(y)\n","        y = self.conv2D3(y)\n","        y = self.maxPooling(y)\n","        y = self.flatten(y)\n","        y = self.Dense1(y)\n","        y = self.Dense2(y)\n","        return y\n","    \n","    def predir(self, monImage):\n","        return self.predict(np.array([monImage]))[0,:]\n","\n","    def compile_o(self):\n","        self.compile(optimizer = 'adam', loss=losses.categorical_crossentropy, metrics = ['accuracy'])\n","\n","myModel = MyModel(input_shape)\n","myModel.compile_o()"],"execution_count":27,"outputs":[]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"AcIJ3LVYpVSK","executionInfo":{"status":"ok","timestamp":1616664903894,"user_tz":-60,"elapsed":1562,"user":{"displayName":"Boulet Timothé","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GiayvINTDL_0Iuf52iuumxhg4psHVMYz59ow2vJ=s64","userId":"06174172927805952140"}},"outputId":"155e177e-7b01-4178-ea36-836325f55312"},"source":["theImage = X[0]\n","myModel(np.array([theImage]))"],"execution_count":33,"outputs":[{"output_type":"execute_result","data":{"text/plain":["<tf.Tensor: shape=(1, 7), dtype=float32, numpy=\n","array([[2.96738029e-01, 1.24476401e-05, 2.17953697e-01, 1.91844806e-01,\n","        1.76624253e-01, 1.78373352e-06, 1.16824925e-01]], dtype=float32)>"]},"metadata":{},"execution_count":33}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"PfIugTuzpVOF","executionInfo":{"status":"ok","timestamp":1616665409321,"user_tz":-60,"elapsed":506981,"user":{"displayName":"Boulet Timothé","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GiayvINTDL_0Iuf52iuumxhg4psHVMYz59ow2vJ=s64","userId":"06174172927805952140"}},"outputId":"6b48caa8-e249-4159-f26e-3b0624998944"},"source":["#Entrainement\n","\n","history = myModel.fit(X, Y, epochs=epochs, validation_split=0.05)\n","\n","myModel.save('modeleTest')"],"execution_count":30,"outputs":[{"output_type":"stream","name":"stdout","text":["Epoch 1/5\n","1/1 [==============================] - 0s 98ms/step - loss: 1.6300 - accuracy: 0.2222 - val_loss: 1.3779 - val_accuracy: 0.0000e+00\n","Epoch 2/5\n","1/1 [==============================] - 0s 58ms/step - loss: 1.5696 - accuracy: 0.2222 - val_loss: 1.4577 - val_accuracy: 0.0000e+00\n","Epoch 3/5\n","1/1 [==============================] - 0s 60ms/step - loss: 1.5309 - accuracy: 0.2222 - val_loss: 1.5352 - val_accuracy: 0.0000e+00\n","Epoch 4/5\n","1/1 [==============================] - 0s 70ms/step - loss: 1.5018 - accuracy: 0.5556 - val_loss: 1.5440 - val_accuracy: 0.0000e+00\n","Epoch 5/5\n","1/1 [==============================] - 0s 59ms/step - loss: 1.4829 - accuracy: 0.4444 - val_loss: 1.4377 - val_accuracy: 1.0000\n","INFO:tensorflow:Assets written to: firstModel/assets\n"]}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":287},"id":"Etye2vRNpVWY","executionInfo":{"status":"ok","timestamp":1616665440369,"user_tz":-60,"elapsed":1700,"user":{"displayName":"Boulet Timothé","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GiayvINTDL_0Iuf52iuumxhg4psHVMYz59ow2vJ=s64","userId":"06174172927805952140"}},"outputId":"2499af31-7138-4953-8bc6-9152b0c43b8e"},"source":["#Affichage de l'historique de l'apprentissage\n","plt.plot(history.history['accuracy'], label='accuracy')\n","plt.plot(history.history['val_accuracy'], label='val_accuracy')\n","plt.legend()\n","plt.ylim([min(history.history['val_accuracy']+history.history['accuracy']), 1])\n","plt.show()"],"execution_count":69,"outputs":[{"output_type":"display_data","data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de3yU5Z338c+PJGTCIQdIICEHAQU5BQQinrqK+rCL1oK1pWhdV2it9WnRrX1aH7VudRV3XatttWtdqVVr1arVx31RxVoP+GirWKG1opyMHCQhEgjJhEBCTtf+cU/CZMhhIpPM5Ob7fr3mlZn7vmbuX26YLxfXfc015pxDREQGvkHxLkBERGJDgS4i4hMKdBERn1Cgi4j4hAJdRMQnFOgiIj7RY6Cb2UNmVmlmH3Sx38zsXjMrNbP3zWxW7MsUEZGeRNNDfwSY383+84AJoduVwP1HX5aIiPRWj4HunHsD2NdNk4XAo86zBsg0s7xYFSgiItFJjsFr5AM7wx6XhbZVRDY0syvxevEMHTp09qRJk2JweBGRY8e6dev2OudyOtsXi0CPmnNuBbACoKSkxK1du7Y/Dy8iMuCZ2Y6u9sVilks5UBj2uCC0TURE+lEsAn0l8E+h2S6nAkHn3BHDLSIi0rd6HHIxs98Ac4FsMysDbgZSAJxz/wWsAs4HSoGDwNK+KlZERLrWY6A75y7pYb8Dvh2zikQkLpqamigrK6OhoSHepQgQCAQoKCggJSUl6uf060VREUlcZWVlDB8+nLFjx2Jm8S7nmOaco6qqirKyMsaNGxf18/TRfxEBoKGhgZEjRyrME4CZMXLkyF7/b0mBLiLtFOaJ47P8WSjQRUR8QoEuIuITCnQROeY0NzfHu4Q+oUAXkYRy4YUXMnv2bKZOncqKFSsA+P3vf8+sWbOYMWMG5557LgB1dXUsXbqU4uJipk+fzrPPPgvAsGHD2l/rmWeeYcmSJQAsWbKEq666ilNOOYXrrruOP//5z5x22mnMnDmT008/nc2bNwPQ0tLC9773PaZNm8b06dP52c9+xmuvvcaFF17Y/rovv/wyX/ziF/vjdPSKpi2KyBH+9XcfsmFXbUxfc8qYdG7+wtQe2z300EOMGDGC+vp6Tj75ZBYuXMg3vvEN3njjDcaNG8e+fd7ir7fddhsZGRmsX78egOrq6h5fu6ysjLfeeoukpCRqa2t58803SU5O5pVXXuHGG2/k2WefZcWKFWzfvp333nuP5ORk9u3bR1ZWFt/61rfYs2cPOTk5PPzww3zta187uhPSBxToIpJQ7r33Xp577jkAdu7cyYoVKzjzzDPb52OPGDECgFdeeYUnn3yy/XlZWVk9vvaiRYtISkoCIBgMcvnll/PRRx9hZjQ1NbW/7lVXXUVycnKH41122WU89thjLF26lLfffptHH300Rr9x7CjQReQI0fSk+8Lrr7/OK6+8wttvv82QIUOYO3cuJ510Eps2bYr6NcKn+0XO4x46dGj7/X/5l3/h7LPP5rnnnmP79u3MnTu329ddunQpX/jCFwgEAixatKg98BOJxtBFJGEEg0GysrIYMmQImzZtYs2aNTQ0NPDGG2+wbds2gPYhl3nz5nHfffe1P7dtyGX06NFs3LiR1tbW9p5+V8fKz88H4JFHHmnfPm/ePB544IH2C6dtxxszZgxjxoxh+fLlLF2amEtWKdBFJGHMnz+f5uZmJk+ezPXXX8+pp55KTk4OK1as4KKLLmLGjBksXrwYgJtuuonq6mqmTZvGjBkzWL16NQB33HEHF1xwAaeffjp5eV1/edp1113HDTfcwMyZMzvMerniiisoKipi+vTpzJgxgyeeeKJ936WXXkphYSGTJ0/uozNwdMxbW6v/6QsuRBLLxo0bEzaoEsWyZcuYOXMmX//61/vleJ39mZjZOudcSWftE28QSEQkAc2ePZuhQ4dy9913x7uULinQRUSisG7duniX0CONoYuI+IQCXUTEJxToIiI+oUAXEfEJBbqIiE8o0EVkQApfVVE8CnQRkaOQSGurax66iBzpxevh0/Wxfc3cYjjvji53X3/99RQWFvLtb38bgFtuuYXk5GRWr15NdXU1TU1NLF++nIULF/Z4qLq6OhYuXNjp8x599FHuuusuzIzp06fz61//mt27d3PVVVexdetWAO6//37GjBnDBRdcwAcffADAXXfdRV1dHbfcckv7omF//OMfueSSS5g4cSLLly+nsbGRkSNH8vjjjzN69Gjq6uq4+uqrWbt2LWbGzTffTDAY5P333+enP/0pAL/4xS/YsGEDP/nJT47q9IICXUQSxOLFi/nOd77THuhPP/00L730Etdccw3p6ens3buXU089lQULFvT4BcqBQIDn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\n","text/plain":["<Figure size 432x288 with 1 Axes>"]},"metadata":{"tags":[],"needs_background":"light"}},{"output_type":"stream","text":["INFO:tensorflow:Assets written to: modeleEntraine/assets\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"U5S7JROCpVYh"},"source":["# myModel = keras.models.load_model(\"modeleTest\")\r\n","# print(myModel.predict(np.array([theImage]))[0,:])"],"execution_count":38,"outputs":[{"output_type":"stream","name":"stdout","text":["[2.96738029e-01 1.24476401e-05 2.17953697e-01 1.91844806e-01\n"," 1.76624253e-01 1.78373352e-06 1.16824925e-01]\n","[6.6510475e-01 8.1453304e-04 5.7720199e-02 1.3529294e-04 2.1474548e-01\n"," 2.6716415e-03 5.8808159e-02]\n"]}]},{"cell_type":"code","metadata":{"id":"aY5kLCgIpVa_"},"source":[],"execution_count":null,"outputs":[]}]}
\ No newline at end of file
diff --git a/cagnol.jpg b/cagnol.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6a6dd2649b3aca5b086fe4b8e31eac851bfbc28b
Binary files /dev/null and b/cagnol.jpg differ
diff --git a/faceAnalysis.py b/faceAnalysis.py
index bd4c220055fa7a11efa0020497680c699f404b80..0dd26b246d783ab02956def12c92c353b0c4c1be 100644
--- a/faceAnalysis.py
+++ b/faceAnalysis.py
@@ -1,4 +1,19 @@
-#Objective of this file is to analyse a face
-
-def detectEmotion(face):
-	return "Happy?" 
\ No newline at end of file
+#Objective of this file is to analyse a face
+import keras
+import numpy as np
+import cv2
+from utils import *
+emotions = ["Angry", "Disgust", "Fear", "Happy", "Sad", "Suprise", "Neutral"]
+input_shape = (48,48,1)
+
+def detectEmotion(face):
+	#Return the most likely emotion there is on a 48x48x1 gray face
+	#input = 48
+	
+	face = normAndResize(face, input_shape)
+
+	model = keras.models.load_model('firstModel')	#Load our model
+	emotionVect = predir(model, face)	
+	emotionNbr = np.argmax(emotionVect)			 
+	emotion = emotions[emotionNbr]
+	return emotion
\ No newline at end of file
diff --git a/firstModel/saved_model.pb b/firstModel/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..237e02a67eb4e7ecaf1dc345770f2adfda6f8189
Binary files /dev/null and b/firstModel/saved_model.pb differ
diff --git a/firstModel/variables/variables.data-00000-of-00001 b/firstModel/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..9bc473297013db4df59b013282db0c5e0861e11f
Binary files /dev/null and b/firstModel/variables/variables.data-00000-of-00001 differ
diff --git a/firstModel/variables/variables.index b/firstModel/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..baaf5a7b3890fa0b601e07395ebf19f4c8a1c93b
Binary files /dev/null and b/firstModel/variables/variables.index differ
diff --git a/imageProcess.py b/imageProcess.py
index c2670e39a55aecd5ffc9b69c7762154965c83e26..fcfcf288e22f67516002845549d2fd35e4a59cb1 100644
--- a/imageProcess.py
+++ b/imageProcess.py
@@ -1,53 +1,63 @@
-#File to process images
-import cv2
-import faceAnalysis as fa
-
-def imageProcess(image):
-    #Objectives : detect faces, identify emotion associated on it, modify the image by framing faces and writing their emotions associated
-    
-    #Import faces and eyes detectors from cv2
-    face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')
-    eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_eye.xml')
-
-    #CV2 detection is made on gray pictures
-    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
-    faces = face_cascade.detectMultiScale(gray, 1.3, 5) #This return a list of tuple locating faces on image
-
-    #For each face, detect eyes call imageProcess to process the face and modify the image
-    for face in faces:
-        x,y,w,h = face
-        
-        #Create blue rectangle around face of thickness 2
-        cv2.rectangle(image, (x,y), (x+w,y+h), (255,0,0), 2 )
-        
-        #Select face image
-        face_gray = gray[y:y+h, x:x+w]
-        face_color = image[y:y+h, x:x+w]
-        
-        #Detect eyes on the face, create green rectangle
-        eyes = eye_cascade.detectMultiScale(face_gray)
-        for (ex,ey,ew,eh) in eyes:
-            cv2.rectangle(face_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),1)
-
-        #Write emotion on the image
-        emotion = fa.detectEmotion(face_color)
-        cv2.putText(image, emotion, (x,y), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,0,0), 2)
-
-
-
-def selectFace(image):
-    #Return a face identified on an colored image
-
-    #Import cv2 face detector
-    face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')
-
-    #Face detection is made on gray images
-    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
-
-    faces = face_cascade.detectMultiScale(gray, 1.3, 5) #This return a list of tuple locating faces on image
-    
-    #The face returned is the first face detected on the image (if exists)
-    if faces != []:
-        x,y,w,h = faces[0]
-        face = image[y:y+h, x:x+w]
-        return face
\ No newline at end of file
+#File to process images
+import cv2
+import numpy as np
+import faceAnalysis as fa
+input_shape = (48,48,1)
+
+def imageProcess(image):
+    #Objectives : detect faces, identify emotion associated on it, modify the image by framing faces and writing their emotions associated
+    
+    #Import faces and eyes detectors from cv2
+    face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')
+    eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_eye.xml')
+
+    #CV2 detection is made on gray pictures
+    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+    faces = face_cascade.detectMultiScale(gray, 1.3, 5) #This return a list of tuple locating faces on image
+
+    #For each face, detect eyes call imageProcess to process the face and modify the image
+    for face in faces:
+        x,y,w,h = face
+        
+        #Create blue rectangle around face of thickness 2
+        cv2.rectangle(image, (x,y), (x+w,y+h), (255,0,0), 2 )
+        
+        #Select face image
+        face_gray = gray[y:y+h, x:x+w]
+        face_color = image[y:y+h, x:x+w]
+        
+        #Detect eyes on the face, create green rectangle
+        eyes = eye_cascade.detectMultiScale(face_gray)
+        for (ex,ey,ew,eh) in eyes:
+            cv2.rectangle(face_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),1)
+
+        #Write emotion on the image
+        emotion = fa.detectEmotion(face_color)
+        print(emotion)
+        cv2.putText(image, emotion, (x,y), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,0,0), 2)
+
+
+
+def selectFace(image):
+    #Return a face identified on an colored image
+
+    #Import cv2 face detector
+    face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')
+
+    #Face detection is made on gray images
+    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
+
+    faces = face_cascade.detectMultiScale(gray, 1.3, 5) #This return a list of tuple locating faces on image
+    
+    #The face returned is the first face detected on the image (if exists)
+    if faces != []:
+        x,y,w,h = faces[0]
+        face = image[y:y+h, x:x+w]
+        return face
+
+image = cv2.imread("cagnol.jpg", 1)  #Load Cagnol colored image
+imageProcess(image)
+cv2.imshow("Cagnol", image)
+cv2.waitKey(0)
+cv2.destroyAllWindows()
+
diff --git a/loadFer2013ds.py b/loadFer2013ds.py
index 6e4f76c267c5056c35a555c3d8e2af7e561490bb..65d991a33dae5d30a5deb48ece4ba6f4978f2a37 100644
--- a/loadFer2013ds.py
+++ b/loadFer2013ds.py
@@ -1,70 +1,70 @@
-#This file load the dataset fer2013 as arrays. 
-import csv
-import numpy as np
-import cv2
-import matplotlib.pyplot as plt
-
-
-nbrImages = 35887
-maxNbrImages = nbrImages
-emotions = ["Angry", "Disgust", "Fear", "Happy", "Sad", "Suprise", "Neutral"]
-
-def traitement(a,b,c):  #For testing
-	pass
-	# arr = strToArray(b)
-	# print(a)
-	# plt.imshow(arr)
-	# plt.show()
-	# pass
-
-def strToArray(string):  #Fer2013 provides images as string so it needs to be transformed
-	A = []
-	lenght = len(string)
-	i=0
-	nbr = ""
-
-	while i<lenght:
-		car = string[i]
-
-		if car != " ":
-			nbr += car
-		else:
-			A.append(int(nbr))
-			nbr = ""
-		i+=1
-	A.append(int(nbr))
-	
-	A = np.array(A)
-	A = np.reshape(A, (48, 48))
-
-	return A
-
-
-
-#LOAD DATA AS ARRAY
-X = []
-Y = []
-
-filename = "data/fer2013.csv"
-
-with open(filename,'r',encoding='utf-8') as file:
-	
-	csv_reader = csv.reader(file, delimiter=",")
-	next(csv_reader)  								#Passe la ligne de titre
-	
-	i=0
-	for row in csv_reader:
-
-		i+=1
-		if i>maxNbrImages: break
-		
-		emotionNbr, stringImage, typeImage = row
-		traitement(emotionNbr, stringImage, typeImage)
-
-		X.append(strToArray(stringImage))
-		Y.append(emotionNbr)
-
-		print(f"Image {i} sur {nbrImages} chargée", end='\r')
-
-X = np.array(X)
+#This file load the dataset fer2013 as arrays. 
+import csv
+import numpy as np
+import cv2
+import matplotlib.pyplot as plt
+
+
+nbrImages = 35887
+maxNbrImages = nbrImages
+emotions = ["Angry", "Disgust", "Fear", "Happy", "Sad", "Suprise", "Neutral"]
+
+def traitement(a,b,c):  #For testing
+	pass
+	# arr = strToArray(b)
+	# print(a)
+	# plt.imshow(arr)
+	# plt.show()
+	# pass
+
+def strToArray(string):  #Fer2013 provides images as string so it needs to be transformed
+	A = []
+	lenght = len(string)
+	i=0
+	nbr = ""
+
+	while i<lenght:
+		car = string[i]
+
+		if car != " ":
+			nbr += car
+		else:
+			A.append(int(nbr))
+			nbr = ""
+		i+=1
+	A.append(int(nbr))
+	
+	A = np.array(A)
+	A = np.reshape(A, (48, 48))
+
+	return A
+
+
+
+#LOAD DATA AS ARRAY
+X = []
+Y = []
+
+filename = "data/fer2013.csv"
+
+with open(filename,'r',encoding='utf-8') as file:
+	
+	csv_reader = csv.reader(file, delimiter=",")
+	next(csv_reader)  								#Passe la ligne de titre
+	
+	i=0
+	for row in csv_reader:
+
+		i+=1
+		if i>maxNbrImages: break
+		
+		emotionNbr, stringImage, typeImage = row
+		traitement(emotionNbr, stringImage, typeImage)
+
+		X.append(strToArray(stringImage))
+		Y.append(emotionNbr)
+
+		print(f"Image {i} sur {nbrImages} chargée", end='\r')
+
+X = np.array(X)
 Y = np.array(Y)
\ No newline at end of file
diff --git a/modeleTest/saved_model.pb b/modeleTest/saved_model.pb
new file mode 100644
index 0000000000000000000000000000000000000000..d9ff2df02e026bffeaed67c3715a9d0e479e7f68
Binary files /dev/null and b/modeleTest/saved_model.pb differ
diff --git a/modeleTest/variables/variables.data-00000-of-00001 b/modeleTest/variables/variables.data-00000-of-00001
new file mode 100644
index 0000000000000000000000000000000000000000..9183441fa3bb58ec1aae127cdb739e7c600b4dbc
Binary files /dev/null and b/modeleTest/variables/variables.data-00000-of-00001 differ
diff --git a/modeleTest/variables/variables.index b/modeleTest/variables/variables.index
new file mode 100644
index 0000000000000000000000000000000000000000..d9b59d22195efc8b78c32b4e34aaf2e374e0ea20
Binary files /dev/null and b/modeleTest/variables/variables.index differ
diff --git a/utils.py b/utils.py
index 6edd9d5accb809cbd3fd906a6bdf8e464f2e2866..18799bf3421789fdf58c2d5368c5443e322eba7a 100644
--- a/utils.py
+++ b/utils.py
@@ -1,24 +1,29 @@
-def afficher(image):
-  if len(image.shape) == 3:
-    if image.shape[2] == 3: # (h,l,3)
-      plt.imshow(image)
-    elif image.shape[2] == 1: # (h,l,1)->(h,l)
-      image2 = image
-      plt.imshow(tf.squeeze(image))
-  elif len(image.shape)== 2:  # (h,l)
-    plt.imshow(image)
-
-def predir():
-  pass
-
-def normAndResize(image):
-  #For an array image of shape (a,b,c) or (a,b), transform it into (h,l,p). Also normalize it.
-
-  image = cv2.resize(image, dsize=(h,l), interpolation=cv2.INTER_CUBIC) #resize for h and l                                       #
-  if len(image.shape) == 3 and p==1 and image.shape[2] != 1 : #if we want (h,l,3) -> (h,l,1) , we first transform it in to (h,l) (grey the image)
-    image = image.mean(2)
-  image = np.reshape(image, (h,l,p))                                    #restore third dimension
-  image = image.astype("float32")
-  image = image/255                                                     #normalisation
-
+import numpy as np
+import cv2
+
+def afficher(image):
+  if len(image.shape) == 3:
+    if image.shape[2] == 3: # (h,l,3)
+      plt.imshow(image)
+    elif image.shape[2] == 1: # (h,l,1)->(h,l)
+      image2 = image
+      plt.imshow(tf.squeeze(image))
+  elif len(image.shape)== 2:  # (h,l)
+    plt.imshow(image)
+
+def predir(modele, image):
+  #Return output of image from modele
+  modele.predict(np.array([image]))[0,:]
+
+def normAndResize(image, input_shape):
+  #For an array image of shape (a,b,c) or (a,b), transform it into (h,l,p). Also normalize it.
+
+  h,l,p = input_shape
+  image = cv2.resize(image, dsize=(h,l), interpolation=cv2.INTER_CUBIC) #resize for h and l                                       #
+  if len(image.shape) == 3 and p==1 and image.shape[2] != 1 : #if we want (h,l,3) -> (h,l,1) , we first transform it in to (h,l) (grey the image)
+    image = image.mean(2)
+  image = np.reshape(image, (h,l,p))                                    #restore third dimension
+  image = image.astype("float32")
+  image = image/255                                                     #normalisation
+
   return image
\ No newline at end of file
diff --git a/videoCapture.py b/videoCapture.py
index 4d719260ae439a022d69c025c4923578992f79c4..1f65de96ca5b87d2444a6e4c4dbe564f12effeaf 100644
--- a/videoCapture.py
+++ b/videoCapture.py
@@ -1,19 +1,19 @@
-#Use your camera for processing the video. Stop by pressing Q
-import cv2
-import imageProcess as ip
-
-cap = cv2.VideoCapture(-1)   #0 means we capture the first camera, your webcam probably
-
-while cap.isOpened():
-    ret, frame = cap.read()  #Read next video frame, stop if frame not well read
-    if not ret: break       
-    
-    ip.imageProcess(frame)                          #Process frame
-    
-    cv2.imshow("Image traitée", frame)  			#Show processed image in a window
-
-    if cv2.waitKey(1) & 0xFF == ord('q'):			#If you press Q, stop the while and so the capture
-        break          
-
-cap.release()
+#Use your camera for processing the video. Stop by pressing Q
+import cv2
+import imageProcess as ip
+
+cap = cv2.VideoCapture(0)   #0 means we capture the first camera, your webcam probably
+
+while cap.isOpened():
+    ret, frame = cap.read()  #Read next video frame, stop if frame not well read
+    if not ret: break       
+    
+    ip.imageProcess(frame)                          #Process frame
+    
+    cv2.imshow("Image traitée", frame)  			#Show processed image in a window
+
+    if cv2.waitKey(1) & 0xFF == ord('q'):			#If you press Q, stop the while and so the capture
+        break          
+
+cap.release()
 cv2.destroyAllWindows()
\ No newline at end of file