{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[{"file_id":"1AB3RNlLfkZBSZKu6_Wh20CkIpbxfJIve","timestamp":1663461789208}],"collapsed_sections":[],"authorship_tag":"ABX9TyN3dFGP4aBwtu8ODQzzgwT+"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"markdown","source":["#計算機程式設計二\n","#第四週上課內容\n","\n","## 主題：演算法 (Algorithms)、資料結構 (Data Structures)、Josephus Problem"],"metadata":{"id":"9xoK4OIjIfZA"}},{"cell_type":"markdown","source":["###GitHub 教材參考資料\n","\n","[i2p-nthu 程式設計二 Josephus Problem](https://github.com/htchen/i2p-nthu/blob/master/%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88%E4%BA%8C/mid1/3-josephus_problem.md)\n","\n","\n","\n"],"metadata":{"id":"05G1Fqg6GRZX"}},{"cell_type":"markdown","source":["![image.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUoAAAE/CAYAAAAgxop3AAAIQmlDQ1BJQ0MgUHJvZmlsZQAASIntl3s0lPsax593ZsyMwbiMy7g2FLnnUi4Zci1Jcs21dozbyAzGSCJSaWtXSolKR5aotJPIlraiZCtiSx26SclGu12JQmmY/ZucTvuc1jrr7H/37nnXb/0+6/e+632f3/s86/n+HgBpq9D4+FicDACHy+d5L3NkBAQGMUhPgQJKgEeXVCgrMd7B09MdkH2a/9MmegATzXeMRO/68v7/NGp4RCILADNEzAlPZHEQH0Vsz4rn8RH3Ip6bzI9HjBM9L89DDiKWF3HULOuKOGyWmR+f8fV2QuyJhmTYRyaEiDjqIxOjRbyBFYXeSUYDTLjhbC7iUnTPjhUdGo7c+gWtG3I4cYil0d8B3Vk/PxrNP5THYTjFxcbxGD4RfD6bG/Und/1/GCc26dP3RH9XMoLr54PmeWiogT+EAg84wAAniINYNHiIfSAC+OhiAxei+BEbRXsDp7j4FB47KprPcEDRiWAs57KMDRlmJqZWAKJYz37iLX82hm8PfF6L0QJgor1LZv1hTQPgbDUKyc3Pa1r5AAq2ACWPWEm8DZ9dBhnQBFNwAG8IQ/5tgwNwHGqgGf4JgzCOETE6tgjzwRKxg1gd9giHxxniVuMycZW4Prw03hGfjK/ADxEYhBBCIeGhmJrYOrEysZdEC2Im8WeSOolDaiTTyGzyVXEV8STx2xRzSgFFIMGS6JC0ljwlRZfaTcVRU6mT0knSEzKbZDHZ7+QU5UppVrRb8jEKJIUyRRfFIaVsugH9ljJfRVmlQTVcTUKtWj1IA69RMSeYocDo0tyrtWqu7Nw78wq0g3U0dYbmn9FN1Fusj+m3GuQaBhtpG702vr3gkskJ0/1m6ebshT6LFlvMscQsn1hdss5bHGNjy6Qye23L7fhLltiT7bsczjvWOF1w/tGlYem1Za2unct73PpWDLuPrvywiuyp6KXjbeXj7svyS1t9yL8h4FkQLdghJH5NydrudZRQh7BUVl34ZKRVVGr01RjKer/YUs54nGt8UcJIIpO/K6kveeHGfSmjqf5pLem2GQ2ZK7YObN+5wzYbdnbtOrfn6N79ua4H8Hk/5eceijjidNSwSKtYu2RhqceJhFOFp29WQKVllcf5wB+iL6RdPFhfffl240STRrNrC/9GcdvP7dOdRl1r7uR0X7lHe8Dqreh70a82YDVoP2z6K/X53Rc5rxaMXB11HWt+azZ+ZGLqndf7sqlRweLpjJkrQuF/5QKGagkRJIEG6qALFrAUAlD+ZsExqIcHMI1pYW5YElaK9eAkcM4oC5rwZLwX/hh+jOBGOCkmLsYTe0z0RZH3IHWTWeT34vkUa8qgxGFJe8leqVQqg9oqnSyjLzMge0wujKZHm5S/rlCkmKoUTLdXNlChq0qo4dQE6lMaAgZokrTk5qrPM9a21fGeH6W7Re+w/g8GXYavjWUWmJn4m6ablZp3LvxgoWcZaLXf+raNPDPQttRuxN7WYY/jY2dzl11L+12Zy/Pdxtw9V1askvSM9Wrz0ffd5ffc3y3gdJB4MDvk+lqdb7LWDYY5sU5E4CPDo66xdWJ2rH/GcedWxiskbOQ94TsnnU2mb0xP+S01AMXMIuNkpvLWnO2ErLQdY9lBO6u+E+723XMyZ2qfT+7ZA5Q89sGWAoNDuw+PFPofvVykcyy3WFASfry9zObEyVOy5ZtOD53xqbhUqXNub9XE+bU1LbVGF/bVvf7Rq/7sZUpDZGPDVbmmiGu1PxFaPK8X3hho07vJbj/R0d+pcsurK+t2zZ2n3ZQek7ve93j3cx6UP7zW2/1oqG/0saAfe0oaIP5CHITBqaGXw33POn6te17yW/YL7suVrwxGSCOPX9eN7hwLeqP3ZuztpfGtE86TxMnmdxnvbd6PTpV9CBJQBLXTrBmpmWph4Be5QEaVgY7qlS6YgCXKBH+IgXTIg+9RbeiDdxgNM8E8MC62DzuP3ccBTg/ni9uKq8I9xSvi3fHb8Y34DwRbwjZCuxhdLFKslihOXEusJcmQYkk3yYbkveRx8RDxFooxpUACL5Eg0S/pJ9km5STVQGVSL0s7SN+Q8ZLpk+XICuXyaMa0DnmugpxCnWKokoRSHT1SWVH5ukqKqqFqv1qB+ioNskbTnC0MR02iZodW/tzQecbzBNrtOkXzE3Rd9FT1xvTbDI4bZhgFG9ss0DOhm4qbCsxGzAcW3l3UZlFvecbqiPW3i3k2wUwnW307GbvxJQ/sGxwqHauczjtfcKlf2ris2bVt+S23uyseuw+vHPX44En2UvSe72Ptu9IvfPVm/yMBFwMfBE2HaK1xW8v/pnhdZxjGsgjnRpRHDkXrsGNiqtZPcZZx8+OeJTB5mxMbkwgb3JMLNg5tsk7NSRtOd8k4lUndmrJtOCtwx61st53Xd7nubs/x3vskN+OARt6V/MhD1MN1heH/oBW1FG8usTg+VlZ1Mqmc+T3xTPfZsnNp1SE1FrXUCwMXa+q3XfZopF/pbypv5rUwb5Bae26Wd2zpDOmyu6PdLdtz457f/cGHmx7J91U/8e0XDJwaDByWftb6PPvFilcyI3dHi9/EjFtM4t51ThUKombMhcJZ3f1XMmB/ULhPDG/kP3MTcVabRUa0ADj4LYBIB73LAXafAZifAqBEAfCUAvC1BpzmMsDGmwBzswU8NntkwICATjOiuqMPVuAKgUgvM6EAKqEVBlDl+apCf2EV+nf85VD89b5Wm79btfl68vh7nzwAEiPNzWY1hugLgDcSCt/dR/0gDWCGIxRO5wmFMxVIKFD/2Uuf7fc+ag3qe4pVRdR1bvyL3ux3VzOZ0bz2aDcAAABWZVhJZk1NACoAAAAIAAGHaQAEAAAAAQAAABoAAAAAAAOShgAHAAAAEgAAAESgAgAEAAAAAQAAAUqgAwAEAAAAAQAAAT8AAAAAQVNDSUkAAABTY3JlZW5zaG90ctPtsQAAAdZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MzE5PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjMzMDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlVzZXJDb21tZW50PlNjcmVlbnNob3Q8L2V4aWY6VXNlckNvbW1lbnQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpUySesAABAAElEQVR4AexdB2BUVdb+ZiaTSe+9TiB0pCNIkQAqdmyIleq6v7prr2sBwXXd1bWubVdF1u7aGypKEwsKioCoCASSkN57JlP+79zJCyOChBSYSd6Fl/dm5s2bd8+977unH4OLDXrTKaBTQKeAToEDUsB4wE/0D3QK6BTQKaBTQFFAB0p9IugU0CmgU+AgFNCB8iAE0j/WKaBTQKeADpT6HNApoFNAp8BBKKAD5UEIpH+sU0CngE4BHSj1OaBTQKeAToGDUMDvIJ/rH+sUOKIU2LVrF3bv3g3ZS5O91WpVm7xOT09vPZbXetMp0BUUMOh+lF1BVv2a7aGAgODq1auxatUqtTlhR2JCJBz09E1IjEZ8cgxsDsDfBBTtKUVRQRmKCisAA2CEH+bMmaNAc9KkSTp4tmcA9O8ckAI6UB6QNPoHh4sCd955J5599lkkJoYhMi4KfUYOQO8x4xGU0Av1DieaHc2wOR2wO11q8zMaYObmbzIjwGhEiNmM+KBAPPW3OxET6If33/0CvayZyMrKwuzZs3XQPFwD2Y1/RwfKbjy43tw14RwFHIV7nHLKaIw64wyYY60oa2pANdnGBjs3hwMOAqWdwWMOuOC0c2OnjAYDTOQq/chKmgiYJoJlgJ8RgX5+CCO7mRIUCnvJTqx69Q2sXPYl5s65RAdMb54MPnBvOlD6wCB1p1sU8Xry5MlISgzFxNMmIXLoSCAmFSWNdtQ1NxMg7WhsdpGDdKGZm5MAKUG2e+NsBSqlGUG8FKmbmwEWvjCbDAj0NyKoBTSjLRYMjAjH/x74Gz77cB0Bcz7mtIjn6hL6H50CbaSADpRtJJR+WscpoInY979wL6pDk5FTW4fypmZUEiRrmu1oIvfoICo6XdwLSBIdBShlM7QgJVWUIDMJl9JLCkwSMslV8r+b0zQYYSJoikgeajEiwt8fURYz+kWG4/X778GXH3+tAHPhwoXqu/ofnQJtoYAOlG2hkn5OhyigcZEnnToaGSedjMbIFBQ1NFHEbkatzS1ai/6xieK2gKQApBhwKHgrblJ+3CXIqATvllshIBpa+EwykuQujS1A6RbH/fien9GEAJMJIeQyI/zNiLb4I7K2AMufeAbVtAEtWbIEVqu15YL6TqfAgSmgA+WBaaN/0gkUEM5t6dKleOCFfyAvIA67axtR0mBDJTlJh5OgyN+wc7NRH2lrJjQqoCRKtiS1amEkD3onAqMGcpKymQiaftyL0cdEFPUzmBBIDjMswIT4wAD0CgvGyscexFfLNyhRfMGCBQe9vn5Cz6aADpQ9e/y7tPeiD/zxp29x7sLr0BCeiqL6BhQTJBtaRGwRowUkm8k+2qibdDjsxEc3NGqayEO5Qc/oCTH4CFAKSIrBx4+A6U8OM4wGn9ggMxKDA5FQX4jb5tyIS+ZeAgF0vekUOBAFdKA8EGX09ztEAQHJqpocDJ97MerCE1Fc14wKitp2cpECjrI5CGZ2gqaNRhyXWLhbQLJDP9zyZQ00FWAq0DTBTCOPmWAZzH2URQAzACNio/GP2XNx0oln6WDZGYTvptfQI3O66cAeyW4pkKzOwTCCZG14EgpqGlDvog6RVmg/ZWwx0bXHhbqGBjTZmuCkj6TGSXbWfbdypARfGzc7dZx2F8HYJFZ0A5pEJ6rEfCduWroEfydYyj2IwUlvOgX2pYDOUe5LEf11uykgQDNlyhSERwJD585CQ4QbJBvIxZkDgrmF0zRtQkNzI6prq1BVVQ47Re7OBsn9dUA4TBPNPyKGm028H+V7aUJUgB+SggMwNi4Wf5szF9NOOFNxlqLr1JtOAY0CmoSivdb3OgXaTQFxIK9vKMOQORejXkCyrgGNBCV/OoAHhsUhLMKKRnsTyiuKUVlehmYRuQmuh6MJhylO6zaK/o1iOKLI30gre3mjA/l1jVhXXIK/PLsEzyx9WjnCH4570n/Ddyigc5S+M1ZefacrV67EvHnzcN2/70R+YALyCJIOcyBCIhIQGdkX4TEB2JNfhp9+/hw1tTV0AaIr0BHqkeIuhaMUTtckUT1+iApkRE9wEAzb1uGFxc9g+/bttJiLx6bedArQo4Ir+uFZ0nVqd1sKOMml9e7dG1ffdSka+ozFjuo62C3BSM+YhIQ4IyL9ge30W/xqwycoKS2mlVtMOUe2tYJlixgeRLCMD7Kgd0QwKj95g65DW/Dpp5/SmV0Xuo7sSHnHr+uzwDvGwafvQjjJo4ZZ4TfgWOwhJ1lPl5yEpKHonWzEEIJkfg3w9befoKy8hIYb71iXlSjeIoY3c29z2hklZKO6oAl9Tj2fhqYyLFq0yKfHRb/5zqOADpSdR8seeSURucWhfOwls7Grrg4VzU7ExGWiT2oUxtAeUk2qfLH5C5SUlZKTlBBF8Z70jqaBZTOt7jb6ctbTsFRCfeUvVbWYMu8cZQHfuXOnd9ysfhdHlAK66H1Eye/bPy5aG7Fyn3PJNFT2Pho7axsQHGPFMYMHYQIdz8hM4pn8eny0bhnqGhuVG5A39liieMQS7s5ARG64JXqnZuWbyP+5RoU66lZwbxy5w3dPOkd5+Gjd7X5JuC3m+EFZeDxKacE2BoZjMkHyOIJkMnu7oRlYtWklGinSuuiz6K3NScCXfJeSrUi43orGZmYzasLRZ81T3LKDVnK99WwK6EDZs8e/3b0XbnL+/Pm44P9OU3kkq2129MscghEEyVhedTu3F9atRU01LdzUAXqzzVAgXMBSRHDJfdnA+5WMRtuqKzH/8hlYvHixV99/uwdR/2KbKaADZZtJpZ/oSQHhsqSWTVloPMoYmmi0hGB0bBgSeZIAz4oKG/JKS8ihSWii93NkLorfEkIp9yuRQpL2rbTehuihg1V5Cp2r9Bz9nnesA2XPG/NO6fEll1yCySePhik2HdUElUzrEPTjbBK9ZC63lVvWwdbU2Gkid1poIB6fNBYrzp2htnkDMjqlH9pFGGAJg5GBlXQHaiZgilN6JReApJFZCIuC4iq1c/V9z6OAHuvd88a8wz0WUVpyTM6+/Q/4mSK30xSAUfGRIJ6o9nmtCyXlDE/sBJGbEYeY2z8Ds4eMYTILgWF3iw2waIedshcdKlP+0m9SAh0lcbAD1U12FNY3YszpJ2D5sx8r8Vs36nQKuX3uIjpH6XNDduRvWAFlzg6Y6AbUYHciLDIeaWY3N1nJ2/v0p29Q39zQYW5yQHQonps2BZePmPgrkOwKCogOVYCdbCX/mxV3KeGOtexf3zHTdPG7K4juQ9fUgdKHBssbblUARWK6hwzJZCGwJlUALDE6CdEtN7eD+xxyk04CTEcMONPSEvDMtNPRPzrlsHVb3S85SslyJAV5JNtQg93GbOy1OOusycpNqCN9Omwd0X+o0ymgA2Wnk7R7X1CA4vnnn8dxM6ahqtnGFGYGpEWHI6il2xsq6tFYWytm5A4RYkRMFPwZ4SMtu7oQV618H1/l/tShax7sy+wazKyxExwUBgNLRzgpikuS4TK6C4WwjK4Yr3SgPBgVu+fnOlB2z3Htsl6J2C2AYYpLRh25Rj+mT4tnES9RdksUzqa8bDQzwsVd5KH9t1Fls6HcVosnv/sM57+/HGuZUKPrG3WTvPeg4HCEhETA5O/HvjBvJsEyY9RwrF27Vrk6df196L/gbRTQgdLbRsTL70c4KjHkRCT1QSO5xqCgcATT4CJAWcgtr6RAcZNSObEj7bEt23H8/97Av7cSeDvInR7KfdiZSNhI63c4s7KHhITDySpljTTsjJhwcitHqXOVh0LR7nGuDpTdYxwPWy+ys7ORZk2h+4zEbbtgMvsjoOXXc+guWcsStFIgTCsve9hurBN+SERvSSRsZ87MmKhMxMb0RQCzIIlFvI7vyQIhHLXeeh4FdKDseWPe7h4LJyWO10kJkcrPUKooBpgDQIO3cjL/pcrGkrM2nwTJfYkSFw/ExyXCRJckrgnUVbqYNi5F9X/fc/XX3Z8COlB2/zHutB4KUApHGZ8YjSYCh4MisZkcJU03YLpJZgqvh1NQRcFmp/3sYb+QxWxBAtE/hBYqswAl1QhNzKGZSF9RiW/XW8+jgA6UPW/MO9RjMeQwk5pKIqHqcrv8UcorUjOJmsYGBZQClb7aRLMaEBii4tUDqXj1M5mVKkEWhoSkmFY9pa/2T7/v9lFAB8r20a1HfkszYiSmxNA5m9UMSYWa+koFlGKTrm+o5HsdM+IcScJKPTGJ+Q6hgSqCNxJMoAyUgmjskuhdc/eUqNvT6HAk71X/7cNLAR0oDy+9ff7XUlNTUZRXCn8V6gc02xrJXQLl7FldYz0NH8QV+eOjzUTfzWBLgOIo48Sa78/ARsZ/S75KxuwgOTnZp/vno8NyxG9bvDr0plPgkChQWChASYs3TdvNtAbXNFEUD6TFmDkpfbpJzXE/I5JYO0fi1oWrtNsbWYvcgCACZVGhaGL11hMpoANlJ466uI+IDk+aGD20lpGRgfT0dPXSarVqb/vkPi0tjT6TBlhYjEsKb9lp5S4udcISbGQwDt2CfLJX7puWOCB/PzP6WCh281j4YuGYhaMMJFBK53x9/KSnPWGeSj87s+lA2QFqSq2YVatWqc3ATN8id6YkhCM1kbwI3WisSZHILqjCnkLq7iiq5hVUIHt3PrKyslq3SZMmdeAODv9XBfDziypgYX+E06puqkZxyVYENaS4M+/wPZ9tBMTg4FAki78TGxllOJgdiT7nqqQtnBS+fbB/q1evVvH5MlcFJMUPNjExUlnzY+nBkECds6hTzOxbISOgCjhPZRQNXBLnzJkDq9UKmaey76lNB8pDHPk777xTTToBxnFDUzFlSDL+8tDJ6BNLNsTBjDnMYQhnM1xSkpUcFozRzETjz9hhpgij24nLHIJV63Pwyfo1uOPGV7Dm6x9bJ+OCBQsO8W4O/+nCRebsykM4++PHHGhNtfV84AqYw9EJf38L3YUY9if9F3bMp5qBqgTGrSclIoYoIQV169gHW3MjQrgolO1xx5kLUPoCWGrzVIYgJjEEU8+diL9ccQf8k1NQw/FpYLSRja5cjS462BvoG8uYfYvBT6kYgtjfILpFNeTmYMWz72LDlpVYsPA2ZFgz1QI/e/bsHgeaOlC24WGWVVgmnqzI55/YHx8/chr6iBKrjpwiDRiw58CZS/6DXCT9Y7hJZIo4ydAGTL2XiwYCSQhLGY7AaUJWggWTziKAXtQLhrBzsHJjPj7ZsB4iosskFMD0xodRu6fzzjsPn7z8FMKmTldieGN9LYGFBo+AMK4FXDCYsNctuLaBuF5yiiwABorXg+OTldgtQFnGIXU5Ghmd44dfvvwC48aNU+Oi0cFLbv1Xt6EB5NBRVix4jQsvgb/Q1oAyRxO+4+JdX7uHWdzpA2tgiV4uBE5mSOKMlUycSkIQKcGPoCl7S3ggUq85H1Emf8yk9T977Rrs+GwzsiZPxJzZ81sX+F/dQDd9oQPl7wysAOTkyZPVGRdM7YWP781Cn3BGMdftIjA2wsC4YDQ3wUU9HWU0Nwcpmi2yU/zr0cii8D9RknsT44fNMJIjc5lZ57o0D5PIjWadFYc5p5yBZ9/7Br169VKAOadF7PG4UKcciijWHpFfAMJEMBHLd3FRNhKopwyUWGiavRsELLlIiMW7M6zeo+OjcOmg/r/q74jEzNbX49N74z+Rslq527rCAjzFuPD2NulbgCUQo0JDVZZ2seLnlpTBzD6Fkrt6/501uPWmhar/7QFKUdN0pfg6d+5ctZBPmT4C17x8CxoTEvBtcx1qaotQT4CsIyBKzHo9x4czlQu5e4baPWaq6J6lSf8EGPwNjQjkwh7CObu9qQZBw/ohddRReOjWK/H6XQ9hEgFzbg8BTB0o1dT47R9tZb591ghM6B+AvlEEyNpiOIvqGM/Gzd6SmFZif4WLpAijcZHuuSc8iTQBR26qGRR3aXCQy7SR9FqSWIqsroAaZAaH4K6zYjDnpJMJmF8RpJfimWeeaQXrlot0aCcPlOSTtFrJcZBzFTBua9OAUjirv96zDKP/YEG+qR4VfAgNpEFDQyOamXpNzusoWI6KiYAnMO57j8nB0ZBNa7VNYnFvL1AalGEqgeCS1vJEiBN9flkOdZPu8rVlRZUQQ5YsFJ5N5oksqBo9PT/TjgUk76Do2ouiq9RB78wmYyn3MPG04fjDCzfAnpSAbUyaXNpYhkoCZK3TjiaCogCiFE6Trbklcko4SYk6okssjGLx57G7d3IsQEnA5LgKgPpTzRJiN6HU7ocSXj/tmgtwLwHzrbsebAXMhQsXdmbXvOpael3vfYZD4yLHDUvEggsHoG8IAbGG/AWTtzqb6gkILKTFxAkuuxhvRB8porZwkyKnCThSFHcv1r++slqsGRNHPRAM9KUxyZ7T0WCGiw8jmFXbZQ7kR6Ew0KBgoNPzqp3AvL99gllzL0VnTUJRHyy46TLceflUzLvjdaT36q8S0sqD3pYmSSOqqqoQExODN378GqsLSpBb06j0eQJVdop1TUzo28wHtCPt9IwkLBh3XJsvsSJ7M2744rs2n+95opR/MFv8MX/qNFwcHqY4yjU8Yena1dRX2jDIXorbLr4J3333HcLCwuBHTloWA5krWVMmYvTUo9FcVoHvv8tWC8++OryMjAws+PvlmDvzxg4vIJ73LYvcytWf4pZXF6CE+TJzbfUop2RTRYBs4OLVRPVPvdoLFykZ3F2cnawyyYvIa2mSvETkH2pe1WtK3ey/+zhSgJLHAbInkFp47M99OLMrRXDBiDJZEENuO76kCqv+8QLCQ6xqnrZ1Lqkf9JE/OlB6DJSAkaz+t80ehXlTyK2UFxAkK6iHrIbB7oCRk06BIUVtl4jdTorfChwlUa3HhXi4z0vhK/c2vpAJSTTkxtw7foHUYdLYw3A5cBLCTOcUAcvQSCCxH257eiO++KkeTz/9tBLL916ofUfy4C75SxayjorErU9uwEsrt2M2wXjfB3x/VxegrK+vxx//+EckDIxC8NQzsLuyDmUNTOLLB6qZD1MTzxHO0leaH1UhCbEJ+Mexk9GP5BdvyecKa7Hlp8+RHGCGfdWb2P59KZ544glaxYNbxW9Ry8y5/BQUZ4yixZhRPJV78Pn/3sTqD9ehV4bb8JGVlYVZcy7C/cvewou33oDTTpulwLQjtBGudN68eZh0+ggkzZyExsR4FFAvXEI9pACjFEdrJgKKuF1D0CyX19yI0of2sxxP+SfRShHcB3MvmyRUDiBghlKvG039ZSLn74DACKy959/44r2NuOOOOyCSS3dqJoLDwu7Uofb2RVbnb9d9gtcWT8FxGRQly/LhrCyBgboZEx98FgbgRCPPRAdk2GoInKXkLhspthA0Of8cfFCcHpsAoeemfSb3p+Yrv2Mkd2pwcn138XrieiIru8hBLb9j4O+CID1ldBIZVxcuue4uHDVkmDL6tLef8r2IiAi89s6HmD4iBFP6WnDVvClYvuJz3LDgXlRW1cBqtapz9vcbIlJLqjF/6lhffHYpppx5Biqop61lALiNXKQ7d6T0QXrDvZc3xU2SOzp+9HgcFxaouMnNvOePt65DoKMZfUND8MB1i/DAPx+gS02i4ibF8CNNRN5hZ5+CQkoIebT+1/iHIGnE0Th73iw6QOxBXVkuLr/8Btzz+F9QGhyP0p83weSgPprg2d4mova1116LBf9bAP/jjkZBgD85yToUkpMUYGwiQDZx7lXzOJ/SThW5SqfMqXY3GUtWpeR1ajieNbwOPWaVKC/GIPWb/J1qztmMCSMxbHA87r/1flRXVneon+2+3S76onvEu+jivnJZAcmdP32Np64ejkxDEZwle+CoKoKJooxRGWkIkLK3UzdpI79hZwktThK7BzC2ta8aYMpefZ9fpHcGDM0U7217aByq4rH8DoWkWtaeKSuEq3A35o2z4OkbJuGS+bOUnqu9OkB5uGXLLaqFMSqVv0Xg37URf52RgI8eOBW2AtGNTlbn7K9PAhKipxs/fjzMxlBUblqDMOpYQ6g+MJPLEK5bjDoO6ZTXN7duMjIiEidERyprdzHv+dtSG+zkmiPMLAWxZTXSk9PV4iF910BSJI/BQ61wxmSghr6WZU0O5FQ1Ykd1Hb4qKkHglNPRa/b/4bHlz6EyPJ7Z2puRNnKIMri0lyxLlixR43LNK7dga0wIfmioxk5mgS8hoCsxW7hIzqsy0j6HY9CkvDA6ApL73CkB08br7uGWy62CC2M19wLSu5tq8UtjLWqGD8ID3zyPDz9+Q+nA2ztP9/nlI/6yRwOlDOJekByJPgHVcFYVw1hfQU8eTjBKw9Tmc6MOUZwobEVEN7cOUkCuM9qBANPQVEerOkV7crTgPTnLCzEpw46nb5yMKVOmqAeurZNQrNwiConI3VSyHh8/fhZW33ssXAU/EShpfKmmm1PxHmQ68/HXs+Pw8aNnwFbyrTpfQNWziW5OdHQWi4UFt87CS4++hITAAASTRqL8F7CkAoGA6fkt7zw2mShGms2YfvRY9OEwi7LgR26bdm2giOlEclAQ/nrLv3DFFVeo/noackQQO+uqP6CEBqwacv4xsamoIS1L6u3Io852V2UDfiivwi/mKNSEJZHjtqHP2OPbBZQyzgKSixYtwtW0aOdRH5lNnfkeJ4u7MeTSRf2qkWGX/sGBcNAFrYhqIuWqxu91SWsFTAIlRfsqAmYJ99l8NnY21+Iz1jia8c/L8MzSpyF0aus87ZJ77aSL9migFPBQnORVI9AnsJqAVApTM4EwhL6AESFAVCh1hTS8iMabK7dI3xon2Un0b73MvoAJB0FZuEtylsJdopb5eSqKMcnajBWPX9wKlq0X2M+BgJyA4+03/wkTMhrp3jQFfz0jBplN21mz4RcYCnPhrCigqpVAWVsCVxmPi/OQ2ZxNwEygHnMKnn3mCcVhiuFCa8JVCVDOnDkTG7/egiFRkYggVxlE0PHng2oxup23tfO9cW+gAUcSYIweMhYn0YAj7WtuK3eWoKmmGmGSZ3PTaqQmJOPYY49VqgbNiCMLT3x8KJoirahu5qSgES4xeRT6Z1pZtZGuONyqGPdeWNeMXdUEzZp6BZTF5FLnXz7jgNy6uon9/BFxe+l/nyZI3ow9dJvKJvdWTm2wOSgQoZGRCI+KRhDVKUbquEs0X96uAknP++NvFFCCUNwldfXiyF7E2P8cPkMC5te/fCuW8L73XWw9L+Erxz0WKEUhns36009dNRx9gqgjJEgahFsMJD8UQgNLJA0qMumqCKClu+hEXaHcKDqLkzzQBFGiOT8UydXgoDjeXEauj3pMMR5RFBewnJzejJVPzFZgeaBEsgKQ2zZ+jI//PRNr7puMuaNdVCuIGJ9N1QL1r1z1XUyLpkBYFgc6JYvuFdVUPZQSMAt3YlJCJbJfPh+7d27DvkApOsogclz33Xcf7rvmSqQFByCaXI3EgEumHTPB0q+TuO4D0ar97xPI+eV4GnAmM5xPjtdw+3B7KbZnr0eY0akSY7zw6Iu4+uqrERDALO5cBLQmXNKMK85DfgP1khSpQ0PjEBsNDItLUUBZT46ugTrbBs6fWgJmRQNBhKJ5RbMDvY8eekhcpcxT4STPuOdigmQkdnGMyqgPNBEk/enzGUqQNDAaqqKmFt9XlqFWnP07pJPUetnGfQt3KWBZRT16DbnLIurxc6g+2hUrYHkbOcunOt0tqo1312mn9UigFGOEWA2fuuVY9AluUCBJ3x83B5kWC/ROJkqRiywpITD9Qk6SOis+9AJih6NpYCkumgq8W8GSDwE5S2dlMbLIWT59x9mYP3/+fuu4ZGVlIT3SjN6OHLjyt8FQkqc4RtRwQWB8tgCkgQBpsNGibyvn5uZeRdw30khlrKMulscuun9Is1qtaq/9ERFcwHLGjBkoL2zArg9eRWygPyIZxWImxylp2MSVREDIuxoBnPcXFBiEAX1H02Lr5iS/yXMiZ88WitwOxJBbzl/2Cl1jgpUuVrhn4aKlz8JN7ty1HTHDJiuQtLOP0dF9EMO1tRe5z+SEeNY0p3M3RdFGgmQTAVPKZzQRvBrJfWYePa3NQKnN08vvm4vSBJbL5YJZSUNKELnIuMQ0DIgeyZyZ4SisLMf3FaVwSPamw8FJ7m9AOVlzKXJpYFmggWVcJC78+xz1vPlyvaEeB5SiL+nduzeeWcj4bIrbBrr/0EEMGJAGDOkD11BGg1B8RB5F39pdSjXZ1VzkfuddCzCLm9FvwJJ+nc7qUsw7Pg7OukLFcew7CcXV5/Mf2IdQchxyDSrcjZF0RxKApJVU6T5tBE3qXQ3NpAO5V0NSBpwzT4FhUG/ShABJ8XPVxmLlunQgoAwMDMRVV12F1555B2NiYwiWAQghgIoI7gZLGkz218Ej8p6oBJgJiPc4avgUjE4J4cMNbK/icOd9AyP1awKS1sYS/PfJt/CPf/yD3CIjddgfzYgj3OQdf/8zCuobUE1uMiQ0BtHxwYjjdb7My0NxRSWFYimTQS8AxlKLYcvJOSdlM2opku9hBNPpZ2ZBxOnfazJPZTE/cfoo4OjhyCVI1lCnmta7L0bHT0GW/7GIQSoKq/OxmUApYbNHvO0DliKGF3C+BR49AhdceZJPg6X3zOHDNMqil0yLDUBWBidWFfV+jLBBMrnIvulw9BpKwwZ1kRu3AkU7jhhIepJC4y5/BZZ8aFxigCnNx4IL+isdkKdoLN/PyspCTnEj1mxlf1h7WxzaERYC44xTgDFH06k9TAGwPF8ucxic02cTJC+nKyenRCW/Iw7wDOl76p1NyuDleU9yLMAhOjsBygkTJuDSS2jhvf4a9AoLQgw5y2D6Jip9JR3rJSuNt0y0oAAL+vcdzzDMcOyixmH9bhpcflmP+upiRPub0Z80umH2dVi4YBEyMzN/pZuUfgudK0PjaeWWxBIGJjsJxPbt3+Cf77yOt1avQGMD5xNbcFAoJg7qi+hgi3L0dhA0GxjqWdbowLQZ05S/rjrxAH9E5P7ll28RM/NYGkiqUUb9Xzw51qNM4zGB2TKFnl9Wf4ivd+8kxyrKcy9pnFCF5CzruK/hIlFCsMylSitj5un4cduGg/bbS3rxm9vwlvn7mxvrijdk8ono9J8bxsBQkc8gGrISkhLNmghn5CgYG8ldrvuO7MVOgiQLZXnBIi10aAVLJ59sJmkQ/0rhCp3khrP6W/DUbWcqq/a+XKWEKD713o9wBNFY4U9usow6yDIKb8eMhGvuPD7NiYrMLj6Ixm/Z5ypuApJV/B1yk0ZGB325ac8B48IFLIXbCgkJgSTKKMqvw+rHHkIqjWFx1FkGEXjM5Cwll6M3gGUA7zUiKg5BAQnYsb0Ym7esx87t61BBtUQkXYGSAy144bZbMHrYSGXAER2sJzcpRolBQ60wxKajjmK0nRxlXs7PyN62g3lAbMy8w4WDNLGQhQ8z2jF/2Fhcd/oMnHvi2UhMSFKA2UA1jiEmRQHugea4iOqiUpn30FXKmbyYYBMcRSNc0DAMI0SKMuSTxjVYnbMN5byeGBi9qTXzwdlDv0vxsawiWBbQBe0H6sOzrj59v9KPN937ge6lxwCliDKiFH/mzpPpRMzJVUtDRgTBYzDF7SSKm+gNwy5ykbkUxhx0E6IxRQDKq5oAt4N6UwmZpO+coYFAX12B+SfE0zG9WPXP0xVDXJ9eeGcdDHH9aKRiX6mGFaA0VVB0Z6YfCaOUCWAwRVCPuQPG114EsvMonjNEk2Vof6n0Q3ZOIbKysnjWb5vo7MRlRowdEtonjtCr3/sCRR+9jrRQC+LJTQXTCCLGHQFLyxHiLOU+wxjlFE9jS0R4HKoqt6KseDvqKFE4mf0pnmqG1JBAlC1/nZ5YtbjmmmuUyC39kv7J96WJuHzKzBOpj7QgkYarlNBAxPN7oeSgZVEIpC+pbEG0Phv5vU38zjoO10/ZO9BMH8MQcTPjpfxie2HUCKu6nrqwxx8ZP+WjOTINxXHRyorsCgjEkJjhmEZOcgjP3UmObcPun1GlwmiJkvyOtzUbgbKegClbBe+zgJJb4NEjceGVJysR3HOeetu97+9+ekxkjliHH374YVx+AnVKIMAYqfieOAqu+HOYm2ICQeRNGN5/hwC6W3GSXsJMto6ZRPlIozGZTWKNFcSplJcGvpmRwQfvg024+OKLW/Vpcqa0T5avxuQh4eRCxbJNg1BoEAx7suk0+CMvFU3ukSDqF8CUYnzmymthsATBFRKJd76tRWT6aJxxxhnuC+3nr4CIcJaySeRKRkYGHvjbI8iIciF5wFA+0gyfozVU9HQSe6TumsfyaB+Ox1sib0LJ8QrXayJ3a6ebV1NjHSNnyF2T00kgF5lKwKv+5A18+u6XuGvxPRg4cKAKVfQ04kjXJaLp7jv+iRUvvYKg2kIc1S8VURFxtPRzEaA/o5FmfhkXA51I7TYJJbRgd/a3dDcqRhg/i6eaYmB4KD557H6sXbMJ8+bOg9VqlUu3NuEmzznnHMx+8ArsDmQSCvrvTso4AdORhD6kn+hU789/A+uoo1aD74UgqXWG2nAEyahzzsqIm6ljHTdyLOPmr8Vtt932m3mqfc8b9zJvu30TkfSSSy7BM3dNR99odlmy//RLhyvmeA7iSNoR18Dw8Zu0cO8mp0aG7XA8we2guhLBBcGd5dzIHkoIpGQxqqtF1tBwxqSXYNWqVb9y8BVu8PMtjFmPSqOukoBI3z6UV8KwhdZ8f36HIrmLejaXJUSBozOC3KlKzhGCpe/vXz/peesClLKJ+4zoKyWV2F//+le8/NibsFCsTSfHFUdRPNRipt++Wwy3cG/mw9PVk0/dF39LHlQbjSgN5CAbKivQVF1Of9kmJJArTOeisfmZR/H0w69h0Z13o0+fPsrtSbhJAX+5htbmkEOXEh+rV36GPgmDcf+lC5D93ycoDldiTFwM+tH3Ni08SHGZIeQyS/b8TLt5M1KohhgWFYGE3etxy2kzsOfnUqxdvRYyNp5N5qlwk0NH0h8zMQGVHN+EOCsm0lRk5Ylc4vCUbT2+qaCRjhyb107Ulk5JaZACPlCNBPMaxVna8GNDBeZdddZvpJ+Wr3jtrqvnqld0XNh8UcKnmKmDFL2kietbbxpuDGN4fxQ/s9+llp5O2BK73Ul37PJLpqJqENGAhqJObuK5pERvUeJTrHHRAdlVUYg7/zgBixcv/pW7kDyMGQNGY+m729xAKQ47u8VXso4AGUyRPAyusFg4oxO4cCTDGJOkjDgIi1dhjlar9aB3L4DiKYJPnToVd999N+694REEbP+aOTyDkcI46kiCptmfojrF0kCKp6LPE31bV0xC4SQtBG8zdY8gnSTbk5F7E30QIy3UR4YGoA/juAUkl7/1uUpn169fP4SHhyvA3xckPYkgNBHrt4BmTHR/3DzrJtx++jn4+dknMCImiqJ5AOKCAgiQFgyKDEU0fTNvP/1cvPLkMqxdtVYtZvujq8zTu+66C6fdPAt51JFLbPWYkIHI5I8Lnb7mtjzne5RRZ9kpIMlFYASz7kcp6cSzh513LKGVNoKkiOKV1KcWMbdB1DH9la1gX5165/1q51+pK+Zo599lB64ok0+4yTsupc8kxUHFTfYldxVIcRvhBMYvaeVeR9G7yi1yd4CbNAw8E8bzX4Dfn7+F+YY8+F2xBcYbc2G6lBzrCQvIsdH1qINNuEqXkaIzQ+yUrExRTaJ3XAxpmzQoFGvWrFEPsKcOSFyFln78Exx0ZRGu0lVNLjQsAs6oeIIjgTEuDYZeI/HcBua5ThrE3JgBdAsqQVpGH+zvgd5fF4Tz0qzgoq+UeHHRCf/jhoexZcljGB0TTb1lIBLIXYVYLARKcpeizxPLOQFTDCAyGTs6IeX74seprk9Rz0IQEJARd/FgisdJBOtUcpFj42Lxw5JH8fHbn+Pf//43BgwYoPSs++Mk+dUDNg0wFy28C79s3EZfSQd/H8gMC0X4jm8YCXU+3n7qI3xBDlK4/QPRU8ZLjI2xCSGoSYhlHHUz3Y6SMMoQA2qTVTKK1+vXYgvHWU1Unt+edjIXxldTRiHnqIvgGH4NNgy5EiXDr8auwefj44yJmGjh4tlZjSohKcxGIY1A6WJcuJPGJzvijxmDiFiD0tF6ztPO+tmuuE63T7Mmq5b4TS5/+DTGMu+m/EKO8pQTGX1zGekZDhTeArzxAmci3WXbyU66TPEwnfcwjGnn/u4YuWz5cLw2ixzdp7973u99KDHUjLxjWkuKyExxRYWiypjuCqG/ZHwKbn+NGY8SxiqQEq5IawJkv3x0AzIbf1Ep4pzUQyI8Bmt+qMPyzeV4+f2NzE3ZF8f09cfi85Ix6/7NOP7sKyDi5qE00bE10/G5sbER5eXlKCsrwyOPPIJt2zbisnv+goKgePoSNqCKVuI6Rqs00Xos9XaE9k5a0CSRrPgcylCQX/5V23d49vaOpOCZNLtQXJaHk87uRCs/EordJhAzPZjFj5yePyNuAmHa9hXuu/VfmDppKs4++2wMHjwYUVFRrRE4njHdv7qB33khC8Pp80+AceA4hFftwb9u/hsNRrUqRjsrK+t3vun+SObplClTGD8+FXnDB2C7oxbTep+GmdSo0y9DcZN/3L4UGyWUlee2x4DzWtponB37+/dSR8+KOyhh3V+Zc9B7PugJJL6JC2ECF6sQKtlDOD6xfhb0DQxG+PqfsObRNVixYoVP6Co959pB++2LJ4gRx8B0B5nRfGJstBbHUNQMGs6uUD8HToZvKdDQdaEjeknjlEt/BZKuenJvPz0Gx4+PMMmGCEzuZvBPgvGUeyjypmlvtWsvRhcqJAmSbjZMDaI4ktfX4fhhMfjss89UNIjnxcVVaOHDq+AIjoIzbQj+uwHoc/FbmPePtfCPG40Vqz9X2V4+35RP95eBdAvKQ1secM/fkGMBGXGpkbyNktxXDDw33XQTpk49DTfOvEqJumMY79c7PASprMkSTRE4hFbnAAJboHCX4mJDTlP0mUEEegE52SR5rFjNAziasgXx2P2Z+7xgxaGyOJa6hpHnC7dqRDz1kKn07ewVGozR/N2fn30M91z3IB649wHceOONGDFihLpPuV+57/aApKh1sndvRzLLU2x9+jEsmHcTTj3pbMUhtpWGssBIqWNXcjzdalj5kV4KRxEkhZuU9n7TZuxqpAGKi0p7QHIsddH7gqSNE6lREk57tGBKK7dZT8Eo6qk73MhFiuO9k3OChGURSyNq+ZvVjFzqM3GiEr+l377Q/HzhJjtyjyLOjBtCYBLdJBX4YLp/GEXrw9a8mvn+c5UOq71A6fJLhHHkre7r8a9r+1Owv72Y4rB7RXYZI+E67k8wjVykzjGGj4IzZSB9PNyft36xjQcievuJ1OVgfyx8jBSLyRT+nIBO9m/SmP5Y8+dXFFBqSRzk0nPIGWbQDzA9PR4vvfehEqtXrP5K/arVam3d9+o/CrNufYPifQC099WHh/BH42TFuKOJ5LNmzcKYMWPw1ltv4dZTz8HYE47GOVffgp+rKumE3YxauiTV0VLcyH7Y+SBJ/k0pWyD/Wv5DdLPyWAn3KF4A/K8WC9lLMSxJHu/HxMdBfChD/I0IowEpimJ+v4hwvPnA3/CfZV/hhKknKH2kSBmijxSA3NcNSC57KO1Zug0lMg77+lnXYR5ryKxe+fdDpp3oO50GAmRyKjntMsSGpCGRNyGLYD63tUU/qtIOQov2NLmO1lZVfIMni7fg5Tpyp6Tx7JB43G2dhiQLpRS2SFMI/hiTifUFm7WvtH/P64tRx2GhVwXHV4CzjpJDPj0wzjg7Sxmv5s+fr+ZJ+3+k67/ZrYFSxJkXXngBd8weQpFbJgUtvtT7GBj8Jc2QQ91kHf0pJXluO5sxvg9ddiyt33Ysf7QVJNWbTmZI/+QhuI76P0ZxJKm3DEzJ5drZ+pVDPiBP4XYTIgjAP4CLAPvFlVmyrhsYy33h9HF47rnnlNOyZrUV0JNUXcL9rFj9yAEfZNFnihgp+440+V3hzjQQkuOjjjpKuQ+ddtppeO+993DDKWdi4gljMPLM02lMsqJCol2ow6pXGw0AFMuVKC4AKaCpRHInwYP/eH0Rs/lfhSUG0Gjj9mMkp8n4dImyGRoViZfuX4wn3vsSU6ccj0cefERF24irkACkJxcp96vR6lD7LYuQlfQV7lH2h9pknq6i/nLQsF4opkGxnlE8A4NSENlyIYYMYBd16Mq5l3RoT/uCwPSf/A+xoqYAL9dKRaC9bSkLkNmzP8Tz/feOeb+gTjJCEiSDyalHMcqrieWcHXxdz8QZZYwFD2Kwh+Ki2af20n5vL7r2qNsDpQxEamQ/KrzITTKtvyssmUDJYl7YRQdzWoKZ5USAp90tiOnYPJpL8kh6vFaHzmq4TPRjbHnfQGfx9k13jwvLTdNYIT6RypO8gWApPpJ1NUiPsiiDjjyAngAgD/TBmjzswoW354H3vLY28QUgNau4iLbCZQp4SqVJAcz3338f15w4G1dceS5KGxyYMvNMWOJ6obBe8jxSdyncCB8kBzlMtSfhJCuRkZy0pEkzESnFeBNK0T2W10XZTvy46kusXr8VD238BZMnHYcHH3hY/Z4Ao4CkRNyIj6TGcXvSyLMPbT0WWrWFtge6nragn3TVZBRxbjjYpwzqoNkbNTfXN2cjt0kW847MGhcu/R0O8YW6YjxgL6cOMUrdZrSZ+vvOaGT97QT+UBbOC+QCV19by2qQEuLogHXiYKWn3HeedsbPdvY1ujVQijhjYKmG3jHkvPKon4ylxdccScCiGIDNMOQXcCbaOwSULvFp82im0afAueZBj3fIufY5mZEae62JzuKcX33e7hc0mIAO02BcNRWt9KGn+YPi9/GjEnDHy2t/5U95KL8hYNkZzROA5FhAU8BJfC4FrAQ009PTVaTGu+++ixrWnFlw0fXwD/TDiSeNI1A6EJvMFGbpKUhMzVBlVxNTByr3ouI9W1GQvYs5MJmodvcefPb1D9hEYIyOiqV2JQHTpk3HnFnpqnKiBo7ye7JpYYme99cZ/W3vNcTym5OTg8DkJGYdYtVD3iOrEdFxja693L6t2U6nfSodOoKTbbg5Gy3tWquje1JntVrOSxnzkMgIlv91oqmunrV97BjHPJ93z7yr3fO0s+6vLdfptkApk09WqrQEAqOKhyWI0PXBYAhVdDFWbWFMcxUHiQDakQlY9gNcRctpcT7eTe9x9zETDznGzx9Vrw0DzoBx2v17xyLvbSBnxd7X7TjSQiuNEmnDfoqBimUEYSim5x1X6qQUsZPmqf634/Jd8hXhKrVNgEq4SgFLATEpViax4g1MKCGuXAIay5Yt4yLnhx/WbENR0WfqnoqLiyFbXFyc2uTN+Hi3Xu2EE07EeTPmK2DUOFcNjGUv78nDKkCt6VC7pKOHeFGZp5pBIy49Ez/UFdD/M4Dcl1s/Wcj9zuoS9zjLWHdRE+NNotmtkpKfKGmm4ahTmktVhbRRLZQUnUGDnB9qXMUU8Jg0gyqW9IwUr5qnB+pytwVK6bBwlCkJBA2pd0PQhL90V0RVcmJFOymqMhdlR+cerc+OT/8O07mjaEyIpM6MpoZj/8XkhMfDUZMD04A/y624W80W2Jfdpb3q+J6ArFCe6c1gIWhWCHDSopgcrcBGewA7/kOddwUNLIW7FPFXODzxu7TRI0E2cS0SS/mwYcMUgMhrqfwoi56AimwaJyjX0LhUAUC5nmwCiAKMssn7Gjh6E0B6UlT1jYYc0d2JAcuP9085gYIq5zAje0oksXIXgqTcy/mR6e65Ky/Yllfmug864a9bdcJkyMhAQ3A46wrVECirKQPZkUQjmHim9O/fvxN+qesu0W2BUh4o4UxEtJZcjEoRzofIXUduDwyVXKU9RI0OkZh+kY43LoDptEdYlzvTfamU6co6q13Xlf82HO8tpg5tg/ZWx/aio5RG1xpXYgwMNBqJ8s5AXZ6kjhPdrAClBizuk73nr4CWBngayMn9apuAo3bsCZKePfAEXQ0wNfDUPpPf8FaAlL7I+OzatUvhYD3nKWt6slAbx5SfcTnHdgrfDaJS6ZDYw6//ThvAKKlZieNbz6igD+fzzHPZmU10ycn0CK2nw1OOZYsy0jXxbzwXdem/REXJWHlr67ZAKQSXBy0tkUpptzczjR8sxIQCNRaGWsZ7OxmN01kjs+NDOFbcDr9TXtrvFZ1VBG0xKHVqI0fJJLRO5kc0BbA/UhNc+sp8lRlWRtx0MRfS0a54gpjcq4CcBoraXt6XY2naXnugZK9dY9+9nO95nrz21ib9SqDkIwG0YrwyMZCgnDcr2u9CVKva3F2Ik/hbEn1JW4w4QqNH85ajlCqczmsu6pIDkMALlpBPNjOFnywCjey31BuXRd3bW7cFSnnAcnNzkZlMJwvhHPkaNTXM5s3pZ+brhs4DLZcpBqaTb4Zx8HUHHG8RwV29ToXjrcuodProgOe19QMyZEQCC63eYiRiHymuMT0LQZITnCJ5GkUaWakHDRrU1ksekfP2BTN5rYGmdkPy+kBN+772ubze9z3tM2/cS99knOKTosltScYh1tmhG43wc6JprmbSWwn/66r2l6hemB53bOvlN9Zsxe2l21tfd/hAMYkMEDAz5p0Xq+YmlS8ZdKv6lZAao8b798a4w/fQCReQx61btx25zL0oznbSGDanCnVJDW1a3mSVpmtex5qBOQvPfehXIOn6+XHYHx+G5mfGwZn9XOv1DZYMGM95HYbkvROz9cP2HJBDZvEXWvGZ0IIWRWUBZ/ie5JnMKWAxtBZOrD2XPlLfEZDTxGZtr4nT+9tr52h7XwJJTxoX5JfBTFcajh5F7Xrq79ygUmmrVL6Hnud21vGFwXG43Xpq6+VK6B505e5Vra8754DPHp+/EHOIAso4XjSaRiMjwxpN7G9BbglSUlI656e68CrdEihldZJNBsBFZb4SSSVDCnU9BtZhNtYTKJmdujOaYdQFMFovaL2U8/NrqK+8nJnCv4eh6Es4X54Fx2pykS1N3ISMx1+vvezY3hRIcIwgUPZjIgs6CIuEKuBpogced1ar1SdW644RwXe/rc3T1NRUBZCBNARKhJG9yU6glJIKTI9Kx2wJvuJAdmpHjwsIxYOZZzDUk1IJWw1jvP+4/U18Rj/gzm4h7JNE+3CGqtpCTko8/jy2UCwqyhclg3TP/cyqF174p1sCpUbntLQ05ORXuoFSuEqGUKGEA1PC9zgRO2PqGQdO134Orh1LfuNDKR+6vngCru8WtZ5nSDyNwNar9XW7DoRJpt4HEb0IlFyRHRxKqcJHjtJFVw+7Q3gTvfkCBYQLLiiqRIAYuPjPQSApRgH28OZtdF+T9zqzTWR6vf/2PZN6Serv2ewU92/a8SberHODVmf+lty6hRJOL2O0ijTijCWP0sgFQVLtuTloeU69vXVLoJSJp4lguYUVdNuh/k6Uek20fhczlLGcFuJOmn6uuHGtY+zM/qz1eN8DJ1Nuac3JRARSlKpDTUaOCXFdAX15wCw5qjwEFwJylL/I4uDRNFp4vKUfegEFtHkqTvc5LMERbKSvJ0UBOxe8AtsOZjP/kZyWQ/lUdtbtir/k831Op8+k2/9UrnvX7rfxeCdbuffeL8tw0Eg3gL0Qg4jY7200NgrnTO9WFBQyiTSPpWl79cLL/nRbY47QWSagQfwa6W7B/PwUh2XFJNcltXIYpM/qWWT33LrK9o6LAqiWLxuCWHvmQBcS3WFLk9hwh2T70d44xL0SxagbRUoigbE3v02ApEsQWQNqytlPlnVw933vgnGIP6GffhgpIAAh4ncQvRb8qLdrYsRVUWkB6qJtjCNgJiZyZLUSmXPg2dWmux3I5+ClvqciLWCvTvC+nHdwZ9mONn2/XSeRQYkPjUCa8l9WwbYqtZ4/Z38g+yuCnjZX23X9w/Ql4Uu6ZZPJl5GRgdXrfiDnFQMnI1cgBborGXFQUUuQZLdpiesoAVz5q1rpZxh1PXNB7uUwtQ8kYa9x0l6LuLP8cxgas7WPD3kvzDGY3YcpgDjdaMhhKQIDY2gVUNIn7vMvs5GcnKzcbbx5lT7kjnfDL8j4iCFq3Lhx+GjpC9TbUfphbHQ1nbIrWLZC/EmlTnpHWwwX6lczT0RmgLX1Uo/lfYAbSn5ufd3pB3zcTOzf4EgrQzI5Pbnx6UMjnc2l5nt9LtPKUWUkRjpvn6fdlqMUwssAnH/++Vjyv+8wdyydeCmWGpgsVoEl44mF0xTMERtIe5trxwqgxZgj2YEMc/j656dhKP2Z4YQ0HoWnwDBwHgweoo5r49L2/pz7e3LT/gzFjBvFA9EzUZtVVMw99ZNMyLtk2TpcefPdXu1ozZvVGymgzVPR0+XnbkckQVNybVaJ8zlDbAPISfpzHne0XRWVgUHB/X51mdPihkO2A7VlJd/jj4WbD/Txwd+XhL3szyhLGjhbFVAW0EHIxQisQKMFO1evVwuELBTe3rotUGqEF5FmR+l3TJbLvJA0fkhRKWXxbqk3o1CSK197m+vrp+FkoSnjoKvVJVTKtf60eh+gObcy5dq6/xzg0za+baTvJOOdESBAyebaTQNViQJ+AxPz5pUwg5BSO+iit5tA3v/3mGOOwd3/WIajmDYvgO5BJuop6zlHm1gUraaZuvUOruhxfr/Viaf6U3XzOy01YOfvfNqGjwj4sQHBGGuKUvrJKn7lF1s2E2O4EErJ56031uKOG5m7led5O0fp/VDehvHY3ynaSj1hwgSs3ZTLrObMaM409K1NJp/4GXYAJLVrOd+9BY63z2Zt7He0t361d1IhDybDkHOc79z8q88O9YV4/0DcggYNIDBa3V/n5FPqBIsF2yroXuIyK7WDcNR6824KaPN0IjN+r/9qC1JNQTTquGug+9Flppmit3I4J5h0pG2zVSnr9qFco7EjIb5yu9RBDouxMsbbDdJcyrGb+TDFup9sDkYZDTmyoPvCPO3WHKWw9OPHj8fpX/8EY+gMOC3MqMOVTKUjo9JcHLNhop7SXsPs0ocyhfY5l4kxXFvfgIObVF80RDBYizVsKHszQxGTpFbvISbLNOl4MxiorwoKowZ8Ci8mmh/WyJEEH838LVb9W/t1vuqz9N3bV+mOU6N7XEHGSjbJoLTq+ZcRfPZxCJQsOy0RZVJ4TXltUHfZ3vbP8hz8s/z+9n790L9HsTuCfTojbHBrAuIcXqWGlQYSxWiVn6dc2qxWq0/M027LUcrIyuSTTDLXX389bmUhIwOT7LqYadkpICkhOeLES10JT+u0ZrBTX1jKxBe7Puby+Qn1oRv5W50DkpKwFiZyxUP7EyzdRiMnPqc885PqhyswVNXiPuuss1S/fUFJ3mmE9+ELafN07Nix2LPuF8Qz1juMC7qIqHSqpPsvAVK8NjpzonYlvVqAfWRcKsbTf1K4sQJua+3fw5+SXKjBjJ1rN0C4aHk+fWGediJEdCXl23dt4agk1ZYSv3+gsSMiEQImYsRhMiu3FYfcoM80GS2pkzNwIh+adL6ogrHwazKVtCWyst32pkhkF9arbN4yAXWO0jdGVpunM2fOxAevr8Eo1rCJpvVb9HgBxEo/cQ3ypXBUgrqUID4tehQjcQQmgW3cfi7chhByygMs4Xjmobdw7bXXKqD0hXnarYFSBkhW60mTJiHJOgTPfrALRgKKKyBQWcBdHDQXxeP2CzTyC4enKW7SSJAcOYRi/cn8UWYNwoecfVt5zBIXwRGYf+s7uOeeexRQ+oLe5/BQzjd+ReapJDO++uqr8cqi+xFBX9hwzk8/go74ZgRL+jzhML29tXCTE+LTcZIpQXlP5vCe1zp/hJGlSiIpdm996XVMGDPRp+ZptwZKWalkAgpoSP3mpR/TZScsmkAZTBHWTBSlvs8YoQyK3jz/lIM5WA22PQAAQABJREFUlfxITAOGnc977kuOeC2MeV9RpmGUkYUqhfhByCurg+h8hJuUfuvNNyjgOU/Fn3LVu1/jKCa4jWREmRh2JFY6llunWB67miS8XysZkctij6WTuUmVsviev/lDwVbW9TYik8kx/vvQO7jyyit9ap52+6dJJqEkhhV9iIiln/3YBFNQqBLBXdQFKTHcGO4uAdvVk6id15fgIpjJTU7O4n1PIif5KQy5/wPWU//JyegICUPW7Cdw6R//3LpKC1D6gkjTTpJ0u695ztMzTj8bby16FNH00ojhYh5IrlIsxeFaFixv7b3cH5+383sfh2MMUSjjfVJLj7crlrMMfT2NO2Zse+ltpCel+9w87fZAKYAhHJaUCLjmmmuwYMk3cNBlwUBR1SW1hiUSwo+VFEkJxbl52SQUkVtZuocOor/mSHKSa2DMfg/YTJG7jrEOgazumDQUeaUNSherlULQQdLLBvIgt+M5T8Wnct0H6zE+JAEJzAkQSZ16IBfEaG5h3ir/CMNLX7us5DSM98tUiYeX852PGlehpCyPlm+j0k2+8Mh7uOqqq1pLdvjKPO32QCnDJ5NQarNceOGFiEsbjNuXbAHCopRvJVGUTBkB0xTrdVNQ6SVlAmZQLzmIqdSMLcab3TluAw6jc5wxKZg87z+462/3om/fvqqfun5SRt33mjZPpa76ZZdegX9ffjsyqVZJYPhtKF3ZgjmPI72Rq5Q5Sq53SFQMjo05VkXh0O8D3/FfYX4OIlkkLsk/CK9ecTfGjjha1Y2X59GX5mmPAUrhKmVwxNJ2z1OfYicS6UJJrjIwjCApIjiNPEyH7+cl+nLhbsWLCRkjgVGD4WRiXlPhDlZwzGfEYjlF8WA4qW+ddfeXLEoVqlQLYgwQNYPefJMCGlcp81R8KktyG5H76vuIY0RZrHCVBCOxJqdw85qmQNKAoyKjcEL68ejPrJNi4d6KHdidvw1BLDkcR5e2oG82o6aoEbfccosyWvnaPPUiinft0AuLL2CZmZmJe++9F/PveB+uWBHBGdrIJKYuSZpBPaA3gKWApAyMIYHRN+kMM6O107jpZy7RTPDxcy4RlNZ6gvzq3X74YmuB6o+UZBWglH76ijjTtSPum1fX5mlwcLASUd989H2kFVcqETxOOEu624TQYJLgLWDJudqb/skD0vry3mKxgSzI6oZPsSXvG7hYlyqWyVuODo7FP699En/969+VbtIX56lpIZtvTqlDv2tZsSWTcp8+fbDmiw1479ONOGMaq78xUapLfNUYakjTDy9MS7lTkvG3cHXq6PD8USApxpsIK3PmM7qHabbAMgGQTNDldfyArk3hjMhJGoipf3oVCxf9HaNGjVL1scVnVPqoA+XhGauu+hVtniYkJCCASU6ee+A/mH7RdNSx4JeUs7XTp1IkcJmptRI0ccSaAWnBIUiLikUEDYp7GrahoHQXKstKYWKquCQGc/QNCMMjZ1+HSy6+VIncUsfdF+dpj+IoBUBkkGS1vu+++/BziQm3v7ALrmiGHYaL2xDdbDTO0uzWWR4uA48CSOEkAyOBmH5AbCx1p3wUymoZ3UOArG/ia6oHKOIgcQAyz/wPZs+7TInc0h9fnHxH7Pn24h+WOeo5T2fMmIGjh47Hm3++GyM4N9IYWaZxlhHkLEUMl3X1sDeqePqGh8NKkAyiqqC6ohR1TIhdX1uFQJZcSabev19AOD666j6YbBZlaPTleWogh3Ukl6TDPr5SwlZy/NXV1aG0tFSlYTtxeCQWnZcGV3kBDNWMnaYrg4G1SlR5WQePHZUqlWVX3awmasNMX0lGZSCIfp5KtCLb4JCNv8yaIw4ByaQB6HvWM5hy4nTceOONiIqKUsCvAWVX3aN+3cNLgX3nqejWXZYaTH/4ZnzHmk85zDBUxkxYNUxeVkcOs5ZbGX0iDkujX3I6PUYiyU1KAl4zIcTAqA0/VhAIppooiVnU+9Mb4+Mr70PJ7lrcf//9GDx4sE/P0x4HlDKRZBI2M42VgOXmzZtxwQUXYO5JA7Do/HRyb4xKrWb5iEYpbcts6A4BzDoCJ6s58rsdSp6xn1ncCpJU1sMvwp15nZE2UvtGVACsGQEHnY9Bw40bJJ9SIHnTTTchMjJSTT7RvfqSBXE/ZNDf2g8FPOdpRUWFitpxECxPffhGbKmvRAEX8xLWim9g8ox6BZRO1uOWWdqFjTJ/CCWdaNbmFpD0JzZb1OZCFF3tBCQHECQ/agHJBx98EAMHDvT5edojgVLKuMrW1NSE+vp6/PDDD26wPHkgFs8dCFcpMy/XVMJIMQI21rdRYGkjSrq5S20qdhQ094Ik48/96VDO8C6IdzlD1+TYQZcKCU1EqPhKDkTf6U+0cpLhFHtElBG/SQFJXS/ZheBwhC697zytrKxUvsBOguXFj96O9XVlyKfEU0LOstJOsKSOvZ4huQ3cirtCUCRIxhAkwzg3jVQRBBMgRU8aTuE/hqJ2PLnMQRS33/zTPYqT/Oc//9kKkr4+T3uMjtJzrouyXDYRV8UVY8CAAXj++eexuTgIk69djp2GJOoJE+iSE0egokWcCnX40yndQgu5PzOWm6LJ65mVK5GmW/S8/u8da+fvBUnqIv0JhpJjUkIqJTsQN0dIJH8/HobYZHxWEoM+Z/5bgaSIYGFhYRArt0w+3Xjze9T27c/2nacy7uKxkR43EDcdMxfDKxrR1596QrqKxdOFKJwcXRQlkWgCWS/u4+hO1Fn6Sz+CZCqvG8tFPJicZChBMpj+a/Gcs2n8/Uzq94eUN+DOcZfAzxaq7lOeq+4yT3skR6k9PiLayKptY2r6mhrWKKF488ADD+CT5R/gtotHYfaUGCbELWL9MYrhDbUw2KSAF8s7SJ5AO/lKF/dS7kEKlDlpdGHTuE3tN7T93hWJCSxolGHON258l2KzgWKMOuYkdBC4XXQkN5CLRHwfOsdvwpK3vsPjjz+Ofv36KXE7NDS01Xiji9wahbvvfn/zdNWqVVi8eDGmnD0WE27+A7Y2VaGUYniF3YZqlpFokHlNDlOS/to4Kxu4d3CTsMK2tgCqx8NEvCb3GCA+nMyPINUTAwmQIQTlSBp0YslJ9iUXue7vT2HNe99g7qx5ygdU1ELdaZ72aKCUCSO2LA0sa1mgq7q6Gp9++inuvPNOzD59KOZOS0NGMEXuukq46jwB00mAFJciQiPBUqXBkuNWqBQgpbhOTY4CQfkxaczFR1mZe9kMdIk0wUigdFgkq1EIDMxuJEl/1+x0Yf7i9zBpykkqoYeszsJRaO4VImoLx6G3nkGB/c3TrVu3qgW0pDIXf3z4WpTHRyOPRp5ygmUFQbOKbm82Aqad1kABTLkGU0wr2yAffLUXO6G9xQhkISiK25E0zkrRlCtgFHCUOtwCluEESwmpjKTrTwzn7RgaH+eMPBfDBwzBFVdcoaSz7jhPezxQyqSQCSSbGHga6f8lYFnFwk6iiH7//fcxd/owzD2lN3oFkWusrSCHSeBkEXeyouQuxdhDoGSpWJl8CijVXl2Zfzjz1OQjKAoHKTORAOcyU7sjYjbdkVQ2o0CK9syM/tlPjbhk4busl2LAo48+qnw+IyIiFEiKo64YbjQXEvkFvfUcChxsnp4981gcfdHJKIuPQg7LIVey1nsNI2PqKPk0SP0dLuTN3LTEgkr64Vzl7FVNQmbphauOqZyCZFY3C0CSewziXpIJS0YjCUes/WoDNryyCpu/3YkTpp6osgF153mqA2XLJNEmobgOiSje0NCgxHERyQWw3n33Xcw9ayTmnNoHmeGcarVltIzTGk6DkJN59gxcxaXMqPLl4SounKYAp0st0QRI4SCl4A2V4S6uxAbqlOAvIBlEH84kLF2WjbueWYPQiHjFzYpuR6KIxGAjx6JP1UGyZbB68K4t8zTNGoNrHrsRDfHxdCOqQxUBs04Bph31Mr8NIoY7yUc6uTdw2tKBnYs3PTgJjMJVijWb4jZF62Caa4IoAQXzOJk5Muu/3oAHrnkSriYnTjnlFJx77rk9Yp7qQOnx0Mkk1CyNAphiFRegFMu4bE8++STeeecdRksYcN6JQ5EZZcKEUYnoHUVukTpMSdtvkOqOCigp1NCnTHGQApAESsVREhxBd59sFgFbu74An36Xjy827kZEdDxuu+02VRRMA0fZa/HbmmJft257DFgPPWzrPC0oKMD/XTUDxY4mHHvRKTAmp6CYC3qzy644SzsBUyJ9nNwEHKUGtx/B0s9FQycX+BimebMysiZ7zWp89OIn2LJhO+JoYJR5KnMzIyNDLeI9YZ7qQLmfh02biKJEF7AUcVw2AUvhNHft2oUPPvgA+fn52LBhA/qmR2H8iAyK3+Qq6abRJykM1lQm3BBDD/U52bmVVPZYsH1PBXIKawiMu9Bgc2HkyJEYNmyYCkG0Wq3KAi/co1jixaItXKQkD9BEbR0k9zNYPfitg81TmatLlixRARbLli1Dr4xYRCVFITolBk00RsZY45CQwVRu6Vbs4Zwu2eWukFi8uxile0rxPYFxz658xTn29HmqA+XvPGieE1H0l5oOUyagAKeI6AKk69evV6ApK7h8p6ioSG3apeMpAskmsbvCGQ4fPhxSb1wDQwFG4RzltWwCjmLNVuIQV3m96RT4PQq0dZ7m5ubiu+++g+c8levKfJXW0Xm6evVqPPvssxCL/IIFCzBnzhx13e7wRwfKNoyiNhFFLBeRXANNTTyX11oUhbwnx/Id2aQJ6GmbgKBsom/UQFGOZZP3dRG7DQOin7JfChypebp06VIsXLgQCUmhGHfOeNQ1O/Dzsl+wcuXK/d6nL76pA+UhjpoGgNqkFFCUTdNtanvtPE1s1gBQ22vAKZ9rnKMuWh/iYOinH5AC2vzrqnm6i6K6AOSz5CCHjLTirL/MRk18HN2TalluNxCfX3M/Tj11drfhKnWgPOBUA0SUEDEiKytLVXKUU2Xiaft9j7XX2ufqxJY/GghqwLnvazlNe8/ze/qxToH2UECbi7Lf91h7Ldf1PJbX2hw80DyVZ2Lu3LlyKo49fQSGnn8cmpOSUcBQSvHbrGMwRiojdZK++wnvPbKq23CVOlCqIXf/0YBRVklpqQkBGH90Cr7aZN/vgGuTTNurL7Xxj+eEbONX9NN0CrSLAtr81PaHchFtni5atEhxj3EJoZh5wzmoTGQ4b2ISk3A0EiDtqJZoNerZa2pq0Zshv1khiZiddMJvgPhQftubzu3xQCnig3CNsqUmBWP86GTMmjOMQTV5SEsS30d/3H1PISxRo5WC2psGT78XnQKHgwJSw2fA0FgMvWga6iheSyKOCnKPlRIqSVujhcl4IyKZv5UecZt2bkUKfYQHW8KQ++DLyIga0i2eGzr49awmXKOEJ4oPmKyWH737JI45qhLvv3ocPnh9HP5yfRiSojYjKa6AhpvtcNnzkTXOTymrexal9N7qFHBTYNKkSQTFZuyKDsf3TZXY1lSDIqMd5phoWHsNxIjE4zA+YDL25O9RoZI1PLeETu4xx/RXDIhGR+250yQ27X1f2EuWpB7RRPksK2NqQiBmnTucoDgdaSnU3zSXMjKhhj6Pu2FvqKdRhgkuXIy2cTXCwsxBzmYDxk5Mw5P3M2cldTPil6Y3nQI9iQKio192y+s41j8Y+bUMjaSoHcGsRX3Cj8IAUy8w1TQYZ4ZKAqgk4qhxGpn2zYbMcWMQ/trniikRemVNH8l8rnZY6TPsa63HcJQClNJSU6Lxy45d3PvTP7wQzY4KOJq52XLpK54Hp4ObM4dRNTvhz3IMJtSTqyzDhRclY/Wq5crAoy6k/9Ep0EMoIEAZaInGxhffRDjDb4P4VOSVFuK5TW/h+4KP8KOjEPfkvYF1tjo00oXOxvBIAcpcJrwec34Wpv/pBFz84nUYkTUMGWm9IdfztdbjdJTC9ov4vXr1J/jLleMxcwaTYTTlMAHQHnKSudzcQ+gXPhHBrE3jqNmCxrJmhmin4MVXnXj53ar9GnZ8beD1+9UpcCgUEB3+Nbf8CWe/vBib6yqQ7ahjOjcHchh9JincVH0ncpqJzIMZwy2MeSrFqNPLEsqkHHb0YoXTReMvwYvPPu+TQNljOEptUki0gIjPLpZ8nXBsAn0gReyu5sfMAiQgKRuV0kFxMxj1msba3/Ewm5rJaVbi4guS4GgqUjpO7Xr6XqdAT6CAcIEbv/oBQ5kCMJxhuaFMFyix4RGSEUsaQVJaIUFTgLOJOYnKGWO+3VbL58uF7FfeRl9rpk+CpPSrxwGldFo4ytTEIKQkNbBCbR1Bk3pJhzvxrqSTZP5ciuE/wla9C7baRhYWo86SYOqgaH77dcN/paCW6+lNp0BPoICEJb6y8EGVjzKED0kgE70Ekp3gE4PBLFnSP4T5DfgANRIobcw+JMmDLUywMSQoGi888o5yL/JVOvVIoJRwqztunEDgKyZQkpuk4QZg9nLJYsomLmH1Ox5Hfe5TaNizDM31THfqstDAU49jxvnjmCEhOlfpJpX+twdRQLjKHeu3q1rdEWaG4JKj9DcaKWYb8Fjv6bg6dgCiyHsF830x7oSzdEQcdZrPXbYIx006HlYfNOJow9vjgFKMOrIlJdZQnKbY7WLNbJCblIWRTTKjifStGt0owaE3GINYFFHq2iQSWKuQNUF3F3ITSP/bUyggrj0qIoeIYduThwgmnQ6lHjKQwHj70PNQao5D/6gJCKMoHkBOM5QgGcP8lWODE/DTxmyfd68zkbta2FMGW/p55pln4iTqJk85iQW8hKN0VpCTLIVf0FGwxE9DYHJfNJdudZNEwNMYQ5CMgZ9/Il6lMScqrhcGDWHhL1sQXnhlJc444wz3ufpfnQLdkAKiphK3OqepApf962r0mzsduRYTapk13eZ0IJCJp0sNVdhjKkOByUGAJNvBUrpJBMneNOQ8cs71uPW623xWN6kNaY/kKC++OJW65ypykzUsrBiJkAFnIzg9C5awvjAbuY+fTu6RJDKytJKBNeeMofAL6Ie7H1mNE896BUPGvMgPzUrnIhNJbzoFuisFsrOzlQSWlhKHd5e8DeeePYy8CUasMRCprEzKxIEs70yQ3P4TNu/4DGW1xaynw6JjrO+dVlqJ6iJKYFlZPk+eHgWUEq44bmQSkpOlnBKzkRMADYzBcpXvZmbyH/jeRqqiv6elmwW+RP5mpUSDMYQcZSheeO5nHHvs8ZCJs2LF5wiIOFrpXNLT031+Eugd0ClwIAqIl4jEiI8cdjIGRw/FAzPvxr3HXoq8h15E3MYfcVxIEoaxCmOfACbCoIEnjs7mcX6BSKFz+kN/vh9Ln3nOp3WTGl16lB+laBl++eETzLmgL44ZH0IncybaZVSOlJo1UFdJaYEltllGNjASdYUMYayuYantFPgHDSYX+T+sWPlltxh0bfD1vU6B9lBAdPzP0h9ZfCtForriqnNRKOUmLma5iaQUlDQ3IOjbzVj2yEp1ni8bcTT69CiglE4LWApnaTDYcO7p/TD7ot50E2pUojhc9Pmim5C/mX6TjPC3NTDhriWV5R6SsPjBn3S3IG3W6HudAh4UENAU8JTnSkIUJ58+Bh+/9ZXPOpd7dK31sMcBpdZzbVWUwT1v+mDMmT0YyUk1NPCQy6RvJai/dLpM5DIzccpZX2Dx357oFroWrf/6XqdAV1BAe66EixSxvbu0HguUngP4Ky7ztD6YfXEmUhLJZTKdVGGJFSed86YKW+wOIoRnv/VjnQI6BdpGAZ8HSlnBZJOm7eVYQE3b5HVbmnxfxAg3lzkQs+f0xx8ue5vc5FM6N9kWAurn6BRoBwXEQLp79+7fPL9iKJVUiPIcH+nmU0ApimMhquxFkWxAM/WLdARnthL33o701CjszqtCXn4VcguqlB95NktuiouCbLNmzWpN+/R7xNe4TAFP+U1vGKzfu1/9M50CvkABeW5lE2ZEmpPPcFJSpKovnsA9rQPM7BWLorxyFOWXs2JkBR2QjNi9Kw/yTEqbPXv2YX8evR4oBagkKkCIKxnIUxKCMPeio8Ba7khPo5naZSNOsp627JmlhAdchfzo2mOhH6S/iqqBXwi+WJOPFavy8fLbm7lyFbSW09QBUM09/Y9OgS6hgLgWrVmzRoGcPMtxCcHoP6YXpsydghzmgo2wJqKJMcP1dGBvEid2Mj1GsjdmPsPBTLwRyGc42GhBrF8wnr1tKV2PgvDhW9/QzdmsdKCHCzS9FigFGCVkykAr2szT+uLii3rBmmqkdbpSxVy7nE3ERNkkQJt+kSSw8o1U/o90D2UYlQECmPQcl2M6yBoNgTAZo+kemYaFt3+IV9/dzs8C1AqlrVZdMlv0i+oU6IEUEDWWMDnxiSG48YnL8APzv/qnRjD7eT1qydzUkLlpoj+znc+ucJJO2XMTcdtMuPTj3o/PrplPMqvdM6bcwvhxC4uXMaw4pxqrnl2Fz9/ZiHmz/6BAsyuZHq8DSqkFPG/ePJXd546bJiIxoQJpyU4aVqrIpzeSmExewb0kcnK1AqWAZUtGi9YJKaE1ApJcn7g6GZhu1EAiC2AaCJhGxm+bzEn4/MtGXHrNMp7HzOcUy2Vg9aZTQKdA+ykgTIeI1tHM0HXFo/NRmWzCLjI45c4GFfpYo0DSjjo+s02S6Jc/5U7SplgevlIsDqFRcT3kLpn2kIAZwXdCjGZymGamebMwAsiCoyzJeHfh//D1u5swb9YlirnqCsD0GqCUetgCkGtWL8cHr11IcKyiq05RS75IhhvSKVyBJFchECThYoy21oSe+2skcGszhPAwkFtAC1hKootwMpthzDkaj7zCaPz3vz/ii++qVL7KjIyM1q/qBzoFdAocnAI7d+7E1KlTcdKZw9H/wlGoS7FgFxkcAchiRwPK+OxK6jXJ1dVIzrGaYrmdnKS7yUPc8iAzRRuxkk17gN2vE8j4GMllBvJlJJmfGIrlMWR4YkxBGOifgA/ufB3fvLMFl8z5gxL13dftnL9eAZSSSFfKYZ53eh9cfH4EUpPFNaea2X0kHlt8Gpn3jHuXq0S0v3vpJzQ4EEh60kejt7ynjs3cRxAwQ8hdhqrMQAaGKZr8EvHyi2X4w/VvKkJL/j296RTQKXBwCmhc5P1v3YBtCU3YaS9HMUXsUoJkGZNnNFNFVk5wLFeqMj60BEm1eQLlvs8yQXFvE3UaX6v3jIjiPoTSYpRkKSJnGacAMxBDyGGuXfQuVr29qVNd+o4oUIqiV0Td//73P3j/fzMpbpcwYW4RyzKUkoOkqE2iSgSNAXxNsORi5AZGbRHaS0V1JLRXTejZcvirHWmtmnyonWCI5W+4E19IliCTXwz2FMThpBmvY1LWNGX0ycjIaPmivtMpoFPAkwIaF3nUqFSMv/k4lLPE824mnMlhhFsln18ByCY+a0UESZskeiVoqofYqT2snlc7yHErUPKCBEnZgrhFUCyPNhqRQHtDsikEvanDtHxRhH9d+xLmzr6kU7jLIwaUImr37t2bUTEDyUWG0aLdQENNOelYQlBsJHjVU53bzK2CIjfpS3BkeQ7VNEDU9r9LXqGpdoLnsYCm9oHsBTCNkSqlmtEvCmb/TCy++wd8takZTz/9NHr16qVdRd/rFNApQAqI29yUKVNw9lVZSLhgKLY3l2EPc7zm0YZQy4e1zsB6VDyvlCDJCn00I3BrD0Duj9qtoEk7BEFSQDOJgJlCcTyNFvIUSojJBQZ8dvdyRIb0Uv7R+7tMW987IkC5FyT74/YbU9DcvJvSNUHSVU5CEhxNddRFVLi5bNK4WejLhUjWIKF5h1oLWCoOXi6kAaYCS9LbkEaaR8NIztJk/n/2vgPOjqps/7n93u29ZHtJJwUIgfRGqIpAQEA0BIJ+olJVLCAtIOr/U6T4qUgNRaSGIiiEQBJCCwmBACF1e+/17u3/5z1357IJSdjs3l22zNnf7MxtM3PeOec5b39T8cS/OvDomgalt9TBsl+U1388giiggeSP7zgXLbOSUOxuQBkTzDQQIEX/2EyQrOfGbDO00IQZJHvSUc1bmcRBwEyhKJ5IwMyl3jKLYDmNusttt62FuzlWzWGxqPelDTpQ9gTJ636RyQw+xVxsqmA2upgL0kOQ8hIoSVjUwE2tbxdtNwokSe9ecZC9pcJhAZNZ9oxxBEvurRl48l9OrH6uTq1KOlj2lsD690YiBURdJiApRpsf3XEO2k5Ixk5vnSpN6zLRF4V45SFueQlI+3zkJ7s4iQUow8VJHoqoisPkhVkBUizkacJdmuzIZ2WC42zp+PcPn0BydEGfwXLQgFIILE2A5vxvTcB1v8gIgiRrAjvMbmYYp4O4nehlph8V6wP724vRxgxowq3LT8MKkj2J3RMw9+MuRRRPIFdJW5slG/96wolHnq9VYJmn6yx7UlA/HiUUkDksOskTTzwRl92xDK0Eyd0Ut0vpkQJmPTdHm2G0mOmT4keDkxUY22iIdRIofcG5P+BkEmZRdJfCXZpMyCZYZpscGEewnEEjz8s/fByJfQTLQQFKIbBwkpJSfs4xUQRJln31CCdZA4fFDVMUrdDRdvjNZphb6+Fq2gunuEuKuD2QINnjyakFSQgtjXRW+kultxSwTOeWg389Sc7y2SoVJSQsfF/ZeHUN/Z9OgWFEAZnDPtbxHjt2LH7053PQcnySAslyP70h7UbYohlBExGhQLK0pQV7mlm0zyXGm0ECyZ60VJNZwNKswDKXYDmWYDnTnoWX/udRJPQBLAV+B6WJIzlorPnu+ZHUR5bSoF2DCIcPxlSWuIzPIEhSN0gH8ra6vejkQiQgKQYcAcrBaHKd0DPltYMKURqW/I1Bf07e8/nnRWHu0bHK33Mw7km/hk6BoUIBAUrhJL9/9Slwn5CGvbQpVDB/q5kAmZaagImMdstEMhq6OrCnjj7OTtGZDdLkPZBIMpnFDYnAXsp9MX0499LV8P2uMpxz7yV4Y/1axewc+LPDvR5woNRWou9///v4+90LkJ3JoCUW83Kk0iUnfTxTik/h/U3k1sXqbtvgpS+5snD312hzuF4f6rNDgmU9bUx0XXJX4rrfTKNT/FrloyVcst50Cox0CsgcFkbHTTG79fh4FHmbUIVOpGWn4viESViCmZzBBWhAGz6qbiBDJJzG19wUWFJv1w2WpUyZWEqL/BZXKS754znKb/tI5u+AAqUQ2EtFrrgQ3HfnGfSTbOJ9N8ARFYAxYgyl2wlqAyrgYf1sF1Udqn9f00KkHu0hwNJPv04/OWJv16f4+/+epHyzhNDSR73pFBipFNDm8KWXXorld18IJxPRlFMnGZUchcnIw2zMY4GxLHyAz/BsyW7WsiU4aSqsr5soPcByHy3x5XR+r+C9G+ZkIG9ajJIMezt/BxQoBUhWr15NM1gdZs1gfDZ1klYDLTTJaaRlHj1zjqWEWwR35dNwEyQ1cfvrpq+I3SGpISSGSxhlgwLLWbMDFMGjsXLlSh0ov/aHpd/AQFJA5vDSpUtxwZWLUZVhRCW5skCECYX2TEzDVOSTk9yE9/BoKUs8uyS8mJNnKPEOCiw5idmPJgJMibcd+zzNmP+bb2Idw6Ul+U5v2oABpSC1KH9vvfVWityL4PWX82abWXwombaS6dzOVffn9XwMqbygfFGHkiR7IFiilaDIsEpvA0XwKlx3w1S1CAjH3NtVqTcPRP+OToGhQgEZ1yJyF5XugXtWMkoZcdPISLmCxCycjqWYj0loRBler/+4GyQ5gYfSHNYIKc7X1FVWc6uln3a5EsErcPEfv61E8N7M3wEDSo2blPKw2ZlOGOiMak1j/g/zEoLkCnKUU5g7ZC185W8plYYA/5BrPcFS7o+x5gG/gCVVCF178AuusrIQCFjqTafASKOAMDqrVq3Cz/68HMa8aNQFOjE1YyyW43yK3OPIOFrxYOAZfNLezLkhk2UIU0CMO+QqJUqokpFDVRTBo+fmIT7J36uonQEBSgFJAY/bbrsNv/nVTKWXNBs7YbIfRZA8gyA5niD5IDyVL8NDbp3PQ9F5CJOZN8m7U2ApyTlYeMzbiosuzFcDSfrbm1VpSPdPvzmdAj0oIGNafCZLS0tRlW5Q2X+MtHAvxQKyOGkqD9fTeAmrKz4PGm+GJKfTo0NyfwTLTorfbdwaaNwpoc3huAuPU5LhV83fAQFKuaiUa8hKczATkCgfWR87KYE6ydkEyULiTTGt2y/A21kWdCgf0isRb18AUpqAJYWNALOi+NmnTMan/+qKU9WCIANLbzoFRgoFZA6Lp8qv7/weAtkxDE3swtTYcVSajUUkO7mLFu4HG9ZS5KZDuYx9bY70gwB2kw059HkcuCb36WcmdeorqetroNtQ/NyxKCrerVQMh7suU4CHtwmBNd3kjT+fweNaJt5sh9F+AkFyFi9Gx3K8An/9ayqySYD+SJqBuSOjc/7KEEM6qfe6+dFe/Rd4217t9S8O/CKd/FXsucJDUycXJ+bLpAi+aF4UVt31Jq6//nrekyQJHiomvwN7oL/WKdA7CmhzWLjJyjHCTbbDGwHqJGcgifNX2utYh82dFLl9BJ++8gicw7+NnYZTYmZggn0m80zyImxttGWUe3bh2eYNuL5pC985QpBQZzngn1HmJflC7uoIOvHkLhtoBd/tqcW5V56oEg1LQMyh5m/YgVI4K5fLhfLyfZg1ZxrTplXCFM+cj4qbHMOb7YLH9yq8PSJvDujSYV8abYWwR5x12O8c7EOT9ZlQFuWDfX7I90hYBX0cDExMoiKkfFKGglxlgFzlrDmpyPpnQOk5xApuYuiU3nQKDGcKyByWDOVHHZtJbjIKTd5aHBVfSNNNAbWSoA+lB0+1vB10BTpSTqebMKc5UnB/xjVIM+d+iVTRzLMw0TYT16XOxFlx72Jy8d1KbP7SF4/kDRELzZzJApg8lDDLJs5j4SpPumgRLrx6BR544IFDzt+wi97CTT722GOYdUwWOXJR8hIR6TNpxDHslpm39wb8NZsJlvyoDwtFgAWJ/KKYPdLGxJ59arxHuU11rzwwEwfNZvEVo7WbyYUlNVxmhlnpcqTvetMpMNwpIED5yCOPYMn35qCZQNJp8NERaAK5SakSALyLzVjfVt8vkfuS2Jn7gWQjJc/PXO+iwrNnP/JNsp2Ah5IX7fden1+I/6GJQMnNT8BUWY7YvyJiypnL5qnFQbjpg7Wwc5QCFo8//jhuvHo6gbKaYreLIJ5JrixNXd+P11jypoLGkL4Bpd+9Ew2fM9xRlXY4WJeC71kTTkVMyp9DX/B2bg8d9/VAxG6bFH6kIjiAGIKnh1ylCyfOS8GquzcolUNfz63/TqfAUKGAzOGysjL4syJVATBrpIW8ZK7iJsVT8gXPpqA7kEyIPjYp6SBNwPGOuhdxX/ve0JmujT0Kt6f9irgRlM5OilkM1FIf2t9G3ST9FFkRxgo3E3UIs9bO8hR13g7YM2JUVqRDXSKsQCkrkRBZdBtjshiWKNyknSVj6ZYKpQJuhKfroz7pJnt2IOCt/EqthT36C5B0O1+hryYfbl+bcJV8rsK1W22s5OiLQaczQJAUoOzC7IWTsfHbT6q+y4p0KD1HXy+v/06nwGBRQOawWLv99Jc0Z8Wjw1OO1KhEpDOOW8TPSpYE29pSzglBwDk489WrW/1H47t4tf1z/K2N0TwHtD+0fII5EU/hjNjz1Sfp5nzE09DT5KPKqz9NTWIjchys8djl43z1szfcWOwsd0E+Nt61UXmvHGz+hlX0FpAQIhuZVzInk4YNclvGaBbwUtykiN3vwdDMh9D3hahXZDJHLYLVcWrou50ND4eO+3ogHLlI/AZLPExxCbDbmBZO8jczkYePOpzvLJutxBUZaIdi3/t6bf13OgUGiwIyfjdu3IhJ03PpnN2BDkpNOaYxZHOCqqtP8Tk+7hJPlv5N4ldcdQcFSa2f27sIxj3amCMy3vb44YGHBPiYSBsSY1hc0GJUFnAnucrxC6cqT51Dzd+wA6UQOaSfJFAGrDEEyiR1u35s685BSXzpx2p0YN8PfO1I+k7oLa93B7Mb/yv0uj8HYuDzeega5IiENSaOHLyJCyvFcK+4CtlRUlLC8dO/AdSf+9N/q1OgvxSQRX7Dhg0onFuAFlqFvcwPm8b5K3IhtWXUT1KF5RHObgAnMM8+zpYS6oqbzMinHoJzOJqy0geQGBnFRL4RCFBf2U7JsIJRR2ctm3/IkMawAaUQWMRu2bJY5DxAxanB4KGhSdwJZDWivxUD54V7HkgSG+2T4Yi+NETSzsa/h/WCbmcz798MX3Q8rPQNNRvJZnIIFeRGKZDUgTJEev1gmFFAm8Oin0zKS4SX3JeBiXAdiFb6SZb7wzbnPnILIl4NXOdOtSXjm7HnhC6wzbk+dNzvAzIyrUwqHE1MSiKzkxofoyzgnRS/3ZR5JXv7wVrYgFJOrimBCwmU9B2gTkNARIDSQbrSuZwpjgTQB5KbtCcGY8h5UVrHO+BqeEYO+9+6B4YqA6L6lAJ/ZDzdhYSEfuTlxikFuNBAbzoFhisFtIU+PSc9WHPbbKTY7SBrIMVZ6lHkYkJemcBhBUoq/+l7t9SehHuS5uGJnFUsdhAU9YWbvL32lfCRk/feTLBMQxzT8qQjMsrB2RuAm3q1lMyEQ15H+h+WJquREFlWo/Hp5B65GgWUk6cAZQNvhVmDmLVjIEHSYIpHRNyPQ/1xtvwfxeL9dR2hD/t4EJSsxU0ilZsHJiP7LQsCH2h5Oa35/ILQ4mAK4T5eUv+ZToFBoYDGUYoxtp2MjnCUZvoFW8kYMG8N83yVoVYKWYVpEhtZj7u18B5EGqMP2r9GXxWurrwTa7qqDvp5n96ktT1AjjiVxqlYLgD1hgZVCM3DvnYRLIuLiw86f8PGUWpAWVFRgRxyV+Qvlb+SFKwUbjLAoCefpAliCxOd1bl6/rMlfoeGpKA+VN7vChc32fMi6lgMVAKUVgTEiZUEzsyRPouOWzfmKELo/4YlBWQey5aSm0GgDNAB28yC0a1oZm8qUEdXGnEQCk+bamL5iEOApFxBuMmj7enhuViPs4gUKHrXJIKlRXy7CZ5esjspVDccqoWNo5QLaETOyonni2qaiMWwwdhoOhWQ4WXRMKYqGyhbB/EqIvGyUD+7nE/D1/le6HXYDlTkZDSBMpZ9MsMgHuj0zcrOTVbGHKGB3nQKDEcKaPPXYPLDSQOHcJQuLvxVnL/M70/ApEFFdGdhattooHml9UmCJV3u6DOZzEJ+4gokkTnSJGrnquQrMT9qKo4tuZfvhGFuESfG0GMlCWIsYq0f0b5SDyuLQkZOCj79gKWzDzKHwwqUwk2NGTMG5UUNSE9m8S1x7qQRJ0DGPQCqgukSIK5MA9GsceczYmZy6NTOusdCx+E6kFtn2WCCZBy3NL6KJ0cpJDQRJGvVZYQGetMpMFwpICBRUlTOQBEyAfxzM71XO8s+CE9ZL3ylMjKEq3cBnFb57P4nI2j9JnYKLk+6EMmsoyXtGMci3JX0Ka6of2v/7x7pKzEwEBzjzHbCpDA60ZzFidhlKGZ/jagqDs7hg502LKK3thJpFygqIUFJaNEFiEVYuEpwPVLO+AOEIxHJF2uXZ3z5Fnha1oReh+tA7t9gTeXwkUijHG4ETI9BRRAYDA5kZwcf7IH0CNf19fPoFBgoCvQcs1lZWYii36KZ4BHw0tBB9Vk19hAoyexIzPRBOK6w3Re52FXNH+HS8j/ByfyXWjs9dp522L89ES/awoJoYvVW3qF2it9QQEm+lh47WSHJuOeFwgKU2gnFgCEcpYEWLLqbk6byX3SUgtQEzzBwztq1eu7N0UsYMXNS6K2Ohn+EjsN2oNhJ8o4W8Qsdy9NmcKM+UnGQTJFf1Bzsu1oNwnZV/UQ6BQadArLg1xZVEDY46MlBdlIiLEYJYZLAJbHSg9Be6KrGts4NoSslmXJ43N9rBydxiimWsmAk+UkT5V2XOquJi0JtSUOI2QlduPsgLEApACmbpBmTtqdYPK5IZgKjge4EAToWgMx7v/spJz9IcyR9N/Su318Pd2P4xW65gHQv4AjW+5HXATBEU7hm6lf2ChfNptFAt3orcuj/hgkFtDms7WuLqxRH6SP3WEoN5T6UK85SRNfBai1M76Y1q4G6xP42YWJoUphiyCVMWsnmeAn9nTBTHyiKhtryRsVRajToebmw9loukJGRQdAkM0vw8JGj9NY3wdRVT1DpYobzL7zte95Ef45Ntmms6rgidIqOlr9R5P+CwKEP+nkgnk6yGahsNihFcCf34iohJDRx+NiRmUmRvHvR6Ofl9J/rFPhaKCDjV6TCatoZBDwCrFRQ1dRMsGwkUNKTxRJMVNHfm5MkvYdtVN1NdkwJfaXE8xmP+yuScgLTpnA0gunihJd0cg6biVUOqhpqKhvV/A1dtMdB2IBSAwhh2ze9V8TQoBiiigNOZxd8Ta0wujvoUxqpjCE9rt/vQ3vyFw7mcjJ33dP9PufBTiCLkZn4bzJM48ex3Fjknb6hBr9Yd2x4+KktOP7443WgPBjx9PeGBQVkDotEJHq6TkpIDjI8NjIB7a1daGxpI6i4kR7Rf85usiUKzrEPY1vuj7AiMu9LtJEEGGvHLEOWZXzos8+cO0PHfT4gpzMpKhb5yFWnEG6yoasFNgJlPNMwVlc1Izc396BgKSbbsDQhsiStnTVrFs4//3M6qp4Nn7GUfoU2uJxtsLd0ESRNsPCKUnExHG5Cku3cEfej0P272h9l9M9HodfhPDByITVF55NzPE6dNkCg9LbXwkeQNJoTUFHdrgaYnrg3nFTXzzWYFOg5h3/3x1dwjmkxS7taqabsQnu7aPMYXCFMnYn8VT/chFLoaC5tmn0+Hsyaj997S7Gj62PUe5uRaI7BFMdxSDR94T9Zx8+vrVunftPnf2R0xA1oRly2cjWX8zRRpdDU2UbDDpeD0jaK4Bbk5X0ZuOW7YQNKOZkQ2kzWdtmyZcyksw3nnUuHbD9FcPpTujs7YLO0K4CUe+4vEy3XsyWcS3E4Xg5V62x4XDsM6570FRqTkZxAZj24yjFPEvxO9scYi9JyIzxes1qN9HIQYSW9frKvgQKzZ8/GB+d8hivN8bR+1yLCb4TTy9IJHV20NsjMlRnc97ae/pOtTOod0+0vmUI3oJSooMfIgWeVhL4/q/o/7GHOyH41YpMYopYapjCTLFWCPNk+WvIDHi8iDZHYu2En5syZc0iJMKyit3BTFotF6eqKSpmCjAkxAiwW5A9QccqlyMW3wukdZLIXhmgnOSc9rWGMCQ2dOQiSsogaTbP5bjI38QvdRz9R6mzYx00bqiGDy2qltb/boNXj5/qhToFhQQGNo5Q5/O1vfxvrH3qNzuBWmj2ogyc+tonhUsTB/uEkscCFRUXX4rGmB1HmObhI3cDwRfl80r5rsbqjuP/0I6eTGBnBqj+T1LnEYfEzFMPqM9LB3YF1/3qPkvD5hywFEVaOUkBCwHLmzJn4293/pUg6h5nM6WTuMRHByW2SzoozoxgrFvH+umN1lF6FTtP1quMDYcBRJ5aFiCBpS5lMpe+pwWvhUxqMiplyjfoaSwQefvIDXHb5jQokZbDpTafAcKWAzGHZxDBZV7ITydRTxjLKos7npoBKVyFl1ZQJTCaBc7ivbaunFd+t+S8zbfwX481RKDRHUty2s4ZNF95mToh+J+nteWNyz+Qmz0+eRqe+oEhfSXfF0vZKRFHczjbHoqG6BTk59I0+xPwNG0cp9yUXkdVIWNh9ZW2orGZMtCma0TiRBEwrxdMgOMrqFK4mADlgIMmbVDQWQ1/0PEJ9gbptP96Bp76cdTciYLJmoaKmHbm5uarvslAcitjh6rN+Hp0CA0UBAUmRjMTWsHtzCSYzwCKeHJeUB7QKR6mi7bhXHE947mKntx3/7qoh51ii9mEFSblFAT+7HeeyjqT4Toob+2ZspN61neK/FfUbdzLReD7y8/MVo3ew+Rt2oBQi2xhL+ZOf/ASrbttAcTWWG+vLkNhS20e2gQpjDM9j63EWWYjIc9tis6jMPZ0fSNjTNm4fMCKHpGPdnn+uLsGxx85WSmBZJPSmU2A4U0BjdubNm0dXv/H4cPVGcnoOJDCBRYS4wnH+Kt/h4dJJAUmC/4Vp4yh0B/Wg+wiVG13bEUX7SToZuSd//wp+/vOfK/vKwUBSuhpWoFQn5E3Zid5i0Hn8mQ9gtU9UXCUMkkopNhgBJWAZRq5SrjsQTURuyXlhSD6JhJrBS0iFjTfhrdvHIHpyk5ZM/PauN3HFFVeoPusW74F4Cvo5B5sCwlXKHD777LPx7tNbUWCJQxxd/Rx83yzAI3NXmb8H+876cD0RCSPs+J5xKaNxopVT31ZsQmNzA1jQBakVATRUtCtG53DzN6xAKWgsRJYLCqEvv/xy3HzLBgJlFDl1AiX3ml6DXxvSTe5PuElrzjzGgl7Ce00iSP6Xt7+ZLkiSa5Pc5GMVSE7JRm5uUOyWvh9qRRrSndVvTqdANwV6zmFRoZkDMWh7qxRJ5CoTKaYGS4yJLmqIT2Dpj4AkEw/fnL4Ux2MyvUDFgFOGNzzvw+E1IoV4dOeP7scf//hHJXbL/D1UO/Qnh/rFV7wvhBYRVMRvsQS/8z5L1toKadiJI2smjtrM+SZ0ZgujmiN4wnD9J33Fb9LGImJmyzeom8ynxPEYt+fgKf+cVjsWJjKnkZvciKuuuirETR6O0OG6Nf08OgUGmgIyjsXNT5MMn/3Df5BJ/8YUqs/iadiJEUA5DKgM9P316vycwwKU38gaizOxiAyOlXzkDjyOp1FdX48EeqvMtOehtaYtpJs8HKMTdqCUiwlQCpFFITxp+jx8/3/WEliSuDHVukTsBAiYItL2qseD/yVZiMQx3pAyl/c4iQD5L3KT/4G/fge8PmZsp//Xu+/S3SApWy0GsihIn3VucvCflX7F8FOgJ7MjKrTa0hZY36lGhjkambRMJzCSRXE5sh+KTSWZ4CSmO9BS83HME5SCdXgfz1Mi/KymCAl+K/sSi1+c8htc8eOrUVBQcFj9pHQx7ECpTkqwFPCIjIxU4veb71bh/ffoY0gHVinXMJRFcFkoJVTRkjuTBpwpBMjPuH0Io7MM7g5GJhjiYI48Fj+46ln87ne/U32Uvh5OvzEUx5J+TzoFDkcBYXgcDgeioqLUOF/z+/9iliOfQBmNDIrg6QosBSiHGLujQJKT2G7DxekTMRHTWTdyG6tHfoQ9TeWI8ZiRSi+c2HfqEc1glcWLF6t+ftX8HRCglBVJWHchdExMDH77299i1f97Hxb7BIIlRe8DRHABp6HQRBUgekl7/nHcH8tb8pJl3819BZx1zQokTdYMnHTaw7jp5t9j3LhxinOWvupNp8BIokDPObxw4UIcfcx8PPT9vyGfde3HmJjLUYngBErJZD1UwFJAUu6FIHlh9iTMw0zO3N1kc7Zjt6eMtlgf0giS8yLG4v9d9QjuuusuFBYW9orJGTCI0th3AUtRCk+YMpci+DrSNZVbEgnMLfCFvvJrB0vSV/SSEZkFvL9MEryJILkNhvaP0MU6QF4/1QXGRNz6u2J0eWOUWiEiIkJxzofTbYykyaP3ZXRRQANLUaNdeeWVaChxUwSvxRiK4NnmCKQONbAUv0MyLQuy0plaO42y4G6sxdt4u207mmqakRSwYawlGbecugrXXP5TpZsUaVD6Kdvh2oACpWb9FvZdXGjefLcS7292wGhJZyYhplwzUWd5IFge/n4P15e+fcbrCY3o/olowUIpQctczkZmKzHWlMFZ3wyfWxznk/H++3Y8+cKnShSRPskAEpDUm06BkUiBnsyOjHcxXD73h1dQWGVDvilORdOkDCWwtFuRnRiDWLoy7WCI8RbnDuypqUJ7UwfG+B3MRhSLxsc/gtUfjfnz5ysmRzCqN3PYdBPbQDxkDaW1vaSalxRsV/7s75h59CRkZgWdswOSRki80I0u5Tr0FcAe3lslQIrhJjqCFu74FBjjc5k2jSFcTA0XaHMxRZyXvrVJzEGZisq6fFxw6Rr8+rpVKp1adHS0Akoh9FetRuG9af1sOgUGhwLa3NXGd0pKCueEH8/c+U8smD8d/hgLTJy/XVRRMegumCv863CQFl4lKgITCZJjoiM5Z5mQ1+mEq5UZJ+nKl0dxO9caD9cTu/Cvu17Fff94AOPHj4dIhL2dvwOqXBMCa1xlbGwsli5dCi8TgZ501mV47emLMeP44ANXiTJ8vBVjQxAs5W0CWDhSsQWvcJD/3SApnKSVWZ8MEnXQ2MHsUU7eowEut2Q9Ekt9CiobCnD6OY/h2l/cpPogelfhJntL5INcXX9Lp8CwoIDMYdHBC6hIu+CCC+DxePDYTx7HeX+5AIHUOIYni25QsvsYWMdAJq5ElEgIzyA05aJiQxonss/tQ5O7HSbOX5PHDyuT8OQyei6/GySfues1PPrwPzFhwgRlPzkSldmAcZQaiYTQGmCKC41kQJcbPe+iW7FkzkxkZgtnySJG4i/ELEOSDFds8ZqFXztPWPfdICmGG4m8kSADj6ud4Gjkxio/7gj4TYn8jJxk41icfnYQJE855RQkJCQoIsvg6Q3LHtb71k+mU+BroIA2h2W8y7gXbqyj3Y3n734ScxZMgSHGyuJclMrI2XA6BcFSLKMDzV3ymgyPU5O4nXHohi4fArIRMBPJeGUxyKWAIOn+5y48dfdaPLb6CUyePFl5qggWHcn8HXCg1J6rEFtuTLb09HQcddRROG/5rSgcU4ip01MZ/02w5HdIbiIXdwaK4rKTTf5J0/bBV337z3PIIiQgSalZnVPqg3kDyeQmIxlxQyOTJYX0T0FVg4DkI/jlr27GkiVLEBcXtx9ISp/0plNgtFBAA0yRpAQs29sIlvc8jVMWzoAp1q7CGw3kcCRLmJ9718B4HwbJLXNPQFKs7jyM5zUjucUGTMihVT6XfpLjrUno/OcOPEmQfPThxzFx4kTFGWtMzpHM30EBSu2GNKCUvdTlmDZtGm68/XG0NEdiyeKpXIDIK9N7MRBg5wUwFWt5AGCSKAJPvcYo9eXg92WRE5Dk5VXqNDmHnxGgPm4BnzjBU09JUdviyMNvf1+BX69ahzvvok6VaeNEdSB+oZpjufRBbzoFRgsFDjaHx44dC3dXAD+/4Hqkuyw4bvGxlAT9BEyRDwNqBkt1wy6ZeOFsCiSJEQTJKB7TjwY0ETOFmg159PPMYRTgXJaYeOWH/8SrT36A1Q8/gkmTJqn5q+WMPdL5a6CRhTg8OE0u5fP54Ha70dHRgdbWVrS0tOAvf/kL9nz2Lv72l5MwJqWS32mgfYdVG5mzDoH24CY1hbU71fbdt61eHvCeoKlg5JcauUj12ChWq+gCH9PASSy6ZDkigW1RJ2Dy0f+LSUfNxGWXXabUBKKTFJAUIut6yS9RVH9jFFHAT/FLNpnDkqasqakJO3fuxA9/+EMcM7sA8361BJVpBlT7O1HHrZF5LFv9HnBGcy+iIieqGB9CBogDJ+6hiCkTWjaZvQZmMxKQZBQg30skY5VktCPZFIkcWraj32vAHVc9ijNOOQPnnnuukl7Fat9XkJQ7GlSglAsKWAqhxajT2dmpwLK5uRnPPvss7rvvPnxv2TjccP1xfBBFBMuWbsAUkJQscuQ41Z6vpR2MxvLegQgZei3+P+I3RW41EEnmlTW6GVJpZIILsy0dt95GNv3FXVi85FQVUST6SCGwKLL7wq6re9T/6RQYYRTQ5rAYdYThaWtrQ2NjI+655x68/uZ/cfkdF8I+Jwe7XPWoJ1jWdgNmG71baC5FFzGgSfRrav7yn9oLiErrOYG7wVG9b2DuHwNsFAmFe4yg03MCkwqnECATGYOeRL/Oo2xjsP6WNfjk3XL85je3KH2keKeEQxIcdDXMliwAAEAASURBVKBUfRZydHOXXV1ditBC7F27dinAfJPE/vY3xuOi7+ZQRO8kh9lM0biTvyFYellLOyB5QFgqVogtmZbFvUg5KHDXs4kHOZ1MFQ/JsCsEGKfNWFUDiWswEiDJSVptebjl1g8IkJ8hLj4Dt9xyi4q4EQJrvpICkpro0fP0+rFOgdFMAWF4BCyFu5T5K9Lh+vXrcfPNNzMKz4ijv3EUTr9pGT531TBDOiVIP7lL5vBpZzmJdlrFXeQqvZzD4lrkIUBKXmCt+YiRZGnUS85WWMk90muZYYcm1vFhYg4yO5LRKJnO78fYM7DmpifwxvNbccqJp+G8885TorbMYeEij9Rwo91Dz/3XBpRyExpYCrEFMGV1EnZeWPnnn38eDz74IH5x5YkEzDxkZJLlpyjuC3TQ15F+jnTjCQTE91JAkhRWVeGE5NJEviaLLmw6N5KZOwffI6mZNcTA1PNWez5TwL2DJ5/fToBMVwAp4Uyy+sgmHvs9Y7h1oAxSVv+vU0CjgMxfbQ4LWDrpu6ip1DZu3IgXX3wRn+38GMedPgVn3Xw+ijzkMMnwtBMw22QjaHbR51G8i3wETCVpci7LjJWa4kZyj/QtUeK1g8kOo8nsRBq4sQZ3KsXs9rdLsPWxrfhkaxFOJkBKnR/Rm4oEKBGB2vyVudvf+fu1AqUQXIgjxNZWJg0wheBFRUV44YUX8NJLL2FcbiJmHT8GK5ZPR3YmXXi8lQRLFtAkoYNgSbeAbt+tAFcd2td5djqDEzCFgzSbk7HprRqUFgOrn9qG8ppWWrJPwxlnnIG8vLwQQIp/pBBY4yKPVOkrfdKbToHRQgENLHtylzJ3Ra0m2759+/Dvf/9bqdXOOnc+rOlRWLhiPoxZMShledouzlkPJcIgZ0nuklwmYY0GIboicQ5zBsMqYjYZnSxLIoo3fIzdb+7B2ue3IOAK4Fvf+pZKMCxlHAQgZdMAUrMn9Bck5Vl+7UApNyHE1gBTViaXy6U2IbSsUrK999572LZtG7Zu3aq275wzB9kZLDHBVakwRzKnu5CbG0eyktAExqKiZpLZhtc37eZ7NryztRjx8Wk45phjcPTRR6soIQFIWXlk0wBSY9MFIMNBYOmf3nQKjHQKaHNY5rHMX43D1OawMEDvv/++msMCnHYHc3Mdk4fkzHgq0XxIJiOUmpuElNx0lBWVq+qPVUV1qCuuR215I7ZvKSJnaUJyQipOO+00zJgxQ81ZmcMCjjJ/ZZP5KwAZ7vk7JIBSG0Q9iS3GHtk00BRCa8fy/ubNm1FZWYmamhplSZd9bW2tOpWEWgnIpaWlKZ9N8duUqnJZWVlqtZEVRwNGOe5J3HATWOubvtcpMBIpIEAlbcWKFbjoootUJUMBS9lknmpqNZm7wvBoICpA+sorr6CqqirEJPWcw6mp9Ephk7krroTTp09X+kYJg5Y5q4nWcix6SM3YOlDzd0gBpaIM/wlgShNiizuRbEJwIbwQWBPTZa99Lr/Rfie/FYLJyiIEFCDsucl7mqtPT/Zc5yCFcnrTKdA7Cjz88MNMEvMPnH/DOdjw0Hrc9+c1uOmmm0KAqTE+Mm810Ow5h7X3ZS9zvecclvkrm8xVbZM5rIGiHGvva+A4kPN3SAJlz8ekgZ9GdNlr4KitXBqRe/5OiKYRW8CwJzsun/Xcev5OP9YpoFOgdxQQbvJnz/4Pdqe5aYm2YRqtz8/c8Dg2vfAR9YtWxWXeeOONIQA8cA5rjFDP97Ur95y/PeexNm8HAxy1e5G9hMAMi6YRTm5WiCSriRBYmrZXL3r8k99I04h74LH6sPufuDRIE/EhNzdXHev/dAroFDg4BcQNKCU9Ep0ZdlS4G1gipRWV3jZk/HI2fn3DNxBX4cP6h95Uc0+4zOXLl6t5JXNR5qswLrLXtoNfJTh35TOZ89J6zmn1xiD9G/Ic5cHooAGjtj/Yd3q+91XElYd+/a9/jOOOz8Czz22HGH9WUOcigLlgwQK173k+/VinwGinwKJFi3DqlTNQNjMKn7nr0Ea/SQdTFDroAJlA7jKObnhpdOGZYs/Ckzc8Si7zQxTkjsPChQtxww03hMgXrjkcOuEAHQxLoAw3LfIoQvz+nrkYf6IXNtbEadhtxBP3b0dNuQ+bPyhBbs5Y9YB1bjPclNfPNxwpUFxcjAWL5+GCf16I8jHAR95GOphbMCO9EFXuRnQ0tTO9rA+xBMx4OobH0QtlvDUV2x5ej6q3yzBtymKISD6c2rARvQeKqKKQHkPxYfKJNnT4K+iqUA1bgRUX354gLq5wGOZi22t1ePv1t7Fw0d91bnOgHoR+3iFJAZG2RLqSTWMULr74Ytz455XYk21Fg7sGnfSF3NfRhdM8SRhnzUNFajVqGN1d39SMpo422L2dytF8/HePxttPbcUVP1kwJPt6uJsKCv6H+8YI/0z0J3/4+2K4fJVw+RsYvMMoVHM9j8sZQbCXQf0fIG9JDZb/Nhb/2XkmHn3pdNS3vE4n2nuxaPFcPPTQQyOcQnr3RjMFRDROT4tCUdMWzFs0RwVnCEdZlwFUMSyxjkEfzWIr4FbSWILjsRQLsFgV9sqISUar2Y8Wfkecx6fZc9DIOtqi0hpubVRzlLIyHntcGmIL29BGZbTf3wabNx6ZlkJ0mPkeI1PbvA1wddFXizHlLmZBSRibhoVLC/HkgzvIXQaG5UMfboNUv9+vjwKiUzzp5GXY17wFN39wI+zl9IUsbUJZZiSauqrQSm6ykZtkA3q06RPkpb4IR5sXD9a9hd0+J3IZbjiZORUSGZd95yV/wqL5S4blnBnVOkrRTT780iJE5lWg01/G8Clyk4FqLIy5gxDYhDrsxN6OrXTodCDCnI2uItbN+ca/kJc9QYkiMoiG4+r49U07/crDkQJvvvkmxHjzcstTeL1jB+yMt64nN/mJpwF7CYbVfoYRM3abk+aLpoqOWVDA+OzJLHG7OLIQNxx7Iza+sWlYzplRy1HKg7/qZ3MQV+BEu5fp3AJMskH9JBdG7HG/i7HWswiSq+GmOG4ypLJcbTuSCgwoLapByb7qLwaEfqRTYIRTQBgCSVBzzyV/xuy/nIXd7nqV0KKBEla9TBi19SCCwcAXJmb4MTIFmpW5Ix34dPUmFNAoOlwZi1GpoxQFtehZpi6QVE/1DMhvZ4Q4MxJxRfTzGTd4/oONbeej01vM99q4SZ25NnKd5bjy6iUqjVSPYaEf6hQY8RQQY85nWypgeLtCOZdLBqAYhwUrMqfij2mn4c78c1hCpZvvYky2mZl/IgmUCbR4ZzOZ7von34fYA4ZrG5VAKQ/sjr+cgvgCJgJmejaT5Kns9r0X6aHN1QJWqg1JEgzzZ3q3TormrZixOEo34AzX0a7fd78oIC49z/2//2KSNZkJcx2IYWbxKLsNY2Om4xjjJCaV5KRR3KQRyTTepFBEj+f3OjaVor6qE8KZDtc26oBSuEkvHWQnnGhSSGg3j6GhJlplGpK8lSZBSn6kNZEqEKijaN7FdFAdmL40DjOOS9fBUiOQvh81FBCuMpIguXbViyy7EAUHK5bua6/AXnyOG6sfZPgMOUpmHRewjFDcpJWAGoWWkkZKbB4licn8G45t1AGlPOwrrpsBizESbz4A7HhDct9FESBZGsKQwCqMwcc4LnYejo39ATIjz2Y+vHw+aOEq2+Hx1eOcFfkQ/0u96RQYbRQQaaxqcwWOZsSNlF9wNjPRNorRQONOMi3cWQTLcdwncTNTBK+hJ4nl2+Nx65Zb8GHDO/jORd8JuRgNJ9qNKqCU1SxjTAQ2r23EieMewZqn63HnqveoWmENb658kmxemElRRScYT0EcClBoGYvjohYhISKNRci64GaG9WknxqG4ZLdKez+cHrZ+rzoF+ksBEZ9PprvQ2pufRYo5ErE+C7aW7VbZgQqoj5zA9yZLqVgW6ksl15nMagJ51jjsWv8RM5RbWJKauWcNFNGHWSOvPHqaZEyvqOxERMwxeGPdXcoCJ3HgMabvw+2tpoU7gg8xGWn2CYhELc07DfSkbEIz/6QgkoUP30C1pstXgyt/OluJ3xILrjedAqOJAgKWNy+6GS+t+h6afZ/Ax1oODouFRh6rMvSks2hfgS0FGx/8Dz56ax9Wb92L/OxgGPCqN+5WpMrNzR1WJBvVfpTypESUaG19GytujWXRo1IK2DXIiy4kV2lQEOl0+1ijh6Uh/KzUaGBdb2MSPlnnxDMP7mVm5Qm6rnJYDXf9ZsNFgYcYkfbkS/dhDt2FpN5NniUJpRu2Y+/6vXh1zQeoKK6EqLmEkRBgHW7AeCCdRj1QijPt9ddfjgffOAVN7g/hMlQxe7IVXg9LQfgIjNRdig5THM4/fc3JONVnYQw4VNyrDIThPgAOHBD6a50CvaVAXl4elp45DVvf24266hYGYhQqcBwJwHggDUY9UApBJJTxqGObsPiSALr8dcyVx2JkFL6thnhEmSbgz794E8+v2Y6c7PGKg9TB8cBhpL8ejRQQJkM2DRhH8rzQgZIjXB72ddddhnvXzWEC0iZYzSn47HWXiufe/EEpk45+X62UI3kgjMaJrvdZp0BvKaADZTelRIx48t8X4bF/rMdzz+/oUzy3GItKSkrUGSXyR2sCsDk5OeqlXEdvOgW+Tgro4/TIqT+qrN6HI49EHcycfLHiHNevexC94R5FoS0uR8KRKnM4LeMZY2KRkRFH9baPVR/jUFbGFPkVUjrXhPLKJoZOVipRRcQVTdF9uPvSP9Mp0F8KyPgUv1/ZywKenTsG6WPi6BfsR1JGLNIyE5ikmsl3DWbum1gZsVmVXDAEGKJIPbws8pp43d97Ga6/1znKI3hykpvvlltuCVq66Sc0Y0YWTlgwBicsTEVyoRU+g5MRPG5CpIf+YtxYWc7A4u2mgBVSXsLEbM+i+9yytgxvr63GlveqsentHSGxfrhlfT4C0ulfHUQK7DdOed2kdDsWnz8deQvHwJTvoHdHJzrp39HJsepmijQPUwhaGGlhJVBGsYRDJMdpJH0iu/Y58eb9NHBWufDx5hLk5Y7eTP86UPZiAMsqLMXHZEVedvYEnH1JIfNSBjjImpgso4NVIVnC3eBibLgvuHHwBYKxj+Q0aT0nN2lglALrQvLPTMBkqKTBwYDJOGZQH4MP11bh3XW1ePqZT5Q1XQBTq/PTi9vTv6JTIEQBGaci6UydkYEzfjMP/nwjyplTtYnZr9roGdwacDFnAcGRi7gApIuyj1RDNBuNzOjPLWCiCxyTWhA4I03M8c9xGke3uEJzGkrXlaNofSXefO4TrFh+aWiBD118BB/oQHmYhysAKenYpJ1xVj6WrcxEXKGPAMmqc4z9lvhvH7cAh1vA38VvCVBKcLhsPZtRvWCwJIGTuZ4JlIrDNEYQQh2K07QaktC+Nw5P378Lzz67Q1WtE2t8b1QAPa+kH49OCoiILGqgRWdOxJSLC9GW7UFJoJHZxZ1MSu1CC8doKzP+lAa4tBMog00SG8imNQMPDARMA2IlVptjNZbRNFL3JpocZgxr4CSxPMoJ1nF47vp12LDmMwLmSuU1MtLHqQ6U2hg5YC+O6KLXufynR2P6QhsSCJAef7NKySZZhPz+TsU9gu8EILksm/YfczyfDEEZevs1vmFAPDcHNzM5RxuBk2BpjKWOKFq5JLXticEz9+/Fc8/twgMPPBAC6/3Oo7/QKUAKSJ5IUQfNPXMcCi7Khjs3gHKO03omcCknF1nlczNnpIQMdi/gStLhcQgfQwf8DgenrOnqLTmQwWri3oh0gmYyF/g0Lu6pDEtMNsTgGFs+XrxuPd5ZswMXX/R9FbzBL4/IpgPlAY9V4yJnzkzHj28Yj5iCDnKQjeQgW8g9digdpHCQfr4Gc1VK09ZnOWYoq2o9eUo19nogZpC/VMOQQBnF4RjJfQQBk87txrggYBJMd6wz4hc/fh0rLvrBiB6EQYrp/4+UAsJFvrHhNVz7/HmozGpDMUXsWiZuqaYOspr6x3qK1ggEUwmGgNLAkemXQdoDIOU9itpfNBmsApKyDwKlOhbQJGBO5OKeYYpQGYTSjDHIKIvBxlUfIi6iUI3Tkchd6kD5xehQD1m4yCt/eiyWfj8ezkAFuchGxUkGyDnCwHT31PP4mXbNJ+OM41AS/fYYcl+crXvRlqGmVukvPpEhqJqMw+51W41LI1I5Hh0EzCjqieJhMyZQRzQRf/vVR9iy1Yn7778f+fn5Pc6kH45GCrzxxhu45JJLMP+s8Uj9Xiracj0o8zVjt5dZCViWodbIganAjyDp5bgVUVvjJBXBDhix2kttYIaISmA08kMBUeowwfyTonMXsGRuIOQxtjuXiS+yOVanWLLwzo0f4d01e1TdblEbjaSmA2X305TVee/uD/Dbf8xGTD41Osx87vbXExQ7aMEWgKQV29RKI00n/Bx3zPfLY77dDYiCltp4O9QAUeOwezCqHcecNDn+AjStBEqK5gRLM9O+2UwJNPhk4L//aMTdf9qM++9bjcWLF6vf6f9GHwXEUCMGm+tfOA+lWU3Y461DCYMk9lEVVCVZeQQglZhNkGSpBmasCL5UA7R7hH7VQBWyfmmw8g3FYQpYCpcZ3EdSh3mUKRJ5pjgCZiKsb/nw0BWvYuUIk4J0oOQjD4Lk+1j196MparcSJBsJhA0cbgRIuvwETE7uWxQwygKtgWRIJy4Dqw9NjTv+ThZpaRpgyjAE9ZUmit8mijYWYzJshkR8vs6MX/1kIx64/xEsXLiQ41aNZvm23kYBBTR95OUvnIGSjEaCYyP2kouso3hdb+TAVEogAqUcewUkReTha8HO/jZtcMp5QtxlN2gyWe9EGnsKmF4tmwv7XNtk3HniYzh56TlKShsJ43RUA6X4m4mIsHe3BpLNKoWa39wKI1OdG0wcbBRjDHQBcnmbWLY2OO5E7Bb1T7iagjv+0wBTgFIwUDKuG2kNN1JxbuFqbTemYtc6O84//XGsW7dOB8twPYAhfh4Zp8JJitHmJ89/EyWZTdjJVH97aazpsPhRbeJglEEjAOni4t7FgapAkgM1HCDZkz6hwco3KYIHuUsLr21GEo09k7mwjzUnobA8AfecuQaXMPz3pptuGvaL+qgFSg0k9xAkb/37dHKSIm7XkHtsh91mpnu4OElIfI2LNu1qtHW2MGdlUNwOJ0gedAx2c5hmBZYci4Y0pbe0EijtxjTsIVh++/TH8PrrryuL+EhYsXvSQT/+ggIaSD68+j58885jCJLNCiRLuHgbophq2mEWpRB9LjyodBMgW2hgdAs3GSZO8otb2f9IAFNWc+EuBTCV/pLhFHQhmkkPjrHmZIwrT8SdZz6Hi+lzOdzBsntK7k+Dkf5KBp8oxPfs3kyQnBYCSZjb4SBIRtJ1J5b+YmLAaUcZWtpb4OHYE8lmoEBSaC6qI9F7Kr07j5kPVUlOAdYalzIUbmY26vLXYOxiF556eTmWLFmCffv28TfyS72NNApo41Q4yW9oIOmtRTnjagQko1gFkXIGF3QDKoWLbCBICkc50CAphJYhJ9ZzuRZdkEArO8RH0+/Cdn8rDUv12J3dgKufX4YHCfIy34bzOB2VHKVEIhQUFOCRF09CZEEVs5dXwmhzIppK6QTEECLjmNO8lkryjejo7AYrguRgwpGmfhRxXAqeycINcpYmiuHCWUYYx+D1+zx44ekGJYYb1RdkBOttpFBAG6f/c/dJqJvjxmeeKlQaOxARb6VrTiQyOE5ruZQ/6yoB6unHG1KeDzIFNO5SieJWxWEmUWc5lTpL4Sxj3jLhqSvewt69ezmOhydvNjzvuh/jQFY1Ack//t+piCmkOE3DjT0iQKtdHvIwiZEHU+myY0QdStHZDZJi5R5MkJTuKSaRFxXu0seBKDp5kLP009ndQ87S5avDKT9IJqdbo3RXMqn0NnIoIONUXIBOPvMo+OaZUUoOrd7ehQlJKZhvKsTJOIolYaNRJIEOja0cJBwswuEN9kAVkss1ZcCKY3s3Z1lPznKHtxVlniaY59lwwdVzVH+G6zgddUApxpsxGSyCtMRLkKxj0fZ2pNF/MRYFNJ0cTemaYgM+RENnSVCCIUh+XU2NefnXAyxFDBewdLOej9Nbhst+NV65i4ijvN5GDgVEVN29ewvilidhFw035YZ2ZMXE4hhkYxGmK3H7dezChzUVwXramr7m6yLBl8DSgyqC5h5/C4p8Dci6OBM79mwettVLR5XorTnqPvTifEQX0E+SZR9S7LFIx1iC5AIujLtZevNpVHd+GnQ/E05SodXXNfqC19UkG/FOV2K4ia5DtIZbCPAR5gyK4D688FSj0gMNV9Hm66Xw0Lq6jxbrwsJC/OqFc/FxRiV2Ui+NJBOOQy6WYIaSeP4Xz+Llul1Bw40os4fCQBUyaoOVFnAwggf0s5xN485RljREbzLimSvfHpYi+KjhKEWUEaX4HX85FfGFTpppGhFjjyA3OZEW7jM4+AqYXWUX6ruGFkjK2FOLtRywiRgeYOikL+CknbMJbjobn/qDFAZg1Kr+DWeFebCHo/u/PD+JDpt8bDoqs1tRQW25OyqgQPJbipdcij0oxstNpUMPJOXRaZylOL+LHzIjhXYxaKOM49Qyz4ELrgmK4MNtnI4aoBTrsIincdkMSTQ0w+YAhZjjad/+DkHyREq3b2OXZx08fL5KJzkEOMmekCEMgyZdqT1FcAFMNx3ju7yVuOK6Y/Am08AJN6K34UsBeX6rVq3CSTcejwomt2hisMMp9sn4LpZhGk4lcH6C//NsAJxUoMujHiqcZE+Sy9wRnbmKyPAyKYeHPp+tKPU1YsrK8WohGG7jdFQApaxel156Kf78f99iHkkDubJ2WgzzEEGVuIGijB8bKHQ/gQ4aRgRnhuLYk3GogaVm3PGTB/YZOuAhYE49MZbBGHUq1VbPMasfDx8KaNzk1OMy0JorWX/akR2byGV8Dgoxm/68HbgH/8S2lurgaj6UDXjKsCTGnSDnUcQUb5KwY7u7GBdfdapaDIbPk6EGYTjdbF/vVSxtQW6SeSQpythMftoLj2Xnj+cpzYSbNajzbA7mDwiz8Vicxq2GZKW66ev9H+x3KhkHAVJyYnpogHL5KnHNdXPUAByulsWD9XM0vSfP7dZbb8Xpv5lNUbWR3GQX5mEc/+ZShx5Jmedp/KP5U/pKikP5EBN5DvagFMchE8rLMepTWY2qaAmPWxSjFvThNE5HPFBq3OTVP5+HhHESadOGNLoCWTkEQVu3H+/QpXwj3K7wiNyiy85xfB9HxzyEuXEfYGl8AEvia3FSvBezYtehMPLafoGmjD25BpNQM1kHN0YOSfo3N8PZpiyNUgNQd0IngYZZk3EqxsakDAdaclzkJjuQFhvLpXwWR+kYJt6tweNYz/DEdoKkiLXhAkoTXkn9KcqynkFV1r9RnPkE/hS/LDzUMxFexPoobhvUZ5XTZaiO4zRxQSJikj0ql6b0ezi0UQGUors7dgFFU+p8zGY/XcqnEGzGq+fTiZfQ7PkkLGMv0boYs+LewiTHvUgzX8Ss0MeGxoCRGVfiTIsw1vZ7xFhmh94/kgMBSHFEl6GlxiAjx0RRFVBcZRs6fGW44uolSgc0XAag9EBvgnsBxU1e+KvFKGWyi0ZDJwXuAurRj1bk+Qyv4/HWfWEGSeC62CU4xXEFMk0zyEAchRzzLMywTgnPIxHxWyImLBy0BMxmjtUaZjkqZd7MqcvH4pFHHlH9Ds/FBvYsIx4ohbsyME1a8lhZ11wEqxhauQXAYgk4peQmNylJRgw4/WnR5hmYHvk4U+fPCZ3Gz/ok9d4XUOn5O/MEvhV6X0LO+tJCa68s0NxMBEqThTfOnIF+6n98XK1nLUnEhg0b+Dm/oLdhQwF5XlLq2JdlQBsXPovdTG/JKVzUU1QfnsFaGnA6wguUTI12dcwvB45Gwi3KxJIFnXkzJHFHA30rGwmWBYuyhpX4rXiSgaPU139mEWeOmZENFy3dos+LRj5hqlDdmB9vosXzqXgw9EuSET3ktKh7qItMDZ6X1r4drh+g0vmAitfWqBBhmogoM92QPJu0t458r9hJjj/Z87pmCzOvI4o6cx9FcBeOPSkLG77xJPWtXphMUtSsb6B85Dem/6I/FJAF3c8F3ZRnRrvHhTH2GArc+dSjm1GJj7GmcydBsp8D9YAbfDLhAiSaCg54N9wvCZTipmHlOHQH0EbgbGXy61JfPb61bK7KirRy5cohP05HNEcpq/Rjjz2GC1ZMIbfVRinAzRQCGcSXJDUaWqif7KI4rkCnH+MjzX4hxWwxDAmA+fCR81yUdu4PkvJZp28Hal0vEdj63gQflXsQ98zfQcNUNuNnOYFYHlcKnXUxtPHcb88eVmJN36kxMn4p41TUQ5NY/riaUVftXPDyGKCYgBzVwe1gnLSbpUdESgiTTm+RrRDLIn6uzi9jdkPXA+Enphqs/GcjOxlJ53NyFPVGP1p9HtT52uDIsikuejioiUY0UMoDEHEmJVdqI7oIKhaK3ZkcEDaK3cV0194BPrMQ8PR1pGRYl4d+Wu39B6q7ngu9HqgDmTMGOjhFkUe2WaOZhs1LjsRJsGxFeoYVRUVFuvg9UMQP83llnMqCPu97U1lWthNus4+xYukcpTG0F3upHOq2dPOZh6cZcUfi5RwzksQSeL7zj3jP9XF4Tn3gWcQ9g+t4nsmOzEi7pK1kGg8Pswx1IWdx+rBRE41ooNT0k0mFVgWUUcZIijIJfJR2AuXHHJQl/eYm7cY8JJhOCg2PctfToeOBPnB7O2m9txMqqXd1RLBPHvanC7NOTMNbb72lFOXDYbUeaDoN9fMLR1laWgprjp0SjlvpJ+OZGchKqGzmgv4u9lHsFhFWWLT+t6tj5mOa9Ux1osZAKc5ufLz/Jz3kGUTk9nBBNyPLEolxEQ50Mhl2O3WVExfmK6CUMTrUx+mIBkoh/pj0eIKHm1yjh49K6mlHq0fqxnaKqcX9lmaizUHruZzUzXRtDe7XDzlkwvaBzBdyF5Ijk0OM0B/HIvUJsFiNfNuHrJxYdSmZgHob+hTQnlNqQQKD/nxMzmyirCCLuomROJ/jtY76oNgTDqA0RuMXcb8IEeXO5tsIwsxANFBN9FoE+XaylVlc0LMdMYiNsnGu+LgIdCInL2NYSD4j2pgjHOWYDLFuEygJISZlemPsIpXJHYyYpf2j3y2COkKtdQb2IM1+NpIsC2ldP4FFwcZTLROjLN5t/i2o6fov6tyvaF/v815wUkw0wXkToP0+hT3rRAvD3cSokz42EWVlZXo4Y58pPLg/lHC+AHXM7RRHfQQQi9lEOUGA0oy9TNMCSg7h4iZXx5+LVOMk1cHPPa/ilpbXBr6znGeUdWgdiOeizooBNi4H7QHmgaXRKi1OJZ+eMGHCwN9HP64wYjlK4SZFnAlw4AWBkgOQooxoSAJcpxlQpXwn+0E79VMzqyVqLc44H0dHPEMR43Iad45TICmfxRnnIst8JWZEvYyJ0bdrX+//ngyjhVPKyNQeFq7WJqOBfZPM6E4ViaRxKv2/kH6GgaKAjFOJGhPJoJNqEzcBxcbMOwFylrKc70AJHyiRJgzCwfHWXJwX9bNQV65t/DOPw8AthM54iAO6r4ksl0WYzCRY2unXRh8NAqUbKZlxqv+H+OWQeXtEA6UARWY2o28ELBm2aOJfAFXcPuGAbFNGHM2C3NcnYqYoc7DW4n+Hlr1nqYvZvt/HuZZfIsN2/n7v9fkFn56ZaT0MBEoTFwETX8nAF6NOXt4YpfcZ6rqfPvd9hPxQno+M07T0ODjJVXqEo+TS14B65RZUS2caZmomRykyRP/a3YmX0UsnUp3klc478aKTRqJBaokcnxm05MdQqSAj1cuyuk4my/DQXUgMrkN9nI5ooBSOMicvjsBIZR6XZBcHXYCFwsTR3MP1Oii69m+kGDise7a97t9gfctReLt5Nj5oWYaNTVOxpeObDDEsC30tz3FN6LjPB3xy4iJpo87VwFVaeEsz/4QT8XGlFt2s4lTC0ck+36T+w6+igACE8swYE0f3MRc8DE9s40gtp8RTg2ImA3TyFN1K6a862WE+vyxqDo7rXqBb/VU4u2H1Yb4dxo+68V2AMklV+LGSu2RBNOouZVFIy5axK5oF6ePQbSMWKDWSl+xr5CFFUropeDkA6c3IYcfUZByOavxpX+zj3k8xV2u1viewq/1WDvj9V2rxndzn/oP2NSWWW2h86W+T6DAzV2jhKC0Ua2wUwyX8wcA6yxVVTbqOsr8EHqTfC0hUVzRSVSMyj5ECN/WVHKFN/GvkK2Vx7M+9GCJwXfy1oTP8re12GjJpIBqMJqs5t2iOzSS6PKXyfwpfWagmkr5WlTUiIyNjMO6kX9cY0caczMxM7Nm7jUBihkEBpRT2FGCTxL0uhZP9Xcgkga7WLN2O7Nrrnvt69zvilRRqdibm8HgFxPveqPMnQMazf+O57SMvGaBvnBGWgFTmA3Jzc4f8St333o+cX2ZlZSnQiGRGcAtBpZVRVV1mF5VEdVLwgx3tZsv62OVfRM9Bhml66NcGAtQtcd8IvZaDUyNODL1ON+eHPl/dsQV7WNSsX40FxRJonEpj7LowKDJOLVwUbCxGVltBR3q2oc5RjmigzM7OxhtvNnFYxPFRCEdJp2zqfvw8Fiu4Qkr1mPr+z8tUZ1qzGQ+9MqrraV/kvifA9ni714ecT+RA7JxgheyNONFT78M/g2iA+L7XG3Qm7vUJ9S9+bRSQMNOq6mZqm8XkwefIKIhaswjgYtDptuL0Y0XPtwTjxbUO/jxWjDiHboWWBfhN3AL1hSjDNbim6ZlDf7k3n5iNTBWXxlmYQ15hL+0DdNXjgu4wWjlWjZB5OtTbiAZKIX5lRTM5fyuPzBx0LooydXxY5DDlj2Aja3V/tCOdzNijtQgDY7m5crf7tmlvhfY2o4D1F83LSor9aXLvdpO4BY3jacRI5eKUEqB0oGJ3cJXuz/mHwm+FyxA9q+jwZC9N9rm5uWqT1zk5Oep4OMe0Sx9KiyoRyRKvkjegkzHdop2keYdPtD+jUyhEW5Akz+1jE0DrV5PytGYz03tI8T4b+8MwW0IlIRKRnJdVVTI/ZRYO7TaigVIGoKzQJlmp/Ua0uVpYv9tNy1sUASZC1cqW9bo/Q7HNu2e/J5xiW4D2zi8DZbr9W6HvdQZ2BCtAht45sgMZV5KPMhZ57F8hfywuHp10Cwpw0NH2bXAoAJEBOBwGofReA0WJeZbsR7IXt64MGjl8tJCmprMIXFY8J5oXNR+9hzUvN6O6sgVVFN1kmhn4jJcvX47c3FwsXLhQ7YdL3+U+RfxWQMnR6nQSKG0tTFghuQn4oJncBFKDpo9c5U9a1uJT93cUlYTWB2vfipyNkx0/Vh/t8PwXd7esVsd/dX52sK/3/j3qIuMcUeQlg36S9KKkftSj+hXBcWrkk1PzlDQYym3EAqUMvlxOmk1vfwqb8VvU3RXB7SVYWlqZHIOZdfhUJE2ZVwzi/UDKLv8eugE9w4L0y9RzzrNdy/yW29DoWR967ln2FdQR/ST0utL9SOi4LweyyLN7BHwRu9N4+82EjzaKbAHyyha8va5IKcilIuNQBwsBSCn69tBDDxEUI5HIbeL8NKy65iTEFVjgogXfzc0jsey0ksqfLH0mQyJdXWhBDVghEy7OlI6//PIlNH0Sh5tvuR55ueOwYMECrFixQo2DvtB5MH4jz0e22bNn49V/vIuoC7mAsyZXRYsTzoRgX2GnZ4WLb/YRKMFysX9t33TY7uRZkgmUwa/UswbTX9vfOuz3e/Uhx6jkozzJJo5BhRyjLo7SZjiZoT2O3LNzHwMkfDTpDINxOqKBUtKMnX/++Xjmr9uw5NIgV+nt8qAtokWJ32YZf2II76fPbbnrcSRHBIHSahiDY6OeRq33aU7yWoriUwmiZ4bGVWdgJ4o77wm97suBgKSV2oQI1vsRvpLTilbSGg46M1NTRuKZxzfj6qt/qwZgX86/fv36kEjbl9/35jfCMQo4yrVOOWsCfvfCqYjIN9HOy8A2ZvduCJSjwkt1AsHRK/BIh1f5C3Avei1RN1i4lzA/sRZbfbswd1USo6Ei8I1VF6CjOID/3Pc2Fi6+Dxd9b2UIMAdy4ZDqiRdddFFvuh/6jtyPjFPhKCtKtiGJKpo4ei3sYaq1hpZOOGL5oPl5v1bz0NUG+UCeEznK2QTJaEKlSAMVMk49AUTRcFW8vkItEMOhxPKIBUptSKgBWLyN04n+hoEITrhOeNyMzrEyjKrvqhvt9Gpf3fUsisy3Ic96nXptZs3tMZYf7vcdedHu/xCfdlytioF96cMjeINjD7HMbWnHTPUreuIRYGrIXdJqakykYaA9JM4cKTDcfPPNCsDkxJKBKNxNdIyLFi0i9xiFEy+YhHnXzIe9wI9a+pl2+pxwsVyAhLa5mJvRzwckfqEaSATNGvJaHEukCcsi3DWD/WgYsAQsBEo7qo21KoXXnFXJuPC2lXjouo1YJIC5/FIFmHl5eep34fwnfdpXvAu5ubmKkz3YuaXvAqbSbrzxxv2+MmvWLNz+vy9hgrEQMQQRiSCTiBxnO63eUhpUHrrETQ+nJvdst7HoyvGUdCTBRxk+I1TaaGiMMTnw8j834oaf3a446iMdp4NNhuB4G+yrDsL1tJV67ty52PxuGczM5izWYGkBRjn4fOJ8LpMsuKkP+vFvZ/v12O78HiNxPvrSWQQgiz2/w3stJ+8nkn/pi714Q3STkqoqlfmvDchVvwjQNajT207wsKN5j5ELgAUCBsKp9LYJQMpvKls24bSzJh9ysvf2fAd+T0RsAQcBlHtfXoHrXj0ROSuYzTuvDnt8JSymRV7DU41G+ve1+1tYgreDoBncnEw91slyp13cOplXNLhvh7P7cxc/72DRKvldA/NxVlJ0LFNbGT70foD5t6Ti/s9WoKR1PQFzrroPuZ9wNgHBJWdOw0033fSl0wrXLLSVvpc0v7ffd3qO0w/e+Ry5NNBFGW30NeSzk2gcFb7IxUEG6gDOVicXJ62JHjEsjfVKFsdmMHRxqjpdLcdpUaBOcZNZ5iQ0di/oRzJOw3JffTjJiOYohaWfM2cO3uYAdBiXMUSsjPouOzOaB50uOPSCC3UfCHfgT2TalTsfVZukXrObMjmujWj37uQ1qw/8ep9fs0twkOEgP8ZziNN6HYf1HhpyKJIGbHjvjUrVZ5mAvRFphMORyX3G2VNw64unILkgCisnP4KN697t8z0e+EPhTBcvXoxvnn0UbnhhPgtZ7SAgNqKVQCfxzF4mhRCLvZuTVURsH404Ab4OUAT3qwCB7jN2e8pogCHPT5qRkoKBXJg8WwnjNFEUp2aTQOtEs6md3HYrE5M0Y96qNJzIutLP3rKW97MBDzzwgAKw4Fn6/l9AUrKTL/vtSfhGxNWhE2nceeqYCJxx5bGIWhiNuLwYMJ835DONq5TnpKmJNjywFbHUU6b4rSgX8BJAVyDJBy+gOUDtxuaXcWOr1MohVbkY9bvJQOWqfiFOoKdvFp8jPRaY4KO1owtZBqaQK2K/yFmKIac347Tf99PPEwzgGtXPOwvDz+UBWCwW/PSnP8Ud175FXVYUwSSSgQ5mMOuaCnjgnFL1j7RJF4bLkuMpokFno+IewwqSwk1yyzIupRPQHHWrfma/rmJi14DfTp1dDJ56fDvOPPNM6jCth1WSa1zO3+/9A+749zLFdblyG7BnXQMKsicgNzc3HKRQICwg+Y9/X4wFt6ShI7cJ5V5yj94aulG1MJSNhhoTRW3CvYt1f7oC9Qzjq+JWx2JwneoZETuDcfm8I1mQtNeSRU42+Z6HqcLkd65AGenfxD05UAJtp5fmA3KpFf5qxWk259RgxUPTkXN0QIG3Blb96azQcsKxGfjYvQfLrzpZcY555CDLmt/Hz54/G8teXgLfcnoQZjVjj7cWCYvjIDparWnjdObMmah8qw6pZlbKMTpg8fNhezkyBR8FLEXnF86Bqt2AtifHDnLl/Ke90/c9oyHGJaZgIU5WYnc18yusw0ew0qAay9FbtD64oH/VOO37DYT3l6MCKIWr/PB96q3MGbSUxnCsMcmtLyFYgqR7kZYJONSbzBUrLZPxHH50quDtUkTFe4zkaCMnFYW2fYnMmNSB/Px8uq7RV1R+cJB28cUXY8XFF+L+ly+lCLwYddnFFH3Lqd9zoKHIqQwswvEIp9SftmLFCrz62pO4+YXFKM/egX0UsSu8VWghd6cqPZs8ZCpc5P06CWwt5IrrCIIdCgz7cl15hkHgJAD7ahhfX8/zUlSnXlpUE420/lbz+nu9e7Holkz870tn4sHV94Y4u75cU34jRqlZ352MKl8z4hfF4ZgzU7D8uSVIuWEMtmSWYpNnD7Z6y7HDU496FoBLXpCE+CR/SBesAeV5552HV55+D7Nsk2gAjMJYURXRKkz/7GDHZLYOh4GquEkjLjEfSxXCBCERs2q+g+0d5YgPOHCUNRsP/WktrrnmmsOOU/XDIfJvRAOl0FhEmnnz5iEjcwpe+HsJlf6SazmCrBlTWXHQSYnk4dCEkyT2Id+whHcv4WdUIeA/TPGxnaoEGjIIn1evfBG33XYbcnNzFSd9IFBqekhrQjl+vWYxSrI/wW7fblQRPMQFp4kAVnCxFZtcq1DasgELFs2BgKr87kia6P8EJNuce/C9vx6N9tx6liitQB25yC5yf176vwhAKpAkiLm9LJDGawunGK4meCKcppsiflc3YLoYbip6zEp/LcqpE23ILsEjO1bi1defUmDZ17R0wh16shl6yHyStnmR8HzPgl1Z9djsLcYWdxWBsh7vUIeamByhQhKLyeGecNHEkGFH+izjVLirK6+8Ek9d9x9av6OYN5Krojx40Vf6uOgNB2OOrM3kJielpuObOJ3LN5Oz4H1yk1tg8hiQSKlu1wN7MHvGvEOOU6HHUGsjGig1PZ2I32eddRbWPLELVlMSuUrWmCHc0PYWrM8+1J7KAfcjjCHnERIjcph/ZTm5yXFkLN4iN/k2WhgvbmZ/os1Hoaa6Q+ncbDbbftykJmY3tn6AVS+eTBE4Ha68Roqi5WimX2nA7qM7E8GDgFnkLcEHXe9g7i3JuP/T78ATuwv/+e+T6ry94TIFbARcWzv34MTrshDIa0M1xeh2I4u7RdIuH0OTUwwLWHADa6y7vdXkAumFEEaQ3J98TBmrRPMacpfNShx30pBX76XRx1eLz1jT/Xdrl+G1tU8pNcGRgqXoeL95zmxY863iIYidFP+Fe9zMfm3wNONjcsj1BNDp9igaapi2ln1upO40cWESBGCFa+85Tk844QSsX/MpptvyKH6zdAId6Ukoitz0ZRPAFCAayk1WcxYSu8FwOvJp7W6gR8ZWrMfWzhLEUT001pyKR/70Bi6//HIcOE6HcrdGNFAK4UWsETFUrN8iln6yjnGmxhhyYPQ/NMQj0E0BtXAP0SclkozVxnA9rtA2LCQn+Tqn5L9oQ9xM/T6NF4FYnD/vXlxyyWVqlRbuRPqtcZRSsvfks8Zh3q3p5O6qKWZXosZUj2j66B3tYMyEJY2+i52K2xIAKfdVKz3idu/HmH9rGq59bS7+9NLZqGl5V+nfDkUmARnRR7YISF6fSZDsIEjWk3N0IiKG+Y1sDiRaohFBs72PuQidzlbugzrHQ50zXO8Lhyl6TLe/kRuD6MhdtvB1De/vM892/O71c7D29aePmLMUsXvJiqMJvPT99DoV97iJqpC9Pl6D1wHdnUCjzHfjZzAfYxxs0SbqTDuw01OBC69aGuLWe47Tb31zGV68bgOBMhpZFMEt4uYgYKkAs3vAhosw4TyPuANxuyJ2JubiNJoZ9+EVPIrHuaiTGEgk8O97sBRZqcGw0wPHaThvJdznGsJUD09XBSxEpHE4HEqsuevWDxBpziNXmQgzDTsmQ7KyfMvV5DkPtSYALjr8XMtceoLOIEhuICf5PD3SPoLTzQgjfxx9KqejutqprN3ST+mvBpLSn4ULF2LruyV0iXKjmWJus6kJkyPGcL0fj2MYhZvhJ4cpujxxtyGAOFlKtIH6vHJ/DQGzkgaIfWjMLsWkJWmHJI+I28JduciZnnRdBpDXiVpykn5LFxzRZoEIuhxHE+A7UdfViMaGvfBKCdaBM+Qe9F6Dhp8K9rODYNkVAsvPBSzXnovVj96v+tFb9yHhCL1Z1BaTbp1WH2alpyGT1T4VQBoEJBlRQ4NVjiGNdboTkE5DTbPRhXoaruIXxob0lD3HqRh13n9hJxY5phAo4zCFTvQwECiN3VzlUByoQm26A+Wz/wsxjZxkGV7G03iRIndNcxuSvFGYYsrCP/+0XnGTBxunB31gQ+TNUQGUsloLmy9ROqmpE/F/v9zB0rUsxmWMpwhOsNREcFJDxNyh0gQkeesYEz2RU2wyb6uVQPkOB2ERWtwUZb20H7Jmz3cW3o8bb7gN48aNg91OFxlylAcC5eZ3diLJzBKoBitcXV5sqPsY1c5acqPxZFSYaZqg5g4IgFCAVNbnDkSREzdHEssYHeOgvuyh2zbhwQcfPCh5hGuVUMSf/HU+jPlu1JNTQ6QPKZExVOdn0JMuT/2uxtmM1rZSOpMf9DSD8qZc2kdjzxdg2UzOsg6fe7fj8rvnqX54mersq8BSQNJHtyDkmuk/S/1khJnerZm4LmkRHxz1i4xpZhEj1gJJUjaYNCpO0rlkmKLMFL87kLQwGT+8+puKq5TnpY1TCb38wcof4b7lazDRks5Sr7HUTdOwIxylBpZDaJwqdYDk/EuMxdmYSFkthlrJd2hm3IvitkYkeyJZCiURz1zyOo6berxauA82Tgfl4ffxIiMeKIUu2gCMjIzEFVdcgbvueB2dxZmMAY9XRhBNBDdRPhtoD4zePicNsNOjJ1DknkHTTQJBchd9AstQw8xDBnc0rMYkXH/hu3DzWAxWskofSu+zYsUKvHLvx3DQ6ih5AI38e4HxvL+s+RGebH1T3ZZYjEU8PSt6LlYmfROTouj/RqYoiuUDsiwFqKMONDc390tdkOJYK1euxK//cjJ8+W00CjXBGmfAMZZchq9NJnhMIuPoww5a1js7SgggXzrFoL+xP1g60URXpUbed8oCGy6+ZiaWLl36lUApYre4BdXQFUmSoiXYHSqZ2BzTfPx2zDwOPKKZGGAaa/Htysfwn84tfI5UQfB79RTNq3i9hEXxSlcpBOg5Ts8991zUFLtRtboKGeY4FJgk2S2BUnSWoq8UDnOogKWJNxIfhx/Zp/JpZ9PCvYcmxnLs9tQh1sUSEAzLjH/LhLaKAK699trDjtNBHwi9vOCoAEpttRaRtLCwELfffjt+uvJliuD5Cmws1PGZDBlKX6nAUsTdXhJwIL4mICmAnRibyomXTaHVR4D8BMUUt0v8FPU4+IQb3vWGDR9uqVaWblkEBChlsvXkJrX7E8fetiJmbWEyAvkzkl1VWZX4hWbnXvU1SRKyIu27mG2fp4BN6rVYfcyzZIzAm/d+jkXzl34JKIXrEpCcflwakhb4KbLTJcfmRC4dQ/LpaDwWNDLRNr+O0UkNLRT/RVk4RJoGlh7qEMVBvVHAki5KM1amMjKoVnGWhzPuiJFM3IKaWCWxja5OiZRO6EaPqdXX49eVG4RtDYKlcIEExnsbPsTt5ZvQ5HTCbRGjTidS6SrU5a5TInjPcRoREaFE1DV3vIv8ikQlgh8v9ZkELCkVDBmwFASJisKpkWOoWHGQk9xDX4xPsLmjWPQRlCViMNc2EXdcvobGsttQUFBw2HE6RIbGl25jVACl9FoGoRh1ZADKap2SOgG//s5G+lZmEjyY1zGQ8GWwHGS0lMsJSIrIHUVbUxTBhvEqBMi9jJAtZqnbBvz/9r4EvqryTvu5ubnJTUL2hQRCSEKQXQQZHaxgAFFHbBWE0R+j1SJTFzqfWx3GrUOFoUrV1nG+TwUquFTszK/Tji0KRUXUWsdaFIoWUNYQCITse+72Pc8bTnoJQbPcwE1y3vxOzrnnnvued/mf5/y39//3NroRHUijlXsU7l20AQ8++Egr8al/Asr2SmFhIbZ/dAiJkSn0l1R6JxNOgrpariBi/3VvrX13eVxcZVzF8MaVBNAGkn4MffoGYhUtlUuWLDmlaonc0k3+3UMF5JBKqH+rxiB3Cq21OQTKQsJGBTbjU5RUUSfpqw8LbjK4EwJLZa300rgkA08ZOeoi30Fcs3iMEYm/ar37O7Rae+kWVEtuspF+Zr86thcPH3qfFZINp2GHMf04oRSZ+XIyex7HcuyPVzQgvpn5jfjW2E9d8IXX/dVVKJhOZYC8ZcGteOHWDbjQPQwFFF//loZII36HA1iK1uJJpUkJRkL5X9LoRxy7XRVlQJ0fuRTCpTr40cwXcNuCOzpEp8FzE07H7T9V4dTCELVFACIgkWgq7kv+hvv3ObD6/oNBYJl8MlhydM6Y3tygJAUrPlOJCRRVKK6yxYQZiXW1qG9upridQF6QJhHnaEwf8TxunL8QCqYwgG909et03KSGsLCwEB9+8BdkmheDmwIcM+zQwTya/nqxdC+Kdg6lN0AmPqz7nFxRGVNbVdI/08EYiXE49A6d2NtZrSORW3rJ59ffjuhhPpQ7qpA5IIHi9nhqquYSYrOYbnUHDlUfIQhTlydUCsPioyXcq2ApNLzU0VWpnI7jWdOi8MOnr8PSpUvpXnSq75JeDpMmj0L+sEF0oo5FXiABo31xDB8msZgb/XRBUGwByChasKMxyRmHQmcqJrkGYgwBZIr7HKS9z0hB7xW3ivlt6XTOnDmYOPpivHbzFlzgzscI/n4yF02cDJa6nwjoDBXdKpqcbUo8BlHkziJVHiaNlpNrrqluRjJftvnMCTXGlY23Fn4IR2OsMTR2hE7PUA86fZt+A5QaGRk5BCiasKSkJKxevRrvvH2cYFkEN1ftuCMG0hIusGTAX3IBEsOJVobD61EyZOVyU5KxVCtvtMqGtmfydYRIWmcbmxi5vDmRoEZOkiA5Y+QLmHbJlZg7d67ph4BfvqLq31cV6Sl/+9wfjeidStE93UnQJVBG0/AQTdB0EzC/9BxlhJd99KusRQz93hIdiXh+2funcJMSuQ23RWNGY7bgvAoxsQ7MoC39HMwnSE4mH/wG3qj7mGJsCSM3fVXLzu53apqfLjviKj3cKriUr4pgWbjwHMMt64XQ1rAjg8vxIw1YecWvMPloAS6IysVYply4iEB2Hp2qY8nxiXscybG9hDq6ixnsYkLkIIx3D8FVMeejdFkJHhv/c/zuiS8wd9Z3W63fGom2dLpo0SJ4axPwm++8i/MJlsPJWU7mXLWI3+JYCcjUfRqw7FFC5W2EGC7ehFGB6F6Bw/S8ONRATwau4a6pagHJAoLk2KhsbCZIHvvSY1RdI0eONAxKR+iUdwi74qQ4tSTsWtWDDbL0QJaYOm7cOCxfvhrNR6NwwWXZfKAZJZybn8pyRc2Gg1nwVE68UkJOh6xQ+kh6VkDxMcUYyOLq4SoGTzNDQ3joJ+lNJseXTjegsQTJtQYk77rrLqSlpSExMbFdS3dLo0/+r5fDs089j6nfzjN9HEjnX8Ij/5hJOsD+8uaKOF3DvOD0aKF9NhkjosfjpUd/j7vuvNeAslWjgOPaa6/Fgn+eiOiJ9XR3KcMEOkmPwzXkVScRODfgRd9qHKrfRRAiK3kqU2ZVFRZ7ur5zDKS71bxzLmTwIrqnN2ThTx/uMRy5aMcqGkvNQXFRKX66+EVklMZgfEEeBiRTvKb0ksKRzCBXOZzAmedKxblRQxBNqfyTpZ/j5z94E8MzJ+DFNS+ZOs4777yTxlb3aEunWoa76fX38cWGXZjCACbSqiq5iLJA1QjpTdtEpCKoHnpmp49iAAAdHElEQVQrqXoRqpPPhazcTZzUJoaCawpQzxrACF8shkWksK/ZeJsgefSLZjz22GMYO3Zsp+iUdwm7Qv65/5XgN/aYMWNMFJkFCxaQwCJw+/KRqPMpyK+bUbUreM5FibEYEaQJnwiFxcFjkSKxolvFom0DkqxbIOn3kEMIMHYm7x/hS6CxiW5M9KVLcI3F9HNWGpDUMrfk5GTzhpaB6nR6ybaNy83NNZbr1Mh0k17hy7VNOG9aAZDbQA6yhNxrLQNV0PG8vg4JkVRR0H9v88rPUdiOEUdclnLZNGXn0Je4Gi63g+L2RALvRN7Wi+30ottXX0TvmK6J3BfHzMbMuJsJN1/NJQc4Ey9U/wh7mj9o291OfRYE+unf6GMEJi/nvJqieCWNO7nT4vDG41tol/G1O87iM6ztx996gaHWRmHMd7iqJjsRxdR3RjHqykXRI3DvuP+Hc4aOIOBehv94/GZoLr6uBNOpxH8ZIe+//35svOX3mL/2CvyhcTfifczsTt/YnXRPIoJxIyEFuHfw5eSg0llE2k06Ne0U7Utikdgji7seBq1D5z1H+txcdTTAWOfPi87Bbxa8ewon2Rk6NfcLs3/9kqO05kBvbW3x8fG48MILsXHDJ/jP57YSGM5FXIrMHYwyxJiADoqlStoVIcIzG2vgkyVOUIVV6OPXFl1jruWBQNFwkjom3UUQDGW+cfhoxaHOK9KfZoxMbvo+7tmcjPlXrmO7rsD3vvc9pKSkmDbLMCVRxurH1zVAXNC2T3dQD0qdY8FgLLnhNWx8ZTdef+YzOEqicdnlF5p+yNjjIljkMHjBkht/ixfWvHwSx2NZukdMiMbweXGMRl6Oce4cAuXfkzfNo9LgPfyXdy2ONRyifk++hF/XslO/vzbhDhoCvk2d3zlfux30vIW9XIrYnSIDWkQkX1LsAWecc++gZwF1bQUc/01HsfPzQ6dwlcH3KywsNNzh1g+/wEPXP47c5jRcfvkkhnerYyC5JmQfjce4kRcZUNU8fF3RnFrFml/ttcRx5/YDWL34P3HjNwvhoBuWm+fjOMjH+EpnsL0WwhJgKjSWZtRwmNprs2rtwF7X6jeGWMlFipOU7pXPBSiBxDEK1/m0dQ93JmMYU0mce3gwlk19CZnxeVi8eDFGjx7dJTrtQMvO+CX9Dig1whbhiROzNukttSJi774j+OmjG5DqzsSoSVkUx/TYiDjkxE1Ok36IjhOAGSEAEDGJJq3N1N9yvpXGeE1rODcda+Ml5n3M3zkdWaZeBBiwg0Dp5mohN0XthMjRWPXgATy67B2sePQJPniXG5DUgyaQtN7SwQ8Vq/3K8umnn2L3zh0o31uP6sOx0OfkxFQq3JOx9Na1cB2JxViKkPEpMSjd4sOhHQ4DAMGVirt56qmnMP+hcahIPIamqAYaKaYwq/mlvMxN880z2Fwv/86yLq/hnhxzJbKcLRHcg+/d3vFbDSsZFWhPe191+JyfE+J08sVDMHBI7Oa8+zTzPM5JysIbr2wzycss2jldxQJM6YKLdpbjydtWI/aoC+NnDGcAIA/eW7fNfHe637Y9b93LolFLchAADc7Kxg9v/Q+klbtx0cwxZBx9GMiXGzWXlBYCqBORGdAUlRHYWkGTBCfgNN+LENtsBhR1Tr/hZoxTpH/W3eKWFIk0RpIfzudgXATT29GLYkL0UHz5wz14ecnbuOG6m3D77bebFLTdodO2Y3G2P1Md110B8mx3oev3V9f10EsnWF9fj4qKClRVVZkwY9KtzJ8/AbMXZCMxv65lnTA1bx6KmT7qLQ2nRBEzQGMGvQdbG3FScAfR6gluiuRpiow2ikTuoJVUhOzgGzqCbiORFLcVrEPRjVw02uza7MA9i9bj4skzcNVVV0HKcOkjJXILJC0da2dAUg2QS8viB243bXls+TOGSzIf+G///v3GqCCL7tVzzmXA411YsfzZk67RtR6PB+eMyMMzn83japad5BoiMA+L6DF3Jbu7H/8XN+GTik+oX63pMlDenfI0JkS1JGRbWTWHa6N3W808aS8eqtz7l5POdfWD/Ejd7sGEFRryGCXe5Y8mWA+k4/wkTItbTuBvNuPe0THXeCqquVbvPPvb72PpP/4Mt/7j9zsFlurL6eh0586dRm1UyfBlC5+7CseG1OGAtwyltNyXkJMt5lrzYhqnWnREUhJTHDcEKqK0Nt2hbRHhClBFtSc2AmiWpAxKVhn0q02nA7ziZn4jegxuGb0c4wrGM9bAgpDRadsWne3P/RoorcG3wLKBfoO1tYyITcCsrKzEypUrsXHjRsy/YSLm3pKPxLxqRrupoA6rliG8Gkh2ipTOjQ9CwKzJEzG2ECQZEhbyJNIXmaK9UFLGAjp7860swBRIugiQLlmfKWZ//maTAcgmuuGtWLECeXl5BhwFkOJ65VQukLS4jROVd2qn3+bm5n5lThzp3VTEHelaq+ihXbVqFV7ftBbXvzCCDvAHcB5X8EzHAxRaR1D8ewmPNT6C47UHqJ/kQ9rFEgyUKypnYEfj212sqeM/k/gdG8sVW9EMYVcvI1ok0pmDqCD6HPzi5p24/NIbsXDhQjP2Ha8V5uVjRV5S8rG1a9d25uet134dnc69YTImfWcMSocwKAdXxZQRLGsIluV0qC+n61MVl1OWGfokSLbyRyfe5K13sUAyQAd6J70euE6fAJlAaSqZFvwM0ulgcpFNW+rwyUu7sWPrAUz9xnR897vfDTmdtjYpDA5soOQk6OHX1mJt9hiwFGBWV1ebTSkDNmzYgBtvmIRrbxmOlAImK+DaYC8J0Uci9NFRWXvyp9zIZZq9AFNEaGm8WpYNSpxxUQcYYXSe0eQguaImYhDWrzqAJ598Dwlx6bjvvvsM16hVDNKfCiC1SdS2QFK001HORtcGF3E6KsEAaE504J+MGtOnT8dNi0fDf0kZjvBvdtzFXH9zH3+dgg/xT/hZzX9xPflRw8B0oMp2LzkbQCkGKimFaodIumcxW2egkZEAyPnnuXLwwQ/KkRl7oXFC/zo3rHY7xJPi5jXmXRl31dlROs0dloY7V81DbU4Tw+Ydp6sTVw4pAAi3Gq5JZVo9OtebnJZc7+6nUsDPlxyzAZBWIzkIWo6gDJcDCI7xdD1SxsQEustl0y2pmQD50//za5BPMMs8r776auNI3hN0erpxPBvnKWzYxQIcPQCWPkhGEm0CpzvuuMNwVhJJZ09/lSDmxJzZ4zEwPwJ/e0kOgZN8JKPvSE8U8NNhQxZHivQB6oIchrVkvSQ8R4SWF8pQkoyyPRH44+YS/OHdffjo4y1c4JCKpUtWmLSlEq0FjAkJCQYwFUAgWB9ptberM9fVB1X308N68OBBRA8ZjQq+IGJinHRTyeA3jBpPsfsvzIviJdctNVhbXqWr7T1Tv5NU6mNemvhIpmFgLu0aH0Gl2cMYlg0YOy0Dv3r8vVaw6socFBYWdqsr1j07Qqf3zHgWR48exa13UyQnbV588ziGvYtkCg5KRWYVUksaYIGknx2PcBg5h9p4pf8lWPKFnkHxOo++nwc2H8TvXvgTXv34IH3M0/HoD1cYlzQti+1JOu3WYIX4xzZHGTSgAgEVcU3ampj0W7rLujpaLk9sOldUVIRNmzYxtFkJtm3bhuEFabRG5hqHZcVZHJofj5yCJD5UjH1JYDywp5Lkx/2+SvrdVRMYDzA4hA/jx4+H/Di1z8nJMcQn53FtAkuJ2VaUFQG4HhTrYQlq9hk9lJ5OTvu/q/8+dvgYZGOAg2tw5tGQcxPX8mzE403/gqKaXd0Su9Whs8FR6r7RbiYvSMrnbEVzhRJDp1V7MDCQgUlRk/Ht0Wuxa9euVk8DXX82SkfpVKqkdevWGVp+8803UTAsA8mD4pGaE0/w9yItNwmZeckYOCwFh/dQt7mvgsqgKJQeqMDxoipsJ50W7y8xnGNvo9NQz4vNUQaNqAVClqFEe3GVAiy9OUV4Ak6JGRKLBZoS12U5PnLkCEr5BlfZueMYjh07YI5VZ3p6OjIy4rjRWpntwL9eeSsGD6bRgPULdLTpHgJHbfosDlL3DheAVGf0gGo1Tk7eIIZia6QA5yecUB1AtyZZVsu5pqeCqRb0gghl+eektxgl/BNTZY3/INdj70Mp8+9srN8YMkOO1V4fA/A2UhjNZzgSvqpwKIYpKuoDdPCpw36qLKQnPNulo3Qqer3tttsMnUrXXFxcjO3btxtOUw/+btLpLuYqKi39o3kBt9BphqHTtCEO/P2s23olnfbE/NhAeZpRtVwxBFoWoFmA2djYCG0CSu0VvECAaXGiepist76IWpsl0ktsUn0CQnGLql97S7zWeX1vXX+a5p2V0+qT+jg4MwnNDEqr1LICShf5EBBejoBpcz2NPSJ2p0VMMH3WnhKkKdNijuPdhh/h5eonW06E4D8dawj5EcybnkbfxEaURtZIOCUH1oTcvMGm/yG4Tciq6Ayd6mWvF3xfp9OQDW5QRTZQBg1Ge4cWYFngJiITwWlvGX/kLmMRn85ZQClgsYBSABm8WTpQ1Rt83rq+vbaEwzlxlJmDk42awU9Lv5Y/eslLBgiSFbSpeqjlF88l22l3ynFGoVGp9yvcwmGys346ng+nCxUDDZ8obkcaLot9gtxtA35Z84x1upt7eh8Q/NMYfATsTyT9D8U5e/hiGJSVZDhq+TFqnsKp2HTas7NhA2UnxlcPh0BNRCmAE9iJExRIChyDN4ujVPX6nUXI1l71WKCoc9ZxJ5pzVi6VIUepZhVphzw0/wIM3XGMcPkX6ijrmU2xNiTteqnqx3iZW1uD0CDXRMyK/Ra+4X6IBgi5XIGff4zfN36AEs+2ENy7lv6gzO1DqOSCTvYr0liJPUyjkTk4ySzbFFCGc7HpNPSzYwNlB8dUxKeivUBQmwBORaBpAaP1nfVZ31sgGFyHdRz8vY7DuVh9G5zNaOsyERPFqggmDHdLMTWWgMl4kyFU4bUFSY3NYc9WrKraynXplfi72J+Y4YpkBPYxrtEhAUoHnamZ/oxQmc7tGLWvbgrjjCxET4aiYq40OjH34TpPFl1pb7W1v9FpT8yNDZRdGFURoUWQwT+3wNHaB38XfH3wcfA14XxsPXSyzm/cXMmVREzKRgG7idylggsLLGtoJTar40IIlqcbk19Wv4KZMcsoGjOpD0uOK9fsu/PPZOTkSikBZSRyGTvpOIXwz3ksnwU5zjiQnc3skifAMtznUe1rr40WfVr74DELvj74OPia/nhsA2UIZ90iLGsfwqrDqqqSYgIl1/tFMIIMtbPkKclxESyZoDWUDOVX9rmZ3F51YC9SHOPMdVIHdLcQVygdSD+ZQlgcTl5yrxG7HfQr1CKBw0equnuLsPi9RZ/WPiwaFeaNsIEyzCcoXJpnPVTiKJ0EjqgAg0eQp5SmsoRGjzjyXFqXJGXEGWAoGTgkm0vr/qorrGZItFCUKAJlOgpYVSZ7JrcgrzHouAmU6ltubq65jTUe5oP9r8+PQIuSrc930+5gKEZA4KDVGIePVJq0t0pPVutpYF5ILWUs4ycnVyPJp7Lny+VxV7Qac3S3/d793b6p1nonupRsdQTr8vKPScBo2dcLQRHg/b6WNfbdvpFdQa8bARsoe92Und0GyzBwYN9h5tJJNJxWQ50HpXRaLqMAzoV/iIyK7nYDr42/DXel/DtjXM44pS6Z1GbEXo9vxj3R+l2F/3N80bSz9XNXDxRGb4RzCA04w1mFl9xkDYOgeIzl++iX1aZavSxsbrKrI9x7f2eL3r137s54yy2AuP766/GblVtRcDPDwzHKdVNNE8oSaqjTcyImOg6e+r+GnetKI/Ojzsc410JMjPonhgzbiiLv71HPaOFuE7nmbxj6bMpJ1b5U833UB4pOOtfpD+QmnYzoPpJrclwYxJ/XMKheOd2dAoZ7/vPmYlx00UWtHgydrt/+Qa8eARsoe/X0ndnGCyjl/zlkyBBU7vuUwMiIRvzfxIg0DfXU5sVSQGnPp6eTzWxmVCarpEdMRHqU0kucWpoDFVhf/wA+bnjj1C87ecbBUGKx7iTGW7yQv1S88ENUJxyGk+J2DMOLbVj3Ef7l3uWm/9YLo5O3sC/vxSNgi969ePLOdNMFEPIZFWe1/X+LGIIr0WQaVDsCTG3bxOWcHqXV7SZVvVKzCu82/sBwk+31sca/D39segIPlE3Fr2qebe+STp+LpP/kUHcWM1G3gHIt9uAgShHF4L3JjlQcK6k1gUvUf7v0vxGwZ73/zXm3eiwd5ZQpUzB79k6kRc7FIV+RCULsZyAMH1MK0cJCR3wu8ezGCp1S72dYXfkZK1uKlMhRSHMyTS+BrJ6c62FvMeMrftGtPpzyY4rdyr44FX9DPWue+bqKQFnJ6MkDmK63cS8XFHidyM/Pt/WTpwxe/zhhA2X/mOeQ9lJLN6Wn3PDcn5F/M1ex+GMYAJaR3v10QRdQOplvRqAZgqI0D+Uhqut0zZG1Oz0uE7m4jJdI7P6CK9f/zKAftHZTtbCD+kmlixU3aYvdpxvFvn2+m0JS3x4cu3enjoClp5w7dy42/2IX0lwDye3FcfUK37lexnb3KXJSlMlrdeqvw/CM4SYHYCbXkKcyp6DKcWaR3O7bCzdTB6c7M7Dyyc0mwZpeEOq/DZZhOI893CQbKHt4gPta9RK9ZdBRaDmnIwVHNjcQKAdQVxlrRHDleg746kxa6d7Qd3GTabGDMQYz6S2ZSW5yO2O0f4z6Zi/F7gE4+o4POVnDjNitvmuzS/8bAXvW+9+cd6vH4qbEWSmO5uzZs7Hm3z5g0qlkxBEotayRkTZpKU4IhfG7W+3syI8Fki5XMuZFXcp13TP4kyoUYws+9X8Jt5cRhCLT8a93/DcWLVpk4ofahpyOjGrfvMYGyr45rz3aK4GlAgxfd911+PgPu5EfNZZZ+uK5rDAOrgBTUzE/tjLphHUhSILtnBY/GaPwDwT4AI7iZXxEsbuKAZnj2JfSt5sxOGMopk6dal4OVmi8sO6X3bgeGQEbKHtkWPt2pRI/BZRKW/H4449j6fxfIDNyIFIikuByKuK5i2AZw0FwhfVAZCXlYjIuoPnGybRoL+JdvI0d9YcQ642jbjIVq5e9b3STVvT5sO6M3bgeHQEbKHt0ePtu5RZXOW/ePBw75MCf1hxHijOJaU25tDFCUMlVO/RKDMtCbjI2dhAuiBjBOEE5dATagB3Yht3eEhpwYug3mYTPflYDhz/RWLulZlB/tdmlf46ADZT9c9673WsLKJVH6M4778S6n3yEUa7xSGWqBomtkVw37XKKVwsvETxAkIwhSE6Pm4gJzEZeTl6yiOHUvmQMJEeDg+kmEpF8MJuW7i1YsWKFSSQn7tk24nSbZHp1BTZQ9urpO3uNF3DIuCGglAV84S134LEb12OQaxBF8GTEMNoOTT4Ey/iwAssY90BMihtJPnIQFykWYyut3Du4BqeythEJ/iQMdeZh0awXseThZSgoKGg14tjc5NmjtXC4sw2U4TALvbQNlq5SydbkgH54vwe/fngnBtL3UKtpYrmaJkoxhcIELKOik5Een06dpJsuQAfwIXZim6cIJdVVSKSlPjUyFU/f9C4mjrvAGHCkg7W5yV5KnCFutg2UIR7Q/lSduCxZgmXsUK7ze+65B5te3YXP19YY4064gKXWng9IGozM5GwG5U3kCu4acpOVqGxsgJdpflIDqaa9X6xhFKRDAdx9992mP+qXbenuTxR9+r46mDcjBPFeTn8D+5u+PQIiH2WfVH7z6upqbNq0CYsXL8ZND1yA0d+JRwkNJKW+MjT66pkLvJnZGxvh9SsMW/dTN3RkZOUfHheXg/g4cbfUNVIRoAjs3kZGYm+KQAbX48hi/+UaD974+W488sijGDt2rElJLI5SXLMtdndkpPv2NTZQ9u35PSO9E1AqZW99fT0qKirw1ltv4aGHHsIjP/smoqfWG7CsYKqGhkAdmpnm1sPgFs2BWnouVvZo+2SjjoxKoR41nsnQmLoiQMs1Vw45tIbbH4t06lIHRmbi7YeLsX7dZ1izZg1GjRqFpKQk4/pkr+3u0enpVZXbQNmrpit8Gyuw9Hg8qKurQ1VVFTZv3owHH3yQYPktJExtwlFfKcoYfLea0dA9fg9z7TB7I7lLRRkKMDp6qIvE7SiurHE66QDPyEARjCvJFGFwcZ8QQX0kfT7TnQPx5g8O4jfrdmD16tVQvm6BZFwcrfY0VNmW7lDPSu+tz7mEpfc23255OI2ARFSBi7asrCwTv3HJvSsRdSwWhZedy2g8zSdEX+ZFN0dOXsvUEbSQtyiAmkPSHQdBMCoyBS4ak8ySygCj/vAo1tfiSD4wIhXDo8fgjYf34H/WbcNzzz2HMWPGGJCUFV9LNG2ROyRT0WcqsTnKPjOVZ78j0ldKBBdn2dDQgPLychw/fhxPP/009jEi+n2rrkDN0KMMm3YcFf4apm+oZ3g2RkYPKJGXBwE//1OPGfBz67RYzsg+Zo1NjFlzHhUhQ4wyjzsQ7YthlPJYpBFAU2jZrt0SjWXfew3TplyOa665BuPGjUNKikT0FpC0DThnn5bCrQU2UIbbjPTy9ljGHQGmwLKyktZlbq+++iqef/55zPqHMbh+2fkM+HsQ1d5qiuI1qDW6SwEmDUOETB//+wmafocSxjJsG/PWwJz9a2BKenGakWKIDhMD08lUDrTBt/xR7o50RNKLM8qI2QMIkvH8y4nOwy/v345fvvInPPXUU636SInbAkkBpM1J9nIC7KHm20DZQwPbn6sVWGrzer3GGi69ZVlZGXbv3o3XXnsNm9/dhMKrh+PG5ZNxyHMAVYFK1PiZGpaW8QZylF5GSxdcBgIETEJlSyG3yk8qETwnUGwpLUsLBZEUmBlgnQAZiEE815orTFp8BAEyKg8vPfAHbPr1Z5g+9QrMmTMHw4YNQ3JysrFuyw0o2HBjW7lPDK29ax0BGyhbh8I+COUIWJyljDxNjMZTW1uLmpoas+3duxfr16/HO1s2Yfo1I3DJLXmIzPEy02ItGh1MVEYjT4OfGwHTcJSETdrVDfjqs/Js02fHcI/6H8l1iW4G44h2RHNFUDSBMhoJkQnId43F8/e/idd/vR2FUy7FrFmzzGob+XzKSV6bQNLSq9oAGUoK6Ft12UDZt+YzrHpjcZaWRVyiuFyI5G+p/f79+w1grl27FnfeczX1lhWYdcu5GJDvxHH6XjaRwxQX6dOfg0cBfaIZiO49+nM6WkTtSIJljIvBLCJS0LDXge1vF+PP7x3BJx/vx9QpM3DVVVchNzfXWLMTEhLMXgAZbLSxQTKsSCfsGmMDZdhNSd9skHSWAkw5pgswJY4LLLXX59dffx1HjhwxDuvumAhcec15qKOxJzMvAYPzE5GVm4RGGn4GDU9FVCAWR/ceR/G+cub6dqNkTxU+ee8gtn58EMkJ6cjMzMTMmTMxdOhQY3mXu4+cx7VJF2mtuLH1kX2T1nqiVzZQ9sSo2nW2OwLiMAWY2iSOa2sLmLKYFxUVGcDUdceOHTObfltaWmq29PR0ZGRkmHtoL27w0ksvNS5Jyjmu9dkCw2CA1Gedt7hI/djmItudJvtkOyNgA2U7g2Kf6tkRsPSXAkIBo7Zm5gMXt6m9BaIyBlmb9Ru1zAI4WamtzUpPodiRFlBqr02GGtui3bNz2tdrt4Gyr89wmPZPwKcicVzHFqcpYBRYaq/vrPPWddbvLAOMBZT6LEBsC4yWeG2Bq7UP02GxmxWmI2ADZZhOTH9ploDPAj8LDAWO1rH21rF1ncZGgKfNAkzrWMBpHQdf11/G0+5nz4yADZQ9M652rV0YgWDQtEDR2qu64GOBoVWs4+C9dWxdY+/tEejOCNhA2Z3Rs397RkYgGCDb3tAGxLYjYn/uiRFoWQfWEzXbddojEKIRsMEwRANpV9PlEeASB7vYI2CPgD0C9gh81Qj8f/kYV7F4iYCDAAAAAElFTkSuQmCC)"],"metadata":{"id":"DOYNec7WvaFM"}},{"cell_type":"markdown","source":["##Problem Definition\n","\n","有 `n` 個人排成一圈，從 第一個位置開始數，往前每數到第 `m` 個人，就將那個人從圈子中移除。將被移除的順位列出，就構成所謂的 Josephus Permutation。以 `n=8`, `m=4` 為例，假設從編號 `1` 的人開始數，則最早被移除的會是編號 `4` 那個人。請看底下的過程，編號加底線表示從那個人開始數，粗體的編號代表要被移除的人 :\n","\n","* 第 *1* 次 : 1_ 2 3 **4** 5 6 7 8 -> 1 2 3 5_ 6 7 8\n","* 第 *2* 次 : 1 2 3 5_ 6 7 **8** -> 1_ 2 3 5 6 7\n","* 第 *3* 次 : 1_ 2 3 **5** 6 7 -> 1 2 3 6_ 7\n","* 第 *4* 次 : 1 **2** 3 6_ 7 -> 1 3_ 6 7\n","* 第 *5* 次 : **1** 3_ 6 7 -> 3_ 6 7\n","* 第 *6* 次 : **3**_ 6 7 -> 6_ 7\n","* 第 *7* 次 : 6_ **7** -> 6_\n","* 第 *8* 次 : **6**_ -> NULL\n","\n","所以編號 `1` 到 `8` 的人被移除的順位是 `{ 5, 4, 6, 1, 3, 8, 7, 2 }`，這就是 `n=8`, `m=4` 的 Josephus Permutation，我們可以寫成 `JP(8, 4) = { 5, 4, 6, 1, 3, 8, 7, 2 }`，它的意思是編號 `1` 的人會是第 *5* 順位被移除，編號 `2` 的人會在第 *4* 順位被移除，而編號 6 的人會是第 *8* 順位，也就是最後一個存留下的人。\n","\n","另外我們也可以列出 Inverse Josephus Permutation，以上面 `n=8`, `m=4` 的例子會是 `IJP(8, 4) = { 4 8 5 2 1 3 7 6 }` 也就是依照被移除的順序將編號列出。\n","\n","接下來我們寫程式，輸入 `n` 和 `m` ，讓程式自動列出 Inverse Josephus Permutation。開始寫程式之前，我們要先想好，(1) 如何用程式碼表達問題所描述的資料形式，以及 (2) 如何用程式碼處理資料。這兩個問題牽涉到「資料結構」 (Data Structures) 和「演算法」(Algorithms) 的設計。我們會寫出幾種不同的版本，比較它們運算的時間與空間複雜度。\n","\n","\n","這個問題的詳細描述與數學解 : https://en.wikipedia.org/wiki/Josephus_problem"],"metadata":{"id":"mviKuWaapY32"}},{"cell_type":"markdown","source":["## Method 1\n","演算法採用模擬的方式，資料結構則採用 Array。\n","\n","做法是先產生一個陣列，陣列的元素是每個人的編號。接下來就逐步模擬移除的過程，移除了某個人之後，就將後面的陣列元素往前挪。"],"metadata":{"id":"0JmfW6E6wtN7"}},{"cell_type":"code","source":["%%writefile inclass_1.c\n","#include <stdio.h>\n","#define N 41\n","#define M 3\n","int a[N];\n","\n","void shift_left(int i, int n)\n","{\n","    int j;\n","    for (j=i+1; j<n; j++) {\n","        a[j-1] = a[j];\n","    }\n","}\n","\n","void show(int n)\n","{\n","    int i;\n","    for (i=0; i<N; ++i) {\n","        printf(\"%d, \", a[i]);\n","    }\n","    printf(\"\\n\");\n","}\n","\n","int main(void)\n","{\n","    int i, n;\n","    for (i=0; i<N; ++i) {\n","        a[i] = i+1;\n","    }\n","    n = N;\n","    i = 0;\n","    while (n > 1) {\n","        i = i + M-1;\n","        i = i % n;\n","        printf(\"%d, \", a[i]);\n","        shift_left(i, n);\n","        --n;\n","    }\n","    printf(\" *%d*\\n\", a[0]);\n","    \n","}"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"yHgd_6KMsWif","executionInfo":{"status":"ok","timestamp":1664882777233,"user_tz":-480,"elapsed":405,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"3655e2a8-dd12-4cf3-9425-9d754a0a0fe6"},"execution_count":55,"outputs":[{"output_type":"stream","name":"stdout","text":["Overwriting inclass_1.c\n"]}]},{"cell_type":"code","source":["%%shell\n","gcc -o inclass_1 inclass_1.c\n","./inclass_1"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"uIUW9PL9tlNa","executionInfo":{"status":"ok","timestamp":1664882783868,"user_tz":-480,"elapsed":317,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"4e8b5320-83a5-499c-c26d-020f6e4db8bb"},"execution_count":56,"outputs":[{"output_type":"stream","name":"stdout","text":["3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 1, 5, 10, 14, 19, 23, 28, 32, 37, 41, 7, 13, 20, 26, 34, 40, 8, 17, 29, 38, 11, 25, 2, 22, 4, 35, 16,  *31*\n"]},{"output_type":"execute_result","data":{"text/plain":[]},"metadata":{},"execution_count":56}]},{"cell_type":"code","source":["%%writefile E04_01.c\n","\n","// Method 1 for Inverse Josephus Permutation\n","#include <stdio.h>\n","#define N 41\n","#define M 3\n","int a[N];\n","\n","int main(void)\n","{\n","    int i;\n","    int SS, CP;\n","\n","    for (i=0; i<N; i++) a[i] = i+1;\n","\n","    CP = 0;\n","    SS = N;\n","\n","    while (SS>0) {\n","        CP += M-1;\n","       if (CP>=SS) CP = CP%SS;\n","        printf(\"%d \", a[CP]);\n","        for (i=CP; i<SS-1; i++) a[i] = a[i+1];\n","        --SS;\n","    }\n","    printf(\"%d \", a[CP]);\n","    return 0;\n","}\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"jPKEoZmai8za","executionInfo":{"status":"ok","timestamp":1664866219293,"user_tz":-480,"elapsed":520,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"43aea84b-3526-452d-9db9-153d07e6876b"},"execution_count":6,"outputs":[{"output_type":"stream","name":"stdout","text":["Overwriting E04_01.c\n"]}]},{"cell_type":"code","source":["%%shell\n","gcc -o E04_01 E04_01.c\n","./E04_01"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"efH4-xYEtpUx","executionInfo":{"status":"ok","timestamp":1664866222983,"user_tz":-480,"elapsed":289,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"2365236c-07b3-4789-89ce-fffea0673dd0"},"execution_count":7,"outputs":[{"output_type":"stream","name":"stdout","text":["3 6 9 12 15 18 21 24 27 30 33 36 39 1 5 10 14 19 23 28 32 37 41 7 13 20 26 34 40 8 17 29 38 11 25 2 22 4 35 16 31 31 "]},{"output_type":"execute_result","data":{"text/plain":[]},"metadata":{},"execution_count":7}]},{"cell_type":"markdown","source":["## Method 2\n","和 Method 1 一樣，演算法也是採用模擬的方式，資料結構採用 Array。\n","\n","和 Method 1 不同的地方在於，移除了某個人之後，只將原本的陣列元素標記為 -1，不移動其他陣列元素。"],"metadata":{"id":"gzi2VAoy2PcF"}},{"cell_type":"code","source":["%%writefile inclass_2.c\n","#include <stdio.h>\n","#define N 41\n","#define M 3\n","int a[N];\n","\n","int find_next(int i)\n","{\n","    do {\n","        i = (i+1)%N;\n","    } while (a[i] == -1);\n","    return i;\n","}\n","\n","int main(void)\n","{\n","    int i, n, k;\n","    for (i=0; i<N; ++i) {\n","        a[i] = i+1;\n","    }\n","    n = N;\n","    i = -1;\n","    while (n > 1) {\n","        k = 0;\n","        while (k < M) {\n","          i = find_next(i);\n","          k++;\n","        }\n","        printf(\"%d, \", a[i]);\n","        a[i] = -1;\n","        --n;\n","    }\n","    i = find_next(i);\n","    printf(\" *%d*\\n\", a[i]);\n","    \n","}"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"PcTS-I_M0YJ5","executionInfo":{"status":"ok","timestamp":1664886554250,"user_tz":-480,"elapsed":433,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"fb3f39e0-0baa-431d-ab43-5174e94fe405"},"execution_count":113,"outputs":[{"output_type":"stream","name":"stdout","text":["Overwriting inclass_2.c\n"]}]},{"cell_type":"code","source":["%%shell\n","gcc -o inclass_2 inclass_2.c\n","./inclass_2"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"QMIqgvd12ST-","executionInfo":{"status":"ok","timestamp":1664886559041,"user_tz":-480,"elapsed":365,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"2f2559f9-dbea-4b84-c961-7b5d871023ad"},"execution_count":114,"outputs":[{"output_type":"stream","name":"stdout","text":["13, 33, 20, 15, 19, 32, 12, 5, 8, 25, 9, 7, 24, 10, 16, 36, 35, 14, 17, 39, 4, 3, 38, 27, 6, 37, 34, 18, 21, 11, 26, 23, 30, 1, 40, 31, 29, 28, 22, 2,  *41*\n"]},{"output_type":"execute_result","data":{"text/plain":[]},"metadata":{},"execution_count":114}]},{"cell_type":"code","source":["%%writefile E04_02.c\n","// Method 2 for Inverse Josephus Permutation\n","#include <stdio.h>\n","#define N 41\n","#define M 3\n","int a[N];\n","int main(void)\n","{\n","    int i;\n","    int SS, CP;\n","    for (i=0; i<N; i++) a[i] = i+1;\n","\n","    SS = N;\n","    CP = -1;\n","\n","    while (SS>1) {\n","        i = 0;\n","        do {\n","            CP = (CP + 1)%N;\n","            if (a[CP] != -1) i++;\n","        } while (i<M);\n","        printf(\"%d \", a[CP]);\n","        a[CP] = -1;\n","        --SS;\n","    }\n","      i=0;\n","            do {\n","            CP = (CP + 1)%N;\n","            if (a[CP] != -1) i++;\n","        } while (i<M);\n","    printf(\"%d \", a[CP]);\n","    return 0;\n","}\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"Ta21e-4i82kB","executionInfo":{"status":"ok","timestamp":1664886468248,"user_tz":-480,"elapsed":420,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"43a37d30-8377-4a81-87ee-1ebb74795b81"},"execution_count":111,"outputs":[{"output_type":"stream","name":"stdout","text":["Overwriting E04_02.c\n"]}]},{"cell_type":"code","source":["%%shell\n","gcc -o E04_02 E04_02.c\n","./E04_02"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"M3maQZxA8_cW","executionInfo":{"status":"ok","timestamp":1664886471984,"user_tz":-480,"elapsed":308,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"f18b3c79-3f0b-4486-8952-ed0ff28885ea"},"execution_count":112,"outputs":[{"output_type":"stream","name":"stdout","text":["3 6 9 12 15 18 21 24 27 30 33 36 39 1 5 10 14 19 23 28 32 37 41 7 13 20 26 34 40 8 17 29 38 11 25 2 22 4 35 16 31 "]},{"output_type":"execute_result","data":{"text/plain":[]},"metadata":{},"execution_count":112}]},{"cell_type":"markdown","source":["## Method 3\n","演算法也是採用模擬的方式，資料結構採用 Circular Linked List。\n","\n","這個方法的時間複雜度比較容易分析，因為每次都剛好數 `m` 次就可以去掉一個人。總共有 `n` 個人，所以時間複雜度是 `O(mn)`。"],"metadata":{"id":"_3JIUPsT69C9"}},{"cell_type":"code","source":["%%writefile inclass_3.c\n","#include <stdio.h>\n","#include <stdlib.h>\n","#define N 41\n","#define M 3\n","typedef struct _node {\n","  int id;\n","  struct _node *next;\n","} Node;\n","\n","Node * insert(Node* p, int id) \n","{\n","    Node *q;\n","    q = (Node*) malloc(sizeof(Node));\n","    q->id = id;\n","    if (p == NULL) {\n","      q->next = q;\n","      p = q;\n","    } else {\n","      q->next = p->next;\n","      p->next= q;\n","    }\n","    return p;\n","}\n","\n","Node * delete(Node* p, Node* pre)\n","{\n","  if (p == p->next) {\n","    printf(\"*%d*\\n\", p->id);\n","    return p;\n","  } else {\n","    pre->next = p->next;\n","    printf(\"<%d> \", p->id);\n","    free(p);\n","    if (pre->next == pre) {\n","      return pre;\n","    } else {\n","      return pre->next;\n","    }\n","  }\n","}\n","\n","void show(Node *p)\n","{\n","    Node *q = p;\n","\n","    do {\n","      printf(\"%d, \", q->id);\n","      q = q->next;\n","    } while (q != p);\n","    printf(\"\\n\");\n","}\n","\n","\n","int main(void)\n","{\n","  Node *head = NULL;\n","  Node *pre;\n","  int i, n, k;\n","  for (i=N; i>0; --i) {\n","    head = insert(head, i);  \n","  }\n","  pre = head;\n","  head = head->next;\n","  n = N;\n","  while (n > 1) {\n","    for (k=0; k<(M-1)%n; ++k) {\n","      pre = head;\n","      head = head->next;\n","    }\n","    head = delete(head, pre);\n","    n--;\n","  }\n","  head = delete(head, pre);\n","  return 0;\n","}"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"M8IcvcJJAHKn","executionInfo":{"status":"ok","timestamp":1664889110131,"user_tz":-480,"elapsed":309,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"54a98187-5906-4701-b0d0-2c4f2d0cd7d5"},"execution_count":156,"outputs":[{"output_type":"stream","name":"stdout","text":["Overwriting inclass_3.c\n"]}]},{"cell_type":"code","source":["%%shell\n","gcc -o inclass_3 inclass_3.c\n","./inclass_3"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"XmHewCuJCOuq","executionInfo":{"status":"ok","timestamp":1664889114239,"user_tz":-480,"elapsed":496,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"18c7a892-6d73-4a78-bc1f-5c1abfd9d963"},"execution_count":157,"outputs":[{"output_type":"stream","name":"stdout","text":["<3> <6> <9> <12> <15> <18> <21> <24> <27> <30> <33> <36> <39> <1> <5> <10> <14> <19> <23> <28> <32> <37> <41> <7> <13> <20> <26> <34> <40> <8> <17> <29> <38> <11> <25> <2> <22> <4> <35> <16> *31*\n"]},{"output_type":"execute_result","data":{"text/plain":[]},"metadata":{},"execution_count":157}]},{"cell_type":"code","source":["%%writefile E04_03.c\n","// Method 3 for Inverse Josephus Permutation\n","#include <stdio.h>\n","#include <stdlib.h>\n","#define N 41\n","#define M 3\n","typedef struct _node {\n","    int id;\n","    struct _node *next;\n","} Node;\n","\n","void insertNext(Node *p, int id)\n","{\n","    Node *q;\n","    q = (Node*) malloc(sizeof(Node));\n","    q->id = id;\n","    q->next = p->next;\n","    p->next = q;\n","}\n","Node* deleteNext(Node *p)\n","{\n","    Node *q;\n","    q = p->next;\n","    p->next = q->next;\n","    free(q);\n","    return p;\n","}\n","\n","int main(void)\n","{\n","    Node *last;\n","    int i;\n","    int SS;\n","\n","    last = (Node*) malloc (sizeof(Node));\n","    last->id = N;\n","    last->next = last;\n","\n","    for (i=N-1; i>=1; i--) insertNext(last, i);\n","\n","    SS = N;\n","    while (last->next != last) {\n","        for (i=0; i<(M-1)%SS; i++)\n","            last = last->next;\n","        printf(\"%d \", last->next->id);\n","        last = deleteNext(last);\n","        --SS;\n","    }\n","    printf(\"%d \", last->next->id);\n","    return 0;\n","}\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"5-ku9rBg7KWU","executionInfo":{"status":"ok","timestamp":1664889018270,"user_tz":-480,"elapsed":13,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"26e72872-87f1-4119-cdce-163232e237d3"},"execution_count":153,"outputs":[{"output_type":"stream","name":"stdout","text":["Overwriting E04_03.c\n"]}]},{"cell_type":"code","source":["%%shell\n","gcc -o E04_03 E04_03.c\n","./E04_03"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"TxoZhcpw7VPP","executionInfo":{"status":"ok","timestamp":1664869073749,"user_tz":-480,"elapsed":264,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"beeebfae-8a25-4f3e-b868-41375d0f9150"},"execution_count":15,"outputs":[{"output_type":"stream","name":"stdout","text":["3 6 9 12 15 18 21 24 27 30 33 36 39 1 5 10 14 19 23 28 32 37 41 7 13 20 26 34 40 8 17 29 38 11 25 2 22 4 35 16 31 "]},{"output_type":"execute_result","data":{"text/plain":[]},"metadata":{},"execution_count":15}]},{"cell_type":"markdown","source":["# Method 4\n","演算法也是採用模擬的方式，資料結構採用 Array 來模擬 Linked List。\n","\n","主要的想法是利用 Array 模擬 Circular Linked List，自己維持 `next` 的連接順序。從這個例子也可以看出 Array 與 指標之間相通之處。此外，使用 Array 模仿 Linked List 與真正的 Linked List 還有一個不同的地方：Linked List 可以動態產生和移除Node，如果是用 Array 模仿則會占用固定大小的空間，沒用到的Node其實還在原位，沒有真的被移除掉，只是靠 `next` 跳過而已。\n","時間複雜度是 O(mn)。"],"metadata":{"id":"lqdQ-sZ_8L-e"}},{"cell_type":"code","source":["%%writefile E04_04.c\n","\n","// Method 4 for Inverse Josephus Permutation\n","#include <stdio.h>\n","#include <stdlib.h>\n","#define N 41\n","#define M 3\n","typedef struct  _node {\n","    int id;\n","    int next;\n","} Node;\n","\n","\n","int main(void)\n","{\n","    Node circle[N];\n","    int i, CP, SS;\n","    for (i=0; i<N; i++) {\n","        circle[i].id = i+1;\n","        circle[i].next = (i+1)%N;\n","    }\n","    // circle[N-1].next = 0\n","\n","    SS = N;\n","    CP = N-1;\n","\n","    while (SS>0) {\n","        for (i=0; i<(M-1)%SS; i++) {\n","            CP = circle[CP].next;\n","        }\n","        printf(\"%d \", circle[circle[CP].next].id);\n","        if (circle[CP].next == circle[circle[CP].next].next)\n","            break;\n","        circle[CP].next = circle[circle[CP].next].next;\n","        --SS;\n","    }\n","\n","    return 0;\n","}\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"SQxSu1QW94FB","executionInfo":{"status":"ok","timestamp":1664869739924,"user_tz":-480,"elapsed":289,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"cc836572-469f-4129-f45b-876c01880543"},"execution_count":16,"outputs":[{"output_type":"stream","name":"stdout","text":["Writing E04_04.c\n"]}]},{"cell_type":"code","source":["%%shell\n","gcc -o E04_04 E04_04.c\n","./E04_04"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"6oa5XHjI-FJ8","executionInfo":{"status":"ok","timestamp":1664869760141,"user_tz":-480,"elapsed":267,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"d71898c9-b0ed-4b82-f2fd-73a27a37476d"},"execution_count":17,"outputs":[{"output_type":"stream","name":"stdout","text":["3 6 9 12 15 18 21 24 27 30 33 36 39 1 5 10 14 19 23 28 32 37 41 7 13 20 26 34 40 8 17 29 38 11 25 2 22 4 35 16 31 "]},{"output_type":"execute_result","data":{"text/plain":[]},"metadata":{},"execution_count":17}]},{"cell_type":"markdown","source":["## Method 5\n","\n","最後是遞迴的做法。底下的寫法只能列出最後一個留下來的人，不能列出 Inverse Josephus Permutation。"],"metadata":{"id":"BZIHmrKU-pal"}},{"cell_type":"code","source":["%%writefile E04_05.c\n","// Method 5 recursion \n","\n","#include <stdio.h>\n","\n","int f(int n, int m){ // index from 1 to n\n","    if( n == 1 ) return 1;\n","    else return ( f(n-1, m) + m-1 ) % n + 1;\n","}\n","\n","int main(void) {\n","    int n = 41, m = 3, i;\n","    printf(\"%d\\n\", f(n,m));\n","    return 0;\n","}"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"JyzsyPqjAIV6","executionInfo":{"status":"ok","timestamp":1664870914517,"user_tz":-480,"elapsed":548,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"22f79d3d-6f64-46a6-d5f2-81fa0e60de13"},"execution_count":31,"outputs":[{"output_type":"stream","name":"stdout","text":["Overwriting E04_05.c\n"]}]},{"cell_type":"code","source":["%%writefile E04_05.c\n","// Method 5 loop\n","\n","#include <stdio.h>\n","\n","int f(int n, int m){ // index from 1 to n\n","    int i, ans=1;\n","    for (i=1; i<=n; ++i) {\n","      ans = (ans + m-1) % i + 1;\n","    } \n","    return ans;\n","}\n","\n","int main(void) {\n","    int n = 41, m = 3, i;\n","    printf(\"%d\\n\", f(n,m));\n","    return 0;\n","}"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"poWQ9flcBCUb","executionInfo":{"status":"ok","timestamp":1664871176752,"user_tz":-480,"elapsed":348,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"7f5f6520-f453-4f81-a50b-178fe196be3a"},"execution_count":43,"outputs":[{"output_type":"stream","name":"stdout","text":["Overwriting E04_05.c\n"]}]},{"cell_type":"code","source":["%%writefile E04_05.c\n","// Method 5 for Inverse Josephus Permutation\n","\n","#include <stdio.h>\n","\n","int main(void) {\n","    // n = people, i = the i-th be killed(1~n)\n","    // m = every m people kill one\n","    // p = the index(1~n) who be killed\n","    int n = 8, m = 4, p, i;\n","    for( i=1; i<=n; i++){\n","        p = i * m;\n","        while( p > n ) p = p-n + (p-n-1) / (m-1);\n","        printf(\"%d \", p);\n","    }\n","    return 0;\n","}"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"8sBsqjwLAgC-","executionInfo":{"status":"ok","timestamp":1664870480714,"user_tz":-480,"elapsed":284,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"2521d82e-44ca-4173-ab71-d4f7286dc1f4"},"execution_count":21,"outputs":[{"output_type":"stream","name":"stdout","text":["Overwriting E04_05.c\n"]}]},{"cell_type":"code","source":["%%shell\n","gcc -o E04_05 E04_05.c\n","./E04_05"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"yDnDmyKZATsA","executionInfo":{"status":"ok","timestamp":1664871180065,"user_tz":-480,"elapsed":315,"user":{"displayName":"HT Chen","userId":"17748361917871513601"}},"outputId":"0c51cd09-0601-46af-891f-402ccdbe1b9c"},"execution_count":44,"outputs":[{"output_type":"stream","name":"stdout","text":["31\n"]},{"output_type":"execute_result","data":{"text/plain":[]},"metadata":{},"execution_count":44}]},{"cell_type":"markdown","source":["上面的函數 `F(n, m)` 傳回的值是最後能夠存留下來的人的編號，也就是如果總共 `n 個人，每 `m` 個移除掉一人，最後能夠剩下的人他的編號會是 `F(n,m)`。同樣地，`F(n-1,m)` 則是總共 `n-1` 個人、每 `m` 個移除掉一人，最後留下的人的編號。\n","\n","遞迴的關鍵在於找出F `(n,m)` 和 `F(n-1,m)` 之間的關聯。原本有 `n` 個人，移除掉一個之後，剩下 `n-1` 個人。假如我們有辦法知道 `F(n-1,m)` 是多少，那麼我們該如何推算出 `F(n,m)`?\n","\n","如果我們知道 `F(n-1, m)`，也就是最後留下的那個人，我們就能換算出他在原本的 `n` 個人的相對位置。以 `F(41,3)` 為例，如果我們知道 `F(40,3)` 的值是 `28`，對應到原本 `41` 人的情況中，`F(40,3)` 其實是從原本的編號 `4` 的人開始數，因為原本 `41` 人如果是從編號 `1` 開始數，一開始第一個被移除的人編號應該是 `3` ，所以接下來剩下的 `40` 個人中的第一個人 (新的編號 `1`)，在原本 `41` 人中的編號是 `4`。這樣我們就可以看得出新舊編號的對應關係 ，所以如果 `F(40,3)` 是 `28`，則 `F(41,3)`應該是 `31`。\n","\n","時間複雜度 `O(n)`。"],"metadata":{"id":"KHsGdL9L_Ahm"}}]}