diff --git a/configs-npb-gapbs/restore_both.py b/configs-npb-gapbs/restore_both.py index 3d1e4fd7d9..225031e072 100755 --- a/configs-npb-gapbs/restore_both.py +++ b/configs-npb-gapbs/restore_both.py @@ -185,7 +185,7 @@ def run(): for interval_number in range(100): print("Interval number: {}".format(interval_number)) exit_event = m5.simulate(10_000_000_000) # 10 ms - # m5.stats.dump() + #m5.stats.dump() if exit_event.getCause() != "simulate() limit reached": if ( diff --git a/data-plots.ipynb b/data-plots.ipynb deleted file mode 100644 index 84a5a7818e..0000000000 --- a/data-plots.ipynb +++ /dev/null @@ -1,2874 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "import sys\n", - "from matplotlib import pyplot as plt\n", - "import os\n", - "import statistics\n", - "\n", - "cmap = plt.get_cmap('Set1')\n", - "\n", - "Stats = ['simSeconds ',\n", - "'hostSeconds ',\n", - "'system.mem_ctrl.readReqs ',\n", - "'system.mem_ctrl.writeReqs ',\n", - "'system.mem_ctrl.servicedByWrQ ',\n", - "'system.mem_ctrl.mergedWrBursts ',\n", - "'system.mem_ctrl.numTotHits ',\n", - "'system.mem_ctrl.numTotMisses ',\n", - "'system.mem_ctrl.numColdMisses ',\n", - "'system.mem_ctrl.numHotMisses ',\n", - "'system.mem_ctrl.numRdMissClean ',\n", - "'system.mem_ctrl.numRdMissDirty ',\n", - "'system.mem_ctrl.numRdHit ',\n", - "'system.mem_ctrl.numWrMissClean ',\n", - "'system.mem_ctrl.numWrMissDirty ',\n", - "'system.mem_ctrl.numWrHit ',\n", - "'system.mem_ctrl.numRdHitDirty ',\n", - "'system.mem_ctrl.numRdHitClean ',\n", - "'system.mem_ctrl.numWrHitDirty ',\n", - "'system.mem_ctrl.numWrHitClean ',\n", - "'system.o3Cpu0.thread_0.numInsts ',\n", - "'system.o3Cpu1.thread_0.numInsts ',\n", - "'system.o3Cpu2.thread_0.numInsts ',\n", - "'system.o3Cpu3.thread_0.numInsts ',\n", - "'system.o3Cpu4.thread_0.numInsts ',\n", - "'system.o3Cpu5.thread_0.numInsts ',\n", - "'system.o3Cpu6.thread_0.numInsts ',\n", - "'system.o3Cpu7.thread_0.numInsts ',\n", - "'system.mem_ctrl.avgRdBWSys ',\n", - "'system.mem_ctrl.avgWrBWSys ',\n", - "'system.mem_ctrl.avgORBLen ',\n", - "'system.far_mem_ctrl.avgRdBWSys ',\n", - "'system.far_mem_ctrl.avgWrBWSys ',\n", - "'system.loc_mem_ctrl.avgRdBWSys ',\n", - "'system.loc_mem_ctrl.avgWrBWSys ',\n", - "'system.loc_mem_ctrl.dram.readBursts ',\n", - "'system.loc_mem_ctrl.dram.writeBursts ',\n", - "'system.loc_mem_ctrl.dram_2.readBursts ',\n", - "'system.loc_mem_ctrl.dram_2.writeBursts ',\n", - "'system.far_mem_ctrl.dram.readBursts ',\n", - "'system.far_mem_ctrl.dram.writeBursts ',\n", - "'system.loc_mem_ctrl.dram.avgRdBW ',\n", - "'system.loc_mem_ctrl.dram.avgWrBW ',\n", - "'system.loc_mem_ctrl.dram_2.avgRdBW ',\n", - "'system.loc_mem_ctrl.dram_2.avgWrBW ',\n", - "'system.far_mem_ctrl.dram.avgRdBW ',\n", - "'system.far_mem_ctrl.dram.avgWrBW ',\n", - "'system.loc_mem_ctrl.dram.busUtil ',\n", - "'system.loc_mem_ctrl.dram.busUtilRead ',\n", - "'system.loc_mem_ctrl.dram.busUtilWrite ',\n", - "'system.loc_mem_ctrl.dram_2.busUtil ',\n", - "'system.loc_mem_ctrl.dram_2.busUtilRead ',\n", - "'system.loc_mem_ctrl.dram_2.busUtilWrite ',\n", - "'system.far_mem_ctrl.dram.busUtil ',\n", - "'system.far_mem_ctrl.dram.busUtilRead ',\n", - "'system.far_mem_ctrl.dram.busUtilWrite ',\n", - "'system.far_mem_ctrl.dram.bytesRead ',\n", - "'system.far_mem_ctrl.dram.bytesWritten ',\n", - "'system.loc_mem_ctrl.dram.bytesRead ',\n", - "'system.loc_mem_ctrl.dram.bytesWritten ',\n", - "'system.loc_mem_ctrl.dram_2.bytesRead ',\n", - "'system.loc_mem_ctrl.dram_2.bytesWritten ',\n", - "'system.mem_ctrl.avgTimeTagCheckRes ',\n", - "'system.mem_ctrl.avgTimeTagCheckResRd ',\n", - "'system.mem_ctrl.avgTimeTagCheckResWr ',\n", - "'system.mem_ctrl.avgPktRespTimeRd ',\n", - "'system.mem_ctrl.avgPktRespTimeWr ',\n", - "'system.mem_ctrl.avgPktORBTime ',\n", - "'system.mem_ctrl.avgPktORBTimeRd ',\n", - "'system.mem_ctrl.avgPktORBTimeWr ',\n", - "'system.mem_ctrl.avgTimeInLocRead ',\n", - "'system.mem_ctrl.avgTimeInLocWrite ',\n", - "'system.mem_ctrl.avgTimeInFarRead ',\n", - "'system.mem_ctrl.missRatio ',\n", - "'system.loc_mem_ctrl.dram.actDelayedDueToTagAct ',\n", - "'system.loc_mem_ctrl.noCandidBSlot ',\n", - "'system.loc_mem_ctrl.foundCandidBSlot ',\n", - "'system.loc_mem_ctrl.foundCandidBSlotRH ',\n", - "'system.loc_mem_ctrl.foundCandidBSlotRMC ',\n", - "'system.loc_mem_ctrl.foundCandidBSlotRMD ',\n", - "'system.loc_mem_ctrl.dram.readMC',\n", - "'system.loc_mem_ctrl.dram.writeBurstsTC'\n", - " ]\n", - "\n", - "dfCols = [\n", - " 'app',\n", - " 'simSeconds',\n", - " 'hostSeconds',\n", - " 'readReqs',\n", - " 'writeReqs',\n", - " 'servicedByWrQ',\n", - " 'mergedWrBursts',\n", - " 'numTotHits',\n", - " 'numTotMisses',\n", - " 'numColdMisses',\n", - " 'numHotMisses',\n", - " 'numRdMissClean',\n", - " 'numRdMissDirty',\n", - " 'numRdHit',\n", - " 'numWrMissClean',\n", - " 'numWrMissDirty',\n", - " 'numWrHit',\n", - " 'numRdHitDirty',\n", - " 'numRdHitClean',\n", - " 'numWrHitDirty',\n", - " 'numWrHitClean',\n", - " 'numInsts0',\n", - " 'numInsts1',\n", - " 'numInsts2',\n", - " 'numInsts3',\n", - " 'numInsts4',\n", - " 'numInsts5',\n", - " 'numInsts6',\n", - " 'numInsts7',\n", - " 'avgRdBWSys',\n", - " 'avgWrBWSys',\n", - " 'avgORBLen',\n", - " 'farAvgRdBWSys',\n", - " 'farAvgWrBWSys',\n", - " 'locAvgRdBWSys',\n", - " 'locAvgWrBWSys',\n", - " 'readBursts1',\n", - " 'writeBursts1',\n", - " 'readBursts2',\n", - " 'writeBursts2',\n", - " 'readBursts3',\n", - " 'writeBursts3',\n", - " 'loc1AvgRdBW',\n", - " 'loc1AvgWrBW',\n", - " 'loc2AvgRdBW',\n", - " 'loc2AvgWrBW',\n", - " 'farAvgRdBW',\n", - " 'farAvgWrBW',\n", - " 'loc1BusUtil',\n", - " 'loc1BusUtilRead',\n", - " 'loc1BusUtilWrite',\n", - " 'loc2BusUtil',\n", - " 'loc2BusUtilRead',\n", - " 'loc2BusUtilWrite',\n", - " 'farBusUtil',\n", - " 'farBusUtilRead',\n", - " 'farBusUtilWrite',\n", - " 'farBytesRead',\n", - " 'farBytesWritten',\n", - " 'loc1BytesRead',\n", - " 'loc1BytesWritten',\n", - " 'loc2BytesRead',\n", - " 'loc2BytesWritten',\n", - " 'avgTimeTagCheckRes',\n", - " 'avgTimeTagCheckResRd',\n", - " 'avgTimeTagCheckResWr',\n", - " 'avgPktRespTimeRd',\n", - " 'avgPktRespTimeWr',\n", - " 'avgPktORBTime',\n", - " 'avgPktORBTimeRd',\n", - " 'avgPktORBTimeWr',\n", - " 'avgTimeInLocRead',\n", - " 'avgTimeInLocWrite',\n", - " 'avgTimeInFarRead',\n", - " 'missRatio',\n", - " 'actDelayedDueToTagAct',\n", - " 'noCandidBSlot',\n", - " 'foundCandidBSlot',\n", - " 'foundCandidBSlotRH',\n", - " 'foundCandidBSlotRMC',\n", - " 'foundCandidBSlotRMD',\n", - " 'readBurstsMC',\n", - " 'writeBurstsTC'\n", - "\n", - " ]\n", - "##########################################################\n", - "\n", - "def getStat(filename, stat, index):\n", - " filename = os.path.join(filename).replace('\\\\','/')\n", - " #print(stat)\n", - " #print(filename)\n", - " try:\n", - " x = 0\n", - " with open(filename) as f:\n", - " readlines = f.readlines()\n", - " for l in readlines:\n", - " if stat in l and x < (index-1):\n", - " x = x+1\n", - " elif stat in l and x == (index-1):\n", - " return l\n", - " return 0.0 #for cases where stat was not found\n", - " except: #for cases where the file was not found\n", - " return 0.0\n", - "\n", - "##########################################################\n", - "\n", - "def creatDataFrame(dataDir, suite, index):\n", - " app = []\n", - " if suite == \"GAPBS\":\n", - " app = ['bc', 'bfs', 'cc', 'pr', 'sssp', 'tc']\n", - " if suite == \"NPB\":\n", - " app = ['bt', 'cg', 'ft', 'is', 'lu', 'mg', 'sp', 'ua']\n", - " rows = []\n", - " i = 0\n", - " for a in app:\n", - " stats = [a]\n", - " for stat in Stats:\n", - " time_file_path = '{}/{}/stats.txt'.format(dataDir, a)\n", - " ret_line = getStat(time_file_path, stat, index[i])\n", - "\n", - " if ret_line != 0:\n", - " #if ret_line=='nan' :\n", - " # stat_val = 0\n", - " #else:\n", - " stat_val = ret_line.split()[1]\n", - " else:\n", - " stat_val = 0\n", - " stats.append(stat_val)\n", - "\n", - " rows.append(stats)\n", - " i = i+1\n", - " df = pd.DataFrame(rows, columns= dfCols)\n", - " df['totNumInsts'] = df['numInsts0'].astype(int)+df['numInsts1'].astype(int)+df['numInsts2'].astype(int)+df['numInsts3'].astype(int)+df['numInsts4'].astype(int)+df['numInsts5'].astype(int)+df['numInsts6'].astype(int)+df['numInsts7'].astype(int)\n", - " df['totBW'] = (df['avgRdBWSys'].astype(float)+df['avgWrBWSys'].astype(float))/1000000000\n", - " df['coldRate'] = (df['numColdMisses'].astype(float) / (df['numTotMisses'].astype(float)+df['numTotHits'].astype(float))) *100\n", - " df['injRate'] = (df['readReqs'].astype(float) + df['writeReqs'].astype(float))*64/1000000000 / df['simSeconds'].astype(float)\n", - " df['BIPS'] = (df['totNumInsts'].astype(float)/1000000000)/df['simSeconds'].astype(float)\n", - " \n", - " df['accAmp'] = (df['farBytesRead'].astype(float) + df['farBytesWritten'].astype(float) +\n", - " df['loc1BytesRead'].astype(float) + df['loc1BytesWritten'].astype(float) + \n", - " df['loc2BytesRead'].astype(float) + df['loc2BytesWritten'].astype(float)) / (df['readReqs'].astype(float) * 64 + df['writeReqs'].astype(float) * 64)\n", - " \n", - " df['BWBloat'] = (df['loc1AvgRdBW'].astype(float) + df['loc1AvgWrBW'].astype(float) +\n", - " df['loc2AvgRdBW'].astype(float) + df['loc2AvgWrBW'].astype(float) +\n", - " df['farAvgRdBW'].astype(float) + df['farAvgWrBW'].astype(float)) / ((df['avgRdBWSys'].astype(float) + df['avgWrBWSys'].astype(float)) / 1000000)\n", - " \n", - "\n", - " df['locMemReadBursts'] = df['readBursts1'].astype(float) + df['readBurstsMC'].astype(float)\n", - " df['locMemWriteBursts'] = df['writeBursts1'].astype(float) + df['writeBurstsTC'].astype(float)\n", - " \n", - " \n", - " return df" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "df_gap22_cas = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/cascade/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_cas = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/cascade/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap25_cas = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/cascade/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_cas = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/cascade/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_ram = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/rambus/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_ram = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/rambus/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap25_ram = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/rambus/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_ram = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/rambus/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "\n", - "df_gap22_orc = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/oracle/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_orc = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/oracle/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap25_orc = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/oracle/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_orc = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/oracle/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_noDC = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/noDC/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_noDC = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/noDC/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap25_noDC = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/noDC/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_noDC = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/noDC/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "df_gap22_ram_prob = creatDataFrame(\"/home/babaie/projects/rambusDesign/tagProbOptRealImplOnSetAssoBranch/dramCacheController/newResults/rambusTagPr/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [7,5,7,6,5,15])\n", - "df_npbC_ram_prob = creatDataFrame(\"/home/babaie/projects/rambusDesign/tagProbOptRealImplOnSetAssoBranch/dramCacheController/newResults/rambusTagPr/1GB_8GB_g22_nC/NPB\", \"NPB\",[3,6,3,6,11,8,8,7])\n", - "\n", - "df_gap25_ram_prob = creatDataFrame(\"/home/babaie/projects/rambusDesign/tagProbOptRealImplOnSetAssoBranch/dramCacheController/newResults/rambusTagPr/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [4,4,5,4,4,7])\n", - "df_npbD_ram_prob = creatDataFrame(\"/home/babaie/projects/rambusDesign/tagProbOptRealImplOnSetAssoBranch/dramCacheController/newResults/rambusTagPr/1GB_85GB_g25_nD/NPB\", \"NPB\",[7,4,2,3,9,5,7,1])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAACXCAYAAAAYoCHkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAcAUlEQVR4nO3de5hU1Znv8e8PRVs9KAHRMCJCoiESb5GWiEEl4i3GDJKjqMcx6GCYZMzES8QoM9HEo0GjER01ZghGiZp4i5cM8RIP0mKMN1AQFWWIgdiGCBIvYCSKvuePvVqLtrq6uqvr0sXv8zz9dO21d+31dtWuXW+vvfZaigjMzMzM6kmPagdgZmZm1tWc4JiZmVndcYJjZmZmdccJjpmZmdUdJzhmZmZWd5zgmJmZWd0pW4Ij6WeSVkh6Jqesj6T7Jf1P+v2xVC5J/ylpiaSnJe1ZrrjMzMys/pWzBec64NBWZWcBsyJiJ2BWWgb4IrBT+pkIXF3GuMzMzKzOlS3BiYg5wF9bFY8BZqTHM4Ajcsp/HplHgd6S+pcrNjMzM6tvle6Ds21ELE+P/wJsmx5vB7yUs11zKjMzMzPrsI2rVXFEhKQOzxMhaSLZZSy22GKLYZ/+9Ke7PDYza9sLL7wAwJAhQ6ociZkZzJs379WI6Ne6vNIJziuS+kfE8nQJakUqfxnYPme7AansIyJiGjANoLGxMebOnVvOeM2slVGjRgHQ1NRU1TjMzAAkLctXXulLVL8GxqfH44G7csq/mu6m2ht4I+dSlpmZmVmHlK0FR9IvgVHA1pKagXOBC4FbJE0AlgHj0uZ3A4cBS4C/ASeWKy4zMzOrf2VLcCLi2DZWjc6zbQAnlysWMzOzanj33Xdpbm5m7dq11Q6lLjQ0NDBgwAB69uzZ7rZV62RsZmZW75qbm+nVqxeDBg1CUrXD6dYiglWrVtHc3MzgwYPb3d5TNZiZmZXJ2rVr6du3r5ObLiCJvn37Ft0a5gTHzMysjCqV3MyaNYtRo0ax3377MXbsWFatWlWWepYuXcoJJ5zQ7nbXXXcd06dPb3e7kSNHFl13R15LX6IyMzPr5lauXMl5553HzJkz6dWrF4sXL+add96pdlhV5QTHzMysAvY+976Snv/o9w9pc93dd9/N8ccfT69evQD41Kc+BcC1117LjBkzWLNmDT/4wQ84+OCDmTx5MnPmzKFnz57ceOON9OjRgxNPPJG3336bESNGMGXKFMaNG8crr7zCpptuym233caWW27JOeecw+zZsxk6dOgH9c6cOZMf/vCHrFu3jnPOOYdDD209BeX68u0Xsv41p5xyCvvssw+jR49mwoQJrF69mp133pkf//jHnXq9fInKzMysm1u+fDn9+390Csejjz6apqYmZs2axSWXXALAww8/zJw5c5g9ezb9+/dnypQpnHbaaTQ1NXHBBRcA2eWlBx98kHHjxnHzzTezfPlyHn/8cR566CH2339/AN5//30uueQSHnjgAZqamrj44ovbjbP1fluceuqpjBgxgmOOOYYLL7yQs88+m9mzZ9OrVy8eeeSRTr0mbsExMzPr5vr378+f//znj5Tfd999XH755UQEK1ZkkweceeaZjB8/nr59+3LBBRewePHiDxKbHj168N577zFp0iQWLlzIm2++ydixY1m2bBm77bYbAMOGDeO3v/0tr776KosWLeLAAw8EYMWKFUREm/1k8u0XYPHixTQ0NHDZZZcBsGjRIs466ywksWbNGoYPH96p18QtOGZmZt3cYYcdxg033MDq1asBWLJkCcuXL2fKlCncc8893HXXXfTokX3lH3DAAVx//fVss802zJw5kyFDhvDoo48CWavM/Pnzeeutt5gzZw4nn3wyEcEOO+zAwoULAXjqqacA2Hrrrdl1112ZNWsWTU1NLFiwoGAn4Hz7hexy2rHHHsukSZOAbJ67Sy+9lKamJubOncuYMWM69Zq4BcfMzKyb69evH9/97nc5/PDDiQj69OnDNddcw+GHH85+++3H8OHD6d27NwBjxozh7bffBuDWW29l//33Z/z48Zx//vnss88+TJ48mSVLlnDooYey/fbbs91229G/f3+GDRvGvvvuy+677w5krT2nn346o0ePRhJDhw7lqquuWi+uSy+9lJtuugmAqVOnfmS/LSZMmMCUKVO46KKLmDx5MhMnTuSNN96gR48eTJ8+nUGDBnX4NVFLBtUdebJNs8rzZJtmxVu0aBE777xztcOoK61fU0nzIqKx9XbtXqJKE2D+k6Rz0vJASZ27IGZmZmZWAcX0wfkxMAJomVtqNXBV25u3T9Jpkp6V9IykX0pqkDRY0mOSlki6WdImpdRhZmZmG65iEpzPRcTJwFqAiHgN6HTyIWk74FtAY0TsAmwEHANcBEyNiB2B14AJna3DzMzMNmzFJDjvStoICABJ/YD3S6x3Y2AzSRsDmwPLgQOA29L6GcARJdZhZmZWdd25r2ut6chrWUyC85/AHcA2ki4AfgdM6VxoEBEvA5cAfyJLbN4A5gGvR8S6tFkzsF3+PZiZmXUPDQ0NrFq1yklOF2iZTbyhoaGo7du9TTwibpQ0DxgNCDgiIhZ1NkBJHwPGAIOB14FbgcJjO6///InARICBAwd2NgwzM7OyGzBgAM3NzaxcubLaodSFhoYGBgwYUNS27SY4kq6PiOOB5/OUdcaBwB8jYmXa1+3A54HekjZOrTgDgJfzPTkipgHTILtNvJMxmJmZlV3Pnj0ZPHhwtcPYIBVzieozuQupP86wEur8E7C3pM2VDXk4GngOmA0cmbYZD9xVQh1mZma2AWszwZF0tqTVwG6S3pS0Oi2voITkIyIeI+tM/CSwMMUwDfgOcLqkJUBf4JrO1mFmZmYbtjYvUUXEFGCKpCkRcXZXVhoR5wLntip+EfAAgmZmZlayYjoZn506Bu8ENOSUzylnYGZmZmadVUwn45OAU8g6/s4H9gYeIRu3xszMzKzmFNPJ+BRgL2BZRHwB+CzZ7d1mZmZmNamYBGdtRKwFkLRpRDwPDClvWGZmZmad1+4lKqBZUm/gTuB+Sa8By8oZlJmZmVkpiulkPDY9/J6k2cBWwD1ljcrMzMysBMVcovpARDxINqv43eUJx8zMzKx0hQb6O0DSYklrJN0gaVdJc8km2ry6ciGamZmZdUyhFpwfkU1q2Zds5OFHgOsiYlhE3F6J4MzMzMw6o1AfnIiIpvT4TkkvR8SVFYjJzMzMrCSFEpzekr6Su23usltxzMzMrFYVSnAeBL6cszwnZzkAJzhmZmZWkwpNtnliuSpN4+pMB3YhS5b+GXgBuBkYBCwFxkXEa+WKwczMzOpXh24T70KXA/dGxKeB3YFFwFnArIjYCZiVls3MzMw6rOIJjqStgP2AawAi4p2IeB0YA8xIm80Ajqh0bGZmZlYfqtGCMxhYCVwr6SlJ0yVtAWwbEcvTNn8Btq1CbGZmZlYH2k1wJB0lqVd6/B+Sbpe0Zwl1bgzsCVwdEZ8F3qLV5aiICLK+OfnimShprqS5K1euLCEMMzMzq1fFtOB8NyJWSxoJHEh2aamUkYybgeaIeCwt30aW8LwiqT9A+r0i35MjYlpENEZEY79+/UoIw8zMzOpVMQnOe+n3l4BpEfEbYJPOVhgRfwFekjQkFY0GngN+DYxPZeOBuzpbh5mZmW3Y2p1NHHhZ0n8BBwEXSdqU0vvu/Btwo6RNgBeBE9M+b5E0AVgGjCuxDjMzM9tAFZPgjAMOBS6JiNfT5aNJpVQaEfOBxjyrRpeyXzMzMzMoLsHpD/wmIv4uaRSwG/DzcgZlZmZmVopiLjX9CnhP0o7ANGB74BdljcrMzMysBMUkOO9HxDrgK8AVETGJrFXHzMzMrCYVk+C8K+lY4KvAzFTWs3whmZmZmZWmmATnRGAEcEFE/FHSYOD68oZlZmZm1nntdjKOiOeAb+Us/xG4qJxBmZmZmZWizQRH0i0RMU7SQvJMmxARu5U1MjMzM7NOKtSCc0r6fXglAjEzMzPrKm0mOC0ze0fEssqFY2ZmZla6QpeoVrP+pSmlZZFN+L1lmWMzMzMz65RCl6hmAR8Hbgduiog/VSYkMzMzs9K0eZt4RBwBHAKsBH4q6UFJ/yqpT1dULGkjSU9JmpmWB0t6TNISSTeniTjNzMzMOqzgODgR8UZEXAt8Efgv4DzghC6q+xRgUc7yRcDUiNgReA2Y0EX1mJmZ2QamYIIjaR9JVwBPAvsAYyPi0lIrlTQA+BIwPS0LOAC4LW0yAzii1HrMzMxsw1Sok/FS4HXgJmAisC6V7wkQEU+WUO9lwJlAr7TcF3g9zXkF0AxsV8L+zczMbANWqJPxUrK7pg4BDia7e6pFkLW4dJikw4EVETFP0qhOPH8iWcLFwIEDOxOCmZmZ1blC4+CMKlOdnwf+UdJhQAOwJXA50FvSxqkVZwDwchtxTQOmATQ2Nn5khGUzMzOzYibb7FIRcXZEDIiIQcAxwAMRcRwwGzgybTYeuKvSsZmZmVl9qHiCU8B3gNMlLSHrk3NNleMxMzOzbqrd2cTLKSKagKb0+EVgeDXjMTMzs/pQ6C6qPQs9scS7qMzMzMzKplALzo/S7wagEVhAdifVbsBcYER5QzMzM7Nq2vvc+0rex6PfP6QLIum4QlM1fCEivgAsB/aMiMaIGAZ8ljbucDIzMzOrBcV0Mh4SEQtbFiLiGWDn8oVkZmZmVppiOhk/LWk6cENaPg54unwhmZmZmZWmmATnROAbZJNjAswBri5bRGZmZmYlajfBiYi1wNT0Y2ZmZlbzCt0mvpBszqm8ImK3skRkZmZmVqJCLTiHVywKMzMzsy5UaLLNZS2PJW0L7JUWH4+IFeUOzMzMzKyz2r1NXNI44HHgKGAc8JikIws/y8zMzKx6irmL6t+BvVpabST1A/4fcFtnKpS0PfBzYFuyPj7TIuJySX2Am4FBwFJgXES81pk6zMzMbMNWzEB/PVpdklpV5PPasg74dkQMBfYGTpY0FDgLmBUROwGz0rKZmZlZhxXTgnOvpPuAX6blo4F7OlthRCwnm/6BiFgtaRGwHTAGGJU2m0E2y/h3OluPmZmZbbiKGQdnkqSvACNT0bSIuKMrKpc0iGxuq8eAbVPyA/AXsktYZmZmZh1WaBycHcmSjocj4nbg9lQ+UtInI+IPpVQs6X8BvwJOjYg3JX2wLiJCUt4xeCRNBCYCDBw4sJQQzMwqqjvPzGzW3RRqwbkMODtP+Rtp3Zc7W6mknmTJzY0peQJ4RVL/iFguqT+Q91b0iJgGTANobGxscyBCMzPLrysSLXCyZbWtUGfhbXNnEW+RygZ1tkJlTTXXAIsi4tKcVb8GxqfH44G7OluHmZmZbdgKteD0LrBusxLq/DxwPLBQ0vxUNhm4ELhF0gRgGdmYO2ZmZmYdVijBmSvpaxHx09xCSScB8zpbYUT8DlAbq0d3dr9mZmZmLQolOKcCd0g6jg8TmkZgE2BsmeMyMzMz67RCc1G9Auwj6QvALqn4NxHxQEUiMzMzM+ukYsbBmQ3MrkAsZmZmZl2ilCkXzMzMzGqSIrrvUDK9evWKYcOGVTsMsw3K/PnzAdhjjz2qGkd39OTSv5a8jz0H9amJOKBrYrHaVivHbCEPPvjgvIhobF1ezFxUZtZNdIeTkZlZJXTrBGfIkCE0NTVVOwyzmtEVI9Q2tTM67ahRo7LtCnz2ammk3FqaHqES70+l4oCuicU+qt4+P+U+TnKnesrlPjhmZmZWd7p1C46ZmXVv9dbC5vm5aodbcMzMzKzuuAXHrET+r8/MrPa4BcfMzMzqTk214Eg6FLgc2AiYHhEXVjkkq1G1dJeBmZnVnppJcCRtBFwFHAQ0A09I+nVEPFeNePwFamZm1n3V0iWq4cCSiHgxIt4BbgLGVDkmMzMz64ZqpgUH2A54KWe5GfhclWKpKe7EamZm1jE1MxeVpCOBQyPipLR8PPC5iPhmq+0mAhPT4hDghYoGur6tgVerWH+uWomlVuIAx5JPrcQBjiWfWokDHEs+tRIHOJZcO0REv9aFtdSC8zKwfc7ygFS2noiYBkyrVFCFSJqbb4KvaqiVWGolDnAstRwHOJZajgMcSy3HAY6lGLXUB+cJYCdJgyVtAhwD/LrKMZmZmVk3VDMtOBGxTtI3gfvIbhP/WUQ8W+WwzMzMrBuqmQQHICLuBu6udhwdUBOXypJaiaVW4gDHkk+txAGOJZ9aiQMcSz61Egc4lnbVTCdjMzMzs65SS31wzMzMzLqEE5wiSRok6ZlajEHSvpKelTRf0mbViM1qk6Tekv612nFAweP3VEmbVyOmWiHpW5IWSXpL0tAqxvH7atWdS9Kaasdg3Z8TnPpwHDAlIvaIiLerHUwtS1OCbEh6AzWR4BRwKrBBJzhk79FBwK1A1RKciNinWnWbdTUnOB2zsaQb039at0naXNJekn4vaYGkxyX1qnAM3wLGAf83lfeXNCe15jwjad9yBiPpq5KeTn//9ZK2lXRHWl4gqWInzNRC8Hye92ippIskPQkc1YX1bSHpN+nvfEbS0ZIulPRcek0uSdsdldYvkDQnlZ0g6S5JTZL+R9K5XRVXKxcCn0zHw8WSviNpYYqlGpPZ5jt+/wGYLWl2JQLIc8x+UtKj6XU5v9KtB5J+AnwC+CMwHrg4vV+frGQcKZY16XdFzyMF4hklaWbO8pWSTihznS3nkeskLU7H64GSHk6f1eGS+km6P7WcT5e0TNLWZYwp37lmqaQfpuP2cUk7lqv+nDjWa4WVdIak70n6mqQnUny/Uq20yEaEf4r4AQYBAXw+Lf8MOBN4EdgrlW0JbFzhGM4ArgOOTGXfBv49Pd4I6FXGeD4DLAa2Tst9gJuBU3Pq36rK79EZwFLgzDLU97+Bn+Ys70A2snZL5/3e6fdCYLtWZScAy4G+wGbAM0BjmV6TZ9LjLwK/BzZveb8q9d4U8f5sXaEY8h2zM4Fj0/LXgTWVfF1SvUvJRoP94LNcjZ+Wv72S55F24hgFzMwpvxI4ocx1DwLWAbuSNQLMS8eqyOZHvDPFcXba/tB0XJftGM5zrtkqHTMt79FXc1+nMr82z+QsnwF8D+ibU3Y+8G+VPF7a+nELTse8FBEPp8c3AIcAyyPiCYCIeDMi1lU4hpGt1j8BnCjpe8CuEbG6jLEcANwaEa8CRMRfU9nVafm9iHijjPXn09brc3MZ6loIHJRah/YlG3l7LXCNpK8Af0vbPQxcJ+lrZF8WLe6PiFWRXVa8nY++l13tQODaiPgbfPB+VVp7x2+55TtmR5BdGgL4RYXjqVWVPI/Uoj9GxMKIeB94FpgV2bf3QrIv+ZFkE0ITEfcCr5U5nvXONTnn1V/m/B5R5hgK2UXSQ5IWknWZ+EwVY/mAE5yOaX1P/Zs1EMN6yxExB9iP7Mv2OklfrVRgNaKt1+etLq8oYjGwJ9nJ53xgMjAcuA04HLg3bfd14D/IpiKZJ6lvO7HWsw3xb+52aug8so71v6caKlTv33Mev5+z/D5VGD+u9blG0jktq3I3q0Aobb0f1wHfjIhdge9TufepICc4HTNQUkuW/H+AR4H+kvYCkNRLUrkP/tYx/C53paQdgFci4qfAdLIPRbk8ABzV8oUtqQ8wC/hGWt5I0lZlrD+fgq9PV5L0D8DfIuIG4GKyL4StIhuw8jRg97TdJyPisYg4B1jJh3OuHSSpj7I7344ga+npaquBln5h95P9V755iqtPGeprT773JzfGcst3zD5KdgkAsiliqqmSr0WbKnweKWQZMFTSppJ6A6OrFEdrD5P1fUTSwcDHyllZnnNNy/txdM7vR8oZQ/IKsI2kvpI2JftHDrJjdrmknmQtODXBCU7HvACcLGkR2QF9BdmBdYWkBWRfIOXOXFvHcHWr9aOABZKeSrFdXq5AIptK4wLgwfT3XwqcAnwhNVXOo/J3hLT3+nSlXYHHJc0HziX7z2WmpKfJvrhPT9tdnDoCPkPWB2ZBKn8c+BXwNPCriJjb1QFGxCrg4VT3aLL53eammM/o6vqKkO/9mQbcW4lOxm0cs6cCp6f3bUeg0pdVc90ETJL0VDU6GecYRYXOI4VExEvALWR91G4BnqpGHHl8Hzg4fa6OAv5ClpyWS+tzzfmp/GPpuD2F7J+qsoqId4HzyM5d9wPPp1XfBR4jS/yez//syvNIxlY3JA0i62i3S7VjaU+6E6QxIr5Z7Vg2dKlF6+2ICEnHkHU4HlPtuKx2pdaL9yKbQ3EEcHVE7FHhGJaSnUNerWS93UlNzUVlZlYFw4ArJQl4Hfjn6oZj3cBA4BZJPYB3gK9VOR7Lwy04ZmZmVnfcB8fMzMzqjhMcMzMzqztOcMzMzKzuOMGxbkPZPFe/kPSipHmSHpE0Nmf9ZZJeTh3/WspOkLRS2Zw6z6XRhFuXP6s0b1Vat7ekx9K6RWk013zx3CjpBWVzw/wsjQHRMn/OG+n583MG5TKzEkkKST/KWT6j5TOqbF6kl/XhHFr/mKf8eUlX554nWu3/vZzzwgJJ325rW6ttftOsW0h3uNwJzImIT0TEMLJB2Qak9T2AscBLwP6tnn5zuoVzFPADSdvmlkfEZ8juhGgZNGsGMDE9Zxey8TfyuRH4NNkYFZsBJ+Wseyjte4+IOK9Tf7SZ5fN34Ctqe3LLqemzexTws5zkpKV8KNlntvV5osXbOeeFg8jmcCvXZLhWRk5wrLs4AHgnIn7SUhARyyLiirQ4imzOmKuBY/PtICJWAH8gmxTzA8pGn96CD+eT2YZsIsyW+bSea2N/d0dCNvDVgM79aWbWAevIBocsOLBdRCxK27ZOhDYhG5C13fmj0jljIvDN9E+WdSNOcKy7+AzwZIH1x5JNOHcH8KWWy0W5JH0C+ASwJBUdnUYGfZlsVun/TuVTgRck3SHpXyQVHJ061XU8ae6pZERq3r5HUk1MPGdWR64CjlOBqWAkfY5s7qiVqei09HlfDiyOiPnFVBQRL5JNkrtNKQFb5TnBsW5J0lUpgXhC0ibAYcCdEfEm2ZDhh+Rs3pLI/BL4l5xZtFsuXX2cbBK7SQDpklIj8Fuy+ZJyE5d8fkx26eyhtPwksENE7E42ncedpfytZra+9Dn/OfCtPKtbEplLgKPjw8HeWi5RbQNskUattjrmBMe6i2fJmfAvIk4mm1upH1ky0xtYmIYvH8n6l6la+tp8LiLuaL3jdAL8b7LJMlvK/hARV6c6dlc2udx9qfPh9JbtJJ2bYjg957lvRsSa9PhuoGeB/gJm1jmXARPILi/nmpo+7/vm/NPxgTSf0r3AfpK2z7kZ4Ov5Kkktv+8BK7o2fCs3JzjWXTwANEj6Rk7Z5un3scBJETEoIgYBg8lm6t6c4o0k65+DpC/lXG/fiezk9npEHJJOnCel7U4iS66OjYj3W3Yk6eMtz5c0nOxztqpjf66ZFZJaYm8hS3KKlj6bnwf+EBEv5dwM8JM82/YDfgJcmdMSZN2E56KybiFNhHgEMFXSmWTX1d8iu7thKvD1nG3fkvQ74Mvt7PZoSSPJEpBm4IRUfnyq529knRSPi4j38jz/J8Ay4JGUz9yeLm8dCXxD0jrgbeAYnxzNyuJHQLET1p4m6Z+AnsDTZJeW89ksXeLqSfb5v55s1nnrZjwXlZmZmdUdX6IyMzOzuuMEx8zMzOqOExwzMzOrO05wzMzMrO44wTEzM7O64wTHzMzM6o4THDMzM6s7TnDMzMys7vx/sS+N/7XKpJkAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "app_gap = df_gap22_cas['app']\n", - "gap_22_cas = df_gap22_cas['coldRate'].astype(float)\n", - "\n", - "gap_25_cas = df_gap25_cas['coldRate'].astype(float)\n", - "\n", - "app_npb = df_npbC_cas['app']\n", - "npb_C_cas = df_npbC_cas['coldRate'].astype(float)\n", - "\n", - "npb_D_cas = df_npbD_cas['coldRate'].astype(float)\n", - "\n", - "# Multi bar Chart1\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "plt.ylim([0,100])\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*2, gap_22_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - "\n", - "offset = i*2+1\n", - "for i,app in enumerate(app_npb):\n", - " plt.bar(offset+i*2+1, npb_C_cas[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*2, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "plt.axhline(y=10, color='black')\n", - "\n", - "plt.ylabel(\"Cold Miss Rate\")\n", - "plt.legend(fontsize=8, ncol=1)\n", - "plt.tight_layout()\n", - "\n", - "# Multi bar Chart2\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "plt.ylim([0,100])\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*2, gap_25_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - "\n", - "offset = i*2+1\n", - "for i,app in enumerate(app_npb):\n", - " plt.bar(offset+i*2+1, npb_D_cas[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*2, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "plt.axhline(y=10, color='black')\n", - "\n", - "plt.ylabel(\"Cold Miss Rate\")\n", - "plt.legend(fontsize=8, ncol=1)\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAACXCAYAAAAYoCHkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAcjUlEQVR4nO3de7xVVb338c8XJREPSiIagghaopiaQSZeSQzRKLQjoo8ZGsmpx1I0L0gnTVPRMi+n1B7ChLzkNdNDXl8oD2XeIEQwgsgkMRSkVDA8CvzOH3NsW2wXe6299rrtxff9eu3XWnPMueb47bXmmvu3xxxzDEUEZmZmZo2kQ60DMDMzMys3JzhmZmbWcJzgmJmZWcNxgmNmZmYNxwmOmZmZNRwnOGZmZtZwKpbgSPqZpOWS5ueUbSvpUUl/So8fTuWS9F+SFkt6XtInKxWXmZmZNb5KtuBMAYY1KxsPTI+IjwHT0zLAkcDH0s9Y4IYKxmVmZmYNrmIJTkTMBP7erHgEMDU9nwocnVP+88g8BXSV1KNSsZmZmVljq3YfnB0iYll6/iqwQ3reE3g5Z7ulqczMzMys1TavVcUREZJaPU+EpLFkl7HYaqutBuy+++5lj83MNm7hwoUA9OvXr8aRmJnB7NmzX4+I7s3Lq53gvCapR0QsS5eglqfyV4Cdcrbrlco+ICImAZMABg4cGLNmzapkvGbWzODBgwGYMWNGTeMwMwOQtCRfebUvUd0PjE7PRwP35ZR/Od1NtT/wZs6lLDMzM7NWqVgLjqRfAIOB7SQtBS4ELgfulDQGWAIclzZ/ADgKWAz8EzilUnGZmZlZ46tYghMRJ2xk1ZA82wZwWqViMTMzq4X33nuPpUuX8s4779Q6lIbQqVMnevXqRceOHQtuW7NOxmZmZo1u6dKldOnShT59+iCp1uG0axHBypUrWbp0KX379i24vadqMDMzq5B33nmHbt26ObkpA0l069at6NYwJzhmZmYVVK3kZvr06QwePJhDDjmEY445hpUrV1aknpdeeomTTz654HZTpkxh8uTJBbc76KCDiq67Ne9lwUtUknoBxwMHAzsCa4D5wK+BByNifdG1mZmZWdmtWLGCiy++mGnTptGlSxcWLVrEu+++W+uwaqrFBEfSTWQjCk8DriAbt6YTsBvZPFPfljQ+TctgZmZmG7H/hQ+36fVPXXTERtc98MADnHTSSXTp0gWA3XbbDYCbbrqJqVOnsnr1ai677DKGDh3KhAkTmDlzJh07duTWW2+lQ4cOnHLKKaxZs4ZBgwYxceJEjjvuOF577TW22GIL7r77brbeemsuuOACHn/8cfr37/9+vdOmTeP73/8+a9eu5YILLmDYsOZTUG4o334h619zxhlncMABBzBkyBDGjBnDqlWr2GOPPbj++utLer8KteD8MCLm5ymfD/xS0oeA3iXVbGZmZmWxbNky9tprrw+Ujxo1ilNOOYU333yTkSNHMnToUJ544glmzpxJhw4diAjGjRvHmWeeydChQ1m/PrsoM2XKFDp37szkyZO54447GD58OM888wy/+c1vuO2223jkkUdYv349V155JY899hjr16/nyCOPLJjgNN/vqaeeCsC4ceMYNGgQxx9/PN/61rc4//zzGTRoEOeddx5PPvkkgwYNavV70mKCky+5kbQr0Dki5kXEu2Rj15iZmVmN9OjRg7/97W8fKH/44Ye59tpriQiWL88mDzj33HMZPXo03bp149JLL2XRokVceumlAHTo0IF169ZxzjnnMG/ePN566y2OOeYYlixZwt577w3AgAEDeOSRR3j99ddZsGABhx9+OADLly8nIjbaTybffgEWLVpEp06duOaaawBYsGAB48ePRxKrV69mv/32K+k9aVUnY0kTgG8DZ0i6uaQazczMrKyOOuoobrnlFlatWgXA4sWLWbZsGRMnTuTBBx/kvvvuo0OH7E/+YYcdxs0338z222/PtGnT6NevH0899RQA69ev57nnnuPtt99m5syZnHbaaUQEO++8M/PmzQNgzpw5AGy33XbstddeTJ8+nRkzZjB37twWOwHn2y9kl9NOOOEEzjnnHCCb5+6qq65ixowZzJo1ixEjRpT0nhTqg3M6cF1ErEtF+0TEqLTu+ZJqNDMzs7Lq3r073/nOdxg+fDgRwbbbbsuNN97I8OHDOeSQQ9hvv/3o2rUrACNGjGDNmjUA3HXXXRx66KGMHj2aSy65hAMOOIAJEyawePFihg0bxk477UTPnj3p0aMHAwYM4OCDD2afffYBstaes846iyFDhiCJ/v37c911120Q11VXXcXtt98OwNVXX/2B/TYZM2YMEydO5IorrmDChAmMHTuWN998kw4dOjB58mT69OnT6vdETRlU3pXSicDJwI8i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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAACXCAYAAAAYoCHkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAbvklEQVR4nO3de5yVZb338c8XxUbaKAloCCqoSWloJZEoIh7CE4m2RfQpAlPZlWV4VvYu063b3JmHJ936GCZuDxvPUWxDfGE8mHkCFdFINhkmioGU4AFT4Lf/uK+xxbhm1po1c681s/i+X695zbrPv7nXve51zXVd9/VTRGBmZmZWT7rUOgAzMzOz9uYCjpmZmdUdF3DMzMys7riAY2ZmZnXHBRwzMzOrOy7gmJmZWd3ZPM+dSzodOBkIYCFwItAHmAb0BOYD4yLivZb206tXr+jfv3+eoZpZM1544QUABg4cWONIzMw+bP78+a9HRO+m85XXODiS+gK/AXaPiLWS7gTuB44A7o2IaZKuBxZExHUt7Wvw4MExb968XOI0s5aNGDECgDlz5tQ0DjOzYiTNj4jBTefn3US1ObClpM2BbsBy4CDg7rT8ZuDonGMwMzOzTUxuBZyIeAW4HPgTWcFmNVmT1BsRsS6ttgzom1cMZmZmtmnKrQ+OpI8Bo4EBwBvAXcBhrdh+IjARYMcdd8whQjMzs3y9//77LFu2jHfffbfWodSFhoYG+vXrR9euXUuum2cn40OAP0bESgBJ9wL7AT0kbZ5qcfoBrxTbOCJuAG6ArA9OjnGamW0S9rnggXbZz2MXHtou+9kULFu2jO7du9O/f38k1TqcTi0iWLVqFcuWLWPAgAEl18+zD86fgH0kdVP2rh4M/A74NXBsWmc8MD3HGMzMzGrm3XffpWfPni7ctANJ9OzZs+zasDz74DxO1pn4KbJHxLuQ1cicC5whaQnZo+I35hWDmZlZrblw035acy5zfYoqIi6IiE9GxKcjYlxE/C0iXoyIIRGxa0SMiYi/5RmDmZnZpmD27NmMGDGC4cOHc8wxx7Bq1apcjrN06VImTJhQcr2pU6cyZcqUkusNGzasHaL6sFwH+jMzM7NMW/tAtdT3aeXKlVx00UXMmDGD7t27s3jxYt57r8UxdOteyRocSf0knSVpuqQnJc2V9B+SjpTkVA9mZmY1dv/99zNu3Di6d+8OwG677UafPn246aabGDFiBIMHD2bWrFkATJ48mWHDhnHggQfy6quv8tprr3H44YczYsQIzj//fACOO+44DjjgAEaOHMmaNWsA+P73v8/+++/PpZde+sFxZ8yYwfDhw9l3332ZOXNmyTiL7ReyDsSnnXYa06ZNY+XKlRx11FEceOCBfOtb36r4nLRYgyPpJrJxamYAlwErgAZgN7JHvv9Z0nkRMbfiCMzMzGqoHp4uW758OYMGDfrQ/LFjx3LiiSeyevVqxowZw8iRI3nkkUeYO3cuXbp0ISKYNGkSp59+OiNHjmTDhg1A1rzUrVs3pkyZwh133MGoUaN44oknePjhh7n99tuZNWsWGzZs4PLLL+ehhx5iw4YNHH744Rx2WMujwTTd7ymnnALApEmTGDp0KMcffzxnnnkm559/PkOHDuXcc8/l0UcfZejQoa0+J6WaqH4cEc8Vmf8ccK+kLQAPUmNmZlZDffr04dVXX/3Q/AceeICrr76aiGDFihUAnHPOOYwfP56ePXtyySWXsHjxYi655BIAunTpwvr16zn77LNZuHAha9as4ZhjjuGll15izz33BGDvvfdm1qxZvP766yxatIhDDjkEgBUrVhARzXYELrZfgMWLF9PQ0MBVV10FwKJFizjvvPOQxFtvvcWQIUMqOictNjEVK9xI2kXSoLT8vYhYUtGRzczMrF0cccQR3Hrrrbz55psALFmyhOXLl3PppZfyq1/9iunTp9OlS/aVf9BBB3HLLbew7bbbMmPGDAYOHMhjjz0GwIYNG3jmmWd4++23mTt3LqeeeioRwU477cTChQsBePrppwHo1asXgwYNYvbs2cyZM4cFCxa0+JRTsf1C1px2wgkncPbZZwNZYt8rrriCOXPmMG/ePEaPHl3ROWlVJ2NJk4FdgQ2SPhIR4yo6qpmZmbWb3r17873vfY9Ro0YREWyzzTbceOONjBo1iuHDhzNkyBB69OgBwOjRo1m7di0Ad911FwcccADjx4/n4osvZt9992Xy5MksWbKEww47jB122IG+ffvSp08f9t57b/bff3/22msvIKvtOeOMMzj44IORxO6778611167UVxXXHEF06ZNA+DKK6/80H4bnXTSSVx66aVcdtllTJ48mYkTJ7J69Wq6dOnClClT6N+/f6vPSYvZxCWdBlwbEevT9B0RMTa9fjYi9mz1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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "app_gap = df_gap22_cas['app']\n", - "gap_22_cas = df_gap22_cas['missRatio'].astype(float)-df_gap22_cas['coldRate'].astype(float)\n", - "\n", - "gap_25_cas = df_gap25_cas['missRatio'].astype(float)-df_gap25_cas['coldRate'].astype(float)\n", - "\n", - "app_npb = df_npbC_cas['app']\n", - "npb_C_cas = df_npbC_cas['missRatio'].astype(float)-df_npbC_cas['coldRate'].astype(float)\n", - "\n", - "npb_D_cas = df_npbD_cas['missRatio'].astype(float)-df_npbD_cas['coldRate'].astype(float)\n", - "\n", - "# Multi bar Chart\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "plt.ylim([0,100])\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*2, gap_22_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - "\n", - "offset = i*2+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*2+1, npb_C_cas[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*2, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "\n", - "plt.ylabel(\"Hot Miss Rate (%)\")\n", - "plt.legend(fontsize=8, ncol=1)\n", - "plt.tight_layout()\n", - "\n", - "# Multi bar Chart\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "#plt.ylim([0,55])\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*2, gap_25_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - "\n", - "offset = i*2+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*2+1, npb_D_cas[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*2, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "\n", - "plt.ylabel(\"Hot Miss Rate (%)\")\n", - "plt.legend(fontsize=8, ncol=1)\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAACXCAYAAAAYoCHkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAc70lEQVR4nO3de5yVVd338c8XRUlvFEE0FBVSM8lDCZl4RDE1s5DuRHl8FLkxOlieUlPuxPLW0DQP5aEIUzTLU5pFpPkgI2aeQEVUlEghh0ZFbw9omgK/549rjW7Gzew9e/ZpNt/36zWvva+1r32t3+zDNb9Za11rKSIwMzMzayTdah2AmZmZWbk5wTEzM7OG4wTHzMzMGo4THDMzM2s4TnDMzMys4TjBMTMzs4ZTsQRH0i8lvSTpiZyy3pLukvS3dLtRKpekn0haKOlxSbtUKi4zMzNrfJVswbkGOKhN2enAjIjYFpiRtgE+D2ybfsYDV1YwLjMzM2twFUtwImIW8L9tikcAU9P9qcChOeXXRuYBoJekfpWKzczMzBpbtcfgbBoRLen+C8Cm6f7mwPM5+zWnMjMzM7MOW7tWFUdESOrwOhGSxpN1Y7H++usP/sQnPlH22Mxs9Z555hkAtttuuxpHYmYGc+bMeTki+rYtr3aC86KkfhHRkrqgXkrlS4Atcvbrn8o+JCImA5MBhgwZErNnz65kvGbWxrBhwwBoamqqaRxmZgCSFucrr3YX1e+BMen+GOD2nPKj09VUuwGv53RlmZmZmXVIxVpwJP0GGAZsLKkZOAs4D7hJ0jhgMTAq7T4dOBhYCPwLGFupuMzMzKzxVSzBiYjRq3loeJ59AziuUrGYmZnVwnvvvUdzczPvvPNOrUNpCD169KB///5079694L5FJTiShgB7AZsBbwNPAHdFxKudCdTMzKyRNTc307NnTwYMGICkWofTpUUEr7zyCs3NzQwcOLDg/u2OwZE0VtIjwBnAR4BnyAYG7wn8P0lTJW1ZhrjNzMwazjvvvEOfPn2c3JSBJPr06VN0a1ihQcbrAXtExH9GxA8jYkpEXBYRx0fEYOBistmHzczMLI9qJTczZsxg2LBh7L333owcOZJXXnmlIvUsWrSIY445puB+11xzDVOmTCm435577ll03R15LdvtooqIyws8/ljRNZmZmVlFLF26lLPPPptp06bRs2dPFixYwLvvvlvrsGqqQ4OMJX0R+A7Qg2xphSsqEpWZmVmD2e2sOzv1/Ad+cOBqH5s+fTpHHXUUPXv2BODjH/84AFdffTVTp07lzTff5Ic//CEHHHAAEyZMYNasWXTv3p3rr7+ebt26MXbsWN5++22GDh3KpEmTGDVqFC+++CLrrrsut9xyCxtssAETJ05k5syZDBo06P16p02bxo9+9COWL1/OxIkTOeigtktQrirfcSEbX3PCCSew++67M3z4cMaNG8eyZcvYfvvtueKK0lKNQmNwPtWm6ChgX2B34Bsl1WhmZmZl1dLSQr9+H17C8fDDD6epqYkZM2Zw4YUXAnDfffcxa9YsZs6cSb9+/Zg0aRInnXQSTU1NnHvuuUDWvXTPPfcwatQobrzxRlpaWnjooYe499572WeffQBYuXIlF154IXfffTdNTU1ccMEFBeNse9xWJ554IkOHDuWII47gvPPO44wzzmDmzJn07NmT+++/v6TXpFALzjckdQPOjIgXyNaL+h6wEvhnSTWamZlZWfXr149//vPDf5bvvPNOLr30UiKCl17KFg847bTTGDNmDH369OHcc89lwYIF7yc23bp1Y8WKFZx66qnMmzePN954g5EjR7J48WJ22mknAAYPHsyf//xnXn75ZebPn8/+++8PwEsvvURErHacTL7jAixYsIAePXpwySWXADB//nxOP/10JPHmm2+y6667lvSatNuCExFfAy4Dfi5pIjARuB+YB3yppBrNzMysrA4++GB+9atfsWzZMgAWLlxIS0sLkyZN4k9/+hO333473bplf/L3228/rrvuOjbZZBOmTZvGdtttxwMPPABkrTKPPfYYb731FrNmzeK4444jIthqq62YN28eAI8++igAG2+8MTvuuCMzZsygqamJuXPntjsION9xIetOGz16NKeeeiqQrXN30UUX0dTUxOzZsxkxYkRJr0nBMTgRMRcYkcbf3E429ubakmozMzOzsuvbty9nnnkmhxxyCBFB7969ueqqqzjkkEPYe++92XXXXenVqxcAI0aM4O233wbg5ptvZp999mHMmDGcc8457L777kyYMIGFCxdy0EEHscUWW7D55pvTr18/Bg8ezF577cXOO+8MZK09J598MsOHD0cSgwYN4vLLV7026aKLLuKGG24A4OKLL/7QcVuNGzeOSZMmcf755zNhwgTG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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAACXCAYAAAAYoCHkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAcDElEQVR4nO3de7xVVb338c8Xw1APhgjaVlTUzJOlcmSHaYAbNW9ZSE+iPB1vaWhq3hJTTqmZHDRNszQVr6kVankpIi8PskVNUlAQCuWQwfGCgpSCtxT4PX/MsWyxXey19t7rtjff9+u1X2vNMeea47duc/32mGOOoYjAzMzMrCvpVusAzMzMzMrNCY6ZmZl1OU5wzMzMrMtxgmNmZmZdjhMcMzMz63Kc4JiZmVmXU7EER9KNkpZImptX1lvSg5L+J91uksol6SeSFkh6RtJulYrLzMzMuj5VahwcSUOBN4FbIuIzqeyHwN8j4iJJZwObRMR3JB0EfAs4CNgduCIidi9WR58+faJ///4Vid/MCnvuuecA2HHHHWsciZkZzJw587WI6Nuy/COVqjAipknq36J4ONCU7v8caAa+k8pviSzbmi6pl6SGiFjcWh39+/dnxowZZY3bzFrX1NQEQHNzc03jMDMDkLSoUHm1++Bsnpe0vAJsnu5vCbyQt92LqczMzMyszWrWyTi11rT5/Jik0ZJmSJqxdOnSCkRmZmZmnV3FTlGtxau5U0+SGoAlqfwlYKu87fqlsg+JiAnABIDGxsY1EqTXX3+d1157jffff7/8ka+DunfvTp8+fejVq1etQzEzM2uTaic4vwWOAi5Kt/fmlZ8saSJZJ+M3ivW/KWTx4sX079+fHj16IKlcMa+TIoJ3332XhQsXOsEx62I+d979ZdnP9O/vX5b9mFVCSQmOpEZgCLAF8A4wF3gwIv7RymN+RdahuI+kF4HzyBKbOyQdCywCRqbNJ5NdQbUAeBs4pj1PBmCDDTZo70MtjyS/lmZm1mm12gdH0jGSngLOATYAniM7rTQY+H+Sfi5p60KPjYhREdEQEd0jol9E3BARyyJin4jYISL2jYi/p20jIk6KiO0jYueIqPtLo6ZMmUJTUxNDhw5lxIgRLFu2rCL1LFy4kKOPPrrodjfffDPXX3990e0GDx5chqjMzMzqW7EWnA2Bz0fEO4VWShoA7AD8b5nj6rCONsG21vS6dOlSLrjgAiZNmkTPnj2ZP38+7733XofqMzMzs/JptQUnIq5aW3KT1s+KiCnlD6u+TZ48mSOOOIKePXsC8MlPfpKGhgZuuukmmpqaaGxs5IEHHgBg7NixDB48mGHDhvHyyy/zyiuvcOCBB9LU1MQ555wDwMiRI9lrr73Yb7/9WL58OQDnnnsuQ4YMYfz48R/UO2nSJIYOHcqee+7JfffdVzTOQvuFrH/NKaecwsSJE1m6dClf/vKXGTZsGCeeeGLZXiMzM7NaatNl4pK+JKlZ0nRJ6+yv4eLFi2loaPhQ+WGHHUZzczNTpkzh0ksvBeCxxx5j2rRpTJ06lYaGBsaPH8/pp59Oc3Mz48aNA7LTSw8//DAjR47k9ttvZ/HixTzxxBM88sgj7LXXXgCsXr2aSy+9lIceeojm5mYuueSSonG23G/Oaaedxh577MHhhx/ORRddxDnnnMPUqVPp2bMnjz/+eDleIjMzs5pq9RSVpAERMSuv6AhgGCBgNvCzyoVWvxoaGnj55Zc/VH7//fdzxRVXEBEsWZJdAX/WWWdx1FFHsemmmzJu3Djmz5//QWLTrVs3Vq1axZgxY5gzZw7Lly9nxIgRLFq0iF122QWAgQMH8sADD/Daa68xb9489t13XwCWLFlCRKz1arFC+wWYP38+PXr04Mc//jEA8+bN4+yzz0YSb775JoMGDSrra2VmZlYLxVpwvinpOkkfT8svAN8l63T84V/4dcRBBx3EbbfdxooVKwBYsGABixcvZvz48fzhD3/g3nvvpVu37KXde++9ufXWW9lss82YNGkSO+64I9OnTweyVplZs2bx1ltvMW3aNE466SQigm222YY5c+YA8PTTTwPQp08fdt55Z6ZMmUJzczOzZ89u9VL4QvuF7HTaqFGjGDNmDJDNJ3TZZZfR3NzMjBkzGD58eGVeNDMzsypqtQUnIo6XtCtwraSZwLnAHmSdjy+tQnx1qW/fvnzve9/j4IMPJiLo3bs3N9xwAwcffDBDhw5l0KBBH4wdM3z4cN55J+vGdOedd7LXXntx1FFHceGFF7LnnnsyduxYFixYwAEHHMBWW23FlltuSUNDAwMHDmTIkCHsuuuuQNbac8YZZ7DPPvsgiZ122omrrrpqjbguu+wyJk6cCMDll1/+of3mHHvssYwfP56LL76YsWPHMnr0aN544w26devG9ddfjycwNTOzzq7k2cQlfQk4lWxSzFsqGlWJGhsbI3+yzXnz5vGpT32qhhF1PX5NrSVPttn5eaA/60okzYyIxpblxcbBOUHSHyX9EdgIOADoJel+SUMrFKuZmZlZhxTrg3NiROxJ1rF4TESsjIifAIcDh1Q6ODMzM7P2KDbQ30uSxpL1uXk2V5imaDijkoG1V2tXFlnblHr60szMuqZynM6s1anMYi04w4E5wKPAkZUPp2N69OjBsmXL/MNcBhHBsmXL6NGjR61DMTMza7NiLThbRMTv1rZSWVPJlhHxYnnDap9+/frx4osvsnTp0lqH0iX06NGDfv361ToMMzOzNiuW4FwiqRtwLzATWAr0AD5B1i9nH7JZwusiwenevTvbbrttrcMwMzOzGis2Ds6hknYCvgZ8HWgA3gbmAZOBcRHxbsWjNDMzq7DO3N/EPqxYCw4R8Rfgv6oQi5mZmVlZtGmyTTMzM7POwAmOmZmZdTlFT1GVm6QdgdvzirYjm+OqF/ANso7MAGMjYnJ1ozMzM7OuoKQWHGX+U9K5aXlrSYPaU2FEPBcRAyJiADCQrNPy3Wn15bl1Tm7MzMysvUo9RfUzslnER6XlFcBVa9+8ZPsAf42IRWXYl5mZmRlQeoKze0ScBLwLH0zVsH4Z6j8c+FXe8smSnpF0o6RNCj1A0mhJMyTN8IB+ZmZmVkipCc77ktYDAkBSX2B1RyqWtD7wZeDOVHQ1sD0wAFgM/KjQ4yJiQkQ0RkRj3759OxKCmZmZdVGlJjg/Iesns5mkcWRzU43vYN0HAk9FxKsAEfFqRKyKiNXAdUC7+viYmZmZlXQVVUT8QtJMsj4zAg6JiHkdrHsUeaenJDVExOK0OAKY28H9m5mZ2TqqpARH0q0RcQTwbIGyNpO0EfAF4Pi84h9KGkB2Gmxhi3VmZmZmJSt1HJxP5y+k/jgD21tpRLwFbNqirF3JkpmZmVlLrfbBkXSOpBXALpKWS1qRlpeQzTBuZmZmVndaTXAiYnxE9AQuiYiNI6Jn+ts0Is6pUoxmZmZmbVJqJ+Nz0rg0OwA98sqnVSowMzMzs/YqtZPxccCpQD9gFvA54HFg74pFZmZmZtZOpXYyPhX4LDA9IoZJ+nfgvysXlpl1Zp877/6y7Gf69/cvy37MbN1T6kB/70bEuwCSPhoRzwI7Vi4sMzMzs/YrtQXnRUm9gHuAByX9A/AEmVVSjv+G/Z+wmVnn4BbQ8ii1k/GIdPd8SVOBjwF/qFhUZmZmZh1Q6imqD0TEw2Szik8ufzhmZmZmHddqC46kvYFrgC3ITk9dDNxENh/VuEoHZ2bWlfh0s1n1FGvB+REwmmxahV+TXRp+c0QMjIi7Kh2cmZmZWXsU64MTEdGc7t8j6aWIuLLCMZmZmZl1SLEEp5ekr+Rvn7/sVhwzMzOrR8USnIeBL+UtT8tbDsAJjpmZmdWdVhOciDimWoGYmZmZlUubLxM3MzMzq3eljmRcVpIWAiuAVcDKiGiU1Bu4HegPLARGRsQ/ahGfmZmZdW61bMEZFhEDIqIxLZ8NTImIHYApadnMzMyszUpKcCQdKqlnuv9dSXdJ2q3MsQwHfp7u/xw4pMz7NzMzs3VEqaeovhcRd0oaDOwLXAJcDezeznoDeEBSANdGxARg84hYnNa/Amzezn2bmVkn4dGdrVJKPUW1Kt1+EZgQEb8H1u9AvYMjYjfgQOAkSUPzV0ZEkCVBHyJptKQZkmYsXbq0AyGYmZlZV1VqgvOSpGuBw4DJkj7ahsd+SES8lG6XAHcDg4BXJTUApNsla3nshIhojIjGvn37tjcEMzMz68JKTVJGAvcD+0fE60BvYEx7KpS0UV5/no2A/YC5wG+Bo9JmRwH3tmf/ZmZmZqX2wWkAfh8R/5TUBOwC3NLOOjcH7paUq/+XEXGfpCeBOyQdCywiS6rMzMzM2qzUBOc3QKOkTwATyFpXfgkc1NYKI+J5YNcC5cuAfdq6PzMzM7OWSj1FtToiVgJfAX4aEWPIWnXMzMzM6k6pCc77kkYBRwKTUln3yoRkZmZm1jGlnqI6BjgBGBcRf5O0LXBr5cKyeuUxK8zMrDMoKcGJiL8Ap+Qt/w24uFJBmZmZmXVEqwmOpDsiYqSkORQYeC8idqlYZGZmZmbtVKwF59R0e3ClAzEzMzMrl1YTnNzcUBGxqDrhmJmZmXVcsVNUK1jz1JTSssimjNq4grGZmZmZtUuxU1RTgI8DdwETI+J/Kx+SmZmZWce0Og5ORBwC7A8sBa6T9LCkEyX1rkZwZmZmZu1RdKC/iHgjIm4CDgSuBS4Ajq5wXGZmZmbtVnQcHEl7AqOAIcCjwIiIeKTSgZmZmZm1V7FOxguB14GJwGhgZSrfDSAinqpseGbWFh5p2swsU6wFZyHZVVP7A/uRXT2VE8DelQnLzMzMrP2KjYPTVKU4zMzMzMqm1NnEzczMzDqNUmcTLxtJWwG3AJuTneaaEBFXSDof+AbZJekAYyNicrXjM7Ouxf2SzNZNVU9wyDoqfzsinpLUE5gp6cG07vKIuLQGMZmZmVkXUuwqqt1aW9+eq6jS/Fa5Oa5WSJoHbNnW/ZiZmZmtTbEWnB+1sq7DV1FJ6g/8B/An4PPAyZKOBGaQtfL8oyP7NzMzs3VTsauohlWqYkn/BvwGOC0ilku6GvgBWeL0A7Lk6usFHjeabEwett5660qFZ2ZmZp1YyX1wJH0G2AnokSuLiFvaU6mk7mTJzS8i4q60r1fz1l8HTCr02IiYAEwAaGxsjELbmJmZ2bqtpARH0nlAE1mCM5lsXqpHya6GahNJAm4A5kXEZXnlDal/DsAIYG5b921mZmYGpbfgfBXYFXg6Io6RtDlwWzvr/DxwBDBH0qxUNhYYJWkA2SmqhcDx7dy/mZmZreNKTXDeiYjVklZK2hhYAmzVngoj4lHWnPIhx2PemJmZWVmUmuDMkNQLuA6YCbwJPF6poMzMzMw6oqQEJyJOTHevkXQfsHFEPFO5sMzMzMzar6S5qCRNyd2PiIUR8Ux+mZmZmVk9KTaScQ9gQ6CPpE34V9+ZjfHow2aA5zoyM6tHxU5RHQ+cBmwB5E/LsBy4skIxmZmZmXVIsZGMrwCukPStiPhplWIyK6ocrSbglhMzs66q1KuorpV0CjA0LTcD10bE+xWJyszMzKwDSk1wfgZ0T7eQDdR3NXBcJYIyMzMz64hinYw/EhErgc9GxK55qx6SNLuyoZmZmZm1T7HLxJ9It6skbZ8rlLQdsKpiUZmZmZl1QLFTVLnLws8Epkp6Pi33B46pVFBmZmZmHVEswekr6Yx0/1pgvXR/FfAfwNRKBWZmZmbWXsUSnPWAf+PDk2N+BOhZkYjMzMzMOqhYgrM4Ii6oSiR1xuOsmJmZdV7FOhm3bLkxMzMzq3vFEpx9qhKFmZmZWRm1muBExN+rFYiZmZlZuRRrwakqSQdIek7SAkln1zoeMzMz65zqJsGRtB5wFXAgsBMwStJOtY3KzMzMOqO6SXCAQcCCiHg+It4DJgLDaxyTmZmZdUL1lOBsCbyQt/xiKjMzMzNrE0VErWMAQNJXgQMi4ri0fASwe0Sc3GK70cDotLgj8FxVA11TH+C1Gtafr15iqZc4wLEUUi9xgGMppF7iAMdSSL3EAY4l3zYR0bdlYbGB/qrpJWCrvOV+qWwNETEBmFCtoFojaUZENNY6DqifWOolDnAs9RwHOJZ6jgMcSz3HAY6lFPV0iupJYAdJ20paHzgc+G2NYzIzM7NOqG5acCJipaSTgfvJ5sC6MSL+XOOwzMzMrBOqmwQHICImA5NrHUcb1MWpsqReYqmXOMCxFFIvcYBjKaRe4gDHUki9xAGOpai66WRsZmZmVi711AfHzMzMrCyc4JRIUn9Jc+sxBklDJP1Z0ixJG9QiNqtPknpJOrHWcUCrn9/TJG1Yi5jqhaRTJM2T9FYtR3CX9Mda1Z1P0pu1jsE6Pyc4XcPXgPERMSAi3ql1MPUsTQmyLukF1EWC04rTgHU6wSF7j74A3Ek2VU1NRMSetarbrNyc4LTNRyT9Iv2n9WtJG0r6rKQ/Spot6QlJPascwynASOAHqbxB0rTUmjNX0pBKBiPpSEnPpOd/q6TNJd2dlmdLqtoBM7UQPFvgPVoo6WJJTwGHlrG+jST9Pj3PuZIOk3SRpL+k1+TStN2haf1sSdNS2dGS7pXULOl/JJ1XrrhauAjYPn0eLpH0HUlzUiwXVajO1hT6/G4BTJU0tRoBFPjMbi9penpdLqx264Gka4DtgL8BRwGXpPdr+2rGkWJ5M91W9TjSSjxNkiblLV8p6egK15k7jtwsaX76vO4r6bH0XR0kqa+kB1PL+fWSFknqU8GYCh1rFkr6YfrcPiHpE5WqPy+ONVphJZ0p6XxJ35D0ZIrvN6qXFtmI8F8Jf0B/IIDPp+UbgbOA54HPprKNgY9UOYYzgZuBr6aybwP/le6vB/SsYDyfBuYDfdJyb+B24LS8+j9W4/foTGAhcFYF6vs/wHV5y9uQjayd67zfK93OAbZsUXY0sBjYFNgAmAs0Vug1mZvuHwj8Edgw935V670p4f3pU6UYCn1mJwGj0vIJwJvVfF1SvQvJRoP94Ltci7/cc6/mcaRIHE3ApLzyK4GjK1x3f2AlsDNZI8DM9FkV2fyI96Q4zknbH5A+1xX7DBc41nwsfWZy79GR+a9ThV+buXnLZwLnA5vmlV0IfKuan5e1/bkFp21eiIjH0v3bgP2BxRHxJEBELI+IlVWOYXCL9U8Cx0g6H9g5IlZUMJa9gTsj4jWAiPh7Krs6La+KiDcqWH8ha3t9bq9AXXOAL6TWoSFkI2+/C9wg6SvA22m7x4CbJX2D7Mci58GIWBbZacW7+PB7WW77AjdFxNvwwftVbcU+v5VW6DO7B9mpIYBfVjmeelXN40g9+ltEzImI1cCfgSmR/XrPIfuRH0w2ITQRcR/wjwrHs8axJu+4+qu82z0qHENrPiPpEUlzyLpMfLqGsXzACU7btLymfnkdxLDGckRMA4aS/djeLOnIagVWJ9b2+rxV9ooi5gO7kR18LgTGAoOAXwMHA/el7U4Avks2FclMSZsWibUrWxefc6dTR8eRlaz5O9WjSvX+M+/+6rzl1dRg/LiWxxpJ5+ZW5W9WhVDW9n7cDJwcETsD36d671OrnOC0zdaSclny/wWmAw2SPgsgqaekSn/4W8bwaP5KSdsAr0bEdcD1ZF+KSnkIODT3gy2pNzAF+GZaXk/SxypYfyGtvj7lJGkL4O2IuA24hOwH4WORDVh5OrBr2m77iPhTRJwLLOVfc659QVJvZVe+HULW0lNuK4Bcv7AHyf4r3zDF1bsC9RVT6P3Jj7HSCn1mp5OdAoBsiphaquZrsVZVPo60ZhGwk6SPSuoF7FOjOFp6jKzvI5L2AzapZGUFjjW59+OwvNvHKxlD8iqwmaRNJX2U7B85yD6ziyV1J2vBqQtOcNrmOeAkSfPIPtA/Jftg/VTSbLIfkEpnri1juLrF+iZgtqSnU2xXVCqQyKbSGAc8nJ7/ZcCpwLDUVDmT6l8RUuz1KaedgSckzQLOI/vPZZKkZ8h+uM9I212SOgLOJesDMzuVPwH8BngG+E1EzCh3gBGxDHgs1b0P2fxuM1LMZ5a7vhIUen8mAPdVo5PxWj6zpwFnpPftE0C1T6vmmwiMkfR0LToZ52miSseR1kTEC8AdZH3U7gCerkUcBXwf2C99rw4FXiFLTiul5bHmwlS+Sfrcnkr2T1VFRcT7wAVkx64HgWfTqu8BfyJL/J4t/Ojq80jG1mVI6k/W0e4ztY6lmHQlSGNEnFzrWNZ1qUXrnYgISYeTdTgeXuu4rH6l1otVkc2huAdwdUQMqHIMC8mOIa9Vs97OpK7mojIzq4GBwJWSBLwOfL224VgnsDVwh6RuwHvAN2ocjxXgFhwzMzPrctwHx8zMzLocJzhmZmbW5TjBMTMzsy7HCY51GsrmufqlpOclzZT0uKQReet/LOml1PEvV3a0pKXK5tT5SxpNuGX5n5XmrUrrPifpT2ndvDSaa6F4fiHpOWVzw9yYxoDIzZ/zRnr8rLxBucysgySFpB/lLZ+Z+44qmxfpJf1rDq0vFyh/VtLV+ceJFvtflXdcmC3p22vb1uqb3zTrFNIVLvcA0yJiu4gYSDYoW7+0vhswAngB2KvFw29Pl3A2Af8tafP88oj4NNmVELlBs34OjE6P+QzZ+BuF/AL4d7IxKjYAjstb90ja94CIuKBdT9rMCvkn8BWtfXLLy9N391DgxrzkJFe+E9l3tuVxIuedvOPCF8jmcKvUZLhWQU5wrLPYG3gvIq7JFUTEooj4aVpsIpsz5mpgVKEdRMQS4K9kk2J+QNno0xvxr/lkNiObCDM3n9Zf1rK/yZGQDXzVr31PzczaYCXZ4JCtDmwXEfPSti0TofXJBmQtOn9UOmaMBk5O/2RZJ+IExzqLTwNPtbJ+FNmEc3cDX8ydLsonaTtgO2BBKjosjQz6Etms0r9L5ZcDz0m6W9LxklodnTrVdQRp7qlkj9S8/QdJdTHxnFkXchXwNbUyFYyk3cnmjlqaik5P3/fFwPyImFVKRRHxPNkkuZt1JGCrPic41ilJuiolEE9KWh84CLgnIpaTDRm+f97muUTmV8DxebNo505dfZxsErsxAOmUUiPwANl8SfmJSyE/Izt19khafgrYJiJ2JZvO456OPFczW1P6nt8CnFJgdS6RuRQ4LP412FvuFNVmwEZp1GrrwpzgWGfxZ/Im/IuIk8jmVupLlsz0Auak4csHs+Zpqlxfm90j4u6WO04HwN+RTZaZK/trRFyd6thV2eRy96fOh9fntpN0XorhjLzHLo+IN9P9yUD3VvoLmFn7/Bg4luz0cr7L0/d9SN4/HR9I8yndBwyVtFXexQAnFKoktfyuApaUN3yrNCc41lk8BPSQ9M28sg3T7SjguIjoHxH9gW3JZurekNINJuufg6Qv5p1v34Hs4PZ6ROyfDpzHpe2OI0uuRkXE6tyOJH0893hJg8i+Z8va9nTNrDWpJfYOsiSnZOm7+XngrxHxQt7FANcU2LYvcA1wZV5LkHUSnovKOoU0EeIhwOWSziI7r/4W2dUNlwMn5G37lqRHgS8V2e1hkgaTJSAvAken8iNSPW+TdVL8WkSsKvD4a4BFwOMpn7krnd76KvBNSSuBd4DDfXA0q4gfAaVOWHu6pP8EugPPkJ1aLmSDdIqrO9n3/1ayWeetk/FcVGZmZtbl+BSVmZmZdTlOcMzMzKzLcYJjZmZmXY4THDMzM+tynOCYmZlZl+MEx8zMzLocJzhmZmbW5TjBMTMzsy7n/wOd6MgEvAjJygAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "app_gap = df_gap22_cas['app']\n", - "gap_22_cas = df_gap22_cas['missRatio'].astype(float)\n", - "\n", - "gap_25_cas = df_gap25_cas['missRatio'].astype(float)\n", - "\n", - "app_npb = df_npbC_cas['app']\n", - "npb_C_cas = df_npbC_cas['missRatio'].astype(float)\n", - "\n", - "npb_D_cas = df_npbD_cas['missRatio'].astype(float)\n", - "\n", - "# Multi bar Chart\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "plt.ylim([0,100])\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*2, gap_22_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - "\n", - "offset = i*2+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*2+1, npb_C_cas[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*2, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "\n", - "plt.ylabel(\"Total Miss Rate (%)\")\n", - "plt.legend(fontsize=8, ncol=1)\n", - "plt.tight_layout()\n", - "\n", - "# Multi bar Chart\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "#plt.ylim([0,55])\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*2, gap_25_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - "\n", - "offset = i*2+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*2+1, npb_D_cas[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*2, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "\n", - "plt.ylabel(\"Total Miss Rate (%)\")\n", - "plt.legend(fontsize=8, ncol=1)\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAACgCAYAAAAB3xbxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgVklEQVR4nO3de7xUdb3/8ddbRFESNgqaR1RQSxO8oFh6xNxQHi8koEWCHu+XNDPNLv40j4hp5k/LTM0yFU00NUu8EWkGlndAUUC0UvFCHkwN8IYifM4fa22YvZnZe83ea2bP3ryfj8c89qzv+q61PjNrZu3vfNf3oojAzMzMrDNZq70DMDMzM8ubCzhmZmbW6biAY2ZmZp2OCzhmZmbW6biAY2ZmZp2OCzhmZmbW6biAY2ZmZp2OCzhmZmbW6eRawJE0QFKf9PlGkq6RdIuk7fM8jpmZmVlz8q7B+WXB8wuA/wXuAK7L+ThmZmZmJeVWwJE0DtgaOCl9fhDQBdgO6CvpHEmfz+t4ZmZmZqUoz7moJM0EDgY2AS6MiC+k6Q9FxJDcDmRmZmbWjLVz3t/5wKPAR8BYSNrlAG/kfBwzMzOzknKtwTEzMzOrBRXtJi7p3Eru38zMzKyYSo+DMyJrRkndJD0h6WlJcyWNr2RgZmZm1nnl3QanKZWR90NgWES8K6kr8JCkP0TEYxWKzczMzDqpShdwds2aMZLGQO+mi13ThxsImZmZWdlyK+BI+lmJdAAi4psZ9tEFmAlsA1wZEY/nFZ+ZmZmtOfKswTkRmAPcBvyT8m5PARARy4GdJdUBd0gaGBFzGtZLOgE4AaB79+67brfddnnEbWZleP755wHYdttt2zkSMzOYOXPmmxHRp2l6bt3EJW0EjAYOAT4GbgVuj4hFrdzfOcD7EXFJsfWDBw+OGTNmtDJaM2ut+vp6AKZNm9aucZiZQTLIcEQMbpqeWy+qiHgrIn4REUOBo4E64FlJh2cMsE9ac4Ok9YB9gOfyis/MzMzWHLk3Mpa0C8koxvsAfyBpU5PFpsANaTuctYDbIuKevOMzMzOzzi/PRsbnAcOBecAtwJkR8XHW7SPiGWBQXvGYmZnZmivPGpyzgZeAndLHD9MeVCLpBb5jjscqauHChbz99tuVPox1UF27dqV3797U1dW1dyhmZlZheRZw+ue4r1Z5++23+fSnP02XLl3aOxSrMRHB0qVLmT9/vgs4ZmZrgNwKOBHxcrF0SUNI2uScnNexmuPCjRUjifXWW6+9wzAzsyqpyFxUkgZJuljSfOAHdNLeUIsXL6a+vp76+nrq6urYY489qK+vZ+DAgeyxxx4MGTKEPffck+uvv37lNv3796e+vp699tqLww8/nOXLl69c98Mf/pD+/ftT2HW/f//+HHfccSuXb7zxRiQxf/78arzE3E2fPp1hw4ax9957M3ToUKZPn96m/W2zzTY5RWZmZp1Jno2MP01SUzMWeJNkHByl3carbvdxf8xlP4+N37fkup49e64cC6S+vp6JEyfSt2/fRs8XLVrEqFGj2HLLLRk6dChdunRZuc0xxxzDfffdx/777w/APffcw7Bhw3j44YcZMmQIkNRIvfLKK3z44Yesu+663H777ey6a+YZMDIZMWl4Lvu5a9S9za5fvHgxRx55JJMnT6Zfv37Mnz+fAw44gEcffZSePXsCsHz5ctfCmZlZm+VZg/McMAz4UkQMiYjLgeUtbNPp1dXV8f3vf5+bb765UfqKFStYtGjRytqap556igEDBnDSSScxceLERnn3339/7r33Xt544w26du3aYduQ3HPPPYwaNYp+/foB0K9fP0aOHMkVV1zBbrvtxuGHH87xxx/P1KlTGTp0KHvttRcjR45k6dKlANx6663svvvuDB06lIsuuqjRvpctW8Zxxx3H0KFDGTJkCE888US1X56ZmdWQPBsZHwyMAaZKmkLSVbzs6Ro6o80335wFCxYASQ1FfX09L774IoMGDWLffZMaoptuuokjjzySwYMHc/rpp7Ns2TK6du0KwJgxYzjttNNYsGABX/3qV7n66qvb7bW0xWuvvcYWW2zRKG3LLbdkyZIlzJ8/nwceeIAePXrw3nvvMXXqVADOOOMMbrvtNoYPH87555/PY489Rvfu3Rvd2gO49tpr2WabbbjmmmtYuHAhBx98MA8//HDVXpuZmdWWPBsZTwImSeoOjAROAzaWdBVwR0Tcl9exOppXX32VzTbbDGDlLarFixez//77s2jRInr16sWdd97JnDnJtFtvvPEGkydPZuTIkQBsuummvPvuu9xyyy386U9/6rAFnM0224xnn322Udorr7xC9+7dGThwID169ABg7ty5nH322Xz44YcsXLiQHj168MILL7DjjjvSvXt3YPXG5LNn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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "app_gap = df_gap22_ram['app']\n", - "gap_22_ram = df_gap22_ram['simSeconds'].astype(float)*1000\n", - "gap_22_orc = df_gap22_orc['simSeconds'].astype(float)*1000\n", - "gap_22_noDC = df_gap22_noDC['simSeconds'].astype(float)*1000\n", - "\n", - "\n", - "gap_25_ram = df_gap25_ram['simSeconds'].astype(float)*1000\n", - "gap_25_orc = df_gap25_orc['simSeconds'].astype(float)*1000\n", - "gap_25_noDC = df_gap25_noDC['simSeconds'].astype(float)*1000\n", - "\n", - "\n", - "app_npb = df_npbC_ram['app']\n", - "npb_C_ram = df_npbC_ram['simSeconds'].astype(float)*1000\n", - "npb_C_orc = df_npbC_orc['simSeconds'].astype(float)*1000\n", - "npb_C_noDC = df_npbC_noDC['simSeconds'].astype(float)*1000\n", - "\n", - "npb_D_ram = df_npbD_ram['simSeconds'].astype(float)*1000\n", - "npb_D_orc = df_npbD_orc['simSeconds'].astype(float)*1000\n", - "npb_D_noDC = df_npbD_noDC['simSeconds'].astype(float)*1000\n", - "\n", - "\n", - "# Multi bar Chart1\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "plt.ylim([0,3])\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_22_ram[i]/gap_22_noDC[i], width=1, color=cmap(1), label='TDRAM' if i==0 else None)\n", - " plt.bar(i*3+1, gap_22_orc[i]/gap_22_noDC[i], width=1, color=cmap(2), label='Oracle' if i==0 else None)\n", - "\n", - "offset = i*3+2\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_C_ram[i]/npb_C_noDC[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_C_orc[i]/npb_C_noDC[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*3+0.5, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Execution time\\nnormalized to no-DRAM-$\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "# Multi bar Chart2\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "plt.ylim([0,3])\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_25_ram[i]/gap_25_noDC[i], width=1, color=cmap(1), label='TDRAM' if i==0 else None)\n", - " plt.bar(i*3+1, gap_25_orc[i]/gap_25_noDC[i], width=1, color=cmap(2), label='Oracle' if i==0 else None)\n", - "\n", - "offset = i*3+2\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_D_ram[i]/npb_D_noDC[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_D_orc[i]/npb_D_noDC[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*3+0.5, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Execution time\\nnormalized to no-DRAM-$\")\n", - "plt.legend(fontsize=9, ncol=2)\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "app_gap = df_gap22_cas['app']\n", - "gap_22_cas = df_gap22_cas['simSeconds'].astype(float)*1000\n", - "gap_22_ram = df_gap22_ram['simSeconds'].astype(float)*1000\n", - "gap_22_noDC = df_gap22_noDC['simSeconds'].astype(float)*1000\n", - "\n", - "\n", - "gap_25_cas = df_gap25_cas['simSeconds'].astype(float)*1000\n", - "gap_25_ram = df_gap25_ram['simSeconds'].astype(float)*1000\n", - "gap_25_noDC = df_gap25_noDC['simSeconds'].astype(float)*1000\n", - "\n", - "\n", - "app_npb = df_npbC_cas['app']\n", - "npb_C_cas = df_npbC_cas['simSeconds'].astype(float)*1000\n", - "npb_C_ram = df_npbC_ram['simSeconds'].astype(float)*1000\n", - "npb_C_noDC = df_npbC_noDC['simSeconds'].astype(float)*1000\n", - "\n", - "npb_D_cas = df_npbD_cas['simSeconds'].astype(float)*1000\n", - "npb_D_ram = df_npbD_ram['simSeconds'].astype(float)*1000\n", - "npb_D_noDC = df_npbD_noDC['simSeconds'].astype(float)*1000\n", - "\n", - "\n", - "# Multi bar Chart1\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "plt.ylim([0,3])\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_22_cas[i]/gap_22_noDC[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_22_ram[i]/gap_22_noDC[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", - "\n", - "offset = i*3+2\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_C_cas[i]/npb_C_noDC[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_C_ram[i]/npb_C_noDC[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*3+0.5, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Execution time\\nnormalized to no-DRAM-$\")\n", - "plt.legend(fontsize=8, ncol=1)\n", - "plt.tight_layout()\n", - "\n", - "# Multi bar Chart2\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "plt.ylim([0,3])\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_25_cas[i]/gap_25_noDC[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_25_ram[i]/gap_25_noDC[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", - "\n", - "offset = i*3+2\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_D_cas[i]/npb_D_noDC[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_D_ram[i]/npb_D_noDC[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*3+0.5, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Execution time\\nnormalized to no-DRAM-$\")\n", - "plt.legend(fontsize=8, ncol=1)\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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ujUvvvhiIV6ierPlllvy0UcfAXDllVey2267MXPmTA47LKmNe+211+jRowd9+/blySefLN9u0KBBTJo0iUcffZQjj1y3Gqi6sHjxYrbccsvy5ZYtW7J69WqWLl3KL3/5S66++mp69+5NaWkpM2bM4KabbgKo8vwrc8kll/Dwww/z3HPPcdddd61TrWQhGxk/CDwoqRUwADgX6CDpRmBSRDxeqGOZma3vOnbsyIcffviN9Mcee4xrr72WiODjjz8G4Be/+AUnnngim2++OaNHj2bBggXlXyzNmjVjzZo1DB8+nLlz57J8+XIGDRrEe++9x+67J6N77LXXXjz++OMsXbqU+fPnc8ghhwDw8ccfExHVNvysar8ACxYsoGXLllxzzTUAzJ8/nwsvvBBJfPbZZ+y9994Ffa3q2gcffMBOO+3EO++8w/Dhwxk2bBgDBw7kX//6FytWrGDu3Ln07duXL774gh122KG8MLPDDjvw+uuv06pVKzbZZJN6/i9yq3wOrlq1ihYtWtChQwc6deoEwKxZsxg1ahRffvklb7zxBsA3zr9Mc+bMoX///kByC2zJkiVstdVWtYqv4DfHImJlRNwdEUcBnYBXgf8p9HHMzNZnRxxxBHfeeScrVqwA4O2332bx4sWMGTOGv/71rzz00EPlXx4HHXQQd9xxBx06dGDy5MnsuOOOzJgxA0hqZWbPns3KlSt55plnOOOMM4gIttlmG+bOnQskNQ4A7dq1Y7fddmPatGmUlpYyZ86crL1aqtovJF/kgwcPZvjw4UAycevVV19NaWkpr7zyCgMGDCjOi1YHPvjgA5544gl69OhRnta8eXPOPPNMxo0bxwMPPMD48eOZOnUq06dPZ/Hixaxdu7Y87w9/+EOGDMlrhqN6d/jhh3P77bezcuVKAMaNG8fAgQMrFFp+97vfMX78eJ588knatm0L8I3zL1O3bt2YMmUKpaWlvPbaa7Uu3EANanAkbRwRn+fI0xzYNCKWpkkrSW5T1T5CM7NGrLpGwuuqffv2/OpXv6Jfv35EBJttthm33nor/fr1o3fv3uy9997lXygDBgzgP//5DwB/+ctfOPDAAznxxBO5/PLL2X///bnooot4++236du3L9/97nfZaqut6NixI3vttRe9evWia9euQPJr+/zzz+fggw9GEjvvvDM33HBDhbiuvvrq8t5B48aN+8Z+y5x00kmMGTOG3/72t1x00UWccsopfPrppzRr1ozx48fTuXPndXp9qmskXCw///nPadeuHRtuuCHXX389G220UYX1hx56KBdffDEbbLBBhd5SO++8M88++2z5clnPqYULFxYkrmyNhNdVhw4dGDFiBH379qVZs2Z069aN4cOHc/fdd5fnGTRoEAMGDGCPPfYoPx8vvPDCCuffb37zm/L8o0aN4qijjio/p++///5ax5dzNnFJ+wPjgW9HxNaSugI/i4jTK+U7HriJpFDzd2A0cBvwMvDriHi11lFWwbOJm9UPzyae3fz589lpp53qOwyzJqvyZ6y62cTzqcEZBxwGPAwQEXMk9a4i38XAXhHxdjrh5ovA0RHxSG3+ATMzM7PayqsNTkS8Xympqu7fqyPi7TT/q8DfXbgxMzOz+pBPDc776W2qkNQCOIdkxvDKOkg6P2O5beZyRFy9bqGamTUO2XoWmVnt5WpWkymfGpxTSeaR2gr4ANiDqueVugVonfGovGxm1uS1bNmSZcuW1ehCbGa5lc0m3rJly7zy56zBSXtEnZBHvlF5HdHMrAnr1KkTixYtynvGYzPLX8uWLcvH2MklZwFHUhfgLKBzZv6I6F9F3j7AmcD30qT5wPURUZpXNGZmjVyLFi3o0qVLfYdhtt7Lpw3Og8CtwCPA2uoySToSuB64LH0I2BO4TdKZEfHoOkdrZmZmlod8CjirIuL3eeQbDgyMiDkZabMlvQJcB7iAY2ZmZnUinwLOtZJGAo8D5dOeVjFw33cqFW7K8v1N0hbrFqaZmZlZ/vIp4OwGDAEO4utbVJEuZ1qZZR/Z1pmZmZkVVD4FnGOAbSMi15zl20l6uIp0AdvWODIzMzOzWsqngDMPaAt8nCNftulfx+YbkJmZmdm6yqeA0xZ4U9LLVGyDU6GbeEQ8XXlDSXsWepJNMzMzs1zyKeCMXIf9jyfpKm5mZmZWZ/IZyfgbNTM1kPdkLJK+C9wObEHSiPnmiLh2HY5tZmZm66lqCziSnouInpJWkBQ4ylcBERGb5LH/mkzf8BXw84h4VVJrYJakJyLijRrsw8zMzKz6Ak5E9Ez/1niiTEldgV5lz6saH6eK4y0GFqfPV0iaTzLBpws4ZmaN2L4jH8uZZ8aow+ogEluf5DMX1R0RMSRXWsa6c4CfAg+kSXdKujkirss3KEmdgW7AS/luY2Zmlo0LWuuXfBoZ75K5IGkDYK8s+U8C9omIlWn+3wIvkkzXkJOkbwP3A+dGxPJK604BTgHYeuut89mdmZmZrYeytcEZAVwEbCSprKAhYDVwc5Z9CliTsbyGPBsbS2pBUri5KyIeqLw+Im4uO3b37t2j8nozs4bANQVm9S9bG5wxwBhJYyJiRA32OQF4SdKkdHkgyWzkWUlSmm9+RFxdg+OZmZmZVZBPN/GaFG6IiKslPQ0ckCYNi4jX8tj0AJI5r+ZKmp2mXRQRnoXczMzMaiSfNji1MZukR9QGAJK2joj/y7ZBRDxHDcbNMTMzM6tOwQs4ks4iGf34n3zd/iaA3Qt9LDMzM7Oq5FXAkdScZITh8vxZamTOAXaMiGXrHp6ZWf7cuNfMyuQzDk5mjczaNDlbjcz7wKcFic7MzMysFvKpwalpjcw7QKmkKVScfdw9o8zMzKxO5FPAqWmNzP+ljw3Th5kViW/J1Fz/B4/Muv7hgVPqKBJriHx+NB35FHBqVCMTETWZYNPMzMys4PIp4LhGxszMzBqVfAb6GwXlc0QREZ8VOyj7Wq5bEL79YGbV8S1MW581y5VB0q6SXgNeB16XNEvSLrm2MzMzM6svOQs4JJNbnh8R20TENsDPgVuqyyypk6RJkpZI+ljS/ZI6FSpgMzMzs1zyaYPTKiKmly1ERKmkVlnyTwDuBo5Jl3+cph1a6yit3vlWmZkVk3svWaHlU4PzjqRfSeqcPi4m6VlVnfYRMSEivkofE4H2BYnWzMzMLA/51OD8NzAKeCBdfjZNq84yST8G/pwuDwY8bYOZmdXaTQPuzJnnZw/9uA4iscYin15U/wbOrsE+/xu4DhhHMqXDC8DQ2gRnZmZmVhvVFnAkXRMR50p6hKSgUkFE9K9m006V10k6gGRE5EbDbU7MzMwar2w1OHekf8fWcJ/XAXvmkWbWaLkAbGbWsFVbwImIWenTPSLi2sx1ks4Bnq6Uth+wP9Be0vkZqzYBmhcmXKssV88DcO8DMzNb/+TTyPhE4NpKaUOrSNsQ+Ha6z9YZ6cuBo2sZn1mj5IKn5eJu0WbFla0NzmDgR0AXSQ9nrGoN/Kty/oh4Gnha0sSIeK/gkTYw/gIzs2JyryGzdZOtBucFYDHQDrgqI30F8LfqNlofCjdmZmbWsGVrg/Me8B6wX92FY5adG/eaWVPga1nx5WyDI2kFX3cT3xBoAayMiE2KGZg1Lr5lZ9Y4uS1QzfjWYeORz0B/5Q2GJQkYAOxbOZ+k66hivJyM/dRksEAza0Ry/RoF/yI1s7qVTy+qchERwIOSRgIXVlr9Svr3AGBn4N50+RjgjXUJ0ixfjakmKdcvQf8KNLNia8q3yvK5RfWDjMVmQHdgVeV8EfGnNP9pQM+I+Cpd/iPJ/FXrHX+BmZmZ1Y98anCOynj+FbCQ5DZVdTYlGdyvrCv5t9O0rCTdBvQDPo6IXfOIy8zy4DYWNeM2FmZNQz5tcIbVcJ9XAK9Jmg4I6A1cmsd2E4HrgdtreDzLwTVJZma2vmmWK4OkP0lqm7G8aVrbUqWImADsA0wCHgD2K7t9lU1EPEMVAwiamZmZ1ZSSdsNZMkivRUS3XGkZ6wScAGwbEZdJ2hr4TkTMzBmM1BmYnM8tqi5dusTIkSNzZau1VxdmL2tt+O0Pcu5js486ZF2/5a5bOI56iGPXdrvlzFMXcdTF65FPLDV9PWbPng3AHnvsUaM49uy8WY2OUxuFeD1yvS+Q+71xHI4jl1yx1MXnpSHFsS6GDRs2KyK6V07Ppw1OM0mbRsS/ASRtlmO7PwBrgYOAy0hGPr4f6FHjqCuRdApwCsBWW221rrszMzOzdfThvH9mXZ9Pga8Y8ingXAW8KOkv6fIxwOgs+feJiD0lvQYQEf+WtOE6xkm6r5uBmwG6d+8eQ4cOLcRuq/THHF3nOvzXtJz7OPLZKiu5yg0dm7vti+MofBzbT8geRz5tkhrL65FPLGMHXpV1fWUlJSUAXHPNNTWK4/dDi9/dtBCvR673BXK/N47DceSSK5a6+LzkE8fCtr/PuY8j/z446/p8Xo91MWxY1U2F82lkfLukV0hqZAB+EBHZxrX5UlJz0kH/JLUnqdExswaornoNuTeXmdWlfAf624xkeoYJktpL6hIR71aT9/ckDYw7SBoNHA1cnOsAkv4MlADtJC0CRkbErXnGZ2Zm1mQ0pkFLG6p8BvobSTK4347ABJK5qO4kGbH4GyLiLkmzgINJuokPjIj5uY4TEdnruMysSfP4M2Y14yFAssvZTRwYBPQHVgJExIdA6+oyS7oVaBkRN0TE9RExX9KlhQjWzMzMLB/5FHBWp3NQlbWpaZUj/2HAnyT9JCOtfy3jMzMzM6uxfAo490m6CWgr6afAk8D4LPk/Jhm9+BhJN0jagORWlZmZmVmdyKcX1VhJhwLLSdrhXBIRT2TZRBHxKXBUemuqFGhTgFjNzMzM8pJPI+OT0t5MT6TLzSWNjIhR1WzycNmTiLg0bXB8XkGiNTMzM8tDPreoDpb0qKSOknYBZpClkXFEjKy0/EhEHFRdfjMzM7NCy+cW1Y8kHQfMJelJ9aOIeL5yPknPRURPSStIGySXrUp2E5sUKmgzMzOzbPK5RbU9cA7JfFI7AUPSyTY/z8wXET3Tv9XW7piZmZnVhXxGMn4EOCMipqUzhZ8PvAzskpkpnYSzWhGRexpXMzMzswLIp4Czd0Qsh+Q+E3CVpEeqyDeL5NZUVV3CA9i21lGamZmZ1UC1jYwl/QIgIpZLOqbS6qGV80dEl4jYNv1b+eHCjZmZmdWZbL2ojs94PqLSur7ZdippU0l7S+pd9qh1hGZmZmY1lO0Wlap5XtXy1yukk0kaJXcCZgP7Ai8C7ipuZmZmdSJbDU5U87yq5UznAD2A9yKiD9AN+KRW0ZmZmZnVQrYanK6SlpPU1myUPiddbpllu1URsUoSkr4VEW9K2rFQAZuZmZnlUm0BJyKa13KfiyS1BR4EnpD0b+C9Wu7LzMzMrMby6SZeIxExKH16qaTpJBNtTi30cczMzMyqk89cVDWW9qLaHVgBLAJ2LcZxzMzMzKpS8BocSb8mGSfnHWBtmhy4F5WZmZnVkYIXcIBjge0iYnUR9m1mZmaWUzFuUc0D2hZhv2ZmZmZ5KUYNzhjgNUnzgC/KEiOifxGOZWZmZvYNxSjg/An4LTCXr9vgmJmZmdWZYhRwPo+I3xdhv2ZmZmZ5KUYB51lJY4CHqXiL6tUiHMvMzMzsG4pRwOmW/t03Iy2vbuKS+gLXAs2B8RFxReHDMzMzs6auoAUcSc2BhyNiXC23vQE4lGRwwJclPRwRbxQyRjMzM2v6CtpNPCLWAINrufnewNsR8U46hs49wICCBWdmZmbrjWLconpe0vXAvcDKssQ82uBsBbyfsbwI2Kfw4ZmZmVlTp4go7A6TCTYri4jI2gZH0tFA34g4OV0eAuwTEWdm5DkFOCVd3BF4qzBRF0Q7YGl9B0HDiQMaTiyOoyLHUZHjqMhxVOQ4KmoocWTaJiLaV04sxmzifWq56QfAdzOWO6Vpmfu+Gbi5lvsvKkmvRER3x/G1hhKL43AcjsNxOI6mFUc+Cj5Vg6Q2kq6W9Er6uEpSmzw2fRnYXlIXSRsCx5N0NTczMzOrkWLMRXUbsIJk0s1jgeXAhFwbRcRXwJnAY8B84L6IeL0I8ZmZmVkTV4xGxttFxA8zlkdJmp3PhhHxKPBoEWKqCw3l1llDiQMaTiyOoyLHUZHjqMhxVOQ4KmooceRUjEbGLwLDI+K5dPkAYGxE7FfQA5mZmZlVoxgFnK7A7UAbQMC/gKERMaegBzIzMzOrRsHb4ETEnIjoCuwO7BYR3Zpa4UZSZ0nzGmIMknpJel3SbEkb1Uds1nBIaivp9PqOA7Kes+dK2rg+YmoIJJ0tab6klZJ2rqcYXqiP41Ym6bP6jsGajoK3wZH0LeCHQGdgA0kARMRlhT6WVekEYExE3FnfgTRUkpqno26vD9oCpwN/qOc4sjkXuBP4vJ7jqC+nA4cAlwM7A3U+PU1E7F/XxzQrtmL0onqIZIqFr0hGMi57NDUbSLor/eX1v5I2ltRD0guS5kiaKal1HcdwNknPtV+n6R0lPZPW5syT1KuYwUj6iaS/pf//HZK2kDQpXZ4jqegX0bSW4M0q3puFkn4r6VXgmAIer5WkKen/N0/ScZKukPRG+lqMTfMdk66fI+mZNG2opIcklUr6u6SRhYorwxXAduk5cKWk/5E0N42jPiazreqc3RKYXs0goQVVxTm6naQZ6WtyeV3XIEj6I7At8C5wInBl+l5tV8dxfJb+rdNrRpZ4SiRNzli+XtLQIh6v7LoxUdKC9Bw9RNLz6Wdzb0ntJT2R1pCPl/SepHZFiqeq68pCSb9Lz9WZkv6rGMeuFEeFWldJF0i6VNJPJb2cxne/GmoNbEQU9AHMK/Q+G9qDpHYqgAPS5duAXwDvAD3StE2ADeo4hguAicDRadrPgV+mz5sDrYsYzy7AAqBdurwZyXQd52Ycv009vTcXAAuBXxTheD8EbslY3oZkhO2y9m1t079zga0qpQ0FFgObAxsB84DuRXg95qXPDwdeADYue4+K/X7U4L1pVwfHr+ocnQwMTpdPBT6ry9ckPe5CktFhyz+79RDDZ+nfOrtm5IijBJickX49SVvOYp6bXwG7kfzwn5WenyL5wf5gGsOINH/f9FwuynlbxXWlTXqelL03P8l8fYr8uszLWL4AuBTYPCPtcuCsujxP8n0UowbnBUm7FWG/Dc37EfF8+vxO4DBgcUS8DBARyyMZ26cuY+hZaf3LwDBJl5K0h1pRxFgOAv4SEUsBIuJfadqN6fKaiPi0iMfPVN3rcm8RjjUXODStHepFMvr2KuBWST/g69suzwMTJf2U5IujzBMRsSwi/gM8wDffw0I6BJgQEZ9D+XtU13Kds8VU1Tm6H/CXdP3ddRhLQ1WX14yG5t2ImBsRa4HXgWmRfIPPJfmi70kyCTQRMRX4dxFjqXBdybh2/jnjb332TN5V0rOS5pI0i9ilHmOpVjEKOD2BWZLeSquC50r6WxGOU98qdz9b3gBiqLAcEc8AvUm+dCdK+kldBVbPqntdCn6rNCIWAHuSXJAuBy4C9gb+F+gHTE3znQpcTDIdySxJm+eItala3/7fRqUBXTO+ouL3U8s6OOYXGc/XZiyvpThjxlWr8nVF0iVlqzKz1UEo1b0PE4EzI2I3YBR18/7UWDEKOIcD2wPfB44iucgfVYTj1LetJZWVoH8EzAA6SuoBIKm1pGJ/KCrH8FzmSknbAP+MiFuA8SQfmGJ5Cjim7Itb0mbANOC0dLm58puyoxCyvi6FJGlL4PNIGnVfSfLl0CaSQSvPA7qm+baLiJci4hJgCV/Pu3aopM2U9HgbSFLTU0grgLK2YE+Q/DrfOI1pswIfKx9VvTeZMRZTVefoDJLbAZBMD1Of6up1qFYdXzOyeQ/YWdK3JLUFDq6nODI9T9LGEUnfBzYt1oGquK6UvQ/HZfx9sVjHz/BPoIOkzZV0IOqXprcGFktqQVKD0yAVY7LN9wq9zwbqLeAMSbeR9Hq4juQCel36ZfUfklsCxWy0WDmGG6nYW6YEGC7pyzSOov0ai4jXJY0Gnpa0BngNOAe4WdJJwBqSwk5dfCirel3OKtKxdiNpGLoW+BI4H5gsqSXJ/fvz03xXSto+TZsGzAH2AGYC95NMLntnRLxSyOAiYlnaUHIe8FeS+d1ekbSaZNTwiwp5vDxU9d6sBqZK+jBqP1lvTtWco+cCd0r6JUltW13dRq3KPcAtShpeHx0R/6iHGEqoo2tGNhHxvqT7SNqlvUvyXtW3UcCfJQ0huY59RFIoLYbK15XTSGqFN03viHwBDC7SsctFxJeSLiO5Tn0AvJmu+hXwEsmPtZeo54J5dQo+0J9ZfZLUmaTx3a71HUsuaa+Q7hFxZn3Hsr5Ka7P+ExEh6XiSBscD6jsua3jSGow1EfFVWgt5Y0TsUYfHX0hyvVhaV8ds7Or0vqKZWQOzF3C9JAGfAP9dv+FYA7Y1cJ+kZiS1jj+t53gsB9fgmJmZWZNTjEbGZmZmZvXKBRwzMzNrclzAMTMzsybHBRxrNJTMbXW3pHckzZL0oqRBGeuvkfRB2giwLG2opCVK5tZ5Ix1JuHL660rnrErX7SvppXTd/HRU16riuSsd0HKepNvSMSGQdELGIJcvSOpa1BfGbD0iKSRdlbF8QdlnVMk8SR/o67m0+leR/qakGzOvE5X2/x1J90j6R3qdeVTSDnXyz1lBuYBjjULay+VB4JmI2DYi9iIZmK1Tur4ZMAh4Hziw0ub3pt05S4DfSNoiMz0idiHpFVE2iNafgFPSbXYF7qsmrLuA75GMWbERcHKa/i5wYDrK56+Bm2v3X5tZFb4AfqDqJ7ocl352jwFuyyjIlKXvTPKZrXydKLvOTAJKI2K79DozAtiicl5r+FzAscbiIGB1RPyxLCEi3ouI69LFEpL5Y26kmgGwIuJj4B8kE2KWUzLidCu+nlumA8kkmGVzaL1Rzf4ejRTJQFid0vQXIqJsXzPK0s2sIL4i+dFwXrZMETE/zVu5ILQhydQCVc0l1Qf4stJ1Zk5EPLtOEVu9cAHHGotdgFezrB9MMgHdJODIsttFmSRtC2wLvJ0mHSdpNskInZsBj6Tp44C3JE2S9LN0VOJqpccaQjrvVCUnkYwgbGaFcwNwgrJM/yJpH5J5pJakSeeln/fFwIKImF3FZruSzCRuTYALONYoSbpB0hxJL0vaEDgCeDAilpMMHX5YRvaygsyfgZ9lzKJdduvqOyST2g0HiIjLgO7A4yTzJVVVcMn0B5JbZxV+5UnqQ1LA+Z9a/6Nm9g3p5/x24OwqVpcVZMYCx8XXg72V3aLqALRKR662JswFHGssXidj4r+IOINkAr72JIWZtsDcdDjznlS8TVXW1mafiJhUecfpBfARkokyy9L+ERE3psfoqmSyucfSRorjy/JJGpnGcH7mPiXtTjJZ4YCIWLZO/7mZVeUakh8QrSqlj0s/772qurUUEV+S/GjpLem76Wd6tqRTSa4zexU7cKsbLuBYY/EU0FLSaRlpG6d/BwMnR0TniOgMdCGZpXtj8teTpH0Oko5MGxsCbE8yUegnEXFYeuE8Oc13MknhanBErC3bkaStgQeAIRGxoKb/qJnlltbE3kdSyMlb+tk+APhHRLyffqb3SNvdPAV8S9IpGfl3l9SrkLFb3XABxxqFtJZlIHCgpHclzSTp7TQS6AtMyci7EngOOCrHbo9Lf7n9DehG0uMJkvY0b6XV3HcAJ0TEmiq2/yNJ74oX0/1ckqZfAmwO/CFNL+gM4WZW7iq+2Yi4OmW3ruYBzUluLVeQXmcGAYek3cRfB8aQzBxujYznojIzM7MmxzU4ZmZm1uS4gGNmZmZNjgs4ZmZm1uS4gGNmZmZNjgs4ZmZm1uS4gGNmZmZNjgs4ZmZm1uS4gGNmZmZNzv8DuCTvF+TCh7YAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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b9+el156qRAvUaPZYost+PDDDwG48sor2W233Zg2bRqHHZbUyL3++uvsueee9OnTh6effrpqu4EDBzJx4kQee+wxjjxy3WqgSmHRokVsscUWVctt27Zl1apVLFmyhF/96leMGTOG3r17U1FRwcsvv8zNN98MkPX8q3TJJZfw8MMP88ILL3D33Xe7VtLMmr1CNjJ+EHhQUjugP3Au0FnSjcDEiHiyUMdqTF26dOGDDz74WvoTTzzBtddeS0Tw0UcfAXDhhRdy4oknsvnmmzNq1Cjeeeedqi+WVq1asWbNGoYNG8bs2bNZunQpAwcOZP78+Xzve0mP+j322IMnn3ySJUuWMHfuXA455BAAPvroIyKi1saf2fYL8M4779C2bVuuueYaAObOnctFF12EJJYvX85ee+1V0Neq1BYuXMhOO+3Ee++9x7Bhwxg6dCgDBgzgX//6F8uWLWP27Nn06dOHL774gh122KGqMLPDDjvwxhtv0K5dOzbZZJNG/i9yq3kOrly5kjZt2tC5c2e6du0KwIwZMxg5ciSrV6/mzTffBPja+Zdp1qxZ9OvXD0hugS1evJgtt9yyFP+OmVlRFPxGfUSsiIg/R8RRQFfgNeC/Cn2cxnLEEUdw1113sWzZMgDeffddFi1axOjRo3n88cd56KGHqr48DjroIO688046d+7MpEmT2HHHHXn55ZeBpFZm5syZrFixgueee44zzjiDiGDrrbdm9uzZQFLjANCxY0d22203pkyZQkVFBbNmzaqzZ0u2/ULyRT5o0CCGDRsGJJMljhkzhoqKCqZPn07//v2L86KVwMKFC3nqqafYc889q9Jat27NmWeeydixY3nggQcYN24ckydPZurUqSxatIi1a9dW5f3Rj37E4MF5zSrS6A4//HDuuOMOVqxYAcDYsWMZMGBAtULLH/7wB8aNG8fTTz9dNX5NzfMvU48ePXj00UepqKjg9ddfd+HGzJq9vGtwJG0cEZ/lyNMa+GZELEmTVpDcpirp1bKuRsLrqlOnTvzmN7+hb9++RASbbbYZt912G3379qV3797stddeVV8o/fv35/PPPwfgr3/9KwcccAAnnngil19+Ofvttx8XX3wx7777Ln369OE73/kOW265JV26dGGPPfagV69edO/eHUh+bZ9//vkcfPDBSGLnnXfmhhtuqBbXmDFjqnoHjR079mv7rXTSSScxevRofv/733PxxRdzyimn8Omnn9KqVSvGjRtHt27d1un1qa2RcLH88pe/pGPHjmy44YZcf/31bLTRRtXWH3roofz6179mgw02qNZbauedd+b555+vWq7sOTVv3ryCxFVXI+F11blzZ4YPH06fPn1o1aoVPXr0YNiwYfz5z3+uyjNw4ED69+/P7rvvXnU+XnTRRdXOv9/97ndV+UeOHMlRRx1VdU7ff//9RYvfzKwUcs4mLmk/YBzwjYjYSlJ34BcRcXqNfMcDN5MUav4XGAXcDrwK/DYiXitk4DVnE587dy477bRTIQ9hZqnMz5dnEzezpqS22cTzqcEZCxwGPAwQEbMk9c6S79fAHhHxbjrh5kvA0RHxyDrEbWZmZlZvebXBiYj3ayRl6/69KiLeTfO/BvyvCzdmZmbWGPKpwXk/vU0VktoA55DMGF5TZ0nnZyx3yFyOiDHrFmpudfUsMrOGyXUb28ysKcqngHMqcC1JQ+GFwJNkn1fqVqB9HctF1bZtWz7++GM233xzF3LMCqiyG7rZ+iDXaOyl7khhDZezgJP2iDohj3wjCxJRA3Xt2pUFCxawePHixgzDrEXKNrilmVlTlrOAI2kb4CygW2b+iOiXJe+BwJnAd9OkucD1EVFRgFjr1KZNG7bZZptiH8bMzMyagXxuUT0I3AY8AqytLZOkI4HrgcvSh4DvA7dLOjMiHlvnaM3MzMzykE8BZ2VE/DGPfMOAARExKyNtpqTpwHWACzhmZmZWEvkUcK6VNIKkcXHVFMxZBu77do3CTWW+v0v61rqFaWZmZpa/fAo4uwGDgYP46hZVpMuZVtSxj7rWmZmZmRVUPgWcY4BtI2JVjnzbSXo4S7qAbesdmZmZWQu1z4gn6lxfzDkV1xf5FHDmAB2Aj3Lkq2sq6qvyDcjMmp9cF2vwBXt95vPDGkM+BZwOwFuSXqV6G5xq3cQj4tmaG0r6fqEn2TQzMzPLJZ8Czoh12P84kq7iZmZWYq45sfVZPiMZf61mph7ynjNB0neAO4BvkTRiviUirl2HY5uZmVXJp8DXuUcJArGSqLWAI+mFiCiTtIykwFG1CoiI2CSP/ddn+oYvgV9GxGuS2gMzJD0VEW/WYx9mZmZmtRdwIqIs/VvvCTMldQd6VT7PNj5OluMtAhalz5dJmksywacLOGZmZlYvrXJlkHRnPmkZ684B7gY6p4+7JJ1Vn6AkdQN6AK/UZzszMzMzyK+R8S6ZC5I2APaoI/9JwN4RsSLN/3vgJZLpGnKS9A3gfuDciFhaY90pwCkAW221VT67MzMzs/VQXW1whgMXAxtJqixoCFgF3FLHPgWsyVheQ56NjSW1ISnc3B0RD9RcHxG3VB67Z8+eUXO9mZnVT78Hj6xz/cMDHi1RJGaFVVcbnNHAaEmjI2J4PfY5HnhF0sR0eQDJbOR1kqQ039yIGFOP45mZNSnunm3W+PLpJl6fwg0RMUbSs8D+adLQiHg9j033J5nzarakmWnaxRHhWcjNzMysXvJpg9MQM0l6RG0AIGmriPh/dW0QES9Qj3FzzMzMzGpT8AJO2mNqBPB/fNX+JoDvFfpYZmZmZtnkVcCR1JpkhOGq/HXUyJwD7BgRH697eOYZZ83MzOovZwGnRo3M2jS5rhqZ94FPCxKdmZmZWQPkU4NT3xqZ94AKSY9SffZx94wyMzOzksingFPfGpn/lz42TB9mZmZmJZVPAadeNTIRUZ8JNs3MzMwKLp8CjmtkzGydecRcMyulfAb6GwlVc0QREcuLHZQ1Pe7NZWZWOrl+EIB/FOSSz2ziu0p6HXgDeEPSDEm75NrOzMzMrLHkc4vqFuD8iJgKIKkcuBXYL1tmSV1JZg4vI+lO/jxwTkQsKEC8JdNcaixcyl+/ec4jW1/c3P+unHl+8dBPShCJNRc5a3CAdpWFG4CIqADa1ZF/PPAw0AXYAngkTTMzMzMribx6UUn6DXBnuvwTkp5VtekUEZkFmgmSzm1gfGZmth7IVRt9JINKFIm1FPnU4PwM6AQ8kD46pWm1+VjSTyS1Th8/ATxtg5mZmZVMPr2o/g2cXY99/oykDc5YkjY4fwOGNCQ4MzMzs4aotYAj6ZqIOFfSIyQFlWoiol8tm3atuU7S/iQjIpuZmZkVXV01OJVtbq6q5z6vA76fR5pZs9VcetlZ0+WBD82Kq9YCTkTMSJ/uHhHXZq6TdA7wbI20fUm6jneSdH7Gqk2A1oUJ18zMzCy3fHpRnQhcWyNtSJa0DYFvpPtsn5G+FDi6gfFZM+HxeMzMmp+WXBtdVxucQcCPgW0kPZyxqj3wr5r5I+JZ4FlJEyJifsEjNTMzM8tTXTU4fwMWAR2BqzPSlwF/r20jF27MzNadR+41Wzd1tcGZD8wH9i1dOGYtg2/Z1Z+/0M2skHK2wZG0jK+6iW8ItAFWRMQmxQzMzKy+PDeXmVXKZ6C/qgbDkgT0B/apmU/SdWQZLydjP/UZLNDMrCjcPbt+XLNmzVU+vaiqREQAD0oaAVxUY/X09O/+wM7AvenyMcCb6xKkrZtcFyhfnFo2f6GbtUy+ttctn1tUP8xYbAX0BFbWzBcRf0rznwaURcSX6fJNwPMFidbMCs6/0M2sNs25PWE+NThHZTz/EphHcpuqNt8kGdyvsiv5N9K0Okm6HegLfBQRu+YRlzUz/rVhZs2dfxA0H/m0wRlaz31eAbwuaSogoDdwaR7bTQCuB+6o5/EaRXMu1VrT4AKfmVnx5HOL6k/AORHxSbr8TeDqiPhZtvwRMV7S48DeadJ/RcSHuY4TEc9J6pZv4M2Bv8DMzKyla6rfdUraDdeRQXo9InrkSstYJ+AEYNuIuEzSVsC3I2JazmCSAs6kfG5RbbPNNjFixIhc2RrstXlfG6y5mg2/sTDnPjb7sHOd67fY9VuOo55xNBVN5fXIFUc+seSKo2YsM2fOBGD33Xdv1DiyKUQcu3bcLec+cmlJr4fjKHwc+cTSVK4hzeHaPnTo0BkR0bNmeqs8tm2V1toAIGkz6q75+W+SwQEHpcvLgBvqEWutJJ0iabqk6atXry7ELs3MzKwFyqeR8dXAS5L+mi4fA4yqI//eEfF9Sa8DRMS/JW24jnGS7usW4BaAnj17xpAhQwqx26xuyjFgWOf/nJJzH0c+n7WSq8qQq3JX2zmOpqmpvB654sgnllxx1IylvLwcgGuuuaZR48imEHFsPz53HLmq3FvS6+E4Ch9HPrE0lWtIc7i2Dx2avalwPo2M75A0HTgoTfphRNQ1rs1qSa1JB/2T1AlYW79wzczMzBou34H+NiOZnmG8pE6StomIf9aS94/ARKCzpFHA0cCvcx1A0l+AcqCjpAXAiIi4Lc/4bD2Rayh+D8NvZmaQXy+qESSD++0IjCeZi+oukhGLvyYi7pY0AziYpJv4gIiYm+s4ETEoVx6zXNx938zMIL9GxgOBfsAKgIj4AGhfW2ZJtwFtI+KGiLg+IuZKurQQwZqZmZnlI58Czqp0DqrKNjXtcuQ/DPiTpJ9mpPVrYHxmZmZm9ZZPAec+STcDHST9HHgaGFdH/o9IRi8+RtINkjYguVVlZmZmVhL59KK6StKhwFKSdjiXRMRTdWyiiPgUOCq9NVUBbFqAWM0KoqmOumlmZoWTTyPjk9LeTE+ly60ljYiIkbVs8nDlk4i4NG1wfF5BojUzMzPLQz63qA6W9JikLpJ2AV6mjkbGETGixvIjEXFQbfnNzMzMCi2fW1Q/lnQcMJukJ9WPI+LFmvkkvRARZZKWkTZIrlyV7CY2KVTQZmZmZnXJ5xbV9sA5wP3ATsDgdLLNzzLzRURZ+rfW2h0zMzOzUshnJONHgDMiYko6U/j5wKvALpmZ0kk4axURuadxNTMzMyuAfAo4e0XEUkjuMwFXS3okS74ZJLemsnUJD2DbBkdpZmZmVg+1NjKWdCFARCyVdEyN1UNq5o+IbSJi2/RvzYcLN2ZmZlYydfWiOj7j+fAa6/rUtVNJ35S0l6TelY8GR2hmZmZWT3XdolItz7Mtf7VCOpmkUXJXYCawD/AS4K7iZmZmVhJ11eBELc+zLWc6B9gTmB8RBwI9gE8aFJ2ZmZlZA9RVg9Nd0lKS2pqN0ueky23r2G5lRKyUhKT/iIi3JO1YqIDNzMzMcqm1gBMRrRu4zwWSOgAPAk9J+jcwv4H7MjMzM6u3fLqJ10tEDEyfXippKslEm5MLfRwzMzOz2uQzF1W9pb2ovgcsAxYAuxbjOGZmZmbZFLwGR9JvScbJeQ9YmyYH7kVlZmZmJVLwAg5wLLBdRKwqwr7NzMzMcirGLao5QIci7NfMzMwsL8WowRkNvC5pDvBFZWJE9CvCsczMzMy+phgFnD8Bvwdm81UbHDMzM7OSKUYB57OI+GMR9mtmZmaWl2IUcJ6XNBp4mOq3qF4rwrHMzMzMvqYYBZwe6d99MtLy6iYuqQ9wLdAaGBcRVxQ+PDMzM2vpClrAkdQaeDgixjZw2xuAQ0kGB3xV0sMR8WYhYzQzM7OWr6DdxCNiDTCogZvvBbwbEe+lY+jcA/QvWHBmZma23ijGLaoXJV0P3AusqEzMow3OlsD7GcsLgL0LH56ZmZm1dIqIwu4wmWCzpoiIOtvgSDoa6BMRJ6fLg4G9I+LMjDynAKekizsCbxcm6oLoCCxp7CBoOnFA04nFcVTnOKpzHNU5juocR3VNJY5MW0dEp5qJxZhN/MAGbroQ+E7Gctc0LXPftwC3NHD/RSVpekT0dBxfaSqxOA7H4Tgch+NoWXHko+BTNUjaVNIYSdPTx9WSNs1j01eB7SVtI2lD4HiSruZmZmZm9VKMuahuB5aRTLp5LLAUGJ9ro4j4EjgTeAKYC9wXEW8UIT4zMzNr4YrRyHi7iPhRxvJISTPz2TAiHgMeK0JMpdBUbp01lTig6cTiOKpzHNU5juocR3WOo7qmEkdOxWhk/BIwLCJeSJf3B66KiH0LeiAzMzOzWhSjgNMduAPYFBDwL2BIRMwq6IHMzMzMalHwNjgRMSsiugPfA3aLiB4trXAjqZukOU0xBkm9JL0haaakjRojNms6JHWQdHpjxwF1nrPnStq4MWJqCiSdLWmupBWSdm6kGP7WGMetSdLyxo7BWo6Ct8GR9B/Aj4BuwAaSAIiIywp9LMvqBGB0RNzV2IE0VZJap6Nurw86AKcD/93IcdTlXOAu4LNGjqOxnA4cAlwO7AyUfHqaiNiv1Mc0K7Zi9KJ6iGSKhS9JRjKufLQ0G0i6O/3l9T+SNpa0p6S/SZolaZqk9iWO4WySnmu/TdO7SHourc2ZI6lXMYOR9FNJf0///zslfUvSxHR5lqSiX0TTWoK3srw38yT9XtJrwDEFPF47SY+m/98cScdJukLSm+lrcVWa75h0/SxJz6VpQyQ9JKlC0v9KGlGouDJcAWyXngNXSvovSbPTOBpjMtts5+wWwNRaBgktqCzn6HaSXk5fk8tLXYMg6SZgW+CfwInAlel7tV2J41ie/i3pNaOOeMolTcpYvl7SkCIer/K6MUHSO+k5eoikF9PP5l6SOkl6Kq0hHydpvqSORYon23VlnqQ/pOfqNEn/WYxj14ijWq2rpAskXSrp55JeTeO7X021BjYiCvoA5hR6n03tQVI7FcD+6fLtwIXAe8CeadomwAYljuECYAJwdJr2S+BX6fPWQPsixrML8A7QMV3ejGS6jnMzjr9pI703FwDzgAuLcLwfAbdmLG9NMsJ2Zfu2Dunf2cCWNdKGAIuAzYGNgDlAzyK8HnPS54cDfwM2rnyPiv1+1OO96ViC42c7RycBg9LlU4HlpXxN0uPOIxkdtuqz2wgxLE//luyakSOOcmBSRvr1JG05i3lufgnsRvLDf0Z6forkB/uDaQzD0/x90nO5KOdtluvKpul5Uvne/DTz9Sny6zInY/kC4FJg84y0y4GzSnme5PsoRg3O3yTtVoT9NjXvR8SL6fO7gMOARRHxKkBELI1kbJ9SxlBWY/2rwFBJl5K0h1pWxFgOAv4aEUsAIuJfadqN6fKaiPi0iMfPVNvrcm8RjjUbODStHepFMvr2SuA2ST/kq9suLwITJP2c5Iuj0lMR8XFEfA48wNffw0I6BBgfEZ9B1XtUarnO2WLKdo7uC/w1Xf/nEsbSVJXymtHU/DMiZkfEWuANYEok3+CzSb7oy0gmgSYiJgP/LmIs1a4rGdfOv2T8bcyeybtKel7SbJJmEbs0Yiy1KkYBpwyYIenttCp4tqS/F+E4ja1m97OlTSCGassR8RzQm+RLd4Kkn5YqsEZW2+tS8FulEfEO8H2SC9LlwMXAXsD/AH2ByWm+U4Ffk0xHMkPS5jlibanWt/+3WWlC14wvqf791LYEx/wi4/najOW1FGfMuFrVvK5IuqRyVWa2EoRS2/swATgzInYDRlKa96feilHAORzYHvgBcBTJRf6oIhynsW0lqbIE/WPgZaCLpD0BJLWXVOwPRc0YXshcKWlr4P8i4lZgHMkHplieAY6p/OKWtBkwBTgtXW6t/KbsKIQ6X5dCkrQF8FkkjbqvJPly2DSSQSvPA7qn+baLiFci4hJgMV/Nu3aopM2U9HgbQFLTU0jLgMq2YE+R/DrfOI1pswIfKx/Z3pvMGIsp2zn6MsntAEimh2lMpXodalXia0Zd5gM7S/oPSR2AgxspjkwvkrRxRNIPgG8W60BZriuV78NxGX9fKtbxM/wf0FnS5ko6EPVN09sDiyS1IanBaZKKMdnm/ELvs4l6GzhD0u0kvR6uI7mAXpd+WX1OckugmI0Wa8ZwI9V7y5QDwyStTuMo2q+xiHhD0ijgWUlrgNeBc4BbJJ0ErCEp7JTiQ5ntdTmrSMfajaRh6FpgNXA+MElSW5L79+en+a6UtH2aNgWYBewOTAPuJ5lc9q6ImF7I4CLi47Sh5BzgcZL53aZLWkUyavjFhTxeHrK9N6uAyZI+iIZP1ptTLefoucBdkn5FUttWqtuo2dwD3Kqk4fXREfGPRoihnBJdM+oSEe9Luo+kXdo/Sd6rxjYS+IukwSTXsQ9JCqXFUPO6chpJrfA30zsiXwCDinTsKhGxWtJlJNephcBb6arfAK+Q/Fh7hUYumNem4AP9mTUmSd1IGt/t2tix5JL2CukZEWc2dizrq7Q26/OICEnHkzQ47t/YcVnTk9ZgrImIL9NayBsjYvcSHn8eyfViSamO2dyV9L6imVkTswdwvSQBnwA/a9xwrAnbCrhPUiuSWsefN3I8loNrcMzMzKzFKUYjYzMzM7NG5QKOmZmZtTgu4JiZmVmL4wKONRtK5rb6s6T3JM2Q9JKkgRnrr5G0MG0EWJk2RNJiJXPrvJmOJFwz/Q2lc1al6/aR9Eq6bm46qmu2eO5OB7ScI+n2dEyIynl0Pk23n5kxSJeZrSNJIenqjOULKj+jSuZJWqiv5tLqlyX9LUk3Zl4naux/TcZ1YZakX9aW15o2v2nWLKS9XB4EnouIbSNiD5KB2bqm61sBA4H3gQNqbH5v2p2zHPidpG9lpkfELiS9IioH0foTcEq6za7AfbWEdTfwXZIxKzYCTs5Y93y6790j4rIG/dNmls0XwA9V+0SXY9PP7jHA7RmFk8r0nUk+szWvE5U+z7guHEoyeG0xJsK1InMBx5qLg4BVEXFTZUJEzI+I69LFcpL5Y26klgGwIuIj4B8kE2JWUTLidDu+mlumM8kkmJVzaL1Zy/4eixTJQFhdG/avmVk9fAncQjJSeK0iYm6at2ZBaEOSqQVyziWVXjNOAc5Mf2RZM+ICjjUXuwCv1bF+EMkEdBOBIytvF2WStC2wLfBumnScpJkkI3RuBjySpo8F3pY0UdIv0lGJa5UeazDpvFOpfdPq7cclNcmJ6MyasRuAE1TH9C+S9iaZR2pxmnRe+nlfBLwTETPzOVBEvEcyQW7ndQnYSs8FHGuWJN2QFiBelbQhcATwYEQsJRk6/LCM7JUFmb8Av8iYRbvy1tW3SSa1GwaQ3lLqCTxJMl9SZsElm/8muXX2fLr8GrB1RHQnmcLjwXX5X82suvRzfgdwdpbVlQWZq4Dj4qvB3ipvUXUG2qUjV1sL5gKONRdvkDHxX0ScQTIBXyeSwkwHYHY6nHkZ1W9TVba12TsiJtbccXoBfIRkoszKtH9ExI3pMbormWzuibTx4bjKfJJGpDGcn7Ht0ohYnj5/DGhTR3sBM2uYa4CTSG4vZxqbft57ZfzoqBIRq0l+tPSW9J2MzgCnZjtIWvO7BviosOFbsbmAY83FM0BbSadlpG2c/h0EnBwR3SKiG7ANySzdG5O/MpL2OUg6MuN++/YkF7dPIuKw9MJ5cprvZJLC1aCIWFu5I0nfrtxe0l4kn7OP6/fvmlld0prY+0gKOXlLP5v7A/+IiPczOgPclCVvJ+Am4PqMmiBrJjwXlTUL6WSIA4Cxki4kua++gqR3w1jg1Iy8KyS9AByVY7fHSSojKYAsAIak6YPT43xG0kjxhIhYk2X7m4D5wEtpeeaB9PbW0cBpkr4kmVX+eF8czYriaiDfyWrPk/QToA3wd5Jby9lslN7iakPy+b8TGLOOcVoj8FxUZmZm1uL4FpWZmZm1OC7gmJmZWYvjAo6ZmZm1OC7gmJmZWYvjAo6ZmZm1OC7gmJmZWYvjAo6ZmZm1OC7gmJmZWYvz/wGDjOeYlV4vFAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "app_gap = df_gap22_cas['app']\n", - "gap_22_cas = df_gap22_cas['simSeconds'].astype(float)*1000\n", - "gap_22_ram = df_gap22_ram['simSeconds'].astype(float)*1000\n", - "gap_22_orc = df_gap22_orc['simSeconds'].astype(float)*1000\n", - "gap_22_noDC = df_gap22_noDC['simSeconds'].astype(float)*1000\n", - "\n", - "\n", - "gap_25_cas = df_gap25_cas['simSeconds'].astype(float)*1000\n", - "gap_25_ram = df_gap25_ram['simSeconds'].astype(float)*1000\n", - "gap_25_orc = df_gap25_orc['simSeconds'].astype(float)*1000\n", - "gap_25_noDC = df_gap25_noDC['simSeconds'].astype(float)*1000\n", - "\n", - "\n", - "app_npb = df_npbC_cas['app']\n", - "npb_C_cas = df_npbC_cas['simSeconds'].astype(float)*1000\n", - "npb_C_ram = df_npbC_ram['simSeconds'].astype(float)*1000\n", - "npb_C_orc = df_npbC_orc['simSeconds'].astype(float)*1000\n", - "npb_C_noDC = df_npbC_noDC['simSeconds'].astype(float)*1000\n", - "\n", - "npb_D_cas = df_npbD_cas['simSeconds'].astype(float)*1000\n", - "npb_D_ram = df_npbD_ram['simSeconds'].astype(float)*1000\n", - "npb_D_orc = df_npbD_orc['simSeconds'].astype(float)*1000\n", - "npb_D_noDC = df_npbD_noDC['simSeconds'].astype(float)*1000\n", - "\n", - "\n", - "# Multi bar Chart1\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "plt.ylim([0,3])\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*4, gap_22_cas[i]/gap_22_noDC[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*4+1, gap_22_ram[i]/gap_22_noDC[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", - " plt.bar(i*4+2, gap_22_orc[i]/gap_22_noDC[i], width=1, color=cmap(3), label='Oracle' if i==0 else None)\n", - "\n", - "offset = i*4+3\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*4+1, npb_C_cas[i]/npb_C_noDC[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*4+2, npb_C_ram[i]/npb_C_noDC[i], width=1, color=cmap(2))\n", - " plt.bar(offset+i*4+3, npb_C_orc[i]/npb_C_noDC[i], width=1, color=cmap(3))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*4+1, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Execution time\\nnormalized to no-DRAM-$\")\n", - "plt.legend(fontsize=8, ncol=3)\n", - "plt.tight_layout()\n", - "\n", - "# Multi bar Chart2\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "plt.ylim([0,3])\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*4, gap_25_cas[i]/gap_25_noDC[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*4+1, gap_25_ram[i]/gap_25_noDC[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", - " plt.bar(i*4+2, gap_25_orc[i]/gap_25_noDC[i], width=1, color=cmap(3), label='Oracle' if i==0 else None)\n", - "\n", - "offset = i*4+3\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*4+1, npb_D_cas[i]/npb_D_noDC[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*4+2, npb_D_ram[i]/npb_D_noDC[i], width=1, color=cmap(2))\n", - " plt.bar(offset+i*4+3, npb_D_orc[i]/npb_D_noDC[i], width=1, color=cmap(3))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*4+1, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Execution time\\nnormalized to no-DRAM-$\")\n", - "plt.legend(fontsize=8, ncol=3)\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "app_gap = df_gap22_cas['app']\n", - "gap_22_cas = df_gap22_cas['totBW'].astype(float)\n", - "gap_22_ram = df_gap22_ram['totBW'].astype(float)\n", - "gap_22_noDC = (df_gap22_noDC['farAvgRdBWSys'].astype(float)+df_gap22_noDC['farAvgWrBWSys'].astype(float))/1000000000\n", - "\n", - "\n", - "gap_25_cas = df_gap25_cas['totBW'].astype(float)\n", - "gap_25_ram = df_gap25_ram['totBW'].astype(float)\n", - "gap_25_noDC = (df_gap25_noDC['farAvgRdBWSys'].astype(float)+df_gap25_noDC['farAvgWrBWSys'].astype(float))/1000000000\n", - "\n", - "app_npb = df_npbC_cas['app']\n", - "npb_C_cas = df_npbC_cas['totBW'].astype(float)\n", - "npb_C_ram = df_npbC_ram['totBW'].astype(float)\n", - "npb_C_noDC = (df_npbC_noDC['farAvgRdBWSys'].astype(float)+df_npbC_noDC['farAvgWrBWSys'].astype(float))/1000000000\n", - "\n", - "npb_D_cas = df_npbD_cas['totBW'].astype(float)\n", - "npb_D_ram = df_npbD_ram['totBW'].astype(float)\n", - "npb_D_noDC = (df_npbD_noDC['farAvgRdBWSys'].astype(float)+df_npbD_noDC['farAvgWrBWSys'].astype(float))/1000000000\n", - "\n", - "\n", - "# Multi bar Chart1\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "#plt.ylim([0,2.5])\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_22_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_22_ram[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", - "\n", - "offset = i*3+2\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_C_cas[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_C_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*3+0.5, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "#plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Observed BW at LLC (GB/s)\")\n", - "plt.legend(fontsize=8, ncol=1)\n", - "plt.tight_layout()\n", - "\n", - "# Multi bar Chart2\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "#plt.ylim([0,2.5])\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_25_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_25_ram[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", - "\n", - "offset = i*3+2\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_D_cas[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_D_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*3+0.5, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "#plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Observed BW at LLC (GB/s)\")\n", - "plt.legend(fontsize=8, ncol=1)\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAADfCAYAAACj4kcNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAo4UlEQVR4nO3deXgUVdr38e8tyO6ICooSFgVfHVEByQiYKGFxRUUZ1GHcUBDmETcYHZXRAcblcRlcGBUHF0BxGXciOCoKQWQRiIq4gwwIPC6AKC7s3O8fVYlNSNKdTnXSIb/PdeVK1+nqc05Vd+dOVZ26j7k7IiIi6Wa3yu6AiIhIcRSgREQkLSlAiYhIWlKAEhGRtKQAJSIiaalmZXegPBo1auQtW7as7G5INfXZZ58BcMghh1RyT0Sqtvz8/DXu3rhoeZUOUC1btmTBggWV3Q2ppnJycgDIy8ur1H6IVHVmtry4cp3iExGRtKQAJSIiaUkBSkRE0lKVvgYlIpJKW7ZsYeXKlWzcuLGyu7JLqFOnDhkZGey+++4Jra8AJSJSgpUrV7LHHnvQsmVLzKyyu1OluTtr165l5cqVHHjggQm9Rqf4RERKsHHjRvbZZx8FpwiYGfvss0+ZjkYVoERESqHgFJ2y7kud4hMRSUCn4a9FUs/ckSdGUk91oCMoEZE0s2zZMvbaay9ycnLo2LEj99xzT7nqa926deHj5cuX069fPwCee+45jjvuOLp06UKXLl14/fXXWbZsGT169ChXe1HREZSISBrq0KEDb7zxBtu2beOwww7jkksuoX79+uWuNzc3l9NOO405c+bwwAMP8Morr9CgQQN++eUX8vPzI+h5dHQEJSKSxn755Rc2b97M1q1bGTBgAF27diU7O5t58+YBcNddd9GtWzd+97vfMXz4cAC2b9/OeeedR5cuXRgyZMgO9b3++uuceOKJjBs3juuvv54GDRoAUK9ePY499tgd1l2xYgU9e/akW7du9OzZk9WrVwNw4YUXkpOTw1FHHUVubi4A48eP54wzzqB3794cfvjhzJw5s9zbnrIAZWaPmtm3ZvZhTNneZjbVzBaHv/cKy83MRpvZEjP7wMyOSlW/RESqgvz8fLp06UKzZs0YPHgwTz31FK1bt2b69Ok8//zzhYFn0KBBTJs2jXnz5jF16lS+/PJLJk2aRP369ZkxYwZ9+vRh69atAKxfv57ddtuNBg0asGLFCpo1a1ZqH6655hpuvPFGpk2bxsCBA7n99tsBeOCBB8jLy2Pq1KkMGzZsh9e88MILjB07lnvvvbfc+yCVp/jGA/cBj8WUXQe86e63mdl14fK1wMnAweFPR2BM+FtEpFoqOMW3cOFCrr32Wlq1asXs2bN59dVXAfjhhx8AeP7553n44YcxM5YuXcqKFSv4/PPPOfroowHo2LFj4ei5//znP5x00kkANGvWjC+//JJDDz20xD4sWrSI6667DoCtW7fSunVrtm/fzsiRI5k9ezY1a9Zk+fJf87x26NABgObNm7N27dpy74OUBSh3f8vMWhYp7gXkhI8nAHkEAaoX8Ji7OzDXzBqa2f7u/lWq+iciUhW0bduWAw44gDZt2tC6devCI6fNmzcDcOONN/Lpp59Su3ZtsrKycHcOPvhgpk6dSv/+/Zk/fz7Bn1Z4+eWXC4+CLrroIoYNG8YxxxxDgwYN2LBhA/n5+WRkZBS23aZNG66//nrat29f2ObChQv54IMPePvtt1mzZg2tWrUqXD92GHlBm+VR0YMk9osJOl8D+4WPmwIrYtZbGZYpQIlIWqjM4eFDhgxh4MCBtG3blq5duwKQmZnJnXfeSe/evcnKyuLQQw8tvJ7Uq1cvnnvuObp06ULHjh2pWbMmW7du5ZtvvqFp06YAdO7cmcGDB3PKKacUBpYbbrhhh3ZHjRrF4MGD+emnnwC4+OKL6d27N1u2bKFLly60a9eOhg0bpmy7LYooV2LlwRHUZHc/PFz+3t0bxjy/zt33MrPJwG3u/nZY/iZwrbvvNNmTmQ0EBgI0b968Q+zhpUhF0nxQu75PPvmE3/72t5XdjUh8++235Ofnc/LJJ1dqP4rbp2aW7+6ZRdet6FF835jZ/mGH9ge+DctXAbFX6zLCsp24+1h3z3T3zMaNd5qAUUREirHvvvtWenAqq4oOULnAheHjC4FJMeUXhKP5OgE/6PqTiEj1lrJrUGb2FMGAiEZmthIYDtwGPGNm/YHlwNnh6q8ApwBLgF+Ai1LVLxERqRpSOYqvbwlPdS9mXQcGp6ovIiJS9SiThIiIpKWEjqDMbDegLXAAsAH40N2/Lf1VIiK7jtNf6hlJPblnTIm7zrJly2jfvj1t27Zlw4YN9O3bl6uuuirpNlu3bs2SJUuAIFns8OHDycnJYeTIkbRo0YINGzbQvn17br/9dvbcc0/Gjx9P06ZNOf7443eo5/vvvyc3N5cLLrgg6b6URalHUGbWyszGElwbug3oC1wKvGFmc83sojB4iYhIhDp06EBeXh6zZ89mzJgx/Pzzz5HUW5AsFqB///7k5eXxzjvvcMghh3DllVcC0K9fv52C0/bt2/n+++957LHHdqozVeIFl5uBiUArdz/R3c9z9z7ufiRwOrAncH6qOykiUl2lKllsUUOGDGHmzJls376dESNGMHHiRCA4+ho2bBjdu3fn1ltvJT8/n5ycHKZMmUK7du0KM1o8/vjj3HTTTZFue6mn+EoZ6EB4iu+eSHsjIiLAr8liFy5cyA033FCYLPbhhx/mm2++oXfv3syaNYtBgwYxdOhQ3J2srCz69+9Pfn5+YbLYWbNm8eKLLwI7JostTuPGjVmzZs0OZVu3buW0007j1ltvZdmyZSxdupQ33ngDgLlz55Kbm0ufPn2YMGECEyZMiHQflGkUn5m1BkYAdYF/uPucSHsjIiJA6pPFFmf16tU0atRoh7IaNWrQqVOnYtcfMGAAl156Ke3bt6devXqFaZSiUmqAMrM67r4xpugm4C/h45eBdpH2RkREdpCqZLFFjR49mqysLHbbbccrP2ZWGOBq1apVOHUHQIsWLTAzRo4cSf/+/SPf9nhHUC+b2ePuXnBVbAvQEnBgW+S9ERFJU4mMvkuVVCSLBXjkkUd444032LBhA0ceeSSjR48utR9NmjShbt26/P73v+fSSy+le/fu9O/fn8GDB/Poo49Gvt2lJos1sxrA/wCnArcCnwJXEJzie8jdP428R2WQmZnpCxbslE9WpEIoWeyuT8li43vppZeYP38+t9xyS0LrlyVZbLxBEtuA+8zsceBGgmB1g7t/kWjnRUSk8qUiWexdd93FM888w6RJk+KvnIR416A6AtcAmwmOoDYAt5jZKuAmd/8+Jb0SEZG0N3ToUIYOHZqy+uNdg/oXQRLXBsA4d88C/mBmXYB/A5U3g5eIiOzS4gWorQSDIuoTHEUB4O4zgBmp65aIiFR38QLUH4FBBMGpYpIviYiIED9ALXb3P5e2gpmZp3LeeBGRNPCvXhMjqWfQpPMiqac6iJeLb7qZXW5mzWMLzayWmXUzswn8OkOuiIiU06WXXlqYmujjjz9mt91247vvvgPggQce2Cnf3bnnngsEGdBzc3MTaqNnz5788ssvLFu2jN69e5OTk8MxxxzDNddcAwS3UKxcuTKqTUpavAB1EsENuU+Z2f+Z2cdmthRYTJDZ/B53H5/iPoqIVBvZ2dnMmjULgFmzZtGtWzdmz55duHzssccWrrtt2zaeeOIJIPEAtW7dOmrXrk2tWrXo06cPw4YNK8ya3qNHjxRsUfJKDVDuvtHdHwhH77UgmA33KHdv4e6XuPt7FdJLEZFqIjs7m7fffhsIAtI111xTuDxv3jzGjBnDn/70J0499VRmzpxJ69atgeCepClTppCTk0N+fj6LFi2iR48edOvWjbPPPpsNGzYA8Morr3DyySczb948DjnkEDIzf70/trgs59dffz1dunShc+fOTJ48GYAnn3ySrl270rlzZwYMGFCYSql58+YMGjSITp06cfXVV5d7XyQ8l5O7b3H3r3Tvk4hI6jRv3pw1a9awYcMGvvrqK3r06MGiRYtYuXIljRo1om7durRo0YLJkycXZjOB4J6knj17kpeXR4cOHQrTD02bNo2srCweeeQRACZPnsxpp53GihUraNasWal9efXVV1m3bh0zZszgzTff5K9//SvuTq9evZg+fTpz5szhxx9/ZObMmUCQrWLkyJHMmTOHyZMns379+nLtizJlMxcRkdQ7+uijyc3NpUmTJtSoUYMaNWowbdo0srOzWb16Ncccc0zcOj766KPCmW83btxIjx492LJlC2vXrqVJkyY0a9YsbgaIRYsWMWPGjMJAuGnTJtauXcv8+fO588472bZtG8uXL+f0008HoGnTpjRp0gSAjIwM1q1bx29+85uk94NmwxURSTPZ2dnccccdhYHoqKOO4t577y28/lSjRo2dXlM00/jhhx/OU089RV5eHnPnzuVvf/sbeXl5dOnSBQiC4Oeff05sPtPXX399hzrbtGnDCSecQF5eHnl5eXzwwQc0atSI6667jieeeIIZM2bQsWPHwlN8BVnPC5R3gHfCR1Bm1gI42N3fMLO6QE13/7FcrYuIVBEVOTw8OzubwYMHFwaorKws/v73v5OVlcULL7xQ7GuOOOIIvvjiC/r06cPw4cO5//776devH1u2bAGCa0m5ubkMHDgQgJo1a/Lcc88xZMgQ1q1bx5YtW8jKyuKEE04orPOUU05h9uzZ5OTkYGZkZGTw+OOPc8EFF3D88cdz6KGH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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "x1 = df_gap22_cas['app']\n", - "y1 = 100 * df_gap22_cas['numRdMissClean'].astype(float)/(df_gap22_cas['numTotMisses'].astype(float)+df_gap22_cas['numTotHits'].astype(float))\n", - "y2 = 100 * df_gap22_cas['numRdMissDirty'].astype(float)/(df_gap22_cas['numTotMisses'].astype(float)+df_gap22_cas['numTotHits'].astype(float))\n", - "y3 = 100 * df_gap22_cas['numWrMissClean'].astype(float)/(df_gap22_cas['numTotMisses'].astype(float)+df_gap22_cas['numTotHits'].astype(float))\n", - "y4 = 100 * df_gap22_cas['numWrMissDirty'].astype(float)/(df_gap22_cas['numTotMisses'].astype(float)+df_gap22_cas['numTotHits'].astype(float))\n", - "\n", - "# Multi bar Chart\n", - "fig = plt.figure()\n", - "fig.set_size_inches(6,3)\n", - "plt.ylim([0,110])\n", - "\n", - "for i,app in enumerate(x1): \n", - " plt.bar(i*4, y1[i], width=3, color=cmap(1), label='Read/Clean' if i==0 else None)\n", - " plt.bar(i*4, y2[i], bottom = y1[i], width=3, color=cmap(2), label='Read/Dirty' if i==0 else None)\n", - " plt.bar(i*4, y3[i], bottom = y1[i]+y2[i], width=3, color=cmap(3), label='Write/Clean' if i==0 else None)\n", - " plt.bar(i*4, y4[i], bottom = y1[i]+y2[i]+y3[i], width=3, color=cmap(4), label='Write/Dirty' if i==0 else None)\n", - "\n", - "offset = (i+1)*4\n", - "x2 = df_npbC_cas['app']\n", - "y1 = 100 * df_npbC_cas['numRdMissClean'].astype(float)/(df_npbC_cas['numTotMisses'].astype(float)+df_npbC_cas['numTotHits'].astype(float))\n", - "y2 = 100 * df_npbC_cas['numRdMissDirty'].astype(float)/(df_npbC_cas['numTotMisses'].astype(float)+df_npbC_cas['numTotHits'].astype(float))\n", - "y3 = 100 * df_npbC_cas['numWrMissClean'].astype(float)/(df_npbC_cas['numTotMisses'].astype(float)+df_npbC_cas['numTotHits'].astype(float))\n", - "y4 = 100 * df_npbC_cas['numWrMissDirty'].astype(float)/(df_npbC_cas['numTotMisses'].astype(float)+df_npbC_cas['numTotHits'].astype(float))\n", - "\n", - "for i,app in enumerate(x2): \n", - " plt.bar(i*4+offset, y1[i], width=3, color=cmap(1))\n", - " plt.bar(i*4+offset, y2[i], bottom = y1[i], width=3, color=cmap(2))\n", - " plt.bar(i*4+offset, y3[i], bottom = y1[i]+y2[i], width=3, color=cmap(3))\n", - " plt.bar(i*4+offset, y4[i], bottom = y1[i]+y2[i]+y3[i], width=3, color=cmap(4))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*4, list(x1)+list(x2))\n", - "plt.axvline(x=offset-2, color='black')\n", - "\n", - "plt.ylabel(\"DRAM Cache Miss Rate (%)\", fontsize=10)\n", - "plt.legend(fontsize=9, ncol=1)\n", - "plt.tight_layout()\n", - "#plt.savefig(\"../figures/cs1_all_mpki.pdf\")\n", - "\n", - "x1 = df_gap25_cas['app']\n", - "y1 = 100 * df_gap25_cas['numRdMissClean'].astype(float)/(df_gap25_cas['numTotMisses'].astype(float)+df_gap25_cas['numTotHits'].astype(float))\n", - "y2 = 100 * df_gap25_cas['numRdMissDirty'].astype(float)/(df_gap25_cas['numTotMisses'].astype(float)+df_gap25_cas['numTotHits'].astype(float))\n", - "y3 = 100 * df_gap25_cas['numWrMissClean'].astype(float)/(df_gap25_cas['numTotMisses'].astype(float)+df_gap25_cas['numTotHits'].astype(float))\n", - "y4 = 100 * df_gap25_cas['numWrMissDirty'].astype(float)/(df_gap25_cas['numTotMisses'].astype(float)+df_gap25_cas['numTotHits'].astype(float))\n", - "\n", - "# Multi bar Chart\n", - "fig = plt.figure()\n", - "fig.set_size_inches(6,3)\n", - "plt.ylim([0,110])\n", - "for i,app in enumerate(x1): \n", - " plt.bar(i*4, y1[i], width=3, color=cmap(1), label='Read/Clean' if i==0 else None)\n", - " plt.bar(i*4, y2[i], bottom = y1[i], width=3, color=cmap(2), label='Read/Dirty' if i==0 else None)\n", - " plt.bar(i*4, y3[i], bottom = y1[i]+y2[i], width=3, color=cmap(3), label='Write/Clean' if i==0 else None)\n", - " plt.bar(i*4, y4[i], bottom = y1[i]+y2[i]+y3[i], width=3, color=cmap(4), label='Write/Dirty' if i==0 else None)\n", - "\n", - "offset = (i+1)*4\n", - "x2 = df_npbD_cas['app']\n", - "y1 = 100 * df_npbD_cas['numRdMissClean'].astype(float)/(df_npbD_cas['numTotMisses'].astype(float)+df_npbD_cas['numTotHits'].astype(float))\n", - "y2 = 100 * df_npbD_cas['numRdMissDirty'].astype(float)/(df_npbD_cas['numTotMisses'].astype(float)+df_npbD_cas['numTotHits'].astype(float))\n", - "y3 = 100 * df_npbD_cas['numWrMissClean'].astype(float)/(df_npbD_cas['numTotMisses'].astype(float)+df_npbD_cas['numTotHits'].astype(float))\n", - "y4 = 100 * df_npbD_cas['numWrMissDirty'].astype(float)/(df_npbD_cas['numTotMisses'].astype(float)+df_npbD_cas['numTotHits'].astype(float))\n", - "\n", - "for i,app in enumerate(x2): \n", - " plt.bar(i*4+offset, y1[i], width=3, color=cmap(1))\n", - " plt.bar(i*4+offset, y2[i], bottom = y1[i], width=3, color=cmap(2))\n", - " plt.bar(i*4+offset, y3[i], bottom = y1[i]+y2[i], width=3, color=cmap(3))\n", - " plt.bar(i*4+offset, y4[i], bottom = y1[i]+y2[i]+y3[i], width=3, color=cmap(4))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*4, list(x1)+list(x2))\n", - "plt.axvline(x=offset-2, color='black')\n", - "\n", - "plt.ylabel(\"DRAM Cache Miss Rate (%)\", fontsize=10)\n", - "plt.legend(fontsize=9, ncol=1)\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAADfCAYAAACj4kcNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAfuklEQVR4nO3de7xc873/8de7IU0oIhLXiIQ4TommJG7N1lxESzlxaagUwaHhVIuoll4IrfYoLfVwieOuPalLpSTEoSrZcUmJJMhFhCAqfimJa0uC8Pn9sdbE2GbvmT171t6z97yfj8d+7Fnfteb7/ay5fWat9Z3vVxGBmZlZtflcWwdgZmZWiBOUmZlVJScoMzOrSk5QZmZWlZygzMysKq3T1gG0RI8ePaJPnz5tHYbVqMWLFwOwww47tHEkZu3bnDlzVkZEz4bl7TpB9enTh9mzZ7d1GFajhg4dCkB9fX2bxmHW3kl6qVC5T/GZmVlVcoIyM7Oq5ARlZmZVqV1fgyrkrbfeYvny5W0dhmWoS5cu9OrVi3XXXbetQzGzDHW4BLVy5Ur69OlD165d2zoUy0BE8Prrr7Ns2TL69u3b1uGYWYY63Cm+Dz/8kC5durR1GJYRSWyyySasXr26rUMxs4x1uAQFyYeYdVx+fs1qQ4c7xZdvz/H3VaSeR8/7epPrly5dyi677MKAAQNYtWoVo0eP5rTTTiu7vX79+rFkyZKy79/QyDsPqEg9Uw6e2uT67373u+y7774ccsghPP300/Tv35+VK1fSvXt3rrzySl5//XXOPvvstdsfeeSRTJw4kaVLlzJv3jxGjhxZkTjNrGPokEdQbWHgwIHU19czc+ZMJkyYwLvvvtvWIbW6uro6HnnkEQAeeeQRhg8fzsyZM9cu77333mu3/eijj5g4cSKQJPgpU6a0fsBmVtWcoCrsvffe44MPPmDNmjWccMIJDBs2jLq6OmbNmgXAxRdfzPDhw9ltt90YP348AB9//DFHHXUUQ4YMYdy4cW0ZfovU1dXx8MMPA0lC+uEPf7h2edasWUyYMIGTTjqJAw88kIceeoh+/foByWMydepUhg4dypw5c5g/fz4jRoxg+PDhHH744axatarN9snM2o4TVIXMmTOHIUOGsPXWW3PyySdz8803069fP6ZPn86kSZPWJp4TTzyRadOmMWvWLO6//37+/ve/M3nyZNZff31mzJjBqFGjWLNmTRvvTXl69+7NypUrWbVqFcuXL2fEiBHMnz+fZcuW0aNHD7p27co222zD3XffvXaYIIDTTz+dAw44gPr6egYOHMjJJ5/M9ddfz7Rp0xg8eDDXXXdd2+2UmbWZzK5BSboeOBB4LSL6p2XdgVuBPsBS4PCIeFPJVe9LgW8A7wHHRsTcrGLLwsCBA/nrX//KU089xZlnnsl2223HzJkzuffeewF4++23AZg0aRLXXnstknjhhRd4+eWXefbZZ9l9990B2GOPPdp1J4Ddd9+dKVOmsPnmm9OpUyc6derEtGnTqKurY8WKFXzlK18pWsfChQsZM2YMAKtXr2bEiBFZh21mVSjLI6gbgf0alJ0FPBAR2wMPpMsA+wPbp39jgQkZxpWpAQMGsOWWW7LTTjsxZswY6uvrqa+vZ+7cJN+effbZ3HfffUyfPp2+ffsSEWy//fZrB719/PHHiYi23IUWqaur48ILL1ybiHbddVcuvfTStdefOnXq9Jn7dO7c+VNHjf379+fmm2+mvr6eRx99lHPOOad1gjezqpJZgoqIB4E3GhQfBNyU3r4JODiv/PeReBToJmmLrGLL2rhx4/jDH/7A4sWLGTZsGMOGDeOnP/0pAIceeiiDBw/mqKOO4gtf+AIABx10EG+//TZDhgzhjjvuYJ112m/nyrq6OubOnbs2QQ0ePJgnnniCwYMHN3qfnXfemeeff55Ro0Yxf/58rrjiCo499liGDx/O8OHDmTFjRmuFb2ZVRFl+W5fUB7g77xTfWxHRLb0t4M2I6CbpbuCCiHg4XfcAcGZENDmXxqBBg6LhdBuLFi3ii1/8YsX3xapLNTzPnm7DrDIkzYmIQQ3L26yTRCSZsdnZUdJYSbMlzV6xYkUGkZmZWTVo7QT1au7UXfr/tbT8FWDrvO16pWWfERFXR8SgiBjUs+dnJmA0M7MOorUT1BTgmPT2McDkvPIxSuwJvB0RZQ9J3p47GVhxfn7NakOW3cxvBoYCPSQtA8YDFwC3SToeeAk4PN38HpIu5ktIupkfV2676667LqtXr/Zo5h1UbjRzDwhsHVlrDU9W7TJLUBExupFV+xTYNoCTK9Fujx49WLp0aSWqsiqVmw/KzDq29tufuRHdunWjW7dubR2GmbURH310HB7qyMzMqlKHO4Iyayv+5m5WWT6CMjOzqlT0CEpSF5JBX/cGtgRWAQuAqRGxMNvwzMysVjWZoCSdR5Kc6oHHSH5Y2wX4N+CCNHn9ICLmZRynmZnVmGJHULMiYnwj6y6WtCnQu8IxmZmZNZ2gIuIzV2vTo6bOEfFORLzGJ8MVmZmZVUyzevFJOgEYBXSSNDsifpxNWGZmVuua7MUnaWSDohERsV9E7EsyNJGZmVkminUz31nSZElfTpfnSbpW0jWAe/CZmVlmil2D+qWkzYGfpxMMng1sAHR1zz0zM8tSKdeg3gVOA7YHrgZmAxdmGJOZmVnRa1DnA5OAu4FhETESeBK4R9KY7MMzM7NaVewa1IER8TWSKTLGAETEFOBrwMYZx2ZmZjWs2Cm+BZKuBroCM3KFEbEGuDTLwMzMrLYV6yRxlKSdgQ8j4plWisnMzKzoNai6iJjfWHKStKGk/tmEZmZmtazYKb5vSroQuBeYA6wgGSy2HzAM2Ab4QaYRmplZTSp2im+cpO7AN4HDgC1IpttYBPxPRDycfYhmZlaLiv4OKiLeAK5J/8zMzFqFZ9Q1M7Oq5ARlZmZVqVnTbXREI+88oCL1TDn4M1NnmZlVpUp97kG2n30lHUFJWk/S2eko5kjaXtKB5TYqaZykhZIWSLpZUhdJfSU9JmmJpFsldS63fjMza/9KPcV3A/A+sFe6/ApwfjkNStoKOAUYFBH9gU7AEcCvgUsioh/wJnB8OfWbmVnHUGqC2i4iLgQ+BIiI9wC1oN11gK6S1gHWA5YDw4Hb0/U3AQe3oH4zM2vnSk1QH0jqCgSApO1IjqiaLSJeAX4D/J0kMb1N8iPgt9Ix/gCWAVsVur+ksZJmS5q9YsWKckIwM7N2oNQEdS7JaBJbS5oIPACcWU6DkjYGDgL6AlsC6wP7lXr/iLg6IgZFxKCePXuWE4KZmbUDJfXii4i/SJoD7Elyau/UiFhZZpsjgBcjYgWApD8Dg4FuktZJj6J6kVznsirQXnr8mFnHUlKCkvRAROwDTC1Q1lx/B/aUtB7JsEn7kMzSOx0YBdwCHANMLqNua6fc3d/MGmoyQUnqQtKJoUd6ai7XMWJDGrlGVExEPCbpdmAusAZ4gmQq+anALeksvk8A15VTv5mZdQzFjqBOBE4juVY0h08S1DvA5eU2GhHjgfENil8Adi+3TjMz61iKjWZ+KXCppO9HxGWtFJPVoNeeOKUyFR1cuNjX0czan1I7SVyWTky4I8l8ULny32cVmJmZ1bZSO0mMB4aSJKh7gP2Bh4F2n6Cy/ubeEVTsMYIO/TiZWWWV+juoUSS97f4REccBA4CNMovKzMxqXqkJalVEfAyskbQh8BqwdXZhmZlZrSt1uo3ZkrqRzKo7B/gX8LesgjIzMyu1k8R305tXSboX2DAi5mUXlpmZ1bqip/gkdZLUI6/o/5GMBLEou7DMzKzWNZmgJB0BvAHMkzRD0tdIflC7P3BkK8RnZmY1qtgpvp8BAyNiiaRdSa47jYqIu7IPzczMalmxU3wfRMQSgIiYCzzn5GRmZq2h2BHUppJOz1vulr8cERdnE5aZmdW6YgnqGmCDJpatCniqCjPriIoNFnteawViZmaWr9Qf6pqZtZhHlbfmKHWoIzMzs1ZV6mjmfSPixWJlZmZtzTMUdBylHkFNKlB2eyUDMTMzy9fkEZSkfwd2AjaSdGjeqg3Jm7jQzMys0oqd4tsBOBDoBvxHXvk/ge9kFJOZmVnRbuaTgcmS9ooIT69RBvdaMjMrT7FTfD+KiAuBb0sa3XB9RFRwLnAzM7NPFDvFl5tSY3bWgZiZmeUrdorvrvT/TZVsNJ2d91qgPxDAfwKLgVuBPsBS4PCIeLOS7ZqZWftR7BTfXSQJpKCIGFlmu5cC90bEKEmdgfWAnwAPRMQFks4CzgLOLLN+MzNr54qd4vtN+l8kA8We0NIGJW0EfBU4FiAiPgA+kHQQMDTd7CagHicoM7OaVewU34zcbUn/yl9ugb7ACuAGSQOAOcCpwGYRsTzd5h/AZoXuLGksMBagd+/eFQjHzMyqUXPG4mv0VF8zrQPsCkyIiF2Ad0lO533SUEQ01l5EXB0RgyJiUM+ePSsUkpmZVZti16C65y12krQxyek+ACLijTLaXAYsi4jH0uXbSRLUq5K2iIjlkrYAXiujbjOzds/jCSaKXYOaQ3Ikk0tKc/PWBbBtcxuMiH9IelnSDhGxGNgHeDr9Owa4IP0/ubl1m5lZx1HsGlTfjNr9PjAx7cH3AnAcyenG2yQdD7wEHJ5R22Zm1g60yYSFEfEkMKjAqn1aORQzM6tSnrDQzMyqkhOUmZlVJScoMzOrSm1yDcrMzNpOxbqxQ6Zd2X0EZWZmVankBCVpG0kj0ttdJW2QXVhmZlbrSkpQkr5DMuLD/6RFvYA7M4rJzMys5COok4HBwDsAEfEcsGlWQZmZmZWaoN5Pp8UAQNI6VG7wWDMzs88oNUHNkPQToKukfYE/AXdlF5aZmdW6UhPUWSRzOM0HTgTuAX6WVVBmZmYl/Q4qIj4mmVH3mmzDMTMzS5SUoCQNBs4FtknvI5J5BZs93UataS8/iDNrDX4/WHOUOpLEdcA4kvmhPsouHDMzs0SpCertiPi/TCOxsnn2zerg58GssopN+b5renO6pIuAPwPv59ZHxNyCdzQzM2uhYkdQv22wnD/JYADDKxuOmZlZotiU78NaKxAzM7N8pY7F9ytJ3fKWN5Z0fmZRmZlZzSv1h7r7R8RbuYWIeBP4RiYRmZmZUXqC6iTp87kFSV2BzzexvZmZWYuU2s18IvCApBvS5eOAm7IJyczMrPShjn4taR6wT1r0i4i4L7uwzKwtjLzzgIrUM+XgqRWpx2pbqUdQpD/UrdiPdSV1AmYDr0TEgZL6ArcAm5CMWHF0/hQfZmZWW0odi29P4DLgi0BnoBPwbkRs2IK2TwUWAbk6fg1cEhG3SLoKOB6Y0IL6zcwqrlJHmeAjzWJK7SRxOTAaeA7oCpwAXFFuo5J6AQcA16bLIvnR7+3pJjfhAV/MzGpaqQmKiFgCdIqIjyLiBmC/FrT7O+BHwMfp8ibAWxGxJl1eBmxV6I6SxkqaLWn2ihUrWhCCmZlVs1IT1HuSOgNPSrpQ0rhm3PdTJB0IvBYRc8q5f0RcHRGDImJQz549y6nCzMzagVKTzNHptt8D3gW2Br5ZZpuDgZGSlpJ0ihgOXAp0k5S7JtYLeKXM+s3MrANoMkFJ6ilpx4h4KSJWR8Q7EXEeyfxQb5fTYET8OCJ6RUQf4AhgWkQcCUwHRqWbHQNMLqd+MzPrGIodQV0G9ChQ3p3kqKeSzgROl7SE5JrUdRWu38zM2pFi3cz7RcSDDQsj4iFJLe4CHhH1QH16+wVg95bWaWZmHUOxI6gNmli3biUDMTMzy1csQS2R9JlRyyXtD7yQTUhmZmbFT/GdBkyVdDjJ8EOQzKq7F3BghnGZmVmNa/IIKiKeA3YGZgB90r8ZwJci4tmsgzMzs9pVdCy+iHgfuKHYdmZmZpVU1mgQZmZmWSt5ug2z9uy1J06pXGUHV64qM2ucj6DMzKwqNXkElc6iW3AVEBHxpcqHZGZmVvwU38dAAH8E7gJWZR6RmZkZxbuZf5lkosIvkCSpXwI7kUzT/lLm0ZmZWc0qeg0qIp6JiPERsSvJUdTvgXGZR2ZmZjWtaC8+SVuRTItxCPAmSXK6I+O4zMysxhXrJDGDZMDY24DjgNfTVZ0ldY+INzKOz8zMalSxI6htSDpJnAiMzStXWr5tRnGZmVmNazJBpbPempmZtbpm/1BX0naSzpa0MIuAzMzMoMQEJWlLSeMkPQ4sTO93RKaRmZlZTSvWSWIsye+gtiLpKHE8MDkizmuF2MzMqo7HdWw9xTpJXA78Dfh2RMwGkBSZR2VmZjWvWILaAjgM+K2kzUmOotbNPCozM6t5xYY6ej0iroqIIcA+wFvAq5IWSfpVawRoZma1qeRefBGxLCJ+GxGDgJF44FgzM8tQ0QQlaS9JoyRtmi5/CTiPT/9wt2SStpY0XdLTkhZKOjUt7y7pfknPpf83Lqd+MzPrGJpMUJIuAq4HvglMlXQ+8BfgMWD7MttcA/wgInYE9gROlrQjcBbwQERsDzyQLpuZWY0q1kniAGCXiFidHtG8DPSPiKXlNhgRy4Hl6e1/SlpE0o39IGBoutlNQD1wZrntmJlZ+1bsFN/qiFgNEBFvAs+1JDk1JKkPsAvJEdlmafIC+AewWaXaMTOz9qfYEdS2kqaktwX0zVsmIkaW27CkLwCTgNMi4h1Ja9dFRDT2e6v0x8NjAXr37l1u82ZmVuWKJaiDGiz/phKNSlqXJDlNjIg/p8WvStoiIpZL2gJ4rdB9I+Jq4GqAQYMG+UfDZmYdVLHRzGfkbkvqmZataEmDSg6VrgMWRcTFeaumAMcAF6T/J7ekHbOOZuSdB1SsrikHT61YXWZZKdaLT5LGS1oJLAaelbRC0jktaHMwcDQwXNKT6d83SBLTvpKeA0aky2ZmVqOKneIbB9QBu0XEiwCStgUmSBoXEZc0t8GIeJjkelYh+zS3PrNa4UFKrdYU68V3NDA6l5wAIuIF4ChgTJaBmZlZbSuWoNaNiJUNC9PrUB401szMMlMsQX1Q5jozM7MWKXYNaoCkdwqUC+iSQTxmZmZA8W7mnVorEDMzs3wlT7dhZmbWmpygzMysKjlBmZlZVXKCMjOzquQEZWZmVckJyszMqpITlJmZVSUnKDMzq0pOUGZmVpWcoMzMrCo5QZmZWVVygjIzs6rkBGVmZlXJCcrMzKqSE5SZmVUlJygzM6tKTlBmZlaVnKDMzKwqOUGZmVlVqqoEJWk/SYslLZF0VlvHY2ZmbadqEpSkTsAVwP7AjsBoSTu2bVRmZtZW1mnrAPLsDiyJiBcAJN0CHAQ83aZRmdWQ1544pTIVHVyZaqy2KSLaOgYAJI0C9ouIE9Llo4E9IuJ7DbYbC4xNF3cAFrdCeD2Ale28De9DdbThfaiONrwP1dMGwDYR0bNhYTUdQZUkIq4Grm7NNiXNjohB7bkN70N1tOF9qI42vA/V00ZTquYaFPAKsHXecq+0zMzMalA1JajHge0l9ZXUGTgCmNLGMZmZWRupmlN8EbFG0veA+4BOwPURsbCNw8ppjVOKWbfhfaiONrwP1dGG96F62mhU1XSSMDMzy1dNp/jMzMzWcoIyM7Oq5ATVgKQ+kha0Zt2S9pa0UNKTkrpm0bZ9lqRukr6bcRuNPeenSVovy7YrTdIpkhZJejeLUV4kzax0nXl1/yurui07TlDV4UjgvyPiyxGxqq2DqZR0+Kpq1g3INEE14TSgXSUoksdqX+BPJMORVVREfKXSdVr75gRV2DqSJqbfFm+XtJ6k3STNlPSUpFmSNqhQ3acAhwO/SMu3kPRgejS1QNLe5TQiaYykeWm8f5C0maQ70uWnJLXowyA9MnimwOO0VNKvJc0FDiuxrvUlTU3jWiDpW5IukPR0ug+/Sbc7LF3/lKQH07JjJU2WVC/pOUnjm7EbFwDbpY/1RZLOlDQ/rf+CZj8ojSv0nG8JTJc0vSUVF3iet5P0aLof51fqyEHSVcC2wIvAMcBF6eO2XSXqT9v4V/q/Iu+BRtoYKunuvOXLJR1bZl2598CNkp5Nn+MRkh5JX4u7S+op6f70DMm1kl6S1KOMtgq9R5ZKujB9rmdJ6lfOfuTty4K85TMknSvpO5IeT9udpNY+6o8I/+X9AX2AAAany9cDPwJeAHZLyzYE1qlQ3WcANwKj0rIfAD9Nb3cCNiijnZ2AZ4Ee6XJ34FbgtLx6N8rgcToDWAr8qJl1fRO4Jm95G5IhrHK9TLul/+cDWzUoOxZYDmwCdAUWAIOasQ8L0tv7AzOB9XKPWYavp9zj1KOFdRd6nu8GRqfLJwH/qsR+pPUtJRn6Zu3rtZJ/uVgr8R5oou6hwN155ZcDx7bguV0D7EzyZX9O+vyKZBzRO9P6f5xuv1/6Wmj2817gPbJR+nzkHqcx+ftV5r4syFs+AzgX2CSv7Hzg+5V+3pv68xFUYS9HxCPp7f8Fvg4sj4jHASLinYhYU6G66xqsfxw4TtK5wM4R8c8y2hgO/CkiVqbxvpGWTUiXP4qIt8sJvoHG9uXWZtYzH9g3PfLam2QEkdXAdZIOBd5Lt3sEuFHSd0g+uHLuj4jXIzk9+mc++5iWYgRwQ0S8B2sfs0op9pyXq9DzvBfJKTiAP1aondZWifdAa3kxIuZHxMfAQuCBSD7N55N86NcBtwBExL3Am2W286n3SN779+a8/3uVWXdT+kt6SNJ8kksRO2XQRqOcoApr+OOwdzKs+1PLEfEg8FWSD+kbJY2pYNuV1ti+vNusSiKeBXYleROeD/yEZHT724EDgXvT7U4CfkYyJNYcSZsUiaNaVHt8VSXj98AaPv2516WF9b2fd/vjvOWPqeBACA3fI5LOya3K36wFTTT2uNwIfC8idgbOo+WPV7M4QRXWW1Lu28i3gUeBLSTtBiBpA0nlvvga1v1w/kpJ2wCvRsQ1wLUkL8rmmgYclvsAl9QdeAD4r3S5k6SNyow/X5P7UipJWwLvRcT/AheRfDhtFBH3AOOAAel220XEYxFxDrCCT8Zu3FdSdyU9IA8mOdIqxT+B3LXE+0m+ta+XttW9nH1pRKHHKb/tchV6nh8lOR0EyXBhWahE7I2q0HugMS8BO0r6vKRuwD4VrLuQR0iuMSPpa8DG5VRS4D2Se0y+lff/by2I81VgU0mbSPo8yRdDSJ7n5ZLWJTmCalVOUIUtBk6WtIjkBXUZyQvgMklPkXyYlftNomHdExqsHwo8JemJtM1Lm9tAJENE/RKYkcZ7MXAqMCw9VJ9DZXphFduXUu0MzJL0JDCe5Jva3ZLmkXyYn55ud1F6QXgByfWip9LyWcAkYB4wKSJml9JoRLwOPJLWtw/J2I+z0zjOKHNfCin0OF0N3NuSThKNPM+nAaenj10/oBKnchu6BfihpCcq2Ukiz1Ba+B5oTES8DNxGcq3yNuCJStXdiPOAr6WvscOAf5Ak+OZq+B45Py3fOH2uTyX5MleWiPgQ+DnJe+l+4Jl01dnAYySJ9pnC986OhzqyskjqQ3JRtn8bx3EsSaeI7xXbthakR4CrIiIkHUHSYeKgto6rVqVHIx9FMtboXsCEiPhyhepeSvLab435mtpE1QwWa2YVMRC4XJKAt4D/bNtwal5v4DZJnwM+AL7TxvG0Kz6CMjOzquRrUGZmVpWcoMzMrCo5QZmZWVVygjIzs6rkBFXDlAwg+0dJL0iaI+lvkg7JW/87Sa+kPZByZcdKWqFkIM+n02GHGpYvVDp4bLpuT0mPpesWpUPYFIpnoqTFSgbDvD79cSCSjlQyIOp8JQP2Dsj0gbGaIikk/TZv+Yzca1TJgKmv6JOBa0cWKH9G0oT890mD+jeXdIuk59P32T2S/q1Vdq6dc4KqUWk35DuBByNi24gYSDLyQK90/eeAQ4CXgSEN7n5r+luOocCvJG2WXx4RO5F0qc39yv0mYGx6n/4kP5AsZCLw7yQ/SuwKnJCWvwgMSYdb+QXJj1zNKuV94FA1Psr4Jelr9zDg+rxElCvfkeQ12/B9knuf3QHUR8R26fvsx8BmDbe1z3KCql3DgQ8i4qpcQUS8FBGXpYtDSQa/nACMLlRBRLwGPE8y+vhaSoaBWp9PBsbclGTE8dxAtU83Ut89kSL5RXuvtHxmROTqejRXblYha0i+9DQ5EkNELEq3bZjIOpOMLFNoINhhwIcN3mdPRcRDLYq4RjhB1a6dgLlNrB9NMkLyHcABudNt+SRtSzJH0JK06FvpUCyvkEz9cFdafgmwWMl8VCdKanKYqLSto0kHiW3geOD/mrq/WRmuAI5UE2NUStqDZBDYFWnRuPT1vhx4NiKeLHC3/iRDi1kZnKAMAElXKJmU7HFJnYFvAHdGxDskY3F9PW/zXCK6GTgxb2qK3Km/zUlGXf4hQET8HBgE/IVksNRCiSfflSSnHj/1LVPSMJIEdWbZO2pWQPo6/z1wSoHVuUT0G+Bb8cnoBrlTfJsC66dDS1kFOUHVroXkjRIdESeTDJjakyQZdQPmp+N91fHp03y5a017RMQdDStO38B3kYxKnit7PiImpG0MUDJq8n3pReZrc9spmRG3J58MEJsr/xLJyNYHpYO8mlXa70i+AK3foPyS9PW+d6FTc+lAq/cCX5W0dfqaflLSSSTvs4FZB95ROUHVrmlAF0n/lVeWm855NHBCRPSJiD5AX5IpLZoz3XMdyfUpJB2QXiwG2B74CHgrIr6evvFPSLc7gSQ5jk4ngCMt700yEeHR6bw4ZhWXngm4jSRJlSx9bQ8Gno+Il9PX9JfT607TgM9LGpu3/ZdUwWnsOzInqBqVHuUcDAyR9KKkWSS97caTTE09NW/bd0mmvfiPItV+K/3mOA/YhaTHHSTXkxanp0n+ABwZER8VuP9VJL2b/pbWk5uU7RySKd2vTMtLmk7DrAy/5bOdIBqTO/W3gGSG5ysbbpC+zw4BRqTdzBcC/00y7YYV4cFizcysKvkIyszMqpITlJmZVSUnKDMzq0pOUGZmVpWcoMzMrCo5QZmZWVVygjIzs6r0/wFCX7/X2EKJcQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAADfCAYAAACj4kcNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAfx0lEQVR4nO3de5xd873/8de7kTShiEhcIxLiOCVOSuLWjOYiWi0nQkOlCA4NLUVUqzdSPdqf0lIPNOquPalLpSTEoZpk4pISuSAiQqRRcVK5lCgShM/vj7V2bGNm9p49e83smf1+Ph7zmL2+a+3v97P27bPXWt/9/SoiMDMzqzSfau0AzMzM6uMEZWZmFckJyszMKpITlJmZVSQnKDMzq0ibtHYAzdG9e/fo3bt3a4dhVWrx4sUA7L777q0ciVnbNnfu3NUR0aNueZtOUL1792bOnDmtHYZVqSFDhgBQW1vbqnGYtXWSXq6v3Kf4zMysIjlBmZlZRXKCMjOzitSmr0HV54033mDFihWtHYZlqHPnzvTs2ZOOHTu2dihmlqF2l6BWr15N79696dKlS2uHYhmICNasWcPy5cvp06dPa4djZhlqd6f43n//fTp37tzaYVhGJLH11luzfv361g7FzDLW7hIUJB9i1n75+TWrDu3uFF++A8Y/WJZ6Hr/oS42uX7ZsGXvvvTf9+/dn3bp1jB49mnPOOafk9vr27cuSJUtKvn9dI+45rCz1TBk5tdH13/rWtzjkkEM48sgjee655+jXrx+rV6+mW7du/OY3v2HNmjVccMEFG7c/7rjjmDhxIsuWLeOZZ55hxIgRZYnTzNqHdnkE1RoGDBhAbW0ts2bNYsKECbz99tutHVKLq6mp4bHHHgPgscceY9iwYcyaNWvj8kEHHbRx2w8++ICJEycCSYKfMmVKywdsZhXNCarM3nnnHd577z02bNjAqaeeytChQ6mpqWH27NkAXH755QwbNox9992X8ePHA/Dhhx9y/PHHM3jwYMaNG9ea4TdLTU0Njz76KJAkpO9+97sbl2fPns2ECRM4/fTTOfzww3nkkUfo27cvkDwmU6dOZciQIcydO5cFCxYwfPhwhg0bxjHHHMO6detabZ/MrPU4QZXJ3LlzGTx4MDvttBNnnHEGt912G3379mXGjBlMmjRpY+I57bTTmD59OrNnz+ahhx7i73//O5MnT2azzTZj5syZjBo1ig0bNrTy3pSmV69erF69mnXr1rFixQqGDx/OggULWL58Od27d6dLly7svPPO3HfffRuHCQI499xzOeyww6itrWXAgAGcccYZ3HTTTUyfPp1BgwZx4403tt5OmVmryewalKSbgMOBlRHRLy3rBtwB9AaWAcdExOtKrnpfCXwFeAc4KSLmZRVbFgYMGMBf/vIXnn76ac4//3x23XVXZs2axQMPPADA2rVrAZg0aRI33HADkli6dCmvvPIKL7zwAvvttx8A+++/f5vuBLDffvsxZcoUtttuOzp06ECHDh2YPn06NTU1rFq1is9//vMF61i4cCFjxowBYP369QwfPjzrsM2sAmV5BHULcGidsu8D0yJiN2BaugzwZWC39G8sMCHDuDLVv39/dthhB/bcc0/GjBlDbW0ttbW1zJuX5NsLLriABx98kBkzZtCnTx8igt12223joLdPPvkkEdGau9AsNTU1XHrppRsT0T777MOVV1658fpThw4dPnGfTp06feyosV+/ftx2223U1tby+OOPc+GFF7ZM8GZWUTJLUBHxMPDPOsVHALemt28FRuaV/y4SjwNdJW2fVWxZGzduHL///e9ZvHgxQ4cOZejQofzoRz8C4KijjmLQoEEcf/zxfOYznwHgiCOOYO3atQwePJi7776bTTZpu50ra2pqmDdv3sYENWjQIObPn8+gQYMavM9ee+3FSy+9xKhRo1iwYAHXXHMNJ510EsOGDWPYsGHMnDmzpcI3swqiLL+tS+oN3Jd3iu+NiOia3hbwekR0lXQfcElEPJqumwacHxGNzqUxcODAqDvdxqJFi/jsZz9b9n2xylIJz7On2zArD0lzI2Jg3fJW6yQRSWZscnaUNFbSHElzVq1alUFkZmZWCVo6Qb2WO3WX/l+Zlr8K7JS3Xc+07BMi4rqIGBgRA3v0+MQEjGZm1k60dIKaApyY3j4RmJxXPkaJA4C1EVHykORtuZOBFebn16w6ZNnN/DZgCNBd0nJgPHAJcKekU4CXgWPSze8n6WK+hKSb+cmlttuxY0fWr1/v0czbqdxo5h4Q2Kz9yyxBRcToBlYdXM+2AZxRjna7d+/OsmXLylGVVajcfFBm1r613f7MDejatStdu3Zt7TDMzKyZPNSRmZlVJCcoMzOrSE5QZmZWkQpeg5LUmWTQ14OAHYB1wLPA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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "x1 = df_gap22_cas['app']\n", - "y1 = 100 * df_gap22_cas['numRdHit'].astype(float)/(df_gap22_cas['numTotMisses'].astype(float)+df_gap22_cas['numTotHits'].astype(float))\n", - "y2 = 100 * df_gap22_cas['numWrHit'].astype(float)/(df_gap22_cas['numTotMisses'].astype(float)+df_gap22_cas['numTotHits'].astype(float))\n", - "\n", - "# Multi bar Chart\n", - "fig = plt.figure()\n", - "fig.set_size_inches(6,3)\n", - "plt.ylim([0,110])\n", - "\n", - "for i,app in enumerate(x1): \n", - " plt.bar(i*4, y1[i], width=3, color=cmap(1), label='Read' if i==0 else None)\n", - " plt.bar(i*4, y2[i], bottom = y1[i], width=3, color=cmap(2), label='Write' if i==0 else None)\n", - "\n", - "offset = (i+1)*4\n", - "x2 = df_npbC_cas['app']\n", - "y1 = 100 * df_npbC_cas['numRdHit'].astype(float)/(df_npbC_cas['numTotMisses'].astype(float)+df_npbC_cas['numTotHits'].astype(float))\n", - "y2 = 100 * df_npbC_cas['numWrHit'].astype(float)/(df_npbC_cas['numTotMisses'].astype(float)+df_npbC_cas['numTotHits'].astype(float))\n", - "\n", - "for i,app in enumerate(x2): \n", - " plt.bar(i*4+offset, y1[i], width=3, color=cmap(1))\n", - " plt.bar(i*4+offset, y2[i], bottom = y1[i], width=3, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*4, list(x1)+list(x2))\n", - "plt.axvline(x=offset-2, color='black')\n", - "\n", - "plt.ylabel(\"DRAM Cache Hit Rate (%)\", fontsize=10)\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "#plt.savefig(\"../figures/cs1_all_mpki.pdf\")\n", - "\n", - "x1 = df_gap25_cas['app']\n", - "y1 = 100 * df_gap25_cas['numRdHit'].astype(float)/(df_gap25_cas['numTotMisses'].astype(float)+df_gap25_cas['numTotHits'].astype(float))\n", - "y2 = 100 * df_gap25_cas['numWrHit'].astype(float)/(df_gap25_cas['numTotMisses'].astype(float)+df_gap25_cas['numTotHits'].astype(float))\n", - "\n", - "# Multi bar Chart\n", - "fig = plt.figure()\n", - "fig.set_size_inches(6,3)\n", - "plt.ylim([0,110])\n", - "\n", - "for i,app in enumerate(x1): \n", - " plt.bar(i*4, y1[i], width=3, color=cmap(1), label='Read' if i==0 else None)\n", - " plt.bar(i*4, y2[i], bottom = y1[i], width=3, color=cmap(2), label='Write' if i==0 else None)\n", - "\n", - "offset = (i+1)*4\n", - "x2 = df_npbD_cas['app']\n", - "y1 = 100 * df_npbD_cas['numRdHit'].astype(float)/(df_npbD_cas['numTotMisses'].astype(float)+df_npbD_cas['numTotHits'].astype(float))\n", - "y2 = 100 * df_npbD_cas['numWrHit'].astype(float)/(df_npbD_cas['numTotMisses'].astype(float)+df_npbD_cas['numTotHits'].astype(float))\n", - "\n", - "for i,app in enumerate(x2): \n", - " plt.bar(i*4+offset, y1[i], width=3, color=cmap(1))\n", - " plt.bar(i*4+offset, y2[i], bottom = y1[i], width=3, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*4, list(x1)+list(x2))\n", - "plt.axvline(x=offset-2, color='black')\n", - "\n", - "plt.ylabel(\"DRAM Cache Hit Rate (%)\", fontsize=10)\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "#plt.savefig(\"../figures/cs1_all_mpki.pdf\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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yPT+COA3kXgK6JIuC1HR7r77bg499FB69+4NJAuSHnxwUuNzwgknUF1dzR577MGddyYv2S233MLee+/NoEGDGDduHAAPPfQQ++23H9XV1Zx11lkAnHvuuQwaNIg99tiDCRMmALBy5UqGDRvGkCFDuOSSS2pjWLhwIcOGDWPw4MEMGzaMpUuXZor94IMPprq6mr333psnn3xyvX1vv/02I0eO5N5772XWrFkMGTKEwYMHM2rUKFatWtWMV6xydenShe985zvcdNNN65WvW7eO5cuXExEAPPfcc+yyyy6cfvrpTJ48eb1jhw4dyt13382SJUvo0KEDXbp0KVf4ZmZWIEsT1YXA3sDDABExQ1KvxpxEUk+gP/A3oFvB0g//ImnCgiT5WVjwsNfTssJlIirOwoUL6dGjR9F9V199NZ06deLNN9/kgAMOYPjw4dx0001MnjyZT3/606xbt46I4PTTT+eRRx6hW7durF27FoDzzz+fTp06sXr1anbbbTfGjBnDxIkTGThwIOPGjePGG29kzpw5AJxzzjl873vfY5999mHKlClcdtllXHHFFSVjv+222+jUqRNz585l7Nix/OUvyXqqixcv5ogjjuDiiy9mr7324nOf+xyTJ09mu+224+c//znXXXcdZ5xxRgu9gpWlR48eLFq0CEhGPFVXV/Pqq6/Sv3//2sT1xhtv5IQTTmDAgAGcffbZrFmzhg4dOgBw9NFHc+aZZ7Jo0SJGjRpVm5yamVl5ZUlw1kTEijqjkiLrCSR9HPgjcGZEvF34PBERkjI/V/p8pwCnAGy3XesvidWjRw9mz579kfJ169Zx0UUX8cQTT7DxxhuzYEGyVMb48eO54ooreOeddxg1ahT77rsvXbt2rR02XNPH45prruGOO+6gqqqKJUuWsGTJEl566SWOOOIIAD772c8yceJEAGbNmsV5550HwAcffECfPn1Kxr1q1Sq+8Y1vMG/ePKqqqmr/qAP84he/YOzYsey1114AvPDCCxx//PEAvPfeewwZMqRJr1VbsHDhQrbZZhuA2iaqFStWMHToUJYvX84WW2zBlClTat/zJUuWcM8999T27+nevTsrV67klltu4YEHHnCCY2bWSrIkOC9IOhaoktQX+DrwRJYnl9SBJLm5MZ0NGeANSd0jYnHaBLUkLV9E0oG5xrZp2XoiYgIwAWDAgAGNSo7y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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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J2lToEdEXNCExx5MkhzNkjQjLfs/ksTmVkknAPOAMem6e4ADgZeBd4BxTThWm1m+fDnHHHMMt99+O3369CEiuP/++9s6LKtniy22qEsGa2trmTJlCttvv/16fy9btoyDDz6YHXfckaFDh1JTU1O3z/HHH8/999/PiBEjALjrrrsYNmwYjz32GEOGDAGS6qe///3vrFq1is6dO/Pb3/6WT37yk23xdM3MNnhlq5okHQTMAO5NlwdIurPcfhHx54hQRHw8Igakt3si4s2I2C8i+kXE8Ij4V7p9RMT4iOgTEf0jol0MUXz33Xdz0EEH0adPHyCZkPSAA5IrPscddxy1tbXsscce3Hln8pLdcsst7LXXXgwdOpQJEyYA8NBDDzF48GBqa2s544wzADj77LMZOnQoe+yxBxMnTgRgxYoVjBw5kuHDh3PRRRfVxTB//nxGjhzJsGHDGDlyJA21TarvgAMOoLa2lr322osnnnhivXVvvfUWBx98MPfeey+zZs1i+PDhDBs2jDFjxrBy5coWvGLVq2vXrnzzm9/kpptuWq983bp1LFu2jKTJGDz77LPstttunHrqqUyZMmW9bUeMGMHdd9/N4sWL6dSpE127dq1U+GZmViRLFdX5wF4k3bmJiBmSeucYU7syf/58evbsWXLdT3/6U7p06cKbb77Jvvvuy6hRo7jpppuYMmUKH/vYx1i3bh0RwamnnsojjzzCtttuy9q1awE499xz6dKlC6tWraJ///6MGzeOSZMmMWTIECZMmMCNN97InDlzADjrrLP49re/zd57783UqVO59NJLufzyy8vGftttt9GlSxfmzp3L+PHj+eMfk/lUFy1axGGHHcaFF17InnvuyWc/+1mmTJnCDjvswI9//GOuu+46TjvttFZ6BatLz549Wbgwafq1du1aamtrefXVVxk4cGBd4nrjjTdy3HHHMWjQIM4880zWrFlDp06dADjyyCM5/fTTWbhwIWPGjKlLTs3MrLKyJDhrImJ5vV5JTer51JH17NmT2bNnf6B83bp1XHDBBTz++ONsvPHGzJuXTJVx8cUXc/nll/P2228zZswY9tlnH7baaqu6bsOFNh7XXHMNd9xxBzU1NSxevJjFixfz0ksvcdhhhwHwqU99ikmTJgEwa9YszjnnHADee+89+vbtWzbulStX8tWvfpUXX3yRmpqauh91gCuvvJLx48ez5557AvD8889z7LHHAvDuu+8yfPjwZr1W7cH8+fPZbrvtAOqqqJYvX86IESNYtmwZW265JVOnTq17zxcvXsw999xT176nR48erFixgltuuYUHHnjACY6ZWRvJkuA8L+looEZSP+ArwOP5htV+jBw5kosvvpgTTjihrppq2rRpbL311sycOZM///nPLF26tG5d7969mThxIqtWraJfv37MmzePf/3rXyxZsoTu3buzbt06li9fzg033MDMmTNZs2YNO++8MxFBv379mD59Ovvttx9PPfVUXQy77bYbEyZMYODAgQCsXr26bNz33nsvNTU1PProo8yZM4dRo0bVrfvud7/Lfffdx+TJkxk7diy77747N998Mz169Mj8+O3R8uXLufjii/nWt761XvkWW2zBKaecwqWXXsoBBxzA6NGj666QvfLKK0yYMKEuwQEYP348c+bMYdNNN61o/GZm9r4sCc6XgW8Cq4CbgPuA7+UZVGsp1/upNWyxxRZMmTKF8ePH8+6777J69WoOP/xwTj75ZNasWcO+++7LgAED6tpinHXWWcyaNYs1a9Zw8sknI4mrr76aUaNG0blzZwYOHMgPfvADdt11V4YMGcIuu+zCVlttBcCJJ57ImDFjmDZtGrvvvntdDFdccQXjx49nxYoVQNIgtn4vqH/84x/rXXmZMmUKF198McOHD2fw4MHrbbvxxhszZcoUxo0bx5o1a7j66qsZO3Zs3ejQEyZMYP/992+117CtR/08/PDDqampYd26dRx//PEMGzbsA9sceeSR9O/fn6VLl3L00UfXlffp04e5c+fy1lvvD/F04IEHcuCBB1YkdjMzK02FhpMlV0o1wAMRMbRyIWU3aNCgmD59/bbIc+fOZZdddmmjiMzKa++f0draWoDMQxSYtXeeqqG6SXo6IgbVL2+0F1VErAXWSdoit8jMzMzMWlmWKqoVJGPZTAPeLhRGxFdyi8rMzMysBbIkOLelt3YjIjwXlVWlxqqEzcys9WQZyfgXlQiktWyyySa8+eabbLXVVk5yrOq8++67dWPmmJlZfhpMcCT9HpgI3BsRa+qt2wkYC7weEdfnGmETbb/99ixYsCDzaL5mlVbobm9mZvlp7ArOicCZwI8k/QtYAmwC9CaZL+qqiJjayP5tolOnTvTu7YGWzczMNmQNJjgR8U/gG8A3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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "app_gap = df_gap22_cas['app']\n", - "gap_22_cas = df_gap22_cas['avgTimeTagCheckResRd'].astype(float)\n", - "gap_22_ram = df_gap22_ram['avgTimeTagCheckResRd'].astype(float)\n", - "\n", - "\n", - "gap_25_cas = df_gap25_cas['avgTimeTagCheckResRd'].astype(float)\n", - "gap_25_ram = df_gap25_ram['avgTimeTagCheckResRd'].astype(float)\n", - "\n", - "\n", - "app_npb = df_npbC_cas['app']\n", - "npb_C_cas = df_npbC_cas['avgTimeTagCheckResRd'].astype(float)\n", - "npb_C_ram = df_npbC_ram['avgTimeTagCheckResRd'].astype(float)\n", - "\n", - "npb_D_cas = df_npbD_cas['avgTimeTagCheckResRd'].astype(float)\n", - "npb_D_ram = df_npbD_ram['avgTimeTagCheckResRd'].astype(float)\n", - "\n", - "\n", - "# Multi bar Chart1\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_22_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_22_ram[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", - "\n", - "offset = i*3+2\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_C_cas[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_C_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*3+0.5, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Avg Tag Check Latency (reads) (ns)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "# Multi bar Chart2\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_25_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_25_ram[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", - "\n", - "offset = i*3+2\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_D_cas[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_D_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*3+0.5, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Avg Tag Check Latency (reads) (ns)\")\n", - "plt.legend(fontsize=9, ncol=2)\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAClCAYAAABREodCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAe0klEQVR4nO3deZgU1b3/8fcHRFCjEAUjigoaNaKICxhR1HEFlajEq8afjwvXXLKoiRtJ5CYajYoGl+TGLYpGE427JoG4BhkxRkVQEZTgzwWvCy64ICgiwvf+UdXYDD09NUt1zwyf1/P0M12nu6s+00v16VOnzlFEYGZmZtaedKh2ADMzM7OW5gqOmZmZtTuu4JiZmVm74wqOmZmZtTuu4JiZmVm74wqOmZmZtTuu4JiZmVm74wqOmZmZtTurNXQHSQOA3YENgUXATOChiPgw52xmZmZmTVJvC46kEZKeBs4E1gBmA+8Cg4F/SLpR0iaViWlmZmaWXbkWnDWB3SJiUakbJW0PbAH8bw65zMzMzJpMnovKzMzM2psGOxlL2kzSeEnzJL0r6a+SNqtEODMzM7OmyHIW1Z+B24ENSDoa3wHckmcoMzMzs+Zo8BCVpOciYrs6ZdMjon+uyczMzMyaKEsF5yLgQ+BWIIAjga8CYwEi4oOcM5qZmZk1SpYKzqtlbo6IcH8cMzMza1V8FpWZmZm1O1lGMu4IHAT0Lr5/RFyaXywzMzOzpmuwggOMBz4DZgDL8o1jZmZm1nxZKji96p5FlZfu3btH7969K7EpMytj9uzZAGy11VZVTmJmVt60adPmRUSPuuVZKjj3Sdo/Ih7MIdcKevfuzdSpU/PejJk1oKamBoDa2tqq5jAza4ik10qVZ6ngPAHcI6kDsAQQydlT67RgPjMzM7MWk6WCcykwCJgRPuXKzMzM2oAsFZzXgZnVqNx89NFHzJ07t9KbtXauS5cu9OrVi06dOlU7ipmZ5SRLBecVoFbSfcDiQmElThOfN28evXv3Zo011sh7U7aKiAjef/993njjDfr06VPtOGZmlpMsFZxX08vq6aVilixZQpcuXSq5SWvnJLHeeuvx3nvvVTuKmZnlqMHZxCPinFKXSoSD5AspbxMnTqSmpoY99tiD4cOH8/777+eynTlz5nD88cc3eL8bbriBcePGNXi/wYMHt0Cq6pg/fz41NTXU1NTQtWtXampqGDFiBP3792efffbhgAMOYNq0aUDyfGy11VbstddeHHrooXz++efL17PFFltw6623Ll+uqanh5JNPXr48bNiwlZ7zSrynzMysuhqs4EjqIWmspHslPVy4VCJcJbz33nuce+65jB8/nsmTJ3PRRRet8AVq+ejatSu1tbXU1tbSr18/amtr2XTTTbnkkkuYOHEi1157LSeeeCKffvopAKNGjWLSpEkMGDCABx9MRiyYPn06gwcPZvz48Sus+/XXXyciWLBgAfPnz6/4/2ZmZtWX5RDVzcBtwDDg+8BxQMXb93c5+4FmPf6Jc4aULL/33ns55phjWHvttQHYcsstAfjDH/7AjTfeyMKFC7ngggvYf//9GT16NJMnT6ZTp07cfPPNdOjQgREjRrBo0SIGDRrEmDFjOOKII3jnnXfo3Lkzd955J+ussw5nnXUWkyZNom/fvsu3O2HCBH7961/zxRdfcNZZZzF06NCy+UutF5I+JT/+8Y/Zdddd2WeffTjhhBNYsGABW2+9NVdeeWWznjOAg/9yULMe/7dD/96kx/Xq1YshQ4bw1FNPrVD+0UcfLb9+991388Mf/pALLriAxYsX07lzZwAGDhzIlClTePXVVznwwAOXD1pnZmarjgZbcID1IuI6YElEPBIR/wnsnXOuipk7dy49e/ZcqfzII4+ktraWiRMncvHFFwPw2GOPMXnyZCZNmkTPnj0ZM2YMp556KrW1tZx//vlAcjjlkUce4YgjjuC2225j7ty5TJkyhUcffZQ999wTgGXLlnHxxRfz8MMPU1tby9ixYxvMWXe9BaeccgqDBg3iO9/5DhdeeCFnnnkmkyZNYu211+bxxx9viaeoajbccEPefvttAMaOHUu/fv2YMmUKQ4YkldVnnnmGgQMHMnToUP7xj38sf9zw4cO55557uPfeeznooOZV0MzMrG3K0oKzJP07V9JBwFvAug09SFIXYDLQOd3OnRFxdlOD5qVnz5689dZbK5U/8MAD/Pa3vyUiePfddwH4yU9+wnHHHcd6663H+eefz4svvri8YtOhQweWLl3KqFGjmDFjBh9//DHDhw/ntddeY7vtkpkudtppJx588EHmzZvHrFmz2HfffQF49913iYh6+4aUWi/Aiy++SJcuXfjNb34DwKxZs/jZz36GJBYuXMjOO+/cos9Vpb355ptsvfXW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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAClCAYAAABREodCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAetElEQVR4nO3de7xc873/8dc7RIJGUhJtCEkoKkS0klQINkGCFKm6/XpccrSpFq1bnMpRShEEaU/dSigtdb+0SV0b2aKKSBChKT+XOC5xiUskRETyOX+sNTGJ2bPXvqyZvXfez8djHnvWd2bWeu+5rPnOd33X96uIwMzMzKwtaVftAGZmZmbNzRUcMzMza3NcwTEzM7M2xxUcMzMza3NcwTEzM7M2xxUcMzMza3NcwTEzM7M2xxUcMzMza3NWr+8OkvoDOwEbAIuAZ4EHIuKDnLOZmZmZNUqdLTiSRkp6EjgVWBN4HngHGAz8XdJ1kjauTEwzMzOz7Mq14KwF7BgRi0rdKGlbYDPgf3PIZWZmZtZo8lxUZmZm1tbU28lY0iaSJkqaJ+kdSX+RtEklwpmZmZk1RpazqP4M3AJ8naSj8a3AjXmGMjMzM2uKeg9RSXomIrZZqWxmRPTLNZmZmZlZI2Wp4JwPfADcBARwMPBVYBxARLyfc0YzMzOzBslSwXmlzM0REe6PY2ZmZi2Kz6IyMzOzNifLSMarAfsAvYrvHxEX5xfLzMzMrPHqreAAE4FPgVnAsnzjmJmZmTVdlgpOj5XPospL165do1evXpXYlJmV8fzzzwOwxRZbVDmJmVl5M2bMmBcR3VYuz1LBuUfSnhFxfw65VtCrVy+mT5+e92bMrB41NTUA1NbWVjWHmVl9JL1aqjxLBecx4E5J7YAlgEjOnlqnGfOZmZmZNZssFZyLgUHArPApV2ZmZtYKZKngvAY8W43KzYcffsjcuXMrvVlr4zp27EiPHj1o3759taOYmVlOslRwXgZqJd0DLC4UVuI08Xnz5tGrVy/WXHPNvDdlq4iI4L333uP111+nd+/e1Y5jZmY5yVLBeSW9rJFeKmbJkiV07Nixkpu0Nk4S6623Hu+++261o5iZWY7qnU08Is4sdalEOEi+kPI2efJkampq2HnnnRkxYgTvvfdeLtuZM2cORx55ZL33u/baa5kwYUK99xs8eHAzpKqO+fPnU1NTQ01NDZ07d6ampoaRI0fSr18/hgwZwl577cWMGTOA5PnYYost2HXXXdl///357LPPlq9ns80246abblq+XFNTw3HHHbd8efjw4V96zivxnjIzs+qqt4IjqZukcZLulvRg4VKJcJXw7rvvctZZZzFx4kSmTp3K+eefv8IXqOWjc+fO1NbWUltbS9++famtraVnz55cdNFFTJ48mauuuopjjjmGTz75BIDRo0czZcoU+vfvz/33JyMWzJw5k8GDBzNx4sQV1v3aa68RESxYsID58+dX/H8zM7Pqy3KI6gbgZmA4cDRwBFDx9v3tz7ivSY9/7MyhJcvvvvtuDjvsMDp16gTA5ptvDsAf/vAHrrvuOhYuXMi5557LnnvuyZgxY5g6dSrt27fnhhtuoF27dowcOZJFixYxaNAgxo4dy0EHHcTbb79Nhw4duO2221hnnXU4/fTTmTJlCn369Fm+3UmTJnHBBRfw+eefc/rppzNs2LCy+UutF5I+JT//+c/ZYYcdGDJkCEcddRQLFixgyy235LLLLmvScwaw7137NOnxf93/b416XI8ePRg6dChPPPHECuUffvjh8ut33HEHP/3pTzn33HNZvHgxHTp0AGDAgAFMmzaNV155hb333nv5oHVmZrbqqLcFB1gvIq4GlkTEQxHxn8BuOeeqmLlz59K9e/cvlR988MHU1tYyefJkLrzwQgAeeeQRpk6dypQpU+jevTtjx47lhBNOoLa2lnPOOQdIDqc89NBDHHTQQdx8883MnTuXadOm8fDDD7PLLrsAsGzZMi688EIefPBBamtrGTduXL05V15vwfHHH8+gQYM45JBDOO+88zj11FOZMmUKnTp14tFHH22Op6hqNthgA9566y0Axo0bR9++fZk2bRpDhyaV1aeeeooBAwYwbNgw/v73vy9/3IgRI7jzzju5++672WefplXQzMysdcrSgrMk/TtX0j7Am8C69T1IUkdgKtAh3c5tEXFGY4PmpXv37rz55ptfKr/vvvv47W9/S0TwzjvvAHDKKadwxBFHsN5663HOOefwwgsvLK/YtGvXjqVLlzJ69GhmzZrFRx99xIgRI3j11VfZZptkpovtttuO+++/n3nz5jF79mx23313AN555x0ios6+IaXWC/DCCy/QsWNHfvOb3wAwe/ZsfvGLXyCJhQsXMnDgwGZ9rirtjTfeYMstt+Tll19m9OjRjBw5kv3335/333+fBQsWMGvWLIYNG8bixYvZfPPNl1dmNt98c5577jnWXnvt5S1dZma2asnSgnO2pM7AScDJwATghAyPWwzsFhH9gG2BYZK2b2zQvOy9995cf/31LFiwAIAXX3yRuXPnMnbsWO655x7+8pe/0K5d8jTttttu/OlPf2L99ddn0qRJbLHFFjz22GNA0irz9NNP8/HHHzN16lSOOeYYIoKePXsya9YsIGlxAOjatSt9+/Zl8uTJ1NbWMnPmzLIdX0utF5Iv8kMPPZTRo0cDybxBF198MbW1tUyfPp399tsvnyetAt544w0eeOABBgwYsLxstdVW49hjj2X8+PHccccdTJgwgXvvvZcpU6Ywd+5cli37Yi7YAw44gMMOO6wa0c3MrAWotwUnIialV+cDu2ZdcTow4MJ0sX16aXEjIXfr1o1f/vKXDB8+nIhg3XXX5eqrr2b48OHsvPPODBw4kC5dugCw3377sWjRIgBuvfVWdtllF4444gjOPvtsdthhB8aMGcOLL77IsGHD2Gijjdhwww3p3r072223HTvttBP9+vUDktaeE088kSFDhiCJPn36cOmll66Q6+KLL15+dtD48eO/tN6Co446irFjx3L++eczZswYRo0axfz582nXrh0TJkygtU1eetJJJ9G1a1fWWGMNLrnkki+NgbTHHntw2mmnsfrqq69wtlSfPn14+OGHly8XzpyaM2dOJWKbmVkLozwHKJa0GjAD+AZwaUT8V7n79+/fP4on25w9ezZbbrllbvls1eX3VnmebNPMWgtJMyKi/8rlWQ5RNVpELI2IbYEewEBJW5cINkrSdEnTPfiamZmZNYdcKzgFEfEhMAX40rnQEXFlRPSPiP7dunWrRBwzMzNr4+rtgyPpXOCCtJKCpK8CJ0XEafU8rhvJqeUfSloT2AM4v+mRzayaGjomVV1jUFl+/BqZZTtNfK+IGFNYiIgPJO0NlK3gAN2B69J+OO2AW4o6LGdW7vRps8bIs9+Zma2oJVW2WlIWy1+WCs5qkjpExGKAtDWmQ30PiohngG81JVz79u359NNPPZu4NZvCbOKexNXMrG3LOlXDZEl/SJdHAtflF+kLXbt29Wm+1uw6duxIjx49qh3DzMxylGUcnPMlzQR2T4t+HRFNmxgqoy5duiwfg8bMrCXz4Q9rCL9f8pel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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "app_gap = df_gap22_cas['app']\n", - "gap_22_cas = df_gap22_cas['BWBloat'].astype(float)\n", - "gap_22_ram = df_gap22_ram['BWBloat'].astype(float)\n", - "\n", - "\n", - "gap_25_cas = df_gap25_cas['BWBloat'].astype(float)\n", - "gap_25_ram = df_gap25_ram['BWBloat'].astype(float)\n", - "\n", - "app_npb = df_npbC_cas['app']\n", - "npb_C_cas = df_npbC_cas['BWBloat'].astype(float)\n", - "npb_C_ram = df_npbC_ram['BWBloat'].astype(float)\n", - "\n", - "npb_D_cas = df_npbD_cas['BWBloat'].astype(float)\n", - "npb_D_ram = df_npbD_ram['BWBloat'].astype(float)\n", - "\n", - "\n", - "# Multi bar Chart1\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "plt.ylim([0,3.5])\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_22_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_22_ram[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", - "\n", - "offset = i*3+2\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_C_cas[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_C_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*3+0.5, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"BW Bloat (due to acc amp)\")\n", - "plt.legend(fontsize=8, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "# Multi bar Chart2\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "plt.ylim([0,3.5])\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_25_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_25_ram[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", - "\n", - "offset = i*3+2\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_D_cas[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_D_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*3+0.5, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"BW Bloat (due to acc amp)\")\n", - "plt.legend(fontsize=8, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Anything above is old results.\n", - "Tag probing results starts here:\n" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_308484/3690351968.py:27: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_308484/3690351968.py:30: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n", - "/tmp/ipykernel_308484/3690351968.py:64: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_308484/3690351968.py:67: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAlVElEQVR4nO3debxVZb3H8c83RI8DggN6TUSQtKtIoWLqRfMgdp3CoRuo5UBOOeaQOaRpdi3pdk1JuxqaF80JLU0UJbvGEdBUIAcQxExRMRSwBMkUgd/9Y6192BzPsM7ee51h832/Xue193r22uv5rT2s89vPetbzKCIwMzMzqyafau8AzMzMzCrNCY6ZmZlVHSc4ZmZmVnWc4JiZmVnVcYJjZmZmVWed9g6gHJtvvnn06dOnvcMwW+vNnTsXgM9+9rPtHImZrW1mzJixOCJ6Nizv1AlOnz59mD59enuHYbbWq62tBaCurq5d4zCztY+k1xsr9ykqMzMzqzpOcMzMzKzqOMExMzOzqtOp++A05uOPP2b+/Pl8+OGH7R2KWdWqqamhV69edO3atb1DMTNrVNUlOPPnz6dbt2706dMHSe0djlnViQjeffdd5s+fT9++fds7HDOzRlXdKaoPP/yQzTbbzMmNWU4ksdlmm7mV1Mw6tKpLcAAnN2Y583fMzDq6qjtFVWzPy39Xke08dcUBTT62ZMkSDjvsMACee+45dtxxR9Zbbz0WL15Mt27d6NKlCxHBySefzMiRIwHo27cv2267LStXrqRPnz6MHTuWLl26APCjH/2Im266iVdffbX+n0jfvn0ZOnQoN998MwC/+tWvOO6443jttddoONBhc9suuPLKK+nVq1d9PAUjR47k+eefZ+ONN2ajjTbijjvuoEePHi2+PmPHjmX+/PlceumlLa5bikN/e0hFtjP+8AlNPtbR3sfPfOYzvPLKKxXZ74Li9+mcc87hkksuoWfPT4yNZWZWFaqyBactde/enbq6Ourq6hg4cCD33nsvdXV1bL755tx7771MnTqVCRMmMHbsWCZNmgRAly5dqKurY8qUKXTt2pVHH320fnsPPfQQ++23H0888UR9WZcuXXjjjTf46KOPAPj1r3/Nbrvt1mg8zW07i+uuu47HH3+cwYMHc+ONN67x2MqVK1u1rc6ko72Pebv22mud3JhZVXOC0wZ69OjBJZdcwp133rlG+apVq3jvvfeICACeffZZ+vfvz2mnncbtt9++xroHHXQQEyZMYOHChXTt2rXFlpWG2548eTK77LILw4YN4+mnn24x5l133ZXXX3+dsWPHMnz4cA4//HBGjx7NTTfdxB577MEee+zBLbfcUr/+008/zbBhw9hll12YMmVKlpel02nr9/Hcc89l33335ZhjjmHVqlUsXryYoUOHUltby+DBg3n55ZcBOP/889lrr70YMmQI48aNA5JEdZ999mGvvfaqbzEqVltby/z585k3bx677bYbxxxzDLvuuivXXnstkLRojRgxgqFDh7LffvtVvDXJzCxvTnDayDbbbMNbb70FJC0htbW19OnTh5UrV3LAAckpsDvuuIPjjz+eQYMGMXv2bD7++OP65x911FGMGzeOcePGMWLEiCbraWrb5513Hg888ADjx4+vb0FozqOPPkr//v0BWLZsGffffz/HHnss119/PVOmTGHKlCmMHj2aRYsWAcnl+Q8++CD3338/5557bmkvUifQVu/jihUrGDFiBI8//jjrr78+48ePp3v37jzyyCPU1dVx6aWXMmrUKAAeeeQRpkyZwqRJkxg+fDhz5sxh4sSJTJ48malTp3LLLbfw7rvvNlnXggULGDNmDE8++SSjR48G4KqrruIrX/kKjz32GNdccw0XXXRR2a+dmVlbyi3BkbSNpEmSZkt6UdLZafmmkn4v6c/p7SZpuST9TNIrkl6QtGtesbWHN998k6233hpYfWpj5syZLFq0iPfee49Vq1bxwAMPcOWVV3LggQeycOFCHn744frnb7XVVixbtoy7776bYcOG1Zdff/311NbWctJJJzW5bYClS5fSu3dvJPGFL3wBgKlTp1JbW0ttbS3Lli0D4KyzzmLffffln//8Z/0299xzTyTx6quvMmDAANZdd13WXXddBgwYwGuvvQbA7rvvDiTzgy1ZsiTHV7J9tdX7WPw+7bHHHsydO5f33nuPY445hi9+8YtcccUVvPnmmwCMGjWKE044gZEjRzJnzhxmzZrF7NmzGTJkCEOHDmXp0qX16zZmxx13ZIMNNqCmpqa+D9HMmTMZPXo0tbW1nH322fWfIzOzziLPFpwVwLcjYidgT+AMSTsBFwGPRcT2wGPpMsBBwPbp3ynADTnG1qaWLFnCVVddxdFHH71Geffu3Tn11FP58Y9/zKRJkzjssMOYOHEiEydOZMKECdxxxx1rrH/GGWdwxBFHsP7669eXnXnmmdTV1X3iNETxtgG6devG/PnzAZg2bRoAe++9d32/k4022ghY3QfnhhtuoKamBqD+n17fvn154YUXWL58OcuXL2fmzJn146DMmDEDgDfeeIONN964/BetA2rL9zEi6ieSnTZtGjvssAO33347u+yyC5MnT+ayyy4jIogI9t9/f2677TZOOukkLrvsMnbccUd22WUXJk2aRF1dHc8++ywDBw5scr8auyKqf//+XHDBBfWfj+IkzcysM8jtKqqIWAAsSO+/L2kOsDVwGFCbrnYrUAdcmJbfFklHhqck9ZC0VbqdTmn48OF06dKFVatWccIJJ7Dffvt9Yp2jjjqKAQMGsHjxYr72ta/Vl/fr1485c+awdOnS+rKDDz6Ygw8+OHP9hW1/97vf5eqrr2bYsGF8+tOfplu3biXtzxZbbMHpp5/O3nvvDST/lAsdVTfYYAMOOeQQ/vrXv3LNNdeUtP2Oqj3ex3XWWYff/OY3XHDBBWy99dYceuihvPTSS3zta19j8uTJ9acPV6xYwUEHHQQkY0Bddtll7Lzzzuy///7su+++dOnSpf4UV2tccsklnHrqqVx33XVEBIcccgjnn39+q7ZhZtaeVOgYmWslUh9gMrAz8EZE9EjLBfw9InpIeggYFRFT08ceAy6MiOlNbXfQoEFR+JVbMGfOHHbcccdc9sPMViv+rtXW1gJQV1fXfgGZ2VpJ0oyIGNSwPPdOxpI2An4DnBMRS4sfS1trWpVhSTpF0nRJ0wsdXM3MzMyK5ZrgSOpKktzcERH3pcXvSNoqfXwrYGFa/hawTdHTe6Vla4iIMRExKCIGeRwPMzMza0yzCY6kGklflTRa0r2SbpN0gaT+LW04Pf30S2BORPy06KHxwPHp/eOBB4rKj0uvptoTWFJq/5u2OO1mtjbzd8zMOromOxlLugL4Mkkn4KdJWlpqgB2AUZJqSK6SeqGJTQwGjgVmSnouLfsuMAq4R9KJwOtAYTCQh4GDgVeAD4BvlLJDNTU1vPvuu55w0ywnhdnEC1fZmZl1RM1dRfVMRFzexGM/lbQF0LupJ6edhZvKMIY2sn4AZzQTTya9evVi/vz5uH+OWX5qamro1atXe4dhZtakJhOciPjEzISSPgVsFBFLI2Ihq/vPdBhdu3atH5vFzMzM1k4tdjKWdKekjSVtCMwCZkv6Tv6hmZmZmZUmy1VUO6WXdx8OPAL0JelbY2ZmZtYhZUlwuqaXex8OjI+Ij2nl2DVmZmZmbSlLgvMLYB6wITBZ0rbA0mafYWZmZtaOWpyLKiJ+BvysqOh1SUPyC8nMzMysPC0mOJLWA/4D6NNg/R/kFJOZmZlZWbLMJv4AsASYAXyUbzhmZmZm5cuS4PSKiANzj8TMzMysQrJ0Mn5S0oDcIzEzMzOrkCwtOHsDIyW9RnKKSiQzK3wu18jMzMzMSpQlwTko9yjMzMzMKqi52cQ3iohlEfF6S+vkE5qZmZlZaZrrg/OApKslfTGdhwoASdtJOlHS7wB3PjYzM7MOp7nZxIdKOhj4JjBY0ibACmAuMAE4PiLebpswzczMzLJrtg9ORDwMPNxGsZiZmZlVRJbLxM3MzMw6FSc4ZmZmVnWc4JiZmVnVaTHBSa+k6t8WwZiZmZlVQpYWnDnAGElPSzpVUve8gzIzMzMrR4sJTkTcHBGDgeOAPsALku6UNCTv4MzMzMxKkakPjqQuwL+mf4uB54HzJN2dY2xmZmZmJWlxLipJ1wBfBv4A/Cginkkf+rGkuXkGZ2ZmZlaKLJNtvgBcGhH/aOSxL1Q4HjMzM7OyZTlF9R5FiZCkHpIOB4iIJfmEZWZmZla6LAnO5cWJTES8B1yeW0RmZmZmZcqS4DS2TpZTW2ZmZmbtIkuCM13STyX1S/9+CszIOzAzMzOzUmVJcM4ClgPj0r+PgDPyDMrMzMysHC2eakqvnrqoDWIxMzMzq4gs4+DsAJxPMopx/foRsV9+YZmZmZmVLktn4XuBG4GbgZVZNyzpFpIBAhdGxM5p2feBk4FF6WrfjYiH08cuBk5M6/hWRPwua11mZmZmxbIkOCsi4oYStj0WuB64rUH5NRHx38UFknYCjgL6A58G/k/SDhGROaEyMzMzK8jSyfhBSadL2krSpoW/lp4UEZOBv2WM4zDg7oj4KCJeA17BoySbmZlZibK04Byf3n6nqCyA7Uqs80xJxwHTgW9HxN+BrYGnitaZn5Z9gqRTgFMAevfuXWIIZmZmVs1abMGJiL6N/JWa3NwA9AMGAguAq1u7gYgYExGDImJQz549SwzDzMzMqlmLCY6kDSRdKmlMury9pC+XUllEvBMRKyNiFXATq09DvQVsU7Rqr7TMzMzMrNWy9MH5X5KB/v4tXX4LuLKUyiRtVbR4BDArvT8eOErSepL6AtsDz5RSh5mZmVmWPjj9IuJISUcDRMQHktTSkyTdBdQCm0uaTzJBZ62kgSR9eOYB30y3+aKke4DZwArgDF9BZWZmZqXKkuAsl7Q+SVKCpH4k0zU0KyKObqT4l82s/0PghxniMTMzM2tWlgTn+8BEYBtJdwCDgW/kGZSZmZlZObLMRfWopBnAnoCAsyNice6RmZmZmZUoy1xUj0XEUGBCI2VmZmZNOvS3h2Rab/zhE1peyawVmkxwJNUAG5B0Et6EpPUGYGOaGITPzMzMrCNorgXnm8A5JHNDzWB1grOUZI4pMzMzsw6pyQQnIkYDoyWdFRHXtWFMZmZmZmXJ0sn4Okk7AzsBNUXlDWcJNzMzM+sQsnQyvpxkwL6dgIeBg4CpgBMcMzMz65CyTNXwVWAo8HZEfAP4PNA916jMzMzMypAlwflnOjnmCkkbAwtZc2JMMzMzsw4ly0jG0yX1IJn9ewawDPhjnkGZmZmZlSNLJ+PT07s3SppIMg6ORzI2MzOzDitLC069iJgHIOkNoHceAZmZmZmVK0sfnMao5VXMzMzM2kepCU5UNAozMzOzCmpuLqrraDyREdAjr4DMzMzMytVcH5zpJT5mZmZm1q6am4vq1rYMxMzMzKxSSu2DY2ZmZtZhOcExMzOzquMEx8zMzKpOltnEewInA32K14+IE/ILy8zMzKx0WUYyfgCYAvwfsDLfcMzMzMzKlyXB2SAiLsw9EjMzM7MKydIH5yFJB+ceiZmZmVmFZElwziZJcj6U9H76tzTvwMzMzMxK1eIpqojo1haBmJmZmVVKlj44SDoU+GK6WBcRD+UXkpmZmVl5WjxFJWkUyWmq2enf2ZKuyjswMzMzs1JlacE5GBgYEasAJN0KPAtcnGdgZmZmZqXKOpJxj6L73XOIw8zMzKxisiQ4VwHPShqbtt7MAH7Y0pMk3SJpoaRZRWWbSvq9pD+nt5uk5ZL0M0mvSHpB0q6l7pCZmZlZlquo7pJUB+yeFl0YEW9n2PZY4HrgtqKyi4DHImKUpIvS5QuBg4Dt0789gBvSWzMzs1Y79LeHZFpv/OETco7E2kuWTsaDgaURMR7YGLhA0rYtPS8iJgN/a1B8GHBrev9W4PCi8tsi8RTQQ9JW2XbBzMzMbE1ZTlHdAHwg6fPAecBfWLNVpjW2jIgF6f23gS3T+1sDbxatNz8t+wRJp0iaLmn6okWLSgzDzMzMqlmWBGdFRARJK8vPI+LnQNmD/6XbjBKeNyYiBkXEoJ49e5YbhpmZmVWhLAnO+5IuBo4BJkj6FNC1xPreKZx6Sm8XpuVvAdsUrdcrLTMzMzNrtSwJzpHAR8CJaefiXsBPSqxvPHB8ev944IGi8uPSq6n2BJYUncoyMzMza5UsV1G9Dfy0aPkNMvTBkXQXUAtsLmk+cDkwCrhH0onA68CIdPWHSQYUfAX4APhGq/bCzMzMrEiTCY6kqRGxt6T3WbOvjEi60Gzc3IYj4ugmHhrayLoBnJEhXjMzM7MWNZngRMTe6a1nEzez3Hi8EjPLQ7N9cCR1kfRSWwVjZmZmVgnNJjgRsRKYK6l3G8VjZmZmVrYss4lvArwo6RngH4XCiDg0t6jMzMzMypAlwfle7lGYmZmZVVCWy8Qfb4tAzMzMzColy2Sbe0qaJmmZpOWSVkpa2hbBmZmZmZUiyymq64GjgHuBQcBxwA55BmVmZmbZeKiFxmVJcIiIVyR1Sa+q+l9JzwIX5xuamZlZ5+Jko+PIkuB8IGld4DlJ/wUsINscVmZmZmbtIkuicmy63pkkl4lvA/xHnkGZmZmZlSPLVVSvpy04fYD7gLkRsTzvwMyKudnXzMxao8UER9IhwI3AX0gm2uwr6ZsR8UjewZmZmZmVIksfnKuBIRHxCoCkfsAEwAmOmZnZWqqjt6xn6YPzfiG5Sb0KvJ9TPGZmZmZly9KCM13Sw8A9QADDgWmSvgIQEfflGJ+ZWS46+q9PMytPlgSnBngH2DddXgSsDwwjSXjW+gQny4HSB0kzM7O2k+Uqqm+0RSBmZmZmlZLlKqq+wFkkl4nXrx8Rh+YXlpmZmVnpspyi+i3wS+BBYFWu0ZiZmZlVQJYE58OI+FnukZiZmZlVSJYEZ7Sky4FHgY8KhRHxp9yiMjMzMytDlgRnAMl8VPux+hRVpMtmZmZmHU6WBGc4sJ3nnzIzM7POIstIxrOAHjnHYWZmZlYxWVpwegAvSZrGmn1wfJm4mZmZdUhZEpzLc4/CrIPycP5mZp1TlpGMH5e0JbB7WvRMRCzMNywzaw9O6MysWmQZyXgE8BOgDhBwnaTvRMSvc47NmuF/RGZmZk3LcorqEmD3QquNpJ7A/wFOcMzMzKxDynIV1acanJJ6N+PzzMzMzNpFlhaciZJ+B9yVLh8JPFJOpZLmAe8DK4EVETFI0qbAOJJJPecBIyLi7+XUY2ZmZmunFltiIuI7wC+Az6V/YyLiggrUPSQiBkbEoHT5IuCxiNgeeCxdNjMzM2u1JhMcSZ+RNBggIu6LiPMi4jxgkaR+OcRyGHBrev9W4PAc6jAzM7O1QHOnqK4FLm6kfEn62LAy6g3gUUkB/CIixgBbRsSC9PG3gS3L2L6ZmVWhPS//Xab1ttgl50Csw2suwdkyImY2LIyImZL6lFnv3hHxlqQtgN9LeqlBHZEmP58g6RTgFIDevXuXGYZZx+RhAMzMytNcH5wezTy2fjmVRsRb6e1C4H7gC8A7krYCSG8bHUwwIsZExKCIGNSzZ89ywjAzM7Mq1VwLznRJJ0fETcWFkk4CZpRaoaQNSS49fz+9/+/AD4DxwPHAqPT2gVLrMDOzfPlUUf78GpenuQTnHOB+SV9ndUIzCFgXOKKMOrdMt1uo/86ImJhO5nmPpBOB14ERZdRhnYS/wGZmlocmE5yIeAf4N0lDgJ3T4gkR8YdyKoyIV4HPN1L+LjC0nG1Xmv/5mnU+/t6aGWSbbHMSMKkNYjEzq3ruQG7WNrKMZGxWzwdnMzPrDJzg2FrJpzHMzBpXLcdHJzhmZmYtqJZ/+muTFhMcSe+TjDxcbAkwHfh22mnYKsRfIsuDP1fm08u2tsnSgnMtMB+4ExBwFNAP+BNwC1CbU2xm1sllSaycVJlZHlqcTRw4NCJ+ERHvR8TSdN6oAyJiHLBJzvGZmZmZtVqWBOcDSSMkfSr9GwF8mD7W6HxRZmZmZu0pS4LzdeBYkrmh3knvHyNpfeDMHGMzMzMzK0mWgf5eBYY18fDUyoZjVt3c2bd6+b0161iyXEVVA5wI9AdqCuURcUKOcVkb88HZzMyqSZZTVL8C/gU4AHgc6AW8n2dQZmZmZuVoMsGRVGjd+UxEfA/4R0TcChwC7NEWwZmZmZmVorlTVM8AuwIfp8vvSdoZeBvYIu/AzMysZT69bNa4LAP9jZG0CXApMB7YCPherlGZmZmZlaG5BGcLSeel97+R3v48vd0wv5DMzMzMytNcgtOFpLVGjTzmAf7MzMysw2ouwVkQET9os0jMzMzMKqS5y8Qba7kxMzMz6/CaS3CGtlkUZmZmZhXUZIITEX9ry0DMzMzMKiXLSMZmZmZmnYoTHDMzM6s6TnDMzMys6jjBMTMzs6rjBMfMzMyqjhMcMzMzqzpOcMzMzKzqOMExMzOzquMEx8zMzKqOExwzMzOrOk5wzMzMrOp0uARH0oGS5kp6RdJF7R2PmZmZdT4dKsGR1AX4OXAQsBNwtKSd2jcqMzMz62w6VIIDfAF4JSJejYjlwN3AYe0ck5mZmXUy67R3AA1sDbxZtDwf2KN4BUmnAKeki8skzW2j2JqzObC4uRWE2rxO1+t627peqaR4OuW+ul7X24HqXZv2tTHbNlbY0RKcFkXEGGBMe8dRTNL0iBhU7XW6XtdbLXW6XtdbTfWuTfvaGh3tFNVbwDZFy73SMjMzM7PMOlqCMw3YXlJfSesCRwHj2zkmMzMz62Q61CmqiFgh6Uzgd0AX4JaIeLGdw8qiPU6ZtddpOtfrequhTtfrequp3rVpXzNTRLR3DGZmZmYV1dFOUZmZmZmVzQmOmZmZVR0nOK0kqY+kWe1dn6R9JL0o6TlJ67dVPFZ5knpIOr2942grzXymz5G0QXvE1BYkfUvSHEn/aKsR2iU92Rb1NKhzWVvXadYYJzid19eBqyJiYET8s72DaQ/p1B7VoAew1iQ4zTgHqNoEh+Q9/hJwL8lUNLmLiH9ri3rMOiInOKVZR9Id6a+xX0vaQNLukp6U9LykZyR1y7G+bwEjgP9My7eSNDltzZklaZ9KVSzpOEkvpPv1K0lbSro/XX5eUi4H0PRX/kuNvM7zJP1Y0p+A4WVsf0NJE9J9mCXpSEmjJM1O9/e/0/WGp48/L2lyWjZS0gOS6iT9WdLlZe7uKKBf+v79RNKFkmamdY5q5X59L52sdqqkuySdn8Z5jaTp6Wu5u6T70tivLHruMeln9zlJvygkkJJuSJ/7oqQritafJ+kKSX9K4/3XVoTa2Gf608AkSZNas89ZNfJZ7ifpqTT2K/NseZB0I7Ad8BpwPPCT9HXul1edab3L0tvcjhHN1F0r6aGi5esljaxwHYXjxFhJL6efqf0lPZF+vr8gqaek36ef35slvS5p8wrU3dgxZJ6k/0o/U89I+kwl9rNBvWu0gKbf8e9LOlnStDSe3yhDa2gnOl6UJiL814o/oA8QwOB0+RbgAuBVYPe0bGNgnRzrOx8YC3w1Lfs2cEl6vwvQrUJ19wdeBjZPlzcFxgHnFNXVvQ1f5/OBecAFFdj+fwA3FS1vC8xl9ZWFPdLbmcDWDcpGAguAzYD1gVnAoDL3dVZ6/yDgSWCDwmveiu3sDjwH1ADdgD+nr1kd8ON0nbOBvwJbAeuRTIeyGbAj8CDQNV3vf4DjimNI3+864HPp8jzgrPT+6cDNFXhvN8/p89TYZ/kh4Oh0+VRgWR51F8Uwj2Ro+/rvbt5/hX0ip2NEC3XWAg8VlV8PjKxwXX2AFcAAkh/sM9LPk0jmMfxtWu/F6foHpp+9sj9nfPIY0j19jwuv83HF+1/hfZ5VtHw+8H1gs6KyKwvfzWa20ymOF+X8uQWnNG9GxBPp/duBA4AFETENICKWRsSKHOvbu8Hj04BvSPo+MCAi3q9QvfsB90bEYoCI+FtadkO6vDIillSorsY0td/jKrDtmcCXlLQG7UMyYvaHwC8lfQX4IF3vCWCspJNJvrAFv4+IdyM5PXgfn3xPSrU/8L8R8QHUv+ZZDQYeiIgP08/Ag0WPFQbMnAm8GBELIuIjksR8G2AosBswTdJz6fJ26XNGKGkxe5YkUSg+vXJfejuD5MCbVUuf6Upr7LO8F8npIoA7c66/veV1jOgIXouImRGxCngReCyS/6IzST6Te5NM3ExETAT+XqF61ziGFB0L7yq63atCdWWxs6QpkmaSdGHo38L6nel4URInOKVpOHjQ0jaub43liJgMfJHkn/RYScflHE9baWq//1H2hiNeBnYl+QJfCXyXZDb7XwNfBiam650KXErypZ4habMWYuuoPkpvVxXdLyyvQ/KL99ZI+nQNjIjPRsT3JfUl+VU3NCI+B0wg+cXXcLsrad3AoZ3t9evU2ukYsYI1/8fUNLVimRp+nos/67kNZtvwGCLpssJDxavlUHVTr+tY4MyIGABcQXmvd0c7XpTECU5peksqZOZfA54CtpK0O4CkbpIq+eY1rG9q8YOStgXeiYibgJtJvnSV8AdgeOGfuqRNgceA09LlLpK6V6iuxjS73+WQ9Gngg4i4HfgJycG/e0Q8DJwLfD5dr19EPB0RlwGLWD1X2pckbarkCrbDSVp6SvU+SRMxwO9JfmlvkNa/aSu28wQwTFKNpI1IErWsHgO+KmmLQr3p52pjkoRyiaQtSU6hVUJj723x61BpjX2WnyI5zQDJtDBtJc/9bFSOx4jmvA7sJGk9ST1IfuW3hydI+iwi6d+BTSqx0UaOIYXX9Mii2z9Woq4G3gG2kLSZpPVY/T3vBiyQ1JWkBaclnel4UZIONVVDJzIXOEPSLcBs4DqSA+h16T+8f5KcaqhUp8WG9d1Acs6zoBb4jqSP0zor8ussIl6U9EPgcUkrSZoczwbGSDqRJAs/jXy+xND4fp9VoW0PIOnouQr4GDgPeEhSDcmvk/PS9X4iafu07DHgeWAg8AzwG5IJYW+PiOmlBhIR7yrpFDkLeISkeXi6pOXAwyStS1m2M03SeOAFkoPgTCDTKcSImC3pUuBRSZ8ieU3OiIinJD0LvAS8SXmJXLHG3tvlwERJf42IIRWqB2jys3wOcLukS0ha7PI83VrsbuAmJR2rvxoRf2mDOmvJ4RjRnIh4U9I9JH3UXiN5zdvDFcBdko4lOVa9TZJklqvhMeQ0khbgTSS9QNJacXQF6llDRHws6Qckx6C3SL6bAN8Dnib5IfY0LSTRnex4URJP1WAdkqQ+JB30dm7vWBpSciXIoIg4s71jaUjSRhGxLG0BmgycEhF/au+4OqL0NfpnRISko0g6HB/W3nFZZaWtHCsjmetwL+CGiBiYU13zSI4Ni/PYfqVV+/HCLThm1WWMkkHkakjOkVfNwSoHuwHXSxLwHnBC+4ZjOekN3JO2NCwHTm7neDqSqj5euAXHzMzMqo47GZuZmVnVcYJjZmZmVccJjpmZmVUdJzhmZmZWdZzgWEmUTLp5p6RXJc2Q9EdJRxQ9fq2kt9IrFwplIyUtUjI52+x0+oOG5S8qnVgzfWxPSU+nj81RMtR8Y/HcoWTSuFmSbkkHu0LS15VMsDhTyWSon8/1hTFby0gKSVcXLZ9f+J4qmQTyLa2e5PPQRspfUjJBY6P/jyT9i6S7Jf0lPdY8LGmHNtk569Sc4FirpZfV/haYHBHbRcRuJCPB9kof/xRwBMlAT/s2ePq4dAyKWuBH6WiX9eUR0Z/kUs7CaKC3kozNMBDYGbinibDuAP6VZPCt9YGT0vLXgH3T4cv/ExhT2l6bWRM+Ar6ipmfovib9/g4HbilKZArlO5F8bxseKwrHmvuBuojolx5rLga2bLiuWUNOcKwU+wHLI+LGQkFEvB4R16WLtSST3t1AEyN5RsRC4C8ks3jXUzLFxYasnhBvC5KZuwuTe85uYnsPR4pkhM9eafmTEVHY1lOFcjOrmBUkPxzObW6liJiTrtswEVqXZByWxibBHAJ83OBY83xETCkrYlsrOMGxUvQHmhsQ6miSmXTvBw4pnC4qJmk7ktlnX0mLjlQyK+1bwKasntn2GmCupPslfTOdSqFJaV3Hkk6W2cCJJFMhmFll/Rz4upqZm07SHiSTNS5Ki85Nv/MLgJcj4rlGnrYzyczTZq3mBMfKJunnkp6XNE3SusDBwG8jYinJnCgHFK1eSGTuAr4ZEX9Lywunrv6FZE6U7wBExA+AQcCjJJMyNpa4FPsfklNna/zCkzSEJMG5sOQdNbNGpd/124BvNfJwIZH5b+DIWD26bOEU1RbAhul0GWYV4wTHSvEiRbMRR8QZJDMF9yRJZnoAM9N5WfZmzdNUhb42e0TE/Q03nB78HiSZ3btQ9peIuCGt4/NKZtH9XdpB8ebCepIuT2M4r3ibkj5HMoPyYRHxbll7bmZNuZbkR8SGDcqvSb/z+zR2aikiPib54fJFSduk3+vnJJ1KcqzZLe/ArTo5wbFS/AGokXRaUdkG6e3RwEkR0Sci+gB9gS8VrorKaG+S/jlIOiTtaAiwPckM5u9FxAHpQfOkdL2TSJKroyNiVWFDknoD9wHHRsTLrd1RM8smbY29hyTJySz9fg8G/hIRb6bf64Fpv5s/AOtJOqVo/c9J2qeSsVt1coJjrZa2shwO7CvpNUnPkFztdDlwIDChaN1/AFOBYS1s9sj0V9sLwC4kVzxB0p9mbtrE/Svg6xGxspHn30hyZcUf0+1clpZfBmwG/E9aPr3VO2xmWV3NJzsRN6Vw6moW0IXk9PIa0mPNEcD+6WXiLwJXAW9XJlyrZp5s08zMzKqOW3DMzMys6jjBMTMzs6rjBMfMzMyqjhMcMzMzqzpOcMzMzKzqOMExMzOzquMEx8zMzKrO/wMlAOskIUKYewAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = df_gap22_ram_prob['avgTimeTagCheckResRd'].astype(float)\n", - "gap_22_ram = df_gap22_ram['avgTimeTagCheckResRd'].astype(float)\n", - "gap_22_prob[len(gap_22_prob)] = statistics.geometric_mean(df_gap22_ram_prob['avgTimeTagCheckResRd'].astype(float))\n", - "gap_22_ram[len(gap_22_ram)] = statistics.geometric_mean(df_gap22_ram['avgTimeTagCheckResRd'].astype(float))\n", - "\n", - "\n", - "gap_25_prob = df_gap25_ram_prob['avgTimeTagCheckResRd'].astype(float)\n", - "gap_25_ram = df_gap25_ram['avgTimeTagCheckResRd'].astype(float)\n", - "gap_25_prob[len(gap_25_prob)] = statistics.geometric_mean(df_gap25_ram_prob['avgTimeTagCheckResRd'].astype(float))\n", - "gap_25_ram[len(gap_25_ram)] = statistics.geometric_mean(df_gap25_ram['avgTimeTagCheckResRd'].astype(float))\n", - "\n", - "npb_C_prob = df_npbC_ram_prob['avgTimeTagCheckResRd'].astype(float)\n", - "npb_C_ram = df_npbC_ram['avgTimeTagCheckResRd'].astype(float)\n", - "npb_C_prob[len(npb_C_prob)] = statistics.geometric_mean(df_npbC_ram_prob['avgTimeTagCheckResRd'].astype(float))\n", - "npb_C_ram[len(npb_C_ram)] = statistics.geometric_mean(df_npbC_ram['avgTimeTagCheckResRd'].astype(float))\n", - "\n", - "\n", - "\n", - "npb_D_prob = df_npbD_ram_prob['avgTimeTagCheckResRd'].astype(float)\n", - "npb_D_ram = df_npbD_ram['avgTimeTagCheckResRd'].astype(float)\n", - "npb_D_prob[len(npb_D_prob)] = statistics.geometric_mean(df_npbD_ram_prob['avgTimeTagCheckResRd'].astype(float))\n", - "npb_D_ram[len(npb_D_ram)] = statistics.geometric_mean(df_npbD_ram['avgTimeTagCheckResRd'].astype(float))\n", - "\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,220])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_22_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, gap_22_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_C_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, npb_C_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Tag Comparison Latency (ns)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,220])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_25_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Probe' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, gap_25_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_D_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, npb_D_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Tag Comparison Latency (ns)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_308484/1065878878.py:27: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_308484/1065878878.py:30: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n", - "/tmp/ipykernel_308484/1065878878.py:64: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_308484/1065878878.py:67: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAnRklEQVR4nO3de5xVdb3/8dc7REeRS14Pgjh4KRVRUBQ9oI5geQtRCwLzwskkCyotT2n60+xY2kXRtOyAcjAviZcQVEzLQEBTAUOuYigoQyRgCmJeuHx+f6w142ac2bNnz+y57Hk/H4/9mL2+e+31/ax9WfPZ3/Vd368iAjMzM7Ni8qmmDsDMzMysoTnBMTMzs6LjBMfMzMyKjhMcMzMzKzpOcMzMzKzoOMExMzOzolOwBEdSiaQXJL0kaZGka9Ly7pKel7RM0kRJ26flO6TLy9LHSwsVm5mZmRW3QrbgfAgMiIjDgF7AyZKOBn4GjImI/YG3gQvS9S8A3k7Lx6TrmZmZmdVZwRKcSGxMF9umtwAGAA+m5XcCZ6T3B6fLpI8PlKRCxWdmZmbFa7tCblxSG2AusD/wa+BV4J2I2JyuUg50Se93AVYCRMRmSeuBXYF1VbY5EhgJ0K5duyMOPPDAQu6CmeVg6dKlAHz2s59t4kjMrLWZO3fuuojYvWp5QROciNgC9JLUCZgE1DsbiYixwFiAPn36xJw5c+q7STOrp7KyMgCmT5/epHGYWesj6fXqyhvlKqqIeAeYBhwDdJJUkVh1BVal91cBewOkj3cE3mqM+MzMzKy4FPIqqt3Tlhsk7Qh8DlhCkuh8KV3tfGByen9Kukz6+F/CM4GamZlZHgp5iqozcGfaD+dTwP0R8aikxcB9kq4F/gbcka5/B3CXpGXAv4BhBYzNzMzMiljBEpyImA/0rqb8NeCoaso/AIbUt95NmzZRXl7OBx98UN9NmVkNSkpK6Nq1K23btm3qUMzMqlXQTsZNoby8nPbt21NaWoqvMjdreBHBW2+9RXl5Od27d2/qcMzMqlV0UzV88MEH7Lrrrk5uzApEErvuuqtbSc2sWSu6BAdwcmNWYP6OmVlzV3SnqDIdffUTDbKd5645qcbH1q9fz+DBgwGYN28eBx10EDvssAPr1q2jffv2tGnThojgwgsvZMSIEQB0796dffbZhy1btlBaWsqECRNo06YNAD/96U8ZN24cr732WuU/ke7duzNw4EBuv/12AO666y7OO+88li9fTmlp6TbxZNt2hWuvvZauXbtWxlNhxIgRvPTSS3To0IGdd96Ze+65h06dOtX6+kyYMIHy8nKuvPLKWtfNx+kPn9Yg25lyxmM1Ptbc3sf999+fZcuWNch+V8h8ny6++GKuuOIKdt/9E2NjmZkVhaJswWlMHTt2ZPr06UyfPp1evXrxwAMPMH36dHbbbTceeOABZs2axWOPPcaECROYNm0aAG3atGH69OnMnDmTtm3b8uSTT1Zu79FHH2XAgAE888wzlWVt2rThjTfe4MMPPwTgwQcf5Igjjqg2nmzbzsUtt9zC008/Tb9+/fjtb3+7zWNbtmyp07Zakub2PhbaTTfd5OTGzIqaE5xG0KlTJ6644gruvffebcq3bt3KO++8Q8VwP3/729/o0aMH3/jGN7j77ru3WfeUU07hscceY82aNbRt27bWlpWq254xYwa9e/dm0KBBPP/887XGfPjhh/P6668zYcIEhgwZwhlnnMHNN9/MuHHj6Nu3L3379mX8+PGV6z///PMMGjSI3r17M3PmzFxelhansd/HSy65hOOPP55zzjmHrVu3sm7dOgYOHEhZWRn9+vXjlVdeAeDSSy/lmGOO4YQTTmDixIlAkqgee+yxHHPMMZUtRpnKysooLy9nxYoVHHHEEZxzzjkcfvjh3HTTTUDSojV06FAGDhzIgAEDGrw1ycys0JzgNJK9996bVauSQZu3bNlCWVkZpaWlbNmyhZNOSk6B3XPPPZx//vn06dOHxYsXs2nTpsrnDxs2jIkTJzJx4kSGDh1aYz01bfu73/0ukydPZsqUKZUtCNk8+eST9OjRA4CNGzcyadIkzj33XG699VZmzpzJzJkzufnmm1m7di2QXJ7/yCOPMGnSJC655JL8XqQWoLHex82bNzN06FCefvppdtxxR6ZMmULHjh15/PHHmT59OldeeSXXX389AI8//jgzZ85k2rRpDBkyhCVLlvDHP/6RGTNmMGvWLMaPH89bb9U8KPjq1asZO3Yszz77LDfffDMA1113HWeddRZPPfUUY8aM4bLLLqv3a2dm1pic4DSSlStX0qVLMq9oxamNBQsWsHbtWt555x22bt3K5MmTufbaazn55JNZs2YNU6dOrXx+586d2bhxI/fddx+DBg2qLL/11lspKyvja1/7Wo3bBtiwYQPdunVDEkcdlQxDNGvWLMrKyigrK2PjxmTi929961scf/zxvP/++5XbPProo5HEa6+9Rs+ePdl+++3Zfvvt6dmzJ8uXLwfgyCOPBKC0tJT169cX8JVsWo31Pma+T3379mXp0qW88847nHPOORx33HFcc801rFy5EoDrr7+er371q4wYMYIlS5awcOFCFi9ezAknnMDAgQPZsGFD5brVOeigg9hpp50oKSmp7EO0YMECbr75ZsrKyvjOd75T+TkyM2spirqTcXOxfv16rrvuuk90wu3YsSMXXXQRP/vZzzjppJMYPHgwv/zlLwF49dVXufzyyys7vgKMGjWKxYsXs+OOO1aWjR49mtGjR3+izsxt//znP6d9+/aUl5fTtWtXZs+ezf7770///v0/MTniLbfcQv/+/bcpq/in1717d+bPn89HH30EJP8Eu3fvzuLFi5k7dy4Ab7zxBh06dMjzlWreGvN9jAjmzJlD3759mT17NieffDJ33303vXv35vLLL2fq1KnceOONRAQnnngigwYNYtasWVx11VVcc8019O7dm4ceeghJbNq0ibZt2zJv3rxq96u6K6J69OjBMcccw5lnnglQ+Z6bmbUUTnAKaMiQIbRp04atW7fy1a9+lQEDBnxinWHDhtGzZ0/WrVvH2WefXVm+3377sWTJEjZs2FBZduqpp3LqqafmXH/Ftn/4wx9yww03MGjQIPbaay/at2+f1/7ssccefPOb36xMgEaPHl3ZUXWnnXbitNNO4x//+AdjxozJa/vNVVO8j9tttx0PPfQQ3//+9+nSpQunn346L7/8MmeffTYzZsyoPH24efNmTjnlFCAZA+qqq67ikEMO4cQTT+T444+nTZs2lae46uKKK67goosu4pZbbiEiOO2007j00kvrtA0zs6akljyfZZ8+fWLOnDnblC1ZsoSDDjqoiSIyaz0yv2tlZWUAn2gRNDMrNElzI6JP1XL3wTEzM7Oi4wTHzMzMik5RJjgt+bSbWUvg75iZNXdFl+CUlJTw1ltv+QBsViAVs4mXlJQ0dShmZjUququounbtSnl5eeUAdGbW8EpKSujatWtTh2FmVqOsCY6kEuALwLHAXsD7wELgsYhYVPjw6q5t27Z07969qcMwMzOzJlRjgiPpGpLkZjrwPLAGKAE+A1yfJj/fi4j5jRCn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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAmRklEQVR4nO3de7yVc97/8ddbotCBxJ1COYxDGkXEr4xUxmkSbqUcux0apmbGaebW8GPcY4aZQYxMfkV3xjGnFGLQlMoMKqKTSEWlEKOcO31+f1zX3pZtH9bee619WL2fj8d+rHV9r8P3c63DtT/r+72u66uIwMzMzKyQbFHbAZiZmZnlmhMcMzMzKzhOcMzMzKzgOMExMzOzguMEx8zMzAqOExwzMzMrOHlLcCQ1kvSKpNclzZN0bVreTtLLkhZJGitpq7R863R6UTq/bb5iMzMzs8KWzxacb4AeEXEg0BE4VtJhwB+BYRGxF/Bv4Lx0+fOAf6flw9LlzMzMzCotbwlOJD5PJxumfwH0AB5Jy+8GTkqf90mnSef3lKR8xWdmZmaFa8t8blxSA2AWsBdwO/AO8GlEbEgXWQ60Tp+3BpYBRMQGSWuAFsDqEtscBAwC2HbbbQ/ed99987kLZpaFhQsXArDPPvvUciRmtrmZNWvW6ohoWbI8rwlORGwEOkpqDowDqp2NRMRIYCRA586dY+bMmdXdpJlVU/fu3QGYMmVKrcZhZpsfSe+WVl4jV1FFxKfAZOBwoLmkosSqDbAifb4C2BUgnd8M+Lgm4jMzM7PCks+rqFqmLTdIagwcDSwgSXROTRc7BxifPp+QTpPO/0d4JFAzMzOrgnx2UbUC7k7Pw9kCeCginpQ0H3hQ0nXAa8Bd6fJ3AfdIWgR8AvTPY2xmZmZWwFSfG0lKOwdn/fr1LF++nK+//rqWojLb/KxatYqIoF27drRp04aGDRvWdkhmtpmQNCsiOpcsz+tJxrVh+fLlNGnShLZt2+KrzM1qxhZbbEFE0KRJE5YvX067du1qOyQz28wV3FANX3/9NS1atHByY1bDJNGiRQu3nppZnVBwCQ7g5Maslvi7Z2Z1RcF1UWU67Jq/52Q7L117TJnz1qxZQ58+fQCYPXs2++23H1tvvTWrV6+mSZMmNGjQgIjgggsuYODAgQC0a9eO3XffnY0bN9K2bVvGjBlDgwYNAPjDH/7AqFGjWLx4cfE/i3bt2tGzZ0/uvPNOAO655x7OPvtslixZQtu2bb8TT3nbLnLdddfRpk2b4niKDBw4kNdff52mTZuy3Xbbcd9999G8efMKX58xY8awfPlyrrrqqgqXzaUTHz8hJ9uZcNJTZc6ra+/vXnvtxaJFi3Ky30Uy37+LL76YK6+8kpYtv3fPLDOzeqUgW3BqUrNmzZgyZQpTpkyhY8eOPPzww0yZMoUdd9yRhx9+mOnTp/PUU08xZswYJk+eDECDBg2YMmUK06ZNo2HDhjz77LPF23vyySfp0aMHL774YnFZgwYNeO+99/jmm28AeOSRRzj44INLjae8bWfjtttu44UXXqBr167ccccd35m3cePGSm2rENS19zffbrnlFic3ZlYQnODUgObNm3PllVdy//33f6d806ZNfPrppxRdyfbaa6/Rvn17LrroIu69997vLHvcccfx1FNP8eGHH9KwYcMKW1ZKbnvq1Kl06tSJ3r178/LLL1cY80EHHcS7777LmDFj6Nu3LyeddBK33noro0aNokuXLnTp0oXRo0cXL//yyy/Tu3dvOnXqxLRp0wCYM2cOvXr1okePHvTr14+vvvqqwnrro5p+fy+55BKOPPJIzjzzTDZt2sTq1avp2bMn3bt3p2vXrrz11lsAXH755Rx++OEcddRRjB07FkgS2COOOILDDz+8uMUoU/fu3Vm+fDlLly7l4IMP5swzz+Sggw7illtuAZIWrX79+tGzZ0969OiR89YkM7NccYJTQ3bddVdWrEhu2rxx40a6d+9O27Zt2bhxI8cck3SB3XfffZxzzjl07tyZ+fPns379+uL1+/fvz9ixYxk7diz9+vUrs56ytn3ppZcyfvx4JkyYUNxSUJ5nn32W9u3bA/D5558zbtw4zjrrLIYPH860adOYNm0at956Kx999BGQXJ7/xBNPMG7cOC655BIABg8ezOjRo/nHP/5B165dueuuu8qsr76rqfd3w4YN9OvXjxdeeIHGjRszYcIEmjVrxtNPP82UKVO46qqruOGGGwB4+umnmTZtGpMnT6Zv374sWLCAZ555hqlTpzJ9+nRGjx7Nxx+XfbPwlStXMnLkSP75z39y6623AnD99ddzyimnMGnSJIYNG8YVV1xR7dfOzCwfCvocnLpk2bJltG6djCta1IWxZs0ajjvuOD799FO23357xo8fz9y5cwH48MMPmThxYvH5H61ateLzzz/nwQcf5Pnnn2fkyJEADB8+nEceeYS99tqLO++8s9Rtt2jRgrVr17LbbrsBcOihhwIwffr04vNmnnzySQB+/vOf07RpU/bff3/OP/98HnzwQQ477DAksXjxYjp06MBWW20FQIcOHViyZAkAhxxyCABt27ZlzZo1AMybN4+zzz4bSK5u69WrVx5f4dpVU++vpOL3r0uXLixcuJCuXbsyePBgVq1axbp162jSpAkAN9xwA+eeey5bbLEFv/rVr5g/fz7z58/nqKOOAmDt2rUsW7aszH3ab7/92GabbYr3CZJWuRdeeKG4+3LLLX0IMbO6yUenGrBmzRquv/76752E26xZMy688EL++Mc/cswxx9CnTx9uvPFGAN555x2GDh1a/A8QkhaR+fPn07hx4+KyIUOGMGTIkO/VmbntP/3pT8X3J2nTpg0zZsxgr732olu3bt8bHPG2226jW7du3ykr+ufWrl073njjDdatWwck/+zatWvH/PnzmTVrFgDvvfceTZs2BeCAAw7ggQceoFWrVgDF6xWamnx/I4KZM2fSpUsXZsyYwbHHHsu9995Lp06dGDp0KBMnTuTmm28mIujVqxe9e/dm+vTpXH311Vx77bV06tSJRx99FEmsX7+ehg0bMnv27FL3q7Qrotq3b8/hhx/OySefDBTue2pm9Z8TnDzq27cvDRo0YNOmTZx77rn06NHje8v079+fDh06sHr1ak4//fTi8j333JMFCxawdu3a4rLjjz+e448/Puv6i7b9m9/8hptuuonevXuzyy67FP/Cr6yddtqJn/3sZ8UJ0JAhQ4pPSN1mm2044YQTeP/99xk2bBgAt99+OwMHDizuihk6dChHH310lequi2rj/d1yyy159NFH+fWvf03r1q058cQTefPNNzn99NOZOnVqcbfihg0bOO6444Ck9ezqq6/mgAMOoFevXhx55JE0aNCguIurMq688kouvPBCbrvtNiKCE044gcsvv7xS2zAzqwkFN1TDggUL2G+//WopIrPN08KFCwHYZ599/B00sxpV1lANPsnYzMzMCo67qMzMrOBkeyPQ8m70afVbQbbg1OduN7P6zN89M6srCi7BadSoER9//LEPtGY1LCL4+OOPadSoUW2HYmZWeF1Ubdq0Yfny5cU3oDOz/Fu1ahURwdZb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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = df_gap22_ram_prob['avgPktRespTimeRd'].astype(float)\n", - "gap_22_ram = df_gap22_ram['avgPktRespTimeRd'].astype(float)\n", - "gap_22_prob[len(gap_22_prob)] = statistics.geometric_mean(df_gap22_ram_prob['avgPktRespTimeRd'].astype(float))\n", - "gap_22_ram[len(gap_22_ram)] = statistics.geometric_mean(df_gap22_ram['avgPktRespTimeRd'].astype(float))\n", - "\n", - "\n", - "gap_25_prob = df_gap25_ram_prob['avgPktRespTimeRd'].astype(float)\n", - "gap_25_ram = df_gap25_ram['avgPktRespTimeRd'].astype(float)\n", - "gap_25_prob[len(gap_25_prob)] = statistics.geometric_mean(df_gap25_ram_prob['avgPktRespTimeRd'].astype(float))\n", - "gap_25_ram[len(gap_25_ram)] = statistics.geometric_mean(df_gap25_ram['avgPktRespTimeRd'].astype(float))\n", - "\n", - "npb_C_prob = df_npbC_ram_prob['avgPktRespTimeRd'].astype(float)\n", - "npb_C_ram = df_npbC_ram['avgPktRespTimeRd'].astype(float)\n", - "npb_C_prob[len(npb_C_prob)] = statistics.geometric_mean(df_npbC_ram_prob['avgPktRespTimeRd'].astype(float))\n", - "npb_C_ram[len(npb_C_ram)] = statistics.geometric_mean(df_npbC_ram['avgPktRespTimeRd'].astype(float))\n", - "\n", - "\n", - "\n", - "npb_D_prob = df_npbD_ram_prob['avgPktRespTimeRd'].astype(float)\n", - "npb_D_ram = df_npbD_ram['avgPktRespTimeRd'].astype(float)\n", - "npb_D_prob[len(npb_D_prob)] = statistics.geometric_mean(df_npbD_ram_prob['avgPktRespTimeRd'].astype(float))\n", - "npb_D_ram[len(npb_D_ram)] = statistics.geometric_mean(df_npbD_ram['avgPktRespTimeRd'].astype(float))\n", - "\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,300])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_22_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, gap_22_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_C_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, npb_C_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Avg Rd Resp Time (ns) (ns)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,300])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_25_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Probe' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, gap_25_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_D_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, npb_D_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Avg Rd Resp Time (ns)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_308484/3412151829.py:27: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_308484/3412151829.py:30: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n", - "/tmp/ipykernel_308484/3412151829.py:64: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_308484/3412151829.py:67: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAnRElEQVR4nO3de5xd0/3/8ddbgriEoPhqEhKXFkGFEH6CSaJuaSR8iVCXNC5fLSVUlWqpfv1Q1aJ8yzcujboUdUsQt5/SoKRJCImkNCIkaVSCJEKCJJ/fH3tNHJOZM2dmzjkzc+b9fDzOY85eZ5+9Pvtc9nzO2muvpYjAzMzMrJKs0dwBmJmZmRWbExwzMzOrOE5wzMzMrOI4wTEzM7OK4wTHzMzMKo4THDMzM6s4JUtwJN0q6X1JU3PKNpb0lKR/pr8bpXJJ+p2kGZJek7RbznNOTOv/U9KJpYrXzMzMKkcpW3BGAQfXKDsfeDoitgOeTssAhwDbpdupwA2QJUTAxUBvYE/g4uqkyMzMzKwuJUtwImIc8GGN4kHAben+bcDgnPI/RuYloJOkLYCDgKci4sOI+Ah4itWTJjMzM7OvaF/m+jaPiHnp/nvA5ul+Z2B2znpzUlld5auRdCpZ6w/rrbfe7ttvv30RwzazQr3xxhsAfPOb32zmSMysLZg0adKCiNi0Znm5E5xVIiIkFW2eiIgYCYwE6NWrV0ycOLFYmzazBqiqqgLg2WefbdY4zKxtkPRObeXlvorq3+nUE+nv+6l8LtA1Z70uqayucjMzM7M6lTvBGQNUXwl1IjA6p/yEdDXVXsCidCrrCeBASRulzsUHpjIzMzOzOpXsFJWkPwFVwNckzSG7GuoK4F5JJwHvAEPS6mOBQ4EZwKfA9wAi4kNJ/w1MSOv9MiJqdlw2MzMz+4qSJTgRcUwdD/WvZd0ATq9jO7cCtzY1ni+++II5c+awbNmypm7KzPLYaaedmDp1av0rmpmVULN1Mi63OXPm0LFjR7p164ak5g7HrCItXbqUAw880AmOmTW7NjNVw7Jly9hkk02c3JiVUIcOHejYsWNzh2Fm1nYSHMDJjVmJ+TtmZi1FmzlFlWuvi4tzIdZLlxyU9/FFixYxaNAgACZPnswOO+zA2muvzYIFC+jYsSPt2rUjIjjllFMYNmwYAN27d2errbZixYoVdOvWjVGjRtGuXTsALrvsMm666SZmzpy56h9J9+7d6d+/PzfffDMAt99+OyeccAJvv/023bp1+0o8+bZd7dJLL6VLly6r4qk2bNgwXn31VTbYYAPWX3997rzzTjp16lTvazRq1CjmzJnDz372s3rXbajDHhpQlO2MGfxonY+1tPdw2223ZcaMGUXZ72q579GIESO48MIL2XTT1cbMMjNrVdpkglMuG2644arBzqqqqrjjjjvo0qXLV+4vXLiQwYMHs9VWW9G3b1/atWu36jnDhw/nySef5JBDDgHgkUceoV+/frzwwgv06dMHgHbt2vHuu+/y2Wefsfbaa3Pfffex++671xpPvm0X4rrrrqNPnz5cdtll3HjjjZx//vmrHluxYsVqyVIlaGnvYaldc801zVKvVb5Cf5Dk+8Fh1hBt6hRVS9SpUycuvPBC7rrrrq+Ur1y5koULF5JdYAavvPIKPXr04Pvf/z533HHHV9Y95JBDePTRR3n//fdZc801621ZqbntcePG0bNnTwYOHMj48ePrjXm33XbjnXfeYdSoURx11FEMHjyYa6+9lptuuonevXvTu3dvbr31ywvfxo8fz8CBA+nZsyfPPfdcIS9Lq1Lu9/Dss89m//3357jjjmPlypUsWLCA/v37U1VVxT777MObb74JwLnnnsvee+9N3759ueeee4AsSd13333Ze++9V7UY5aqqqmLOnDnMmjWL3XffneOOO47ddtttVeKzaNEihgwZQv/+/enXr1/RW5PMzIrFLTgtQNeuXZk7NxugecWKFVRVVTFz5kx69uzJQQdlp8HuvPNOTjzxRHr16sU555zDF198wZprrgnA0KFDGTFiBHPnzmXIkCGMHDmy1nrq2vY555zD6NGj6dq166qyfJ588kl69OgBwJIlSxg7diwLFizggAMOYMKEbMiiPfbYg4EDBwLZJfqPP/44s2bN4sgjj6QSp9Eo13u4fPlyhgwZwtVXX80pp5zCmDFjGDBgAI899hhrrbUWjz32GFdccQW33norjz32GK+++irt27dn5cqVTJ8+nccff5xx48axcuVK9t13Xw4//PA692nevHk899xzrLHGGuywww6MGDGCyy+/nCOOOIKhQ4fy6quvcv7553PfffcV+dW01qTQU/6b9SxxIGY1uAWnBZg9ezadO2dziFaf3pgyZQrz589n4cKFrFy5ktGjR3PppZdy8MEH8/777zN27NhVz99iiy1YsmQJd99996qkAuD666+nqqqKk08+uc5tAyxevJgtt9wSSey5554APP/881RVVVFVVcWSJUsA+OEPf8j+++/P0qVLV21zr732QhIzZ85k5513Zq211mKttdZi55135u233wayZAegW7duLFq0qISvZPMp13uY+x717t2bN954g4ULF3Lcccex3377cckllzB7djY/7RVXXMHw4cMZNmwY06dPZ+rUqUybNo2+ffvSv39/Fi9evGrd2uywww6su+66dOjQYdXpxylTpnDttddSVVXFWWedteozZGbW0rgFp5ktWrSIyy+/fLVOuBtuuCGnnXYav/rVrzjooIMYNGgQV111FQBvvfUWF1xwwarOrwCnn34606ZNY5111llVdsYZZ3DGGWesVmfutq+88ko6duzInDlz6NKlCxMmTGDbbbelT58+q02WWN0HJ1f1P77u3bvz2muv8fnnnwPZP8Lu3bszbdo0Jk2aBMC7777LBhts0MhXquUq53sYEUycOJHevXszYcIEDj74YO644w569uzJBRdcwNixY/ntb39LRHDAAQcwcOBAnn/+eS666CIuueQSevbsyf3334+kVS1IkydPrnW/arsiqkePHuy9996rWn6q328zs5bGCU4zOeqoo2jXrh0rV65k+PDh9OvXb7V1hg4dys4778yCBQs49thjV5Vvs802TJ8+ncWLF68qO/TQQzn00EMLrr962z/96U/5zW9+w8CBA/n617/e6DFMNttsM37wgx+sSoDOOOOMVVfirLvuugwYMIB//etfXH311Y3afkvUHO9h+/btuf/++znvvPPo3Lkzhx12GP/4xz849thjGTdu3KpTh8uXL1/VsXnZsmVcdNFF7LTTThxwwAHsv//+tGvXjnXWWYcxY8Y0aJ8vvPBCTjvtNK677joiggEDBnDuuec2aBtmZuWg6g6QlaRXr15Rs5/H9OnT2WGHHZopIrO245lnnuGSSy5ZrQXQKlPhfXB+V9B6vorKGkrSpIjoVbPcfXDMzMys4jjBMTMzs4rTphKcSjwdZ9aS+DtmZi1Fm0lwOnTowAcffOADsFkJLVu2jI8//ri5wzAzaztXUXXp0oU5c+Ywf/785g7FrKI9+eSTzR2CmVnbSXDWXHNNunfv3txhmFW8qVOnNncIZmb1JziSNgP2Ab4O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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAmdklEQVR4nO3deZhU1bnv8e9PQBFlUESDoELEG+eIokjAiIAxahDNFRyiQtR4NJJEjTEhejQmOYkax2iOXlQOxnkWVDQaIwIaOYCiKIjiSBOIYBTizPDeP/bqtoTuorq7qofq3+d5+qnaq3bt9e4adr+11tp7KSIwMzMzKycbNHYAZmZmZsXmBMfMzMzKjhMcMzMzKztOcMzMzKzsOMExMzOzsuMEx8zMzMpOyRIcSeMkvSvppZyyzSU9Lum1dLtZKpekP0paIOlFSXvmPGdkWv81SSNLFa+ZmZmVj1K24IwHvr1W2S+AJyJiB+CJtAxwMLBD+jsFuBayhAi4AOgL7ANcUJkUmZmZmdWkZAlOREwB/rVW8TDgpnT/JuDwnPI/R+ZZoJOkrsBBwOMR8a+IeB94nHWTJjMzM7Mvad3A9W0VEYvT/SXAVul+N2BhznoVqaym8nVIOoWs9YdNNtlkrx133LGIYZtZoebPnw/A1772tUaOxMxaglmzZi2LiC5rlzd0glMlIkJS0eaJiIixwFiAPn36xMyZM4u1aTOrhYEDBwIwefLkRo3DzFoGSW9XV97QZ1H9M3U9kW7fTeWLgG1y1uueymoqNzMzM6tRQyc4E4HKM6FGAhNyyk9IZ1PtCyxPXVl/Ab4labM0uPhbqczMzMysRiXropJ0OzAQ2EJSBdnZUBcBd0k6CXgbGJFWnwQcAiwAPga+DxAR/5L0G2BGWu/XEbH2wGUzMzOzL1FE0YbBNBnVjcFZuXIlFRUVfPrpp40UlVnLsGTJEgC+8pWvVJW1bduW7t2706ZNm8YKy8zKlKRZEdFn7fJGG2Tc0CoqKmjfvj09evRAUmOHY1a2Ntgg6/muPIsqInjvvfeoqKigZ8+ejRmambUgLWaqhk8//ZTOnTs7uTFrYJLo3LmzW0/NrEG1mAQHcHJj1kj83TOzhtZiuqhy7XtBcU7EevbCg/I+vnz5coYNGwbA7Nmz2Wmnndhoo41YtmwZ7du3p1WrVkQEP/jBDxg1ahQAPXv2ZLvttmP16tX06NGD8ePH06pVKwB+97vfcf311/PGG29U/cPo2bMngwcP5oYbbgDg5ptv5oQTTuDNN9+kR48eX4on37Yr/fa3v6V79+5V8VQaNWoUL7zwAh06dGDTTTfl1ltvpVOnTut9jcaPH09FRQXnnXfeetctlsMeOLQo25l4+MM1PtbU3ttevXqxYMGCoux3pdz37owzzuDcc8+lS5d1rqVlZtYktagWnIbWsWNHJk+ezOTJk9ljjz24++67mTx5MltssQV3330306ZN4+GHH2b8+PE8+eSTALRq1YrJkyczdepU2rRpw2OPPVa1vYceeohBgwbx9NNPV5W1atWKd955h88++wyAe+65h7322qvaePJtuxBXX301Tz31FP379+e666770mOrV6+u1baau6b23pbalVde6eTGzJoVJziNrFOnTpx77rncdtttXypfs2YNH3zwAZVnuT3//PPssssunHbaadxyyy1fWvfggw/m4Ycf5t1336VNmzbrbVlZe9tTpkyhd+/eDB06lOnTp6835j333JO3336b8ePHM3z4cA4//HCuuuoqrr/+evr27Uvfvn0ZN25c1frTp09n6NCh9O7dm6lTpwIwZ84chgwZwqBBgxgxYgSffPLJeuttbhr6vT3zzDPZf//9Oe6441izZg3Lli1j8ODBDBw4kP79+/Pqq68CcPbZZ9OvXz8OOOAA7rzzTiBLXvfbbz/69etX1WKUa+DAgVRUVPDWW2+x1157cdxxx7Hnnnty5ZVXAlmL1ogRIxg8eDAjR47k7bervbComVmDcYLTBGyzzTYsWpRdoHn16tUMHDiQHj16sHr1ag46KOsGu/XWWxk5ciR9+vRh7ty5rFy5sur5Rx99NHfeeSd33nknI0aMqLaOfNs+66yzmDBhAhMnTqxqLcjnscceY5dddgHgww8/5P777+f444/nmmuuYerUqUydOpWrrrqKpUuXAtkp+g8++CD3338/Z555JgCnn34648aN429/+xv9+/fnxhtvrMMr1/Q11Hu7atUqRowYwVNPPcXGG2/MxIkT6dixI4888giTJ0/mvPPO46KLLgLgkUceYerUqTz55JMMHz6cefPm8eijjzJlyhSmTZvGuHHjeO+992qsa/HixYwdO5ZnnnmGq666CoDf//73fPe73+WJJ55gzJgxXHbZZfV+7czM6qNFjsFp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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = df_gap22_ram_prob['avgPktRespTimeWr'].astype(float)\n", - "gap_22_ram = df_gap22_ram['avgPktRespTimeWr'].astype(float)\n", - "gap_22_prob[len(gap_22_prob)] = statistics.geometric_mean(df_gap22_ram_prob['avgPktRespTimeWr'].astype(float))\n", - "gap_22_ram[len(gap_22_ram)] = statistics.geometric_mean(df_gap22_ram['avgPktRespTimeWr'].astype(float))\n", - "\n", - "\n", - "gap_25_prob = df_gap25_ram_prob['avgPktRespTimeWr'].astype(float)\n", - "gap_25_ram = df_gap25_ram['avgPktRespTimeWr'].astype(float)\n", - "gap_25_prob[len(gap_25_prob)] = statistics.geometric_mean(df_gap25_ram_prob['avgPktRespTimeWr'].astype(float))\n", - "gap_25_ram[len(gap_25_ram)] = statistics.geometric_mean(df_gap25_ram['avgPktRespTimeWr'].astype(float))\n", - "\n", - "npb_C_prob = df_npbC_ram_prob['avgPktRespTimeWr'].astype(float)\n", - "npb_C_ram = df_npbC_ram['avgPktRespTimeWr'].astype(float)\n", - "npb_C_prob[len(npb_C_prob)] = statistics.geometric_mean(df_npbC_ram_prob['avgPktRespTimeWr'].astype(float))\n", - "npb_C_ram[len(npb_C_ram)] = statistics.geometric_mean(df_npbC_ram['avgPktRespTimeWr'].astype(float))\n", - "\n", - "\n", - "\n", - "npb_D_prob = df_npbD_ram_prob['avgPktRespTimeWr'].astype(float)\n", - "npb_D_ram = df_npbD_ram['avgPktRespTimeWr'].astype(float)\n", - "npb_D_prob[len(npb_D_prob)] = statistics.geometric_mean(df_npbD_ram_prob['avgPktRespTimeWr'].astype(float))\n", - "npb_D_ram[len(npb_D_ram)] = statistics.geometric_mean(df_npbD_ram['avgPktRespTimeWr'].astype(float))\n", - "\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,1000])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_22_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, gap_22_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_C_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, npb_C_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Avg Wr ORB Time (ns) (ns)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,1000])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_25_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Probe' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, gap_25_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_D_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, npb_D_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Avg Wr ORB time (ns)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_308484/1314087200.py:35: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_308484/1314087200.py:38: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n", - "/tmp/ipykernel_308484/1314087200.py:72: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_308484/1314087200.py:75: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAlkklEQVR4nO3de5xd873/8de7I8Ql4ri1mogZl1/rEhWGyAk1Ej2uoVUURUNRKnVrTlvlUD1OqVLyi5YTmqYqSBUVhPJTkYTSJIRIIg5CM6SHpJU0rUsun98fa+2xM2b2rJnZay573s/HYz9mr+9ae30/+7bms7/r+11fRQRmZmZmleQTnR2AmZmZWbk5wTEzM7OK4wTHzMzMKo4THDMzM6s4TnDMzMys4jjBMTMzs4qTW4IjaVtJj0uaL2mepPOa2KZO0nJJc9LbpXnFY2ZmZj3HejnuezXw7Yh4VlIfYLakRyNifqPtpkfEETnGYWZmZj1Mbi04EbEkIp5N7/8dWAD0y6s+MzMzs4I8W3AaSKoGBgHPNLF6iKTngbeA0RExr4nHnwmcCbDxxhvv9dnPfjbHaM0sq4ULFwLwmc98ppMjMbOeavbs2UsjYqvG5cp7qgZJmwBPAP8VEfc0WrcpsDYiVko6DBgTETuV2l9tbW3MmjUrv4DNLLO6ujoApk6d2qlxmFnPJWl2RNQ2Ls91FJWkXsDdwMTGyQ1ARKyIiJXp/SlAL0lb5hmTmZmZVb48R1EJ+AWwICJ+2sw2n0q3Q9I+aTzL8orJzMzMeoY8++AMBU4G5kqak5Z9HxgAEBE3AccAZ0taDbwHHB+e3tzMzMzaKbcEJyJmAGphmxuAG9pb16pVq6ivr+f9999v767MrBm9e/emf//+9OrVq7NDMTNrUYeMospbfX09ffr0obq6mvSMl5mVUUSwbNky6uvrqamp6exwzMxaVBFTNbz//vtsscUWTm7MciKJLbbYwq2kZtZtVESCAzi5McuZv2Nm1p1UxCmqYvte9vuy7Ofpyw9udt3y5cs56qijAJgzZw4777wzG2ywAUuXLqVPnz5UVVUREZxxxhmMHDkSgJqaGrbbbjvWrFlDdXU1EyZMoKqqCoAf/ehH3Hzzzbz22msN/0RqamoYPnw4t9xyCwC//vWvOeWUU1i0aBHV1dXrxFNq3wVXXHEF/fv3b4inYOTIkTz//PNsuummbLLJJkycOJHNNtusxddnwoQJ1NfXc8kll7S4bVsc+bvDy7KfyV98sNl1Xe193HHHHXnllVfK8rwLit+n888/n4svvpittvrY9bDMzCpOxbTgdKS+ffsydepUpk6dyh577MFdd93F1KlT2XLLLbnrrruYMWMGDz74IBMmTODxxx8HoKqqiqlTpzJ9+nR69erFI4880rC/Bx54gGHDhvHkk082lFVVVfHnP/+ZDz74AIDf/va37LXXXk3GU2rfWYwdO5YnnniCoUOHctNNN62zbs2aNa3aV3fS1d7HvF1//fVObsysx3CCk5PNNtuMiy++mNtvv32d8rVr1/Luu+9SGA3/3HPPseuuu3L22Wdz2223rbPtoYceyoMPPsjbb79Nr169WmxZabzvadOmMWjQIEaMGMEzzzQ1S8a69txzT9544w0mTJjAscceyxe/+EXGjBnDzTffzODBgxk8eDDjx49v2P6ZZ55hxIgRDBo0iOnTp2d5Wbqdjn4fL7jgAg444ABOOukk1q5dy9KlSxk+fDh1dXUMHTqUl19+GYDRo0czZMgQDjzwQCZNmgQkier+++/PkCFDGlqMitXV1VFfX8/rr7/OXnvtxUknncSee+7J9ddfDyQtWscddxzDhw9n2LBhZW9NMjPrSE5wcrTtttvy5ptvAklLSF1dHdXV1axZs4aDD05OgU2cOJGvfe1r1NbWMn/+fFatWtXw+OOPP55JkyYxadIkjjvuuGbraW7fF154Iffddx+TJ09uaEEo5ZFHHmHXXXcFYOXKldx7772cfPLJ3HDDDUyfPp3p06czZswY3nnnHSAZnn///fdz7733csEFF7TtReoGOup9XL16NccddxxPPPEEG264IZMnT6Zv37489NBDTJ06lUsuuYSrrroKgIceeojp06fz+OOPc+yxx7JgwQIefvhhpk2bxowZMxg/fjzLljV/zcwlS5Ywbtw4nnrqKcaMGQPAlVdeydFHH81jjz3Gddddx/e+9712v3ZmZp3FCU6OFi9eTL9+yQTqhVMbc+fO5Z133uHdd99l7dq13HfffVxxxRUccsghvP3220yZMqXh8dtssw0rV67kzjvvZMSIEQ3lN9xwA3V1dZx++unN7htgxYoVDBgwAEnss88+AMyYMYO6ujrq6upYuXIlAN/61rc44IADeO+99xr2ue+++yKJ1157jYEDB7L++uuz/vrrM3DgQBYtWgTA3nvvDUB1dTXLly/P8ZXsXB31Pha/T4MHD2bhwoW8++67nHTSSXz+85/n8ssvZ/HixQBcddVVnHbaaYwcOZIFCxbw4osvMn/+fA488ECGDx/OihUrGrZtys4778xGG21E7969G/oQzZ07lzFjxlBXV8d5553X8DkyM+uOKq6TcVexfPlyrrzyyo91wu3bty9nnXUWP/7xjzn44IM56qijuOaaawB49dVXueiiixo6vgKcc845zJ8/nw033LChbNSoUYwaNepjdRbv++qrr6ZPnz7U19fTv39/Zs6cyY477sh+++33sYkRx44dy3777bdOWeGfXk1NDS+88AIffvghkPwTrKmpYf78+cyePRuAP//5z2y66aZtfKW6to58HyOCWbNmMXjwYGbOnMkhhxzCbbfdxqBBg7jooouYMmUKP/3pT4kIDjroIEaMGMGMGTO49NJLufzyyxk0aBB33303kli1ahW9evVizpw5TT6vpkZE7brrrgwZMoQvfelLAA3vuZlZd+QEp8yOPfZYqqqqWLt2LaeddhrDhg372DbHH388AwcOZOnSpZx44okN5TvssAMLFixgxYoVDWWHHXYYhx12WOb6C/v+/ve/z7XXXsuIESP49Kc/TZ8+fdr0fLbeemu++c1vNiRAo0aNauioutFGG3H44Yfz1ltvcd1117Vp/11VZ7yP6623HnfffTff+c536NevH0ceeSQvvfQSJ554ItOmTWs4fbh69WoOPfRQILkG1KWXXspuu+3GQQcdxAEHHEBVVVXDKa7WuPjiiznrrLMYO3YsEcHhhx/O6NGjW7UPM7OuQt1t6qfa2tqYNWvWOmULFixg55137qSIzHqOxt+1uro6gI+1CpqZdRRJsyOitnG5++CYmZlZxXGCY2ZmZhWnYhKc7naqzay78XfMzLqTikhwevfuzbJly3wANstJYTbx3r17d3YoZmaZtDiKStJGwLeBARFxhqSdgM9ExAO5R5dR//79qa+vb7gAnZmVX+/evenfv39nh2FmlkmWYeK/BGYDQ9LlN4G7gC6T4PTq1YuamprODsPMzMy6iCynqHaIiKuBVQAR8U/g41cJMzMzM+sisiQ4H0raEAgASTsALU9sZGZmZtZJspyiugx4GNhW0kRgKDAyz6DMzMzM2qPFBCciHpX0LLAv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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAlhElEQVR4nO3de5xd873/8de7IySI5Li1KmLG5dG6RIUQOaFGonUNqiiKhqIuaV2ao1UO1ePUpW45ScsJTVN1S9UtCOWnIgmqSTSEBAehGdKStJKmbrl8fn+stcfOmNmzZmavuex5Px+P/Zi9vmvt9f3s25rP/q7v+n4VEZiZmZlVks90dABmZmZm5eYEx8zMzCqOExwzMzOrOE5wzMzMrOI4wTEzM7OK4wTHzMzMKk5uCY6kLSQ9LmmepBclndXINrWSlkqak94uyiseMzMz6z7WynHfK4HvR8SzknoDsyU9GhHzGmw3PSIOzjEOMzMz62Zya8GJiEUR8Wx6/5/AfGDzvOozMzMzK8izBaeepGpgIPBMI6uHSHoOeBsYHREvNvL4U4FTAdZbb71dv/jFL+YYrZll9fLLLwPwhS98oYMjMbPuavbs2YsjYpOG5cp7qgZJ6wNPAP8dEXc3WLcBsDoilks6EBgTEduW2t+gQYNi1qxZ+QVsZpnV1tYCMHXq1A6Nw8y6L0mzI2JQw/Jcr6KS1AO4C7i1YXIDEBHLImJ5en8K0EPSxnnGZGZmZpUvz6uoBPwSmB8R1zSxzefS7ZC0exrPkrxiMjMzs+4hzz44Q4HjgbmS5qRlPwL6A0TEDcARwOmSVgIfAEeHpzc3MzOzNsotwYmIGYCa2WYcMK6tda1YsYK6ujo+/PDDtu7KzJrQs2dP+vXrR48ePTo6FLOSDrn3oEzbTT7swZwjsY7ULldR5a2uro7evXtTXV1NesbLzMooIliyZAl1dXXU1NR0dDhmZs2qiKkaPvzwQzbaaCMnN2Y5kcRGG23kVlIz6zIqIsEBnNyY5czfMTPrSiriFFWxPS7+fVn288dL9mty3dKlSzn00EMBmDNnDttttx3rrLMOixcvpnfv3lRVVRERnHLKKYwcORKAmpoattxyS1atWkV1dTUTJ06kqqoKgJ/+9KfceOONvP766/X/RGpqahg+fDg33XQTAL/5zW844YQTWLBgAdXV1WvEU2rfBZdeein9+vWrj6dg5MiRPPfcc2ywwQasv/763HrrrfTt27fZ12fixInU1dVx4YUXNrtta2Q9h96cUufYO9v7uM022/Dqq6+W5XkXFL9PZ599NhdccAGbbPKp8bDMzCpOxbTgtKc+ffowdepUpk6dys4778ydd97J1KlT2XjjjbnzzjuZMWMGDz74IBMnTuTxxx8HoKqqiqlTpzJ9+nR69OjBI488Ur+/Bx54gGHDhvHkk0/Wl1VVVfGXv/yFjz76CIDf/e537Lrrro3GU2rfWYwdO5YnnniCoUOHcsMNN6yxbtWqVS3aV1fS2d7HvF133XVObsys23CCk5O+fftywQUXcNttt61Rvnr1at577z0KV8P/+c9/ZocdduD000/nlltuWWPbAw44gAcffJB33nmHHj16NNuy0nDf06ZNY+DAgYwYMYJnnmlslow17bLLLrz55ptMnDiRI488ksMOO4wxY8Zw4403MnjwYAYPHsyECRPqt3/mmWcYMWIEAwcOZPr06Vleli6nvd/Hc845h7333pvjjjuO1atXs3jxYoYPH05tbS1Dhw7llVdeAWD06NEMGTKEffbZh0mTJgFJorrXXnsxZMiQ+hajYrW1tdTV1fHGG2+w6667ctxxx7HLLrtw3XXXAUmL1lFHHcXw4cMZNmxY2VuTzMzakxOcHG2xxRa89dZbQNISUltbS3V1NatWrWK//ZJTYLfeeivf+ta3GDRoEPPmzWPFihX1jz/66KOZNGkSkyZN4qijjmqynqb2fe6553LfffcxefLk+haEUh555BF22GEHAJYvX84999zD8ccfz7hx45g+fTrTp09nzJgxvPvuu0Byef7999/PPffcwznnnNO6F6kLaK/3ceXKlRx11FE88cQT9OrVi8mTJ9OnTx8eeughpk6dyoUXXsjll18OwEMPPcT06dN5/PHHOfLII5k/fz4PP/ww06ZNY8aMGUyYMIElS5oeM3PRokWMHz+ep556ijFjxgBw2WWXcfjhh/PYY49x7bXX8sMf/rDNr52ZWUdxgpOjhQsXsvnmyQTqhVMbc+fO5d133+W9995j9erV3HfffVx66aXsv//+vPPOO0yZMqX+8ZttthnLly/njjvuYMSIEfXl48aNo7a2lpNPPrnJfQMsW7aM/v37I4ndd98dgBkzZlBbW0ttbS3Lly8H4Lvf/S577703H3zwQf0+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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = df_gap22_ram_prob['simSeconds'].astype(float)/df_gap22_noDC['simSeconds'].astype(float)\n", - "gap_22_ram = df_gap22_ram['simSeconds'].astype(float)/df_gap22_noDC['simSeconds'].astype(float)\n", - "geo_meanC = df_gap22_ram_prob['simSeconds'].astype(float)/df_gap22_noDC['simSeconds'].astype(float)\n", - "geo_meanR = df_gap22_ram['simSeconds'].astype(float)/df_gap22_noDC['simSeconds'].astype(float)\n", - "gap_22_prob[len(gap_22_prob)] = statistics.geometric_mean(geo_meanC)\n", - "gap_22_ram[len(gap_22_ram)] = statistics.geometric_mean(geo_meanR)\n", - "\n", - "\n", - "gap_25_prob = df_gap25_ram_prob['simSeconds'].astype(float)/df_gap25_noDC['simSeconds'].astype(float)\n", - "gap_25_ram = df_gap25_ram['simSeconds'].astype(float)/df_gap25_noDC['simSeconds'].astype(float)\n", - "geo_meanC = df_gap25_ram_prob['simSeconds'].astype(float)/df_gap25_noDC['simSeconds'].astype(float)\n", - "geo_meanR = df_gap25_ram['simSeconds'].astype(float)/df_gap25_noDC['simSeconds'].astype(float)\n", - "gap_25_prob[len(gap_25_prob)] = statistics.geometric_mean(geo_meanC)\n", - "gap_25_ram[len(gap_25_ram)] = statistics.geometric_mean(geo_meanR)\n", - "\n", - "npb_C_prob = df_npbC_ram_prob['simSeconds'].astype(float)/df_npbC_noDC['simSeconds'].astype(float)\n", - "npb_C_ram = df_npbC_ram['simSeconds'].astype(float)/df_npbC_noDC['simSeconds'].astype(float)\n", - "geo_meanC = df_npbC_ram_prob['simSeconds'].astype(float)/df_npbC_noDC['simSeconds'].astype(float)\n", - "geo_meanR = df_npbC_ram['simSeconds'].astype(float)/df_npbC_noDC['simSeconds'].astype(float)\n", - "npb_C_prob[len(npb_C_prob)] = statistics.geometric_mean(geo_meanC)\n", - "npb_C_ram[len(npb_C_ram)] = statistics.geometric_mean(geo_meanR)\n", - "\n", - "\n", - "\n", - "npb_D_prob = df_npbD_ram_prob['simSeconds'].astype(float)/df_npbD_noDC['simSeconds'].astype(float)\n", - "npb_D_ram = df_npbD_ram['simSeconds'].astype(float)/df_npbD_noDC['simSeconds'].astype(float)\n", - "geo_mean = df_npbD_ram_prob['simSeconds'].astype(float)/df_npbD_noDC['simSeconds'].astype(float)\n", - "geo_mean = df_npbD_ram['simSeconds'].astype(float)/df_npbD_noDC['simSeconds'].astype(float)\n", - "npb_D_prob[len(npb_D_prob)] = statistics.geometric_mean(geo_meanC)\n", - "npb_D_ram[len(npb_D_ram)] = statistics.geometric_mean(geo_meanR)\n", - "\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,2.5])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_22_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, gap_22_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_C_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, npb_C_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Normalized Execution Time\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,2.5])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_25_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, gap_25_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_D_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, npb_D_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Normalized Execution Time\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAfFElEQVR4nO3debxVdb3/8de7I4oggwMaigqS15ESPU5XzKNWThHaT8zhqphDmpbDtSzrFw38SiuvebWLDzHDFBOHEBUv6TVOoiUKKoKgZeAAoUAFXhJF4fP7Y30Pbo77bM60Bxbv5+NxHnuv71p7r/fZwzqfs9Z3ra8iAjMzM7M8+Ui1A5iZmZl1Nhc4ZmZmljsucMzMzCx3XOCYmZlZ7rjAMTMzs9xxgWNmZma5U7YCR9ItkhZLml3QtpWkRyT9Od1umdol6T8lvSzpeUn7liuXmZmZ5V859+CMBY5u1vYN4NGI2BV4NE0DHAPsmn7OA0aXMZeZmZnlXNkKnIh4DPh7s+ZhwK3p/q3A8QXtv4rMk0BvSX3Llc3MzMzybZMKr2+7iFiU7r8BbJfu7wC8XrDcgtS2iGYknUe2l4fu3bvvt/vuu5cvrZl9yEsvvQTAbrvtVuUkZmYwY8aMpRHRp3l7pQuctSIiJLV5nIiIuAm4CaC+vj6mT5/e6dnMrGUNDQ0ANDY2VjWHmRmApFeLtVf6LKo3mw49pdvFqX0hsGPBcv1Sm5mZmVmbVbrAuR84M90/E5hY0H5GOpvqIGB5waEsMzMzszYp2yEqSb8GGoBtJC0ARgJXAXdJOht4FTgpLf4QcCzwMvA2cFa5cpmZmVn+la3AiYhTWph1ZJFlA7iwM9a7bNkyFi3yzp9a07dvX3r37l3tGGZmtpGoWifjclm6dCn9+/dn8803r3YUS1auXMnChQtd4JiZWcXkbqiG9957j65du1Y7hhXo2rUr7733XrVjmJnZRiR3BQ6ApGpHsAJ+P8zMrNJyd4iq0EEjf9spz/Pk945qcd7y5csZNmwYAM899xx77LEHm222GUuXLqVHjx7U1dUREZx77rmMGDECgAEDBrDzzjuzevVq+vfvz9ixY6mrqwPghz/8IWPGjGHevHlrC4MBAwZw5JFHcvPNNwNw2223ccYZZzB//nz69++/Tp5Sz91k1KhR9OvXb22eJiNGjGDmzJn07NmTLbbYgnHjxrXqsNLYsWNZsGAB3/72t9e7rJmZWSXkcg9OJfXq1YvGxkYaGxvZZ599uPvuu2lsbGSbbbbh7rvv5vHHH2fSpEmMHTuWKVOmAFBXV0djYyNTp06lS5cuPPzww2uf78EHH+SII47giSeeWNtWV1fHa6+9xrvvvgvAPffcw3777Vc0T6nnbo3rr7+e3//+9xxyyCHceOON68xbvXp1m57LzMysWlzgVEDv3r351re+xR133LFO+5o1a1i2bBnZSWTw7LPPstdee3HBBRdw++23r7PsMcccw6RJk1i8eDFdunRZ756V5s/92GOPMXjwYIYOHcq0adPWm3nffffl1VdfZezYsQwfPpzjjz+e6667jjFjxnDggQdy4IEHcsstt6xdftq0aQwdOpTBgwczderU1rwsZmZmZeMCp0J23HFHFi7MLs68evVqGhoa6N+/P6tXr+aoo7JDYOPGjePMM8+kvr6eOXPmrNMx9+STT2b8+PGMHz+ek046qeg6Sj33ZZddxsSJE7n//vvX7gkq5eGHH2avvfYCYMWKFUyYMIHTTz+dG264galTpzJ16lSuu+46lixZAmSdux944AEmTJjApZde2r4XyczMrJO4wKmQ119/nR122AH44DDSrFmzWLJkCcuWLWPNmjVMnDiRUaNGcfTRR7N48WIeeuihtY/v27cvK1as4M4772To0KFr22+44QYaGho455xzWnxugLfeeouddtoJSRxwwAEAPP744zQ0NNDQ0MCKFSsA+MpXvsJhhx3GypUr1z7nQQcdhCTmzZvHoEGD2HTTTdl0000ZNGgQ8+fPB2D//fcHoH///ixfvryMr6SZmdn6ucCpgOXLl/OjH/2IU05Z99qHvXr14vzzz+fqq69mypQpDBs2jMmTJzN58mQmTZrEuHHj1ln+wgsv5IQTTljnGj8XXXQRjY2NazsgF3tugB49erBgwQIAnn76aQCGDBmytv/QFltsAXzQB2f06NFrT7dv6qQ8YMAAnn/+eVatWsWqVauYNWsWAwYMAGDGjBkAvPbaa/Ts2bPjL5qZmVkH5PosqmobPnw4dXV1rFmzhi9+8YscccQRH1rm5JNPZtCgQSxdupRTTz11bfvAgQOZO3cub7311tq2Y489lmOPPbbV62967iuvvJJrrrmGoUOHsv3229OjR492/T7bbrstX/7ylxkyZAiQFVd9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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = 100* df_gap22_ram_prob['actDelayedDueToTagAct'].astype(float)/(df_gap22_ram_prob['numTotMisses'].astype(float)+df_gap22_ram_prob['numTotHits'].astype(float))\n", - "#gap_22_prob[len(gap_22_prob)] = statistics.geometric_mean(df_gap22_ram_prob['actDelayedDueToTagAct'].astype(float))\n", - "\n", - "\n", - "gap_25_prob = 100* df_gap25_ram_prob['actDelayedDueToTagAct'].astype(float)/(df_gap25_ram_prob['numTotMisses'].astype(float)+df_gap25_ram_prob['numTotHits'].astype(float))\n", - "#gap_25_prob[len(gap_25_prob)] = statistics.geometric_mean(df_gap25_ram_prob['actDelayedDueToTagAct'].astype(float))\n", - "\n", - "npb_C_prob = 100* df_npbC_ram_prob['actDelayedDueToTagAct'].astype(float)/(df_npbC_ram_prob['numTotMisses'].astype(float)+df_npbC_ram_prob['numTotHits'].astype(float))\n", - "#npb_C_prob[len(npb_C_prob)] = statistics.geometric_mean(df_npbC_ram_prob['actDelayedDueToTagAct'].astype(float))\n", - "\n", - "\n", - "\n", - "npb_D_prob = 100* df_npbD_ram_prob['actDelayedDueToTagAct'].astype(float)/(df_npbD_ram_prob['numTotMisses'].astype(float)+df_npbD_ram_prob['numTotHits'].astype(float))\n", - "#npb_D_prob[len(npb_D_prob)] = statistics.geometric_mean(df_npbD_ram_prob['actDelayedDueToTagAct'].astype(float))\n", - "\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "#app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "#app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,100])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_22_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_C_prob[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"ACT delayed (%)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "#app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "#app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,100])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_25_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Probe' if i==0 else None)\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_D_prob[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"ACT delayed (%)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "x1 = df_gap22_ram_prob['app']\n", - "y1 = 100 * df_gap22_ram_prob['noCandidBSlot'].astype(float)/(df_gap22_ram_prob['locMemReadBursts'].astype(float)+df_gap22_ram_prob['locMemWriteBursts'].astype(float))\n", - "y2 = 100 * df_gap22_ram_prob['foundCandidBSlotRH'].astype(float)/(df_gap22_ram_prob['locMemReadBursts'].astype(float)+df_gap22_ram_prob['locMemWriteBursts'].astype(float))\n", - "y3 = 100 * df_gap22_ram_prob['foundCandidBSlotRMC'].astype(float)/(df_gap22_ram_prob['locMemReadBursts'].astype(float)+df_gap22_ram_prob['locMemWriteBursts'].astype(float))\n", - "y4 = 100 * df_gap22_ram_prob['foundCandidBSlotRMD'].astype(float)/(df_gap22_ram_prob['locMemReadBursts'].astype(float)+df_gap22_ram_prob['locMemWriteBursts'].astype(float))\n", - "\n", - "# Multi bar Chart\n", - "fig = plt.figure()\n", - "fig.set_size_inches(6,3)\n", - "plt.ylim([0,110])\n", - "\n", - "for i,app in enumerate(x1): \n", - " plt.bar(i*4, y1[i], width=3, color=cmap(1), label='Not Probed' if i==0 else None)\n", - " plt.bar(i*4, y2[i], bottom = y1[i], width=3, color=cmap(2), label='Read-Hit' if i==0 else None)\n", - " plt.bar(i*4, y3[i], bottom = y1[i]+y2[i], width=3, color=cmap(3), label='Read-MC' if i==0 else None)\n", - " plt.bar(i*4, y4[i], bottom = y1[i]+y2[i]+y3[i], width=3, color=cmap(4), label='Read-MD' if i==0 else None)\n", - "\n", - "offset = (i+1)*4\n", - "x2 = df_npbC_ram_prob['app']\n", - "y1 = 100 * df_npbC_ram_prob['noCandidBSlot'].astype(float)/(df_npbC_ram_prob['locMemReadBursts'].astype(float)+df_npbC_ram_prob['locMemWriteBursts'].astype(float))\n", - "y2 = 100 * df_npbC_ram_prob['foundCandidBSlotRH'].astype(float)/(df_npbC_ram_prob['locMemReadBursts'].astype(float)+df_npbC_ram_prob['locMemWriteBursts'].astype(float))\n", - "y3 = 100 * df_npbC_ram_prob['foundCandidBSlotRMC'].astype(float)/(df_npbC_ram_prob['locMemReadBursts'].astype(float)+df_npbC_ram_prob['locMemWriteBursts'].astype(float))\n", - "y4 = 100 * df_npbC_ram_prob['foundCandidBSlotRMD'].astype(float)/(df_npbC_ram_prob['locMemReadBursts'].astype(float)+df_npbC_ram_prob['locMemWriteBursts'].astype(float))\n", - "\n", - "for i,app in enumerate(x2): \n", - " plt.bar(i*4+offset, y1[i], width=3, color=cmap(1))\n", - " plt.bar(i*4+offset, y2[i], bottom = y1[i], width=3, color=cmap(2))\n", - " plt.bar(i*4+offset, y3[i], bottom = y1[i]+y2[i], width=3, color=cmap(3))\n", - " plt.bar(i*4+offset, y4[i], bottom = y1[i]+y2[i]+y3[i], width=3, color=cmap(4))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*4, list(x1)+list(x2))\n", - "plt.axvline(x=offset-2, color='black')\n", - "plt.axhline(y=100, color='gray')\n", - "\n", - "plt.ylabel(\"Breakdown of B slots probing (%)\", fontsize=10)\n", - "plt.legend(fontsize=9, ncol=2, loc='lower right')\n", - "plt.tight_layout()\n", - "#plt.savefig(\"../figures/cs1_all_mpki.pdf\")\n", - "\n", - "x1 = df_gap25_ram_prob['app']\n", - "y1 = 100 * df_gap25_ram_prob['noCandidBSlot'].astype(float)/(df_gap25_ram_prob['locMemReadBursts'].astype(float)+df_gap25_ram_prob['locMemWriteBursts'].astype(float))\n", - "y2 = 100 * df_gap25_ram_prob['foundCandidBSlotRH'].astype(float)/(df_gap25_ram_prob['locMemReadBursts'].astype(float)+df_gap25_ram_prob['locMemWriteBursts'].astype(float))\n", - "y3 = 100 * df_gap25_ram_prob['foundCandidBSlotRMC'].astype(float)/(df_gap25_ram_prob['locMemReadBursts'].astype(float)+df_gap25_ram_prob['locMemWriteBursts'].astype(float))\n", - "y4 = 100 * df_gap25_ram_prob['foundCandidBSlotRMD'].astype(float)/(df_gap25_ram_prob['locMemReadBursts'].astype(float)+df_gap25_ram_prob['locMemWriteBursts'].astype(float))\n", - "\n", - "# Multi bar Chart\n", - "fig = plt.figure()\n", - "fig.set_size_inches(6,3)\n", - "plt.ylim([0,110])\n", - "for i,app in enumerate(x1): \n", - " plt.bar(i*4, y1[i], width=3, color=cmap(1), label='Not Probed' if i==0 else None)\n", - " plt.bar(i*4, y2[i], bottom = y1[i], width=3, color=cmap(2), label='Read-Hit' if i==0 else None)\n", - " plt.bar(i*4, y3[i], bottom = y1[i]+y2[i], width=3, color=cmap(3), label='Read-MC' if i==0 else None)\n", - " plt.bar(i*4, y4[i], bottom = y1[i]+y2[i]+y3[i], width=3, color=cmap(4), label='Read-MD' if i==0 else None)\n", - "\n", - "offset = (i+1)*4\n", - "x2 = df_npbD_ram_prob['app']\n", - "y1 = 100 * df_npbD_ram_prob['noCandidBSlot'].astype(float)/(df_npbD_ram_prob['locMemReadBursts'].astype(float)+df_npbD_ram_prob['locMemWriteBursts'].astype(float))\n", - "y2 = 100 * df_npbD_ram_prob['foundCandidBSlotRH'].astype(float)/(df_npbD_ram_prob['locMemReadBursts'].astype(float)+df_npbD_ram_prob['locMemWriteBursts'].astype(float))\n", - "y3 = 100 * df_npbD_ram_prob['foundCandidBSlotRMC'].astype(float)/(df_npbD_ram_prob['locMemReadBursts'].astype(float)+df_npbD_ram_prob['locMemWriteBursts'].astype(float))\n", - "y4 = 100 * df_npbD_ram_prob['foundCandidBSlotRMD'].astype(float)/(df_npbD_ram_prob['locMemReadBursts'].astype(float)+df_npbD_ram_prob['locMemWriteBursts'].astype(float))\n", - "\n", - "for i,app in enumerate(x2): \n", - " plt.bar(i*4+offset, y1[i], width=3, color=cmap(1))\n", - " plt.bar(i*4+offset, y2[i], bottom = y1[i], width=3, color=cmap(2))\n", - " plt.bar(i*4+offset, y3[i], bottom = y1[i]+y2[i], width=3, color=cmap(3))\n", - " plt.bar(i*4+offset, y4[i], bottom = y1[i]+y2[i]+y3[i], width=3, color=cmap(4))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*4, list(x1)+list(x2))\n", - "plt.axvline(x=offset-2, color='black')\n", - "plt.axhline(y=100, color='gray')\n", - "\n", - "plt.ylabel(\"Breakdown of B slots probing (%)\", fontsize=10)\n", - "plt.legend(fontsize=9, ncol=2, loc='lower right')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_308484/3451258688.py:35: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_308484/3451258688.py:38: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n", - "/tmp/ipykernel_308484/3451258688.py:70: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_308484/3451258688.py:73: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAfB0lEQVR4nO3de7xUdb3/8de7LYoKSiKWgbjR/KkZhroVPVputX7eIrK8YP1ULCWvpWank5ZmxzJ/HY/HIwWpcSjFS94ShWP6KLeCJQEGIhAexQtbLQETJC/cPuePtWY7jPsye+9Ze2DN+/l47MfM+s531ue71qxZ+zPfdfkqIjAzMzPLkw9UuwFmZmZmleYEx8zMzHLHCY6ZmZnljhMcMzMzyx0nOGZmZpY7TnDMzMwsdzJLcCTtJOkRSQskzZf0jVbqNEpaIWlO+ndZVu0xMzOz2rFZhvNeC3wzIp6U1BeYLenhiFhQUm9aRHw2w3aYmZlZjcmsByciXo2IJ9PnbwILgYFZxTMzMzMryLIHp4WkemAfYEYrLx8kaS7wCnBxRMxv5f1jgDEAW2+99X577LFHhq01s3ItWrQIgN13373KLTGzWjV79uxlETGgtFxZD9UgqQ/wKPDDiLin5LVtgPURsUrSMcB1EbFbe/NraGiIWbNmZddgMytbY2MjAE1NTVVth5nVLkmzI6KhtDzTq6gk9QLuBiaVJjcAEbEyIlalz6cCvSRtn2WbzMzMLP+yvIpKwC+AhRHx723U+XBaD0kHpO1ZnlWbzMzMrDZkeQ7OwcApwDxJc9KyS4DBABExHjgeOFvSWuBtYFR4eHMzMzPrpswSnIiYDqiDOmOBsd2NtWbNGpqbm3nnnXe6OyuroN69ezNo0CB69epV7aaYmVmN6ZGrqLLW3NxM3759qa+vJz3iZVUWESxfvpzm5maGDBlS7eaYmVmNycVQDe+88w79+/d3crMRkUT//v3dq2ZmZlWRiwQHcHKzEfJnYmZm1ZKLQ1TFDrz8txWZzxNXHNnmaytWrGDkyJEAzJkzhz333JMtttiCZcuW0bdvX+rq6ogIzjzzTEaPHg3AkCFD2HnnnVm3bh319fVMnDiRuro6AH70ox9x4403snjx4pakYMiQIRxxxBHcdNNNANx8882ceuqpPP/889TX12/QnvbmXXDllVcyaNCglvYUjB49mrlz57LNNtvQp08fJk2aRL9+/TpcPxMnTqS5uZnvfve7HdY1MzPrabnpwelJ2267LU1NTTQ1NTFs2DDuvPNOmpqa2H777bnzzjuZPn06U6ZMYeLEiTzyyCMA1NXV0dTUxLRp0+jVqxcPPfRQy/weeOABDj/8cB5//PGWsrq6Ol566SXeffddAO666y7222+/VtvT3rzLcf311/Poo49y8MEHM378+A1eW7duXafmZWZmtjFwgpORfv36cemll3LrrbduUL5+/XreeOMNClfD//nPf2avvfbi7LPP5pZbbtmg7tFHH82UKVN47bXX6NWrV4c9K6Xzfuyxx9hnn30YMWIEM2a0NkrGhvbdd19efPFFJk6cyAknnMDnP/95rrvuOm688UaGDx/O8OHDmTBhQkv9GTNmMGLECPbZZx+mTZtWzmoxMzPrEU5wMrTTTjvx8ssvA0lPSGNjI/X19axbt44jj0wOgU2aNInTTjuNhoYGFixYwJo1a1reP2rUKO644w7uuOMOTjzxxDbjtDXviy66iPvuu4/Jkye39AS156GHHmKvvfYCYNWqVdx7772ccsopjB07lmnTpjFt2jSuu+46li5dCiSX599///3ce++9XHjhhV1bSWZmZhlwgpOhJUuWMHBgMoB64TDSvHnzWLp0KW+88Qbr16/nvvvu48orr+Soo47itddeY+rUqS3v33HHHVm1ahW33347I0aMaCkfO3YsjY2NnHHGGW3OG2DlypUMHjwYSRxwwAEATJ8+ncbGRhobG1m1ahUA559/Poceeihvv/12yzwPPPBAJLF48WKGDh3K5ptvzuabb87QoUN5/vnnAdh///0BqK+vZ8WKFRmuSTMzs85xgpORFStWcNVVV3HyySdvUL7tttty1llncfXVV/PII48wcuRIHnzwQR588EGmTJnCpEmTNqh/7rnnctxxx7Hlllu2lJ133nk0NTW1nIDc2rwB+vbtS3NzMwAzZ84E4JBDDmk5f6hPnz7Ae+fgjBs3jt69ewO0nKQ8ZMgQnnrqKVavXs3q1auZN29ey31tZs+eDcBLL73ENtts0/2VZmZmViG5u4qq2k444QTq6upYv349X/nKVzj88MPfV2fUqFEMHTqUZcuW8aUvfamlfNddd2XhwoWsXLmypeyYY47hmGOOKTt+Yd6XXHIJ11xzDSNGjOAjH/kIffv27dLy7LDD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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAfDElEQVR4nO3de5xVdb3/8de7cRAVlFQ8GaiD5kONKNTxdrSa9PjzFpHlBeqoWEpeS81TJ63Ifnbx5zGORzqQGodSvOQtUcjLoxwFS+ISiEB0FC+MWgImSKLcPr8/1trjZpzLZmav2cPa7+fjMY+919rfvT6ftfbaaz573b6KCMzMzMzy5H2VTsDMzMys3FzgmJmZWe64wDEzM7PccYFjZmZmueMCx8zMzHLHBY6ZmZnlTmYFjqQ9JD0maZGkhZK+1kqbBkmrJM1L/76bVT5mZmZWPbbJcNobgK9HxFxJfYE5kh6NiEUt2k2PiE9nmIeZmZlVmcz24ETEqxExN33+JrAYGJBVPDMzM7OCLPfgNJNUBxwIzGzl5SMkzQdeAS6PiIWtvH80MBpghx12OHj//ffPMFszK9WSJUsA2G+//SqciZlVqzlz5qyIiP4txyvrrhok9QEeB34QEfe2eG1HYFNErJF0InB9ROzb3vTq6+tj9uzZ2SVsZiVraGgAoLGxsaJ5mFn1kjQnIupbjs/0KipJtcA9wOSWxQ1ARKyOiDXp82lAraRds8zJzMzM8i/Lq6gE/BxYHBE/aaPNB9J2SDo0zWdlVjmZmZlZdcjyHJwjgTOABZLmpeOuAPYEiIgJwCnA+ZI2AGuBEeHuzc3MzKyLMitwImIGoA7ajAPGdTXW+vXraWpq4u233+7qpKyMevfuzcCBA6mtra10KmZmVmW65SqqrDU1NdG3b1/q6upIj3hZhUUEK1eupKmpiUGDBlU6HTMzqzK56Krh7bffZpdddnFx04NIYpdddvFeNTMzq4hcFDiAi5seyJ+JmZlVSi4OURU7fMzDZZnOU1cd1+Zrq1atYvjw4QDMmzePAw44gG233ZYVK1bQt29fampqiAjOPfdcRo0aBcCgQYPYa6+92LhxI3V1dUyaNImamhoAfvjDH3LTTTexdOnS5qJg0KBBHHPMMdx8880A3HLLLZx55pk8//zz1NXVbZZPe9MuuPrqqxk4cGBzPgWjRo1i/vz57LjjjvTp04fJkyfTr1+/DpfPpEmTaGpq4tvf/naHbc3MzLpbbvbgdKeddtqJxsZGGhsbGTp0KHfddReNjY3suuuu3HXXXcyYMYOpU6cyadIkHnvsMQBqampobGxk+vTp1NbW8sgjjzRP78EHH+Too4/mySefbB5XU1PDSy+9xDvvvAPA3XffzcEHH9xqPu1NuxQ33HADjz/+OEceeSQTJkzY7LWNGzdu0bTMzMx6Ahc4GenXrx9XXnklt91222bjN23axBtvvEHhavg//elPDB48mPPPP59bb711s7YnnHACU6dO5bXXXqO2trbDPSstp/3EE09w4IEHMmzYMGbObK2XjM0ddNBBvPjii0yaNIlTTz2Vz372s1x//fXcdNNNHHbYYRx22GFMnDixuf3MmTMZNmwYBx54INOnTy9lsZiZmXULFzgZ2mOPPXj55ZeBZE9IQ0MDdXV1bNy4keOOSw6BTZ48mbPOOov6+noWLVrE+vXrm98/YsQI7rzzTu68805OO+20NuO0Ne3LLruM+++/nylTpjTvCWrPI488wuDBgwFYs2YN9913H2eccQbjxo1j+vTpTJ8+neuvv57ly5cDyeX5DzzwAPfddx+XXnpp5xaSmZlZBlzgZGjZsmUMGJB0oF44jLRgwQKWL1/OG2+8waZNm7j//vu5+uqrOf7443nttdeYNm1a8/t333131qxZwx133MGwYcOax48bN46GhgbOOeecNqcNsHr1avbcc08kceihhwIwY8YMGhoaaGhoYM2aNQBcfPHFfPKTn2Tt2rXN0zz88MORxNKlSxkyZAi9evWiV69eDBkyhOeffx6AQw45BIC6ujpWrVqV4ZI0MzPbMi5wMrJq1Sp+9KMfMXLkyM3G77TTTpx33nlcc801PPbYYwwfPpyHHnqIhx56iKlTpzJ58uTN2l944YWcfPLJbLfdds3jLrroIhobG5tPQG5t2gB9+/alqakJgFmzZgFw1FFHNZ8/1KdPH+Ddc3DGjx9P7969AZpPUh40aBBPP/0069atY926dSxYsKD5vjZz5swB4KWXXmLHHXfs+kIzMzMrk9xdRVVpp556KjU1NWzatIkvfelLHH300e9pM2LECIYMGcKKFSv4whe+0Dx+n332YfHixaxevbp53IknnsiJJ55YcvzCtK+44gquu+46hg0bxgc/+EH69u3bqfnZbbfd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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = df_gap22_ram_prob['simSeconds'].astype(float)\n", - "gap_22_ram = df_gap22_ram['simSeconds'].astype(float)\n", - "geo_meanC = df_gap22_ram_prob['simSeconds'].astype(float)\n", - "geo_meanR = df_gap22_ram['simSeconds'].astype(float)\n", - "gap_22_prob[len(gap_22_prob)] = statistics.geometric_mean(geo_meanC)\n", - "gap_22_ram[len(gap_22_ram)] = statistics.geometric_mean(geo_meanR)\n", - "\n", - "\n", - "gap_25_prob = df_gap25_ram_prob['simSeconds'].astype(float)\n", - "gap_25_ram = df_gap25_ram['simSeconds'].astype(float)\n", - "geo_meanC = df_gap25_ram_prob['simSeconds'].astype(float)\n", - "geo_meanR = df_gap25_ram['simSeconds'].astype(float)\n", - "gap_25_prob[len(gap_25_prob)] = statistics.geometric_mean(geo_meanC)\n", - "gap_25_ram[len(gap_25_ram)] = statistics.geometric_mean(geo_meanR)\n", - "\n", - "npb_C_prob = df_npbC_ram_prob['simSeconds'].astype(float)\n", - "npb_C_ram = df_npbC_ram['simSeconds'].astype(float)\n", - "geo_meanC = df_npbC_ram_prob['simSeconds'].astype(float)\n", - "geo_meanR = df_npbC_ram['simSeconds'].astype(float)\n", - "npb_C_prob[len(npb_C_prob)] = statistics.geometric_mean(geo_meanC)\n", - "npb_C_ram[len(npb_C_ram)] = statistics.geometric_mean(geo_meanR)\n", - "\n", - "\n", - "\n", - "npb_D_prob = df_npbD_ram_prob['simSeconds'].astype(float)\n", - "npb_D_ram = df_npbD_ram['simSeconds'].astype(float)\n", - "geo_mean = df_npbD_ram_prob['simSeconds'].astype(float)\n", - "geo_mean = df_npbD_ram['simSeconds'].astype(float)\n", - "npb_D_prob[len(npb_D_prob)] = statistics.geometric_mean(geo_meanC)\n", - "npb_D_ram[len(npb_D_ram)] = statistics.geometric_mean(geo_meanR)\n", - "\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,2.5])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_22_ram[i]/gap_22_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_C_ram[i]/npb_C_prob[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Speedup\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,2.5])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_25_ram[i]/gap_25_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - " \n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_D_ram[i]/npb_D_prob[i], width=1, color=cmap(1))\n", - " \n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Speedup\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADoCAYAAADi1J7wAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAkyklEQVR4nO3deZxcVZn/8c+XJqxmEQhMBELCMighrAGioDQgskZwYf8hO4MQVhFF+RlR3FEGQWDYJojRsEgEA8MySCCgLAlbIBGFkAAxQDJDAiiQkDzzxz0VK0139e2qutWV7u/79apX1z11656na7n99LlnUURgZmZm1pOs1N0BmJmZmdWbExwzMzPrcZzgmJmZWY/jBMfMzMx6HCc4ZmZm1uM4wTEzM7MexwmOmZmZ9ThOcMzMzKzHWbmjBySdVemJEfGz+odjZmZmVrsOExygb/q5ObADcFvaHgU8WmRQZmZmZrVQZ0s1SHoA2C8i3krbfYHbI+JTDYjPzMzMrMvy9MFZD1hUtr0olZmZmZk1pUqXqEp+CTwqaULaPhAYW1RAZmZmZrXq9BIVgKTtgE+mzQci4olCozIzMzOrQYcJjqS1Kj0xIv63kIjMzMzMalQpwVkKvAK8XyoqezgiYuOKB5auBfYHXo+ILVPZWsANwBBgFnBwRLwhScDFwL7AP4CjI+LxKn8nMzMz6+UqdTL+OfAGcCdwFLBxRAxNt4rJTTIW2LtN2deBeyNiM+DetA2wD7BZup0IXJ77NzAzMzNro2IfnNSy0gocBuwI3A1cHhEv5jq4NASYWNaC8xzQGhFzJQ0CJkXE5pL+I93/Tdv9qv7NzMzMrNeqOIoqsuznPklPAIcC3wX+ClxVZX3rlSUtr/LP4ebrAy+X7fdKKvtAgiPpRLJWHtZcc83tP/rRj1YZiplV47nnngNg88037+ZIzMxg6tSp8yNiYNvySks1rAkcABwCDARuAbaPiJfqEVBEhKTOh3B98HlXAlcCjBgxIqZMmVKPcMwsp9bWVgAmTZrUrXGYmQFImt1eeaUWnNfJWmvGp58BjJA0AiAibqkijtckDSq7RPV6Kp8DbFi23wapzMzMzKzLKiU4N5ElNZunW7kga9HpqtvIOiz/MP28tax8tKTxwE7AQve/MTMzs2p1mOBExNG1HFjSb8g6KK8j6RVgDFlic6Ok44DZwMFp9zvIhog/TzZM/Jha6jYzM7PeLc9SDctImhgR++fZNyIO6+ChPdrZN4BTuhJLRxYsWMDcuW78aTaDBg1iwIAB3R2GmZn1El1KcMhGNjW1+fPnM2TIEFZfffXuDsWSd955hzlz5jjBMTOzhsmzmni5pl+DavHixay22mrdHYaVWW211Vi8eHF3h2FmZr1IlxKciDi2qEDqKZuf0JqF3w8zM2u0SvPgTCMbLdWuiNiqkIjqaOSYu+pynIfP36vDxxYuXMgBBxwAwJNPPsnHPvYxVl11VebPn0/fvn1paWkhIjjhhBM4+uijARg6dCgbbbQRS5YsYciQIYwdO5aWlhYAvv/973PVVVcxc+bMZYnB0KFD2WOPPbj66qsBuP766/nSl77Eiy++yJAhQ5aLp9KxSy644AI22GCDZfGUHH300Tz11FP069ePD33oQ4wbNy7XZaWxY8fyyiuvcN5553W6r5mZWSNUasHZHxhFthbVncAR6XZHuhnQv39/Jk2axKRJk9hmm2246aabmDRpEuussw433XQTDz74ILfffjtjx47lvvvuA6ClpYVJkyYxefJk+vTpw913373seBMnTmT33XfnoYceWlbW0tLCSy+9xHvvvQfAzTffzPbbb99uPJWOnccll1zC/fffz84778wVV1yx3GNLlizp0rHMzMy6S4cJTkTMjojZwJ4RcU5ETEu3rwOfaVyIK74BAwbwzW9+k1//+tfLlS9dupQFCxZQWg/siSeeYNiwYXz5y1/mV7/61XL77rPPPtx+++28/vrr9OnTp9OWlbbHfuCBB9h2220ZNWoUjzzySKcxb7fddsyePZuxY8dy0EEHceCBB3LxxRdz1VVXsdNOO7HTTjtx7bXXLtv/kUceYdSoUWy77bZMnjw5z8tiZmZWmDx9cCRp57KNT+R8npXZcMMNmTMnm5x5yZIltLa2MmTIEJYsWcJee2WXwMaNG8dRRx3FiBEjmD59+nIdcw899FBuuOEGbrjhBg4++OB266h07LPOOotbb72V2267bVlLUCV33303w4YNA+Dtt99mwoQJHHnkkVx66aVMnjyZyZMnc/HFFzNv3jwg69z9+9//ngkTJnDmmWdW9yKZmZnVSZ5E5TjgMkmzJM0CLgNWiM7GzeTll19m/fWzUfaly0jTpk1j3rx5LFiwgKVLl3LrrbdywQUXsPfee/P6669z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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADoCAYAAADi1J7wAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAky0lEQVR4nO3debxVdb3/8dfbIzjFkIpeEhEcfpaIIyqm1UkznEhvOaBeE8drimNmWf4ii2wyzbT0Ol3MKKckFb0O10TRcgAnFLIMQSUUKAExlelz/1jfjdvjOfss9nQ257yfj8d+nL2+a+31/ezh7PM53/UdFBGYmZmZdSZrdHQAZmZmZtXmBMfMzMw6HSc4ZmZm1uk4wTEzM7NOxwmOmZmZdTpOcMzMzKzTcYJjZmZmnY4THDMzM+t01mxrh6SzSz0wIi6ufjhmZmZmlWszwQF6pJ9bA7sAd6Tt4cATtQzKzMzMrBJqb6kGSQ8DB0TEW2m7B3BXRHy6DvGZmZmZrbI8fXA2BpYUbS9JZWZmZmYNqdQlqoJfAU9IGp+2DwbG1iogMzMzs0q1e4kKQNJOwKfS5sMR8XRNozIzMzOrQJsJjqT1Sz0wIv5Zk4jMzMzMKlQqwVkBvAYsKxQV7Y6I2LzkiaXrgAOBuRGxbSpbH7gJGADMBA6LiDclCbgU2B/4FzAyIp4q8zmZmZlZF1eqk/HPgTeBe4BjgM0jYmC6lUxukrHAvi3KvgE8EBFbAQ+kbYD9gK3S7STgitzPwMzMzKyFkn1wUstKM3AEsCtwH3BFRLyc6+TSAGBCUQvOi0BzRMyR1BeYGBFbS/qvdP+3LY8r+5mZmZlZl1VyFFVk2c+Dkp4GRgDfA/4KXF1mfRsXJS2v8/5w802AV4uOey2VfSjBkXQSWSsP66233s4f//jHywzFzMrx4osvArD11lt3cCRmZjBlypT5EdGnZXmppRrWAw4CDgf6ALcBO0fEK9UIKCJCUvtDuD78uKuAqwCGDBkSkydPrkY4ZpZTc3MzABMnTuzQOMzMACTNaq28VAvOXLLWmhvTzwCGSBoCEBG3lRHHG5L6Fl2impvKZwObFh3XL5WZmZmZrbJSCc4tZEnN1ulWLMhadFbVHWQdln+Yft5eVD5K0o3AbsBC978xMzOzcrWZ4ETEyEpOLOm3ZB2UN5T0GjCaLLG5WdLxwCzgsHT43WRDxF8iGyZ+bCV1m5mZWdeWZ6mGlSRNiIgD8xwbEUe0sWvvVo4N4NRViaUtCxYsYM4cN/40mr59+9K7d++ODsPMzLqIVUpwyEY2NbT58+czYMAA1llnnY4OxZJ33nmH2bNnO8ExM7O6ybOaeLGGX4Nq6dKlrL322h0dhhVZe+21Wbp0aUeHYWZmXcgqJTgRcVytAqmmbH5CaxR+P8zMrN5KzYMzlWy0VKsiYruaRFRFQ0ffW5XzPHbBsDb3LVy4kIMOOgiAZ555hk984hOstdZazJ8/nx49etDU1EREcOKJJzJy5EgABg4cyGabbcby5csZMGAAY8eOpampCYALL7yQq6++mhkzZqxMDAYOHMjee+/NNddcA8ANN9zAl7/8ZV5++WUGDBjwgXhKnbtgzJgx9OvXb2U8BSNHjuTZZ5+lZ8+efOQjH2HcuHG5LiuNHTuW1157jfPPP7/dY83MzOqhVAvOgcBwsrWo7gGOSre7082AXr16MXHiRCZOnMgOO+zALbfcwsSJE9lwww255ZZbeOSRR7jrrrsYO3YsDz74IABNTU1MnDiRSZMm0a1bN+67776V55swYQJ77bUXjz766MqypqYmXnnlFd577z0Abr31VnbeeedW4yl17jwuu+wyHnroIfbYYw+uvPLKD+xbvnz5Kp3LzMyso7SZ4ETErIiYBewTEedGxNR0+wbw+fqFuPrr3bs33/rWt/jNb37zgfIVK1awYMECCuuBPf300wwaNIivfOUr/PrXv/7Asfvttx933XUXc+fOpVu3bu22rLQ898MPP8yOO+7I8OHDefzxx9uNeaeddmLWrFmMHTuWQw89lIMPPphLL72Uq6++mt12243ddtuN6667buXxjz/+OMOHD2fHHXdk0qRJeV4WMzOzmsnTB0eS9ija+GTOx1mRTTfdlNmzs8mZly9fTnNzMwMGDGD58uUMG5ZdAhs3bhzHHHMMQ4YMYdq0aR/omDtixAhuuukmbrrpJg477LBW6yh17rPPPpvbb7+dO+64Y2VLUCn33XcfgwYNAmDx4sWMHz+eo48+mssvv5xJkyYxadIkLr30UubNmwdknbvvvPNOxo8fz1lnnVXei2RmZlYleRKV44FfSpopaSbwS2C16GzcSF599VU22SQbZV+4jDR16lTmzZvHggULWLFiBbfffjtjxoxh3333Ze7cudx99/tXAvv27cvixYu58cYbGT58+Mryyy+/nObmZk444YQ2zw2waNEi+vfvjyR23XVXAB555BGam5tpbm5m8eLFAJx22ml85jOf4Z133ll5zqFDhyKJGTNmMHjwYLp370737t0ZPHgwL7+cLSy/yy67ADBgwAAWLlxYw1fSzMysfe3OgxMRU4DtJfVK2/7rtYoWLlzID37wgw91wu3Vqxcnn3wyP/rRjxg2bBgHHXQQF110EQB/+9vfOO+881Z2YAY49dRTmTZt2gfm+Bk1ahSjRo36UJ3F5/7xj39Mjx49eO211+jXrx9PPvkkW265JXvuueeHFky87LLL2HPPPT9QVuikPHDgQJ577jmWLFkCwNSpUxk4cCDTpk1jypQpALzyyiv07NmzzFfKzMysOkomOJKagI9GxPyIWCipu6QTgbMj4hP1CXH1deihh9LU1MSKFSs47rjj2GuvvT50zIgRIxg8eDDz58/nyCOPXFm+xRZbMH36dBYtWrSybP/992f//ffPXX/h3N/85jf56U9/yvDhw/nYxz5Gjx49yno+G220EaeccsrKBGjUqFH06ZOtUL/uuutywAEH8Pe//51LLrmkrPObmZlViwqdUD+0QxoB/BfwNtlq4t8HrgOeBL4XEU/VK8i2DBkyJCZPnvyBsunTp/OJTzj3ajR+XzqP5uZmgA+1/pmZdQRJUyJiSMvyUi045wM7R8RLknYC/gQcEhF31ipIMzMzs2oo1cl4SUS8BJBaa/7q5MbMzMxWB6VacDaSdHbRdu/i7Yi4uHZhVSYivDxAA2nrMqiZmVmtlEpwrgZ6lNhuSN26dePdd9/1auIN5N1336Vbt24dHYaZmXUhbSY4EXFBPQOplg033JCZM2d2dBjWQt++fTs6BDMz60LanQdnddO7d+9cC0SamZlZ5+UlF8zMzKzTcYJjZmZmnU6bl6hajKD6kEYeRWVmZmZdW6k+OIURU1sDuwB3pO3hwBO1DMrMzMysEu2OopL0MLBTRLyVtr8D3FWX6MzaMHT0vVU5z2MXDKvKeczMrLHk6YOzMbCkaHtJKjMzMzNrSHmGif8KeELS+LR9MHB9zSIyMzMzq1C7CU5EfF/SPcCeqejYiHi6tmGZmZmZlS/vRH/PAHMKx0vqHxGv1CooMzMzs0q0m+BIOg0YDbwBLAcEBLBduZVKOgs4IZ1nKnAs0Be4EdgAmAIcHRFL2jyJmZmZWRvydDI+A9g6IgZFxHYRMTgiKkluNgFOB4ZExLZAEzAC+BFwSURsCbwJHF9uHWZmZta15UlwXgUWVrneNYF1JK0JrEt2+Wsv4Na0/3qyzsxmZmZmqyxPH5wZwERJdwHvFQrLnck4ImZLugh4BXgHuI/sktSCiFiWDnsN2KS1x0s6CTgJoH///uWEYGZmZp1cnhacV4D7ge5ksxsXbmWR9FHgIGAg8DFgPWDfvI+PiKsiYkhEDOnTp0+5YZiZmVknlmeY+AVVrvNzwMsRMQ9A0m3AHkBvSWumVpx+wOwq12tmZmZdRJ5RVH2Ac4FBwNqF8ojYq8w6XwGGSlqX7BLV3sBk4EHgELKRVMcAt5d5fjMzM+vi8lyiGgf8meyS0gXATODJciuMiMfJOhM/RTZEfA3gKuDrwNmSXiIbKn5tuXWYmZlZ15ank/EGEXGtpDMi4iHgIUllJzgAETGabG6dYjOAXSs5r5mZmRnkS3CWpp9zJB0A/B1Yv3YhmZmZmVUmT4IzRlIv4KvAZUBP4KyaRmVmViVDR99b8Tkeu2BYFSIxs3rKM4pqQrq7EPhsbcMxMzMzq1yeTsZmZmZmq5W8q4mbWRt8CcTMrPG4BcfMzMw6nTZbcCSdDSyMiGtblB8P9IiIn9U4NjMzs7pxa2znUqoF5yjgV62U3wAcV5twzMzMzCpXqg/OmhGxtGVhRCyRpBrGZGZl8n+gZmaZUi04a0jauGVha2VmZmZmjaRUgvMT4C5Jn5HUI92agQnARfUIzszMzKwcbV6iiohfSZoHfBfYNhU/D3w7Iv6nHsGZmZmZlaPkPDgpkXEyY2ZmZquVUsPEf17qgRFxevXDMTMzM6tcqRack8kuSd1MtoK4R06ZmZnZaqFUgtMXOBQ4HFgG3ATcGhEL6hCXmZmZWdnaHEUVEf+IiCsj4rPAsUBvYJqko+sVnJmZmVk52l1sU9JOwBHAPmQdjqfUOigzMzOzSpTqZPxd4ABgOnAjcF5ELKtXYGZmZmblKtWCcz7wMrB9ul2YVmgQEBGxXe3DMzMzM1t1pRKcgXWLwszMzKyKSs1kPKtlmaQDI2JCbUMyMzMzq0yptaha892aRGFmZmZWRaua4HiyPzMzM2t4q5rg/GdNojAzMzOrolLDxL/YRnk/gIi4rVZBmZmZmVWi1Ciq4ennRsAngT+k7c8CfwTKTnAk9QauAbYFAjgOeJFsOYgBwEzgsIh4s9w6zMzMrOsqtVTDsRFxLNAN2CYivhQRXwIGpbJKXArcExEfJ5tjZzrwDeCBiNgKeCBtm5mZma2yPH1wNo2IOUXbbwD9y61QUi/g08C1ABGxJC3geRBwfTrseuDgcuswMzOzrq3dtaiAByTdC/w2bR8O/G8FdQ4E5gH/LWl7srWtzgA2LkqkXgc2bu3Bkk4CTgLo37/sPMvMamjo6Hurcp7HLhhWlfOYWdfTbgtORIwCruT9JRuuiojTKqhzTWAn4IqI2BF4mxaXoyIiyPrmtBbPVRExJCKG9OnTp4IwzMzMrLPK04JDRIwHxgNIWkPSURExrsw6XwNei4jH0/atZAnOG5L6RsQcSX2BuWWe38zMVhPVaO1zS5+1ps0WHEk9JZ0n6XJJn1dmFDADOKzcCiPideBVSVunor2BacAdwDGp7Bjg9nLrMDMzs66tVAvODcCbwJ+AE4Bvks1kfHBEPFNhvacB4yR1J0uYjiVLtm6WdDwwiwqSqM7G/+GYmXUd7sNWHaUSnM0jYjCApGuAOUD/iHi30kpTgjSklV17V3puMzMzs1KdjJcW7kTEcrJ+MxUnN2ZmZma1VqoFZ3tJi9J9AeukbZENdOpZ8+jMzMzMytBmghMRTfUMxMzMzKxaVnU1cTMzM7OG5wTHzMzMOh0nOGZmZtbpOMExMzOzTqfNTsaS3qKN9aAAPIrKzMzMGlWpUVQ9ACR9j2ySvxvIhogfBfStS3RmZmZmZchzieoLEfHLiHgrIhZFxBXAQbUOzMzMzKxceRKctyUdJampsJI48HatAzMzMzMrV54E50iyhS/fSLdDU5mZmZlZQyq1VAMAETETX5IyM+s0vFq1dQXttuBI+n+SHpD0fNreTtL5tQ/NzMzMrDx5LlFdDZxHWl08Ip4DRtQyKDMzM7NK5Elw1o2IJ1qULatFMGZmZmbVkCfBmS9pC9Kkf5IOIZsXx8zMzKwhtdvJGDgVuAr4uKTZwMtkk/2ZmZmZNaQ8o6hmAJ+TtB6wRkS8VfuwzMzMzMqXZxTVBpJ+DkwCJkq6VNIGtQ/NzMzMrDx5+uDcCMwDvgQcku7fVMugzMzMzCqRpw9O34j4XtH2GEmH1yogMzMzs0rlacG5T9KItA7VGpIOA6ozDaaZmZlZDbTZgiPpLbKh4QLOBH6ddq0BLAbOqXVwZmZmZuVoM8GJiB71DMTMzMysWvL0wUHSF4BPp82JETGh0oolNQGTgdkRcaCkgWQdmjcApgBHR8SSSusxMzOzrifPMPEfAmcA09LtDEk/qELdZwDTi7Z/BFwSEVsCbwLHV6EOMzMz64LydDLeH9gnIq6LiOuAfYEDKqlUUr90jmvStoC9gFvTIdcDB1dSh5mZmXVdeRIcgN5F93tVod6fAecCK9L2BsCCiCgs4vkasElrD5R0kqTJkibPmzevCqGYmZlZZ5MnwbkQeFrSWEnXk/WP+X65FUo6EJgbEVPKeXxEXBURQyJiSJ8+fcoNw8zMzDqxkp2MJa1B1soyFNglFX89Il6voM49gC9I2h9YG+gJXAr0lrRmasXpB8yuoA4zMzPrwkq24ETECuDciJgTEXekWyXJDRFxXkT0i4gBwAjgDxFxFPAg2VIQAMcAt1dSj5mZmXVdeYaJ/6+kc8jWn3q7UBgR/6xyLF8HbpQ0BngauLbK5zcz61BDR1c+CfxjFwyrQiRmnV+eBKew7tSpRWUBbF5p5RExEZiY7s8Adq30nGZmZmbtJjgRMbAegZiZmZlVS7sJjqS1gVOAPclabiYBV0bEuzWOzczMzKwseS5R/Qp4C7gsbR8J3AAcWqugzMzMzCqRJ8HZNiK2Kdp+UNK0WgVkZmZmVqk8E/09JWloYUPSbmSLZJqZmZk1pDwtODsDf5T0StruD7woaSoQEbFdzaIzMzMzK0OeBGffmkdhZmZmVkV5honPqkcgZmZmZtWSdzVxMzMzs9VGmy04ktaKiPfqGYw1Pk81b2Zmq4NSLTh/ApB0Q51iMTMzM6uKUn1wuks6EvikpC+23BkRt9UurI5XjZYKcGuFmZlZRyiV4JwMHAX0Boa32BdAp05wzMzMbPXVZoITEY8Aj0iaHBHX1jEmMzMzs4rkmQfnBkmnA59O2w+RLba5tHZhmZmZmZUvT4LzS6Bb+glwNHAFcEKtgjIzMzOrRJ4EZ5eI2L5o+w+Snq1VQGZmZmaVyjPR33JJWxQ2JG0OLK9dSGZmZmaVydOC8zXgQUkzAAGbAcfWNCozMzOzCuRZi+oBSVsBW6eiFz3DsZmZmTWyPC04pITmuRrHYmZmZlYVXmzTzMzMOh0nOGZmZtbptJvgKPMfkr6dtvtL2rX2oZmZmZmVJ08Lzi+B3YEj0vZbwC9qFpGZmZlZhfJ0Mt4tInaS9DRARLwpqXuN4zIzMzMrW54WnKWSmshWEEdSH2BFuRVK2lTSg5KmSXpB0hmpfH1J90v6a/r50XLrMDMzs64tT4Lzc2A8sJGk7wOPABdWUOcy4KsRsQ0wFDhV0jbAN4AHImIr4IG0bWZmZrbK8kz0N07SFGBvspmMD46I6eVWGBFzgDnp/luSpgObAAcBzemw64GJwNfLrcfMzMy6rnYTHEnrA3OB3xaVdYuIpZVWLmkAsCPwOLBxSn4AXgc2buMxJwEnAfTv37/SEMzMzKwTytPJ+ClgU+BNshac3sDrkt4AToyIKeVULOkjwO+AMyNikaSV+yIiJEVrj4uIq4CrAIYMGdLqMWZmZla5oaPvrfgcj10wrAqRrLo8fXDuB/aPiA0jYgNgP2ACcArZEPJVJqkbWXIzLiJuS8VvSOqb9vclazUyMzMzW2V5EpyhEbEyhYuI+4DdI+IxYK1VrVBZU821wPSIuLho1x3AMen+McDtq3puMzMzM8h3iWqOpK8DN6btw8laW5oob7j4HsDRwFRJz6SybwI/BG6WdDwwCzisjHObmZmZ5UpwjgRGA79P24+msibKSEIi4hGyvjyt2XtVz2dmZmbWUp5h4vOB09rY/VJ1wzEzMzOrXJ5h4n2Ac4FBwNqF8ojYq4ZxmZmZmZUtTyfjccCfgYHABcBM4MkaxmRmZmZWkTwJzgYRcS2wNCIeiojjALfemJmZWcPK08m4MGPxHEkHAH8H1q9dSGZmZmaVyZPgjJHUC/gqcBnQEzizlkGZmZmZVSJPgvNmRCwEFgKfBZC0R02jMjMzM6tAnj44l+UsMzMzM2sIbbbgSNod+CTQR9LZRbt6kk3yZ2ZmZtaQSl2i6g58JB3To6h8EXBILYMyMzMzq0SbCU5EPAQ8JGlsRMyqY0xmZmZmFcnTyXgtSVcBA4qP90zGZmZm1qjyJDi3AFcC1wDLaxuOmZmZWeXyJDjLIuKKmkdiZmZmViV5honfKekUSX0lrV+41TwyMzMzszLlacE5Jv38WlFZAJtXPxwzMzOzyrWb4ETEwHoEYmZmZlYt7V6ikrSupPPTSCokbSXpwNqHZmZmZlaePH1w/htYQjarMcBsYEzNIjIzMzOrUJ4EZ4uI+DGwFCAi/gWoplGZmZmZVSBPgrNE0jpkHYuRtAXwXk2jMjMzM6tAnlFUo4F7gE0ljQP2AEbWMigzMzOzSuQZRXW/pKeAoWSXps6IiPk1j8zMzMysTHlGUf072WzGd0XEBGCZpINrHpmZmZlZmfL0wRkdEQsLGxGxgOyylZmZmVlDypPgtHZMnr47ZmZmZh0iT4IzWdLFkrZIt4uBKbUIRtK+kl6U9JKkb9SiDjMzM+v88iQ4p5FN9HcTcCPwLnBqtQOR1AT8AtgP2AY4QtI21a7HzMzMOr+Sl5pS0jEhIj5bh1h2BV6KiBmp7huBg4BpdajbzMzMOhFFROkDpAeALxZ3NK5JINIhwL4RcULaPhrYLSJGtTjuJOCktLk18GIt42rHhkCjDJlvlFgaJQ5wLK1plDjAsbSmUeIAx9KaRokDHEuxzSKiT8vCPJ2FFwNTJd0PvF0ojIjTqxhcbhFxFXBVR9TdkqTJETGko+OAxomlUeIAx9LIcYBjaeQ4wLE0chzgWPLIk+Dclm61NhvYtGi7XyozMzMzWyV5ZjK+Pq1F1T8iank56ElgK0kDyRKbEcCRNazPzMzMOqk8MxkPB54hW48KSTtIuqPagUTEMmAUcC8wHbg5Il6odj1V1hCXypJGiaVR4gDH0ppGiQMcS2saJQ5wLK1plDjAsbQrTyfjKcBewMSI2DGVPR8R29YhPjMzM7NVlmcenKWtjKBaUYtgzMzMzKohTyfjFyQdCTRJ2go4HfhjbcMyMzMzK1/emYwHAe8BvwEWAmfWMKaGJGmApOcbMQZJn5L0gqRnUodwMwAk9ZZ0SkfHASU/v2dKWrcjYmoUkk6XNF3S2x05g7ukhvjnVdLijo7BVn9tJjiS1pZ0JvBj4BVg94jYJSLOj4h36xWg5XIU8IOI2CEi3unoYBpZmp27K+kNNESCU8KZQJdOcMjeo32AW8iWqukQEfHJjqrbrNpKteBcDwwBppKtD3VRXSJqbGtKGpf+07pV0rqSdpH0R0nPSnpCUo86x3A6cBjwvVTeV9LDqTXneUmfqmUwkr4s6bn0/G+QtLGk8Wn7WUl1+8JMLQR/buU9minpR5KeAg6tYn3rSborPc/nJR0u6YeSpqXX5KJ03KFp/7OSHk5lIyXdLmmipL9KGl2tuFr4IbBF+jz8RNLXJU1NsfywRnWW0trn92PAg5IerEcArXxmt5D0WHpdxtS79UDSlcDmwMvAMcBP0vu1RT3jSLEsTj/r+j1SIp5mSROKti+XNLLGdRa+R8ZK+kv6vH5O0qPpd3VXSX0k3Z9azq+RNEvShjWMqbXvmpmSfpw+t09I2rJW9RfF8YFWWEnnSPqOpBMlPZni+50apUU2Ilq9AVOL7q8JPNXWsV3hBgwAAtgjbV8HnAvMAHZJZT2BNescwznAWOCQVPZV4FvpfhPQo4bxDAL+AmyYttcnW5T1zKL6e3Xwe3QOMBM4twb1fQm4umh7M7KlQwqjE3unn1OBTVqUjQTmABsA6wDPA0Nq9Jo8n+7vR9Z/bt3C+1Wv9ybH+7NhnWJo7TM7ATgibZ8MLK7n65LqnUk23f3K3+WOuBWeez2/R9qJo5lsPcRC+eXAyBrXPQBYBgwmawSYkj6rIlsf8fcpjvPS8fumz3XNPsOtfNf0Sp+Zwnv05eLXqcavzfNF2+cA3wE2KCobA5xWz89LW7dSLThLC3cim6PG4NWIeDTd/zUwDJgTEU8CRMSiOrxWLWPYs8X+J4FjJX0HGBwRb9Uwlr2AWyJiPkBE/DOVXZG2l0eN1zBrRVuvz001qGsqsE9qHfoU2QSV7wLXSvoi8K903KPAWEknkv2xKLg/Iv4R2WXF2/jwe1ltnwP+OyL+BSvfr3pr7/Nba619ZncnuzQEWT9Dq+/3SCN6OSKmRsQK4AXggcj+ek8l+yO/J3AjQETcA7xZ43g+8F1T9L3626Kfu9c4hlK2lTRJ0lSyLhODOjCWlUolONtLWpRubwHbFe5LWlSvABtMy0mDOuJ1aBnDB7Yj4mHg02R/bMdK+nK9AmsQbb0+b7c8sOKKIv4C7ET25TMG+CawK3ArcCBpcsyIOBk4n2wpkimSNmgn1s6sKz7n1U4DfY8s44N/p9auU73vFd1fUbS9gnyjj6uq5XeNpG8XdhUfVodQ2no/xgKjImIwcAH1e59KajPBiYimiOiZbj0iYs2i+z3rGWQD6S+pkCUfCTwG9JW0C4CkHpJq/eFvGcMjxTslbQa8ERFXA9eQ/VLUyh+AQwt/sCWtDzwAfCVtN0nqVcP6W1Py9akmSR8D/hURvwZ+QvYHoVdE3A2cBWyfjtsiIh6PiG8D83h/zbV9JK2vbOTbwWQtPdX2FlDoF3Y/2X/l66a41q9Bfe1p7f0pjrHWWvvMPkZ2CQCyJWI6Uj1fizbV+XuklFnANpLWktQb2LuD4mjpUbK+j0j6PPDRWlbWyndN4f04vOjnn2oZQ/IGsJGkDSStRfaPHGSf2TmSupG14DSEPMPE7X0vAqdKmk72gb6M7IN1maRnyf6A1DpzbRnDFS32NwPPSno6xXZprQKJbCmN7wMPped/MXAG8NnUVDmF+o8Iae/1qabBwBOSngFGk/3nMkHSc2R/uM9Ox/0kdQR8nqwPzLOp/Angd8BzwO8iYnK1A4yIfwCPprr3Bu4AJqeYz6l2fTm09v5cBdyjOnQybuMzeyZwdnrftiSbCqOj3Ah8TdLTHdHJuEgzdfoeKSUiXgVuJuujdjPwdEfE0YoLgM+n36tDgdfJktNaafldMyaVfzR9bs8g+6eqpiJiKfBdsu+u+4E/p13/H3icLPH7c+uPrr92l2owW11IGkDW0a7hlxFJI0GGRMSojo6lq0stWu9EREgaQdbh+KCOjssaV2q9WB4Ry1KL5BURsUOdY5hJ9h0yv571rk7qfi3RzKzB7AxcLknAAuC4jg3HVgP9gZslrQEsAU7s4HisFW7BMTMzs07HfXDMzMys03GCY2ZmZp2OExwzMzPrdJzgmJmZWafjBMfKomxRzd9ImiFpiqQ/Sfr3ov0/kzQ7jTIolI2UNE/ZAn7T0tIFLctfUFokM+0bKunxtG96mjq+tXjGSXpR2UJ016UJpwqL9S1Mj3+maAZQM6sCSSHpp0Xb5xR+T5UtxDhb7y/a+YVWyv8s6Yri74oW519e9N3wrKSvtnWsWTF/SGyVpeG0vwcejojNI2Jnshlg+6X9awD/DrwKfKbFw29K80U0AxdK2ri4PCIGkQ27LMzQeT1wUnrMtmSTfbVmHPBxsgmx1gFOKNo3KZ17h4j4bllP2sza8h7wRbW9mvYl6ff3UOC6ouSkUL4N2e9ty++KgneKvhv2IVs0dnS1grfOywmOlWMvYElEXFkoiIhZEXFZ2mwmW6DuCuCI1k4QEXOBv5GtwL2SsqUu1uP9xes2Ilt1u7B457Q2znd3JGSzbPYr76mZ2SpaRjYbdcmZdCNiejq2ZSLUnWwG+HYXrEzfGycBo9I/WmZtcoJj5RgEPFVi/xFkq9uOBw4oXC4qJmlzYHPgpVR0eJqGfDawPnBnKr8EeFHSeEn/KankUhiprqNJC10mu6em7f+R1BCr3Jp1Mr8AjlKJteck7Ua2WOW8VHRW+p2fA/wlIp7JU1FEzACayP75MWuTExyrmKRfpATiSUndgf2B30fEIrL1SYYVHV5IZH4L/GdE/DOVFy5d/RvZirlfA0iXlIYA95EtzlicuLTml2SXzial7aeAzSJie7K1w35fyXM1sw9Lv+u/Ak5vZXchkbkIODzen122cIlqI2C9tEyGWdU4wbFyvEDR6sIRcSrZQo59yJKZ3sDUtFbKnnzwMlWhr81uETG+5YnTl9+dZCtzF8r+FhFXpDq2V7aS7b2p4+E1heMkjU4xnF302EURsTjdvxvoVqKvgJmV72fA8WSXmItdkn7nP1X0j8dKaQHHe4BPS9q0aEDAya1Vklp/lwNzqxu+dTZOcKwcfwDWlvSVorJ1088jgBMiYkBEDAAGAvsURkXltCdZ/xwkHVB0rX0rsi+2BRExLH1pnpCOO4EsuToiIlYUTiTp3wqPl7Qr2Wf+H6v2dM2sPak19mayJCe39Pu5B/C3iHi1aEDAla0c2we4Eri8qCXIrFVebNNWWVp1+WDgEknnkl1Tf5tsZMMlwMlFx74t6RFgeDunPVzSnmQJyGvAyFR+dKrnX2QdFI+KiOWtPP5KYBbwp5TP3JYubx0CfEXSMuAdYIS/GM1q5qfAqJzHniXpP4BuwHNkl5dbs066xNWN7DvgBuDiCuO0LsCLbZqZmVmn40tUZmZm1uk4wTEzM7NOxwmOmZmZdTpOcMzMzKzTcYJjZmZmnY4THDMzM+t0nOCYmZlZp/N/NsT2mYQLkY8AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = (df_gap22_ram_prob['foundCandidBSlotRMC'].astype(float)+df_gap22_ram_prob['foundCandidBSlotRMD'].astype(float))\n", - "gap_22 = (df_gap22_ram_prob['numRdMissClean'].astype(float)+df_gap22_ram_prob['numRdMissDirty'].astype(float))\n", - "\n", - "gap_25_prob = (df_gap25_ram_prob['foundCandidBSlotRMC'].astype(float)+df_gap25_ram_prob['foundCandidBSlotRMD'].astype(float))\n", - "gap_25 = (df_gap25_ram_prob['numRdMissClean'].astype(float)+df_gap25_ram_prob['numRdMissDirty'].astype(float))\n", - "\n", - "npb_C_prob = (df_npbC_ram_prob['foundCandidBSlotRMC'].astype(float)+df_npbC_ram_prob['foundCandidBSlotRMD'].astype(float))\n", - "npb_C = (df_npbC_ram_prob['numRdMissClean'].astype(float)+df_npbC_ram_prob['numRdMissDirty'].astype(float))\n", - "\n", - "npb_D_prob = (df_npbD_ram_prob['foundCandidBSlotRMC'].astype(float)+df_npbD_ram_prob['foundCandidBSlotRMD'].astype(float))\n", - "npb_D = (df_npbD_ram_prob['numRdMissClean'].astype(float)+df_npbD_ram_prob['numRdMissDirty'].astype(float))\n", - "\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,100])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, 100*gap_22_prob[i]/gap_22[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, 100*npb_C_prob[i]/npb_C[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "\n", - "plt.ylabel(\"Percentage of probed Rd-MC and Rd-Md\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,100])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, 100*gap_25_prob[i]/gap_25[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - " \n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, 100*npb_D_prob[i]/npb_D[i], width=1, color=cmap(1))\n", - " \n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "\n", - "plt.ylabel(\"Percentage of probed Rd-MC and Rd-Md\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAh3UlEQVR4nO3deZxcVZ338c+XJmHNYiDwRCAkREYFIluAIKgN6LBNDDiE9WFRkUF2EXceI5pBHRcGQcMrLBPEKAEkgoRhGUxDAAkkbAEiiglLYiTJaBKiQLbf88c9HSptd6VSVbequvr7fr3qVXVP3b7n17Xc/vU5556jiMDMzMysmWxS7wDMzMzMqs0JjpmZmTUdJzhmZmbWdJzgmJmZWdNxgmNmZmZNxwmOmZmZNZ3cEhxJN0haJOm5grIBku6X9Id0/65ULkk/kvSSpGcl7ZNXXGZmZtb88mzBmQgc0aHsy8ADEbEr8EDaBjgS2DXdzgLG5xiXmZmZNbncEpyIeAj4S4fi0cCN6fGNwDEF5T+NzGNAf0mD8orNzMzMmtumNa5v+4hYmB7/Gdg+Pd4BeK1gv/mpbCEdSDqLrJWHrbbaat/3ve99+UVrZv/gxRdfBOC9731vnSMxM4NZs2YtiYiBHctrneCsExEhaaPXiYiICcAEgBEjRsTMmTOrHpuZda21tRWAtra2usZhZgYg6ZXOymt9FdXr7V1P6X5RKl8A7FSw346pzMzMzGyj1TrBuRM4PT0+HbijoPy0dDXVSGBZQVeWmZmZ2UbJrYtK0i+AVmBbSfOBscB3gFskfRp4BTg+7X43cBTwEvB34JN5xWVmZmbNL7cEJyJO6uKpwzrZN4Bzq1Hv0qVLWbjQjT+NZtCgQfTv37/eYZiZWQ9Rt0HGeVmyZAlDhgxhiy22qHcolrz55pssWLDACY6ZmdVM0y3VsGrVKjbffPN6h2EFNt98c1atWlXvMMzMrAdpugQHQFK9Q7ACfj/MzKzWmq6LqtDIsfdW5TiPXXZ4l88tW7aM0aNHA/D000/z/ve/n80224wlS5bQp08fWlpaiAg+85nPcMYZZwAwdOhQdt55Z9asWcOQIUOYOHEiLS0tAFx++eVce+21zJ07d11iMHToUA477DCuu+46AG666SZOO+005s2bx5AhQ9aLp9ix240bN44dd9xxXTztzjjjDJ555hn69u3L1ltvzaRJk0rqVpo4cSLz58/n0ksv3eC+ZmZmtdCULTi11K9fP9ra2mhra2Ovvfbi1ltvpa2tjW233ZZbb72Vhx9+mKlTpzJx4kSmTZsGQEtLC21tbUyfPp1evXpx3333rTveXXfdxaGHHsojjzyyrqylpYVXX32Vt99+G4DbbruNfffdt9N4ih27FFdddRUPPvggBx10ENdcc816z61Zs2ajjmVmZlYvTnBqoH///nzta1/j5z//+Xrla9euZenSpWQXkcFTTz3F7rvvzmc/+1l+9rOfrbfvkUceydSpU1m0aBG9evXaYMtKx2M/9NBD7L333owaNYoZM2ZsMOZ99tmHV155hYkTJzJmzBiOOeYYrrzySq699loOOOAADjjgAG644YZ1+8+YMYNRo0ax9957M3369FJeFjMzs9w4wamRnXbaiQULssmZ16xZQ2trK0OGDGHNmjUcfnjWBTZp0iROP/10RowYwQsvvLDewNwTTzyRyZMnM3nyZI4//vhO6yh27Isvvpg77riDO++8c11LUDH33Xcfu+++OwArVqxgypQpnHrqqVx99dVMnz6d6dOnc+WVV7J48WIgG9z961//milTpvC5z32uvBfJzMysSpzg1Mhrr73GDjvsALzTjTR79mwWL17M0qVLWbt2LXfccQfjxo3jiCOOYNGiRdx9993rfn7QoEGsWLGCm2++mVGjRq0rv/rqq2ltbeXMM8/s8tgAy5cvZ/DgwUhi//33B+Dhhx+mtbWV1tZWVqxYAcD555/PRz7yEd588811xxw5ciSSmDt3LsOHD6d379707t2b4cOHM2/ePAD2228/AIYMGcKyZctyfCXNzMw2zAlODSxbtoxvf/vbnHTS+nMf9uvXj7PPPpvvfve7TJs2jdGjR3PPPfdwzz33MHXqVCZNmrTe/ueeey7HHnvsenP8nHfeebS1ta0bgNzZsQH69OnD/PnzAXjiiScAOPjgg9eNH9p6662Bd8bgjB8/ft3l9u2DlIcOHcqzzz7LypUrWblyJbNnz2bo0KEAzJo1C4BXX32Vvn37Vv6imZmZVaCpr6KqtzFjxtDS0sLatWv51Kc+xaGHHvoP+5x44okMHz6cJUuWcPLJJ68rHzZsGHPmzGH58uXryo466iiOOuqokutvP/ZXv/pVfvCDHzBq1Cje/e5306dPn7J+n+22245zzjmH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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAh30lEQVR4nO3deZhcVZ3/8feHJmHNYiAwkRASkJ8KRrYAQVBbkGEzAg6BAMOiIiI7iDs/I04GdVwYBA1PWCaIUQJIBAnDMpiGgBJJ2AJElAkEEiNJ1CQEgWzf+eOeDpW2u7pSVbeqUv15PU89VffUrXu+XVV9+9vnnHuOIgIzMzOzZrJJvQMwMzMzqzYnOGZmZtZ0nOCYmZlZ03GCY2ZmZk3HCY6ZmZk1HSc4ZmZm1nRyS3Ak3SBpkaRnCsoGSLpf0h/T/TtSuST9UNILkp6WtHdecZmZmVnzy7MFZyJweIeyLwMPRMSuwANpG+AIYNd0OxMYn2NcZmZm1uRyS3Ai4iHgrx2KjwZuTI9vBI4pKP9JZB4F+ksalFdsZmZm1tw2rXF920fEwvT4z8D26fEOwCsF+81PZQvpQNKZZK08bLXVVvu85z3vyS9aM/sHzz//PADvfve76xyJmRnMmjVrSUQM7Fhe6wRnnYgISRu8TkRETAAmAIwYMSJmzpxZ9djMrGutra0AtLW11TUOMzMASfM6K6/1VVSvtnc9pftFqXwBsGPBfoNTmZmZmdkGq3WCcydwWnp8GnBHQfmp6WqqkcCygq4sMzMzsw2SWxeVpJ8DrcC2kuYDY4FvA7dI+jQwDzg+7X43cCTwAvB34JN5xWVmZmbNL7cEJyJO7OKpQzrZN4BzqlHv0qVLWbjQjT+NZtCgQfTv37/eYZiZWQ9Rt0HGeVmyZAlDhw5liy22qHcolrzxxhssWLDACY6ZmdVM0y3VsGrVKjbffPN6h2EFNt98c1atWlXvMMzMrAdpugQHQFK9Q7AC/jzMzKzWmq6LqtDIsfdW5TiPXnZYl88tW7aMo48+GoAnn3yS9773vWy22WYsWbKEPn360NLSQkTwmc98htNPPx2AYcOGsdNOO7FmzRqGDh3KxIkTaWlpAeDyyy/n2muvZe7cuesSg2HDhnHIIYdw3XXXAXDTTTdx6qmn8uKLLzJ06ND14il27Hbjxo1j8ODB6+Jpd/rpp/PUU0/Rt29ftt56ayZNmlRSt9LEiROZP38+l156abf7mpmZ1UJTtuDUUr9+/Whra6OtrY0999yTW2+9lba2NrbddltuvfVWHn74YaZOncrEiROZNm0aAC0tLbS1tTF9+nR69erFfffdt+54d911FwcffDCPPPLIurKWlhZefvll3nrrLQBuu+029tlnn07jKXbsUlx11VU8+OCDHHjggVxzzTXrPbdmzZoNOpaZmVm9OMGpgf79+/O1r32Nn/3sZ+uVr127lqVLl5JdRAZPPPEEu+++O5/73Of46U9/ut6+RxxxBFOnTmXRokX06tWr25aVjsd+6KGH2GuvvRg1ahQzZszoNua9996befPmMXHiREaPHs0xxxzDlVdeybXXXsv+++/P/vvvzw033LBu/xkzZjBq1Cj22msvpk+fXsrbYmZmlhsnODWy4447smBBNjnzmjVraG1tZejQoaxZs4bDDsu6wCZNmsRpp53GiBEjeO6559YbmDtmzBgmT57M5MmTOf744zuto9ixL774Yu644w7uvPPOdS1Bxdx3333svvvuAKxYsYIpU6ZwyimncPXVVzN9+nSmT5/OlVdeyeLFi4FscPevfvUrpkyZwkUXXVTem2RmZlYlTnBq5JVXXmGHHXYA3u5Gmj17NosXL2bp0qWsXbuWO+64g3HjxnH44YezaNEi7r777nWvHzRoECtWrODmm29m1KhR68qvvvpqWltbOeOMM7o8NsDy5csZMmQIkthvv/0AePjhh2ltbaW1tZUVK1YAcN555/HhD3+YN954Y90xR44ciSTmzp3L8OHD6d27N71792b48OG8+OKLAOy7774ADB06lGXLluX4TpqZmXXPCU4NLFu2jG9961uceOL6cx/269ePs846i+985ztMmzaNo48+mnvuuYd77rmHqVOnMmnSpPX2P+ecczj22GPXm+Pn3HPPpa2tbd0A5M6ODdCnTx/mz58PwGOPPQbAQQcdtG780NZbbw28PQZn/Pjx6y63bx+kPGzYMJ5++mlWrlzJypUrmT17NsOGDQNg1qxZALz88sv07du38jfNzMysAk19FVW9jR49mpaWFtauXcunPvUpDj744H/YZ8yYMQwfPpwlS5Zw0kknrSvfZZddmDNnDsuXL19XduSRR3LkkUeWXH/7sb/61a/y/e9/n1GjRvHOd76TPn36lPXzbLfddpx99tkc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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = (df_gap22_ram_prob['foundCandidBSlotRMC'].astype(float))\n", - "gap_22 = (df_gap22_ram_prob['numRdMissClean'].astype(float))\n", - "\n", - "gap_25_prob = (df_gap25_ram_prob['foundCandidBSlotRMC'].astype(float))\n", - "gap_25 = (df_gap25_ram_prob['numRdMissClean'].astype(float))\n", - "\n", - "npb_C_prob = (df_npbC_ram_prob['foundCandidBSlotRMC'].astype(float))\n", - "npb_C = (df_npbC_ram_prob['numRdMissClean'].astype(float))\n", - "\n", - "npb_D_prob = (df_npbD_ram_prob['foundCandidBSlotRMC'].astype(float))\n", - "npb_D = (df_npbD_ram_prob['numRdMissClean'].astype(float))\n", - "\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,100])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, 100*gap_22_prob[i]/gap_22[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, 100*npb_C_prob[i]/npb_C[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "\n", - "plt.ylabel(\"Percentage of probed Rd-MC\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,100])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, 100*gap_25_prob[i]/gap_25[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - " \n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, 100*npb_D_prob[i]/npb_D[i], width=1, color=cmap(1))\n", - " \n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "\n", - "plt.ylabel(\"Percentage of probed Rd-MC\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_308484/3573616793.py:27: RuntimeWarning: invalid value encountered in double_scalars\n", - " plt.bar(i*tickSize-barWidth/2, 100*gap_22_prob[i]/gap_22[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - "/tmp/ipykernel_308484/3573616793.py:31: RuntimeWarning: invalid value encountered in double_scalars\n", - " plt.bar((offset+i)*tickSize-barWidth/2, 100*npb_C_prob[i]/npb_C[i], width=1, color=cmap(1))\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAh0klEQVR4nO3deZhcVZ3/8feHJmHNYiAwEYgJkUHByNZAENQGdNiMAYew/lhUZJBdBnd+RjQijguDoOEJi2EwSgCJIGFYBtMQQAIJEAJEFBOWxEiS0SQEgWzf+eOeDpW2l9tVXUtXf17PU0/VPXXrnm9XVd/+9rlnUURgZmZmVk82qXYAZmZmZt3NCY6ZmZnVHSc4ZmZmVnec4JiZmVndcYJjZmZmdccJjpmZmdWdsiU4km6QtETSswVlgyTdL+mP6f5dqVySfizpRUnPSNq7XHGZmZlZ/StnC84k4PBWZV8BHoiIXYAH0jbAEcAu6XYmMKGMcZmZmVmdK1uCExEPAX9tVTwGuDE9vhE4uqD8vyLzGDBQ0pByxWZmZmb1bdMK17d9RCxOj/8CbJ8e7wC8WrDfwlS2mFYknUnWysNWW221z/ve977yRWtmJXnhhRcA2HXXXasciZn1ZLNnz14WEYO78ppKJzgbRERI6vI6ERExEZgI0NjYGLNmzer22MysezQ1NQHQ3Nxc1TjMrGeT9HJXX1PpUVSvtVx6SvdLUvkiYKeC/XZMZWZmZmZdVukE507gtPT4NOCOgvJT02iqUcCKgktZZmZmZl1StktUkn4JNAHbSloIjAMuB26R9FngZeC4tPvdwJHAi8DfgU+XKy4zMzOrf2VLcCLixHaeOrSNfQM4pzvqXb58OYsXu/Gn1gwZMoSBAwdWOwwzM+slqtbJuFyWLVvGsGHD2GKLLaodiiVvvvkmixYtcoJjZmYVU3dLNaxZs4bNN9+82mFYgc0335w1a9ZUOwwzM+tF6i7BAZBU7RCsgD8PMzOrtLq7RFVo1Lh7u+U4j116WLvPrVixgjFjxgDw9NNP8/73v5/NNtuMZcuW0a9fPxoaGogIPve5z3H66acDMHz4cN7znvewbt06hg0bxqRJk2hoaADgsssu49prr2X+/PkbEoPhw4dz6KGHct111wFw0003ceqpp7JgwQKGDRu2UTwdHbvF+PHj2XHHHTfE0+L0009nzpw59O/fn6233prJkyfnuqw0adIkFi5cyCWXXNLpvmZmZpVQly04lTRgwACam5tpbm5mzz335NZbb6W5uZltt92WW2+9lYcffphp06YxadIkpk+fDkBDQwPNzc3MmDGDPn36cN9992043l133cUhhxzCI488sqGsoaGBV155hbfffhuA2267jX322afNeDo6dh5XXXUVDz74IAceeCDXXHPNRs+tW7euS8cyMzOrFic4FTBw4EC+/vWv84tf/GKj8vXr17N8+XKyQWTw1FNPsfvuu/P5z3+en//85xvte8QRRzBt2jSWLFlCnz59Om1ZaX3shx56iL322ovRo0czc+bMTmPee++9efnll5k0aRJjx47l6KOP5sorr+Taa69l//33Z//99+eGG27YsP/MmTMZPXo0e+21FzNmzMjztpiZmZWNE5wK2WmnnVi0KJuced26dTQ1NTFs2DDWrVvHYYdll8AmT57MaaedRmNjI88///xGHXNPOOEEpkyZwpQpUzjuuOParKOjY1900UXccccd3HnnnRtagjpy3333sfvuuwOwatUqpk6dyimnnMLVV1/NjBkzmDFjBldeeSVLly4Fss7dv/nNb5g6dSpf+MIXinuTzMzMuokTnAp59dVX2WGHHYB3LiPNnTuXpUuXsnz5ctavX88dd9zB+PHjOfzww1myZAl33333htcPGTKEVatWcfPNNzN69OgN5VdffTVNTU2cccYZ7R4bYOXKlQwdOhRJ7LfffgA8/PDDNDU10dTUxKpVqwA477zz+OhHP8qbb7654ZijRo1CEvPnz2fkyJH07duXvn37MnLkSBYsWADAvvvuC8CwYcNYsWJFGd9JMzOzzjnBqYAVK1bw3e9+lxNP3HjuwwEDBnDWWWfxve99j+nTpzNmzBjuuece7rnnHqZNm8bkyZM32v+cc87hmGOO2WiOn3PPPZfm5uYNHZDbOjZAv379WLhwIQBPPPEEAAcddNCG/kNbb7018E4fnAkTJmwYbt/SSXn48OE888wzrF69mtWrVzN37lyGDx8OwOzZswF45ZVX6N+/f+lvmpmZWQnqehRVtY0dO5aGhgbWr1/PZz7zGQ455JB/2OeEE05g5MiRLFu2jJNOOmlD+YgRI5g3bx4rV67cUHbkkUdy5JFH5q6/5dhf+9rX+OEPf8jo0aN597vfTb9+/Yr6ebbbbjvOPvts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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAht0lEQVR4nO3de7hVVb3/8ffHLXjlIooeUhE0f5VG3raKabXTOt4itCOKelQqM/Ou2b0TWRyz08VMCx+8hBklapKmHi/H2IqWJKiISpahKEQCFSCmcvv+/phj42K3L4u11lxrsfbn9Tzr2WuOOfcc373W2nN/9xhjjqGIwMzMzKyRbFLrAMzMzMwqzQmOmZmZNRwnOGZmZtZwnOCYmZlZw3GCY2ZmZg3HCY6ZmZk1nNwSHEnXS1ok6emCsgGS7pf0p/R1m1QuST+U9LykpyTtm1dcZmZm1vjybMGZCBzRruyLwAMRsTvwQNoGOBLYPT3OAMbnGJeZmZk1uNwSnIh4CPh7u+KRwA3p+Q3AMQXlP43Mo0B/SYPyis3MzMwa26ZVrm+HiFiYnv8V2CE93xF4ueC4+alsIe1IOoOslYetttpqv3e+8535RWtm/+K5554D4B3veEeNIzEzg5kzZy6JiIHty6ud4KwTESFpg9eJiIgJwASA5ubmmDFjRsVjM7POtbS0ANDa2lrTOMzMACTN66i82ndRvdLW9ZS+LkrlC4CdC47bKZWZmZmZbbBqJzh3AKel56cBtxeUn5ruphoOLCvoyjIzMzPbILl1UUn6BdACbCdpPjAWuAy4WdIngXnA8enwu4GjgOeBfwIfzysuMzMza3y5JTgRcWInuw7r4NgAzq5EvUuXLmXhQjf+1JtBgwbRv3//WodhZmY9RM0GGedlyZIlDBkyhC222KLWoVjy+uuvs2DBAic4ZmZWNQ23VMOqVavYfPPNax2GFdh8881ZtWpVrcMwM7MepOESHABJtQ7BCvj9MDOzamu4LqpCw8feW5HzPHrJ4Z3uW7ZsGSNHjgTgySef5F3vehebbbYZS5YsoU+fPjQ1NRERfOpTn2LMmDEADB06lF122YU1a9YwZMgQJk6cSFNTEwCXXnop11xzDXPnzl2XGAwdOpTDDjuMa6+9FoAbb7yRU089lRdeeIEhQ4asF09X524zbtw4dtppp3XxtBkzZgyzZs2ib9++bL311kyaNKmobqWJEycyf/58vvrVr3Z7rJmZWTU0ZAtONfXr14/W1lZaW1vZe++9ueWWW2htbWW77bbjlltu4eGHH+auu+5i4sSJTJ06FYCmpiZaW1uZNm0avXr14r777lt3vjvvvJNDDz2URx55ZF1ZU1MTL730Em+++SYAt956K/vtt1+H8XR17mJceeWVPPjggxx88MFcffXV6+1bs2bNBp3LzMysVpzgVEH//v35yle+ws9//vP1yteuXcvSpUvJbiKDJ554gj333JPPfOYz/OxnP1vv2COPPJK77rqLRYsW0atXr25bVtqf+6GHHmKfffZhxIgRTJ8+vduY9913X+bNm8fEiRMZNWoUxxxzDFdccQXXXHMNBx54IAceeCDXX3/9uuOnT5/OiBEj2GeffZg2bVoxL4uZmVlunOBUyc4778yCBdnkzGvWrKGlpYUhQ4awZs0aDj886wKbNGkSp512Gs3NzTz77LPrDcwdPXo0kydPZvLkyRx//PEd1tHVuS+66CJuv/127rjjjnUtQV2577772HPPPQFYsWIFU6ZM4ZRTTuGqq65i2rRpTJs2jSuuuILFixcD2eDuX//610yZMoULL7ywtBfJzMysQpzgVMnLL7/MjjvuCLzVjTR79mwWL17M0qVLWbt2Lbfffjvjxo3jiCOOYNGiRdx9993rvn/QoEGsWLGCm266iREjRqwrv+qqq2hpaeH000/v9NwAy5cvZ/DgwUjigAMOAODhhx+mpaWFlpYWVqxYAcC5557LBz7wAV5//fV15xw+fDiSmDt3LsOGDaN379707t2bYcOG8cILLwCw//77AzBkyBCWLVuW4ytpZmbWPSc4VbBs2TK+9a1vceKJ68992K9fP84880y+/e1vM3XqVEaOHMk999zDPffcw1133cWkSZPWO/7ss8/m2GOPXW+On3POOYfW1tZ1A5A7OjdAnz59mD9/PgCPPfYYAIcccsi68UNbb7018NYYnPHjx6+73b5tkPLQoUN56qmnWLlyJStXrmT27NkMHToUgJkzZwLw0ksv0bdv3/JfNDMzszI09F1UtTZq1CiamppYu3Ytn/jEJzj00EP/5ZjRo0czbNgwlixZwkknnbSufLfddmPOnDksX758XdlRRx3FUUcdVXT9bef+8pe/zPe+9z1GjBjB2972Nvr06VPSz7P99ttz1llnccgh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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = (df_gap22_ram_prob['foundCandidBSlotRMD'].astype(float))\n", - "gap_22 = (df_gap22_ram_prob['numRdMissDirty'].astype(float))\n", - "\n", - "gap_25_prob = (df_gap25_ram_prob['foundCandidBSlotRMD'].astype(float))\n", - "gap_25 = (df_gap25_ram_prob['numRdMissDirty'].astype(float))\n", - "\n", - "npb_C_prob = (df_npbC_ram_prob['foundCandidBSlotRMD'].astype(float))\n", - "npb_C = (df_npbC_ram_prob['numRdMissDirty'].astype(float))\n", - "\n", - "npb_D_prob = (df_npbD_ram_prob['foundCandidBSlotRMD'].astype(float))\n", - "npb_D = (df_npbD_ram_prob['numRdMissDirty'].astype(float))\n", - "\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,100])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, 100*gap_22_prob[i]/gap_22[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, 100*npb_C_prob[i]/npb_C[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "\n", - "plt.ylabel(\"Percentage of probed Rd-Md\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,100])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, 100*gap_25_prob[i]/gap_25[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - " \n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, 100*npb_D_prob[i]/npb_D[i], width=1, color=cmap(1))\n", - " \n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "\n", - "plt.ylabel(\"Percentage of probed Rd-Md\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAhY0lEQVR4nO3de5xXVb3/8de7EUUMQWH0oIMyXn7mhZOXUTHpNEGGmoT1S4P8qVjGsaS8dNX6RZ4fp6sejkc9+gAlLElRi7zm5ZgkWpCgIgpahrchlMESI/ECfH5/7DX4dZj7zPfCnvfz8ZjHfPfa+7vXZ77f7+z5zFprr6WIwMzMzCxP3lPuAMzMzMx6mhMcMzMzyx0nOGZmZpY7TnDMzMwsd5zgmJmZWe5sU+4AumPw4MExbNiwcodh1qs8/fTTAOy3335ljsTMDBYvXrwmIqqbl2/VCc6wYcNYtGhRucMw61Xq6+sBmDdvXlnjMDMDkPR8S+XuojIzM7PccYJjZmZmueMEx8zMzHJnqx6D05K3336bhoYG3njjjXKHYu3o27cvNTU19OnTp9yhmJlZzuQuwWloaKB///4MGzYMSeUOx1oREbzyyis0NDRQW1tb7nDMzCxnctdF9cYbbzBo0CAnNxVOEoMGDXJLm5mZFUXuEhzAyc1Wwu+TmZkVS9G6qCTNBE4AVkfEQc32fQW4GKiOiDXK/tJdChwPvA5MjIhHuhvDiCl3d/cUACy4aEyr+9auXcu4ceMAeOyxx9h///3ZbrvtWLNmDf3796eqqoqI4POf/zwTJ04EoLa2lj333JONGzcybNgwZs2aRVVVFQDf+973mDFjBitWrNicANTW1jJ69GiuvvpqAH72s59x2mmn8eyzz9J8osO2zt1k6tSp1NTUbI6nycSJE1myZAk77rgj733ve5k9ezYDBw5s9/WZNWsWDQ0NfPvb3273WDMzs1IoZgvOLODY5oWShgIfBV4oKD4O2Dd9TQKuLGJcPWrAgAHMmzePefPmcfDBB3PTTTcxb948Bg8ezE033cSDDz7IHXfcwaxZs7j//vsBqKqqYt68ecyfP58+ffpwzz33bD7f7bffzqhRo3jooYc2l1VVVfHCCy/w5ptvAnDzzTdz2GGHtRhPW+fuiMsuu4zf/va3HH300Vx11VXv2rdx48ZOncvMzKxcipbgRMQDwF9b2DUN+DoQBWXjgJ9GZgEwUNKQYsVWagMHDuRb3/oWP//5z99VvmnTJl599VUispfi0Ucf5cADD+QLX/gC11133buOPe6447jjjjtYvXo1ffr0abdlpfm5H3jgAQ455BDGjh3LwoUL24350EMP5fnnn2fWrFmcdNJJnHjiiVx66aXMmDGDI488kiOPPJKZM2duPn7hwoWMHTuWQw45hPnz5wOwdOlSPvKRjzBq1ChOPvlk1q9f3269ZmZmPaGkY3AkjQNWRsSSZrt2B14s2G5IZS2dY5KkRZIWNTY2FinSnjd06FBWrlwJZC0h9fX1DBs2jI0bNzJmTNYFNnv2bE4//XTq6upYtmwZb7/99ubnjx8/njlz5jBnzhxOPvnkVutp7dznn38+t9xyC7feeuvmlqC23HPPPRx44IEArFu3jrlz53Lqqady+eWXM3/+fObPn8+ll15K03vw9ttvc9tttzF37lzOO+88AM4++2xmzpzJb37zG44++miuueaaLrxyZmZmnVeyBEdSP+BC4DvdOU9ETI+Iuoioq67eYm2tivXiiy+y++5ZztbUjbR06VIaGxt59dVX2bRpE7fccgtTp07l2GOPZfXq1dx5552bnz9kyBDWrVvHDTfcwNixYzeXX3755dTX13PmmWe2em6A1157jT322ANJHHHEEQA8+OCD1NfXU19fz7p16wD40pe+xIc+9CHWr1+/+ZwjRoxAEitWrGD48OFsu+22bLvttgwfPpxnn30WgMMPPxzI1gdbu3YtAE8++SSnnXYa9fX1XH/99bz00kvFennNzMzepZTz4OwN1AJL0uDZGuARSUcAK4GhBcfWpLJcWLt2Ld///ve3GIQ7YMAAzjrrLH74wx8yZswYxo0bx8UXXwzAn//8Zy644ILNA5ghaxFZtmwZ22+//eayyZMnM3ny5C3qLDz3j370I/r3709DQwM1NTU8/PDD7LPPPowcOXKLBRMvu+wyRo4c+a6ypkHKtbW1PP7447z11ltA1gVVW1vLsmXLWLx4MQAvvPACO+64IwAHHXQQ119/PUOGZL2NTc8zMzMrtpIlOBGxFNilaVvSc0BduovqVmCypBuAI4G1EbGqVLEVy0knnURVVRWbNm3is5/9LKNGjdrimPHjxzN8+HDWrFnDZz7zmc3le++9N8uXL+e1117bXHb88cdz/PHHd7j+pnNfeOGF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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = df_gap22_ram_prob['actDelayedDueToTagAct'].astype(float)/1000\n", - "gap_25_prob = df_gap25_ram_prob['actDelayedDueToTagAct'].astype(float)/1000\n", - "npb_C_prob = df_npbC_ram_prob['actDelayedDueToTagAct'].astype(float)/1000\n", - "npb_D_prob = df_npbD_ram_prob['actDelayedDueToTagAct'].astype(float)/1000\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "#app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "#app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,150])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_22_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_C_prob[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"ACT delayed (K)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "#app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "#app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,150])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_25_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Probe' if i==0 else None)\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_D_prob[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"ACT delayed (K)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - }, - "orig_nbformat": 4, - "vscode": { - "interpreter": { - "hash": "e7370f93d1d0cde622a1f8e1c04877d8463912d04d973331ad4851f04de6915a" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/plots_1GBdramCache/data-plots.ipynb b/plots_1GBdramCache/data-plots.ipynb index cb3ad813da..2596a775b4 100644 --- a/plots_1GBdramCache/data-plots.ipynb +++ b/plots_1GBdramCache/data-plots.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 15, + "execution_count": 65, "metadata": {}, "outputs": [], "source": [ @@ -14,9 +14,6 @@ "import statistics\n", "\n", "cmap = plt.get_cmap('Set1')\n", - "cmap2 = plt.get_cmap('tab20')\n", - "cmap3 = plt.get_cmap('tab20c')\n", - "\n", "\n", "Stats = ['simSeconds ',\n", "'hostSeconds ',\n", @@ -91,22 +88,8 @@ "'system.mem_ctrl.avgTimeInLocRead ',\n", "'system.mem_ctrl.avgTimeInLocWrite ',\n", "'system.mem_ctrl.avgTimeInFarRead ',\n", - "'system.mem_ctrl.missRatio ',\n", - "'system.loc_mem_ctrl.dram.actDelayedDueToTagAct ',\n", - "'system.loc_mem_ctrl.dram.avgFBLenEnq',\n", - "'system.loc_mem_ctrl.dram.avgReadFBPerEvent',\n", - "'system.loc_mem_ctrl.dram.totNumberRefreshEvent',\n", - "'system.loc_mem_ctrl.dram.totReadFBSent',\n", - "'system.loc_mem_ctrl.dram.totReadFBFailed',\n", - "'system.loc_mem_ctrl.dram.totReadFBByRdMC',\n", - "'system.loc_mem_ctrl.dram.totStallToFlushFB',\n", - "'system.loc_mem_ctrl.dram.totPktsPushedFB',\n", - "'system.loc_mem_ctrl.dram.maxFBLenEnq',\n", - "'system.loc_mem_ctrl.dram.refSchdRFB',\n", - "'system.mem_ctrl.totTimeTagCheckResRdH',\n", - "'system.mem_ctrl.totTimeTagCheckResRdMC',\n", - "'system.mem_ctrl.totTimeTagCheckResRdMD'\n", - "]\n", + "'system.mem_ctrl.missRatio '\n", + " ]\n", "\n", "dfCols = [\n", " 'app',\n", @@ -183,21 +166,7 @@ " 'avgTimeInLocRead',\n", " 'avgTimeInLocWrite',\n", " 'avgTimeInFarRead',\n", - " 'missRatio',\n", - " 'actDelayedDueToTagAct',\n", - " 'avgFBLenEnq',\n", - " 'avgReadFBPerEvent',\n", - " 'totNumberRefreshEvent',\n", - " 'totReadFBSent',\n", - " 'totReadFBFailed',\n", - " 'totReadFBByRdMC',\n", - " 'totStallToFlushFB',\n", - " 'totPktsPushedFB',\n", - " 'maxFBLenEnq',\n", - " 'refSchdRFB',\n", - " 'totTimeTagCheckResRdH',\n", - " 'totTimeTagCheckResRdMC',\n", - " 'totTimeTagCheckResRdMD'\n", + " 'missRatio'\n", "\n", " ]\n", "##########################################################\n", @@ -260,15 +229,12 @@ " df['BWBloat'] = (df['loc1AvgRdBW'].astype(float) + df['loc1AvgWrBW'].astype(float) +\n", " df['loc2AvgRdBW'].astype(float) + df['loc2AvgWrBW'].astype(float) +\n", " df['farAvgRdBW'].astype(float) + df['farAvgWrBW'].astype(float)) / ((df['avgRdBWSys'].astype(float) + df['avgWrBWSys'].astype(float)) / 1000000)\n", - " \n", - " df['avgTCLatRdM'] = (df['totTimeTagCheckResRdMC'].astype(float)+df['totTimeTagCheckResRdMD'].astype(float)) / (df['numRdMissClean'].astype(float)+df['numRdMissDirty'].astype(float))\n", - "\n", " return df" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 66, "metadata": {}, "outputs": [], "source": [ @@ -298,40 +264,29 @@ "df_npbD_noDC = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/noDC/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Baseline Analysis" - ] - }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 93, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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WoT33ntPyhIREYHZs2fDw8NDmm7W2dkZQ4YM0WgWIiIiIiKqXJULi5iYGAAPeyxWrVqlctmTiYkJmjZtilWrVmk03LJlyzBt2jSMHTsWN2/ehLOzMz744ANMnz5dajN58mQUFRVhzJgxyM/PR9euXbFz507ew4KIiIiIqA7JhJr37+7Zsye2bNkCW1vb2spU5xQKBaytrVFQUMDLoohIrxUVFUk9yoWFhbCwsNByIiIi0mfqfE9We1aoP/74o9rBiIiIiIjoxVSt6WavXbuG7du34+rVqygtLVVZ9+jmdURERERE9PJQu7BITEzEoEGD0KxZM6SlpcHb2xuXL1+GEAJt27atjYxERERERKTj1J5uNjo6GhMnTsTp06dhZmaGzZs3IysrC927d8ewYcNqIyMREREREek4tQuL8+fP49133wUAGBkZ4d69e7C0tMQXX3yB+fPnazwgERERERHpPrULCwsLC2lchZOTEy5evCit+/vvvzWXjIiIiIiI9IbaYyw6deqEP//8Ey1btkT//v3x6aef4vTp09iyZQs6depUGxmJiIiIiEjHqV1YLFq0CIWFhQCAmTNnorCwEBs3boSHhwdnhCIiIiIiekmpXVg0a9ZM+reFhYXG77ZNRERERET6R+0xFpXZsmULfHx8NLU7IiIiIiLSI2oVFt988w3efPNNvPPOO0hJSQEA7NmzB35+fhg5ciQCAgJqJSQREREREem2KhcW8+bNw7hx43D58mVs374dvXr1wpw5czBixAi8/fbbuHbtGmJjY2szKxERERER6agqj7GIj49HXFwcQkJCsH//fnTv3h0HDx7EX3/9BQsLi9rMSEREREREOq7KPRZXr15Fr169AACvvvoqjI2NMXPmTBYVRERERERU9cKipKQEZmZm0mMTExPY2dnVSigiIiIiItIvak03O23aNNSrVw8AUFpaitmzZ8Pa2lqlDe9lQURERET08qlyYdGtWzekp6dLj7t06YJLly6ptJHJZJpLRkREREREeqPKhUVSUlItxqjc9evXERUVhV9//RXFxcVwd3dHfHw8/P39AQBCCMyYMQNxcXHIz89HQEAAYmNj4eHhoZW8REREREQvI43dIK823LlzBwEBATA2Nsavv/6Kc+fO4euvv4atra3UZsGCBVi6dClWrVqFlJQUWFhYICgoCPfv39diciIiIiKil4taYyzq2vz58+Hi4oL4+HhpmZubm/RvIQQWL16MqVOnYvDgwQCAdevWwcHBAdu2bUNwcHCdZyYiIiIiehnpdI/F9u3b4e/vj2HDhqFhw4bw8/NDXFyctD4zMxM5OTkIDAyUlllbW6Njx45ITk7WRmQiIiIiopeSThcWly5dksZL7Nq1Cx999BE++eQTrF27FgCQk5MDAHBwcFDZzsHBQVpXkZKSEigUCpUfIiIiIiKqPp2+FEqpVMLf3x9z5swBAPj5+eHMmTNYtWoVQkJCqr3fuXPnYubMmZqKSURERET00lO7x2Lnzp34888/pccrVqyAr68v3nnnHdy5c0ej4ZycnNCqVSuVZS1btsTVq1cBAI6OjgCA3NxclTa5ubnSuopER0ejoKBA+snKytJobiIiIiKil43ahcWkSZOkS4dOnz6NTz/9FP3790dmZiYiIyM1Gi4gIEDl3hkAcOHCBbi6ugJ4OJDb0dERiYmJ0nqFQoGUlBR07ty50v2amppCLper/BARERERUfWpfSlUZmam1IuwefNmDBw4EHPmzMHx48fRv39/jYabMGECunTpgjlz5uCtt97C4cOH8e233+Lbb78F8PCGfBEREZg9ezY8PDzg5uaGadOmwdnZGUOGDNFoFiIiIiIiqpzahYWJiQmKi4sBAL///jveffddAICdnZ3GB0G3b98eW7duRXR0NL744gu4ublh8eLFGDFihNRm8uTJKCoqwpgxY5Cfn4+uXbti586dMDMz02gWIiIiIiKqnEwIIdTZYNCgQSgtLUVAQABmzZqFzMxMNGrUCL/99hvCw8Nx4cKF2spaaxQKBaytrVFQUMDLoohIrxUVFcHS0hIAUFhYCAsLCy0nIiIifabO92S1x1gsX74cRkZG+PnnnxEbG4tGjRoBAH799Vf069eveomJiIiIiEivqd1j8SJijwURvSjYY0FERJpUqz0Wx48fx+nTp6XH//73vzFkyBBMmTIFpaWl6qclIiIiIiK9p3Zh8cEHH0jjKC5duoTg4GDUq1cPmzZtwuTJkzUekIiIiIiIdJ/ahcWFCxfg6+sLANi0aRO6deuGDRs2ICEhAZs3b9Z0PiIiIiIi0gNqFxZCCCiVSgAPp5t9dO8KFxcX/P3335pNR0REREREekHtwsLf3x+zZ8/Gd999h71792LAgAEAHt44z8HBQeMBiYiIiIhI96ldWCxevBjHjx9HeHg4/vnPf8Ld3R0A8PPPP6NLly4aD0hERERERLpPY9PN3r9/H4aGhjA2NtbE7uoUp5slohcFp5slIiJNUud7spGmfqmZmZmmdkVERERERHqmSoWFnZ0dLly4gPr168PW1hYymazStnl5eRoLR0RERERE+qFKhUVMTAysrKwAPBxjQURERERE9DiNjbHQZxxjQUQvCo6xICIiTVLne7Las0IRERERERE9qcqDtw0NDavUrry8vNphiIiIiIhIP1W5sBBCwNXVFSEhIfDz86vNTEREREREpGeqXFgcPnwYq1evxpIlS+Dm5ob33nsPI0aMgK2tbW3mIyIiIiIiPVDlMRb+/v6IjY3FjRs3EBkZia1bt6Jx48YIDg7G7t27azOjZN68eZDJZIiIiJCW3b9/Hx9//DHs7e1haWmJoUOHIjc3t07yEBERERHRQ2oP3jYzM8M//vEPJCYm4syZM7h58yb69etX6/evOHLkCL755hv4+PioLJ8wYQJ++eUXbNq0CXv37kV2djbeeOONWs1CRERERESqqjUr1LVr1zB79mz06dMHaWlpmDRpUq1O01pYWIgRI0YgLi5O5dKrgoICrF69GosWLUKvXr3Qrl07xMfH4+DBgzh06FCt5SEiIiIiIlVVLixKS0uxceNG9O3bFx4eHjh+/DgWL16MrKwszJs3D0ZGVR6uobaPP/4YAwYMQGBgoMryY8eO4cGDByrLW7RogSZNmiA5ObnW8hARERERkaoqVwNOTk6wsrJCSEgIVq5ciYYNGwJ4eDOmx2m65+LHH3/E8ePHceTIkafW5eTkwMTEBDY2NirLHRwckJOTU+k+S0pKUFJSIj1WKBQay0tERERE9DKqco/FnTt3cPXqVcyaNQuenp6wtbVV+bGxsdH4DFFZWVkYP3481q9fDzMzM43td+7cubC2tpZ+XFxcNLZvIiIiIqKXUZV7LP7444/azFGhY8eO4ebNm2jbtq20rLy8HPv27cPy5cuxa9culJaWIj8/X6XXIjc3F46OjpXuNzo6GpGRkdJjhULB4oKIiIiIqAaqXFh07969NnNUqHfv3jh9+rTKstDQULRo0QJRUVFwcXGBsbExEhMTMXToUABAeno6rl69is6dO1e6X1NTU5iamtZqdiIiIiKil0ntjbjWACsrK3h7e6sss7CwgL29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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAACXCAYAAAAYoCHkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAcAUlEQVR4nO3de5hU1Znv8e8PRVs9KAHRMCJCoiESb5GWiEEl4i3GDJKjqMcx6GCYZMzES8QoM9HEo0GjER01ZghGiZp4i5cM8RIP0mKMN1AQFWWIgdiGCBIvYCSKvuePvVqLtrq6uqvr0sXv8zz9dO21d+31dtWuXW+vvfZaigjMzMzM6kmPagdgZmZm1tWc4JiZmVndcYJjZmZmdccJjpmZmdUdJzhmZmZWd5zgmJmZWd0pW4Ij6WeSVkh6Jqesj6T7Jf1P+v2xVC5J/ylpiaSnJe1ZrrjMzMys/pWzBec64NBWZWcBsyJiJ2BWWgb4IrBT+pkIXF3GuMzMzKzOlS3BiYg5wF9bFY8BZqTHM4Ajcsp/HplHgd6S+pcrNjMzM6tvle6Ds21ELE+P/wJsmx5vB7yUs11zKjMzMzPrsI2rVXFEhKQOzxMhaSLZZSy22GKLYZ/+9Ke7PDYza9sLL7wAwJAhQ6ociZkZzJs379WI6Ne6vNIJziuS+kfE8nQJakUqfxnYPme7AansIyJiGjANoLGxMebOnVvOeM2slVGjRgHQ1NRU1TjMzAAkLctXXulLVL8GxqfH44G7csq/mu6m2ht4I+dSlpmZmVmHlK0FR9IvgVHA1pKagXOBC4FbJE0AlgHj0uZ3A4cBS4C/ASeWKy4zMzOrf2VLcCLi2DZWjc6zbQAnlysWMzOzanj33Xdpbm5m7dq11Q6lLjQ0NDBgwAB69uzZ7rZV62RsZmZW75qbm+nVqxeDBg1CUrXD6dYiglWrVtHc3MzgwYPb3d5TNZiZmZXJ2rVr6du3r5ObLiCJvn37Ft0a5gTHzMysjCqV3MyaNYtRo0ax3377MXbsWFatWlWWepYuXcoJJ5zQ7nbXXXcd06dPb3e7kSNHFl13R15LX6IyMzPr5lauXMl5553HzJkz6dWrF4sXL+add96pdlhV5QTHzMysAvY+976Snv/o9w9pc93dd9/N8ccfT69evQD41Kc+BcC1117LjBkzWLNmDT/4wQ84+OCDmTx5MnPmzKFnz57ceOON9OjRgxNPPJG3336bESNGMGXKFMaNG8crr7zCpptuym233caWW27JOeecw+zZsxk6dOgH9c6cOZMf/vCHrFu3jnPOOYdDD209BeX68u0Xsv41p5xyCvvssw+jR49mwoQJrF69mp133pkf//jHnXq9fInKzMysm1u+fDn9+390Csejjz6apqYmZs2axSWXXALAww8/zJw5c5g9ezb9+/dnypQpnHbaaTQ1NXHBBRcA2eWlBx98kHHjxnHzzTezfPlyHn/8cR566CH2339/AN5//30uueQSHnjgAZqamrj44ovbjbP1fluceuqpjBgxgmOOOYYLL7yQs88+m9mzZ9OrVy8eeeSRTr0mbsExMzPr5vr378+f//znj5Tfd999XH755UQEK1ZkkweceeaZjB8/nr59+3LBBRewePHiDxKbHj168N577zFp0iQWLlzIm2++ydixY1m2bBm77bYbAMOGDeO3v/0tr776KosWLeLAAw8EYMWKFUREm/1k8u0XYPHixTQ0NHDZZZcBsGjRIs466ywksWbNGoYPH96p18QtOGZmZt3cYYcdxg033MDq1asBWLJkCcuXL2fKlCncc8893HXXXfTokX3lH3DAAVx//fVss802zJw5kyFDhvDoo48CWavM/Pnzeeutt5gzZw4nn3wyEcEOO+zAwoULAXjqqacA2Hrrrdl1112ZNWsWTU1NLFiwoGAn4Hz7hexy2rHHHsukSZOAbJ67Sy+9lKamJubOncuYMWM69Zq4BcfMzKyb69evH9/97nc5/PDDiQj69OnDNddcw+GHH85+++3H8OHD6d27NwBjxozh7bffBuDWW29l//33Z/z48Zx//vnss88+TJ48mSVLlnDooYey/fbbs91229G/f3+GDRvGvvvuy+677w5krT2nn346o0ePRhJDhw7lqquuWi+uSy+9lJtuugmAqVOnfmS/LSZMmMCUKVO46KKLmDx5MhMnTuSNN96gR48eTJ8+nUGDBnX4NVFLBtUdebJNs8rzZJtmxVu0aBE777xztcOoK61fU0nzIqKx9XbtXqJKE2D+k6Rz0vJASZ27IGZmZmZWAcX0wfkxMAJomVtqNXBV25u3T9Jpkp6V9IykX0pqkDRY0mOSlki6WdImpdRhZmZmG65iEpzPRcTJwFqAiHgN6HTyIWk74FtAY0TsAmwEHANc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", + "image/png": "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ixYtwnvvvSdlmTRpEubMmQMvLy/pcrOurq4IDg7WahYiIiIiIqqa2oVFbGwsgEc9FvHx8SrDnszMzNC0aVPEx8drNdyyZcswbdo0jBs3Djdu3ICrqys++OADTJ8+XVonMjISJSUlGDt2LIqKitC9e3fs2LGD97AgIiIiIqpDMqHh/bt79+6NzZs3w97evrYy1TmFQgFbW1sUFxdzWBQRGbSSkhKpR/nu3buwsrLScSIiIjJkmnxO1viqUL/99lu1gxERERER0YupWpebvXbtGrZt24acnByUl5erLHt88zoiIiIiInp5aFxYJCcnY/DgwWjWrBkyMzPh4+ODy5cvQwiB9u3b10ZGIiIiIiLScxpfbjY6OhpTpkzByZMnYWFhgU2bNuHq1avo2bMnhg4dWhsZiYiIiIhIz2lcWJw9exbvvvsuAMDExAT37t2DtbU1Zs2aha+++krrAYmIiIiISP9pXFhYWVlJ8ypcXFxw8eJFadmff/6pvWRERERERGQwNJ5j0blzZ/z+++9o1aoVBg4ciE8++QQnT57E5s2b0blz59rISEREREREek7jwmLRokW4e/cuAGDmzJm4e/cuNmzYAC8vL14RioiIiIjoJaVxYdGsWTPpeysrK63fbZuIiIiIiAyPxnMsqrJ582a0bdtWW7sjIiIiIiIDolFh8c033+Ctt97C3//+d6SnpwMA9uzZAz8/P4wYMQLdunWrlZBERERERKTf1C4s5s2bhwkTJuDy5cvYtm0b+vTpg5iYGAwfPhx/+9vfcO3aNcTFxdVmViIiIiIi0lNqz7FITExEQkICRo4cif3796Nnz544ePAgLly4ACsrq9rMSEREREREek7tHoucnBz06dMHAPDqq6/C1NQUM2fOZFFBRERERETqFxZlZWWwsLCQHpuZmcHBwaFWQhERERERkWHR6HKz06ZNQ7169QAA5eXlmDNnDmxtbVXW4b0siIiIiIhePmoXFj169EBWVpb0uGvXrrh06ZLKOjKZTHvJiIiIiIjIYKhdWKSkpNRijKpdv34dUVFR+OWXX1BaWgpPT08kJibC398fACCEwIwZM5CQkICioiJ069YNcXFx8PLy0kleIiIiIqKXkdZukFcbbt++jW7dusHU1BS//PILzpw5g4ULF8Le3l5aZ/78+Vi6dCni4+ORnp4OKysrBAUF4f79+zpMTkRERET0ctFojkVd++qrr+Du7o7ExESpzcPDQ/peCIHFixfj888/x5AhQwAAa9euhZOTE7Zu3YrQ0NA6z0xERERE9DLS6x6Lbdu2wd/fH0OHDkXDhg3h5+eHhIQEaXl2djby8/MRGBgotdna2iIgIACpqam6iExERERE9FLS68Li0qVL0nyJX3/9FR999BE+/vhjrFmzBgCQn58PAHByclLZzsnJSVpWmbKyMigUCpUvIiIiIiKqPr0eCqVUKuHv74+YmBgAgJ+fH06dOoX4+HiMHDmy2vudO3cuZs6cqa2YREREREQvPY17LHbs2IHff/9derxixQr4+vri73//O27fvq3VcC4uLmjdurVKW6tWrZCTkwMAcHZ2BgAUFBSorFNQUCAtq0x0dDSKi4ulr6tXr2o1NxERERHRy0bjwuLTTz+Vhg6dPHkSn3zyCQYOHIjs7GxERERoNVy3bt1U7p0BAOfOnUOTJk0APJrI7ezsjOTkZGm5QqFAeno6unTpUuV+zc3NIZfLVb6IiIiIiKj6NB4KlZ2dLfUibNq0Ca+99hpiYmJw7NgxDBw4UKvhJk+ejK5duyImJgZvv/02Dh06hG+//RbffvstgEc35Js0aRLmzJkDLy8veHh4YNq0aXB1dUVwcLBWsxARERERUdU0LizMzMxQWloKANi9ezfeffddAICDg4PWJ0F37NgRW7ZsQXR0NGbNmgUPDw8sXrwYw4cPl9aJjIxESUkJxo4di6KiInTv3h07duyAhYWFVrMQEREREVHVZEIIockGgwcPRnl5Obp164bZs2cjOzsbjRo1ws6dOxEeHo5z587VVtZao1AoYGtri+LiYg6LIiKDVlJSAmtrawDA3bt3YWVlpeNERERkyDT5nKzxHIvly5fDxMQEP/30E+Li4tCoUSMAwC+//IIBAwZULzERERERERk0jXssXkTssSCiFwV7LIiISJtqtcfi2LFjOHnypPT43//+N4KDgzF16lSUl5drnpaIiIiIiAyexoXFBx98IM2juHTpEkJDQ1GvXj1s3LgRkZGRWg9IRERERET6T+PC4ty5c/D19QUAbNy4ET169MD69euRlJSETZs2aTsfEREREREZAI0LCyEElEolgEeXm3187wp3d3f8+eef2k1HREREREQGQePCwt/fH3PmzMH333+PvXv3YtCgQQAe3TjPyclJ6wGJ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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -395,31 +350,27 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 90, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAACXCAYAAAAYoCHkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAcjUlEQVR4nO3de7xVVb338c8XJREPSiIagghaopiaQSZeSQzRKLQjoo8ZGsmpx1I0L0gnTVPRMi+n1B7ChLzkNdNDXl8oD2XeIEQwgsgkMRSkVDA8CvzOH3NsW2wXe6299rrtxff9eu3XWnPMueb47bXmmvu3xxxzDEUEZmZmZo2kQ60DMDMzMys3JzhmZmbWcJzgmJmZWcNxgmNmZmYNxwmOmZmZNRwnOGZmZtZwKpbgSPqZpOWS5ueUbSvpUUl/So8fTuWS9F+SFkt6XtInKxWXmZmZNb5KtuBMAYY1KxsPTI+IjwHT0zLAkcDH0s9Y4IYKxmVmZmYNrmIJTkTMBP7erHgEMDU9nwocnVP+88g8BXSV1KNSsZmZmVljq3YfnB0iYll6/iqwQ3reE3g5Z7ulqczMzMys1TavVcUREZJaPU+EpLFkl7HYaqutBuy+++5lj83MNm7hwoUA9OvXr8aRmJnB7NmzX4+I7s3Lq53gvCapR0QsS5eglqfyV4Cdcrbrlco+ICImAZMABg4cGLNmzapkvGbWzODBgwGYMWNGTeMwMwOQtCRfebUvUd0PjE7PRwP35ZR/Od1NtT/wZs6lLDMzM7NWqVgLjqRfAIOB7SQtBS4ELgfulDQGWAIclzZ/ADgKWAz8EzilUnGZmZlZ46tYghMRJ2xk1ZA82wZwWqViMTMzq4X33nuPpUuX8s4779Q6lIbQqVMnevXqRceOHQtuW7NOxmZmZo1u6dKldOnShT59+iCp1uG0axHBypUrWbp0KX379i24vadqMDMzq5B33nmHbt26ObkpA0l069at6NYwJzhmZmYVVK3kZvr06QwePJhDDjmEY445hpUrV1aknpdeeomTTz654HZTpkxh8uTJBbc76KCDiq67Ne9lwUtUknoBxwMHAzsCa4D5wK+BByNifdG1mZmZWdmtWLGCiy++mGnTptGlSxcWLVrEu+++W+uwaqrFBEfSTWQjCk8DriAbt6YTsBvZPFPfljQ+TctgZmZmG7H/hQ+36fVPXXTERtc98MADnHTSSXTp0gWA3XbbDYCbbrqJqVOnsnr1ai677DKGDh3KhAkTmDlzJh07duTWW2+lQ4cOnHLKKaxZs4ZBgwYxceJEjjvuOF577TW22GIL7r77brbeemsuuOACHn/8cfr37/9+vdOmTeP73/8+a9eu5YILLmDYsOZTUG4o334h619zxhlncMABBzBkyBDGjBnDqlWr2GOPPbj++utLer8KteD8MCLm5ymfD/xS0oeA3iXVbGZmZmWxbNky9tprrw+Ujxo1ilNOOYU333yTkSNHMnToUJ544glmzpxJhw4diAjGjRvHmWeeydChQ1m/PrsoM2XKFDp37szkyZO54447GD58OM888wy/+c1vuO2223jkkUdYv349V155JY899hjr16/nyCOPLJjgNN/vqaeeCsC4ceMYNGgQxx9/PN/61rc4//zzGTRoEOeddx5PPvkkgwYNavV70mKCky+5kbQr0Dki5kXEu2Rj15iZmVmN9OjRg7/97W8fKH/44Ye59tpriQiWL88mDzj33HMZPXo03bp149JLL2XRokVceumlAHTo0IF169ZxzjnnMG/ePN566y2OOeYYlixZwt577w3AgAEDeOSRR3j99ddZsGABhx9+OADLly8nIjbaTybffgEWLVpEp06duOaaawBYsGAB48ePRxKrV69mv/32K+k9aVUnY0kTgG8DZ0i6uaQazczMrKyOOuoobrnlFlatWgXA4sWLWbZsGRMnTuTBBx/kvvvuo0OH7E/+YYcdxs0338z222/PtGnT6NevH0899RQA69ev57nnnuPtt99m5syZnHbaaUQEO++8M/PmzQNgzpw5AGy33XbstddeTJ8+nRkzZjB37twWOwHn2y9kl9NOOOEEzjnnHCCb5+6qq65ixowZzJo1ixEjRpT0nhTqg3M6cF1ErEtF+0TEqLTu+ZJqNDMzs7Lq3r073/nOdxg+fDgRwbbbbsuNN97I8OHDOeSQQ9hvv/3o2rUrACNGjGDNmjUA3HXXXRx66KGMHj2aSy65hAMOOIAJEyawePFihg0bxk477UTPnj3p0aMHAwYM4OCDD2afffYBstaes846iyFDhiCJ/v37c911120Q11VXXcXtt98OwNVXX/2B/TYZM2YMEydO5IorrmDChAmMHTuWN998kw4dOjB58mT69OnT6vdETRlU3pXSicDJwI8i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", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAACXCAYAAAAYoCHkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAbvklEQVR4nO3de5yVZb338c8XxUbaKAloCCqoSWloJZEoIh7CE4m2RfQpAlPZlWV4VvYu063b3JmHJ936GCZuDxvPUWxDfGE8mHkCFdFINhkmioGU4AFT4Lf/uK+xxbhm1po1c681s/i+X695zbrPv7nXve51zXVd9/VTRGBmZmZWT7rUOgAzMzOz9uYCjpmZmdUdF3DMzMys7riAY2ZmZnXHBRwzMzOrOy7gmJmZWd3ZPM+dSzodOBkIYCFwItAHmAb0BOYD4yLivZb206tXr+jfv3+eoZpZM1544QUABg4cWONIzMw+bP78+a9HRO+m85XXODiS+gK/AXaPiLWS7gTuB44A7o2IaZKuBxZExHUt7Wvw4MExb968XOI0s5aNGDECgDlz5tQ0DjOzYiTNj4jBTefn3US1ObClpM2BbsBy4CDg7rT8ZuDonGMwMzOzTUxuBZyIeAW4HPgTWcFmNVmT1BsRsS6ttgzom1cMZmZmtmnKrQ+OpI8Bo4EBwBvAXcBhrdh+IjARYMcdd8whQjMzs3y9//77LFu2jHfffbfWodSFhoYG+vXrR9euXUuum2cn40OAP0bESgBJ9wL7AT0kbZ5qcfoBrxTbOCJuAG6ArA9OjnGamW0S9rnggXbZz2MXHtou+9kULFu2jO7du9O/f38k1TqcTi0iWLVqFcuWLWPAgAEl18+zD86fgH0kdVP2rh4M/A74NXBsWmc8MD3HGMzMzGrm3XffpWfPni7ctANJ9OzZs+zasDz74DxO1pn4KbJHxLuQ1cicC5whaQnZo+I35hWDmZlZrblw035acy5zfYoqIi6IiE9GxKcjYlxE/C0iXoyIIRGxa0SMiYi/5RmDmZnZpmD27NmMGDGC4cOHc8wxx7Bq1apcjrN06VImTJhQcr2pU6cyZcqUkusNGzasHaL6sFwH+jMzM7NMW/tAtdT3aeXKlVx00UXMmDGD7t27s3jxYt57r8UxdOteyRocSf0knSVpuqQnJc2V9B+SjpTkVA9mZmY1dv/99zNu3Di6d+8OwG677UafPn246aabGDFiBIMHD2bWrFkATJ48mWHDhnHggQfy6quv8tprr3H44YczYsQIzj//fACOO+44DjjgAEaOHMmaNWsA+P73v8/+++/PpZde+sFxZ8yYwfDhw9l3332ZOXNmyTiL7ReyDsSnnXYa06ZNY+XKlRx11FEceOCBfOtb36r4nLRYgyPpJrJxamYAlwErgAZgN7JHvv9Z0nkRMbfiCMzMzGqoHp4uW758OYMGDfrQ/LFjx3LiiSeyevVqxowZw8iRI3nkkUeYO3cuXbp0ISKYNGkSp59+OiNHjmTDhg1A1rzUrVs3pkyZwh133MGoUaN44oknePjhh7n99tuZNWsWGzZs4PLLL+ehhx5iw4YNHH744Rx2WMujwTTd7ymnnALApEmTGDp0KMcffzxnnnkm559/PkOHDuXcc8/l0UcfZejQoa0+J6WaqH4cEc8Vmf8ccK+kLQAPUmNmZlZDffr04dVXX/3Q/AceeICrr76aiGDFihUAnHPOOYwfP56ePXtyySWXsHjxYi655BIAunTpwvr16zn77LNZuHAha9as4ZhjjuGll15izz33BGDvvfdm1qxZvP766yxatIhDDjkEgBUrVhARzXYELrZfgMWLF9PQ0MBVV10FwKJFizjvvPOQxFtvvcWQIUMqOictNjEVK9xI2kXSoLT8vYhYUtGRzczMrF0cccQR3Hrrrbz55psALFmyhOXLl3PppZfyq1/9iunTp9OlS/aVf9BBB3HLLbew7bbbMmPGDAYOHMhjjz0GwIYNG3jmmWd4++23mTt3LqeeeioRwU477cTChQsBePrppwHo1asXgwYNYvbs2cyZM4cFCxa0+JRTsf1C1px2wgkncPbZZwNZYt8rrriCOXPmMG/ePEaPHl3ROWlVJ2NJk4FdgQ2SPhIR4yo6qpmZmbWb3r17873vfY9Ro0YREWyzzTbceOONjBo1iuHDhzNkyBB69OgBwOjRo1m7di0Ad911FwcccADjx4/n4osvZt9992Xy5MksWbKEww47jB122IG+ffvSp08f9t57b/bff3/22msvIKvtOeOMMzj44IORxO6778611167UVxXXHEF06ZNA+DKK6/80H4bnXTSSVx66aVcdtllTJ48mYkTJ7J69Wq6dOnClClT6N+/f6vPSYvZxCWdBlwbEevT9B0RMTa9fjYi9mz1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", + "image/png": "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u4kdERERERG9X5QuLFavXo3u3bvD398f/v7+svaCggJs2LABffr0KdeARERERESk+ZQuLPr27Yu2bdvCyspKrv3+/fvo27cvCwsiIiIiUgiHZr5blL6PhRACEonklfYbN27A3Ny8XEIREREREZF2UbjHwtPTExKJBBKJBK1bt4ae3v82LSwsRGpqKtq2bauSkEREREREpNkULiye35AuOTkZgYGBMDU1lS0zMDCAo6NjqS43S0RERERE2k/hwmL8+PEAAEdHR3Tv3p03qCMiIiKi9x7nifyP0pO3Q0JCVJGDiIiIiIi0mNKFRWFhIaKjo7Fp0yZcv34dBQUFcsuzsrLKLRwREREREWkHpa8KFRUVhTlz5qB79+7IyclBeHg4OnfuDB0dHUyYMEEFEYmIiIiISNMpXVisXbsWy5cvx1dffQU9PT307NkTP/74I8aNG4fExERVZCQiIiIiIg2ndGGRkZGB+vXrAwBMTU2Rk5MDAGjfvj1+++238k1HRERERERaQenCwt7eHunp6QCAmjVrYs+ePQCAY8eOwdDQsHzTERERERGRVlC6sPjkk08QHx8PABg6dCjGjh0LFxcX9OnTB/369Sv3gEREREREpPmUvirU9OnTZd93794d1atXx5EjR+Di4oIOHTqUazgiIiIiItIOShcWL/P19YWvry8A4Pjx4/Dy8ipzKCIiIiIi0i5KD4V68OABHj16JNeWnJyMDh06wMfHp9yCERERERGR9lC4sEhLS4Ofnx/Mzc1hbm6O8PBw5OXloU+fPvDx8YGJiQmOHDmiyqxERERERKShFB4K9fXXX+Px48eYN28e4uLiMG/ePBw6dAg+Pj64fPky7O3tVZmTiIiIiIg0mMKFxcGDBxEXFwdfX19069YNNjY26NWrF0aMGKHCeEREREREpA0UHgqVmZkJJycnAICVlRUqVKiAjz76SGXBiIiIiIhIeyg1eVtHR0fuewMDg3IPRERERERE2kfhoVBCCNSqVQsSiQTAs6tDeXp6yhUbAJCVlVW+CYnKie/43So/RmJUoMqPQURE5UPVnwv8TKD3jcKFRUxMjCpzEBERERGRFlO4sAgJCVFlDkyfPh2RkZEYPnw45s6dCwB4/PgxvvrqK2zYsAH5+fkIDAzE4sWLYW1trdIsRERERESkHKVvkKcKx44dww8//AB3d3e59pEjR+LX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ZGdny/VaZGZmwsbGpth9GRoawtDQsFQ5iIiIiIiodBQuLObPnw/g2U3wfvzxR5iamsqWFRYW4uDBg6hTp45SBxdCYOjQodi6dSv2798PJycnueWNGjWCvr4+4uPjERwcDABISUnB9evX4efnp9SxiIiIiIhIdRQuLKKjowE8KwaWLl0qN+zJwMAAjo6OWLp0qVIHHzx4MNatW4dffvkFZmZmsnkT5ubmMDY2hrm5OcLCwhAeHo5KlSpBKpVi6NCh8PPz4xWhiIiIiIg0iMKFRWpqKgCgZcuWiIuLQ8WKFct88CVLlgAAWrRoIdceExOD0NBQAM8KGh0dHQQHByM/Px+BgYFYvHhxmY9NRERERETlR+k5Fn/++afs++fzLSQSSakOXtJ8jRcZGRlh0aJFWLRoUamOQUREREREqleq+1isXr0a9evXh7GxMYyNjeHu7o41a9aUdzYiIiIiItISSvdYzJkzB2PHjsWQIUPg7+8PAPjrr78wcOBA/Pfffxg5cmS5hyQiIiIiIs2mdGGxYMECLFmyBH369JG1dezYEW5ubpgwYQILCyIiIiKi95DSQ6HS09PRpEmTV9qbNGmC9PT0cglFRERERETaRenCwtnZGZs2bXqlfePGjXBxcSmXUEREREREpF2UHgoVFRWF7t274+DBg7I5FocPH0Z8fHyxBQcREREREb37lC4sgoODkZSUhOjoaGzbtg0AULduXRw9ehSenp7lnY+IXuA7frdK958YFajS/RMREdG7S+nCAgAaNWqEn376qbyzEBERERGRllK4sMjNzVVoPalUWuowRERERESknRQuLCwsLF57h20hBCQSCQoLC8slGBG9mzici4iI6N2kcGHx559/yr4XQuDjjz/Gjz/+iKpVq6okGBERERERaQ+FC4vmzZvLPdbV1YWvry9q1KhR7qGIiIiIiEi7KH0fCyIiIiIiopexsCAiIiIiojIrU2HxusncRERERET0/lB4jkXnzp3lHj9+/BgDBw6EiYmJXHtcXFz5JCMiIiIiIq2hcGFhbm4u97h3797lHoaIiIiIiLSTwoVFTEyMKnMQEREREZEWU7iwoLLhTcGIiIiI6F3Gq0IREREREVGZsbAgIiIiIqIyY2FBRERERERlxsKCiIiIiIjKjIUFERERERGVmVYUFosWLYKjoyOMjIzg4+ODo0ePqjsSERER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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -479,31 +430,27 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 91, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAACXCAYAAAAYoCHkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAc70lEQVR4nO3de5yVVd338c8XRUlvFEE0FBVSM8lDCZl4RDE1s5DuRHl8FLkxOlieUlPuxPLW0DQP5aEIUzTLU5pFpPkgI2aeQEVUlEghh0ZFbw9omgK/549rjW7Gzew9e/ZpNt/36zWvva+1r32t3+zDNb9Za11rKSIwMzMzayTdah2AmZmZWbk5wTEzM7OG4wTHzMzMGo4THDMzM2s4TnDMzMys4TjBMTMzs4ZTsQRH0i8lvSTpiZyy3pLukvS3dLtRKpekn0haKOlxSbtUKi4zMzNrfJVswbkGOKhN2enAjIjYFpiRtgE+D2ybfsYDV1YwLjMzM2twFUtwImIW8L9tikcAU9P9qcChOeXXRuYBoJekfpWKzczMzBpbtcfgbBoRLen+C8Cm6f7mwPM5+zWnMjMzM7MOW7tWFUdESOrwOhGSxpN1Y7H++usP/sQnPlH22Mxs9Z555hkAtttuuxpHYmYGc+bMeTki+rYtr3aC86KkfhHRkrqgXkrlS4Atcvbrn8o+JCImA5MBhgwZErNnz65kvGbWxrBhwwBoamqqaRxmZgCSFucrr3YX1e+BMen+GOD2nPKj09VUuwGv53RlmZmZmXVIxVpwJP0GGAZsLKkZOAs4D7hJ0jhgMTAq7T4dOBhYCPwLGFupuMzMzKzxVSzBiYjRq3loeJ59AziuUrGYmZnVwnvvvUdzczPvvPNOrUNpCD169KB///5079694L5FJTiShgB7AZsBbwNPAHdFxKudCdTMzKyRNTc307NnTwYMGICkWofTpUUEr7zyCs3NzQwcOLDg/u2OwZE0VtIjwBnAR4BnyAYG7wn8P0lTJW1ZhrjNzMwazjvvvEOfPn2c3JSBJPr06VN0a1ihQcbrAXtExH9GxA8jYkpEXBYRx0fEYOBistmHzczMLI9qJTczZsxg2LBh7L333owcOZJXXnmlIvUsWrSIY445puB+11xzDVOmTCm435577ll03R15LdvtooqIyws8/ljRNZmZmVlFLF26lLPPPptp06bRs2dPFixYwLvvvlvrsGqqQ4OMJX0R+A7Qg2xphSsqEpWZmVmD2e2sOzv1/Ad+cOBqH5s+fTpHHXUUPXv2BODjH/84AFdffTVTp07lzTff5Ic//CEHHHAAEyZMYNasWXTv3p3rr7+ebt26MXbsWN5++22GDh3KpEmTGDVqFC+++CLrrrsut9xyCxtssAETJ05k5syZDBo06P16p02bxo9+9COWL1/OxIkTOeigtktQrirfcSEbX3PCCSew++67M3z4cMaNG8eyZcvYfvvtueKK0lKNQmNwPtWm6ChgX2B34Bsl1WhmZmZl1dLSQr9+H17C8fDDD6epqYkZM2Zw4YUXAnDfffcxa9YsZs6cSb9+/Zg0aRInnXQSTU1NnHvuuUDWvXTPPfcwatQobrzxRlpaWnjooYe499572WeffQBYuXIlF154IXfffTdNTU1ccMEFBeNse9xWJ554IkOHDuWII47gvPPO44wzzmDmzJn07NmT+++/v6TXpFALzjckdQPOjIgXyNaL+h6wEvhnSTWamZlZWfXr149//vPDf5bvvPNOLr30UiKCl17KFg847bTTGDNmDH369OHcc89lwYIF7yc23bp1Y8WKFZx66qnMmzePN954g5EjR7J48WJ22mknAAYPHsyf//xnXn75ZebPn8/+++8PwEsvvURErHacTL7jAixYsIAePXpwySWXADB//nxOP/10JPHmm2+y6667lvSatNuCExFfAy4Dfi5pIjARuB+YB3yppBrNzMysrA4++GB+9atfsWzZMgAWLlxIS0sLkyZN4k9/+hO333473bplf/L3228/rrvuOjbZZBOmTZvGdtttxwMPPABkrTKPPfYYb731FrNmzeK4444jIthqq62YN28eAI8++igAG2+8MTvuuCMzZsygqamJuXPntjsION9xIetOGz16NKeeeiqQrXN30UUX0dTUxOzZsxkxYkRJr0nBMTgRMRcYkcbf3E429ubakmozMzOzsuvbty9nnnkmhxxyCBFB7969ueqqqzjkkEPYe++92XXXXenVqxcAI0aM4O233wbg5ptvZp999mHMmDGcc8457L777kyYMIGFCxdy0EEHscUWW7D55pvTr18/Bg8ezF577cXOO+8MZK09J598MsOHD0cSgwYN4vLLV7026aKLLuKGG24A4OKLL/7QcVuNGzeOSZMmcf755zNhwgTG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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAADSCAYAAADXL1aYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA8QUlEQVR4nO3dd1RU194+8GdAmsCAoDSlqVhAmmJBjRVDfpZYiAZfjTUQCwoSI2Ji78QWe2QpqFdNM3qN98YSDGoUsKImKqIiGBU00hQUEPbvD1/Pm4mgDAzMjD6ftViL2Wefw3Ng5sx8OWfvIxNCCBAREREREVWDjroDEBERERGR9mNhQURERERE1cbCgoiIiIiIqo2FBRERERERVRsLCyIiIiIiqjYWFkREREREVG0sLIiIiIiIqNpYWBARERERUbWxsCAiIiIiompjYUFERERERNWm1sLi2LFj6NevH+zs7CCTybB3716F5UIIzJo1C7a2tjAyMoKfnx9SU1MV+mRnZ2PYsGGQy+UwNzfH2LFj8fjx41rcCyIiIiIiUmthUVBQAE9PT6xbt67c5VFRUVi9ejU2btyIpKQkGBsbw9/fH0+fPpX6DBs2DH/88QcOHz6M/fv349ixYwgODq6tXSAiIiIiIgAyIYRQdwgAkMlk2LNnDwYMGADg+dkKOzs7fPrpp5g6dSoAIC8vD9bW1oiNjUVgYCCuXLkCV1dXnD59Gj4+PgCAAwcOoHfv3vjzzz9hZ2enrt0hIiIiInqraOwYi7S0NGRmZsLPz09qMzMzQ/v27ZGQkAAASEhIgLm5uVRUAICfnx90dHSQlJRU65mJiIiIiN5WddQdoCKZmZkAAGtra4V2a2traVlmZiasrKwUltepUwcWFhZSn/IUFRWhqKhIelxWVobs7GxYWlpCJpOpaheIiIiIiLSaEAKPHj2CnZ0ddHRefU5CYwuLmrR48WLMnTtX3TGIiIiIiLTC7du30ahRo1f20djCwsbGBgCQlZUFW1tbqT0rKwteXl5Sn/v37yus9+zZM2RnZ0vrlycyMhLh4eHS47y8PDg4OOD27duQy+Uq3AsiotpVUFAgjS+7e/cujI2N1ZyIiIi0WX5+Puzt7WFqavravhpbWDg7O8PGxgZxcXFSIZGfn4+kpCSMHz8eAODr64vc3FycPXsWbdq0AQAcOXIEZWVlaN++fYXbNjAwgIGBwUvtcrmchQURaTVdXV3pe7lczsKCiIhUojLDBdRaWDx+/BjXr1+XHqelpSE5ORkWFhZwcHBAWFgYFixYABcXFzg7O2PmzJmws7OTZo5q2bIl3nvvPQQFBWHjxo0oKSlBSEgIAgMDOSMUEREREVEtUmthcebMGXTv3l16/OLypJEjRyI2NhbTpk1DQUEBgoODkZubi86dO+PAgQMwNDSU1tmxYwdCQkLQs2dP6OjoICAgAKtXr671fSEiIiJ62wgh8OzZM5SWlqo7ClWTnp6ewlnvqtCY+1ioU35+PszMzJCXl8dLoYhIqxUUFMDExATA87PCvBSKiGpKcXEx7t27h8LCQnVHIRWQyWRo1KiR9B7ygjKfk5U+Y1FWVoajR4/i+PHjSE9PR2FhIRo0aABvb2/4+fnB3t5e2U0SERERkRYpKytDWloadHV1YWdnB319fU7Zr8WEEHjw4AH+/PNPuLi4VPnMRaULiydPnmD58uXYsGEDsrOz4eXlBTs7OxgZGeH69evYu3cvgoKC8O6772LWrFno0KFDlQIRERERkWYrLi5GWVkZ7O3tUbduXXXHIRVo0KABbt26hZKSkpovLJo1awZfX19ER0ejV69e0NPTe6lPeno6du7cicDAQHz++ecICgqqUigiIiIi0nyvu2EaaQ9VnHGqdGFx6NAhtGzZ8pV9HB0dERkZialTpyIjI6Pa4YiIiIiIKuvZs2dYuHAhdu3ahTp16qBOnTpo164doqKiYG5urpZMU6dOhYmJCebMmaPUejKZDDk5OUrlrso6qlTpwuJ1RcXf6enpoUmTJlUKRERERETaqcPsgzWy3cS5/pXqN3bsWGRnZyMhIQH16tWDEAI//PADsrOz1fZh+21SrfNXz549w7p16zB48GAMGjQIy5cvx9OnT1WVjYiIiIioUq5fv47vv/8eMTExqFevHoDn/8EfPHgwGjdujMzMTHTv3h1t2rSBm5sbQkJCUFZWBgBITExEmzZt4OXlhVatWmHDhg0AgLy8PHz88cdo1aoVPD09MWbMGABAXFwcfH194e3tDTc3N2zevFnKce/ePfj7+8PV1RV+fn74888/pWUlJSWYPn062rVrBy8vLwwZMgQ5OTlK7efUqVPRtm1beHl5oUuXLkhJSXmpjxACEREReP/991FYWIjU1FT06dMHbdu2hYeHB9auXavcL7eSqnUfi8mTJ+PatWsYNGgQSkpKsG3bNpw5cwa7du1SVT4iIiIiotc6d+4cXFxcUL9+/XKXm5ub46effoKJiQlKS0vRv39/fPfddwgMDMTixYsxdepUDB06FACkD/thYWEwMjLCxYsXoaOjgwcPHgAAWrdujd9++w26urrIzs6Gt7c3/P390ahRI0yePBnt2rXDwYMHcefOHXh5eaFFixYAgC+//BLGxsY4deoUAGD+/Pn44osvsG7dukrvZ0REBJYtWwYA+OabbxAaGooDBw5Iy4uKijB06FBYWlpiz549AIChQ4fiX//6F1q0aIHCwkJ06NAB7du3R9u2bZX5Fb+WUoXFnj17MHDgQOnxoUOHkJKSIo0c9/f352xQRERERKRxysrKEBERgd9++w1CCNy/fx+tWrVCYGAgunfvjvnz5yM1NRU9evRA586dAQD79+9HUlKSNEi9QYMGAICHDx9i7NixuHbtGurUqYOHDx/i999/R6NGjRAXFyd98G/YsCHef/99KcPevXuRl5eH3bt3A3g+u5aTk5NS+3H48GGsWbMGjx49QllZGbKzsxWW9+nTB/3798fMmTMBAJcvX8Yff/yBwMBAqc+jR49w+fJl9RYWW7ZswdatW7F+/XrY2dmhdevWGDduHAICAlBSUoLo6GiVByQiIiIiep3WrVsjNTUVDx8+hKWl5UvLV6xYgfv37yMpKQmGhoYIDw+XLuEPCwtD//798csvv2DGjBlo1aoV1q9fX+HPGjduHHr37o3du3dDJpOhdevWFQ4H+PtsS0IIrFmzBu+++26V9jEjIwMhISE4ffo0mjRpgosXL6JLly4KfXr06IHDhw8jNDQUcrkcQghYWFggOTm5Sj9TGUqNsfjpp58wdOhQdOvWDWvWrMGmTZsgl8vx+eefY+bMmbC3t8fOnTtrKisRERERUbmaNm2KgIAAjB07Frm5uQCef5DfvXs3bt68iZycHNjY2MDQ0BCZmZn4/vvvpXVTUlLg7OyMoKAgzJgxA4mJiQCA999/H8uWLZPGYry4FConJweOjo6QyWQ4duwYLly4IG3Lz88PW7ZsAfB8vMW+ffukZQMGDMDKlSulu5UXFhbijz/+qPQ+5uXlQU9PD7a2thBClDtWYsaMGRg0aBD8/Pzw8OFDNG/eHHK5HDExMVKf69evv3SmQxWUHmPx4Ycfwt/fH9OmTYO/vz82btyI5cuXqzwYEREREZEytmzZggULFqB9+/aoU6cOysrK0KVLF/Ts2ROhoaH44IMP4ObmBjs7O/j5+UnrrV27FkeOHIG+vj50dXWlz7YrV67ElClT4O7uDj09PbRt2xbR0dFYsmQJJkyYgPnz58PLywvt27eXtvXVV19h1KhRcHV1RcOGDdGjRw9pWUREBIqKitC+fXvpTEZERATc3NzK3R83NzeFMx5//vknAgMD4ebmBktLSwwYMKDc9cLCwmBsbIwePXrg4MGD2L9/P8LCwrBy5UqUlpaifv36NXIyQCaEEFVd+dixY5g4cSLee+89zJ8/H4aGhqrMVmvy8/NhZmaGvLw8yOVydcchIqqygoICmJiYAAAeP34MY2NjNSciojfR06dPkZaWBmdnZ639/EeKKvqbKvM5WalLoTIyMjBkyBC4u7tj2LBhcHFxwdmzZ1G3bl14enri559/rtqeEBERERGRVlOqsBgxYgR0dHTw5ZdfwsrKCp988gn09fUxd+5c7N27F4sXL8aQIUNqKisREREREWkopcZYnDlzBhcuXECTJk3g7+8PZ2dnaVnLli1x7NgxbNq0SeUhiYiIiIhIsylVWLRp0wazZs3CyJEj8csvv8Dd3f2lPsHBwSoLR0RERERE2kGpS6G2bduGoqIiTJkyBXfu3MHXX39dU7mIiIiISMO9mIaVtF815nOSKHXGwtHRET/88EO1f2hllZaWYs6cOfjXv/6FzMxM2NnZYdSoUfjiiy+kqbeEEJg9ezaio6ORm5uLTp06YcOGDXBxcam1nERERERvE319fejo6ODu3bto0KAB9PX1FaZFJe0ihMCDBw8gk8mgp6dX5e1UurAoKChQatpCZfuXZ+nSpdiwYQO2bt0KNzc3nDlzBqNHj4aZmRkmT54MAIiKisLq1auxdetWODs7Y+bMmfD398fly5c5/RkRERFRDdDR0YGzszPu3buHu3fvqjsOqYBMJkOjRo2gq6tb9W1U9j4Wtra2CA0NxciRI2Fra1tuHyEEfvnlF6xYsQJdunRBZGRklYMBQN++fWFtbY3NmzdLbQEBATAyMsK//vUvCCFgZ2eHTz/9FFOnTgXw/I6E1tbWiI2NRWBgYKV+Du9jQURvCt7HgohqkxACz549Q2lpqbqjUDXp6emVW1Qo8zm50mcs4uPjMWPGDMyZMweenp7w8fGBnZ0dDA0NkZOTg8uXLyMhIQF16tRBZGQkPvnkE+X36B86duyITZs24dq1a2jWrBkuXLiA3377DStWrAAApKWlITMzU+HOiWZmZmjfvj0SEhIqXVgQEZF26zD7YI1uP3Guf41un0hbvbh0pjqXz9Cbo9KFRfPmzbF7925kZGTg+++/x/Hjx3Hy5Ek8efIE9evXh7e3N6Kjo/H//t//q9YplL+bPn068vPz0aJFC+jq6qK0tBQLFy7EsGHDAACZmZkAAGtra4X1rK2tpWXlKSoqQlFRkfQ4Pz9fJXmJiIiIiN5WSg3eBgAHBwd8+umn+PTTT2sij4LvvvsOO3bswM6dO+Hm5obk5GSEhYXBzs4OI0eOrPJ2Fy9ejLlz56owKRERERHR202p6WZr22effYbp06cjMDAQ7u7u+OijjzBlyhQsXrwYAGBjYwMAyMrKUlgvKytLWlaeyMhI5OXlSV+3b9+uuZ0gIiIiInoLaHRhUVhYCB0dxYi6urrSnMnOzs6wsbFBXFyctDw/Px9JSUnw9fWtcLsGBgaQy+UKX0REREREVHVKXwpVm/r164eFCxfCwcEBbm5uOH/+PFasWIExY8YAeD5gKCwsDAsWLICLi4s03aydnR0GDBig3vBERERERG8RjS4s1qxZg5kzZ2LChAm4f/8+7Ozs8Mknn2DWrFlSn2nTpqGgoADBwcHIzc1F586dceDAAd7DgoiIiIioFlX6PhZvMt7HgojeFG/rfSw43SwRUc1Q5nNylcdYHD9+HMOHD4evry/u3LkDANi+fTt+++23qm6SiIiIiIi0VJUKi927d8Pf3x9GRkY4f/68dE+IvLw8LFq0SKUBiYiIiIhI81WpsFiwYAE2btyI6OhohTstdurUCefOnVNZOCIiIiIi0g5VKixSUlLQpUuXl9rNzMyQm5tb3UxERERERKRlqlRY2NjY4Pr16y+1//bbb2jcuHG1QxERERERkXapUmERFBSE0NBQJCUlQSaT4e7du9ixYwemTp2K8ePHqzojERERERFpuCrdx2L69OkoKytDz549UVhYiC5dusDAwABTp07FpEmTVJ2RiIiIiIg0XJUKC5lMhs8//xyfffYZrl+/jsePH8PV1VWaO52IiIiIiN4uVboUasyYMXj06BH09fXh6uqKdu3awcTEBAUFBRgzZoyqMxIRERERkYarUmGxdetWPHny5KX2J0+eYNu2bdUORURERERE2kWpS6Hy8/MhhIAQAo8ePYKhoaG0rLS0FP/9739hZWWl8pBERERERKTZlCoszM3NIZPJIJPJ0KxZs5eWy2QyzJ07V2XhiIiIiIhIOyhVWPz6668QQqBHjx7YvXs3LCwspGX6+vpwdHSEnZ2dykMSEREREZFmU6qw6Nq1KwAgLS0N9vb20NGp0hANIiIiIiJ6w1RpullHR0cAQGFhITIyMlBcXKyw3MPDo/rJiIiIiIhIa1SpsHjw4AFGjx6Nn3/+udzlpaWl1QpFRERERETapUrXMoWFhSE3NxdJSUkwMjLCgQMHsHXrVri4uGDfvn2qzkhERERERBquSoXFkSNHsGLFCvj4+EBHRweOjo4YPnw4oqKisHjxYpUGvHPnDoYPHw5LS0sYGRnB3d0dZ86ckZYLITBr1izY2trCyMgIfn5+SE1NVWkGIiIiIiJ6tSoVFgUFBdL9KurVq4cHDx4AANzd3XHu3DmVhcvJyUGnTp2gp6eHn3/+GZcvX8by5ctRr149qU9UVBRWr16NjRs3IikpCcbGxvD398fTp09VloOIiIiIiF6tSmMsmjdvjpSUFDg5OcHT0xNff/01nJycsHHjRtja2qos3NKlS2Fvb4+YmBipzdnZWfpeCIFVq1bhiy++QP/+/QEA27Ztg7W1Nfbu3YvAwECVZSEiIiIioopV6YxFaGgo7t27BwCYPXs2fv75Zzg4OGD16tVYtGiRysLt27cPPj4+GDx4MKysrODt7Y3o6GhpeVpaGjIzM+Hn5ye1mZmZoX379khISFBZDiIiIiIierUqnbEYPny49H2bNm2Qnp6Oq1evwsHBAfXr11dZuJs3b2LDhg0IDw/HjBkzcPr0aUyePBn6+voYOXIkMjMzAQDW1tYK61lbW0vLylNUVISioiLpcX5+vsoyExERERG9jVRyh7u6deuidevWMDExwbJly1SxSQBAWVkZWrdujUWLFsHb2xvBwcEICgrCxo0bq7XdxYsXw8zMTPqyt7dXUWIiIiIioreT0oXFgwcPsH//fhw6dEi6X0VJSQm++uorODk5YcmSJSoLZ2trC1dXV4W2li1bIiMjAwBgY2MDAMjKylLok5WVJS0rT2RkJPLy8qSv27dvqywzEREREdHbSKlLoX777Tf07dsX+fn5kMlk8PHxQUxMDAYMGIA6depgzpw5GDlypMrCderUCSkpKQpt165dk+787ezsDBsbG8TFxcHLywvA88uakpKSMH78+Aq3a2BgAAMDA5XlJCIiIlKXDrMP1uj2E+f61+j26c2h1BmLL774Ar1798bFixcRHh6O06dPY+DAgVi0aBEuX76McePGwcjISGXhpkyZgsTERCxatAjXr1/Hzp07sWnTJkycOBEAIJPJEBYWhgULFmDfvn24dOkSRowYATs7OwwYMEBlOYiIiIiI6NWUOmNx6dIlrF+/Hq6urpg3bx5WrFiBqKgoaapXVWvbti327NmDyMhIzJs3D87Ozli1ahWGDRsm9Zk2bRoKCgoQHByM3NxcdO7cGQcOHIChoWGNZCIiIlI1/seZiN4EShUWOTk50qxPRkZGqFu3Llq1alUjwV7o27cv+vbtW+FymUyGefPmYd68eTWag4iIiIiIKqb0dLOXL1+WpnIVQiAlJQUFBQUKfTw8PFSTjoiIiIiItILShUXPnj0hhJAevzibIJPJIISATCaTZosiIiIiIqK3g1KFRVpaWk3lICIiIiIiLaZUYfFimlciIiIiIqK/U8mdt4mIiIiI6O3GwoKIiIiIiKqNhQUREREREVUbCwsiIiIiIqq2KhUWT548QWFhofQ4PT0dq1atwqFDh1QWjIiIiIiItEeVCov+/ftj27ZtAIDc3Fy0b98ey5cvR//+/bFhwwaVBiQiIiIiIs1XpcLi3LlzeOeddwAAP/zwA6ytrZGeno5t27Zh9erVKg1IRERERESar0qFRWFhIUxNTQEAhw4dwqBBg6Cjo4MOHTogPT1dpQGJiIiIiEjzVamwaNq0Kfbu3Yvbt2/j4MGDePfddwEA9+/fh1wuV2lAIiIiIiLSfFUqLGbNmoWpU6fCyckJ7du3h6+vL4DnZy+8vb1VGpCIiIiIiDRfnaqs9MEHH6Bz5864d+8ePD09pfaePXti4MCBKgtHRERERETaoUqFBQDY2NjAxsYGAJCfn48jR46gefPmaNGihcrCERERERGRdqjSpVBDhgzB2rVrATy/p4WPjw+GDBkCDw8P7N69W6UBiYiIiIhI81WpsDh27Jg03eyePXsghEBubi5Wr16NBQsWqDTg3y1ZsgQymQxhYWFS29OnTzFx4kRYWlrCxMQEAQEByMrKqrEMRERERET0sioVFnl5ebCwsAAAHDhwAAEBAahbty769OmD1NRUlQZ84fTp0/j666/h4eGh0D5lyhT89NNP+P7773H06FHcvXsXgwYNqpEMRERERERUvioVFvb29khISEBBQQEOHDggTTebk5MDQ0NDlQYEgMePH2PYsGGIjo5GvXr1pPa8vDxs3rwZK1asQI8ePdCmTRvExMTg5MmTSExMVHkOIiIiIiIqX5UKi7CwMAwbNgyNGjWCnZ0dunXrBuD5JVLu7u6qzAcAmDhxIvr06QM/Pz+F9rNnz6KkpEShvUWLFnBwcEBCQoLKcxARERERUfmqNCvUhAkT0K5dO9y+fRu9evWCjs7z+qRx48YqH2PxzTff4Ny5czh9+vRLyzIzM6Gvrw9zc3OFdmtra2RmZla4zaKiIhQVFUmP8/PzVZaXiIiIiOhtVOXpZn18fODj46PQ1qdPn2oH+rvbt28jNDQUhw8fVuklVosXL8bcuXNVtj0iIiIiorddpQuL8PBwzJ8/H8bGxggPD39l3xUrVlQ7GPD8Uqf79++jdevWUltpaSmOHTuGtWvX4uDBgyguLkZubq7CWYusrCzpHhvliYyMVNiH/Px82NvbqyQzEREREdHbqNKFxfnz51FSUiJ9XxGZTFb9VP+rZ8+euHTpkkLb6NGj0aJFC0RERMDe3h56enqIi4tDQEAAACAlJQUZGRnw9fWtcLsGBgYwMDBQWU4iIiIiorddpQuLX3/9tdzva5KpqSlatWql0GZsbAxLS0upfezYsQgPD4eFhQXkcjkmTZoEX19fdOjQoVYyEhERERFRNcZYaIqVK1dCR0cHAQEBKCoqgr+/P9avX6/uWEREREREbxWlCosxY8ZUqt+WLVuqFKYy4uPjFR4bGhpi3bp1WLduXY39THq9DrMP1uj2E+f61+j2iYiIiKh6lCosYmNj4ejoCG9vbwghaioTERERERFpGaUKi/Hjx2PXrl1IS0vD6NGjMXz4cFhYWNRUNiIiIiIi0hJK3Xl73bp1uHfvHqZNm4affvoJ9vb2GDJkCA4ePMgzGEREREREbzGlCgvg+VStQ4cOxeHDh3H58mW4ublhwoQJcHJywuPHj2siIxERERERabhqzQqlo6MDmUwGIQRKS0tVlYmIiIi0CCfwICKgCmcsioqKsGvXLvTq1QvNmjXDpUuXsHbtWmRkZMDExKQmMhIRERERkYZT6ozFhAkT8M0338De3h5jxozBrl27UL9+/ZrKRlRr+N82IiIioupRqrDYuHEjHBwc0LhxYxw9ehRHjx4tt9+PP/6oknBERERERKQdlCosRowYAZlMVlNZiIiIiIhISyl9gzwiIiIiIqJ/UnrwNhERERER0T+xsCAiIiIiompjYUFERERERNXGwoKIiIiIiKqNhQUREREREVVbpWeF2rdvX6U3+v7771cpDBERERERaadKFxYDBgyoVD+ZTIbS0tKq5iEiIiIiIi1U6cKirKysJnMQEWm1DrMP1uj2E+f61+j2iYiIqkujx1gsXrwYbdu2hampKaysrDBgwACkpKQo9Hn69CkmTpwIS0tLmJiYICAgAFlZWWpKTERERET0dlLqztt/V1BQgKNHjyIjIwPFxcUKyyZPnlztYABw9OhRTJw4EW3btsWzZ88wY8YMvPvuu7h8+TKMjY0BAFOmTMF//vMffP/99zAzM0NISAgGDRqEEydOqCQDEdUO/sefiIhIu1WpsDh//jx69+6NwsJCFBQUwMLCAn/99Rfq1q0LKysrlRUWBw4cUHgcGxsLKysrnD17Fl26dEFeXh42b96MnTt3okePHgCAmJgYtGzZEomJiejQoYNKchBpOn4oJyIiInWr0qVQU6ZMQb9+/ZCTkwMjIyMkJiYiPT0dbdq0wbJly1SdUZKXlwcAsLCwAACcPXsWJSUl8PPzk/q0aNECDg4OSEhIqHA7RUVFyM/PV/giIiIiIqKqq1JhkZycjE8//RQ6OjrQ1dVFUVER7O3tERUVhRkzZqg6I4Dng8fDwsLQqVMntGrVCgCQmZkJfX19mJubK/S1trZGZmZmhdtavHgxzMzMpC97e/sayUxERERE9LaoUmGhp6cHHZ3nq1pZWSEjIwMAYGZmhtu3b6su3d9MnDgRv//+O7755ptqbysyMhJ5eXnSV01lJiIiIiJ6W1RpjIW3tzdOnz4NFxcXdO3aFbNmzcJff/2F7du3S2cTVCkkJAT79+/HsWPH0KhRI6ndxsYGxcXFyM3NVThrkZWVBRsbmwq3Z2BgAAMDA5XnJCIiIiJ6W1WpsFi0aBEePXoEAFi4cCFGjBiB8ePHw8XFBZs3b1ZZOCEEJk2ahD179iA+Ph7Ozs4Ky9u0aQM9PT3ExcUhICAAAJCSkoKMjAz4+vqqLEdt4OBbIiIiIu1T05/hAO35HFelwsLHx0f63srK6qXZm1Rl4sSJ2LlzJ/7973/D1NRUGjdhZmYGIyMjmJmZYezYsQgPD4eFhQXkcjkmTZoEX19fzghFRERERFSLqjTGokePHsjNzX2pPT8/X5r2VRU2bNiAvLw8dOvWDba2ttLXt99+K/VZuXIl+vbti4CAAHTp0gU2Njb48ccfVZaBiIiIiIher0pnLOLj41+6KR7w/C7Yx48fr3aoF4QQr+1jaGiIdevWYd26dSr7uUREREREpBylCouLFy9K31++fFlhStfS0lIcOHAADRs2VF06IiIiIiLSCkoVFl5eXpDJZJDJZOVe8mRkZIQ1a9aoLBwREREREWkHpQqLtLQ0CCHQuHFjnDp1Cg0aNJCW6evrw8rKCrq6uioPSUREREREmk2pwsLR0RHA87tgExERERERvVClwdsAcOPGDaxatQpXrlwBALi6uiI0NBRNmjRRWTgiIiIiItIOVZpu9uDBg3B1dcWpU6fg4eEBDw8PJCUlwc3NDYcPH1Z1RiIiIiIi0nBVOmMxffp0TJkyBUuWLHmpPSIiAr169VJJOCIiIiIi0g5VOmNx5coVjB079qX2MWPG4PLly9UORURERERE2qVKhUWDBg2QnJz8UntycjKsrKyqm4mIiIiIiLSMUpdCzZs3D1OnTkVQUBCCg4Nx8+ZNdOzYEQBw4sQJLF26FOHh4TUSlIiIiIiINJdShcXcuXMxbtw4zJw5E6ampli+fDkiIyMBAHZ2dpgzZw4mT55cI0GJiIiIiEhzKVVYCCEAADKZDFOmTMGUKVPw6NEjAICpqanq0xERERERkVZQelYomUym8JgFBRERERERKV1YNGvW7KXi4p+ys7OrHIiIiIiIiLSP0oXF3LlzYWZmVhNZiIiIiIhISyldWAQGBnJKWSKiN0yH2QdrdPuJc/1rdPtERKR+ShUWr7sEioiIiEjbsLAmUg2lbpD3YlYoTbRu3To4OTnB0NAQ7du3x6lTp9QdiYiIiIjoraHUGYuysrKaylEt3377LcLDw7Fx40a0b98eq1atgr+/P1JSUnjZFhEREZEG4xmjN4dSZyw01YoVKxAUFITRo0fD1dUVGzduRN26dbFlyxZ1RyMiIiIieisoPXhb0xQXF+Ps2bPSHcABQEdHB35+fkhISCh3naKiIhQVFUmP8/LyAAD5+fk1G/YVnhUV1Oj2a3rfmP/VmP/1tH0fNCV/QcH/5cjPz0dpaWml1tOU/FXF/K/G/K/G/K/G/K9W0/kB9X5GffGzKzMkQiY0eeBEJdy9excNGzbEyZMn4evrK7VPmzYNR48eRVJS0kvrzJkzB3Pnzq3NmEREREREWuv27dto1KjRK/to/RmLqoiMjER4eLj0uKysDNnZ2bC0tNSKma/y8/Nhb2+P27dvQy6XqzuO0phfvbQ9P6D9+8D86sX86sX86sX86qdt+yCEwKNHj2BnZ/favlpfWNSvXx+6urrIyspSaM/KyoKNjU256xgYGMDAwEChzdzcvKYi1hi5XK4VT8iKML96aXt+QPv3gfnVi/nVi/nVi/nVT5v2obI3x9b6wdv6+vpo06YN4uLipLaysjLExcUpXBpFREREREQ1R+vPWABAeHg4Ro4cCR8fH7Rr1w6rVq1CQUEBRo8ere5oRERERERvhTeisPjwww/x4MEDzJo1C5mZmfDy8sKBAwdgbW2t7mg1wsDAALNnz37pci5twfzqpe35Ae3fB+ZXL+ZXL+ZXL+ZXvzdhHyqi9bNCERERERGR+mn9GAsiIiIiIlI/FhZERERERFRtLCyIiIiIiKjaWFhosG7duiEsLEzdMZT2utyFhYUICAiAXC6HTCZDbm5urWUjIuVo63HoTSOEQHBwMCwsLCCTyZCcnKzuSErR5ueRNmcnqm0sLKjWbd26FcePH8fJkydx7969St90hUgbvekfSpycnLBq1Sp1x3jjHThwALGxsdi/fz/u3bsHb29v7N27V92xKu3HH3/E/Pnz1R2DiGrYGzHdLGmXGzduoGXLlmjVqpW6o9A/FBcXQ19fX90xiOgfbty4AVtbW3Ts2FHdUarEwsJC3RGIqBbwjIWGe/bsGUJCQmBmZob69etj5syZeDFDcFFRESIiImBvbw8DAwM0bdoUmzdvVnPi5yrK3a1bNyxfvhzHjh2DTCZDt27dAADr16+Hi4sLDA0NYW1tjQ8++EC9O/C/ysrKEBUVhaZNm8LAwAAODg5YuHAhAODPP//E0KFDYWFhAWNjY/j4+CApKUnNiRV169YNISEhFT6HnJycMH/+fIwYMQJyuRzBwcG1nvGHH36Au7s7jIyMYGlpCT8/PxQUFCA+Ph7t2rWDsbExzM3N0alTJ6SnpwMALly4gO7du8PU1BRyuRxt2rTBmTNnAACxsbEwNzfH3r17peeUv78/bt++Xev7NmrUKBw9ehRfffUVZDIZZDIZbt26hT/++AN9+/aFXC6Hqakp3nnnHdy4caPW81XWq17P6enpmDJlirR/muRVr9+TJ0/Cy8sLhoaG8PHxwd69ezX2EqNRo0Zh0qRJyMjIgEwmg5OTEwBg4MCBCo812d/P3Gnq8b4yZDLZS2eKzM3NERsbq5Y8/9StWzdMmjQJYWFhqFevHqytrREdHS3dNNjU1BRNmzbFzz//LK2zb98+6e/RvXt3bN26VWMuU67o/WHUqFEYMGAA5s6diwYNGkAul2PcuHEoLi5Wd2RJeWdzvby8MGfOHADAihUr4O7uDmNjY9jb22PChAl4/Phx7QdVMZ6x0HBbt27F2LFjcerUKZw5cwbBwcFwcHBAUFAQRowYgYSEBKxevRqenp5IS0vDX3/9pe7IACrO/eOPP2L69On4/fff8eOPP0JfXx9nzpzB5MmTsX37dnTs2BHZ2dk4fvy4uncBABAZGYno6GisXLkSnTt3xr1793D16lU8fvwYXbt2RcOGDbFv3z7Y2Njg3LlzKCsrU3fkl7zqOQQAy5Ytw6xZszB79uxaz3bv3j0MHToUUVFRGDhwIB49eoTjx49DCIEBAwYgKCgIu3btQnFxMU6dOiV9cB02bBi8vb2xYcMG6OrqIjk5GXp6etJ2CwsLsXDhQmzbtg36+vqYMGECAgMDceLEiVrdv6+++grXrl1Dq1atMG/ePABAaWkpunTpgm7duuHIkSOQy+U4ceIEnj17VqvZlPGq17OnpyeCg4Ol55Mmqej1m5+fj379+qF3797YuXMn0tPTNfpyta+++gpNmjTBpk2bcPr0aejq6sLKygoxMTF47733oKurq+6IlabJx/s3xdatWzFt2jScOnUK3377LcaPH489e/Zg4MCBmDFjBlauXImPPvoIGRkZyMrKwgcffIDQ0FB8/PHHOH/+PKZOnaruXQDw6vcHAIiLi4OhoSHi4+Nx69YtjB49GpaWltI/DzSdjo4OVq9eDWdnZ9y8eRMTJkzAtGnTsH79enVHqx5BGqtr166iZcuWoqysTGqLiIgQLVu2FCkpKQKAOHz4sBoTlu9VuYUQIjQ0VHTt2lVatnv3biGXy0V+fn5tR32l/Px8YWBgIKKjo19a9vXXXwtTU1Px8OFDNSSrvNf9LRwdHcWAAQPUFU+cPXtWABC3bt1SaH/48KEAIOLj48tdz9TUVMTGxpa7LCYmRgAQiYmJUtuVK1cEAJGUlKS68JXUtWtXERoaKj2OjIwUzs7Oori4uNazVEVlnkMrV65UU7qKver1u2HDBmFpaSmePHkitUVHRwsA4vz587WYsvJWrlwpHB0dpccAxJ49e9SWR1kvXgeaerx/lb+/hsv7vZuZmYmYmJhaz1Werl27is6dO0uPnz17JoyNjcVHH30ktd27d08AEAkJCSIiIkK0atVKYRuff/65ACBycnJqK3a5Knp/EEKIkSNHCgsLC1FQUCC1bdiwQZiYmIjS0tLajFmh8o6Nnp6eYvbs2eX2//7774WlpWXNB6thvBRKw3Xo0EHh8gJfX1+kpqbi/Pnz0NXVRdeuXdWYrmIV5S4tLX2pb69eveDo6IjGjRvjo48+wo4dO1BYWFibcct15coVFBUVoWfPni8tS05Ohre3t1ZcN/y6v4WPj4+6osHT0xM9e/aEu7s7Bg8ejOjoaOTk5MDCwgKjRo2Cv78/+vXrh6+++gr37t2T1gsPD8fHH38MPz8/LFmy5KXLiOrUqYO2bdtKj1u0aAFzc3NcuXKl1vatIsnJyXjnnXcUzrBoOmVez5riVa/flJQUeHh4wNDQUGpr165dbcZ7a2nq8f5N4uHhIX2vq6sLS0tLuLu7S23W1tYAgPv37yMlJUXhWAlozmuhoveHvy+vW7eu9NjX1xePHz9Wy2WvVfHLL7+gZ8+eaNiwIUxNTfHRRx/h4cOHWv96YGGhpf7+hqjtTE1Nce7cOezatQu2traYNWsWPD091X59p5GRUZWWaRtjY2O1/WxdXV0cPnwYP//8M1xdXbFmzRo0b94caWlpiImJQUJCAjp27Ihvv/0WzZo1Q2JiIgBgzpw5+OOPP9CnTx8cOXIErq6u2LNnj9r2Qxlv0nNHk/H3rJk09XhfWTKZTLoU54WSkhI1pSnfP/9pIZPJFNpe/JNAEy/d/btXvT9oAx0dnQqfK7du3ULfvn3h4eGB3bt34+zZs1i3bh0AaNQ4kapgYaHh/jkYODExES4uLvD09ERZWRmOHj2qpmSvVlHuiq4FrlOnDvz8/BAVFYWLFy/i1q1bOHLkSG1ErZCLiwuMjIwQFxf30jIPDw8kJycjOztbDcmUo+zforbJZDJ06tQJc+fOxfnz56Gvry8VCd7e3oiMjMTJkyfRqlUr7Ny5U1qvWbNmmDJlCg4dOoRBgwYhJiZGWvbs2TNpMDfw/D/Uubm5aNmyZe3t2P/S19dX+M++h4cHjh8/rnEfRl7lVc+hf+6fpnjV67d58+a4dOkSioqKpLbTp0/XZrxq09PT08jfe2Vo4vG+sho0aKBw9jQ1NVWr/8PcvHlzhWMloFmvhVe9P1y4cAFPnjyR+iYmJsLExAT29vbqiqvgn8+V/Px8qSg6e/YsysrKsHz5cnTo0AHNmjXD3bt31RVVpVhYaLiMjAyEh4cjJSUFu3btwpo1axAaGgonJyeMHDkSY8aMwd69e5GWlob4+Hh899136o4MoOLc5dm/fz9Wr16N5ORkpKenY9u2bSgrK0Pz5s1rObUiQ0NDREREYNq0adi2bRtu3LiBxMREbN68GUOHDoWNjQ0GDBiAEydO4ObNm9i9ezcSEhLUmrk8yvwtaltSUhIWLVqEM2fOICMjAz/++CMePHgAIyMjREZGIiEhAenp6Th06BBSU1PRsmVLPHnyBCEhIYiPj0d6ejpOnDiB06dPKxQNenp6mDRpEpKSknD27FmMGjUKHTp0UMspficnJyQlJeHWrVv466+/EBISgvz8fAQGBuLMmTNITU3F9u3bkZKSUuvZKutVzyEnJyccO3YMd+7c0ZjJI4BXv37/53/+B2VlZQgODsaVK1dw8OBBLFu2DAA0bmarijg5OSEuLg6ZmZkKl4doOk093ldWjx49sHbtWpw/fx5nzpzBuHHjtOqyxn/65JNPcPXqVURERODatWv47rvvpBmu1P1aqOj94cWxvri4GGPHjsXly5fx3//+F7Nnz0ZISAh0dDTjo22PHj2wfft2HD9+HJcuXcLIkSOlf+g1bdoUJSUlWLNmDW7evInt27dj48aNak6sIuoe5EEV69q1q5gwYYIYN26ckMvlol69emLGjBnSIMonT56IKVOmCFtbW6Gvry+aNm0qtmzZoubUr8/9z8Hbx48fF127dhX16tUTRkZGwsPDQ3z77bdqSq+otLRULFiwQDg6Ogo9PT3h4OAgFi1aJIQQ4tatWyIgIEDI5XJRt25d4ePjo5bBwa/yur+FugfeXr58Wfj7+4sGDRoIAwMD0axZM7FmzRqRmZkpBgwYID23HR0dxaxZs0RpaakoKioSgYGBwt7eXujr6ws7OzsREhIiDcSNiYkRZmZmYvfu3aJx48bCwMBA+Pn5ifT0dLXsY0pKiujQoYMwMjISAERaWpq4cOGCePfdd0XdunWFqampeOedd8SNGzfUku91XvccSkhIEB4eHsLAwEBo2lvKq16/J06cEB4eHkJfX1+0adNG7Ny5UwAQV69eVXPq8v1z8Pa+fftE06ZNRZ06dRTaNdWLAdCafLyvyN8Hb9+5c0e8++67wtjYWLi4uIj//ve/Gjd4+++TRQhR/nEefxuE/u9//1s0bdpUGBgYiG7duokNGzYIAAqTG6hDRe8PQjwfvN2/f38xa9YsYWlpKUxMTERQUJB4+vSpWjP/XV5envjwww+FXC4X9vb2IjY2VmHw9ooVK4Stra0wMjIS/v7+Ytu2bRoxaL66ZEL84wIwInpjdOvWDV5eXm/VnZFjY2MRFhamNddsk2bYsWMHRo8ejby8PI7PoLfawoULsXHjRo0eBD1q1Cjk5uZq1d3n3xa8jwUREb11tm3bhsaNG6Nhw4a4cOECIiIiMGTIEBYV9NZZv3492rZtC0tLS5w4cQJffvklQkJC1B2LtBQLCyIieutkZmZi1qxZyMzMhK2tLQYPHqw1N9YiUqXU1FQsWLAA2dnZcHBwwKefforIyEh1xyItxUuhiIiIiIio2jRj6DwREREREWk1FhZERERERFRtLCyIiIiIiKjaWFgQEREREVG1sbAgIiIiIqJqY2FBRERERETVxsKCSAtlZmYiNDQUTZs2haGhIaytrdGpUyds2LABhYWFCn0XL14MXV1dfPnlly9tJzY2FjKZDDKZDDo6OmjUqBFGjx6N+/fvS31eLJfJZKhTpw4cHBwQHh6OoqIiqc+DBw8wfvx4ODg4wMDAADY2NvD398eJEycq3Idbt25h7NixcHZ2hpGREZo0aYLZs2ejuLhY6hMfH4/+/fvD1tYWxsbG8PLywo4dO6rzqyMiqhGjRo2CTCbDkiVLFNr37t0LmUwG4Pkx7e/HVGtrawQEBODmzZtSfycnJ2m5rq4u7OzsMHbsWOTk5Lw2Q3FxMaKiouDp6Ym6deuifv366NSpE2JiYlBSUqLaHSYqB2+QR6Rlbt68iU6dOsHc3ByLFi2Cu7s7DAwMcOnSJWzatAkNGzbE+++/L/XfsmULpk2bhi1btuCzzz57aXtyuRwpKSkoKyvDhQsXMHr0aNy9excHDx6U+sTExOC9995DSUmJ1MfY2Bjz588HAAQEBKC4uBhbt25F48aNkZWVhbi4ODx8+LDC/bh69SrKysrw9ddfo2nTpvj9998RFBSEgoICLFu2DABw8uRJeHh4ICIiAtbW1ti/fz9GjBgBMzMz9O3bV1W/UiIilTA0NMTSpUvxySefoF69ehX2S0lJgampKVJTUxEcHIx+/frh4sWL0NXVBQDMmzcPQUFBKC0txbVr1xAcHIzJkydj+/btFW6zuLgY/v7+uHDhAubPn49OnTpBLpcjMTERy5Ytg7e3N7y8vFS9y0SKBBFpFX9/f9GoUSPx+PHjcpeXlZVJ38fHx4uGDRuK4uJiYWdnJ06cOKHQNyYmRpiZmSm0LVy4UOjo6IjCwkIhhBAAxJ49exT6jB07VvTu3VsIIUROTo4AIOLj46u5Z0JERUUJZ2fnV/bp3bu3GD16dLV/FhGRKo0cOVL07dtXtGjRQnz22WdS+549e8SLj1u//vqrACBycnKk5Tt27BAAxNWrV4UQQjg6OoqVK1cqbHv+/PnC1dX1lT9/6dKlQkdHR5w7d+6lZcXFxRW+ZxCpEi+FItIiDx8+xKFDhzBx4kQYGxuX2+fFKXcA2Lx5M4YOHQo9PT0MHToUmzdvfu3PMDIyQllZGZ49e1bu8mvXruHIkSNo3749AMDExAQmJibYu3evwuVRVZGXlwcLC4tq9yEiUgddXV0sWrQIa9aswZ9//lmpdYyMjABA4TLQv7tz5w5++ukn6ZhbkR07dsDPzw/e3t4vLdPT06vwPYNIlVhYEGmR69evQwiB5s2bK7TXr19f+oAfEREBAMjPz8cPP/yA4cOHAwCGDx+O7777Do8fP65w+6mpqdi4cSN8fHxgamoqtQ8dOhQmJiYwNDRE8+bN4ebmhsjISABAnTp1EBsbi61bt8Lc3BydOnXCjBkzcPHiRaX3bc2aNfjkk08q7PPdd9/h9OnTGD16tFLbJiKqLQMHDoSXlxdmz5792r737t3DsmXL0LBhQ4XjekREBExMTGBkZIRGjRpBJpNhxYoVr9xWamoqWrRoUe38RNXBwoLoDXDq1CkkJyfDzc1NOmuwa9cuNGnSBJ6engAALy8vODo64ttvv1VYNy8vDyYmJqhbty6aN28Oa2vrlwZIr1y5EsnJybhw4QL279+Pa9eu4aOPPpKWBwQE4O7du9i3bx/ee+89xMfHo3Xr1oiNjQUAjBs3Tip8TExMXsp/584dvPfeexg8eDCCgoLK3cdff/0Vo0ePRnR0NNzc3Kr8uyIiqmlLly7F1q1bceXKlXKXN2rUCMbGxrCzs0NBQQF2794NfX19aflnn32G5ORkXLx4EXFxcQCAPn36oLS0FAAUjqfjxo0DAAghaniviF6Pg7eJtEjTpk0hk8mQkpKi0N64cWMA/3dKHXh+GdQff/yBOnX+72VeVlaGLVu2YOzYsVKbqakpzp07Bx0dHdja2ips4wUbGxs0bdoUANC8eXM8evQIQ4cOxYIFC6R2Q0ND9OrVC7169cLMmTPx8ccfY/bs2Rg1ahTmzZuHqVOnlrtPd+/eRffu3dGxY0ds2rSp3D5Hjx5Fv379sHLlSowYMaIyvyoiIrXp0qUL/P39ERkZiVGjRr20/Pjx45DL5bCyslI4O/xC/fr1pWOri4sLVq1aBV9fX/z666/w8/NDcnKy1FculwMAmjVrhqtXr9bI/hBVFgsLIi1iaWmJXr16Ye3atZg0aVKF18xeunQJZ86cQXx8vMJ4hOzsbHTr1g1Xr16VTpnr6OhIb2CV9WLmkidPnlTYx9XVFXv37gUAWFlZwcrK6qU+d+7cQffu3dGmTRvExMRAR+flk6jx8fHo27cvli5diuDgYKVyEhGpy5IlS+Dl5fXSpasA4OzsDHNz80pv65/H3PKO2f/zP/+DGTNm4Pz58y+NsygpKUFxcTHHWVCNY2FBpGXWr1+PTp06wcfHB3PmzIGHhwd0dHRw+vRpXL16FW3atMHmzZvRrl07dOnS5aX127Zti82bN5d7X4uK5ObmIjMzE2VlZUhNTcW8efPQrFkztGzZEg8fPsTgwYMxZswYeHh4wNTUFGfOnEFUVBT69+9f4Tbv3LmDbt26wdHREcuWLcODBw+kZTY2NgCeX/7Ut29fhIaGIiAgAJmZmQAAfX19DuAmIo3m7u6OYcOGYfXq1Uqv++jRI2RmZkIIgdu3b2PatGlo0KABOnbsWOE6YWFh+M9//oOePXti/vz56Ny5s3Q8Xrp0KTZv3szpZqnmqXlWKiKqgrt374qQkBDh7Ows9PT0hImJiWjXrp348ssvRV5enrC0tBRRUVHlrrt06VJhZWUliouLy51u9p8ASF8ymUzY2tqKDz/8UNy4cUMIIcTTp0/F9OnTRevWrYWZmZmoW7euaN68ufjiiy+kKWvLExMTo7Dtv3+9MHLkyHKXd+3aVenfGRFRTRo5cqTo37+/QltaWprQ19d/5XSz/+To6KhwvGvQoIHo3bu3OH/+/GszPH36VCxevFi4u7sLQ0NDYWFhITp16iRiY2NFSUlJNfaOqHJkQnC0DxERERERVQ9nhSIiIiIiompjYUFERERERNXGwoKIiIiIiKqNhQUREREREVUbCwsiIiIiIqo2FhZERERERFRtLCyIiIiIiKjaWFgQEREREVG1sbAgIiIiIqJqY2FBRERERETVxsKCiIiIiIiqjYUFERERERFV2/8H3b9Np/qbPxYAAAAASUVORK5CYII=", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -563,53 +510,49 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 70, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAADSCAYAAADXL1aYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABBOklEQVR4nO3dd3gUVfs38O+kbPomJJCQQBqETgJIJ0roTYg0RVoKCKJAgCglICDwUMUgoIJiSEBFUSmiwqOPIaGEIpJCDzX0EkoqkLbn/YOX/bGk7WaTLfD9XNdeV/bMnDP3bGZn9945Z44khBDQkfnz58PKygpTp04FAMTFxaFXr16ws7NDZmYmYmJiMHz4cF2FQ0RERERElcRElxv75Zdf0LhxY+XzhQsXIiwsDHfv3sXnn3+ORYsW6TIcIiIiIiKqJGa62MjGjRshhEBaWhqSk5Nx7949CCGQkJCA1157DRs3boRCocDFixexceNGAEBQUJAuQiMiIiIiokqgk8TC09MTACCTyeDi4gJPT08kJydDLpejc+fOEEIgLy8PkiTBy8sLOuydRURERERElUDS5RiLHj16wNraGtOnT8f8+fNRs2ZNREdHAwCOHz+OwYMHIzU1VVfhEBERERFRJdFpYpGSkoI33ngDV65cQcOGDfHnn3/C3d0dAPDBBx+gsLAQK1eu1FU4RERERERUSXSaWDx17949ODk5qZTdvHkTcrkcNjY2ug6HiIiIiIi0pJfE4qlr167Bzc0NJiY6vTkVERERERFVMr1+o2/cuDHS0tL0GQIREREREVUCvSYWvPsTEREREdGLgX2QiIiIiIhIa3pNLGbOnAlHR8cK11+zZg38/Pwgl8shl8vRvn177Nq1qxIjJCIiIiIideh18La2fvvtN5iamqJevXoQQmDDhg345JNPkJSUhCZNmug7PCIiIiKil4bOEov58+ertd6cOXO02o6joyM++eQTjB49Wqt2iIiIiIhIfTpLLExMTODm5gZnZ+dSB21LkoTExMQKtV9UVISff/4ZwcHBSEpKQuPGjbUJl4iIiIiINGCmqw317t0bu3fvRqtWrTBq1Cj07du3UuavOH78ONq3b4/Hjx/D1tYW27ZtKzWpyMvLQ15envK5QqHA/fv34eTkBEmStI6FiIiIiOhFIoRAdna2WnPP6XSMxY0bN7BhwwbExMQgKysLQUFBGDVqFBo0aFDhNvPz83HlyhVkZmbil19+wTfffIM9e/aUmFx8/PHHmDdvnja7QERERET00rl69Spq165d5jp6G7y9d+9eREdHY8uWLfD19cXff/8NKysrrdvt1q0b6tati6+++qrYsuevWGRmZsLDwwNXr16FXC7XettERPqWm5sLNzc3AE9+zLGxsdFzREREZMyysrLg7u6OjIwM2Nvbl7muzrpCPa9169ZIS0vDqVOnkJSUhIKCgkpJLBQKhUry8CwLCwtYWFgUK396u1oiImNnamqq/FsulzOxICKiSqHOsAGdJxYHDx7E+vXr8dNPP6F+/foIDQ3FsGHDKvTFPiIiAr1794aHhweys7OxadMmxMfH488//6yCyImIiIiIqDQ6SyyWLVuGmJgY3L17F8OHD8e+ffvg5+enVZt37txBUFAQbt68CXt7e/j5+eHPP/9E9+7dKylqIiIiIiJSh05vN+vh4YG+fftCJpOVul5kZKQuwgHwpM+Yvb09MjMzS71iUlRUhIKCAp3FRKRP5ubmKl1pyPjk5ubC1tYWAJCTk8OuUEREpBV1vi8/pbMrFh07doQkSTh58qSuNqm1nJwcXLt2rdR5N4heNJIkoXbt2sovpkRERETq0lliER8fr6tNVYqioiJcu3YN1tbWqFGjBue5oBeeEALp6em4du0a6tWrxysXREREpBG93RXqeadPn0ZUVBSWL1+u71AAAAUFBRBCoEaNGpVytyoiY1CjRg2kpaWhoKCAiQURERFpRPupr7WQm5uLqKgodOjQAU2aNMF///tffYZTIl6poJcJj3ciIiKqKL0kFgkJCRg1ahRcXFwwduxYdOjQAadOncKJEyf0EQ4REREREWlJZ4nFnTt3sGzZMjRs2BCDBw+Gg4MD4uPjYWJiglGjRqFhw4a6CoXohZaWlgZJkpCRkaHvUIiIiOglorMxFp6enhg8eDBWrlyJ7t27w8REr72wKqzd3KqffO/QvJ5qrffsnXsePXoEMzMzmJubAwBee+017Nq1C5IkwcrKCmZmZjAzM0ODBg0wZMgQjB8/XrluTEwMRo8eDSsrK0iSBBcXF4wfPx5TpkxR2V5ubi5cXV3RqFEjHD58WGVZSEgINmzYgHXr1uGdd95Rlv/8889466238MYbb2D79u0VeTk0Erj99Srfxo7+f2hc5++//8a8efOQ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/v374evrW2zwdlhYmNpt+fr6YufOnXB3d9c0DCIiIiIiMiAaT5Dn7e1demOShIsXL6rdlp2dHVJSUvQ227YmE34QERkDTpBHRESVqUonyONYCSIiIiIiep7GE+RVptdeew1WVlb6DIGIiIiIiCqBWlcswsPDsWDBAtjY2CA8PLzMdSMjI9Xe+M6dO9VetySLFy/G1q1bcebMGVhZWaFDhw5YunQpGjRooFW7RERERESkGbUSi6SkJBQUFCj/1lZRURG2b9+O06dPAwCaNGmCwMBAmJqaatTOnj17MH78eLRu3RqFhYWYOXMmevTogVOnTrFfMRERERGRDmk8eFtb58+fx+uvv45r164pryykpqbC3d0df/zxh8a3sX1Weno6nJ2dsWfPHnTs2LHc9Tl4m4heNBy8TURElUmT78saj7EYNWoUsrOzi5Xn5uZi1KhR5dYPCwtDnTp1cPXqVSQmJiIxMRFXrlyBt7e3RreqLUlmZiYAwNHRscTleXl5yMrKUnkQEREREZH2NL5iYWpqips3b8LZ2Vml/O7du6hZsyYKCwvLrG9jY4NDhw7B19dXpTwlJQX+/v7IycnRJBwlhUKBwMBAZGRkYP/+/SWu8/HHH2PevHnFynnFgoheFLxiQURElalKbjeblZUFIQSEEMjOzoalpaVyWVFREXbu3Fks2SiJhYVFiVc8cnJyIJPJ1A2nmPHjx+PEiROlJhUAEBERoTL4PCsri5PzERERERFVArUTCwcHB0iSBEmSUL9+/WLLJUkq8WrA8/r27YuxY8ciKioKbdq0AQAcPnwY48aNQ2BgoAah/58JEybg999/x969e1G7du1S17OwsICFhUWFtkFERERERKVTO7GIi4uDEAJdunTBli1bVMYxyGQyeHp6ws3Nrdx2Vq1aheDgYLRv3x7m5uYAgMLCQgQGBmLlypUaBS+EwMSJE7Ft2zbEx8eXOSs4ERERERFVHbUTi4CAAABPZt728PCAJEkV2qCDgwN+/fVXnDt3DmfOnAEANGrUCD4+Phq3NX78eGzatAm//vor7OzscOvWLQCAvb09J94jIiIiItIhnd9utjKVltxER0cjJCSk3Pq83SwRvWg4eJuIiCpTlQzerixFRUWIiYlBbGws7ty5A4VCobJ89+7dardlxDkREREREdELReeJxaRJkxATE4PXX38dTZs2rXCXKiIiIiIiMhw6Tyx+/PFH/PTTT+jTp4+uN01ERERERFVE45m3tSWTySo0UJuIiIiIiAyXxonF7du3MXLkSLi5ucHMzAympqYqj/J88MEHWLlyJcdHEBERERG9QDTuChUSEoIrV65g9uzZcHV11XiMxP79+xEXF4ddu3ahSZMmyrksntq6daumIRERERERkZ5pnFjs378f+/btQ/PmzSu0QQcHBwwYMKBCdYmIiIiIyDBpnFi4u7tr1Y0pOjq6wnWJiIjazf1Tq/qH5vWspEiIdEubY5/HPemCxmMsPvvsM8yYMQNpaWlVEA4RERERERkjja9YDBkyBA8fPkTdunVhbW1dbIzE/fv3Ky04IiIiIiIyDhonFp999lkVhEFERERERMZM48QiODi4KuIgIiIiIiIjVqGZt4uKirB9+3acPn0aANCkSRMEBgaqNY8FERERERG9eDQevH3+/Hk0atQIQUFB2Lp1K7Zu3YoRI0agSZMmuHDhglpt7NmzB/369YOPjw98fHwQGBiIffv2aRw8EREREREZBo0Ti7CwMNStWxdXr15FYmIiEhMTceXKFXh7eyMsLKzc+t999x26desGa2trhIWFISwsDFZWVujatSs2bdpUoZ0gIiIiIiL90rgr1J49e3Do0CE4Ojoqy5ycnLBkyRL4+/uXW3/hwoVYtmwZpkyZoiwLCwtDZGQkFixYgGHDhmkaEhEREVG5OAcKUdXS+IqFhYUFsrOzi5Xn5ORAJpOVW//ixYvo169fsfLAwEBcunRJ03CIiIiIiMgAaJxY9O3bF2PHjsXhw4chhIAQAocOHcK4ceMQGBhYbn13d3fExsYWK//777/h7u6uaThERERERGQANO4KtWrVKgQHB6N9+/bKyfEKCwsRGBiIlStXllv/gw8+QFhYGJKTk9GhQwcAQEJCAmJiYtSqT0RERKQPgdtf16r+jv5/VFIkRIZJ48TCwcEBv/76K86dO4czZ84AABo1agQfHx+16r/33nuoWbMmPv30U/z000/K+ps3b8Ybb7yhaThERERERGQAKjSPBQDUq1cP9erVq1DdAQMGYMCAARXdNBERERERGRi1Eovw8HAsWLAANjY2CA8PL3PdyMjIMpfXqVMHR44cgZOTk0p5RkYGXnnlFVy8eFGdkIiIiIiIyIColVgkJSWhoKBA+bc20tLSUFRUVKw8Ly8P169f16ptIiIiIiLSD7USi7i4uBL/1sSOHTuUf//555+wt7dXPi8qKkJsbCy8vLwq1DYREREREemXxmMsRo0ahZUrV8LOzk6lPDc3FxMnTsT69etLrNe/f38AgCRJCA4OVllmbm4OLy8vfPrpp5qGQ3rGyYaIiIiICKhAYrFhwwYsWbKkWGLx6NEjbNy4sdTEQqFQAAC8vb1x5MgRVK9evQLhEtGLgkkpvax47BPRi0rtxCIrK0s5IV52djYsLS2Vy4qKirBz5044OzuX2w5n1y6OHzJERKQubeZS4DwKRFSV1E4sHBwcIEkSJElC/fr1iy2XJAnz5s2r1OCIiIiIiMg4qJ1YxMXFQQiBLl26YMuWLXB0dFQuk8lk8PT0hJubW5UESUREREREhk3txCIgIADAk65MHh4ekCSpyoIiIiIiIiLjovHg7cuXL+Py5culLu/YsaNWARERERFR5dJmbA7A8TmkHo0Ti06dOhUre/bqRUmT32VlZandvlwu1zQkogrjwHkiIvXxnElEZdE4sXjw4IHK84KCAiQlJWH27NlYuHBhiXWeDvxWR0mJCRERERERGTaNE4tnZ8x+qnv37pDJZAgPD8fRo0eLLX92tu60tDTMmDEDISEhaN++PQDg4MGD2LBhAxYvXqxpOET0kuJlfSIiIsOicWJRGhcXF6Smppa47OnAbwCYP38+IiMjMXToUGVZYGAgfH198fXXXxeblZvKxy9YLy92SyAiIiJDoXFicezYMZXnQgjcvHkTS5YsQfPmzcutf/DgQaxdu7ZYeatWrfDOO+9oGg4RERERERkAjROL5s2bQ5IkCCFUytu1a4f169eXW9/d3R3r1q3DsmXLVMq/+eYbuLu7axoOERGRRniVl4ioamicWFy6dEnluYmJCWrUqAFLS0u16q9YsQKDBg3Crl270LZtWwDAP//8g3PnzmHLli0axbJ371588sknOHr0KG7evIlt27ahf//+GrVBRFQR7IZGRESkSuPEwtPTU6sN9unTB2fPnsWaNWtw5swZAEC/fv0wbtw4ja9Y5ObmolmzZhg1ahQGDhyoVVykH/zlkIiIiOjFoHFiERYWBh8fH4SFhamUf/755zh//jw+++yzcttwd3fHokWLNN10Mb1790bv3r21bic/Px/5+flat1NRptDuFrsmRSZa1ddm3405dkD7+PV53ADG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ebGuqwDg7e0NBwcHtdt6/pxb0jl72LBhmDlzJpKSkoqNsygoKEB+fj7HWVCVY2JBZGS+/PJL+Pv7o1WrVvj444/h5+cHExMTHDlyBGfOnEHLli0RFRWFNm3aoGPHjsXqt27dGlFRUSXOa1GajIwM3Lp1CwqFAufOncP8+fNRv359NGrUCPfu3cObb76JUaNGwc/PD3Z2dvj333+xbNkyvPHGG6W2ef36dXTq1Amenp5Yvnw50tPTlctq1qwJ4En3p759+2LSpEkYNGgQbt26BQCQyWQcwE1EBs3X1xfDhw/HqlWrNK6bnZ2NW7duQQiBq1evYtq0aahRowY6dOhQap3Jkyfjjz/+QNeuXbFgwQK8+uqryvPx0qVLERUVxdvNUtXT812piKgCbty4ISZMmCC8vb2Fubm5sLW1FW3atBGffPKJyMzMFE5OTmLZsmUl1l26dKlwdnYW+fn5Jd5u9nkAlA9JkoSrq6sYMmSIuHDhghBCiMePH4sZM2aIV155Rdjb2wtra2vRoEED8dFHHylvWVuS6OholbaffTwVHBxc4vKAgACNXzMioqoUHBws3njjDZWyS5cuCZlMVubtZp/n6empcr6rUaOG6NOnj0hKSio3hsePH4vFixcLX19fYWlpKRwdHYW/v7+IiYkRBQUFWuwdkXokITjah4iIiIiItMO7QhERERERkdaYWBARERERkdaYWBARERERkdaYWBARERERkdaYWBARERERkdaYWBARERERkdaYWBARERERkdaYWBARERERkdaYWBARERERkdaYWBARERERkdaYWBARERERkdaYWBARERERkdb+H7nyKaLPkc3SAAAAAElFTkSuQmCC", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "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", + "image/png": "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qU9yYaGpkpISREdHIy4uDunp6VAoFCrz9+zZo/a6tHwJDiIiIiIiKofWC4vJkycjOjoab775Jpo3b17lLlVERERERKQ/tF5Y/PTTT/j555/Rr18/bW+aiIiIiIheEMkXyNOUTCar0kBtIiIiIiLSX5ILi7t372LkyJFwcXGBiYkJjI2NVW6V+fjjj7Fy5UqOjyAiIiIieolI7goVFBSEGzduYNasWXB2dpY8RuLgwYPYu3cvdu7ciWbNmimvZfHU1q1bpUYiIiIiIiIdk1xYHDx4EAcOHEDLli2rtEE7OzsMHDiwSm2JiIiIiEg/SS4sXF1dNerGFBUVVeW2RERERESknySPsVixYgU+/fRTpKSkvIA4RERERERkiCQfsXj33Xfx6NEjNGjQAJaWlqXGSDx48KDawhER0YvRIezPKrc9Mqd3NSYhIqKXheTCYsWKFS8gBhERERG9rDT5MQPgDxqGQnJhERgY+CJyEBERERGRAavSlbdLSkqwfft2nD9/HgDQrFkz+Pv7q3UdCyIiIiIievlIHrx9+fJlNGnSBKNGjcLWrVuxdetWjBgxAs2aNcOVK1fUWse+ffswYMAAeHp6wtPTE/7+/jhw4IDk8EREREREpB8kH7EIDg5GgwYNcOTIEdjb2wMA7t+/jxEjRiA4OBh//PFHhe2///57jB49GoMGDUJwcDAAICEhAd27d0d0dDSGDRtWhd0gXWGfSSIielX4b39To/axARV/RyIydJILi3379qkUFQDg4OCARYsWoXPnzpW2nz9/PpYsWYKpU6cqpwUHByM8PBzz5s1jYUFEREREZIAkd4UyMzNDTk5Oqem5ubmQyWSVtr969SoGDBhQarq/vz+uXbsmNQ4REREREekByUcs+vfvj/HjxyMiIgLt2rUDABw9ehQTJkyAv79/pe1dXV0RFxcHT09Plem7d++Gq6ur1DhEREREatG0+65jq2oKQvSSklxYrFq1CoGBgejYsaPy4njFxcXw9/fHypUrK23/8ccfIzg4GElJSejUqROAJ2MsoqOj1WpPRERERET6R3JhYWdnh19//RWXLl3ChQsXAABNmjQpdQSiPB988AFq166NZcuW4eeff1a237RpE9566y2pcYiIiIiISA9U6ToWAODl5QUvL68qtR04cCAGDhxY1U0TEREREZGeUauwCAkJwbx582BlZYWQkJAKlw0PD69wfv369fH333/DwcFBZXpmZiZee+01XL16VZ1IRERERESkR9QqLBITE1FUVKT8WxMpKSkoKSkpNb2goAC3bt3SaN1ERET6jtf/IaKXlVqFxd69e8v8W4rY2Fjl33/++SdsbW2V90tKShAXFwcPD48qrZuIiIiIiHRL8hiLMWPGYOXKlbCxsVGZnpeXh0mTJiEyMrLMdgEBAQAAQRAQGBioMs/U1BQeHh5YtmyZ1DhERERERKQHJF8gLyYmBvn5+aWm5+fnY8OGDeW2UygUUCgUcHNzQ3p6uvK+QqFAQUEBkpOT0b9/f6lxiIiIiIhID6h9xCI7OxuiKEIUReTk5MDc3Fw5r6SkBDt27ICjo2Ol6+HVtUmfsK8zERERUfVQu7Cws7ODIAgQBAENGzYsNV8QBMyZM6dawxERERERkWFQu7DYu3cvRFFEt27dsGXLFtjb2yvnyWQyuLu7w8XF5YWEJCIioif8t79Z5baxAX9UYxIiIlVqFxa+vr4AnnRlcnNzgyAILywUEb382A3NcGnyxRbgl1siopeV5LNCXb9+HdevXy93fpcuXTQKREREREREhkdyYeHn51dq2rNHL8q6+F12drba65fL5VIjERERERGRjkkuLB4+fKhyv6ioCImJiZg1axbmz59fZpunA7/VUVZhQkRE9BS70RkudqMjerlJLiyevWL2Uz179oRMJkNISAiOHz9eav6zV+tOSUnBp59+iqCgIHTs2BEAcPjwYcTExGDhwoVS45CB44cMGSp+uSUiIlIlubAoj5OTE5KTk8uc93TgNwDMnTsX4eHhGDp0qHKav78/vL298Z///KfUVbmJiIiI6NXGHyINg+TC4tSpUyr3RVFEWloaFi1ahJYtW1ba/vDhw1i3bl2p6W3atMH7778vNQ4RkUHihyQRkeHgUWr1SC4sWrZsCUEQIIqiyvQOHTogMjKy0vaurq5Yv349lixZojL922+/haurq9Q4RDrFL4dERGQI+HlF2iC5sLh27ZrKfSMjI9SqVQvm5uZqtV++fDkGDx6MnTt3on379gCAY8eO4dKlS9iyZYukLPv378eXX36J48ePIy0tDdu2bUNAQICkdRARERERkeYkFxbu7u4abbBfv364ePEi1q5diwsXLgAABgwYgAkTJkg+YpGXl4cWLVpgzJgxGDRokEa5dImH14ik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kz6+jo6OpZa5desWunbtitatWyMqKgpGRpUfRE1KSoKzs7OkvERE2rZo0SK0bNmyVNdVAKhXrx7s7OzUXtfz77lS3rPT09OxceNGBAQEqPUeS6QJFhZEBubrr79G586d0aZNG3z++efw8fGBkZER/v77b1y4cAGtW7dGREQE2rVrhy5dupRq37ZtW0REREjqTpSZmYk7d+5AoVDg0qVLmDt3Lho2bIgmTZrg/v37ePvttzFmzBj4+PjAxsYG//zzD5YsWYK33nqr3HXeunULfn5+cHd3x9KlS5GRkaGcV7t2bQBATEwMZDIZWrVqBQDYunUrIiMj8e2336qdnYhIF7y9vTF8+HCsWrVKctucnBzcuXMHoiji5s2bmD59OmrVqoVOnTpV2E4URWW7zMxMHD58GAsWLICtrW2p62sQvQgsLIgMTIMGDZCYmIgFCxYgNDQUqampMDMzQ9OmTfHJJ59g/PjxqF+/vnIQ9/MGDx6MZcuWYcGCBWpvc/To0QCe9M+tXbs2unTpggULFsDExATW1tZo3749li9fjitXrqCoqAiurq4YN25cmdekeOqvv/7C5cuXcfnyZdStW1dl3tP+wAAwb948XL9+HSYmJmjcuDE2bdqEIUOGqJ2diEhX5s6dW2pcmzpmz56N2bNnAwBq1aqFtm3bYteuXZV2ZcrOzoazszMEQYBcLkejRo0QGBiIyZMnq9VlikhTgvjsJzgREREREVEVsLMdERERERFpjIUFERERERFpjIUFERERERFpjIUFERERERFpjIUFERERERFpjIUFERERERFpjIUFERERERFpjIUFERERERFpjIUFERERERFpjIUFERERERFpjIUFERERERFpjIUFERERERFp7P8AIFyMpvbAIY4AAAAASUVORK5CYII=", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], "source": [ - "app_gap = df_gap22_cas['app']\n", - "gap_22_cas = df_gap22_cas['simSeconds'].astype(float)*1000\n", + "app_gap = df_gap22_ram['app']\n", "gap_22_ram = df_gap22_ram['simSeconds'].astype(float)*1000\n", + "gap_22_orc = df_gap22_orc['simSeconds'].astype(float)*1000\n", "gap_22_noDC = df_gap22_noDC['simSeconds'].astype(float)*1000\n", "\n", "\n", - "gap_25_cas = df_gap25_cas['simSeconds'].astype(float)*1000\n", "gap_25_ram = df_gap25_ram['simSeconds'].astype(float)*1000\n", + "gap_25_orc = df_gap25_orc['simSeconds'].astype(float)*1000\n", "gap_25_noDC = df_gap25_noDC['simSeconds'].astype(float)*1000\n", "\n", "\n", - "app_npb = df_npbC_cas['app']\n", - "npb_C_cas = df_npbC_cas['simSeconds'].astype(float)*1000\n", + "app_npb = df_npbC_ram['app']\n", "npb_C_ram = df_npbC_ram['simSeconds'].astype(float)*1000\n", + "npb_C_orc = df_npbC_orc['simSeconds'].astype(float)*1000\n", "npb_C_noDC = df_npbC_noDC['simSeconds'].astype(float)*1000\n", "\n", - "npb_D_cas = df_npbD_cas['simSeconds'].astype(float)*1000\n", "npb_D_ram = df_npbD_ram['simSeconds'].astype(float)*1000\n", + "npb_D_orc = df_npbD_orc['simSeconds'].astype(float)*1000\n", "npb_D_noDC = df_npbD_noDC['simSeconds'].astype(float)*1000\n", "\n", "\n", @@ -619,13 +562,13 @@ "plt.ylim([0,3])\n", "\n", "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_22_cas[i]/gap_22_noDC[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_22_ram[i]/gap_22_noDC[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", + " plt.bar(i*3, gap_22_ram[i]/gap_22_noDC[i], width=1, color=cmap(1), label='TDRAM' if i==0 else None)\n", + " plt.bar(i*3+1, gap_22_orc[i]/gap_22_noDC[i], width=1, color=cmap(2), label='Oracle' if i==0 else None)\n", "\n", "offset = i*3+2\n", "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_C_cas[i]/npb_C_noDC[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_C_ram[i]/npb_C_noDC[i], width=1, color=cmap(2))\n", + " plt.bar(offset+i*3+1, npb_C_ram[i]/npb_C_noDC[i], width=1, color=cmap(1))\n", + " plt.bar(offset+i*3+2, npb_C_orc[i]/npb_C_noDC[i], width=1, color=cmap(2))\n", "\n", "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", "plt.figtext(0.75, -0.01, \"NPB-C\")\n", @@ -635,7 +578,7 @@ "plt.axhline(y=1, color='grey')\n", "\n", "plt.ylabel(\"Execution time\\nnormalized to no-DRAM-$\")\n", - "plt.legend(fontsize=8, ncol=1)\n", + "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", "plt.tight_layout()\n", "\n", "# Multi bar Chart2\n", @@ -644,13 +587,13 @@ "plt.ylim([0,3])\n", "\n", "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_25_cas[i]/gap_25_noDC[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_25_ram[i]/gap_25_noDC[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", + " plt.bar(i*3, gap_25_ram[i]/gap_25_noDC[i], width=1, color=cmap(1), label='TDRAM' if i==0 else None)\n", + " plt.bar(i*3+1, gap_25_orc[i]/gap_25_noDC[i], width=1, color=cmap(2), label='Oracle' if i==0 else None)\n", "\n", "offset = i*3+2\n", "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_D_cas[i]/npb_D_noDC[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_D_ram[i]/npb_D_noDC[i], width=1, color=cmap(2))\n", + " plt.bar(offset+i*3+1, npb_D_ram[i]/npb_D_noDC[i], width=1, color=cmap(1))\n", + " plt.bar(offset+i*3+2, npb_D_orc[i]/npb_D_noDC[i], width=1, color=cmap(2))\n", "\n", "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", "plt.figtext(0.75, -0.01, \"NPB-D\")\n", @@ -660,37 +603,33 @@ "plt.axhline(y=1, color='grey')\n", "\n", "plt.ylabel(\"Execution time\\nnormalized to no-DRAM-$\")\n", - "plt.legend(fontsize=8, ncol=1)\n", + "plt.legend(fontsize=9, ncol=2)\n", "plt.tight_layout()" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 71, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAACgCAYAAAAB3xbxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAh90lEQVR4nO3de5yVVb3H8c8XRFFDEMEORQl2lEIRL0heEAcviUYo5d1Mzcspr2jhCU8JloYdb5maHcPUtBPaSU3JvISMeFdICBXlmOIRxURMEFNR+Z0/nmfDZth75tkz+5nZM3zfr9d+7f2svZ5n/fbtmTVrrWctRQRmZmZmHUmntg7AzMzMrNpcwTEzM7MOxxUcMzMz63BcwTEzM7MOxxUcMzMz63BcwTEzM7MOxxUcMzMz63ByqeBI2lDSgDyObWZmZtaUqldwJH0FmA3cnW5vL+mOapdjZmZmVk4eLTgTgaHA2wARMRvon0M5ZmZmZiXlUcH5MCKWNkjzehBmZmbWatbL4ZjPSDoS6CxpK+B04JEcyjEzMzMrKY8WnNOAbYAPgN8Cy4CxOZRjZmZmVpK8mriZmZl1NFXvopK0NfBdoF/x8SNir2qXZWZmZlZK1VtwJM0BfgHMAj4upEfErKoWZGZmZlZGHhWcWRGxUzP26wrMADYgafn5n4iYUNXgzMzMbJ1QtQqOpJ7pw9OBN4DbSAYaAxARbzWxv4CNI2K5pC7AQ8AZEfFYVQI0MzOzdUY1x+DMIpnvRun2uKLnAtiysZ0jqWktTze7pDePgDYzM7OKVa2CExEtnq1YUmeSitK/AldFxOMNnj8JOAlg44033unzn/98S4s0swo9//zzAAwY4OXmzKztzZo1682I6N0wPY8xOKcAv4mIt9PtTYEjIuLnFRyjB0kX12kR8XSpPEOGDImZM2e2PGAzq0hdXR0A9fX1bRqHmRmsGvs7pGF6HhP9nVio3ABExD+AEys5QLr/dGBkVSMzMzOzdUIeFZzO6YBhYFW30/pN7SSpd9pyg6QNgX2B53KIz8zMzDq4PNaiuhu4WdJ/pdv/lqY1pQ9wQ1oh6gTcEhFTc4jPzMysVXz44YcsXLiQ999/v61D6RC6du1K37596dKlS5N586jg/DtJpebb6fZ9wOSmdoqIvwI75BCPmZlZm1i4cCHdunWjX79+FHVuWDNEBEuWLGHhwoX079/0dU1Vr+BExErg6vRmZma2znr//fdduakSSWy22WYsXrw4U/481qLaCpgEDAS6FtIjotF5cMzMzDoiV26qp5L3Mo9BxteRtN58BIwAfg3clEM5ZmZmlpo2bRp1dXUMHz6cMWPGsGTJklzKWbBgAccee2yT+a6//nomT25yhArDhg2rQlRry2MMzoYRMU2SIuJlYKKkWcC5OZRlZmbWLuwy4Z4W7f/YefuVfW7x4sX88Ic/ZOrUqXTr1o358+ezYsWKFpXX3uXRgvOBpE7A/0o6VdIY4BM5lGNmZmbAXXfdxdFHH023bt0A2HrrrenTpw/XXXcddXV1DBkyhHvvvReAc845h2HDhjFixAhee+01Xn/9dfbff3/q6uoYP348AIceeih77rknX/rSl1i2bBkA5557LnvssQeTJk1aVe7UqVMZPnw4u+22G3ff3fQF06WOC8kA4tNPP50pU6awePFiRo8ezYgRIzj55JOb/Z7kUcE5A9iIZNHNnYCvA8fkUI6ZmZkBixYtok+fPmulH3bYYdTX1zNt2jQuvvhiAB5++GFmzJjB9OnT6dOnD5MmTeLMM8+kvr6eCy64AEi6lx544AEOPfRQbr75ZhYtWsQTTzzBgw8+yJ577gnAypUrufjii7n//vupr6/noosuajLOhsctGDt2LLvuuiuHH344F154IePHj2f69Ol069aNRx99tFnvSR5XUT2ZPlwOHFft45uZmdma+vTpw2uvvbZW+j333MPll19ORPDGG28AcPbZZ3PMMcew2WabccEFFzB//vxVFZtOnTrx8ccfM27cOObOncuyZcsYM2YML7/8Mttttx0AO+20E/feey9vvvkm8+bNY5999gHgjTfeICLKDgQudVyA+fPn07VrV376058CMG/ePL73ve8hieXLlzN06NBmvSdVb8GRdF9hRuJ0e1NJLet4NDMzs7IOOOAAbrrpJt555x0AXnjhBRYtWsSkSZP405/+xB/+8Ac6dUr+5O+1117ceOONbL755kydOpUBAwbw2GOPAUmrzOzZs3n33XeZMWMGp5xyChHBFltswdy5cwF46qmnAOjVqxeDBg1i2rRp1NfXM2fOnEavcip1XEi604444gjGjRsHJAv5XnrppdTX1zNz5kwOPPDAZr0neQwy7tVwLSpJm+dQjpmZWbvR2CDhlurduzc/+MEPGDVq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", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "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iBEjiAh69uzJddddx4gRIxg6dCiDBw+mR48eABx44IF8+OGHAPz+979nzz335JhjjuH8889nt912Y9y4cbzyyivst99+fOELX+Dzn/88ffr0YaeddmKPPfZg4MCBQNLac9ZZZ7H33nsjia222oorr7xytbguvfRSbrnlFgAmTZq0xnELjj/+eCZOnMjPfvYzxo0bx0knncSiRYvo1KkT1157Lf369av4Ncm8mrikDSLigwz5pgOjIuL/0u3NgDsiYseKo2uEVxM3axteTdwsu9mzZ/OVr3ylrcPoUBq+ps1eTVzSbpJeIF34UtJASb9sZJd/Bx6VdJOkm4GHgbGV/gFmZmZmzZWli2oSsC9wF0BEzJQ0tFzmiLhX0o7ALmnS6Ih4p8WRmpmZmWWUaQxORLzeYODQ8ibyvwN4JXAzMzNrE1kqOK9L2g0ISV1I5rmZnW9YZmZmZs2X5TLx7wGnAJ8H3gC2T7fNzMzMalKTFZyIeCcijoqIz0bEphHx7YhYYwUvST0bu+UTvpmZmS1atIi6ujrq6uro3r07dXV1HHfccQwcOJC9996b/fffn+nTpwPJbMIDBgxg2LBhHHTQQautWbXFFlusvKwbkqsmTzvttJXbI0aMyLTQZi1osotKUn/gNKBfcf6IGNkg63QggFKz/ASwebOjNDMza+dG3vn1Fu1/10F/Kvtc9+7dV07dMGTIEOrr65kwYQJHHXUU++yzD/PmzePggw/mwQcfBGDMmDGccMIJnH/++dx///2MGDGCmTNnMmTIEO6++24OP/zwlcd+/fXXiQiWLl3KokWL6NWrV4v+jtaSZQzOncB1wN3AinKZIqJ/lWIyMzOzKurbty/77rsvzzzzzGrp77333srHt99+OyeffDI//elP+fjjj1lvvfUA2HnnnXn66ad57bXXOOCAA3jppZdaM/RmyzIG56OI+EVETI2Ihwq3xnZIl2cYLGlo4ValeM3MzKwZPve5z/HWW28BcNFFF7Htttvy9NNPs+++yQzLzz77LDvvvDP77bcff/nLX1buN2rUKO644w7uuecevv71lrVCtaYsFZzLJI2XtKukHQu3cpklnUAyud99wHnp/YSqRGtmZmbN8sYbb6xccXzMmDHMmDGD7t278+677/LKK68wa9Ys9ttvP2655RbuuuuulfttueWWPP/88yxbtoyNNtqorcKv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", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -698,25 +637,21 @@ "app_gap = df_gap22_cas['app']\n", "gap_22_cas = df_gap22_cas['simSeconds'].astype(float)*1000\n", "gap_22_ram = df_gap22_ram['simSeconds'].astype(float)*1000\n", - "gap_22_orc = df_gap22_orc['simSeconds'].astype(float)*1000\n", "gap_22_noDC = df_gap22_noDC['simSeconds'].astype(float)*1000\n", "\n", "\n", "gap_25_cas = df_gap25_cas['simSeconds'].astype(float)*1000\n", "gap_25_ram = df_gap25_ram['simSeconds'].astype(float)*1000\n", - "gap_25_orc = df_gap25_orc['simSeconds'].astype(float)*1000\n", "gap_25_noDC = df_gap25_noDC['simSeconds'].astype(float)*1000\n", "\n", "\n", "app_npb = df_npbC_cas['app']\n", "npb_C_cas = df_npbC_cas['simSeconds'].astype(float)*1000\n", "npb_C_ram = df_npbC_ram['simSeconds'].astype(float)*1000\n", - "npb_C_orc = df_npbC_orc['simSeconds'].astype(float)*1000\n", "npb_C_noDC = df_npbC_noDC['simSeconds'].astype(float)*1000\n", "\n", "npb_D_cas = df_npbD_cas['simSeconds'].astype(float)*1000\n", "npb_D_ram = df_npbD_ram['simSeconds'].astype(float)*1000\n", - "npb_D_orc = df_npbD_orc['simSeconds'].astype(float)*1000\n", "npb_D_noDC = df_npbD_noDC['simSeconds'].astype(float)*1000\n", "\n", "\n", @@ -726,13 +661,13 @@ "plt.ylim([0,3])\n", "\n", "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_22_cas[i]/gap_22_orc[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_22_ram[i]/gap_22_orc[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", + " plt.bar(i*3, gap_22_cas[i]/gap_22_noDC[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", + " plt.bar(i*3+1, gap_22_ram[i]/gap_22_noDC[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", "\n", "offset = i*3+2\n", "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_C_cas[i]/npb_C_orc[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_C_ram[i]/npb_C_orc[i], width=1, color=cmap(2))\n", + " plt.bar(offset+i*3+1, npb_C_cas[i]/npb_C_noDC[i], width=1, color=cmap(1))\n", + " plt.bar(offset+i*3+2, npb_C_ram[i]/npb_C_noDC[i], width=1, color=cmap(2))\n", "\n", "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", "plt.figtext(0.75, -0.01, \"NPB-C\")\n", @@ -741,7 +676,7 @@ "plt.axvline(x=offset, color='black')\n", "plt.axhline(y=1, color='grey')\n", "\n", - "plt.ylabel(\"Execution time\\nnormalized to ideal cache\")\n", + "plt.ylabel(\"Execution time\\nnormalized to no-DRAM-$\")\n", "plt.legend(fontsize=8, ncol=1)\n", "plt.tight_layout()\n", "\n", @@ -751,13 +686,13 @@ "plt.ylim([0,3])\n", "\n", "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_25_cas[i]/gap_25_orc[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_25_ram[i]/gap_25_orc[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", + " plt.bar(i*3, gap_25_cas[i]/gap_25_noDC[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", + " plt.bar(i*3+1, gap_25_ram[i]/gap_25_noDC[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", "\n", "offset = i*3+2\n", "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_D_cas[i]/npb_D_orc[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_D_ram[i]/npb_D_orc[i], width=1, color=cmap(2))\n", + " plt.bar(offset+i*3+1, npb_D_cas[i]/npb_D_noDC[i], width=1, color=cmap(1))\n", + " plt.bar(offset+i*3+2, npb_D_ram[i]/npb_D_noDC[i], width=1, color=cmap(2))\n", "\n", "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", "plt.figtext(0.75, -0.01, \"NPB-D\")\n", @@ -766,38 +701,34 @@ "plt.axvline(x=offset, color='black')\n", "plt.axhline(y=1, color='grey')\n", "\n", - "plt.ylabel(\"Execution time\\nnormalized to ideal cache\")\n", + "plt.ylabel(\"Execution time\\nnormalized to no-DRAM-$\")\n", "plt.legend(fontsize=8, ncol=1)\n", "plt.tight_layout()" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 72, "metadata": {}, "outputs": [ { "data": { - "image/png": "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ujUvvvhiIV6ierPlllvy0UcfAXDllVey2267MXPmTA47LKmNe+211+jRowd9+/blySefLN9u0KBBTJo0iUcffZQjj1y3Gqi6sHjxYrbccsvy5ZYtW7J69WqWLl3KL3/5S66++mp69+5NaWkpM2bM4KabbgKo8vwrc8kll/Dwww/z3HPPcdddd61TrWQhGxk/CDwoqRUwADgX6CDpRmBSRDxeqGOZma3vOnbsyIcffviN9Mcee4xrr72WiODjjz8G4Be/+AUnnngim2++OaNHj2bBggXlXyzNmjVjzZo1DB8+nLlz57J8+XIGDRrEe++9x+67J6N77LXXXjz++OMsXbqU+fPnc8ghhwDw8ccfExHVNvysar8ACxYsoGXLllxzzTUAzJ8/nwsvvBBJfPbZZ+y9994Ffa3q2gcffMBOO+3EO++8w/Dhwxk2bBgDBw7kX//6FytWrGDu3Ln07duXL774gh122KG8MLPDDjvw+uuv06pVKzbZZJN6/i9yq3wOrlq1ihYtWtChQwc6deoEwKxZsxg1ahRffvklb7zxBsA3zr9Mc+bMoX///kByC2zJkiVstdVWtYqv4DfHImJlRNwdEUcBnYBXgf8p9HHMzNZnRxxxBHfeeScrVqwA4O2332bx4sWMGTOGv/71rzz00EPlXx4HHXQQd9xxBx06dGDy5MnsuOOOzJgxA0hqZWbPns3KlSt55plnOOOMM4gIttlmG+bOnQskNQ4A7dq1Y7fddmPatGmUlpYyZ86crL1aqtovJF/kgwcPZvjw4UAycevVV19NaWkpr7zyCgMGDCjOi1YHPvjgA5544gl69OhRnta8eXPOPPNMxo0bxwMPPMD48eOZOnUq06dPZ/Hixaxdu7Y87w9/+EOGDMlrhqN6d/jhh3P77bezcuVKAMaNG8fAgQMrFFp+97vfMX78eJ588knatm0L8I3zL1O3bt2YMmUKpaWlvPbaa7Uu3EANanAkbRwRn+fI0xzYNCKWpkkrSW5T1T5CM7NGrLpGwuuqffv2/OpXv6Jfv35EBJttthm33nor/fr1o3fv3uy9997lXygDBgzgP//5DwB/+ctfOPDAAznxxBO5/PLL2X///bnooot4++236du3L9/97nfZaqut6NixI3vttRe9evWia9euQPJr+/zzz+fggw9GEjvvvDM33HBDhbiuvvrq8t5B48aN+8Z+y5x00kmMGTOG3/72t1x00UWccsopfPrppzRr1ozx48fTuXPndXp9qmskXCw///nPadeuHRtuuCHXX389G220UYX1hx56KBdffDEbbLBBhd5SO++8M88++2z5clnPqYULFxYkrmyNhNdVhw4dGDFiBH379qVZs2Z069aN4cOHc/fdd5fnGTRoEAMGDGCPPfYoPx8vvPDCCuffb37zm/L8o0aN4qijjio/p++///5ax5dzNnFJ+wPjgW9HxNaSugI/i4jTK+U7HriJpFDzd2A0cBvwMvDriHi11lFWwbOJm9UPzyae3fz589lpp53qOwyzJqvyZ6y62cTzqcEZBxwGPAwQEXMk9a4i38XAXhHxdjrh5ovA0RHxSG3+ATMzM7PayqsNTkS8Xympqu7fqyPi7TT/q8DfXbgxMzOz+pBPDc776W2qkNQCOIdkxvDKOkg6P2O5beZyRFy9bqGamTUO2XoWmVnt5WpWkymfGpxTSeaR2gr4ANiDqueVugVonfGovGxm1uS1bNmSZcuW1ehCbGa5lc0m3rJly7zy56zBSXtEnZBHvlF5HdHMrAnr1KkTixYtynvGYzPLX8uWLcvH2MklZwFHUhfgLKBzZv6I6F9F3j7AmcD30qT5wPURUZpXNGZmjVyLFi3o0qVLfYdhtt7Lpw3Og8CtwCPA2uoySToSuB64LH0I2BO4TdKZEfHoOkdrZmZmlod8CjirIuL3eeQbDgyMiDkZabMlvQJcB7iAY2ZmZnUinwLOtZJGAo8D5dOeVjFw33cqFW7K8v1N0hbrFqaZmZlZ/vIp4OwGDAEO4utbVJEuZ1qZZR/Z1pmZmZkVVD4FnGOAbSMi15zl20l6uIp0AdvWODIzMzOzWsqngDMPaAt8nCNftulfx+YbkJmZmdm6yqeA0xZ4U9LLVGyDU6GbeEQ8XXlDSXsWepJNMzMzs1zyKeCMXIf9jyfpKm5mZmZWZ/IZyfgbNTM1kPdkLJK+C9wObEHSiPnmiLh2HY5tZmZm66lqCziSnouInpJWkBQ4ylcBERGb5LH/mkzf8BXw84h4VVJrYJakJyLijRrsw8zMzKz6Ak5E9Ez/1niiTEldgV5lz6saH6eK4y0GFqfPV0iaTzLBpws4ZmaN2L4jH8uZZ8aow+ogEluf5DMX1R0RMSRXWsa6c4CfAg+kSXdKujkirss3KEmdgW7AS/luY2Zmlo0LWuuXfBoZ75K5IGkDYK8s+U8C9omIlWn+3wIvkkzXkJOkbwP3A+dGxPJK604BTgHYeuut89mdmZmZrYeytcEZAVwEbCSprKAhYDVwc5Z9CliTsbyGPBsbS2pBUri5KyIeqLw+Im4uO3b37t2j8nozs4bANQVm9S9bG5wxwBhJYyJiRA32OQF4SdKkdHkgyWzkWUlSmm9+RFxdg+OZmZmZVZBPN/GaFG6IiKslPQ0ckCYNi4jX8tj0AJI5r+ZKmp2mXRQRnoXczMzMaiSfNji1MZukR9QGAJK2joj/y7ZBRDxHDcbNMTMzM6tOwQs4ks4iGf34n3zd/iaA3Qt9LDMzM7Oq5FXAkdScZITh8vxZamTOAXaMiGXrHp6ZWf7cuNfMyuQzDk5mjczaNDlbjcz7wKcFic7MzMysFvKpwalpjcw7QKmkKVScfdw9o8zMzKxO5FPAqWmNzP+ljw3Th5kViW/J1Fz/B4/Muv7hgVPqKBJriHx+NB35FHBqVCMTETWZYNPMzMys4PIp4LhGxszMzBqVfAb6GwXlc0QREZ8VOyj7Wq5bEL79YGbV8S1MW581y5VB0q6SXgNeB16XNEvSLrm2MzMzM6svOQs4JJNbnh8R20TENsDPgVuqyyypk6RJkpZI+ljS/ZI6FSpgMzMzs1zyaYPTKiKmly1ERKmkVlnyTwDuBo5Jl3+cph1a6yit3vlWmZkVk3svWaHlU4PzjqRfSeqcPi4m6VlVnfYRMSEivkofE4H2BYnWzMzMLA/51OD8NzAKeCBdfjZNq84yST8G/pwuDwY8bYOZmdXaTQPuzJnnZw/9uA4iscYin15U/wbOrsE+/xu4DhhHMqXDC8DQ2gRnZmZmVhvVFnAkXRMR50p6hKSgUkFE9K9m006V10k6gGRE5EbDbU7MzMwar2w1OHekf8fWcJ/XAXvmkWbWaLkAbGbWsFVbwImIWenTPSLi2sx1ks4Bnq6Uth+wP9Be0vkZqzYBmhcmXKssV88DcO8DMzNb/+TTyPhE4NpKaUOrSNsQ+Ha6z9YZ6cuBo2sZn1mj5IKn5eJu0WbFla0NzmDgR0AXSQ9nrGoN/Kty/oh4Gnha0sSIeK/gkTYw/gIzs2JyryGzdZOtBucFYDHQDrgqI30F8LfqNlofCjdmZmbWsGVrg/Me8B6wX92FY5adG/eaWVPga1nx5WyDI2kFX3cT3xBoAayMiE2KGZg1Lr5lZ9Y4uS1QzfjWYeORz0B/5Q2GJQkYAOxbOZ+k66hivJyM/dRksEAza0Ry/RoF/yI1s7qVTy+qchERwIOSRgIXVlr9Svr3AGBn4N50+RjgjXUJ0ixfjakmKdcvQf8KNLNia8q3yvK5RfWDjMVmQHdgVeV8EfGnNP9pQM+I+Cpd/iPJ/FXrHX+BmZmZ1Y98anCOynj+FbCQ5DZVdTYlGdyvrCv5t9O0rCTdBvQDPo6IXfOIy8zy4DYWNeM2FmZNQz5tcIbVcJ9XAK9Jmg4I6A1cmsd2E4HrgdtreDzLwTVJZma2vmmWK4OkP0lqm7G8aVrbUqWImADsA0wCHgD2K7t9lU1EPEMVAwiamZmZ1ZSSdsNZMkivRUS3XGkZ6wScAGwbEZdJ2hr4TkTMzBmM1BmYnM8tqi5dusTIkSNzZau1VxdmL2tt+O0Pcu5js486ZF2/5a5bOI56iGPXdrvlzFMXcdTF65FPLDV9PWbPng3AHnvsUaM49uy8WY2OUxuFeD1yvS+Q+71xHI4jl1yx1MXnpSHFsS6GDRs2KyK6V07Ppw1OM0mbRsS/ASRtlmO7PwBrgYOAy0hGPr4f6FHjqCuRdApwCsBWW221rrszMzOzdfThvH9mXZ9Pga8Y8ingXAW8KOkv6fIxwOgs+feJiD0lvQYQEf+WtOE6xkm6r5uBmwG6d+8eQ4cOLcRuq/THHF3nOvzXtJz7OPLZKiu5yg0dm7vti+MofBzbT8geRz5tkhrL65FPLGMHXpV1fWUlJSUAXHPNNTWK4/dDi9/dtBCvR673BXK/N47DceSSK5a6+LzkE8fCtr/PuY8j/z446/p8Xo91MWxY1U2F82lkfLukV0hqZAB+EBHZxrX5UlJz0kH/JLUnqdExswaornoNuTeXmdWlfAf624xkeoYJktpL6hIR71aT9/ckDYw7SBoNHA1cnOsAkv4MlADtJC0CRkbErXnGZ2Zm1mQ0pkFLG6p8BvobSTK4347ABJK5qO4kGbH4GyLiLkmzgINJuokPjIj5uY4TEdnruMysSfP4M2Y14yFAssvZTRwYBPQHVgJExIdA6+oyS7oVaBkRN0TE9RExX9KlhQjWzMzMLB/5FHBWp3NQlbWpaZUj/2HAnyT9JCOtfy3jMzMzM6uxfAo490m6CWgr6afAk8D4LPk/Jhm9+BhJN0jagORWlZmZmVmdyKcX1VhJhwLLSdrhXBIRT2TZRBHxKXBUemuqFGhTgFjNzMzM8pJPI+OT0t5MT6TLzSWNjIhR1WzycNmTiLg0bXB8XkGiNTMzM8tDPreoDpb0qKSOknYBZpClkXFEjKy0/EhEHFRdfjMzM7NCy+cW1Y8kHQfMJelJ9aOIeL5yPknPRURPSStIGySXrUp2E5sUKmgzMzOzbPK5RbU9cA7JfFI7AUPSyTY/z8wXET3Tv9XW7piZmZnVhXxGMn4EOCMipqUzhZ8PvAzskpkpnYSzWhGRexpXMzMzswLIp4Czd0Qsh+Q+E3CVpEeqyDeL5NZUVV3CA9i21lGamZmZ1UC1jYwl/QIgIpZLOqbS6qGV80dEl4jYNv1b+eHCjZmZmdWZbL2ojs94PqLSur7ZdippU0l7S+pd9qh1hGZmZmY1lO0Wlap5XtXy1yukk0kaJXcCZgP7Ai8C7ipuZmZmdSJbDU5U87yq5UznAD2A9yKiD9AN+KRW0ZmZmZnVQrYanK6SlpPU1myUPiddbpllu1URsUoSkr4VEW9K2rFQAZuZmZnlUm0BJyKa13KfiyS1BR4EnpD0b+C9Wu7LzMzMrMby6SZeIxExKH16qaTpJBNtTi30cczMzMyqk89cVDWW9qLaHVgBLAJ2LcZxzMzMzKpS8BocSb8mGSfnHWBtmhy4F5WZmZnVkYIXcIBjge0iYnUR9m1mZmaWUzFuUc0D2hZhv2ZmZmZ5KUYNzhjgNUnzgC/KEiOifxGOZWZmZvYNxSjg/An4LTCXr9vgmJmZmdWZYhRwPo+I3xdhv2ZmZmZ5KUYB51lJY4CHqXiL6tUiHMvMzMzsG4pRwOmW/t03Iy2vbuKS+gLXAs2B8RFxReHDMzMzs6auoAUcSc2BhyNiXC23vQE4lGRwwJclPRwRbxQyRjMzM2v6CtpNPCLWAINrufnewNsR8U46hs49wICCBWdmZmbrjWLconpe0vXAvcDKssQ82uBsBbyfsbwI2Kfw4ZmZmVlTp4go7A6TCTYri4jI2gZH0tFA34g4OV0eAuwTEWdm5DkFOCVd3BF4qzBRF0Q7YGl9B0HDiQMaTiyOoyLHUZHjqMhxVOQ4KmoocWTaJiLaV04sxmzifWq56QfAdzOWO6Vpmfu+Gbi5lvsvKkmvRER3x/G1hhKL43AcjsNxOI6mFUc+Cj5Vg6Q2kq6W9Er6uEpSmzw2fRnYXlIXSRsCx5N0NTczMzOrkWLMRXUbsIJk0s1jgeXAhFwbRcRXwJnAY8B84L6IeL0I8ZmZmVkTV4xGxttFxA8zlkdJmp3PhhHxKPBoEWKqCw3l1llDiQMaTiyOoyLHUZHjqMhxVOQ4KmooceRUjEbGLwLDI+K5dPkAYGxE7FfQA5mZmZlVoxgFnK7A7UAbQMC/gKERMaegBzIzMzOrRsHb4ETEnIjoCuwO7BYR3Zpa4UZSZ0nzGmIMknpJel3SbEkb1Uds1nBIaivp9PqOA7Kes+dK2rg+YmoIJJ0tab6klZJ2rqcYXqiP41Ym6bP6jsGajoK3wZH0LeCHQGdgA0kARMRlhT6WVekEYExE3FnfgTRUkpqno26vD9oCpwN/qOc4sjkXuBP4vJ7jqC+nA4cAlwM7A3U+PU1E7F/XxzQrtmL0onqIZIqFr0hGMi57NDUbSLor/eX1v5I2ltRD0guS5kiaKal1HcdwNknPtV+n6R0lPZPW5syT1KuYwUj6iaS/pf//HZK2kDQpXZ4jqegX0bSW4M0q3puFkn4r6VXgmAIer5WkKen/N0/ScZKukPRG+lqMTfMdk66fI+mZNG2opIcklUr6u6SRhYorwxXAduk5cKWk/5E0N42jPiazreqc3RKYXs0goQVVxTm6naQZ6WtyeV3XIEj6I7At8C5wInBl+l5tV8dxfJb+rdNrRpZ4SiRNzli+XtLQIh6v7LoxUdKC9Bw9RNLz6Wdzb0ntJT2R1pCPl/SepHZFiqeq68pCSb9Lz9WZkv6rGMeuFEeFWldJF0i6VNJPJb2cxne/GmoNbEQU9AHMK/Q+G9qDpHYqgAPS5duAXwDvAD3StE2ADeo4hguAicDRadrPgV+mz5sDrYsYzy7AAqBdurwZyXQd52Ycv009vTcXAAuBXxTheD8EbslY3oZkhO2y9m1t079zga0qpQ0FFgObAxsB84DuRXg95qXPDwdeADYue4+K/X7U4L1pVwfHr+ocnQwMTpdPBT6ry9ckPe5CktFhyz+79RDDZ+nfOrtm5IijBJickX49SVvOYp6bXwG7kfzwn5WenyL5wf5gGsOINH/f9FwuynlbxXWlTXqelL03P8l8fYr8uszLWL4AuBTYPCPtcuCsujxP8n0UowbnBUm7FWG/Dc37EfF8+vxO4DBgcUS8DBARyyMZ26cuY+hZaf3LwDBJl5K0h1pRxFgOAv4SEUsBIuJfadqN6fKaiPi0iMfPVN3rcm8RjjUXODStHepFMvr2KuBWST/g69suzwMTJf2U5IujzBMRsSwi/gM8wDffw0I6BJgQEZ9D+XtU13Kds8VU1Tm6H/CXdP3ddRhLQ1WX14yG5t2ImBsRa4HXgWmRfIPPJfmi70kyCTQRMRX4dxFjqXBdybh2/jnjb332TN5V0rOS5pI0i9ilHmOpVjEKOD2BWZLeSquC50r6WxGOU98qdz9b3gBiqLAcEc8AvUm+dCdK+kldBVbPqntdCn6rNCIWAHuSXJAuBy4C9gb+F+gHTE3znQpcTDIdySxJm+eItala3/7fRqUBXTO+ouL3U8s6OOYXGc/XZiyvpThjxlWr8nVF0iVlqzKz1UEo1b0PE4EzI2I3YBR18/7UWDEKOIcD2wPfB44iucgfVYTj1LetJZWVoH8EzAA6SuoBIKm1pGJ/KCrH8FzmSknbAP+MiFuA8SQfmGJ5Cjim7Itb0mbANOC0dLm58puyoxCyvi6FJGlL4PNIGnVfSfLl0CaSQSvPA7qm+baLiJci4hJgCV/Pu3aopM2U9HgbSFLTU0grgLK2YE+Q/DrfOI1pswIfKx9VvTeZMRZTVefoDJLbAZBMD1Of6up1qFYdXzOyeQ/YWdK3JLUFDq6nODI9T9LGEUnfBzYt1oGquK6UvQ/HZfx9sVjHz/BPoIOkzZV0IOqXprcGFktqQVKD0yAVY7LN9wq9zwbqLeAMSbeR9Hq4juQCel36ZfUfklsCxWy0WDmGG6nYW6YEGC7pyzSOov0ai4jXJY0Gnpa0BngNOAe4WdJJwBqSwk5dfCirel3OKtKxdiNpGLoW+BI4H5gsqSXJ/fvz03xXSto+TZsGzAH2AGYC95NMLntnRLxSyOAiYlnaUHIe8FeS+d1ekbSaZNTwiwp5vDxU9d6sBqZK+jBqP1lvTtWco+cCd0r6JUltW13dRq3KPcAtShpeHx0R/6iHGEqoo2tGNhHxvqT7SNqlvUvyXtW3UcCfJQ0huY59RFIoLYbK15XTSGqFN03viHwBDC7SsctFxJeSLiO5Tn0AvJmu+hXwEsmPtZeo54J5dQo+0J9ZfZLUmaTx3a71HUsuaa+Q7hFxZn3Hsr5Ka7P+ExEh6XiSBscD6jsua3jSGow1EfFVWgt5Y0TsUYfHX0hyvVhaV8ds7Or0vqKZWQOzF3C9JAGfAP9dv+FYA7Y1cJ+kZiS1jj+t53gsB9fgmJmZWZNTjEbGZmZmZvXKBRwzMzNrclzAMTMzsybHBRxrNJTMbXW3pHckzZL0oqRBGeuvkfRB2giwLG2opCVK5tZ5Ix1JuHL660rnrErX7SvppXTd/HRU16riuSsd0HKepNvSMSGQdELGIJcvSOpa1BfGbD0iKSRdlbF8QdlnVMk8SR/o67m0+leR/qakGzOvE5X2/x1J90j6R3qdeVTSDnXyz1lBuYBjjULay+VB4JmI2DYi9iIZmK1Tur4ZMAh4Hziw0ub3pt05S4DfSNoiMz0idiHpFVE2iNafgFPSbXYF7qsmrLuA75GMWbERcHKa/i5wYDrK56+Bm2v3X5tZFb4AfqDqJ7ocl352jwFuyyjIlKXvTPKZrXydKLvOTAJKI2K79DozAtiicl5r+FzAscbiIGB1RPyxLCEi3ouI69LFEpL5Y26kmgGwIuJj4B8kE2KWUzLidCu+nlumA8kkmGVzaL1Rzf4ejRTJQFid0vQXIqJsXzPK0s2sIL4i+dFwXrZMETE/zVu5ILQhydQCVc0l1Qf4stJ1Zk5EPLtOEVu9cAHHGotdgFezrB9MMgHdJODIsttFmSRtC2wLvJ0mHSdpNskInZsBj6Tp44C3JE2S9LN0VOJqpccaQjrvVCUnkYwgbGaFcwNwgrJM/yJpH5J5pJakSeeln/fFwIKImF3FZruSzCRuTYALONYoSbpB0hxJL0vaEDgCeDAilpMMHX5YRvaygsyfgZ9lzKJdduvqOyST2g0HiIjLgO7A4yTzJVVVcMn0B5JbZxV+5UnqQ1LA+Z9a/6Nm9g3p5/x24OwqVpcVZMYCx8XXg72V3aLqALRKR662JswFHGssXidj4r+IOINkAr72JIWZtsDcdDjznlS8TVXW1mafiJhUecfpBfARkokyy9L+ERE3psfoqmSyucfSRorjy/JJGpnGcH7mPiXtTjJZ4YCIWLZO/7mZVeUakh8QrSqlj0s/772qurUUEV+S/GjpLem76Wd6tqRTSa4zexU7cKsbLuBYY/EU0FLSaRlpG6d/BwMnR0TniOgMdCGZpXtj8teTpH0Oko5MGxsCbE8yUegnEXFYeuE8Oc13MknhanBErC3bkaStgQeAIRGxoKb/qJnlltbE3kdSyMlb+tk+APhHRLyffqb3SNvdPAV8S9IpGfl3l9SrkLFb3XABxxqFtJZlIHCgpHclzSTp7TQS6AtMyci7EngOOCrHbo9Lf7n9DehG0uMJkvY0b6XV3HcAJ0TEmiq2/yNJ74oX0/1ckqZfAmwO/CFNL+gM4WZW7iq+2Yi4OmW3ruYBzUluLVeQXmcGAYek3cRfB8aQzBxujYznojIzM7MmxzU4ZmZm1uS4gGNmZmZNjgs4ZmZm1uS4gGNmZmZNjgs4ZmZm1uS4gGNmZmZNjgs4ZmZm1uS4gGNmZmZNzv8DuCTvF+TCh7YAAAAASUVORK5CYII=", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "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b9+el156qRAvUaPZYost+PDDDwG48sor2W233Zg2bRqHHZbUyL3++uvsueee9OnTh6effrpqu4EDBzJx4kQee+wxjjxy3WqgSmHRokVsscUWVctt27Zl1apVLFmyhF/96leMGTOG3r17U1FRwcsvv8zNN98MkPX8q3TJJZfw8MMP88ILL3D33Xe7VtLMmr1CNjJ+EHhQUjugP3Au0FnSjcDEiHiyUMdqTF26dOGDDz74WvoTTzzBtddeS0Tw0UcfAXDhhRdy4oknsvnmmzNq1Cjeeeedqi+WVq1asWbNGoYNG8bs2bNZunQpAwcOZP78+Xzve0mP+j322IMnn3ySJUuWMHfuXA455BAAPvroIyKi1saf2fYL8M4779C2bVuuueYaAObOnctFF12EJJYvX85ee+1V0Neq1BYuXMhOO+3Ee++9x7Bhwxg6dCgDBgzgX//6F8uWLWP27Nn06dOHL774gh122KGqMLPDDjvwxhtv0K5dOzbZZJNG/i9yq3kOrly5kjZt2tC5c2e6du0KwIwZMxg5ciSrV6/mzTffBPja+Zdp1qxZ9OvXD0hugS1evJgtt9yyFP+OmVlRFPxGfUSsiIg/R8RRQFfgNeC/Cn2cxnLEEUdw1113sWzZMgDeffddFi1axOjRo3n88cd56KGHqr48DjroIO688046d+7MpEmT2HHHHXn55ZeBpFZm5syZrFixgueee44zzjiDiGDrrbdm9uzZQFLjANCxY0d22203pkyZQkVFBbNmzaqzZ0u2/ULyRT5o0CCGDRsGJJMljhkzhoqKCqZPn07//v2L86KVwMKFC3nqqafYc889q9Jat27NmWeeydixY3nggQcYN24ckydPZurUqSxatIi1a9dW5f3Rj37E4MF5zSrS6A4//HDuuOMOVqxYAcDYsWMZMGBAtULLH/7wB8aNG8fTTz9dNX5NzfMvU48ePXj00UepqKjg9ddfd+HGzJq9vGtwJG0cEZ/lyNMa+GZELEmTVpDcpirp1bKuRsLrqlOnTvzmN7+hb9++RASbbbYZt912G3379qV3797stddeVV8o/fv35/PPPwfgr3/9KwcccAAnnngil19+Ofvttx8XX3wx7777Ln369OE73/kOW265JV26dGGPPfagV69edO/eHUh+bZ9//vkcfPDBSGLnnXfmhhtuqBbXmDFjqnoHjR079mv7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", + "image/png": "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LyoqgoeHR6XJUDgRDRERPU80NTVhaWmJzMxMpKenqzocIqIqSSQSWFpaQlNTs85tiE4sli1bhsGDB+P8+fMoKytDdHQ0zp8/jyNHjmD//v3Vrvf0TJZEREQvEiMjIzg4OKC0tFTVoRARVUlbW7teSQVQxwnyrly5ghUrViA1NRVFRUV46aWXEBYWBldX13oFo2ycII+InjecII/oxeW3e6io+gn+exopEnqeiPm+LPqKBQC0b98emzZtqlNwgiDg1KlTSE9Ph0QiQbt27eDh4cE+p0RERERETVidEgsAyM7ORnZ2NioqKuTK3dzcql1n3759CA4OxvXr12Ujz58kFzExMejdu3ddwyEiIiIiIhUSnVicOnUKAQEBuHDhQqXbUkkkEpSXl1e5XlpaGoYNGwYvLy9ERUXB0dERgiDg/PnzWLt2LYYMGYIzZ87Azs6ubntCREREREQqIzqxCAoKQocOHbB582a0bNlS4S5Ma9asQffu3ZGYmChX7ujoiJEjR6J///6IiorCunXrxIZEREREREQqJjqxuHr1KuLj42Fvby9qvaSkJCxfvrzKZRKJBDNnzkR4eLjYcIiIiIiISA1o1F5FXr9+/ZCamip6QxkZGTXeNcrFxQXXr18X3S4REREREame6CsWX375JQICAvDPP//AxcWl0ux8fn5+Va5XVFQEAwODats1MDDAgwcPxIZDRERERERqQHRicfToURw+fBi//vprpWU1Dd4GgPPnz+P27dtVLrtz547YUIiIiIiISE2ITiymT5+O8ePHY8GCBWjZsqWodfv161fpTlLA44REEATOZUFERET0nOge8bvCdY8tGtSIkZCyiE4scnNzMWvWLNFJxbVr18RuioiIGpiYD3qAH/ZERKQ40YnFq6++in379qF9+/ai1rOxsRG7KSIiIqJ6YTJNpDyiE4sOHTogPDwchw4dgqura6XB2yEhIQq35erqil9++QVWVlZiwyAiIiIiIjVSp7tCGRkZYf/+/di/f7/cMolEIiqxSE9PR2lpqdgQiIiISIn4qz8RKUJ0YsGxEkRERESNT2xC18KjkQIhUpDoCfIa0ssvvwx9fX1VhkBERERERA1AoSsWoaGhWLJkCQwNDREaGlpj3cjISIU3/ssvvyhctyrLly/Hzp07cfHiRejr66NHjx745JNP0LFjx3q1S0RERERE4iiUWCQnJ8vGQiQnJ9d7o+Xl5di9ezcuXLgAAHB2doafnx80NTVFtbN//36899578PT0RFlZGebPn4+BAwfi/PnzMDQ0rHecRERERESkGIUSi3379lX5d12kpaVh6NChyMzMlF1ZWL58OaysrLBnzx5Rt7H97bff5J7HxcWhRYsWOHXqFHr37l2vOImIiIiISHGix1gEBQWhsLCwUvn9+/cRFBRU6/ohISGws7PDjRs3cPr0aZw+fRoZGRlo166dqDtKVSU/Px8AYGZmVuXy4uJiFBQUyD2IiIiIiKj+RCcWW7ZswcOHDyuVP3z4EFu3bq11/f3792PlypVyX/7Nzc2xYsWKSrevFaOiogIzZ85Ez5494eLiUmWd5cuXw8TERPbg/BlERERERA1D4dvNFhQUQBAECIKAwsJC6OnpyZaVl5fjl19+QYsWLWptR1dXt8orHkVFRdDR0VE0nEree+89/PPPPzh06FC1dcLDw+UGnxcUFDC5ICIiamB+u4cqXDfBf08jRkJEyqRwYmFqagqJRAKJRIIOHTpUWi6RSLBo0aJa2xk2bBimTJmCzZs3o1u3bgCA48ePY+rUqfDz8xMR+v+ZNm0afv75Zxw4cACWlpbV1tPV1YWurm6dtkFERERERNVTOLHYt28fBEFA3759ER8fL9eVSUdHBzY2NmjTpk2t7axduxYBAQHw9vaGtrY2AKCsrAx+fn6Ijo4WFbwgCJg+fTp27dqFpKQktGvXTtT6REREysCZq4noRaBwYuHj4wPg8czb1tbWkEgkddqgqakpfvzxR1y+fBkXL14EAHTq1An29vai23rvvfewbds2/PjjjzA2Nsbt27cBACYmJpx4j4iIiIhIiRROLJ6wsbFpkA07ODjAwcGhXm1s2LABAODr6ytXHhsbi8DAwHq1TUREREREihOdWNRXeXk54uLikJiYiOzsbFRUVMgt/+uvvxRuSxCEhg6PiIiIiIjqQOmJxYwZMxAXF4ehQ4fCxcWlzl2qiIiIiIhIfSg9sfjuu+/w/fffY8iQIcreNBERERERNRKlJxY6Ojp1GqhN6ol3OiEiIiIioA4zb//333+YMGEC2rRpAy0tLWhqaso9avP+++8jOjqa4yOIiIiIiJ4joq9YBAYGIiMjAwsWLEDr1q1Fj5E4dOgQ9u3bh19//RXOzs6yuSye2Llzp9iQiIiIiIhIxUQnFocOHcLBgwfh7u5epw2amppi5MiRdVqXiIiIiIjUk+jEwsrKql7dmGJjY+u8LhERERERqSfRYyzWrFmDefPmIT09vRHCISIiIiKipkj0FYs33ngDDx48QPv27WFgYFBpjEReXl6DBUdERKrlt3uownUT/Pc0YiRERKTuRCcWa9asaYQwiIiIiOhFJeZHDIA/ZKgr0YlFQEBAY8RBRERERERNWJ0myCsvL8fu3btx4cIFAICzszP8/PwUmseCSJ2ImeCPk/sRERERVU90YpGWloYhQ4bg5s2b6NixIwBg+fLlsLKywp49e9C+ffta29i/fz9WrVolS0ycnJwwZ84cvPzyy2LDISJSKs42T0REVDXRiUVISAjat2+PY8eOwczMDACQm5uL8ePHIyQkBHv21Nzn7euvv8akSZPw6quvIiQkBABw+PBh9OvXD3FxcXjzzTfrsBtN24v0RYV9KImI6Hny+YivRdV/+8fxjRQJkeqJTiz2798vl1QAgLm5OVasWIGePXvWuv7SpUuxcuVKzJo1S1YWEhKCyMhILFmy5IVMLIiIiIiImjrR81jo6uqisLCwUnlRURF0dHRqXf/q1asYPnx4pXI/Pz9cu3ZNbDhERERERKQGRF+xGDZsGKZMmYLNmzejW7duAIDjx49j6tSp8PPzq3V9KysrJCYmwt7eXq587969sLKyEhsOERERUYMR22V3KMY2UiRETY/oxGLt2rUICAiAt7e3bHK8srIy+Pn5ITo6utb133//fYSEhCAlJQU9evQA8HiMRVxcnELrExERERGR+hGdWJiamuLHH3/E5cuXcfHiRQBAp06dKl2BqM4777yDVq1aYfXq1fj+++9l62/fvh0jRowQGw4REREREamBOs1jAQAODg5wcHCo07ojR47EyJEj67ppIiIiIiJSMwolFqGhoViyZAkMDQ0RGhpaY93IyMgal9vZ2eHkyZMwNzeXK7937x5eeuklXL16VZGQiIiIiIhIjSiUWCQnJ6O0tFT2d32kp6ejvLy8UnlxcTFu3rxZr7aJqGl4keZuIaoLzvlDRE2RQonFvn37qvxbjISEBNnfv//+O0xMTGTPy8vLkZiYCFtb2zq1TUREREREqiV6jEVQUBCio6NhbGwsV37//n1Mnz4dMTExVa7n7+8PAJBIJAgICJBbpq2tDVtbW6xevVpsOERE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dy7279+P48ePy9X/6KOPsGjRovrtABERERHRC+bGjRuwtLSssY7Sr1j4+/sre5My4eHhCA0NlT2vqKhAXl4ezM3Nm/wM4AUFBbCyssKNGzcglUpVHY4ojF11mnL8jF11mnL8jF01mnLsQNOOn7GrTlOP/wlBEFBYWIg2bdrUWlfpiUVERESDtdW8eXNoamriv//+kyv/77//0KpVq0r1dXV1oaurK1dmamraYPGoA6lU2mQPXsauOk05fsauOk05fsauGk05dqBpx8/YVaepxw8AJiYmCtVT+u1mnzh16hS+/vprfP3110hOTq5TGzo6OujSpQsSExNlZRUVFUhMTJTrGkVERERERI1L6VcssrOzMWbMGCQlJcmuFty7dw99+vTBd999BwsLC1HthYaGIiAgAF27dkW3bt2wZs0a3L9/H5MmTWqE6ImIiIiIqCpKv2Ixffp0FBYW4ty5c8jLy0NeXh7++ecfFBQUICQkRHR7b7zxBlatWoWFCxfC3d0dKSkp+O2339CyZctGiF596erqIiIiolJXr6aAsatOU46fsatOU46fsatGU44daNrxM3bVaerx14XS7wplYmKCvXv3wtPTU678xIkTGDhwIO7du6fMcIiIiIiIqAEo/YpFRUUFtLW1K5Vra2ujoqJC2eEQEREREVEDUHpi0bdvX8yYMQO3bt2Sld28eROzZs1Cv379lB0OERERERE1AKV3hbpx4wb8/Pxw7tw5WFlZycpcXFyQkJBQ68QbRERERESkfpR+xcLKygqnT5/Gnj17MHPmTMycORO//PILTp8+zaRCAb6+vpg5c6aqwxCltpgfPHiAUaNGQSqVQiKRcJwNkRppiuec54kgCJgyZQrMzMwgkUiQkpKi6pAU1pSPnaYcO5EqKf12swAgkUgwYMAADBgwQBWbJzWzZcsWHDx4EEeOHEHz5s0VnoSFqKnw9fWFu7s71qxZo+pQGpytra3sRyJqeL/99hvi4uKQlJQEOzs7tG7dGrt27YK/v7+qQ6vVzp07qxxTSUTPL5UkFomJiUhMTER2dnalAdsxMTGqCIlU6MqVK+jUqRNcXFxUHQo9paSkBDo6OqoOg+iFduXKFbRu3Ro9evRQdSiimZmZqToEIlIypXeFWrRoEQYOHIjExETcuXMHd+/elXtQ7crKyjBt2jSYmJigefPmWLBgAZ4MlSku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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -884,31 +815,27 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 73, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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69bFxIkTcfjwYXz66acICwuTthUUFEgHcwOvv6FOT0+XjgV7n3R0dIp9u+/h4YETJ06o3YeRspT3/Hn73NRJea9fV1dXXL16FXl5edJl586de5/xKq1q1apq+7svjzq+18ujZs2axa6eJiQkaPQ3zK6ursXeKwH1ei2U9/fh8uXLePHihXTdmJgYGBkZwd7eXlVxi3n7uZKZmSktii5cuICioiL897//RcuWLVG3bl08efJEVVGVSubCwtfXF99++22plVVeXh5mzpyJbt26KTTcx+jBgweYNGkS4uPjsW3bNqxcuRLjx4+Hk5MThg0bhhEjRiAyMhKJiYmIjo7Gzp07VR0ZQNm5S3PgwAGsWLECsbGxuH//Pn755RcUFRXB1dX1PacuTk9PD0FBQZg6dSp++eUX3LlzBzExMdiwYQP8/f1hZWWFvn374uTJk7h79y52796N06dPqzRzaeT5v3jfzpw5g4ULF+L8+fN48OAB9uzZg+fPn0NfXx/BwcE4ffo07t+/j8OHDyMhIQH169fHixcvEBgYiOjoaNy/fx8nT57EuXPnihUNVatWxddff40zZ87gwoULCAgIQMuWLVVyid/JyQlnzpzBvXv38M8//yAwMBCZmZkYNGgQzp8/j4SEBGzatAnx8fHvPZssynv+ODk54fjx43j8+LHa3DjijfJev59//jmKioowevRo3Lx5E4cOHcKyZcsAQC3vblUaJycnREVFITk5uVj3EHWmru/18ujUqRNWrVqFS5cu4fz58xgzZozGdGsszZdffom4uDgEBQXh1q1b2Llzp/QOV6p+LZT19+HNe31+fj5GjhyJGzdu4Pfff0dISAgCAwOhpSXXDU6VplOnTti0aRNOnDiBq1evYtiwYdIv9FxcXPDq1SusXLkSd+/exaZNm/Djjz+qOLGSyDoY4+HDh8LS0lI4ODiIxYsXi19//VVERkaKRYsWCXt7e2FhYSEePHigvNEgH4EOHTqIsWPHijFjxggTExNhamoqpk+fLh1I+eLFCzFx4kRhbW0tdHR0hIuLi9i4caOKU78799uDt0+cOCE6dOggTE1Nhb6+vvDw8BA7duxQUfriCgsLxfz584Wjo6OoWrWqcHBwEAsXLhRCCHHv3j3Rr18/YWJiIgwMDETTpk1VMji4PO/6v1D14NsbN24IX19fUbNmTaGrqyvq1q0r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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "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", + "image/png": "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91NTU4OOjo7EDxERERERVS6px1jo6urC2NgYvXv3xrhx47Bz584yew6kkZ2djbt374qXExISEBsbC319fVhZWSEgIADz5s1DgwYNYGNjgxkzZsDMzExirgsiIiIiIlI8qQsLV1dXXL58GadOnRJfBuXu7g4DA4NyP/jFixfh4eEhXp40aRIAYNiwYQgLC8OUKVOQk5OD0aNHIz09He3bt8ehQ4egrq5e7sckIiIiIiL5k7qwiImJQXZ2Nv755x+cOHECS5Ysga+vLxo2bAh3d3d07NgRHTt2hLGxsdQP7u7uDkEQSm0XiUSYM2cO5syZI/UxiYiIiIio6kldWACAlpYWunXrhm7dugEAsrKycPr0aRw9ehSjRo1CdnY2CgoKKiUoERERERFVXzIVFm8VFRXhwoULiIqKwokTJ3DmzBnk5OTIdVZuIiIiIiKqOaQuLM6fP4+oqChERUXhn3/+QXZ2NiwsLODu7o7ly5fDw8MD1tbWlRiViIiIiIiqK6kLi9atW8PU1BQeHh74+eef4eHhgfr161dmNiKij4J3eM8K7R/h86eckhAREVUeqQuLW7duwd7evjKzEBERERFRDSX1BHn29vbIysrCpUuXkJ2dDQD4999/MXToUPTv3x/btm2rtJBERERERFS9Sd1jcerUKfTq1QvZ2dnQ09PDjh078MUXX8Dc3BzKysrYt28fcnNzMWrUqMrMS0RERERE1ZDUPRbTp09H//798fjxYwQEBGDgwIHw9/fHrVu3cP36dcyePRurVq2qzKxERERERFRNSd1jcfXqVaxbtw7m5uYIDAzErFmzMHDgQHH7oEGDsHjx4koJSRz8SURERETVm9Q9FpmZmdDX1wcAqKqqonbt2tDW1ha3a2trIzc3V/4JiYiIiIio2pO6sBCJRBCJRKUuExERERHRp0vqS6EEQUDnzp2hovJml9zcXPTu3RuqqqoAgIKCgspJSB8FXspFRERE9HGTurAIDg6WWO7Tp0+xbfr161fxREREVK3wiwEiUiS+B9Uc5S4siIiIiIiI3pK6sCAiIiIqD37jTPRpYGFBREREVAYWRkTSkfquUERERERERKVhYUFERERERBXGS6FIKq2DD1dof+MmcgpCpAB8/tOnjq8BIpKGVIXF8uXLpT7gd999V+4wRERERERUM0lVWISEhEgsJycnIzc3F3Xq1AEApKeno3bt2jA2NmZhQR8lDtwjIiIiKptUYywSEhLEP/Pnz4ebmxtu3bqF1NRUpKam4tatW2jatCnmzp1b2XmJiIiIiKgaknnw9owZM7BixQrY29uL19nb2yMkJATTp0+XazgiIiIiIqoZZC4sEhMTUVBQUGx9YWEhnj9/LpdQRERERERUs8h8V6jOnTvjm2++wYYNG9C0aVMAwKVLl/Dtt9/C09NTruFmzZqF2bNnS6yzt7dHXFycXB+HiOhjxjv6EBFRVZC5sNi0aROGDRuG5s2bo1atWgCAgoICeHl5YcOGDXIP6OjoiGPHjomXVVR4h1wiIiKimoJfbnw6ZP6UbmRkhL/++gt37twR9xw4ODigYcOGcg8HvCkkTE1NK+XYVYkvKiIiIiqPin6GiJntJackRGUr99f/1tbWEAQB9evXr9RehPj4eJiZmUFdXR1t2rTBwoULYWVlVer2eXl5yMvLEy9nZmZWWjYiIqKqwFteE1FNIHNFkJubi/Hjx2Pz5s0AgDt37sDW1hbjx4+Hubk5pk6dKrdwrVq1QlhYGOzt7ZGYmIjZs2fjs88+w/Xr16GtrV3iPgsXLiw2LoOIPUZERERElUvmwiIoKAhXrlxBVFQUunXrJl7v6emJWbNmybWw6N69u/jfLi4uaNWqFerVq4fdu3dj5MiRpeabNGmSeDkzMxOWlpZyy0REREQ1C79cIqoaMhcW4eHh2LVrF1q3bg2RSCRe7+joiHv37sk13Pvq1KmDhg0b4u7du6Vuo6amBjU1tUrNQUREREREkmQuLJKTk2FsbFxsfU5OjkShURmys7Nx7949DBkypFIfh4iIiOhjwTE6VFVkniCvefPm+PPP/3+CvS0mNmzYgDZt2sgvGYDJkyfj5MmTePDgAc6ePYu+fftCWVkZvr6+cn0cIiIiIiKqGJl7LBYsWIDu3bvj5s2bKCgowLJly3Dz5k2cPXsWJ0+elGu4J0+ewNfXFykpKTAyMkL79u0RExMDIyMjuT4OERERERFVjMyFRfv27REbG4tFixbB2dkZR44cQdOmTREdHQ1nZ2e5htu5c6dcj0dERERERJWjXBNQ1K9fH+vXr5d3FiIiIiIiqqFkHmPh6emJsLAwTjxHRERERERiMvdYODo6IigoCGPHjkXPnj3x1VdfoUePHqhVq1Zl5CMiIqrxOI8CEX0KZO6xWLZsGZ4+fYrw8HBoampi6NChMDExwejRo+U+eJuIiIiIiGoGmQsLAFBSUkLXrl0RFhaG58+f49dff8X58+fRqVMneecjIiIiIqIaoFyDt99KSkrCzp078dtvv+Hq1ato2bKlvHIREREREVENInOPRWZmJkJDQ9GlSxdYWlpizZo18Pb2Rnx8PGJiYiojIxERERERVXMy91iYmJhAT08PAwcOxMKFC9G8efPKyEVERERERDWITIWFIAhYvnw5Bg8ejNq1a1dWJiIiIiIiqmFkuhRKEASMGzcOT58+raw8RERERERUA8nUY6GkpIQGDRogJSUFDRo0qKxMREREREQfBe/wnhXaP8LnTzklqXwyD95etGgRvv/+e1y/fr0y8hARERERUQ0k8+DtoUOHIjc3F66urlBVVYWGhoZEe2pqqtzCEREREREpUuvgwxXa37iJnILUADIXFr/88kslxCAiIiIioppM5sJi2LBhlZGDiIiIiIhqMJnHWADAvXv3MH36dPj6+uLFixcAgL///hs3btyQazgiIiIiIqoZZC4sTp48CWdnZ5w7dw779u1DdnY2AODKlSsIDg6We0AiIiIiIqr+ZC4spk6dinnz5uHo0aNQVVUVr+/UqRNiYmLkGo6IiIiIiGoGmQuLa9euoW/fvsXWGxsb47///pNLKCIiIiIiqllkLizq1KmDxMTEYusvX74Mc3NzuYQiIiIiIqKaRebCYtCgQQgMDERSUhJEIhGKiopw5swZTJ48GUOHDq2MjEREREREVM3JXFgsWLAADg4OsLS0RHZ2Nho3bowOHTqgbdu2mD59emVkJCIiIiKiak7meSxUVVWxfv16zJw5E9euXUN2djaaNGmCBg0aVEY+IiIiIiKqAco1jwUAWFpaokePHujXrx9ycnKQlpYmz1wSVq1aBWtra6irq6NVq1Y4f/58pT0WERERERHJTubCIiAgABs3bgQAFBYWomPHjmjatCksLS0RFRUl73zYtWsXJk2ahODgYPz7779wdXWFl5eXeGI+IiIiIiJSPJkLiz179sDV1RUAcODAAdy/fx9xcXGYOHEifvjhB7kH/PnnnzFq1CgMHz4cjRs3xtq1a1G7dm1s2rRJ7o9FRERERETlI/MYi//++w+mpqYAgL/++gsDBgxAw4YNMWLECCxbtkyu4fLz83Hp0iUEBQWJ1ykpKcHT0xPR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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -986,31 +913,27 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 86, "metadata": {}, "outputs": [ { "data": { - "image/png": "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ngsEGdBzc3MTaqNnz5788ssvLFu2jN69e5OTk8MxxxzDNddcAwS3UKxcuTKqTUpavAB1EsENuU+Z2f+Z2cdmthRYTJDZ/B53H5/iPoqIVBvZ2dnMmjULgFmzZtGtWzdmz55duHzssccWrrtt2zaeeOIJIPEAtW7dOmrXrk2tWrXo06cPw4YNK8ya3qNHjxRsUfJKDVDuvtHdHwhH77UgmA33KHdv4e6XuPt7FdJLEZFqIjs7m7fffhsIAtI111xTuDxv3jzGjBnDn/70J0499VRmzpxJ69atgeCepClTppCTk0N+fj6LFi2iR48edOvWjbPPPpsNGzYA8Morr3DyySczb948DjnkEDIzf70/trgs59dffz1dunShc+fOTJ48GYAnn3ySrl270rlzZwYMGFCYSql58+YMGjSITp06cfXVV5d7XyQ8l5O7b3H3r3Tvk4hI6jRv3pw1a9awYcMGvvrqK3r06MGiRYtYuXIljRo1om7durRo0YLJkycXZjOB4J6knj17kpeXR4cOHQrTD02bNo2srCweeeQRACZPnsxpp53GihUraNasWal9efXVV1m3bh0zZszgzTff5K9//SvuTq9evZg+fTpz5szhxx9/ZObMmUCQrWLkyJHMmTOHyZMns379+nLtizJlMxcRkdQ7+uijyc3NpUmTJtSoUYMaNWowbdo0srOzWb16Ncccc0zcOj766KPCmW83btxIjx492LJlC2vXrqVJkyY0a9YsbgaIRYsWMWPGjMJAuGnTJtauXcv8+fO588472bZtG8uXL+f0008HoGnTpjRp0gSAjIwM1q1bx29+85uk94NmwxURSTPZ2dnccccdhYHoqKOO4t577y28/lSjRo2dXlM00/jhhx/OU089RV5eHnPnzuVvf/sbeXl5dOnSBQiC4Oeff05sPtPXX399hzrbtGnDCSecQF5eHnl5eXzwwQc0atSI6667jieeeIIZM2bQsWPHwlN8BVnPC5R3gHfCR1Bm1gI42N3fMLO6QE13/7FcrYuIVBEVOTw8OzubwYMHFwaorKws/v73v5OVlcULL7xQ7GuOOOIIvvjiC/r06cPw4cO5//776devH1u2bAGCa0m5ubkMHDgQgJo1a/Lcc88xZMgQ1q1bx5YtW8jKyuKEE04orPOUU05h9uzZ5OTkYGZkZGTw+OOPc8EFF3D88cdz6KGHpnQ/lJrNvHAls0uAgcDe7t7KzA4GHnT37intXRzKZi6VSdnMd327UjZzgAkTJnDhhZV7Z1BZspkneopvMJAFrAdw98XAvuXsp4iIVKDKDk5llegpvk3uvrng/KKZ1SSYtDApZjYEGBDWsQi4CNgfeBrYB8gHznf3zSVWIlLNRJXJAJTNQKqGRI+gZpjZMKCumR0PPEsw5XuZmVlTgkkPM939cKAG8AfgduBud28NrAOinz9YRESqjESPoK4jCBiLCJLHvuLuD5Wz3bpmtgWoB3wFdCNITgswARgBjClHGyK7lHHtGkdW16DIahJJnUSPoC5394fc/Sx37+PuD5nZlck06O6rgH8AXxIEph8ITul97+4FYyRXAk2Le72ZDTSzBWa2YPXq1cl0QUREqoBEA1RxV9b6JdOgme0F9AIOBA4gmGvqpERf7+5j3T3T3TMbN47uP0oRkVKNsGh+4qjIZLF169YtTFl04oknMmfOHAC+/vpr/vzn4ieyGD9+fLkzRCSq1ABlZn3N7GXgQDPLjfmZDnyXZJs9gP+6+2p33wK8QDBCsGE4+AIgA1iVZP0iIlVWRSWLrVevHk2bNi1MWTR69Gguvvhi1qxZQ5MmTRg1atROr922bVuFBqh416BmE5yGawTE9vZH4IMk2/wS6GRm9YANBAloFwDTgT4EI/kuBErPwSEisgvKzs5m9OjRwK/JYqdPn86pp57KvHnz2Lp1K08//TQrV67k6quvZsCAASxZsoS77rqL+fPnk5OTw6hRo6hVqxZDhgxh+/btNGrUiAkTJlC3bt3CZLFFHXLIIfTu3ZvXXnuNrKwsBgwYwBtvvMGIESNYtmwZ3333Heeccw7vv/8+Z511FpmZmdSrV49OnTpx5pln8vPPP3PssceSn5+/U0aJZJUaoNx9ObAc6BxJa0Gd75jZc8C7BFPKvweMBaYAT5vZzWHZI1G1KSJSVRSXLHb06NE7JYt98MEHd3jd0KFDmThxIg8//DAAxx13HBMnTqR58+bce++9PPLII1x22WVMnjyZu+++u9i2mzVrxqpVO5+8ql27duHR2UMPPcTEiRPJyMhgyZIlDBkyhDPPPJNnn32Ws88+O7LgBAmO4jOzTsA/gd8CtQiGhv/s7kllAXT34cDwIsVLgaOTqU9EZFdSEclii7NixQoOO+ywncpLaq9169Zs3ryZVatW8dhjj/Hkk0+WYSvjS3SQxH0EExQuBuoS3GR7f6Q9ERERoGKSxRa1ePFiXnzxxWLnhIptr2g7F198McOGDaNhw4YlBr5kJZws1t2XmFkNd98GjDOz94DrI+2NiEi6GlG+zNxlURHJYgFWrVpF165d2bRpE/Xr12fs2LE0atSIn376qcS+9e7dm/79+3PMMcdw0003ceaZZ3L55Zczbty4CPdAINFksW8RjL57GPiaYOBEP3dvG3mPykDJYqUyVXSy2E7DX4usrrkjd/4vWXamZLHxbdq0iezsbObOnVvskV1RqUgWe3647mXAz0AzoHeCrxURkTQQdXB6//336d69O1dccUVCwamsEjrFF47mA9gIjAxvtr0UuCXyHomISJXQrl073n777ZTVH+9G3WZmNtbMJpvZADOrb2ajgM/QdBsiUg2Ud1ZY+VVZ92W8U3yPAf9HMMS8DcENtQcAR7p7Urn4RESqijp16rB27VoFqQi4O2vXrqVOnToJvybeKb693X1E+Pg1MzsLONfdtyfZRxGRKiMjI4OVK1eixNTRqFOnDhkZGQmvH/caVHi9qeDW4LXAnhbeKuzuyebjExFJe7vvvjsHHnhgZXej2ooXoPYkmAojNnfFu+FvBw5KRadERETi5eJrWUH9EBER2UGi90GJiIhUKAUoERFJSwpQIiKSlhIKUGbWysxqh49zzOwKM2uY0p6JiEi1lugR1PPANjNrTTC5YDMg2ok/REREYiQaoLa7+1bgTOCf7n4NsH/quiUiItVdogFqi5n1BS4EJodlu6emSyIiIokHqIuAzsAt7v5fMzsQeDx13RIRkeou0ek2PgaugMLUR3u4++2p7JiIiFRviY7iyzOz35jZ3gSpjh4ys7tS2zUREanOEj3Ft6e7ryeYRfcxd+9IMAW8iIhISiQaoGqa2f7A2fw6SEJERCRlEg1QfwdeA5a4+3wzOwhYnGyjZtbQzJ4zs0/N7BMz62xme5vZVDNbHP7eK9n6RUSk6ksoQLn7s+5+pLtfGi4vdfffl6Pde4FX3f1QoC3wCXAd8Ka7Hwy8GS6LiEg1VeooPjP7i7vfYWb/JJj/aQfufkVZGzSzPYHjgH5hHZuBzWbWC8gJV5sA5AHXlrV+ERHZNcQbZv5J+HtBhG0eCKwGxplZW4IJEa8E9nP3r8J1vgb2K+7FZjYQGAjQvHnzCLslIiLpJN6EhS+HvydE3OZRwOXu/o6Z3UuR03nu7ma20xFb+NxYgnyAZGZmFruOiIhUffFO8eWW9ry7n55EmyuBle7+Trj8HEGA+sbM9nf3r8IRg98mUbeISEr9q9fEyOoaNOm8yOraFcU7xdcZWAE8BbwDWHkbdPevzWyFmR3i7p8B3YGPw58LgdvC35PK25aIiFRd8QJUE+B4oC/wR2AK8JS7f1TOdi8HnjCzWsBSglx/uwHPmFl/YDnBPVciIlJNxbsGtQ14FXg1nLCwL5BnZiPd/b5kG3X394HMYp7qnmydIlJ+UZ2+2pVPXU256KnI6hrErrufohA3WWwYmHoSBKeWwGjgxdR2S0REqrt4gyQeAw4HXgFGuvuHFdIrERGp9uIdQZ0H/Exwn9IVZoVjJIxgNPhvUtg3ERGpxuJdg0o0V5+IiEikFIBERCQtKUCJiEhaUoASEZG0lHCAMrMWZtYjfFzXzPZIXbdERKS6SyhAmdklBDnz/hUWZQAvpahPIiIiCR9BDQaygPUA7r4Y2DdVnRIREYmbSSK0yd03F9wHZWY1KWYCQxGp2qJK46MUPhKFRI+gZpjZMKCumR0PPAu8nLpuiYhIdZdogLqOYBbcRcAggtRHN6SqUyIiIgmd4nP37cBD4Y+IiEjKJRSgzCwLGAG0CF9TkIvvoNR1TUREqrNEB0k8AgwB8oFtqeuOiIhIINEA9YO7/yelPREREYkRbz6oo8KH083sTuAFYFPB8+7+bgr7JiIi1Vi8I6hRRZZjp2l3oFu03REREQnEmw+qa0V1REREJFaiufhuNbOGMct7mdnNKeuViIhUe4neqHuyu39fsODu64BTUtIjEREREg9QNcysdsGCmdUFapeyvoiISLkkGqCeAN40s/5m1h+YCkwoT8NmVsPM3jOzyeHygWb2jpktMbN/m1mt8tQvIiJVW0IByt1vB24Bfhv+3OTud5Sz7SuBT2KWbwfudvfWwDqgfznrFxGRKizRG3UJb9SN5GZdM8sAehIEvaEWzOPRDfhjuMoEgtRKY6JoT0QkKt++d0V0lZ0RXVW7okRH8XUys/lm9pOZbTazbWa2vhzt3gP8BdgeLu8DfO/uW8PllUDTEvoy0MwWmNmC1atXl6MLIiKSzhK9BnUf0BdYDNQFBgD3J9OgmZ0KfOvu+cm83t3Hunumu2c2btw4mSpERKQKSDRA4e5LgBruvs3dxwEnJdlmFnC6mS0DniY4tXcv0DCcqRcgA1iVZP0iIrILSDRA/RKOqnvfzO4wsyFleO0O3P16d89w95bAH4Bp7n4uMB3oE652ITApmfpFRGTXkGiQOT9c9zLgZ6AZ8PuI+3ItwYCJJQTXpB6JuH4REalC4mUzbww0dvePw6KNwEgzawP8UN7G3T0PyAsfLwWOLm+dIiKya4g3zPyfwAPFlO8N/JVfh4VLCf7Va2JkdQ2adF5kdYmIpLt4Aaq1u79VtNDdZ5qZ7lFKwLh20Y00HBRZTSIi6S/eNag9Snlu9yg7IiIiEitegFpiZjtlLTezk4GlqemSiIhI/FN8VwFTzOxsoODG2kygM3BqCvslIiLVXKlHUO6+GDgCmAG0DH9mAEe6++ep7pyIiFRfcZPFuvsmYFwF9EVEdnEa1SplkVQ2CBERkVRLeLoNSV+dhr8WST1zR54YST0iIlFQgBKRCjPloqciq2sQOsW3q4uX6uiDkp4C3N2PjL5LIrKr0mR/UhbxjqC2Aw48CbwMbEh5j0RERIg/zLwdwUSFDQiC1C1AG2CVuy9Pee9ERKTaijuKz90/dffh7n4UwVHUY8CQlPdMRESqtbiDJMysKcHEgmcC6wiC04sp7peIiFRz8QZJzCBIGPsMcBGwNnyqlpnt7e7fpbh/IiJSTcU7gmpBMEhiEDAwptzC8oNS1C8REanmSg1Q7t6ygvohIiKygzKnOjKzVmZ2o5l9lIoOiYiIQIIByswOMLMhZjYf+Ch83R9S2jMREanW4g2SGEhwH1RTgoES/YFJ7j6yAvomEpnTX+oZWV25Z0yJrC4RKVm8QRL3AXOAP7r7AgAz85T3SiRiSrEjUvXEC1D7A2cBo8ysCcFR1O4p75WIiFR78UbxrQUeBB40swzgHOAbM/sEeNHdh5W1QTNrRpCNYj+Coepj3f1eM9sb+DfBrL3LgLPdfV1Z65eqKaqJ7DSJnciuI+HpNtx9JTCK4GjqYJIfJLEV+LO7v2tmewD5ZjYV6Ae86e63mdl1wHXAtUm2IRGKar4pKHnOqXHtGkdS/6BIahGRdBB3FJ+ZdTazPma2b7h8JDCSHW/cTZi7f+Xu74aPfwQ+IRiE0QuYEK42AZ3pFxGp1koNUGZ2J/Ao8HtgipndDLwOvAMcXN7Gzawl0D6sbz93/yp86muCU4AiIlJNxTvF1xNo7+4bzWwvYAVwuLsvK2/DZtYAeB64yt3Xm1nhc+7uJY0WDIe+DwRo3rx5ebshIiJpKt4pvo3uvhEgHLCwOKLgtDtBcHrC3V8Ii78xs/3D5/cHvi3ute4+1t0z3T2zceNorluIiEj6iXcEdZCZ5YaPDTgwZhl3P72sDVpwqPQI8Im73xXzVC5wIXBb+HtSWesWkfKJ7H6xM6KpRqq3eAGqV5Hlf0TQZhZwPrDIzN4Py4YRBKZnzKw/sBw4O4K24ooqw4CyC4hIVRHVbR2Q2ls74t0HNaPgsZk1DstWl6dBd3+b4GisON3LU3cy9B+jiFQ3Ud3WAam9tSPeKD4zs+Fmtgb4DPjczFab2d9S2CcREZG4gySGANnA79x9b3ffC+gIZJnZkJT3TkREqq14Aep8oK+7/7egwN2XAucBF6SyYyIiUr3FC1C7u/uaooXhdSgljRURkZSJF6A2J/mciIhIucQbZt7WzNYXU25AnRT0R0REBIg/zLxGRXVEREQkVtxs5iIiIpVBAUpERNKSApSIiKQlBSgREUlLClAiIpKWFKBERCQtKUCJiEhaUoASEZG0pAAlIiJpSQFKRETSkgKUiIikJQUoERFJS/GymYtIgjoNfy2SeuaOPDGSekSqOh1BiYhIWtIRlIjsUv7Va2Ik9QyadF4k9UjyFKBEZJcyrl3jSOoZFEktUh4KUCIiaUbXMwNpdQ3KzE4ys8/MbImZXVfZ/RERkcqTNgHKzGoA9wMnA4cBfc3ssMrtlYiIVJa0CVDA0cASd1/q7puBp4FeldwnERGpJObuld0HAMysD3CSuw8Il88HOrr7ZUXWGwgMDBcPAT6rgO41AtZU8Ta0DenRhrYhPdrQNqRPGwAt3H2n0S1VbpCEu48FxlZkm2a2wN0zq3Ib2ob0aEPbkB5taBvSp43SpNMpvlVAs5jljLBMRESqoXQKUPOBg83sQDOrBfwByK3kPomISCVJm1N87r7VzC4DXgNqAI+6+0eV3K0CFXFKMdVtaBvSow1tQ3q0oW1InzZKlDaDJERERGKl0yk+ERGRQgpQIiKSlhSgijCzlmb2YUXWbWbHmtlHZva+mdVNRduyMzNraGaXpriNkt7zq8ysXirbjpqZXWFmn5jZz6nI8mJms6OuM6bun1JVt6SOAlR6OBf4X3dv5+4bKrszUQnTV6WzhkBKA1QprgKqVIAi2FfHA88SpCOLlLsfE3WdUrUpQBWvppk9Ef63+JyZ1TOz35nZbDNbaGbzzGyPiOq+AjgbuCks39/M3gqPpj40s2OTacTMLjCzD8L+Pm5m+5nZi+HyQjMr1x+D8Mjg02L20zIzu93M3gXOSrCu+mY2JezXh2Z2jpndZmYfh9vwj3C9s8LnF5rZW2FZPzObZGZ5ZrbYzIaXYTNuA1qF+/pOM7vWzBaF9d9W5p1SsuLe8wOA6WY2vTwVF/M+tzKzueF23BzVkYOZPQgcBPwXuBC4M9xvraKoP2zjp/B3JN+BEtrIMbPJMcv3mVm/JOsq+A6MN7PPw/e4h5nNCj+LR5tZYzObGp4hedjMlptZoyTaKu47sszM7gjf63lm1jqZ7YjZlg9jlq82sxFmdomZzQ/bfd4q+qjf3fUT8wO0BBzICpcfBf4CLAV+F5b9BqgZUd1XA+OBPmHZn4G/ho9rAHsk0U4b4HOgUbi8N/Bv4KqYevdMwX66GlgG/KWMdf0eeChmuQVBCquCUaYNw9+LgKZFyvoBXwH7AHWBD4HMMmzDh+Hjk4HZQL2CfZbCz1PBfmpUzrqLe58nA33D5T8BP0WxHWF9ywhS3xR+XqP8KehrFN+BUurOASbHlN8H9CvHe7sVOILgn/388P01gjyiL4X1Xx+uf1L4WSjz+17Md2TP8P0o2E8XxG5XktvyYczy1cAIYJ+YspuBy6N+30v70RFU8Va4+6zw8UTgROArd58P4O7r3X1rRHVnF3l+PnCRmY0AjnD3H5NooxvwrLuvCfv7XVg2Jlze5u4/JNP5Ikraln+XsZ5FwPHhkdexBBlENgKPmFlv4JdwvVnAeDO7hOAPV4Gp7r7Wg9OjL7DzPk1ED2Ccu/8ChfssKvHe82QV9z53JjgFB/BkRO1UtCi+AxXlv+6+yN23Ax8Bb3rw13wRwR/9bILE17j7q8C6JNvZ4TsS8/19KuZ35yTrLs3hZjbTzBYRXIpok4I2SqQAVbyiN4etT2HdOyy7+1vAcQR/pMeb2QURth21krbl5zJV4v45cBTBl/BmYBhBdvvngFOBV8P1/gTcQJASK9/M9onTj3SR7v1LKyn+Dmxlx797dcpZ36aYx9tjlrcTYSKEot8RM/tbwVOxq5WjiZL2y3jgMnc/AhhJ+fdXmShAFa+5mRX8N/JHYC6wv5n9DsDM9jCzZD98Ret+O/ZJM2sBfOPuDwEPE3woy2oacFbBH3Az2xt4E/ifcLmGme2ZZP9jlbotiTKzA4Bf3H0icCfBH6c93f0VYAjQNlyvlbu/4+5/A1bza+7G481sbwtGQJ5BcKSViB+BgmuJUwn+a68XtrV3MttSguL2U2zbySrufZ5LcDoIgnRhqRBF30sU0XegJMuBw8ystpk1BLpHWHdxZhFcY8bMTgD2SqaSYr4jBfvknJjfc8rRz2+Afc1sHzOrTfCPIQTv81dmtjvBEVSFUoAq3mfAYDP7hOAD9U+CD8A/zWwhwR+zZP+TKFr3mCLP5wALzey9sM17y9qABymibgFmhP29C7gS6BoequcTzSiseNuSqCOAeWb2PjCc4D+1yWb2AcEf86HheneGF4Q/JLhetDAsnwc8D3wAPO/uCxJp1N3XArPC+roT5H5cEPbj6iS3pTjF7aexwKvlGSRRwvt8FTA03HetgShO5Rb1NHCNmb0X5SCJGDmU8ztQEndfATxDcK3yGeC9qOouwUjghPAzdhbwNUGAL6ui35Gbw/K9wvf6SoJ/5pLi7luAvxN8l6YCn4ZP3Qi8QxBoPy3+1amjVEeSFDNrSXBR9vBK7kc/gkERl8VbtzoIjwA3uLub2R8IBkxo4s9KEh6NbPMg12hnYIy7t4uo7mUEn/2KmK+pUqRNslgRiUQH4D4zM+B74OLK7U611xx4xsx2AzYDl1Ryf6oUHUGJiEha0jUoERFJSwpQIiKSlhSgREQkLSlAiYhIWlKAqsYsSCD7pJktNbN8M5tjZmfGPH+Pma0KRyAVlPUzs9UWJPL8OEw7VLT8IwuTx4bPdTKzd8LnPglT2BTXnyfM7DMLkmE+Gt4ciJmda0FC1EUWJOxtm9IdI9WKmbmZjYpZvrrgM2pBwtRV9mvi2tOLKf/UzMbEfk+K1N/EzJ42sy/C79krZvb/KmTjqjgFqGoqHIb8EvCWux/k7h0IMg9khM/vBpwJrAC6FHn5v8N7OXKAW81sv9hyd29DMKS24C73CcDA8DWHE9wgWZwngEMJbkqsCwwIy/8LdAnTrdxEcJOrSFQ2Ab2t5Czjd4ef3bOAR2MCUUH5YQSf2aLfk4Lv2YtAnru3Cr9n1wP7FV1XdqYAVX11Aza7+4MFBe6+3N3/GS7mECS/HAP0La4Cd/8W+IIg+3ghC9JA1efXxJj7EmQcL0hU+3EJ9b3iIYI72jPC8tnuXlDX3IJykYhsJfinp9RMDO7+Sbhu0UBWiyCzTHGJYLsCW4p8zxa6+8xy9biaUICqvtoA75byfF+CDMkvAj0LTrfFMrODCOYIWhIWnROmYllFMPXDy2H53cBnFsxHNcjMSk0TFbZ1PmGS2CL6A/8p7fUiSbgfONdKyVFpZh0JksCuDouGhJ/3r4DP3f39Yl52OEFqMUmCApQAYGb3WzAp2XwzqwWcArzk7usJcnGdGLN6QSB6ChgUMzVFwam/JgRZl68BcPe/A5nA6wTJUosLPLEeIDj1uMN/mWbWlSBAXZv0hooUI/ycPwZcUczTBYHoH8A5/mt2g4JTfPsC9cPUUhIhBajq6yNiskS7+2CChKmNCYJRQ2BRmO8rmx1P8xVca+ro7i8WrTj8Ar9MkJW8oOwLdx8TttHWgqzJr4UXmR8uWM+CGXEb82uC2ILyIwkyW/cKk7yKRO0egn+A6hcpvzv8vB9b3Km5MNHqq8BxZtYs/Ey/b2Z/IviedUh1x3dVClDV1zSgjpn9T0xZwXTOfYEB7t7S3VsCBxJMaVGW6Z6zCa5PYWY9w4vFAAcD24Dv3f3E8Is/IFxvAEFw7BtOAEdY3pxgIsLzw3lxRCIXngl4hiBIJSz8bGcBX7j7ivAz3S687jQNqG1mA2PWP9IinMZ+V6YAVU2FRzlnAF3M7L9mNo9gtN1wgqmpp8Ss+zPBtBenxan2nPA/xw+A9gQj7iC4nvRZeJrkceBcd99WzOsfJBjdNCesp2BStr8RTOn+QFie0HQaIkkYxc6DIEpScOrvQ4IZnh8oukL4PTsT6BEOM/8I+F+CaTckDiWLFRGRtKQjKBERSUsKUCIikpYUoEREJC0pQImISFpSgBIRkbSkACUiImlJAUpERNLS/wcFxRmtb2vvlAAAAABJRU5ErkJggg==", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAE3CAYAAABcnM5hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSQ0lEQVR4nO3deVyN6f8/8NepVFSnFK0qGVsoIrvRIrLLOgymMJax8xlLDI19G2SNIWUfY0v2JcIQRmQXQ4kWW5uKku7fH37u75ypOEfnnJLX8/G4H4/Ofd/nvl7ndDrervu6r1siCIIAIiIiIvokjeIOQERERPSlYOFEREREJCcWTkRERERyYuFEREREJCcWTkRERERyYuFEREREJCcWTkRERERyYuFEREREJCet4g5QEuTl5SEhIQEGBgaQSCTFHYeIiIjUSBAEvHr1CpaWltDQ+HifEgsnAAkJCbC2ti7uGERERFSMHj9+jEqVKn10HxZOAAwMDAC8f8OkUmkxpyH6OmRmZsLS0hLA+/+86OnpFXMiIvpapaenw9raWqwHPoaFEyCenpNKpSyciNREU1NT/FkqlbJwIqJiJ89wHQ4OJyIiIpITCyciIiIiOfFUnRzy8vKQk5NT3DFICcqUKSNzioiIiEgRLJw+IScnBzExMcjLyyvuKKQkRkZGMDc359QTRESkMBZOHyEIAhITE6GpqQlra+tPzu1AJZsgCMjKysKzZ88AABYWFsWciIiIvjQsnD4iNzcXWVlZsLS0RLly5Yo7DilB2bJlAQDPnj2DqakpT9sREZFC2IXyEe/evQMAaGtrF3MSUqYPRfDbt2+LOQkREX1pWDjJgWNhShf+PomI6HOxcCIiIiKSEwsnUsjYsWPh4+Pz2c+PjY2FRCJBamqq0jIRERGpCweHf4YmfkdV3saFGZ5y7+vq6oqIiAiUKVMG2tracHBwwOLFi+Hs7KzChP/n3LlzGD58OK5duwYA+OuvvzBnzhxcuHABgiDA1tYWffv2xdixY9WSh4iISFXY41RKLFiwABkZGUhKSkLjxo3RrVs3tbW9f/9+dO7cGQBw4MABtGvXDp6enrh//z5SU1OxY8cO3L59G4mJiWrLREREpAosnEoZbW1teHt74/Hjx3j+/DkEQcDy5ctRs2ZNGBkZwdXVFXfu3BH3X7JkCapVqwYDAwN88803WLlypczxzpw5AwcHB+jr66Nbt2549epVvjY/FE6CIGD06NGYNGkSxo4diwoVKgAAatasieDgYNja2uZ7blHyfTjtt3nzZlStWhVGRkbw8fHh1XJERKQyLJxKmdevXyMwMBAVKlRA+fLlERAQgMDAQOzfvx8vXrxAt27d0KlTJ/EWMra2tjh58iTS09Oxfv16TJgwAefOnQMApKSkoHPnzhg5ciRSU1MxYMAAbNmyRaa9hw8fIiUlBc7Ozrh//z5iYmLQp08fufMWJd8Hhw8fxtWrV3H79m2EhYVh69atRXkLiYiICsXCqZTw9fWFkZER9PT0sG3bNuzZswdaWlpYtWoVZs6ciWrVqkFLSwujR4/G69evcfHiRQBA9+7dYW1tDYlEAjc3N3h6eiI8PBzA+9NulpaWGDp0KLS0tNCpUye4u7vLtBsaGoqOHTtCIpHg+fPnAAArKyu5cxcl3wfTp0+HgYEBLC0t0bZtW0RGRn7mu0hERPRxxVo4nTlzBp06dYKlpSUkEglCQkJktguCgOnTp8PCwgJly5aFh4cH7t+/L7NPcnIy+vbtC6lUCiMjIwwaNAgZGRlqfBUlw7x585CamorHjx/DysoK169fB/D+dFa/fv1gZGQkLikpKXjy5AkAYOvWrahfvz6MjY1hZGSEQ4cO4cWLFwCAhISEfKfX/vv43+ObPpyai4+Plzt3UfJ9YG5uLv6sp6dX4OlEIiIiZSjWwikzMxN169bFqlWrCty+cOFCLF++HGvWrMHFixehp6cHT09PvHnzRtynb9++uHXrFo4fP44DBw7gzJkzGDJkiLpeQoljZWWFdevWYdKkSUhISIC1tTV27tyJ1NRUccnKykKfPn0QFxcHb29vLFy4EM+ePUNqairat28PQRAAAJaWlnj06JHM8ePi4sSfU1NTERkZCQ8PDwBA9erVUblyZfzxxx9y5y1KPiIiInUr1sKpXbt2mD17Nrp27ZpvmyAI8Pf3xy+//IIuXbrA0dERmzZtQkJCgtgzdefOHRw5cgTr169H48aN0aJFC6xYsQJ//PEHEhIS1PxqSo769evD1dUVc+fOxYgRIzB9+nRER0cDANLT07Fv3z68evUKGRkZEAQBpqam0NDQwKFDh3Ds2DHxOB06dEB8fDzWrVuH3NxcHDx4ECdPnhS3HzlyBC4uLtDV1QXwfkbuFStWYP78+VixYgVevnwJALh37x4GDRqUrwgDUKR8RERE6lZi53GKiYlBUlKS2JsBAIaGhmjcuDEiIiLQu3dvREREwMjISGa+Ig8PD2hoaODixYsFFmQAkJ2djezsbPFxenq6QtkUmWOpuEydOhVubm64f/8+NDU10a1bNzx+/BgGBgZo0aIF3N3dUatWLUydOhXu7u549+4dOnfuLJ52AwBjY2Ps27cPI0eOxLhx49C6dWv07dtXvIffv0/TfdCxY0ccPnwYs2fPxrRp0wAANjY26N+/PywsLPIVtCNHjvzsfEREROomEUrIeQ+JRIK9e/fCy8sLAHD+/Hk0b94cCQkJsLCwEPfr1asXJBIJduzYgblz52Ljxo1ib8UHpqammDFjBn766acC2/r1118xY8aMfOvT0tIglUrFx2/evEFMTAzs7OzEXhV6Lzc3F+bm5rh16xbMzMyKO45C+HstGTIzM6Gvrw8AyMjIgJ6eXjEnIqKvVXp6OgwNDfPVAQX5Kq+q8/X1RVpamrg8fvy4uCN9cZKTk+Hn5/fFFU1ERERFUWILpw9XSj19+lRm/dOnT8Vt5ubmePbsmcz23NxcJCcny1xp9V86OjqQSqUyCynG1NQUo0aNKu4YREREalViCyc7OzuYm5sjLCxMXJeeno6LFy+iadOmAICmTZuKV3Z9cPLkSeTl5aFx48Zqz0xERESlW7EODs/IyMA///wjPo6JiUFUVBSMjY1hY2ODsWPHYvbs2ahWrRrs7Owwbdo0WFpaiuOg7O3t0bZtWwwePBhr1qzB27dvMXLkSPTu3RuWlpbF9KqIiEqftV22fHonJRi6r59a2iH6XMVaOF2+fBlubm7i4/HjxwMAvL29ERwcjIkTJyIzMxNDhgxBamoqWrRogSNHjsgM6N26dStGjhyJVq1aQUNDA927d8fy5cvV/lqIiIio9CvWwsnV1fWjkxlKJBLMnDkTM2fOLHQfY2NjbNu2TRXxiIiIiGSU2DFORERERCVNkXqcsrOzoaOjo6wsRERUQgXVq6iWdoaqpRWiz6dQj9Phw4fh7e2NKlWqoEyZMihXrhykUilcXFwwZ86cr/o2J1+LsWPHwsfHp0jHOHv2LCpVqqScQERERGokV4/T3r17MWnSJLx69Qrt27fHpEmTYGlpibJlyyI5ORk3b97EiRMnMGvWLPj4+GDWrFmoWFE9/zspDp1DOqi8jVCvg3Lv6+rqioiICJQpUwba2tpwcHDA4sWLZW5Fo0rnzp3D8OHDce3aNTGLtrY2NDQ0YG1tDU9PT0yePFn8THz77bd48uTJR4/p4+MDIyMj+Pv7q+EVEBERyUeuHqeFCxdi6dKliI+PR2BgIIYOHYpOnTrBw8MDvXr1wsyZM3Hq1Ck8ePAARkZG2LJFPZet0v9ZsGABMjIykJSUhMaNG6Nbt25qa/u/96xbsGABXr16hdTUVPz555+Ij49HgwYN8k1mWpjc3FxVRSUiIioSuQqniIgIdOjQARoaH9/dysoK8+fPx7hx45QSjhSnra0Nb29vPH78GM+fP4cgCFi+fDlq1qwJIyMjuLq64s6dO+L+S5YsQbVq1WBgYIBvvvkGK1eulDnemTNn4ODgAH19fXTr1g2vXr3K12ZBN/sF3l8VWatWLWzZsgVSqRSLFy8GAISHh8PIyEjcz9XVFRMnTkSbNm2gp6eHVatWYevWrVi9ejX09fVRu3Zt7Nu3D1WqVJG5CvPChQswNjbGmzdvivq2ERERyaXIV9VlZmYiPT1dGVlICV6/fo3AwEBUqFAB5cuXR0BAAAIDA7F//368ePEC3bp1Q6dOnZCTkwMAsLW1xcmTJ5Geno7169djwoQJOHfuHAAgJSUFnTt3xsiRI5GamooBAwbk6018+PAhUlJSPnpaUEtLC15eXjh9+nSh+wQHB2P27NnIyMjAkCFD0LdvXwwfPhwZGRm4desWOnTogKysLJljBAUFoU+fPrxRLxERqc1nF063b9+Gs7MzDAwMUL58eTg4OODy5cvKzEYK8PX1hZGREfT09LBt2zbs2bMHWlpaWLVqFWbOnIlq1apBS0sLo0ePxuvXr3Hx4kUAQPfu3WFtbQ2JRAI3Nzd4enoiPDwcAHDgwAFYWlpi6NCh0NLSQqdOneDu7i7TbmhoKDp27AiJRPLRfFZWVkhOTi50+/fff49GjRpBIpGgbNmy+bZraWmJE6MCwJs3b7Bjxw4MGDBAgXeJiIioaD67cBo6dChGjhyJjIwMvHz5Et26dYO3t7cys5EC5s2bh9TUVDx+/BhWVla4fv06ACA2Nhb9+vWDkZGRuKSkpIiDs7du3Yr69evD2NgYRkZGOHToEF68eAEASEhIgK2trUw7/31c2Gm6/4qPj4exsXGh221sbD55jIEDB2L37t3IyMjA3r17YWNjo7YB8ERERIAChVOXLl0QHx8vPn7+/Dk6d+6McuXKwcjICO3bt5d78C+pjpWVFdatW4dJkyYhISEB1tbW2LlzJ1JTU8UlKysLffr0QVxcHLy9vbFw4UI8e/YMqampaN++vTiOyNLSEo8ePZI5flxcnPjzhxsse3h4fDRTbm4u9u3bB1dX10L3+e/4uYLG09WoUQN169bFrl27EBwczN4mIiJSO7kLp379+sHd3R3Lly+HIAgYOXIkateujd69e6N79+5o27Ytxo4dq8KoJK/69evD1dUVc+fOxYgRIzB9+nRER0cDANLT07Fv3z68evUKGRkZEAQBpqam0NDQwKFDh3Ds2DHxOB06dEB8fDzWrVuH3NxcHDx4ECdPnhS3HzlyBC4uLh8dY3T37l14e3sjLS1NvBehPMzMzPDw4cN8t+QZNGgQFi9ejDNnzqBfP94MlIiI1Evuwqlnz564dOkSbt++jSZNmqB58+Y4duwYmjdvjm+//RbHjh3DL7/8osqspICpU6di/fr18PLygo+PD7p16wapVAp7e3vx3n61atXC1KlT4e7uDhMTE+zYsUPmtJuxsTH27duHZcuWwcjICOvXr0ffvn3F7YWdpps0aRIMDAxgaGiIbt26wdzcHJcvX4aZmZnc+X/88Ufx9J6jo6O4vlevXnj06BHatWtXqucKIyKikkkifOwuu4X466+/MHz4cLRu3RqzZs1CuXLlVJFNbdLT02FoaIi0tDRIpVJx/Zs3bxATEwM7OzteufUfubm5MDc3x61btxQqiJThm2++wbJly9CxY8fPej5/ryVDZmYm9PX1AQAZGRnQ09Mr5kT0MU38jqqlnQszPNXSDtG/FVYHFEShweHJycmIjIyEg4MDIiMjIZVK4eTkhEOHDhUpMH15kpOT4efnp/ai6Y8//sC7d+/Qrl07tbZLREQEKFA4bdu2DZUqVUKHDh1ga2uLw4cPw8/PD/v27cPChQvRq1cvDg7/ipiammLUqFFqbdPe3h5jxozBmjVroKmpqda2iYiIAAUKJ19fX2zYsAFJSUkICwvDtGnTAAA1a9ZEeHg4WrdujaZNm6osKNGdO3fw9OlTtG3btrijEBHRV0ruwikjIwM1atQA8H6MSVZWlsz2wYMH48KFC8pNR0RERFSCaMm7o7e3Nzp06ABXV1dcvnwZ/fv3z7ePqampUsMRERERlSRyF05LliyBm5sb7t69Cx8fH7Rp00aVuYiIiIhKHLkLJwDo1KkTOnXqpKosRERERCWaXGOc/vjjD7kP+PjxY5w7d+6zAxERERGVVHIVTgEBAbC3t8fChQtx586dfNvT0tJw6NAhfP/996hfvz5evnyp9KCkOrVr18aBAwfU2qarqyv8/f3V2iYREVFRyXWq7vTp0wgNDcWKFSvg6+sLPT09mJmZQVdXFykpKUhKSkKFChXg4+ODmzdvqn1SRHVb22WLytsYuk+++7D99ttv2LVrl8wVjf369cOuXbuQmpoqzoy9cuVKrF27Fjdu3Mh3jFu3bok/BwcHw9/fH1FRUQpnrl69Onbs2AEnJye8fPkSM2bMwL59+/Dy5UtUqFABrq6umDJlCqpXr67wsYmIiEoCucc4de7cGZ07d8aLFy/w119/4dGjR3j9+jUqVKgAJycnODk5FXhHe1ItNzc3+Pr6IiMjQ7x9RXh4OKpUqYILFy7A1dUVAHDq1Cm4u7vLPDc3NxeampqQSCRFznH37l28efMGTk5OSEtLQ7NmzVCzZk0cPXoU1atXR3p6OrZv347Dhw+zcCIiKmXU0aEAyN+poEoKVzoVKlSAl5cXxowZg8mTJ+PHH39EgwYNWDQVEycnJ+jr6+Ps2bMAgPv370NXVxd9+vTBqVOnAACCIODMmTNwc3ODRCLBypUrUadOHejp6SEjIwOVK1dGSEgIrl69imHDhuHGjRvQ19eHvr4+4uLiALwf5+bo6AgjIyM0bNgQ58+fl8mxf/9+8cIBf39/aGhoYPfu3ahZsyY0NDRgZGSEn376CWPGjCnwdVy5cgVubm4wNjZG1apVsW7dOnHb1atX0aJFCxgbG6NixYro06ePzOlgV1dX+Pr6wtPTEwYGBqhfv36BPWtERERFxWrnC6ehoYGWLVsiPDwcwPveJldXV7i4uIjrbt68ieTkZLi4uAB4f/ucY8eOIT09XebGqk5OTlizZg0cHByQkZGBjIwM2NjY4NChQ/j5558RHByM5ORk+Pr6olOnTjLFS2hoKDp37gwAOHr0KHr06AEtLfk6NJOSktC6dWv89NNPeP78OUJCQuDn54ewsDDxNc6fPx9Pnz7FzZs3ER8fj8mTJ8scY/PmzVi4cCFSUlLg7Oys9tvBEBHR14GFUyng5uYm9i6Fh4fDxcUFjRs3xrVr1/D69WuEh4ejXr16KF++PABg4sSJsLS0hI6Ojlw9hatWrcKECRNQv359aGhooFu3bqhZs6Z4c+eXL1/i5s2b4mnB58+fw8rKSu78mzdvRsuWLdGrVy9oamqiTp06GDBgALZt2wYAqFu3Llq0aIEyZcrAzMwM48ePF4vCD/r164e6detCS0sL3t7eiIyMlLt9IiIiebFwKgXc3Nxw5coVpKen4/Tp03B1dYWOjg7q1auH8+fPIzw8HG5ubuL+NjY2Ch0/NjYWU6ZMgZGRkbhERUUhPj4eAHDo0CG0atUKOjo6AN6fzv2wTd7jHzp0SOb4y5cvR2JiIgDgn3/+QZcuXWBpaQmpVIp+/frhxYsXMscwNzcXf/5wCpKIiEjZWDiVAh/GHm3YsAHa2tqwtrYGALi4uODUqVPi+KYPPtbLVNA2a2trLF68GKmpqeKSmZkpni7792k6APD09MTu3buRm5srV35ra2t07dpV5vivXr0Se7SGDRsGKysr3L59G+np6diyZQsEQZDr2ERERMr02YVTTk4OoqOj5f7HkVRHIpHAxcUFCxYsEE+XAe8Lp8DAQKSmpqJly5ZyHcvMzAyJiYl4/fq1uG7EiBFYtGgRIiMjIQgCsrKycOLECTx58gQ5OTk4ceIE2rdvL+4/btw4vHv3Dr169cK9e/eQl5eHtLQ0rFu3DsuWLcvXZv/+/XHy5Ens3r0bb9++xdu3bxEVFYW///4bAJCeng4DAwNIpVI8fvwYixYt+sx3ioiIqGgULpyysrIwaNAglCtXDrVr1xavuho1ahTmz5+v9IAkHzc3NyQlJYkDwAGgadOmSE5ORoMGDWBgYCDXcdzd3dGkSRNYWVnByMgIcXFx6NSpE+bPn4/BgwejfPnysLOzw7Jly5CXl4fTp0+jTp06qFChgngMQ0NDnD9/HlZWVvDw8ICBgQEcHR1x7tw5dOjQIV+bVlZWOHr0KNauXQsLCwuYmZlhxIgRSE9PB/D+PokHDhyAVCpFly5d0L179yK+W0RERJ9HIih4zmPMmDE4d+4c/P390bZtW1y/fh1VqlTBvn378Ouvv+Lq1auqyqoy6enpMDQ0RFpaGqRSqbj+zZs3iImJgZ2dnTiRJMkaNWoUbGxsMGHChOKOIjf+XkuGzMxMce6xjIwMmSs8qeRp4ndULe1cmOGplnZIub70eZwKqwMKotBNfgEgJCQEO3bsQJMmTWQmTqxduzYePHigeFr6ojk4OKBdu3bFHYOIiEgtFC6cnj9/DlNT03zrMzMzlTIDNX1ZhgwZUtwRiIiI1EbhwsnZ2RkHDx4UJxj8UCytX78eTZs2VWq4d+/e4ddff8WWLVuQlJQES0tL+Pj44JdffhHbFQQBfn5+WLduHVJTU9G8eXMEBASgWrVqSs1CRET0wZd+aoo+n8KF09y5c9GuXTvcvn0bubm5WLZsGW7fvo3z58/j9OnTSg23YMECBAQEYOPGjahduzYuX76MAQMGwNDQEKNHjwYALFy4EMuXL8fGjRthZ2eHadOmwdPTE7dv3+b4FSIiIlIqha+qa9GiBaKiopCbmwsHBwccO3YMpqamiIiIQIMGDZQa7vz58+jSpQs6dOiAypUro0ePHmjTpg0uXboE4H1vk7+/P3755Rd06dIFjo6O2LRpExISEhASEqLULEREREQK9zgBwDfffCNzE1ZVadasGX7//Xfcu3cP1atXx7Vr1/DXX39hyZIlAICYmBgkJSXBw8NDfI6hoSEaN26MiIgI9O7du8DjZmdnIzs7W3z84bJ3IiIioo9RuHDS1NREYmJivgHiL1++hKmpKd69e6e0cJMnT0Z6ejpq1qwJTU1NvHv3DnPmzEHfvn0BvL85LPB+0sZ/MzMzE7cVZN68eZgxY4bSchIREdHXQeHCqbBpn7Kzs6GtrV3kQP/2559/YuvWrdi2bRtq166NqKgojB07FpaWlvD29v7s4/r6+mL8+PHi4/T0dPE2JURERJ9ycMB2tbQzFBwcXtLIXTgtX74cwPur6NavXy9OXAe8v/rtzJkzqFmzplLDTZgwAZMnTxZPuTk4OODRo0eYN28evL29xRu7Pn36FBYWFuLznj59inr16hV6XB0dHfGGtPR+Dq4FCxagY8eOX0W7REREn0vuwmnp0qUA3vc4rVmzBpqamuI2bW1tVK5cGWvWrFFquKysrHw3ndXU1EReXh4AwM7ODubm5ggLCxMLpfT0dFy8eBE//fSTUrPI+FUN81X9Kt+E7r/99ht27dqFCxcuiOv69euHXbt2ITU1VbyycOXKlVi7di1u3LiR7xi3bt0Sfw4ODoa/vz+ioqIUjly9enXs2LED165dw6BBg1C2bFloaGjAwMAATZo0wZgxY2TumffvdgsSHh4OLy8vpKamKpyFiIhIFeS+qi4mJgYxMTFwcXHBtWvXxMcxMTGIjo7G0aNH0bhxY6WG69SpE+bMmYODBw8iNjYWe/fuxZIlS9C1a1cA73u/xo4di9mzZyM0NBQ3btzADz/8AEtLS3h5eSk1S0nl5uaGyMhIZGRkiOvCw8NRpUoVmWLq1KlTcHd3l3lubm5uoadeFXX37l28efMGTk5OAN73DmZkZCA9PR03btyAu7s72rVrh61bt8p1vLdv3yolFxERkTIpPB3BqVOnUL58eVVkyWfFihXo0aMHhg8fDnt7e/z8888YOnQoZs2aJe4zceJEjBo1CkOGDEHDhg2RkZGBI0eOfDVzODk5OUFfXx9nz54FANy/fx+6urro06cPTp06BeB9L+GZM2fg5uYGiUSClStXok6dOtDT00NGRgYqV66MkJAQXL16FcOGDcONGzegr68PfX198SbOf/zxBxwdHWFkZISGDRvi/PnzMjn279+PTp06FZjR2NgYI0aMwLRp0/Dzzz+LPYYf2gXe93TVq1cPfn5+MDc3R5s2bdCuXTukpaWJWc6ePQszMzOEh4fLHN/e3h47duxQ1ltKRERUqM+ajuDJkycIDQ1FXFwccnJyZLZ9mCpAGQwMDODv7w9/f/9C95FIJJg5cyZmzpyptHa/JBoaGmjZsiXCw8PRrl07hIeHw9XVFS4uLpg2bRoA4ObNm0hOToaLiwsAYNu2bTh27BhMTExQpkwZ8VhOTk5Ys2ZNvlN1hw4dws8//4zQ0FDUq1cPISEh6NSpE+7duwcTExMAQGhoKH755ZePZu3Rowd8fX0RHR0Ne3v7fNtv3ryJ7t27Iy4uDrm5ubh06VK+U3X9+/dHcHAwXF1dAQARERF4+vTpV9PDSERExUvhwiksLAydO3dGlSpVcPfuXdSpUwexsbEQBAH169dXRUb6BDc3N2zbtg3A+9N0bdu2RePGjXHt2jW8fv0a4eHhqFevnthTOHHiRFhaWsp9/FWrVmHChAni77dbt25YvHgxDh06hP79++Ply5e4efOmWMwUxsrKCgCQnJxc4HZDQ0NMnToVGhoahV6hOWjQIDRq1AgrV66Evr4+goOD8f3333OwPxERqYXCp+p8fX3x888/48aNG9DV1cXu3bvx+PFjuLi4oGfPnqrISJ/g5uaGK1euID09HadPn4arqyt0dHRQr149nD9/HuHh4XBzcxP3t7GxUej4sbGxmDJlCoyMjMQlKioK8fHxAN73SLVq1eqTxcuH/Y2NjQvcbmVlle9igP+yt7dHnTp1sGvXLrx58wY7duzAwIEDFXo9REREn0vhHqc7d+5g+/b381doaWnh9evX0NfXx8yZM9GlSxfVXs1GBfow9mjDhg3Q1tYW56RycXHBqVOncObMGZni4mPFSUHbrK2tMWrUKAwbNqzA54SGhqJz586fzLlr1y6Ym5ujRo0acrVdWM5BgwYhODgYOjo6sLW1ZU8nERGpjcI9Tnp6euK4JgsLCzx48EDc9uLFC+UlI7lJJBK4uLhgwYIFMqfLXFxcEBgYiNTUVJlpAD7GzMwMiYmJeP36tbhuxIgRWLRoESIjIyEIArKysnDixAk8efIEOTk5OHHiBNq3b1/oMVNSUrB27VrMnj0bv/322yd7lf6d5dWrV3j27JnM+u+++w6RkZGYP38+e5uIiEitFO5xatKkCf766y/Y29ujffv2+N///ocbN25gz549aNKkiSoykhzc3NywZ88ecQA4ADRt2hTJyclo0KABDAwM5DqOu7s7mjRpAisrK+Tl5eH69evo1KkT3rx5g8GDB+Phw4fQ0dFBo0aNsGrVKpw+fRp16tRBhQoVZI7z4co8DQ0N6Ovro0mTJjh48KBMvk+pUaMGBg0ahFq1aiE3NxcHDhxAixYtYGBggJ49e2Lr1q3i7XeIiIjUQSIoOJHPw4cPkZGRAUdHR2RmZuJ///sfzp8/j2rVqmHJkiWwtbVVVVaVSU9Ph6GhIdLS0iCVSsX1b968QUxMDOzs7L6a6Q0UNWrUKNjY2GDChAlqbXfmzJm4fv06du3apfBz+XstGTIzM8U7EGRkZEBPT6+YE9HHNPE7qpZ2LszwVEs7RdU5pINa2gn1OqiWdopqbZctamln6D7V3IKmsDqgIAr3OFWpUkX8WU9PT+mzhdOXxcHBAe3atVNrm8+fP8e6desQHBys1naJiIgUHuNUmD179sDR0VFZh6MvxJAhQ9R6g+Q5c+agcuXK6NChA1q1aqW2domIiAAFC6e1a9eiR48e+P7773Hx4kUAwMmTJ+Hk5IT+/fujefPmKglJ9MHUqVORmZnJnk4iIioWchdO8+fPx6hRoxAbG4vQ0FC4u7tj7ty56Nu3L7777js8efIEAQEBqsxKREREVKzkHuMUFBSEdevWwdvbG2fPnoWLiwvOnz+Pf/75h4M6iYiI6Ksgd49TXFwc3N3dAQDffvstypQpgxkzZnwVRZOCFx5SCffhJsNERESKkrvHKTs7W+bSbW1t7UJvnVFalClTBhKJBM+fP0fFihUhkUiKOxIVgSAIyMnJwfPnzz96PzwiIqLCKDQdwbRp01CuXDkAQE5ODmbPng1DQ0OZfZYsWaK8dMVMU1MTlSpVwpMnTxAbG1vccUhJypUrBxsbG7lnMCciIvpA7sKpZcuWiI6OFh83a9YMDx8+lNmnNPbI6Ovro1q1anj79m1xRyEl0NTUhJaWVqn8rBIRkerJXTiFh4erMEbJpqmpCU1NzeKOQURERMWM5yqIiIiI5MTCiYiIiEhOLJyIiIiI5MTCiYiIiEhOLJyIiIiI5KRw4XTkyBH89ddf4uNVq1ahXr16+P7775GSkqLUcEREREQlicKF04QJE5Ceng4AuHHjBv73v/+hffv2iImJwfjx45UekIiIiKikUGjmcACIiYlBrVq1AAC7d+9Gx44dMXfuXFy5cgXt27dXekAiIiKikkLhHidtbW1kZWUBAE6cOIE2bdoAAIyNjcWeKCIiIqLSSOEepxYtWmD8+PFo3rw5Ll26hB07dgAA7t27h0qVKik9IBEREVFJoXDhtHLlSgwfPhy7du1CQEAArKysAACHDx9G27ZtlR6QiL4ua7tsUUs7Q/f1U0s7RFS6KFw42djY4MCBA/nWL126VCmBiIiISrpnV0erpyEv9TRD8lO4cLpy5QrKlCkDBwcHAMC+ffsQFBSEWrVq4ddff4W2trbSQxLR1+PggO1qaWco2ONERIpTuHAaOnQoJk+eDAcHBzx8+BC9e/dG165dsXPnTmRlZcHf318FMYmIiOi/eGpb/RQunO7du4d69eoBAHbu3ImWLVti27ZtOHfuHHr37s3CqQTjHxgREVHRKDwdgSAIyMvLA/B+OoIPczdZW1vjxYsXyk1HREREVIIo3OPk7OyM2bNnw8PDA6dPn0ZAQACA9xNjmpmZKT0gERERFYxjAtVP4cLJ398fffv2RUhICKZOnYqqVasCAHbt2oVmzZopPWB8fDwmTZqEw4cPIysrC1WrVkVQUBCcnZ0BvO8B8/Pzw7p165CamormzZsjICAA1apVU3qWLx3/wIiIiIpG4cLJ0dERN27cyLd+0aJF0NTUVEqoD1JSUtC8eXO4ubnh8OHDqFixIu7fv4/y5cuL+yxcuBDLly/Hxo0bYWdnh2nTpsHT0xO3b9+Grq6uUvMQERHR103hwqkwqihSFixYAGtrawQFBYnr7OzsxJ8FQYC/vz9++eUXdOnSBQCwadMmmJmZISQkBL1791Z6JiIiIvp6yVU4GRsb4969e6hQoQLKly8PiURS6L7JyclKCxcaGgpPT0/07NkTp0+fhpWVFYYPH47BgwcDeD+uKikpCR4eHuJzDA0N0bhxY0RERLBwIqIvHq+GJSpZ5Cqcli5dCgMDAwBQ63QDDx8+REBAAMaPH48pU6bg77//xujRo6GtrQ1vb28kJSUBQL5B6WZmZuK2gmRnZyM7O1t8zJsTExERkTzkKpy8vb0L/FnV8vLy4OzsjLlz5wIAnJyccPPmTaxZs6ZIOebNm4cZM2YoKyYRERF9JRSex0mdLCwsUKtWLZl19vb2iIuLAwCYm5sDAJ4+fSqzz9OnT8VtBfH19UVaWpq4PH78WMnJiYiIqDSSu3DS1NSUa1Gm5s2bIzo6WmbdvXv3YGtrC+D9QHFzc3OEhYWJ29PT03Hx4kU0bdq00OPq6OhAKpXKLERERESfIvdVdYIgwNbWFt7e3nByclJlJtG4cePQrFkzzJ07F7169cKlS5fw+++/4/fffwcASCQSjB07FrNnz0a1atXE6QgsLS3h5eWlloxERET09ZC7cLp06RICAwOxbNky2NnZYeDAgejbt6/MnErK1rBhQ+zduxe+vr6YOXMm7OzsxAk4P5g4cSIyMzMxZMgQpKamokWLFjhy5AjncCIiIiKlk/tUnbOzMwICApCYmIjx48dj7969qFSpEnr37o3jx4+rLGDHjh1x48YNvHnzBnfu3BGnIvhAIpFg5syZSEpKwps3b3DixAlUr15dZXmIiIjo66Xw4HBdXV3069cPYWFhuHnzJp49e4a2bdsqdf4mIiIiopLos2YOf/LkCYKDgxEcHIysrCxMmDCBA6yJiIio1JO7cMrJycHevXsRGBiIs2fPol27dvD390e7du2UfjUdERERUUkkd+FkYWEBAwMDeHt7Y/Xq1TA1NQUAZGZmyuzHniciIiIqreQunFJSUpCSkoJZs2Zh9uzZ+bYLggCJRIJ3794pNSApz7Oro9XTkJd6miEiIlI3uQunU6dOqTIHERERUYknd+Hk4uKiyhxEREREJV6JvlcdERERUUnCwomIiIhITiyciIiIiOTEwomIiIhITp9dOP3zzz84evQoXr9+DeD9dAREREREpZnChdPLly/h4eGB6tWro3379khMTAQADBo0CP/73/+UHpCIiIiopFC4cBo3bhy0tLQQFxeHcuXKieu/++47HDlyRKnhiIiIiEoShW/ye+zYMRw9ehSVKlWSWV+tWjU8evRIacGIiIjoy3BwwHa1tDMU/dTSzscoXDhlZmbK9DR9kJycDB0dHaWEIiIiKsjaLlvU0s7QfcX/DzSVTAqfqvv222+xadMm8bFEIkFeXh4WLlwINzc3pYYjIiIiKkkU7nFauHAhWrVqhcuXLyMnJwcTJ07ErVu3kJycjHPnzqkiIxHRV+trOgVC9CVQuHCqU6cO7t27h5UrV8LAwAAZGRno1q0bRowYAQsLC1VkJCIiAsBCkoqfwoUTABgaGmLq1KnKzkJERERUon1W4ZSamopLly7h2bNnyMvLk9n2ww8/KCUYERERUUmjcOG0f/9+9O3bFxkZGZBKpZBIJOI2iUTCwomIiIhKLYWvqvvf//6HgQMHIiMjA6mpqUhJSRGX5ORkVWQkIiIiKhEULpzi4+MxevToAudyIiIiIirNFC6cPD09cfnyZVVkISIiIirR5BrjFBoaKv7coUMHTJgwAbdv34aDgwPKlCkjs2/nzp2Vm5CIiIiohJCrcPLy8sq3bubMmfnWSSQSvHv3rsihiIiI6NOeXR2tnoa81NPMl0Cuwum/Uw4QERERfY0UHuNERERE9LVSuHAaPXo0li9fnm/9ypUrMXbsWGVkIiIiIiqRFC6cdu/ejebNm+db36xZM+zatUspoYiIiIhKIoVnDn/58iUMDQ3zrZdKpXjx4oVSQlHptrbLFrW0M3Qfb9JJRETKpXCPU9WqVXHkyJF86w8fPowqVaooJRQRERFRSaRwj9P48eMxcuRIPH/+HO7u7gCAsLAwLF68GP7+/srOR6XQwQHb1dLOULDHiYiIlEvhHqeBAwdi8eLFCAwMhJubG9zc3LBlyxYEBARg8ODBqsgomj9/PiQSicwg9Ddv3mDEiBEwMTGBvr4+unfvjqdPn6o0BxEREX2dPms6gp9++glPnjzB06dPkZ6ejocPH+KHH35QdjYZf//9N9auXQtHR0eZ9ePGjcP+/fuxc+dOnD59GgkJCejWrZtKsxAREdHXqUjzOFWsWBH6+vrKylKojIwM9O3bF+vWrUP58uXF9WlpaQgMDMSSJUvg7u6OBg0aICgoCOfPn8eFCxdUnouIiIi+Lp9VOO3atQu9evVCkyZNUL9+fZlFFUaMGIEOHTrAw8NDZn1kZCTevn0rs75mzZqwsbFBRESESrIQERHR10vhwmn58uUYMGAAzMzMcPXqVTRq1AgmJiZ4+PAh2rVrp/SAf/zxB65cuYJ58+bl25aUlARtbW0YGRnJrDczM0NSUlKhx8zOzkZ6errMQkRERPQpChdOq1evxu+//44VK1ZAW1sbEydOxPHjxzF69GikpaUpNdzjx48xZswYbN26Fbq6uko77rx582BoaCgu1tbWSjs2ERERlV4KF05xcXFo1qwZAKBs2bJ49eoVAKB///7Yvl25l5lHRkbi2bNnqF+/PrS0tKClpYXTp09j+fLl0NLSgpmZGXJycpCamirzvKdPn8Lc3LzQ4/r6+iItLU1cHj9+rNTcREREVDopXDiZm5sjOTkZAGBjYyMOwo6JiYEgCEoN16pVK9y4cQNRUVHi4uzsjL59+4o/lylTBmFhYeJzoqOjERcXh6ZNmxZ6XB0dHUilUpmFiIiI6FMUngDT3d0doaGhcHJywoABAzBu3Djs2rULly9fVvo0AAYGBqhTp47MOj09PZiYmIjrBw0ahPHjx8PY2BhSqRSjRo1C06ZN0aRJE6VmISIiIlK4cPr999+Rl5cHAOLEk+fPn0fnzp0xdOhQpQf8lKVLl0JDQwPdu3dHdnY2PD09sXr1arXnICIiotJP4cJJQ0MDGhr/d4avd+/e6N27t1JDfUx4eLjMY11dXaxatQqrVq1SWwYiIiL6Osk9xun+/fvo06dPgZfup6Wl4fvvv8fDhw+VGo6IiIioJJG7x2nRokWwtrYucCD1h0v6Fy1ahICAAKUGpNLn2dXR6mnISz3NEBHR10PuHqfTp0+jZ8+ehW7v1asXTp48qZRQRERERCWR3D1OcXFxMDU1LXR7hQoVOB8SERHRV+hrOpMgd4+ToaEhHjx4UOj2f/75h/MhERERUakmd49Ty5YtsWLFCri7uxe4ffny5fj222+VFoyIvk5f0/9ciejLI3ePk6+vLw4fPowePXrg0qVL4u1KLl68iO7du+Po0aPw9fVVZVYiIiKiYiV3j5OTkxN27dqFgQMHYu/evTLbTExM8Oeff6J+/fpKD0hERERUUig0AWbHjh3x6NEjHDlyBP/88w8EQUD16tXRpk0blCtXTlUZiYiIiEoEhWcOL1u2LLp27aqKLEREREQlmsKFExGVTmu7bFFLO0P39VNLO0REqsDCiYgAAAcHbFdLO0PBwomIvlxyX1VHRERE9LVj4UREREQkJxZORERERHKSe4yTpqamXPu9e/fus8MQERERlWRyF06CIMDW1hbe3t5wcnJSZSYiIiKiEknuwunSpUsIDAzEsmXLYGdnh4EDB6Jv374oX768KvMRERERlRhyF07Ozs5wdnbG0qVLsWvXLgQFBWHSpEno1KkTBg0ahNatW6syJxGRWjXxO6qWdi7M8FRLO0SkHAoPDtfV1UW/fv0QFhaGmzdv4tmzZ2jbti2Sk5NVkY+IiIioxPisCTCfPHmC4OBgBAcHIysrCxMmTIBUKlV2NiIiIqISRe7CKScnB3v37kVgYCDOnj2Ldu3awd/fH+3atZP7ijsiIiKiL5nchZOFhQUMDAzg7e2N1atXw9TUFACQmZkpsx97noiIiKi0krtwSklJQUpKCmbNmoXZs2fn2y4IAiQSCedxIiIiolJL7sLp1KlTqsxBREREVOLJXTi5uLh8ch9eWUdERESlmVLuVXfs2DH06tULVlZWyjgcERERUYn02YXTo0eP4Ofnh8qVK6Nnz57Q0NDApk2blJmNiIiIqERRaB6nnJwc7NmzB+vXr8e5c+fg4eGBJ0+e4OrVq3BwcFBVRiIiIqISQe4ep1GjRsHS0hLLli1D165d8eTJE+zfvx8SiYTzOBEREdFXQe4ep4CAAEyaNAmTJ0+GgYGBKjMRERERlUhy9zht3rwZly5dgoWFBb777jscOHCAczYRERHRV0XuwqlPnz44fvw4bty4gZo1a2LEiBEwNzdHXl4ebt++rcqMRERERCWCwlfV2dnZYcaMGYiNjcWWLVvQvXt39OvXD5UqVcLo0aNVkZGIiIioRPjs6QgkEgk8PT3x559/IiEhAT///DPOnDmjzGyYN28eGjZsCAMDA5iamsLLywvR0dEy+7x58wYjRoyAiYkJ9PX10b17dzx9+lSpOYiIiIgAJU2AaWxsjG+//RaVKlVSxuFEp0+fxogRI3DhwgUcP34cb9++RZs2bWRuLDxu3Djs378fO3fuxOnTp5GQkIBu3bopNQcRERERoOA8TkePHsXx48ehra2NH3/8EVWqVMHdu3cxefJk7N+/H56enkoNd+TIEZnHwcHBMDU1RWRkJFq2bIm0tDQEBgZi27ZtcHd3BwAEBQXB3t4eFy5cQJMmTZSah4iIiL5ucvc4BQYGol27dggODsaCBQvQpEkTbNmyBU2bNoW5uTlu3ryJQ4cOqTIr0tLSALzv4QKAyMhIvH37Fh4eHuI+NWvWhI2NDSIiIlSahYiIiL4+cvc4LVu2DAsWLMCECROwe/du9OzZE6tXr8aNGzeUfoquIHl5eRg7diyaN2+OOnXqAACSkpKgra0NIyMjmX3NzMyQlJRU6LGys7ORnZ0tPk5PT1dJZiKionp2VU0X3XippxmiL53cPU4PHjxAz549AQDdunWDlpYWFi1apJaiCQBGjBiBmzdv4o8//ijysebNmwdDQ0Nxsba2VkJCIiIiKu3kLpxev36NcuXKAXh/RZ2Ojg4sLCxUFuzfRo4ciQMHDuDUqVMyhZq5uTlycnKQmpoqs//Tp09hbm5e6PF8fX2RlpYmLo8fP1ZVdCIiIipFFBocvn79eujr6wMAcnNzERwcjAoVKsjso8y5nARBwKhRo7B3716Eh4fDzs5OZnuDBg1QpkwZhIWFoXv37gCA6OhoxMXFoWnTpoUeV0dHBzo6OkrLSURERF8HuQsnGxsbrFu3Tnxsbm6OzZs3y+wjkUiUWjiNGDEC27Ztw759+2BgYCCOWzI0NETZsmVhaGiIQYMGYfz48TA2NoZUKsWoUaPQtGlTXlFHRERESid34RQbG6vCGAULCAgAALi6usqsDwoKgo+PDwBg6dKl0NDQQPfu3ZGdnQ1PT0+sXr1azUmJiIjoa6DQqTp1EwThk/vo6upi1apVWLVqlRoSERER0ddMocIpLy8PwcHB2LNnD2JjYyGRSGBnZ4cePXqgf//+kEgkqspJREREVOzkLpwEQUDnzp1x6NAh1K1bFw4ODhAEAXfu3IGPjw/27NmDkJAQFUYlKp06h3RQSzuhXgfV0g4RUWkmd+EUHByMM2fOICwsDG5ubjLbTp48CS8vL2zatAk//PCD0kMSERERlQRyF07bt2/HlClT8hVNAODu7o7Jkydj69atLJzoi8GeHiIiUpTcE2Bev34dbdu2LXR7u3btcO3aNaWEIiIiIiqJ5O5xSk5OhpmZWaHbzczMkJKSopRQROrAe4AREZGi5O5xevfuHbS0Cq+zNDU1kZubq5RQRERERCWRQlfV+fj4FHqrkuzsbKWFIiIiIiqJ5C6cvL29P7kPB4YTKY6nDImIvhxyF05BQUGqzEFERERU4sk9xomIiIjoa1ei71VHROrDU4ZERJ/GHiciIiIiObFwIiIiIpITCyciIiIiObFwIiIiIpITCyciIiIiObFwIiIiIpITCyciIiIiObFwIiIiIpITCyciIiIiOXHmcDVY22WLWtoZuq+fWtohIiounOGeihsLJzU4OGC7WtoZChZOREREqsRTdURERERyYuFEREREJCcWTkRERERyYuFEREREJCcWTkRERERyYuFEREREJCcWTkRERERyYuFEREREJCdOgKkGnOmWiIiodGCPExEREZGcWDgRERERyanUFE6rVq1C5cqVoauri8aNG+PSpUvFHYmIiIhKmVJROO3YsQPjx4+Hn58frly5grp168LT0xPPnj0r7mhERERUipSKwmnJkiUYPHgwBgwYgFq1amHNmjUoV64cNmzYUNzRiIiIqBT54q+qy8nJQWRkJHx9fcV1Ghoa8PDwQERERIHPyc7ORnZ2tvg4LS0NAJCenq6SjLnZmSo57n99Kj9zMEdJypGZmSmz7t27d8WSozDMwRzM8eXlKOpxBUH49M7CFy4+Pl4AIJw/f15m/YQJE4RGjRoV+Bw/Pz8BABcuXLhw4cKFi7g8fvz4k3XHF9/j9Dl8fX0xfvx48XFeXh6Sk5NhYmICiURSjMneS09Ph7W1NR4/fgypVMoczMEczMEczMEcKiQIAl69egVLS8tP7vvFF04VKlSApqYmnj59KrP+6dOnMDc3L/A5Ojo60NHRkVlnZGSkqoifTSqVlogPFHMwB3MwB3MwR2nOAQCGhoZy7ffFDw7X1tZGgwYNEBYWJq7Ly8tDWFgYmjZtWozJiIiIqLT54nucAGD8+PHw9vaGs7MzGjVqBH9/f2RmZmLAgAHFHY2IiIhKkVJROH333Xd4/vw5pk+fjqSkJNSrVw9HjhyBmZlZcUf7LDo6OvDz88t3OpE5mIM5mIM5mIM5ipdEEOS59o6IiIiIvvgxTkRERETqwsKJiIiISE4snIiIiIjkxMKpGLm6umLs2LEltv2srCx0794dUqkUEokEqampastGVJDi/pspqQRBwJAhQ2BsbAyJRIKoqKhiyVESfj8lIQOVbiycqFAbN27E2bNncf78eSQmJso9ORiVTl/CP0iVK1eGv79/ccdQuyNHjiA4OBgHDhxAYmIinJycEBISovYce/bswaxZs9TeLpE6lYrpCEg1Hjx4AHt7e9SpU6e4o5R4OTk50NbWLu4Y9JV68OABLCws0KxZs2LNYWxsXKztE6kDe5yKWW5uLkaOHAlDQ0NUqFAB06ZNE+/OnJ2djUmTJsHa2ho6OjqoWrUqAgMD1dK+q6srFi9ejDNnzkAikcDV1RUAsHr1alSrVg26urowMzNDjx49lJonLy8PCxcuRNWqVaGjowMbGxvMmTMHAPDkyRP06dMHxsbG0NPTg7OzMy5evKjU9j9wdXXFyJEjC/3dVK5cGbNmzcIPP/wAqVSKIUOGfFY7u3btgoODA8qWLQsTExN4eHggMzMT4eHhaNSoEfT09GBkZITmzZvj0aNHAIBr167Bzc0NBgYGkEqlaNCgAS5fvgwACA4OhpGREUJCQsTfk6enJx4/flyk98PHxwenT5/GsmXLIJFIIJFIEBsbi1u3bqFjx46QSqUwMDDAt99+iwcPHhSprU/52Gf20aNHGDdunJhRFT72GT1//jzq1asHXV1dODs7IyQkROWnznx8fDBq1CjExcVBIpGgcuXKAICuXbvKPFaHf/dKqvq7Qh4SiSRfz5uRkRGCg4OV2o6rqytGjRqFsWPHonz58jAzM8O6devEiZgNDAxQtWpVHD58WHxOaGio+P64ublh48aNSh8SUdj3i4+PD7y8vDBjxgxUrFgRUqkUw4YNQ05OjtLaBgruAa5Xrx5+/fVXAMCSJUvg4OAAPT09WFtbY/jw4cjIyFBqBlVgj1Mx27hxIwYNGoRLly7h8uXLGDJkCGxsbDB48GD88MMPiIiIwPLly1G3bl3ExMTgxYsXaml/z549mDx5Mm7evIk9e/ZAW1sbly9fxujRo7F582Y0a9YMycnJOHv2rFLz+Pr6Yt26dVi6dClatGiBxMRE3L17FxkZGXBxcYGVlRVCQ0Nhbm6OK1euIC8vT6nt/9vHfjcA8Ntvv2H69Onw8/P7rOMnJiaiT58+WLhwIbp27YpXr17h7NmzEAQBXl5eGDx4MLZv346cnBxcunRJLAT69u0LJycnBAQEQFNTE1FRUShTpox43KysLMyZMwebNm2CtrY2hg8fjt69e+PcuXOf/V4sW7YM9+7dQ506dTBz5kwAwLt379CyZUu4urri5MmTkEqlOHfuHHJzcz+7HXl87DNbt25dDBkyRPwdqUJhn9H09HR06tQJ7du3x7Zt2/Do0SO1nNpctmwZvvnmG/z+++/4+++/oampCVNTUwQFBaFt27bQ1NRUeYb/Usd3RUmzceNGTJw4EZcuXcKOHTvw008/Ye/evejatSumTJmCpUuXon///oiLi8PTp0/Ro0cPjBkzBj/++COuXr2Kn3/+Wal5Pvb9AgBhYWHQ1dVFeHg4YmNjMWDAAJiYmIj/CVAHDQ0NLF++HHZ2dnj48CGGDx+OiRMnYvXq1WrL8FkEKjYuLi6Cvb29kJeXJ66bNGmSYG9vL0RHRwsAhOPHjxdL+4IgCGPGjBFcXFzEbbt37xakUqmQnp6ukjzp6emCjo6OsG7dunzb1q5dKxgYGAgvX75USdv/9an3xtbWVvDy8ipSG5GRkQIAITY2Vmb9y5cvBQBCeHh4gc8zMDAQgoODC9wWFBQkABAuXLggrrtz544AQLh48WKR8rq4uAhjxowRH/v6+gp2dnZCTk5OkY6raIZP/V6WLl2qsvY/9hkNCAgQTExMhNevX4vr1q1bJwAQrl69qrJMgiAIS5cuFWxtbcXHAIS9e/eqtM2CfPiMqPq7Qp4MglDw+2BoaCgEBQUpvc0WLVqIj3NzcwU9PT2hf//+4rrExEQBgBARESFMmjRJqFOnjswxpk6dKgAQUlJSlJKpsO8XQRAEb29vwdjYWMjMzBTXBQQECPr6+sK7d++U0r4gFPz3WLduXcHPz6/A/Xfu3CmYmJgorX1V4am6YtakSROZUwpNmzbF/fv3cfXqVWhqasLFxaVY2n/37l2+fVu3bg1bW1tUqVIF/fv3x9atW5GVlaW0LHfu3EF2djZatWqVb1tUVBScnJzUOobiU++Ns7NzkY5ft25dtGrVCg4ODujZsyfWrVuHlJQUGBsbw8fHB56enujUqROWLVuGxMRE8Xnjx4/Hjz/+CA8PD8yfPz/fqTEtLS00bNhQfFyzZk0YGRnhzp07Rcr7X1FRUfj2229lervUQZHPrLJ97DMaHR0NR0dH6OrqiusaNWqk8kwlkaq/K0oiR0dH8WdNTU2YmJjAwcFBXPfhFmDPnj1DdHS0zN8ooPzPSmHfL//eXq5cOfFx06ZNkZGRUeTT+oo4ceIEWrVqBSsrKxgYGKB///54+fJlif+ssHAqof795VtSGBgY4MqVK9i+fTssLCwwffp01K1bV2nn5MuWLftZ24qLnp5ekZ6vqamJ48eP4/Dhw6hVqxZWrFiBGjVqICYmBkFBQYiIiECzZs2wY8cOVK9eHRcuXAAA/Prrr7h16xY6dOiAkydPolatWti7d68yXpJCSuLvRNW+xtf8OVT9XSEviUQinpr64O3btypp67//gZBIJDLrPhT7qhxe8G8f+35RFw0NjULf/9jYWHTs2BGOjo7YvXs3IiMjsWrVKgBQ+lgrZWPhVMz+O7j5woULqFatGurWrYu8vDycPn26WNovbFyElpYWPDw8sHDhQly/fh2xsbE4efKkUrJUq1YNZcuWRVhYWL5tjo6OiIqKQnJyslLakoei783nkEgkaN68OWbMmIGrV69CW1tbLIKcnJzg6+uL8+fPo06dOti2bZv4vOrVq2PcuHE4duwYunXrhqCgIHFbbm6uOFgceN8TkpqaCnt7+yJl1dbWlunVcXR0xNmzZ1X2D1FhPvZ7+W9GZfvYZ7RGjRq4ceMGsrOzxXV///23yrJ8TJkyZdTSA/cxqvyukFfFihVlemvv379fInozatSoIfM3Cqjms/Kx75dr167h9evX4r4XLlyAvr4+rK2tldb+f9//9PR0sXCLjIxEXl4eFi9ejCZNmqB69epISEhQWtuqxMKpmMXFxWH8+PGIjo7G9u3bsWLFCowZMwaVK1eGt7c3Bg4ciJCQEMTExCA8PBx//vmnWtovyIEDB7B8+XJERUXh0aNH2LRpE/Ly8lCjRg2lZNHV1cWkSZMwceJEbNq0CQ8ePMCFCxcQGBiIPn36wNzcHF5eXjh37hwePnyI3bt3IyIiQiltF0SR9+ZzXLx4EXPnzsXly5cRFxeHPXv24Pnz5yhbtix8fX0RERGBR48e4dixY7h//z7s7e3x+vVrjBw5EuHh4Xj06BHOnTuHv//+W6YoKlOmDEaNGoWLFy8iMjISPj4+aNKkSZFPBVSuXBkXL15EbGwsXrx4gZEjRyI9PR29e/fG5cuXcf/+fWzevBnR0dFFfWs+6mO/l8qVK+PMmTOIj49X+oUUwMc/o99//z3y8vIwZMgQ3LlzB0ePHsVvv/0GACq7wq8wlStXRlhYGJKSkmROz6iLqr8r5OXu7o6VK1fi6tWruHz5MoYNG6b2U8sFGTp0KO7evYtJkybh3r17+PPPP8Ur/ZT1WSns++XDd0VOTg4GDRqE27dv49ChQ/Dz88PIkSOhoaG8ssDd3R2bN2/G2bNncePGDXh7e4v/8axatSrevn2LFStW4OHDh9i8eTPWrFmjtLZVqrgHWX3NXFxchOHDhwvDhg0TpFKpUL58eWHKlCniwNfXr18L48aNEywsLARtbW2hatWqwoYNG9TW/n8Hh589e1ZwcXERypcvL5QtW1ZwdHQUduzYobQ8giAI7969E2bPni3Y2toKZcqUEWxsbIS5c+cKgiAIsbGxQvfu3QWpVCqUK1dOcHZ2LvKA58J86r1RxiDk27dvC56enkLFihUFHR0doXr16sKKFSuEpKQkwcvLS/y929raCtOnTxfevXsnZGdnC7179xasra0FbW1twdLSUhg5cqQ4IDkoKEgwNDQUdu/eLVSpUkXQ0dERPDw8hEePHhX1LRGio6OFJk2aCGXLlhUACDExMcK1a9eENm3aCOXKlRMMDAyEb7/9Vnjw4EGR2yrMp34vERERgqOjo6CjoyOo6uvtY5/Rc+fOCY6OjoK2trbQoEEDYdu2bQIA4e7duyrJ8sF/B4eHhoYKVatWFbS0tGTWq9qHgdnq+K74VAZBEIT4+HihTZs2gp6enlCtWjXh0KFDKhsc/u8LJwSh4O8I/Guw+r59+4SqVasKOjo6gqurqxAQECAAkLm4oCgK+34RhPeDw7t06SJMnz5dMDExEfT19YXBgwcLb968UUrbH6SlpQnfffedIJVKBWtrayE4OFhmcPiSJUsECwsLoWzZsoKnp6ewadMmpQ6QVxWJIPznBCQRwdXVFfXq1fviZqEODg7G2LFjeXucEmLr1q0YMGAA0tLSOD6KPmrOnDlYs2aNWgZn+/j4IDU1tVhmly8NOI8TEZGSbNq0CVWqVIGVlRWuXbuGSZMmoVevXiyaKJ/Vq1ejYcOGMDExwblz57Bo0SKMHDmyuGORHFg4EREpSVJSEqZPn46kpCRYWFigZ8+eap1QkL4c9+/fx+zZs5GcnAwbGxv873//g6+vb3HHIjnwVB0RERGRnHhVHREREZGcWDgRERERyYmFExEREZGcWDgRERERyYmFExEREZGcWDgRERERyYmFExEREZGcWDhRqZCUlIQxY8agatWq0NXVhZmZGZo3b46AgIB8d0OfN28eNDU1sWjRonzHCQ4OhkQigUQigYaGBipVqoQBAwbg2bNn4j4ftkskEmhpacHGxgbjx49Hdna2uM/z58/x008/wcbGBjo6OjA3N4enpyfOnTtX6GuIjY3FoEGDYGdnh7Jly+Kbb76Bn58fcnJyZPb5d/sflgsXLhTl7SP6qvj4+EAikWD+/Pky60NCQsSb7IaHh8v8jZmZmaF79+54+PChuH/lypXF7ZqamrC0tMSgQYM+eWPlf3/PaGpqonz58mjcuDFmzpyJtLQ05b9gUioWTvTFe/jwIZycnHDs2DHMnTsXV69eRUREBCZOnIgDBw7gxIkTMvtv2LABEydOxIYNGwo8nlQqRWJiIp48eYJ169bh8OHD6N+/v8w+QUFBSExMRExMDFavXo3Nmzdj9uzZ4vbu3bvj6tWr2LhxI+7du4fQ0FC4urri5cuXhb6Ou3fvIi8vD2vXrsWtW7ewdOlSrFmzBlOmTMm374kTJ5CYmCguDRo0UOQtI/rq6erqYsGCBZ8scqKjo5GQkICdO3fi1q1b6NSpE969eydunzlzJhITExEXF4etW7fizJkzGD169Cfb//f3zPnz5zFkyBBs2rQJ9erVQ0JCQpFfH6lQ8d5jmKjoPD09hUqVKgkZGRkFbs/LyxN/Dg8PF6ysrIScnBzB0tJSOHfunMy+QUFBgqGhocy6OXPmCBoaGkJWVpYgCLJ3OP9g0KBBQvv27QVBEISUlBQBgBAeHl7EVyYICxcuFOzs7MTHMTExAgDh6tWrRT420dfK29tb6Nixo1CzZk1hwoQJ4vq9e/cKH/5ZPHXqlABASElJEbdv3bpVACDcvXtXEARBsLW1FZYuXSpz7FmzZgm1atX6aPsFfc8IgiA8ffpUqFChgtC3b9/Pe2GkFuxxoi/ay5cvcezYMYwYMQJ6enoF7vOh6x0AAgMD0adPH5QpUwZ9+vRBYGDgJ9soW7Ys8vLykJubW+D2e/fu4eTJk2jcuDEAQF9fH/r6+ggJCZE5ffc50tLSYGxsnG99586dYWpqihYtWiA0NLRIbRB9jTQ1NTF37lysWLECT548kes5H27W/O/T5/8WHx+P/fv3i98FijI1NUXfvn0RGhoq06tFJQsLJ/qi/fPPPxAEATVq1JBZX6FCBbGAmTRpEgAgPT0du3btQr9+/QAA/fr1w59//omMjIxCj3///n2sWbMGzs7OMDAwENf36dMH+vr60NXVRY0aNVC7dm3xBp1aWloIDg7Gxo0bYWRkhObNm2PKlCm4fv26wq9txYoVGDp0qLhOX18fixcvxs6dO3Hw4EG0aNECXl5eLJ6IPkPXrl1Rr149+Pn5fXLfxMRE/Pbbb7CyspL5vpk0aRL09fVRtmxZVKpUCRKJBEuWLPnsTDVr1sSrV68+elqfihcLJyqVLl26hKioKNSuXVvs9dm+fTu++eYb1K1bFwBQr1492NraYseOHTLPTUtLg76+PsqVK4caNWrAzMwMW7duldln6dKliIqKwrVr13DgwAHcu3dPZhxU9+7dkZCQgNDQULRt2xbh4eGoX78+goODAQDDhg0TCzt9ff18+ePj49G2bVv07NkTgwcPFtdXqFAB48ePR+PGjdGwYUPMnz8f/fr1K3CgOxF92oIFC7Bx40bcuXOnwO2VKlWCnp4eLC0tkZmZid27d0NbW1vcPmHCBERFReH69esICwsDAHTo0EHsMfr33/mwYcM+mUcQBACyPeVUsmgVdwCioqhatSokEgmio6Nl1lepUgXA/3WtA+9P0926dQtaWv/3sc/Ly8OGDRswaNAgcZ2BgQGuXLkCDQ0NWFhYyBzjA3Nzc1StWhUAUKNGDbx69Qp9+vTB7NmzxfW6urpo3bo1WrdujWnTpuHHH3+En58ffHx8MHPmTPz8888FvqaEhAS4ubmhWbNm+P333z/5HjRu3BjHjx//5H5ElF/Lli3h6ekJX19f+Pj45Nt+9uxZSKVSmJqayvQ6f1ChQgXxb75atWrw9/dH06ZNcerUKXh4eCAqKkrcVyqVfjLPnTt3IJVKYWJi8tmviVSLhRN90UxMTNC6dWusXLkSo0aNKnSc040bN3D58mWEh4fLjBlKTk6Gq6sr7t69i5o1awIANDQ0xC9CeWlqagIAXr9+Xeg+tWrVQkhICID3YxlMTU3z7RMfHw83Nzc0aNAAQUFB0ND4dKdwVFQULCwsFMpLRP9n/vz5qFevXr5T/gBgZ2cHIyMjuY/13+8CRb5Lnj17hm3btsHLy0uuv30qHiyc6Iu3evVqNG/eHM7Ozvj111/h6OgIDQ0N/P3337h79y4aNGiAwMBANGrUCC1btsz3/IYNGyIwMFCh012pqalISkpCXl4e7t+/j5kzZ6J69eqwt7fHy5cv0bNnTwwcOBCOjo4wMDDA5cuXsXDhQnTp0qXQY8bHx8PV1RW2trb47bff8Pz5c3Gbubk5AGDjxo3Q1taGk5MTAGDPnj3YsGED1q9fL3d2IpLl4OCAvn37Yvny5Qo/99WrV0hKSoIgCHj8+DEmTpyIihUrolmzZh99niAI4vNSU1MRERGBuXPnwtDQMN/8UlTCFOs1fURKkpCQIIwcOVKws7MTypQpI+jr6wuNGjUSFi1aJKSlpQkmJibCwoULC3zuggULBFNTUyEnJ6fQy4T/DYC4SCQSwcLCQvjuu++EBw8eCIIgCG/evBEmT54s1K9fXzA0NBTKlSsn1KhRQ/jll1/EKQ0KEhQUJHPsfy8fBAcHC/b29kK5cuUEqVQqNGrUSNi5c6fibxjRV8zb21vo0qWLzLqYmBhBW1v7o9MR/Jetra3M32nFihWF9u3bf3K6kH//rUskEsHQ0FBo1KiRMHPmTCEtLa2Ir45UTSII/38kGhERERF9FE+iEhEREcmJhRMRERGRnFg4EREREcmJhRMRERGRnFg4EREREcmJhRMRERGRnFg4EREREcmJhRMRERGRnFg4EREREcmJhRMRERGRnFg4EREREcmJhRMRERGRnP4f5wmD2ZqLKRoAAAAASUVORK5CYII=", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -1098,31 +1021,27 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 85, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAE3CAYAAABcnM5hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABBCElEQVR4nO3dfVzN9/8/8MepdN0pRVdUQi5GKVdDqKwt16LZGJb4MJtcbi6yYRgm5vpqsxSGD9vSzMzFJ8JcR4whuUhEuUilUOq8fn/4OV9nFe/DOZ2jHvfb7dxuzvv1Pu/X45xOp6fX+/V+HZkQQoCIiIiIXspA1wGIiIiI3hQsnIiIiIgkYuFEREREJBELJyIiIiKJWDgRERERScTCiYiIiEgiFk5EREREErFwIiIiIpLISNcB9IFCocDNmzdhZWUFmUym6zhERERUjoQQePDgAZydnWFg8OIxJRZOAG7evAkXFxddxyAiIiIdun79OmrWrPnCfVg4AbCysgLw9AWTy+U6TkNUOeTn58PZ2RnA0/+8WFhY6DgREVVWubm5cHFxUdYDL8LCCVCenpPL5SyciMqJoaGh8t9yuZyFExHpnJTpOpwcTkRERCQRCyciIiIiiXiqTgKFQoHCwkJdxyAqoUqVKiqnvIiISLtYOL1EYWEhrl69CoVCoesoRKWysbGBo6Mjl9IgIioHLJxeQAiBW7duwdDQEC4uLi9d24GoPAkh8PDhQ9y+fRsA4OTkpONEREQVHwunFygqKsLDhw/h7OwMc3NzXcchKsHMzAwAcPv2bdjb2/O0HRGRlnEI5QWKi4sBAMbGxjpOQlS2Z0X9kydPdJyEiKjiY+EkAeeOkD7j+5OIqPywcCK1jB49GgMHDtR1jDdao0aNsG3bNl3HICKiV8DCqQLw9/eHiYkJLC0tYWtrCz8/PyQmJuo6VoU0b948tGrVSmVb//79YWpqisePHyu3LV26FJ6enqUe459//kHXrl0BADExMfD29tZaXiIi0ixODn8Frabu1HofR6YFqbX/nDlzMHr0aBQWFuKrr75Cr169kJaWpqV05at7XBet97E1+A9J+wUEBCAiIgJ5eXmwtLQEACQkJKB27do4cuQI/P39AQB79+5Fhw4dVB5bVFQEQ0NDnlojInqDccSpgjE2NkZoaCiuX7+OO3fuQAiBxYsXo0GDBrCxsYG/vz/Onz+v3H/+/Pnw8PCAlZUV6tSpg6VLl6ocb//+/fD09ISlpSV69eqFBw8elPdT0is+Pj6wtLTEgQMHAAApKSkwNTVF3759sXfvXgBPlwnYv38/AgICIJPJsHTpUjRu3BgWFhbIy8tDrVq1EBcXh6SkJAwbNgxnzpyBpaUlLC0tlcXuf//7X3h5ecHGxgYtWrTAoUOHdPaciYjo/7BwqmAePXqEqKgoVKtWDVWrVsWKFSsQFRWF33//HXfv3kWvXr3QrVs35Urobm5u2LNnD3Jzc/Hjjz9i3LhxOHjwIADg/v376N69O8LDw5GdnY2wsDD89NNPunx6OmdgYID27dsjISEBwNPRJn9/f/j5+Sm3nT17FllZWfDz8wMAbNiwAbt27UJubq7KF9n6+Phg5cqV8PT0RF5eHvLy8uDq6ort27fjiy++QExMDLKyshAREYFu3brh3r175f10iYjoX1g4VRARERGwsbGBhYUFNmzYgNjYWBgZGWHZsmWYPn06PDw8YGRkhJEjR+LRo0c4evQoACAkJAQuLi6QyWQICAhAUFCQsgDYtm0bnJ2d8cknn8DIyAjdunUrcfqpMgoICFCOLiUkJMDPzw9vv/02Tp8+jUePHiEhIQHe3t6oWrUqAGD8+PFwdnaGiYmJpEVUly1bhnHjxqFp06YwMDBAr1690KBBA2zfvl2rz4uIiF6OhVMFMXv2bGRnZ+P69euoUaMG/v77bwBAamoq+vfvDxsbG+Xt/v37uHHjBgBg/fr1aNq0KWxtbWFjY4Pt27fj7t27AICbN2/Czc1NpZ9/36+MAgICcPLkSeTm5mLfvn3Kyfne3t44dOgQEhISEBAQoNzf1dVVreOnpqZi0qRJKj+zU6dOIT09XdNPhYiI1KTTwmn//v3o1q0bnJ2dIZPJEBcXp9IuhMCUKVPg5OQEMzMzBAYGIiUlRWWfrKws9OvXD3K5HDY2Nhg8eDDy8vLK8Vnolxo1amDVqlWYMGECbt68CRcXF/z888/Izs5W3h4+fIi+ffsiLS0NoaGhiIyMxO3bt5GdnY3OnTtDCAEAcHZ2xrVr11SOX1EmnL+OZ3OPVq9eDWNjY7i4uAAA/Pz8sHfvXuX8pmdeNMpUWpuLiwu+++47lZ9Zfn4+Jk6cqPknQ0REatFp4ZSfn48mTZpg2bJlpbZHRkZi8eLFWLlyJY4ePQoLCwsEBQWpXPbdr18//PPPP9i9eze2bduG/fv3Y+jQoeX1FPRS06ZN4e/vj1mzZmH48OGYMmUKkpOTAQC5ubn47bff8ODBA+Tl5UEIAXt7exgYGGD79u3YtWuX8jhdunRBeno6Vq1ahaKiIvzxxx/Ys2ePrp6W3pDJZPDz88OcOXOUV9EBTwunqKgoZGdno3379pKO5eDggFu3buHRo0fKbcOHD8fcuXNx4sQJ5ffR/e9//1OOEhIRke7odDmCTp06oVOnTqW2CSGwcOFCfPXVV+jRowcAYO3atXBwcEBcXBz69OmD8+fPY8eOHTh+/DiaN28OAFiyZAk6d+6MefPmwdnZudyei7758ssvERAQgJSUFBgaGqJXr164fv06rKys0LZtW3To0AFvvfUWvvzyS3To0AHFxcXo3r07unfvrjyGra0tfvvtN4SHh2PMmDF499130a9fP+VX0VRmAQEBiI2NVU4AB4DWrVsjKysLzZo1g5WVlaTjdOjQAa1atUKNGjWgUCjw999/o1u3bnj8+DGGDBmCK1euwMTEBC1btizzPxhERFR+ZOLZeRkdk8lk2LJlC4KDgwEAV65cQZ06dZCUlKSyQKCfnx+8vb2xaNEirF69Gp9//jnu37+vbC8qKoKpqSl+/vln9OzZs9S+CgoKUFBQoLyfm5sLFxcX5OTkQC6XK7c/fvwYV69ehbu7O0xNTTX7hIk05E19n+bn5yvXwsrLy1O54pCIqDzl5ubC2tq6RB1QGr2dHJ6RkQHg6amM5zk4OCjbMjIyYG9vr9JuZGQEW1tb5T6lmT17NqytrZW3Z3NUiIiIiF5EbwsnbYqIiEBOTo7ydv36dV1HIiIiojeA3hZOjo6OAIDMzEyV7ZmZmco2R0dH3L59W6W9qKgIWVlZyn1KY2JiArlcrnIjIiIiehm9LZzc3d3h6OiI+Ph45bbc3FwcPXoUrVu3BvB0Mm52djZOnDih3GfPnj1QKBR4++23yz0zERERVWw6vaouLy8Ply5dUt6/evUqTp06BVtbW7i6umL06NH45ptv4OHhAXd3d0yePBnOzs7KCeQNGzZEx44dMWTIEKxcuRJPnjxBeHg4+vTpU6mvqCMiIiLt0GnhlJiYqLJQ4NixYwEAoaGhiImJwfjx45Gfn4+hQ4ciOzsbbdu2xY4dO1SuHFq/fj3Cw8PxzjvvwMDAACEhIVi8eLFGc+rJhYdEpVIoFLqOQERUaejNcgS6VNZliMXFxUhJSYG5uTmqV68OmUymw5REqoQQKCwsxJ07d1BcXAwPDw9J34WnL7gcAdHr6x7XpVz62Rr8R7n0oyvqLEeg0xEnfWdoaIiaNWvixo0bSE1N1XUcolKZm5vD1dX1jSqaiIjeVCycXsLS0hIeHh548uSJrqMQlWBoaAgjIyOOhlKlwREW0jUWThIYGhrC0NBQ1zGIiIhIxzi2T0RERCTRa404FRQUwMTERFNZiIh4KoaI9JpaI05//vknQkNDUbt2bVSpUgXm5uaQy+Xw8/PDzJkzcfPmTW3lJCIiItI5SYXTli1bUK9ePQwaNAhGRkaYMGECYmNjsXPnTvz444/w8/PD//73P9SuXRvDhg3DnTt3tJ2biIiIqNxJOlUXGRmJBQsWoFOnTqVe8vzBBx8AANLT07FkyRL89NNPGDNmjGaTEhEREemYpMLp8OHDkg5Wo0YNfPvtt68ViIiIiEhfvfZVdfn5+cjNzdVEFiIiIiK99sqF07lz59C8eXNYWVmhatWq8PT0RGJioiazEREREemVVy6cPvnkE4SHhyMvLw/37t1Dr169EBoaqslsRERERHpFcuHUo0cPpKenK+/fuXMH3bt3h7m5OWxsbNC5c2dkZmZqJSQRERGRPpC8AGb//v3RoUMHDB8+HCNGjEB4eDgaNWoEPz8/PHnyBHv27MHnn3+uzaxEREREOiV5xKl37944duwYzp07h1atWsHX1xe7du2Cr68v2rVrh127duGrr77SZlYiIiIinVLrK1esra2xcuVK/PXXXwgNDcW7776LGTNmwNzcXFv5iIiIiPSGWpPDs7KycOLECXh6euLEiROQy+Xw8fHB9u3btZWPiIiISG9ILpw2bNiAmjVrokuXLnBzc8Off/6JqVOn4rfffkNkZCQ++OADTg4nIiKiCk1y4RQREYHVq1cjIyMD8fHxmDx5MgCgQYMGSEhIwLvvvovWrVtrLSgRERGRrkkunPLy8lC/fn0AQJ06dfDw4UOV9iFDhuDIkSOaTUdERESkRyRPDg8NDUWXLl3g7++PxMREDBgwoMQ+9vb2Gg1HREREpE8kF07z589HQEAALly4gIEDB+K9997TZi4iIiIivaPWcgTdunVDt27dtJWFiIiISK9JmuP03//+V/IBr1+/joMHD75yICIiIiJ9JalwWrFiBRo2bIjIyEicP3++RHtOTg62b9+Ojz76CE2bNsW9e/c0HpSIiIhI1ySdqtu3bx+2bt2KJUuWICIiAhYWFnBwcICpqSnu37+PjIwMVKtWDQMHDsTZs2fh4OCg7dxERERE5U7yHKfu3buje/fuuHv3Lv766y9cu3YNjx49QrVq1eDj4wMfHx8YGKi1EDkRERHRG0WtyeEAUK1aNQQHB2shChEREZF+4xARERERkUQsnIiIiIgkYuFEREREJBELJyIiIiKJXrlwKiwsRHJyMoqKijSZh4iIiEhvqX1V3cOHDzFixAisWbMGAHDx4kXUrl0bI0aMQI0aNTBx4kSNh3zTdY/rUi79bA3+o1z6ISIiel5l+jun9ohTREQETp8+jYSEBJiamiq3BwYGYtOmTRoNV1xcjMmTJ8Pd3R1mZmaoU6cOZsyYASGEch8hBKZMmQInJyeYmZkhMDAQKSkpGs1BREREBLxC4RQXF4elS5eibdu2kMlkyu2NGjXC5cuXNRpuzpw5WLFiBZYuXYrz589jzpw5iIyMxJIlS5T7REZGYvHixVi5ciWOHj0KCwsLBAUF4fHjxxrNQkRERKT2qbo7d+7A3t6+xPb8/HyVQkoTDh06hB49eqBLl6dDgLVq1cLGjRtx7NgxAE9HmxYuXIivvvoKPXr0AACsXbsWDg4OiIuLQ58+fTSah4iIiCo3tUecmjdvjj/++L9zjM+KpR9//BGtW7fWXDIAbdq0QXx8PC5evAgAOH36NP766y906tQJAHD16lVkZGQgMDBQ+Rhra2u8/fbbOHz4cJnHLSgoQG5ursqNiIiI6GXUHnGaNWsWOnXqhHPnzqGoqAiLFi3CuXPncOjQIezbt0+j4SZOnIjc3Fw0aNAAhoaGKC4uxsyZM9GvXz8AQEZGBgCU+FJhBwcHZVtpZs+ejWnTpmk0KxEREVV8ao84tW3bFqdOnUJRURE8PT2xa9cu2Nvb4/Dhw2jWrJlGw23evBnr16/Hhg0bcPLkSaxZswbz5s1TXtH3qiIiIpCTk6O8Xb9+XUOJiYiIqCJTe8QJAOrUqYNVq1ZpOksJ48aNw8SJE5VzlTw9PXHt2jXMnj0boaGhcHR0BABkZmbCyclJ+bjMzEx4e3uXeVwTExOYmJhoNTsRERFVPGqPOBkaGuL27dsltt+7dw+GhoYaCfXMw4cPYWCgGtHQ0BAKhQIA4O7uDkdHR8THxyvbc3NzcfToUY3PtyIiIiJSe8Tp+TWUnldQUABjY+PXDvS8bt26YebMmXB1dUWjRo2QlJSE+fPnY9CgQQCeTkwfPXo0vvnmG3h4eMDd3R2TJ0+Gs7MzgoODNZqFKp7KtGAbERFphuTCafHixQCeFis//vgjLC0tlW3FxcXYv38/GjRooNFwS5YsweTJk/HZZ5/h9u3bcHZ2xieffIIpU6Yo9xk/fjzy8/MxdOhQZGdno23bttixY4fK4pxE+owFHBHRm0Ny4bRgwQIAT0ecVq5cqXJaztjYGLVq1cLKlSs1Gs7KygoLFy7EwoULy9xHJpNh+vTpmD59ukb7JiIiIvo3yYXT1atXAQABAQGIjY1F1apVtRaKiIiISB+pPcdp79692shBREREpPdeaTmCGzduYOvWrUhLS0NhYaFK2/z58zUSjKiyuJ00snw6Cn5xM+daERG9nNqFU3x8PLp3747atWvjwoULaNy4MVJTUyGEQNOmTbWRkYiIiEgvqF04RURE4IsvvsC0adNgZWWFX3/9Ffb29ujXrx86duyojYxEWqEvIz1ERPTmULtwOn/+PDZu3Pj0wUZGePToESwtLTF9+nT06NEDn376qcZDvun4B5qIiKhiUHvlcAsLC+W8JicnJ1y+fFnZdvfuXc0lIyIiItIzao84tWrVCn/99RcaNmyIzp074/PPP8eZM2cQGxuLVq1aaSMjERERkV5Qu3CaP38+8vLyAADTpk1DXl4eNm3aBA8PD15RR0RERBWa2oVT7dq1lf+2sLDQ+GrhRERERPpK7TlOZYmNjYWXl5emDkdERESkd9QqnL7//nu8//77+Oijj3D06FEAwJ49e+Dj44MBAwbA19dXKyGJiIiI9IHkwunbb7/FiBEjkJqaiq1bt6JDhw6YNWsW+vXrhw8//BA3btzAihUrtJmViIiISKckz3GKjo7GqlWrEBoaigMHDsDPzw+HDh3CpUuXYGFhoc2MRERERHpB8ohTWloaOnToAABo164dqlSpgmnTprFoIiIiokpDcuFUUFAAU1NT5X1jY2PY2tpqJRQRERGRPlJrOYLJkyfD3NwcAFBYWIhvvvkG1tbWKvtwLSciIiKqqCQXTu3bt0dycrLyfps2bXDlyhWVfWQymeaSEREREekZyYVTQkKCFmMQERER6T+1Vw4nel3d47qUSz9bg/8ol36IiKjy0NjK4UREREQVHUeciIjopThSTPQUR5yIiIiIJFK7cEpLS4MQosR2IQTS0tI0EoqIiIhIH6l9qs7d3R23bt2Cvb29yvasrCy4u7ujuLhYY+GIiIiedztpZPl0FFw+3dCbR+0RJyFEqes15eXlqawsTkRERFTRSB5xGjt2LICni1w+v4I4ABQXF+Po0aPw9vbWeEAiIiIifSG5cEpKSgLwdMTpzJkzMDY2VrYZGxujSZMm+OKLLzSfkIiIiEhPSC6c9u7dCwAICwvDokWLIJfLtRaKiIiISB+pPTk8OjpaGzmoHHAdFiIiotcjqXDq1asXYmJiIJfL0atXrxfuGxsbq5FgRERERPpGUuFkbW2tvJLO2tpaq4GIiIiI9JWkwun503M8VUdERESVld5/5Up6ejr69+8POzs7mJmZwdPTE4mJicp2IQSmTJkCJycnmJmZITAwECkpKTpMTERERBWV5MnhPj4+pS58+W8nT558rUDPu3//Pnx9fREQEIA///wT1atXR0pKCqpWrarcJzIyEosXL8aaNWvg7u6OyZMnIygoCOfOneOCnERERKRRkgun4OBg5b+FEJg9ezaGDRsGW1tbbeQCAMyZMwcuLi4qpwfd3d1VcixcuBBfffUVevToAQBYu3YtHBwcEBcXhz59+mgtGxEREVU+kgunqVOnqtz/7rvvMGrUKNSuXVvjoZ7ZunUrgoKC0Lt3b+zbtw81atTAZ599hiFDhgAArl69ioyMDAQGBiofY21tjbfffhuHDx9m4UREREQapddznK5cuYIVK1bAw8MDO3fuxKeffoqRI0dizZo1AICMjAwAgIODg8rjHBwclG2lKSgoQG5ursqNiIiI6GXUXgCzPCkUCjRv3hyzZs0C8HSe1dmzZ7Fy5UqEhoa+8nFnz56NadOmaSomERERVRJ6PeLk5OSEt956S2Vbw4YNkZaWBgBwdHQEAGRmZqrsk5mZqWwrTUREBHJycpS369evazg5ERERVUSSR5wWL16scr+oqAgxMTGoVq2ayvaRI0dqJhkAX19fJCcnq2y7ePEi3NzcADydKO7o6Ij4+Hh4e3sDAHJzc3H06FF8+umnZR7XxMQEJiYmGstJRERElYPkwmnBggUq9x0dHbFu3TqVbTKZTKOF05gxY9CmTRvMmjULH3zwAY4dO4YffvgBP/zwg7K/0aNH45tvvoGHh4dyOQJnZ2eVqwCJiIgqottJmvub+0LB5dPNm0By4XT16lVt5ihVixYtsGXLFkRERGD69Olwd3fHwoUL0a9fP+U+48ePR35+PoYOHYrs7Gy0bdsWO3bs4BpOREREpHF6PTkcALp27YquXbuW2S6TyTB9+nRMnz69HFMRERFRZaTXk8OJiIiI9AkLJyIiIiKJWDgRERERScTCiYiIiEgiFk5EREREErFwIiIiIpJI75cjICIiIv1WmRbi5IgTERERkUSvXDhdunQJO3fuxKNHjwAAQgiNhSIiIiLSR2oXTvfu3UNgYCDq1auHzp0749atWwCAwYMH4/PPP9d4QCIiIiJ9oXbhNGbMGBgZGSEtLQ3m5ubK7R9++CF27Nih0XBERERE+kTtyeG7du3Czp07UbNmTZXtHh4euHbtmsaCEREREekbtUec8vPzVUaansnKyoKJiYlGQhERERHpI7ULp3bt2mHt2rXK+zKZDAqFApGRkQgICNBoOCIiIiJ9ovapusjISLzzzjtITExEYWEhxo8fj3/++QdZWVk4ePCgNjISERER6QW1R5waN26Mixcvom3btujRowfy8/PRq1cvJCUloU6dOtrISERERKQXXmnlcGtra3z55ZeazkJERESk116pcMrOzsaxY8dw+/ZtKBQKlbaPP/5YI8GIiIiI9I3ahdPvv/+Ofv36IS8vD3K5HDKZTNkmk8lYOBERVUCV6bvIiF5E7cLp888/x6BBgzBr1qxSlyUg/cUPPiIiotej9uTw9PR0jBw5kkUTERERVTpqjzgFBQUhMTERtWvX1kYeqgQ48kVERG8qSYXT1q1blf/u0qULxo0bh3PnzsHT0xNVqlRR2bd79+6aTUhElQoLayLSZ5IKp+Dg4BLbpk+fXmKbTCZDcXHxa4ciIiIi0keSCqd/LzlAREREVBmpPTmciIiIqLJSu3AaOXIkFi9eXGL70qVLMXr0aE1kIiIiItJLahdOv/76K3x9fUtsb9OmDX755ReNhCIiIiLSR2oXTvfu3YO1tXWJ7XK5HHfv3tVIKCIiIiJ9pHbhVLduXezYsaPE9j///JNrOxEREVGFpvYCmGPHjkV4eDju3LmDDh06AADi4+Px3XffYeHChZrOR0RERKQ31C6cBg0ahIKCAsycORMzZswAANSqVQsrVqzgF/wSERFRhaZ24QQAn376KT799FPcuXMHZmZmsLS01HQuIiIC0D2uS7n0szX4j3Lph+hN90qF0zPVq1fXVA4iIiIivfdKC2D+8ssv+OCDD9CqVSs0bdpU5aZN3377LWQymcp6UY8fP8bw4cNhZ2cHS0tLhISEIDMzU6s5iIiIqHJSe8Rp8eLF+PLLLzFw4ED89ttvCAsLw+XLl3H8+HEMHz5cGxkBAMePH8f3338PLy8vle1jxozBH3/8gZ9//hnW1tYIDw9Hr169cPDgQa1lISKiyo2nUCsvtUecli9fjh9++AFLliyBsbExxo8fj927d2PkyJHIycnRRkbk5eWhX79+WLVqFapWrarcnpOTg6ioKMyfPx8dOnRAs2bNEB0djUOHDuHIkSNayUJERESVl9qFU1paGtq0aQMAMDMzw4MHDwAAAwYMwMaNGzWb7v8bPnw4unTpgsDAQJXtJ06cwJMnT1S2N2jQAK6urjh8+LBWshAREVHlpfapOkdHR2RlZcHNzQ2urq44cuQImjRpgqtXr0IIofGA//3vf3Hy5EkcP368RFtGRgaMjY1hY2Ojst3BwQEZGRllHrOgoAAFBQXK+7m5uRrLS0RERBWX2iNOHTp0wNatWwEAYWFhGDNmDN599118+OGH6Nmzp0bDXb9+HaNGjcL69ethamqqsePOnj0b1tbWypuLi4vGjk1EREQVl9ojTj/88AMUCgUAKK9mO3ToELp3745PPvlEo+FOnDiB27dvq1ytV1xcjP3792Pp0qXYuXMnCgsLkZ2drTLqlJmZCUdHxzKPGxERgbFjxyrv5+bmsngiIiKil1K7cDIwMICBwf8NVPXp0wd9+vTRaKhn3nnnHZw5c0ZlW1hYGBo0aIAJEybAxcUFVapUQXx8PEJCQgAAycnJSEtLQ+vWrcs8romJCUxMTLSSmYiIiCouyafqUlJS0Ldv31LnA+Xk5OCjjz7ClStXNBrOysoKjRs3VrlZWFjAzs4OjRs3hrW1NQYPHoyxY8di7969OHHiBMLCwtC6dWu0atVKo1mIiIiIJBdOc+fOhYuLC+RyeYm2Z/OE5s6dq9FwUixYsABdu3ZFSEgI2rdvD0dHR8TGxpZ7DiIiIqr4JJ+q27dvH3766acy2z/44AN89NFHGgn1IgkJCSr3TU1NsWzZMixbtkzrfRMREVHlJnnEKS0tDfb29mW2V6tWDdevX9dIKCIiIiJ9JLlwsra2xuXLl8tsv3TpUqmn8YiIiIgqCsmFU/v27bFkyZIy2xcvXox27dppJBQRERGRPpJcOEVERODPP//E+++/j2PHjiEnJwc5OTk4evQoQkJCsHPnTkRERGgzKxEREZFOSZ4c7uPjg19++QWDBg3Cli1bVNrs7OywefNmlYUqiYiIiCoatRbA7Nq1K65du4YdO3bg0qVLEEKgXr16eO+992Bubq6tjERERER6Qe2Vw83MzDT+nXREREREbwK1v+SXiIiIqLJi4UREREQkEQsnIiIiIonUnuNERBXT7aSR5dNRcPl0Q0SkDRxxIiIiIpJI8oiToaGhpP2Ki4tfOQwRERGRPpNcOAkh4ObmhtDQUPj4+GgzExEREZFeklw4HTt2DFFRUVi0aBHc3d0xaNAg9OvXD1WrVtVmPiIiIiK9IXmOU/PmzbFixQrcunULY8eOxZYtW1CzZk306dMHu3fv1mZGIiIiIr2g9uRwU1NT9O/fH/Hx8Th79ixu376Njh07IisrSxv5iIiIiPTGKy1HcOPGDcTExCAmJgYPHz7EuHHjIJfLNZ2NiIiISK9ILpwKCwuxZcsWREVF4cCBA+jUqRMWLlyITp06Sb7ijoiIiOhNJrlwcnJygpWVFUJDQ7F8+XLY29sDAPLz81X248gTERERVVSSC6f79+/j/v37mDFjBr755psS7UIIyGQyruNEREREFZbkwmnv3r3azEFERESk9yQXTn5+fi/dh1fWERERUUWmke+q27VrFz744APUqFFDE4cjIiIi0kuvXDhdu3YNU6dORa1atdC7d28YGBhg7dq1msxGREREpFfUWsepsLAQsbGx+PHHH3Hw4EEEBgbixo0bSEpKgqenp7YyEhEREekFySNOI0aMgLOzMxYtWoSePXvixo0b+P333yGTybiOExEREVUKkkecVqxYgQkTJmDixImwsrLSZiYiIiK9djtpZPl0FFw+3ZB0kkec1q1bh2PHjsHJyQkffvghtm3bxjWbiIiIqFKRXDj17dsXu3fvxpkzZ9CgQQMMHz4cjo6OUCgUOHfunDYzEhEREekFta+qc3d3x7Rp05CamoqffvoJISEh6N+/P2rWrImRI8tp6JKIiIhIB9S6qu55MpkMQUFBCAoKQlZWFtauXYuYmBgNRiMiIiLSLxpZANPW1hbt2rVDzZo1NXE4IiIiIr2kVuG0c+dOfPHFF5g0aRKuXLkCALhw4QKCg4PRsmVLKBQKrYQkIiIi0geSC6eoqCh06tQJMTExmDNnDlq1aoWffvoJrVu3hqOjI86ePYvt27drNNzs2bPRokULWFlZwd7eHsHBwUhOTlbZ5/Hjxxg+fDjs7OxgaWmJkJAQZGZmajQHEREREaBG4bRo0SLMmTMHd+/exebNm3H37l0sX74cZ86cwcqVK9GwYUONh9u3bx+GDx+OI0eOYPfu3Xjy5Anee+895OfnK/cZM2YMfv/9d/z888/Yt28fbt68iV69emk8CxEREZHkyeGXL19G7969AQC9evWCkZER5s6dq9V5TTt27FC5HxMTA3t7e5w4cQLt27dHTk4OoqKisGHDBnTo0AEAEB0djYYNG+LIkSNo1aqV1rIRERFR5SN5xOnRo0cwNzcH8PSKOhMTEzg5OWktWGlycnIAPJ2MDgAnTpzAkydPEBgYqNynQYMGcHV1xeHDh8s1GxEREVV8ai1H8OOPP8LS0hIAUFRUhJiYGFSrVk1lH22t5aRQKDB69Gj4+vqicePGAICMjAwYGxvDxsZGZV8HBwdkZGSUeayCggIUFBQo7+fm5molMxEREVUskgsnV1dXrFq1Snnf0dER69atU9lHJpNprXAaPnw4zp49i7/++uu1jzV79mxMmzZNA6mIiIioMpFcOKWmpmoxxouFh4dj27Zt2L9/v8qcKkdHRxQWFiI7O1tl1CkzMxOOjo5lHi8iIgJjx45V3s/NzYWLi4tWshMREVHFoZEFMLVFCIHw8HBs2bIFe/bsgbu7u0p7s2bNUKVKFcTHxyu3JScnIy0tDa1bty7zuCYmJpDL5So3IiIiopdRa46TQqFATEwMYmNjkZqaCplMBnd3d7z//vsYMGAAZDKZRsMNHz4cGzZswG+//QYrKyvlvCVra2uYmZnB2toagwcPxtixY2Frawu5XI4RI0agdevWvKKOiF5L97gu5dLP1uA/yqUfItIMySNOQgh0794d//nPf5Ceng5PT080atQI165dw8CBA9GzZ0+Nh1uxYgVycnLg7+8PJycn5W3Tpk3KfRYsWICuXbsiJCQE7du3h6OjI2JjYzWehYiIiEjyiFNMTAz279+P+Ph4BAQEqLTt2bMHwcHBWLt2LT7++GONhRNCvHQfU1NTLFu2DMuWLdNYv0RERESlkVw4bdy4EZMmTSpRNAFAhw4dMHHiRKxfv16jhRMRka7cTtLOFcIlBJdPN0SkGZJP1f3999/o2LFjme2dOnXC6dOnNRKKiIiISB9JLpyysrLg4OBQZruDgwPu37+vkVBERERE+khy4VRcXAwjo7LP7BkaGqKoqEgjoYiIiIj0keQ5TkIIDBw4ECYmJqW2P/8VJkREREQVkeTCKTQ09KX7cGI4ERERVWSSC6fo6Ght5iAiIiLSe3r9lStERERE+oSFExEREZFELJyIiIiIJGLhRERERCQRCyciIiIiiVg4EREREUnEwomIiIhIIhZORERERBKxcCIiIiKSiIUTERERkUQsnIiIiIgkYuFEREREJBELJyIiIiKJWDgRERERScTCiYiIiEgiFk5EREREErFwIiIiIpKIhRMRERGRRCyciIiIiCRi4UREREQkEQsnIiIiIolYOBERERFJxMKJiIiISCIWTkREREQSsXAiIiIikoiFExEREZFELJyIiIiIJKowhdOyZctQq1YtmJqa4u2338axY8d0HYmIiIgqmApROG3atAljx47F1KlTcfLkSTRp0gRBQUG4ffu2rqMRERFRBVIhCqf58+djyJAhCAsLw1tvvYWVK1fC3Nwcq1ev1nU0IiIiqkCMdB3gdRUWFuLEiROIiIhQbjMwMEBgYCAOHz5c6mMKCgpQUFCgvJ+TkwMAyM3N1UrGooJ8rRz3316WnzmYQ59y5Ofnq2wrLi7WSY6y6EuOJw+f6EUOfXk9mIM5tHlcIcTLdxZvuPT0dAFAHDp0SGX7uHHjRMuWLUt9zNSpUwUA3njjjTfeeOONN+Xt+vXrL6073vgRp1cRERGBsWPHKu8rFApkZWXBzs4OMplMh8meys3NhYuLC65fvw65XM4czMEczMEczMEcWiSEwIMHD+Ds7PzSfd/4wqlatWowNDREZmamyvbMzEw4OjqW+hgTExOYmJiobLOxsdFWxFcml8v14g3FHMzBHMzBHMxRkXMAgLW1taT93vjJ4cbGxmjWrBni4+OV2xQKBeLj49G6dWsdJiMiIqKK5o0fcQKAsWPHIjQ0FM2bN0fLli2xcOFC5OfnIywsTNfRiIiIqAKpEIXThx9+iDt37mDKlCnIyMiAt7c3duzYAQcHB11HeyUmJiaYOnVqidOJzMEczMEczMEczKFbMiGkXHtHRERERG/8HCciIiKi8sLCiYiIiEgiFk5EREREErFw0iF/f3+MHj1ab/t/+PAhQkJCIJfLIZPJkJ2dXW7ZiEqj698ZfSWEwNChQ2FrawuZTIZTp07pJIc+/Hz0IQNVbCycqExr1qzBgQMHcOjQIdy6dUvy4mBUMb0Jf5Bq1aqFhQsX6jpGuduxYwdiYmKwbds23Lp1Cz4+PoiLiyv3HLGxsZgxY0a590tUnirEcgSkHZcvX0bDhg3RuHFjXUfRe4WFhTA2NtZ1DKqkLl++DCcnJ7Rp00anOWxtbXXaP1F54IiTjhUVFSE8PBzW1taoVq0aJk+erPx25oKCAkyYMAEuLi4wMTFB3bp1ERUVVS79+/v747vvvsP+/fshk8ng7+8PAFi+fDk8PDxgamoKBwcHvP/++xrNo1AoEBkZibp168LExASurq6YOXMmAODGjRvo27cvbG1tYWFhgebNm+Po0aMa7f8Zf39/hIeHl/mzqVWrFmbMmIGPP/4YcrkcQ4cOfaV+fvnlF3h6esLMzAx2dnYIDAxEfn4+EhIS0LJlS1hYWMDGxga+vr64du0aAOD06dMICAiAlZUV5HI5mjVrhsTERABATEwMbGxsEBcXp/w5BQUF4fr166/1egwcOBD79u3DokWLIJPJIJPJkJqain/++Qddu3aFXC6HlZUV2rVrh8uXL79WXy/zovfstWvXMGbMGGVGbXjRe/TQoUPw9vaGqakpmjdvjri4OK2fOhs4cCBGjBiBtLQ0yGQy1KpVCwDQs2dPlfvl4flRSW1/Vkghk8lKjLzZ2NggJiZGo/34+/tjxIgRGD16NKpWrQoHBwesWrVKuRCzlZUV6tatiz///FP5mK1btypfn4CAAKxZs0bjUyLK+nwZOHAggoODMW3aNFSvXh1yuRzDhg1DYWGhxvoGSh8B9vb2xtdffw0AmD9/Pjw9PWFhYQEXFxd89tlnyMvL02gGbeCIk46tWbMGgwcPxrFjx5CYmIihQ4fC1dUVQ4YMwccff4zDhw9j8eLFaNKkCa5evYq7d++WS/+xsbGYOHEizp49i9jYWBgbGyMxMREjR47EunXr0KZNG2RlZeHAgQMazRMREYFVq1ZhwYIFaNu2LW7duoULFy4gLy8Pfn5+qFGjBrZu3QpHR0ecPHkSCoVCo/0/70U/GwCYN28epkyZgqlTp77S8W/duoW+ffsiMjISPXv2xIMHD3DgwAEIIRAcHIwhQ4Zg48aNKCwsxLFjx5SFQL9+/eDj44MVK1bA0NAQp06dQpUqVZTHffjwIWbOnIm1a9fC2NgYn332Gfr06YODBw++8muxaNEiXLx4EY0bN8b06dMBAMXFxWjfvj38/f2xZ88eyOVyHDx4EEVFRa/cjxQves82adIEQ4cOVf6MtKGs92hubi66deuGzp07Y8OGDbh27Vq5nNpctGgR6tSpgx9++AHHjx+HoaEh7O3tER0djY4dO8LQ0FDrGf6tPD4r9M2aNWswfvx4HDt2DJs2bcKnn36KLVu2oGfPnpg0aRIWLFiAAQMGIC0tDZmZmXj//fcxatQo/Oc//0FSUhK++OILjeZ50ecLAMTHx8PU1BQJCQlITU1FWFgY7OzslP8JKA8GBgZYvHgx3N3dceXKFXz22WcYP348li9fXm4ZXokgnfHz8xMNGzYUCoVCuW3ChAmiYcOGIjk5WQAQu3fv1kn/QggxatQo4efnp2z79ddfhVwuF7m5uVrJk5ubK0xMTMSqVatKtH3//ffCyspK3Lt3Tyt9/9vLXhs3NzcRHBz8Wn2cOHFCABCpqakq2+/duycAiISEhFIfZ2VlJWJiYkpti46OFgDEkSNHlNvOnz8vAIijR4++Vl4/Pz8xatQo5f2IiAjh7u4uCgsLX+u46mZ42c9lwYIFWuv/Re/RFStWCDs7O/Ho0SPltlWrVgkAIikpSWuZhBBiwYIFws3NTXkfgNiyZYtW+yzNs/eItj8rpGQQovTXwdraWkRHR2u8z7Zt2yrvFxUVCQsLCzFgwADltlu3bgkA4vDhw2LChAmicePGKsf48ssvBQBx//59jWQq6/NFCCFCQ0OFra2tyM/PV25bsWKFsLS0FMXFxRrpX4jSfx+bNGkipk6dWur+P//8s7Czs9NY/9rCU3U61qpVK5VTCq1bt0ZKSgqSkpJgaGgIPz8/nfRfXFxcYt93330Xbm5uqF27NgYMGID169fj4cOHGsty/vx5FBQU4J133inRdurUKfj4+JTrHIqXvTbNmzd/reM3adIE77zzDjw9PdG7d2+sWrUK9+/fh62tLQYOHIigoCB069YNixYtwq1bt5SPGzt2LP7zn/8gMDAQ3377bYlTY0ZGRmjRooXyfoMGDWBjY4Pz58+/Vt5/O3XqFNq1a6cy2lUe1HnPatqL3qPJycnw8vKCqampclvLli21nkkfafuzQh95eXkp/21oaAg7Ozt4enoqtz37CrDbt28jOTlZ5XcU0Px7pazPl+fbzc3Nlfdbt26NvLy81z6tr47//e9/eOedd1CjRg1YWVlhwIABuHfvnt6/V1g46annP3z1hZWVFU6ePImNGzfCyckJU6ZMQZMmTTR2Tt7MzOyV2nTFwsLitR5vaGiI3bt3488//8Rbb72FJUuWoH79+rh69Sqio6Nx+PBhtGnTBps2bUK9evVw5MgRAMDXX3+Nf/75B126dMGePXvw1ltvYcuWLZp4SmrRx5+JtlXG5/wqtP1ZIZVMJlOemnrmyZMnWunr3/+BkMlkKtueFfvanF7wvBd9vpQXAwODMl//1NRUdO3aFV5eXvj1119x4sQJLFu2DAA0PtdK01g46di/JzcfOXIEHh4eaNKkCRQKBfbt26eT/suaF2FkZITAwEBERkbi77//RmpqKvbs2aORLB4eHjAzM0N8fHyJNi8vL5w6dQpZWVka6UsKdV+bVyGTyeDr64tp06YhKSkJxsbGyiLIx8cHEREROHToEBo3bowNGzYoH1evXj2MGTMGu3btQq9evRAdHa1sKyoqUk4WB56OhGRnZ6Nhw4avldXY2FhlVMfLywsHDhzQ2h+isrzo5/LvjJr2ovdo/fr1cebMGRQUFCi3HT9+XGtZXqRKlSrlMgL3Itr8rJCqevXqKqO1KSkpejGaUb9+fZXfUUA775UXfb6cPn0ajx49Uu575MgRWFpawsXFRWP9//v1z83NVRZuJ06cgEKhwHfffYdWrVqhXr16uHnzpsb61iYWTjqWlpaGsWPHIjk5GRs3bsSSJUswatQo1KpVC6GhoRg0aBDi4uJw9epVJCQkYPPmzeXSf2m2bduGxYsX49SpU7h27RrWrl0LhUKB+vXraySLqakpJkyYgPHjx2Pt2rW4fPkyjhw5gqioKPTt2xeOjo4IDg7GwYMHceXKFfz66684fPiwRvoujTqvzas4evQoZs2ahcTERKSlpSE2NhZ37tyBmZkZIiIicPjwYVy7dg27du1CSkoKGjZsiEePHiE8PBwJCQm4du0aDh48iOPHj6sURVWqVMGIESNw9OhRnDhxAgMHDkSrVq1e+1RArVq1cPToUaSmpuLu3bsIDw9Hbm4u+vTpg8TERKSkpGDdunVITk5+3ZfmhV70c6lVqxb279+P9PR0jV9IAbz4PfrRRx9BoVBg6NChOH/+PHbu3Il58+YBgNau8CtLrVq1EB8fj4yMDJXTM+VF258VUnXo0AFLly5FUlISEhMTMWzYsHI/tVyaTz75BBcuXMCECRNw8eJFbN68WXmln6beK2V9vjz7rCgsLMTgwYNx7tw5bN++HVOnTkV4eDgMDDRXFnTo0AHr1q3DgQMHcObMGYSGhir/41m3bl08efIES5YswZUrV7Bu3TqsXLlSY31rla4nWVVmfn5+4rPPPhPDhg0TcrlcVK1aVUyaNEk58fXRo0dizJgxwsnJSRgbG4u6deuK1atXl1v//54cfuDAAeHn5yeqVq0qzMzMhJeXl9i0aZPG8gghRHFxsfjmm2+Em5ubqFKlinB1dRWzZs0SQgiRmpoqQkJChFwuF+bm5qJ58+avPeG5LC97bTQxCfncuXMiKChIVK9eXZiYmIh69eqJJUuWiIyMDBEcHKz8ubu5uYkpU6aI4uJiUVBQIPr06SNcXFyEsbGxcHZ2FuHh4coJydHR0cLa2lr8+uuvonbt2sLExEQEBgaKa9euve5LIpKTk0WrVq2EmZmZACCuXr0qTp8+Ld577z1hbm4urKysRLt27cTly5dfu6+yvOzncvjwYeHl5SVMTEyEtj7eXvQePXjwoPDy8hLGxsaiWbNmYsOGDQKAuHDhglayPPPvyeFbt24VdevWFUZGRirbte3ZxOzy+Kx4WQYhhEhPTxfvvfeesLCwEB4eHmL79u1amxz+/IUTQpT+GYHnJqv/9ttvom7dusLExET4+/uLFStWCAAqFxe8jrI+X4R4Ojm8R48eYsqUKcLOzk5YWlqKIUOGiMePH2uk72dycnLEhx9+KORyuXBxcRExMTEqk8Pnz58vnJychJmZmQgKChJr167V6AR5bZEJ8a8TkEQEf39/eHt7v3GrUMfExGD06NH8ehw9sX79eoSFhSEnJ4fzo+iFZs6ciZUrV5bL5OyBAwciOztbJ6vLVwRcx4mISEPWrl2L2rVro0aNGjh9+jQmTJiADz74gEUTlbB8+XK0aNECdnZ2OHjwIObOnYvw8HBdxyIJWDgREWlIRkYGpkyZgoyMDDg5OaF3797luqAgvTlSUlLwzTffICsrC66urvj8888RERGh61gkAU/VEREREUnEq+qIiIiIJGLhRERERCQRCyciIiIiiVg4EREREUnEwomIiIhIIhZORERERBKxcCIiIiKSiIUTVQgZGRkYNWoU6tatC1NTUzg4OMDX1xcrVqwo8W3os2fPhqGhIebOnVviODExMZDJZJDJZDAwMEDNmjURFhaG27dvK/d51i6TyWBkZARXV1eMHTsWBQUFyn3u3LmDTz/9FK6urjAxMYGjoyOCgoJw8ODBMp9DamoqBg8eDHd3d5iZmaFOnTqYOnUqCgsLlfskJCSgR48ecHJygoWFBby9vbF+/frXeemIKp2BAwdCJpPh22+/VdkeFxen/JLdhIQEld91BwcHhISE4MqVK8r9a9WqpWw3NDSEs7MzBg8eLOmLlQsLCxEZGYkmTZrA3Nwc1apVg6+vL6Kjo/HkyRPNPmHSKK4cTm+8K1euwNfXFzY2Npg1axY8PT1hYmKCM2fO4IcffkCNGjXQvXt35f6rV6/G+PHjsXr1aowbN67E8eRyOZKTk6FQKHD69GmEhYXh5s2b2Llzp3Kf6OhodOzYEU+ePFHuY2FhgRkzZgAAQkJCUFhYiDVr1qB27drIzMxEfHw87t27V+bzuHDhAhQKBb7//nvUrVsXZ8+exZAhQ5Cfn4958+YBAA4dOgQvLy9MmDABDg4O2LZtGz7++GNYW1uja9eumnpJiSo8U1NTzJkzB5988gmqVq1a5n7JycmwsrJCSkoKhg4dim7duuHvv/+GoaEhAGD69OkYMmQIiouLcfHiRQwdOhQjR47EunXryjxmYWEhgoKCcPr0acyYMQO+vr6Qy+U4cuQI5s2bBx8fH3h7e2v6KZOm6PY7holeX1BQkKhZs6bIy8srtV2hUCj/nZCQIGrUqCEKCwuFs7OzOHjwoMq+0dHRwtraWmXbzJkzhYGBgXj48KEQQvUbzp8ZPHiw6Ny5sxBCiPv37wsAIiEh4TWfmRCRkZHC3d39hft07txZhIWFvXZfRJVFaGio6Nq1q2jQoIEYN26ccvuWLVvEsz+Le/fuFQDE/fv3le3r168XAMSFCxeEEEK4ubmJBQsWqBx7xowZ4q233nph/3PmzBEGBgbi5MmTJdoKCwvL/Cwj/cBTdfRGu3fvHnbt2oXhw4fDwsKi1H2eDb0DQFRUFPr27YsqVaqgb9++iIqKemkfZmZmUCgUKCoqKrX94sWL2LNnD95++20AgKWlJSwtLREXF6dy+u5V5OTkwNbW9rX3ISJVhoaGmDVrFpYsWYIbN25IesyzL2t+/vT589LT0/H7778rPwvKsn79egQGBsLHx6dEW5UqVcr8LCP9wMKJ3miXLl2CEAL169dX2V6tWjVlATNhwgQAQG5uLn755Rf0798fANC/f39s3rwZeXl5ZR4/JSUFK1euRPPmzWFlZaXc3rdvX1haWsLU1BT169dHo0aNlF/QaWRkhJiYGKxZswY2Njbw9fXFpEmT8Pfff6v93JYsWYJPPvmkzH02b96M48ePIywsTK1jExHQs2dPeHt7Y+rUqS/d99atW5g3bx5q1Kih8nkzYcIEWFpawszMDDVr1oRMJsP8+fNfeKyUlBQ0aNDgtfOTbrBwogrp2LFjOHXqFBo1aqQc9dm4cSPq1KmDJk2aAAC8vb3h5uaGTZs2qTw2JycHlpaWMDc3R/369eHg4FBiAvaCBQtw6tQpnD59Gtu2bcPFixcxYMAAZXtISAhu3ryJrVu3omPHjkhISEDTpk0RExMDABg2bJiysLO0tCyRPz09HR07dkTv3r0xZMiQUp/j3r17ERYWhlWrVqFRo0av/FoRVWZz5szBmjVrcP78+VLba9asCQsLCzg7OyM/Px+//vorjI2Nle3jxo3DqVOn8PfffyM+Ph4A0KVLFxQXFwOAyu/5sGHDAABCCC0/K9IqXZ8rJHodd+/eFTKZTMyePbvUdj8/PzFq1CghhBAtWrQQMplMGBoaKm8ymUy0adNGuX90dLSwsrISKSkp4vLly8p5Tc9DKXOcNm7cKACIlJSUMrMOHjxYuLq6CiGEyMzMFCkpKcrb89LT04WHh4cYMGCAKC4uLvVYCQkJwsLCQnz//fdl9kdEpQsNDRU9evRQ3u/cubPo0aNHqXOcTp48KS5duiRyc3NLHKe0OU6HDx8WAMTu3buFEELl9zwzM1MIIYSXl5d47733tPPkSOt4VR290ezs7PDuu+9i6dKlGDFiRJlzA86cOYPExEQkJCSozAfKysqCv78/Lly4oBw6NzAwQN26ddXK8ewKm0ePHpW5z1tvvYW4uDgAgL29Pezt7Uvsk56ejoCAADRr1gzR0dEwMCg5KJyQkICuXbtizpw5GDp0qFo5iaikb7/9Ft7e3iVO+QOAu7s7bGxsJB/r358FpX2WfPTRR5g0aRKSkpJKzHN68uQJCgsLOc9Jj7Fwojfe8uXL4evri+bNm+Prr7+Gl5cXDAwMcPz4cVy4cAHNmjVDVFQUWrZsifbt25d4fIsWLRAVFVXquk5lyc7ORkZGBhQKBVJSUjB9+nTUq1cPDRs2xL1799C7d28MGjQIXl5esLKyQmJiIiIjI9GjR48yj5meng5/f3+4ublh3rx5uHPnjrLN0dERwNPTc127dsWoUaMQEhKCjIwMAICxsTEniBO9Ik9PT/Tr1w+LFy9W+7EPHjxARkYGhBC4fv06xo8fj+rVq6NNmzZlPmb06NH4448/8M4772DGjBlo27at8nNizpw5iIqK4nIE+kzXQ15EmnDz5k0RHh4u3N3dRZUqVYSlpaVo2bKlmDt3rsjJyRF2dnYiMjKy1MfOmTNH2Nvbi8LCwlKXI/g3AMqbTCYTTk5O4sMPPxSXL18WQgjx+PFjMXHiRNG0aVNhbW0tzM3NRf369cVXX31V6qm/Z6Kjo1WO/fztmdDQ0FLb/fz81H7NiCqrf5+qE0KIq1evCmNj4xcuR/Bvbm5uKr+H1atXF507dxZJSUkvzfD48WMxe/Zs4enpKUxNTYWtra3w9fUVMTEx4smTJ6/x7EjbZEJwlhoRERGRFLyqjoiIiEgiFk5EREREErFwIiIiIpKIhRMRERGRRCyciIiIiCRi4UREREQkEQsnIiIiIolYOBERERFJxMKJiIiISCIWTkREREQSsXAiIiIikoiFExEREZFE/w+SFau+/KVbegAAAABJRU5ErkJggg==", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAADfCAYAAACj4kcNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAfx0lEQVR4nO3de5xd873/8de7kTShiEhcIxLiOCVOSuLWjOYiWi0nQkOlCA4NLUVUqzdSPdqf0lIPNOquPalLpSTEoZpk4pISuSAiQqRRcVK5lCgShM/vj7V2bGNm9p49e83smf1+Ph7zmL2+a+3v97P27bPXWt/9/SoiMDMzqzSfau0AzMzM6uMEZWZmFckJyszMKpITlJmZVSQnKDMzq0ibtHYAzdG9e/fo3bt3a4dhVWrx4sUA7L777q0ciVnbNnfu3NUR0aNueZtOUL1792bOnDmtHYZVqSFDhgBQW1vbqnGYtXWSXq6v3Kf4zMysIjlBmZlZRXKCMjOzitSmr0HV54033mDFihWtHYZlqHPnzvTs2ZOOHTu2dihmlqF2l6BWr15N79696dKlS2uHYhmICNasWcPy5cvp06dPa4djZhlqd6f43n//fTp37tzaYVhGJLH11luzfv361g7FzDLW7hIUJB9i1n75+TWrDu3uFF++A8Y/WJZ6Hr/oS42uX7ZsGXvvvTf9+/dn3bp1jB49mnPOOafk9vr27cuSJUtKvn9dI+45rCz1TBk5tdH13/rWtzjkkEM48sgjee655+jXrx+rV6+mW7du/OY3v2HNmjVccMEFG7c/7rjjmDhxIsuWLeOZZ55hxIgRZYnTzNqHdnkE1RoGDBhAbW0ts2bNYsKECbz99tutHVKLq6mp4bHHHgPgscceY9iwYcyaNWvj8kEHHbRx2w8++ICJEycCSYKfMmVKywdsZhXNCarM3nnnHd577z02bNjAqaeeytChQ6mpqWH27NkAXH755QwbNox9992X8ePHA/Dhhx9y/PHHM3jwYMaNG9ea4TdLTU0Njz76KJAkpO9+97sbl2fPns2ECRM4/fTTOfzww3nkkUfo27cvkDwmU6dOZciQIcydO5cFCxYwfPhwhg0bxjHHHMO6detabZ/MrPU4QZXJ3LlzGTx4MDvttBNnnHEGt912G3379mXGjBlMmjRpY+I57bTTmD59OrNnz+ahhx7i73//O5MnT2azzTZj5syZjBo1ig0bNrTy3pSmV69erF69mnXr1rFixQqGDx/OggULWL58Od27d6dLly7svPPO3HfffRuHCQI499xzOeyww6itrWXAgAGcccYZ3HTTTUyfPp1BgwZx4403tt5OmVmryewalKSbgMOBlRHRLy3rBtwB9AaWAcdExOtKrnpfCXwFeAc4KSLmZRVbFgYMGMBf/vIXnn76ac4//3x23XVXZs2axQMPPADA2rVrAZg0aRI33HADkli6dCmvvPIKL7zwAvvttx8A+++/f5vuBLDffvsxZcoUtttuOzp06ECHDh2YPn06NTU1rFq1is9//vMF61i4cCFjxowBYP369QwfPjzrsM2sAmV5BHULcGidsu8D0yJiN2BaugzwZWC39G8sMCHDuDLVv39/dthhB/bcc0/GjBlDbW0ttbW1zJuX5NsLLriABx98kBkzZtCnTx8igt12223joLdPPvkkEdGau9AsNTU1XHrppRsT0T777MOVV1658fpThw4dPnGfTp06feyosV+/ftx2223U1tby+OOPc+GFF7ZM8GZWUTJLUBHxMPDPOsVHALemt28FRuaV/y4SjwNdJW2fVWxZGzduHL///e9ZvHgxQ4cOZejQofzoRz8C4KijjmLQoEEcf/zxfOYznwHgiCOOYO3atQwePJi7776bTTZpu50ra2pqmDdv3sYENWjQIObPn8+gQYMavM9ee+3FSy+9xKhRo1iwYAHXXHMNJ510EsOGDWPYsGHMnDmzpcI3swqiLL+tS+oN3Jd3iu+NiOia3hbwekR0lXQfcElEPJqumwacHxGNzqUxcODAqDvdxqJFi/jsZz9b9n2xylIJz7On2zArD0lzI2Jg3fJW6yQRSWZscnaUNFbSHElzVq1alUFkZmZWCVo6Qb2WO3WX/l+Zlr8K7JS3Xc+07BMi4rqIGBgRA3v0+MQEjGZm1k60dIKaApyY3j4RmJxXPkaJA4C1EVHykORtuZOBFebn16w6ZNnN/DZgCNBd0nJgPHAJcKekU4CXgWPSze8n6WK+hKSb+cmlttuxY0fWr1/v0czbqdxo5h4Q2Kz9yyxBRcToBlYdXM+2AZxRjna7d+/OsmXLylGVVajcfFBm1r613f7MDejatStdu3Zt7TDMzKyZPNSRmZlVJCcoMzOrSE5QZmZWkQpeg5LUmWTQ14OAHYB1wLPA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", + "image/png": "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KSnazFGqli1bYtu2bQgLC8P06dPh6uqKxYsXY+DAgcp9JkyYgIKCAowYMQI5OTlo3749du3apVNrON1K1Fwx+UKB5dMNERHR20qnJ4cDQLdu3dCtW7cyt8tkMkyfPh3Tp08vx1RERET0NtLpyeFEREREukTnR5yo8ukR07Vc+okN3FEu/RAR0duDI05EREREErFwIiIiIpKIhRMRERGRRCyciIiIiCRi4UREREQkEQsnIiIiIoleuXD6559/sHv3bjx8+BAAIITQWCgiIiIiXaR24XT37l34+/ujXr166NKlCzIyMgAAw4YNwxdffKHxgERERES6Qu3Cady4cTAwMEBaWhpMTU2V7R9++CF27dql0XBEREREukTtlcP37NmD3bt3o2bNmirtbm5uuHbtmsaCEREREekatUecCgoKVEaansrOzoaRkZFGQhERERHpIrULpw4dOmDDhg3K+zKZDAqFAuHh4fD19dVoOCIiIiJdovapuvDwcLz77rtISEhAUVERJkyYgPPnzyM7OxuHDx/WRkYiIiIinaD2iFPjxo1x+fJltG/fHj179kRBQQF69+6NxMRE1KlTRxsZiYiIiHSC2iNOAGBpaYmvv/5a01mIiIiIdNorFU45OTk4ceIEbt26BYVCobLt448/1kgwIiKif+sR07Vc+okN3FEu/dCbR+3C6bfffsPAgQORn58PuVwOmUym3CaTyVg4ERERUaWl9hynL774AkOHDkV+fj5ycnJw79495S07O1sbGYmIiIh0gtqF040bNzBmzJhS13IiIiIiqszULpwCAgKQkJCgjSxEREREOk3SHKfY2Fjlv7t27Yrx48fjwoULcHd3R5UqVVT27dGjh2YTEhEREekISYVTYGDgc23Tp09/rk0mk6GkpOS1QxERERHpIkmF07+XHCAiIiJ6G6k9x4mIiIjobaV24TRmzBgsXbr0ufbly5dj7NixmshEREREpJPULpx++eUXtGvX7rn2tm3b4ueff9ZIKCIiIiJdpHbhdPfuXVhaWj7XLpfLcefOHY2EIiIiItJFahdOdevWxa5du55r//3331G7dm2NhCIiIiLSRWp/V11oaChCQkJw+/Zt+Pn5AQDi4uLw7bffYvHixZrOR0RERKQz1C6chg4disLCQsyaNQszZswAANSqVQurVq3iF/wSERFRpaZ24QQAn376KT79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FStWaKxfIiIiotJInuO0ZcsWfPXVV88VTQDg5+eHSZMmYdOmTRoNR0RERKRLJBdOf//9N95///0yt3fu3BlnzpzRSCgiIiIiXSS5cMrOzoadnV2Z2+3s7HDv3j2NhCIiIiLSRZILp5KSEhgYlD0lSl9fH8XFxRoJRURERKSL1LqqLjg4GEZGRqVuf/YrTIiIiIgqI8mFU1BQ0Ev30eQVdURERES6RnLhFBkZqc0cRERERDpPp79yhYiIiEiXqPWVK0RERET/9jatpM4RJyIiIiKJWDgRERERScTCiYiIiEgiFk5EREREErFwIiIiIpKIhRMRERGRRCyciIiIiCRi4UREREQkEQsnIiIiIolYOBERERFJxMKJiIiISCIWTkREREQSsXAiIiIikoiFExEREZFELJyIiIiIJGLhRERERCQRCyciIiIiiVg4EREREUnEwomIiIhIIhZORERERBKxcCIiIiKSiIUTERERkUQsnIiIiIgkYuFEREREJBELJyIiIiKJDCo6gKasWLEC8+fPR2ZmJpo2bYply5ahVatWFR2LiIgqoVuJY8qno8Dy6YakqxSF048//ojQ0FBERESgdevWWLx4MQICApCUlARbW9uKjkdE9MbrEdO1XPqJDdxRLv0QvapKUTgtXLgQw4cPx5AhQwAAERER2LFjB9atW4dJkyZVcDoiojefroyw6EoOenu98YVTUVERTp06hbCwMGWbnp4e/P39cfTo0VIfU1hYiMLCQuX93NxcAEBeXp5WMhYXFmjluP/2svzMwRy6lKOgoEClraSkBADw+MHjcs1RFl35ufD1YI4X0ZX3x81jw8onh592/p9++vyEEC/fWbzhbty4IQCII0eOqLSPHz9etGrVqtTHTJ06VQDgjTfeeOONN954U97S09NfWne88SNOryIsLAyhoaHK+wqFAtnZ2bCxsYFMJqvAZE/k5eXByckJ6enpkMvlzMEczMEczMEczKFFQgjcv38fjo6OL933jS+cqlWrBn19fWRlZam0Z2Vlwd7evtTHGBkZwcjISKXNyspKWxFfmVwu14k3FHMwB3MwB3MwR2XOAQCWlpaS9nvj13EyNDRE8+bNERcXp2xTKBSIi4uDl5dXBSYjIiKiyuaNH3ECgNDQUAQFBaFFixZo1aoVFi9ejIKCAuVVdkRERESaUCkKpw8//BC3b9/GlClT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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -1196,163 +1115,27 @@ }, { "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAADfCAYAAACj4kcNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAwoUlEQVR4nO3deXhU5fXA8e9JQti3QAABQ9gSyq6EBNwQcAFLAQtCWUSsggL+rLutWsG1uNQFrSigCAqIglpERayCtUXDYlUQCGGVfUdkJ8n5/XHv4BgmmclkJpkk5/M8eTJ3mfd979y5c+be+855RVUxxhhjIk1UcTfAGGOM8cUClDHGmIhkAcoYY0xEsgBljDEmIlmAMsYYE5EsQBljjIlIMcXdgMJYsWJFnZiYmClAayzYGmNKthxgVVZW1o0dOnTYU9yNiQQlOkDFxMRMqVev3m/i4+MPRkVF2Q+6jDElVk5Ojuzdu7flrl27pgC9i7s9kaCkn3W0jo+PP2zByRhT0kVFRWl8fPxPOFeEDCU/QEVZcDLGlBbu51lJ/1wOmRJ9iS+3xD9/2CEU5Wwe/9sV+S3PyMiI7dixY8sWLVocP3HihPTv3//Agw8+GPQ144SEhNY//vjjqtx1tGjRos2LL764acyYMQcABgwY0Oi///1vte3bt6+cM2dOtd27d8d4lhXU/Pnzqz766KPn5OTkSFZWlowYMWLPqFGjDvhqS7EbVz0k+5VxP+W5X4cOHZpwxRVXHB42bNihFStWVOjYsWOrnTt3flu3bt3s8ePHx+/fvz/mqaee2ulZv3fv3o3nzZu3KSMjI3b58uUVhwwZ8lOgzUhNTU2OiYnRJUuWrANYsGBBlZ49eyZ/8MEH63r16vWzp+xgNnHXrl3Ro0aNOnf79u3ls7KypGnTpifefPPNLYMHD240cuTIfVdeeeWRYMoNlzbT2oRk3668bmVEHLPXX399ome/eq/nfbxOmDCh1tChQw/GxcXlBFt/WWGROkitW7c+tnTp0oxvvvlm7WuvvVbn8OHDIX8tW7Zseezdd9+tCXD8+HHZvn17bHR0tAL079//cLDBKSMjI/bee+9tOHfu3I1Lly7NSE9PX1u/fv3ToWx7SXPRRRcd+c9//lMFYPHixVU6der08+eff14FYMmSJVW6dOly5oM9KysLTwDJzMwsP2/evBoFre/kyZOyefPmcgDTp0+Pa9++/VHPsmCDE8CAAQOaXHPNNQc9780//vGP+06fLtO79oyiOGbz4n28vvnmm7UPHjwYXVR1l2QWoArp559/jjp9+rScPn1aBg4c2CgtLS2pQ4cOyYsWLaoEMG7cuLqdOnVKat269W9uv/32+gDZ2dn06dOncceOHZNvuOGGc/Mqu3r16tnlypXT7du3x8yePbv6lVdeeeZb+oQJE2rdc8895+Tk5PC73/2ucYcOHZLT0tKSPv744yrLly+v0L59+xZpaWlJl1xySfPc5U6dOjXuj3/8494GDRpkAZQrV44+ffr87L3O/v37o6+66qomnTt3TurUqVPSqlWrygOMGjWqQVpaWlLLli1/8/TTT9cG52ysc+fOSVdddVWTpKSklq+99lrNULy2Ral79+5H0tPTzwSkO++8c9eXX35ZBeC7776rPHHixPjBgwcndO3atdmCBQuqJiQktAZ45pln6n7++efVU1NTk7/88stKS5curXjBBRckderUKemqq65qcuTIEfFV3+9///uDr7/+etzJkydl06ZNFZKSko57lnnKnjRpUs02bdr8Ji0tLWnMmDENfO1r7zI3b95c7siRI9GDBw8+8z7p2bPnkSpVqvzqMvhjjz1Wp0OHDsnt27dv8cwzz9QG+OCDD6p63rvdu3dveuzYMfG0ZdSoUQ06duyY3KtXryaheK2LWziP2bx4jtd58+ZVXbNmTcV+/fo1ve666wpcTlljASpIq1atqtSxY8fkhISEtjfccMOeV199Na5p06Yn09PT173//vsb7rzzzgSAO+64Y+/XX3+97vvvv1+zePHiapmZmbEzZsyoUbly5Zxly5ZlDBw48EB2drbPDzGAfv36HZw2bVrNt99+O2748OFnnTHt2bMnevv27eWXLVuWkZ6evu6KK644Mn/+/OpDhw7dl56evm7RokWZuZ+zdevW2EaNGp3Kb/v++te/1uvbt+/Br776at2zzz679a677moA8MQTT+xMT09ft2LFirUvvvhivZMnTwrA4cOHo+fNm7dx4cKFmc8880y9gr6exa158+anDh48GHPkyBHZvXt3uT59+hxevXp1xQ0bNpSrWbNmVoUKFXIaNWp0atGiRet79ep1Jpjfcccdu7t16/bT0qVLMy6++OJjo0ePTpg2bdrmr7/+el3nzp2PTJgwobav+vr27fvTwoULq8+dO7da9+7dfV4efOutt2rNmDFjY3p6+roJEyZs97WvvdffuHFjbP369fPdr998802FTz/9tNqyZcsyli9fvvaNN96ovWvXruguXbocdfdrRlJS0onXXnstDiA7O1uuvfbaA8uWLcs4ePBg9LJlyyoU/NWNDEVxzK5atapSampqsucv9/LevXv//Jvf/Ob43LlzN0ybNm1ruLe5pCtV96CKUuvWrY8tWbJk3VdffVXxnnvuaZiYmHhy+fLlVf71r39VB/j555+jAaZPn17z9ddfry0ibN26tfymTZvKZWRkVOjYseNRgK5du565tDNw4MBGmzZtqtC3b98D/fr1+wlg0KBBhy655JLk6tWrZyUkJGTlbke9evWyhw8fvvfqq69uXKlSpZxHH310x5gxY/bdf//95/Tu3btxmzZtjj/22GO7unbt2uzo0aPRo0aN2nPuueee2rx5c2x+27d69eqKS5YsqTplypQ6ADExMQrw9NNPx3/44Yc1oqKi2L9/f8yOHTtiAFq1anUsJiaGxMTE04cPHy6Rly/atWt3dNasWTXq1KlzOiYmhqioKD7++ONqaWlpR/bt2xdz0UUX+b1/s379+opDhgxpDM5lvC5duhyeOnVqzYkTJ9apXLly9qJFi9YDVKhQIefcc889OX78+HPefffdDffff3/93GU9+eST2/72t7/VO3r0aNSAAQMODh069FDufT179uwa77//flzjxo1PPPHEEzu2b9+e73799ttvK2ZmZlbs1KlTMsCRI0eiN27cGHvy5El54IEHGpw6dSpq3759MdWqVdsPEB0drRdccMFxgIYNG57as2dPif3MKIpj1lOHZ7nnbNgEp8S+2SJF586dj9erV+90q1atjjdr1uzE2LFj9wCcOHFCAB5//PH669atW1WxYkXt0KFDC1WVpKSkEwsXLqwG8MUXX1T2lDV79uwtnscZGRmxAFWqVNFevXodbNWq1Qlf9Z88eVJGjRq1/9Zbb93/0ksvxY0fP77uM888s2PSpEnbAC644IKkpUuX/uT5YARYu3ZtbL9+/ZoOGjToUIMGDbKysrL46KOPqvbu3fvMmUGLFi1OXHDBBUeGDRt2yLM9e/fujZ45c2bttWvX/nDq1Clp1qxZ65wc5z6vSJ4ngSXGhRdeeOS5556rN3z48L0A7du3PzZx4sQ6991334533323ZkzM2YdL+fLlc7Kyss5sfPPmzY+/8847Gxs1anQanNetQoUKev311x/M/dzRo0fvfeutt2o2a9bM502i5OTkU7Nmzdpy/PhxadKkSetrrrnmp9z7evLkydvuu+++vZ7nVK1aNXvmzJnVPZf5PvnkkyoXXnjhmQ/UNm3aHG/VqtWxBQsWbIiKiuLkyZNSvnx57d69e9OHHnpox2WXXXb05ptvbqiqPndoXvNLknAfs/6UK1fuV+8Zk7dSFaD89b4Ll7vvvnv3yJEjG7Vs2fJYWlpaEjgfbq+88sq2nj17HkpNTW3RtGnTE5UqVcoGGDJkyKE5c+bU7NixY3KHDh2Oejo+5OXhhx/endeyHTt2xPTv379JdHQ0p0+flueff/7HKVOmxL355pu1RIQ6deqcbtu27a+CW4sWLU498cQT2/r169ckOztbsrOzZeTIkb/q0fTYY4/tHD58eMJLL71UR1W58sorfxo3btzu5s2bH09JSWnRvHnzEzVq1DjrjC4s8ul9F0pdu3Y98pe//CWhS5cuRwEuvvjiI88999w53bt3P+LprJJbSkrK8c2bN5fv0aNHk4cffnjnSy+9tGXIkCGJng+ge++9d9fVV1992Ndzu3TpcqxLly7H8mrP6NGjG65Zs6ZiVlaWDBs2bK+vfZ37ObNnz940evTohs8991y97OxsmjRpcvLSSy89E6A6dux4olu3bodTU1OTo6OjtUKFCjn/+te/1g8YMODgTTfdlNikSZMT1apVy65WrVp2QV+/YPjrfRcu4T5m89OnT59Dw4cPT0xNTT3y/PPP7wjVNpVGUpJH1P3uu+82t2vXbl9xt8MYY0Llu+++q92uXbvE4m5HJLBOEsYYYyKSBShjjDERyQKUMcaYiGQByhhjTESyAGWMMSYiWYAKQkZGRmy1atXap6amJrdt27bFww8/XKcw5fn6MV9GRkasiHT4xz/+EeeZN2DAgEYNGjRoAzBnzpxq3ssKYv78+VXj4+PbpqamJrdr167F7373u8aevHD5lfvoo48Wajsj2dChQxOmT59eA2DFihUVoqKiOuzevTsaYPz48fF33333Od7r9+7duzE4+2nGjBnVC1JXampq8gUXXJDkmV6wYEEVEekwf/78qt5lB6NBgwZt0tLSks4///wWqampybNmzTrTtrzKfeONN2pkZmYG9Bue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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAADfCAYAAACj4kcNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAwzElEQVR4nO3dd3hUVfrA8e+bhAhIjQRQMISWIEVQQgI2BHQFlwVcEJYiYgEF/NnLrrqCdbGsBVlRQBEUEAVlkVVkV4FV0VBcFRRC6L036SR5f3/cOziGSWYymUkmyft5njyZ2845d+7cOXPuPfc9oqoYY4wxkSaquAtgjDHG+GIVlDHGmIhkFZQxxpiIZBWUMcaYiGQVlDHGmIhkFZQxxpiIFFPcBSiMZcuW1YyJiZkANMcqW2NMyZYDrMjKyrq1devWu4q7MJGgRFdQMTExE2rXrn1BfHz8/qioKHugyxhTYuXk5Mju3bub7tixYwLQrbjLEwlKequjeXx8/CGrnIwxJV1UVJTGx8cfxLkiZCj5FVSUVU7GmNLC/T4r6d/LIVOiL/Hllvjnf7UORTobRv1+WX7LMzIyYtu0adO0SZMmx44fPy69evXa99hjjwV9zTghIaH5pk2bVuTOo0mTJi3GjBmzfvjw4fsAevfuXe/rr7+usnXr1uUzZsyosnPnzhjPsoKaM2dO5aeeeurcnJwcycrKksGDB+8aOnToPl9lKXYjq4bkuDLyYJ7HdcCAAQm/+93vDg0cOPDAsmXLyrdp06bZ9u3bv69Vq1b2qFGj4vfu3Rvz/PPPb/es361bt/qzZ89en5GREbt06dIK/fv3PxhoMVJTU5NjYmJ00aJFqwHmzp1bqUuXLskff/zx6q5du/7iSTuYXdyxY0f00KFDz9+6detZWVlZ0rBhw+Pvvvvuxn79+tUbMmTInmuuueZwMOmGS4tJLUJybJffuDwiztmbbrop0XNcvdfzPl9Hjx59zoABA/bHxcXlBJt/WWE1dZCaN29+dPHixRnffffdqrfeeqvmoUOHQv5eNm3a9OiHH35YHeDYsWOydevW2OjoaAXo1avXoWArp4yMjNiHHnqo7syZM9ctXrw4Iz09fdV55513KpRlL2kuu+yyw1999VUlgAULFlRq27btL1988UUlgEWLFlVq37796S/2rKwsPBVIZmbmWbNnz65W0PxOnDghGzZsKAcwefLkuFatWh3xLAu2cgLo3bt3g+uvv36/57N588037zl1qkwf2tOK4pzNi/f5+u6779bYv39/dFHlXZJZBVVIv/zyS9SpU6fk1KlT0qdPn3ppaWlJrVu3Tp4/f35FgJEjR9Zq27ZtUvPmzS+45557zgPIzs6me/fu9du0aZN8yy23nJ9X2lWrVs0uV66cbt26NWb69OlVr7nmmtO/0kePHn3Ogw8+eG5OTg5/+MMf6rdu3To5LS0t6dNPP620dOnS8q1atWqSlpaWdMUVVzTOne7EiRPjbr755t116tTJAihXrhzdu3f/xXudvXv3Rl977bUN2rVrl9S2bdukFStWnAUwdOjQOmlpaUlNmza94IUXXqgBTmusXbt2Sddee22DpKSkpm+99Vb1ULy3RalTp06H09PTT1dI9913344vv/yyEsAPP/xw9tixY+P79euX0KFDh0Zz586tnJCQ0BzgxRdfrPXFF19UTU1NTf7yyy8rLl68uMIll1yS1LZt26Rrr722weHDh8VXfn/84x/3v/3223EnTpyQ9evXl09KSjrmWeZJe9y4cdVbtGhxQVpaWtLw4cPr+DrW3mlu2LCh3OHDh6P79et3+nPSpUuXw5UqVfrNZfCnn366ZuvWrZNbtWrV5MUXX6wB8PHHH1f2fHY7derU8OjRo+Ipy9ChQ+u0adMmuWvXrg1C8V4Xt3Ces3nxnK+zZ8+uvHLlygo9e/ZseOONNxY4nbLGKqggrVixomKbNm2SExISLrzlllt2vfnmm3ENGzY8kZ6evnrWrFlr77vvvgSAe++9d/e33367+scff1y5YMGCKpmZmbFTpkypdvbZZ+csWbIko0+fPvuys7N9fokB9OzZc/+kSZOqv//++3GDBg06o8W0a9eu6K1bt561ZMmSjPT09NW/+93vDs+ZM6fqgAED9qSnp6+eP39+Zu5tNm/eHFuvXr2T+e3fX//619o9evTY/80336x+6aWXNt9///11AJ599tnt6enpq5ctW7ZqzJgxtU+cOCEAhw4dip49e/a6efPmZb744ou1C/p+FrfGjRuf3L9/f8zhw4dl586d5bp3737o559/rrB27dpy1atXzypfvnxOvXr1Ts6fP39N165dT1fm9957786OHTseXLx4ccbll19+dNiwYQmTJk3a8O23365u167d4dGjR9fwlV+PHj0Ozps3r+rMmTOrdOrUyeflwffee++cKVOmrEtPT189evTorb6Otff669atiz3vvPPyPa7fffdd+X//+99VlixZkrF06dJV77zzTo0dO3ZEt2/f/oh7XDOSkpKOv/XWW3EA2dnZcsMNN+xbsmRJxv79+6OXLFlSvuDvbmQoinN2xYoVFVNTU5M9f7mXd+vW7ZcLLrjg2MyZM9dOmjRpc7j3uaQrVfegilLz5s2PLlq0aPU333xT4cEHH6ybmJh4YunSpZX+85//VAX45ZdfogEmT55c/e23364hImzevPms9evXl8vIyCjfpk2bIwAdOnQ4fWmnT58+9davX1++R48e+3r27HkQoG/fvgeuuOKK5KpVq2YlJCRk5S5H7dq1swcNGrT7uuuuq1+xYsWcp556atvw4cP3PPLII+d269atfosWLY49/fTTOzp06NDoyJEj0UOHDt11/vnnn9ywYUNsfvv3888/V1i0aFHlCRMm1ASIiYlRgBdeeCH+X//6V7WoqCj27t0bs23bthiAZs2aHY2JiSExMfHUoUOHSuTli5YtWx6ZNm1atZo1a56KiYkhKiqKTz/9tEpaWtrhPXv2xFx22WV+79+sWbOmQv/+/euDcxmvffv2hyZOnFh97NixNc8+++zs+fPnrwEoX758zvnnn39i1KhR53744YdrH3nkkfNyp/Xcc89t+dvf/lb7yJEjUb17994/YMCAA7mP9fTp06vNmjUrrn79+sefffbZbVu3bs33uH7//fcVMjMzK7Rt2zYZ4PDhw9Hr1q2LPXHihDz66KN1Tp48GbVnz56YKlWq7AWIjo7WSy655BhA3bp1T+7atavEfmcUxTnrycOz3NMaNsEpsR+2SNGuXbtjtWvXPtWsWbNjjRo1Oj5ixIhdAMePHxeAZ5555rzVq1evqFChgrZu3bqJqkpSUtLxefPmVQFYuHDh2Z60pk+fvtHzOiMjIxagUqVK2rVr1/3NmjU77iv/EydOyNChQ/feeeede1977bW4UaNG1XrxxRe3jRs3bgvAJZdckrR48eKDni9GgFWrVsX27NmzYd++fQ/UqVMnKysri08++aRyt27dTrcMmjRpcvySSy45PHDgwAOe/dm9e3f01KlTa6xateqnkydPSqNGjZrn5Dj3eUXybASWGJdeeunhl19+ufagQYN2A7Rq1ero2LFjaz788MPbPvzww+oxMWeeLmeddVZOVlbW6Z1v3LjxsQ8++GBdvXr1ToHzvpUvX15vuumm/bm3HTZs2O733nuveqNGjXzeJEpOTj45bdq0jceOHZMGDRo0v/766w/mPtbjx4/f8vDDD+/2bFO5cuXsqVOnVvVc5vvss88qXXrppae/UFu0aHGsWbNmR+fOnbs2KiqKEydOyFlnnaWdOnVq+Pjjj2+76qqrjtx+++11VdXnAc1rfkkS7nPWn3Llyv3mM2PyVqoqKH+978LlgQce2DlkyJB6TZs2PZqWlpYEzpfbG2+8saVLly4HUlNTmzRs2PB4xYoVswH69+9/YMaMGdXbtGmT3Lp16yOejg95eeKJJ3bmtWzbtm0xvXr1ahAdHc2pU6fklVde2TRhwoS4d9999xwRoWbNmqcuvPDC31RuTZo0Ofnss89u6dmzZ4Ps7GzJzs6WIUOG/KZH09NPP7190KBBCa+99lpNVeWaa645OHLkyJ2NGzc+lpKS0qRx48bHq1WrdkaLLizy6X0XSh06dDj8l7/8JaF9+/ZHAC6//PLDL7/88rmdOnU67OmskltKSsqxDRs2nNW5c+cGTzzxxPbXXnttY//+/RM9X0APPfTQjuuuu+6Qr23bt29/tH379kfzKs+wYcPqrly5skJWVpYMHDhwt69jnXub6dOnrx82bFjdl19+uXZ2djYNGjQ4ceWVV56uoNq0aXO8Y8eOh1JTU5Ojo6O1fPnyOf/5z3/W9O7de/9tt92W2KBBg+NVqlTJrlKlSnZB379g+Ot9Fy7hPmfz07179wODBg1KTE1NPfzKK69sC9U+lUZSkkfU/eGHHza0bNlyT3GXwxhjQuWHH36o0bJly8TiLkcksE4SxhhjIpJVUMYYYyKSVVDGGGMiklVQxhhjIpJVUMYYYyKSVVBByMjIiK1SpUqr1NTU5AsvvLDJE088UbMw6fl6mC8jIyNWRFr/4x//iPPM6927d706deq0AJgxY0YV72UFMWfOnMrx8fEXpqamJrds2bLJH/7wh/qeuHD5pfvUU08Vaj8j2YABAxImT55cDWDZsmXlo6KiWu/cuTMaYNSoUfEPPPDAud7rd+vWrT44x2nKlClVC5JXampq8iWXXJLkmZ47d24lEWk9Z86cyt5pB6NOnTot0tLSki6++OImqampydOmTTtdtrzSfeedd6plZmYG9AxPSVTUx3bt2rXlPNM9e/ZM/Oyzzyp5p7to0aIKucNUGd9K1XNQH327MySRka9rW8vvsxmeJ8azsrJo1KhR87vvvntPlSpVQhqd2BMsdvjw4ft8BYstTNodO3Y86HnIcNKkSdX69OlTPz09fXVe6WZnZzNu3Liajz76aNGP9Pmfv4QmmvlVf8vzuHqCxQ4cOPCAd7DYvn37Hly0aFGlIUOGnH6cwVew2IJEM4dfg8UmJiaeCmWw2OjoaE1PT18NTmy+zp07N27atOnxli1bnvCVblZWFrNmzapWs2bNrMaNG+cbJikc3tjwfEiO7W2JD0TMsc2LJ92lS5dW3LJlS2yXLl0iKrJ8JLIWVCGVxGCxud14440HTp06FbV+/fpynnTB+TU4ePDgupdddlnjESNG1Nq1a1dsampq8ksvvVSjdevWyVu3bo0BpwXQu3fveoV9L4tTaQgWm1tiYuKpwYMH75o6dWp173RHjx59TpcuXRpcddVVDR999NHaCxcurHr33XcndOnSpcGzzz4b//jjj9cEyMnJoWnTphcUZdTvcCjqY5sXT7pjxoypNWXKlBqpqanJ69evL+dvu7KsVLWgipIn8OSqVasq3HPPPds9gSenT5++cfPmzTHdu3dv9N1336269957d48cOXJnTk4OrVu3bpKZmbnnm2++qegJPDlv3ryz586dWy2vfDzBYr/66qvKr7/++iZPbDwPTwDRpUuXroqKiiI7O5snn3yy1oABA/bcf//9e7KzAwsIcN555530XObzlpKScnT8+PFbACZPnhy/ePHiDM+yN95445wnnnhi5/jx42sMGzZsd+5tSxJfwWJfffXVmrmDxU6dOnUTwLBhwwAnWOw777wT52mNpqSkJE+bNm1948aNTz755JM1R48eXcM7FJFHjx49Dg4ePLheUlLS8U6dOh3MzMw8IwirJ1jshRdeeCI7O9vnsfanXr16J//3v/9VzD3/yJEj0QsWLMiMiooiMzOzvGesqH379kV16NAhacSIEbs++eSTyq1atToS6isDRa2oj23Pnj0bxsbGKsC6devKe7fQAO64446dW7ZsiX3uuee2597W/FaJ/mVUnJo3b37UrWAy5s+fX2X58uUVPvroo7jU1NTknj17NvQOPJmSkpKclpaWHEjgydTU1ORnnnkm3jOvb9++B2bMmHHOsWPHovwF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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Multi bar Chart 1\n", - "x1 = df_gap22_cas['app']\n", - "y1 = 100 * df_gap22_cas['numRdMissClean'].astype(float)/(df_gap22_cas['numTotMisses'].astype(float)+df_gap22_cas['numTotHits'].astype(float))\n", - "y2 = 100 * df_gap22_cas['numRdMissDirty'].astype(float)/(df_gap22_cas['numTotMisses'].astype(float)+df_gap22_cas['numTotHits'].astype(float))\n", - "y3 = 100 * df_gap22_cas['numWrMissClean'].astype(float)/(df_gap22_cas['numTotMisses'].astype(float)+df_gap22_cas['numTotHits'].astype(float))\n", - "y4 = 100 * df_gap22_cas['numWrMissDirty'].astype(float)/(df_gap22_cas['numTotMisses'].astype(float)+df_gap22_cas['numTotHits'].astype(float))\n", - "y5 = 100 * df_gap22_cas['numRdHit'].astype(float)/(df_gap22_cas['numTotMisses'].astype(float)+df_gap22_cas['numTotHits'].astype(float))\n", - "y6 = 100 * df_gap22_cas['numWrHit'].astype(float)/(df_gap22_cas['numTotMisses'].astype(float)+df_gap22_cas['numTotHits'].astype(float))\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(6,3)\n", - "plt.ylim([0,105])\n", - "\n", - "for i,app in enumerate(x1): \n", - " plt.bar(i*6, y1[i], width=4, color=cmap2(0), label='Read-Miss-Clean' if i==0 else None)\n", - " plt.bar(i*6, y2[i], bottom = y1[i], width=4, color=cmap2(1), label='Read-Miss-Dirty' if i==0 else None)\n", - " plt.bar(i*6, y3[i], bottom = y1[i]+y2[i], width=4, color=cmap2(2), label='Write-Miss-Clean' if i==0 else None)\n", - " plt.bar(i*6, y4[i], bottom = y1[i]+y2[i]+y3[i], width=4, color=cmap2(3), label='Write-Miss-Dirty' if i==0 else None)\n", - " plt.bar(i*6, y5[i], bottom = y1[i]+y2[i]+y3[i]+y4[i], width=4, color=cmap2(4), label='Read-Hit' if i==0 else None)\n", - " plt.bar(i*6, y6[i], bottom = y1[i]+y2[i]+y3[i]+y4[i]+y5[i], width=4, color=cmap2(5), label='Write-Hit' if i==0 else None)\n", - "\n", - "offset = (i+1)*6\n", - "x2 = df_npbC_cas['app']\n", - "y1 = 100 * df_npbC_cas['numRdMissClean'].astype(float)/(df_npbC_cas['numTotMisses'].astype(float)+df_npbC_cas['numTotHits'].astype(float))\n", - "y2 = 100 * df_npbC_cas['numRdMissDirty'].astype(float)/(df_npbC_cas['numTotMisses'].astype(float)+df_npbC_cas['numTotHits'].astype(float))\n", - "y3 = 100 * df_npbC_cas['numWrMissClean'].astype(float)/(df_npbC_cas['numTotMisses'].astype(float)+df_npbC_cas['numTotHits'].astype(float))\n", - "y4 = 100 * df_npbC_cas['numWrMissDirty'].astype(float)/(df_npbC_cas['numTotMisses'].astype(float)+df_npbC_cas['numTotHits'].astype(float))\n", - "y5 = 100 * df_npbC_cas['numRdHit'].astype(float)/(df_npbC_cas['numTotMisses'].astype(float)+df_npbC_cas['numTotHits'].astype(float))\n", - "y6 = 100 * df_npbC_cas['numWrHit'].astype(float)/(df_npbC_cas['numTotMisses'].astype(float)+df_npbC_cas['numTotHits'].astype(float))\n", - "\n", - "for i,app in enumerate(x2): \n", - " plt.bar(i*6+offset, y1[i], width=4, color=cmap2(0))\n", - " plt.bar(i*6+offset, y2[i], bottom = y1[i], width=4, color=cmap2(1))\n", - " plt.bar(i*6+offset, y3[i], bottom = y1[i]+y2[i], width=4, color=cmap2(2))\n", - " plt.bar(i*6+offset, y4[i], bottom = y1[i]+y2[i]+y3[i], width=4, color=cmap2(3))\n", - " plt.bar(i*6+offset, y5[i], bottom = y1[i]+y2[i]+y3[i]+y4[i], width=4, color=cmap2(4))\n", - " plt.bar(i*6+offset, y6[i], bottom = y1[i]+y2[i]+y3[i]+y4[i]+y5[i], width=4, color=cmap2(5))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*6, list(x1)+list(x2))\n", - "plt.yticks(np.arange(6)*20, [0,20,40,60,80,100])\n", - "plt.axvline(x=offset-3, color='black')\n", - "\n", - "plt.ylabel(\"DRAM Cache Miss Rate (%)\", fontsize=10)\n", - "plt.legend(fontsize=9, ncol=3,loc=(0,1.02))\n", - "plt.tight_layout()\n", - "plt.savefig(\"/home/babaie/projects/rambusDesign/paper-draft1/papers/tdram-paper/hpca2024-latex-template/figures/hitMissBreakdown_g22nC.pdf\")\n", - "\n", - "# Multi bar Chart2\n", - "x1 = df_gap25_cas['app']\n", - "y1 = 100 * df_gap25_cas['numRdMissClean'].astype(float)/(df_gap25_cas['numTotMisses'].astype(float)+df_gap25_cas['numTotHits'].astype(float))\n", - "y2 = 100 * df_gap25_cas['numRdMissDirty'].astype(float)/(df_gap25_cas['numTotMisses'].astype(float)+df_gap25_cas['numTotHits'].astype(float))\n", - "y3 = 100 * df_gap25_cas['numWrMissClean'].astype(float)/(df_gap25_cas['numTotMisses'].astype(float)+df_gap25_cas['numTotHits'].astype(float))\n", - "y4 = 100 * df_gap25_cas['numWrMissDirty'].astype(float)/(df_gap25_cas['numTotMisses'].astype(float)+df_gap25_cas['numTotHits'].astype(float))\n", - "y5 = 100 * df_gap25_cas['numRdHit'].astype(float)/(df_gap25_cas['numTotMisses'].astype(float)+df_gap25_cas['numTotHits'].astype(float))\n", - "y6 = 100 * df_gap25_cas['numWrHit'].astype(float)/(df_gap25_cas['numTotMisses'].astype(float)+df_gap25_cas['numTotHits'].astype(float))\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(6,3)\n", - "plt.ylim([0,105])\n", - "\n", - "for i,app in enumerate(x1): \n", - " plt.bar(i*6, y1[i], width=4, color=cmap2(0), label='Read-Miss-Clean' if i==0 else None)\n", - " plt.bar(i*6, y2[i], bottom = y1[i], width=4, color=cmap2(1), label='Read-Miss-Dirty' if i==0 else None)\n", - " plt.bar(i*6, y3[i], bottom = y1[i]+y2[i], width=4, color=cmap2(2), label='Write-Miss-Clean' if i==0 else None)\n", - " plt.bar(i*6, y4[i], bottom = y1[i]+y2[i]+y3[i], width=4, color=cmap2(3), label='Write-Miss-Dirty' if i==0 else None)\n", - " plt.bar(i*6, y5[i], bottom = y1[i]+y2[i]+y3[i]+y4[i], width=4, color=cmap2(4), label='Read-Hit' if i==0 else None)\n", - " plt.bar(i*6, y6[i], bottom = y1[i]+y2[i]+y3[i]+y4[i]+y5[i], width=4, color=cmap2(5), label='Write-Hit' if i==0 else None)\n", - "\n", - "offset = (i+1)*6\n", - "x2 = df_npbD_cas['app']\n", - "y1 = 100 * df_npbD_cas['numRdMissClean'].astype(float)/(df_npbD_cas['numTotMisses'].astype(float)+df_npbD_cas['numTotHits'].astype(float))\n", - "y2 = 100 * df_npbD_cas['numRdMissDirty'].astype(float)/(df_npbD_cas['numTotMisses'].astype(float)+df_npbD_cas['numTotHits'].astype(float))\n", - "y3 = 100 * df_npbD_cas['numWrMissClean'].astype(float)/(df_npbD_cas['numTotMisses'].astype(float)+df_npbD_cas['numTotHits'].astype(float))\n", - "y4 = 100 * df_npbD_cas['numWrMissDirty'].astype(float)/(df_npbD_cas['numTotMisses'].astype(float)+df_npbD_cas['numTotHits'].astype(float))\n", - "y5 = 100 * df_npbD_cas['numRdHit'].astype(float)/(df_npbD_cas['numTotMisses'].astype(float)+df_npbD_cas['numTotHits'].astype(float))\n", - "y6 = 100 * df_npbD_cas['numWrHit'].astype(float)/(df_npbD_cas['numTotMisses'].astype(float)+df_npbD_cas['numTotHits'].astype(float))\n", - "\n", - "for i,app in enumerate(x2): \n", - " plt.bar(i*6+offset, y1[i], width=4, color=cmap2(0))\n", - " plt.bar(i*6+offset, y2[i], bottom = y1[i], width=4, color=cmap2(1))\n", - " plt.bar(i*6+offset, y3[i], bottom = y1[i]+y2[i], width=4, color=cmap2(2))\n", - " plt.bar(i*6+offset, y4[i], bottom = y1[i]+y2[i]+y3[i], width=4, color=cmap2(3))\n", - " plt.bar(i*6+offset, y5[i], bottom = y1[i]+y2[i]+y3[i]+y4[i], width=4, color=cmap2(4))\n", - " plt.bar(i*6+offset, y6[i], bottom = y1[i]+y2[i]+y3[i]+y4[i]+y5[i], width=4, color=cmap2(5))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*6, list(x1)+list(x2))\n", - "plt.yticks(np.arange(6)*20, [0,20,40,60,80,100])\n", - "plt.axvline(x=offset-3, color='black')\n", - "\n", - "plt.ylabel(\"DRAM Cache Miss Rate (%)\", fontsize=10)\n", - "plt.legend(fontsize=9, ncol=3, loc=(0,1.02))\n", - "plt.tight_layout()\n", - "plt.savefig(\"/home/babaie/projects/rambusDesign/paper-draft1/papers/tdram-paper/hpca2024-latex-template/figures/hitMissBreakdown_g25nD.pdf\")" - ] - }, - { - "cell_type": "code", - "execution_count": 27, + "execution_count": 76, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAC+CAYAAAA4A3UaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAkuklEQVR4nO3deZyVdd3/8dfbkVDJQNG4SVEQyJ9roGh6izkgZkgCmuKSt4LmFlbqnSktLpWiabtLN6hh4ZKViqmpaG65pKAICGIuEBIJaGAoIsLn98d1zXgYz8y5ZrnOnBnez8fjPOZc3+s65/rMWa75zHdVRGBmZmbWnmzU2gGYmZmZtTQnOGZmZtbuOMExMzOzdscJjpmZmbU7TnDMzMys3XGCY2ZmZu2OExwzMzNrdzInOJI6SarKMxgzMzOzllBvgiNpI0nHSrpb0hLgRWCxpDmSLpfUp3xhmpmZmWWn+mYylvQI8AAwBZgdEevS8i2BQcCxwO0RMblMsZqZmZll0lCC0yEi1jT44AzHmJmZmZVbvU1UNYmLpN6SOqb3qyV9XVKXwmPMzMzMKkmWTsZ/BNamfW4mAD2Am3KNyszMzKwZsiQ46yLiA+Aw4JcRcQ7QPd+wzMzMzJouS4KzRtIxwAnAXWlZh/xCMjMzM2ueLAnOGGBf4OKIeE1SL+C3+YZlZmZm1nT1jqIyMzMza6s2LnWApP2AC4Ht0+MFRETskG9oZmZmZk1TsgZH0ovAWcB0YG1NeUS8mW9oZmZmZk1TsgYHWBERf849EjMzM7MWkqUG51KgCrgNWF1THhHP5huamZmZWdNkSXAeKlIcETE4n5DMzMzMmsejqMzMzKzdqXceHEnHSWpof29JA/MJy8zMzKzpGupk3BV4TtJ0khFUS4FNgD7AAcAy4LzcIzQzMzNrpAabqCRVAYOB/UjWn1oFzAX+HBH/KEuEZmZmZo3kPjhmZmbW7mRZi8rMzMysTXGCY2ZmZu2OExwzMzNrd7IstjkA2B/4FEkn49nA1Ij4d86xmZmZmTVJQ/PcjJH0LDAO2BSYBywBBgIPSLpB0nblCdPMzMwsu4ZqcDYD9ouIVcV2SuoH9AU8XNzMzMwqioeJm5mZWbtTspOxpB9J+oSkDpIelLRU0nHlCM7MzMysKbKMovp8RLwNfBGYT7JUwzl5BmVmZmbWHFkSnJp+OsOA30fEihzjMTMzM2u2ksPEgbskvUgyRPx0SVsD7+UblpmZmVnTZepkLGlLYEVErJXUCdg8Iv6Ve3RmZmZmTVBvDY6kw4uUFW7elkdAZmZmZs3VUBPVoenPTwL/Dfwl3R4EPIETHDMzM6tQ9SY4ETEGQNL9wM4RsTjd7g5MKkt0JWy11VbRs2fP1g7DbIMyb948AHbcccdWjsTMDKZPn74sIrauW56lk3GPmuQm9QZQEUs09OzZk2nTprV2GGYblOrqagAefvjhVo3DzAxA0oJi5VkSnAcl3QfcnG4fBTzQUoGZmZmZtbSSCU5EnJF2ON4/LZoQEbfnG5aZmZlZ02WpwSEibsOdis3MzKyNKJngSNoH+CWwE/AxoAp4JyI+kXNsTbJ8+XKWLVvGmjVrWjsUs6K23HJLunXr1tphmLWKfS64L/OxT110cI6RWHuXpQbnSuBo4PfAAOB44NN5BtUcixcvpmfPnmyyySZ15+0xa3Vr167lpZdecoJjZpazLGtREREvA1URsTYifg18Id+wmmfTTTd1cmMVqaqqqrVDMDPbIGSpwXlX0seAGZJ+BCwmY2JkZmZm1hqyJDj/Q5LQnAGcBfQAvlTqQZJ6AL8BugFBMvrq5+m6Vr8DegLzgVER8W8lVS4/Bw4B3gVGR8Szjf2FCjWmrbchpdqBZ86cybnnnsuqVat4//33OeKIIzj77LNb5Nz1ef311znuuOMyz0XSp08fXn755ZLHXXjhhfTp04fjjjuumRFmN/yOYS3yPHeOvLvefStWrGDEiBEAzJgxg5122omOHTuybNkyNt98c6qqqogITj75ZEaPHg1Ar1692H777Vm7di09e/Zk0qRJtTUwl1xyCRMnTuTVV1+trS3s1asXBx54INdeey0Av/3tbzn++ON57bXX8ISUZmbllWWY+AJJmwLdI+KiRjz3B8D/RsSzkjYHpkuaCowGHoyISyWdB5wHnAsMBfqmt88C16Q/K9qKFSs47rjjuP322+nduzcRwf3339/aYVkdnTt3rk0Gq6urmTx5Mttuu+1695cvX87IkSPZfvvtGTRoEFVVVbWPOfHEE7n//vsZOnQoAHfddReDBw/m8ccfZ+DAgUDS/PSPf/yD1atX07FjR/7whz+w5557tsava2a2wSvZ1CTpUGAGcG+63U/SnaUeFxGLa2pgIuI/wFxgG2AEcEN62A3AyPT+COA3kXgK6JIuC1HR7r77bg499FB69+4NJAuSHnxwUuNzwgknUF1dzR577MGddyYv2S233MLee+/NoEGDGDduHAAPPfQQ++23H9XV1Zx11lkAnHvuuQwaNIg99tiDCRMmALBy5UqGDRvGkCFDuOSSS2pjWLhwIcOGDWPw4MEMGzaMpUuXZor94IMPprq6mr333psnn3xyvX1vv/02I0eO5N5772XWrFkMGTKEwYMHM2rUKFatWtWMV6xydenShe985zvcdNNN65WvW7eO5cuXExEAPPfcc+yyyy6cfvrpTJ48eb1jhw4dyt13382SJUvo0KEDXbp0KVf4ZmZWIEsT1YXA3sDDABExQ1KvxpxEUk+gP/A3oFvB0g//ImnCgiT5WVjwsNfTssJlIirOwoUL6dGjR9F9V199NZ06deLNN9/kgAMOYPjw4dx0001MnjyZT3/606xbt46I4PTTT+eRRx6hW7durF27FoDzzz+fTp06sXr1anbbbTfGjBnDxIkTGThwIOPGjePGG29kzpw5AJxzzjl873vfY5999mHKlClcdtllXHHFFSVjv+222+jUqRNz585l7Nix/OUvyXqqixcv5ogjjuDiiy9mr7324nOf+xyTJ09mu+224+c//znXXXcdZ5xxRgu9gpWlR48eLFq0CEhGPFVXV/Pqq6/Sv3//2sT1xhtv5IQTTmDAgAGcffbZrFmzhg4dOgBw9NFHc+aZZ7Jo0SJGjRpVm5yamVl5ZUlw1kTEijqjkiLrCSR9HPgjcGZEvF34PBERkjI/V/p8pwCnAGy3XesvidWjRw9mz579kfJ169Zx0UUX8cQTT7DxxhuzYEGyVMb48eO54ooreOeddxg1ahT77rsvXbt2rR02XNPH45prruGOO+6gqqqKJUuWsGTJEl566SWOOOIIAD772c8yceJEAGbNmsV5550HwAcffECfPn1Kxr1q1Sq+8Y1vMG/ePKqqqmr/qAP84he/YOzYsey1114AvPDCCxx//PEAvPfeewwZMqRJr1VbsHDhQrbZZhuA2iaqFStWMHToUJYvX84WW2zBlClTat/zJUuWcM8999T27+nevTsrV67klltu4YEHHnCCY2bWSrIkOC9IOhaoktQX+DrwRJYnl9SBJLm5MZ0NGeANSd0jYnHaBLUkLV9E0oG5xrZp2XoiYgIwAWDAgAGNSo7y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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAADSCAYAAADXL1aYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABGDElEQVR4nO3dd1hT9/828DtElkCIqCwFHCgoMixuWkVFcY/SgVoFSrVasa5aS/1W66haa8VRR13gHq2j1lUtilpFnOBGiigqwwkRUFbO84eP+TVllAOBEL1f15XrImflPiEJvPMZRyIIggARrK2t8ccff8Dd3R2bN2/GtGnTEBcXh3Xr1mHlypW4ePGimMMREREREdFrQE/sDpmZmbCwsAAAHDx4EH5+fqhZsyZ69+6NhIQEjQckIiIiIqLqT3RhYWdnh+joaGRnZ+PgwYPo3r07AODp06cwMjLSeEAiIiIiIqr+aojdYdy4cRgyZAhMTU3h4OAAb29vAMDx48fh6uqq6XxERERERKQDJGLHWADAuXPncPfuXXTr1g2mpqYAgH379kEul8PLy0vjIYmIiIiIqHorV2FBRERERET0T2XqCjVhwoQyH3DBggXlDkNERERERLqpTIXFv6eQvXDhAgoKCuDk5AQAuHnzJqRSKTw9PTWfkIiIiIiIqr0yFRZHjx5V/bxgwQKYmZlh3bp1qFWrFoCXM0IFBQXhnXfeqZyURERERERUrYkeY1GvXj0cOnQILi4uasuvXLmC7t27IyUlRaMBq4JSqURKSgrMzMwgkUi0HYeIiIiIqFoQBAHPnj2Dra0t9PRKv1KF6OlmFQoFHj58WGT5w4cP8ezZM7GHqxZSUlJgZ2en7RhERERERNXS3bt3Ub9+/VK3EV1YDBw4EEFBQfjxxx/Rpk0bAEBMTAwmTZqEd999t3xJtczMzAzAyydMJpNpOQ0RUfllZ2fD1tYWwMsvTUxMTLSciIiIdJlCoYCdnZ3q/+XSiC4sVqxYgS+++AKDBw9Gfn7+y4PUqIHg4GD88MMP4tNWA6+6P8lkMhYWRKTTpFKp6meZTMbCgoiINKIswwXKfR2L7OxsJCYmAgAaN26s03+8FAoFzM3NkZmZycKCiHRadna26sKlWVlZOv3ZTERE2ifm/2TRLRavmJiYwM3Nrby7ExERERHRa6RchcW5c+ewfft2JCcnIy8vT23dzp07NRKsOlEqlUXOk4iqF319fbVuQERERFS1RBcWW7duxbBhw+Dr64tDhw6he/fuuHnzJtLT0zFw4MDKyKhVeXl5SEpKglKp1HYUIvoPcrkc1tbWnDaaiIhIC0QXFrNnz0ZYWBhGjx4NMzMzLFq0CA0bNsSnn34KGxubysioNYIgIDU1FVKpFHZ2dv85dy8RaYcgCMjJycGDBw8A4LX7LCIizWg37Y8K7X96uq+GkhC9nkQXFomJiejduzcAwMDAANnZ2ZBIJBg/fjy6dOmC6dOnazykthQUFCAnJwe2traoWbOmtuMQUSmMjY0BAA8ePIClpSW7RREREVUx0V/B16pVS3UhvHr16uHKlSsAgIyMDOTk5Gg2nZYVFhYCeFlAEVH19+oLgFdTYRMREVHVEd1i0bFjRxw+fBiurq54//33MXbsWBw5cgSHDx9G165dKyOj1rG/NpFu4HuViIhIe0QXFj/99BNevHgBAJgyZQr09fVx6tQp+Pn54X//+5/GA9LrY9y4ccjIyEBERESVPm5gYCDkcjkWLlxYpY9LRERE9CYR3RXKwsICtra2L3fW08NXX32FPXv24Mcff0StWrU0HpDK5q+//kLPnj1Rq1YtyOVyuLu7Y968ea/NNLlRUVGQy+XajvFaMzU1Vd2kUikMDQ1V93v27AngZYtAzZo1IZPJYGFhgfbt22PhwoVqXY8iIiIglUphamoKMzMzODo6IiwsrMjjZWdnQyaToW3btkXWBQYGQiKRYPXq1WrLf/nlF0gkEgwYMECzJ09EREQVVq7rWCQmJiI8PByJiYlYtGgRLC0tceDAAdjb28PFxaXMx5kzZw527tyJGzduwNjYGB06dMD3338PJycn1TYvXrzAxIkTsXXrVuTm5sLX1xfLli2DlZWVapvk5GSMGjUKR48ehampKQICAjBnzhzUqFHu6/+VqqKzSpSFmJkn9u7di0GDBmHmzJnYsGED6tSpgxs3bmDu3LlITU2Fg4NDJSaliui3u3elP8aeAfvKtF1WVpbqZ29vbwwYMADjxo0rst2pU6fg4eGB/Px8nDp1CuPGjcPBgwdx4MABVVckV1dXxMbGqrb38fGBu7s7unTpojrO9u3bIZVKcfbsWVy5cgUtWrRQexwnJyeEh4fjk08+US0LDw+Hs7NzWU+diIiIqpDoFotjx47B1dUVMTEx2Llzp+qfkbi4OEybNk30sUaPHo3Tp0/j8OHDyM/PR/fu3ZGdna3aZvz48fj999/xyy+/4NixY0hJScG7776rWl9YWIjevXsjLy8Pp06dwrp16xAREYGpU6eKPTWdJAgCPv/8c0yePBnjxo1DnTp1AADOzs6IiIhQFRUfffQRbG1tIZPJ4OnpiaNHj6qOkZSUBB8fH5ibm8PCwgJeXl6qgfgKhQIhISFwcHCATCZD69atcffuXQDAggUL0KRJE5iZmaFx48b46aef1LIdP34crq6uMDU1xbvvvqsa9P9KYmIi+vbti7p168LBwQGzZs0q1/VCkpOT0a1bN9StWxe1atVC7969cfv27WK3LSgoQGBgIHx8fPDs2TNkZWUhJCQE9vb2sLS0xLBhw5CZmSk6w5tIX18fnTp1ws6dO3Hs2DEcOHCg2O06dOgAFxcXnD9/Xm35mjVrEBQUhI4dO2LNmjVF9uvWrRvu3LmDmzdvAgBSUlJw9uxZtlYQERFVU6ILi6+++gqzZs3C4cOH1WZL6tKlC06fPi3qWAcPHkRgYCBcXFzg7u6OiIgIJCcnq/4ByczMxJo1a7BgwQJ06dIFnp6eCA8Px6lTp1SPdejQIVy7dg0bN26Eh4cHevbsiZkzZ2Lp0qWvTTeg0iQkJCApKQmDBg0qdbuuXbvi+vXrePz4Mfz9/fHee++p/tGfMmUKHB0d8ejRI6Snp+OHH35QtfYEBgbi77//RnR0NDIyMrBy5UrVtJ4ODg44cuQIFAoFVq9ejUmTJuHkyZMAgKdPn6Jfv34ICQlBRkYGgoKCsHHjRlWenJwcdO3aFV27dsX9+/dx4sQJbN26FeHh4aKfA6VSiQkTJuDu3bu4c+cOatasieHDhxfZLjs7G/369cPz58+xf/9+mJmZ4eOPP8aTJ09w6dIlJCUlIT8/HyEhIaIzvMkaNmwIT09PHDt2rMg6QRBw/PhxXLlyBU2bNlUtj4+Px8mTJxEYGIiAgABs3LixyPtVKpVi2LBhWLt2LQBg3bp1+OCDD2BoaFi5J0RERETlIrqwuHz5crFX2La0tMSjR48qFObVN8UWFhYAgPPnzyM/Px8+Pj6qbZydnWFvb4/o6GgAQHR0NFxdXdW6Rvn6+kKhUODq1avFPk5ubi4UCoXaTVc9fPgQwMupf0sTFBQEc3Nz6OvrY9KkSVAqlbh06RKAl988p6am4vbt29DX10eHDh1gYGCA9PR07Nq1CytXroStrS309PTQsmVLVauIn58f7OzsIJFI0LlzZ/j6+iIqKgrAy+5Ztra2+PTTT1GjRg307dtXrRvMvn37UKtWLYwbNw4GBgawt7fH2LFjsXnzZtHPQYMGDdCzZ08YGRlBJpNhypQpOHHihFrrx6NHj9ClSxc4Ojpiy5YtMDAwwMOHD7Fjxw4sXboUcrkcJiYmmDFjBrZt26aaapjKpl69enjy5Inq/uXLlyGXy2FkZIROnTph4sSJ6Nevn2r9mjVr4OHhATc3N7z33nvIycnBb7/9VuS4gYGB2LBhAwoKChAREYGgoKAqOR8iIiIST3RhIZfLkZqaWmT5xYsX//Of29IolUqMGzcOXl5eqr7WaWlpMDAwKDJo18rKCmlpaapt/llUvFr/al1x5syZA3Nzc9XNzs6u3Lm17dU/+ffv3y9xG6VSiSlTpqBJkyaQyWSQy+XIzMxUFYI//PAD6tWrBx8fHzRo0ADffvstlEol7ty5A0NDQ9jb2xd73E2bNuGtt96ChYUF5HI59u/frzpmSkpKkbEd/7x/+/ZtXLlyBXK5XHWbOHFiib+z0jx8+BCDBw+GnZ0dZDIZOnbsiNzcXLWuV3/++ScSExMRGhqquoL67du3oVQq0bBhQ1WG1q1bQ09Pr1w53mT3799XfSEAvBxjkZGRgWfPnuGbb77BkSNHUFBQAOBld7T169cjICAAAGBmZoaBAwcW2x2qadOmaNiwIaZOnQoDAwO0atWqak6IiIiIRBNdWPj7+2Py5MlIS0uDRCKBUqnEyZMn8cUXX2DYsGHlDjJ69GhcuXIFW7duLfcxyio0NBSZmZmq26sxA7qoadOmaNCgQanP2+bNm7F582bs27cPmZmZyMjIgLm5OQRBAPCytWnZsmW4c+cOfv/9d6xYsQK7du2Cg4MDcnNzi31+kpOTERAQgHnz5uHBgwfIyMhAr169VMe0tbXFnTt3iuzzip2dHTw9PZGRkaG6ldbKVJrQ0FDk5OTgwoULUCgUOH78OACosgAvX7ejR4+Gt7e3qgizs7ODnp4eUlJS1HK8ePGiQkXym+b27ds4f/48vL29i6wzMDDA9OnT8fz5cyxbtgzAy9as9PR0zJw5E9bW1rC2tsaePXtw+PDhYl9rQUFBmDt3LlsriIiIqjnRhcXs2bPh7OwMOzs7ZGVloXnz5ujYsSM6dOhQ7utYhISEYO/evTh69Cjq16+vWm5tbY28vDxkZGSobZ+eng5ra2vVNunp6UXWv1pXHENDQ8hkMrWbrpJIJFiyZAnmzp2LJUuW4PHjxwCAmzdvIjg4GHfu3IFCoYCBgQHq1KmDvLw8zJgxQ+3b/O3btyM5ORmCIEAul0MqlaJGjRqwsrJC//79MXLkSKSmpkKpVOLixYt4/PgxsrKyIAgCLC0toaenh/379+PQoUOqY/bu3Rv379/HqlWrUFBQgH379uHIkSOq9X369EF6ejqWLVuGFy9eoLCwEPHx8aquVCV58eKF2q2wsBAKhQI1a9aEXC7H48ePMX369GL3nT59OoYMGQJvb2/cvXsX1tbWGDBgAEJCQlQtLWlpadi1a1d5fx1vlPz8fJw4cQJ+fn7o1KkTevToUex2EokEU6ZMwezZs5GTk4M1a9agX79+uHr1KmJjYxEbG4ubN2/C0dGx2DE2gwcPxqFDh4odN0NERETVh6jCQhAEpKWlYfHixbh16xb27t2LjRs34saNG9iwYQOkUqmoBxcEASEhIdi1axeOHDmChg0bqq339PSEvr4+IiMjVcvi4+ORnJyM9u3bAwDat2+Py5cv48GDB6ptDh8+DJlMhubNm4vKo6v69OmDAwcOYN++fWjcuDHkcjnee+89ODs7w8bGBgEBAXBxcYGDgwMaNWoEY2NjtQLu/Pnz6NChA0xNTdG+fXsEBwer+sOvW7cOdnZ2aNWqFeRyOUaOHInnz5+jefPmmDJlCrp06YLatWtj27Ztan3oLSws8Ntvv2HRokWQy+VYvXo1hgwZolpvamqKP//8E5GRkWjQoAFq166NwYMHl9oFKTMzE8bGxmq3DRs2YPr06fj7779Rq1YteHl5qa65UJypU6ciKCgI3t7euHPnDiIiIlRdoGQyGd55550isxeRug4dOsDMzAyWlpaYNGkSPvroI/z++++lXvX63XffhYWFBebPn48DBw5gwoQJqtaKV7cxY8YgPDxcraUJAIyNjeHj4wMzM7PKPjUiIiKqAInw77/ipVAqlTAyMsLVq1fRpEmTCj/4Z599hs2bN+O3335Tu3aFubm5auahUaNGYf/+/YiIiIBMJsOYMWMAvJwbH3g53ayHhwdsbW0xb948pKWlYejQofjkk08we/bsMuVQKBQwNzdHZmamWuvFixcvkJSUhIYNG8LIyKjC50tElYvv2Zezn5mamgJ4eW0SExMTLSciqj4qeh0qMdeYInpdlPR/cnFEtVjo6emhSZMmqu42FbV8+XJkZmbC29sbNjY2qtu2bdtU24SFhaFPnz7w8/NDx44dYW1tjZ07d6rWS6VS7N27F1KpFO3bt8dHH32EYcOGYcaMGRrJSERERERE/030pannzp2LSZMmYfny5UWulCtWWRpLjIyMsHTpUixdurTEbRwcHLB///4KZSEiIiIiovITXVgMGzYMOTk5cHd3h4GBgarL0iv/nMueiIiIiIjeDKILi4ULF1ZCDCIiIiIi0mWiC4tXF7UiIiIiIiJ6pUyDt7Ozs0UdVOz21Z2IibOISIuUSqW2IxAREb2xytRi4ejoiLFjxyIgIAA2NjbFbiMIAv78808sWLAAHTt2RGhoqEaDaoO+vj4kEgkePnyIunXrljpPPxFpjyAIyMvLw8OHD6GnpwcDAwNtRyIiInrjlKmwiIqKwtdff41vv/0W7u7uaNWqFWxtbWFkZISnT5/i2rVriI6ORo0aNRAaGopPP/20snNXCalUivr16+PevXu4ffu2tuMQ0X+oWbMm7O3toacnaiZtIiIi0oAyFRZOTk7YsWMHkpOT8csvv+DEiRM4deoUnj9/jjp16qBly5ZYtWoVevbsKfrq29WdqakpmjRpgvz8fG1HIaJSSKVS1KhRgy2LREREWiJq8La9vT0mTpyIiRMnVlaeakkqlb52BRMRERERkSaxvwAREREREVUYCwsiIiIiIqowFhZERERERFRhLCyIiIiIiKjCWFgQEREREVGFiS4sGjRogBkzZiA5Obky8hARERERkQ4SXViMGzcOO3fuRKNGjdCtWzds3boVubm5lZGNiIiIiIh0hEQQBKE8O164cAERERHYsmULCgsLMXjwYHz88cd46623NJ2x0ikUCpibmyMzMxMymUzbcYiIyi07OxumpqYAgKysLJiYmBS7Xbtpf1TocU5P963Q/kTawNc9kXhi/k8u9xiLt956C4sXL0ZKSgqmTZuG1atXo3Xr1vDw8MDatWtRznqFiIiIiIh0kKgrb/9Tfn4+du3ahfDwcBw+fBjt2rVDcHAw7t27h6+//hp//vknNm/erMmsRERERERUTYkuLC5cuIDw8HBs2bIFenp6GDZsGMLCwuDs7KzaZuDAgWjdurVGgxIRERERUfUlurBo3bo1unXrhuXLl2PAgAHQ19cvsk3Dhg3h7++vkYBERERERFT9iS4sbt26BQcHh1K3MTExQXh4eLlDERERERGRbhE9ePvBgweIiYkpsjwmJgbnzp0Tdazjx4+jb9++sLW1hUQiwe7du9XWBwYGQiKRqN169Oihts2TJ08wZMgQyGQyyOVyBAcHIysrS+xpERERERFRBYguLEaPHo27d+8WWX7//n2MHj1a1LGys7Ph7u6OpUuXlrhNjx49kJqaqrpt2bJFbf2QIUNw9epVHD58GHv37sXx48cxYsQIUTmIiIiIiKhiRHeFunbtWrHXqmjZsiWuXbsm6lg9e/ZEz549S93G0NAQ1tbWxa67fv06Dh48iLNnz6JVq1YAgCVLlqBXr16YP38+bG1tReUhIiIiIqLyEd1iYWhoiPT09CLLU1NTUaNGuWevLVFUVBQsLS3h5OSEUaNG4fHjx6p10dHRkMvlqqICAHx8fKCnp1dsdy0iIiIiIqocoguL7t27IzQ0FJmZmaplGRkZ+Prrr9GtWzeNhuvRowfWr1+PyMhIfP/99zh27Bh69uyJwsJCAEBaWhosLS3V9qlRowYsLCyQlpZW4nFzc3OhUCjUbkREREREVH6imxjmz5+Pjh07wsHBAS1btgQAxMbGwsrKChs2bNBouH9OWevq6go3Nzc0btwYUVFR6Nq1a7mPO2fOHEyfPl0TEYmIiIiICOVosahXrx4uXbqEefPmoXnz5vD09MSiRYtw+fJl2NnZVUZGlUaNGqFOnTr4+++/AQDW1tZ48OCB2jYFBQV48uRJieMyAKhaXF7dihuMTkREREREZVeuQREmJiZamXnp3r17ePz4MWxsbAAA7du3R0ZGBs6fPw9PT08AwJEjR6BUKtG2bdsSj2NoaAhDQ8MqyUxERERE9CYoV2GRkJCAo0eP4sGDB1AqlWrrpk6dWubjZGVlqVofACApKQmxsbGwsLCAhYUFpk+fDj8/P1hbWyMxMRFffvklHB0d4evrCwBo1qwZevTogeHDh2PFihXIz89HSEgI/P39OSMUEREREVEVEl1YrFq1CqNGjUKdOnVgbW0NiUSiWieRSEQVFufOnUPnzp1V9ydMmAAACAgIwPLly3Hp0iWsW7cOGRkZsLW1Rffu3TFz5ky11oZNmzYhJCQEXbt2hZ6eHvz8/LB48WKxp0VERERElaTdtD8qtP/p6b4aSkKVSXRhMWvWLHz33XeYPHlyhR/c29sbgiCUuP6PP/77RWhhYYHNmzdXOAsREREREZWf6MLi6dOneP/99ysjCxEREVG11W937wrtv2fAPg0lIaqeRM8K9f777+PQoUOVkYWIiIiIiHSU6BYLR0dHfPPNNzh9+jRcXV2hr6+vtv7zzz/XWDgiIiIiItINoguLlStXwtTUFMeOHcOxY8fU1kkkEhYWRERERERvINGFRVJSUmXkICIiIqJScGYl7eFzXzaix1i8kpeXh/j4eBQUFGgyDxERERER6SDRhUVOTg6Cg4NRs2ZNuLi4IDk5GQAwZswYzJ07V+MBiYiIiIio+hNdWISGhiIuLg5RUVEwMjJSLffx8cG2bds0Go6IiIiIiHSD6DEWu3fvxrZt29CuXTu1q267uLggMTFRo+GIiIiIiEg3iG6xePjwISwtLYssz87OVis0iIiIiIjozSG6sGjVqhX27fu/K0e+KiZWr16N9u3bay4ZERERERHpDNFdoWbPno2ePXvi2rVrKCgowKJFi3Dt2jWcOnWqyHUtiIiISB2nrSSi15XoFou3334bsbGxKCgogKurKw4dOgRLS0tER0fD09OzMjISEREREVE1J7rFAgAaN26MVatWaToLEZFO4TfPRERE/0d0i4VUKsWDBw+KLH/8+DGkUqlGQhERERERkW4RXVgIglDs8tzcXBgYGFQ4EBERERER6Z4yd4VavHgxgJezQK1evRqmpqaqdYWFhTh+/DicnZ01n5CIiIiIiKq9MhcWYWFhAF62WKxYsUKt25OBgQEaNGiAFStWaD4hERERERFVe2UuLJKSkgAAnTt3xs6dO1GrVq1KC0VERERERLpF9KxQR48erYwcRERERESkw8o13ey9e/ewZ88eJCcnIy8vT23dggULNBKMiIiIiIh0h+hZoSIjI+Hk5ITly5fjxx9/xNGjRxEeHo61a9ciNjZW1LGOHz+Ovn37wtbWFhKJBLt371ZbLwgCpk6dChsbGxgbG8PHxwcJCQlq2zx58gRDhgyBTCaDXC5HcHAwsrKyxJ4WERERERFVgOjCIjQ0FF988QUuX74MIyMj7NixA3fv3kWnTp3w/vvvizpWdnY23N3dsXTp0mLXz5s3D4sXL8aKFSsQExMDExMT+Pr64sWLF6pthgwZgqtXr+Lw4cPYu3cvjh8/jhEjRog9LSIiIiIiqgDRXaGuX7+OLVu2vNy5Rg08f/4cpqammDFjBvr3749Ro0aV+Vg9e/ZEz549i10nCAIWLlyI//3vf+jfvz8AYP369bCyssLu3bvh7++P69ev4+DBgzh79ixatWoFAFiyZAl69eqF+fPnw9bWVuzpERERERFROYguLExMTFTjKmxsbJCYmAgXFxcAwKNHjzQWLCkpCWlpafDx8VEtMzc3R9u2bREdHQ1/f39ER0dDLperigoA8PHxgZ6eHmJiYjBw4ECN5SEiIiLSZf129y73vnsG7NNgEnpdiS4s2rVrh7/++gvNmjVDr169MHHiRFy+fBk7d+5Eu3btNBYsLS0NAGBlZaW23MrKSrUuLS0NlpaWautr1KgBCwsL1TbFyc3NRW5uruq+QqHQVGwiIiIiojeS6MJiwYIFqsHR06dPR1ZWFrZt24YmTZrozIxQc+bMwfTp07Udg0gj2k37o0L7n57uq6EkRERE9CYTXVg0atRI9bOJiYnqatsFBQV48OCBxoJZW1sDANLT02FjY6Nanp6eDg8PD9U2/37MgoICPHnyRLV/cUJDQzFhwgTVfYVCATs7O41lJyIiIiJ605TrOhbFuXr1Kt566y0UFhZq5HgNGzaEtbU1IiMjVYWEQqFATEyMaoB4+/btkZGRgfPnz8PT0xMAcOTIESiVSrRt27bEYxsaGsLQ0FAjOTWF3zoTERERkS7TWGFRHllZWfj7779V95OSkhAbGwsLCwvY29tj3LhxmDVrFpo0aYKGDRvim2++ga2tLQYMGAAAaNasGXr06IHhw4djxYoVyM/PR0hICPz9/TkjFBERERFRFdJqYXHu3Dl07txZdf9V96SAgABERETgyy+/RHZ2NkaMGIGMjAy8/fbbOHjwIIyMjFT7bNq0CSEhIejatSv09PTg5+eHxYsXV/m5vOkq0uLC1hYi3VOR2WUAzjBDRPQ60mph4e3tDUEQSlwvkUgwY8YMzJgxo8RtLCwssHnz5sqIR0RE1RS7jxIRVT9lLiwuXbpU6vr4+PgKhyEiIqLqjUUdEZWkzIWFh4cHJBJJsS0Mr5ZLJBKNhiMiIiIiIt1Q5sIiKSmpMnMQEREREZEOK3Nh4eDgUJk5iIiIiIhIh2l18DYRERER0X/R9ZnodD1/WbGwoDceByISERERVRwLCyLSGhZ1RERErw8WFkRvuIo0z+pK0ywRERFVPj2xO2zZsqXEdZMmTapQGCIiIiIi0k2iC4tRo0bhwIEDRZaPHz8eGzdu1EgoIiIiIiLSLaK7Qm3atAmDBg3C3r178fbbbwMAxowZg507d+Lo0aMaD0hERKRp7AJIRKR5oguL3r17Y9myZejXrx8OHz6MNWvW4LfffsPRo0fRtGnTyshIZfCmTGNGRERERNVTuQZvDx48GBkZGfDy8kLdunVx7NgxODo6ajobERERERHpiDIVFhMmTCh2ed26dfHWW29h2bJlqmULFizQTDIiIiIiItIZZSosLl68WOxyR0dHKBQK1XqJRKK5ZEREREREpDPKVFhwUDYREREREZVG9HSzmZmZePLkSZHlT548gUKh0EgoIiIiIiLSLaILC39/f2zdurXI8u3bt8Pf318joYiIiIiISLeILixiYmLQuXPnIsu9vb0RExOjkVBERERERKRbRE83m5ubi4KCgiLL8/Pz8fz5c42EIiIqC16/hYiIqPoQ3WLRpk0brFy5ssjyFStWwNPTUyOhiIiIiIhIt4husZg1axZ8fHwQFxeHrl27AgAiIyNx9uxZHDp0SOMB6fXHb52JiIiIdJ/oFgsvLy9ER0ejfv362L59O37//Xc4Ojri0qVLeOeddzQa7ttvv4VEIlG7OTs7q9a/ePECo0ePRu3atWFqago/Pz+kp6drNAMREREREf030S0WAODh4YHNmzdrOkuxXFxc8Oeff6ru16jxf5HHjx+Pffv24ZdffoG5uTlCQkLw7rvv4uTJk1WSjYiIiIiIXipXYZGYmIjw8HDcunULCxcuhKWlJQ4cOAB7e3u4uLhoNmCNGrC2ti6yPDMzE2vWrMHmzZvRpUsXAEB4eDiaNWuG06dPo127dhrNQUREREREJRPdFerYsWNwdXVFTEwMduzYgaysLABAXFwcpk2bpvGACQkJsLW1RaNGjTBkyBAkJycDAM6fP4/8/Hz4+PiotnV2doa9vT2io6NLPWZubi4UCoXajYiIiIiIyk90YfHVV19h1qxZOHz4MAwMDFTLu3TpgtOnT2s0XNu2bREREYGDBw9i+fLlSEpKwjvvvINnz54hLS0NBgYGkMvlavtYWVkhLS2t1OPOmTMH5ubmqpudnZ1GcxMRERERvWlEd4W6fPlyseMrLC0t8ejRI42EeqVnz56qn93c3NC2bVs4ODhg+/btMDY2LvdxQ0NDMWHCBNV9hULB4oKIqlxFZkTjbGhERFTdiG6xkMvlSE1NLbL84sWLqFevnkZClfbYTZs2xd9//w1ra2vk5eUhIyNDbZv09PRix2T8k6GhIWQymdqNiIiIiIjKT3Rh4e/vj8mTJyMtLQ0SiQRKpRInT57EF198gWHDhlVGRpWsrCwkJibCxsYGnp6e0NfXR2RkpGp9fHw8kpOT0b59+0rNQURERERE6kR3hZo9ezZGjx4NOzs7FBYWonnz5igsLMTgwYPxv//9T6PhvvjiC/Tt2xcODg5ISUnBtGnTIJVKMWjQIJibmyM4OBgTJkyAhYUFZDIZxowZg/bt23NGKCIiem3xoqJEVF2JLiwMDAywatUqfPPNN7hy5QqysrLQsmVLNGnSROPh7t27h0GDBuHx48eoW7cu3n77bZw+fRp169YFAISFhUFPTw9+fn7Izc2Fr68vli1bpvEcRKXhH3kiIiKicl7HAgDs7e1hb2+vySxFbN26tdT1RkZGWLp0KZYuXVqpOYiIiIiIqHSiC4vCwkJEREQgMjISDx48gFKpVFt/5MgRjYUjIiIiIiLdILqwGDt2LCIiItC7d2+0aNECEomkMnIRERHRa4jTLBO9vkQXFlu3bsX27dvRq1evyshDREREREQ6SPR0swYGBnB0dKyMLEREREREpKNEFxYTJ07EokWLIAhCZeQhIiIiIiIdVKauUO+++67a/SNHjuDAgQNwcXGBvr6+2rqdO3dqLh0REREREemEMhUW5ubmavcHDhxYKWGIiIiIiEg3lamwCA8Pr+wcRERERESkw8o8xuLFixfYs2cPnj17VmSdQqHAnj17kJubq9FwRERERESkG8pcWPz8889YtGgRzMzMiqyTyWRYvHgxVq1apdFwRERERESkG8pcWGzatAnjxo0rcf24ceOwfv16TWQiIiIiIiIdU+bCIiEhAe7u7iWud3NzQ0JCgkZCERERERGRbilzYVFQUICHDx+WuP7hw4coKCjQSCgiIiIiItItZS4sXFxc8Oeff5a4/tChQ3BxcdFIKCIiIiIi0i1lLiw+/vhjzJw5E3v37i2y7vfff8d3332Hjz/+WKPhiIiIiIhIN5TpOhYAMGLECBw/fhz9+vWDs7MznJycAAA3btzAzZs38cEHH2DEiBGVFpSIiIiIiKqvMrdYAMDGjRuxdetWNG3aFDdv3kR8fDycnJywZcsWbNmypbIyEhERERFRNVfmFotXPvjgA3zwwQeVkYWIiIiIiHSUqBYLIiIiIiKi4rCwICIiIiKiCmNhQUREREREFfbaFBZLly5FgwYNYGRkhLZt2+LMmTPajkRERERE9MZ4LQqLbdu2YcKECZg2bRouXLgAd3d3+Pr64sGDB9qORkRERET0RhA9K9TAgQMhkUiKLJdIJDAyMoKjoyMGDx6sus5FVViwYAGGDx+OoKAgAMCKFSuwb98+rF27Fl999VWZj5OXl4e8vLzKilkqKQortL9eYcVqxIqed0Xy63J24M3Or8vZAd3OX1L2vLw86OvrF/n53/jc83VfXnzuy0+X8+tydoD5q+qxJYIgCGIOHhgYiN27d0Mul8PT0xMAcOHCBWRkZKB79+6Ii4vD7du3ERkZCS8vL3HJyyEvLw81a9bEr7/+igEDBqiWBwQEICMjA7/99luRfXJzc5Gbm6u6n5mZCXt7e4wfPx6GhoaVnpmIiIiISBfk5uYiLCwMGRkZMDc3L3Vb0S0W1tbWGDx4MH766Sfo6b2svpRKJcaOHQszMzNs3boVI0eOxOTJk/HXX3+V7wxEePToEQoLC2FlZaW23MrKCjdu3Ch2nzlz5mD69OlFloeFhVVKRiIiIiIiXfbs2bP/LCxEt1jUrVsXJ0+eRNOmTdWW37x5Ex06dMCjR49w+fJlvPPOO8jIyBAdWqyUlBTUq1cPp06dQvv27VXLv/zySxw7dgwxMTFF9vl3i4VSqcSTJ09Qu3btYrt5VXcKhQJ2dna4e/cuZDKZtuOIosvZAebXJl3ODuh2fl3ODuh2fl3ODuh2fl3ODuh2fl3ODuh+fkEQ8OzZM9ja2qoaFUoiusWioKAAN27cKFJY3LhxA4WFL/ufGRkZVdk/6HXq1IFUKkV6erra8vT0dFhbWxe7j6GhYZEuT3K5vLIiVhmZTKaTL1hAt7MDzK9Nupwd0O38upwd0O38upwd0O38upwd0O38upwd0O38/9VS8YrokSRDhw5FcHAwwsLC8Ndff+Gvv/5CWFgYgoODMWzYMADAsWPH4OLiIvbQ5WJgYABPT09ERkaqlimVSkRGRqq1YBARERERUeUR3WIRFhYGKysrzJs3T9VKYGVlhfHjx2Py5MkAgO7du6NHjx6aTVqKCRMmICAgAK1atUKbNm2wcOFCZGdnq2aJIiIiIiKiyiW6sJBKpZgyZQqmTJkChUIBAEWadezt7TWTrow+/PBDPHz4EFOnTkVaWho8PDxw8ODBIgO6X1eGhoaYNm2aTs5opcvZAebXJl3ODuh2fl3ODuh2fl3ODuh2fl3ODuh2fl3ODuh+fjFED94mIiIiIiL6N9EtFgDw66+/Yvv27UhOTi5y0YwLFy5oJBgREREREekO0YO3Fy9ejKCgIFhZWeHixYto06YNateujVu3bqFnz56VkZGIiIiIiKo50V2hnJ2dMW3aNAwaNAhmZmaIi4tDo0aNMHXqVDx58gQ//fRTZWUlIiIiIqJqSnSLRXJyMjp06AAAMDY2xrNnzwC8nIZ2y5Ytmk1Hary9vTFu3DhtxxDlvzLn5OTAz88PMpkMEomkSi6qSERlp4ufO68bQRAwYsQIWFhYQCKRIDY2VtuRykyXXz+6nJ1IW0QXFtbW1njy5AmAl7M/nT59GgCQlJQEjgMnsdatW4cTJ07g1KlTSE1NLfMFWIh0yev8D0qDBg2wcOFCbcd4rR08eBARERHYu3cvUlNT0bJlS+zevVvbscpk586dmDlzprZjEFEVKXNh0aVLF2RkZKBLly7Ys2cPACAoKAjjx49Ht27d8OGHH2LgwIGVFpReT4mJiWjWrBlatGgBa2vrKrtiO5Xu35MyEJH2JCYmwsbGBh06dIC1tbW244hiYWEBMzMzbccgoipS5sIiKioKeXl5WLlyJaZMmQIAGD16NNauXYtmzZphxowZWL58eaUFpZcKCgoQEhICc3Nz1KlTB998842qpSg3NxeTJ0+GnZ0dDA0N4ejoiDVr1mg5ccmZvb298eOPP+L48eOQSCTw9vYGACxbtgxNmjSBkZERrKys8N5772n3BP4/pVKJefPmwdHREYaGhrC3t8d3330HALh37x4GDRoECwsLmJiYoFWrVoiJidFy4v/j7e2NkJCQEl87DRo0wMyZMzFs2DDIZDKMGDGiyjP++uuvcHV1hbGxMWrXrg0fHx9kZ2cjKioKbdq0gYmJCeRyOby8vHDnzh0AQFxcHDp37gwzMzPIZDJ4enri3LlzAICIiAjI5XLs3r1b9Xry9fXF3bt3q/S8AgMDcezYMSxatAgSiQQSiQS3b9/G1atX0adPH8hkMpiZmeGdd95BYmJilWYrq9Lew3fu3MH48eNV51adlPaePXXqFDw8PGBkZIRWrVph9+7d1bKbUWBgIMaMGYPk5GRIJBI0aNAAADBw4EC1+9XVP1vrqutne1lIJJIirURyuRwRERFayfNv3t7eGDNmDMaNG4datWrBysoKq1atUl0s2MzMDI6Ojjhw4IBqnz179qh+H507d8a6deuqRZfkkv4WBAYGYsCAAZg+fTrq1q0LmUyGkSNHVpsvwoprvfXw8MC3334LAFiwYAFcXV1hYmICOzs7fPbZZ8jKyqr6oJVM9HSzenp60NP7v3rE398f/v7+Gg1FJVu3bh2Cg4Nx5swZnDt3DiNGjIC9vT2GDx+OYcOGITo6GosXL4a7uzuSkpLw6NEjbUcuMfPOnTvx1Vdf4cqVK9i5cycMDAxw7tw5fP7559iwYQM6dOiAJ0+e4MSJE9o+BQBAaGgoVq1ahbCwMLz99ttITU3FjRs3kJWVhU6dOqFevXrYs2cPrK2tceHCBSiVSm1HVlPaawcA5s+fj6lTp2LatGlVni01NRWDBg3CvHnzMHDgQDx79gwnTpyAIAgYMGAAhg8fji1btiAvLw9nzpxR/QM7ZMgQtGzZEsuXL4dUKkVsbCz09fVVx83JycF3332H9evXw8DAAJ999hn8/f1x8uTJKju3RYsW4ebNm2jRogVmzJgBACgsLETHjh3h7e2NI0eOQCaT4eTJkygoKKiyXGKU9h52d3fHiBEjVK+j6qSk96xCoUDfvn3Rq1cvbN68GXfu3Km2XdUWLVqExo0bY+XKlTh79iykUiksLS0RHh6OHj16QCqVajtimVTnz/bXxbp16/Dll1/izJkz2LZtG0aNGoVdu3Zh4MCB+PrrrxEWFoahQ4ciOTkZ6enpeO+99zB27Fh88sknuHjxIr744gttn0KpfwsAIDIyEkZGRoiKisLt27cRFBSE2rVrq74wqM709PSwePFiNGzYELdu3cJnn32GL7/8EsuWLdN2NM0SykgikQhHjx4V4uLiSr1R5enUqZPQrFkzQalUqpZNnjxZaNasmRAfHy8AEA4fPqzFhEWVllkQBGHs2LFCp06dVOt27NghyGQyQaFQVHXUUikUCsHQ0FBYtWpVkXU///yzYGZmJjx+/FgLycrmv34PDg4OwoABA7QVTzh//rwAQLh9+7ba8sePHwsAhKioqGL3MzMzEyIiIopdFx4eLgAQTp8+rVp2/fp1AYAQExOjufBl0KlTJ2Hs2LGq+6GhoULDhg2FvLy8Ks1RHmV57YSFhWkpXclKe88uX75cqF27tvD8+XPVslWrVgkAhIsXL1ZhyrIJCwsTHBwcVPcBCLt27dJaHjFevfar62d7af75vi3uOTc3NxfCw8OrPFdxOnXqJLz99tuq+wUFBYKJiYkwdOhQ1bLU1FQBgBAdHS1MnjxZaNGihdoxpkyZIgAQnj59WlWxiyjpb4EgCEJAQIBgYWEhZGdnq5YtX75cMDU1FQoLC6syZrGK+yx0d3cXpk2bVuz2v/zyi1C7du3KD1bFRA3e7tq1Kzw8PEq8tWzZUqNFDxXVrl07te4G7du3R0JCAi5evAipVIpOnTppMV3xSspcWFhYZNtu3brBwcEBjRo1wtChQ7Fp0ybk5ORUZdxiXb9+Hbm5uejatWuRdbGxsWjZsiUsLCy0kKzs/uv30KpVK21Fg7u7O7p27QpXV1e8//77WLVqFZ4+fQoLCwsEBgbC19cXffv2xaJFi5Camqrab8KECfjkk0/g4+ODuXPnFulKVKNGDbRu3Vp139nZGXK5HNevX6+ycytObGws3nnnHbXWlepMzHu4uijtPRsfHw83NzcYGRmplrVp06Yq471xqutn++vEzc1N9bNUKkXt2rXh6uqqWmZlZQUAePDgAeLj49U+G4Hq8R4o6W/BP9fXrFlTdb99+/bIysqq8i6u5fHnn3+ia9euqFevHszMzDB06FA8fvz4tXsfiCosYmJikJSUVOLt1q1blZWT/sM//0DqMjMzM1y4cAFbtmyBjY0Npk6dCnd3d633+TQ2Ni7XOl1iYmKitceWSqU4fPgwDhw4gObNm2PJkiVwcnJCUlISwsPDER0djQ4dOmDbtm1o2rSpaja6b7/9FlevXkXv3r1x5MgRNG/eHLt27dLaeZTV6/Kaqc74HFcv1fWzvawkEkmRmS/z8/O1lKZ4//6iQiKRqC179eVAdeum+0+l/S2o7vT09Ep8jdy+fRt9+vSBm5sbduzYgfPnz2Pp0qUAXr/JUkQVFvb29nBwcCj1RpXr3wOCT58+jSZNmsDd3R1KpRLHjh3TUrKSlZS5pL7BNWrUgI+PD+bNm4dLly7h9u3bOHLkSFVELVGTJk1gbGyMyMjIIuvc3NwQGxurmoa5uhL7e6hqEokEXl5emD59Oi5evAgDAwNVkdCyZUuEhobi1KlTaNGiBTZv3qzar2nTphg/fjwOHTqEd999F+Hh4ap1BQUFqsHcwMtvqjMyMtCsWbOqOzEABgYGat/uu7m54cSJE9XuH5OSlPba+fe5VRelvWednJxw+fJl5ObmqpadPXu2KuNViL6+frV8zv9LdfxsL6u6deuqtZYmJCTo9DfNTk5Oap+NQPV5D5T2tyAuLg7Pnz9XbXv69GmYmprCzs5OW3FV/v0aUSgUqoLo/PnzUCqV+PHHH9GuXTs0bdoUKSkp2opaqURfx4K0Kzk5GRMmTEB8fDy2bNmCJUuWYOzYsWjQoAECAgLw8ccfY/fu3UhKSkJUVBS2b9+u7cglZi7O3r17sXjxYsTGxuLOnTtYv349lEolnJycqji1OiMjI0yePBlffvkl1q9fj8TERJw+fRpr1qzBoEGDYG1tjQEDBuDkyZO4desWduzYgejoaK1m/jcxv4eqFhMTg9mzZ+PcuXNITk7Gzp078fDhQxgbGyM0NBTR0dG4c+cODh06hISEBDRr1gzPnz9HSEgIoqKicOfOHZw8eRJnz55VKxr09fUxZswYxMTE4Pz58wgMDES7du2qvMm/QYMGiImJwe3bt/Ho0SOEhIRAoVDA398f586dQ0JCAjZs2ID4+PgqzVVWpb12GjRogOPHj+P+/fvVYrKIV0p7zw4ePBhKpRIjRozA9evX8ccff2D+/PkAUO1mtipOgwYNEBkZibS0NLVuItVZdf1sL6suXbrgp59+wsWLF3Hu3DmMHDlSZ7oyFufTTz/FjRs3MHnyZNy8eRPbt29XzXClzfdASX8LXn2u5+XlITg4GNeuXcP+/fsxbdo0hISEqE0qpC1dunTBhg0bcOLECVy+fBkBAQGqL+4cHR2Rn5+PJUuW4NatW9iwYQNWrFih5cSVpKyDMby9vbU6oIdeDs767LPPhJEjRwoymUyoVauW8PXXX6sGVT5//lwYP368YGNjIxgYGAiOjo7C2rVrq3Xmfw/ePnHihNCpUyehVq1agrGxseDm5iZs27ZNS+nVFRYWCrNmzRIcHBwEfX19wd7eXpg9e7YgCIJw+/Ztwc/PT5DJZELNmjWFVq1aVfkA4dL81+9B2wNwr127Jvj6+gp169YVDA0NhaZNmwpLliwR0tLShAEDBqhe0w4ODsLUqVOFwsJCITc3V/D39xfs7OwEAwMDwdbWVggJCVENyA0PDxfMzc2FHTt2CI0aNRIMDQ0FHx8f4c6dO1V+fvHx8UK7du0EY2NjAYCQlJQkxMXFCd27dxdq1qwpmJmZCe+8846QmJhY5dn+y3+9dqKjowU3NzfB0NBQEPEnpUqU9p49efKk4ObmJhgYGAienp7C5s2bBQDCjRs3tJy6qH8P3t6zZ4/g6Ogo1KhRQ215dfRqAHR1/mwvyT8Hb9+/f1/o3r27YGJiIjRp0kTYv39/tRu8/c8JIgSh+M91/GMQ+m+//SY4OjoKhoaGgre3t7B8+XIBgNqkBlWtpL8FgvBy8Hb//v2FqVOnCrVr1xZMTU2F4cOHCy9evNBa3n/KzMwUPvzwQ0Emkwl2dnZCRESE2uDtBQsWCDY2NoKxsbHg6+srrF+/XuuD5SuDRBB4uWyi1523tzc8PDzeqCskR0REYNy4cTrTh5u0a9OmTQgKCkJmZibHZ9Ab6bvvvsOKFSuq7UDowMBAZGRk6MxV599Uoq9jQUREpOvWr1+PRo0aoV69eoiLi8PkyZPxwQcfsKigN8ayZcvQunVr1K5dGydPnsQPP/yAkJAQbcciHcfCgoiI3jhpaWmYOnUq0tLSYGNjg/fff18nLrJFpCkJCQmYNWsWnjx5Ant7e0ycOBGhoaHajkU6jl2hiIiIiIiowrQ/jJ6IiIiIiHSe6K5QEyZMKHa5RCKBkZERHB0d0b9//2p/FWIiIiIiItIc0V2hOnfujAsXLqCwsFA1//TNmzchlUrh7OyM+Ph4SCQS/PXXX2jevHmlhCYiIiIioupFdFeo/v37w8fHBykpKTh//jzOnz+Pe/fuoVu3bhg0aBDu37+Pjh07Yvz48ZWRl4iIiIiIqiHRLRb16tXD4cOHi7RGXL16Fd27d8f9+/dx4cIFdO/evVpdhZWIiIiIiCqP6BaLzMxMPHjwoMjyhw8fQqFQAADkcjny8vIqno6IiIiIiHRCubpCffzxx9i1axfu3buHe/fuYdeuXQgODsaAAQMAAGfOnEHTpk01nZWI/r+0tDSMHTsWjo6OMDIygpWVFby8vLB8+XLk5OSobTtnzhxIpVL88MMPRY4TEREBiUQCiUQCPT091K9fH0FBQWpfHrxaL5FIUKNGDdjb22PChAnIzc1VbfPw4UOMGjUK9vb2MDQ0hLW1NXx9fXHy5MkSz+H27dsIDg5Gw4YNYWxsjMaNG2PatGlqX0pERUWhf//+sLGxgYmJCTw8PLBp06aKPHVERJUiMDAQEokEc+fOVVu+e/duSCQSAC8/0/75mWplZQU/Pz/cunVLtX2DBg1U66VSKWxtbREcHIynT5/+Z4a8vDzMmzcP7u7uqFmzJurUqQMvLy+Eh4cjPz9fsydMVAzRs0L9/PPPGD9+PPz9/VFQUPDyIDVqICAgAGFhYQAAZ2dnrF69WrNJiQgAcOvWLXh5eUEul2P27NlwdXWFoaEhLl++jJUrV6JevXro16+favu1a9fiyy+/xNq1azFp0qQix5PJZIiPj4dSqURcXByCgoKQkpKCP/74Q7VNeHg4evTogfz8fNU2JiYmmDlzJgDAz88PeXl5WLduHRo1aoT09HRERkbi8ePHJZ7HjRs3oFQq8fPPP8PR0RFXrlzB8OHDkZ2djfnz5wMATp06BTc3N0yePBlWVlbYu3cvhg0bBnNzc/Tp00dTTykRkUYYGRnh+++/x6effopatWqVuF18fDzMzMyQkJCAESNGoG/fvrh06RKkUikAYMaMGRg+fDgKCwtx8+ZNjBgxAp9//jk2bNhQ4jHz8vLg6+uLuLg4zJw5E15eXpDJZDh9+jTmz5+Pli1bwsPDQ9OnTKROKKdnz54JcXFxQlxcnPDs2bPyHoaIRPL19RXq168vZGVlFbteqVSqfo6KihLq1asn5OXlCba2tsLJkyfVtg0PDxfMzc3Vln333XeCnp6ekJOTIwiCIAAQdu3apbZNcHCw0KtXL0EQBOHp06cCACEqKqqCZyYI8+bNExo2bFjqNr169RKCgoIq/FhERJoUEBAg9OnTR3B2dhYmTZqkWr5r1y7h1b9bR48eFQAIT58+Va3ftGmTAEC4ceOGIAiC4ODgIISFhakde+bMmULz5s1Lffzvv/9e0NPTEy5cuFBkXV5eXol/M4g0SXRXqI0bNyInJwempqZwc3ODm5sbTE1NNVzuEFFxHj9+jEOHDmH06NEwMTEpdptXTe4AsGbNGgwaNAj6+voYNGgQ1qxZ85+PYWxsDKVSqWqR/LebN2/iyJEjaNu2LQDA1NQUpqam2L17t1r3qPLIzMz8z2vglGUbIiJtkEqlmD17NpYsWYJ79+6VaR9jY2MAKHFs6v379/H777+rPnNLsmnTJvj4+KBly5ZF1unr65f4N4NIk0QXFuPHj4elpSUGDx6M/fv3o7CwsDJyEVEx/v77bwiCoLqGzCt16tRR/YM/efJkAIBCocCvv/6Kjz76CADw0UcfYfv27cjKyirx+AkJCVixYgVatWoFMzMz1fJBgwbB1NQURkZGcHJygouLC0JDQwG87AoZERGBdevWQS6Xw8vLC19//TUuXbok+tyWLFmCTz/9tMRttm/fjrNnzyIoKEjUsYmIqsrAgQPh4eGBadOm/ee2qampmD9/PurVq6f2uT558mSYmprC2NgY9evXh0QiwYIFC0o9VkJCApydnSucn6giRBcWqamp2Lp1KyQSCT744APY2Nhg9OjROHXqVGXkI6IyOHPmDGJjY+Hi4qJqNdiyZQsaN24Md3d3AICHhwccHBywbds2tX0zMzNhamqKmjVrwsnJCVZWVkUGSIeFhSE2NhZxcXHYu3cvbt68iaFDh6rW+/n5ISUlBXv27EGPHj0QFRWFt956CxEREQCAkSNHqgqf4lo479+/jx49euD999/H8OHDiz3Ho0ePIigoCKtWrYKLi0u5nysiosr2/fffY926dbh+/Xqx6+vXrw8TExPY2toiOzsbO3bsgIGBgWr9pEmTEBsbi0uXLiEyMhIA0Lt3b9WXuf/8PB05ciQAQBB39QCiylGRflTZ2dnCxo0bhV69egkGBgZCo0aNNNNBi4iK9ejRI0EikQhz5swpdn2nTp2EsWPHCoIgCK1btxYkEokglUpVN4lEInTo0EG1fXh4uGBmZiYkJCQIiYmJqnEV/4Rixlhs2bJFACAkJCSUmDU4OFiwt7cXBEEQ0tPThYSEBNXtn+7fvy80adJEGDp0qFBYWFjssaKiogQTExPh559/LvHxiIi0KSAgQOjfv7/qfq9evYT+/fsXO8biwoULwt9//y0oFIoixylujEV0dLQAQDh8+LAgCILa52l6erogCILg5uYmdO/evXJOjqiMRM8K9U81a9aEr68vnj59ijt37pRYmRORZtSuXRvdunXDTz/9hDFjxpTYZ/by5cs4d+4coqKi1MYjPHnyBN7e3rhx44aqyVxPTw+Ojo6icryaueT58+clbtO8eXPs3r0bAGBpaQlLS8si29y/fx+dO3eGp6cnwsPDoadXtBE1KioKffr0wffff48RI0aIyklEpC1z586Fh4dHka6rANCwYUPI5fIyH+vfn7nFfWYPHjwYX3/9NS5evFhknEV+fj7y8vI4zoIqneiuUACQk5ODTZs2oVevXqhXrx4WLlyIgQMH4urVq5rOR0T/smzZMhQUFKBVq1bYtm0brl+/jvj4eGzcuBE3btyAVCrFmjVr0KZNG3Ts2BEtWrRQ3Tp27IjWrVuXaRD3P2VkZCAtLQ0pKSk4duwYZsyYgaZNm6JZs2Z4/PgxunTpgo0bN+LSpUtISkrCL7/8gnnz5qF///4lHvP+/fvw9vaGvb095s+fj4cPHyItLQ1paWmqbY4ePYrevXvj888/h5+fn2r9kydPyv38ERFVBVdXVwwZMgSLFy8Wve+zZ8+QlpaG1NRUnDlzBpMmTULdunXRoUOHEvcZN24cvLy80LVrVyxduhRxcXG4desWtm/fjnbt2iEhIaEip0NUNmKbOD788EPBxMREqFu3rjB69Gjh1KlTldGSQkSlSElJEUJCQoSGDRsK+vr6gqmpqdCmTRvhhx9+EDIzM4XatWsL8+bNK3bf77//XrC0tBTy8vKKnW723wCobhKJRLCxsRE+/PBDITExURAEQXjx4oXw1VdfCW+99ZZgbm4u1KxZU3BychL+97//Fdu16pXw8HC1Y//z9kpAQECx6zt16iT6OSMiqkz/7golCIKQlJQkGBgYlDrd7L85ODiofd7VrVtX6NWrl3Dx4sX/zPDixQthzpw5gqurq2BkZCRYWFgIXl5eQkREhJCfn1+BsyMqG4kgiBvtM2TIEAwZMgS+vr6qprlXrly5ghYtWpS/yiEiIiIiIp0kurD4t2fPnmHLli1YvXo1zp8/z+lniYiIiIjeQOUaYwEAx48fR0BAAGxsbDB//nx06dIFp0+f1mQ2IiIiIiLSEaJmhUpLS0NERATWrFkDhUKBDz74ALm5udi9ezeaN29eWRmJiIiIiKiaK3OLRd++feHk5IRLly5h4cKFSElJwZIlSyozGxERERER6Ygyt1gcOHAAn3/+OUaNGoUmTZpUZiYiIiIiItIxZW6x+Ouvv/Ds2TN4enqibdu2+Omnn/Do0aPKzEZERERERDpC9KxQ2dnZ2LZtG9auXYszZ86gsLAQCxYswMcffwwzM7PKyklERERERNVYhaabjY+Px5o1a7BhwwZkZGSgW7du2LNnjybzERERERGRDqjwdSwAoLCwEL///jvWrl3LwoKIiIiI6A2kkcKCiIiIiIjebOW+QB4REREREdErLCyIiIiIiKjC/h93Oh1K/dn24AAAAABJRU5ErkJggg==", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "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J2lToEdEXNCExx5MkhzNkjQjLfs/ksTmVkknAPOAMem6e4ADgZeBd4BxTThWm1m+fDnHHHMMt99+O3369CEiuP/++9s6LKtniy22qEsGa2trmTJlCttvv/16fy9btoyDDz6YHXfckaFDh1JTU1O3z/HHH8/999/PiBEjALjrrrsYNmwYjz32GEOGDAGS6qe///3vrFq1is6dO/Pb3/6WT37yk23xdM3MNnhlq5okHQTMAO5NlwdIurPcfhHx54hQRHw8Igakt3si4s2I2C8i+kXE8Ij4V7p9RMT4iOgTEf0jol0MUXz33Xdz0EEH0adPHyCZkPSAA5IrPscddxy1tbXsscce3Hln8pLdcsst7LXXXgwdOpQJEyYA8NBDDzF48GBqa2s544wzADj77LMZOnQoe+yxBxMnTgRgxYoVjBw5kuHDh3PRRRfVxTB//nxGjhzJsGHDGDlyJA21TarvgAMOoLa2lr322osnnnhivXVvvfUWBx98MPfeey+zZs1i+PDhDBs2jDFjxrBy5coWvGLVq2vXrnzzm9/kpptuWq983bp1LFu2jKTJGDz77LPstttunHrqqUyZMmW9bUeMGMHdd9/N4sWL6dSpE127dq1U+GZmViRLFdX5wF4k3bmJiBmSeucYU7syf/58evbsWXLdT3/6U7p06cKbb77Jvvvuy6hRo7jpppuYMmUKH/vYx1i3bh0RwamnnsojjzzCtttuy9q1awE499xz6dKlC6tWraJ///6MGzeOSZMmMWTIECZMmMCNN97InDlzADjrrLP49re/zd57783UqVO59NJLufzyy8vGftttt9GlSxfmzp3L+PHj+eMfk/lUFy1axGGHHcaFF17InnvuyWc/+1mmTJnCDjvswI9//GOuu+46TjvttFZ6BatLz549Wbgwafq1du1aamtrefXVVxk4cGBd4nrjjTdy3HHHMWjQIM4880zWrFlDp06dADjyyCM5/fTTWbhwIWPGjKlLTs3MrLKyJDhrImJ5vV5JTer51JH17NmT2bNnf6B83bp1XHDBBTz++ONsvPHGzJuXTJVx8cUXc/nll/P2228zZswY9tlnH7baaqu6bsOFNh7XXHMNd9xxBzU1NSxevJjFixfz0ksvcdhhhwHwqU99ikmTJgEwa9YszjnnHADee+89+vbtWzbulStX8tWvfpUXX3yRmpqauh91gCuvvJLx48ez5557AvD8889z7LHHAvDuu+8yfPjwZr1W7cH8+fPZbrvtAOqqqJYvX86IESNYtmwZW265JVOnTq17zxcvXsw999xT176nR48erFixgltuuYUHHnjACY6ZWRvJkuA8L+looEZSP+ArwOP5htV+jBw5kosvvpgTTjihrppq2rRpbL311sycOZM///nPLF26tG5d7969mThxIqtWraJfv37MmzePf/3rXyxZsoTu3buzbt06li9fzg033MDMmTNZs2YNO++8MxFBv379mD59Ovvttx9PPfVUXQy77bYbEyZMYODAgQCsXr26bNz33nsvNTU1PProo8yZM4dRo0bVrfvud7/Lfffdx+TJkxk7diy77747N998Mz169Mj8+O3R8uXLufjii/nWt761XvkWW2zBKaecwqWXXsoBBxzA6NGj666QvfLKK0yYMKEuwQEYP348c+bMYdNNN61o/GZm9r4sCc6XgW8Cq4CbgPuA7+UZVGsp1/upNWyxxRZMmTKF8ePH8+6777J69WoOP/xwTj75ZNasWcO+++7LgAED6tpinHXWWcyaNYs1a9Zw8sknI4mrr76aUaNG0blzZwYOHMgPfvADdt11V4YMGcIuu+zCVlttBcCJJ57ImDFjmDZtGrvvvntdDFdccQXjx49nxYoVQNIgtn4vqH/84x/rXXmZMmUKF198McOHD2fw4MHrbbvxxhszZcoUxo0bx5o1a7j66qsZO3Zs3ejQEyZMYP/992+117CtR/08/PDDqampYd26dRx//PEMGzbsA9sceeSR9O/fn6VLl3L00UfXlffp04e5c+fy1lvvD/F04IEHcuCBB1YkdjMzK02FhpMlV0o1wAMRMbRyIWU3aNCgmD59/bbIc+fOZZdddmmjiMzKa++f0draWoDMQxSYtXeeqqG6SXo6IgbVL2+0F1VErAXWSdoit8jMzMzMWlmWKqoVJGPZTAPeLhRGxFdyi8rMzMysBbIkOLelt3YjIjwXlVWlxqqEzcys9WQZyfgXlQiktWyyySa8+eabbLXVVk5yrOq8++67dWPmmJlZfhpMcCT9HpgI3BsRa+qt2wkYC7weEdfnGmETbb/99ixYsCDzaL5mlVbobm9mZvlp7ArOicCZwI8k/QtYAmwC9CaZL+qqiJjayP5tolOnTvTu7YGWzczMNmQNJjgR8U/gG8A3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", + "image/png": "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cHCw2AVKJpPhgw8+KDR7ESnr0KEDjI2NYW5ujilTpuDTTz/FX3/9VeKq14MHD4apqSkWL16MgwcPwt/fX2yteHUbP348goKClFqaAMDAwABubm4wNjau6EsjIiKicpAI//0rXgKFQgF9fX3cuHEDDRo0qMhclSo9PR0mJiZIS0tTWizvxYsXiI2Nhb29PfT19aswIRGVBl+zL2c/MzIyAvBybRJDQ8MqTkRE1UV51k4q7ZpI9PYp7nNyUVRqsdDS0kKDBg3E7jZERERERERAGcZYLFiwAFOmTMH169crIg8REREREWkglVeRGzFiBLKzs9GiRQvo6uqKi6W98vpc9kRERERE9G5QubD4+eefKyAGERERERFpMpULi1eLWhEREREREb1SqjEWWVlZKp1U1eOrOxUmziKiKqRQKKo6AhER0TurVC0WDg4OmDBhAry8vGBlZVXkMYIg4OjRo1iyZAk6d+6MgIAAtQatCjo6OpBIJEhJSUHt2rVLnKefiKqOIAjIzc1FSkoKtLS0oKurW9WRiIiI3jmlKixCQ0Mxffp0fPfdd2jRogVat24Na2tr6Ovr49mzZ7h58ybCwsKgra2NgIAAfP755xWdu1JIpVK89957ePDgAeLi4qo6DhG9QY0aNWBrawstLZUnvCMiIqJyKlVh0ahRI+zatQvx8fHYuXMnTp06hbNnz+L58+eoVasWWrVqhTVr1qB3795v3erbRkZGaNCgAfLy8qo6ChGVQCqVQltbmy2LREREVUSlwdu2traYPHkyJk+eXFF5qiWpVPrWFUxEREREROrE/gJERERERFRuLCyIiIiIiKjcWFgQEREREVG5sbAgIiIiIqJyY2FBRERERETlpnJhUbduXcyZMwfx8fEVkYeIiIiIiDSQyoXFxIkTsXv3btSrVw89evTAtm3bkJOTUxHZiIiIiIhIQ5SpsIiIiMCFCxfQuHFjjB8/HlZWVvDz88Ply5dVOtfJkyfRv39/WFtbQyKRYO/evUr7vb29IZFIlG69evVSOubp06cYPnw4ZDIZ5HI5fH19kZmZqeplERERERFROZR5jMX777+PZcuWISEhAbNmzcLatWvRpk0btGzZEuvXr4cgCG88R1ZWFlq0aIFff/212GN69eqFxMRE8bZ161al/cOHD8eNGzdw5MgR7N+/HydPnsTo0aPLellERERERFQGKq28/bq8vDzs2bMHQUFBOHLkCNq3bw9fX188ePAA06dPx9GjR7Fly5YSz9G7d2/07t27xGP09PRgaWlZ5L5bt27h0KFDuHjxIlq3bg0AWL58Ofr06YPFixfD2tq6bBdHREREREQqUbmwuHz5MoKCgrB161ZoaWlhxIgRCAwMhKOjo3jMoEGD0KZNG7UEDA0Nhbm5OWrWrIlu3bph7ty5MDMzAwCEhYVBLpeLRQUAuLm5QUtLC+fPn8egQYPUkoGIiIioqrWf9U+5Hm/eSk1BiIqhcmHRpk0b9OjRAytXrsTAgQOho6NT6Bh7e3t4eHiUO1yvXr0wePBg2NvbIyYmBtOnT0fv3r0RFhYGqVSKpKQkmJubKz1GW1sbpqamSEpKKva8OTk5SgPO09PTy52ViIiIiOhdpnJhcffuXdjZ2ZV4jKGhIYKCgsoc6pXXi5PmzZvDyckJ9evXR2hoKLp3717m886fPx+zZ88udz4iIiIiInpJ5cHbjx49wvnz5wttP3/+PC5duqSWUMWpV68eatWqhX///RcAYGlpiUePHikdk5+fj6dPnxY7LgMAAgICkJaWJt7u379fobmJiIiIiN52KhcW48aNK/KD+MOHDzFu3Di1hCrOgwcP8OTJE1hZWQEAXFxckJqaivDwcPGYY8eOQaFQoF27dsWeR09PDzKZTOlGRERERERlp3JXqJs3b+L9998vtL1Vq1a4efOmSufKzMwUWx8AIDY2FhERETA1NYWpqSlmz56NIUOGwNLSEjExMZg6dSocHBzg7u4OAGjcuDF69eqFUaNGYdWqVcjLy4Ofnx88PDw4IxQRVbjyDqQ8N9tdTUmIiIiqnsotFnp6ekhOTi60PTExEdraqtUply5dQqtWrdCq1ctpCvz9/dGqVSvMnDkTUqkUV69exYABA9CwYUP4+vrC2dkZp06dgp6enniOzZs3w9HREd27d0efPn3QqVMnrF69WtXLIiIiIiKiclC5xaJnz54ICAjAn3/+CRMTEwBAamoqpk+fjh49eqh0LldX1xIX0vvnnzd/G2hqavrG9TKI3mb81pyIiIiqA5ULi8WLF6Nz586ws7MTWxoiIiJgYWGBTZs2qT0gERERERFVfyoXFnXq1MHVq1exefNmREZGwsDAAD4+PvD09CxyTQsiIiIiInr7qVxYAC/XqRg9erS6sxARERERkYYqU2Fx584dHD9+HI8ePYJCoVDaN3PmTLUEIyIiIiIizaFyYbFmzRqMHTsWtWrVgqWlJSQSibhPIpGwsCAiIiIiegepXFjMnTsXP/zwA6ZNm1YReYiIiIiISAOpvI7Fs2fPMHTo0IrIQkREREREGkrlwmLo0KE4fPhwRWQhIiIiIiINpXJXKAcHB3z77bc4d+4cmjdvXmiK2S+//FJt4YiIiIiISDOoXFisXr0aRkZGOHHiBE6cOKG0TyKRsLAgIiIiInoHqVxYxMbGVkQOIqoiA/b2LfNj9w08oMYkREREpMlUHmPxSm5uLqKjo5Gfn6/OPEREREREpIFUbrHIzs7G+PHjsWHDBgDA7du3Ua9ePYwfPx516tTB119/rfaQRERERKS52s/6p1yPPzfbXU1JqCKpXFgEBAQgMjISoaGh6NWrl7jdzc0N3333HQsLIiKiEvADVtXh756oYqlcWOzduxfbt29H+/btlVbdbtq0KWJiYtQajoiIKgY/YBERkbqpPMYiJSUF5ubmhbZnZWUpFRpERERERPTuULnFonXr1jhw4ADGjx8PAGIxsXbtWri4uKg3HRERERFRFWMrb+moXFjMmzcPvXv3xs2bN5Gfn4+lS5fi5s2bOHv2bKF1LYiIiIiI6N2gcleoTp06ISIiAvn5+WjevDkOHz4Mc3NzhIWFwdnZuSIyEhERERFRNadyiwUA1K9fH2vWrFF3FiIiolJhtwQioupH5RYLqVSKR48eFdr+5MkTSKVStYQiIiIiIiLNonJhIQhCkdtzcnKgq6tb7kBERERERKR5St0VatmyZQBezgK1du1aGBkZifsKCgpw8uRJODo6qj/hO4LN+kRERESkyUpdWAQGBgJ42WKxatUqpW5Purq6qFu3LlatWqXSDz958iQWLVqE8PBwJCYmYs+ePRg4cKC4XxAEzJo1C2vWrEFqaio6duyIlStXokGDBuIxT58+xfjx4/HXX39BS0sLQ4YMwdKlS5UKHyIiIiIiqlilLixiY2MBAF27dsXu3btRs2bNcv/wrKwstGjRAiNHjsTgwYML7V+4cCGWLVuGDRs2wN7eHt9++y3c3d1x8+ZN6OvrAwCGDx+OxMREHDlyBHl5efDx8cHo0aOxZcuWcucjIiIiIqLSUXlWqOPHj6vth/fu3Ru9e/cucp8gCPj555/xzTff4MMPPwQAbNy4ERYWFti7dy88PDxw69YtHDp0CBcvXkTr1q0BAMuXL0efPn2wePFiWFtbqy0rEREREREVr0zTzT548AD79u1DfHw8cnNzlfYtWbJELcFiY2ORlJQENzc3cZuJiQnatWuHsLAweHh4ICwsDHK5XCwqAMDNzQ1aWlo4f/48Bg0apJYsRERERERUMpULi5CQEAwYMAD16tVDVFQUmjVrhri4OAiCgPfff19twZKSkgAAFhYWStstLCzEfUlJSTA3N1far62tDVNTU/GYouTk5CAnJ0e8n56erq7YRKQCTlpARET09lB5utmAgAB89dVXuHbtGvT19bFr1y7cv38fXbp0wdChQysio9rNnz8fJiYm4s3GxqaqIxERERERaTSVC4tbt25hxIgRAF62Djx//hxGRkaYM2cOfvzxR7UFs7S0BAAkJycrbU9OThb3WVpaFlqsLz8/H0+fPhWPKUpAQADS0tLE2/3799WWm4iIiIjoXaRyVyhDQ0NxXIWVlRViYmLQtGlTAMDjx4/VFsze3h6WlpYICQlBy5YtAbzssnT+/HmMHTsWAODi4oLU1FSEh4fD2dkZAHDs2DEoFAq0a9eu2HPr6elBT09PbVmJiEizDNjbt8yP3TfwgBqTEBG9PVQuLNq3b4/Tp0+jcePG6NOnDyZPnoxr165h9+7daN++vUrnyszMxL///ivej42NRUREBExNTWFra4uJEydi7ty5aNCggTjdrLW1tbjWRePGjdGrVy+MGjUKq1atQl5eHvz8/ODh4cEZoYiIiIiIKpHKhcWSJUuQmZkJAJg9ezYyMzOxfft2NGjQQOUZoS5duoSuXbuK9/39/QEAXl5eCA4OxtSpU5GVlYXRo0cjNTUVnTp1wqFDh8Q1LABg8+bN8PPzQ/fu3cUF8l6tEk6VpzyDcDkAl4iIiEjzqVxY1KtXT/y3oaGhuNp2fn5+ofEOb+Lq6gpBEIrdL5FIMGfOHMyZM6fYY0xNTbkYHhERERFRFVN58HZxbty4wdmViIiIiIjeUWorLIiIiIiI6N3FwoKIiIiIiMqNhQUREREREZVbqQdvX716tcT90dHR5Q5DRERERESaqdSFRcuWLSGRSIqcxenVdolEotZwRERERESkGUpdWMTGxlZkDqIqU541OACuw0FEREQEqFBY2NnZVWQOIqJ3zoC9fcv82H0DD6gxCRERUflx8DYREREREZUbCwsiIiIiIio3FhZERERERFRupR5jQURU3ZRnjALAcQpERETqpHKLxdatW4vdN2XKlHKFISIiIiIizaRyi8XYsWMhl8vRu3dvpe2TJk3Ctm3bsGjRIrWFIyIiouqFU3QTUXFUbrHYvHkzPD09cfr0aXHb+PHjsWPHDhw/flyt4YiIiIiISDOoXFj07dsXK1aswIABAxAeHo4vvvgCu3fvxvHjx+Ho6FgRGYmIiIiIqJor0+DtYcOGITU1FR07dkTt2rVx4sQJODg4qDsbERERERFpiFIVFv7+/kVur127Nt5//32sWLFC3LZkyRL1JCMiIiIiIo1RqsLiypUrRW53cHBAenq6uF8ikagvGb0zOGUoERERkeYrVWHBQdlERERERFQSlcdYpKWloaCgAKampkrbnz59Cm1tbchkMrWFIyKi6oktjURUmfieoxlUnhXKw8MD27ZtK7R9x44d8PDwUEsoIiIiIiLSLCoXFufPn0fXrl0LbXd1dcX58+fVEoqIiIiIiDSLyoVFTk4O8vPzC23Py8vD8+fP1RKKiIiIiIg0i8qFRdu2bbF69epC21etWgVnZ2e1hHrlu+++g0QiUbq9vgjfixcvMG7cOJiZmcHIyAhDhgxBcnKyWjMQEREREdGbqTx4e+7cuXBzc0NkZCS6d+8OAAgJCcHFixdx+PBhtQds2rQpjh49Kt7X1v6/yJMmTcKBAwewc+dOmJiYwM/PD4MHD8aZM2fUnoOIiIjKrzyDcDkAl6h6U7mw6NixI8LCwrBw4ULs2LEDBgYGcHJywrp169CgQQP1B9TWhqWlZaHtaWlpWLduHbZs2YJu3boBAIKCgtC4cWOcO3cO7du3V3sWIiIiIiIqmsqFBQC0bNkSW7ZsUXeWIt25cwfW1tbQ19eHi4sL5s+fD1tbW4SHhyMvLw9ubm7isY6OjrC1tUVYWFiJhUVOTg5ycnLE++np6RV6DURERKT5OOUpUclUHmMBADExMfjmm28wbNgwPHr0CABw8OBB3LhxQ63h2rVrh+DgYBw6dAgrV65EbGwsPvjgA2RkZCApKQm6urqQy+VKj7GwsEBSUlKJ550/fz5MTEzEm42NjVpzExERERG9a1RusThx4gR69+6Njh074uTJk5g7dy7Mzc0RGRmJdevW4Y8//lBbuN69e4v/dnJyQrt27WBnZyd2wSqrgIAA+Pv7i/fT09NZXBARkUbgt+ZEVF2p3GLx9ddfY+7cuThy5Ah0dXXF7d26dcO5c+fUGu6/5HI5GjZsiH///ReWlpbIzc1Famqq0jHJyclFjsl4nZ6eHmQymdKNiIiIiIjKTuXC4tq1axg0aFCh7ebm5nj8+LFaQhUnMzMTMTExsLKygrOzM3R0dBASEiLuj46ORnx8PFxcXCo0BxERERERKVO5K5RcLkdiYiLs7e2Vtl+5cgV16tRRWzAA+Oqrr9C/f3/Y2dkhISEBs2bNglQqhaenJ0xMTODr6wt/f3+YmppCJpNh/PjxcHFx4YxQVKnYLYGIiIioDIWFh4cHpk2bhp07d0IikUChUODMmTP46quvMGLECLWGe/DgATw9PfHkyRPUrl0bnTp1wrlz51C7dm0AQGBgILS0tDBkyBDk5OTA3d0dK1asUGsGIiIiIiJ6M5ULi3nz5mHcuHGwsbFBQUEBmjRpgoKCAgwbNgzffPONWsNt27atxP36+vr49ddf8euvv6r152oifmtORERERFVJ5cJCV1cXa9aswbfffovr168jMzMTrVq1qpDF8YiIiIiISDOUaYE8ALC1tYWtra06sxARERERkYZSubAoKChAcHAwQkJC8OjRIygUCqX9x44dU1s4IiIiIiJN9650WVe5sJgwYQKCg4PRt29fNGvWDBKJpCJyERERERGRBlG5sNi2bRt27NiBPn36VEQeIiIiIiLSQCovkKerqwsHB4eKyEJERERERBpK5cJi8uTJWLp0KQRBqIg8RERERESkgUrVFWrw4MFK948dO4aDBw+iadOm0NHRUdq3e/du9aUjIiIiIiKNUKrCwsTEROn+oEGDKiQMERERERFpplIVFkFBQRWdg4iIiIiINFipx1i8ePEC+/btQ0ZGRqF96enp2LdvH3JyctQajoiIiIiINEOpC4vffvsNS5cuhbGxcaF9MpkMy5Ytw5o1a9QajoiIiIiINEOpC4vNmzdj4sSJxe6fOHEiNm7cqI5MRERERESkYUpdWNy5cwctWrQodr+TkxPu3LmjllBERERERKRZSl1Y5OfnIyUlpdj9KSkpyM/PV0soIiIiIiLSLKUuLJo2bYqjR48Wu//w4cNo2rSpWkIREREREZFmKXVhMXLkSHz//ffYv39/oX1//fUXfvjhB4wcOVKt4YiIiIiISDOUah0LABg9ejROnjyJAQMGwNHREY0aNQIAREVF4fbt2/j4448xevToCgtKRERERETVV6lbLADg999/x7Zt29CwYUPcvn0b0dHRaNSoEbZu3YqtW7dWVEYiIiIiIqrmSt1i8crHH3+Mjz/+uCKyEBERERGRhlKpxYKIiIiIiKgoLCyIiIiIiKjcWFgQEREREVG5vTWFxa+//oq6detCX18f7dq1w4ULF6o6EhERERHRO+OtKCy2b98Of39/zJo1C5cvX0aLFi3g7u6OR48eVXU0IiIiIqJ3gsqzQg0aNAgSiaTQdolEAn19fTg4OGDYsGHiOheVYcmSJRg1ahR8fHwAAKtWrcKBAwewfv16fP3116U+T25uLnJzcysqZomkKCjX47UKylcjlve6y5Nfk7MD73Z+Tc4OaHb+4rLn5uZCR0en0L//i797Pu/Lir/7stPk/JqcHWD+yvrZEkEQBFVO7u3tjb1790Iul8PZ2RkAcPnyZaSmpqJnz56IjIxEXFwcQkJC0LFjR9WSl0Fubi5q1KiBP/74AwMHDhS3e3l5ITU1FX/++Wehx+Tk5CAnJ0e8n5aWBltbW0yaNAl6enoVnpmIiIiISBPk5OQgMDAQqampMDExKfFYlVssLC0tMWzYMPzyyy/Q0npZfSkUCkyYMAHGxsbYtm0bxowZg2nTpuH06dNluwIVPH78GAUFBbCwsFDabmFhgaioqCIfM3/+fMyePbvQ9sDAwArJSERERESkyTIyMt5YWKjcYlG7dm2cOXMGDRs2VNp++/ZtdOjQAY8fP8a1a9fwwQcfIDU1VeXQqkpISECdOnVw9uxZuLi4iNunTp2KEydO4Pz584Ue898WC4VCgadPn8LMzKzIbl7VXXp6OmxsbHD//n3IZLKqjqMSTc4OMH9V0uTsgGbn1+TsgGbn1+TsgGbn1+TsgGbn1+TsgObnFwQBGRkZsLa2FhsViqNyi0V+fj6ioqIKFRZRUVEoKHjZ/0xfX7/SPqDXqlULUqkUycnJStuTk5NhaWlZ5GP09PQKdXmSy+UVFbHSyGQyjXzCApqdHWD+qqTJ2QHNzq/J2QHNzq/J2QHNzq/J2QHNzq/J2QHNzv+mlopXVB5J8tlnn8HX1xeBgYE4ffo0Tp8+jcDAQPj6+mLEiBEAgBMnTqBp06aqnrpMdHV14ezsjJCQEHGbQqFASEiIUgsGERERERFVHJVbLAIDA2FhYYGFCxeKrQQWFhaYNGkSpk2bBgDo2bMnevXqpd6kJfD394eXlxdat26Ntm3b4ueff0ZWVpY4SxQREREREVUslQsLqVSKGTNmYMaMGUhPTweAQs06tra26klXSp988glSUlIwc+ZMJCUloWXLljh06FChAd1vKz09PcyaNUsjZ7TS5OwA81clTc4OaHZ+Tc4OaHZ+Tc4OaHZ+Tc4OaHZ+Tc4OaH5+Vag8eJuIiIiIiOi/VG6xAIA//vgDO3bsQHx8fKFFMy5fvqyWYEREREREpDlUHry9bNky+Pj4wMLCAleuXEHbtm1hZmaGu3fvonfv3hWRkYiIiIiIqjmVu0I5Ojpi1qxZ8PT0hLGxMSIjI1GvXj3MnDkTT58+xS+//FJRWYmIiIiIqJpSucUiPj4eHTp0AAAYGBggIyMDwMtpaLdu3aredKTE1dUVEydOrOoYKnlT5uzsbAwZMgQymQwSiaRSFlUkotLTxPedt40gCBg9ejRMTU0hkUgQERFR1ZFKTZOfP5qcnaiqqFxYWFpa4unTpwBezv507tw5AEBsbCw4DpxUtWHDBpw6dQpnz55FYmJiqRdgIdIkb/MHlLp16+Lnn3+u6hhvtUOHDiE4OBj79+9HYmIiWrVqhb1791Z1rFLZvXs3vv/++6qOQUSVpNSFRbdu3ZCamopu3bph3759AAAfHx9MmjQJPXr0wCeffIJBgwZVWFB6O8XExKBx48Zo1qwZLC0tK23FdirZfydlIKKqExMTAysrK3To0AGWlpZVHUclpqamMDY2ruoYRFRJSl1YhIaGIjc3F6tXr8aMGTMAAOPGjcP69evRuHFjzJkzBytXrqywoPRSfn4+/Pz8YGJiglq1auHbb78VW4pycnIwbdo02NjYQE9PDw4ODli3bl0VJy4+s6urK3766SecPHkSEokErq6uAIAVK1agQYMG0NfXh4WFBT766KOqvYD/T6FQYOHChXBwcICenh5sbW3xww8/AAAePHgAT09PmJqawtDQEK1bt8b58+erOPH/cXV1hZ+fX7HPnbp16+L777/HiBEjIJPJMHr06ErP+Mcff6B58+YwMDCAmZkZ3NzckJWVhdDQULRt2xaGhoaQy+Xo2LEj7t27BwCIjIxE165dYWxsDJlMBmdnZ1y6dAkAEBwcDLlcjr1794rPJ3d3d9y/f79Sr8vb2xsnTpzA0qVLIZFIIJFIEBcXhxs3bqBfv36QyWQwNjbGBx98gJiYmErNVlolvYbv3buHSZMmiddWnZT0mj179ixatmwJfX19tG7dGnv37q2W3Yy8vb0xfvx4xMfHQyKRoG7dugCAQYMGKd2vrl5vrauu7+2lIZFICrUSyeVyBAcHV0me/3J1dcX48eMxceJE1KxZExYWFlizZo24WLCxsTEcHBxw8OBB8TH79u0T/z+6du2KDRs2VIsuycX9LfD29sbAgQMxe/Zs1K5dGzKZDGPGjKk2X4QV1XrbsmVLfPfddwCAJUuWoHnz5jA0NISNjQ2++OILZGZmVn7QCqbydLNaWlrQ0vq/esTDwwMeHh5qDUXF27BhA3x9fXHhwgVcunQJo0ePhq2tLUaNGoURI0YgLCwMy5YtQ4sWLRAbG4vHjx9XdeRiM+/evRtff/01rl+/jt27d0NXVxeXLl3Cl19+iU2bNqFDhw54+vQpTp06VdWXAAAICAjAmjVrEBgYiE6dOiExMRFRUVHIzMxEly5dUKdOHezbtw+Wlpa4fPkyFApFVUdWUtJzBwAWL16MmTNnYtasWZWeLTExEZ6enli4cCEGDRqEjIwMnDp1CoIgYODAgRg1ahS2bt2K3NxcXLhwQfwAO3z4cLRq1QorV66EVCpFREQEdHR0xPNmZ2fjhx9+wMaNG6Grq4svvvgCHh4eOHPmTKVd29KlS3H79m00a9YMc+bMAQAUFBSgc+fOcHV1xbFjxyCTyXDmzBnk5+dXWi5VlPQabtGiBUaPHi0+j6qT4l6z6enp6N+/P/r06YMtW7bg3r171bar2tKlS1G/fn2sXr0aFy9ehFQqhbm5OYKCgtCrVy9IpdKqjlgq1fm9/W2xYcMGTJ06FRcuXMD27dsxduxY7NmzB4MGDcL06dMRGBiIzz77DPHx8UhOTsZHH32ECRMm4H//+x+uXLmCr776qqovocS/BQAQEhICfX19hIaGIi4uDj4+PjAzMxO/MKjOtLS0sGzZMtjb2+Pu3bv44osvMHXqVKxYsaKqo6mXUEoSiUQ4fvy4EBkZWeKNKk6XLl2Exo0bCwqFQtw2bdo0oXHjxkJ0dLQAQDhy5EgVJiyspMyCIAgTJkwQunTpIu7btWuXIJPJhPT09MqOWqL09HRBT09PWLNmTaF9v/32m2BsbCw8efKkCpKVzpv+H+zs7ISBAwdWVTwhPDxcACDExcUpbX/y5IkAQAgNDS3yccbGxkJwcHCR+4KCggQAwrlz58Rtt27dEgAI58+fV1/4UujSpYswYcIE8X5AQIBgb28v5ObmVmqOsijNcycwMLCK0hWvpNfsypUrBTMzM+H58+fitjVr1ggAhCtXrlRiytIJDAwU7OzsxPsAhD179lRZHlW8eu5X1/f2krz+ui3qd25iYiIEBQVVeq6idOnSRejUqZN4Pz8/XzA0NBQ+++wzcVtiYqIAQAgLCxOmTZsmNGvWTOkcM2bMEAAIz549q6zYhRT3t0AQBMHLy0swNTUVsrKyxG0rV64UjIyMhIKCgsqMWaSi3gtbtGghzJo1q8jjd+7cKZiZmVV8sEqm0uDt7t27o2XLlsXeWrVqpdaihwpr3769UncDFxcX3LlzB1euXIFUKkWXLl2qMF3RistcUFBQ6NgePXrAzs4O9erVw2effYbNmzcjOzu7MuMW6datW8jJyUH37t0L7YuIiECrVq1gampaBclK703/D61bt66qaGjRogW6d++O5s2bY+jQoVizZg2ePXsGU1NTeHt7w93dHf3798fSpUuRmJgoPs7f3x//+9//4ObmhgULFhTqSqStrY02bdqI9x0dHSGXy3Hr1q1Ku7aiRERE4IMPPlBqXanOVHkNVxclvWajo6Ph5OQEfX19cVvbtm0rM947p7q+t79NnJycxH9LpVKYmZmhefPm4jYLCwsAwKNHjxAdHa303ghUj9dAcX8LXt9fo0YN8b6LiwsyMzMrvYtrWRw9ehTdu3dHnTp1YGxsjM8++wxPnjx5614HKhUW58+fR2xsbLG3u3fvVlROeoPX/0BqMmNjY1y+fBlbt26FlZUVZs6ciRYtWlR5n08DA4My7dMkhoaGVfazpVIpjhw5goMHD6JJkyZYvnw5GjVqhNjYWAQFBSEsLAwdOnTA9u3b0bBhQ3E2uu+++w43btxA3759cezYMTRp0gR79uypsusorbflOVOd8XdcvVTX9/bSkkgkhWa+zMvLq6I0RfvvFxUSiURp26svB6pbN93XlfS3oLrT0tIq9jkSFxeHfv36wcnJCbt27UJ4eDh+/fVXAG/fZCkqFRa2traws7Mr8UYV678Dgs+dO4cGDRqgRYsWUCgUOHHiRBUlK15xmYvrG6ytrQ03NzcsXLgQV69eRVxcHI4dO1YZUYvVoEEDGBgYICQkpNA+JycnREREiNMwV1eq/j9UNolEgo4dO2L27Nm4cuUKdHV1xSKhVatWCAgIwNmzZ9GsWTNs2bJFfFzDhg0xadIkHD58GIMHD0ZQUJC4Lz8/XxzMDbz8pjo1NRWNGzeuvAsDoKurq/TtvpOTE06dOlXtPpgUp6Tnzn+vrboo6TXbqFEjXLt2DTk5OeK2ixcvVma8ctHR0amWv/M3qY7v7aVVu3ZtpdbSO3fuaPQ3zY0aNVJ6bwSqz2ugpL8FkZGReP78uXjsuXPnYGRkBBsbm6qKK/rvcyQ9PV0siMLDw6FQKPDTTz+hffv2aNiwIRISEqoqaoVSeR0Lqlrx8fHw9/dHdHQ0tm7diuXLl2PChAmoW7cuvLy8MHLkSOzduxexsbEIDQ3Fjh07qjpysZmLsn//fixbtgwRERG4d+8eNm7cCIVCgUaNGlVyamX6+vqYNm0apk6dio0bNyImJgbnzp3DunXr4OnpCUtLSwwcOBBnzpzB3bt3sWvXLoSFhVVp5v9S5f+hsp0/fx7z5s3DpUuXEB8fj927dyMlJQUGBgYICAhAWFgY7t27h8OHD+POnTto3Lgxnj9/Dj8/P4SGhuLevXs4c+YMLl68qFQ06OjoYPz48Th//jzCw8Ph7e2N9u3bV3qTf926dXH+/HnExcXh8ePH8PPzQ3p6Ojw8PHDp0iXcuXMHmzZtQnR0dKXmKq2Snjt169bFyZMn8fDhw2oxWcQrJb1mhw0bBoVCgdGjR+PWrVv4559/sHjxYgCodjNbFaVu3boICQlBUlKSUjeR6qy6vreXVrdu3fDLL7/gypUruHTpEsaMGaMxXRmL8vnnnyMqKgrTpk3D7du3sWPHDnGGq6p8DRT3t+DV+3pubi58fX1x8+ZN/P3335g1axb8/PyUJhWqKt26dcOmTZtw6tQpXLt2DV5eXuIXdw4ODsjLy8Py5ctx9+5dbNq0CatWrarixBWktIMxXF1dq3RAD70cnPXFF18IY8aMEWQymVCzZk1h+vTp4qDK58+fC5MmTRKsrKwEXV1dwcHBQVi/fn21zvzfwdunTp0SunTpItSsWVMwMDAQnJychO3bt1dRemUFBQXC3LlzBTs7O0FHR0ewtbUV5s2bJwiCIMTFxQlDhgwRZDKZUKNGDaF169aVPkC4JG/6f6jqAbg3b94U3N3dhdq1awt6enpCw4YNheXLlwtJSUnCwIEDxee0nZ2dMHPmTKGgoEDIyckRPDw8BBsbG0FXV1ewtrYW/Pz8xAG5QUFBgomJibBr1y6hXr16gp6enuDm5ibcu3ev0q8vOjpaaN++vWBgYCAAEGJjY4XIyEihZ8+eQo0aNQRjY2Phgw8+EGJiYio925u86bkTFhYmODk5CXp6eoIKf1IqRUmv2TNnzghOTk6Crq6u4OzsLGzZskUAIERFRVVx6sL+O3h73759goODg6Ctra20vTp6NQC6Or+3F+f1wdsPHz4UevbsKRgaGgoNGjQQ/v7772o3ePv1CSIEoej3dbw2CP3PP/8UHBwcBD09PcHV1VVYuXKlAEBpUoPKVtzfAkF4OXj7ww8/FGbOnCmYmZkJRkZGwqhRo4QXL15UWd7XpaWlCZ988okgk8kEGxsbITg4WGnw9pIlSwQrKyvBwMBAcHd3FzZu3Fjlg+UrgkQQuFw20dvO1dUVLVu2fKdWSA4ODsbEiRM1pg83Va3NmzfDx8cHaWlpHJ9B76QffvgBq1atqrYDob29vZGamqoxq86/q1Rex4KIiEjTbdy4EfXq1UOdOnUQGRmJadOm4eOPP2ZRQe+MFStWoE2bNjAzM8OZM2ewaNEi+Pn5VXUs0nAsLIiI6J2TlJSEmTNnIikpCVZWVhg6dKhGLLJFpC537tzB3Llz8fTpU9ja2mLy5MkICAio6lik4dgVioiIiIiIyq3qh9ETEREREZHGU7krlL+/f5HbJRIJ9PX14eDggA8//LDar0JMRERERETqo3JXqK5du+Ly5csoKCgQ55++ffs2pFIpHB0dER0dDYlEgtOnT6NJkyYVEpqIiIiIiKoXlbtCffjhh3Bzc0NCQgLCw8MRHh6OBw8eoEePHvD09MTDhw/RuXNnTJo0qSLyEhERERFRNaRyi0WdOnVw5MiRQq0RN27cQM+ePfHw4UNcvnwZPXv2rFarsBIRERERUcVRucUiLS0Njx49KrQ9JSUF6enpAAC5XI7c3NzypyMiIiIiIo1Qpq5QI0eOxJ49e/DgwQM8ePAAe/bsga+vLwYOHAgAuHDhAho2bKjurET0/yUlJWHChAlwcHCAvr4+LCws0LFjR6xcuRLZ2dlKx86fPx9SqRSLFi0qdJ7g4GBIJBJIJBJoaWnhvffeg4+Pj9KXB6/2SyQSaGtrw9bWFv7+/sjJyRGPSUlJwdixY2Fraws9PT1YWlrC3d0dZ86cKfYa4uLi4OvrC3t7exgYGKB+/fqYNWuW0pcScXFxSj//1e3cuXPl+fUREamdt7c3JBIJFixYoLR97969kEgkAIDQ0FCl9zILCwsMGTIEd+/eFY+vW7euuF8qlcLa2hq+vr549uxZiT//9fdzqVSKmjVrol27dpgzZw7S0tLUf8FERVB5VqjffvsNkyZNgoeHB/Lz81+eRFsbXl5eCAwMBAA4Ojpi7dq16k1KRACAu3fvomPHjpDL5Zg3bx6aN28OPT09XLt2DatXr0adOnUwYMAA8fj169dj6tSpWL9+PaZMmVLofDKZDNHR0VAoFIiMjISPjw8SEhLwzz//iMcEBQWhV69eyMvLE48xNDTE999/DwAYMmQIcnNzsWHDBtSrVw/JyckICQnBkydPir2OqKgoKBQK/Pbbb3BwcMD169cxatQoZGVlYfHixUrHHj16FE2bNhXvm5mZlfn3R0RUUfT19fHjjz/i888/R82aNYs9Ljo6GsbGxrhz5w5Gjx6N/v374+rVq5BKpQCAOXPmYNSoUSgoKMDt27cxevRofPnll9i0aVOJP//V+7kgCEhNTcXZs2cxf/58BAUF4cyZM7C2tlbr9RIVIpRRRkaGEBkZKURGRgoZGRllPQ0Rqcjd3V147733hMzMzCL3KxQK8d+hoaFCnTp1hNzcXMHa2lo4c+aM0rFBQUGCiYmJ0rYffvhB0NLSErKzswVBEAQAwp49e5SO8fX1Ffr06SMIgiA8e/ZMACCEhoaW88oEYeHChYK9vb14PzY2VgAgXLlypdznJiKqSF5eXkK/fv0ER0dHYcqUKeL2PXv2CK8+bh0/flwAIDx79kzcv3nzZgGAEBUVJQiCINjZ2QmBgYFK5/7++++FJk2alPjzi3o/FwRBSE5OFmrVqiUMHz68bBdGpAKVu0L9/vvvyM7OhpGREZycnODk5AQjIyP1VjtEVKQnT57g8OHDGDduHAwNDYs85lWTOwCsW7cOnp6e0NHRgaenJ9atW/fGn2FgYACFQiG2SP7X7du3cezYMbRr1w4AYGRkBCMjI+zdu1epe1RZpKWlFbkGzoABA2Bubo5OnTph37595foZREQVRSqVYt68eVi+fDkePHhQqscYGBgAQLFjUx8+fIi//vpLfM9Vlbm5OYYPH459+/ahoKCgTOcgKi2VC4tJkybB3Nwcw4YNw99//80nKVEl+vfffyEIgriGzCu1atUSP+BPmzYNAJCeno4//vgDn376KQDg008/xY4dO5CZmVns+e/cuYNVq1ahdevWMDY2Frd7enrCyMgI+vr6aNSoEZo2bYqAgAAAL7tCBgcHY8OGDZDL5ejYsSOmT5+Oq1evqnxty5cvx+effy5uMzIywk8//YSdO3fiwIED6NSpEwYOHMjigoiqrUGDBqFly5aYNWvWG49NTEzE4sWLUadOHaX39WnTpsHIyAgGBgZ47733IJFIsGTJkjJncnR0REZGRondU4nUQeXCIjExEdu2bYNEIsHHH38MKysrjBs3DmfPnq2IfERUChcuXEBERASaNm0qthps3boV9evXR4sWLQAALVu2hJ2dHbZv36702LS0NBgZGaFGjRpo1KgRLCwssHnzZqVjAgMDERERgcjISOzfvx+3b9/GZ599Ju4fMmQIEhISsG/fPvTq1QuhoaF4//33ERwcDAAYM2aMWPgU1cL58OFD9OrVC0OHDsWoUaPE7bVq1YK/vz/atWuHNm3aYMGCBfj000+LHIhORFRd/Pjjj9iwYQNu3bpV5P733nsPhoaGsLa2RlZWFnbt2gVdXV1x/5QpUxAREYGrV68iJCQEANC3b1/xy9zX30/HjBnzxjzC/19Z4PUWbaKKoPLgbW1tbfTr1w/9+vVDdnY29uzZgy1btqBr16547733EBMTUxE5iQiAg4MDJBIJoqOjlbbXq1cPwP81qQMvu0HduHED2tr/9zJXKBRYv349fH19xW3Gxsa4fPkytLS0YGVlpXSOVywtLeHg4AAAaNSoETIyMuDp6Ym5c+eK2/X19dGjRw/06NED3377Lf73v/9h1qxZ8Pb2xpw5c/DVV18VeU0JCQno2rUrOnTogNWrV7/xd9CuXTscOXLkjccREVWVzp07w93dHQEBAfD29i60/9SpU5DJZDA3N1dqHX6lVq1a4ntrgwYN8PPPP8PFxQXHjx+Hm5sbIiIixGNlMtkb89y6dQsymYwTX1CFU7mweF2NGjXg7u6OZ8+e4d69e8VW5kSkHmZmZujRowd++eUXjB8/vthxFteuXcOlS5cQGhqqNGbh6dOncHV1RVRUFBwdHQEAWlpa4h+w0no1c8nz58+LPaZJkybYu3cvgJd9fM3NzQsd8/DhQ3Tt2hXOzs4ICgqCltabG1EjIiJgZWWlUl4iosq2YMECtGzZslDXVQCwt7eHXC4v9bn++56rynv2o0ePsGXLFgwcOLBU77FE5VGmwuJVS8XmzZsREhICGxsbeHp64o8//lB3PiL6jxUrVqBjx45o3bo1vvvuOzg5OUFLSwsXL15EVFQUnJ2dsW7dOrRt2xadO3cu9Pg2bdpg3bp1KnUnSk1NRVJSEhQKBe7cuYM5c+agYcOGaNy4MZ48eYKhQ4di5MiRcHJygrGxMS5duoSFCxfiww8/LPacDx8+hKurK+zs7LB48WKkpKSI+ywtLQEAGzZsgK6uLlq1agUA2L17N9avX8/prImo2mvevDmGDx+OZcuWqfzYjIwMJCUlQRAE3L9/H1OnTkXt2rXRoUOHEh8nCIL4uNTUVISFhWHevHkwMTEptL4GUYVQdRqpTz75RDA0NBRq164tjBs3Tjh79qyaJ6oiojdJSEgQ/Pz8BHt7e0FHR0cwMjIS2rZtKyxatEhIS0sTzMzMhIULFxb52B9//FEwNzcXcnNzi52e8HUAxJtEIhGsrKyETz75RIiJiREEQRBevHghfP3118L7778vmJiYCDVq1BAaNWokfPPNN+KUtUUJCgpSOvfrt1eCg4OFxo0bCzVq1BBkMpnQtm1bYefOnar/woiIKpiXl5fw4YcfKm2LjY0VdHV1S5xu9r/s7OyU3g9r164t9OnT543Tbr/+niqRSAQTExOhbdu2wpw5c4S0tLRyXh1R6UgE4f+P6Cml4cOHY/jw4XB3dxeb5l65fv06mjVrVq5Ch4iIiIiINI/KhcV/ZWRkYOvWrVi7di3Cw8M5/SwRERER0TuozKN4Tp48CS8vL1hZWWHx4sXo1q0bzp07p85sRERERESkIVQavJ2UlITg4GCsW7cO6enp+Pjjj5GTk4O9e/eiSZMmFZWRiIiIiIiquVK3WPTv3x+NGjXC1atX8fPPPyMhIQHLly+vyGxERERERKQhSt1icfDgQXz55ZcYO3YsGjRoUJGZiIiIiIhIw5S6xeL06dPIyMiAs7Mz2rVrh19++QWPHz+uyGxERERERKQhVJ4VKisrC9u3b8f69etx4cIFFBQUYMmSJRg5cmSRy9ITEREREdHbr1zTzUZHR2PdunXYtGkTUlNT0aNHD+zbt0+d+YiIiIiISAOUex0LACgoKMBff/2F9evXs7AgIiIiInoHqaWwICIiIiKid1uZF8gjIiIiIiJ6hYUFERERERGV2/8DcjhgKWIlaBEAAAAASUVORK5CYII=", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -1425,120 +1208,27 @@ }, { "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [], - "source": [ - "df_gap22_cas_brk = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/cascade-tcBrkDwn2/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_cas_brk = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/cascade-tcBrkDwn2/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap25_cas_brk = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/cascade-tcBrkDwn2/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_cas_brk = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/cascade-tcBrkDwn2/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_ram_brk = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/rambus-tcBrkDwn/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_ram_brk = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/rambus-tcBrkDwn/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap25_ram_brk = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/rambus-tcBrkDwn/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_ram_brk = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/baseline/rambus-tcBrkDwn/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "app_gap = df_gap22_cas_brk['app']\n", - "gap_22_cas = df_gap22_cas_brk['avgTCLatRdM'].astype(float)\n", - "gap_22_ram = df_gap22_ram_brk['avgTCLatRdM'].astype(float)\n", - "print(gap_22_cas)\n", - "gap_25_cas = df_gap25_cas_brk['avgTCLatRdM'].astype(float)\n", - "gap_25_ram = df_gap25_ram_brk['avgTCLatRdM'].astype(float)\n", - "\n", - "app_npb = df_npbC_cas_brk['app']\n", - "npb_C_cas = df_npbC_cas_brk['avgTCLatRdM'].astype(float)\n", - "npb_C_ram = df_npbC_ram_brk['avgTCLatRdM'].astype(float)\n", - "\n", - "npb_D_cas = df_npbD_cas_brk['avgTCLatRdM'].astype(float)\n", - "npb_D_ram = df_npbD_ram_brk['avgTCLatRdM'].astype(float)\n", - "\n", - "# Multi bar Chart1\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_22_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_22_ram[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", - "\n", - "offset = i*3+2\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_C_cas[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_C_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.75, -0.01, \"NPB-C\")\n", - "\n", - "plt.xticks(np.arange(14)*3+0.5, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "\n", - "plt.ylabel(\"Avg Tag Check Latency\\n(Rd-Miss) (ns)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "# Multi bar Chart2\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*3, gap_25_cas[i], width=1, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*3+1, gap_25_ram[i], width=1, color=cmap(2), label='TDRAM' if i==0 else None)\n", - "\n", - "offset = i*3+2\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar(offset+i*3+1, npb_D_cas[i], width=1, color=cmap(1))\n", - " plt.bar(offset+i*3+2, npb_D_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.3, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.75, -0.01, \"NPB-D\")\n", - "\n", - "plt.xticks(np.arange(14)*3+0.5, list(app_gap)+list(app_npb))\n", - "plt.axvline(x=offset, color='black')\n", - "\n", - "plt.ylabel(\"Avg Tag Check Latency\\n(Rd-Miss) (ns)\")\n", - "plt.legend(fontsize=9, ncol=2)\n", - "plt.tight_layout()\n", - "\n", - "print(gap_22_cas)\n", - "print(gap_22_ram)" - ] - }, - { - "cell_type": "code", - "execution_count": 30, + "execution_count": 77, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAClCAYAAABREodCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAe0klEQVR4nO3deZgU1b3/8fcHRFCjEAUjigoaNaKICxhR1HEFlajEq8afjwvXXLKoiRtJ5CYajYoGl+TGLYpGE427JoG4BhkxRkVQEZTgzwWvCy64ICgiwvf+UdXYDD09NUt1zwyf1/P0M12nu6s+00v16VOnzlFEYGZmZtaedKh2ADMzM7OW5gqOmZmZtTuu4JiZmVm74wqOmZmZtTuu4JiZmVm74wqOmZmZtTuu4JiZmVm74wqOmZmZtTurNXQHSQOA3YENgUXATOChiPgw52xmZmZmTVJvC46kEZKeBs4E1gBmA+8Cg4F/SLpR0iaViWlmZmaWXbkWnDWB3SJiUakbJW0PbAH8bw65zMzMzJpMnovKzMzM2psGOxlL2kzSeEnzJL0r6a+SNqtEODMzM7OmyHIW1Z+B24ENSDoa3wHckmcoMzMzs+Zo8BCVpOciYrs6ZdMjon+uyczMzMyaKEsF5yLgQ+BWIIAjga8CYwEi4oOcM5qZmZk1SpYKzqtlbo6IcH8cMzMza1V8FpWZmZm1O1lGMu4IHAT0Lr5/RFyaXywzMzOzpmuwggOMBz4DZgDL8o1jZmZm1nxZKji96p5FlZfu3btH7969K7EpMytj9uzZAGy11VZVTmJmVt60adPmRUSPuuVZKjj3Sdo/Ih7MIdcKevfuzdSpU/PejJk1oKamBoDa2tqq5jAza4ik10qVZ6ngPAHcI6kDsAQQydlT67RgPjMzM7MWk6WCcykwCJgRPuXKzMzM2oAsFZzXgZnVqNx89NFHzJ07t9KbtXauS5cu9OrVi06dOlU7ipmZ5SRLBecVoFbSfcDiQmElThOfN28evXv3Zo011sh7U7aKiAjef/993njjDfr06VPtOGZmlpMsFZxX08vq6aVilixZQpcuXSq5SWvnJLHeeuvx3nvvVTuKmZnlqMHZxCPinFKXSoSD5AspbxMnTqSmpoY99tiD4cOH8/777+eynTlz5nD88cc3eL8bbriBcePGNXi/wYMHt0Cq6pg/fz41NTXU1NTQtWtXampqGDFiBP3792efffbhgAMOYNq0aUDyfGy11VbstddeHHrooXz++efL17PFFltw6623Ll+uqanh5JNPXr48bNiwlZ7zSrynzMysuhqs4EjqIWmspHslPVy4VCJcJbz33nuce+65jB8/nsmTJ3PRRRet8AVq+ejatSu1tbXU1tbSr18/amtr2XTTTbnkkkuYOHEi1157LSeeeCKffvopAKNGjWLSpEkMGDCABx9MRiyYPn06gwcPZvz48Sus+/XXXyciWLBgAfPnz6/4/2ZmZtWX5RDVzcBtwDDg+8BxQMXb93c5+4FmPf6Jc4aULL/33ns55phjWHvttQHYcsstAfjDH/7AjTfeyMKFC7ngggvYf//9GT16NJMnT6ZTp07cfPPNdOjQgREjRrBo0SIGDRrEmDFjOOKII3jnnXfo3Lkzd955J+ussw5nnXUWkyZNom/fvsu3O2HCBH7961/zxRdfcNZZZzF06NCy+UutF5I+JT/+8Y/Zdddd2WeffTjhhBNYsGABW2+9NVdeeWWznjOAg/9yULMe/7dD/96kx/Xq1YshQ4bw1FNPrVD+0UcfLb9+991388Mf/pALLriAxYsX07lzZwAGDhzIlClTePXVVznwwAOXD1pnZmarjgZbcID1IuI6YElEPBIR/wnsnXOuipk7dy49e/ZcqfzII4+ktraWiRMncvHFFwPw2GOPMXnyZCZNmkTPnj0ZM2YMp556KrW1tZx//vlAcjjlkUce4YgjjuC2225j7ty5TJkyhUcffZQ999wTgGXLlnHxxRfz8MMPU1tby9ixYxvMWXe9BaeccgqDBg3iO9/5DhdeeCFnnnkmkyZNYu211+bxxx9viaeoajbccEPefvttAMaOHUu/fv2YMmUKQ4YkldVnnnmGgQMHMnToUP7xj38sf9zw4cO55557uPfeeznooOZV0MzMrG3K0oKzJP07V9JBwFvAug09SFIXYDLQOd3OnRFxdlOD5qVnz5689dZbK5U/8MAD/Pa3vyUiePfddwH4yU9+wnHHHcd6663H+eefz4svvri8YtOhQweWLl3KqFGjmDFjBh9//DHDhw/ntddeY7vtkpkudtppJx588EHmzZvHrFmz2HfffQF49913iYh6+4aUWi/Aiy++SJcuXfjNb34DwKxZs/jZz36GJBYuXMjOO+/cos9Vpb355ptsvfXW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", + "image/png": "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Ktq2bStu3bolMjMzRXx8vDA0NBSbNm0S6enp4tSpU2L58uXa7obSp59+KmrVqiViYmLExYsXxaFDh8TatWtFbm6u8PDwEB06dBCHDh0SaWlpYvPmzeLo0aPajlzKq7YlV1dXIZfLxeLFi8XFixfFxYsXqzTfzZs3hZGRkVi6dKm4cuWKSE5OFt98843Izc0VNjY2YtKkSeLixYvi3LlzIiYmRly9elUIIYSPj4/44IMPxPnz58WFCxfEli1bRGJiohBCiOjoaGFsbCwCAwPF0aNHxYkTJ0RQUJBo165dlfbtuYcPH4q2bduKoUOHilu3bolbt26JjIwMYWdnJ95++20RHx8vUlNTxfr160VKSopWMr7Kq17b9evXF7NmzVL2T9eU91rOzs4WdnZ24oMPPhBnz54Vf/zxh2jcuLEAIBISErQdu5SHDx+KWbNmifr164tbt26Ju3fvCgAiOjpa+VgfdOrUSYwbN07n9wFleZ5dCCEAlPo8Y2NjI6Kjo6s8V3k6deokrK2txezZs8WFCxfE7NmzhaGhoXj99dfFmjVrxIULF8TIkSOFvb29yMvLE5cvXxbGxsZi0qRJIiUlRfz444+iXr16AoDIysrSdndeus+IjIwUVlZW4t133xVnzpwRO3fuFA4ODmLatGnajq3k6uoqli1bVqKtefPmYsaMGUIIIZYtWyb2798vrly5ImJjY4WXl5cYOXJk1QetAioXFq+99pro3r27OHz4sBg+fLioV6+eGDx4sCguLhbFxcVi1KhRonXr1pWZVe916tRJeHt7C4VCoWyLiooS3t7eIjU1VQAQe/fu1WLCsr0stxBCjBs3TnTq1Ek5bevWrUIul4ucnJyqjvpKOTk5wtTUVKxdu7bUtO+++05YW1uLzMxMLSST5lX/E1dXV9GrVy9txRMnT54UAER6enqJ9szMTAFAxMXFlbmctbW1iImJKXNadHS0ACCOHTumbDt//rwAII4fP6658BL888OIEEJMnTpVuLu7i8LCQq3kkUqV7ejFnaWueNlredWqVcLe3l48efJE2bZ27VqdLSyEePbBw9XVVfm4rA+3uu7560GX9wHl0cfCon379srHT58+FZaWluLDDz9Utt26dUsAEH///beIiooSzZo1K7GOzz77TGcKi/L2GUIIERkZKezs7EReXp6ybdWqVcLKykoUFxdXZcxy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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAClCAYAAABREodCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAetElEQVR4nO3de7xc873/8dc7RIJGUhJtCEkoKkS0klQINkGCFKm6/XpccrSpFq1bnMpRShEEaU/dSigtdb+0SV0b2aKKSBChKT+XOC5xiUskRETyOX+sNTGJ2bPXvqyZvXfez8djHnvWd2bWeu+5rPnOd33X96uIwMzMzKwtaVftAGZmZmbNzRUcMzMza3NcwTEzM7M2xxUcMzMza3NcwTEzM7M2xxUcMzMza3NcwTEzM7M2xxUcMzMza3NWr+8OkvoDOwEbAIuAZ4EHIuKDnLOZmZmZNUqdLTiSRkp6EjgVWBN4HngHGAz8XdJ1kjauTEwzMzOz7Mq14KwF7BgRi0rdKGlbYDPgf3PIZWZmZtZo8lxUZmZm1tbU28lY0iaSJkqaJ+kdSX+RtEklwpmZmZk1RpazqP4M3AJ8naSj8a3AjXmGMjMzM2uKeg9RSXomIrZZqWxmRPTLNZmZmZlZI2Wp4JwPfADcBARwMPBVYBxARLyfc0YzMzOzBslSwXmlzM0REe6PY2ZmZi2Kz6IyMzOzNifLSMarAfsAvYrvHxEX5xfLzMzMrPHqreAAE4FPgVnAsnzjmJmZmTVdlgpOj5XPospL165do1evXpXYlJmV8fzzzwOwxRZbVDmJmVl5M2bMmBcR3VYuz1LBuUfSnhFxfw65VtCrVy+mT5+e92bMrB41NTUA1NbWVjWHmVl9JL1aqjxLBecx4E5J7YAlgEjOnlqnGfOZmZmZNZssFZyLgUHArPApV2ZmZtYKZKngvAY8W43KzYcffsjcuXMrvVlr4zp27EiPHj1o3759taOYmVlOslRwXgZqJd0DLC4UVuI08Xnz5tGrVy/WXHPNvDdlq4iI4L333uP111+nd+/e1Y5jZmY5yVLBeSW9rJFeKmbJkiV07Nixkpu0Nk4S6623Hu+++261o5iZWY7qnU08Is4sdalEOEi+kPI2efJkampq2HnnnRkxYgTvvfdeLtuZM2cORx55ZL33u/baa5kwYUK99xs8eHAzpKqO+fPnU1NTQ01NDZ07d6ampoaRI0fSr18/hgwZwl577cWMGTOA5PnYYost2HXXXdl///357LPPlq9ns80246abblq+XFNTw3HHHbd8efjw4V96zivxnjIzs+qqt4IjqZukcZLulvRg4VKJcJXw7rvvctZZZzFx4kSmTp3K+eefv8IXqOWjc+fO1NbWUltbS9++famtraVnz55cdNFFTJ48mauuuopjjjmGTz75BIDRo0czZcoU+vfvz/33JyMWzJw5k8GDBzNx4sQV1v3aa68RESxYsID58+dX/H8zM7Pqy3KI6gbgZmA4cDRwBFDx9v3tz7ivSY9/7MyhJcvvvvtuDjvsMDp16gTA5ptvDsAf/vAHrrvuOhYuXMi5557LnnvuyZgxY5g6dSrt27fnhhtuoF27dowcOZJFixYxaNAgxo4dy0EHHcTbb79Nhw4duO2221hnnXU4/fTTmTJlCn369Fm+3UmTJnHBBRfw+eefc/rppzNs2LCy+UutF5I+JT//+c/ZYYcdGDJkCEcddRQLFixgyy235LLLLmvScwaw7137NOnxf93/b416XI8ePRg6dChPPPHECuUffvjh8ut33HEHP/3pTzn33HNZvHgxHTp0AGDAgAFMmzaNV155hb333nv5oHVmZrbqqLcFB1gvIq4GlkTEQxHxn8BuOeeqmLlz59K9e/cvlR988MHU1tYyefJkLrzwQgAeeeQRpk6dypQpU+jevTtjx47lhBNOoLa2lnPOOQdIDqc89NBDHHTQQdx8883MnTuXadOm8fDDD7PLLrsAsGzZMi688EIefPBBamtrGTduXL05V15vwfHHH8+gQYM45JBDOO+88zj11FOZMmUKnTp14tFHH22Op6hqNthgA9566y0Axo0bR9++fZk2bRpDhyaV1aeeeooBAwYwbNgw/v73vy9/3IgRI7jzzju5++672WefplXQzMysdcrSgrMk/TtX0j7Am8C69T1IUkdgKtAh3c5tEXFGY4PmpXv37rz55ptfKr/vvvv47W9/S0TwzjvvAHDKKadwxBFHsN5663HOOefwwgsvLK/YtGvXjqVLlzJ69GhmzZrFRx99xIgRI3j11VfZZptkpovtttuO+++/n3nz5jF79mx23313AN555x0ios6+IaXWC/DCCy/QsWNHfvOb3wAwe/ZsfvGLXyCJhQsXMnDgwGZ9rirtjTfeYMstt+Tll19m9OjRjBw5kv3335/333+fBQsWMGvWLIYNG8bixYvZfPPNl1dmNt98c5577jnWXnvt5S1dZma2asnSgnO2pM7AScDJwATghAyPWwzsFhH9gG2BYZK2b2zQvOy9995cf/31LFiwAIAXX3yRuXPnMnbsWO655x7+8pe/0K5d8jTttttu/OlPf2L99ddn0qRJbLHFFjz22GNA0irz9NNP8/HHHzN16lSOOeYYIoKePXsya9YsIGlxAOjatSt9+/Zl8uTJ1NbWMnPmzLIdX0utF5Iv8kMPPZTRo0cDybxBF198MbW1tUyfPp399tsvnyetAt544w0eeOABBgwYsLxstdVW49hjj2X8+PHccccdTJgwgXvvvZcpU6Ywd+5cli37Yi7YAw44gMMOO6wa0c3MrAWotwUnIialV+cDu2ZdcTow4MJ0sX16aXEjIXfr1o1f/vKXDB8+nIhg3XXX5eqrr2b48OHsvPPODBw4kC5dugCw3377sWjRIgBuvfVWdtllF4444gjOPvtsdthhB8aMGcOLL77IsGHD2Gijjdhwww3p3r072223HTvttBP9+vUDktaeE088kSFDhiCJPn36cOmll66Q6+KLL15+dtD48eO/tN6Co446irFjx3L++eczZswYRo0axfz582nXrh0TJkygtU1eetJJJ9G1a1fWWGMNLrnkki+NgbTHHntw2mmnsfrqq69wtlSfPn14+OGHly8XzpyaM2dOJWKbmVkLozwHKJa0GjAD+AZwaUT8V7n79+/fP4on25w9ezZbbrllbvls1eX3VnmebNPMWgtJMyKi/8rlWQ5RNVpELI2IbYEewEBJW5cINkrSdEnTPfiamZmZNYdcKzgFEfEhMAX40rnQEXFlRPSPiP7dunWrRBwzMzNr4+rtgyPpXOCCtJKCpK8CJ0XEafU8rhvJqeUfSloT2AM4v+mRzayaGjomVV1jUFl+/BqZZTtNfK+IGFNYiIgPJO0NlK3gAN2B69J+OO2AW4o6LGdW7vRps8bIs9+Zma2oJVW2WlIWy1+WCs5qkjpExGKAtDWmQ30PiohngG81JVz79u359NNPPZu4NZvCbOKexNXMrG3LOlXDZEl/SJdHAtflF+kLXbt29Wm+1uw6duxIjx49qh3DzMxylGUcnPMlzQR2T4t+HRFNmxgqoy5duiwfg8bMrCXz4Q9rCL9f8pel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", + "image/png": "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3Lgx3nrrLXz++ec4c+YMNm/ejLZt25ZHRiIiIiIi0nOSC4vFixcjLy8PADB9+nTk5eVh/fr18PT05BWhiIiIiIiqKMmFhbu7u/J3KysryXfbJiIiIiKiyqdM97EAgJMnT+L8+fMAgKZNm8LPz09roYiIiIiIyLBILizS09MxYMAAxMbGonr16gCArKwsBAUF4ffff4eDg4O2MxIRERERkZ6TfFWoMWPGIDc3F0lJSXjw4AEePHiAs2fPIicnB2PHji2PjEREREREpOckH7H4559/sGfPHjRu3FjZ1qRJE/zwww/o3r27VsMREREREZFhkHzEQqFQwNTUtES7qakpFAqFVkIREREREZFhkVxYdOnSBePGjcPt27eVbbdu3cKECRPQtWtXrYYjIiIiIiLDILmwWLZsGXJycuDm5oYGDRqgQYMGqF+/PnJycrB06dLyyEhERERERHpO8hgLFxcXnDp1Cnv27EFycjIAoHHjxggODtZ6OCIiIiIiMgxluo+FTCZDt27d0K1bN23nISIiIiIiA6RWYfH999+rvUBecpaIiIiIqOpRq7CIiIhQa2EymYyFBRERERFRFaRWYXHt2rXyzkFERERERAZM8lWhiIiIiIiIXiSpsLh06RI2bdqkPILx119/oVOnTvD398fs2bMhhCiXkEREREREpN/UvirUli1b0L9/fxgZGUEmk2HlypX49NNPERgYCLlcjm+//RYmJiYIDw8vz7xERERERKSH1D5iMXv2bHz55Zd4/Pgxli9fjhEjRmDu3LnYsWMHtm/fjh9++AHR0dHlGJWIiIiIiPSV2oXFhQsXMHToUMhkMoSGhqKwsFDlpnjdu3fH9evXyyUkERERERHpN7ULi/z8fNjY2Dx9kpERLC0tUa1aNeV0S0tLFBQUaD8hERERERHpPbULC5lMBplMVupjIiIiIiKqutQevC2EQMOGDZXFRF5eHvz8/GBkZKScTkREREREVZPahUVUVFR55iAiIiIiIgOmdmERGhpanjmIiIiIiMiA8c7bRERERESkMb0oLH744Qe4ubnBwsICbdq0wX//+19dRyIiIiIiIgl0XlisX78eYWFhmDZtGk6dOoXmzZujR48eSE9P13U0IiIiIiJSk84Li8WLF2P48OEYMmQImjRpghUrVqBatWqIjIzUdTQiIiIiIlKT2oO39+3bh4CAAJiZ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UgeengaVlJQEE5P/vcwVCgUiIyMxbNgwZZuNjQ1OnToFIyMjODk5qSzjmdq1a8PDwwMA4OXlhdzcXAwcOBCzZs1StltYWKBbt27o1q0bvvnmG3z88ceYNm0aBg8ejBkzZmDixIkv7dPt27cRFBSE9u3bY+XKla/9G7Rp0wa7d+9+7XxERLrSqVMn9OjRA5MnT8bgwYNLTD948CDkcjkcHR1Vjg4/U7NmTeV7q6enJ/7973+jXbt22LdvH4KDg5GQkKCcVy6XvzbP+fPnIZfLYW9vX+Y+EamDhQWRAbG3t0e3bt2wbNkyjBkzptRxFmfOnMGJEycQGxurMmbhwYMHCAwMRHJyMho1agQAMDIyUu7A1GVsbAwAePToUanzNGnSBFu3bgXw9BxfR0fHEvPcunULQUFBaNmyJaKiomBk9PqDqAkJCXBycpKUl4ioos2bNw++vr4lTl0FgPr166N69epqL+vF91wp79np6elYt24dQkJC1HqPJdIECwsiA/Pjjz8iICAArVq1wrfffgsfHx8YGRkhLi4OycnJaNmyJVavXo3WrVujU6dOJZ7v7++P1atXSzqdKCsrC3fu3IFCocClS5cwY8YMNGzYEI0bN0ZGRgb69euHoUOHwsfHBzY2Njhx4gQWLFiAPn36lLrMW7duITAwEK6urli4cCHu3bunnFa7dm0AwJo1a2BmZgY/Pz8AwObNmxEZGYn//Oc/amcnItIFb29vfPDBB/j+++8lPzc3Nxd37tyBEAI3b97El19+CQcHB7Rv3/6VzxNCKJ+XlZWFo0ePYs6cObC1tS1xfw2i8sDCgsjANGjQAPHx8ZgzZw4mT56M1NRUmJubo0mTJpg4cSI++eQTuLu7Kwdxv6hv375YtGgR5syZo/Y6hwwZAuDp+bm1a9dGp06dMGfOHJiYmMDa2hpt2rRBREQErly5gqKiIri4uGD48OEvvSfFM7t378bly5dx+fJlODs7q0x7dj4wAMycORPXr1+HiYkJGjVqhPXr1+O9995TOzsRka7MmDGjxLg2dUydOhVTp04FADg4OMDf3x+7du167alMOTk5cHJygkwmg1wuh5eXF0JDQzFu3Di1Tpki0pRMPL8HJyIiIiIiKgOebEdERERERBpjYUFERERERBpjYUFERERERBpjYUFERERERBpjYUFERERERBpjYUFERERERBpjYUFERERERBpjYUFERERERBpjYUFERERERBpjYUFERERERBpjYUFERERERBpjYUFERERERBr7f1lfDq65aiLxAAAAAElFTkSuQmCC", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -1609,1140 +1299,6 @@ "plt.legend(fontsize=8, ncol=2, loc='upper left')\n", "plt.tight_layout()" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### *Tag Probing Optimization*\n" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [], - "source": [ - "df_gap22_ram_prob = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/rambusTagPr/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_ram_prob = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/rambusTagPr/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap25_ram_prob = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/rambusTagPr/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_ram_prob = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/rambusTagPr/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_462509/3550682698.py:24: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_462509/3550682698.py:27: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n", - "/tmp/ipykernel_462509/3550682698.py:61: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_462509/3550682698.py:64: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAlVElEQVR4nO3debxVZb3H8c83RI8DggN6TUSQtKtIoWLqRfMgdp3CoRuo5UBOOeaQOaRpdi3pdk1JuxqaF80JLU0UJbvGEdBUIAcQxExRMRSwBMkUgd/9Y6192BzPsM7ee51h832/Xue193r22uv5rT2s89vPetbzKCIwMzMzqyafau8AzMzMzCrNCY6ZmZlVHSc4ZmZmVnWc4JiZmVnVcYJjZmZmVWed9g6gHJtvvnn06dOnvcMwW+vNnTsXgM9+9rPtHImZrW1mzJixOCJ6Nizv1AlOnz59mD59enuHYbbWq62tBaCurq5d4zCztY+k1xsr9ykqMzMzqzpOcMzMzKzqOMExMzOzqtOp++A05uOPP2b+/Pl8+OGH7R2KWdWqqamhV69edO3atb1DMTNrVNUlOPPnz6dbt2706dMHSe0djlnViQjeffdd5s+fT9++fds7HDOzRlXdKaoPP/yQzTbbzMmNWU4ksdlmm7mV1Mw6tKpLcAAnN2Y583fMzDq6qjtFVWzPy39Xke08dcUBTT62ZMkSDjvsMACee+45dtxxR9Zbbz0WL15Mt27d6NKlCxHBySefzMiRIwHo27cv2267LStXrqRPnz6MHTuWLl26APCjH/2Im266iVdffbX+n0jfvn0ZOnQoN998MwC/+tWvOO6443jttddoONBhc9suuPLKK+nVq1d9PAUjR47k+eefZ+ONN2ajjTbijjvuoEePHi2+PmPHjmX+/PlceumlLa5bikN/e0hFtjP+8AlNPtbR3sfPfOYzvPLKKxXZ74Li9+mcc87hkksuoWfPT4yNZWZWFaqyBactde/enbq6Ourq6hg4cCD33nsvdXV1bL755tx7771MnTqVCRMmMHbsWCZNmgRAly5dqKurY8qUKXTt2pVHH320fnsPPfQQ++23H0888UR9WZcuXXjjjTf46KOPAPj1r3/Nbrvt1mg8zW07i+uuu47HH3+cwYMHc+ONN67x2MqVK1u1rc6ko72Pebv22mud3JhZVXOC0wZ69OjBJZdcwp133rlG+apVq3jvvfeICACeffZZ+vfvz2mnncbtt9++xroHHXQQEyZMYOHChXTt2rXFlpWG2548eTK77LILw4YN4+mnn24x5l133ZXXX3+dsWPHMnz4cA4//HBGjx7NTTfdxB577MEee+zBLbfcUr/+008/zbBhw9hll12YMmVKlpel02nr9/Hcc89l33335ZhjjmHVqlUsXryYoUOHUltby+DBg3n55ZcBOP/889lrr70YMmQI48aNA5JEdZ999mGvvfaqbzEqVltby/z585k3bx677bYbxxxzDLvuuivXXnstkLRojRgxgqFDh7LffvtVvDXJzCxvTnDayDbbbMNbb70FJC0htbW19OnTh5UrV3LAAckpsDvuuIPjjz+eQYMGMXv2bD7++OP65x911FGMGzeOcePGMWLEiCbraWrb5513Hg888ADjx4+vb0FozqOPPkr//v0BWLZsGffffz/HHnss119/PVOmTGHKlCmMHj2aRYsWAcnl+Q8++CD3338/5557bmkvUifQVu/jihUrGDFiBI8//jjrr78+48ePp3v37jzyyCPU1dVx6aWXMmrUKAAeeeQRpkyZwqRJkxg+fDhz5sxh4sSJTJ48malTp3LLLbfw7rvvNlnXggULGDNmDE8++SSjR48G4KqrruIrX/kKjz32GNdccw0XXXRR2a+dmVlbyi3BkbSNpEmSZkt6UdLZafmmkn4v6c/p7SZpuST9TNIrkl6QtGtesbWHN998k6233hpYfWpj5syZLFq0iPfee49Vq1bxwAMPcOWVV3LggQeycOFCHn744frnb7XVVixbtoy7776bYcOG1Zdff/311NbWctJJJzW5bYClS5fSu3dvJPGFL3wBgKlTp1JbW0ttbS3Lli0D4KyzzmLffffln//8Z/0299xzTyTx6quvMmDAANZdd13WXXddBgwYwGuvvQbA7rvvDiTzgy1ZsiTHV7J9tdX7WPw+7bHHHsydO5f33nuPY445hi9+8YtcccUVvPnmmwCMGjWKE044gZEjRzJnzhxmzZrF7NmzGTJkCEOHDmXp0qX16zZmxx13ZIMNNqCmpqa+D9HMmTMZPXo0tbW1nH322fWfIzOzziLPFpwVwLcjYidgT+AMSTsBFwGPRcT2wGPpMsBBwPbp3ynADTnG1qaWLFnCVVddxdFHH71Geffu3Tn11FP58Y9/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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAl0UlEQVR4nO3dd7xU1bn/8c9XRLFQLOglooLlehVJLChyIREBr6LBkitYYsEaCyZq1Gg0EvMzkRQLQaNB5aKxYQcBS4IioFEBRUEQo4KKARESQWy05/fH3ucwHE7ZzJk5Zfi+X6/zmtlr9uz17Cn7PLPW2nspIjAzMzMrJRvVdwBmZmZmheYEx8zMzEqOExwzMzMrOU5wzMzMrOQ4wTEzM7OSs3F9B1Ab2267bbRr166+wzDb4M2ePRuAPfbYo54jMbMNzdSpUxdFROuK5Y06wWnXrh1Tpkyp7zDMNnjdu3cHYPz48fUah5lteCR9UFm5u6jMzMys5DjBMTMzs5LjBMfMzMxKTqMeg1OZFStWMG/ePL7++uv6DsVsgzFw4EAigjlz5tC2bVuaNm1a3yGZ2Qau5BKcefPm0bx5c9q1a4ek+g7HbIOw0UYbERE0b96cefPm0b59+/oOycw2cCXXRfX111+zzTbbOLkxq2OS2Gabbdx6amYNQsklOICTG7N64u+emTUUJddFleuggc8UZDsvX3tYlY8tWbKEo48+GoBp06ax5557summm7Jo0SKaN29OkyZNiAjOPvts+vfvD0D79u3ZeeedWbVqFe3atWP48OE0adIEgN/85jfccccdvP/+++X/LNq3b0/Pnj258847AfjLX/7Cqaeeypw5c6h4ocPqtl3muuuuo23btuXxlOnfvz9vvPEGLVq0YMstt+S+++6jVatWNb4+w4cPZ968eVx99dU1rltIRz1xZEG2M+qYMVU+1tDe391224133323IPtdJvf9u+iii7jqqqto3Xqda2aZmTUqJdmCU5datmzJ+PHjGT9+PPvssw8PP/ww48ePZ9ttt+Xhhx9m0qRJjBkzhuHDh/P8888D0KRJE8aPH8/EiRNp2rQpzz77bPn2Ro8eTY8ePXjxxRfLy5o0acKHH37IN998A8AjjzzC/vvvX2k81W07iyFDhvDCCy/QtWtXbr/99rUeW7Vq1XptqxQ0tPe32G6++WYnN2ZWEpzg1IFWrVpx1VVXcf/9969Vvnr1aj777DMiAoDXX3+dDh06cN5553HvvfeutW7v3r0ZM2YMCxcupGnTpjW2rFTc9oQJE9h3333p06cPr7zySo0x77fffnzwwQcMHz6cvn37cswxxzB48GDuuOMOOnfuTOfOnRk2bFj5+q+88gp9+vRh3333ZeLEiQBMnz6dXr160aNHD/r168dXX31VY72NUV2/vxdffDEHH3wwJ598MqtXr2bRokX07NmT7t2707VrV9555x0ALr30Urp06cIhhxzCiBEjgCSB/e53v0uXLl3KW4xyde/enXnz5jF37lz2339/Tj75ZPbbbz9uvvlmIGnR6tevHz179qRHjx4Fb00yMysUJzh1ZMcdd+Tjjz8GkpaQ7t27065dO1atWsVhhyVdYPfddx+nnXYanTp1YubMmaxYsaL8+SeccAIjRoxgxIgR9OvXr8p6qtr2JZdcwsiRIxk1alR5S0F1nn32WTp06ADAsmXLePzxxznllFO45ZZbmDhxIhMnTmTw4MF8+umnQHJ6/pNPPsnjjz/OxRdfDMAFF1zAsGHDeO655+jatSt33XVXHq9c41BX7+/KlSvp168fL7zwApttthmjRo2iZcuWPPXUU4wfP56rr76aQYMGAfDUU08xceJEnn/+efr27cusWbN4+umnmTBhApMmTWLYsGEsXry4yrrmz5/P0KFDeemllxg8eDAA119/PT/4wQ8YN24cN910E1dccUWtXzszs2Io2hgcSTsC9wDbAwEMjYjBkrYGRgDtgLlAv4j4t5IBCYOBI4Avgf4R8Vqx4qtrH330ETvssAOwpgtjyZIl9O7dm88++4ytttqKkSNHMmPGDAAWLlzI2LFjy8d/tGnThmXLlvHggw/yt7/9jaFDhwJwyy238Mgjj7Dbbrtx5513VrrtbbbZhqVLl7LTTjsBcOCBBwIwadKk8nEzo0ePBuDCCy+kRYsW7LXXXpx11lk8+OCDHHTQQUji/fffp2PHjmyyySYAdOzYkTlz5gBwwAEHAMn8YEuWLAHgrbfe4tRTTwWSs9t69epVxFe4ftXV+yup/P3r3Lkzs2fPpmvXrlxwwQUsWLCA5cuX07x5cwAGDRrEGWecwUYbbcRll13GzJkzmTlzJocccggAS5cu5aOPPqpyn/bcc08233zz8n2CpFXuhRdeKO++3Hjjkh7GZ41Y1jF61Y3Bs8atmEenlcBPI+I1Sc2BqZL+CvQHxkXEIElXAFcAPwN6A7unf52B29LbRm/JkiVcf/316wzCbdmyJeeeey6//e1vOeywwzj66KP5wx/+AMB7773HlVdeWf4PEJIWkZkzZ7LZZpuVlw0YMIABAwasU2futn/3u9+VX5+kbdu2TJ48md12241u3bqtMznikCFD6Nat21plZf/c2rdvz5tvvsny5cuB5J9d+/btmTlzJlOnTgXgww8/pEWLFgDsvffePPDAA7Rp0wag/Hmlpi7f34hgypQpdO7cmcmTJ3P44Ydz7733su+++3LllVcyduxYbrzxRiKCXr160adPHyZNmsQ111zDtddey7777sujjz6KJFasWEHTpk2ZNm1apftV2RlRHTp0oEuXLhx77LFA6b6nZtb4FS3BiYj5wPz0/ueSZgE7AEcD3dPV7gbGkyQ4RwP3RDJg4WVJrSS1SbfTKPXt25cmTZqwevVqzjjjDHr06LHOOieccAIdO3Zk0aJFnHTSSeXlu+66K7NmzWLp0qXlZUcccQRHHHFE5vrLtv3zn/+cG264gT59+vCtb32r/Bf++tpuu+04//zzyxOgAQMGlA9I3XzzzTnyyCP55z//yU033QTArbfeSv/+/cu7Yq688koOPfTQvOpuiOrj/d1444159NFHufzyy9lhhx046qijePvttznppJOYMGFCebfiypUr6d27N5C0nl1zzTXsvffe9OrVi4MPPpgmTZqUd3Gtj6uuuopzzz2XIUOGEBEceeSRXHrppeu1DTOzuqCyAZBFrURqB0wA9gY+jIhWabmAf0dEK0mjgUERMSl9bBzws4iYUtV2O3XqFFOmrP3wrFmz2HPPPYuyH2ZWudmzZwOwxx57+DtoDYK7qDYckqZGRKeK5UUfZCxpS+BR4KKIWJr7WNpas14ZlqRzJE2RNKVsgKuZmZlZrqImOJKakiQ390XEY2nxJ5LapI+3ARam5R8DO+Y8vW1atpaIGBoRnSKik6/XYWZmZpWpNsGR1EzScZIGS3pY0j2SLpfUoaYNp91PdwGzIuLGnIdGAael908DRuaUn6rEQcCSfMff1EW3m5mty989M2soqhxkLOla4Pskg4BfIWlpaQb8JzBIUjOSs6TerGITXYFTgOmSpqVlPwcGAQ9JOhP4ACi76MdYklPE3yU5Tfz0fHaoWbNmLF682BNumtWxiGDx4sU0a9asvkMxM6v2LKpXI2JgFY/dKGk7YKeqnpwOFq4qw+hZyfoBXFBNPJm0bduWefPm4fE5ZnVnwYIFRASbbropbdu2re9wzMyqTnAiYp2h5ZI2AraMiKURsZA142cajKZNm9K+ffv6DsNsg3LeeecBrHNdJTOz+lLjIGNJ90tqIWkLYAYwU9JlxQ/NzMzMLD9ZzqLaKz29+xjgKaA9ydgaMzMzswYpS4LTND3d+xhgVESsYD2vXWNmZmZWl7IkOH8mmRRzC2CCpJ2BpdU+w8zMzKwe1TgXVUT8EfhjTtEHkg4pXkhmZmZmtVNjgiNpU+B/gXYV1v9VkWIyMzMzq5Uss4mPBJYAU4FvihuOmZmZWe1lSXDaRsThRY/EzMzMrECyDDJ+SVLHokdiZmZmViBZWnC6Af0lzSHpohLJzArfLmpkZmZmZnnKkuD0LnoUZmZmZgVU3WziW0bEsoj4oKZ1ihOamZmZWX6qG4MzUtINkr6XzkMFgKRdJJ0p6RnAg4/NzMyswaluNvGeko4AfgR0lbQVsBKYDYwBTouIBXUTppmZmVl21Y7BiYixwNg6isXMzMysILKcJm5mZmbWqDjBMTMzs5LjBMfMzMxKTo0JTnomVYe6CMbMzMysELK04MwChkp6RdK5kloWOygzMzOz2qgxwYmIOyOiK3Aq0A54U9L9kg4pdnBmZmZm+cg0BkdSE+C/0r9FwBvAJZIeLGJsZmZmZnmpcS4qSTcB3weeA34TEa+mD/1W0uxiBmdmZmaWjyyTbb4JXB0RX1Ty2IEFjsfMzMys1rJ0UX1GTiIkqZWkYwAiYklxwjIzMzPLX5YEZ2BuIhMRnwEDixaRmZmZWS1lSXAqWydL15aZmZlZvciS4EyRdKOkXdO/G4GpxQ7MzMzMLF9ZEpwLgeXAiPTvG+CCYgZlZmZmVhs1djWlZ09dUQexmJmZmRVEluvg/CdwKclVjMvXj4gexQvLzMzMLH9ZBgs/DNwO3AmsyrphScNILhC4MCL2Tst+CZwNfJqu9vOIGJs+diVwZlrHjyPimax1mZmZmeXKkuCsjIjb8tj2cOAW4J4K5TdFxB9yCyTtBZwAdAC+BfxN0n9GROaEyszMzKxMlkHGT0o6X1IbSVuX/dX0pIiYAPwrYxxHAw9GxDcRMQd4F18l2czMzPKUpQXntPT2spyyAHbJs84Bkk4FpgA/jYh/AzsAL+esMy8tW4ekc4BzAHbaaac8QzAzM7NSVmMLTkS0r+Qv3+TmNmBXYB9gPnDD+m4gIoZGRKeI6NS6des8wzAzM7NSVmOCI2lzSVdLGpou7y7p+/lUFhGfRMSqiFgN3MGabqiPgR1zVm2blpmZmZmttyxjcP6P5EJ//50ufwxcl09lktrkLB4LzEjvjwJOkLSppPbA7sCr+dRhZmZmlmUMzq4RcbykEwEi4ktJqulJkh4AugPbSppHMkFnd0n7kIzhmQv8KN3mW5IeAmYCK4ELfAaVmZmZ5StLgrNc0mYkSQmSdiWZrqFaEXFiJcV3VbP+r4FfZ4jHzMzMrFpZEpxfAk8DO0q6D+gKnF7MoMzMzMxqI8tcVM9KmgocBAj4SUQsKnpkZmZmZnnKchbVuIhYHBFjImJ0RCySNK4ugjMzMzPLR5UtOJKaAZuTDBLeiqT1BqAFVVyEz8zMzKwhqK6L6kfARSRzQ01lTYKzlGSOKTMzM7MGqcoEJyIGA4MlXRgRQ+owJjMzM7NayTLIeIikvYG9gGY55RVnCTczMzNrEGpMcCQNJLlg317AWKA3MAlwgmNmZmYNUpapGo4DegILIuJ04DtAy6JGZWZmZlYLWRKcr9LJMVdKagEsZO2JMc3MzMwalCxXMp4iqRXJ7N9TgWXA34sZlJmZmVltZBlkfH5693ZJT5NcB8dXMjYzM7MGK0sLTrmImAsg6UNgp2IEZGZmZlZb65Xg5FDNq5gVzlFPHJlpvVHHjClyJGZm1hhkGWRcmShoFGZmZmYFVN1cVEOoPJER0KpYAZmZmZnVVnVdVFPyfMzMzMysXlU3F9XddRmImZmZWaHkOwbHzMzMrMFygmNmZmYlxwmOmZmZlZwss4m3Bs4G2uWuHxFnFC8sMzMzs/xludDfSGAi8DdgVXHDMTMzM6u9LAnO5hHxs6JHYmZmZlYgWcbgjJZ0RNEjMTMzMyuQLAnOT0iSnK8lfZ7+LS12YGZmZmb5qrGLKiKa10UgZmZmZoWSaTZxSUcB30sXx0fE6OKFZGZmZlY7NXZRSRpE0k01M/37iaTrix2YmZmZWb6ytOAcAewTEasBJN0NvA5cWczAzMzMzPKV9UrGrXLutyxCHGZmZmYFkyXBuR54XdLwtPVmKvDrmp4kaZikhZJm5JRtLemvkv6R3m6VlkvSHyW9K+lNSfvlu0NmZmZmNSY4EfEAcBDwGPAo0CUiRmTY9nDg8AplVwDjImJ3YFy6DNAb2D39Owe4LUvwZmZmZpXJMsi4K7A0IkYBLYDLJe1c0/MiYgLwrwrFRwN3p/fvBo7JKb8nEi8DrSS1ybYLZmZmZmvL0kV1G/ClpO8AlwDvAffkWd/2ETE/vb8A2D69vwPwUc5689KydUg6R9IUSVM+/fTTPMMwMzOzUpYlwVkZEUHSynJrRNwK1Prif+k2I4/nDY2IThHRqXXr1rUNw8zMzEpQlgTnc0lXAicDYyRtBDTNs75Pyrqe0tuFafnHwI4567VNy8zMzMzWW5br4BwPnAScGRELJO0E/D7P+kYBpwGD0tuROeUDJD0IdAaW5HRlmZkV3FFPHJlpvVHHjClyJGZWDFnmoloA3Jiz/CEZxuBIegDoDmwraR4wkCSxeUjSmcAHQL909bEkFxR8F/gSOH299sLMzMwsR5UJjqRJEdFN0uesPVZGJENoWlS34Yg4sYqHelaybgAXZIjXzMzMrEZVJjgR0S299WziZmZm1qhUO8hYUhNJb9dVMGZmZmaFUG2CExGrgNnpwGIzMzOzRiHLWVRbAW9JehX4oqwwIo4qWlRmZmZmtZAlwflF0aMwMzMzK6Asp4m/UBeBmJmZmRVKlsk2D5I0WdIyScslrZK0tC6CMzMzM8tHlqkabgFOBP4BbAacBdxazKDMzMzMaiNLgkNEvAs0iYhVEfF/wOHFDcvMzMwsf1kGGX8paRNgmqTfAfPJmBiZmZmZ1YcsCc4pJAnNAOBiklm//7eYQZlt6DwRpJlZ7WQ5i+qDtAWnHfAYMDsilhc7MDMzM7N81ZjgSDoSuB14j2SizfaSfhQRTxU7ODMzM7N8ZOmiugE4JB1ojKRdgTGAExwzMzNrkLIMFv68LLlJvQ98XqR4zMzMzGotSwvOFEljgYeAAPoCkyX9ACAiHitifGb1yoN9zcwapywJTjPgE+DgdPlTkgv+9SFJeJzgmJmZWYOS5Syq0+siEDMzM7NCyXIWVXvgQpLTxMvXj4ijiheWmZmZWf6ydFE9AdwFPAmsLmo0ZmZmZgWQJcH5OiL+WPRIzMzMzAokS4IzWNJA4Fngm7LCiHitaFGZWb3wWWNmllVDP15kSXA6ksxH1YM1XVSRLpuZmZk1OFkSnL7ALp5/qmFp6JmzmZlZfcpyJeMZQKsix2FmZmZWMFlacFoBb0uazNpjcHyauJnVmlsjrZT489xwZElwBhY9CjMzM7MCynIl4xckbQ8ckBa9GhELixuWmZmZWf5qHIMjqR/wKslg437AK5KOK3ZgZmZmZvnK0kV1FXBAWauNpNbA34BHihmYbRgOGvhMpvW227fIgZiZWUnJkuBsVKFLajHZzr4yM7MGwoNfbUOTJcF5WtIzwAPp8vHAU7WpVNJc4HNgFbAyIjpJ2hoYQTKp51ygX0T8uzb1mJlZaXGrr2VVY0tMRFwG/Bn4dvo3NCIuL0Ddh0TEPhHRKV2+AhgXEbsD49JlMzMzs/VWZQuOpN2A7SPixYh4DHgsLe8madeIeK/AsRwNdE/v3w2MB35W4DrMrMT5F37D4q4xqy/VteDcDCytpHxJ+lhtBPCspKmSzknLto+I+en9BcD2tazDzMzMNlDVjcHZPiKmVyyMiOmS2tWy3m4R8bGk7YC/Snq7Qh0hKSp7YpoQnQOw00471TIMM7O65RYNs7pRXQtOq2oe26w2lUbEx+ntQuBx4EDgE0ltANLbSi8mGBFDI6JTRHRq3bp1bcIwMzOzElVdgjNF0tkVCyWdBUzNt0JJW0hqXnYf+B+SCT1HAaelq50GjMy3DjMzM9uwVddFdRHwuKQfsiah6QRsAhxbizq3T7dbVv/9EfF0OpnnQ5LOBD4guWqymZmZ2XqrMsGJiE+A/5Z0CLB3WjwmIp6rTYUR8T7wnUrKFwM9a7NtKz6PHzAzs8Ygy2SbzwPP10EsZnXGpxKbmZW2LFcythpkadVwi4aZWePlH0WNjxOcBsZfIjMzs9pzgmO2AaivxDlLvU7WzRqWUvmhXWOCI+lzkisP51oCTAF+mg4aNjMzM2swsrTg3AzMA+4HBJwA7Aq8BgxjzfxRZlaDUvllZA1HQ26dK0a9ti6f3Vq5GmcTB46KiD9HxOcRsTQihgKHRcQIYKsix2dmZma23rIkOF9K6idpo/SvH/B1+lil80WZmZmZ1acsXVQ/BAYDfyJJaF4GTpa0GTCgiLFZHXJzs5mZlZIsF/p7H+hTxcOTChuOmVnj5B8JZg1LlrOomgFnAh2AZmXlEXFGEeNqEHzAMjMza5yyjMH5C/AfwGHAC0Bb4PNiBmVmZmZWG1UmOJLKWnd2i4hfAF9ExN3AkUDnugjOzMzMLB/VdVG9CuwHrEiXP5O0N7AA2K7YgZmZmW3IPEyidrKcRTVU0lbA1cAoYEvgF0WNyszMzKwWqktwtpN0SXr/9PT21vR2i+KFZGZmZlY71SU4TUhaa1TJY77An5mZmTVY1SU48yPiV3UWiZmZmVmBVHeaeGUtN2ZmZmYNXnUJTs86i8LMzMysgKpMcCLiX3UZiJmZmVmhZLmSsZmZmVmj4gTHzMzMSo4THDMzMys5TnDMzMys5DjBMTMzs5LjBMfMzMxKjhMcMzMzKzlOcMzMzKzkOMExMzOzkuMEx8zMzEqOExwzMzMrOQ0uwZF0uKTZkt6VdEV9x2NmZmaNT4NKcCQ1AW4FegN7ASdK2qt+ozIzM7PGpkElOMCBwLsR8X5ELAceBI6u55jMzMyskdm4vgOoYAfgo5zleUDn3BUknQOcky4ukzS7jmKrzrbAoupWEKrzOl2v663reqW84mmU++p6XW8DqndD2tfK7FxZYUNLcGoUEUOBofUdRy5JUyKiU6nX6Xpdb6nU6XpdbynVuyHt6/poaF1UHwM75iy3TcvMzMzMMmtoCc5kYHdJ7SVtApwAjKrnmMzMzKyRaVBdVBGxUtIA4BmgCTAsIt6q57CyqI8us/rqpnO9rrcU6nS9rreU6t2Q9jUzRUR9x2BmZmZWUA2ti8rMzMys1pzgmJmZWclxgrOeJLWTNKO+65P0XUlvSZomabO6iscKT1IrSefXdxx1pZrP9EWSNq+PmOqCpB9LmiXpi7q6Qrukl+qingp1LqvrOs0q4wSn8fohcH1E7BMRX9V3MPUhndqjFLQCNpgEpxoXASWb4JC8x4cCD5NMRVN0EfHfdVGPWUPkBCc/G0u6L/019oikzSUdIOklSW9IelVS8yLW92OgH/D/0vI2kiakrTkzJH23UBVLOlXSm+l+/UXS9pIeT5ffkFSUA2j6K//tSl7nuZJ+K+k1oG8ttr+FpDHpPsyQdLykQZJmpvv7h3S9vunjb0iakJb1lzRS0nhJ/5A0sJa7OwjYNX3/fi/pZ5Kmp3UOWs/9+kU6We0kSQ9IujSN8yZJU9LX8gBJj6WxX5fz3JPTz+40SX8uSyAl3ZY+9y1J1+asP1fStZJeS+P9r/UItbLP9LeA5yU9vz77nFUln+VdJb2cxn5dMVseJN0O7ALMAU4Dfp++zrsWq8603mXpbdGOEdXU3V3S6JzlWyT1L3AdZceJ4ZLeST9TvSS9mH6+D5TUWtJf08/vnZI+kLRtAequ7BgyV9Lv0s/Uq5J2K8R+Vqh3rRbQ9Dv+S0lnS5qcxvOoMrSGNqLjRX4iwn/r8Qe0AwLomi4PAy4H3gcOSMtaABsXsb5LgeHAcWnZT4Gr0vtNgOYFqrsD8A6wbbq8NTACuCinrpZ1+DpfCswFLi/A9v8XuCNneWdgNmvOLGyV3k4HdqhQ1h+YD2wDbAbMADrVcl9npPd7Ay8Bm5e95uuxnQOAaUAzoDnwj/Q1Gw/8Nl3nJ8A/gTbApiTToWwD7Ak8CTRN1/sTcGpuDOn7PR74dro8F7gwvX8+cGcB3ttti/R5quyzPBo4MV0+F1hWjLpzYphLcmn78u9usf/K9okiHSNqqLM7MDqn/Bagf4HragesBDqS/GCfmn6eRDKP4RNpvVem6x+efvZq/Tlj3WNIy/Q9LnudT83d/wLv84yc5UuBXwLb5JRdV/bdrGY7jeJ4UZs/t+Dk56OIeDG9fy9wGDA/IiYDRMTSiFhZxPq6VXh8MnC6pF8CHSPi8wLV2wN4OCIWAUTEv9Ky29LlVRGxpEB1Vaaq/R5RgG1PBw5V0hr0XZIrZn8N3CXpB8CX6XovAsMlnU3yhS3z14hYHEn34GOs+57kqxfwfxHxJZS/5ll1BUZGxNfpZ+DJnMfKLpg5HXgrIuZHxDckifmOQE9gf2CypGnp8i7pc/opaTF7nSRRyO1eeSy9nUpy4M2qps90oVX2We5C0l0EcH+R669vxTpGNARzImJ6RKwG3gLGRfJfdDrJZ7IbycTNRMTTwL8LVO9ax5CcY+EDObddClRXFntLmihpOskQhg41rN+Yjhd5cYKTn4oXD1pax/WttRwRE4DvkfyTHi7p1CLHU1eq2u8var3hiHeA/Ui+wNcBPyeZzf4R4PvA0+l65wJXk3ypp0rapobYGqpv0tvVOffLljcm+cV7dyRjuvaJiD0i4peS2pP8qusZEd8GxpD84qu43VWs34VDG9vr16jV0zFiJWv/j2lW1Yq1VPHznPtZL9rFbCseQyRdU/ZQ7mpFqLqq13U4MCAiOgLXUrvXu6EdL/LiBCc/O0kqy8xPAl4G2kg6AEBSc0mFfPMq1jcp90FJOwOfRMQdwJ0kX7pCeA7oW/ZPXdLWwDjgvHS5iaSWBaqrMtXud21I+hbwZUTcC/ye5ODfMiLGAhcD30nX2zUiXomIa4BPWTNX2qGStlZyBtsxJC09+fqcpIkY4K8kv7Q3T+vfej228yLQR1IzSVuSJGpZjQOOk7RdWb3p56oFSUK5RNL2JF1ohVDZe5v7OhRaZZ/ll0m6GSCZFqauFHM/K1XEY0R1PgD2krSppFYkv/Lrw4skYxaR9D/AVoXYaCXHkLLX9Pic278Xoq4KPgG2k7SNpE1Z8z1vDsyX1JSkBacmjel4kZcGNVVDIzIbuEDSMGAmMITkADok/Yf3FUlXQ6EGLVas7zaSPs8y3YHLJK1I6yzIr7OIeEvSr4EXJK0iaXL8CTBU0pkkWfh5FOdLDJXv94UF2nZHkoGeq4EVwCXAaEnNSH6dXJKu93tJu6dl44A3gH2AV4FHSSaEvTcipuQbSEQsVjIocgbwFEnz8BRJy4GxJK1LWbYzWdIo4E2Sg+B0IFMXYkTMlHQ18KykjUhekwsi4mVJrwNvAx9Ru0QuV2Xv7XLgaUn/jIhDClQPUOVn+SLgXklXkbTYFbO7NdeDwB1KBlYfFxHv1UGd3SnCMaI6EfGRpIdIxqjNIXnN68O1wAOSTiE5Vi0gSTJrq+Ix5DySFuCtJL1J0lpxYgHqWUtErJD0K5Jj0Mck302AXwCvkPwQe4UakuhGdrzIi6dqsAZJUjuSAXp713csFSk5E6RTRAyo71gqkrRlRCxLW4AmAOdExGv1HVdDlL5GX0VESDqBZMDx0fUdlxVW2sqxKpK5DrsAt0XEPkWqay7JsWFRMbZfaKV+vHALjllpGarkInLNSPrIS+ZgVQT7A7dIEvAZcEb9hmNFshPwUNrSsBw4u57jaUhK+njhFhwzMzMrOR5kbGZmZiXHCY6ZmZmVHCc4ZmZmVnKc4JiZmVnJcYJjeVEy6eb9kt6XNFXS3yUdm/P4zZI+Ts9cKCvrL+lTJZOzzUynP6hY/pbSiTXTxw6S9Er62Cwll5qvLJ77lEwaN0PSsPRiV2UT/i1Jnz9Na642amYFICkk3ZCzfGnZ91TJJJAfa80kn0dVUv62kgkaK/1/JGlVzrHhDUk/rWpds1z+kNh6S0+rfQKYEBG7RMT+JFeCbZs+vhFwLMmFng6u8PQR6TUougO/Sa92WV4eER1ITuUsuxro3STXZtgH2Bt4qIqw7gP+i+TiW5sBZ+U8NjHnkuK/ymunzawq3wA/UNUzdN+Ufn/7AsNykpOy8r1IvrcVjxVlvso5NhxKcnXcgYUK3kqXExzLRw9geUTcXlYQER9ExJB0sTvJpHe3UcWVPCNiIfAeySze5ZRMcbEFaybE245k5u6yyT1nVrG9sZEiucJn2/x2zczW00pgKMkUJ1WKiFnpuhUToU1IrsNS4ySY6XHjHGBA+kPLrEpOcCwfHYDqLgh1IslMuo8DR5Z1F+WStAvJ7LPvpkXHK5mV9mNga9bMbHsTMFvS45J+lE6lUKW0rlNIJ8tMdUmbtp+SVNMMu2a2/m4Ffqhq5qaT1JlkssZP06KL0+/8fOCdiJiWpaKIeB9oQvLjx6xKTnCs1iTdmiYQkyVtAhwBPBERS0nmRDksZ/WyROYB4EcR8a+0vKzr6j9I5kS5DCDtUuoEPEsyKWNu4lKZP5F0nU1Ml18Ddo6I75DMGfZEbfbVzNaVftfvAX5cycNlicwfgONjzdVly7qotgO2SKfLMCsYJziWj7fImY04Ii4gmSm4NUky0wqYns7L0o21u6nKxtp0jojHK244Pfg9STK7d1nZexFxW1rHd5TMovtMOvDwzrL1JA1MY7gk57lLI2JZen8s0LSasQJmlr+bgTNJuphz3ZR+57+b88OjXESsIPnh8j1JO+acEHBuZZWkrb+rgIWFDd9KjRMcy8dzQDNJ5+WUbZ7engicFRHtIqId0B44tOysqIy6kYzPQdKROX3tu5Mc2D6LiMPSg+ZZ6XpnkSRXJ0bE6rINSfqPsudLOpDkM794/XbXzGqStsY+RJLkZJZ+P7sC70XERzknBNxeybqtgduBW3Jagswq5ck2bb2lsy8fA9wk6XKSPvUvSM5suAk4N2fdLyRNAvrUsNnjJXUjSUDmAf3T8lPSer4kGaD4w4hYVcnzbwc+AP6e5jOPpd1bxwHnSVoJfAWc4AOjWdHcAAzIuO7Fkk4GmgJvknQvV2aztIurKckx4C/AjbWM0zYAnmzTzMzMSo67qMzMzKzkOMExMzOzkuMEx8zMzEqOExwzMzMrOU5wzMzMrOQ4wTEzM7OS4wTHzMzMSs7/B2N4HHpQSs09AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = df_gap22_ram_prob['avgTimeTagCheckResRd'].astype(float)\n", - "gap_22_ram = df_gap22_ram['avgTimeTagCheckResRd'].astype(float)\n", - "gap_22_prob[len(gap_22_prob)] = statistics.geometric_mean(df_gap22_ram_prob['avgTimeTagCheckResRd'].astype(float))\n", - "gap_22_ram[len(gap_22_ram)] = statistics.geometric_mean(df_gap22_ram['avgTimeTagCheckResRd'].astype(float))\n", - "\n", - "gap_25_prob = df_gap25_ram_prob['avgTimeTagCheckResRd'].astype(float)\n", - "gap_25_ram = df_gap25_ram['avgTimeTagCheckResRd'].astype(float)\n", - "gap_25_prob[len(gap_25_prob)] = statistics.geometric_mean(df_gap25_ram_prob['avgTimeTagCheckResRd'].astype(float))\n", - "gap_25_ram[len(gap_25_ram)] = statistics.geometric_mean(df_gap25_ram['avgTimeTagCheckResRd'].astype(float))\n", - "\n", - "npb_C_prob = df_npbC_ram_prob['avgTimeTagCheckResRd'].astype(float)\n", - "npb_C_ram = df_npbC_ram['avgTimeTagCheckResRd'].astype(float)\n", - "npb_C_prob[len(npb_C_prob)] = statistics.geometric_mean(df_npbC_ram_prob['avgTimeTagCheckResRd'].astype(float))\n", - "npb_C_ram[len(npb_C_ram)] = statistics.geometric_mean(df_npbC_ram['avgTimeTagCheckResRd'].astype(float))\n", - "\n", - "npb_D_prob = df_npbD_ram_prob['avgTimeTagCheckResRd'].astype(float)\n", - "npb_D_ram = df_npbD_ram['avgTimeTagCheckResRd'].astype(float)\n", - "npb_D_prob[len(npb_D_prob)] = statistics.geometric_mean(df_npbD_ram_prob['avgTimeTagCheckResRd'].astype(float))\n", - "npb_D_ram[len(npb_D_ram)] = statistics.geometric_mean(df_npbD_ram['avgTimeTagCheckResRd'].astype(float))\n", - "\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,220])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_22_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, gap_22_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_C_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, npb_C_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Tag Comparison Latency (ns)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,220])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_25_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Probe' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, gap_25_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_D_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, npb_D_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Tag Comparison Latency (ns)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_462509/3960693518.py:27: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_462509/3960693518.py:30: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n", - "/tmp/ipykernel_462509/3960693518.py:64: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_462509/3960693518.py:67: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADkCAYAAACVFl6LAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAomUlEQVR4nO3deZwU1bn/8c9XRHFhcf8REcEtV9EoigsXjIOY60IQ9AruS9xiXBJjXKPRLF4lyTXGJdGgIWjEPSpElJAYRkSjAnEBQYwiKgRFzAUkimzP74+qGZtxlpqerpmh+b5fr3511+nqOk/1dNc8ferUOYoIzMzMzMrJei0dgJmZmVmpOcExMzOzsuMEx8zMzMqOExwzMzMrO05wzMzMrOw4wTEzM7Oy4wTHzMzMyo4THDMzMys769f3pKR2wNeBA4EvAZ8C04GxEfFa/uGZmZmZNZ7qGslY0o9IkptKYCqwAGgH7AL0Sx9/LyJebZZIzczMzDKqL8EZEBFj63yhtDXQNSKm5BVcQ7bccsvo1q1bS1VvZqlZs2YB8OUvf7mFIzGzdc3UqVMXRsRWNcvrPEVVW3IjaT1g04hYEhELSFp1Wky3bt2YMqXF8iszS1VUVABQWVnZonGY2bpH0ju1lTfYyVjSvZI6SNqEpP/NDEmXlDpAMzMzs1LJchXVbhGxBBgMPAl0B07OMygzMzOzpsiS4LSV1JYkwRkTESuA2jvumJmZmbUC9V4mnvoNMAd4BZgoaXtgSZ5BNcWKFSuYO3cuy5Yta+lQrA6dO3emU6dOLR2GmZmVsQYTnIi4Gbi5oOgdSf3yC6lp5s6dS/v27enWrRuSWjocq+HTTz9l3rx5TnDMzCxXDSY4kjYE/hvoVmP9H+cUU5MsW7bMyU0r1q5dO1asWNHSYZiZWZnLcopqNLCYZLC/z/INpzSc3LRe/tuYmVlzyJLgdImIw3KPJAcHXPOnkmzn+R8dWudzixcvZtCgQQC8/PLL7Lrrrmy44YYsXLiQ9u3b06ZNGyKCs846i9NOOw2A7t27s/3227Nq1Sq6devGyJEjadOmDQDXXXcdd9xxB7Nnz65OBrp3707//v258847Afj973/PKaecwttvv03NgQ7r23aVa6+9li5dulTHU+W0007jlVdeoUOHDmy66aaMGjUq06mkkSNHMnfuXK666qoG1zUzM2sOWa6iek7SHrlHspbq2LEjlZWVVFZWstdee/HQQw9RWVnJlltuyUMPPcSkSZMYO3YsI0eOZMKECQC0adOGyspKnnnmGdq2bcv48eOrt/f4449z8MEH8+yzz1aXtWnThnfffZfPPksa0B5++GH22WefWuOpb9tZ3HLLLTz99NP06dOH22+/fY3nVq1a1ahtmZmZtZQsCU5fYKqkWZJelTRNkuefaoROnTpx5ZVXcu+9965Rvnr1ahYtWkTVdBkvvfQSPXr04Fvf+hb33HPPGusefvjhjB07lgULFtC2bdsGW1ZqbnvixIn07NmTgQMH8sILLzQY8957780777zDyJEjGTJkCIMHD+amm27ijjvuYP/992f//fdnxIgR1eu/8MILDBw4kJ49e/LMM89keVvMzMxyk+UU1eG5R7EO2G677Zg3bx6QtIRUVFQwe/ZsevbsyaGHJqfARo0axamnnkqvXr246KKLWLFiBW3btgXguOOO48ILL2TevHkMHTqU4cOH11pPXdu+6KKLGD16NNttt111WX3Gjx9Pjx49AFi6dClPPPEECxcu5JBDDmHy5MkA7LvvvgwcOBBILs8fN24cc+bM4ZhjjvEUGmZm1qLqbMGRtClARLxT261wnTpev52kCZJmSHpN0nfS8s0l/VnSP9L7zdJySbpZ0ptpS9Hepd3VlvXee++x7bbbAp+fRpo2bRoffvghixYtYvXq1YwePZprr72Www47jAULFvDEE09Uv75z584sXbqU+++/vzqpALj11lupqKjgzDPPrHPbAEuWLKFr165IYr/99gNg0qRJVFRUUFFRwdKlSwG44IILOOigg/j000+rt3nAAQcgidmzZ7PHHnuwwQYbsMEGG7DHHnvw9ttvA0myA8n8YIsXL87xnTQzM2tYfaeoRku6QdJX03moAJC0g6QzJP0JqK/z8UrgexGxG3AAcJ6k3YDLgaciYmfgqXQZkpaindPb2cBtRe9VK7N48WKuv/56jj/++DXKO3bsyDnnnMNPf/pTJkyYwKBBgxg3bhzjxo1j7NixjBo1ao31zzvvPI466ig22mij6rLzzz+fysrK6g7ItW0boH379sydOxegugWmb9++1f2HNt00yVWr+uDcdttttGvXDqC6k3L37t159dVXWb58OcuXL2fatGl0794dgKlTpwLw7rvv0qFDh6a/aWZmZk1Q32zi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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADkCAYAAACVFl6LAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAApN0lEQVR4nO3deZwU1bn/8c9XRHFBcP8REcEliYJXUVwIGAfQa9Qg6hVc4kKMGhVMjFGj0WiS61WzGON2NUgMGhS3qBBRQkIYEU0UiCibJIqgEBQhF5C4sTy/P6pmbIZZanq6Zobh+369+tVdp6vrPNXTXfP0qVPnKCIwMzMza0k2a+oAzMzMzErNCY6ZmZm1OE5wzMzMrMVxgmNmZmYtjhMcMzMza3Gc4JiZmVmL4wTHzMzMWhwnOGZmZtbibF7bk5LaAF8FjgA+B3wEzATGRsSs/MMzMzMzqz/VNJKxpB+RJDflwDRgCdAG+DzQJ3383Yh4rVEiNTMzM8uotgTn+IgYW+MLpV2AThExNa/g6rLTTjtF586dm6p6M0vNnTsXgC984QtNHImZbWqmTZu2NCJ2rlpe4ymq6pIbSZsB20bEyohYQtKq02Q6d+7M1KlNll+ZWaqsrAyA8vLyJo3DzDY9khZUV15nJ2NJD0naTtI2JP1vZku6otQBmpmZmZVKlquo9ouIlcCJwLNAF+CsPIMyMzMza4gsCU5rSa1JEpwxEbEaqL7jjpmZmVkzUOtl4qlfAfOBV4FJkvYAVuYZVEOsXr2ahQsX8vHHHzd1KFaHNm3a0LFjR1q3bt3UoZiZWQtTZ4ITEbcDtxcULZDUJ7+QGmbhwoW0bduWzp07I6mpw7EaRATLli1j4cKFdOnSpanDMTOzFqbOBEfSlsB/AZ2rrP/jnGJqkI8//tjJzUZAEjvuuCPvv/9+U4diZmYtUJZTVKOBFSSD/X2Sbzil4eRm4+C/k5mZ5SVLgtMxIr6SeyQ5OPz6P5RkO3/90TE1PrdixQoGDBgAwPTp09l3333ZcsstWbp0KW3btqVVq1ZEBOeffz6DBw8GoEuXLuyxxx6sXbuWzp07M2LECFq1agXAjTfeyL333su8efMqE4AuXbrQr18/hg8fDsBvf/tbzj77bN566y2qDnRY27Yr3HDDDXTs2LEyngqDBw/m1VdfZbvttmPbbbflwQcfpH379nW+PyNGjGDhwoVce+21da5rZmbWGLJcRfWipP1zj2Qj1a5dO8rLyykvL+fAAw/kscceo7y8nJ122onHHnuMyZMnM3bsWEaMGMHEiRMBaNWqFeXl5Tz//PO0bt2a8ePHV27v6aefpm/fvrzwwguVZa1ateLtt9/mk0+SBrTHH3+cgw8+uNp4att2FnfccQfPPfccvXr14p577lnvubVr19ZrW2ZmZk0lS4LTG5gmaa6k1yTNkOT5p+qhffv2XHPNNTz00EPrla9bt47ly5dTMV3GK6+8QteuXbnooosYOXLkeusee+yxjB07liVLltC6des6W1aqbnvSpEl0796d/v3789JLL9UZ80EHHcSCBQsYMWIEAwcO5MQTT+S2227j3nvv5bDDDuOwww7jvvvuq1z/pZdeon///nTv3p3nn38egBkzZnDUUUfRt29fBg0axEcffVRnvWZmZqWQ5RTVsblHsQnYfffdWbRoEZC0hJSVlTFv3jy6d+/OMcckp8AefPBBzjnnHHr06MFll13G6tWrKy+hPu2007j00ktZtGgRgwYNYtiwYdXWU9O2L7vsMkaPHs3uu+9eWVab8ePH07VrVwBWrVrFM888w9KlSznqqKOYMmUKAIcccgj9+/cHksvzx40bx/z58znllFOYOnUqQ4YMYeTIkXTq1InbbruNX//61wwdOrQB76KZWTYnPHV8pvXGnFjjlIu2kauxBUfStgARsaC6W+E6Nbx+d0kTJc2WNEvSt9PyHST9UdI/0vvt03JJul3SG2lL0UGl3dWm9c4777DbbrsBn51GmjFjBu+//z7Lly9n3bp1jB49mhtuuIGvfOUrLFmyhGeeeaby9R06dGDVqlU8/PDDlUkFwJ133klZWRnnnXdejdsGWLlyJZ06dUIShx56KACTJ0+mrKyMsrIyVq1aBcAll1zCkUceyUcffVS5zcMPPxxJzJs3j/33358tttiCLbbYgv3335+33noLSJIdSOYHW7FiBQCzZs3i7LPPpqysjFGjRvHuu+/m9faamZmtp7YWnNGSppNcRTUtIv4NIGlPoA8wCLgXeLyG168BvhsRf5PUluQ01x+BwcCEiLhZ0lXAVcD3SFqK9klvhwF3p/cbvRUrVnDTTTdt0Am3Xbt2XHjhhfzkJz/hmGOOYcCAAfz85z8H4M033+Tqq6+u7MAMMGTIEGbPns1WW21V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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = df_gap22_ram_prob['avgTCLatRdM'].astype(float)\n", - "gap_22_ram = df_gap22_ram_brk['avgTCLatRdM'].astype(float)\n", - "gap_22_prob[len(gap_22_prob)] = statistics.geometric_mean(df_gap22_ram_prob['avgTCLatRdM'].astype(float))\n", - "gap_22_ram[len(gap_22_ram)] = statistics.geometric_mean(df_gap22_ram_brk['avgTCLatRdM'].astype(float))\n", - "\n", - "\n", - "gap_25_prob = df_gap25_ram_prob['avgTCLatRdM'].astype(float)\n", - "gap_25_ram = df_gap25_ram_brk['avgTCLatRdM'].astype(float)\n", - "gap_25_prob[len(gap_25_prob)] = statistics.geometric_mean(df_gap25_ram_prob['avgTCLatRdM'].astype(float))\n", - "gap_25_ram[len(gap_25_ram)] = statistics.geometric_mean(df_gap25_ram_brk['avgTCLatRdM'].astype(float))\n", - "\n", - "npb_C_prob = df_npbC_ram_prob['avgTCLatRdM'].astype(float)\n", - "npb_C_ram = df_npbC_ram_brk['avgTCLatRdM'].astype(float)\n", - "npb_C_prob[len(npb_C_prob)] = statistics.geometric_mean(df_npbC_ram_prob['avgTCLatRdM'].astype(float))\n", - "npb_C_ram[len(npb_C_ram)] = statistics.geometric_mean(df_npbC_ram_brk['avgTCLatRdM'].astype(float))\n", - "\n", - "\n", - "\n", - "npb_D_prob = df_npbD_ram_prob['avgTCLatRdM'].astype(float)\n", - "npb_D_ram = df_npbD_ram_brk['avgTCLatRdM'].astype(float)\n", - "npb_D_prob[len(npb_D_prob)] = statistics.geometric_mean(df_npbD_ram_prob['avgTCLatRdM'].astype(float))\n", - "npb_D_ram[len(npb_D_ram)] = statistics.geometric_mean(df_npbD_ram_brk['avgTCLatRdM'].astype(float))\n", - "\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,220])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_22_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, gap_22_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_C_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, npb_C_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Rd-Miss Tag Comparison Latency (ns)\")\n", - "plt.legend(fontsize=9, ncol=1, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,220])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_25_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Probe' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, gap_25_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_D_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, npb_D_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Rd-Miss Tag Comparison Latency (ns)\")\n", - "plt.legend(fontsize=9, ncol=1, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_462509/764342778.py:32: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_462509/764342778.py:35: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n", - "/tmp/ipykernel_462509/764342778.py:69: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_gap[len(app_gap)] = \"gmean\"\n", - "/tmp/ipykernel_462509/764342778.py:72: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame\n", - "\n", - "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", - " app_npb[len(app_npb)] = \"gmean\"\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAisklEQVR4nO3deZgV1ZnH8e8vLYgL4kRxYkDtjjqJQQxIKzIutGLGLbhkglvUoKNGI8ZlnCRGB2PGRLO4EEh00DAkrsQtoqIxj7EFdDQ0BmQTg1todSLgCDJxYXnnj6puL20vt7tv9VL9+zxPP/fWqXPrvHVv3er3nlqOIgIzMzOzPPlEZwdgZmZmVmpOcMzMzCx3nOCYmZlZ7jjBMTMzs9xxgmNmZma54wTHzMzMciezBEfSTpKekLRY0iJJFzRSp0rSaknz0r/xWcVjZmZmPcdmGS57PfCvEfGcpL7AXEm/j4jFDerNiogvZRiHmZmZ9TCZ9eBExJsR8Vz6/F1gCTAgq/bMzMzM6mTZg1NPUjkwFHi2kdkjJM0H3gAuiYhFjbz+bOBsgK222mrY5z73uQyjNbNiLV26FIDPfvaznRyJmfVUc+fOXRkR/RuWK+uhGiRtDTwJ/CAi7mswbxtgY0SslXQkMCEidm9ueZWVlVFTU5NdwGZWtKqqKgCqq6s7NQ4z67kkzY2IyoblmV5FJakXcC9we8PkBiAi1kTE2vT5DKCXpO2zjMnMzMzyL8urqAT8ElgSEdc1UedTaT0k7ZvGsyqrmMzMzKxnyPIcnP2BU4EFkualZd8FdgaIiJuArwDnSloPvAecGB7e3MzMzNopswQnImYDaqHOJGBSe9tat24dtbW1vP/+++1dlJk1oU+fPgwcOJBevXp1dihmZi3qkKuoslZbW0vfvn0pLy8nPeJlZiUUEaxatYra2loqKio6OxwzsxblYqiG999/n+22287JjVlGJLHddtu5l9TMuo1cJDiAkxuzjPk7ZmbdSS4OURXa74rflWQ5z1x5WJPzVq9ezTHHHAPAvHnz2GOPPdh8881ZuXIlffv2paysjIjgrLPOYuzYsQBUVFSwyy67sGHDBsrLy5k6dSplZWUA/PCHP+Tmm2/m5Zdfrv8nUlFRwahRo7jlllsAuPXWWznttNN45ZVXKC8v3ySe5pZd56qrrmLgwIH18dQZO3Ys8+fPZ5tttmHrrbfm9ttvZ9ttt23x/Zk6dSq1tbVcfvnlLdZti6N/e1RJljP92IebnNfVPsfddtuNZcuWlWS96xR+ThdeeCGXXXYZ/ft/7H5YZma5k5senI7Ur18/qqurqa6uZsiQIdx9991UV1ez/fbbc/fddzN79mwefvhhpk6dyhNPPAFAWVkZ1dXVzJo1i169evHYY4/VL++hhx7ikEMO4amnnqovKysr4y9/+QsffPABAPfccw/Dhg1rNJ7mll2MiRMn8uSTT7L//vtz0003bTJvw4YNrVpWd9LVPses3XDDDU5uzKzHcIKTkW233ZbLLruMO+64Y5PyjRs38s4771B3Nfyf/vQnBg0axLnnnsttt922Sd0jjjiChx9+mLfeeotevXq12LPScNkzZ85k6NChjB49mmefbWyUjE3tvffevPbaa0ydOpUxY8Zw7LHHMmHCBG6++WaGDx/O8OHDmTJlSn39Z599ltGjRzN06FBmzZpVzNvS7XT053jRRRcxcuRITjnlFDZu3MjKlSsZNWoUVVVV7L///rz44osAXHLJJYwYMYKDDz6YadOmAUmieuCBBzJixIj6HqNCVVVV1NbW8uqrrzJs2DBOOeUU9t57b2644QYg6dE6/vjjGTVqFIccckjJe5PMzDqSE5wM7bTTTrz++utA0hNSVVVFeXk5GzZs4LDDkkNgt99+O1/72teorKxk8eLFrFu3rv71J554ItOmTWPatGkcf/zxTbbT1LIvvvhiHnjgAaZPn17fg9Ccxx57jEGDBgGwdu1a7r//fk499VQmTZrErFmzmDVrFhMmTGDFihVAcnn+gw8+yP33389FF13UtjepG+ioz3H9+vUcf/zxPPnkk2yxxRZMnz6dfv368cgjj1BdXc3ll1/ONddcA8AjjzzCrFmzeOKJJxgzZgxLlizh0UcfZebMmcyePZspU6awalXT98x88803mTx5Mk8//TQTJkwA4Oqrr+bLX/4yjz/+ONdffz3f+c532v3emZl1Fic4GVq+fDkDBiQDqNcd2liwYAErVqzgnXfeYePGjTzwwANcddVVHH744bz11lvMmDGj/vU77rgja9eu5a677mL06NH15ZMmTaKqqoozzzyzyWUDrFmzhp133hlJ7LvvvgDMnj2bqqoqqqqqWLt2LQDnn38+I0eO5L333qtf5n777YckXn75ZQYPHkzv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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = df_gap22_ram_prob['simSeconds'].astype(float)/df_gap22_cas['simSeconds'].astype(float)\n", - "gap_22_ram = df_gap22_ram['simSeconds'].astype(float)/df_gap22_cas['simSeconds'].astype(float)\n", - "geo_meanC = df_gap22_ram_prob['simSeconds'].astype(float)/df_gap22_cas['simSeconds'].astype(float)\n", - "geo_meanR = df_gap22_ram['simSeconds'].astype(float)/df_gap22_cas['simSeconds'].astype(float)\n", - "gap_22_prob[len(gap_22_prob)] = statistics.geometric_mean(geo_meanC)\n", - "gap_22_ram[len(gap_22_ram)] = statistics.geometric_mean(geo_meanR)\n", - "\n", - "gap_25_prob = df_gap25_ram_prob['simSeconds'].astype(float)/df_gap25_cas['simSeconds'].astype(float)\n", - "gap_25_ram = df_gap25_ram['simSeconds'].astype(float)/df_gap25_cas['simSeconds'].astype(float)\n", - "geo_meanC = df_gap25_ram_prob['simSeconds'].astype(float)/df_gap25_cas['simSeconds'].astype(float)\n", - "geo_meanR = df_gap25_ram['simSeconds'].astype(float)/df_gap25_cas['simSeconds'].astype(float)\n", - "gap_25_prob[len(gap_25_prob)] = statistics.geometric_mean(geo_meanC)\n", - "gap_25_ram[len(gap_25_ram)] = statistics.geometric_mean(geo_meanR)\n", - "\n", - "npb_C_prob = df_npbC_ram_prob['simSeconds'].astype(float)/df_npbC_cas['simSeconds'].astype(float)\n", - "npb_C_ram = df_npbC_ram['simSeconds'].astype(float)/df_npbC_cas['simSeconds'].astype(float)\n", - "geo_meanC = df_npbC_ram_prob['simSeconds'].astype(float)/df_npbC_cas['simSeconds'].astype(float)\n", - "geo_meanR = df_npbC_ram['simSeconds'].astype(float)/df_npbC_cas['simSeconds'].astype(float)\n", - "npb_C_prob[len(npb_C_prob)] = statistics.geometric_mean(geo_meanC)\n", - "npb_C_ram[len(npb_C_ram)] = statistics.geometric_mean(geo_meanR)\n", - "\n", - "npb_D_prob = df_npbD_ram_prob['simSeconds'].astype(float)/df_npbD_cas['simSeconds'].astype(float)\n", - "npb_D_ram = df_npbD_ram['simSeconds'].astype(float)/df_npbD_cas['simSeconds'].astype(float)\n", - "geo_mean = df_npbD_ram_prob['simSeconds'].astype(float)/df_npbD_cas['simSeconds'].astype(float)\n", - "geo_mean = df_npbD_ram['simSeconds'].astype(float)/df_npbD_cas['simSeconds'].astype(float)\n", - "npb_D_prob[len(npb_D_prob)] = statistics.geometric_mean(geo_meanC)\n", - "npb_D_ram[len(npb_D_ram)] = statistics.geometric_mean(geo_meanR)\n", - "\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,2.5])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, 1/gap_22_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, 1/gap_22_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, 1/npb_C_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, 1/npb_C_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Speedup to C.L.\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,2.5])\n", - "barWidth = 1\n", - "tickSize = 3\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, 1/gap_25_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - " plt.bar(i*tickSize+barWidth/2, 1/gap_25_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, 1/npb_D_prob[i], width=1, color=cmap(1))\n", - " plt.bar((offset+i)*tickSize+barWidth/2, 1/npb_D_ram[i], width=1, color=cmap(2))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Speedup to C.L.\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgUElEQVR4nO3de5xVdb3/8de7EUUUIRHLBBwk80qJjkpHzPGWqCHZSQNNo1LSxEqz00V/osavMvN4PGr4EzNOiomXUBQCPcUkaiiQchHEQ6AyZHHxdsgLCp/fH2sNboY9e/YMs/Ye9ryfj8c8ZtZ3ffd3ffZl1nzmu77r+1VEYGZmZlZJPlTuAMzMzMzamhMcMzMzqzhOcMzMzKziOMExMzOziuMEx8zMzCqOExwzMzOrOJklOJJul7RK0sIm9p8lab6kBZKelPSprGIxMzOzjiXLHpzxwOAC+5cDR0dEf+DHwK0ZxmJmZmYdyHZZNRwRj0mqLrD/yZzNWUCvrGIxMzOzjiWzBKeFvg78vqmdkkYCIwF22mmnQ/fbb79SxWVmqSVLlgCw7777ljkSM7MPzJ07d01E9GxcXvYER9IxJAnOoKbqRMStpJewampqYs6cOSWKzswa1NbWAlBXV1fWOMzMckl6KV95WRMcSZ8EbgNOioi15YzFzMzMKkfZbhOX1Af4HXB2RLxQrjjMzMys8mTWgyPpt0AtsJukemA00AkgIm4BrgB6AL+UBPB+RNRkFY+ZmZl1HFneRTW8mf3nAue2xbHee+896uvreeedd9qiOWsjnTt3plevXnTq1KncoZiZWQdT9kHGbaG+vp6uXbtSXV1N2htkZRYRrF27lvr6evr27VvucMzMrIOpiKUa3nnnHXr06OHkph2RRI8ePdyrZmZmZVERCQ7g5KYd8ntiZmblUhGXqHINHD29TdqZddWJTe574403GDp0KADPPvss+++/PzvssANr1qyha9euVFVVERGcd955jBgxAoC+ffuy1157sWHDBqqrqxk/fjxVVVUA/OQnP2HcuHEsW7ZsU1LQt29fjjvuOG677TYA7rjjDs455xyWL19OdXX1ZvEUarvBmDFj6NWr16Z4GowYMYJ58+axyy67sPPOOzNhwgS6d+/e7Oszfvx46uvrufzyy5uta2ZmVmoV04NTSt26daOuro66ujoOPvhg7r33Xurq6thtt9249957efzxx5kyZQrjx49nxowZAFRVVVFXV8fMmTPp1KkTjzzyyKb2Hn74YY499lieeOKJTWVVVVW8/PLLvPvuuwDcd999HHrooXnjKdR2MW688Ub+9Kc/ceSRR3LLLbdstm/Dhg0tasvMzKw9cIKTke7du3PZZZdx1113bVa+ceNGXn/9dSICgGeeeYYDDzyQCy64gDvvvHOzuieddBJTpkxh1apVdOrUqdmelcZtP/bYYwwYMIAhQ4bw1FNPNRvzIYccwksvvcT48eM5/fTT+fznP88NN9zAuHHjOOKIIzjiiCO4/fbbN9V/6qmnGDJkCAMGDGDmzJnFvCxmZmYl4QQnQ71792blypVA0hNSW1tLdXU1GzZs4MQTk0tgEyZM4Ctf+Qo1NTUsWrSI9957b9Pjhw0bxsSJE5k4cSJnnHFGk8dpqu1LLrmEBx98kMmTJ2/qCSrkkUce4cADDwRg3bp1TJo0ibPPPpubbrqJmTNnMnPmTG644QZWr14NJLfnP/TQQ0yaNImLL764dS+SmZlZBpzgZGjFihXsueeewAeXkRYsWMDq1at5/fXX2bhxIw8++CBjxoxh8ODBrFq1iqlTp256/B577MG6deu4++67GTJkyKbym266idraWs4999wm2wZ488036dOnD5I4/PDDAXj88cepra2ltraWdevWAXDRRRdx9NFH8/bbb29qc+DAgUhi2bJl9O/fn+23357tt9+e/v37s3z5cgAOO+wwAKqrq3njjTcyfCXNzMxaxglORt544w1++tOfMnz45vMdduvWjfPPP59rrrmGGTNmMHToUKZNm8a0adOYMmUKEyZM2Kz+hRdeyGmnncaOO+64qWzUqFHU1dVtGoCcr22Arl27Ul9fD8Ds2bMBGDRo0KbxQzvvvDPwwRicsWPH0rlzZ4BNg5T79u3L/PnzWb9+PevXr2fBggWb5rWZO3cuAC+//DK77LLL1r9oZmZmbaTi7qIqt9NPP52qqio2btzI1772NY499tgt6gwbNoz+/fuzZs0azjzzzE3l/fr1Y/Hixbz55pubyk4++WROPvnkoo/f0PaPfvQjrrvuOoYMGcLHPvYxunbt2qrns/vuu/PNb36TQYOSxd5HjRpFz57JqvRdunThlFNO4W9/+xvXX399q9o3MzPLghoGpG4rampqYs6cOZuVLV68mP33379M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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgmElEQVR4nO3deZxU1Z338c83LYgLQkScGBukReNKItpuIxlb1IAaJJOJChoNMUo0YhKNyYzRR9TwJK5xGDX6iBImrrgERSUuM0pEDQZwQ0Adxa2JCYuKQ0QR+D1/3NtYNFXVRdO3qqn+vl+vfnXfc0+d+6ulb//63HPPUURgZmZmVk0+V+kAzMzMzNqaExwzMzOrOk5wzMzMrOo4wTEzM7Oq4wTHzMzMqo4THDMzM6s6mSU4ksZLWijppQL7T5D0oqTZkp6W9JWsYjEzM7OOJcsenAnA4CL73wAOjoh+wC+AGzKMxczMzDqQTbJqOCKekNSnyP6nczanA7VZxWJmZmYdS2YJznr6HvCHQjsljQRGAmyxxRb77LrrruWKy8xSr7zyCgC77LJLhSMxM/vMrFmzFkdEz+blFU9wJB1CkuAMKFQnIm4gvYRVX18fM2fOLFN0ZtakoaEBgKlTp1Y0DjOzXJLeylde0QRH0peBG4EjImJJJWMxMzOz6lGx28Ql9QZ+D5wYEa9WKg4zMzOrPpn14Ei6HWgAtpHUCIwGOgFExPXABUAP4DeSAFZGRH1W8ZiZmVnHkeVdVMNb2H8KcEpbHOvTTz+lsbGRjz/+uC2aswx16dKF2tpaOnXqVOlQzMysilV8kHFbaGxspGvXrvTp04e0N8jaoYhgyZIlNDY2UldXV+lwzMysilXFUg0ff/wxPXr0cHLTzkmiR48e7mkzM7PMVUWCAzi52Uj4fTIzs3KoiktUuQ4Y/XCbtDP9okEF9y1dupShQ4cC8Pzzz7Pbbrux6aabsnjxYrp27UpNTQ0RwamnnsqIESMAqKurY4cddmDVqlX06dOHCRMmUFNTA8Avf/lLxo0bx/z589ckAHV1dRx66KHceOONANx8882cdNJJvPHGG/Tp02eteIq13WTMmDHU1tauiafJiBEjeOGFF9hqq63YcsstufXWW+nevXuLr8+ECRNobGzk/PPPb7GumZlZuVVND045devWjalTpzJ16lT22msv7rrrLqZOnco222zDXXfdxZNPPsmDDz7IhAkTePzxxwGoqalh6tSpTJs2jU6dOvHII4+sae+BBx5g4MCBPPXUU2vKampqePvtt/nkk08AuPvuu9lnn33yxlOs7VJcffXV/PGPf+Sggw7i+uuvX2vfqlWr1qstMzOz9sAJTka6d+/Oeeedx2233bZW+erVq/nggw+ICACee+459thjD04//XRuueWWteoeccQRPPjggyxcuJBOnTq12LPSvO0nnniC/v37M2TIEJ555pkWY95777156623mDBhAscccwzf+MY3GDt2LOPGjWP//fdn//33Z/z48WvqP/PMMwwZMoT+/fszbdo0AGbPns1hhx3GwIEDOfbYY1m+fHmLxzUzM2trTnAy1KtXLxYsWAAkPSENDQ306dOHVatWMWhQcgns1ltv5Tvf+Q719fXMnTuXTz/9dM3jhw0bxsSJE5k4cSLHHntsweMUavvss8/mvvvuY/LkyWt6gop55JFH2GOPPQBYtmwZkyZN4sQTT+Saa65h2rRpTJs2jbFjx7Jo0SIguT3//vvvZ9KkSZx11lkAnHHGGYwfP57HHnuMgw46iJtuuqkVr5yZmdmGcYKToXfeeYftt98e+Owy0uzZs1m0aBEffPABq1ev5r777mPMmDEMHjyYhQsXMmXKlDWP32677Vi2bBl33HEHQ4YMWVN+zTXX0NDQwCmnnFKwbYAPP/yQ3r17I4n99tsPgCeffJKGhgYaGhpYtmwZAGeeeSYHH3wwy5cvX9PmAQccgCTmz59Pv3796Ny5M507d6Zfv3688cYbAOy7774A9OnTh6VLlwIwZ84cTjrpJBoaGrj99tv561//mtXLa2ZmVlDVDTJuL5YuXcqvfvWrdQbhduvWjdNOO41LL72UQYMGMXToUK644goAXn/9dc4999w1A5gh6RGZO3cum2222ZqyUaNGMWrUqHWOmdv2ZZddRteuXWlsbKS2tpYZM2aw0047MWDAgHUWS7z66qsZMGDttU6bBinX1dXx4osvsmLFCiC5BFVXV8fcuXOZNWsWAG+//TZbbbUVAHvuuSe333472223HcCax5mZmZWTE5w2dswxx1BTU8Pq1as5+eSTGThw4Dp1hg0bRr9+/Vi8eDHHH3/8mvK+ffsyb948PvzwwzVlRx55JEceeWTJx29q++c//zlXXnklQ4YM4Ytf/CJdu3Zt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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "gap_22_prob = 100* df_gap22_ram_prob['actDelayedDueToTagAct'].astype(float)/(df_gap22_ram_prob['numTotMisses'].astype(float)+df_gap22_ram_prob['numTotHits'].astype(float))\n", - "#gap_22_prob[len(gap_22_prob)] = statistics.geometric_mean(df_gap22_ram_prob['actDelayedDueToTagAct'].astype(float))\n", - "\n", - "\n", - "gap_25_prob = 100* df_gap25_ram_prob['actDelayedDueToTagAct'].astype(float)/(df_gap25_ram_prob['numTotMisses'].astype(float)+df_gap25_ram_prob['numTotHits'].astype(float))\n", - "#gap_25_prob[len(gap_25_prob)] = statistics.geometric_mean(df_gap25_ram_prob['actDelayedDueToTagAct'].astype(float))\n", - "\n", - "npb_C_prob = 100* df_npbC_ram_prob['actDelayedDueToTagAct'].astype(float)/(df_npbC_ram_prob['numTotMisses'].astype(float)+df_npbC_ram_prob['numTotHits'].astype(float))\n", - "#npb_C_prob[len(npb_C_prob)] = statistics.geometric_mean(df_npbC_ram_prob['actDelayedDueToTagAct'].astype(float))\n", - "\n", - "\n", - "\n", - "npb_D_prob = 100* df_npbD_ram_prob['actDelayedDueToTagAct'].astype(float)/(df_npbD_ram_prob['numTotMisses'].astype(float)+df_npbD_ram_prob['numTotHits'].astype(float))\n", - "#npb_D_prob[len(npb_D_prob)] = statistics.geometric_mean(df_npbD_ram_prob['actDelayedDueToTagAct'].astype(float))\n", - "\n", - "################################## \n", - "# Multi bar Chart1\n", - "app_gap = df_gap22_ram_prob['app']\n", - "#app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbC_ram_prob['app']\n", - "#app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,1.2])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_22_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Prob' if i==0 else None)\n", - "\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_C_prob[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"ACT delayed (%)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###############################################################################\n", - "# Multi bar Chart2\n", - "app_gap = df_gap25_ram_prob['app']\n", - "#app_gap[len(app_gap)] = \"gmean\"\n", - "\n", - "app_npb = df_npbD_ram_prob['app']\n", - "#app_npb[len(app_npb)] = \"gmean\"\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,1.2])\n", - "barWidth = 1\n", - "tickSize = 2\n", - "\n", - "\n", - "for i,app in enumerate(app_gap):\n", - " plt.bar(i*tickSize-barWidth/2, gap_25_prob[i], width=barWidth, color=cmap(1), label='TDRAM-Rd-Probe' if i==0 else None)\n", - "offset = i+1\n", - "for i,app in enumerate(app_npb): \n", - " plt.bar((offset+i)*tickSize-barWidth/2, npb_D_prob[i], width=1, color=cmap(1))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.70, -0.01, \"NPB-D\")\n", - "\n", - "brLab = np.arange(len(app_gap)+len(app_npb))\n", - "plt.xticks(brLab*tickSize-0.5, list(app_gap)+list(app_npb))\n", - "\n", - "plt.axvline(x=(offset-0.5)*tickSize-0.5, color='black')\n", - "# plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"ACT delayed (%)\")\n", - "plt.legend(fontsize=9, ncol=2, loc='upper left')\n", - "plt.tight_layout()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### *Flush Buffer Size Sensitivity Test*" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [], - "source": [ - "df_gap22_fb_8 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/fbSensitivity/rambus/8/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_fb_8 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/fbSensitivity/rambus/8/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_fb_8 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/fbSensitivity/rambus/8/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_fb_8 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/fbSensitivity/rambus/8/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_fb_16 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/fbSensitivity/rambus/16/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_fb_16 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/fbSensitivity/rambus/16/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_fb_16 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/fbSensitivity/rambus/16/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_fb_16 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/fbSensitivity/rambus/16/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_fb_32 = df_gap22_ram\n", - "df_npbC_fb_32 = df_npbC_ram\n", - "df_gap25_fb_32 = df_gap25_ram\n", - "df_npbD_fb_32 = df_npbD_ram\n", - "\n", - "df_gap22_fb_64 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/fbSensitivity/rambus/64/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_fb_64 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/fbSensitivity/rambus/64/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_fb_64 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/fbSensitivity/rambus/64/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_fb_64 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/fbSensitivity/rambus/64/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [], - "source": [ - "# gap22_fb_8 = \n", - "# npbC_fb_8 = \n", - "# gap25_fb_8 = \n", - "# npbD_fb_8 = \n", - "# gap22_fb_16 = \n", - "# npbC_fb_16 = \n", - "# gap25_fb_16 = \n", - "# npbD_fb_16 = \n", - "# gap22_fb_32 = \n", - "# npbC_fb_32 = \n", - "# gap25_fb_32 = \n", - "# npbD_fb_32 = \n", - "# gap22_fb_64 = \n", - "# npbC_fb_64 = \n", - "# gap25_fb_64 = \n", - "# npbD_fb_64 = " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### *Tag Check Timing Parameters Sensitivity Test*" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [], - "source": [ - "df_gap22_8 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_8 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_8 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/tagCheckSensitivity/rambus/4ns/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_8 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/tagCheckSensitivity/rambus/4ns/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_15 = df_gap22_ram\n", - "df_npbC_15 = df_npbC_ram\n", - "df_gap25_15 = df_gap25_ram\n", - "df_npbD_15 = df_npbD_ram\n", - "\n", - "df_gap22_22 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/tagCheckSensitivity/rambus/11ns/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_22 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/tagCheckSensitivity/rambus/11ns/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_22 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/tagCheckSensitivity/rambus/11ns/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_22 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/tagCheckSensitivity/rambus/11ns/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAACWCAYAAAAyl+cQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAuLElEQVR4nO3dd5hU5dnH8e9vCywg0kSKgoACagQRpAhKEDVYIUJiwwISsQWNsURDIirRvKJGo8aCosGIColiaCGWGE0iKkXsgoKANClShKUte79/nDM4LFPOsju77O79ua65ds5zznPOM3N2du95qswM55xzzrmqKKu8C+Ccc845V148EHLOOedcleWBkHPOOeeqLA+EnHPOOVdleSDknHPOuSrLAyHnnHPOVVkeCDnnnHOuykobCEmqKem3kp4It1tLOjPzRXPOOeecy6woNUJPA9uA48LtZcDvMlYi55xzzrkyEiUQOtTMRgE7AMwsH1BGS+Wcc845VwaiBELbJdUADEDSoQQ1RM4555xzFVpOhGNGANOBZpLGAT2AQZkslHPOOedcWVCURVclNQC6ETSJvWNmazJdMOecc8650iCpvpl9m3BfxECoPdCCuBokM3uptAqYSXPmzPlxdnb2fUB2eZfFOVcsO3fu3Hl9x44dXy7vgjjnKjZJ75vZMYn2pW0ak/QU0B74BCgMkw2oEIFQTk7OzYceeuiWWrVqbS3vsjjnotu8eXPeggULbgZeLu+yOOcqvKS1PlH6CHUzsyNLsTBlyswa16xZ05vynKtgatasudXMGpV3OZxzFYOkW0k8qt2AJsnyRQmEZkg60sw+3dvClTfJR/s7V9GEn1v/8DrnotrE938zitYA7UyWKUog9AxBMLSSYNi8ADOz9ntTyvLUceS/OpXGeeb8tvfsZPsKCwsZNGhQ8w8//LBmQUGBhg0b9s3ll1+esIPW3pg3b161wYMHt3j77bfnl9Y5o/r5xM9K5f17+Owjkr5/Mccff3zrTz75pOZll122atSoUSsApkyZUnvw4MEtW7ZsuQ3gvvvu+/qEE07IL40yATz44IMNli5dWi12vbLy9MwlpfK+Du7cPOn7+r///a/GsGHDDsnKyrKcnBx76qmnFh155JHbf/Ob3zSaNGlSvZycHNq1a7f56aef/jorq/RW3hkwYECLoUOHrunTp8+mUjupc84lthkYSRAQDQI+AgaY2ZOSLkyWKUogNAa4KDxhYZpjq7zZs2fnzZs3L2/u3Lmfr1u3Lqt9+/ZHlmYgVFWMHTt20dSpU/dfunRptfj03r17bxg/fvzi8ipXRdWsWbMdr7/++vx69eoVjh8/vs6vf/3rg15++eWvzj333PW/+93vvgE4/fTTW02ePLl2v379vivv8jrn3F74FXAk0Bh4xMx6ShoKPJkqU5SvfqvNbJKZfWVmi2OPUihwpdS8efMdubm5tm3bNm3YsCG7Tp06e1THffHFF9VOOOGE1p07d27bvXv3NgUFBRx++OFHbt26VQB/+tOf6t94441NAK688sqDOnTocHjXrl3bvPjii/vHn+fLL7/M7dWr12HdunVr06tXr8OWL1+e891332X17NmzdefOndt26dKl7Ycffli9bF556Tr00EN3JEp/880363Tq1KntJZdc0mzTpk17NJtMnjy5dseOHQ/v0qVL2yFDhjSbM2dO3kknnXRobP8555xzyPTp0/dbvXp1dp8+fQ7t3Llz265du7ZZsmTJbl8Kpk6dul/sPbzggguaFxYWMmvWrLzYvejZs2fr0n/VmdO8efOCevXqFQLk5eUV5uTkGEC7du12TY5arVo1i6XHGzly5IHt27c/vGvXrm0eeuihBnfffXfD22+//UAIakCPPPLIIzZu3Jg1Y8aMGl26dGnbpUuXtmeddVbLoue58847D+zUqVPbDh06HP6HP/zhAIDRo0fXa9eu3RFdu3Ztc/XVVx+UqdfvnKsSVgEbzOxjoG6Ylhv+7JIsU5QaofclPQdMJm5G6YoyfL6sNWzYcGerVq22tWrV6qgtW7ZkPfjgg3sEjddee+3Bv/jFL74ZMGDAxp07d5KdnU2fPn3WP//883UHDx68bty4cQeMGzfuq/Hjx9dZunRptTlz5nyelZVFQUEBCxYs2FVD8otf/KLZb3/72xUnnXTS5meffbbubbfd1vjiiy/+tk6dOgVvvfXWVwA7dyZtFq1wevTosXnhwoUf1axZ04YNG3bQ7bff3viee+7Z1YxVWFjINddc0/ytt96a16xZs4KCggJycnLYvHlz9pIlS3Lq1KlT+Omnn9Y89dRTF19xxRUHn3zyyRtuvPHGNbD7+1RYWMgNN9zQ/L///e+8Bg0a7BwyZEiz8ePH15k3b17ehRdeuOaGG25YU1Hf140bN2aNGDHioDFjxiyKT586dep+q1atyj3ttNN2a8KaOXNm3qRJk+rNnj3789zcXAoKCti4cWPWiSee2GbEiBGrpk2bVrtDhw6b999//8Irr7zykDFjxizq1KnT1oKCgt2uO2fOnLxXX311/5kzZ84rLCykc+fOh19wwQXrXnjhhQbjxo1b2L59+20V9T11zu0z3gWmhpM/15I0EvgSwMwKkmWKEgjVIAiAfhSXVmGGz5e1l19+ef8VK1bkLl68+KO1a9dm9+jR4/ABAwZsqFGjxq5v2vPnz69x5plnfgeQnR1Mb3T11VevGTp0aPMuXbrk5+XlFbZs2XLHmDFj8nr16vVdrM9GTs7ut+vzzz+vccsttxwMwT/yFi1abOvevXt+x44d8/v169eyfv36Bffcc8/yAw44oFL8h4nVaAAMGjRo7U033bRbDcKKFSty6tWrt7NZs2YF8P37ddFFF6157LHHDjjwwAN39O/f/1uAzz77LO/qq69eHcsbuw8AK1euzFm2bFm100477TCA/Pz8rLZt2269+uqr1wwfPrxJ3759W7Zr127LnXfeuTKTr7e0bdu2Tf369Wt1/fXXr+zUqdOu6STefffdGsOHDz/4H//4x5dF+wd98MEHNbp167YpNzf4UpWTk0P9+vUL27Ztu+X111+vNWbMmAbXXXfdKoB169blxM5b9Hd17ty5Nb744osa3bp1awuwadOm7IULF1YbNWrU0t///veNN2/enHXOOeesu/DCC9dn8j1wzlVqtYGlwA+BfwIrgTvTZUobCJnZ4BIXrQoxM+rWrbszJyeHunXrFu7YsUMFBQUirgd7mzZttkybNq322WefvatGqE2bNtsl8Zvf/KbJpZdeugagXbt2W5977rn6119//R61FrHzDB8+fEWPHj22AGzdulVbt27ViBEjvsnKyuKmm25q8vjjjzcYPnz4qrJ7BzJn7dq12Q0aNNgJ8M9//rN269atd1vzrkmTJgXr16/PXr58eU7Tpk0LYu/t4MGD13Xr1q1tjRo1CidOnLgQ4Igjjtj6yiuv1I41DcW/t40bNy5o1qzZtldfffWLOnXqFEIQRGzfvl2jR49eCtC9e/c277333oYuXbpsKaOXXyI7d+6kf//+Lc8666z1F1100fpY+scff1x9yJAhLV566aUFTZo02eMbU4cOHbY88cQTDWO1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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "tagChk_8clk = []\n", - "tagChk_8clk.append(statistics.geometric_mean(df_gap22_8['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_8clk.append(statistics.geometric_mean(df_gap25_8['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_8clk.append(statistics.geometric_mean(df_npbC_8['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_8clk.append(statistics.geometric_mean(df_npbD_8['avgTimeTagCheckResRd'].astype(float)))\n", - "\n", - "\n", - "tagChk_15clk = []\n", - "tagChk_15clk.append(statistics.geometric_mean(df_gap22_15['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_15clk.append(statistics.geometric_mean(df_gap25_15['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_15clk.append(statistics.geometric_mean(df_npbC_15['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_15clk.append(statistics.geometric_mean(df_npbD_15['avgTimeTagCheckResRd'].astype(float)))\n", - "\n", - "tagChk_22clk = []\n", - "tagChk_22clk.append(statistics.geometric_mean(df_gap22_22['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_22clk.append(statistics.geometric_mean(df_gap25_22['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_22clk.append(statistics.geometric_mean(df_npbC_22['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_22clk.append(statistics.geometric_mean(df_npbD_22['avgTimeTagCheckResRd'].astype(float)))\n", - "\n", - "exeTime_8clk = []\n", - "exeTime_8clk.append(statistics.geometric_mean(df_gap22_8['simSeconds'].astype(float))/statistics.geometric_mean(df_gap22_orc['simSeconds'].astype(float)))\n", - "exeTime_8clk.append(statistics.geometric_mean(df_gap25_8['simSeconds'].astype(float))/statistics.geometric_mean(df_gap25_orc['simSeconds'].astype(float)))\n", - "exeTime_8clk.append(statistics.geometric_mean(df_npbC_8['simSeconds'].astype(float))/statistics.geometric_mean(df_npbC_orc['simSeconds'].astype(float)))\n", - "exeTime_8clk.append(statistics.geometric_mean(df_npbD_8['simSeconds'].astype(float))/statistics.geometric_mean(df_npbD_orc['simSeconds'].astype(float)))\n", - "\n", - "exeTime_15clk = []\n", - "exeTime_15clk.append(statistics.geometric_mean(df_gap22_15['simSeconds'].astype(float))/statistics.geometric_mean(df_gap22_orc['simSeconds'].astype(float)))\n", - "exeTime_15clk.append(statistics.geometric_mean(df_gap25_15['simSeconds'].astype(float))/statistics.geometric_mean(df_gap25_orc['simSeconds'].astype(float)))\n", - "exeTime_15clk.append(statistics.geometric_mean(df_npbC_15['simSeconds'].astype(float))/statistics.geometric_mean(df_npbC_orc['simSeconds'].astype(float)))\n", - "exeTime_15clk.append(statistics.geometric_mean(df_npbD_15['simSeconds'].astype(float))/statistics.geometric_mean(df_npbD_orc['simSeconds'].astype(float)))\n", - "\n", - "exeTime_22clk = []\n", - "exeTime_22clk.append(statistics.geometric_mean(df_gap22_22['simSeconds'].astype(float))/statistics.geometric_mean(df_gap22_orc['simSeconds'].astype(float)))\n", - "exeTime_22clk.append(statistics.geometric_mean(df_gap25_22['simSeconds'].astype(float))/statistics.geometric_mean(df_gap25_orc['simSeconds'].astype(float)))\n", - "exeTime_22clk.append(statistics.geometric_mean(df_npbC_22['simSeconds'].astype(float))/statistics.geometric_mean(df_npbC_orc['simSeconds'].astype(float)))\n", - "exeTime_22clk.append(statistics.geometric_mean(df_npbD_22['simSeconds'].astype(float))/statistics.geometric_mean(df_npbD_orc['simSeconds'].astype(float)))\n", - "\n", - "\n", - "\n", - "suites = ['GAPBS-22', 'NPB-C', 'GAPBS-25', 'NPB-D']\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "#plt.ylim([0,100])\n", - "\n", - "for i,app in enumerate(suites):\n", - " plt.bar(i*4, exeTime_8clk[i], width=1, color=cmap3(0), label='8 cycles' if i==0 else None)\n", - " plt.bar(i*4+1, exeTime_15clk[i], width=1, color=cmap3(1), label='15 cycles' if i==0 else None)\n", - " plt.bar(i*4+2, exeTime_22clk[i], width=1, color=cmap3(2), label='22 cycles' if i==0 else None)\n", - "\n", - "plt.xticks(np.arange(4)*4+1, list(suites))\n", - "plt.ylabel(\"Normalized Execution Time\\n(to ideal cache)\")\n", - "plt.legend(fontsize=9, ncol=3, loc=(0,1))\n", - "plt.axhline(y=1, color='gray')\n", - "\n", - "axB = plt.twinx()\n", - "for i,app in enumerate(suites):\n", - " axB.scatter(i*4, tagChk_8clk[i], color='black')\n", - " axB.scatter(i*4+1, tagChk_15clk[i], color='black')\n", - " axB.scatter(i*4+2, tagChk_22clk[i], color='black')\n", - "plt.figtext(0.98, 0.15, \"Tag Check Latency (ns)\", rotation=-90)\n", - "plt.ylim([0,100])\n", - "plt.tight_layout()\n", - "plt.savefig(\"figures/tagCheckSensitivity.pdf\")" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAACWCAYAAAA4y0lCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAt6ElEQVR4nO3dd5xU1fnH8c93Cywg0qUoSBFQIkhAiqCIqMFOhFiwgkQsBA2xxMQkWKL5BVuiCSqKBgMqJIoBwR6jSUSlBCuCiKAgSJEinWWf3x/3Dg7DlLvL9n3er9e8du6599x7Zmbv7plTniMzwznnnHOussoq6wI455xzzpUkr+w455xzrlLzyo5zzjnnKjWv7DjnnHOuUvPKjnPOOecqNa/sOOecc65S88qOc8455yq1jJUdSTUl/VrSI+F2W0lnlHzRnHPOOef2X5SWnceBHcAx4fYK4LclViLnnHPOuWIUpbLTxszGALsAzGwroBItlXPOOedcMYlS2dkpqQZgAJLaELT0OOecc86VezkRjhkNvAg0lzQJ6A0MKclCOeecc84VF0VZCFRSA6AnQffV22a2tqQL5pxzzjkXlaT6ZvZN0n0RKzudgJbEtQSZ2bPFVcCSNG/evB9mZ2ffA2SXdVmcc4Wye/fu3dd16dLlubIuiHOu/JP0PzP7frJ9GbuxJD0GdAI+AgrCZAMqRGUnJyfnpjZt2myrVavW9rIui3Muui1btuR99tlnNwHPlXVZnHMVQsrWmyhjdnqaWYdiLEypMrMmNWvW9G435yqYmjVrbjezxmVdDudc+SHpNySfEW5A01T5olR2ZknqYGYfF7VwZU3ymfLOVTThfes3r3Mu3ma++7uQ2JKzO1WmKJWdJwgqPKsIppwLMDPrVJRSlqUut/+za3GcZ96v+81Nta+goIAhQ4a0eP/992vm5+dr5MiRX19xxRVJB0wVxcKFC6sNHTq05VtvvbWouM4Z1U+mLiiW9+9PZx+R8v2LOfbYY9t+9NFHNS+//PLVY8aMWQnw/PPP1x46dGirVq1a7QC45557vjzuuOO2FkeZAO6///4Gy5cvrxa7Xml5fPYXxfK+Du3WIuX7+t///rfGyJEjD83KyrKcnBx77LHHlnbo0GHnr371q8bTpk2rl5OTQ8eOHbc8/vjjX2ZlFd8qMoMGDWo5fPjwtf37999cbCd1zlVlW4DbCSo9Q4APgEFm9qiki1JlilLZGQ9cHJ6wIMOxVd7cuXPzFi5cmDd//vxP1q9fn9WpU6cOxVnZqSomTJiwdMaMGQcuX768Wnx6v379Nk6ePHlZWZWromrevPmu1157bVG9evUKJk+eXOeXv/zlwc8999zn55133obf/va3XwOcdtppradPn157wIAB35Z1eZ1zLoWfAx2AJsBYM+sjaTjwaLpMUb7CrTGzaWb2uZktiz2KocCVUosWLXbl5ubajh07tHHjxuw6ders06z26aefVjvuuOPaduvWrX2vXr3a5efnc/jhh3fYvn27AP785z/Xv+GGG5oCXHXVVQd37tz58B49erR75plnDow/z+LFi3P79u17WM+ePdv17dv3sK+++irn22+/zerTp0/bbt26te/evXv7999/v3rpvPLi1aZNm13J0t944406Xbt2bX/ppZc237x58z5dHNOnT6/dpUuXw7t3795+2LBhzefNm5d34okntontP/fccw998cUXD1izZk12//7923Tr1q19jx492n3xxRd7VfxnzJhxQOw9vOCCC1oUFBQwZ86cvNhn0adPn7bF/6pLTosWLfLr1atXAJCXl1eQk5NjAB07dtwTILRatWoWS493++23H9SpU6fDe/To0e6BBx5o8Pvf/77RrbfeehAELZkdOnQ4YtOmTVmzZs2q0b179/bdu3dvf+aZZ7ZKPM8dd9xxUNeuXdt37tz58HvvvbchwLhx4+p17NjxiB49erQbMWLEwSX1+p1zlcZqYKOZfQjUDdNyw5/dU2WK0rLzP0lPAtOJi5xcUaael7ZGjRrtbt269Y7WrVsfuW3btqz7779/n4rhtddee8hPf/rTrwcNGrRp9+7dZGdn079//w1PPfVU3aFDh66fNGlSw0mTJn0+efLkOsuXL682b968T7KyssjPz+ezzz7b09Lx05/+tPmvf/3rlSeeeOKWiRMn1r3llluaXHLJJd/UqVMn/8033/wcYPfulF2YFU7v3r23LFmy5IOaNWvayJEjD7711lub3HXXXXu6nAoKCrjmmmtavPnmmwubN2+en5+fT05ODlu2bMn+4osvcurUqVPw8ccf1zzllFOWXXnllYecdNJJG2+44Ya1sPf7VFBQwPXXX9/iP//5z8IGDRrsHjZsWPPJkyfXWbhwYd5FF1209vrrr19bUd/XTZs2ZY0ePfrg8ePHL41PnzFjxgGrV6/OPfXUU/fqbpo9e3betGnT6s2dO/eT3Nxc8vPz2bRpU9YJJ5zQbvTo0atnzpxZu3PnzlsOPPDAgquuuurQ8ePHL+3atev2/Pz8va47b968vFdeeeXA2bNnLywoKKBbt26HX3DBBeuffvrpBpMmTVrSqVOnHRX1PXXOlap3gBlhkONakm4HFgOYWX6qTFEqOzUIKjk/iEurMFPPS9tzzz134MqVK3OXLVv2wbp167J79+59+KBBgzbWqFFjzzfmRYsW1TjjjDO+BcjODsL/jBgxYu3w4cNbdO/efWteXl5Bq1atdo0fPz6vb9++38bGUOTk7P1xffLJJzV+8YtfHALBP+uWLVvu6NWr19YuXbpsHTBgQKv69evn33XXXV81bNiwUvwXibVMAAwZMmTdjTfeuFdLwMqVK3Pq1au3u3nz5vnw3ft18cUXr33ooYcaHnTQQbsGDhz4DcCCBQvyRowYsSaWN/Y5AKxatSpnxYoV1U499dTDALZu3ZrVvn377SNGjFh78803Nz3rrLNadezYcdsdd9yxqiRfb3HbsWOHBgwY0Pq6665b1bVr1z2hGN55550aN9988yEvvPDC4sTxOu+9916Nnj17bs7NDb445eTkUL9+/YL27dtve+2112qNHz++wahRo1YDrF+/Pid23sTf1fnz59f49NNPa/Ts2bM9wObNm7OXLFlSbcyYMct/97vfNdmyZUvWueeeu/6iiy7aUJLvgXOuwqsNLAeOB14CVgF3ZMqUsbJjZkP3u2hViJlRt27d3Tk5OdStW7dg165dys/PF3Gjxtu1a7dt5syZtc8+++w9LTvt2rXbKYlf/epXTS+77LK1AB07dtz+5JNP1r/uuuv2aX2Inefmm29e2bt3720A27dv1/bt2zV69Oivs7KyuPHGG5s+/PDDDW6++ebVpfcOlJx169ZlN2jQYDfASy+9VLtt27Z7rdHWtGnT/A0bNmR/9dVXOc2aNcuPvbdDhw5d37Nnz/Y1atQomDp16hKAI444YvvLL79cO9aNE//eNmnSJL958+Y7XnnllU/r1KlTAEFFYefOnRo3btxygF69erV79913N3bv3n1bKb38/bJ7924GDhzY6swzz9xw8cUXb4ilf/jhh9WHDRvW8tlnn/2sadOm+3wr6ty587ZHHnmkUayVLPaeXnnllWvvvvvuxqtWrarWp0+frQD169fP/9///pf3/e9/f3vsuJiOHTtu+973vrf1xRdf/CwrK4sdO3aoevXq9u2332Y99dRTy7Zt26bWrVsf6ZUd51w6ZnZZUfKlrOxIutHMxkh6gCSBeszsmqJcsCylm0VVXAYMGLDpySefrN+1a9f2O3bsyLr88stX165de6+B3X/84x+XDx069NA777yzaW5urv373/9eFP5TXnv99de3mDJlylKA8847b+Prr79eu3Pnzofn5eUV3HDDDauOPPLIPd/I77///i+HDx9+6NatW7MALrnkkrWdOnXafu211zbPzs6moKCAiRMnfl5cry3KLKricv755x86Z86cA3bu3Kl58+bVfPXVVz975JFH6k+cOLFhXl5eQf369fOffPLJpfF5srKy+MMf/vDFaaeddli1atWsY8eOW8ePH/9lzZo1rWvXrltWrVqV26xZs3yA22+/feUFF1zQ8umnn26QnZ1tU6ZMWRJ/njFjxnzZv3//w8wsdt4v33rrrVoTJ05sIImDDjpoV6dOnYolUGW6WVTF5Yknnqj3+uuv11mzZk3u008/3eCII47YOmHChC9HjhzZfNOmTdkXXXRRK4Cf/exnq84///yNsXxHH3309tNPP31Dly5dDq9Zs2bBhRdeuG7kyJHr+vXrt+Wqq67KGzJkyJ7WsbFjxy4bPnz4oZJo3LjxzunTp+/53evWrdv2fv36berevXv77Oxsy8vLK3j11VcXX3311YcsWLCgRn5+vi655JI1OOdcEpKOBeYCBwP38d0SVrOAa81sSZrsqZeLkHSGmT0v6dJk+81swv4UvLS89957S4866qgKEVTwr3/9a91333231gMPPLCirMtS2Vx22WXNzzzzzI1nn332prIuS2XRpUuXw19++eVPS7Kb9L333mt41FFHtSyp8zvnKgZJ882ss6S3gXuBv4e7fgSMMrNj0uVP1411DfB8YSo1kg4BzgeOA5oB24APgRnAC2bmU9dTuOWWWxpPnTq13vPPP7+4rMtS2QwcOLDl5s2bs72iUzyWLl2aO3jw4Fb9+/ffUFnGgznnyr3Y7Ns8M5sSlz5F0s0ZM6dp2ZlnZl0il0J6nKB56XlgDsH0sDygHXAC0BW4yczejHrO4lCRWnacc3vzlh3nKrZwfc0zgNVmdmSYVh+YTLDA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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "tagChk_8clk = []\n", - "tagChk_8clk.append(statistics.geometric_mean(df_gap22_8['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_8clk.append(statistics.geometric_mean(df_gap25_8['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_8clk.append(statistics.geometric_mean(df_npbC_8['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_8clk.append(statistics.geometric_mean(df_npbD_8['avgTimeTagCheckResRd'].astype(float)))\n", - "\n", - "\n", - "tagChk_15clk = []\n", - "tagChk_15clk.append(statistics.geometric_mean(df_gap22_15['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_15clk.append(statistics.geometric_mean(df_gap25_15['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_15clk.append(statistics.geometric_mean(df_npbC_15['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_15clk.append(statistics.geometric_mean(df_npbD_15['avgTimeTagCheckResRd'].astype(float)))\n", - "\n", - "tagChk_22clk = []\n", - "tagChk_22clk.append(statistics.geometric_mean(df_gap22_22['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_22clk.append(statistics.geometric_mean(df_gap25_22['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_22clk.append(statistics.geometric_mean(df_npbC_22['avgTimeTagCheckResRd'].astype(float)))\n", - "tagChk_22clk.append(statistics.geometric_mean(df_npbD_22['avgTimeTagCheckResRd'].astype(float)))\n", - "\n", - "exeTime_8clk = []\n", - "exeTime_8clk.append(statistics.geometric_mean(df_gap22_8['simSeconds'].astype(float))/statistics.geometric_mean(df_gap22_15['simSeconds'].astype(float)))\n", - "exeTime_8clk.append(statistics.geometric_mean(df_gap25_8['simSeconds'].astype(float))/statistics.geometric_mean(df_gap25_15['simSeconds'].astype(float)))\n", - "exeTime_8clk.append(statistics.geometric_mean(df_npbC_8['simSeconds'].astype(float))/statistics.geometric_mean(df_npbC_15['simSeconds'].astype(float)))\n", - "exeTime_8clk.append(statistics.geometric_mean(df_npbD_8['simSeconds'].astype(float))/statistics.geometric_mean(df_npbD_15['simSeconds'].astype(float)))\n", - "\n", - "exeTime_15clk = []\n", - "exeTime_15clk.append(statistics.geometric_mean(df_gap22_15['simSeconds'].astype(float))/statistics.geometric_mean(df_gap22_15['simSeconds'].astype(float)))\n", - "exeTime_15clk.append(statistics.geometric_mean(df_gap25_15['simSeconds'].astype(float))/statistics.geometric_mean(df_gap25_15['simSeconds'].astype(float)))\n", - "exeTime_15clk.append(statistics.geometric_mean(df_npbC_15['simSeconds'].astype(float))/statistics.geometric_mean(df_npbC_15['simSeconds'].astype(float)))\n", - "exeTime_15clk.append(statistics.geometric_mean(df_npbD_15['simSeconds'].astype(float))/statistics.geometric_mean(df_npbD_15['simSeconds'].astype(float)))\n", - "\n", - "exeTime_22clk = []\n", - "exeTime_22clk.append(statistics.geometric_mean(df_gap22_22['simSeconds'].astype(float))/statistics.geometric_mean(df_gap22_15['simSeconds'].astype(float)))\n", - "exeTime_22clk.append(statistics.geometric_mean(df_gap25_22['simSeconds'].astype(float))/statistics.geometric_mean(df_gap25_15['simSeconds'].astype(float)))\n", - "exeTime_22clk.append(statistics.geometric_mean(df_npbC_22['simSeconds'].astype(float))/statistics.geometric_mean(df_npbC_15['simSeconds'].astype(float)))\n", - "exeTime_22clk.append(statistics.geometric_mean(df_npbD_22['simSeconds'].astype(float))/statistics.geometric_mean(df_npbD_15['simSeconds'].astype(float)))\n", - "\n", - "\n", - "\n", - "suites = ['GAPBS-22', 'NPB-C', 'GAPBS-25', 'NPB-D']\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,2)\n", - "#plt.ylim([0,100])\n", - "\n", - "for i,app in enumerate(suites):\n", - " plt.bar(i*4, exeTime_8clk[i], width=1, color=cmap3(0), label='8 cycles' if i==0 else None)\n", - " plt.bar(i*4+1, exeTime_15clk[i], width=1, color=cmap3(1), label='15 cycles' if i==0 else None)\n", - " plt.bar(i*4+2, exeTime_22clk[i], width=1, color=cmap3(2), label='22 cycles' if i==0 else None)\n", - "\n", - "plt.xticks(np.arange(4)*4+1, list(suites))\n", - "plt.ylabel(\"Normalized Execution Time\\n(to baseline TDRAM)\")\n", - "plt.legend(fontsize=9, ncol=3, loc=(0,1))\n", - "plt.axhline(y=1, color='gray')\n", - "\n", - "\n", - "axB = plt.twinx()\n", - "for i,app in enumerate(suites):\n", - " axB.scatter(i*4, tagChk_8clk[i], color='black')\n", - " axB.scatter(i*4+1, tagChk_15clk[i], color='black')\n", - " axB.scatter(i*4+2, tagChk_22clk[i], color='black')\n", - "plt.figtext(0.98, 0.15, \"Tag Check Latency (ns)\", rotation=-90)\n", - "plt.ylim([0,100])\n", - "plt.tight_layout()\n", - "plt.savefig(\"figures/tagCheckSensitivity2.pdf\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Link Latency" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [], - "source": [ - "df_gap22_noDC_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/noDC/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_noDC_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/noDC/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_noDC_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/noDC/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_noDC_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/noDC/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_cas_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/cascade/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_cas_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/cascade/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_cas_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/cascade/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_cas_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/cascade/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_ram_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/rambus/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_ram_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/rambus/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_ram_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/rambus/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_ram_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/rambus/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_ramOpt_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/rambusTagPr/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_ramOpt_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/rambusTagPr/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_ramOpt_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/rambusTagPr/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_ramOpt_50 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/50/rambusTagPr/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "#################\n", - "df_gap22_noDC_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/noDC/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_noDC_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/noDC/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_noDC_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/noDC/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_noDC_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/noDC/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_cas_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/cascade/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_cas_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/cascade/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_cas_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/cascade/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_cas_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/cascade/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_ram_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/rambus/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_ram_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/rambus/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_ram_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/rambus/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_ram_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/rambus/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_ramOpt_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/rambusTagPr/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_ramOpt_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/rambusTagPr/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_ramOpt_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/rambusTagPr/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_ramOpt_100 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/100/rambusTagPr/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "#################\n", - "df_gap22_noDC_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/noDC/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_noDC_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/noDC/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_noDC_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/noDC/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_noDC_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/noDC/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_cas_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/cascade/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_cas_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/cascade/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_cas_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/cascade/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_cas_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/cascade/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_ram_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/rambus/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_ram_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/rambus/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_ram_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/rambus/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_ram_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/rambus/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "\n", - "df_gap22_ramOpt_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/rambusTagPr/1GB_8GB_g22_nC/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbC_ramOpt_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/rambusTagPr/1GB_8GB_g22_nC/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "df_gap25_ramOpt_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/rambusTagPr/1GB_85GB_g25_nD/GAPBS\", \"GAPBS\", [1,1,1,1,1,1])\n", - "df_npbD_ramOpt_250 = creatDataFrame(\"/home/babaie/projects/rambusDesign/1gigDRAMCache/dramCacheController/newResults/link/250/rambusTagPr/1GB_85GB_g25_nD/NPB\", \"NPB\",[1,1,1,1,1,1,1,1])\n", - "#################" - ] - }, - { - "cell_type": "code", - "execution_count": 71, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.04290200016773939, 0.05149472383647565, 0.06786525304623896]\n", - "[0.04290200016773939, 0.05149472383647565, 0.06786525304623896]\n" - ] - } - ], - "source": [ - "gap22_noDC = []\n", - "gap22_noDC.append(statistics.geometric_mean(df_gap22_noDC_50['simSeconds'].astype(float)))\n", - "gap22_noDC.append(statistics.geometric_mean(df_gap22_noDC_100['simSeconds'].astype(float)))\n", - "gap22_noDC.append(statistics.geometric_mean(df_gap22_noDC_250['simSeconds'].astype(float)))\n", - "\n", - "npbC_noDC = []\n", - "npbC_noDC.append(statistics.geometric_mean(df_npbC_noDC_50['simSeconds'].astype(float)))\n", - "npbC_noDC.append(statistics.geometric_mean(df_npbC_noDC_100['simSeconds'].astype(float)))\n", - "npbC_noDC.append(statistics.geometric_mean(df_npbC_noDC_250['simSeconds'].astype(float)))\n", - "\n", - "gap25_noDC = []\n", - "gap25_noDC.append(statistics.geometric_mean(df_gap25_noDC_50['simSeconds'].astype(float)))\n", - "gap25_noDC.append(statistics.geometric_mean(df_gap25_noDC_100['simSeconds'].astype(float)))\n", - "gap25_noDC.append(statistics.geometric_mean(df_gap25_noDC_250['simSeconds'].astype(float)))\n", - "\n", - "npbD_noDC = []\n", - "npbD_noDC.append(statistics.geometric_mean(df_npbD_noDC_50['simSeconds'].astype(float)))\n", - "npbD_noDC.append(statistics.geometric_mean(df_npbD_noDC_100['simSeconds'].astype(float)))\n", - "npbD_noDC.append(statistics.geometric_mean(df_npbD_noDC_250['simSeconds'].astype(float)))\n", - "######################################\n", - "gap22_cas = []\n", - "gap22_cas.append(statistics.geometric_mean(df_gap22_cas_50['simSeconds'].astype(float)))\n", - "gap22_cas.append(statistics.geometric_mean(df_gap22_cas_100['simSeconds'].astype(float)))\n", - "gap22_cas.append(statistics.geometric_mean(df_gap22_cas_250['simSeconds'].astype(float)))\n", - "\n", - "npbC_cas = []\n", - "npbC_cas.append(statistics.geometric_mean(df_npbC_cas_50['simSeconds'].astype(float)))\n", - "npbC_cas.append(statistics.geometric_mean(df_npbC_cas_100['simSeconds'].astype(float)))\n", - "npbC_cas.append(statistics.geometric_mean(df_npbC_cas_250['simSeconds'].astype(float)))\n", - "\n", - "gap25_cas = []\n", - "gap25_cas.append(statistics.geometric_mean(df_gap25_cas_50['simSeconds'].astype(float)))\n", - "gap25_cas.append(statistics.geometric_mean(df_gap25_cas_100['simSeconds'].astype(float)))\n", - "gap25_cas.append(statistics.geometric_mean(df_gap25_cas_250['simSeconds'].astype(float)))\n", - "\n", - "npbD_cas = []\n", - "npbD_cas.append(statistics.geometric_mean(df_npbD_cas_50['simSeconds'].astype(float)))\n", - "npbD_cas.append(statistics.geometric_mean(df_npbD_cas_100['simSeconds'].astype(float)))\n", - "npbD_cas.append(statistics.geometric_mean(df_npbD_cas_250['simSeconds'].astype(float)))\n", - "######################################\n", - "gap22_ram = []\n", - "gap22_ram.append(statistics.geometric_mean(df_gap22_ram_50['simSeconds'].astype(float)))\n", - "gap22_ram.append(statistics.geometric_mean(df_gap22_ram_100['simSeconds'].astype(float)))\n", - "gap22_ram.append(statistics.geometric_mean(df_gap22_ram_250['simSeconds'].astype(float)))\n", - "\n", - "npbC_ram = []\n", - "npbC_ram.append(statistics.geometric_mean(df_npbC_ram_50['simSeconds'].astype(float)))\n", - "npbC_ram.append(statistics.geometric_mean(df_npbC_ram_100['simSeconds'].astype(float)))\n", - "npbC_ram.append(statistics.geometric_mean(df_npbC_ram_250['simSeconds'].astype(float)))\n", - "\n", - "gap25_ram = []\n", - "gap25_ram.append(statistics.geometric_mean(df_gap25_ram_50['simSeconds'].astype(float)))\n", - "gap25_ram.append(statistics.geometric_mean(df_gap25_ram_100['simSeconds'].astype(float)))\n", - "gap25_ram.append(statistics.geometric_mean(df_gap25_ram_250['simSeconds'].astype(float)))\n", - "\n", - "npbD_ram = []\n", - "npbD_ram.append(statistics.geometric_mean(df_npbD_ram_50['simSeconds'].astype(float)))\n", - "npbD_ram.append(statistics.geometric_mean(df_npbD_ram_100['simSeconds'].astype(float)))\n", - "npbD_ram.append(statistics.geometric_mean(df_npbD_ram_250['simSeconds'].astype(float)))\n", - "######################################\n", - "gap22_ramOpt = []\n", - "gap22_ramOpt.append(statistics.geometric_mean(df_gap22_ramOpt_50['simSeconds'].astype(float)))\n", - "gap22_ramOpt.append(statistics.geometric_mean(df_gap22_ramOpt_100['simSeconds'].astype(float)))\n", - "gap22_ramOpt.append(statistics.geometric_mean(df_gap22_ramOpt_250['simSeconds'].astype(float)))\n", - "\n", - "npbC_ramOpt = []\n", - "npbC_ramOpt.append(statistics.geometric_mean(df_npbC_ramOpt_50['simSeconds'].astype(float)))\n", - "npbC_ramOpt.append(statistics.geometric_mean(df_npbC_ramOpt_100['simSeconds'].astype(float)))\n", - "npbC_ramOpt.append(statistics.geometric_mean(df_npbC_ramOpt_250['simSeconds'].astype(float)))\n", - "\n", - "gap25_ramOpt = []\n", - "gap25_ramOpt.append(statistics.geometric_mean(df_gap25_ramOpt_50['simSeconds'].astype(float)))\n", - "gap25_ramOpt.append(statistics.geometric_mean(df_gap25_ramOpt_100['simSeconds'].astype(float)))\n", - "gap25_ramOpt.append(statistics.geometric_mean(df_gap25_ramOpt_250['simSeconds'].astype(float)))\n", - "\n", - "npbD_ramOpt = []\n", - "npbD_ramOpt.append(statistics.geometric_mean(df_npbD_ramOpt_50['simSeconds'].astype(float)))\n", - "npbD_ramOpt.append(statistics.geometric_mean(df_npbD_ramOpt_100['simSeconds'].astype(float)))\n", - "npbD_ramOpt.append(statistics.geometric_mean(df_npbD_ramOpt_250['simSeconds'].astype(float)))\n" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAADfCAYAAAD7q6nlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAl8ElEQVR4nO3de3wU9b3/8dfHgDdEbAEpcjEIaBWwBJHLgUq49CCmgHoA0aKCVdAT6q1apVrUVkV7VFBEKSilNSjehRZErXKtrQU8yCWIP0QtQSwXD0Eql0A+vz9mEpeYbJZkJwnL+/l45JGd78x+97NDZvnszHy/H3N3RERERFLJUdUdgIiIiEiyKcERERGRlKMER0RERFKOEhwRERFJOUpwREREJOUowREREZGUE1mCY2bNzGy+meWa2Rozu6GUbTLNLN/MVoQ/Y6OKR0RERI4ctSLsez/wc3d/38zqAsvN7C13zy2x3WJ3/3GEcYiIiMgRJrIzOO6+2d3fDx9/BawFmkT1eiIiIiJFojyDU8zM0oEM4L1SVnc1sw+Az4Fb3H1NKc8fCYwEqFOnzjnf//73I4xWRGq6devWAXDGGWdUcyQiUt2WL1++zd0blmy3qEs1mNkJwELgPnd/pcS6E4FCd99lZhcAj7p763j9dezY0ZctWxZdwCJS42VmZgKwYMGCao1DRKqfmS13944l2yMdRWVmtYGXgRklkxsAd9/p7rvCx3OB2mbWIMqYREREJPVFOYrKgKeBte7+SBnbfC/cDjPrFMazPaqYRERE5MgQ5T043YDLgVVmtiJs+yXQHMDdJwODgOvMbD+wGxjqKm8uIiIilRRZguPuSwArZ5vHgccr+1oFBQXk5eWxZ8+eynYlEWncuDEnnXRSdYchIiJHiCoZRRW1vLw86tatS3p6OuEVL6lBdu/ezaZNm5TgiIhIlUmJUg179uyhfv36Sm5qqGOPPZaCgoLqDkNERI4gKZHgAEpuajD924iISFVLiUtUsbrc9UZS+vn7PX3L3WblypXcdttt7N69m3379jFo0CBuvvnmpLx+WfLy8hg2bFjC83+0atWK9evXl7vd3XffTatWrRg2bFglIxQREal+KZfgVJX8/HyGDRvGq6++SsuWLXF33nzzzeoOS0REREihS1RVbc6cOfTv35+WLVsCwWWYvn2Dsz5XXnklmZmZdOjQgdmzZwMwc+ZMOnXqRM+ePRkzZgwA8+fPp1u3bmRmZnLTTTcBcNttt9GzZ086dOjAlClTANi1axdZWVn06dOH+++/vziGjRs3kpWVRa9evcjKymLr1q0Jxd63b18yMzPp1KkTf/vb3w5at3PnTi688ELmzZvHqlWr6NOnD7169WLIkCHs3r27EntMRESk6ugMTgVt3LiRZs2albruiSeeoE6dOmzfvp0ePXowYMAAnn32WXJycjj99NMpLCzE3bnuuutYuHAhjRo14sCBAwCMHTuWOnXqsHfvXtq1a8eIESOYOnUq3bt3Z8yYMcyYMYPc3KAg+6233sqvfvUrunTpwqxZs3jwwQd56KGHyo39lVdeoU6dOqxdu5bs7GzeeecdADZv3sygQYO47777OPfccznvvPPIycmhefPmPProozz99NOMHj06SXtQREQkOkpwKqhZs2asXr36W+2FhYXcc889vPvuu9SqVYvPPvsMgHHjxvHQQw/x73//myFDhtC1a1fq169Po0aNAEhLSwPgySef5LXXXiMtLY0tW7awZcsWPvroIwYNGgRA586dmTp1KgCrVq3i9ttvB2D//v20atWq3Lh3797NDTfcwLp160hLS2PTpk3F6x577DGys7M599xzAVizZg1XXHEFEIxU69OnT4X2lYiISFVTglNBWVlZjBs3jp/+9KfFl6neeustGjRowMqVK1myZAnbtm0rXteiRQumTJnC3r17ad26NZ999hlffvklW7dupWHDhhQWFpKfn8/vf/97Vq5cSUFBAWeccQbuTuvWrVm2bBm9e/dm6dKlxTG0adOGMWPGkJGRAcC+ffvKjXvevHmkpaWxePFicnNzGTBgQPG63/zmN7zxxhtMnz6d4cOH07ZtW5577jkaN26ccP8iIiI1gRKcCqpXrx45OTlkZ2ezZ88e9u3bx+DBgxk1ahQFBQX06NGD9u3bF09ud+utt7Jq1SoKCgoYNWoUZsakSZMYMGAAxxxzDBkZGTzyyCOcddZZdO/enTPPPJP69esDcM011zBkyBDeeust2rZtWxzDww8/THZ2Nrt27QLgqquu+tYoqM8///ygMy85OTmMGzeOPn360K1bt4O2rVWrFjk5OYwYMYKCggImTZrE8OHDi+ewGTNmDD/60Y+Svi9FRESSzQ630k8dO3b0ZcuWHdS2du1azjzzzGqKSBKh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jIxSi23efPPNxaUSIJjx+MYbb2TTpk0MGTKkuBZVSWX1ffPNNzNr1iyaNWtW3BbPm2++WTzr8a5du5g7dy7btm2jT58+LF26FIBzzz2X/v37A1BQUMC8efP49NNPGTRoECUnYBQREakukZ3Bcfcl7m7ufra7tw9/5rr75DC5wQPZ7t7S3du5e0r9D1lasc1Vq1axdetWduzYQWFhIbNmzeLee+/l/PPPLy62WSS22GZRUgFBsc3MzEyuvvrqMvuGoHBm8+bNDyrGuWTJEjIzM8nMzGTXrl0A/OxnP6NHjx7s3r27uM8uXbpgZmzYsIF27dpx9NFHc/TRR9OuXTs++eQTIEh2ANLT08nPz0dERKSmiDdMPO6ke+7+fvLDSR1VWWyztL5/+9vfUrduXfLy8mjatClLly6lVatWdO/e/VvT20+cOJHu3bsf1FZ0k3KLFi1YuXJlcQHNVatW0aJFC3Jzc1m+fDkA//znPznxxBMruKdERESSL94lqmXAamBbuBxbRtqBb1eRlGoptlla37/85S95+OGH6d+/P6eccgp169at0Ps5+eST+e///u/iBGj06NE0bNgQgOOPP56srCw+//xzxo8fX6H+RUREolBmsU0zuxEYRDCT8UzgVXffVXWhlU7FNg9P+jeSZFKxTREpcsjFNt19grt3B35GMJT7bTN7wczaRxemiIiISOWVe5Oxu28AZgFvAp2A06MOSkRERKQy4t1kfBowlKBe1EaCy1T3u/vuKortkLh78SzAUrOUdRlUREQkKvFuMl4PrCQ4e7OTYP6a64qSiDiT91W5Y489lu3bt1O/fn0lOTXQnj17iuf2ERERqQrxEpxfE4yWAjihxLoa9ZW8adOm5OXlsXXr1uoORcrQuHHj6g5BRESOIPGqid9d1jozOzeSaCqodu3atGjRorrDEBERkRoi4VINZnYWcGn4swP41pAsERERkZogboJjZul8k9QUAKcCHd3908gjExEREamgMoeJm9nfgDkESdB/ufs5wFdKbkRERKSmizcPzr+AukAjoGHYVqNuLhYREREpTbyZjC8E2gHLgbvN7BPgO2bWqYpiExEREamQuPfguHs+8Hvg92Z2MnAJMN7Mmrt7s6oIUERERORQlVuqoYi7b3H3icCPgd9FF5KIiIhI5cS7ybiZmU0xsz+b2dVmVsfMHgbW8c09OSIi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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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ylGCIyIiIilHCY6IiIiknJS7yThZN1HOPW9eqet27tzJ4MGDAVi5ciWtW7fmqKOOYtu2bdSvX5+0tDTcnSuvvJJRo0YBwUR/p5xyCgcOHCA9PZ3p06cXzV58zz33MHXqVDZs2EDhrM4tWrSgT58+PPnkkwA888wzXHzxxXzyySekp6cfFE+iFcPLY/r06eTl5XHbbbdx/fXXc+utt9KoUaOk7kNERCQquoJTAQ0aNGDx4sUsXryYDh068MILL7B48WIaNmzICy+8wPLly5k3bx7Tp09n0aJFQFCKYfHixSxbtoy6deseVHn8j3/8I7179+bPf/5zUVtaWhqfffYZe/fuBeDFF1/krLPOqtoPGnr44YeV3IiIyGFFCU5Ejj/+eG699VaeffbZg9oLCgrYsWMHhRMs/u1vf6Nt27Zcc801zJhx8KRpAwYMYN68eWzZsoW6desWzYpckhtuuIGePXsycuRICgoK2LZtG3369CErK4vu3bvz0UcfAXDjjTfSrVs3evXqxXPPPQfApEmT+P73v0+3bt2KrhjFysrKIi8vj08//ZSzzjqLkSNH0rFjRx5++GEguKI1bNgw+vTpQ+/evZN+NUlERKS8lOBEqFmzZkXFLA8cOEBWVhbp6ekcOHCAfv36ATBz5kwuueQSMjMzyc3NLSqLADB8+HCee+45nnvuOYYNG1bqfvbv38+wYcNYsmQJRx99NHPnzqVBgwa89tprLF68mNtuu4377rsPgNdee41ly5axaNEihg4dytq1a1mwYAFLly5l+fLlTJs2je3bt5e6ry+++IIpU6bw9ttv88gjjwBBIdELLriAN998k4kTJxYVABUREakuKXcPTk2yadMmmjRpAnwzRLVz504GDBjAjh07+Pa3v82cOXOKqpJv2bKF+fPnF93f07hxY3bt2sXs2bP505/+xJQpUwD47W9/y4svvkjLli158sknMTM6d+4MBNXG161bR/fu3RkzZgz/+Mc/2LdvH/Xr1wfgvvvu47LLLuOII47gpptuIjc3l9zcXHr16gXAV199xaZNm0r9TK1bt+aYY44p+kwQVDVfsmQJTzwRVOCoU0ffViIiUr30mygiO3fu5N577+W22247qL1BgwZcffXV3H///fTr14/BgwfzwAMPAPDxxx8zfvz4ogQHYMyYMeTm5nL00UcXtY0dO5axY8cWLbs7OTk5dOnShRUrVtC/f39mzJhBRkYG48ePZ/78+Tz00EO4O3379mXgwIEsX76cCRMmcOedd5KRkcFLL72EmZGfn0/dunVZuXJliZ+r8CboWG3btqVbt26cf/75gKqOi4hI9Uu5BCfe009VYejQoaSlpVFQUMBll11G7969D9lm+PDhtG/fnm3btnHhhRcWtZ922mmsXbuWr776qqjt3HPP5dxzz427zzp16vDSSy/xs5/9jCZNmjBo0CD+/ve/c+GFF7J06VLatm0LBENZAwYMAGDPnj1MmDCBdu3a0bdvX3r27ElaWlrREFd53HrrrVx99dVMmjQJdyc7O5sbb7yxXH2IiIgkU2TVxKOiauKHJ/0f1QxJr0X1VPJrUamauIiUR2nVxHWTsYiIiKQcJTgiIiKSciJLcMxsmpltMbMPS1n/YzNbZWarzextMzszqlhERESkdomb4JhZLzNrGr4+xcz+ZGbvmtnZCfQ9HegfZ/0nQE93bw/8EpiSYMwiIiIicZV1Bec+YGf4+h7gReA64OGyOnb3pcCXcda/7e7/ChffBZqW1aeIiIhIIkp9TNzMbgeaATdYMPlJP2ADcBLQ0MwmAIvDRKayLgdeixPLaGA0QPPmzeN29LvBM+KuT1S8JzlqWrHNeH0Xuvvuu2natGlRPIVGjRrFBx98wLe+9S2OO+44Zs6cGbckRKHYYpwiIiI1TalXcNz9TuAzYBHwIfC2u/8ibN/k7nclI7kxs14ECc7NcWKZ4u6Z7p5ZE4o+1rRim/H6TsSkSZNYsmQJ3bt3L5qNuNCBAwfK1ZeIiEhNUNYQ1U+BBwiGpX4GYGZtgZXJ2LmZfQ94Ehjs7qUXQDoMVXWxzZL6Xrp0KRkZGQwcOJD33nuvzJg7duzIxo0bmT59OkOHDuW8887jkUceYerUqXTp0oUuXbowbdq0ou3fe+89Bg4cSEZGBsuWLUvksIiIiFSJuDMZu/ufgS7F2tYAYyq7YzNrDrwMXOTuH1W2v5qopGKbGzZsICMjo8Rim+PGjSsqlQDBjMfXX389mzdvZtiwYUW1qIorre9x48YxZ84cmjVrVtQWz+uvv1406/GuXbuYP38+27Zto2/fvqxYsQKATp06MXDgQADy8/NZsGABn376KUOGDKH4BIwiIiLVJcrHxGcB7wBnmFmemV1uZleb2dXhJhOAE4DHzGylmaXcb8eSim2uXr2arVu3smPHDgoKCpgzZw533303/fv3Lyq2WSi22GZhUgFBsc2srCyuuOKKUvuGoHBm8+bNDyrGuXz5crKyssjKymLXrl0AXHvttfTs2ZPdu3cX9dm1a1fMjA0bNtC+fXuOPPJIjjzySNq3b88nn3wCBMkOQHp6Ojt37kRERKSmiKwWlbvHncPd3a8Arohq/9WtKottltT3r3/9a+rXr09eXh5NmzZlxYoVtGzZkh49ehwyvf2kSZPo0aPHQW2FNym3aNGCVatWFRXQXL16NS1atCA3N5f3338fgM8++4xvfetbFTxS1SNZN6PHSqTEQHl0vX1hUvsDODEj6V2KiNRIKVdss7pVR7HNkvr++c9/zoMPPsjAgQM5+eSTqV+/foU+z4knnsj//u//FiVAY8eOpfBG72OOOYbs7Gw+//xzJk6cWKH+RUREolBqsU0z6xjvje7+10giKoOKbR6eatr/Ue29gvNoUvtTsU0RqW6lFduMdwUnh+Dx8G2FfcSsc+DQSxMiIiIiNUC8BGccMATYDcwGXnH3XVUSlYiIiEglxJvo72F37wFcSzCj8Ztm9ryZdaiq4MqjtKE2qX76vxERkapW5mPi7r4BmAO8DnQGTo86qPKqV68e27dv1y/SGmrPnj1Fc/uIiIhUhXi1qE4FhgODgU0Ew1T3uPvuKootYU2bNiUvL4+tW7dWdyhSisaNG1fq/YNezU5SJIFskn9zrIiI1Bzx7sFZD6wiuHrzFdAcuKawGKS7PxR5dAmqW7cuLVq0qO4wREREpIaIl+DcRfC0FMBxxdZpLEhERERqrFITHHe/o7R1ZtYpkmhEREREkiDhmYzNrA0wIvy3AzhkUh0RERE5vCV7ItRkT4KaqLgJjpml801Skw+cAmS6+6eRRyYiIiJSQaU+Jm5m7wDzCJKg/3H3s4B/K7kRERGRmi7ePDj/BOoDJwGNwjbdXCwiIiI1XrybjM8zswbABcAdZtYKON7MOrv7X8rq2MymAT8Etrh7uxLWG/AIcC7wNTCqugp4Hm5SZXxUREQkKnFnMnb3ne7+lLv/AOgCTAAmmtmmBPqeDvSPs34A0Cr8Nxp4PKGIRURERMpQZqmGQu6+xd0nEVyV+V0C2y8FvoyzyWDgaQ+8S3B1qHLT3YqIiIgQv1RDM+AXwMnAq8Asgsn/LgpfV1YTghIQhfLCti/ivWn79u1Mnz49Cbs/fG1v9c+k9nc4HM/Tt/1XUvvb3mpzUvuD5B/Hzhbv74OKOXJ9ahzHDh06JLytiJRPqvyOiXcF52ngc2AS0BbIIUh2vufu11VBbEXMbLSZ5ZhZTn5+flXuWkRERA5DVloFbjP7wN3PjFnOA5q7e0HCnQfz6PyxlJuMfwcsdvdZ4fI6IMvd417ByczM9JycnERDSEm18SbjpBfbfCr5xTaTfRy73r4wqf0BnJjxaFL7q67jmJWVBcDixYuTvn+R2u5w+x1jZu+7+yGTD8e9B8fMvm1m3zGz7wDbgQYxy5U1F7jYAl2BnWUlNyIiIiKJiDeTcQPgfcBi2gof43bg1Hgdm9ksIAtoGF79uR2oC+DuTwDzCR4RX0/wmPil5Q+/5kv2lQeAbJL/V7OIiEgqiTcPTnplOnb3uL+FPRgbG1OZfYiIiIiUpKxaVHUI5qspfPQiF1jo7vujDkxERESkouLVomoCrAF+SvD0VBPgZ8AaMzu5asITERERKb94V3B+BTzu7g/HNprZT4B7gUsijEtERESkwuIlOF3dfVTxRnd/NHykW0RERKRGiveY+O44675OdiAiIiIiyRL3MXEzu6CEdgO+FVE8IiIiIpUWL8FZAgwsZd3SCGKRFJLsWXhPzEhqdyIikuLizYOTkhPviYiISOqLOw+OiIiI1FyaLb90cWtRiYiIiByOlOCIiIhIyilziMrM6gLXAGeHTUuAJ9w9P8rARERERCoqkXtwHieoAv5YuHxR2HZFVEGJiIiIVEYiCU4ndz8zZvktM/sgqoBEREREKiuRe3AOmNlphQtmdipwILqQRERERConkQTnJmCRmS02syXAWwQVxstkZv3NbJ2ZrTezW0pY39zMFpnZ38xslZmdW77wRURERA5V5hCVu79pZq2AM8Kmde6+t6z3mVkaMBk4B8gDVpjZXHfPjdnsNuB5d3/czNoA84H0cn4GERERkYMkOtHfWQSJRx2gg5nh7k+X8Z7OwHp33wBgZrOBwUBsguN8U9eqAfB5gvGIiIgc5HeDZyS1v6vmjExqf1K1EnlM/BngNGAl39x740BZCU4TYFPMch7Qpdg2dwCvm9m1wLFA31JiGA2MBmjevHlZIVeKaiiJiIgc/hK5gpMJtHF3j2D/I4Dp7v6gmXUDnjGzdu5eELuRu08BpgBkZmZGEYeIiEjk9Ed01UnkJuMPge9WoO/NQLOY5aZhW6zLgecB3P0doB7QsAL7EhERESmSyBWchkCumf0FKLq52N0HlfG+FUArM2tBkNgMBy4sts1nQB9gupm1JkhwtiYYu4hIStC9IyLJl0iCc0dFOnb3/WY2FlgIpAHT3H2Nmd0F5Lj7XILHzaea2Q0E9/WMimgoTERERGqRRB4TX1LRzt19PsGj37FtE2Je5wLdK9q/iIiISEkSfUxcREQkaQa9mp30PrMZkfQ+5fCVyE3GIiIiIoeVhK7gmNmRwOnh4jp3z48uJBEREZHKSWSivyzgD8CngAHNzOwSd18aaWQiIiIiFZTIFZwHgR+4+zoAMzsdmEVQvkFERESkxknkHpy6hckNgLt/BNSNLiQRERGRyknkCk6OmT0JFM5E9WMgJ7qQRERERConkQTnGmAM8JNweRkwObKIRERquGQ/4qzHm0WSL5EE52p3fwh4qLDBzK4DHoksKhEREZFKSOQenEtKaBuV5DhEREREkqbUKzhmNoKgOGYLM5sbs6o+8GXUgYmIiIhUVLwhqreBLwiqiT8Y0/5vYFWUQYmIiIhURqkJjrtvBDYC3aouHBEREZHKU7FNEREpU9fbFya1vxMzktqdyCFUbFNERERSTkIJjpkdaWbfM7P2YeHNhJhZfzNbZ2brzeyWUrYZZma5ZrbGzJ5NtG8RERGR0iRSbDMbeAL4mKDYZgszu8rdXyvjfWkEEwKeA+QBK8xsrrvnxmzTChgPdHf3f5nZiRX/KCIiIiKBRItt9nL39QBmdhowD4ib4ACdgfXuviF832xgMJAbs82VwGR3/xeAu28pX/giIiIih0pkiOrfhclNaAPBo+JlaQJsilnOC9tinQ6cbmZ/NrN3zax/SR2Z2WgzyzGznK1btyawaxEREanNEi22OR94HnBgKMFw0wUA7v5yJfffCsgCmgJLzay9u++I3cjdpwBTADIzM70S+xMREZFaIJEEpx7wT6BnuLwVOBoYSJDwlJbgbAaaxSw3Ddti5QHvuXs+8ImZfUSQ8KxIKHoRkTIk+/Fm0CPOIoeDMhMcd7+0gn2vAFqZWQuCxGY4QemHWK8CI4CnzKwhwZDVhgruT0RERARI7Cmqpwiu1BzE3S+L9z53329mY4GFQBowzd3XmNldQI67zw3X/cDMcoEDwE3uvr0Cn0NERESkSCJDVH+MeV0POB/4PJHO3X0+ML9Y24SY1w6MC/+JiIiIJEUiQ1QvxS6b2SxgeWQRiYiIiFRSRUo1tAI0IZ+IiIjUWIncg/NvgntwLPz6D+DmiOMSERERqbBEhqjqV0UgIiIiIslSaoJjZh3jvdHd/5r8cEREREQqL94VnAfDr/WATOADgmGq7wE5QLdoQxMRERGpmFJvMnb3Xu7eC/gC6Ojume5+FpDBoTMSi4iIiNQYiTxFdYa7ry5ccPcPgdbRhSQiIiJSOYlM9LfKzJ4EZoTLPwZWRReSiIiISOUkkuBcClwDXBcuLwUejywiERERkUpK5DHxPWb2BDDf3ddVQUwiIiIilVLmPThmNghYCSwIlzuY2dyI4xIRERGpsERuMr4d6AzsAHD3lUCL6EISERERqZxEEpx8d99ZrM2jCEZEREQkGRJJcNaY2YVAmpm1MrNJwNuJdG5m/c1snZmtN7Nb4mz3P2bmZpaZYNwiIiIipUokwbkWaAvsBZ4FdgLXl/UmM0sDJgMDgDbACDNrU8J29Qme0Hov4ahFRERE4igzwXH3r939VqCnu3dy99vcfU8CfXcG1rv7BnffB8wGBpew3S+B+4FE+hQREREpUyJPUf23meUCfw+XzzSzxxLouwmwKWY5L2yL7bsj0Mzd5yUesoiIiEh8iQxRTQT6AdsB3P0D4OzK7tjMjgAeAn6awLajzSzHzHK2bt1a2V2LiIhIikskwcHdNxVrOpDA2zYDzWKWm3Jwkc76QDtgsZl9CnQF5pZ0o7G7TwmLfWY2atQokZBFRESkFkukVMMmM/tvwM2sLsENwWsTeN8KoJWZtSBIbIYDFxauDB89b1i4bGaLgRvdPSfx8EVEREQOlcgVnKuBMQT3z3wOdAiX43L3/cBYYCFBQvS8u68xs7vC2ZFFREREIpFILaptBBXEy83d5wPzi7VNKGXbrIrsQ0RERKS4RJ6iOtXM/s/MtprZFjObY2anVkVwIiIiIhWRyBDVs8DzQGPgZOAFYFaUQYmIiIhURiIJzjHu/oy77w//zQDqRR2YiIiISEUl8hTVa2EdqdkERTZ/BMw3s+8AuPuXEcYnIiIiUm6JJDjDwq9XFWsfTpDw6H4cERERqVESeYqqRVUEIiIiIpIspd6DY2adzOy7McsXh09QPVo4PCUiIiJSE8W7yfh3wD4AMzsbuA94GtgJTIk+NBEREZGKiTdElRZzA/GPgCnu/hLwkpmtjDwyERERkQqKdwUnzcwKE6A+wFsx6xK5OVlERESkWsRLVGYBS8xsG7AbWAZgZi0JhqlEREREaqRSExx3/5WZvUkwg/Hr7u7hqiOAa6siOBEREZGKiDvU5O7vltD2UXThiIiIiFReIqUaRERERA4rSnBEREQk5USa4JhZfzNbZ2brw3pWxdePM7NcM1tlZm+a2SlRxiMiIiK1Q2QJjpmlAZOBAUAbYISZtSm22d+ATHf/HvAi8Ouo4hEREZHaI8orOJ2B9e6+wd33EVQjHxy7gbsvcvevw8V3gaYRxiMiIiK1RJQJThNgU8xyXthWmsuB10paYWajzSzHzHK2bt2axBBFREQkFdWIm4zNbCSQCfympPXuPsXdM909s1GjRlUbnIiIiBx2oiy5sBloFrPcNGw7iJn1BW4Ferr73gjjERERkVoiyis4K4BWZtbCzI4EhgNzYzcwswyCquWD3H1LhLGIiIhILRJZguPu+4GxwEJgLfC8u68xs7vMbFC42W+A44AXzGylmc0tpTsRERGRhEVaFdzd5wPzi7VNiHndN8r9i4iISO1UI24yFhEREUkmJTgiIiKScpTgiIiISMpRgiMiIiIpRwmOiIiIpBwlOCIiIpJylOCIiIhIylGCIyIiIilHCY6IiIikHCU4IiIiknKU4IiIiEjKUYIjIiIiKUcJjoiIiKQcJTgiIiKScpTgiIiISMqJNMExs/5mts7M1pvZLSWsP8rMngvXv2dm6VHGIyIiIrVDZAmOmaUBk4EBQBtghJm1KbbZ5cC/3L0lMBG4P6p4REREpPaI8gpOZ2C9u29w933AbGBwsW0GA38IX78I9DEzizAmERERqQXM3aPp2GwI0N/drwiXLwK6uPvYmG0+DLfJC5c/DrfZVqyv0cDocPEMYF0kQVevhsC2MreSsug4JoeOY3LoOCaHjmPlpfIxPMXdGxVvrFMdkZSXu08BplR3HFEysxx3z6zuOA53Oo7JoeOYHDqOyaHjWHm18RhGOUS1GWgWs9w0bCtxGzOrAzQAtkcYk4iIiNQCUSY4K4BWZtbCzI4EhgNzi20zF7gkfD0EeMujGjMTERGRWiOyISp3329mY4GFQBowzd3XmNldQI67zwV+DzxjZuuBLwmSoNoqpYfgqpCOY3LoOCaHjmNy6DhWXq07hpHdZCwiIiJSXTSTsYiIiKQcJTgiIiKScpTgRMzMPjWz1Wa20sxywrbvmNkbZvb/wq/fru44axozm2ZmW8K5kgrbSjxuFng0LPmxysw6Vl/kNYeZNTOzRWaWa2ZrzOy6sP0OM9scfk+uNLNzY94zPjyO68ysX/VFX3PpnK4YndPJofM6cUpwqkYvd+8QMwfBLcCb7t4KeDNcloNNB/oXayvtuA0AWoX/RgOPV1GMNd1+4Kfu3gboCoyJKZcyMfye7ODu8wHCdcOBtgTH/rGw5IocSud0+U1H53Qy6LxOkBKc6hFbouIPwHlQlIFPM7PFZrbBzH4Sth9rZvPM7AMz+9DMflQ9YVcdd19K8GRdrBKPW9j+tAfeBY43s8ZmlhUeyxfN7O9mNrOwFIiZ3Rf+BbTKzB6ogo9U5dz9C3f/a/j638BaoEmctwwGZrv7Xnf/BFgPdDazdDNba2ZTw78YXzezowHM7Ccxx3F21J+pBtM5XQad08mh8zpxSnCi58DrZva+BSUnAE5y9y/C1/8ATorZ/r+AfgS1vG43s7oEWffn7n6mu7cDFlRR7DVNacetCbApZrs8vjnhM4DrCQq+ngp0N7MTgPOBtu7+PeDuiOOudmaWTnAs3gubxoY/vKbFDKfEO46tgMnu3hbYAfxP2H4LkBEex6uj+wQ1is7p5NE5XQk6r+NTghO9Hu7ekeCS6xgzOzt2ZTixYeyz+vPCTHsbsIXghF8NnGNm95vZ9919Z1UFX1OVcNxK8xd3z3P3AmAlkA7sBPYAvzezC4Cvo4qzJjCz44CXgOvd/SuCy/2nAR2AL4AHE+jmE3dfGb5+n+A4AqwCZprZSIJL57WBzukI6JwuH53XZVOCEzF33xx+3QK8QvBX3D/NrDFA+HVLzFv2xrw+ANRx94+AjgQ/FO82swlVEXsNVNpxi1cWpKTjuZ/g/+FF4Iek8F/P4dWCl4CZ7v4ygLv/090PhL8gphIcCyjncQxfZwOTCb4/V1hQciWl6ZxOKp3TFaDzOjFKcCIUjrPXL3wN/AD4kINLVFwCzCmjn5OBr919BvAbgm+62qi04zYXuNgCXYGdMZe9DxH+5dMgvAnvBuDMCGOuNuG9Cb8H1rr7QzHtjWM2O5/gexKC4zjczI4ysxYEl6//Eqf/I4Bm7r4IuJmgltxxyf0UNYvO6aTTOV1OOq8Td1hmZYeRk4BXwnvg6gDPuvsCM1sBPG9mlwMbgWFl9NMe+I2ZFQD5wDURxlwjmNksIAtoaGZ5wO3AfZR83OYD5xLcPPc1cGkZ3dcH5phZPcCAcUn/ADVDd+AiYLWZrQzbfg6MMLMOBMMBnwJXAYSlVJ4HcgkuS49x9wPh929J0oAZZtaA4Dg+6u47IvkkNYfO6QrSOZ00Oq8TpFINIiIiknI0RCUiIiIpRwmOiIiIpBwlOCIiIpJylOCIiIhIylGCIyIiIilHCY6IiIikHCU4UiFmdpKZPWtBAcH3zewdMzs/Zv3DZrY5nDSqsG2UmW01s5VhIbcrS2hfY0EhvWPCdV3N7L1w3Vozu6OUeGaa2ToLChdOC2f6xILifDvD96+sxTPGikTCzNzMHoxZvrHwPLWg2Ojm8Nz70MwGldD+dzN7PPZnRbH+D8T8bPjAzH5a2rYisfRNIuUWzqT5KrDU3U9197OA4QRTgBfOhHk+QYG3nsXe/py7dyCY8OseMzsptj0s+rYPKKyu/AdgdPiedsDzpYQ1k6CoYXvgaOCKmHXLwr47uPtdFfrQIlKavcAFZtawlPUTw/N3KDAtJjkpbG9DcN4W/1lRaHfMz4ZzCGqA3Z6s4CV1KcGRiugN7HP3Jwob3H2ju08KF7OANQTF30aU1EFYx+dj4JTY9rDmybHAv8KmEwkKxxHWWcktpb/5HiKYhrxpxT6aiJTTfmAKQYmEUrn72nDb4onQkUA9vjnn4/WxBRhNUDW71Kl4RUAJjlRMW+CvcdaPAGYRFCLMLhwuimVmpwKnEkzFDvCjcNrxzcB3gP8L2ycC68zsFTO7KpyKvVThvi7i4GJ73cJL26+ZWdsyP52IlNdk4Mfh9P4lMrMuQAGwNWy6ITznvwA+iqlqHZe7byAoJ3BiZQKW1KcERyrNzCaHCcQKMzuSoIbMq+7+FfAe0C9m88JEZhZwlbt/GbYXDl19l6DC8k0A4ZBSJvA6cCFlVwl+jGDobFm4/FfgFHc/E5hEMLQmIkkUnutPAz8pYXVhIvMA8CP/pj5Q4RDVicCxZja8KmKV2kMJjlTEGmKqH7v7GKAP0IggmTmeoBDcp0APDh6mKrzXpou7v1K84/CH3/8BZ8e0fezuj4f7ONPMTjCzheGNh08Wbmdmt4cxjIt571fuvit8PR+oG+deARGpuIeBywmGmGNNDM/578f84VHE3fMJ/nA528yaxTwQcHVJOwmv/h4AtiQ3fEk1SnCkIt4C6plZbAXkY8KvI4Ar3D3d3dOBFsA5hU9FJagHwf05mFl2zFh7K4IfbDvcvV/4Q/OKcLsrCJKrEe5eUNiRmX238P1m1pnge357+T6uiJQlvBr7PEGSk7Dw/OwOfOzum2IeCHiihG0bAU8Av425EiRSojrVHYAcftzdzew8YKKZ/YxgTP0/BE82TASujtn2P2a2HBhYRrc/MrMeBAlIHjAqbL8o3M/XBDco/tjdD5Tw/ieAjcA7YT7zcji8NQS4xsz2A7uB4frBKBKZB4GxCW57g5mNBOoCqwiGl0tydDjEVZfgZ8AzwEOVjFNqAdPPehEREUk1GqISERGRlKMER0RERFKOEhwRERFJOUpwREREJOUowREREZGUowRHREREUo4SHBEREUk5/x8vE7YyGPFxXwAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Multi bar Chart1\n", - "latencies = ['50ns','100ns','250ns']\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,1.5])\n", - "barWidth = 1\n", - "tickSize = 4\n", - "\n", - "for i,lat in enumerate(latencies):\n", - " plt.bar(i*tickSize, gap22_noDC[i]/gap22_cas[i], width=barWidth, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*tickSize+1, gap22_noDC[i]/gap22_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - " plt.bar(i*tickSize+2, gap22_noDC[i]/gap22_ramOpt[i], width=barWidth, color=cmap(3), label='TDRAM-Rd-Prob' if i==0 else None)\n", - "offset = i*tickSize+3\n", - "for i,lat in enumerate(latencies): \n", - " plt.bar(offset+i*tickSize+1, npbC_noDC[i]/npbC_cas[i], width=barWidth, color=cmap(1))\n", - " plt.bar(offset+i*tickSize+2, npbC_noDC[i]/npbC_ram[i], width=barWidth, color=cmap(2))\n", - " plt.bar(offset+i*tickSize+3, npbC_noDC[i]/npbC_ramOpt[i], width=barWidth, color=cmap(3))\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-22\")\n", - "plt.figtext(0.7, -0.01, \"NPB-C\")\n", - "\n", - "latencies = ['50ns','100ns','250ns','50ns','100ns','250ns']\n", - "brLab = np.arange(len(latencies))\n", - "plt.xticks(brLab*tickSize+1, latencies)\n", - "\n", - "plt.axvline(x=11, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Speedup to no DRAM $\")\n", - "plt.legend(fontsize=9, ncol=1, loc='upper left')\n", - "plt.tight_layout()\n", - "\n", - "###########################################################\n", - "\n", - "# Multi bar Chart1\n", - "latencies = ['50ns','100ns','250ns']\n", - "\n", - "fig = plt.figure()\n", - "fig.set_size_inches(8,3)\n", - "plt.ylim([0,1.5])\n", - "barWidth = 1\n", - "tickSize = 4\n", - "\n", - "for i,lat in enumerate(latencies):\n", - " plt.bar(i*tickSize, gap25_noDC[i]/gap25_cas[i], width=barWidth, color=cmap(1), label='Cascade Lake' if i==0 else None)\n", - " plt.bar(i*tickSize+1, gap25_noDC[i]/gap25_ram[i], width=barWidth, color=cmap(2), label='TDRAM-baseline' if i==0 else None)\n", - " plt.bar(i*tickSize+2, gap25_noDC[i]/gap25_ramOpt[i], width=barWidth, color=cmap(3), label='TDRAM-Rd-Prob' if i==0 else None)\n", - "offset = i*tickSize+3\n", - "for i,lat in enumerate(latencies): \n", - " plt.bar(offset+i*tickSize+1, npbD_noDC[i]/npbD_cas[i], width=barWidth, color=cmap(1))\n", - " plt.bar(offset+i*tickSize+2, npbD_noDC[i]/npbD_ram[i], width=barWidth, color=cmap(2))\n", - " plt.bar(offset+i*tickSize+3, npbD_noDC[i]/npbD_ramOpt[i], width=barWidth, color=cmap(3))\n", - "\n", - "\n", - "\n", - "plt.figtext(0.25, -0.01, \"GAPBS-25\")\n", - "plt.figtext(0.7, -0.01, \"NPB-D\")\n", - "\n", - "latencies = ['50ns','100ns','250ns','50ns','100ns','250ns']\n", - "brLab = np.arange(len(latencies))\n", - "plt.xticks(brLab*tickSize+1, latencies)\n", - "\n", - "plt.axvline(x=11, color='black')\n", - "plt.axhline(y=1, color='grey')\n", - "\n", - "plt.ylabel(\"Speedup to no DRAM $\")\n", - "plt.legend(fontsize=9, ncol=1, loc='upper left')\n", - "plt.tight_layout()" - ] } ], "metadata": { @@ -2761,7 +1317,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.10" + "version": "3.10.6" }, "orig_nbformat": 4, "vscode": { diff --git a/realAppRun.sh b/realAppRun.sh index f707b1eada..b8e883a6fb 100755 --- a/realAppRun.sh +++ b/realAppRun.sh @@ -1,747 +1,3 @@ -# link latency - -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x CascadeLakeNoPartWrs 1 1 1250 0 & -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x CascadeLakeNoPartWrs 1 1 1250 0 & -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x CascadeLakeNoPartWrs 1 1 1250 0 & -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x CascadeLakeNoPartWrs 1 1 1250 0 & -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x CascadeLakeNoPartWrs 1 1 1250 0 & -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x CascadeLakeNoPartWrs 1 1 1250 0 & -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x CascadeLakeNoPartWrs 1 1 1250 0 & -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x CascadeLakeNoPartWrs 1 1 1250 0 & -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 CascadeLakeNoPartWrs 1 1 1250 0 & -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 CascadeLakeNoPartWrs 1 1 1250 0 & -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 CascadeLakeNoPartWrs 1 1 1250 0 & -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 CascadeLakeNoPartWrs 1 1 1250 0 & -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 CascadeLakeNoPartWrs 1 1 1250 0 & -build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/cascade/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 CascadeLakeNoPartWrs 1 1 1250 0 & - - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x CascadeLakeNoPartWrs 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x CascadeLakeNoPartWrs 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x CascadeLakeNoPartWrs 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x CascadeLakeNoPartWrs 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x CascadeLakeNoPartWrs 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x CascadeLakeNoPartWrs 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x CascadeLakeNoPartWrs 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x CascadeLakeNoPartWrs 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 CascadeLakeNoPartWrs 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 CascadeLakeNoPartWrs 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 CascadeLakeNoPartWrs 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 CascadeLakeNoPartWrs 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 CascadeLakeNoPartWrs 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/cascade/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 CascadeLakeNoPartWrs 1 1 625 0 & - - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x CascadeLakeNoPartWrs 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x CascadeLakeNoPartWrs 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x CascadeLakeNoPartWrs 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x CascadeLakeNoPartWrs 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x CascadeLakeNoPartWrs 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x CascadeLakeNoPartWrs 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x CascadeLakeNoPartWrs 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x CascadeLakeNoPartWrs 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 CascadeLakeNoPartWrs 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 CascadeLakeNoPartWrs 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 CascadeLakeNoPartWrs 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 CascadeLakeNoPartWrs 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 CascadeLakeNoPartWrs 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/cascade/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 CascadeLakeNoPartWrs 1 1 250 0 & - - - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 1 0 0 0 4ns & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 1 0 0 0 4ns & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 1 0 0 0 4ns & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 1 0 0 0 4ns & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 1 0 0 0 4ns & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 1 0 0 0 4ns & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 1 0 0 0 4ns & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 1 0 0 0 4ns & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 1 0 0 0 4ns & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 1 0 0 0 4ns & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 1 0 0 0 4ns & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 1 0 0 0 4ns & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 1 0 0 0 4ns & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/tagCheckSensitivity/rambus/4ns/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 1 0 0 0 4ns & - - - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 0 0 0 8 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 1 0 0 0 8 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 1 0 0 0 8 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 1 0 0 0 8 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 1 0 0 0 8 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 1 0 0 0 8 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 1 0 0 0 8 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 1 0 0 0 8 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 1 0 0 0 8 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 1 0 0 0 8 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 1 0 0 0 8 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 1 0 0 0 8 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 1 0 0 0 8 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/8/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 1 0 0 0 8 & - - - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 0 0 0 64 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 1 0 0 0 64 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 1 0 0 0 64 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 1 0 0 0 64 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 1 0 0 0 64 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 1 0 0 0 64 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 1 0 0 0 64 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 1 0 0 0 64 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 1 0 0 0 64 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 1 0 0 0 64 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 1 0 0 0 64 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 1 0 0 0 64 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 1 0 0 0 64 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/64/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 1 0 0 0 64 & - - - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 1 0 0 0 16 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 1 0 0 0 16 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 1 0 0 0 16 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 1 0 0 0 16 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 1 0 0 0 16 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 1 0 0 0 16 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 1 0 0 0 16 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 1 0 0 0 16 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 1 0 0 0 16 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 1 0 0 0 16 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 1 0 0 0 16 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 1 0 0 0 16 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 1 0 0 0 16 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/fbSensitivity2/rambus/16/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 1 0 0 0 16 & -############################################## -############################################## - -# link latency - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x CascadeLakeNoPartWrs 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x CascadeLakeNoPartWrs 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x CascadeLakeNoPartWrs 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x CascadeLakeNoPartWrs 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x CascadeLakeNoPartWrs 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x CascadeLakeNoPartWrs 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x CascadeLakeNoPartWrs 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x CascadeLakeNoPartWrs 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 CascadeLakeNoPartWrs 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 CascadeLakeNoPartWrs 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 CascadeLakeNoPartWrs 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 CascadeLakeNoPartWrs 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 CascadeLakeNoPartWrs 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/cascade/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 CascadeLakeNoPartWrs 1 1 125 0 & - -####################################### - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 1 1 125 1 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 1 1 125 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/noDC/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 1 1 125 1 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 1 1 625 1 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 1 1 625 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/noDC/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 1 1 625 1 & - -##************************** - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 1 1 250 1 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 1 1 250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/noDC/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 1 1 250 1 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 1 1 1250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 1 1 1250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 1 1 1250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 1 1 1250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 1 1 1250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 1 1 1250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 1 1 1250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 1 1 1250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 1 1 1250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 1 1 1250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 1 1 1250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 1 1 1250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 1 1 1250 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/noDC/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 1 1 1250 1 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 1 1 2500 1 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 1 1 2500 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/noDC/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 1 1 2500 1 & - - -############################### - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 1 1 125 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 1 1 125 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/50/rambus/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 1 1 125 0 & - - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 1 1 625 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 1 1 625 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/250/rambus/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 1 1 625 0 & - -###*************************************** - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 1 1 250 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 1 1 250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/100/rambus/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 1 1 250 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 1 1 1250 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 1 1 1250 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/500/rambus/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 1 1 1250 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 1 1 2500 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 1 1 2500 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/link/1000/rambus/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 1 1 2500 0 & - - -################################################### -################################################### - -# set-associative - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/2/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 2 0 0 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 2 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/2/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 2 0 0 0 & - - - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/8/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 8 0 0 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 8 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/8/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 8 0 0 0 & - - - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/16/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 16 0 0 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 16 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/16/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 16 0 0 0 & - - - - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-asso/rambus/32/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 32 0 0 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 32 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/set-assoc/rambus/32/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 32 0 0 0 & - -#################################################################### -#################################################################### - -# baselines - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 1 0 0 0 & - - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Oracle 1 0 0 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x Rambus 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x Rambus 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x Rambus 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x Rambus 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x Rambus 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x Rambus 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x Rambus 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 Rambus 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 Rambus 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 Rambus 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 Rambus 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 Rambus 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 Rambus 1 0 0 1 & - -####################################### - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/cascade/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 CascadeLakeNoPartWrs 1 0 0 0 & - - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Rambus 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/rambus/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Rambus 1 0 0 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Oracle 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/oracle/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Oracle 1 0 0 0 & - - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x Oracle 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x Oracle 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x Oracle 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x Oracle 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x Oracle 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x Oracle 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x Oracle 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x Oracle 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 Oracle 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 Oracle 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 Oracle 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 Oracle 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 Oracle 1 0 0 1 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=newResults/baseline/noDC/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 Oracle 1 0 0 1 & - - -############################################################# - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/NPB/bt configs-npb-gapbs/restore_both.py bt.D.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/NPB/cg configs-npb-gapbs/restore_both.py cg.D.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/NPB/ft configs-npb-gapbs/restore_both.py ft.D.x CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/NPB/is configs-npb-gapbs/restore_both.py is.D.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/NPB/lu configs-npb-gapbs/restore_both.py lu.D.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/NPB/mg configs-npb-gapbs/restore_both.py mg.D.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/NPB/sp configs-npb-gapbs/restore_both.py sp.D.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/NPB/ua configs-npb-gapbs/restore_both.py ua.D.x CascadeLakeNoPartWrs 1 0 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/GAPBS/bc configs-npb-gapbs/restore_both.py bc-25 CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-25 CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/GAPBS/cc configs-npb-gapbs/restore_both.py cc-25 CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/GAPBS/pr configs-npb-gapbs/restore_both.py pr-25 CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/GAPBS/tc configs-npb-gapbs/restore_both.py tc-25 CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_85GB_g25_nD/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-25 CascadeLakeNoPartWrs 1 0 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/NPB/bt configs-npb-gapbs/restore_both.py bt.C.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/NPB/cg configs-npb-gapbs/restore_both.py cg.C.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/NPB/ft configs-npb-gapbs/restore_both.py ft.C.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/NPB/is configs-npb-gapbs/restore_both.py is.C.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/NPB/lu configs-npb-gapbs/restore_both.py lu.C.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/NPB/mg configs-npb-gapbs/restore_both.py mg.C.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/NPB/sp configs-npb-gapbs/restore_both.py sp.C.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/NPB/ua configs-npb-gapbs/restore_both.py ua.C.x CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/GAPBS/bc configs-npb-gapbs/restore_both.py bc-22 CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/GAPBS/bfs configs-npb-gapbs/restore_both.py bfs-22 CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/GAPBS/cc configs-npb-gapbs/restore_both.py cc-22 CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/GAPBS/pr configs-npb-gapbs/restore_both.py pr-22 CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/GAPBS/tc configs-npb-gapbs/restore_both.py tc-22 CascadeLakeNoPartWrs 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=pcAnalysis/3hour_1halfChkpt/1GB_8GB_g22_nC/GAPBS/sssp configs-npb-gapbs/restore_both.py sssp-22 CascadeLakeNoPartWrs 1 0 0 & - -######################################### - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/NPB/bt configs-npb-gapbs/npb_checkpoint.py bt.C.x C CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/NPB/cg configs-npb-gapbs/npb_checkpoint.py cg.C.x C CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/NPB/ft configs-npb-gapbs/npb_checkpoint.py ft.C.x C CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/NPB/is configs-npb-gapbs/npb_checkpoint.py is.C.x C CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/NPB/lu configs-npb-gapbs/npb_checkpoint.py lu.C.x C CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/NPB/mg configs-npb-gapbs/npb_checkpoint.py mg.C.x C CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/NPB/sp configs-npb-gapbs/npb_checkpoint.py sp.C.x C CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/NPB/ua configs-npb-gapbs/npb_checkpoint.py ua.C.x C CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/GAPBS/bc configs-npb-gapbs/gapbs_checkpoint.py bc 22 CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/GAPBS/bfs configs-npb-gapbs/gapbs_checkpoint.py bfs 22 CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/GAPBS/cc configs-npb-gapbs/gapbs_checkpoint.py cc 22 CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/GAPBS/pr configs-npb-gapbs/gapbs_checkpoint.py pr 22 CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/GAPBS/tc configs-npb-gapbs/gapbs_checkpoint.py tc 22 CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_8GB_g22_nC_1halfSec/GAPBS/sssp configs-npb-gapbs/gapbs_checkpoint.py sssp 22 CascadeLakeNoPartWrs 0 0 & - -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/NPB/bt configs-npb-gapbs/npb_checkpoint.py bt.D.x D CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/NPB/cg configs-npb-gapbs/npb_checkpoint.py cg.D.x D CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/NPB/ft configs-npb-gapbs/npb_checkpoint.py ft.D.x D CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/NPB/is configs-npb-gapbs/npb_checkpoint.py is.D.x D CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/NPB/lu configs-npb-gapbs/npb_checkpoint.py lu.D.x D CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/NPB/mg configs-npb-gapbs/npb_checkpoint.py mg.D.x D CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/NPB/sp configs-npb-gapbs/npb_checkpoint.py sp.D.x D CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/NPB/ua configs-npb-gapbs/npb_checkpoint.py ua.D.x D CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/GAPBS/bc configs-npb-gapbs/gapbs_checkpoint.py bc 25 CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/GAPBS/bfs configs-npb-gapbs/gapbs_checkpoint.py bfs 25 CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/GAPBS/cc configs-npb-gapbs/gapbs_checkpoint.py cc 25 CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/GAPBS/pr configs-npb-gapbs/gapbs_checkpoint.py pr 25 CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/GAPBS/tc configs-npb-gapbs/gapbs_checkpoint.py tc 25 CascadeLakeNoPartWrs 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=chkpt1GigDC/1GB_85GB_g25_nD_1halfSec/GAPBS/sssp configs-npb-gapbs/gapbs_checkpoint.py sssp 25 CascadeLakeNoPartWrs 0 0 & -======= # script #App #Policy #Assoc #EnableLinkLatency #LinkLatency #EnableBypassDRAM$ # configs-npb-gapbs/restore_both.py bt.D.x Rambus 1 0 0 0 @@ -777,4 +33,4 @@ build/X86_MESI_Two_Level/gem5.opt -re --outdir=/home/babaie/projects/rambusDesi # build/X86_MESI_Two_Level/gem5.opt -re --outdir=m5out-stat/rdH traffGen_def.py random 100 1 1 0 & # build/X86_MESI_Two_Level/gem5.opt -re --outdir=m5out-stat/rdMC traffGen_def.py random 100 1 0 0 & -# build/X86_MESI_Two_Level/gem5.opt -re --outdir=m5out-stat/rdMD traffGen_def.py random 100 1 0 1 & +# build/X86_MESI_Two_Level/gem5.opt -re --outdir=m5out-stat/rdMD traffGen_def.py random 100 1 0 1 & \ No newline at end of file diff --git a/src/cpu/testers/dr_trace_player/trace_player.cc b/src/cpu/testers/dr_trace_player/trace_player.cc index 9bb4b97d39..4ee814f94f 100644 --- a/src/cpu/testers/dr_trace_player/trace_player.cc +++ b/src/cpu/testers/dr_trace_player/trace_player.cc @@ -86,7 +86,6 @@ DRTracePlayer::tryExecuteInst(DRTraceReader::TraceRef &cur_ref) // End of trace for this player exit the simulation // TODO: Move this to when the last instruction is completed exitSimLoopNow("End of DRTrace"); - return; } DPRINTF(DRTrace, "Exec reference pc: %0#x, addr: %0#x, size: %d, " diff --git a/src/cpu/testers/dr_trace_player/trace_reader.cc b/src/cpu/testers/dr_trace_player/trace_reader.cc index e509415174..afaa3950da 100644 --- a/src/cpu/testers/dr_trace_player/trace_reader.cc +++ b/src/cpu/testers/dr_trace_player/trace_reader.cc @@ -171,10 +171,6 @@ DRTraceReader::getNextTraceReference(unsigned player_id) case TRACE_TYPE_PREFETCHT1: case TRACE_TYPE_PREFETCHT2: case TRACE_TYPE_PREFETCHNTA: - if (raw_entry.addr == 0) { - warn("Encountered a prefetch req with Addr = 0 \n"); - return getNextTraceReference(player_id); - } ref.addr = raw_entry.addr; ref.size = raw_entry.size; ref.isValid = true; diff --git a/src/mem/DRAMInterface.py b/src/mem/DRAMInterface.py index b6f3f5109b..201e5b0961 100644 --- a/src/mem/DRAMInterface.py +++ b/src/mem/DRAMInterface.py @@ -187,13 +187,13 @@ class DRAMInterface(MemInterface): tXSDLL = Param.Latency("0ns", "Self-refresh exit latency DLL") tTAGBURST = Param.Latency("0ns", "tRL_FAST") - tRLFAST = Param.Latency("0ns", "tRL_FAST") + tRL_FAST = Param.Latency("0ns", "tRL_FAST") tHM2DQ = Param.Latency("0ns", "tHM2DQ") tRTW_int = Param.Latency("0ns", "tRTW_int") tRFBD = Param.Latency("0ns", "tRFBD") tRCD_FAST = Param.Latency("0ns", "tRCD_FAST") + tRC_FAST = Param.Latency("0ns", "tRCD_FAST") flushBuffer_high_thresh_perc = Param.Percent(0, "Threshold to force writes") - flush_buffer_size = Param.Unsigned(0, "flush buffer size") # number of data beats per clock. with DDR, default is 2, one per edge # used in drampower.cc @@ -1304,11 +1304,12 @@ class TDRAM(DRAMInterface): # new tTAGBURST = "1ns" - tRLFAST = "1ns" + tRL_FAST = "1ns" tHM2DQ = "1ns" tRTW_int = "2ns" tRFBD = "2ns" tRCD_FAST = "7.5ns" + tRC_FAST = "10.5ns" enable_read_flush_buffer = True flushBuffer_high_thresh_perc = 80 @@ -1390,14 +1391,13 @@ class TDRAM_32(DRAMInterface): # new tTAGBURST = "0.5ns" - tRLFAST = "7.5ns" + tRL_FAST = "7.5ns" tHM2DQ = "0ns" tRTW_int = "1ns" tRFBD = "1ns" tRCD_FAST = "7.5ns" enable_read_flush_buffer = True flushBuffer_high_thresh_perc = 80 - flush_buffer_size = 32 tRP = "14ns" diff --git a/src/mem/PolicyManager.py b/src/mem/PolicyManager.py index 8c98ae022b..2854e389b0 100644 --- a/src/mem/PolicyManager.py +++ b/src/mem/PolicyManager.py @@ -5,7 +5,7 @@ from m5.objects.AbstractMemory import AbstractMemory from m5.objects.DRAMInterface import * -class Policy(Enum): vals = ['CascadeLakeNoPartWrs', 'Oracle', 'BearWriteOpt', 'Rambus'] +class Policy(Enum): vals = ['CascadeLakeNoPartWrs', 'Oracle', 'BearWriteOpt', 'Rambus', 'RambusTagProbOpt'] class ReplPolicySetAssoc(Enum): vals = ['bip_rp', 'brrip_rp', 'dueling_rp', 'fifo_rp', 'lfu_rp', 'lru_rp', 'mru_rp', 'random_rp', 'second_chance_rp', 'ship_rp', 'tree_plru_rp', 'weighted_lru_rp'] class PolicyManager(AbstractMemory): diff --git a/src/mem/abstract_mem.hh b/src/mem/abstract_mem.hh index 05f65d6188..572e28ff03 100644 --- a/src/mem/abstract_mem.hh +++ b/src/mem/abstract_mem.hh @@ -46,6 +46,7 @@ #ifndef __MEM_ABSTRACT_MEMORY_HH__ #define __MEM_ABSTRACT_MEMORY_HH__ +#include "enums/Policy.hh" #include "mem/backdoor.hh" #include "mem/port.hh" #include "params/AbstractMemory.hh" @@ -225,6 +226,8 @@ class AbstractMemory : public ClockedObject void initState() override; + enums::Policy locMemPolicy; + virtual Tick get_tRP() { panic("AbstractMemory get_tRP should not be executed from here.\n"); return false;} virtual Tick get_tRCD_RD() { panic("AbstractMemory get_tRCD_RD should not be executed from here.\n"); diff --git a/src/mem/dram_interface.cc b/src/mem/dram_interface.cc index 5e6be4bb66..4fa3d97016 100644 --- a/src/mem/dram_interface.cc +++ b/src/mem/dram_interface.cc @@ -48,6 +48,7 @@ #include "debug/DRAMPower.hh" #include "debug/DRAMState.hh" #include "debug/MemCtrl.hh" +#include "enums/Policy.hh" #include "sim/system.hh" namespace gem5 @@ -61,7 +62,6 @@ namespace memory std::pair DRAMInterface::chooseNextFRFCFS(MemPacketQueue& queue, Tick min_col_at) const { - DPRINTF(DRAM, "in dram->chooseNextFRFCFS func\n"); std::vector earliest_banks(ranksPerChannel, 0); // Has minBankPrep been called to populate earliest_banks? @@ -365,6 +365,7 @@ DRAMInterface::doBurstAccess(MemPacket* mem_pkt, Tick next_burst_at, Tick act_at = MaxTick; // get the rank Rank& rank_ref = *ranks[mem_pkt->rank]; + assert(rank_ref.inRefIdleState()); // are we in or transitioning to a low-power state and have not scheduled @@ -394,20 +395,7 @@ DRAMInterface::doBurstAccess(MemPacket* mem_pkt, Tick next_burst_at, } // next we need to account for the delay in activating the page - Tick act_tick; - if (mem_pkt->isLocMem) { - if (polMan->locMemPolicy == enums::RambusTagProbOpt) { - act_tick = std::max(std::max(bank_ref.tagActAllowedAt, bank_ref.actAllowedAt), curTick()); - - if (bank_ref.tagActAllowedAt > bank_ref.actAllowedAt && bank_ref.tagActAllowedAt > curTick()) { - stats.actDelayedDueToTagAct++; - } - } else { - act_tick = std::max(bank_ref.actAllowedAt, curTick()); - } - } else { - act_tick = std::max(bank_ref.actAllowedAt, curTick()); - } + Tick act_tick = std::max(bank_ref.actAllowedAt, curTick()); // Record the activation and deal with all the global timing // constraints caused be a new activation (tRRD and tXAW) @@ -449,18 +437,21 @@ DRAMInterface::doBurstAccess(MemPacket* mem_pkt, Tick next_burst_at, } } - DPRINTF(DRAM, "Schedule RD/WR burst at tick %d\n", cmd_at); + DPRINTF(DRAM, "Schedule RD/WR burst at tick %d\n", cmd_at); // update the packet ready time Tick stall_delay = 0; if(mem_pkt->isTagCheck) { - assert(mem_pkt->isLocMem); + assert(mem_pkt->isLocMem); + // Calculating the tag check ready time if (mem_pkt->pkt->owIsRead) { - mem_pkt->tagCheckReady = cmd_at - tRCD_RD + tRCD_FAST + tRLFAST; + assert((cmd_at + tRCD_FAST + tRL_FAST) > tRCD_RD); + mem_pkt->tagCheckReady = (cmd_at + tRCD_FAST + tRL_FAST) - tRCD_RD; } else { - mem_pkt->tagCheckReady = cmd_at - tRCD_RD - tRTW_int + tRCD_FAST + tRLFAST; + assert((cmd_at + tRCD_FAST + tRL_FAST) > (tRCD_RD + tRTW_int)); + mem_pkt->tagCheckReady = (cmd_at + tRCD_FAST + tRL_FAST) - (tRCD_RD + tRTW_int); } stats.tagResBursts++; @@ -470,15 +461,10 @@ DRAMInterface::doBurstAccess(MemPacket* mem_pkt, Tick next_burst_at, stats.tagBursts++; } - if (polMan->locMemPolicy == enums::RambusTagProbOpt) { - assert((mem_pkt->tagCheckReady + tRC_FAST) > (tRL_FAST + tRCD_FAST)); - bank_ref.tagActAllowedAt = (mem_pkt->tagCheckReady + tRC_FAST) - (tRL_FAST + tRCD_FAST); - } - // Calculating the data ready time if (mem_pkt->pkt->owIsRead) { - mem_pkt->readyTime = cmd_at + std::max(tRL, tRLFAST + tHM2DQ) + tBURST; + mem_pkt->readyTime = cmd_at + std::max(tRL, tRL_FAST + tHM2DQ) + tBURST; // Rd Miss Clean if (mem_pkt->pkt->owIsRead && !mem_pkt->pkt->isHit && !mem_pkt->pkt->isDirty) { @@ -566,7 +552,7 @@ DRAMInterface::doBurstAccess(MemPacket* mem_pkt, Tick next_burst_at, tempFlushBuffer.push_back(std::make_pair(pushBackFBTick, mem_pkt->pkt->dirtyLineAddr)); - if ((tempFlushBuffer.size() + flushBuffer.size()) >= (flushBufferSize * flushBufferHighThreshold) && + if ((tempFlushBuffer.size() + flushBuffer.size()) >= (banksPerRank * flushBufferHighThreshold) && !readFlushBufferEvent.scheduled() && !flushBuffer.empty()) { @@ -620,17 +606,9 @@ DRAMInterface::doBurstAccess(MemPacket* mem_pkt, Tick next_burst_at, } } else { - // assert(mem_pkt->tagCheckReady == MaxTick); + assert(mem_pkt->tagCheckReady == MaxTick); if (mem_pkt->isRead()) { mem_pkt->readyTime = cmd_at + tRL + tBURST; - if (mem_pkt->isLocMem) { - if(polMan->locMemPolicy == enums::RambusTagProbOpt && - !mem_pkt->pkt->isHit && - mem_pkt->pkt->isDirty) { - // a probed Rd Miss Dirty - mem_pkt->pkt->hasDirtyData = true; - } - } } else { mem_pkt->readyTime = cmd_at + tWL + tBURST; } @@ -651,8 +629,9 @@ DRAMInterface::doBurstAccess(MemPacket* mem_pkt, Tick next_burst_at, } } + DPRINTF(DRAMT, "curr pkt, addr: %d, isRd: %d, isTC: %d, bank %d, row %d, act: %d, RdAlw: %d, WrAlw: %d, cmd: %d, rdy: %d\n", - mem_pkt->getAddr(), mem_pkt->isRead(), mem_pkt->isTagCheck, (unsigned) mem_pkt->bank, (unsigned) mem_pkt->row, + mem_pkt->addr, mem_pkt->pkt->isRead(), mem_pkt->pkt->isTagCheck, (unsigned) mem_pkt->bank, (unsigned) mem_pkt->row, act_at/1000, bank_ref.rdAllowedAt/1000, bank_ref.wrAllowedAt/1000, cmd_at/1000, mem_pkt->readyTime/1000); rank_ref.lastBurstTick = cmd_at; @@ -853,15 +832,6 @@ DRAMInterface::doBurstAccess(MemPacket* mem_pkt, Tick next_burst_at, return std::make_pair(cmd_at, cmd_at + burst_gap); } -void -DRAMInterface::updateTagActAllowed(unsigned rankNumber, unsigned bankNumber, Tick BSlotTagBankBusyAt) -{ - assert(BSlotTagBankBusyAt!=MaxTick); - ranks[rankNumber]->banks[bankNumber].tagActAllowedAt = BSlotTagBankBusyAt; - DPRINTF(DRAM, "updateTagFunc tagActAllowedAt change, rank/bank %d/%d -- tagActAllowedAt: %d\n", - rankNumber, bankNumber, BSlotTagBankBusyAt); -} - void DRAMInterface::addRankToRankDelay(Tick cmd_at) { @@ -892,10 +862,10 @@ DRAMInterface::DRAMInterface(const DRAMInterfaceParams &_p) tRFC(_p.tRFC), tREFI(_p.tREFI), tRRD(_p.tRRD), tRRD_L(_p.tRRD_L), tPPD(_p.tPPD), tAAD(_p.tAAD), tXAW(_p.tXAW), tXP(_p.tXP), tXS(_p.tXS), - tTAGBURST(_p.tTAGBURST), tRLFAST(_p.tRLFAST), tHM2DQ(_p.tHM2DQ), + tTAGBURST(_p.tTAGBURST), tRL_FAST(_p. tRL_FAST), tHM2DQ(_p.tHM2DQ), tRTW_int(_p.tRTW_int), tRFBD(_p.tRFBD), tRCD_FAST(_p.tRCD_FAST), + tRC_FAST(_p.tRC_FAST), flushBufferHighThreshold(_p.flushBuffer_high_thresh_perc / 100.0), - flushBufferSize(_p.flush_buffer_size), clkResyncDelay(_p.tBURST_MAX), dataClockSync(_p.data_clock_sync), burstInterleave(tBURST != tBURST_MIN), @@ -2278,6 +2248,8 @@ DRAMInterface::DRAMStats::DRAMStats(DRAMInterface &_dram) "Maximum flush buffer length when enqueuing"), ADD_STAT(refSchdRFB, statistics::units::Count::get(), "Maximum flush buffer length when enqueuing"), + ADD_STAT( actDelayedDueToTagAct, statistics::units::Count::get(), + " "), ADD_STAT(perBankRdBursts, statistics::units::Count::get(), "Per bank write bursts"), ADD_STAT(perBankWrBursts, statistics::units::Count::get(), diff --git a/src/mem/dram_interface.hh b/src/mem/dram_interface.hh index b390f93f39..44d9b7447d 100644 --- a/src/mem/dram_interface.hh +++ b/src/mem/dram_interface.hh @@ -509,13 +509,13 @@ class DRAMInterface : public MemInterface const Tick tXP; const Tick tXS; const Tick tTAGBURST; - const Tick tRLFAST; + const Tick tRL_FAST; const Tick tHM2DQ; const Tick tRTW_int; const Tick tRFBD; const Tick tRCD_FAST; + const Tick tRC_FAST; float flushBufferHighThreshold; - unsigned flushBufferSize; const Tick clkResyncDelay; const bool dataClockSync; const bool burstInterleave; @@ -602,6 +602,7 @@ class DRAMInterface : public MemInterface statistics::Scalar totPktsPushedFB; statistics::Scalar maxFBLenEnq; statistics::Scalar refSchdRFB; + statistics::Scalar actDelayedDueToTagAct; /** DRAM per bank stats */ statistics::Vector perBankRdBursts; @@ -871,7 +872,7 @@ class DRAMInterface : public MemInterface Tick getTRCDFAST() override { return tRCD_FAST;} void updateTagActAllowed(unsigned rankNumber, unsigned bankNumber, Tick BSlotTagBankBusyAt) override; - + DRAMInterface(const DRAMInterfaceParams &_p); }; diff --git a/src/mem/mem_ctrl.cc b/src/mem/mem_ctrl.cc index bda202c972..4ee2c28d4b 100644 --- a/src/mem/mem_ctrl.cc +++ b/src/mem/mem_ctrl.cc @@ -264,6 +264,7 @@ MemCtrl::addToReadQueue(PacketPtr pkt, mem_pkt = mem_intr->decodePacket(pkt, addr, size, true, mem_intr->pseudoChannel); mem_pkt->isTagCheck = pkt->isTagCheck; + mem_pkt->isLocMem = pkt->isLocMem; // Increment read entries of the rank (dram) // Increment count to trigger issue of non-deterministic read (nvm) @@ -280,13 +281,9 @@ MemCtrl::addToReadQueue(PacketPtr pkt, readQueue[mem_pkt->qosValue()].push_back(mem_pkt); // log packet - DPRINTF(MemCtrl, "logRequest rd: %d %d %x\n", - pkt->requestorId(), - pkt->qosValue(), mem_pkt->addr); - logRequest(MemCtrl::READ, pkt->requestorId(), pkt->qosValue(), mem_pkt->addr, 1); - + mem_intr->readQueueSize++; // Update stats @@ -344,6 +341,7 @@ MemCtrl::addToWriteQueue(PacketPtr pkt, unsigned int pkt_count, mem_pkt = mem_intr->decodePacket(pkt, addr, size, false, mem_intr->pseudoChannel); mem_pkt->isTagCheck = pkt->isTagCheck; + mem_pkt->isLocMem = pkt->isLocMem; // Default readyTime to Max if nvm interface; //will be reset once read is issued @@ -360,13 +358,9 @@ MemCtrl::addToWriteQueue(PacketPtr pkt, unsigned int pkt_count, isInWriteQueue.insert(burstAlign(addr, mem_intr)); // log packet - DPRINTF(MemCtrl, "logRequest wr: %d %d %x\n", - pkt->requestorId(), - pkt->qosValue(), mem_pkt->addr); - logRequest(MemCtrl::WRITE, pkt->requestorId(), pkt->qosValue(), mem_pkt->addr, 1); - + mem_intr->writeQueueSize++; //assert(totalWriteQueueSize == isInWriteQueue.size()); @@ -461,7 +455,7 @@ MemCtrl::recvTimingReq(PacketPtr pkt) if (pkt->isWrite()) { assert(size != 0); if (writeQueueFull(pkt_count)) { - DPRINTF(MemCtrl, "Write queue full, not accepting, readQ size: %d, writeQ size: %d\n", readQueue[pkt->qosValue()].size(), writeQueue[pkt->qosValue()].size()); + DPRINTF(MemCtrl, "Write queue full, not accepting\n"); // remember that we have to retry this port retryWrReq = true; stats.numWrRetry++; @@ -481,7 +475,7 @@ MemCtrl::recvTimingReq(PacketPtr pkt) assert(pkt->isRead()); assert(size != 0); if (readQueueFull(pkt_count)) { - DPRINTF(MemCtrl, "Read queue full, not accepting, readQ size: %d, writeQ size: %d\n", readQueue[pkt->qosValue()].size(), writeQueue[pkt->qosValue()].size()); + DPRINTF(MemCtrl, "Read queue full, not accepting\n"); // remember that we have to retry this port retryRdReq = true; stats.numRdRetry++; @@ -577,7 +571,7 @@ MemCtrl::chooseNext(MemPacketQueue& queue, Tick extra_col_delay, MemInterface* mem_intr) { // This method does the arbitration between requests. - DPRINTF(MemCtrl, "in chooseNext func\n"); + MemPacketQueue::iterator ret = queue.end(); if (!queue.empty()) { @@ -620,7 +614,6 @@ std::pair MemCtrl::chooseNextFRFCFS(MemPacketQueue& queue, Tick extra_col_delay, MemInterface* mem_intr) { - DPRINTF(MemCtrl, "in chooseNextFRFCFS func\n"); auto selected_pkt_it = queue.end(); Tick col_allowed_at = MaxTick; @@ -713,6 +706,7 @@ MemCtrl::sendTagCheckRespond(MemPacket* mem_pkt) PacketPtr tagCheckResPkt = getPacket(mem_pkt->addr, 8, MemCmd::ReadReq); tagCheckResPkt->isTagCheck = mem_pkt->pkt->isTagCheck; + tagCheckResPkt->isLocMem = mem_pkt->pkt->isLocMem; tagCheckResPkt->owIsRead = mem_pkt->pkt->owIsRead; tagCheckResPkt->isHit = mem_pkt->pkt->isHit; tagCheckResPkt->isDirty = mem_pkt->pkt->isDirty; @@ -934,6 +928,7 @@ MemCtrl::doBurstAccess(MemPacket* mem_pkt, MemInterface* mem_intr) // conservative estimate of when we have to schedule the next // request to not introduce any unecessary bubbles. In most cases // we will wake up sooner than we have to. + assert(mem_intr->nextBurstAt > mem_intr->commandOffset()); mem_intr->nextReqTime = mem_intr->nextBurstAt - mem_intr->commandOffset(); // Update the common bus stats @@ -1002,9 +997,6 @@ MemCtrl::processNextReqEvent(MemInterface* mem_intr, EventFunctionWrapper& resp_event, EventFunctionWrapper& next_req_event, bool& retry_wr_req) { - DPRINTF(MemCtrl, "processNextReqEvent: readQueueSize: %d, writeQueueSize:%d, readQ: %d, writeQ: %d, respQ: %d\n", - mem_intr->readQueueSize, mem_intr->writeQueueSize, readQueue[0].size(), writeQueue[0].size(), - respQueue.size()); if (considerOldestWrite) { updateOldestWriteAge(); } @@ -1094,7 +1086,7 @@ MemCtrl::processNextReqEvent(MemInterface* mem_intr, prio--; - DPRINTF(MemCtrl, + DPRINTF(QOS, "Checking READ queue [%d] priority [%d elements]\n", prio, queue->size()); @@ -1123,59 +1115,25 @@ MemCtrl::processNextReqEvent(MemInterface* mem_intr, auto mem_pkt = *to_read; - DPRINTF(MemCtrl, "Read pkt chosen before doburst: %x\n", mem_pkt->getAddr()); - Tick cmd_at = doBurstAccess(mem_pkt, mem_intr); - if (mem_pkt->isLocMem) { - // && polMan->locMemPolicy == RambusTagProb - assert(mem_pkt->BSlotBusyUntil!=MaxTick); - assert(!mem_pkt->probedRdMC); - - if (mem_pkt->probedRdH) { - assert(mem_pkt->tagCheckReady != MaxTick); - assert(!mem_pkt->probedRdMD); - assert (mem_pkt->tagCheckReady > (dram->getTRCDFAST() + dram->getTRLFAST())); - assert(cmd_at > (mem_pkt->tagCheckReady - dram->getTRCDFAST() - dram->getTRLFAST())); - - stats.deltaAbSlotRdH += - (cmd_at - (mem_pkt->tagCheckReady - dram->getTRCDFAST() - dram->getTRLFAST())); - - } else if (mem_pkt->probedRdMD) { - assert(mem_pkt->tagCheckReady != MaxTick); - assert(!mem_pkt->probedRdH); - assert (mem_pkt->tagCheckReady > (dram->getTRCDFAST() + dram->getTRLFAST())); - assert(cmd_at > (mem_pkt->tagCheckReady - dram->getTRCDFAST() - dram->getTRLFAST())); - - stats.deltaAbSlotRdMD += - (cmd_at - (mem_pkt->tagCheckReady - dram->getTRCDFAST() - dram->getTRLFAST())); - } - } - - assert((*to_read)->getAddr() == mem_pkt->getAddr()); - if (mem_pkt->isTagCheck) { DPRINTF(MemCtrl, "read times: %x, %s: tag: %d data: %d \n", mem_pkt->addr, mem_pkt->pkt->cmdString(), mem_pkt->tagCheckReady, mem_pkt->readyTime); sendTagCheckRespond(mem_pkt); } DPRINTF(MemCtrl, - "Command for %x, issued at %lld.\n", mem_pkt->addr, cmd_at); + "Command for %d, issued at %lld.\n", mem_pkt->addr, cmd_at); // sanity check assert(pktSizeCheck(mem_pkt, mem_intr)); assert(mem_pkt->readyTime >= curTick()); // log the response - DPRINTF(MemCtrl, "logResponse rd1: %d %d %x %d\n", - (*to_read)->requestorId(), - mem_pkt->qosValue(), mem_pkt->getAddr(), - mem_pkt->readyTime - mem_pkt->entryTime); - logResponse(MemCtrl::READ, (*to_read)->requestorId(), mem_pkt->qosValue(), mem_pkt->getAddr(), 1, mem_pkt->readyTime - mem_pkt->entryTime); - + mem_intr->readQueueSize--; // Insert into response queue. It will be sent back to the @@ -1202,24 +1160,8 @@ MemCtrl::processNextReqEvent(MemInterface* mem_intr, } // remove the request from the queue - // the iterator is no longer valid . + // the iterator is no longer valid . readQueue[mem_pkt->qosValue()].erase(to_read); - - // Tag probing B slot comes here. - if (mem_pkt->isLocMem) { - assert(mem_pkt->BSlotBusyUntil != MaxTick); - - DPRINTF(MemCtrl, "Rd--> Start probing for B slot: Aslot addr: %x , end of tag bank busy for B slot: %d\n", - mem_pkt->getAddr(), mem_pkt->BSlotBusyUntil); - bool found = findCandidateForBSlot(mem_pkt); - DPRINTF(MemCtrl, "Rd--> B slot result: found flag: %d\n",found); - - if (found) { - stats.foundCandidBSlot++; - } else { - stats.noCandidBSlot++; - } - } } // switching to writes, either because the read queue is empty @@ -1266,6 +1208,9 @@ MemCtrl::processNextReqEvent(MemInterface* mem_intr, if (!write_found) { DPRINTF(MemCtrl, "No Writes Found - exiting\n"); return; + + DPRINTF(DRAMT, "No Writes Found - exiting\n"); + return; } auto mem_pkt = *to_write; @@ -1273,12 +1218,13 @@ MemCtrl::processNextReqEvent(MemInterface* mem_intr, // sanity check assert(pktSizeCheck(mem_pkt, mem_intr)); - DPRINTF(MemCtrl, "Write pkt chosen before doburst: %x\n", mem_pkt->getAddr()); - Tick cmd_at = doBurstAccess(mem_pkt, mem_intr); DPRINTF(MemCtrl, - "Command for %x, issued at %lld.\n", mem_pkt->addr, cmd_at); + "Command for %d, issued at %lld.\n", mem_pkt->addr, cmd_at); + + DPRINTF(DRAMT, + "Command for %d, issued at %lld.\n", mem_pkt->addr, cmd_at); if (mem_pkt->isTagCheck) { DPRINTF(MemCtrl, "write times: %x, %s: tag: %d data: %d \n", mem_pkt->addr, mem_pkt->pkt->cmdString(), mem_pkt->tagCheckReady, mem_pkt->readyTime); @@ -1289,36 +1235,15 @@ MemCtrl::processNextReqEvent(MemInterface* mem_intr, isInWriteQueue.erase(burstAlign(mem_pkt->addr, mem_intr)); // log the response - DPRINTF(MemCtrl, "logResponse wr1: %d %d %x %d\n", - mem_pkt->requestorId(), - mem_pkt->qosValue(), mem_pkt->getAddr(), - mem_pkt->readyTime - mem_pkt->entryTime); - logResponse(MemCtrl::WRITE, mem_pkt->requestorId(), mem_pkt->qosValue(), mem_pkt->getAddr(), 1, mem_pkt->readyTime - mem_pkt->entryTime); - + mem_intr->writeQueueSize--; // remove the request from the queue - the iterator is no longer valid writeQueue[mem_pkt->qosValue()].erase(to_write); - // Tag probing B slot comes here. - if (mem_pkt->isLocMem) { - assert(mem_pkt->BSlotBusyUntil != MaxTick); - - DPRINTF(MemCtrl, "WR--> Start probing for B slot: Aslot addr: %x , end of tag bank busy for B slot: %d\n", - mem_pkt->getAddr(), mem_pkt->BSlotBusyUntil); - bool found = findCandidateForBSlot(mem_pkt); - DPRINTF(MemCtrl, "WR--> B slot result: found flag: %d\n",found); - - if (found) { - stats.foundCandidBSlot++; - } else { - stats.noCandidBSlot++; - } - } - delete mem_pkt; // If we emptied the write queue, or got sufficiently below the @@ -1520,6 +1445,8 @@ MemCtrl::handleTCforBSlotPkt(MemPacketQueue::iterator BslotPktIt, Tick BSlotTagB return; } + + } MemCtrl::CtrlStats::CtrlStats(MemCtrl &_ctrl) @@ -1568,6 +1495,17 @@ MemCtrl::CtrlStats::CtrlStats(MemCtrl &_ctrl) "Reads before turning the bus around for writes"), ADD_STAT(wrPerTurnAround, statistics::units::Count::get(), "Writes before turning the bus around for reads"), + + ADD_STAT(noCandidBSlot, statistics::units::Count::get(), + " "), + ADD_STAT(foundCandidBSlot, statistics::units::Count::get(), + " "), + ADD_STAT(foundCandidBSlotRH, statistics::units::Count::get(), + " "), + ADD_STAT(foundCandidBSlotRMC, statistics::units::Count::get(), + " "), + ADD_STAT(foundCandidBSlotRMD, statistics::units::Count::get(), + " "), ADD_STAT(bytesReadWrQ, statistics::units::Byte::get(), "Total number of bytes read from write queue"), @@ -1612,15 +1550,7 @@ MemCtrl::CtrlStats::CtrlStats(MemCtrl &_ctrl) "Per-requestor read average memory access latency"), ADD_STAT(requestorWriteAvgLat, statistics::units::Rate< statistics::units::Tick, statistics::units::Count>::get(), - "Per-requestor write average memory access latency"), - - ADD_STAT(deltaAbSlotRdH, statistics::units::Tick::get(), "stat"), - ADD_STAT(deltaAbSlotRdMD, statistics::units::Tick::get(), "stat"), - - ADD_STAT(avgDeltaAbSlotRdH, statistics::units::Rate< - statistics::units::Tick, statistics::units::Count>::get(), "stat"), - ADD_STAT(avgDeltaAbSlotRdMD, statistics::units::Rate< - statistics::units::Tick, statistics::units::Count>::get(), "stat") + "Per-requestor write average memory access latency") { } @@ -1652,9 +1582,6 @@ MemCtrl::CtrlStats::regStats() avgWrBWSys.precision(8); avgGap.precision(2); - avgDeltaAbSlotRdH.precision(2); - avgDeltaAbSlotRdMD.precision(2); - // per-requestor bytes read and written to memory requestorReadBytes .init(max_requestors) @@ -1721,11 +1648,6 @@ MemCtrl::CtrlStats::regStats() requestorWriteRate = requestorWriteBytes / simSeconds; requestorReadAvgLat = requestorReadTotalLat / requestorReadAccesses; requestorWriteAvgLat = requestorWriteTotalLat / requestorWriteAccesses; - - avgDeltaAbSlotRdH = (deltaAbSlotRdH/foundCandidBSlotRH)/1000; - avgDeltaAbSlotRdMD = (deltaAbSlotRdMD/foundCandidBSlotRMD)/1000; - - } void diff --git a/src/mem/mem_ctrl.hh b/src/mem/mem_ctrl.hh index 1e3d6ef8f6..d98cc6a5ef 100644 --- a/src/mem/mem_ctrl.hh +++ b/src/mem/mem_ctrl.hh @@ -163,11 +163,7 @@ class MemPacket */ bool isTagCheck = false; Tick tagCheckReady = MaxTick; - bool isLocMem = false; - Tick BSlotBusyUntil = MaxTick; - bool probedRdH = false; - bool probedRdMC = false; - bool probedRdMD = false; + /** @@ -634,6 +630,12 @@ class MemCtrl : public qos::MemCtrl statistics::Histogram rdPerTurnAround; statistics::Histogram wrPerTurnAround; + statistics::Scalar noCandidBSlot; + statistics::Scalar foundCandidBSlot; + statistics::Scalar foundCandidBSlotRH; + statistics::Scalar foundCandidBSlotRMC; + statistics::Scalar foundCandidBSlotRMD; + statistics::Scalar bytesReadWrQ; statistics::Scalar bytesReadSys; statistics::Scalar bytesWrittenSys; @@ -663,12 +665,6 @@ class MemCtrl : public qos::MemCtrl // per-requestor raed and write average memory access latency statistics::Formula requestorReadAvgLat; statistics::Formula requestorWriteAvgLat; - - statistics::Scalar deltaAbSlotRdH; - statistics::Scalar deltaAbSlotRdMD; - - statistics::Formula avgDeltaAbSlotRdH; - statistics::Formula avgDeltaAbSlotRdMD; }; CtrlStats stats; @@ -835,12 +831,6 @@ class MemCtrl : public qos::MemCtrl void updateOldestWriteAge(); - bool findCandidateForBSlot(MemPacket* AslotPkt); - - void handleTCforBSlotPkt(MemPacketQueue::iterator BslotPktIt, Tick BSlotTagBankBusyUntil); - - MemPacketQueue::iterator searchReadQueueForBSlot(MemPacketQueue& queue, MemPacket* AslotPkt); - Port &getPort(const std::string &if_name, PortID idx=InvalidPortID) override; diff --git a/src/mem/mem_interface.hh b/src/mem/mem_interface.hh index ee7f75c61b..6daa6f4bf8 100644 --- a/src/mem/mem_interface.hh +++ b/src/mem/mem_interface.hh @@ -97,13 +97,14 @@ class MemInterface : public AbstractMemory Tick wrAllowedAt; Tick preAllowedAt; Tick actAllowedAt; + Tick tagActAllowedAt; uint32_t rowAccesses; uint32_t bytesAccessed; Bank() : openRow(NO_ROW), bank(0), bankgr(0), - rdAllowedAt(0), wrAllowedAt(0), preAllowedAt(0), actAllowedAt(0), + rdAllowedAt(0), wrAllowedAt(0), preAllowedAt(0), actAllowedAt(0), tagActAllowedAt(0), rowAccesses(0), bytesAccessed(0) { } }; @@ -423,6 +424,7 @@ class MemInterface : public AbstractMemory virtual void updateTagActAllowed(unsigned rankNumber, unsigned bankNumber, Tick BSlotTagAllowedAt) { panic("MemInterface updateTagActAllowed should not be executed from here.\n"); } + typedef MemInterfaceParams Params; MemInterface(const Params &_p); diff --git a/src/mem/packet.hh b/src/mem/packet.hh index d2b0ad0b74..57f46f56f7 100644 --- a/src/mem/packet.hh +++ b/src/mem/packet.hh @@ -298,6 +298,7 @@ class Packet : public Printable, public Extensible typedef gem5::Flags Flags; bool isTagCheck = false; + bool isLocMem = false; bool owIsRead = false; bool isHit = false; bool isDirty = false; diff --git a/src/mem/policy_manager.cc b/src/mem/policy_manager.cc index f4dc81cd30..73e23dee6d 100644 --- a/src/mem/policy_manager.cc +++ b/src/mem/policy_manager.cc @@ -20,7 +20,7 @@ PolicyManager::PolicyManager(const PolicyManagerParams &p): farReqPort(name() + ".far_req_port", *this), locBurstSize(p.loc_burst_size), farBurstSize(p.far_burst_size), - locMemPolicy(p.loc_mem_policy), + // locMemPolicy(p.loc_mem_policy), locMem(p.loc_mem), replacementPolicy(p.replacement_policy), dramCacheSize(p.dram_cache_size), @@ -52,8 +52,6 @@ PolicyManager::PolicyManager(const PolicyManagerParams &p): { panic_if(orbMaxSize<8, "ORB maximum size must be at least 8.\n"); - locMemPolicy = p.loc_mem_policy; - locMem->setPolicyManager(this); unsigned numOfSets = dramCacheSize/(blockSize * assoc); @@ -143,6 +141,19 @@ PolicyManager::findInORB(Addr addr) return found; } +unsigned +PolicyManager::findDupInORB(Addr addr) +{ + unsigned count=0; + for (const auto& e : ORB) { + if (e.second->owPkt->getAddr() == addr) { + + count++; + } + } + return count; +} + void PolicyManager::init() { @@ -420,9 +431,8 @@ PolicyManager::processTagCheckEvent() { // sanity check for the chosen packet auto orbEntry = ORB.at(pktTagCheck.front()); - assert(orbEntry->pol == enums::Rambus || orbEntry->pol == enums::RambusTagProbOpt); + assert(orbEntry->pol == enums::Rambus); assert(orbEntry->validEntry); - findInORB(orbEntry->owPkt->getAddr()); assert(orbEntry->state == tagCheck); assert(!orbEntry->issued); @@ -440,6 +450,7 @@ PolicyManager::processTagCheckEvent() } tagCheckPktPtr->isTagCheck = true; + tagCheckPktPtr->isLocMem = true; tagCheckPktPtr->owIsRead = orbEntry->owPkt->isRead(); tagCheckPktPtr->isHit = orbEntry->isHit; tagCheckPktPtr->isDirty = orbEntry->prevDirty; @@ -451,24 +462,23 @@ PolicyManager::processTagCheckEvent() tagCheckPktPtr->isHit = alwaysHit; } - if (tagCheckPktPtr->owIsRead && !tagCheckPktPtr->isHit) { + if (tagCheckPktPtr->owIsRead && !tagCheckPktPtr->isHit && !tagCheckPktPtr->isDirty) { + assert(tagCheckPktPtr->dirtyLineAddr == -1); + } - if (!tagCheckPktPtr->isDirty) { - assert(tagCheckPktPtr->dirtyLineAddr == -1); - } else { - assert(tagCheckPktPtr->dirtyLineAddr != -1); - } + if (tagCheckPktPtr->owIsRead && !tagCheckPktPtr->isHit && tagCheckPktPtr->isDirty) { + assert(tagCheckPktPtr->dirtyLineAddr != -1); } if (locReqPort.sendTimingReq(tagCheckPktPtr)) { - DPRINTF(PolicyManager, "Tag check req sent for adr: %lld\n", tagCheckPktPtr->getAddr()); + DPRINTF(PolicyManager, "tag check req sent for adr: %lld\n", tagCheckPktPtr->getAddr()); orbEntry->state = waitingTCtag; orbEntry->issued = true; orbEntry->tagCheckIssued = curTick(); pktTagCheck.pop_front(); polManStats.sentTagCheckPort++; } else { - DPRINTF(PolicyManager, "Sending tag check failed for adr: %lld\n", tagCheckPktPtr->getAddr()); + DPRINTF(PolicyManager, "sending tag check failed for adr: %lld\n", tagCheckPktPtr->getAddr()); retryTagCheck = true; delete tagCheckPktPtr; polManStats.failedTagCheckPort++; @@ -493,7 +503,7 @@ PolicyManager::processLocMemReadEvent() PacketPtr rdLocMemPkt = getPacket(pktLocMemRead.front(), blockSize, MemCmd::ReadReq); - + rdLocMemPkt->isLocMem = true; if (locReqPort.sendTimingReq(rdLocMemPkt)) { DPRINTF(PolicyManager, "loc mem read is sent : %lld--> %d, %d, %d, %d, %d, %d\n", rdLocMemPkt->getAddr(), ORB.size(), pktLocMemRead.size(), pktLocMemWrite.size(), pktFarMemRead.size(), pktFarMemWrite.size(), CRB.size()); @@ -519,7 +529,7 @@ PolicyManager::processLocMemWriteEvent() { // sanity check for the chosen packet auto orbEntry = ORB.at(pktLocMemWrite.front()); - DPRINTF(PolicyManager, "loc mem write START : %lld--> %d, %d, %d, %d, %d, %d, %d:\n", orbEntry->owPkt->getAddr(), ORB.size(), pktLocMemRead.size(), + DPRINTF(PolicyManager, "loc mem read START : %lld--> %d, %d, %d, %d, %d, %d, %d:\n", orbEntry->owPkt->getAddr(), ORB.size(), pktLocMemRead.size(), pktLocMemWrite.size(), pktFarMemRead.size(), pktFarMemWrite.size(), CRB.size(), orbEntry->state); assert(orbEntry->validEntry); assert(orbEntry->state == locMemWrite); @@ -528,6 +538,7 @@ PolicyManager::processLocMemWriteEvent() PacketPtr wrLocMemPkt = getPacket(pktLocMemWrite.front(), blockSize, MemCmd::WriteReq); + wrLocMemPkt->isLocMem = true; assert(!wrLocMemPkt->isTagCheck); if (locReqPort.sendTimingReq(wrLocMemPkt)) { @@ -626,26 +637,11 @@ PolicyManager::locMemRecvTimingResp(PacketPtr pkt) { DPRINTF(PolicyManager, "locMemRecvTimingResp : %d: %s\n", pkt->getAddr(), pkt->cmdString()); - // either read miss dirty data, - // or read miss clean FB data, - // or stall and send from FB - if ((locMemPolicy == enums::Rambus || locMemPolicy == enums::RambusTagProbOpt) - && !pkt->isTagCheck && pkt->hasDirtyData) { + if (locMemPolicy == enums::Rambus && !pkt->isTagCheck && pkt->hasDirtyData) { DPRINTF(PolicyManager, "locMemRecvTimingResp: rd miss data async %d:\n", pkt->getAddr()); assert(pkt->owIsRead); assert(!pkt->isHit); handleDirtyCacheLine(pkt->dirtyLineAddr); - if (pkt->isDirty && locMemPolicy == enums::RambusTagProbOpt) { - auto orbEntry = ORB.at(pkt->getAddr()); - assert(!orbEntry->rcvdLocRdResp); - orbEntry->rcvdLocRdResp = true; - if (orbEntry->rcvdLocRdResp && orbEntry->rcvdFarRdResp) { - orbEntry->state = locMemWrite; - orbEntry->locWrEntered = curTick(); - orbEntry->issued = false; - handleNextState(orbEntry); - } - } delete pkt; return true; } @@ -659,13 +655,13 @@ PolicyManager::locMemRecvTimingResp(PacketPtr pkt) if(pkt->isTagCheck) { - assert(orbEntry->pol == enums::Rambus || orbEntry->pol == enums::RambusTagProbOpt); + assert(orbEntry->pol == enums::Rambus); assert(orbEntry->state == waitingTCtag); if (pkt->hasDirtyData) { assert(orbEntry->owPkt->isRead()); assert(!orbEntry->isHit); - if (!orbEntry->prevDirty) { // rd miss clean with FB dirty data + if (!orbEntry->prevDirty) { // clean assert(orbEntry->dirtyLineAddr == -1); assert(!orbEntry->handleDirtyLine); orbEntry->handleDirtyLine = true; @@ -678,14 +674,7 @@ PolicyManager::locMemRecvTimingResp(PacketPtr pkt) // Rd Miss Dirty if (orbEntry->owPkt->isRead() && !orbEntry->isHit && orbEntry->prevDirty) { - if (locMemPolicy == enums::Rambus) { - // This assert is true only for Rambus policy. - // for RambusTagProbOpt it can be either true or false, - // since a Rd MD TC packet may or may not be probed - // and will carry a dirty flag or not. If it is probed, - // this flag will be set later! not when TC is sent! - assert(pkt->hasDirtyData); - } + assert(pkt->hasDirtyData); assert(orbEntry->handleDirtyLine); assert(orbEntry->dirtyLineAddr != -1); } @@ -714,7 +703,7 @@ PolicyManager::locMemRecvTimingResp(PacketPtr pkt) orbEntry->locRdExit = curTick(); } - if (orbEntry->pol == enums::Rambus || orbEntry->pol == enums::RambusTagProbOpt) { + if (orbEntry->pol == enums::Rambus) { assert(orbEntry->state == waitingLocMemReadResp); assert(orbEntry->isHit); assert(!pkt->hasDirtyData); @@ -741,7 +730,7 @@ PolicyManager::locMemRecvTimingResp(PacketPtr pkt) orbEntry->locWrExit = curTick(); } - if (orbEntry->pol == enums::Rambus || orbEntry->pol == enums::RambusTagProbOpt) { + if (orbEntry->pol == enums::Rambus) { if (orbEntry->state == waitingLocMemWriteResp) { assert(orbEntry->owPkt->isRead()); assert(!orbEntry->isHit); @@ -782,6 +771,7 @@ PolicyManager::farMemRecvTimingResp(PacketPtr pkt) DPRINTF(PolicyManager, "farMemRecvTimingResp : %lld , %s \n", pkt->getAddr(), pkt->cmdString()); if (pkt->isRead()) { + auto orbEntry = ORB.at(pkt->getAddr()); DPRINTF(PolicyManager, "farMemRecvTimingResp : continuing to far read resp: %d\n", @@ -789,12 +779,6 @@ PolicyManager::farMemRecvTimingResp(PacketPtr pkt) assert(orbEntry->state == waitingFarMemReadResp); - if (locMemPolicy == enums::RambusTagProbOpt && - !orbEntry->isHit && orbEntry->prevDirty) { - assert(!orbEntry->rcvdFarRdResp); - orbEntry->rcvdFarRdResp = true; - } - orbEntry->farRdExit = curTick(); // IMPORTANT: @@ -824,7 +808,6 @@ void PolicyManager::locMemRecvReqRetry() { // assert(retryLocMemRead || retryLocMemWrite); - DPRINTF(PolicyManager, "locMemRecvReqRetry start: %d, %d , %d \n", retryTagCheck, retryLocMemRead, retryLocMemWrite); bool schedTC = false; bool schedRd = false; bool schedWr = false; @@ -832,7 +815,7 @@ PolicyManager::locMemRecvReqRetry() if (retryTagCheck) { if (!tagCheckEvent.scheduled() && !pktTagCheck.empty()) { - assert(locMemPolicy == enums::Rambus || locMemPolicy == enums::RambusTagProbOpt); + assert(locMemPolicy == enums::Rambus); schedule(tagCheckEvent, curTick()); } retryTagCheck = false; @@ -860,7 +843,7 @@ PolicyManager::locMemRecvReqRetry() // TODO: there are cases where none of retryLocMemRead and retryLocMemWrite // are true, yet locMemRecvReqRetry() is called. I should fix this later. - if ((locMemPolicy == enums::Rambus || locMemPolicy == enums::RambusTagProbOpt) && !tagCheckEvent.scheduled() && !pktTagCheck.empty()) { + if (locMemPolicy == enums::Rambus && !tagCheckEvent.scheduled() && !pktTagCheck.empty()) { schedule(tagCheckEvent, curTick()); } if (!locMemReadEvent.scheduled() && !pktLocMemRead.empty()) { @@ -871,7 +854,7 @@ PolicyManager::locMemRecvReqRetry() } } - DPRINTF(PolicyManager, "locMemRecvReqRetry end: %d, %d , %d \n", schedTC, schedRd, schedWr); + DPRINTF(PolicyManager, "locMemRecvReqRetry: %d, %d , %d \n", schedTC, schedRd, schedWr); } void @@ -999,9 +982,6 @@ PolicyManager::setNextState(reqBufferEntry* orbEntry) orbEntry->issued, orbEntry->isHit, orbEntry->conflict, - orbEntry->prevDirty, - orbEntry->rcvdLocRdResp, - orbEntry->rcvdFarRdResp, orbEntry->dirtyLineAddr, orbEntry->handleDirtyLine, orbEntry->tagCheckEntered, @@ -1127,9 +1107,6 @@ PolicyManager::setNextState(reqBufferEntry* orbEntry) orbEntry->issued, orbEntry->isHit, orbEntry->conflict, - orbEntry->prevDirty, - orbEntry->rcvdLocRdResp, - orbEntry->rcvdFarRdResp, orbEntry->dirtyLineAddr, orbEntry->handleDirtyLine, orbEntry->tagCheckEntered, @@ -1246,9 +1223,6 @@ PolicyManager::setNextState(reqBufferEntry* orbEntry) orbEntry->issued, orbEntry->isHit, orbEntry->conflict, - orbEntry->prevDirty, - orbEntry->rcvdLocRdResp, - orbEntry->rcvdFarRdResp, orbEntry->dirtyLineAddr, orbEntry->handleDirtyLine, orbEntry->tagCheckEntered, @@ -1378,9 +1352,6 @@ PolicyManager::setNextState(reqBufferEntry* orbEntry) orbEntry->issued, orbEntry->isHit, orbEntry->conflict, - orbEntry->prevDirty, - orbEntry->rcvdLocRdResp, - orbEntry->rcvdFarRdResp, orbEntry->dirtyLineAddr, orbEntry->handleDirtyLine, orbEntry->tagCheckEntered, @@ -1418,136 +1389,6 @@ PolicyManager::setNextState(reqBufferEntry* orbEntry) // do nothing return; } - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // RambusTagProbOpt - // start --> read tag - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->state == start) { - orbEntry->state = tagCheck; - orbEntry->tagCheckEntered = curTick(); - return; - } - - // tag ready - // read && hit --> wait for data - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->state == waitingTCtag && - orbEntry->owPkt->isRead() && - orbEntry->isHit) { - // do nothing - return; - } - - // tag ready - // read && miss --> don't wait for dirty data (MC with FB>0/MD), transition to far read - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->state == waitingTCtag && - orbEntry->owPkt->isRead() && - !orbEntry->isHit) { - orbEntry->state = farMemRead; - orbEntry->farRdEntered = curTick(); - return; - } - - // tag ready - // write --> done - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->state == waitingTCtag && - orbEntry->owPkt->isWrite()) { - // done, do nothing and return; - return; - } - - // tag ready && read && hit --> DONE - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->state == waitingLocMemReadResp) { - assert(orbEntry->isHit); - assert(orbEntry->owPkt->isRead()); - // done - // do nothing - return; - } - - // tag ready && read && hit --> DONE - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->state == locRdRespReady) { - assert(orbEntry->isHit); - assert(orbEntry->owPkt->isRead()); - // done - // do nothing - return; - } - - // far read resp ready && read && miss --> loc write - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->state == waitingFarMemReadResp) { - - assert(orbEntry->owPkt->isRead()); - assert(!orbEntry->isHit); - - PacketPtr copyOwPkt = new Packet(orbEntry->owPkt, - false, - orbEntry->owPkt->isRead()); - - accessAndRespond(orbEntry->owPkt, - frontendLatency + backendLatency + backendLatency); - ORB.at(copyOwPkt->getAddr()) = new reqBufferEntry( - orbEntry->validEntry, - orbEntry->arrivalTick, - orbEntry->tagDC, - orbEntry->indexDC, - orbEntry->wayNum, - copyOwPkt, - orbEntry->pol, - orbEntry->state, - orbEntry->issued, - orbEntry->isHit, - orbEntry->conflict, - orbEntry->prevDirty, - orbEntry->rcvdLocRdResp, - orbEntry->rcvdFarRdResp, - orbEntry->dirtyLineAddr, - orbEntry->handleDirtyLine, - orbEntry->tagCheckEntered, - orbEntry->tagCheckIssued, - orbEntry->tagCheckExit, - orbEntry->locRdEntered, - orbEntry->locRdIssued, - orbEntry->locRdExit, - orbEntry->locWrEntered, - orbEntry->locWrIssued, - orbEntry->locWrExit, - orbEntry->farRdEntered, - orbEntry->farRdIssued, - orbEntry->farRdExit); - delete orbEntry; - - orbEntry = ORB.at(copyOwPkt->getAddr()); - - polManStats.totPktRespTime += ((curTick() - orbEntry->arrivalTick)/1000); - polManStats.totPktRespTimeRd += ((curTick() - orbEntry->arrivalTick)/1000); - - if (orbEntry->prevDirty && orbEntry->rcvdLocRdResp && orbEntry->rcvdFarRdResp) { - orbEntry->state = locMemWrite; - orbEntry->locWrEntered = curTick(); - } else if (!orbEntry->prevDirty) { - orbEntry->state = locMemWrite; - orbEntry->locWrEntered = curTick(); - } - - return; - } - - // loc write received - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->state == waitingLocMemWriteResp) { - assert(orbEntry->owPkt->isRead()); - assert(!orbEntry->isHit); - // done - // do nothing - return; - } } void @@ -1597,9 +1438,6 @@ PolicyManager::handleNextState(reqBufferEntry* orbEntry) orbEntry->issued, orbEntry->isHit, orbEntry->conflict, - orbEntry->prevDirty, - orbEntry->rcvdLocRdResp, - orbEntry->rcvdFarRdResp, orbEntry->dirtyLineAddr, orbEntry->handleDirtyLine, orbEntry->tagCheckEntered, @@ -1717,9 +1555,6 @@ PolicyManager::handleNextState(reqBufferEntry* orbEntry) orbEntry->issued, orbEntry->isHit, orbEntry->conflict, - orbEntry->prevDirty, - orbEntry->rcvdLocRdResp, - orbEntry->rcvdFarRdResp, orbEntry->dirtyLineAddr, orbEntry->handleDirtyLine, orbEntry->tagCheckEntered, @@ -1834,9 +1669,6 @@ PolicyManager::handleNextState(reqBufferEntry* orbEntry) orbEntry->issued, orbEntry->isHit, orbEntry->conflict, - orbEntry->prevDirty, - orbEntry->rcvdLocRdResp, - orbEntry->rcvdFarRdResp, orbEntry->dirtyLineAddr, orbEntry->handleDirtyLine, orbEntry->tagCheckEntered, @@ -1960,9 +1792,6 @@ PolicyManager::handleNextState(reqBufferEntry* orbEntry) orbEntry->issued, orbEntry->isHit, orbEntry->conflict, - orbEntry->prevDirty, - orbEntry->rcvdLocRdResp, - orbEntry->rcvdFarRdResp, orbEntry->dirtyLineAddr, orbEntry->handleDirtyLine, orbEntry->tagCheckEntered, @@ -2050,144 +1879,6 @@ PolicyManager::handleNextState(reqBufferEntry* orbEntry) return; } - - //////////////////////////////////////////////////////////////////////// - // RambusTagProbOpt - - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->state == tagCheck) { - - pktTagCheck.push_back(orbEntry->owPkt->getAddr()); - - polManStats.avgTagCheckQLenEnq = pktTagCheck.size(); - - if (!tagCheckEvent.scheduled() && !retryTagCheck) { - schedule(tagCheckEvent, curTick()); - } - return; - } - - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->state == waitingLocMemReadResp) { - return; - } - - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->state == locRdRespReady) { - assert(orbEntry->owPkt->isRead()); - assert(orbEntry->isHit); - // DONE - // send the respond to the requestor - - PacketPtr copyOwPkt = new Packet(orbEntry->owPkt, - false, - orbEntry->owPkt->isRead()); - - accessAndRespond(orbEntry->owPkt, - frontendLatency + backendLatency); - - ORB.at(copyOwPkt->getAddr()) = new reqBufferEntry( - orbEntry->validEntry, - orbEntry->arrivalTick, - orbEntry->tagDC, - orbEntry->indexDC, - orbEntry->wayNum, - copyOwPkt, - orbEntry->pol, - orbEntry->state, - orbEntry->issued, - orbEntry->isHit, - orbEntry->conflict, - orbEntry->prevDirty, - orbEntry->rcvdLocRdResp, - orbEntry->rcvdFarRdResp, - orbEntry->dirtyLineAddr, - orbEntry->handleDirtyLine, - orbEntry->tagCheckEntered, - orbEntry->tagCheckIssued, - orbEntry->tagCheckExit, - orbEntry->locRdEntered, - orbEntry->locRdIssued, - orbEntry->locRdExit, - orbEntry->locWrEntered, - orbEntry->locWrIssued, - orbEntry->locWrExit, - orbEntry->farRdEntered, - orbEntry->farRdIssued, - orbEntry->farRdExit); - delete orbEntry; - - orbEntry = ORB.at(copyOwPkt->getAddr()); - - polManStats.totPktRespTime += ((curTick() - orbEntry->arrivalTick)/1000); - polManStats.totPktRespTimeRd += ((curTick() - orbEntry->arrivalTick)/1000); - - // clear ORB - resumeConflictingReq(orbEntry); - - return; - } - - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->owPkt->isWrite()) { - // DONE - // respond for writes is already sent to the requestor. - // clear ORB - assert(orbEntry->state == waitingTCtag); - - resumeConflictingReq(orbEntry); - - return; - } - - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->state == farMemRead) { - - assert(orbEntry->owPkt->isRead()); - assert(!orbEntry->isHit); - - // do a read from far mem - pktFarMemRead.push_back(orbEntry->owPkt->getAddr()); - - polManStats.avgFarRdQLenEnq = pktFarMemRead.size(); - - if (!farMemReadEvent.scheduled() && !retryFarMemRead) { - schedule(farMemReadEvent, curTick()); - } - return; - - } - - if (orbEntry->pol == enums::RambusTagProbOpt && - orbEntry->state == locMemWrite) { - - assert(orbEntry->owPkt->isRead()); - assert(!orbEntry->isHit); - - pktLocMemWrite.push_back(orbEntry->owPkt->getAddr()); - - polManStats.avgLocWrQLenEnq = pktLocMemWrite.size(); - - - if (!locMemWriteEvent.scheduled() && !retryLocMemWrite) { - schedule(locMemWriteEvent, curTick()); - } - return; - - } - - if (orbEntry->pol == enums::RambusTagProbOpt && - // orbEntry->owPkt->isRead() && - // !orbEntry->isHit && - orbEntry->state == waitingLocMemWriteResp) { - // DONE - // clear ORB - assert(orbEntry->owPkt->isRead()); - assert(!orbEntry->isHit); - resumeConflictingReq(orbEntry); - - return; - } } void @@ -2209,7 +1900,6 @@ PolicyManager::handleRequestorPkt(PacketPtr pkt) pkt, locMemPolicy, start, false, false, false, - false, false, false, -1, false, MaxTick, MaxTick, MaxTick, MaxTick, MaxTick, MaxTick, @@ -2264,9 +1954,6 @@ PolicyManager::handleRequestorPkt(PacketPtr pkt) orbEntry->issued, orbEntry->isHit, orbEntry->conflict, - orbEntry->prevDirty, - orbEntry->rcvdLocRdResp, - orbEntry->rcvdFarRdResp, orbEntry->dirtyLineAddr, orbEntry->handleDirtyLine, orbEntry->tagCheckEntered, @@ -2342,14 +2029,12 @@ PolicyManager::checkConflictInORB(PacketPtr pkt) sameIndex.push_back(e->first); } } - if (sameIndex.size() == assoc) { for (int i=0; iconflict = true; } return true; } - return false; } @@ -2777,7 +2462,7 @@ PolicyManager::handleDirtyCacheLine(Addr dirtyLineAddr) void PolicyManager::logStatsPolMan(reqBufferEntry* orbEntry) { - if (locMemPolicy == enums::Rambus || locMemPolicy == enums::RambusTagProbOpt) { + if (locMemPolicy == enums::Rambus) { assert(orbEntry->arrivalTick != MaxTick); assert(orbEntry->tagCheckEntered != MaxTick); assert(orbEntry->tagCheckExit != MaxTick); @@ -2790,15 +2475,6 @@ PolicyManager::logStatsPolMan(reqBufferEntry* orbEntry) polManStats.totPktLifeTimeRd += ((curTick() - orbEntry->arrivalTick)/1000); polManStats.totPktORBTimeRd += ((curTick() - orbEntry->tagCheckEntered)/1000); polManStats.totTimeTagCheckResRd += ((orbEntry->tagCheckExit - orbEntry->tagCheckEntered)/1000); - - if (orbEntry->isHit) { - polManStats.totTimeTagCheckResRdH += ((orbEntry->tagCheckExit - orbEntry->tagCheckEntered)/1000); - } else if (!orbEntry->isHit && !orbEntry->prevDirty) { - polManStats.totTimeTagCheckResRdMC += ((orbEntry->tagCheckExit - orbEntry->tagCheckEntered)/1000); - } else if (!orbEntry->isHit && orbEntry->prevDirty) { - polManStats.totTimeTagCheckResRdMD += ((orbEntry->tagCheckExit - orbEntry->tagCheckEntered)/1000); - } - } else { polManStats.totPktRespTime += ((curTick() - orbEntry->arrivalTick)/1000); polManStats.totPktRespTimeWr += ((curTick() - orbEntry->arrivalTick)/1000); @@ -3046,9 +2722,6 @@ PolicyManager::PolicyManagerStats::PolicyManagerStats(PolicyManager &_polMan) ADD_STAT(totTimeTagCheckRes, statistics::units::Tick::get(), "stat"), ADD_STAT(totTimeTagCheckResRd, statistics::units::Tick::get(), "stat"), ADD_STAT(totTimeTagCheckResWr, statistics::units::Tick::get(), "stat"), - ADD_STAT(totTimeTagCheckResRdH, statistics::units::Tick::get(), "stat"), - ADD_STAT(totTimeTagCheckResRdMC, statistics::units::Tick::get(), "stat"), - ADD_STAT(totTimeTagCheckResRdMD, statistics::units::Tick::get(), "stat"), ADD_STAT(totTimeInLocRead, statistics::units::Tick::get(), "stat"), ADD_STAT(totTimeInLocWrite, statistics::units::Tick::get(), "stat"), ADD_STAT(totTimeInFarRead, statistics::units::Tick::get(), "stat"), @@ -3080,12 +2753,6 @@ PolicyManager::PolicyManagerStats::PolicyManagerStats(PolicyManager &_polMan) statistics::units::Tick, statistics::units::Count>::get(), "stat"), ADD_STAT(avgTimeTagCheckResWr, statistics::units::Rate< statistics::units::Tick, statistics::units::Count>::get(), "stat"), - ADD_STAT(avgTimeTagCheckResRdH, statistics::units::Rate< - statistics::units::Tick, statistics::units::Count>::get(), "stat"), - ADD_STAT(avgTimeTagCheckResRdMC, statistics::units::Rate< - statistics::units::Tick, statistics::units::Count>::get(), "stat"), - ADD_STAT(avgTimeTagCheckResRdMD, statistics::units::Rate< - statistics::units::Tick, statistics::units::Count>::get(), "stat"), ADD_STAT(avgTimeInLocRead, statistics::units::Rate< statistics::units::Tick, statistics::units::Count>::get(), "stat"), ADD_STAT(avgTimeInLocWrite, statistics::units::Rate< @@ -3151,9 +2818,6 @@ PolicyManager::PolicyManagerStats::regStats() avgTimeTagCheckRes.precision(2); avgTimeTagCheckResRd.precision(2); avgTimeTagCheckResWr.precision(2); - avgTimeTagCheckResRdH.precision(2); - avgTimeTagCheckResRdMC.precision(2); - avgTimeTagCheckResRdMD.precision(2); avgTimeInLocRead.precision(2); avgTimeInLocWrite.precision(2); avgTimeInFarRead.precision(2); @@ -3187,7 +2851,7 @@ PolicyManager::PolicyManagerStats::regStats() avgPktRespTimeRd = (totPktRespTimeRd) / (readReqs); avgPktRespTimeWr = (totPktRespTimeWr) / (writeReqs); - if (polMan.locMemPolicy == enums::Rambus || polMan.locMemPolicy == enums::RambusTagProbOpt) { + if (polMan.locMemPolicy == enums::Rambus) { avgTimeTagCheckRes = (totTimeTagCheckRes) / (readReqs + writeReqs); avgTimeInLocRead = (totTimeInLocRead) / (numRdHit); } else { @@ -3198,10 +2862,6 @@ PolicyManager::PolicyManagerStats::regStats() avgTimeTagCheckResRd = (totTimeTagCheckResRd) / (readReqs); avgTimeTagCheckResWr = (totTimeTagCheckResWr) / (writeReqs); - avgTimeTagCheckResRdH = (totTimeTagCheckResRdH) / (numRdHit); - avgTimeTagCheckResRdMC = (totTimeTagCheckResRdMC) / (numRdMissClean); - avgTimeTagCheckResRdMD = (totTimeTagCheckResRdMD) / (numRdMissDirty); - avgTimeInLocWrite = (totTimeInLocWrite) / (numRdMissClean + numRdMissDirty + writeReqs); avgTimeInFarRead = (totTimeInFarRead) / (numRdMissClean + numRdMissDirty); @@ -3316,7 +2976,6 @@ PolicyManager::unserialize(CheckpointIn &cp) } } } - //std::cout << "Counters: " << num_entries << " , " << countInvalid << " , " << countValid << "\n"; } int @@ -3341,5 +3000,5 @@ PolicyManager::recvReadFlushBuffer(Addr addr) return false; } -} // namespace memory +} // namespace memory } // namespace gem5 diff --git a/src/mem/policy_manager.hh b/src/mem/policy_manager.hh index 9d4b5c6f61..eb34842da9 100644 --- a/src/mem/policy_manager.hh +++ b/src/mem/policy_manager.hh @@ -112,7 +112,7 @@ class PolicyManager : public AbstractMemory unsigned locBurstSize; unsigned farBurstSize; - enums::Policy locMemPolicy; + // enums::Policy locMemPolicy; /** * The following are basic design parameters of the unified @@ -233,18 +233,18 @@ class PolicyManager : public AbstractMemory bool issued; bool isHit; bool conflict; - bool prevDirty; + //bool fbDirtyData = false; + + Addr dirtyLineAddr; + bool handleDirtyLine; + bool prevDirty = false; // rcvdRdResp is only used for read misses, // since the data response from a tag check // may be received too late // (after rd from far mem & write to loc). // Note: writes responds are very quick, // just an ack with a frontend latency only. - bool rcvdLocRdResp; - bool rcvdFarRdResp; - Addr dirtyLineAddr; - bool handleDirtyLine; - + bool rcvdRdResp = false; // recording the tick when the req transitions into a new stats. // The subtract between each two consecutive states entrance ticks, @@ -270,7 +270,6 @@ class PolicyManager : public AbstractMemory PacketPtr _owPkt, enums::Policy _pol, reqState _state, bool _issued, bool _isHit, bool _conflict, - bool _prevDirty, bool _rcvdLocRdResp, bool _rcvdFarRdResp, Addr _dirtyLineAddr, bool _handleDirtyLine, Tick _tagCheckEntered, Tick _tagCheckIssued, Tick _tagCheckExit, Tick _locRdEntered, Tick _locRdIssued, Tick _locRdExit, @@ -282,7 +281,6 @@ class PolicyManager : public AbstractMemory owPkt( _owPkt), pol(_pol), state(_state), issued(_issued), isHit(_isHit), conflict(_conflict), - prevDirty(_prevDirty), rcvdLocRdResp(_rcvdLocRdResp), rcvdFarRdResp(_rcvdFarRdResp), dirtyLineAddr(_dirtyLineAddr), handleDirtyLine(_handleDirtyLine), tagCheckEntered(_tagCheckEntered), tagCheckIssued(_tagCheckIssued), tagCheckExit(_tagCheckExit), locRdEntered(_locRdEntered), locRdIssued(_locRdIssued), locRdExit(_locRdExit), @@ -381,6 +379,7 @@ class PolicyManager : public AbstractMemory PacketPtr getPacket(Addr addr, unsigned size, const MemCmd& cmd, Request::FlagsType flags = 0); Tick accessLatency(); bool findInORB(Addr addr); + unsigned findDupInORB(Addr addr); unsigned countTagCheckInORB(); unsigned countLocRdInORB(); @@ -484,9 +483,6 @@ class PolicyManager : public AbstractMemory statistics::Scalar totTimeTagCheckRes; statistics::Scalar totTimeTagCheckResRd; statistics::Scalar totTimeTagCheckResWr; - statistics::Scalar totTimeTagCheckResRdH; - statistics::Scalar totTimeTagCheckResRdMC; - statistics::Scalar totTimeTagCheckResRdMD; statistics::Scalar totTimeInLocRead; statistics::Scalar totTimeInLocWrite; statistics::Scalar totTimeInFarRead; @@ -506,9 +502,6 @@ class PolicyManager : public AbstractMemory statistics::Formula avgTimeTagCheckRes; statistics::Formula avgTimeTagCheckResRd; statistics::Formula avgTimeTagCheckResWr; - statistics::Formula avgTimeTagCheckResRdH; - statistics::Formula avgTimeTagCheckResRdMC; - statistics::Formula avgTimeTagCheckResRdMD; statistics::Formula avgTimeInLocRead; statistics::Formula avgTimeInLocWrite; statistics::Formula avgTimeInFarRead; diff --git a/src/python/gem5/simulate/exit_event.py b/src/python/gem5/simulate/exit_event.py index 8ee18fb371..94ecd94d45 100644 --- a/src/python/gem5/simulate/exit_event.py +++ b/src/python/gem5/simulate/exit_event.py @@ -76,8 +76,6 @@ def translate_exit_status(cls, exit_string: str) -> "ExitEvent": return ExitEvent.EXIT elif exit_string == "exiting with last active thread context": return ExitEvent.EXIT - elif exit_string == "End of DRTrace": - return ExitEvent.EXIT elif exit_string == "simulate() limit reached": return ExitEvent.MAX_TICK elif exit_string == "Tick exit reached": diff --git a/traffGen_def.py b/traffGen_def.py index dd88a899c4..19468d670e 100644 --- a/traffGen_def.py +++ b/traffGen_def.py @@ -55,7 +55,7 @@ system.loc_mem_ctrl = MemCtrl() system.loc_mem_ctrl.dram = TDRAM_32(range=AddrRange('3GiB'), in_addr_map=False, null=True) -system.mem_ctrl.loc_mem_policy = 'Rambus' +system.mem_ctrl.loc_mem_policy = 'RambusTagProbOpt' system.mem_ctrl.loc_mem = system.loc_mem_ctrl.dram system.loc_mem_ctrl.static_frontend_latency = "1ns"