diff --git a/02_activities/assignments/a1_sampling_and_reproducibility.ipynb b/02_activities/assignments/a1_sampling_and_reproducibility.ipynb index 873f5985..5cac3e02 100644 --- a/02_activities/assignments/a1_sampling_and_reproducibility.ipynb +++ b/02_activities/assignments/a1_sampling_and_reproducibility.ipynb @@ -16,7 +16,9 @@ "cell_type": "markdown", "id": "4ea73db3", "metadata": {}, - "source": [] + "source": [ + "I think there are four sampling stages in the code. The first one is at the population construction, the population is defined at 1000 people, 200 at a wedding, and 800 at a brunch, this is a predetermined frame that sets who is even eleibile to be infected or traced. The second one is at the primary infection which is at the infected_indices, the function is the np.random.choice, where the sample size is 10% pf the 1000 which is 100. The sampling frame is all 1000 people in ppl, where its a uniform distribution since each person is equally likely to be infected, and the method is random sampling without replacement. The third stage is at the primary contact tracing where the function is np.random.rand, the sample size is 20% of the 100 infected which is 20. The sampling frame here is only the infected people, and its a uniform distribution, where each infected person has a 20% independent probability of being traced. The method here is bernoulli trials where each person is independently traced with probability of 0.20. Lastly there the secondary contact tracing, where the function is the .value_counts() + threshold filter. This is not random, if an event has more than 2 traced cases all infected attendees of that event get traced. This is where bias is introduced, larger events are more likely to hit the threshold and get fully traced. " + ] }, { "cell_type": "markdown", @@ -32,6 +34,14 @@ "metadata": {}, "source": [] }, + { + "cell_type": "markdown", + "id": "1dbf6364", + "metadata": {}, + "source": [ + "At 10 repetitions the results vary a lot more between runs, the histogram shape, the spread and the peak location - it all becomes really hard to reproduce. At 100 repetitions theres still some noticeable variations between runs but its a bit more reproducible, i think there's a general trend but the exact distribution shifts each run. At 1000 repetitions its much more stable across runs, but its still not identical because there is no random seed set. " + ] + }, { "cell_type": "markdown", "id": "32603ce7", @@ -44,7 +54,9 @@ "cell_type": "markdown", "id": "77613cc3", "metadata": {}, - "source": [] + "source": [ + "I think the fix might be to set a random seed, so that you can recreate the same result with as many simulations as possible. Setting the random seed before the simulation fixes the starting state of the random number generator. The specific number is pretty arbitrary. " + ] }, { "cell_type": "markdown", @@ -56,10 +68,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "ab8587a0", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYeNJREFUeJzt3QeYVOXdP+6HJriIoqLYuyJ2xVhir1jia8HExIbGqLF3oz+NvWKNPTHWaDRq1Bg79sQudt1gFw2CYqNJn//1fd539j+7LmVhD9vu+7qGYWbOnHnmnDmz8zlPa1cqlUoJAAAAaHTtG3+VAAAAgNANAAAABVLTDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG6Agv3lL39JK664YurUqVPq3r277d1CtWvXLp122mlNXQzq2GeffdJSSy3V4j8TTfk+6jNp0qR0/PHHp8UXXzy1b98+7bTTTrPttT/55JO8bW+88cbZ9poARRK6gZkWP4jih9Err7zS4rfigw8+WEig+s9//pN/TC+77LLp2muvTX/605+m+5zXX3897bnnnvnHbufOndN8882Xttxyy3TDDTekyZMnp6I899xzeRt89913qUh//etf06WXXjrd5aIs8fma3mXTTTcttLxtxVNPPVVru8ZJomWWWSbtvffe6aOPPmrq4rVY5QBZ32W99dYrfH/eddddM/X866+/Pl1wwQVp1113TTfddFM66qijmuy7YHb75z//mTbZZJO04IILpqqqqnwc/OIXv0gPP/xwUxcNaKE6NnUBAJpL6L7yyisbPXjHD98pU6akP/zhD2m55Zab7vJ//vOf029/+9vUs2fPtNdee6Xll18+jRo1Kj3++ONpv/32S1988UX6f//v/6WiQvfpp5+eTxIUWSMfP7TffvvtdOSRR05zuV122aXWNhs9enQ66KCD0s4775wfK4ttNTv88MMPqWPH1v9n8/DDD08/+clP0sSJE9Orr76aTxQ98MAD6a233kqLLLJIam7iZFYcY83dr371q7TddtvVum+BBRZIzdUTTzyRFl100XTJJZfM9u+CJZdcMh9vceJndrvwwgvTcccdl0P3iSeemEP3Bx98kB577LF0++23p2222Wa2lwlo+Vr/rweAJvTll1/m6xkJsS+88EIO3Ouvv34+CdCtW7eax+JHabQoiB+obcVqq62WL2UjRozIoTvui5YAUzNu3Lg0xxxz5CaxjalLly6pLdhoo41y7WbYd9990worrJCDeNR2RgiZFWPGjEldu3ZNjakpgtnMWGuttab5uW2O311N1R0mauib4niLJvVnnnlm2mqrrdKjjz461e/z2amIYwaY/TQvBxpV1JLONddcaciQIelnP/tZ/n/UlkQtcojass033zz/iIjajKjpqK/J+jPPPJMOPPDANP/886e55547N3H99ttvay37j3/8I22//fa59i2aYUcT7vjBVF8T7BdffDHXMs0777z5tSO4Re1zuczl8lU2/Zyeq666Kq288sr5taMMhxxySK2m2dE/89RTT62p0Zpe/8+oZY5lbr311lqBu2zttdfOZa38MXbMMcfUNEPv1atXrqUplUq1nhfrPPTQQ9O9996bVllllbxslLuyqWSUK2p3wtJLL12zDaJpbIim7bHforllPH+llVZKV199db3v46GHHsq1RPEeYt9FrWl5P0dT8Kg1/fTTT2teY1b6sZab0EYN1Mknn5w/a1EzNXLkyPTNN9+kY489Nq266qr5cxhl2XbbbdMbb7xRb1CPbRABM37sL7zwwrk2/cMPP6y1HSv3X7n5e9SClVsHzDPPPDmojh07ttb6o9YugmuPHj3ydvmf//mf9N///neG+wTHj/1o6RC1+lG+1VdfPYfg+poxx2cgaqfjeIh9Fdv/5ZdfnsktnPJ+Dx9//HGtfRzhPI6leD9xHL7zzjv1fhfENoxjL5bbY4898mPl1h+xb+L9xPERNYh1u6rccsstqU+fPmnOOefM3Sx++ctfps8+++xHr1P+DEXtfCwX+6Cu+EzEa8Vnomz8+PH5GI0WFbGt4liKfsxxf6W4Hc2ro5zl/ff555+nIpU/23HdWP2dZ+QzW17/k08+mfdp+TgtlyP2XTQJj++Q2J7xmYzv6rrfz7PyXTC19xi17+XPXZR9xx13TNXV1Q1+j1MTJ/bic7LBBhvU+3h8/zX0uGzIfpxdx8z777+f+vXrlxZaaKG8rsUWWywv9/33309z+wAzT0030Ogi9Ea42XjjjdOAAQNyiIzQFz+UTjrppPwjIgLNNddck8N01OxG0KsUy8ePpfgBNXjw4Bzw4sdZ+QdMiB8r8QPl6KOPztfxg+yUU07JP5qiL2LZwIED8wmA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Mfv2qFGj0iKLLJJnJJkaoTulHLiNHgsAAEBDffbZZ2mxxRab6uNCd0q5hru8seaee+4Gb2QAAADalpEjR+bK23KenBqhO4Zw/78m5RG4hW4AAABm1PS6KBtIDQAAAAoidAMAAEBBhG4AAAAoiD7dAADQjE2ePDlNnDixqYsBbU6nTp1Shw4dZnk9QjcAADTTOYCHDRuWvvvuu6YuCrRZ3bt3TwsttNB0B0ubFqEbAACaoXLgXnDBBVNVVdUs/egHGn7Sa+zYsenLL7/MtxdeeOE0s4RuAABohk3Ky4F7/vnnb+riQJs055xz5usI3nEszmxTcwOpAQBAM1Puwx013EDTKR+DszKugtANAADNlCbl0PKPQaEbAAAACqJPNwAAtCBDhgxJI0aMmG2v16NHj7TEEksUPmjcXnvtlZ577rk8TVNRI7bfeOON6cgjj2zSEeFjgK4DDzww3XXXXenbb79Nr732WlpjjTVSW3DjDGz/0047Ld17773p9ddfz7f32WefvHzc11IJ3QAA0IICd69evdO4cWNn22t26VKVBg+unuHgPTMh6ZJLLklffPFFDlrzzDNPagxLLbVUDnhxKdttt93Sdtttl5rSww8/nMPnU089lZZZZpl8UqMpnXDCCXlf/ec//6m5L/7fu3fv1L9//1zWsvh/nDCI/VseZKxof/jDH/KJipZM6AYAgBYiargjcPfufUuqqupd+OuNHVudqqv3zK9bZG33hx9+mPr06ZOWX375VKQIirMrLE7rvcb0Uz/96U+nusyECRPSHHPMMVvKs9lmm6Xzzz8/tzaI+ajDk08+mRZffPF8YqBS3L/eeuvN1m04TyOdhGlK+nQDAEALE4G7W7e1Cr80RrDfdNNN0+GHH56OP/74NN988+VgF02IK2uk//73v6ebb745D1oVNeUhalN/85vfpAUWWCDNPffcafPNN09vvPFGrXX/85//TD/5yU9Sly5dco3xzjvvXPOan376aTrqqKPyOsuDYUVNbffu3Wut4+qrr07LLrtsDrm9evVKf/nLX2o9Hs/985//nNcdI1nHiYH77ruv5vFoIr7HHnvkckYYjcdvuOGGerdFvLfDDjsst1iI9cZ7L5f30EMPzbXy8T769u2b73/66afTOuuskzp37pyDetRKT5o0qda2jfXF8+add97Us2fPdO2116YxY8akfffd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j1rkU089NZ+YiJMaUfbYX2VR0xx9wKMvfAye1q9fv9xHPgL6zIrm7jHgXkw3FycJIsBfcMEFaYcddsgDwYVoLRCBPEZaj+VjudjWRZzMCO1K9X362piRI0fmkQS///77fLACAM0jcPfq1TuNG1f/NDe0fl26VKXBg6vbZPCOABJ9TiMEloNCUx0XbXk/0Do8++yzeXC4Dz74IJ+EaYxjsSE5Uk03ANAsRQ13BIvevW9JVVWz3lSTliVqWKur98yfA2Hv/xfbIgLw7GwBosUBLc0999yTB3SLacEiaEcrhmi+3tDA3ViEbgCgWYvA3a3b/9+/ENq6CN5ORMDURT/u6NsfLUPipFE0bY++501F6AYAAKDV2HvvvfOluTBlGAAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiIKcMAAKAFibmHR4wYMdteL+Y5bo3zgm+66aZpjTXWSJdeemlqLfbZZ5/03XffpXvvvXeG3/dSSy2VjjzyyHyhGEI3AAC0oMDdu1evNHbcuNn2mlVduqTqwYNnKHi3a9dumo+feuqp6bTTTkstQZQzwuvrr78+S+tZb731csi95pprau6L/x900EHphhtuyEG5LP7/4Ycfpn/9619pdnn55ZdT165dZ9vrtUVCNwAAtBBRwx2B+5bevVPvqqrCX6967Ni0Z3V1ft0ZCd1ffPFFzf//9re/pVNOOSUNHjy45r655pqr5v+lUilNnjw5dezYuiPJZpttlu65555a9z355JNp8cUXT0899VSt0B23+/fvP1vLt8ACC8zW12uL9OkGAIAWJgL3Wt26FX5paLBfaKGFai7zzDNPrvku3/7Pf/6TunXrlh566KHUp0+f1Llz5/Tvf/871+zuuOOOqWfPnjmU/+QnP0mPPfZYrfWOHz8+/e53v8tBNZ633HLLpeuuu67m8bfffjttu+22+fmxnr322qtWE/wxY8akvffeOz++8MILp4suumia7+PGG29Mp59+enrjjTfye4hL3FdubRDljXXNPffc6Re/+EUaPnz4NEN3nHgYNmxYzX1PP/10OuGEE3LILvv444/Tp59+mpcPn332WV539+7d03zzzZdf85NPPqlZPk5YHH300fnx+eefPx1//PH5REalGXnf0by8sol9vNc///nPaeedd05VVVVp+eWXT/fdd1+t58TtuL9Lly65vDfddFN+XjRtD/E+dthhhzTvvPPmWvSVV145Pfjgg6mtEroBAIDZJsLmeeedl6qrq9Nqq62WRo8enbbbbrv0+OOPp9deey1ts802ObBFuC2L4Hjbbbelyy67LD/vj3/8Y02teQS9zTffPK255prplVdeSQ8//HAOwRFYy4477rgcdP/xj3+kRx99NIfdV199dapl3G233dIxxxyTw2LU3scl7psyZUoOv998801e38CBA9NHH32UH5uaDTbYIHXq1CnXbod33303/fDDD2m//fZLX3/9dQ7bIR6PELv++uuniRMnpr59++aTFNHU/Nlnn83vN7bNhAkT8vIRoONEwPXXX59PXkSZ6taoN/R9l8UJh9h+b775Zt43e+yxR15/iPLuuuuuaaeddsonJQ488MB00kkn1Xr+IYcckk+UPPPMM+mtt95K559/fq1WDm1N627LAQAANCtnnHFG2mqrrWpuRy3u6quvXnP7zDPPzOExalMPPfTQ9N5776U77rgjB9wtt9wyL7PMMsvULH/FFVfkwH3OOefU3BdBNGrF47mLLLJIrhW/5ZZb0hZbbJEfj5rZxRZbbKplnHPOOXNIjKbvUUtfFmWIEBnBM9Yfbr755hzOo2901NLXFTW966yzTg68v/rVr/L1hhtumGvsf/rTn+bbSy+9dL6OwB33R1kj4EeNc7mffPT/jlrtWG7rrbfOtdMnnnhi2mWXXWr6iT/yyCM1rxsnMxr6vsuiyXuUNcR2jZMdL730Ug79ccKjV69e6YILLsiPx/+jpcHZZ59d8/w4YdKvX7+06qqr/mh/tUVqugEAgNlm7bXXrnU7wuGxxx6bevfunUNlhN2ozS7XdMdAZh06dEibbLJJveuL2taoJY7nlS8rrrhifiyarsclaofXXXfdWkE/wmJDRbkibJcDd1hppZVyueOxaY0YXm5KHtdxO8R7qry/3LQ83tMHH3yQa7rL7ynKPG7cuPx+vv/++1z7Xvme4gRB5badlfcdLRAqTxpEM/ovv/wy346m8nVPLsRJhUqHH354Ouuss3It/6mnnpprzNsyoRsAAJht6o6UHYE7arajRjWaUkfIjhrScjPqqHWelgjt0Rw9nld5ef/999PGG2+cmoMI01Hr/t///jeH6/IJhHLojoAcfbijmXz5PUW/97rvKdax++67F17eaA5fKWrb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IEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAXpWNSKAQBamnHjhqSJE0c0dTFIKY0dW523Q3X1/17Pqh49eqQllljCtgVmO6EbAOD/AvcrL/VKk6aMsz2akT333LNR1lPVpUuqHjxY8AZmO6EbACClXMMdgfusqt5p6fZVtkkTmzJ5bBrzQ3VaqXfv1LVq1vZH9dixac/q6jRixAihG5jthG4AgAoRuHt37GabNLHJKaVRKaU1qqpSt272B9ByGUgNAAAACiJ0AwAAQEGEbgAAAGjtofu8885L7dq1S0ceeWTNfePGjUuHHHJImn/++dNcc82V+vXrl4YPH17reUOGDEnbb799qqqqSgsuuGA67rjj0qRJk5rgHQAAAEAzDN0vv/xy+uMf/5hWW221WvcfddRR6Z///Ge6884709NPP52GDh2adtlll5rHJ0+enAP3hAkT0nPPPZduuummdOONN6ZTTjmlCd4FAAAANLPQPXr06LTHHnuka6+9Ns0777w193///ffpuuuuSxdffHHafPPNU58+fdINN9yQw/ULL7yQl3n00UfTu+++m2655Za0xhprpG233TadeeaZ6corr8xBHAAAANp06I7m41FbveWWW9a6f9CgQWnixIm17l9xxRXz3IrPP/98vh3Xq666aurZs2fNMn379k0jR45M77zzzlRfc/z48XmZygsAAAC0qnm6b7/99vTqq6/m5uV1DRs2LM0xxxype/fute6PgB2PlZepDNzlx8uPTc25556bTj/99EZ6FwAAANDMaro/++yzdMQRR6Rbb701denSZba+9oknnpibr5cvURYAAABoNaE7mo9/+eWXaa211kodO3bMlxgs7bLLLsv/jxrr6Jf93Xff1XpejF6+0EIL5f/Hdd3RzMu3y8vUp3PnzmnuueeudQEAAIBWE7q32GKL9NZbb6XXX3+95rL22mvnQdXK/+/UqVN6/PHHa54zePDgPEXY+uuvn2/HdawjwnvZwIEDc4heaaWVmuR9AQAAQJP36e7WrVtaZZVVat3XtWvXPCd3+f799tsvHX300Wm++ebLQfqwww7LQXu99dbLj2+99dY5XO+1115pwIABuR/3ySefnAdni9psAAAAaLMDqU3PJZdcktq3b5/69euXRxyPkcmvuuqqmsc7dOiQ7r///nTQQQflMB6hvX///umMM85o0nIDAABAswvdTz31VK3bMcBazLkdl6lZcskl04MPPjgbSgcAAAAtbJ5uAAAAaK2EbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAACN0AAADQsqjpBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIJ0LGrFANBaDRkyJI0YMaKpi9HqVVdX5+uxY//3umiz63UAaFuEbgBoYODu3atXGjtunO02m1RX7zlbt3WpNGG2vh4ArZvQDQANEDXcEbhv6d079a6qsu0KNGbs2PRudXXqOmfv1L5D8dv62Ulfp6vGfZJKUyYV/loAtB1CNwDMhAjca3XrZtsVaFRKKeJvtw5VqUPH4rf1x5PHFv4aALQ9BlIDAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAF6TgzT/roo4/SMsss0/ilAYAKQ4YMSSNGjGhW26S6ujpfjxk7No1q6sK0crGNAaBNhu7lllsubbLJJmm//fZLu+66a+rSpUvjlwyA1NYDd69evdO4cc0zeL1bXZ0mNXUh2ogppVLq0NSFAIDZGbpfffXVdMMNN6Sjjz46HXrooWm33XbLAXydddaZ2XIAQC1Rwx2Bu3fvW1JVVe9ms3XGjq1O1dV7pq5z9k7dOlQ1dXFatYmTvknjxn2cSqVSUxcFAGZv6F5jjTXSH/7wh3TRRRel++67L914441pww03TCussEL69a9/nfbaa6+0wAILzHypAOD/RODu1m2tZrc92neoSh06dmvqYrRqk6c0z1YOADDbBlLr2LFj2mWXXdKdd96Zzj///PTBBx+kY489Ni2++OJp7733Tl988cWsrB4AAADabuh+5ZVX0sEHH5wWXnjhdPHFF+fA/eGHH6aBAwemoUOHph133LHxSgoAAABtoXl5BOzo0z148OC03XbbpZtvvjlft2//vxl+6aWXzk3Ol1pqqcYuLwAAALTumu6rr7467b777unTTz9N9957b/rZz35WE7jLFlxwwXTddddNdz2rrbZamnvuufNl/fXXTw899FDN4+PGjUuHHHJImn/++dNcc82V+vXrl4YPH/6j0W233377VFVVlV/zuOOOS5MmGU8WAACAFlrT/f777093mTnmmCP1799/mssstthi6bzzzkvLL798Hpn0pptuyk3SX3vttbTyyiuno446Kj3wwAO5z/g888yTR0qPPuTPPvtsfv7kyZNz4F5ooYXSc889l/uQR1/yTp06pXPOOWdm3hoAAAA0bU13NC2PIFxX3BfBeUbtsMMOuVl6hO4Y+fzss8/ONdovvPBC+v7773NNeTRl33zzzVOfPn3y60a4jsfDo48+mt599910yy235BHVt91223TmmWemK6+8Mk2YMGFm3hoAAAA0beg+99xzU48ePX50fzTvntka5qi1vv3229OYMWNyM/NBgwaliRMnpi233LJmmRVXXDEtscQS6fnnn8+343rVVVdNPXv2rFmmb9++aeTIkemdd96ZqXIAAABAkzYvj37UMVhaXUsuuWR+rCHeeuutHLKj/3bUct9zzz1ppZVWSq+//npuot69e/day0fAHjZsWP5/XFcG7vLj5cemZvz48flSFiEdAAAAmkVNd9Rov/nmmz+6/4033siDnjVEr169csB+8cUX00EHHZT7gUeT8SJFTX30ES9fYl5xAAAAaBah+1e/+lU6/PDD05NPPpmbhcfliSeeSEcccUT65S9/2aB1RW32csstl/tsRxheffXV0x/+8Ic8OFr0y/7uu+9qLR+jl8djIa7rjmZevl1epj4nnnhi7jNevnz22WcNKjMAAAAUFrpjsLJ11103bbHFFmnOOefMl6233joPeDaro4ZPmTIlN/2OEB6jkD/++OM1j8W84NF8PZqjh7iO5ulffvllzTIDBw7M049FE/Wp6dy5c800ZeULAAAANIs+3VE7/be//S2H72hSHqE7BjSLPt0NETXOMeJ4DI42atSo9Ne//jU99dRT6ZFHHsnNvvfbb7909NFHp/nmmy8H48MOOywH7fXWWy8/P4J+hOu99torDRgwIPfjPvnkk/Pc3hGsAQAAoMWF7rKY5isuMytqqGNe7ZhfO0L2aqutlgP3VlttlR+/5JJLUvv27VO/fv1y7XeMTH7VVVfVPL9Dhw7p/vvvz33BI4x37do19wk/44wzZuVtAQAAQNOF7ujDfeONN+am3xGco0l4pejfPSNiHu5p6dKlS55zOy5TE7XrDz744AyWHAAAAJp56I4B0yJ0b7/99mmVVVZJ7dq1a/ySAQAAQFsM3bfffnu644470nbbbdf4JQIAAIC2PHp5eZovAAAAoJFD9zHHHJPn0i6VSjPzdAAAAGgTZqp5+b///e/05JNPpoceeiitvPLKeT7tSnfffXdjlQ8AAADaVuju3r172nnnnRu/NAAAANDWQ/cNN9zQ+CUBAACAVmam+nSHSZMmpcceeyz98Y9/TKNGjcr3DR06NI0ePboxywcAAABtq6b7008/Tdtss00aMmRIGj9+fNpqq61St27d0vnnn59vX3PNNY1fUgAAAGgLNd1HHHFEWnvttdO3336b5pxzzpr7o5/3448/3pjlAwAAgLZV0/2vf/0rPffcc3m+7kpLLbVU+u9//9tYZQMAAIC2V9M9ZcqUNHny5B/d//nnn+dm5gAAAMBMhu6tt946XXrppTW327VrlwdQO/XUU9N2221nuwIAAMDMNi+/6KKLUt++fdNKK62Uxo0bl3bffff0/vvvpx49eqTbbrvNhgUAAICZDd2LLbZYeuONN9Ltt9+e3nzzzVzLvd9++6U99tij1sBqAAAA0JZ1nOknduyY9txzz8YtDQAAALT10H3zzTdP8/G99957ZssDAAAAbTt0xzzdlSZOnJjGjh2bpxCrqqoSugEAAGBmRy//9ttva12iT/fgwYPThhtuaCA1AAAAmJXQXZ/ll18+nXfeeT+qBQcAAIC2qtFCd3lwtaFDhzbmKgEAAKBt9em+7777at0ulUrpiy++SFdccUXaYIMNGqtsAAAA0PZC90477VTrdrt27dICCyyQNt9883TRRRc1VtkAAACg7YXuKVOmNH5JAAAAoJVp1D7dAAAAwCzWdB999NEzvOzFF188My8BAAAAbTN0v/baa/kyceLE1KtXr3zfe++9lzp06JDWWmutWn29AQAAoK2aqdC9ww47pG7duqWbbropzTvvvPm+b7/9Nu27775po402Ssccc0xjlxMAAADaRp/uGKH83HPPrQncIf5/1llnGb0cAAAAZiV0jxw5Mn311Vc/uj/uGzVq1MysEgAAAFqdmQrdO++8c25Kfvfdd6fPP/88X/7+97+n/fbbL+2yyy6NX0oAAABoK326r7nmmnTsscem3XffPQ+mllfUsWMO3RdccEFjlxEAAADaTuiuqqpKV111VQ7YH374Yb5v2WWXTV27dm3s8gEAAEDbal5e9sUXX+TL8ssvnwN3qVRqvJIBAABAWwzdX3/9ddpiiy3SCiuskLbbbrscvEM0LzddGAAAAMxC6D7qqKNSp06d0pAhQ3JT87LddtstPfzwwzOzSgAAAGh1ZqpP96OPPpoeeeSRtNhii9W6P5qZf/rpp41VNgAAAGh7Nd1jxoypVcNd9s0336TOnTs3RrkAAACgbYbujTbaKN188801t9u1a5emTJmSBgwYkDbbbLPGLB8AAAC0reblEa5jILVXXnklTZgwIR1//PHpnXfeyTXdzz77bOOXEgAAANpKTfcqq6yS3nvvvbThhhumHXfcMTc332WXXdJrr72W5+sGAAAAZqKme+LEiWmbbbZJ11xzTTrppJNsQwAAAGismu6YKuzNN99s6NMAAACgzZmp5uV77rlnuu666xq/NAAAANDWB1KbNGlSuv7669Njjz2W+vTpk7p27Vrr8YsvvrixygcAAABtI3R/9NFHaamllkpvv/12WmuttfJ9MaBapZg+DAAAAGhg6F5++eXTF198kZ588sl8e7fddkuXXXZZ6tmzp20JAAAAs9Knu1Qq1br90EMP5enCAAAAgEYaSG1qIRwAAACYydAd/bXr9tnWhxsAAAAaoU931Gzvs88+qXPnzvn2uHHj0m9/+9sfjV5+9913N2S1AAAA0Co1KHT379//R/N1AwAAAI0Qum+44YaGLA4AAABt2iwNpAYAAABMndANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAALTG0H3uueemn/zkJ6lbt25pwQUXTDvttFMaPHhwrWXGjRuXDjnkkDT//POnueaaK/Xr1y8NHz681jJDhgxJ22+/faqqqsrrOe6449KkSZNm87sBAACAZhS6n3766RyoX3jhhTRw4MA0ceLEtPXWW6cxY8bULHPUUUelf/7zn+nOO+/Myw8dOjTtsssuNY9Pnjw5B+4JEyak5557Lt10003pxhtvTKecckoTvSsAAAD4Xx1TE3r44Ydr3Y6wHDXVgwYNShtvvHH6/vvv03XXXZf++te/ps033zwvc8MNN6TevXvnoL7eeuulRx99NL377rvpscceSz179kxrrLFGOvPMM9Pvfve7dNppp6U55pijid4dAAAAbV2z6tMdITvMN998+TrCd9R+b7nlljXLrLjiimmJJZZIzz//fL4d16uuumoO3GV9+/ZNI0eOTO+88069rzN+/Pj8eOUFAAAAWm3onjJlSjryyCPTBhtskFZZZZV837Bhw3JNdffu3WstGwE7HisvUxm4y4+XH5taX/J55pmn5rL44osX9K4AAABoy5pN6I6+3W+//Xa6/fbbC3+tE088Mdeqly+fffZZ4a8JAABA29OkfbrLDj300HT//fenZ555Ji222GI19y+00EJ5gLTvvvuuVm13jF4ej5WXeemll2qtrzy6eXmZujp37pwvAAAA0GprukulUg7c99xzT3riiSfS0ksvXevxPn36pE6dOqXHH3+85r6YUiymCFt//fXz7bh+66230pdfflmzTIyEPvfcc6eVVlppNr4bAAAAaEY13dGkPEYm/8c//pHn6i73wY5+1nPOOWe+3m+//dLRRx+dB1eLIH3YYYfloB0jl4eYYizC9V577ZUGDBiQ13HyySfndavNBgAAoM2G7quvvjpfb7rpprXuj2nB9tlnn/z/Sy65JLVv3z7169cvjzoeI5NfddVVNct26NAhN00/6KCDchjv2rVr6t+/fzrjjDNm87sBAACAZhS6o3n59HTp0iVdeeWV+TI1Sy65ZHrwwQcbuXQAAADQSkYvBwAAgNZG6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAXpWNSKAQBgVo0ZO7bR1lFdXW2HtCA9evRISyyxRFMXA2aZ0A0AQLMzpTSh0YLye/93veeee87yuph9unSpSoMHVwvetHhCNwAAzU6pNClfd+nSK3XqONcsravr5LEp/VCdeve+JVVV9W6kElKksWOrU3X1nmnEiBFCNy2e0A0AQLPVvn1V6tCx26yto9FKw+w2Iy0dNEOnuRO6AQBo1UZMmZCDd9Sc0rLMSJeAqi5dUvXgwWrEabaEbgAAWrVRpUlpSkrpjM5LpWU7zd/UxWEGTJk8No35oTqt1Lt36lpVNdXlqseOTXtWV2uGTrMmdAMA0CYs3X7O1HsWm6oze0yOkyUppTWqqlK3bvYZLZsuLgAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAFpj6H7mmWfSDjvskBZZZJHUrl27dO+999Z6vFQqpVNOOSUtvPDCac4550xbbrllev/992st880336Q99tgjzT333Kl79+5pv/32S6NHj57N7wQAAACaWegeM2ZMWn311dOVV15Z7+MDBgxIl112WbrmmmvSiy++mLp27Zr69u2bxo0bV7NMBO533nknDRw4MN1///05yB9wwAGz8V0AAABA/TqmJrTtttvmS32ilvvSSy9NJ598ctpxxx3zfTfffHPq2bNnrhH/5S9/maqrq9PDDz+cXn755bT22mvnZS6//PK03XbbpQsvvDDXoAMAAEBTabZ9uj/++OM0bNiw3KS8bJ555knrrrtuev755/PtuI4m5eXAHWL59u3b55rxqRk/fnwaOXJkrQsAAAC0mdAdgTtEzXaluF1+LK4XXHDBWo937NgxzTfffDXL1Ofcc8/NAb58WXzxxQt5DwAAALRtzTZ0F+nEE09M33//fc3ls88+a+oiAQAA0Ao129C90EIL5evhw4fXuj9ulx+L6y+//LLW45MmTcojmpeXqU/nzp3zaOeVFwAAAGgzoXvppZfOwfnxxx+vuS/6Xkdf7fXXXz/fjuvvvvsuDRo0qGaZJ554Ik2ZMiX3/QYAAIA2O3p5zKf9wQcf1Bo87fXXX899spdYYol05JFHprPOOistv/zyOYT//ve/zyOS77TTTnn53r17p2222Sbtv//+eVqxiRMnpkMPPTSPbG7kcgAAANp06H7llVfSZpttVnP76KOPztf9+/dPN954Yzr++OPzXN4x73bUaG+44YZ5irAuXbrUPOfWW2/NQXuLLbbIo5b369cvz+0NAAAAbTp0b7rppnk+7qlp165dOuOMM/JlaqJW/K9//WtBJQQAAIBW2KcbAAAAWjqhGwAAAAoidAMAAEBr7NNNwwwZMiSNGDHCZmuFevTokUfsBwAAWhehuwUF7t69eqWx48Y1dVEoQFWXLql68GDBGwAAWhmhu4WIGu4I3Lf07p16V1U1dXFoRNVjx6Y9q6vzPlbbDQAArYvQ3cJE4F6rW7emLgYAAAAzwEBqAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAABCNwAAALQsaroBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEE6FrViAFIaMmRIGjFihE0xE6qrq/P12LH/e91cNLfyAADNm9ANUGDg7t2rVxo7bpxtPAuqq/dsltuvVJrQ1EUAAFoAoRugIFHDHYH7lt69U++qKtu5gcaMHZvera5OXefsndp3aD7b79lJX6erxn2SSlMmNXVRAIAWQOgGKFgE7rW6dbOdG2hUSilibbcOValDx+az/T6ePLapiwAAtCAGUgMAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0cuBZj/XdUy91RJVV1fXTH0VI3HTMLHdAABaOqEbaNaBu1ev3mncuJYdvmKuaTM6z7wppVLq0Ij7AwBgdhK6gWYrargjcPfufUuqquqdWpqxY6tTdfWeqeucvfNc0zTMxEnfpHHjPk6lUsmmAwBaLKEbaPYicHfrtlZqqdp3qEodOnZr6mK0OJOntOwWDgAAwUBqAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAEDoBgAAgJalY1MXAAAAoD5jxo6doccffPDBVF1dbSO2Issss0xaf/31U2vQakL3lVdemS644II0bNiwtPrqq6fLL788rbPOOk1dLAAAoIGmlCbk6+kF6Rf+r7/s73//e9u4lWmfUvr3c8+1iuDdKkL33/72t3T00Uena665Jq277rrp0ksvTX379k2DBw9OCy64YFMXDwAAaIBSaVK+7tKlV+rUca6pLjd54tdpyvhP0mlzLJKW7TCPbdxKfDj5+3TahKHpo48+Erqbi4svvjjtv//+ad999823I3w/8MAD6frrr08nnHBCUxcPAACYCe3bV6UOHbtN9fF2k/+3eXkE7pU797SNW4vx8c/Q1Fq0+JruCRMmpEGDBqUTTzyx5r727dunLbfcMj3//PNNWjZoCP2Qpr5Nxo5tmX20Wmq5AQBoPC0+dI8YMSJNnjw59exZ+8xW3P7Pf/5T73PGjx+fL2Xff/99vh45cmRqrkaPHp2vB40alUZPntzUxaERPT9yZGqXUtpzzz1t16morm7Z2+btCV+kMZNGNXUxWpxJk0fmE92dJ45IHaeMSc3FR5P+92/GO5O+TT+UfB+3ps+Afdt6979923r3v33bOn00+X9z2dixY5t1RiuXrVQqTXO5dqXpLdHMDR06NC266KLpuTqd7I8//vj09NNPpxdffPFHzznttNPS6aefPptLCgAAQGvz2WefpcUWW6z11nT36NEjdejQIQ0fPrzW/XF7oYUWqvc50RQ9Bl4rmzJlSvrmm2/S/PPPn9q1izrH5nkWZfHFF887dO65527q4tCI7NvWy75tnezX1su+bb3s29bLvm2dRraQ7BP116NGjUqLLLLINJdr8aF7jjnmSH369EmPP/542mmnnWpCdNw+9NBD631O586d86VS9+7dU0sQH7rm/MFj5tm3rZd92zrZr62Xfdt62betl33bOs3dArLPPPNMf9T8Fh+6Q9Ra9+/fP6299tp5bu6YMmzMmDE1o5kDAABAU2gVoXu33XZLX331VTrllFPSsGHD0hprrJEefvjhHw2uBgAAALNTqwjdIZqST605eWsQzeFPPfXUHzWLp+Wzb1sv+7Z1sl9bL/u29bJvWy/7tnXq3MqyT4sfvRwAAACaq/ZNXQAAAABorYRuAAAAKIjQDQAAAAURupvQlVdemZZaaqnUpUuXtO6666aXXnppmsvfeeedacUVV8zLr7rqqunBBx+s9Xh0z48R3BdeeOE055xzpi233DK9//77Bb8LZse+3WeffVK7du1qXbbZZhsbvxnv13feeSf169cvLx/7K6YynNV10nL27WmnnfajYzaOcZr3vr322mvTRhttlOadd958ib+jdZf3t7b17lt/a1vefr377rvzlMHdu3dPXbt2zTMY/eUvf6m1jGO29e7bfVrS7+MYSI3Z7/bbby/NMcccpeuvv770zjvvlPbff/9S9+7dS8OHD693+WeffbbUoUOH0oABA0rvvvtu6eSTTy516tSp9NZbb9Usc95555XmmWee0r333lt64403Sv/zP/9TWnrppUs//PDDbHxnFLFv+/fvX9pmm21KX3zxRc3lm2++sbGb8X596aWXSscee2zptttuKy200EKlSy65ZJbXScvZt6eeempp5ZVXrnXMfvXVV3ZhM9+3u+++e+nKK68svfbaa6Xq6urSPvvsk/+ufv755zXL+Fvbevetv7Utb78++eSTpbvvvjv/fvrggw9Kl156af5N9fDDD9cs45htvfu2fwv6fSx0N5F11lmndMghh9Tcnjx5cmmRRRYpnXvuufUu/4tf/KK0/fbb17pv3XXXLR144IH5/1OmTMk//i644IKax7/77rtS586d8w9DWu6+LX+p7LjjjgWWmsber5WWXHLJeoPZrKyT5r1vI3SvvvrqdlMTm9VjbNKkSaVu3bqVbrrppnzb39rWu2+Dv7VNrzH+Lq655pq5AiM4Zlvvvm1px6zm5U1gwoQJadCgQblpU1n79u3z7eeff77e58T9lcuHvn371iz/8ccfp2HDhtVaZp555slNN6a2TlrGvi176qmn0oILLph69eqVDjrooPT111/bhc14vzbFOmle+yG69yyyyCJpmWWWSXvssUcaMmSIXdTC9u3YsWPTxIkT03zzzZdv+1vbevdtmb+1LXe/RmXi448/ngYPHpw23njjfJ9jtvXu25Z2zArdTWDEiBFp8uTJqWfPnrXuj9sRnOsT909r+fJ1Q9ZJy9i3Ifqn3HzzzfkL5/zzz09PP/102nbbbfNr0Tz3a1Osk+azH+KE54033pgefvjhdPXVV+cfftGfdNSoUXZTC9q3v/vd7/KJk/IPRX9rW+++Df7Wtsz9+v3336e55porzTHHHGn77bdPl19+edpqq63yY47Z1rtvW9ox27GpCwBM3y9/+cua/8dAa6uttlpadtll89m9LbbYwiaEZib+6JfF8RohfMkll0x33HFH2m+//Zq0bMyY8847L91+++35ezYG/aH171t/a1umbt26pddffz2NHj06h6+jjz46tzDadNNNm7poFLxvf9mCfh+r6W4CPXr0SB06dEjDhw+vdX/cXmihhep9Ttw/reXL1w1ZJy1j39YnvnDitT744INGKjmNvV+bYp003/0Qo6+usMIKjtkWsm8vvPDCHMweffTR/COuzN/a1rtv6+NvbcvYr9FMebnllsujWx9zzDFp1113Teeee25+zDHbevdtSztmhe4mEE0k+vTpk8/YlE2ZMiXfXn/99et9TtxfuXwYOHBgzfJLL710/tBWLjNy5Mj04osvTnWdtIx9W5/PP/8891mJ6eFonvu1KdZJ890PcZb+ww8/dMy2gH07YMCAdOaZZ+auATFdTSV/a1vvvq2Pv7Ut8/s4njN+/Pj8f8ds6923Le6YbeqR3NrysPkxsviNN96Yh8I/4IAD8rD5w4YNy4/vtddepRNOOKHWtFIdO3YsXXjhhXmqixgZt74pw2Id//jHP0pvvvlmHs3PlGEtf9+OGjUqT0/0/PPPlz7++OPSY489VlprrbVKyy+/fGncuHFN8A7bpobu1/Hjx+epaeKy8MIL530Y/3///fdneJ203H17zDHHlJ566ql8zMYxvuWWW5Z69OhR+vLLL+3WZrxv4+9oTGlz11131ZqCJr6HK5fxt7b17Vt/a1vmfj3nnHNKjz76aOnDDz/My8dvqfhNde2119Ys45htnft2VAv7fSx0N6HLL7+8tMQSS+Q/AjGM/gsvvFDz2CabbJKHwa90xx13lFZYYYW8fMz/+sADD9R6PKZF+P3vf1/q2bNn/lBvscUWpcGDB8+290Mx+3bs2LGlrbfeurTAAgvkMB5TFMXchoJZ896v8QcgzmvWvcRyM7pOWu6+3W233XIgj/Utuuii+XbMM0rz3rfx/Vrfvo2ToWX+1rbOfetvbcvcryeddFJpueWWK3Xp0qU077zzltZff/0c7io5Zlvnvh3bwn4ft4t/mrq2HQAAAFojfboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugGgDWjXrl269957m7oYadiwYWmrrbZKXbt2Td27d2/q4gBA4YRuAJiKffbZJ4fVuMwxxxxpueWWS2eccUaaNGlSs91mp512WlpjjTV+dP8XX3yRtt1229TULrnkklyW119/Pb333ntNXRwAKFzH4l8CAFqubbbZJt1www1p/Pjx6cEHH0yHHHJI6tSpUzrxxBN/tOyECRNyOG8KpVIpTZ48eaqPL7TQQqk5+PDDD1OfPn3S8ssv39RFAYDZQk03AExD586dc2Bdcskl00EHHZS23HLLdN9999XUhO+0007p7LPPTossskjq1atXvv+tt95Km2++eZpzzjnT/PPPnw444IA0evTomnWWn3f66aenBRZYIM0999zpt7/9bQ7tZRHyDz/88LTgggumLl26pA033DC9/PLLNY8/9dRTuQb+oYceyiE2ynnLLbfkdb7xxhs1NfQ33nhjvc3LZ7SMF154YVp44YXzMnHCYeLEidP8vFx99dVp2WWXzScfYnv85S9/qXlsqaWWSn//+9/TzTffnMsTrzE1119/fVp55ZXz+4rXP/TQQ2seu/jii9Oqq66am6gvvvji6eCDD65V9k8//TTtsMMOad55583LxHrihEnZ22+/nWv955prrtSzZ8+01157pREjRtQ8ftddd+X1l7dN7PMxY8ZM830DwNQI3QDQABHEKsPx448/ngYPHpwGDhyY7r///hzO+vbtmwNfhOQ777wzPfbYY7VCY/l51dXVOTzfdttt6e67786Buez444/PAfWmm25Kr776am7aHuv95ptvaq3nhBNOSOedd15eV/SVPuaYY3LIjCbccdltt91+9B5mtIxPPvlkrpmO6yhHBPhyiK/PPffck4444ohchgi2Bx54YNp3333z80O8VrQc+MUvfpHL9oc//GGqwT0CfpwIiJMDcZIj3n9Z+/bt02WXXZbeeeedXK4nnngib6+yeG6ctHjmmWfy888///wcsMN3332XTzasueaa6ZVXXkkPP/xwGj58eC5TiHL96le/Sr/+9a9r9s8uu+ySWxIAwEwpAQD16t+/f2nHHXfM/58yZUpp4MCBpc6dO5eOPfbYmsd79uxZGj9+fM1z/vSnP5XmnXfe0ujRo2vue+CBB0rt27cvDRs2rOZ58803X2nMmDE1y1x99dWlueaaqzR58uT83E6dOpVuvfXWmscnTJhQWmSRRUoDBgzIt5988slIgaV77723VplPPfXU0uqrr/6j9xLL3nPPPQ0q45JLLlmaNGlSzTI///nPS7vttttUPy0//elPS/vvv3+t++I52223Xc3t2J6x7mmJ93nSSSeVZtSdd95Zmn/++Wtur7rqqqXTTjut3mXPPPPM0tZbb13rvs8++yxvn8GDB5cGDRqU///JJ5/M8OsDwLSo6QaAaYja66gljSbe0SQ5ao5jsLKyaIZc2Y87akdXX3313Ky5bIMNNkhTpkzJNeJlsUxVVVXN7fXXXz83kf7ss89y7XI0447nlUU/8nXWWSevv9Laa6/d4P03o2WMGvMOHTrU3I5m3l9++eU011tZ5vJ665Z5WmL9Q4cOTVtsscVUl4la+Xh80UUXTd26dcvNw7/++us0duzY/Hg0yz/rrLPya5966qnpzTffrHluNL2PmvfYp+XLiiuumB+L7R7bJdYd+/XnP/95uvbaa9O33347w+UHgLqEbgCYhs022yyPtP3++++nH374ITdnrgyrlf9vCkW+fgT9StEPO4J50c33p+WTTz5JP/vZz9Jqq62Wm98PGjQoXXnllfmxcrP/3/zmN+mjjz7KYTyal8eJicsvvzw/Fic2or937NPKS+zfjTfeOJ9kiK4C0Vd+pZVWys+Lvukff/xxoe8bgNZL6AaA6YTa6E+8xBJLpI4dpz/pR+/evXNtauXAW88++2zuh1weaC3EMhHiy1544YVc6xoDg5UHIovnlUXNd/SJjiA4LfG8aY1i3pAyNlSst7LM5fVOr8yVouY6BlyLPu/1iZAdwf+iiy5K6623XlphhRVyzXhdsR1jcLroKx99zKPGOqy11lq5L3i8RuzXykv5BEacXIha8uhj/9prr+VtGv3VAWBmCN0A0Ij22GOP3BS9f//+eTCxaMp82GGH5VrXGCm7LGpl99tvv/Tuu+/mkbWjGXQMZBbBN8JfjJR+3HHH5YG+Ypn9998/N5+O50xLhMmolY3a2xiROwYUm9kyNlSUNwZai4HQouY4RhmP0Hvsscc2aD3RfD9CdQyWFuuJgeTKNdURjuMERNyO2uwYHf2aa66p9fwjjzwyPfLII3k7xHPj/cUJgfIgazEYXQyWFicxokl5LBsDvsXJihdffDGdc845eZC1IUOG5PJ/9dVXNc8HgIYSugGgEUU/7QhxEex+8pOfpF133TX3Eb7iiitqLRf3xVzV0aQ5+on/z//8T62+4jEieb9+/XIQjtrZDz74IK83RhyflnhOjBAezeJjOrIYGX1my9hQMcVYjEge04xFf/A//vGPeY7zTTfdtEHriZMBl156abrqqqvyeqI5eYTvEH2uI8zHiOSrrLJKuvXWW9O5555b6/kRniNcR1CObRG14bGuEFO7Re17LLP11lvnvtsR0rt3755PeMT0bTHq+XbbbZefd/LJJ+cTANGfHwBmRrsYTW2mngkAzJSYnzqmrqqcNxsAaJ3UdAMAAEBBhG4AAAAoiOblAAAAUBA13QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAkIrx/wFAXTiS7tqB2QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Import necessary libraries\n", "import pandas as pd\n", @@ -75,6 +98,9 @@ "import warnings\n", "warnings.simplefilter(action='ignore', category=FutureWarning)\n", "\n", + "#set random seed for reproducability \n", + "np.random.seed(123)\n", + "\n", "# Constants representing the parameters of the model\n", "ATTACK_RATE = 0.10\n", "TRACE_SUCCESS = 0.20\n", @@ -207,7 +233,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.0" + "version": "3.11.6" } }, "nbformat": 4,