diff --git a/docker_images/docker_tango_python/requirements.txt b/docker_images/docker_tango_python/requirements.txt index 084c2114d646cf6216e9083aae4b72784c4206e5..70d4fad399affbd2faad24426948fa773d85536d 100644 --- a/docker_images/docker_tango_python/requirements.txt +++ b/docker_images/docker_tango_python/requirements.txt @@ -6,3 +6,4 @@ pyfiglet colorama unitgrade>=0.1.23 unitgrade-devel>=0.1.37 # Required to run automatic evaluation (load tokens etc.) +requests # For unitgrade, may remove later. diff --git a/docker_images/unitgrade-docker/requirements.txt b/docker_images/unitgrade-docker/requirements.txt index f415be306d4ff87b4943add66860a81f1cca01a3..cb32e1584ee5c69345f21bda8b1135bd342f9009 100644 --- a/docker_images/unitgrade-docker/requirements.txt +++ b/docker_images/unitgrade-docker/requirements.txt @@ -6,4 +6,4 @@ pyfiglet colorama importnb unitgrade # Perhaps just this and not the other. - +requests # For unitgrade, may remove later. diff --git a/examples/02105/instructor/week2/StoneReport_handin_10_of_10.token b/examples/02105/instructor/week2/StoneReport_handin_10_of_10.token index 14ff1bbd847dc4ba97e969f86d3429a1c4295f84..28772b965549f1c057b4c97903d798c7fe544775 100644 --- a/examples/02105/instructor/week2/StoneReport_handin_10_of_10.token +++ b/examples/02105/instructor/week2/StoneReport_handin_10_of_10.token @@ -1,180 +1,179 @@ # This file contains your results. Do not edit its content. Simply upload it as it is. ---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- -b2757d5beb37e37a4d0db4a09e1450d292fef837d505a34d427678f285aa165da62f0312730427554c991cae67fc1d6695f9087e7924f590e170071da2ed5797 31560 +9852caeff7982dd3966eafc68abd871290dda63b0dd8198cd87e9dc122c6bbe9b6784a54580d42861a21abc5724bd4017c18c36e38c9840cb3cfb6e46a5084c3 31400 ---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- -./Td6WFoAAATm1rRGAgAhARYAAAB0L+Wj4IXPXDJdAEABDnpDfMN61cV3uyv9rA3VXYLFhUioEJM45nedEKdqnO19PvW/YXoHmDkQocrblVLERQOzdoe2zfnvVikcsMGzEktlVOe3W3XUOr+/vL7QSGinStr49f86RE5jY5bPLOoCeppsRkj +.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. \ No newline at end of file +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. \ No newline at end of file diff --git a/examples/02105/instructor/week2/stones_tests_grade.py b/examples/02105/instructor/week2/stones_tests_grade.py index 50a90757f62400fc8f96e174999c81ce2d52a1bb..4ea35230b3640fc8049c34f102fc80f7fb3636b1 100644 --- a/examples/02105/instructor/week2/stones_tests_grade.py +++ b/examples/02105/instructor/week2/stones_tests_grade.py @@ -1,4 +1,4 @@ # stones_tests.py ''' WARNING: Modifying, decompiling or otherwise tampering with this script, it's data or the resulting .token file will be investigated as a cheating attempt. ''' import bz2, base64 -exec(bz2.decompress(base64.b64decode('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'))) \ No newline at end of file +exec(bz2.decompress(base64.b64decode('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'))) \ No newline at end of file diff --git a/examples/02105/instructor/week2/unitgrade_data/Stones.pkl b/examples/02105/instructor/week2/unitgrade_data/Stones.pkl index 070b083e581b9052718352ac872d777848661905..1bf38a4fd917fe69b27254e950aac0678e0a28ed 100644 Binary files a/examples/02105/instructor/week2/unitgrade_data/Stones.pkl and b/examples/02105/instructor/week2/unitgrade_data/Stones.pkl differ diff --git a/examples/02105/students/week2/unitgrade_data/Stones.pkl b/examples/02105/students/week2/unitgrade_data/Stones.pkl index 070b083e581b9052718352ac872d777848661905..1bf38a4fd917fe69b27254e950aac0678e0a28ed 100644 Binary files a/examples/02105/students/week2/unitgrade_data/Stones.pkl and b/examples/02105/students/week2/unitgrade_data/Stones.pkl differ diff --git a/examples/02631/instructor/week5/Report1Flat_handin_40_of_40.token b/examples/02631/instructor/week5/Report1Flat_handin_40_of_40.token new file mode 100644 index 0000000000000000000000000000000000000000..2ea703ab9cb00105b3bf3d8f79befcc923868252 --- /dev/null +++ b/examples/02631/instructor/week5/Report1Flat_handin_40_of_40.token @@ -0,0 +1,202 @@ +# This file contains your results. Do not edit its content. Simply upload it as it is. +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +ba426da415e8071cc74bec270089fe6b6181c69b47ada4ab4f361248ffb4348064ab706575dd29f9b74a52694aba493fd9f3e745269c55683abfd2b20e870c9c 35488 +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +.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 +SzwGM5gI0pl9BscRn+wIAAAAABFla. \ No newline at end of file diff --git a/examples/02631/instructor/week5/__pycache__/report1intro.cpython-38.pyc b/examples/02631/instructor/week5/__pycache__/report1intro.cpython-38.pyc deleted file mode 100644 index ba16d7002f51dee562fcff1bb147d4600de3fb07..0000000000000000000000000000000000000000 Binary files a/examples/02631/instructor/week5/__pycache__/report1intro.cpython-38.pyc and /dev/null differ diff --git a/examples/02631/instructor/week5/deploy.py b/examples/02631/instructor/week5/deploy.py index 3457b7fd1275185e0c91b0d3b78182db7b768f0d..e6759e5b9e985639cfd394b7f4cff9415fd33dfa 100644 --- a/examples/02631/instructor/week5/deploy.py +++ b/examples/02631/instructor/week5/deploy.py @@ -1,4 +1,4 @@ -from report1intro import Report1Flat +from looping_tests import Report1Flat from unitgrade_private.hidden_create_files import setup_grade_file_report from snipper import snip_dir diff --git a/examples/02631/instructor/week5/report1intro.py b/examples/02631/instructor/week5/looping_tests.py similarity index 100% rename from examples/02631/instructor/week5/report1intro.py rename to examples/02631/instructor/week5/looping_tests.py diff --git a/examples/02631/instructor/week5/looping_tests_grade.py b/examples/02631/instructor/week5/looping_tests_grade.py new file mode 100644 index 0000000000000000000000000000000000000000..8e88d8efa8f18f1bb256bda6ab57e41f2702665e --- /dev/null +++ b/examples/02631/instructor/week5/looping_tests_grade.py @@ -0,0 +1,4 @@ +# looping_tests.py +''' WARNING: Modifying, decompiling or otherwise tampering with this script, it's data or the resulting .token file will be investigated as a cheating attempt. ''' +import bz2, base64 +exec(bz2.decompress(base64.b64decode('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'))) \ No newline at end of file diff --git a/examples/02631/instructor/week5/report1intro_grade.py b/examples/02631/instructor/week5/report1intro_grade.py deleted file mode 100644 index 335212aa926b93e9c43ae8dbbeb52007d296cab4..0000000000000000000000000000000000000000 --- a/examples/02631/instructor/week5/report1intro_grade.py +++ /dev/null @@ -1,4 +0,0 @@ -# report1intro.py -''' WARNING: Modifying, decompiling or otherwise tampering with this script, it's data or the resulting .token file will be investigated as a cheating attempt. ''' -import bz2, base64 -exec(bz2.decompress(base64.b64decode('QlpoOTFBWSZTWZ9dHwQAbL1/gH/2xFZ7////////vv////5gdl557ze++7R59vgtgcKOnuyFUCgPQaiChXrBEqVKoge5nRns314+9w++2vm9gmjEUoRSKK+jRSlD7N7fTHvrtVfbWdzXz24vezm0tnt2oH05PPe848D0xZOfe96H23b7fQ7se3Idr7nqqfTz3vvKe+24A+jG7KvvO24fffN7t9QU833sd6V7Z2KNPpx724mfY3dNXuZVeRtu2XfAD0AU++YMevruznm+23zd7jcdtlYN9z7eLO97dPdor1q975747fcvLvbXtvXKW6+3WgW9zdO7jYdo98e21nnvb3XN1Nka93Kdt9cl22svd59vu3xvfV741u+St12bOdk6m0XPadKDvs6++cvsmNze50desffaHnpY2tX2+zeL2fPfO+e29rt2e97ttYpb03bXzN90EpoggAmgTQE00NCMiZGmamk01PKZPU/VG0Ro9Gk0MmRp6ASmgQQkE00JqZqemSaaZRmjRTZR5IyB6j1PUBpoBoA9QASCSI0hKn+qj8yibU8UT9U80p+mTU9NUNqaaD1PKGjQBptQAaAZASaSQhBMmmU9ImxNDSpvTVP1R+knimTah6n6obU02kDZT1BoMjJmkBEkSaaTBT0Ymgk2jRU/EGqe1Miemajao9R+qHoE2mpiaDagANBEkIRoCCbRMKGTJppT1P0UeVPaU/VAek2ptIPSaNpNNAaABugH8xAD0+fzADZFUKIq0CQQ+KIj+sYiB6ogin2hSSJECGCRqyjwBwMUikVTbISZJbACHBJ9CixVRU//fR82F1UNJ/T/51hH+hLD9brn0T+HRuf0/4T6x4QcH1f73pnG2U/x/JTB4+uBnGKtNjTXh/v1zP9SsXk465y+OZpu6lLwmP0u2IHJQ6YhXHogzLqbhku9Tjncjw84qIFiU+/6ckdXqBlw9Reaa8c411d9k046Td8U55TsTolMjTfmTmVx+UH8D5Epx93+N+SBL+7k+m6e7jOIp/dOdJyd0tF+ha32eeiGCr9fM4cwA4iEEQRP/GmefYYAVVTtABPUxFkCRSRJAhBkFYyKEA/fJKKikEFX9CTJAJJn0IlAiMSAKyICmMRJxMrQUJW311zV9Fvam0fnunC+B3ZOcPW/InWTKgWUFWDJ+hlVmSNFVBRT87CgxFQFUgqDIiqk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'))) \ No newline at end of file diff --git a/examples/02631/instructor/week5/unitgrade_data/Bacteria.pkl b/examples/02631/instructor/week5/unitgrade_data/Bacteria.pkl index 703d7a9b626c810bf555748f8a5de1c5886575c6..5fd7927c81b07caaef98db8a9e8111b12d62019b 100644 Binary files a/examples/02631/instructor/week5/unitgrade_data/Bacteria.pkl and b/examples/02631/instructor/week5/unitgrade_data/Bacteria.pkl differ diff --git a/examples/02631/instructor/week5/unitgrade_data/ClusterAnalysis.pkl b/examples/02631/instructor/week5/unitgrade_data/ClusterAnalysis.pkl index 9069a502a63c321f995ded8c9a84212b92cdeb5d..2f11291cbbf7032f654afea9023684431328a1ce 100644 Binary files a/examples/02631/instructor/week5/unitgrade_data/ClusterAnalysis.pkl and b/examples/02631/instructor/week5/unitgrade_data/ClusterAnalysis.pkl differ diff --git a/examples/02631/instructor/week5/unitgrade_data/FermentationRate.pkl b/examples/02631/instructor/week5/unitgrade_data/FermentationRate.pkl index 3d0646ebc545b5e45a3adf481ab44ff0231b59bf..0174a699f6daaebd098ec177240e48b8c3293a44 100644 Binary files a/examples/02631/instructor/week5/unitgrade_data/FermentationRate.pkl and b/examples/02631/instructor/week5/unitgrade_data/FermentationRate.pkl differ diff --git a/examples/02631/instructor/week5/unitgrade_data/RemoveIncomplete.pkl b/examples/02631/instructor/week5/unitgrade_data/RemoveIncomplete.pkl index 3e0852344f326a5cd96be0db968882489bc67637..c6aef837cef8ea1f347292519cc37296cb025d45 100644 Binary files a/examples/02631/instructor/week5/unitgrade_data/RemoveIncomplete.pkl and b/examples/02631/instructor/week5/unitgrade_data/RemoveIncomplete.pkl differ diff --git a/examples/02631/students/week5/report1intro.py b/examples/02631/students/week5/looping_tests.py similarity index 100% rename from examples/02631/students/week5/report1intro.py rename to examples/02631/students/week5/looping_tests.py diff --git a/examples/02631/students/week5/unitgrade_data/Bacteria.pkl b/examples/02631/students/week5/unitgrade_data/Bacteria.pkl index 703d7a9b626c810bf555748f8a5de1c5886575c6..5fd7927c81b07caaef98db8a9e8111b12d62019b 100644 Binary files a/examples/02631/students/week5/unitgrade_data/Bacteria.pkl and b/examples/02631/students/week5/unitgrade_data/Bacteria.pkl differ diff --git a/examples/02631/students/week5/unitgrade_data/ClusterAnalysis.pkl b/examples/02631/students/week5/unitgrade_data/ClusterAnalysis.pkl index 9069a502a63c321f995ded8c9a84212b92cdeb5d..2f11291cbbf7032f654afea9023684431328a1ce 100644 Binary files a/examples/02631/students/week5/unitgrade_data/ClusterAnalysis.pkl and b/examples/02631/students/week5/unitgrade_data/ClusterAnalysis.pkl differ diff --git a/examples/02631/students/week5/unitgrade_data/FermentationRate.pkl b/examples/02631/students/week5/unitgrade_data/FermentationRate.pkl index 3d0646ebc545b5e45a3adf481ab44ff0231b59bf..0174a699f6daaebd098ec177240e48b8c3293a44 100644 Binary files a/examples/02631/students/week5/unitgrade_data/FermentationRate.pkl and b/examples/02631/students/week5/unitgrade_data/FermentationRate.pkl differ diff --git a/examples/02631/students/week5/unitgrade_data/RemoveIncomplete.pkl b/examples/02631/students/week5/unitgrade_data/RemoveIncomplete.pkl index 3e0852344f326a5cd96be0db968882489bc67637..c6aef837cef8ea1f347292519cc37296cb025d45 100644 Binary files a/examples/02631/students/week5/unitgrade_data/RemoveIncomplete.pkl and b/examples/02631/students/week5/unitgrade_data/RemoveIncomplete.pkl differ diff --git a/examples/example_autolab_deploy/autolab_courses.py b/examples/example_autolab_deploy/autolab_courses.py index b73df36951980c5b4445bc74d4361409d8a1b3c7..b24fc83e5085a7385a68ec957500e8ce59122424 100644 --- a/examples/example_autolab_deploy/autolab_courses.py +++ b/examples/example_autolab_deploy/autolab_courses.py @@ -5,7 +5,7 @@ from unitgrade_private.docker_helpers import compile_docker_image if __name__ == "__main__": ## Step 1. Deploy the report file. # from report2_test import Report2 - from report1intro import Report1Flat + from looping_tests import Report1Flat from stones_tests import StoneReport from unitgrade_private.hidden_create_files import setup_grade_file_report from snipper.snip_dir import snip_dir @@ -26,12 +26,12 @@ if __name__ == "__main__": # Step 2: Create the cs102.tar file from the grade scripts. #!s=b instructor_base = f"../02105/instructor/week2" - student_base = "../02631/instructor/week5" + student_base = "../02105/students/week2" - from report2_test import Report2 # INSTRUCTOR_GRADE_FILE = - description = """ Hand in the file 'stones.py'. You can find the full example, including solution, here <a href="https://gitlab.compute.dtu.dk/tuhe/unitgrade_private/-/tree/master/examples/02631/instructor/week5">here</a>""" - output_tar = new_deploy_assignment("02105week2", # Autolab name of assignment (and name of .tar file) + description = """ Hand in the file stones.py. You can find the full example, including solution, at https://gitlab.compute.dtu.dk/tuhe/unitgrade_private/-/tree/master/examples/02105/instructor/week2 """ + # description = "This is the stones-problem" + output_tar = new_deploy_assignment("c02105week2", # Autolab name of assignment (and name of .tar file) INSTRUCTOR_BASE=instructor_base, INSTRUCTOR_GRADE_FILE=f"{instructor_base}/stones_tests_grade.py", STUDENT_BASE=student_base, @@ -39,6 +39,19 @@ if __name__ == "__main__": homework_file="stones.py", description=description) + instructor_base = f"../02631/instructor/week5" + student_base = "../02631/students/week5" + + # INSTRUCTOR_GRADE_FILE = + description = """ Hand in the file stones.py. You can find the full example, including solution, at https://gitlab.compute.dtu.dk/tuhe/unitgrade_private/-/tree/master/examples/02631/instructor/week5 """ + # description = "This is the stones-problem" + output_tar = new_deploy_assignment("c02631week5", # Autolab name of assignment (and name of .tar file) + INSTRUCTOR_BASE=instructor_base, + INSTRUCTOR_GRADE_FILE=f"{instructor_base}/looping_tests_grade.py", + STUDENT_BASE=student_base, + autograde_image_tag=autograde_image, + homework_file="looping.py", + description=description) # STUDENT_GRADE_FILE=f"{instructor_base}/stones_tests_grade.py", # What can you do? Get a report class from the .token file? diff --git a/examples/example_autolab_deploy/c02105week2.tar b/examples/example_autolab_deploy/c02105week2.tar new file mode 100644 index 0000000000000000000000000000000000000000..02fa3fc1ff05b8c693fa3b91cda74eebec442a60 Binary files /dev/null and b/examples/example_autolab_deploy/c02105week2.tar differ diff --git a/examples/example_autolab_deploy/c02631week5.tar b/examples/example_autolab_deploy/c02631week5.tar new file mode 100644 index 0000000000000000000000000000000000000000..e8d5aef89dd8107bd1609ab7f798273e1310e9e5 Binary files /dev/null and b/examples/example_autolab_deploy/c02631week5.tar differ diff --git a/examples/tmp/02105week2/02105week2-autograde/StoneReport_handin.token b/examples/tmp/02105week2/02105week2-autograde/StoneReport_handin.token new file mode 100644 index 0000000000000000000000000000000000000000..37becd782259655b9e8516a08abe63ab3d3f2183 --- /dev/null +++ b/examples/tmp/02105week2/02105week2-autograde/StoneReport_handin.token @@ -0,0 +1,179 @@ +# This file contains your results. Do not edit its content. Simply upload it as it is. +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +af74d9e2eea101854f07fd64951aafb1fbd062916c869b330e535271178c5ce49be3fc7eda177a383e7971a004abf73b787b543843a89e0b7959c0081a44e87a 31368 +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +./Td6WFoAAATm1rRGAgAhARYAAAB0L+Wj4IXZW6RdAEABDnroJ8N61cV3uyv9rA3VXYLFhUioEJM45nedEKdqnO19PvW/YXoHmDkQocrblVLERQOzdoe2zfnvVikcsMGzEktlVOe3W3XUOr+/vL7QSGinStr49f86RE5jY5bPLOoCeppsRkj +s33c6Zm4tgHChsAQqjVsVA9X/4GP5yPAEZejhWDhYtEb5pB2o6A1MasOFPoofSV7LAg1rdpN0NE2FCLmyxA674jB+sDBsM95Kiv0pDXZv5wwzbdwLS01FCCa/HKa7zwhGJJ+eQNWiRtj/SdjLKDk+3XlWsWxqT8dsfkNwEa3K34aKyUvqAY0 +AvFiK75xPyw26caf2G2oECT2Pw9LzyUHTwc413wQparA3YJrCsYBVuOwDUw0RlwZro3l8eMn7GPms0AImprMxDJlwPYko7FE880zJtsjUd3Z9g1NQTj9B545JPQwi5l95SNtjDjO008UkBCkV2B3dFpbmoFi+qWvl6L7cS4NF28tXi2w80ac +MjkMfnEwXlY82rQrqE2b2L8y+t+0z6p14eo4niTYlw3s15gsSTGltt2W9VB1RIwcnEvkCjbMI6svfmefobtPb8Fbp/1g1D8UjQnXUmhwbMtrBTDuSoXwyCVI3ruPLyD7bCnpZQtsJWHkvPceGODs4RpGE8OYqZU1OhrrcxuA9FYVvRoosCzf +/BR2xBiojkoA9Z4wIM9oBTt0nm+nUtdmCAdxbaJ2gNCSYVViXRS2LrFIvj4c57ztb8Aog6pyGpTxV3950iRCiA9B4EgrKlViVcLkxrfCGiTnNn3El6OgVnbi4EqmwG0FVe8Thr1Dp1FeOHrfOR3NDWReLG8jKXDDepsVUQBUwB/DB6cHQZJA +tF21sl+2zQ+nWflKgWBf1ekXDkKnnDKJ7vnib4bUwhWRstsT9okmoQk4igifZRTkJyNYepsaOXPgV39wj+L+FjEFxjhlc78klp01sIuXZR6eptTKvBEC5lztkIp7oOB+ThlbyvFbix0+dqGoHfFZQexaRQv4cSSoKgYhAPY6rpOLBkMTkZH+ +ry+bn4b088W/hhkMcygWMoI61ewnq9svOcT3Nhg/9N01ambAb1iUyObgSerDLO1m4vscITcBm87N67tmmPIkWKJ4PA+GU9Zr+ns0sutTD2VAYVJWuk14Y3TOjcUpnInf6jL38YwpyANB2atNZI4PVltodi8vtpLiOkkiwIUIOw/KeczKHrjv +PIKysZbP1NfgX5Zr2rDFl8ZCGSwKT01BV/1/VhH0J/rqacmSMntNV2xHLjR8mqu17AFrYE67TnB38qRLkSE6cUeoU5QThs++TNf3yeA6IfLpMnxqPfnjHU3iCDbjN4EIVyHSMD/BBAXriEV8+NAnCDV82ls51SdDJOBRlnTQbxCHPz0Rwobw +F+Sbzcdy6Vt1V0C6B8BZqAdDJkZ/eIHhsJN9v/31YzmOsRBXFYxroqbnYxHHPKblITkhu3x1Xzj2bwBM2mGvYb6pNgrtX55aK4dLPeBDQhIePGFmJFkgNh4uZskejtYrXYpSFs8caajTDX/5z6cdSmG4OcjQAqvLGHnWt+xqNhCSUAYr8pA7 +efIQ/b56dtA1mUCQkNkKp22Igo6NrIuZ3zIErascsYFgo5B0j72HqcW8VufD0iCG4YgAy1qXyndVv3cT0yjrv/ZmWMHKmEJTdDdDR4BSBJbwMJeRcguwVz7ee1UDwv24J0XhaZpvg85P1i5jhQe5PrTFLw98uA8VFeQBvRzj9aQUq/Qr7Uui +OR5qyqHeR8E3HNu520eJMYBSaRSC0ewoW6uMimFo/CLics0eRZg9iUfv/gcqG4GH0kLLpyWPr9jo6qQBTaXnwDfec4ScyoxmdAoeFlJfO6mqcxZE6z+q+4jY6DxcU0ybRplhJO0RmSfhh20E3u1z0x8Ww4UCuhRjnJhfOXxSUfmL4Ied6ytu +ABYFU+b0AsFCxbdPNbx9Hk3Ozn8ovHfmkRqMqMre+CgNYzQEs+nOCOAMxzRQtxA4uc7bAU6OwhhEKXsvKNAzF0PmxptjGgiscldF9wxSf/iFL4qrCZGIMQAEQCf1FJTnv/d+3DGzF2VyOK6xOv5Xro1DoVH6EDEKxeR2r4tWGOlEXu5IzAWL +pweKdQyBrGBHlAzfR+kRlyAqxplB6jA1lV9IvX/U/Fm42daQexeYjV5O2qabWiuI4cmjrOdTXh1XW3nQ31N1QOdngs9qqgcaeHWL5edSinCd3hKjOh96NxOm2a0AuJnYoy8gx7vc4KvP+a6EvXbwXU4lz7qWvG5rss3SoGXK3P8/zgSqljsq +5vKju0RQukHO6Tp6zE0O7/2D70w/uys86GSGxKc2N+jIUrqxetcep9hx/+avUncDIE49FpcX3bhLZmUymrPiUjAp96hpFQNf1C5+WBstPkdx7wWV3gliX/Fupky2HKXXHqRqx/uGybWzk392FjjpbyzhfHiIk8YC4s+FMfYlbFh8lS72QIeV +Ir/TdJ2XmWIokk2eQs4DwO7MJZCItdcwCL543U4uhBTU5rG7LpIw2Q7D6T9qC5TNh9btvIYjYrGNv25p6kZV92NxK9H0zyvVfB141pG0igtEMiOKhoCrDHhrdIXHtegLOyVWw9oIvRS3J8IMVZZRVxHuiYIRCiYh+YcvH5RLV9meUdnh+5Jk +pGol8dCeBz9RV6XvoublQY97MCWmznNyC2vUqUtjZJLaaK0xMOTw7raiWLvNH7PanRtPjHNf8lZI0cb4fUBSO9Pn9LpE8xY1T+bKbCzJ5WD+JdbDKBIPEg9B054c5ecSc6SMtgAQf3Szs3ONg4MAyrMq9Axx/A6gFvwp+Ehe8nJUnAF2/rQM +6mptoZivEOaid3EohG8mxSjxQvsCqB96EVgxhO/R2svEX8eK5OYOp6vquIkTzSmzBUsASSpqBzo5gwGufXW/qkSyWijD+eJ0rycc6C/sT1GdHy3RrALLNmDTa/DWpmfwgl01LJcm3yRziOA+a4RJI6KbZSpV61nFo/eLxZmSELWaNoribdbq +VLNCqaicGiZH/SwupQTJOJlCV/dpgrIUIrZmkECzlIKb47ZpiQmaMii7YkAmbLiGVSV1lUQ3etPG0xL2tCrHEV7RzjPKSp1a83HxdPI7qtbXDXh7Dd89sPfrMhiCSt6MER2XyVGSmAlyYQy4j+WWB/K8CfazH/QcV/3rBqtbo8JzP3pBwWuh +wcJsOrRCoHFF4VOfadW/pssJdiMEMVmYW69NJwyacx5akgrPquCqLXuqckndG9ftsNjVRBHgnGFpoIhADWnTpJcqXx9wokYzUOSPQyxgw8LoOTLGPf+m5Ehw35tJ+RMdxIiaEXJ21KsDPKTOcY5VvMS94+5mjZPYHxXBtFlsf2GdC2c5oivD +/M1ln5G/s2VZ4eRVNXWxxt/G88dLiiuxq66gUVjBKptveC7i918arN0/KGgRCtx6kL5Hc09n5xYNeoz7X8l9zO5nSMbkWHiOsQg+WV/5AuTg1bUqizgWHRVBZeGlJswzUyWHvyzdDovVzBubL0gmwgqXB7lPxel1goOkPHD7VFmCqRsSa987 +Vmhi839nZKudNovHsQ5GWP0zeet0dYtvTwyO1lMnDpOWNcoei6+ltZvUJHyDxfYcNHjzwvutEw2Ywxgg8S7Voej0Bs7gLxLAmBl7k3WZ5gGny3T4kn9X4w+ybY74tzQQkTZW281bH6pkNYkjhtj+u7dWUjssyeW+60G5fEWCkeWu/hxOBxtT +zCa441pUadteSkNboKBn0vLYN+MDdyPXsv8k8mSu1PLlHQ09wDJQknoDgiPtdt5sPxV2tM1hkUgdKIdYU/L4V6Ii/47w+THddd9Fvsq+FzabP+Fn9L30PJDPm4sz4UbKLDTt2bSSzBt5fXl6UCmIV+s9/2Ym1h4DXUtTQPkKGCTI2ryEESq1 +ngy3uQnOM9d2grG32VKfLi37Ql1saijoTkMeqWN3BGgTBpZ9gv7QUB39jqtOEVMldu1NrWZZ7C1o8peFDUOQSBbd3Jr3iSqS+IIEDcaMyGtmc6Lz2PDmO4dlQTWrU0hu/7fHKVLp02mnBEHl94rTDweVLK6jTDBu7b8zM8+NXeYTTKG4xkOC +4SOERjGQ9FyJNsNMTmTqIUX8AfYwu+1oB1Y4pI1ZphEXOHuP/yDiN8uIXV+NOTUCZarwCR9HdIcX/l9zA0gxwFREaeyhcE2uF1JvnzVwuaEZ775LdOsLoSl13J4rMvoPV3hpArTFk2lbtwbkfgiNmwINo7tZ2Me1cr3NC/fi4yhllMZUhKVL +5Mhh8WoepK5j6CYeOON+1CaJ1SMJH5OkZS8IzVQrZ/CFo6hUPXn+tEod0Yc9bHO8tXZ2NKhomP+cq/tHsJEk0HQjuJtridUeU08XXzhdiKm6MYRLAcWjg839EJXmGVWY5VJlLEaZm35X6LcL+mG1h+xCoFzYSIFvfDZAgqmT/A39y0szQWrp +7VzxudgdUxhS31Ycx2TrorvZCEEO9r20RrNoPXOLkhAhXE2I5qPapasAXWv4iDl0+JOep0U9uOX0FsTHkCDv9sbwsJJxXqoWJUXUhZspdfn3A4K0TKFZ1xV+h3SlKWyVV6LQlfOCM13FfTMNA62Hi2I7dQWRJHbo7rnqqLftVotl83WucFRz +kYs4W7R+xg6DDSIckHsAG9GEJvBba5dkZeCRbrh/lKIviNsAKcukjV+jJijjC4Su8IpHRjMLbX+Oeslp46/ErSHmmGR/XTLBQ6no0uhTaOaPRI9wkGOqwFt7/r5SITnI8prnnskOrrzM7WE7LJbtJ/YeHikhJd8OwCHjgcB1E/k7UadhbwcC +Tok+HtCpwLFPmm9uOhsuJ7yrb2JV1JiO7cHFbp5eX/sgDuMfzdljBuml+Fl47EQzP5rciaWsepXVzHDtUtjXNkRoIdgBW8ozpUoIanOG/ZpsPPTUUpzZPuYPI9s5Wx2tIwozgWAzCSRRj2ZYnIXldT4J86pcQW6Ir9hwxt4K8MH4T1dWE+gL +OI+KqMWIYZIPPBZlRUxtG7nDmuUwm7Gncgv3lxzeKTvwKOOg72cKG/2TG3KE5+97sgermkdBNZRhJ4iU0MIZQAeylqOIErpGEnOl5ypvSfH9JARYnFw0n8tW9Z/crJiixJuIbr9TlIAM9tvZ1rH05KAUny5KpqJOgDaPEXfIYUAhEQrbYP3N +kvRjWsG7qrKGcuyQE3rwmpTQdcm9hHYYbNniPRWeQTXjG/yC0SsYXp0qi3JepMan9WyM6M6WUy0bD8DYmPoOuVkCW0rwT/4S6FzkGO8xicGWccFSslQ4FOHNG9WG4k8N/NXIu90w3RBVrxpQsVhDq/6+uZo5yndPfeAiAxxAMulV/psAVIzq +7hcuQJGEF7YQmBcGZr64/Qh1tNa9lS+nZyNoZIGTTFgteusKq79dKFTYDRhUG3sLpWoFqDu18E2qOk7qj1hXw2LFtF0hNiwRdrwXammQLSNvRsOFU0rRBTGFld8ipHca7TwIgtzzR/I9Mh12TTfFLmL0DQHBhVD96w3j0SHmvCV51ui40CCT +dD/OcceG7FLBdNskU6/A/M9xzo/IZFZRTNm8U5eaa8nhHNEssucEDGDURrWo8Spm9wXTjWuHLT0qs3Hg/l2uZmdYN0mAiLOW8rKN7gTG+OBo9I7wYT2A/YycoPxaLwhSp70iH2PFGVpgfrdJZuF7V94EZYqebZi3JSlsdAViNm2Jk2/4Rrmi +qS8er+f38Y9y2B7bYxhOg65Ufqf8xkfLogGQw8wYVacy9KqJ70qW4+QT8Pi/p0T3MiW4zQmut1u1FF40YAu1zAQ7OtQFaodC0hzZbbgE1vBW6nOI/KYv/VeHtyfmEQpOvfb/5rWfnR3tgbEdV+tdm565oIr3Wlhnyxn6UliaibRPJuJQEkK5 +kP6pljubKQuql4nXB7vnwb9KAnhaiyTolwzGNsiB8bQ8pSvYLTxWxZtEl9CJAuAAR+Khjj2lbSq3PGELf8YKkmfjYHEJmUoHFO/M8J67zev8waxqNrS5mRb1lfYCViXSY6qjGLauci2FhOQyYNSykelJ4gK0QXdzH7Tla7rNTfm9MaDPhJ6H +ijC7HJGTEmbBQxdMQ9Cc/RiveWF5HuBqbhJGGu0nLJeaSdV4dBD+65RMBxHvIRaWZ/qxM3HutJX4hKGgg9/2nOShG2VENQzYHHtjfmTOdIr4NMAuoKehEMRe2rzhHSq1gVMf8i3nJhCHucbiTPrgjO50ZllZ1Sy1OQGP7rKAvVQ75Ba3x+Z0 +WJeSY68ALJryi4ki54RGU5Wvh8xsj+FslNjEox94vUkRb9CoTqgRDGZ7ifAaVgt6Cq8sBVtcJxRB4W+439ojzdQzs5hk+cW2as3vYOsFuXw7R2MUeZVzTx4v2zmpX5cLJ/DnkKLFjC55DqLCZye39BdjSko13hWGJ5aO6r2pxONES4TpFWVH +IYeQFIieRAOxWvm+OCKmPg+/7lQ1bIBflxHXHEAug3URyWUGBhsbfMXZuvNreFrKpuaBJVz652LUzbCcWhr2UgJSiBqRGvNPMz1fM83PtNg/aVq0hVBNmKLq1aliyzbCj+IiWVaU3x8KZdUqHb4y6NMEGbCnXFT7RMB6Lxso4ojrF8uWeN5Q +xvT6N2kT75fPKVx/jvSvZVAHZ50jau9VLKutC9+gId5DcE4rC9YxcdXksQ9bAnSuNs+NnL7dl1ne4+BRxR+bEJtW7bzkR/C8WVQPI16nvDWBac2KAzFQq07y7JxQEsWJILvrmOyA9uYZ/3f84ioeLEyA28CIzXN5wkMxJB8TJzolX4GcMuoz +grSJe59KMudMcOA2dabbWYW627zMDYzjgU0xtKz8qU7F7lIx1z3SPv/eVZtjAMUgrgvJRp5LxoeFqEU41VzJmaNhXIJZN+RcUCAYzy230N0/6MycrTuf3MlyWubNFTIfLapJ20P7tL2pIY/PGfgwrvo6nzEjqyCDFTv1IOBZzFHiimhnPlY8 +wRipqCeeyrwNfvYfbbUQN/CB5VU+Zouw/rNvUoQslTYBvUb44TPPktEVTaUZ+AEAv1IVndjHnpeboBMIDsSlZwTosCevcSnqxx0KPwEu8RNC6EkouYKireCHegjrxI39kcOFaZJFM53xYfiIh/HoPfhxF0Y9IoR57XNrfzyeSUV17ejcUgRE +EN/hS8MM2ZqMwR6ZFBA+Pnp++adKMqYvtxESCv7JUtMnj1mlfh01PEbRfKzNUYxQjK1vjoReq1tULZjchLgzjhJx7SSWe9Vme8prgZmhl2WaN0ESWrlrJ14EaoxLJz31drerF2GlXtXLSQL5sJXzmH7vligEQJZSPnD+OLJsy7MIoFlT3gax +44F4s15EC8AzoQYlXv9jaF3ZYZD7ikh7dkn54toqRS2omdN7Kcydi1/j5hB9BELc/6Il6U8tlZaX0rKQkDVZT3+SWL02Qo0OusprZNGdUdrT4XfzUt5oW7DifiUotUe/cBoQPGSKt/5Pk2Df31wi2v5OgJhkz260231ZJrqBPZCTVd15E95V +FMb0cHjEWbxH0stVjEbSVJSQglQLEP0ZxNwdN7Wd1Emr7lzRAKeoXhBGD0zAvTvPiPmTgFlFQgcFnpYKvmcbeDJCK/MwPDXs4iA9gyKtekF7TRiEJNjqG14MBf71qqYwjg1YRniTLH61l60Y5SIYGeE9umLdsFlkHS8oYD9fid97Ye5UJfdv +tiyAV1FJa23RSdk3nnDSVdtPjUtrKp8RkaVlkMEyLCF75N8Bl5RZbYFuVctIK7MahmdpakY0Zpce4eKTie3riYLqtpaGiyaQr4kq9Qn2MFMI9DgQpRwoIgngKdVWQYtBxziyukOivk8qRVhNM6cdhBuxqHW7fAqRLF0r9Vx/AQSYE6sNJurq +zy2flvi/0vyy0BhHz0Skgje41qifDESBLatH0HLkrkL7u073GpdOtWYyYuhElK1u217gzM2UBCqTj2a/zO2D5wGcr7kguEigLhHfmEF+Kp9+DWK2IKy/+zaszjt9ERtkE1/9zYwN8PksnjBUfgocIGW97ESmkSXR86fIn9ClHqXrNZQDyjre +A2v+Z8oDRNnM3Eg0Ic3D0rk08fPbw3jfh5b62+C7NrU6ASkZjJ0qTOx8LoBlP9xYRX7B569nYSho6OQZTiE4jBYHxFnk8jVehlsFpcfs40LfoAgbazSycybaLLRlDtbrKAC32KNIUxxEeyIVeKAx21pXmXduUp3jMPgpcku6Ul2DWT5WRIfk +Rvp24ypQpfC7UMLkN7DA82KbW4ly9bYYhcK4GIDZllwUJ0vTVV0ZUElJ4ZT9zV0kKMigSebkJPOLyHtL0AdPNZAfA9Qv/xuh9DnPrpymh64AnfIlUBTGG4SvCthS40VE8Wpluw+V6HsTMDPQNsI3hGwSYGyhzP/d0fAmY7kf99Tc0JT8YSbN +4sqHxEpXGNeLbpfqsAVFYVp2xKSWM/iz4gPJuWI71QZJYCwIg4SxmZpnLqc55aRw+oDTwKFJR9YIkPPiqQizKt+/0z3OUHC6Zm+gvpehM/3FSWQZk3XDKYCtN69pG75Hsnw5cTvOfQnqW0sU4zEsTlcmPNZCcMckiitafz0F9tNGg2wydnZM +K5fAt0sJskCBg9GlVYfpmarg12lZuz6jPGouUkXqV1eb4K71avgzCn6Syif2A1UGBRk/9CeFAaAN6zlN2LW72DxM6JkS47X7PH4Bhj7GE9CGUaqF8aB9KlhkfHczNT6D2f9cuIUEUv69shCEGIsgZvLQzOu+QqN9awnSxHNTZnn698oyLH3z +ePZl2PODI0OEwvOuikH4MzHQ4XAGKy1OMFHCiyl3/trpcNWFwT099a0GxFwAyOuHOwHEPiLFVUltpZOqxVeF02uYZpeWD28YRFdDEoHSJLCWNAwCy7gWq/pE96rRNR5YBqINzdHY9awEAQqzd1GxVHufSul/OO0bQFPZSlRgHzIUtmAq1qlq +MTvU+YqchCGuN+8eL03JqA43mppHtO60kicbmQEcp7BgA27skin8MXR2rUCk3DIP4QiuNSTIlAFXhonEWHAEnbVoUN7Gx1v8dpYWdCu+QdGUL14Q785+boTbQzOXzvooHotEn6wnONB2cznAbZ/pyNjtPNIh41vnZr0Tm3NoIAEt1Ysx6lEK +GAGTxZE1fusREr+rsqJSoA2PgFpvdaS5hOUk4QRjQpdupqlxZvGG4d2S9TshKPqWLxUV54nTzL1+2h867nTBELxwYG0GuyXaIM7TMZFGjR2xcvevQsA40GHlmwdMBvyXV0DmxnStDcNNv2paWDEIaruAuoYPRglU7v8E1nveK0hUuU+ro5dd +YraTDfoBx5X4k2nU7spwIIbgjYXdT9nFjSO3Rr9MfXbIJdB1DnS5KP6Y8hUfhG+cUvnVkQl8gxNyPQsNFqAglgj1MoZuz1NA2sLsVf4711UjVvWSG+JQdS/fx/nncqo3A2yonNNYDuSJG9y7z8PgJtAOPcCXtI1DrOZJ/wuRb/QTmaThDOYA +6jwTguVnptXJcg3nxZR1fs14FsBaFHdZzEH8V6RVx2ITHRCorjT3O3vLjbASSzg7gU1eLfBh9oKEIW0sHYVla/sVV/LuWprf+YOhqqxZHE8Ow7uW+NLxKbAuN03GmCd+G2XkDX83wqFNVuyi+Ft8k0RR8InAFct5nu7Qtf5y+LgnltR5P9yx +5rQ4MtkfQcEU3nXf2r/Nrr59I3WMt8+e0F85KUKeooIWWzFRHjoYSPYrEaPL5hhxK+JpB1LZPss+j/nyk7Bv1sBr6PduHpUJuQBWhszXosmPxa2BcgrgxsXvdWnTulLzaWiV7cZ/eU4PHKWfGGiTcTTJVEipS6YxxdoYO9DGD0vp+S2XgppO +FzJV7C2E01ZS8Lkqia4ZcB++9n+59t1aojEkhCWH9l5LdXhqRwMbcCwvTjj+RcKYwxODCxiNT2h6nIs62GrN4NChqA6IvNNR6veTOWRgyZd8Ofm+jzPIzoq3Va7+3MAZNbSw4mR4cCjCO7U8aJrdxNeIsAi2w/TFgJOVTPIzJZW6eKHRNttN +oYoFm1G96aKzQEuz3nLzdlcsuIBSLsgIjbCLVuMABZi4m8eFZ9Ex41eDZMYBWp9GYRAK5RP3NSK5aypYT3/MPQ2HurCgitiFgwNaI8m0W3NZA3pXHwf4o++lejYL+X/TTa3zYkPyU1cyWrmZFU6turUbGMsHw/tOy5sTh8UOHkvSvBYLB0R5 +xvb5evk4dVOsfzMaK4+gpVdhObdHU371BK9ym8qZewaCL8lJ5EdsTN7za+E2VTYfnzN2funMqluXKCvSPo+ufeICxC+1Acc9qSBpfqqvue8OZbN/4h9ONBdXkbFdmA9BLo1J5UcwJFz1brJBxnHExKjSOXvk7NZHfId3qtk+q0wfAjKHurGS +NlPJSld28BhvA5hRr29BfyCWKWEx3Qg+66c1DrK0Rt5UCQvIIxgEUGfua4EtG/0UdSU2laYlA888G9Ai96xobqF+nXmDw7krTDKxj9aWBRsTGZT9gw10oI6Gc4EAuJJGLj83+etiKsPmI3uEBL9uRAGOEqcrztmNVjVCJn3BsadubC9R5hKO +cwVtG+mKS/qevy2DwPnS9wsR6yZ0DcTCcO4ho0opht+bJDQWiZRqgxgCK2m2a2WuP4qntSnSvOVMUMYsZEUZ4VsTKM9Bdi4zzRuAz53rw/xuVe3JrWgG3DwZ/YxepJ1R3djtmnwF0zQh7fkRJoH9bLsT5QoM+Qz0mqE6/NhDYvjmjoLu108e +AKMUQ9DSAgTNrvZPtjyQGgAC/WK6lmM2P/1karwPABxRiJJ0cocNV3Ma5Pasq7QZNOLpOSL/+z43dz9VjMQhHjpUI11Bs/MlOgeQsIeMjRhrXRlB4vK0sV4KD3CZlAkITZr78fx/OJW4by4trVJZYyvcGx2IIvFitPVNliOOLWRzT+HPXb9S +pUISED76oW+aaQZftz/g6y9CcONmjqYmLjG4qT63EF09u3XM2tuuAdrngzaMrR5pS5Se4E94mrvd1fKTvILvnVKLXHKdqBBS/tJfgS8TLEJbvO8dntlQW2lQ3jLYW5chdpxe49ZpqMRcdI0E4hPS7tEEqSiPHmnVzk8KK8PolgU+7/5Udb+i +WoEFJatYebScyLfWj4t4L90bbYt/J0Zj1sq47ABtDMfTLPtg3cbbEFpmzGQQjuR0R+Vji/j4/yTtaEHKLCNzQRwWCBFrSNnrdYqnJxLZJcDzYd82OJwghl/WUDboSVRT5wrpfxwDtNOPRoCZOBwCu+x7qVO+x7O4plJfAW6iM7URCX4cLUkl +tGCozsQfkJ20d/AVbffMrAsHY9K0hOBSxr0RTJA/iJmG6ziqEN5Yw75ABnmQyVTrnhRwg3NDZoBWuMYmoKyn1hDUa8lRgmEJv3QzlAfH4lOg1GpASUrDRVqjCAewUnA1CAldOajLxRZdbXUvFsT4nkc3Tf39jW716YIrKqlRUAeE+UU/wZgZ +8jseY37CvofBJlxO93gpTNZ3YGGpLVmaXZkh/GjdT8GSjTyHDNBfs8Fy6Vd63TZEHHrn69+tk0M2N9Zx5Njpkdc60hBQY/RA7jpC8+VaqUUYVOXANImx3U2Abq16Ck++Kcz1ndQdBNtt4M0RyiVRlKGxAvv8pEotvbY2RCvfiqbSPoWQEG4i +gmOJklg0QpsMBicV/QUBMqaJJ25eqjT+HgQoHgKbgLCxX+OErcsi49u0C0NqmUuGt9zFEbJxqxwy14Ss56VfQJxmMonmGxyI34JR0jjp0OcyzZS1s7lx8yhvaHCV3XU8NUn/pB8pchUjYNNlLycqCx+aLtr8TH82WOJa3+Cunuqa57zj2DuR +ohpVTA/c/Npuji5/Qf54DTTSCJ8HW/iQYRawh4Z4qijwxtLSiuQwtRvJS9VYYg7jxbWOzZGIRauPKSRY4x9L4gA0HP8Nmbp5CNycvZCpJE9984MJ2n45c6xacV4xAxBb+RPi8leNxX1IM2t1Mrl6O79EM0gxaw2BC/qwjnh7Lu2lYoZ35IEL +doyjOqew+uP/J/4OrqdNjCHsRVY3tcgH+jMiRallcuJt1U652iJPDhxRxmYqSBibTbY1YqJKPlDp27eyRTGqx0FOAuxhxRB41tOPci5u0AsArLp/oAOtgI2qJnBG1iaV+S4sO7LQGb3SmKo2vL4bd+fG/tGUEiKgxjWdQoVaT1uty51kNsAG +W4hgnrxHR+nNqr/GoMyG6OENCJF3zEaIy+wF6PRPNGV7j0KuK9ByYXjCmL/v0A6kmUF+ap1rRJTN8vga3dN4o4V0XnRCBZpvXRp4LRFdKdEEi1o6TcC8zA6W9VjJbB6sRrZFDYZs6lVuenkStIRZMzYBPkvsyqVN8Cvk8uVrW3Yv82Dm9Neb +OGCsKuW5SAnFEc/n65DOcQjHg4GXrYiJgfdo8XJjEtZJTBZ1bCyuifJkel90CCH2sTvdrrU0BmTHWUr8u1W9UC/NzJlm83/KikjqjspCLADguAXdMod1KGt4al2gKvDmQDI6od5zfgpEOckUXR3c4UWMHDJeGWwItt5UR1Ll/lWQQHLr9j15 +HI2MgeXhbbqTi+wfk+JxISs1lCVjKwG5BFbtXswbbcV4peYMB3QiV66pi6ICycQKofJ+bNXbnBmamZ/Y6Lu7jMYdo3MT1xtUL3ZpRaXUHQ8wC4+QEDu1V1B8AfnA/VIIL0SBcCAx2VsYKY1QRdTHMoUnE2tRkY90Yb0XvEVplTMTwoZ59zeK +GefmoCtnKfvo7V9NphKl9bZxfoCwhVcBmaSCk8808eK0Z8tQ51fZHXk9wH/qrAtoWaPckHgDdk8NEDz3GNmd8coJD3wOFQP/IwzHmz4hWqtMbbrZxR/94i4SpmLFf4/cvWOFNVZHhQzQGM3tw/2/WoqqRjXnbfwpjm7vC71WwoA2mVWYEP5u +9F4jFgCUtwsvqeTdwgBexFXuCYfm4RXLf+sfZksDYhm0rvgblX+k4k0iNJixdjQvezxqiybZtiXM3c367IvlHCJZacvKjke0CdKa/LDYoFUPrFHPCiKwqSLr8K9xYO+Fhtb2sQpUwva4rHcNtKkbKwxRekhuodXsD0M+hi2DtGxejtTG5P18 +Rzm2SHM5P32Kg0ySehTtXVDhFbrBF70IN4vNEg5Z/YQT9Y/idaVSRXQlfuvuQdIEFw4/VChdPdon7LRjGeEinTvmyaiZhA3ko5CUWn0I2T0d+XwEHJthyNc2EnUOBnsHGktWtJgXnREsEckAKFCmjFRPc74GQEWYLOSTej5sy7wqIzzinjFd +7gy7lcDLZWE2i5IdJf++TIIX8DaFaNKhJJT36i7RKRuGtMqpYsmBB3MOnHtQzqT5QpZLCi+s4RLsmX4C0jM4QHNNx4w4rk90j4gZLKXOAwlGDlhhsUwlRg8k2M+6RrV6Ll810LVStw5nygHNEnJFefZLB66y6LgfueAnjd82SSChpjZN2Jqr +t3T5p9ksEzbhGBg+MXK3NC1lS0hC7R3wsufwVmwuzivDamZJC+Gp4eIvQR4TkN6grhpz81dNtlHUYbxI0oMkVieYkWBjTuzlRVj0RoG/S1QcxrsZ4UTlAiKzcjksg9dz/z8BKsGHmz/5MWO53CmswrUjb4tcqYtzQ44AFUHM4zwQbnHaXfWQ +xKdf1XoqgQIHLdI75CVm9navi0olVE/068SV6yM/rYe+uQKP2+/j3dtHzU5pTvX0QytnrXvhRQZ11WzaoLkYfD95y3vF6jDkgsU1DbvodLcNTnSenBb4Ba2KU/Sv4X/gFnHdxSTRDhdVhSg3CfNfQnqmo+oYrmqaqHATlN2NEXGIJUuLW4hM +yT+cKJwy2zdTpBbjcp8pO3+JU+NNI9fsNMNmWKs6NOnY+qvTUvu19Ym8djWqhLBSrTZfKrs9PVzRVCX83MyOcxFZHYmzct7JdT5DCE2YtfPCFpQUpcKSNF7KcG6SsJu8o6TqntEJLaXeJpSIAW+RciojRW3gFBM6CITBeQb7SZz3YYf72Aek +RYwrR2voNlh9QHBaHLIvRZg9rnLSWn9k9uxSOf8ZKIKXsl3wNf/OflfyHzjcW8DVsK5E266AZuKa4Tq9Zi0cGCi6HdqEkr6GbJMaV8d2y6iT+lOShII7bgbRChkaDkYJ6BncwGSQa/83OPygRZEG+or73oE10+mFFU/BDEnj0UQLwoUExbal +KopF9gcvMWAPortbVoN++0+hjAfa6r+5tCSqmfXEEMMAyJt9knEXOocs5wdXboBreX51Wg3MUeAy3Y8lV1PmUWspfgcwdlSHzA5PnczUqKXm0xvqIXKuI9hYHDA8bIrUSRDxFZfQxQ2zp8ggh+7/rGB9cYT2lBgrjU9MkpQk8wHT3bP7jbl4 +Lz9LGV1Gb1Dy2A7L8U/04MzhXKzBipMTF8/RS9pzJsICxV+H2b849BxdQkTkdPNrQfTX0sJmi4HI/LYHWGNU6rL8wW461IK8OLe3CbHea+Nscqtu1kricsTwE9qKocd9I8Efhcx0qRIf2nTC2jYJnmS7BzKhVEWBUG1YOkpRy3cK62F0bt7N +jVMOK0nFtNdUn+EvpumB0ZweVLHToIR+IVvQYGiIrNs3+o6QPhV3vvogUOXRJ9sKWlXKn5IqQ4roRGafhtmr31dBQH0wxCkIUi3FdANeIau1eI3TzpEMdMAzi7KSB9/U9Tj7uOuMlE79dcJpUzp4boYrytwiP0BQCmwEyPqtZs0BvabFjybs +SUu+g1gCG4F7v75YySvKiqfo8Je7ZwcJEQoBo5zkmBO23JCWH80zjmT/CmreddQhuVEQCGHjEzxeT+upxFdCqPDnPK3GsYtL+FyW+hAv7TY3Yz+3TOHrOLbq1ZQV+vN6es5je2gGanBOTCGRwSyV79nhLR9UkF/hs09tGsqF7jpnhwp9UBKw +cLZcbtWTBGshzX2/QhL2JWSa+HOHktgVP9YniRUkOE6eG72CLeiRA0m23hEp+2FMdZ2OJiPWsFtnoEUehhW7L/fMM1WnK0aOFF9rPKWhKRcMFLh5lN/1bvZjfSRFufVnwLm6j1lQzPNOZnBNel+GHA8dx/0KIYRbc92zVGGxpCia6FvVSZMD +IF519/HfssFHtCvaMsaqaEPIVQPSJoJK3zb+05NxMme17cnWld+pk2Hs68sSB14goRFPqGMkq8oY9G7BOHdqRNeD61IVLUtQIe76JtVocskwCWQUlkIGxxw/jSHeb49Jj07Wv4TFpeRRhRfBRJX4tPJ8BV99mq9yMXlN9r5+7GokaRaCvmMi ++5xHI3UlR0RafUiMUFX0HuPrMqdHnxtGRcsCQ3frVAt/Qnj1xCfvXxvZbbx/4HO0hXMW6EEmHoZ4m169HqiNKIXzU9AdMP6umFp7tzcDXAt6avpW7uxHO+a79ErH/nNfdGxq4K3xxwBfDrl/LYesoVKHgUvVnqbIZS27/4AZyPAJR9OcXsRz +VylyHWbRYWFBKhHSBfPEAiRtxzOOyqwXZmljAY59yPOXaSJp2aPSMO155apjx4THMfFiaqcjt7xJ9PYZbfidEaThibWT7/557/5sTiM6T7BsGBTWqCwlMHjlPqAGehciFuZDg/FfZU38pW4cxuW2YOvbFC14Lbk+QBdN5N7+wQzniCVNCwbo +ixBbujU1O/mCnWOrK12aUbdnajMeJWpEIuYOzKPrtzK0aPOEGoJNcdtbyrEJD9rHQN40ZSv4/MWKcBKO++b4wX4+uM56E/V/xo2BfuxxXNW8iGBFodanFhQK6bA/R1Rkqm2FUFUXae/7tcYCRag6TdD0BLGgv1fq3q1u9EN/g4lGPSSJJlT5 +awMh+7bqh6sFppK+WAsn5+4LQdBIm03b9KM25GzYb1lUVYbG2FBN26rldpK5fOp9ukuh0PiVQd23w7ZoQv3zzW/5owiNsYeZCnGozsikBkSf6ulBDfOI3SFmyorWNYoerMIATVr0eEVF60vUUgJt5jwyCaUyF2l2XIr5LB6zv4ArCvuMCkTW +CzGzm6ozyluiVpjcFbub+j955SutpaLSSB+saamMNlaQyecWxin3qA4gNbVGBH30lwT9PsJKdszUBb9SttJrm2yUa7RW8xkhu/M/IgvjHqxKEozQoEM6eLypgVRE3JUB9UXu3qOju/TtNrFaJixcyqT92ug/ZyjT8b0FipJzPp7PXVVtXVQu +5p5jOmN6AdKv8d0W1QYe+/iJCd7+v+oJBz1uqpQqgswkvkmu9ensVath+ooOBbqSpBXEgZkJGi+Ub3OQsor0w4qlOTDtfnZ3PzApVJxhnTDCCdnXRw9INmIkOR20VF5fGZri/wTz6aHZU5RcGA49jP6qd9ulQWzNosrY78/3KhTlJHTXkyC+ +JbmutqF8mAo2MvNdxOzawS68B8r/dIqMl/NMIVW1bDugmKgTTAqveyn2G6jewqsJgZITAd2aalt+dW//qLxUigCtAxSdHkrPsDeQ7Z65LXvJYGdXrYMqdSSLLQ8KJqS5EkmslqEI/gzPD2+YXdXfSQjWiKL8bI34qgOy9kff+piNLX+xnygM +/hn7Rp+e2x6AZxJZAThkO/lMZtiBrXybgIr/0WvE9enuB3JSQ6UZA5Vno32Qm2okgxo7Z6/HP5Kaff10qm6ftec29q6TAMGhtD3DzrfjAAQ/koLfaEj523aLwWTTY+oQPECR8w+C4XYeohfp0d3TT7vW0SXeESKzHtnWC1EmSZY4pvCYSGMv +RGsJit+bIr2+pericDBNLdgxQO8B0EYRTtj5Sp9dN7GuXD3m49rBCO58DvNew5YtO3D8wLr4LEcEeKTTGZ9QWp6/DHFPOu4/3GATAVGBbr0qL0EcQU2RdLplVeGChEjObtPhTLiKoVs/k0YPsy/IKxKaPh002wRpf79/Twi08ue0qrO8arKJ +0boeL8QAJrvWDQzLS7x+KZfHZH/UJuFrxeUAfFUT0TUsA9oxq8nYoucZKzusEy8q7ZcKk00WLut9hAMGhmYxLnFfdmSSeQPctKlBlHqBR4M3VMD6z8SvxhHbfQcWQonEatE+xskRM2wTOkS/KciiA4USNc/fH/flAaJyMO04wAmj5Vua/LVA +U5e1PHnMBmANF0sjIQ/AyIkiZhFeYBWcgx0P5lv+96ZFOBY29zu2KSAbIvaTvVkH7YSZaV6/5aPhNVzfT7S+WannbiKPUPEI/vcW62HZx3tty8yUZFHqAU7LbTcCBFskhWQGXf7dwDX/Lanc/fm/cuoNMaQoXSCyqxTDZcEabc6Xk9Jnfb87 ++8ORxYM/mKvGCkQjHj/ciZu+I9zGeLShnZPMx2KdCLAhtNRL/6NWZ4rTxi/AK2hYYxt1+yaX8qgwPdKCwLsZma2TYJrnBnqcuxU4GpBhDMd1fpV+LxXPTCbv+FfthWKc7rmrjrEEx5rSsLNYkum6NjZj2/+cipHyqLcVX8BEVt6NUGJUnPty +7XPyBGWxJ0LewC6+Chj4lC9BE1LBbAdivWdtO4wtUS5JXo3vPtiy0ZXdRFsuV6rhiD2IlzRcS2pgfagh6Z0mTQ/c8YOP7xIiAwFRuGk3ZNIbRr2+b1lWgq3SBuNtLg3NeRw2uJFeAheDk4WV0Y97s4ZXvMASBjlMwwsCSsbjG+yX/6979sUz +hiZXX7ovlfhb0W7OB5gOgJ4O1HYcJVPSquY2FH01gd2qQ91t3q4OW4o0SCsr5X01VrDcj3uXThtpmiFq7PzclAYq0DzfE3BhMJ+5lXMUwaQbvwxFGApJtdcxkMKwYiDC02UXw5DG7UFBXCxADnnM+srGiEUM5C6H0JRujYhIrhLLi0QL+U0s +ElogFqC9cGMssTv0UGu/9BqIRtQIpenqrfVObZDGRzMlO5eBP5dzu5rDkZKoAw1wd2TnQzkmJOyLu93ziS9Q/5M0VxEqjAy7ypCBbuFrMuetHqM/aacg0Wf/tzIXzHz830qrf6TbVEeuD0oILE8veAHZD2t894fQFLKextvI90m0dT94YWAZ +O1fhzQjoyFetM6MBUCfbHDKTC4NAUxKsiCt/A7lI8A1Kba7qL5i78YRqDMkq2rHw83jiEzmk9PSVqxuRTQ+IrGYMVXmVnf5F/Cq2HDChAy2oKWWEH8WjQuSEhXBLDUpLJJDnproGjdyaEyiAmlGpnhj2kDF40VW162NxeCaIWOzu+kim043W +F1sbTxeJpugbLrStCQEwp/vha7Zb1fyCeUTSHYDTnhs3FPYoOb9qjKHbU/84OxzuQvHE6w7FX7SPn7ImY9VVLjc+uciWW//LVYqIXPV6WqF9yNuW8MPtsTtYFIJRXfmcxiJiky8k3lCrSMWPi+WNkOl/d2yPxu7NnAJZsSklyDeYb7DLg3Ab +PXeRA9Jjn2y49TzARQtnhO1ZGtwCVa7iTv2WdyLnpXcBZVdTVa0CZI3IWQgWpUfcBuq0pszu9+qzRPoEjllXomDDfZ55pWkUHCP6bhnbu1MAyUkOqVmUYK6Y9H4Qo0pf/Bosx2mwfkTrZfDJnzeQntyZXiuXvfYHUbvSdKepWhYoG9yNt/N8 +EBWEF0mX8CtPTNfUBLmKuNoGb5toN4abbuhBoc/DJWPeXW3TsDIcIarTTbUXaMyMNYGG3OLNk1zJxA6VCJTkuVfBuHqW6+QFgaWEzaSK6WHcUzhXzUps/tjjbg7Ignhpw18vm4r5xBZeixEm+y/aWNgpYRSbTtqcxaE2nR0GcpYbiipwm9zy +1+2auae0/X4GrBkLI/A5UCpHerRcT/xrT5JSMksEy5DmB/LVg9jorR5ScAHFGiehiv+1gUeOwJULW1ipocW9QdJp2Gesus4YBnYcTMt3Tnp1cKTgtIPbPea5/aIbk3Oe9OlBy3Kq5GVr/cI5YCEJQrE3Ms2TkXpdT9fnrX8YUKintCRZPHl9 +xju3TuIqY/byAmpZRZ+71rs7keiWD4hJl3+Q1Hc0UMUCugbYhGtM6uRDAcF+o79kEQSZgIRwk+spJy+gEJ3N5XbR56j3HVLl0NOq/Nj2D4+zJG8SE9tFfiz6txKWKFSCSqZtuT0qDe+LMruGJWaET4SANDc+px9zLYT/qB7klNAQ2A0bqc71 +52mSphTFX4j0lPQnuVp2HHFUs871UhaUKAHk3ifmYsibG/X+wHnOuDjL6GNw74h1GQrsPwDsREjREXW3y2kmP9k+GLlRmp6xMOF2ht5SizRaU3FvD+yOxZGSEkEOloDcjMQWmpoScOWHUwqp+V2cfCalldPXLqpAEdlh6GsKj8fSk8Y6SFbL +p1Spa1ix3DbEcjChDxdY94OZlx4j+n/Xt2iOf2fPq2cD91a3RZVrtm7ivNIcDl8gcogh5hTghpAlD0djOCf6xF4LMN1c80qW7hPkZ7uu6KKg5wjATv28czywgtNCG/ZiU5Rg/YtrvI0UXurcbt7NSPuKzrgrHotJqGPxZxRd/P3EkrEWdXvl +fgyzF99jPO7uD6Y6VO7dmpnNL/Yw1oCPPE0cHs3s+cihPpPSHuIQLY7fVvmA6cuIXBXi2M/+2jzaG5Jd9KIbpAyoHPW1RMMEloJiPy4JTg8vytbj8rrhU9ZOCydPEBNo1Rz0EdcRwCbpvc/EHibWZvIxmsSVdIUk9BhlXEVkE0H72Il6wzDt +I9OLFdXaSapVyiCIpZd3CwzbV1h+CRBK3DI563QXSnZGEpqqe8AYSxpIe9smoovWEXVr6ajglZZ8dBy1hwibZKbZAL0GCHHS7tMI7SGjsQgaBVkUVTzTLOxaatgzLGn2a0grZHUZWxgvc2ciJyZj/srSnd1+ETFKhml3lQlu7uzQ9n37O4YW +kGNxKkqyJ1kxS1lMrv6XIfRz8Qh6fZDUIbu3+HOgerCfWQ/iHanyxoNXFbyeRqdQEJybi+Xf4WcldAGvvz2ZnKJvyTSRhdd6ZmIwAAfufmu7aLoC/E22Pkjjp6rw5QyXhp3Lah7BcfbZdDSid2YUXJ8KJG1D4tmZjgf0KHDwUzvUkspZkUwG +vFAPEiEhTKo6xBwqrFdRDBd7Hz39S1wK+J77a05k5LG0KTcj3n9i/WrF3v8VJUUqUuwQdimt9eK8XW1wlTlAYl4/xIHn3t5pPY6wqqa5HB9eygveujpHalG5x1LHR8OHAtMiup/rp77rdvpQ82K3SUQjEXjTdWC7RGZDWg+WLNaNLBSKtig2 +FvzaBFPmGjm3GKX8SCLfxb6g9R9ipAoBmvHGsb+XQMeklY5AlYy3C+KWXp3sKuZOcdJZfN15bdw1PAP+azFN7MYyLHNjOORsDNc1B2qLUro0yF6XaZZxSeKgOH5IQJG9l7laiYbGSki90S1qkcCKRXmGxa2KcZdjFh2+nCOJk5fWzOe/1Qup +eZ9LetSIFi90rIG5IjAdLrzBei/U/S/3hBvUs4m0C5zRBoKmnbXsabfKFc9+AVwHTSGltW7t2ehII7618qlKKYwYzrMTKmj8T08c0pbyR7k2gLUbl1RjWUCPZOmIC0ySW4KtxgG+fzHDbe1God4H3OFI2zpl3CbcMKjwHjscBQ9zcT0lRAR9 +i2jHRgocIvqBH6v+dM7sHKw7Ewyw6Ihjjgoe8MdyhxXoW7+3z4wJX3KFd4+OokKmdH39WDMzcgXohlQrSXoPOcbueMI5aK4sAPSit5QUvzGik/7unFOUUrDuMtnwALHciCaR/VqeO07AVXB930xjIg2nCu32+b0ANuNYlUa3akcJ/WWri1d/ +uX5NuXoUo+EOaQyePahulpOC1KDgY+7In5ifQjiXpqMviaRHsSZeDvF2ycNBTeZzxpZzv72m4v52y9XIsQZZvjX3hyH7PTUhOAEUfQxD4QwbxZxZppp44fk/bAp+iuR56gMZdzy0fBGA9q0f/BupRagzuBNW5qGnGwPwG9nzWBP1pa4vHeC6 +MXFnR9grCDeNa64yRGDainrMblZ7Cy0cHBD3m5fEp4JJZQTzi1yYP5Ckj78hfaLAVCbxH9hUdPSzFkgX+2NuQwalamiU594mhPPIbYMRRYqgewIOW4rvaO3TT1voRgD7ILrVoKDjoujr2w64QcwtZk2/CjR827PmSAaOVKajXJM8oGoYUS7H +LUFRhw21bNhPVXqUGDKxmZChcvhN6wbpS4cew2Rb0FiCxg60ogtPN/Wh+VAMtnbQ0gXT6+pRno1/b7x5BZr3MGxT5m2oUUMviYcYzZhC04DFTRPXh/B9fIkVd9tjjiCzr/gqBBHfYGHqF8W/QtDYr0a4jclNFsIaaaPa3VBcYDK+abdaD4wT +HzifTo3qrC1F39khbwjAbMNeTKJ2yxgQNEjlbDlXDlRzA7ChQmZQ0TP3JMDvUTe2Rd1+bTObymtylV8FkOXDluaT23e1f2LmYhzRsMNOPGhJjIRBdZ6hhhQkFCwZnyGX0u0Bw37tKyn6z9v9CxykYsoHBsLkM19dvD0GdGAUPh0C7vofkcWh +s6EpMrOgg6MCyxxpWAH3nWJCi+2Gu0FpcpaBAgJVhbeuRFK7uPUKtYlao6mxH2Iairv1kgqS8t+TsKsl/9yhLfTykun+H8sIMsxHjLQfqn7nU90L4RyHRjbW0vMQl3R1/K8M3uETSP3n7lj8DdJSRnDvm/xumdwfXRVqR4r5wA1UYLwhIrM7 +W6xF/8E6Qa/4KSD88s6Uyo8mw1rNBpn27xGFuO09FkrrNaX/elsEgmOFgr4NV90RnQNzYbdM66Jb8UXENBWtO0PhXCpmdopFwrKZUEBYDBMK9LVT1gdU4Sm+XBa7wfjBnS+L56MvbCEHNmgdRnEVJqwMtywuiFgq66Ry06xKI9mXlnqTu46n +6LBA2JBbzzccr6jmkvcmUERmlrtKn0qRSWOGxXW9W0oOuBLR39IIjVrrlU1gud9FQPWeXJixP3/TAcwPA7viMDoLZPcJlni6W44UbUdIgHqNED/hEfBEzamkub0nwQQ18gk3Ues5kBswiYL/pMQna79jNtAlLLMSPBaawF/cF6NM9wZrIV+j +hKtN+MC/UmxGKQhwNlxji1OzYcpOE1E3AOexv2AnDaigw2/gzdeCOBFV8QGQdnC5X20tANkaMvfjDoPubN2tuBHS6SVDS1DmoT736eakPG4iIOj/PpZ0L1xz66BmQ8cRaSKw8A2GZj66xXuL4UMNSuswkUaTMXInLLgRf7aRgOA4wEPXJFVA +Syt1frXngLhf0EwYQVgy8XfWQTGuH8d2ChaVw3TyXSgyExwlTdVJSv7js1eMjWFT9hY5ECi/kt8wx+zGG/s0zdMUHYYv8bRKv65+JERtMsvBzfKn30kRUfFy7VRtC16kN31ygmWEy3qTycz3GB4bRUnYUVqiO+5bydlOBJR7bQbOF8spdrtm +/J/BkWiAx7xnpaYbQX3OL1bvsbjR5BylhtDSGwmgbHOo0KxToM29QRPUXEECLBeSL681j3QNhACnNmQVSFKUJn87jySeIuPnkIYSaMYo9fgmWbYV6V/TAeGAqWcZHeVXylSenvnfNapJ57hlgtKKQ/zyLwhwgOk6WHHK57Um79hDC5B5J30D +Ntv20nPbHWj1zN9+ERbnz/ujtHlwhcUXSFfpQ8fPoZidAvcSsZVyxqEbrKKPZ95RHkfSIfB7oAz2wTMM4PH9P5npYBql+4jEN6g5bOyOGG0hTkxTNEKOYVzVD1/RuAsKYl9nVkwv0jubb3QSKGRpZ3nUemgQJeCTNf+wyYNMxl0k2YdPgO2W +e13fsh4Ctbjqk0lgVik3HOfHCkSEg7Hn8XOLQlTl26ymawFAppPz7n4b23RwbPFL1bkrWP8rXURBvfFdGfemKd0lvlvEUqNd5W/j+6iwuLF/Uzc1S7CPo20x2BfsgjlUXaU5otHFuqNuIE0TwGs/pJVYqYXVmn8Nkzx1wZGywvDhveO9SPkU +x5DnUJ9JIf6RcwoVtX+YwKBsJQUJ4U8wxxwTDRZs5JCISHuhfgnjmNnnBvT8PWqbYPRSFHv1jaiPkyE8hccISJ3S3I9yrPoISf4nYAkeNlyrj7gO20rDSdVVyYbtF/gLAwNv6FCrOWK1Y0HSAAxk/QPT6kbQ6XZ9NqJpJbgw4gQqnlC4J4RN +b5wGdZh5BvymqeSISEJSDyVw3vY0nVsdryFte9hpCKIysI5tjPOWaJm4e31YHSR1rlsx4dgzFjG0XaWnACy7RbQh5QPw8T7oaW6drEt70YP6BJhTJwfBkGw/wWqr4syTSl3sRqYYIj8PvyD9nuM1r3o7rm1ddBpS4bkIBIXoLRwjrcBKDjGw +ToqMytJzuyhJKbG/zZa9Wo9+Gcy2pKZYcmtlCKFagxKTyj5FsCsomtMHcljxfhL6AmFEH3CWHtI6sdb625OeMxxh3xjJDjmEaQep77kefOxW7tL3AX/NIt8XfAbFz2Qu5lWTAMlTuvsm22uk7qW2AsgRKuhbEwLlXa2Wdl3tmVoFkzxzIplE +rZujdnqq74sAuqcsmBatPSj7ut35rEunZb169i48A7YdKWPprxLMZ7Ti28nZvRgGNcOMN+BTEdipOUyu1T6yhor/WiMuC2buCDnfVwdzIyCgOwYupupTAEbEh//y6ZtqYoG40XrPgeprtoGLGZuJ/YZReiCCJyMcSPnGqy7a4Pn59T/ZOTmJ +djIJileQkUHj5cBtCuTfwToM1ue7YC6PMFx/pSrOr4VmIuOLfmOihY4qJNTJNmKOPZSjPMj7kGlFrp2FATkI3XgbjqGRUNcazBxjKfghPG9rXtg5JPGefK/ae7gOXzG5W7u+KohLJldEg9XC7C/Jn7ukqfVivi91vADfrAPEO2DrOaUS2F7K +x44F3MggbNfiI57u52/hceUAnPYhqoi0MH5lKrlM+NdUhhKkAMHKgIj6CX2bKEsbk6cfOTECREOPVUcnN2NK/ofu9WP0wLHPjU4DhRs0MixhzGziT6EJK+uRFyMGqVZSeznvFJ+jcUnwzTkltI5QfZ+jiGhHkRxT8Y7sVfoRb4O4zYcOZXLU +M7bjDeF9Mi3am0/G219h0FJeyX7SOuFdv7hv+IevRsN/2eMHqXv2YIrE7oKF76KnYhw37nbkWLSIQ5B4L3IPY6PdeEBXanAvk8KLVb7XPGZ7oVX4RoUO1Rcbig06E+44Ypk9U3JSLQPyeM+KpcYhU0vrWdl3Ly2ZsGpl+TVqjyIw28GY/Bn9 +A0zAbHH413EPLpteD+2ayzHk0guRgJ4+fm3Tqs0uqhNuE4vo5bUxt5dd8wgIM/ulLqRDmHAqgRrP8LgzYR+bkKwpf9sq5LpsxFdzsymU3GBPSzlpYmgRktzPwfAUWTAyGTFiU3Hm7SKMMrSZL/xOAl0kyYvDLAWX1A2WgFzLJnYGk2nkkEs8 +msebkGWeO+oN0DwEk2aevpjjBzE/Sg+9J4IcxRhdRp0AZtemwXAG+i1n0DTu6XPVgCgua5+nZ7aS3p6i4KvYTW0obfZ7/Cx+l5ebIwviZx/efo7j6YP58YEP9Qe9btoRuG1dtYNrx1crX5u1E5GiZ+c1SGvLndIkbReNXGFDt4JqZrgJL9up +zN65rUCWfZBKQmZfpYFwZ1XlabR3nO82W3KsXHdEgoPRBeUiooZlfvYAaqlqO2Z0UbxkiawbchwUXemx1FODUOST/ofdYIv2iTyaPBzyAT0g0JtwAC1xGgxfXA7x+Moeq6/qQJSY57FgzdR9+UzRjS1ho+XPWlA7X99hZXDtCW+ql/M7aOrc +RWjQ5MdU3nS/rPn8UdYMBe6+ySV3zLJPOddzYePGERHduBXE0CWiMVex+eXm/z/2O+69ehVOMQWGAjj9zhee/mvJKA3MOrPK8a29jZ7b1iARSbnxOiqLPyiME/pvv5/WD1VPoq4S5oZLkmb+BSKc2anc4Wzuu92C4ER5DkGKAVjXNCylggQH +udAkcr/dr/wxibGRnwdqRR23yn2tP14QgaBdSGQ07+dvPN74UjR/ac8tCEiqBoUR8HmKefUS40iAtShIqlSjHwZRdKJIAd5/VRsyyI4D61culcR8uJTuxbesZfOpNlYhlqCcBK6VuEg01JiY+/ImdocHl/EOW9RRzMFYltT1teyea8cK9jaq +oPwJuXtMTQhCfLwMaXxGdEDnkbCJRrOIbwMYhTcLfo3QVMGxT88u/DNBmXakPTUWPSi2CNqMerOyjO4BW8BuorzRnb2i9CACbR+eNO4bboE7YxEVTByaEe9HCBrYBM1motafrUkklhLhqevjiEAqh8oqn6C4yw5fk9GXurAXy7AI6ewwVRQ+ +Xxy2gZykq0V/UrTzuSUi2g3V8sgYCSoSAw/M3WxjKvN6aUYknmtUpgtbG5MF/blZ0yCd/z8TxMiMJ4YhzgX+0N5KO8xTDero5+8PoRgCETa2DmRRPH/TmzSbSjbe8t8n+u7Y7S5g4uX6LkPoUVENuvbStG9/aruRXUzTTGrNThLiNrWDNjXa +OZFR82Sn7IZ7m45ZUmNYTsV2Fus7QfsBk/QrjQDQBrHtMBQyrvtWo5oDF+Y0fL46pii+OLIJ7oaFB2/pXepXMkMP9B3Ve+BTfGHcAgabL4gd9BOV/x7cEMu/m/RG6o3/XDpou2jezl3TN/8byS0ikj3d6OC44IRNvl+/02F/woDN2pyGDx1U +00+e3tmzz35AzUpXYFPWw+GSs4Z8kmbU7aYEo3j+EA4Ocp3+LRmMP6leMRvRzaLZuClIFg+gmBzhdOUu3JyLW+Dko7B8HmUFTVyJkFqPRW2cQd2gEgaAIdT9cUUjrUGEOiH961Rt/vlLfH9Kwnzh1lzzdhPx7pfmriGZIhhBdf8agVAzEJ30 +cFJxTinScCFRQBLG46oFgB3dqSiJVu5gIj/nzNUQRkrkDZvS8lwn0XsGReZSNn9H4Tv3Ajcr0PX9JxSUOZJlNseZaJH+d0BFQfw4EtSDjthQWgCD7O4Si/OxzSrhvE/O0KDfABKRy/xedKldxtT5e0yqaTj5Xf2uB0zlaIJvuYVJdXbNAKkh +Ac1nA2APS9c3PH+YV38L+pId2uvSkJvRmkFKrchpYixHnOXIgP2mrIFJF45dTWvTXa4yrMXoHaQW6SUW8p1uwpLmNOUbtdZ3Idifawa+QYuASc33M2E8vZqXKNoYUplcO4N4sGjbPVrtPfpzs0gV0ZjmZanG477zuCC7tScBpsBgo7+zqa6D +g+JzVMfFiNpNv8Xbzt4E2Nz3dNLdKRo9y+B+G2aMddiJOSFmBwHL5yq76Ou01s7EYxiBV8uo6BrSl7UdbSrhhM2dqfDFwFT7nd/WLiNiE9tLm+GJfPczFGPGDs666JucTRSjoCCVWVAMu4nZ9YaKTAVyNg9gk3izFspnl+CS5BaKF2y9Mc+d +LJ2BKrGsJ73jqUkMQziImS7DEPNpQUQQOTy/kCZ6ThwG1TS8dv2+bafd9BDWXqGQkVjU5JDw/WE2q0Zl3sOjE4InmPT8iZ2NNcbGC22vyQxkW8wYqHCb56OqowltRQPAgfR/ju74TAXV6XLdAAO9n4sWthgavzTwSsTXF5h1lCFfK/jc/2c5 +tap0FoD4nNnKWU60dSe6FYXYsbtYVtPLcN247+NdJazZVIdlzM7LFEazasl7prkCeYAKfCKlRruoN8pmB2aoe4Ryj//CBfCxrTc3+em18e69zGMGeqk/inZUODZPmNq/L3G1Tn6DBhrpJE8ESrut1TIv15OEm6Z95K9xxvRh5Vfg2TtBefwx +IYDy0vfDo31tJYA47bUD85phi0n2yzockbIYiQfky5M8Isb72Nqm7UZQjLurmT0hiSSN5IJawIpkRChg9F0JLrpfLGl02RHVTHdWN0N5NaPFoQx2wnZ6oywFuauFOFWGoXAN3CHM1k7CfqQGj3dkESoVzhYCqScGMpl3MShcbmGhkXwR9gub +N2MOUu6+wiVhXXRTKIgWTlMztDYGjTUSk/Mcful2tQdRpxl6xHlRnTNl+yTlCa+XhXlvCk1fnYCO2IkADKHgMYTON7LOCqItxsjtlMvqiJ6Z4/e90fjZlK47IQLRUOol35DBxlYj4C9IsWbMH/NBWd/Rv1RrGYq4JDk0YFQQRjfQKaafph1Z +DDj13kTunYsLu/PblFt845oSbvSPyMZ2sJpoGa2gztmH4EFbscaZ6aUtmuCEqI5+lt6foZGChGw76XluYDVGvAuZ9gwB2DyGo7mvXfzfF7mGgsED4FCSymrW442CZ5oSvgIYsV8j5fSPPykXJIaoN8q4P5z33/6zqdfljJPW37sTwDv9prD3 +kWIWQFOlQfR72hKbIIhlfMOQdFJQOnt4BIXWAqc2on+oFkaIiay6JjhtXv+fwqBF5HaDcB/hwNgK3bN/4/p93nF027gyNsv0p6Oil++0yrxUg+N1Yu/kMMAI74pJpUPQUHl0lihLonSx7d1GFcLKKkL3EebOHfN7zOS0glo85t9qNs5m2IdS +IWgVjjZfSwQV6TgFNoyvrF9c7/o+XjoE+BGUZ6gjwC5XC8oGNFKtF/QlEGs4L6F4WoanF1wvJQnLfnXpj31DkC0vEm4jcwm2s4f+gRv5UkT+i4taZdgo47q365hsCmUeFfQhHigtzLsTgqHALVRxijP0bBpjCj1PKjLfTgjzZRz6f2OCa2KZ +VsFrMrBQD5cjdTQeiS8wbD+udEq13sb9WUNKdoZ1wuHIzJhfD6MGsuQ2BcCsI7MjqvIipxyNSWE93LlkiODslv74nwClHtVG5BFdkVayfq4WuXCgGdmhIVPZrs/+GsBjOEkquCs/LVgZkFt5Skpu5wBiTM59hmt0YeCglbaluJ7GcLAWt8GA +dE0wfq1BM0AK1b5T5H1/6UqQl3ZfeJFKUwyzVJGZqueoGEjCW97xCw7YdVD8XTFRMdDwqZ5ARzSnTM9mOPPUtnEIvAuPRpNG6/R0ZK+iECz1ZLuCfVMi6xaPGZX4lJVTccUu1aXtvEbGepwuq9SZkn5QWozSyQMJ09xeRHqXLJ1HaNHltZPL +8yCB2Z70rV5/e6A4kWuK4PnSAq7dXUKzLfiP0hoobHtQnXDwvVa6+0QtUpF0fBgYlivVQchTDowqo1+xq488Rbn4+dQb2y7YplABI4zl7dbEvt9TS13B6yxHh9Ds4kZA8SschHYiFMa3WP6aYfecFD5D152zxhKUcTi5l7ZZEXavQjyEkUre +FlURisqkKxCmlztyj2dXmmEOxVrsByMXt5hACpvuHvTRdsS3BzWnhn6LA5OOHyyGmtuUh1BSWnb6K9t7x04awlb9j/IR6pdwzKwwwarQ2on5WCwl6PxNYHJTK1UT5Vb7P4LCrIaUKMBv8am1LCBOYQQ/QFAt27JqD3s7VT1DBABQ3mrqi3Gm +S0fSh6Z2pt9qynyuphYi1lR5azLLLyrMO4k4PfCfc5iibR78yYgsyD0DzKGyxh52cTVF+MOS6RZvrz6j/giQ9q2k3B/I2Cb7lSRH4f/2iphEFmnBcziNbpgmsco04f0ShhP63klKunbPJL36/UADBk5yrecyjjcVQFwHw64knq1ha1VeSOq6 +trzUy/ThZM+Ran5uARRS4GK2pR4a2JrvcfLq4S9ZoLzlIXTxcdekWac80+8b9AQKiftD3YyOUuh4V7aKHhR627UI+FMMQ8Nu9PV2HfYnEx/U5wXnFbBbaspIm/I/qwWE46GXwJovbPLNeK1RIdm7MfxIO4UMZGHJ1BEGZqsdk4rkJNF4o7WM +XrJZNEeFW08RfYcCSSfEJr9g6x7SwI12mTzp7xKt6EChkvVYq0rPCb70sY267efqiz5oEEKJhsEJYWWfd2YD/vG3+XkiBfQVCbvfa2iw1NvSX+Tu63mg43JC3csiDJnfDBRgLzlKyNEzOs7X/v20/1jQa5ounCkGQDrXsUAl9njax7aIKF7Q +9iRRQNJQ6ujhmdTGX8tu4HJTbQ2fFgyXLG7L2Ok6Tt5RJN8dS0/ie9l0Zkpyh1JFWv7flr3sdUWqdLsVLFnMQrBe9K/xt/SVK7Am6vl8Ej4IlIPuQxaY3OL/4zezrhj9tzyOcLRrapNxLjwStwl3mGIlOdQjH+xck01ssztzbSZ/2rMbl3YB +N6/Rb6eK6XeaZn2xR92ghMopiefio4Y9skfXVkivm4oL1G9T/kmj2o9xd0L3NHB+M0plEF8QhNHq03hbqLTtmvYeqrqw+ufQy/pdD+/v7d2FX0NYueDO6rdZyQFiBx3GGfJcHfX41SerXtxuYrI8TeYKsJ4GyisKnZkAb3jaebNVjL288OtN +lyUp6uVmhaYNjm0v2WTnncasvz//2ooa7swL6+eNw1Ic078SXItH0QlM2Cr66EJ2u+Aoq++XyLkTpcnRHtLEvdeAJHpBC4BdKpbgxzIhoAu6WdVf90oyDVzrXRzGESdm69vrSAw43CDZTbmLVr+bI+pM0KQGIL21MbK/YRzL7Zb0zGWdCr/k +OWTnZFnBfpdhXtkFAnSb0CmWoinzZXP5012b6uQk+tpN3GnU4tRa2oS7tD7cGxq3T6ucTHiey2pY+B69CMmy2vv97ffgYwQpSq63MKZdOxh1Ihkjwm439uJBJ08d55GDcPR9UFg8UKBX7VfI7nG9MuKjuKM0pfrGgYUaB/14qe2kOE3vlcrQ +nnIuCIQ/y6LwKluuTBkbT9u9bL0c+Js6IxkmijyI0lyU2F8O346ASM2D4rF2Z/vfv4ozHMK4bq4oUjkDxX0M2vNjOM6HYvptNQ/hf0DIIbOr2jIwvsPwKFO5oxX9Hn9Nw2zVqe2CagkESHxyq6qxCBIl/4+Vz1aX5GpeTBa2rm241Gzbjghv +XR6M3tDvyL4GvCBu88g6XjY3OY4EGoHB6t/3hy4PsNLZy+/8peicmrPybjyFq0ezKYDAlYY2dauSufHB17gdVqIH9PjSazJLDDnOKlqH1rE8h696mU4n9XnC9i8X79gxVqLmNIcSNvpSp/RHhiv9GlxYrD+7aaDnBVRuZLNYIg1jtCetT5YQ +eUPknd5bSlFpSCv/jiZscAU0j17vc1Vx6mCrtEq953AdhPu8uvRrcPjvcxR9v9GW9SGb2vOR3m+Ly+wzh1NY4WJKxUOydKcSUYbkfrq+qlx85H786uSbMZKaIh/FkQXu8/1p1Bs6Jw5aSHBMILtzcEo/CnyLOiHzWPcKy24LQkB1jSMH7Vw5 +DFkoFXDC6vT16hgQ6eURAQHgB+lrhJtjcIt+64/RWxQ2UUWnydJ0T59kJd9wyU8jRY95eUr9sONiFPUc+88L+Pcw99CJDhlEZ+DPqYw3qdjRyzaVd0BXzU8AdaePhg+Wyjn5TufDAGA1YYtPPuBDL+PUnds0Quenj5/gXS5F3GdApTvB/kbk +XQkvmSitbJOzOX4u18v9GpqvC8Grq1YmN2Ll0RbM/jZRHfUhZmUK9Hh9G62UbgcFOEaBcmo74na9d7P2S5Y+mEdUR5s+k8/FSl6isiVmbgHiUoye15WszVj6cXPYUyRAZLY8/TU72rbtE4mgEyetr2oYQNV9xPb4Cii5GUW7AIhXzNPLYOwZ +9ul0mpUV3FiTQAgDsODQARPz6lUCEyYTQcPgBBZTubkMQNCDfnXkQENMUj0T/BFJ2FjhOuhrNwlNaY/G5rbjSwxRrschZ36iD322U/UwDU0xR6RbslLrRHoMf7Se9kKcGfviDw4PHCvRTZu5to0XWIGfhNa+baQ+3DA4nZChiQKdJlu08tEP +d0d8cH6tNWGs/mq+U7qnm13rz2lndZWtcLMYy/9wPMgQmzCVft1g3MuTVz31uMWNHyeAERuJug+vl1olTJzWc/qVgq4/azEBhpyc86x8Tgucn0Y8bubdztgoIA+hB5+CiRWLibVQZfTC5c3n4aBzZH10AiIdjNlR2VjyYE96eTCsANJ4yxSa +CGvGNUxCvW9lhcVZEMgQt6qB0emu3xkLOSWdGfhDdWH9+QmdiVgQ2QQdCWPKXO88M/q5H8ZTHdlQwReB0ztyHbXV/HuT0AbNMXsbd2OOmQv5wO7Xn+zKm79rj9TTjDzEvaxbXh1Segtcz3eEgC2AWPQI0lRTjFHURyaJJzI3/ZjC2VrFRJit +HIWGbyDU2wxMesRGhYstMn6SDJQC6GDvf0Ve7Z35nuZXyT0GziIdLxbAxpOtVTy8pSpMr3P87THuRcYdKlPnNMAWfjv64eq4vzZ9SQLgRP9WkIFbh19mcssoujtMcRwxFhGOToCmF/92yV8MN3AgDBNRu7g+2VaxU3BX/k9WOPWygE4J/LCP +1cN94iDDNwJfXouKqV/jo1Cifx4AAco6N8P05R6hrna4WlP0Av3Xlr4LjQ6F2LRZv6lGoW9RNeFLm4tAyDjTNGNP+YY8oo3lAWpMBLilOAekRVTqrHg3yEZsNe7ztiTjz+H9xtouJRP3fg6S11Yhhr2ex/cdNo+mY+eZItCI/Ddf5axyM1Tg +bAACKczjXvRrrVgABwLcB2osCQumBfrHEZ/sCAAAAAARZWg==. \ No newline at end of file diff --git a/examples/tmp/02105week2/02105week2-autograde/StoneReport_handin_10_of_10.token b/examples/tmp/02105week2/02105week2-autograde/StoneReport_handin_10_of_10.token new file mode 100644 index 0000000000000000000000000000000000000000..37becd782259655b9e8516a08abe63ab3d3f2183 --- /dev/null +++ b/examples/tmp/02105week2/02105week2-autograde/StoneReport_handin_10_of_10.token @@ -0,0 +1,179 @@ +# This file contains your results. Do not edit its content. Simply upload it as it is. +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +af74d9e2eea101854f07fd64951aafb1fbd062916c869b330e535271178c5ce49be3fc7eda177a383e7971a004abf73b787b543843a89e0b7959c0081a44e87a 31368 +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +.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. \ No newline at end of file diff --git a/examples/tmp/02105week2/02105week2-autograde/autograde-Makefile b/examples/tmp/02105week2/02105week2-autograde/autograde-Makefile new file mode 100644 index 0000000000000000000000000000000000000000..688d7b8965001447eff8999d9a880613d13f87cb --- /dev/null +++ b/examples/tmp/02105week2/02105week2-autograde/autograde-Makefile @@ -0,0 +1,7 @@ +all: + tar xf autograde.tar + cp stones.py 02105week2-handout + (cd 02105week2-handout; python3 driver_python.py) + +clean: + rm -rf *~ 02105week2-handout \ No newline at end of file diff --git a/examples/tmp/02105week2/02105week2-autograde/deploy.py b/examples/tmp/02105week2/02105week2-autograde/deploy.py new file mode 100644 index 0000000000000000000000000000000000000000..a59af502aada3549c16dedd0d03a11f8b215c3cf --- /dev/null +++ b/examples/tmp/02105week2/02105week2-autograde/deploy.py @@ -0,0 +1,9 @@ +from stones_tests import StoneReport +from unitgrade_private.hidden_create_files import setup_grade_file_report +from snipper import snip_dir + +if __name__ == "__main__": + setup_grade_file_report(StoneReport, minify=False, obfuscate=False, execute=False, with_coverage=True) + + # Deploy the files using snipper: https://gitlab.compute.dtu.dk/tuhe/snipper + snip_dir(source_dir="", dest_dir="../../students/week2", exclude=['*.token', 'deploy.py']) diff --git a/examples/tmp/02105week2/02105week2-autograde/driver_python.py b/examples/tmp/02105week2/02105week2-autograde/driver_python.py new file mode 100644 index 0000000000000000000000000000000000000000..4375e8e376e0cf02b727b6bf9138ebcde6dd42fb --- /dev/null +++ b/examples/tmp/02105week2/02105week2-autograde/driver_python.py @@ -0,0 +1,92 @@ +import os +import glob +import shutil +import sys +import subprocess +from unitgrade_private.autolab.autolab import format_autolab_json +from unitgrade_private.docker_helpers import student_token_file_runner +from unitgrade_private import load_token +import time +import unitgrade_private + +verbose = False +tag = "[driver_python.py]" + +if not verbose: + print("="*10) + print(tag, "Starting unitgrade evaluation...") +import unitgrade +print(tag, "Unitgrade version", unitgrade.version.__version__) +print(tag, "Unitgrade-devel version", unitgrade_private.version.__version__) + + +sys.stderr = sys.stdout +wdir = os.getcwd() + +def pfiles(): + print("> Files in dir:") + for f in glob.glob(wdir + "/*"): + print(f) + print("---") + +handin_filename = "stones.py" +student_token_file = 'StoneReport_handin.token' +instructor_grade_script = 'stones_tests_grade.py' +grade_file_relative_destination = "stones_tests_grade.py" +host_tmp_dir = wdir + "/tmp" +homework_file = "stones.py" +# homework_file = "stones.py" +student_should_upload_token = False # Add these from template. + +if not verbose: + pfiles() + print(f"{host_tmp_dir=}") + print(f"{student_token_file=}") + print(f"{instructor_grade_script=}") + +print("Current directory", os.getcwd()) +print("student_token_file", student_token_file) +for f in glob.glob(os.getcwd() + "/*"): + print(f) +try: + # This is how we get the student file structure. + command, host_tmp_dir, token = student_token_file_runner(host_tmp_dir, student_token_file, instructor_grade_script, + grade_file_relative_destination) + # run the stuff. + if not student_should_upload_token: + """ Add the student homework to the right location. """ + print("Moving uploaded file from", os.path.basename(handin_filename), "to", handin_filename) + # print("file exists?", os.path.isfile(os.path.basename(handin_filename))) + shutil.move(os.path.basename(handin_filename), host_tmp_dir + "/" + handin_filename) + + command = f"cd tmp && {command} --noprogress --autolab" + def rcom(cm): + rs = subprocess.run(cm, capture_output=True, text=True, shell=True) + print(rs.stdout) + if len(rs.stderr) > 0: + print(tag, "There were errors in executing the file:") + print(rs.stderr) + + start = time.time() + rcom(command) + ls = glob.glob(token) + f = ls[0] + results, _ = load_token(ls[0]) + +except Exception as e: + if not student_should_upload_token: + print(tag, "A major error occured while starting unitgrade.") + print(tag, "This can mean the grader itself is badly configured, or (more likely) that you submitted a completely wrong file.") + print(tag, "The following is the content of the file you uploaded; is it what you expect?") + with open(host_tmp_dir + "/" + handin_filename, 'r') as f: + print( f.read() ) + print(" ") + print(tag, "If you cannot resolve the problem, please contact the teacher and include details such as this log, as well as the file you submitted.") + + raise e + +if verbose: + print(tag, f"{token=}") + print(tag, results['total']) + +format_autolab_json(results) \ No newline at end of file diff --git a/examples/tmp/02105week2/02105week2-autograde/stones.py b/examples/tmp/02105week2/02105week2-autograde/stones.py new file mode 100644 index 0000000000000000000000000000000000000000..96c9cf5eaeba7da59ecc9db55ada75b06cd093b0 --- /dev/null +++ b/examples/tmp/02105week2/02105week2-autograde/stones.py @@ -0,0 +1,15 @@ +def maximum_stones(W, stone_weights): + stone_weights.sort() + T = 0 + s = 0 + for k, we in enumerate(stone_weights): + T += we + if T <= W: + s = s + 1 + else: + break + return s + +if __name__ == "__main__": + print("The following call using maximum weight of W=15 should return 5.") + print(maximum_stones(15, [2, 5, 3, 1, 8, 4, 5, 7])) diff --git a/examples/tmp/02105week2/02105week2-autograde/stones_tests.py b/examples/tmp/02105week2/02105week2-autograde/stones_tests.py new file mode 100644 index 0000000000000000000000000000000000000000..9f61cfd3822b0d2f526c318e6b380e8d0c5d6ef1 --- /dev/null +++ b/examples/tmp/02105week2/02105week2-autograde/stones_tests.py @@ -0,0 +1,44 @@ +from unitgrade.framework import Report, UTestCase +from unitgrade.evaluate import evaluate_report_student +import stones +from stones import maximum_stones + +# A fancy helper function to generate nicer-looking titles. +def trlist(x): + s = str(list(x)) + if len(s) > 30: + s = s[:30] + "...]" + return s + + +class Stones(UTestCase): + """ Test of the Stones function """ + def stest(self, W, stone_weights): # Helper function. + N = maximum_stones(W, stone_weights) + self.title = f"stones({W}, {trlist(stone_weights)}) = {N} ?" + self.assertEqualC(N) + + def test_basecase(self): + """ Test the stones-example given in the homework """ + N = maximum_stones(15, [2, 5, 3, 1, 8, 4, 5, 7]) + self.assertEqual(N, 5) # Test that we can collect 5 stones. + + def test_stones1(self): + self.stest(4, [4]) # One stone weighing 4 kg. + + def test_stones2(self): + self.stest(4, [1, 4]) # should also give 1 + + def test_stones3(self): + self.stest(4, [4, 1]) # should also give 1 + + def test_stones4(self): + self.stest(13, [2, 5, 3, 1, 8, 4, 5, 7]) + +class StoneReport(Report): + title = "02105 week 2: Stone collection" + questions = [(Stones, 10),] + pack_imports = [stones] + +if __name__ == "__main__": + evaluate_report_student(StoneReport()) diff --git a/examples/tmp/02105week2/02105week2-autograde/stones_tests_grade.py b/examples/tmp/02105week2/02105week2-autograde/stones_tests_grade.py new file mode 100644 index 0000000000000000000000000000000000000000..d8065998b6dd1a1400ae7910febf59d4c6330f40 --- /dev/null +++ b/examples/tmp/02105week2/02105week2-autograde/stones_tests_grade.py @@ -0,0 +1,4 @@ +# stones_tests.py +''' WARNING: Modifying, decompiling or otherwise tampering with this script, it's data or the resulting .token file will be investigated as a cheating attempt. ''' +import bz2, base64 +exec(bz2.decompress(base64.b64decode('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'))) \ No newline at end of file diff --git a/examples/tmp/02105week2/02105week2-autograde/unitgrade_data/Stones.pkl b/examples/tmp/02105week2/02105week2-autograde/unitgrade_data/Stones.pkl new file mode 100644 index 0000000000000000000000000000000000000000..125aa648ecdcca1ead793e5533eb67870d27f11d Binary files /dev/null and b/examples/tmp/02105week2/02105week2-autograde/unitgrade_data/Stones.pkl differ diff --git a/examples/tmp/02105week2/02105week2-handout.zip b/examples/tmp/02105week2/02105week2-handout.zip new file mode 100644 index 0000000000000000000000000000000000000000..6ab227e83a06450246d3f3fca59413b7729fe7ad Binary files /dev/null and b/examples/tmp/02105week2/02105week2-handout.zip differ diff --git a/examples/tmp/02105week2/02105week2-handout/StoneReport_handin_10_of_10.token b/examples/tmp/02105week2/02105week2-handout/StoneReport_handin_10_of_10.token new file mode 100644 index 0000000000000000000000000000000000000000..37becd782259655b9e8516a08abe63ab3d3f2183 --- /dev/null +++ b/examples/tmp/02105week2/02105week2-handout/StoneReport_handin_10_of_10.token @@ -0,0 +1,179 @@ +# This file contains your results. Do not edit its content. Simply upload it as it is. +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +af74d9e2eea101854f07fd64951aafb1fbd062916c869b330e535271178c5ce49be3fc7eda177a383e7971a004abf73b787b543843a89e0b7959c0081a44e87a 31368 +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +.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. \ No newline at end of file diff --git a/examples/tmp/02105week2/02105week2-handout/deploy.py b/examples/tmp/02105week2/02105week2-handout/deploy.py new file mode 100644 index 0000000000000000000000000000000000000000..a59af502aada3549c16dedd0d03a11f8b215c3cf --- /dev/null +++ b/examples/tmp/02105week2/02105week2-handout/deploy.py @@ -0,0 +1,9 @@ +from stones_tests import StoneReport +from unitgrade_private.hidden_create_files import setup_grade_file_report +from snipper import snip_dir + +if __name__ == "__main__": + setup_grade_file_report(StoneReport, minify=False, obfuscate=False, execute=False, with_coverage=True) + + # Deploy the files using snipper: https://gitlab.compute.dtu.dk/tuhe/snipper + snip_dir(source_dir="", dest_dir="../../students/week2", exclude=['*.token', 'deploy.py']) diff --git a/examples/tmp/02105week2/02105week2-handout/stones.py b/examples/tmp/02105week2/02105week2-handout/stones.py new file mode 100644 index 0000000000000000000000000000000000000000..96c9cf5eaeba7da59ecc9db55ada75b06cd093b0 --- /dev/null +++ b/examples/tmp/02105week2/02105week2-handout/stones.py @@ -0,0 +1,15 @@ +def maximum_stones(W, stone_weights): + stone_weights.sort() + T = 0 + s = 0 + for k, we in enumerate(stone_weights): + T += we + if T <= W: + s = s + 1 + else: + break + return s + +if __name__ == "__main__": + print("The following call using maximum weight of W=15 should return 5.") + print(maximum_stones(15, [2, 5, 3, 1, 8, 4, 5, 7])) diff --git a/examples/tmp/02105week2/02105week2-handout/stones_tests.py b/examples/tmp/02105week2/02105week2-handout/stones_tests.py new file mode 100644 index 0000000000000000000000000000000000000000..9f61cfd3822b0d2f526c318e6b380e8d0c5d6ef1 --- /dev/null +++ b/examples/tmp/02105week2/02105week2-handout/stones_tests.py @@ -0,0 +1,44 @@ +from unitgrade.framework import Report, UTestCase +from unitgrade.evaluate import evaluate_report_student +import stones +from stones import maximum_stones + +# A fancy helper function to generate nicer-looking titles. +def trlist(x): + s = str(list(x)) + if len(s) > 30: + s = s[:30] + "...]" + return s + + +class Stones(UTestCase): + """ Test of the Stones function """ + def stest(self, W, stone_weights): # Helper function. + N = maximum_stones(W, stone_weights) + self.title = f"stones({W}, {trlist(stone_weights)}) = {N} ?" + self.assertEqualC(N) + + def test_basecase(self): + """ Test the stones-example given in the homework """ + N = maximum_stones(15, [2, 5, 3, 1, 8, 4, 5, 7]) + self.assertEqual(N, 5) # Test that we can collect 5 stones. + + def test_stones1(self): + self.stest(4, [4]) # One stone weighing 4 kg. + + def test_stones2(self): + self.stest(4, [1, 4]) # should also give 1 + + def test_stones3(self): + self.stest(4, [4, 1]) # should also give 1 + + def test_stones4(self): + self.stest(13, [2, 5, 3, 1, 8, 4, 5, 7]) + +class StoneReport(Report): + title = "02105 week 2: Stone collection" + questions = [(Stones, 10),] + pack_imports = [stones] + +if __name__ == "__main__": + evaluate_report_student(StoneReport()) diff --git a/examples/tmp/02105week2/02105week2-handout/stones_tests_grade.py b/examples/tmp/02105week2/02105week2-handout/stones_tests_grade.py new file mode 100644 index 0000000000000000000000000000000000000000..d8065998b6dd1a1400ae7910febf59d4c6330f40 --- /dev/null +++ b/examples/tmp/02105week2/02105week2-handout/stones_tests_grade.py @@ -0,0 +1,4 @@ +# stones_tests.py +''' WARNING: Modifying, decompiling or otherwise tampering with this script, it's data or the resulting .token file will be investigated as a cheating attempt. ''' +import bz2, base64 +exec(bz2.decompress(base64.b64decode('QlpoOTFBWSZTWUa6hgYAXBj/gH/2xFZ7/////+///v////5gbP73hzuvtea8VQPqWuc+7L01QFCtDaMJCvfcHHtqCoID3Z0cUN3vLwcvPXTru2iBRBUlL1pVV0a+3cb3fPtevVvr7Hvdyu5nn1TvtoFffa+u8+999777c++x2+92+vlDOy+w97vX1Qk43d31d2016+PX1oSJs0mrt3WqWs+2eqHb3099NM97xL3srenb75GgoaLb329Dmn3d93j7b22+xGvcoIL6vc+3Pd7am0bKrvHuI9ny4gDt8nueXBZX32L693xaHzgfXpvGVHbI+vd6U6ezuaMvtr1mvO2e+47Zjlbzb672zVhUXnxdtsPvWdfe4yfXHJYA2vvh8fUYm2vd7PD3295Mt3TM266Gq3GFNvNzvOEpoggAIEAJoBDIJpiNIybU0aE9TxQZqNGQ0yHqGEpoEEIgQaJpqntBKfop+qNlP1TQMjTTQaAAAaAAAEpiQUyKaam00qfqmmmjzSMp+qB/qU0/VGJ6QGh6hoeo9RoGgGTQyBJpIiETFT0xpBpNqm9U9qnlT9U81NqRoMTaQ9NI00A0DQAAPQRJEIAEZAEBoCZMhpTNFNPyp4o9T9Jkymaj1PUHqep6Ro/VNMEmokTEFMCYRiExTR6mo8TU08KNGjQBoGmmgaAAA50P2EAPZ6pKBET3wVUfSkUYQVYUk96ixVRU/X7/pwuqhpP/H/PWEf+qWH0K+nCP4LMn4fvv+0VjExdfwTm+M3D7//ELFa7ML4uoqSFSrv/x6db/zWReDGuu3rreK7sK3FR7nWoMtDVEWZ6Ibtq8ykvOr114scd6xILVp8fRsnbPSFLltCXRF+mavnvdVaitGV6UdIzsi5DkMnKWk5lcftg/ifaSnH2f535IEv+/N9Np7cpxFP8ZzpOTulovzK+VvfYwTHlvqZasDDAx/pWlOBNmYVFO5BA+ZiLIEikiSBCDILFkUIB+6SUVFIIKv6UmASQmf9IJQIjEgCsggphhEmwxtBQlaPRWq8muxMo/FWGyuk5rmpPQm8nfSBUoFWCQVZZGiqgop/AwoMRUBVIKgyIqpBbqiR/06v+fNq8Yc2u0P3vOL285+CfiWtaVdGb8fxXC06ygUoaypxsL73FpdSSB5zQ5L7Yxs49XbV9VrZJhWR0hpDrUouWLq25M9SaeGYntjJo9+sxAR14/InZ8FBTq/iffL41jV4piEi0eCu3+a5BIfDSBcaxIsfc/yNyZMU2Os1/BcbWFvDP6sI/Zf///nrPq2+Ecdhx4490mtxwmHRtFRv6HxSK/6TZp/rzilOliN9r8JQmPgj5E/P4o7vkdfxdu9F4zF9padD3wfCvZB9MVeA+Fl30x7N+n2r871Z62I5XKsEbENV5fFDri9bn4+ZBU/xuyutUj6HerOH0YN4chEmvCQe31CaMT5pnVe9vwOWDBIpAROM/P+FQR9ViLeL5s1WPryxkHdL3qc5TasrekiFemJpivtl8efCLS/U6pNH1ejyzmk0NR/BS98M8mf3eHYzQy9Hxt19HvqRf/HDzheY8OnafF0rmTqIz4S273tXFFprYi3NzWKRhWDEJu4ckNSnyQURTLYnAqk66TYrdgUzm31L5DB9Pf1WGO12euxTqu0wkUdyco0yf/LsIsynbORoJceGFc8HjjZKdY6l8mM6UsezFqXD38c5cKy/7E2w5J+BPXLbjhkaF3dLJQqoi48fV4Or996v20bz4ffLr7Lfr56Myq+dqM+NWQuoonnGxQb+Eu3mUmjUtfstU+FB6ZQUpiWVmZZXdV5VF2IY502+JIb26iFpI0/GYjshd3jBqyZkwuZTk0z1Xk8/ZMcLw9H6ltJQnd8q42kL0227ymw/NYJiZyRHc8ixBosUCl6BXS4BJ+gS8z1fj8z00bUz6EKZXf0LgWe0eEhELBNcDGd4HcVUi1mkmj5U0Iai9ntr3Wk4QzvbisZhIXdSnxqA53xEiNvaeg48ONgivhzlwLjczHARsrRlJpikXg7TaHddHGtEfI5CuUO3J1DSZkiEjUcKjd4EtcGiTQv0xBA6BJIQhfrR2XsHnXduWbM9d+7vkZ7rOx0JXmIZKphMu7GyS4B8oPy5yuWKJRFfPHZHZAfn+fTzZuhG5Q3Qxrz5w+S7mnDOzW5YLK2bBazuFqCHdqTfaD35Q+PxuMdOOoDMYxXxQXDanCxDT8OL7s2tMjJgTuCIcqJ2c05/vKY+fuWtHAbcfsqEH0VdvWRyskb2f3zJCb+ILWDBixsB9W1JiSw8eHMxdP8fi4aPWKqEZEfaIHbkBFUzsV6b+uUtikzpnben5ttQZGJflYr4jOh8t0G9TDAvEnxE1rXjup+O90ZM1bcx7Xz91J+WZQI3hwVHvUgeIw0uOwk3BBvx8H6zjU6chcdNso4PErme+Se1sHvt+GOFKWq0zE1kJi4cvXTNukaSHWlhlfO+1NdA83bQHHbsz4iijUuu254osW+HBHy7GTKrpNfpcpw3QlWM7fsrJMiWN8NU4pzfm9hiEsjpa9N9rIMXKCj961sF7Li22zAgcqVflhGEqa8mL1RterHAzTSncI3L/U5Ugl0xI/vuMkKst5Rvjy1eQdMdJHDbOcreD2w5ZhL04O33r1l3/LKWO+4qgjq2bXBXxoBtqaqfNsvs0/tUEK32Dt4/WJxIuLRtTLBm3ksggxqxIgO4mxrAWz3OLibvMCyNSMbYwbL50zyuLLGdoObjgma0tZgxieRSpS0uyyy1mV8vDenVsXtyL5aCzYVfe4KfWKU92EWYKNFMHjJwQ0i0d7j6CMFF7ia1zjVg7PCfCPDR87Sx6vmdDk6pA7Q5cyxOm59JvxiYKlFaXTaUcjHPlpB+bUMb7GSuoOP4lCMNh9xwUqzgstbjSmAkJCtyydxr0PbRqC6yzLp0bMuLc6q/gXzr1PFhQlLLXEsLzQ+HXPCSGZCSDpNefFPoeyWReDL837W0g4zx7u++0u66VRn6Z6Gne++V7FuiuZTPjJjBGT69vLlxhkhFtfrC8xh3isUx1bLZ5rC7xBxw2iz13Ml14c2grSd0rQmir75/fnSu11xBovfEhN0pWjTfHB9JzYuOA+9vhBysyNcjDo1XZbEX/NImUz8Cn5JSKdWt3jJGZoTRvMPsa8ofl7dctBzQMxfEzMbMSrUTLKyRdrr+U3rIuIpUVZut4KdXfLK2t1xD1QuwgKb4hI6lNUHNnnQO3Fh3O3HGsbUzMTNEwfzeDpPrhrdLfhFMAomNnowapYarr9mSSa8fNrxl5tzh3DvzlBYJQboo9GHQU2POip+mj21Kw9w5nMt2MoP2uarE0Y1bGj97GSj2/bjOmLhvftRxJmY+6oCv1fjxlO79fpvpZ0RpNtMOor/ZbokDVaSlULe9WPvVmv7iUT2LnNUeohn3+Dx7rMzW+ZvgaU0c+V5WV3fS+XaOZGgpGL+GV+dk5VzbStGf8c0yKEnFMbHCbxudVxeV2iso0tMs+yC75OrfuuSMbDMH6llscjgRJutkzZRmWu3Xc4xSxfiKv9mD5X8zmIqbbdzEZelQfDFfr7mc38Lw65PIMc9WaMnWM+tHYYblOx6T080WOTJ+6TguyyAdy2qZFzNSSHEIQOmZbp6NS8K5ZnMsc4JuK7kPbNjdtZ7s2q7J7Y55dz4xxLym2O+LNLOZ3P2Fc4oqFSkpwxKIId2lI1U9LHsI1v7MJXjszJpHMMT7+t2nb3+49uiCj5m5zSVqZzGSkh0hSYIICU414T4kcivOuPZycakoMB4bfodg6xsxs2SvOHOloUX1N4iGUinBysrSZDHWD9pH9yqmlSKnLM0JBOij9AUUWI/PQoxGDbCopoTTDBBYo01G+r382mq7dXTYbswzdni+4MknhQbCAr2HQ6+vy3OWby6OxJ4gsLbVk3Nlh2hw1Pc8DkyEIWdl8NtbIFiOiq5D9ZTYrWuWqGbxzQ5J1zpdZhtpPaXu0xPmsmbpmc0DszuN5oKv0cc2caICvBQRbeZAWaLgi74du+1DsUWe5JM1WcUPk8LNbG3+w61Tvfw7n7EEGhxY4znwmNnR2F16Y4Oi8Vu3YbGdjCTsjha8tQ3h7dG24G2ZXVzRrCpKqls6SnNJPfY2umZPfChF3VDZ8Lw3C7O4rlIkwcEfOY+wroX0OXDg2OKQk5NHaaHKpW1fpZdfG8Zq3WH6pXVHvCLQjBerkUpQfXG0lSpUwiJGIiBlPeJfZDUSIsh3jfS6qdBwVFYRGer2ZUvsHMTPtbGeOQc1YIwLSBJu+FLlS/Z/aY3HfhvzM6Jxpz2nT2bmzFz0Ssoa0KI3d2Lk4uzqr3TvkU1ymav9lt1e7Lnjhj2HTIatlpBlhnKVNL7zSwQV3wm02Qwgt2hcLpDupRPEm/xV/RA+G+I8l1u00FwQa7SxKoomo8lYSdTjATjaRFt4WCL7D2uUvegK4Pr9XE6UcKdugdjX3S17YuFF3JURK61lFu0WlJNxMXIoPaCjp/DTV8brDsIHKOMSRtnlr79celdc46n21HbIVtVqW4x80rKmcEG8tWq4mQ0uHKzIo9Kb7SqSQw4dQYhG/BpvGAw3Ru535u/grevTwzppxck9O8vrTtxFBj68WUjJ0xkyencP4PieRDox8ESDvjY6QeBuYPVGQpiXfyfBkuEX6HnwLWI9kXrmNbbk7tfGfLxvF518qbLUU50YbtNN1zZM8smll5iORzxfjDK/B+SdHl14ZxyMreIOtWfQcbfOVZLHE+aZdze9BcdIhBaWlUqffpLkd1oZNxcv9b72Oyw90elQdWlnLe5F1YVbsZlcb6dWce/S+ikZO/Ypr/R2lD8ITQtjLZjZzNvRMrs8zslfd3s5kqVuMSyRPgcSoTEICAozl7ivrwFAWsj4nT5MT2OTO02Ht+UyYvymwHDqn/Ip8Hf0A33flkV9ONeHb31247xFEWL3ny5jsCHLxyFC5iO0EfkQTEfBxyjWM1h9DnPAR51yws1JNdI4I6iV7Ah1+r+oSbyOJMNJ0YonD+ocfTwWjFaDYtPptnYKUoDQhVSVF9ozurkYTOnru9Xsfv3+5mKcvlT0tyKvOR2Wcz2FXWKeRdqflHtspj/zdVne32Xd0e+eKw011lOW+77rBHeqzumo/RPes5q6dni9acL/nt5ed8TtrlU3LCZdHpxryfWs6We/448d67Xxfpb1x1fLIXK733g19zI/lA4ONwkO3ejEMAvvZsZnXHgKfMdfTwlJxeuU/CV03uwDLYkQHT9M/Rfb+O+Ovs9WV5NU+fLGfZXdR8Nqjjmtrzpzw7p45833xqmabvg9nW11/FQJQ44Q8I15JGLIXcTQJOuXWPln2rsJWRGQrUORqAZEFKj0pG2Vgftfy2TWv4zJc5OTRC2zCKxUtmdvC1PyJXw9H72SevV9W/PPqs9y6ub1+7Xnvt8r4YIyVq6v8P1bGXdji2To6EA7ZrNBGUwcBX5S/5MCiqzbsysbwUMRiac0SU0DpK3RME8T/Sn+dCsD9p5+Eul3KRSdpQ1vSLOEx4Zrdml/n3zqTfNuXTjrKiHCsVYqO39zpc0KW9KV4HQ2uYtpSiJ+giEj87wTdw8G5KdGL0P9tZjaiMFPM+9niXHgvNqZY87mG7NCuD1WViMlca7nH5UyzKUwNotNPeHZjI4wo/PlJQ9gHgOfgez9bUIJjsfeUHY8vf4e794Hhh7BT9/tlQZjZAPMzhhqiEgYeLvsQnkMGFT3y+Bab/L6rUISqqrEDmZA2201Kd+eaonQMoZFiqqyG+bAOUOed4hnj+JzA0LPrVFIKHxjJXsqVmNtltlW2MQqxklVkrKsQCoKFf12mGZkBQ7+h+XsZjYHSw7zIw7BmQqX7f0ByagGmTb5MmwZDaSIrFIjJNCHhbHUppOPIbpA1Vp7cyPoKqMKn24qUQx/DO/xj7Zy84cv8OOcUpiHy25Rpobz3m4W1TwxtjSCPxQyLBZq9U7g30tywdtsef7DD9xrut2dcuenVSpmK2/Khbq4KLfGFfk8mC7mf6cuYzmGSjOSGWURaqnWquCYeHeLl0lcu/b6mo/nsWLhFXdl3ohoPww/Z1Wk+lYiyMzLMcRMCbIaiSL/M0izjwsizB9gRLcCDy4waMj4arHd7opQ6zT1LYliHqMgiz3rvO0UqxcKZGaRukN7jcrEpYcPQxKypDAuxtyPALEO8yG4d3bcunyZvQ9Z8fhcEmaaB0aNN2Q8XBAQc5GkOzzu6EW0mmoGjjx5Chs8JE6Y4h+zZds/vtZR06RdX8S/wizXm9mP0V0vNs8BbGpr1GhaYWCsMCCpL8BGAXsheezsvIsJ2OB3brlYLoQinYrrf3MhLEwZ3EoemeZE6SJeHunfLHxb4k5EjAjufAz7m44Mu7P21DSifbEKTl6vij/7O/7v1SO0yXgiyBOeOm92dDLJ7CE5bEypjiWem9F4wWmL8qzTY96b9p3TTipEPnESgn7qc+nInaoV/CY7rXfGi2muFRQORq45wXXRA+S6FjvUCIPgQV8BfLTa9LppHTafR+oclkdkPbUt/R1/LbM1pWWeVCil+1OVcsq8bp+EnJaVi935rz9jlXx8bvKnTxpAtF3w/KT6JSkrea0VFWPOhImTTrwekxShQv3P7bZWX/fGD2m8d0nTC+onRIP05PzXZHjC0yj9eNJH1M8csLe+0uVfHC6HmWMcyH4qRZFHC96U1pBTuc603RcYexGXbreZY683h0rEOmCiPqFks3W3EPOVxPzXmuRhPAft+PNhyssmXSXXZs1Sm6IeeCTRftnMP2eD6P8+nv1iHRC4l+fFQaU9kZMxAT75vjhN9HmverbpQkKbyvkr9XfnlrrZa1iv1O+RqGJWpJG6SYhJx2cIJe2WmdIqzp3HMbIO8mRKNp99j1DZhBscOJDb6uQEFsVTRN2MbuNp35oVl5d4SpHz0l9+JPvT+915eMa54uW4LzueEU/wejp+I3bzh56+2fjQ/Vv0PfeZtG1fNChiIdkkO6KcmZxI0eaHkQzuRHJma6S8NblyaXruLnCw9RGKhQ7R8VVlemu2pbuh/r5L1vlmQQdj1I56pG/7frdbv2SePf16l1lVXDvm3/3Rg9+bXwl0vQ9lZJKrnOZE3k7xlw9vfFbQnWySsWa76PqPZWxxzXurwVFJT+LkLS6jT7nNeduX8Oz6lI+anftg9eW3XguNw6RnU29emNZVlwT2OpRw7riDqssiMnupjOEr5TeIfWXeoMnuo7pWw1i71PCy7as71yUvF58vX4Rpj3+WSo7ePsMFZWOZcqYrNTMP9kTK7VK8n44vtzH4TZ7NOwOKvw9YrpXZXU+4882tw8Ze7iBu014yfWoVOT71UO6IE/twjxftwrGCpwWFJ9Np9LHmnVE/+7svI7v4COZw8a43d39aIjETU1RCdvLExR7vliTi/njjs953FaqfAiX+WnMoFWPdv4WTwi0oh3SEgi/t7YKHt5tx32pfkEtXZiCWx9ZJmPkXusqw6C0QYJoijiEpOHdYE4smgwWbhCIwOmE/CWvjWKJeqJEBXjPpp8vawXMNykI/pwGvRIToDfwdMyZvXjymcIa9fTPnckWt9fVPx5HyLGCCHLLHWEyiSY9d/NrFcJs5LnzLMOfzvgvgf1lvp4FT/ChM7deKx/9PtLjdbq5xOrub5EXJ7sN2Oih6cfDgrbZdats+ENVvQ3G4/BEV6YAmfTBc/IK/LYX4djsV9WcfzNZ7zfFjBdMnMbKlleJ8dLJVxkohleSYmpT+GprSnJ3QjTjp126ck28/Z4sZkb6ieo36k+USpBx2FXHuywxxqIeyDqwz8pGF04Dkn9D/NFmF+OGNhTxSsOVic7977+/B6AjeX5wOx2qzoJ7dQ9beiZPI01RXHHGRLrqGPOeK0o30vVhpOgs5bhgTz0qVL1lc5LzwlZtKRk/9POxa3khdIGqVFcnO4ujEd/XZuu3uqX2D845thIsJYTO+ydPjnZinu0od7VwtLquPw5mMp3XeXYqayt7LLb85+HT7B0FbfRq9947dyLzDsvpM344a4rHmzdk7uq6/LIiwstJFHJ4Fm0mkgkPwjPyfjpg79Zas8kBye/OiRP9ZbS3t9UfPiTSPHDhtDQi5u3OzgTeynDXuo2BtwhuevuY9yAP4ZECY+STmBRAa/GyfiunHEPIRYSOo5GD9mku8uNjHm0es95jYHv9/Gw0j5WN5lSGhGuDr9xX8XpTE9EjjE3z2u/gJn6vGdb2hYbXcYddh2QtT7UOb9uGm6mwyhKru8YL2zmyi+KjShD+UX7teUPWe4fFFEw5cYn0nN+WVQkP629/sEh3Pp+IYntOnDMNRG4gbdDQwoBqu3BtEFZPMgU0n5PG6l04P1Tr7U8/Vk0YTq4LvmrrT5zRhGdYnGvnnr9V64brnFY538OPRuxurl6zCoJ9xoiiqsCjI0R1J5tgzU+Mwv0PBAXVXY0IyGlgvbrYOESImhuUlc+7HEbDGBtncW0ExJiQw5tiHPChZwycWw0kh1KcODNFMPh4zk5ALbxzH9QQKLAZlOCXX4Bneoci5jpiqVFeHI855GEzR1slENWWf2ez4O432Kr5wddQPQ7Sjs1ZFxxChqiDA2E7GE5GTkfjhgat5RoTMIJo/oVImb0+IqIQsBfBgn2G4IZuebUuGpDI9LzwXAITArrNU2XPou2YGfQycCngMqWg+hko7jAeg4hWgZzPdSgih4jOZw7McRjuaODrDSqmCG/TjIEJY1G5EyRYfa5846YM6AwdGpRquEKSkJ+Y6ZjpY9UXtjOdh7mfNu6S+mO341hWyTAsBf7HPie4fVkILHOviotRKTnZ0wgwQt6sM0gpN/lC2zhf9fHBHT2fUZfPBjU9coEhCwXDfETWe1i4ZFFnn4QBKdE5wbnvOT4e263BvT1GtMmFe8ETNr2pQEyBSEYiGQjbrc+bI4d4HjqcDt0CmR84xgHcduoCgHB+LUuKBAcXGgHu7GskfNl8QtsLAg9AbNAfnC3iFzN9Tcl/A+3mukz9i8LPylYWKjjhn+SXtthlZcoQIsM3l98m36r8Q+yhKiTftrNd3NFYqIijFFiB5tMcIZ1rDfAcgY6bapcmmUnl5J4zrzSH8I8ekoHX7h6PYmb8yZJhqingNAerr1PEfb8lnh6rHm7RvOlJzlB7XpY/ZVVrE8ihS1xCf8mPwuUTSEr3L26S4NqM7eywRIoi/JaDGNymRBUZ/JT5RhFEOyahyskNU1I2WG7aw8nZI2ORWSTKVxRYkGN1DdsOBnOcM/+eu/la2dNe65lnqi/sn2VQXpQdzdpRW3McNddrdA3d3l7J3Cye4LntsPacFv0/J4eD4iiHlVCoxRVGPoM7C0ZFLzScLMBGQRPXs6ZCYSDdwlx5+DeInzbxblYDcdfHRzbmcJQ1j8TvCl4SNTvV/CIWycx+QNbiLO8bPjcXXv8RKMvmxX4XhcfltvVprk1y8waeeCOKxLkrmEbh3H1rMTWqdZrMk4jOMOVmwyyQdEqSE205di6b30zvEFndyTYrHbNIlITYIbNKJq8p6qc7gjCM4U6zvEmKvE1SJitRMTmaxe2pWo7s1xN9HnSMBnSkio1OiiusQ8Kb1I6zIBKp0ZzN3nSxenjE6qXy8q7jRq40rLt6l4yXeXipMJ6U3HPt9zLzCgyMhnmdOdHhME37uEqFiqijBRRNGkshqy2GYiIiisTuyGs0WQMkm/R4jPIHYTMGLneeB1kJCQ+VQmN9x6bRpOIQUGCqKKz061b4UUCJyQhsjDDtx2UsdtN5IrLhg9vtSqaxlY4u6OHnwqkXn15nD1OMkrLvk1WX1Bu/hxWEh0SoV3q+9EovVWiTdKONYUTDtYkmTfFjkrm0krgvepSSt9FQOte8O2SqWcbnFWo1SjGcl1yVO2CmbTx5Ms2GY5h4zxMNxtcSxi3KrPbWtahHPbZeLa0kkt/x/2kfx0x0IBAbcxrIAbJhdsdZWb53ZVnyq5DbIhu13dU08/ReuN0jIozN9VUzVpMDTornAVhhCkZOmNeYWVXVjHZeKBo8OOjIzmOG00cIPSWMxu/ryRNrBw7yhqDo3QYwGyh2EJIjJjCfPaJkPCBAmlqD2UHOKszGdmhX8AsOBm22hkD7fj2BTDUmK55zXApKNamJ0pQaQ3AMs+4Or96/Ekj5n/VH47ZbfW9qP8/uf5bcFm09L7M904M/YUK6/lonNl5auv0YwDkZ7URI6xyH+2QfyH6/T5H2u3Z47mP1T5K1s84b/yvzikIbpE4Ja9USVvj37r4VP8Q/+hm+kfQRMhI+Yz9CJ2Rncyb2Tq5alleVT0p4btPDHdoVroXc8mSYbYqoivlxS97i0w3B3YsC0DvSG1lKOipfCtsU41k9+vfvXcjrPK89acTKxU6+rlw+2jPVMNI95LvJLQxDSaaPRmKN3U7cTGlTU/gmJFNCdW7pKev5GJL1j751NVfD3ZPjHhI8yta+pS+6nn/PbTn8KWLKcolcmJYShUk8YjnLu/mX7AReKdeZs6To+Mfw/gtQihH8FRGmRZJSz7imkP4S5elG4F6FkVGRGoLeEkIVgsILBxoAKQhUFDGBjIiLCBYhJLG7prAWBLYB4mm8PZ8STSE2f46Vp1VM07YOR0eozRddY0hMUMtTur5Wqy/St8zWDNhmw6fgrzRYp0XCPNESOEeajGJqUibJbusaM3h4hMe2d5nejWVp60ZixaHo2iOZj03M6xcKE8Ybns57VxjTxw3ImOOMXiDDFY6CfL8DXKws5YGR3dPRvYJsRqq9S6sCbbXbLWzakT77dbJ32rfwybML3QzmdhFiUZfpuMG652GlhbW+CS1LztiiU+H0EWTFN2MXLjzd2U+fSpjO2DQh9ryNMifneYrMOOJm63s5FTCX6p5eAB1XPrjJZ/QYGLIQ5FIEjet/Y1syqxE1v9t314wa+7+AE+jlp9wFg+r/4fD8P0n17skzlBRpJgXqSEufPRwNjUJ9EDB8hZm9L5G62j0BVIqP9NIPAEq4LhTlG9r+b+Mn2XNIfN7fgPouqpBVX1mfIhx6wuexoKGz6zWf9YfxPd10H5JJz/5acg6vF+XZuAvuLFNjydGugJoQIrcPt1NlJAoHzn2HrMClK/ulw5Ow0f9/5f15eT+O7afwDDnjYJckO1qok7NJ5roIDtNPASGnVMkyY8jUiA4gG+InN8P7Q9cSLD9thqXDsyk1rbh5HqJBOjAOOvWdDAYgzlFHlXNDn8SnOGAL4lkQkSEAiAF/Fw8N5GEvDFg/Genx6DuOdvzUsxE36BYcwcG1CDlCTGkFTr6dBUc8ery2NYnTkCL1kyEZOfuXKS1BiPnzO1oJDsmPP3eIZb5mdrd6D5UcwESDoyY19koTcHZ7UgT+XqZvhLE0PImZWUDHDdfo+5v/pmKqcvAZ5nasRwhs8p+YOYBxGJrvTvsoIhWxhEZjRMPir2NGhVH2FEhGE8OspSx9DdUqqsvIK4wnqLLk30OV8AgIGuPmIj2z7yTFh9lpU+a5un9I7OLmyIX6aGtiiG8tqAJtezFml9rJh5EvxSme+0qUX2oU4UigVdxNTOnRMqOd/wejnCpQ9EQsffu6AQbzEjsftkPT16YQkkmUj9VkigxJZ/WmMyX+c4s8yaexJ/7joeatX6uu6XPrqv50kncd5NmvNGQghWWWRHVOCZgCM8SSlbCd58JRHw6SM5+w1j6Lm/40/rv62ZumHE4+XZpBLS8lcz9Lg6zBxP/Q0P63C/gU9Ous+nrzDLPV1DtqVHNSTlr9urAfmBMCEtncREgHCBkyxLvk12bh+H4FFUbfZHB4wMc8ptKd1fX5/kDYmFBCDQ/lnuPopXuF87735lyVDh6Jt4PxkxUhWCfp87mqHa/tcqUkhCRJhAKTfwoqKk3MC/Ct7o9qVm4fR8fDLM+tGJwC0/P6Lu81Ni8pe6cd3LJVnh8MmLrxg3qTvnaPIuSObWE0WvmhiHbvyn1vCSDqjKHT+N3mX+5Z7JyedVUkdPcmYii7S3ge6vdMEpa6d8s3p56Yl9FKgxxD2nbauQS7tQMcztiCZbz9P729U/EOkoUuaUuIKVLa6TI7Ozo4VAoEOjPePWXjO5b8Nd8M629CTfSYh1Sx6OT7vtjBdQsI7EPyOPRqIwrfweOyKo65Uhrl7yuL4w8jq2WiIbCCOqaE1u4JundK7n3T27Y9KLFRveL7L5s9hQSTynM8yep0ZlO+YSrxOnbEqMTrlw2PROLefDOba+65eN5pghveLHt5fK1KUuVMdQ6p8JIz4e8igXQ+4SHWKc/ZnkuRRuDpKdKDW8R1veCVhxx+XIj4VLYj+TxPVsqqo/TfVlRRZ5W+gpYV7t5r2/6Kd/BeUiIpH8bV8LZu0mPpYdWcs2jl/y4d7pNKR+ZvCftpnspfz+Vx4sr7mFXs16CXjeemDC8lT8WHmUOGOuRq5UEvW2K2+E8P6ydDxypEFZ3dVhvQFMCZUtTZDdfffWbYKzW8ZUT1cJCWyoIEyWXfCZxdnHGEJlnDUXgccUfRlkvOs829mojtofiSVAki/KLJOlwr37YTCTvfV0kyxYdsxx0xwMP2YKAojr0CcuumUaj7GmoIqdpvZSeZ2UmVLanahrhQ3rSefg7tPsfyWyPP7KZ6TZJUu5hPHorpZwFNKFxpvw4k0O87t+XfnDcmEdrj9ft5g4x1nNWgtep2xBN/1I5lxKX1Al5oea1M3VUHqnfDBgkW3Pia8nPUQqtyTfuTW3vbo8ofzW2/TZOzTwvTZxtuy9/K4ZuPJoMIYuo00KZMpD8T9d0uie7chm6JmZvQjrU+5NjxtnCW2UpzJxSJraI/lmQU8nqlY/P2PReuyJ0nLCJ8M7mrADsr/Z7Me3fiqxicyZ8sV9Q+tXw2sNJJ8PV2P0f4PpH0h8LCrURPW/8OC34T0K7rv4l14VqxvUs1l+++dR791O666dpfMHaSkPGVBEGcE7zz4rEYb8GlXoXz/PqvERZz4s92Rw0pFb39KLOvp/ZdwvrW7n051pr7elhM3TUQ8tpXrpQzodZ4j57cbyLR6zcUnQQUuYUZQAtP5/CktFE/8zL81xs6WKHBwhPdXuq1W0gHtgUWlQrZThKWCQRtdqy42tdvCN4OETwBTaPUn0pSfp9DkFxkVgA4oiMlbn2uhwTUJ6j1kGBcKAKDMFeN/1hiI9uZDIeBo/V1DaHh27hzvYcMDcZOCzjMZvIWVhLBQFB7m6WbX7pNAcgQ31FNOCSKSDxJqHsD8BOXCHYZB90xiHcYWKgqBswmsPxAWW0JF0nwOfENgngOgOa+bOSTkBQ+0INz/YfyyeYZmz1WrkXQzuEu4EIbA+jSJqH4u4jvHI1R0DqDV2VRwPmSHWnHNc1ia8CQ0MKaZY3DwHJwV1kIEV3LrdfHpJMQoqKIxzDfwDqLBkKCg+zYJU2m1HINOCqKekQzzzk4lT33A6+JQJuN8SwCiSUPZnO+xA7Q8RkGwMsnJOqVpRxAgwLJAtNAlg6jUcwYDiRF5A/IgBSOZYHsEgZ1yTQ6s/SF7W6choyOIWdwx6+W4MhrhpvCXN+UUrjwNugmlNJKEiZk60ZtQUzpMgd4ZkSwUjMSUHqCvZGaILDmzCHj8Vxlr2mgXRYwQRQUdTtIiIniA6AKFxA7A4txubOlKDkR5bDlDG+J+wKDALmyjRZaSJHYXpR64Fm6V6ilwIMREK9rEcLX3fP3Zw2TRR75Ic3MUW9kKNkEPHrxtGAYh2yGg7FPuhCArCCAcwSzdFYeP75CjQvtX0ea3o0HmNxAn65Rpq7CwWKRYggoLAM+dVAN8hC5JgWCIDInTMuc6EK9xuBBgiuEKXaRVWBRAQGMtKwv82w3PAFUQFVRYfkKhNO1TAJSkhvuSBaTm0HdJO8NbOyuwjJnwH208/6E0WjCwPrKAhFs2JQ1AcdICgSPUa9qWzirR2ZdsuPo9hZFmUTMrce0o4CKcINy5MjB3HaHbBAG6cAUhwTlUnaU2GPJM4mx+BRciBRBYpIsRjEhClChQOeSTwlkYMYx7S5LFJuR1mCr9ZAhJFD0zrnSQ13AliGk4/j6chnDWc6GwoTbzjN2EdhdKU9AhLMtzPBdK9Ka1LwF1kPMne7ATG0DCIHKcbPnEQT0nOHgf1qgIHiysFxjJIxJvIYgE7dU/4JbpWF3eG1U/eEFNyRCISINUlDoyIDgZag5UB2IgS1iZpb0SZBJ8LnbonEGJO0KYFxWjZEIlggPAEmp6D2gDGAoiAKAICBBAN3nRfyu3UHAlsVflilg/q+WGgL0NDtjQQkAO8NbYJsGoId1Fz1GLhaTBRI5X6C/QWPFZ9BO3Dx3C5Zh6WwgMBkfIXNthgwSyNpveu5LybM5KA95PBFkgCkPycpCpoG81V4bLUKsrJm/JdUV4FkQrMhiTI7gXGgPAM6FuP29RREr6AueGzpHTUW+0P0BF2KHzQHz2kGqib2GIIK9C/0eQu2rup4H2jpvqGnYDVX5BWVrCscyuPXgFJgYEK8lz7QL/z9NfoDrD+H4iZk3Yjz02fPEX2UmG40RsmdJf2EO5q/1ITniN1MmUhOzkCUFC/hYKxnL3UX+iBUInO7G3Hqe5LCP5UmiI4lwCg2EN/VP58sFNQ/EbIZ5noaSSQTVaxYZBgBi+FZBh5w7Fb6w+P9PHb6XBNKiec5GECGgmAGFGyKYBzlQj4vm9pnhnO4qDBRYsN+VQPXNYyH8Ig+377/jZmhhkQx++DtjT5EYq9wyIDX60GonWjO7OB/F2dCUOmSgiQFR0gYkMZB+YkaCMBmtiVcELpVYXKlBpBlIQHKfvUOZNraC2mTTDj4fZf0oG/82XFPqIHQ+kPTMSfPEWTKwoPey2kmOTjvk/gkk4Nw4EUUBvzjID4cDudbA1Zw5pCS4aABCL9XFCvkxD2VZqCvE7A2KA3Cs30FQZBBAGNhWj+MdnMB/CDnHRp1njYbtmNFgErbDtTMcnyl7JIQOc7Zazr6Yie70hc5a/bYCNjENUZpdSwkpNL3+MJknY914IIboXoYUQOt+DgM4lxwfxGQJRAcR9tiiECGGMK4S5AxRDkpS7g/xDK0DzUf4e2s6MkNIlQOBWrDaAG+e0MRklfeRPZQkURYRAVgh6yiQ7AUokuEv2BdYPiC7jKoHpvNjOKdZbYoDwTDpsDNpwJQ0ggm18wum22EB3LLTECqlTRMMvCDMIGFSi6oY8cWFtBZLrbgIhpC61XAEzJXb+zuSxizVu2gyGfK8rxbCPLiYmm7hVjQtBpURunepVeM/fum2hZIKSzo66bwNT6GquyArIIkW0U2ytumpSNC3/gYICF8v3Q9weXkkeTEH9RaK2HgB1pBpYFj3TwKJZByYTIM9Cp4oGABg4i2IpQQaaX3JZejvPJH5/PbtDx5T44qFwqimKteuBaDPpGWHPxhDmqHvSqMzKUXIhUBhKzARGoZHAEsglSY5JgIUibD0H9sSjGHwddCuDkSGGSc/zN2iXcVRq6tRu25bSMtra3MKuUqNsktbPhqf2X7xPPw5Z3FBtbGC+TWeYi1BJ4Dd5g3UdBx6T9Bc5n6WtuT/tVVC2GE3oBBcu0LnyHd0CR0tmXuOEsIBR2B9I6Ti8eRCrUYj9/kKH2EA7JpCTpFtXdSZwbhnPyBA7/1v7uBoTT2Vylg7gqiQBCxiwE8/bZuE8Qkj1+RWhM6Oc7hETfUHBKBCZxxt5qi7CAgR+gR5TC0cYtkCZmaQkhoNCNFlMfdz9R8fWPGfWPz3Tx/zWMpVkryZwXlAJYLkrLojUr7hSr5RVi1WDmcjmjkbsv2pmWI1kyPqu2mZNalqtIiONuiTL0kgQjpn0Z9+80sMnMEdo4GbFi5d03ePooNmW55MwQIoxxj6Yha8XIyz5baNLnQ/S5RlNuOTnkuzlk1qd8g5htTkHQ1g6pBJWtsj+pN+et20sJVh8oI0Y2SnjjoVcUgtdZ2vfmW4MmsYkMIgSSwi7aMRRxzvwNPejwRPXmOMcNryzPc6RwY0kKDHOO+nDQYPGBSOMG6nHW8ioqDiXybRLQ6uzlkRJGHJ4c2p5DiG0mbwQYDbaMvDYjnp9UWIh81xvx3h2RRY+BeK2agkOUIL42swOw7cRNsZhI8ax4cURAIDJirbkqeFB73V5GjNnvORmrcXZ6sz5ChWtn9E6M3xDssvTQHeEUSeXFs1ymHHHVOQKSYHWxSPqMIxw7S8QTcqTRCrQim3cWZggvA8BZMFklCbDvRLIJICaXcu89bxmedtBbhTHDyNOiiR01RGrpuMZ+ayat8aghaGd6qnAfCpcc6xjRMdAY0RQabTw8RKTTBKyUlcLiMZ3zzm0yo4ndcc73qqUIgd8ojBlEEXWpxi4Lj4blsqkCNOwhCfs78Stb7RpwejKvDkj0ohsqBqT4qtBFuCgqjjUWgW0ZyLiS0XMQdsWSVWBZbx004JOfgLMX6neee9XUnn3NE9r2jStgbkJi3FnJAhRZeE6uTw79PVDFUFgR5tssbIKmbxC2cghqDVhhGIGaxhqMg2ZgzqfSReoHMNmGU0+L6kPAngjWjKJ5TnWu61Jw8JpmsrpdSS0YWVKEyTMsJ1aMU/jgyotNgWn4FhFtWtnPnvS9IznnfaN5Y2CLj7R9aMEUTo0jGHZtCE1te5zOjDN6scjhsPBsC1QIR0ja6Z+UcwTO+ZpFioeUI+DcYR4YvMPmghakdiMJd6lZundybzE5mlfNRl5dcTcZoVUUWryjWqPNE6l3STf65yoEmTAhgQlkW4bnFMyUGoLgYpqgwiUa3IcAC4xWEghtCgjuMy5JiGYMgSwN0gaLoKYOgYdKeAdB7qRZyZKlGgRsWxQanPtCwYWiPTCiRaoXGKZsP+ZNrpEwf04lBYwDIt7ibZyAi7DQawHJcRT9cgfntgxRIIigxKmW/8uoyyCKkGhoA42HLJjDujQgVWvubLzi7LHLtu0WYtm84pg0FwuOkIQqZuyUCvECmV9McdkuadmJiaRQjn2uIlecZWBeBqQN0JN22ZV1jvOdPScpCSdZ9gUC6hoak0sUnGc5WkIuLvN9i0c5BPow/RYU5YbJrBVS/vM2Z5ajTrOsQ/uCDnQlZIn7Yj7zQjpX6ToM8HQaIcWIl+x2vEuWbryihIOu+EDOTPIBSfsa9TNGOts917woJg0okoIkkowpESoBSAFdcdj7R9ZnANyP3+JPnaa6qMMh9Afs0utQ8iENZz8fqSgo4zcYFBct3UAYK9FkquA06JgN2T3wd14vNRMVUJFFc4a9kQjfXhcwuDAnagsBGBJFBCsNirgOofOGK5ETLxE7dJ9fhhxx7qIHN18ihlrz6NJY1peEgi9UQVDOQ9ZFBnAZP0rhEHOkZ5XHNmvOgDBxtoDgwEMQVmCsXjkwyq101mkLEXWK9KaOgI4EjdXAAyIZ0o/tyNmJdU7iHRtCQg7RsWfj+OphXigQKZIycxr4FBJmlCaV/kRFNYKb2b2yXQ/h7fT1wq9ky36usTdmc1KHtQWSTqMCLEOO5+4Bn9JIUK7OFrW2fAH2MqTOyY2MsJI1bhysU+i4cgt/o8Kd41Pxi1aHc0DaMDsxozRmqozcpNNbeszTpwZWMpJMGI4W0rLUJuL7bxe3Kg9W/SzIEybUjDiGDaGKRQFIiKAHJLCYB+ZFRgeBEKkYAsAIsFkisEip4/RViJsVAzawbIWC7Q1cPKBGEiMVcMz95ODBH4fz4GQEGQ9MbOBsjtCZgjAoytwpR4oWXfhZ4WU+JJCCwXaBdw6Kf395cQ3AAb4rHALlgPdrOMGEPCPDx04vCF1P747gLvAgYn9k8A/rCtertfv/dhoH2GlsmgPWSBJErfTCihqFdSD40WLgWShOtH/IiIfOcu/ljby+B6gPadEQzgBa40wjTQlgjFaUrCtghWQaBMyw7zG6QA0KMESpRgBVEJRApZQFEthQWMJGDEVRkRltrZLD/lglKDGIomCRyyjDEsYU92/zG8xciKhb/COP5xs8A6Rp49BJAptXTZAwiptIACWipCKpoMDFbKAdr9ieD7rv1oQv5GGcICgMWsqF2hDZr9KNRN3fVTInXIhoSjYn5nuNQvIeqBCSMAivNm+IXD/XdC99p9n0t7OtFBhpiNkFsA3v7/gQO4vyut8/UTINzxud1mFyPKseC8PAlBYuCEdwmGbwGKzlhtfaaAMNgiRGM6tOS6jpJREYP79NE9vyGc/6xsYqxFZEi4E3EzDW+a6GOhE2Zo9J1VKFSv1aPl+bBH6mk8M+f4XlGURfW08RiTVUIMHSRFu4D2O2oIvQaiSZjr6VjD9r3WNKMYGczrBHWe4djgmkuB/Wm3ODyk7glwVT0WhwGs4FF0fBkB9HyPKec2D5WQhaivTKhaqF2EQokLFJTAnucJJZGICRVOZEZ8jD7ZoHQFyHCGByZMCjZEk6mnMylAwnp38viZId0kDlHAXIIjGKjWsngNs42HmiYPWiDB5XaMQsCqECxh3+vMyOYnSanCOmaiy7UMh5DAsYDotrsIU0DOl7ua1p2iHQhRKgIIJPNfIKhCcTIxqcEEEhFkgiCYqEN/WYTVnj03LTSrsnvGGtBkwqQLWFJLGEX1QagpIRmllVGneSmxFCBTTqcQumnBFvjM0bFnHzdCi5ZSAmCLKff1D9TJ+2gYjslJ3SDIsA0yoosKWiBaxAYwgoVCiAiREWgshPaCAFiskJrqZ6k/NlBYjAU++cAMgMiOm9BXGoxW1iqIyQImxC8QrX6jtHIcuacJnUvmHtgX6uusmeno7fPc3uLX9+VB1JpZIQYRBjGIyLEa4mOkwgISGMNEIWA/lkZBgq1jB28EgYh1Z0wyLnpiftTWUU00dpdgniGD8PlqBQPuAP1kreQWQmVGyUQfUcx2n2DfN8RX7AM0SJEDtOfkc3XgemRAzJMEjifNibMJpHp14jH0nBjT6lvZt4PB2+MHvi+ojRcccTiwl8hZCKxqmP2akVippJPXs1d1ZMb1i78m0lnVbsq83KhnWKL2rhmMGmJKPO7kSY2s5xL0xpZfRE8WZwC0UcsKxRYUdvL11WaTaQW8a7tO7txJjiUmJOsU9B30G44L8RsPu9ccMBpexc76b6A0ie8NRBDuA98cQEkQfPAP4EEVwhpCIO7xA55kGI2gSK8PA6g3YKCfc/H79lA2+j8p8Yak/ObiqU+lNDo0XvtzDCjHKlbClstpWUX9iymWKCihbdkD7DU7JkkP4oXyYQFA+CBBRQUhPtpO2CYT1HwlsIKTSUKZNMGCCfN5TvO4KzEA4uQJl3GMHdqDAlFHPvvfwg0agHOJmiLQq6A9xhozdVjznLso5rNBw7y0Li4lM923zv884xPuT/ezyoWWtpwRRWX1hYxvChhqCD3407jQFAUIZisEhDMinZq8vTxB5zV/JN+IxeTA5pUG0dSEDM/INWeLCI6KSEikIdLZS0ltkC2n3lzNCjP1FoGkTqFutT2CQow8j6JDZ6ovW+CVyM9ui8QniwIgkVgsRIiqqIjIsYDJAggRSJBihEgDE5aviRU/Un+ZBoel9thzFupIYIB1oB7dJAKQOsENYgc0YsYDCRfZSFEiCSRZBiSMkIM6w9idz1i94SlxQ5h6hKX0eUPKQCnd2IUjuxdkogQlwgTEDCDzxvexQRuRDgzmRpM1L/aJ7PDMbgPyyqomWcQ5gU/GRD0kHZq2b95dOxRDgh3bTxGzQ7AXQFGVBSZzOoz75pEuHceuGfMQhAD6vhy20euRIvQC7TwDA1c3L16rl0wLlFiCrJuN2HIrI5gzlyHqDgFySTys+pWSHQKBwBjJIGzR+B5RKHw76yKoiPcIci8mg1CVhasjgH0nbIZmkUbDFwhrAP3MxFBo032ONk6o84VCOEvqrlSRMoO1w5IeToT0xzsXVnS86E+yzBDUSiUThAxEv1lJgM51Z9t1gTpEtlvPF7Lue1puzNXamcLEFR4VkMGepzEKuCo28GNsjY9fk56etEfQ2om/cvTUnALErajjjBOIlTAg2RqnLDXUOWT0nMfytRuvr1A3AaJR7kEEJx8tNaeUYi+QHDjHW8v9XSrCARgSBGSQIMSAhAiHT0mP+HVf3eL68f6QML2s7nUBW82EhjiWd+c6mLmhchcOjrb8bqsgxg7KoyKQS2iVWWlWpNG77NbwIvOVDVFv2DZOU4Uwu8oRRYI6ElXRUtrEUSUYRSqliRRthWrOEoPIUGTUpwIsS6yRUolCtLBqVLTpzwcboyYIs4AECkiBOIE2GH8xQgnI4Bmnu9/LaZnegHxPegFs7AQ2GIb0hsiEIm2GwINtwPAdZgOFAqpwPmcxBhwaMcF0ibzzlHf769hcIF0oLQa/U9OYZzgCw16wNy7tbkVBQWdb7269VXyEeGBwGkl4TRVlhIshxCJeEvQJyBPNQlAQVVfX7fQiPQE9SAhSCVPAgXWG4LxfWGkWBRvA7esoHFXoQ1WNw+l+3uuOAeLFpid5tTkqHIoDh+bn983atWjOXIWWpG9ISGqpyuFEvhqEjECIpAAiOrrUCLA0ZUi3EKxVKEcldo0ZuXV1mwq8K1Q7iTkh2kzs7QHeppRhuu4QbN7dHYy7rH14Pvwugy3qCPOH+dM+jJTYCXZMyQy25ORB5Lvkw6Qh05WFRGkr1eQ7M+hd+cwLBtL6wYTaK4GLZkn07kFBz9D4/Y52HSlzL4QuGYbBU4ziFWQypfL6zmLHMdFBPJS/CYEN6czwIsicesNeQi+QliJaWohRGyKxkESiCg0goFVhFIjEkFqNowUrYIEE5+QyU+dmvd2h2AKS0H1lYgRSDkZ4OMDI1Hmq2FCXN/qTidGFOFY5LWuyuyQeqdfjekcMNQ6emGsIXJuyoTY4FBhLkj3HWWd8O+qMC9dPQ77I+Jso80XkdBAdxkEcBYNkQ/3RRSQFocDHBsC2U5i7aM2nbr88NfonCPTSUZWqzale86KwkhtSBZV6p26827/ioCoWOcz0GjDhZS/Cm9/LfLXjRECBAl4JoCA3A2BcGVdWGWi6PTSYIqKi4z40Mi1WKNGAx95DJvRULPvNyZzS0GdJ2HnezdALZOd6k1vZkWTRuZsRNBaDJtBmZgUKUgyZQsUVIMN5hiKppKNW6Na2azoaNBrhN10Brihs3BS+BwYXVsahQBjmrAJcMjCN7sxOKGgFFmDIYIBiojFYJiEowS5pzUURLNZgi6YdLl5HmDZ2bwCZnFE98jyLhYjEOIpG4hmUKaKSoYb4wMGa1YEU7gH4HzMGw2mqesqgWdiYNwJNN8slwISmGbIV7mEohpnckA0kJC30l+BrcFCZDwJwHUDRMKQoJNBCwoFKKCTLka3z9Y/xR8zIYEMkFHkIBLLjo/q2XJU4RUkkjCQ67FD5157bEdqmBbz1OAeWYaYdYhVniLcE7C4Wz4AYkiyAYwp0FIlGNI3YpdjcuN2IQhUY3RpYQNEMI0KTSYHBCZJKblIJtwZKRMQFJBF/4NFBSKCgLIpFCBAUgxJATIoBIxDYDglNyIDFYCoqLAERnhNgewYZoiAmmSOgCIhaIsiqGhc1IEJfE7/NQRlhU0ickhj9esK/oRHcURUNRbUoS+uk29OzswOBCPeu7USKsmpgxgMCtR1cKkfcnp8KPeNj6UsveF0KCSTtGCMgAj5ofQh6t+rcw1+bYXlWYAnCLjUffWqZOWxod4nadPQ9rDlYp4lNSJUCRXEtjEveUIURUpP34qFlbAQgMFFgCICQBYERgsBGEWBaIyUNDQViCCNJQpYVoJZMiHt1owvOrjFG0KiIxEBiIMhunl+JXi5pzgKoT0gDgixmMLgTDh4E3XxN/VNkp+Nhv6biXpT+NgIzRS9XXG85/QNDkUEJTEJht37jLi/Ct95Z2ZIwWd0PJwUGG24UnggP2kYsRkdUNBzpqY3ea/kneTov0lF+w1LD4Yv6nFxNc5ZYbc3YxEOUkyKkCwPk88GQRudHwekoApiSEjKIFKQLoZ6VfqDOhkCnOaVOI5Cj937xX1fWbesYwAigeaQSIqIjEGJCbz8UwcxdMA7yBfdKuuoUsWoLBT4pEiHvzYFhX8sRDxrcIMikGLi6irQWqCkYFQaooSSgiIQKk9R5lJoIk2EEcQTbBf2q5OrPZS1s7YASiLa9KWUJgBpLnvhnQC7uIOsiFkzF35ydhzm4dLCpkQ0GIBwmA3bkBcJmdMTak2O0A0TMonfDpShkSL+gYGMMwLUIcooaQmDIwZjKmkM0oCu6SUR7MKFDruaQgaGZXhoVPyaWWbNpW8LJMSJc1p6QDAMAxCJQYOsykgyAHSoHUQUHaQRAoCIoX1QYbD0T1fuo80vJ5ylSqmMhRxigtSeqHnJ2EBhA688ANxxiD+eKHfCEVLEQCoJW4gMSupN/sQg5gMiYBRSQgNFGi2svkfI/AgxgVoHrgYPR1BIwIDnoyRekVeoJ5Bw3nefi+S4pJhEYdx9wq/xtWNMBRQg0APWfoeu5SeWhVP1ciB0eL5IXJ72LFI1xOg6SmNED2UpQi5NqCjf6zCosbJkT9Xy+T4MjGiH0qKJ9h1k3FgQjKGhMzsoyKhkJqRgWaBiagKBrDRJgsL0NQMzmhLjAxBoxGYqFmu5gdHYQDrHkf2VO4ELASB94K5Dh9u6fIIgMRDmPQAgPeUIEMXML0I8/zM8GXk2j3xM+e8f0JIUT5+t4jOlPPUSsYYcjMIUMCYxaE13HZZbOs02rnvaxuhQaEJtnQjzA9RAI9DvUP0olNzrUO2wJzEzCSES4G8dG2e/7NxZ6ZJhGgP7glDcsQvYv0N+FhZUOrCE3PkVkZC++atgJwyDZwOakkC4QTltEbq7EzYn54SYAcM0wynAqipFIKAghBIhFkiCQFAWMUCAIqMWQSIgCQUixGCMFxjePPonNZ9Bz4brnT9i7G2EqYMfu7HhyKUKJIQo10W4X3OROco3jDx8qGpJ9VmomkM92s+Y/iPv3rjixR/ka82VDi/+nBXizeUVvXi62zqaRvHO6mbDdjSy7pIaysKtKvYgitI3px8DFqyP46fKyaiCrcpG1mnhFUn4biYKwo5A9xTgkAh3EWC0I1/2ObhwPoEsJZDiDAMwU0DAhEKIlgcMkjjXrazoQG4LoWLmpSiCS4Y9Qw7peAOAfDuw7wwSph5h/Vax9suk9rzASMFkU+6n1z2U09ntnO0fM2fpBx2xVQYEG+X+sVC2ZfMlvVKifFejRQj7mk1Zrd0bXKd06x/OQISBOhfQUFxy20ptK1WkJE0EZt2lq0eMu3tQyDoFscjt7AkG8sfwtD8rpfxl2FNlc0QZaD9ZmMTLSKCRIjDZlgGMBgljdFgCSCSsKI2kWKOIWVO+ZJLx5lwOfjgWWimOyUUXGWgaaEq0QCTKzdNWNks6FsheZcrLuTFFuGCWpWEGKEUFEIllBUaUXYbNTU1ThDA0WzYjBU2U7rlssaMKHS4QTFoQNGOhToYfIjCHnR/IQFuK8tJw7K9HRRgdpv1ho2PALZNxwgz6YBUmQKdSUgRVFE+INeG/0B1wOEym6SakklhqDGqatGn4DjGV2MlMieERkEnSdQ9Q7nZiVSBhXKoYh8utTspwhYfidYdamDx9L022Rd/bIuwgbZoKCdguhfeJFxYTG7hbM23yQ7CR7UJxw8naXuKOrNXWdCUerIKQg+KqSZ4Gs4kJyKoNAwZ+rxq4BwZdycQUCxAZDZzSlxZoHLLKNE1QvhQuUKiaSegOoUPL9NYyWLeRbteOtG8rUXNMtmqi6kiQHsyO2rDQdlHDH6KFVQVENkxFjHuOnmMGnCuhk+lKnknm7fTJN4JICXmHJU39FGiGEKGmTx9Nn4bzH26po00SlpRsX7cx//OnK0VpZMxu6pU7G+o+HVPHSc4Htidh5HsCg9UhIfEHTqiT96zeQPdl24Y0FWCMksQHJRRvSL6EA9Yh+thO4/VkBoANB7IBBgshnItg7emkdYMC5UVAkAnnF2JZ+JoDKI6YRgIe1U+1huO3E647JO3pLWmd86Cfj2+cORtPeZucR+MckORxJZLhGCKpIjDMoiK6mYV9jpGFW4YLJUglIlwYC0KOrAEMFLt6AphRkikkYMLbJYDJARILIisqS0GkWEihJBRYoFJLGUKIFggIJQLELICRARkBjAg09AdgQWKEiyKZzVH6ILsCD6gbdIpGg+CccFjQ2HHEqILEDsBsgz5PpmH8WKmS5NjPI9d85Z7fc/19tpib6ymCz4Zl9ca4rRg+7M+h18odcLlocc6cNwaQfw+5gZ2Y8L6d5A8+t1gn327VhiPqPx8SjLNP8TYMNp+auht3khj5u+XKAv90mGYMWBfBUNuWcnxrtNoONDUNavQkeoQapq7Bqjgb2soQoipKoPYpR2RO3BUw0GA8voYeOWB1+PMc5HZ08PX8RR2nwVK2w/K0uqbUFcRJRLlZpfynwjdcNJab7tU7takrnmHnpE8Dtuxo0jXAtXl0ypycynO7BifdTyN0fITbJ305hZJNiyJ4pJ7l3oqGglfgQ7e+erJZMW+tCzBSxEU7q8Uq0zoKtIWIw9KKp4usTZhyLlkkfn7Ygt3NmAHzSp1qNw0bvGqD8cYrCN22Yo1uquJismd2BudNhvIdnMODzGlripU6pwUAa/Vgfa19UmtZkYiGqgJB6CyzMvJEM4aYWRSt4WCi97BnLZHmhpRbqdBiOVMAcECx8XdsGtJSbhNxIaSBt0Ku5KUCXsGKjiYsfwcISFToclUvGPLVZ8g0m1CJhjMf/MPc2SSlqnDBDOO43qaMmLbpWkqTKtizVd026Yos6DrpRNc5h8vHWaDSKnki49POoopcaeRRmolLELLKKU+hYMDjCQiXglevifQfPEd+YaHeCDD6jFkgh5LWndYFv62GqGHo+/nMg05ZO0nbPlAdOlQo04FJ0O/xGE7u8pLok6JhpU0UpYI3G/XNFJkLD1zEpQ5EKKjGMFUhxbFhEwBESUDeygS2GBN6JU3JkBclBGGh7Y8hBZOPmouXU65468eKXY5fUeRUyMg1liQgKRD5+mhb6bsULGxltkH+pqiO9ShuFRqCwYyMZNIXClYIlt0ZCUxNHwjrE1LiO6YumOmx4Tg7xd4eBRyFMjMTCjiIXdBvHWTGYMzArNXHCtLLU0tDQMny25YkeDy3vvg+bCuQ7NtCl+wN8CQQM8Q0QC9osCM0V0eyiHTdwl5UpdSwnW+vyippU2jFcjFoFyLBITqWCb5JIQkjFY9dcMiFeWX+LamHMcsTL5cxEdTohA6YMmm5UOYL5CgxBCy4HVCQSZ1A6Cu5D7eEwyOqbNCVXVe0NTQeOQIO1+8NeY1OGZqRTqgWOPko6DhWNNGEKR76vLEOxzGlAtu4EJteyvA1yOVO6uFBnggYkVRAWLEVBERUR4FY5gYH3CYZCkWVKWhUCCEiCRAFIQRPZYUYeyECyZAYMmetcZTPUF2nghZMpZN0c4yFZwOkhRYxWayUwWqIiGWpaFhMLXBkIiEzMHAAFlRIbiSk4GRAOWd3iZPRGiLUvfY+dngmkdk+rnk2fITtBhwc8UqDL0LMWHESWvKcTVirqxPCd4MmTUQ0fh2gELOjs/HSwfTzRZxskp8E+4B1yx9asnPgbe28olwtRvhiHxj77GcL3kaC62sDS5KmBmJ1BuDmRCMAvcHbR4R4DqEbDj14yjlmFXzWgWxTbRQRdScWAnzPckY3fohjqTJwswiAdDOyD2dx6NPDltPM0aj0JR4Eqw83R4jnVZveBx7T41QtK4f5qzWKfM0/0iglM3sg1J5LecFrX4AWcsDJmQu7ijfrllYWwZwiT86dBhrSaLbdDlPky+ERWocpzwMORWC5HAdD0g0ZliaqPpLs0DIzoHJqjwliY0Uc9E753z253NUI6O92OzSMBiquSo66xnR0xFRbFRyIM6bRkEG7QdIDYdYY6PVVLyy+KOZKNsDEjLhZumU9blc4i1BLdFYdpew6Q0G3sh1iuremIcUpiLNqF5b8tMTTxYsLrN0WkqoQiqAyIhWEjOs6inSXinfZlu9JwUmNAwKcZzqyHJyWBKMENqcmE5ZXjgoHENVKNTpYc1zl3mtGzcZCvRKM6DthhRT9TifOK87uMiHzMcTU0UQnpSKk86cfnD4t8Nq5JIt6EKpgJLmSYw7HGQdmbA9nsuiTaNm8K5GXGCCnRt+pbl4qRxmRrlOTrO44ybGCRGKIw5MN0hrUlwLygoxCaEjKUMzBE7SmjBqB2LQ6lIA0CoagxJta0oXG6vAzRlXe7cwRrqYrRtYrWs5nKxjYzNiWEmYhkcFA4UBNBkqjCMmbDJRhYTqTpxjs0mo82YiMoSz0PKNIdGMEjkGMVKqiaQlrz9u9udYpkFJmCBmikYwkSOa21jGDdkoRdN0whSBFYIVdEGWd6Bi5BB2cvWYPYGwxRnbdmGNNzOzq78IJjvREhGSaYrwsqeCicRscADUgfe7Kc+4pLkBZFcgzliw4cr2TcHQ70blxXIggWwmkhQlPMpiZRymGcOaslgiMEiJoMLBgMWCyKzMxFDQUKQ0y2y6ghEyFKHoDvaHnPDk6cwrqpUVaUompTEYIuZbgFp4HU4QJgw+kPM2cpt/zqCRBjMBFoHNiY6OkfY6ZTRxYZRg1EnzCjx3Hy7bFiE0gnUCMREsItKfU+tmavEtGMz22iGiR1E9qsmJfmHNWEwIbMCYXdN4C4TMRQeQ1WmkjjqbuBwENIxH6Iq0qVBBoh2xSkMyIBKxqlLAZj76uNsOV0XGwKWETW3DG5gocJYyJB1vkuTia+ujF6ghj3Ho7AoMFAoHHlZkgQgJ2BWCqHFhp0x7c3IknYUzWkmJ7wLjQuAWo1coW0wgKZKiiY6twlJNHGBRBmgsMNQljos1ZZG6i67xOMfo7dSFRlqmcmSUJxIX80t1CJ0CkEIM1qbAgO0ATpCIb71OfwTAyDGPVNcITzskN4CdiqqvSIcgcAZ+UtaRGFdv3HbZhs6X8KevJbYHGVVFWHUhShGHQJYHAgVD45KD3d6MUUWBg6hoNOF7189corhtMzScJCaggXANqLA6sjPDNyO0TMLz3LGhikgQCIxA8CzClPuIF4ImsCIpvxoOAtBy4bX2fb1+LppYil7ZPce76jc1sE2U9dzWoVWHINLBV5Y2DdZxkyQxLuZaFAqCmZAS5gaMLVYuQ6R38uzTQntN878RgpKgSipqEpV9AdmsDpDEW5uBoEDVFcgILhmBvkxBgVWSZhHH8gkIRQcp3PIUHTZgOtPKCbhOVL0CHLi5TsIrlMNoREzjDrhRNgklgkEYxEQm40QNWsc40N/wbEIoSIDf25iAwJZDAD0j7LgalNIrmJxDIHqihGB7yAsIMdiP6stCJ3AXHOEU/ia5iQisoqoFFUMKoImpgEQcDivevm9dg7O2mJ5JQSDh6a9XlIgPi8xNFgkh3JPH8c9GEDRLMcOwZnctgFyB0A4FD5FhbFF5QVaHrx7wslCuiIEmDk0mOG+98YD4jtwcHcghhNeWAwxA1o26aukI9JkdgYkSGrTXCA7Rg9QcJ8/9d+hvu8ZIbRi/0WXKszAKKQWEBQSGVQjMIHPEMAgDCGI2pHxOo39XP+ISAjoSYfroKfV102HafR8oWT4En1AhO49IbtQ8woIkT4Q0InKmq9jVymUAqRoKBoIc+guK4v2biu6Gib2HfYKR5SNUwjsSHv+evdcMEs65DXttYKEhYoN19OwrMa8lzEZFmXxCwY5Y0fYXTFhkNJkNhRodJ8AckPRPAyMg7zIwF6SbGPqMYQixhQQ3JkJJY902onneh/d8a+/6vFzwq9/7meeeWM2g7kokXkm1XcUlo7awyoMOBFqmMX9xDC1EfZ8KMpzHeGk49felqAj3MhfJsXQ/JYxWAMkEBZYIQqSFGeLIxRIsICgT3xQQMzwPHBGswxUMz20Dog+a/IfQS34zv353vdZdH4pitD51Ba/ITXqQtRt8n6jtENk6OhoZZ0KUNb9tukECHTKbwGrHkEsSXHrwcYZl3tU9DFM5NzKVgFEKMbtm8i6AoMyRdxA8VkTudswQTbpFN+LmhoDJQNBkacREsHOBiRXR3+yju7D47nuReqBsYLfRWbJQn+r8GaMH1fOFlD6X/MKiLEBNeYXgOMEpHcI+nzPmTHJH9u47+k/dafafy+be8uuPL0/4lKtnBij+Baf2V9l+TFjhqNVM//6T/z3/H9b/SLuSKcKEgjXUMDA=='))) \ No newline at end of file diff --git a/examples/tmp/02105week2/02105week2-handout/unitgrade_data/Stones.pkl b/examples/tmp/02105week2/02105week2-handout/unitgrade_data/Stones.pkl new file mode 100644 index 0000000000000000000000000000000000000000..125aa648ecdcca1ead793e5533eb67870d27f11d Binary files /dev/null and b/examples/tmp/02105week2/02105week2-handout/unitgrade_data/Stones.pkl differ diff --git a/examples/tmp/02105week2/02105week2.rb b/examples/tmp/02105week2/02105week2.rb new file mode 100644 index 0000000000000000000000000000000000000000..860cca7ae1696f9f33544c9104de6c66b4cff9e8 --- /dev/null +++ b/examples/tmp/02105week2/02105week2.rb @@ -0,0 +1,11 @@ +require "AssessmentBase.rb" + +module 02105week2 + include AssessmentBase + + def assessmentInitialize(course) + super("02105week2",course) + @problems = [] + end + +end \ No newline at end of file diff --git a/examples/tmp/02105week2/02105week2.yml b/examples/tmp/02105week2/02105week2.yml new file mode 100644 index 0000000000000000000000000000000000000000..0b65d2aef2370d8b7385aa5192ff811327518460 --- /dev/null +++ b/examples/tmp/02105week2/02105week2.yml @@ -0,0 +1,38 @@ +--- + +general: + name: 02105week2 + description: 'This is the stones-problem' + display_name: '02105 week 2: Stone collection' + handin_filename: stones.py + handin_directory: handin + max_grace_days: 0 + handout: 02105week2-handout.zip + writeup: writeup/writeup.html + max_submissions: -1 + disable_handins: false + max_size: 2 + has_svn: false + category_name: Lab +problems: + + - name: Unitgrade score + description: 'Score obtained by automatic grading' + max_score: 10 + optional: false + + - name: Written feedback + description: 'Written (TA) feedback' + max_score: 0 + optional: true + +autograder: + autograde_timeout: 180 + autograde_image: tango_python_tue2 + release_score: true + +# problems: +# - name: Correctness +# description: '' +# max_score: 100.0 +# optional: false \ No newline at end of file diff --git a/examples/tmp/02105week2/Makefile b/examples/tmp/02105week2/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..5d8022ac0430b53c43badb1055cbbff5d00148d0 --- /dev/null +++ b/examples/tmp/02105week2/Makefile @@ -0,0 +1,55 @@ +# +# Makefile to manage the example Hello Lab +# + +# Get the name of the lab directory +# LAB = $(notdir $(PWD)) # Fail on windows for some reason... + +all: handout handout-tarfile + +handout: + # Rebuild the handout directory that students download + (rm -rf 02105week2-handout; mkdir 02105week2-handout) + cp -p src/Makefile-handout 02105week2-handout/Makefile + cp -p src/README-handout 02105week2-handout/README + cp -p src/driver_python.py 02105week2-handout + + cp -p src/student_sources.zip 02105week2-handout + + cp -p src/stones.py 02105week2-handout + + cp -p src/docker_helpers.py 02105week2-handout + + cp -p src/stones_tests_grade.py 02105week2-handout + + cp -p src/StoneReport_handin.token 02105week2-handout + + +handout-tarfile: handout + # Build *-handout.tar and autograde.tar + # tar cvf 02105week2-handout.tar 02105week2-handout + # cp -p 02105week2-handout.tar autograde.tar + tar cvf 02105week2-handout.tar autograde.tar + # cp -p 02105week2-handout.tar autograde.tar + +clean: + # Clean the entire lab directory tree. Note that you can run + # "make clean; make" at any time while the lab is live with no + # adverse effects. + rm -f *~ *.tar + (cd src; make clean) + (cd test-autograder; make clean) + rm -rf 02105week2-handout + rm -f autograde.tar +# +# CAREFULL!!! This will delete all student records in the logfile and +# in the handin directory. Don't run this once the lab has started. +# Use it to clean the directory when you are starting a new version +# of the lab from scratch, or when you are debugging the lab prior +# to releasing it to the students. +# +cleanallfiles: + # Reset the lab from scratch. + make clean + rm -f log.txt + rm -rf handin/* diff --git a/examples/tmp/02105week2/autograde-Makefile b/examples/tmp/02105week2/autograde-Makefile new file mode 100644 index 0000000000000000000000000000000000000000..e8498f170fbf69a5102df356074d23df518a39f1 --- /dev/null +++ b/examples/tmp/02105week2/autograde-Makefile @@ -0,0 +1,7 @@ +all: + tar xf autograde.tar + cp stones.py 02105week2-autograde + (cd 02105week2-autograde; python3 driver_python.py) + +clean: + rm -rf *~ 02105week2-autograde \ No newline at end of file diff --git a/examples/tmp/02105week2/autograde.tar b/examples/tmp/02105week2/autograde.tar new file mode 100644 index 0000000000000000000000000000000000000000..225f8fbfba0a1844805a06e9db0301b68616f71c Binary files /dev/null and b/examples/tmp/02105week2/autograde.tar differ diff --git a/examples/tmp/02105week2/src/Makefile b/examples/tmp/02105week2/src/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..6d094e3a3869dfe9ee9e51a06150c6999c402286 --- /dev/null +++ b/examples/tmp/02105week2/src/Makefile @@ -0,0 +1,7 @@ +# Makefile for the Hello Lab +all: + echo "Makefile called... it is empty so far. " + #gcc hello3.c -o hello3 + +clean: + rm -rf *~ hello3 diff --git a/examples/tmp/02105week2/src/Makefile-handout b/examples/tmp/02105week2/src/Makefile-handout new file mode 100644 index 0000000000000000000000000000000000000000..6d094e3a3869dfe9ee9e51a06150c6999c402286 --- /dev/null +++ b/examples/tmp/02105week2/src/Makefile-handout @@ -0,0 +1,7 @@ +# Makefile for the Hello Lab +all: + echo "Makefile called... it is empty so far. " + #gcc hello3.c -o hello3 + +clean: + rm -rf *~ hello3 diff --git a/examples/tmp/02105week2/src/README b/examples/tmp/02105week2/src/README new file mode 100644 index 0000000000000000000000000000000000000000..8eea4bef3abb4665581173c4843b6155b3dc59d2 --- /dev/null +++ b/examples/tmp/02105week2/src/README @@ -0,0 +1,15 @@ +This directory contains all of the code files for the Hello Lab, +including the files that are handed out to students. + +Files: + +# Autograder and solution files +Makefile Makefile and ... +README ... README for this directory +driver.sh* Autograder +hello.c Solution hello.c file + +# Files that are handed out to students +Makefile-handout Makefile and ... +README-handout ... README handed out to students +hello.c-handout Blank hello.c file handed out to students diff --git a/examples/tmp/02105week2/src/README-handout b/examples/tmp/02105week2/src/README-handout new file mode 100644 index 0000000000000000000000000000000000000000..8eea4bef3abb4665581173c4843b6155b3dc59d2 --- /dev/null +++ b/examples/tmp/02105week2/src/README-handout @@ -0,0 +1,15 @@ +This directory contains all of the code files for the Hello Lab, +including the files that are handed out to students. + +Files: + +# Autograder and solution files +Makefile Makefile and ... +README ... README for this directory +driver.sh* Autograder +hello.c Solution hello.c file + +# Files that are handed out to students +Makefile-handout Makefile and ... +README-handout ... README handed out to students +hello.c-handout Blank hello.c file handed out to students diff --git a/examples/tmp/02105week2/src/StoneReport_handin.token b/examples/tmp/02105week2/src/StoneReport_handin.token new file mode 100644 index 0000000000000000000000000000000000000000..37becd782259655b9e8516a08abe63ab3d3f2183 --- /dev/null +++ b/examples/tmp/02105week2/src/StoneReport_handin.token @@ -0,0 +1,179 @@ +# This file contains your results. Do not edit its content. Simply upload it as it is. +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +af74d9e2eea101854f07fd64951aafb1fbd062916c869b330e535271178c5ce49be3fc7eda177a383e7971a004abf73b787b543843a89e0b7959c0081a44e87a 31368 +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +.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. \ No newline at end of file diff --git a/examples/tmp/02105week2/src/docker_helpers.py b/examples/tmp/02105week2/src/docker_helpers.py new file mode 100644 index 0000000000000000000000000000000000000000..0b82a931c0268a356ee54f777fbc7ed0ef095e3f --- /dev/null +++ b/examples/tmp/02105week2/src/docker_helpers.py @@ -0,0 +1,198 @@ +import os +import glob +import shutil +import time +import zipfile +import io +import subprocess +import urllib.request + +def download_docker_images(destination=None): + if destination is None: + destination = os.getcwd() + if not os.path.exists(destination): + os.makedirs(destination) + + print('Beginning file download with urllib2...') + url = 'https://gitlab.compute.dtu.dk/tuhe/unitgrade_private/-/archive/master/unitgrade_private-master.zip?path=docker_images' + result, headers = urllib.request.urlretrieve(url) + + ex = result +"_extract" + zf = zipfile.ZipFile(result) + zf.extractall(path=ex) + dockers = [f for f in zf.namelist() if f[-1] == "/" and len( [s for s in f if s == "/"] ) == 3] + for f in dockers: # zf.namelist(): + tmp_dir = ex + "/" + f + if os.path.isdir(tmp_dir): + dest = destination +"/"+os.path.basename(tmp_dir[:-1]) + + if os.path.isdir(dest): + print("> Destination for docker image", dest, "exists. Skipping download.") + else: + print("> Extracting docker image", os.path.basename(f[:-1]), "to", dest) + shutil.copytree(tmp_dir, dest) + + +def compile_docker_image(Dockerfile, tag=None, no_cache=False): + assert os.path.isfile(Dockerfile) + base = os.path.dirname(Dockerfile) + if tag == None: + tag = os.path.basename(base) + cmd = f"cd {base} && docker build {'--no-cache' if no_cache else ''} --tag {tag} ." + os.system(cmd) + return tag + + +def student_token_file_runner(host_tmp_dir, student_token_file, instructor_grade_script, grade_file_relative_destination): + """ + This code is used to run student unitgrade tests (i.e., a .token file). + Use by autolab code. + + It accepts a student .token file which is extracted, the 'correct' instructor grade script is copied + into it, and it is then run. + + :param Dockerfile_location: + :param host_tmp_dir: + :param student_token_file: + :param ReportClass: + :param instructor_grade_script: + :return: + """ + assert os.path.exists(student_token_file) + assert os.path.exists(instructor_grade_script) + from unitgrade_private import load_token + start = time.time() + results, _ = load_token(student_token_file) + sources = results['sources'][0] + with io.BytesIO(sources['zipfile']) as zb: + with zipfile.ZipFile(zb) as zip: + zip.extractall(host_tmp_dir) + + # Done extracting the zip file! Now time to move the (good) report test class into the location. + gscript = instructor_grade_script + print(f"{sources['report_relative_location']=}") + print(f"{sources['name']=}") + print("Now in docker_helpers.py") + print(f'{gscript=}') + print(f'{instructor_grade_script=}') + gscript_destination = host_tmp_dir + "/" + grade_file_relative_destination + print(f'{gscript_destination=}') + shutil.copy(gscript, gscript_destination) + # Now everything appears very close to being set up and ready to roll!. + d = os.path.normpath(grade_file_relative_destination).split(os.sep) + d = d[:-1] + [os.path.basename(instructor_grade_script)[:-3]] + pycom = ".".join(d) + """ + docker run -v c:/Users/tuhe/Documents/2021/python-docker/tmp:/app python-docker python3 -m cs202courseware.ug2report1_grade + """ + pycom = "python3 -m " + pycom + print(f"{pycom=}") + token_location = host_tmp_dir + "/" + os.path.dirname( grade_file_relative_destination ) + "/*.token" + elapsed = time.time() - start + # print("Elapsed time is", elapsed) + return pycom, host_tmp_dir, token_location + + +def docker_run_token_file(Dockerfile_location, host_tmp_dir, student_token_file, tag=None, instructor_grade_script=None, + fix_user=None, + # grade_script_relative_destination_dir=None, # The relative location relative to the top-dir containing the package. Example: irlc/project1 + xvfb=True): + """ + xvfb: Control whether to use X-windows. Works on linux. This seems like a good idea when using e.g. gym. + + This thingy works: + + To build the image, run: + docker build --tag python-docker . + + To run the app run: + + docker run -v c:/Users/tuhe/Documents/2021/python-docker/tmp:/app python-docker > output.log + + """ + Dockerfile_location = Dockerfile_location.replace("\\", "/") + host_tmp_dir = host_tmp_dir.replace("\\", "/") + student_token_file = student_token_file.replace("\\", "/") + + # A bunch of tests. This is going to be great! + Dockerfile_location = os.path.abspath(Dockerfile_location) + assert os.path.exists(Dockerfile_location) + + start = time.time() + + if fix_user is None: + fix_user = os.name != 'nt' # On Linux, this should probably be true to avoid problem with edit-rights of docker-created files. + + # with open(student_token_file, 'rb') as f: + # results = pickle.load(f) + from unitgrade_private import load_token + results, _ = load_token(student_token_file) + + sources = results['sources'][0] + + if os.path.exists(host_tmp_dir): + shutil.rmtree(host_tmp_dir) + + with io.BytesIO(sources['zipfile']) as zb: + with zipfile.ZipFile(zb) as zip: + zip.extractall(host_tmp_dir) + # Done extracting the zip file! Now time to move the (good) report test class into the location. + gscript = instructor_grade_script + + # if grade_script_relative_destination_dir is None: + # student_grade_script = host_tmp_dir + "/" + sources['report_relative_location'] + # else: + # student_grade_script = host_tmp_dir + "/" + grade_script_relative_destination_dir + # Get relative location from first line of the grade script. + with open(instructor_grade_script, 'r') as f: + student_grade_script_dir = os.path.dirname( host_tmp_dir + "/" + f.read().splitlines()[0][1:].strip() ) + print("student_grade_script", student_grade_script_dir) + + + + student_grade_script_dir = student_grade_script_dir.replace("\\", "/") + instructor_grade_script = student_grade_script_dir + "/"+os.path.basename(gscript) + shutil.copy(gscript, instructor_grade_script) + + """ + docker run -v c:/Users/tuhe/Documents/2021/python-docker/tmp:/home python-docker python3 -m cs202courseware.ug2report1_grade + """ + if tag is None: + dockname = os.path.basename( os.path.dirname(Dockerfile_location) ) + else: + dockname = tag + + tmp_grade_file = sources['name'] + "/" + sources['report_relative_location'] + tmp_grade_file = tmp_grade_file.replace("\\", "/") + + # pycom = ".".join( sources['report_module_specification'][:-1] + [os.path.basename(gscript)[:-3],] ) + pycom = ".".join(os.path.relpath(instructor_grade_script, host_tmp_dir)[:-3].split("/")) + pycom = "python3 -m " + pycom + + if fix_user: + user_cmd = ' --user "$(id -u):$(id -g)" ' + else: + user_cmd = '' + + if xvfb: + user_cmd = " -e DISPLAY=:0 -v /tmp/.X11-unix:/tmp/.X11-unix " + user_cmd + + tmp_path = os.path.abspath(host_tmp_dir).replace("\\", "/") + dcom = f"docker run {user_cmd} -v {tmp_path}:/home {dockname} {pycom}" + cdcom = f"cd {os.path.dirname(Dockerfile_location)}" + fcom = f"{cdcom} && {dcom}" + print("> Running docker command") + print(fcom) + init = time.time() - start + # thtools.execute_command(fcom.split()) + out = subprocess.check_output(fcom, shell=True).decode("utf-8") + host_tmp_dir +"/" + os.path.dirname(tmp_grade_file) + "/" + tokens = glob.glob( os.path.dirname(instructor_grade_script) + "/*.token" ) + for t in tokens: + print("Source image produced token", t) + elapsed = time.time() - start + print("Elapsed time is", elapsed, f"({init=} seconds)") + if len(tokens) != 1: + print("Wrong number of tokens produced:", len(tokens)) + print(out) + return tokens[0] diff --git a/examples/tmp/02105week2/src/driver.sh b/examples/tmp/02105week2/src/driver.sh new file mode 100644 index 0000000000000000000000000000000000000000..05a006e95e416fa5d5088f1d61479f73901588c2 --- /dev/null +++ b/examples/tmp/02105week2/src/driver.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# driver.sh - The simplest autograder we could think of. It checks +# that students can write a C program that compiles, and then +# executes with an exit status of zero. +# Usage: ./driver.sh + +# Compile the code +# echo "Compiling hello3.c" +# python3 -c "print('Hello world from python 2')" +# python3 --version +python3 driver_python.py + +#(make clean; make) +#status=$? +#if [ ${status} -ne 0 ]; then +# echo "Failure: Unable to compile hello3.c (return status = ${status})" +# echo "{\"scores\": {\"Correctness\": 0}}" +# exit +#fi +# +# Run the code +#echo "Running ./hello3" +#./hello3 +#status=$? +#if [ ${status} -eq 0 ]; then +# echo "Success: ./hello3 runs with an exit status of 0" +# echo "{\"scores\": {\"Correctness\": 100}}" +#else +# echo "Failure: ./hello fails or returns nonzero exit status of ${status}" +# echo "{\"scores\": {\"Correctness\": 0}}" +#fi + +exit diff --git a/examples/tmp/02105week2/src/driver.sh-handout b/examples/tmp/02105week2/src/driver.sh-handout new file mode 100644 index 0000000000000000000000000000000000000000..05a006e95e416fa5d5088f1d61479f73901588c2 --- /dev/null +++ b/examples/tmp/02105week2/src/driver.sh-handout @@ -0,0 +1,33 @@ +#!/bin/bash +# driver.sh - The simplest autograder we could think of. It checks +# that students can write a C program that compiles, and then +# executes with an exit status of zero. +# Usage: ./driver.sh + +# Compile the code +# echo "Compiling hello3.c" +# python3 -c "print('Hello world from python 2')" +# python3 --version +python3 driver_python.py + +#(make clean; make) +#status=$? +#if [ ${status} -ne 0 ]; then +# echo "Failure: Unable to compile hello3.c (return status = ${status})" +# echo "{\"scores\": {\"Correctness\": 0}}" +# exit +#fi +# +# Run the code +#echo "Running ./hello3" +#./hello3 +#status=$? +#if [ ${status} -eq 0 ]; then +# echo "Success: ./hello3 runs with an exit status of 0" +# echo "{\"scores\": {\"Correctness\": 100}}" +#else +# echo "Failure: ./hello fails or returns nonzero exit status of ${status}" +# echo "{\"scores\": {\"Correctness\": 0}}" +#fi + +exit diff --git a/examples/tmp/02105week2/src/driver_python.py b/examples/tmp/02105week2/src/driver_python.py new file mode 100644 index 0000000000000000000000000000000000000000..4375e8e376e0cf02b727b6bf9138ebcde6dd42fb --- /dev/null +++ b/examples/tmp/02105week2/src/driver_python.py @@ -0,0 +1,92 @@ +import os +import glob +import shutil +import sys +import subprocess +from unitgrade_private.autolab.autolab import format_autolab_json +from unitgrade_private.docker_helpers import student_token_file_runner +from unitgrade_private import load_token +import time +import unitgrade_private + +verbose = False +tag = "[driver_python.py]" + +if not verbose: + print("="*10) + print(tag, "Starting unitgrade evaluation...") +import unitgrade +print(tag, "Unitgrade version", unitgrade.version.__version__) +print(tag, "Unitgrade-devel version", unitgrade_private.version.__version__) + + +sys.stderr = sys.stdout +wdir = os.getcwd() + +def pfiles(): + print("> Files in dir:") + for f in glob.glob(wdir + "/*"): + print(f) + print("---") + +handin_filename = "stones.py" +student_token_file = 'StoneReport_handin.token' +instructor_grade_script = 'stones_tests_grade.py' +grade_file_relative_destination = "stones_tests_grade.py" +host_tmp_dir = wdir + "/tmp" +homework_file = "stones.py" +# homework_file = "stones.py" +student_should_upload_token = False # Add these from template. + +if not verbose: + pfiles() + print(f"{host_tmp_dir=}") + print(f"{student_token_file=}") + print(f"{instructor_grade_script=}") + +print("Current directory", os.getcwd()) +print("student_token_file", student_token_file) +for f in glob.glob(os.getcwd() + "/*"): + print(f) +try: + # This is how we get the student file structure. + command, host_tmp_dir, token = student_token_file_runner(host_tmp_dir, student_token_file, instructor_grade_script, + grade_file_relative_destination) + # run the stuff. + if not student_should_upload_token: + """ Add the student homework to the right location. """ + print("Moving uploaded file from", os.path.basename(handin_filename), "to", handin_filename) + # print("file exists?", os.path.isfile(os.path.basename(handin_filename))) + shutil.move(os.path.basename(handin_filename), host_tmp_dir + "/" + handin_filename) + + command = f"cd tmp && {command} --noprogress --autolab" + def rcom(cm): + rs = subprocess.run(cm, capture_output=True, text=True, shell=True) + print(rs.stdout) + if len(rs.stderr) > 0: + print(tag, "There were errors in executing the file:") + print(rs.stderr) + + start = time.time() + rcom(command) + ls = glob.glob(token) + f = ls[0] + results, _ = load_token(ls[0]) + +except Exception as e: + if not student_should_upload_token: + print(tag, "A major error occured while starting unitgrade.") + print(tag, "This can mean the grader itself is badly configured, or (more likely) that you submitted a completely wrong file.") + print(tag, "The following is the content of the file you uploaded; is it what you expect?") + with open(host_tmp_dir + "/" + handin_filename, 'r') as f: + print( f.read() ) + print(" ") + print(tag, "If you cannot resolve the problem, please contact the teacher and include details such as this log, as well as the file you submitted.") + + raise e + +if verbose: + print(tag, f"{token=}") + print(tag, results['total']) + +format_autolab_json(results) \ No newline at end of file diff --git a/examples/tmp/02105week2/src/driver_python.py-handout b/examples/tmp/02105week2/src/driver_python.py-handout new file mode 100644 index 0000000000000000000000000000000000000000..4375e8e376e0cf02b727b6bf9138ebcde6dd42fb --- /dev/null +++ b/examples/tmp/02105week2/src/driver_python.py-handout @@ -0,0 +1,92 @@ +import os +import glob +import shutil +import sys +import subprocess +from unitgrade_private.autolab.autolab import format_autolab_json +from unitgrade_private.docker_helpers import student_token_file_runner +from unitgrade_private import load_token +import time +import unitgrade_private + +verbose = False +tag = "[driver_python.py]" + +if not verbose: + print("="*10) + print(tag, "Starting unitgrade evaluation...") +import unitgrade +print(tag, "Unitgrade version", unitgrade.version.__version__) +print(tag, "Unitgrade-devel version", unitgrade_private.version.__version__) + + +sys.stderr = sys.stdout +wdir = os.getcwd() + +def pfiles(): + print("> Files in dir:") + for f in glob.glob(wdir + "/*"): + print(f) + print("---") + +handin_filename = "stones.py" +student_token_file = 'StoneReport_handin.token' +instructor_grade_script = 'stones_tests_grade.py' +grade_file_relative_destination = "stones_tests_grade.py" +host_tmp_dir = wdir + "/tmp" +homework_file = "stones.py" +# homework_file = "stones.py" +student_should_upload_token = False # Add these from template. + +if not verbose: + pfiles() + print(f"{host_tmp_dir=}") + print(f"{student_token_file=}") + print(f"{instructor_grade_script=}") + +print("Current directory", os.getcwd()) +print("student_token_file", student_token_file) +for f in glob.glob(os.getcwd() + "/*"): + print(f) +try: + # This is how we get the student file structure. + command, host_tmp_dir, token = student_token_file_runner(host_tmp_dir, student_token_file, instructor_grade_script, + grade_file_relative_destination) + # run the stuff. + if not student_should_upload_token: + """ Add the student homework to the right location. """ + print("Moving uploaded file from", os.path.basename(handin_filename), "to", handin_filename) + # print("file exists?", os.path.isfile(os.path.basename(handin_filename))) + shutil.move(os.path.basename(handin_filename), host_tmp_dir + "/" + handin_filename) + + command = f"cd tmp && {command} --noprogress --autolab" + def rcom(cm): + rs = subprocess.run(cm, capture_output=True, text=True, shell=True) + print(rs.stdout) + if len(rs.stderr) > 0: + print(tag, "There were errors in executing the file:") + print(rs.stderr) + + start = time.time() + rcom(command) + ls = glob.glob(token) + f = ls[0] + results, _ = load_token(ls[0]) + +except Exception as e: + if not student_should_upload_token: + print(tag, "A major error occured while starting unitgrade.") + print(tag, "This can mean the grader itself is badly configured, or (more likely) that you submitted a completely wrong file.") + print(tag, "The following is the content of the file you uploaded; is it what you expect?") + with open(host_tmp_dir + "/" + handin_filename, 'r') as f: + print( f.read() ) + print(" ") + print(tag, "If you cannot resolve the problem, please contact the teacher and include details such as this log, as well as the file you submitted.") + + raise e + +if verbose: + print(tag, f"{token=}") + print(tag, results['total']) + +format_autolab_json(results) \ No newline at end of file diff --git a/examples/tmp/02105week2/src/stones.py b/examples/tmp/02105week2/src/stones.py new file mode 100644 index 0000000000000000000000000000000000000000..37becd782259655b9e8516a08abe63ab3d3f2183 --- /dev/null +++ b/examples/tmp/02105week2/src/stones.py @@ -0,0 +1,179 @@ +# This file contains your results. Do not edit its content. Simply upload it as it is. +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +af74d9e2eea101854f07fd64951aafb1fbd062916c869b330e535271178c5ce49be3fc7eda177a383e7971a004abf73b787b543843a89e0b7959c0081a44e87a 31368 +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +.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. \ No newline at end of file diff --git a/examples/tmp/02105week2/src/stones_tests_grade.py b/examples/tmp/02105week2/src/stones_tests_grade.py new file mode 100644 index 0000000000000000000000000000000000000000..d8065998b6dd1a1400ae7910febf59d4c6330f40 --- /dev/null +++ b/examples/tmp/02105week2/src/stones_tests_grade.py @@ -0,0 +1,4 @@ +# stones_tests.py +''' WARNING: Modifying, decompiling or otherwise tampering with this script, it's data or the resulting .token file will be investigated as a cheating attempt. ''' +import bz2, base64 +exec(bz2.decompress(base64.b64decode('QlpoOTFBWSZTWUa6hgYAXBj/gH/2xFZ7/////+///v////5gbP73hzuvtea8VQPqWuc+7L01QFCtDaMJCvfcHHtqCoID3Z0cUN3vLwcvPXTru2iBRBUlL1pVV0a+3cb3fPtevVvr7Hvdyu5nn1TvtoFffa+u8+999777c++x2+92+vlDOy+w97vX1Qk43d31d2016+PX1oSJs0mrt3WqWs+2eqHb3099NM97xL3srenb75GgoaLb329Dmn3d93j7b22+xGvcoIL6vc+3Pd7am0bKrvHuI9ny4gDt8nueXBZX32L693xaHzgfXpvGVHbI+vd6U6ezuaMvtr1mvO2e+47Zjlbzb672zVhUXnxdtsPvWdfe4yfXHJYA2vvh8fUYm2vd7PD3295Mt3TM266Gq3GFNvNzvOEpoggAIEAJoBDIJpiNIybU0aE9TxQZqNGQ0yHqGEpoEEIgQaJpqntBKfop+qNlP1TQMjTTQaAAAaAAAEpiQUyKaam00qfqmmmjzSMp+qB/qU0/VGJ6QGh6hoeo9RoGgGTQyBJpIiETFT0xpBpNqm9U9qnlT9U81NqRoMTaQ9NI00A0DQAAPQRJEIAEZAEBoCZMhpTNFNPyp4o9T9Jkymaj1PUHqep6Ro/VNMEmokTEFMCYRiExTR6mo8TU08KNGjQBoGmmgaAAA50P2EAPZ6pKBET3wVUfSkUYQVYUk96ixVRU/X7/pwuqhpP/H/PWEf+qWH0K+nCP4LMn4fvv+0VjExdfwTm+M3D7//ELFa7ML4uoqSFSrv/x6db/zWReDGuu3rreK7sK3FR7nWoMtDVEWZ6Ibtq8ykvOr114scd6xILVp8fRsnbPSFLltCXRF+mavnvdVaitGV6UdIzsi5DkMnKWk5lcftg/ifaSnH2f535IEv+/N9Np7cpxFP8ZzpOTulovzK+VvfYwTHlvqZasDDAx/pWlOBNmYVFO5BA+ZiLIEikiSBCDILFkUIB+6SUVFIIKv6UmASQmf9IJQIjEgCsggphhEmwxtBQlaPRWq8muxMo/FWGyuk5rmpPQm8nfSBUoFWCQVZZGiqgop/AwoMRUBVIKgyIqpBbqiR/06v+fNq8Yc2u0P3vOL285+CfiWtaVdGb8fxXC06ygUoaypxsL73FpdSSB5zQ5L7Yxs49XbV9VrZJhWR0hpDrUouWLq25M9SaeGYntjJo9+sxAR14/InZ8FBTq/iffL41jV4piEi0eCu3+a5BIfDSBcaxIsfc/yNyZMU2Os1/BcbWFvDP6sI/Zf///nrPq2+Ecdhx4490mtxwmHRtFRv6HxSK/6TZp/rzilOliN9r8JQmPgj5E/P4o7vkdfxdu9F4zF9padD3wfCvZB9MVeA+Fl30x7N+n2r871Z62I5XKsEbENV5fFDri9bn4+ZBU/xuyutUj6HerOH0YN4chEmvCQe31CaMT5pnVe9vwOWDBIpAROM/P+FQR9ViLeL5s1WPryxkHdL3qc5TasrekiFemJpivtl8efCLS/U6pNH1ejyzmk0NR/BS98M8mf3eHYzQy9Hxt19HvqRf/HDzheY8OnafF0rmTqIz4S273tXFFprYi3NzWKRhWDEJu4ckNSnyQURTLYnAqk66TYrdgUzm31L5DB9Pf1WGO12euxTqu0wkUdyco0yf/LsIsynbORoJceGFc8HjjZKdY6l8mM6UsezFqXD38c5cKy/7E2w5J+BPXLbjhkaF3dLJQqoi48fV4Or996v20bz4ffLr7Lfr56Myq+dqM+NWQuoonnGxQb+Eu3mUmjUtfstU+FB6ZQUpiWVmZZXdV5VF2IY502+JIb26iFpI0/GYjshd3jBqyZkwuZTk0z1Xk8/ZMcLw9H6ltJQnd8q42kL0227ymw/NYJiZyRHc8ixBosUCl6BXS4BJ+gS8z1fj8z00bUz6EKZXf0LgWe0eEhELBNcDGd4HcVUi1mkmj5U0Iai9ntr3Wk4QzvbisZhIXdSnxqA53xEiNvaeg48ONgivhzlwLjczHARsrRlJpikXg7TaHddHGtEfI5CuUO3J1DSZkiEjUcKjd4EtcGiTQv0xBA6BJIQhfrR2XsHnXduWbM9d+7vkZ7rOx0JXmIZKphMu7GyS4B8oPy5yuWKJRFfPHZHZAfn+fTzZuhG5Q3Qxrz5w+S7mnDOzW5YLK2bBazuFqCHdqTfaD35Q+PxuMdOOoDMYxXxQXDanCxDT8OL7s2tMjJgTuCIcqJ2c05/vKY+fuWtHAbcfsqEH0VdvWRyskb2f3zJCb+ILWDBixsB9W1JiSw8eHMxdP8fi4aPWKqEZEfaIHbkBFUzsV6b+uUtikzpnben5ttQZGJflYr4jOh8t0G9TDAvEnxE1rXjup+O90ZM1bcx7Xz91J+WZQI3hwVHvUgeIw0uOwk3BBvx8H6zjU6chcdNso4PErme+Se1sHvt+GOFKWq0zE1kJi4cvXTNukaSHWlhlfO+1NdA83bQHHbsz4iijUuu254osW+HBHy7GTKrpNfpcpw3QlWM7fsrJMiWN8NU4pzfm9hiEsjpa9N9rIMXKCj961sF7Li22zAgcqVflhGEqa8mL1RterHAzTSncI3L/U5Ugl0xI/vuMkKst5Rvjy1eQdMdJHDbOcreD2w5ZhL04O33r1l3/LKWO+4qgjq2bXBXxoBtqaqfNsvs0/tUEK32Dt4/WJxIuLRtTLBm3ksggxqxIgO4mxrAWz3OLibvMCyNSMbYwbL50zyuLLGdoObjgma0tZgxieRSpS0uyyy1mV8vDenVsXtyL5aCzYVfe4KfWKU92EWYKNFMHjJwQ0i0d7j6CMFF7ia1zjVg7PCfCPDR87Sx6vmdDk6pA7Q5cyxOm59JvxiYKlFaXTaUcjHPlpB+bUMb7GSuoOP4lCMNh9xwUqzgstbjSmAkJCtyydxr0PbRqC6yzLp0bMuLc6q/gXzr1PFhQlLLXEsLzQ+HXPCSGZCSDpNefFPoeyWReDL837W0g4zx7u++0u66VRn6Z6Gne++V7FuiuZTPjJjBGT69vLlxhkhFtfrC8xh3isUx1bLZ5rC7xBxw2iz13Ml14c2grSd0rQmir75/fnSu11xBovfEhN0pWjTfHB9JzYuOA+9vhBysyNcjDo1XZbEX/NImUz8Cn5JSKdWt3jJGZoTRvMPsa8ofl7dctBzQMxfEzMbMSrUTLKyRdrr+U3rIuIpUVZut4KdXfLK2t1xD1QuwgKb4hI6lNUHNnnQO3Fh3O3HGsbUzMTNEwfzeDpPrhrdLfhFMAomNnowapYarr9mSSa8fNrxl5tzh3DvzlBYJQboo9GHQU2POip+mj21Kw9w5nMt2MoP2uarE0Y1bGj97GSj2/bjOmLhvftRxJmY+6oCv1fjxlO79fpvpZ0RpNtMOor/ZbokDVaSlULe9WPvVmv7iUT2LnNUeohn3+Dx7rMzW+ZvgaU0c+V5WV3fS+XaOZGgpGL+GV+dk5VzbStGf8c0yKEnFMbHCbxudVxeV2iso0tMs+yC75OrfuuSMbDMH6llscjgRJutkzZRmWu3Xc4xSxfiKv9mD5X8zmIqbbdzEZelQfDFfr7mc38Lw65PIMc9WaMnWM+tHYYblOx6T080WOTJ+6TguyyAdy2qZFzNSSHEIQOmZbp6NS8K5ZnMsc4JuK7kPbNjdtZ7s2q7J7Y55dz4xxLym2O+LNLOZ3P2Fc4oqFSkpwxKIId2lI1U9LHsI1v7MJXjszJpHMMT7+t2nb3+49uiCj5m5zSVqZzGSkh0hSYIICU414T4kcivOuPZycakoMB4bfodg6xsxs2SvOHOloUX1N4iGUinBysrSZDHWD9pH9yqmlSKnLM0JBOij9AUUWI/PQoxGDbCopoTTDBBYo01G+r382mq7dXTYbswzdni+4MknhQbCAr2HQ6+vy3OWby6OxJ4gsLbVk3Nlh2hw1Pc8DkyEIWdl8NtbIFiOiq5D9ZTYrWuWqGbxzQ5J1zpdZhtpPaXu0xPmsmbpmc0DszuN5oKv0cc2caICvBQRbeZAWaLgi74du+1DsUWe5JM1WcUPk8LNbG3+w61Tvfw7n7EEGhxY4znwmNnR2F16Y4Oi8Vu3YbGdjCTsjha8tQ3h7dG24G2ZXVzRrCpKqls6SnNJPfY2umZPfChF3VDZ8Lw3C7O4rlIkwcEfOY+wroX0OXDg2OKQk5NHaaHKpW1fpZdfG8Zq3WH6pXVHvCLQjBerkUpQfXG0lSpUwiJGIiBlPeJfZDUSIsh3jfS6qdBwVFYRGer2ZUvsHMTPtbGeOQc1YIwLSBJu+FLlS/Z/aY3HfhvzM6Jxpz2nT2bmzFz0Ssoa0KI3d2Lk4uzqr3TvkU1ymav9lt1e7Lnjhj2HTIatlpBlhnKVNL7zSwQV3wm02Qwgt2hcLpDupRPEm/xV/RA+G+I8l1u00FwQa7SxKoomo8lYSdTjATjaRFt4WCL7D2uUvegK4Pr9XE6UcKdugdjX3S17YuFF3JURK61lFu0WlJNxMXIoPaCjp/DTV8brDsIHKOMSRtnlr79celdc46n21HbIVtVqW4x80rKmcEG8tWq4mQ0uHKzIo9Kb7SqSQw4dQYhG/BpvGAw3Ru535u/grevTwzppxck9O8vrTtxFBj68WUjJ0xkyencP4PieRDox8ESDvjY6QeBuYPVGQpiXfyfBkuEX6HnwLWI9kXrmNbbk7tfGfLxvF518qbLUU50YbtNN1zZM8smll5iORzxfjDK/B+SdHl14ZxyMreIOtWfQcbfOVZLHE+aZdze9BcdIhBaWlUqffpLkd1oZNxcv9b72Oyw90elQdWlnLe5F1YVbsZlcb6dWce/S+ikZO/Ypr/R2lD8ITQtjLZjZzNvRMrs8zslfd3s5kqVuMSyRPgcSoTEICAozl7ivrwFAWsj4nT5MT2OTO02Ht+UyYvymwHDqn/Ip8Hf0A33flkV9ONeHb31247xFEWL3ny5jsCHLxyFC5iO0EfkQTEfBxyjWM1h9DnPAR51yws1JNdI4I6iV7Ah1+r+oSbyOJMNJ0YonD+ocfTwWjFaDYtPptnYKUoDQhVSVF9ozurkYTOnru9Xsfv3+5mKcvlT0tyKvOR2Wcz2FXWKeRdqflHtspj/zdVne32Xd0e+eKw011lOW+77rBHeqzumo/RPes5q6dni9acL/nt5ed8TtrlU3LCZdHpxryfWs6We/448d67Xxfpb1x1fLIXK733g19zI/lA4ONwkO3ejEMAvvZsZnXHgKfMdfTwlJxeuU/CV03uwDLYkQHT9M/Rfb+O+Ovs9WV5NU+fLGfZXdR8Nqjjmtrzpzw7p45833xqmabvg9nW11/FQJQ44Q8I15JGLIXcTQJOuXWPln2rsJWRGQrUORqAZEFKj0pG2Vgftfy2TWv4zJc5OTRC2zCKxUtmdvC1PyJXw9H72SevV9W/PPqs9y6ub1+7Xnvt8r4YIyVq6v8P1bGXdji2To6EA7ZrNBGUwcBX5S/5MCiqzbsysbwUMRiac0SU0DpK3RME8T/Sn+dCsD9p5+Eul3KRSdpQ1vSLOEx4Zrdml/n3zqTfNuXTjrKiHCsVYqO39zpc0KW9KV4HQ2uYtpSiJ+giEj87wTdw8G5KdGL0P9tZjaiMFPM+9niXHgvNqZY87mG7NCuD1WViMlca7nH5UyzKUwNotNPeHZjI4wo/PlJQ9gHgOfgez9bUIJjsfeUHY8vf4e794Hhh7BT9/tlQZjZAPMzhhqiEgYeLvsQnkMGFT3y+Bab/L6rUISqqrEDmZA2201Kd+eaonQMoZFiqqyG+bAOUOed4hnj+JzA0LPrVFIKHxjJXsqVmNtltlW2MQqxklVkrKsQCoKFf12mGZkBQ7+h+XsZjYHSw7zIw7BmQqX7f0ByagGmTb5MmwZDaSIrFIjJNCHhbHUppOPIbpA1Vp7cyPoKqMKn24qUQx/DO/xj7Zy84cv8OOcUpiHy25Rpobz3m4W1TwxtjSCPxQyLBZq9U7g30tywdtsef7DD9xrut2dcuenVSpmK2/Khbq4KLfGFfk8mC7mf6cuYzmGSjOSGWURaqnWquCYeHeLl0lcu/b6mo/nsWLhFXdl3ohoPww/Z1Wk+lYiyMzLMcRMCbIaiSL/M0izjwsizB9gRLcCDy4waMj4arHd7opQ6zT1LYliHqMgiz3rvO0UqxcKZGaRukN7jcrEpYcPQxKypDAuxtyPALEO8yG4d3bcunyZvQ9Z8fhcEmaaB0aNN2Q8XBAQc5GkOzzu6EW0mmoGjjx5Chs8JE6Y4h+zZds/vtZR06RdX8S/wizXm9mP0V0vNs8BbGpr1GhaYWCsMCCpL8BGAXsheezsvIsJ2OB3brlYLoQinYrrf3MhLEwZ3EoemeZE6SJeHunfLHxb4k5EjAjufAz7m44Mu7P21DSifbEKTl6vij/7O/7v1SO0yXgiyBOeOm92dDLJ7CE5bEypjiWem9F4wWmL8qzTY96b9p3TTipEPnESgn7qc+nInaoV/CY7rXfGi2muFRQORq45wXXRA+S6FjvUCIPgQV8BfLTa9LppHTafR+oclkdkPbUt/R1/LbM1pWWeVCil+1OVcsq8bp+EnJaVi935rz9jlXx8bvKnTxpAtF3w/KT6JSkrea0VFWPOhImTTrwekxShQv3P7bZWX/fGD2m8d0nTC+onRIP05PzXZHjC0yj9eNJH1M8csLe+0uVfHC6HmWMcyH4qRZFHC96U1pBTuc603RcYexGXbreZY683h0rEOmCiPqFks3W3EPOVxPzXmuRhPAft+PNhyssmXSXXZs1Sm6IeeCTRftnMP2eD6P8+nv1iHRC4l+fFQaU9kZMxAT75vjhN9HmverbpQkKbyvkr9XfnlrrZa1iv1O+RqGJWpJG6SYhJx2cIJe2WmdIqzp3HMbIO8mRKNp99j1DZhBscOJDb6uQEFsVTRN2MbuNp35oVl5d4SpHz0l9+JPvT+915eMa54uW4LzueEU/wejp+I3bzh56+2fjQ/Vv0PfeZtG1fNChiIdkkO6KcmZxI0eaHkQzuRHJma6S8NblyaXruLnCw9RGKhQ7R8VVlemu2pbuh/r5L1vlmQQdj1I56pG/7frdbv2SePf16l1lVXDvm3/3Rg9+bXwl0vQ9lZJKrnOZE3k7xlw9vfFbQnWySsWa76PqPZWxxzXurwVFJT+LkLS6jT7nNeduX8Oz6lI+anftg9eW3XguNw6RnU29emNZVlwT2OpRw7riDqssiMnupjOEr5TeIfWXeoMnuo7pWw1i71PCy7as71yUvF58vX4Rpj3+WSo7ePsMFZWOZcqYrNTMP9kTK7VK8n44vtzH4TZ7NOwOKvw9YrpXZXU+4882tw8Ze7iBu014yfWoVOT71UO6IE/twjxftwrGCpwWFJ9Np9LHmnVE/+7svI7v4COZw8a43d39aIjETU1RCdvLExR7vliTi/njjs953FaqfAiX+WnMoFWPdv4WTwi0oh3SEgi/t7YKHt5tx32pfkEtXZiCWx9ZJmPkXusqw6C0QYJoijiEpOHdYE4smgwWbhCIwOmE/CWvjWKJeqJEBXjPpp8vawXMNykI/pwGvRIToDfwdMyZvXjymcIa9fTPnckWt9fVPx5HyLGCCHLLHWEyiSY9d/NrFcJs5LnzLMOfzvgvgf1lvp4FT/ChM7deKx/9PtLjdbq5xOrub5EXJ7sN2Oih6cfDgrbZdats+ENVvQ3G4/BEV6YAmfTBc/IK/LYX4djsV9WcfzNZ7zfFjBdMnMbKlleJ8dLJVxkohleSYmpT+GprSnJ3QjTjp126ck28/Z4sZkb6ieo36k+USpBx2FXHuywxxqIeyDqwz8pGF04Dkn9D/NFmF+OGNhTxSsOVic7977+/B6AjeX5wOx2qzoJ7dQ9beiZPI01RXHHGRLrqGPOeK0o30vVhpOgs5bhgTz0qVL1lc5LzwlZtKRk/9POxa3khdIGqVFcnO4ujEd/XZuu3uqX2D845thIsJYTO+ydPjnZinu0od7VwtLquPw5mMp3XeXYqayt7LLb85+HT7B0FbfRq9947dyLzDsvpM344a4rHmzdk7uq6/LIiwstJFHJ4Fm0mkgkPwjPyfjpg79Zas8kBye/OiRP9ZbS3t9UfPiTSPHDhtDQi5u3OzgTeynDXuo2BtwhuevuY9yAP4ZECY+STmBRAa/GyfiunHEPIRYSOo5GD9mku8uNjHm0es95jYHv9/Gw0j5WN5lSGhGuDr9xX8XpTE9EjjE3z2u/gJn6vGdb2hYbXcYddh2QtT7UOb9uGm6mwyhKru8YL2zmyi+KjShD+UX7teUPWe4fFFEw5cYn0nN+WVQkP629/sEh3Pp+IYntOnDMNRG4gbdDQwoBqu3BtEFZPMgU0n5PG6l04P1Tr7U8/Vk0YTq4LvmrrT5zRhGdYnGvnnr9V64brnFY538OPRuxurl6zCoJ9xoiiqsCjI0R1J5tgzU+Mwv0PBAXVXY0IyGlgvbrYOESImhuUlc+7HEbDGBtncW0ExJiQw5tiHPChZwycWw0kh1KcODNFMPh4zk5ALbxzH9QQKLAZlOCXX4Bneoci5jpiqVFeHI855GEzR1slENWWf2ez4O432Kr5wddQPQ7Sjs1ZFxxChqiDA2E7GE5GTkfjhgat5RoTMIJo/oVImb0+IqIQsBfBgn2G4IZuebUuGpDI9LzwXAITArrNU2XPou2YGfQycCngMqWg+hko7jAeg4hWgZzPdSgih4jOZw7McRjuaODrDSqmCG/TjIEJY1G5EyRYfa5846YM6AwdGpRquEKSkJ+Y6ZjpY9UXtjOdh7mfNu6S+mO341hWyTAsBf7HPie4fVkILHOviotRKTnZ0wgwQt6sM0gpN/lC2zhf9fHBHT2fUZfPBjU9coEhCwXDfETWe1i4ZFFnn4QBKdE5wbnvOT4e263BvT1GtMmFe8ETNr2pQEyBSEYiGQjbrc+bI4d4HjqcDt0CmR84xgHcduoCgHB+LUuKBAcXGgHu7GskfNl8QtsLAg9AbNAfnC3iFzN9Tcl/A+3mukz9i8LPylYWKjjhn+SXtthlZcoQIsM3l98m36r8Q+yhKiTftrNd3NFYqIijFFiB5tMcIZ1rDfAcgY6bapcmmUnl5J4zrzSH8I8ekoHX7h6PYmb8yZJhqingNAerr1PEfb8lnh6rHm7RvOlJzlB7XpY/ZVVrE8ihS1xCf8mPwuUTSEr3L26S4NqM7eywRIoi/JaDGNymRBUZ/JT5RhFEOyahyskNU1I2WG7aw8nZI2ORWSTKVxRYkGN1DdsOBnOcM/+eu/la2dNe65lnqi/sn2VQXpQdzdpRW3McNddrdA3d3l7J3Cye4LntsPacFv0/J4eD4iiHlVCoxRVGPoM7C0ZFLzScLMBGQRPXs6ZCYSDdwlx5+DeInzbxblYDcdfHRzbmcJQ1j8TvCl4SNTvV/CIWycx+QNbiLO8bPjcXXv8RKMvmxX4XhcfltvVprk1y8waeeCOKxLkrmEbh3H1rMTWqdZrMk4jOMOVmwyyQdEqSE205di6b30zvEFndyTYrHbNIlITYIbNKJq8p6qc7gjCM4U6zvEmKvE1SJitRMTmaxe2pWo7s1xN9HnSMBnSkio1OiiusQ8Kb1I6zIBKp0ZzN3nSxenjE6qXy8q7jRq40rLt6l4yXeXipMJ6U3HPt9zLzCgyMhnmdOdHhME37uEqFiqijBRRNGkshqy2GYiIiisTuyGs0WQMkm/R4jPIHYTMGLneeB1kJCQ+VQmN9x6bRpOIQUGCqKKz061b4UUCJyQhsjDDtx2UsdtN5IrLhg9vtSqaxlY4u6OHnwqkXn15nD1OMkrLvk1WX1Bu/hxWEh0SoV3q+9EovVWiTdKONYUTDtYkmTfFjkrm0krgvepSSt9FQOte8O2SqWcbnFWo1SjGcl1yVO2CmbTx5Ms2GY5h4zxMNxtcSxi3KrPbWtahHPbZeLa0kkt/x/2kfx0x0IBAbcxrIAbJhdsdZWb53ZVnyq5DbIhu13dU08/ReuN0jIozN9VUzVpMDTornAVhhCkZOmNeYWVXVjHZeKBo8OOjIzmOG00cIPSWMxu/ryRNrBw7yhqDo3QYwGyh2EJIjJjCfPaJkPCBAmlqD2UHOKszGdmhX8AsOBm22hkD7fj2BTDUmK55zXApKNamJ0pQaQ3AMs+4Or96/Ekj5n/VH47ZbfW9qP8/uf5bcFm09L7M904M/YUK6/lonNl5auv0YwDkZ7URI6xyH+2QfyH6/T5H2u3Z47mP1T5K1s84b/yvzikIbpE4Ja9USVvj37r4VP8Q/+hm+kfQRMhI+Yz9CJ2Rncyb2Tq5alleVT0p4btPDHdoVroXc8mSYbYqoivlxS97i0w3B3YsC0DvSG1lKOipfCtsU41k9+vfvXcjrPK89acTKxU6+rlw+2jPVMNI95LvJLQxDSaaPRmKN3U7cTGlTU/gmJFNCdW7pKev5GJL1j751NVfD3ZPjHhI8yta+pS+6nn/PbTn8KWLKcolcmJYShUk8YjnLu/mX7AReKdeZs6To+Mfw/gtQihH8FRGmRZJSz7imkP4S5elG4F6FkVGRGoLeEkIVgsILBxoAKQhUFDGBjIiLCBYhJLG7prAWBLYB4mm8PZ8STSE2f46Vp1VM07YOR0eozRddY0hMUMtTur5Wqy/St8zWDNhmw6fgrzRYp0XCPNESOEeajGJqUibJbusaM3h4hMe2d5nejWVp60ZixaHo2iOZj03M6xcKE8Ybns57VxjTxw3ImOOMXiDDFY6CfL8DXKws5YGR3dPRvYJsRqq9S6sCbbXbLWzakT77dbJ32rfwybML3QzmdhFiUZfpuMG652GlhbW+CS1LztiiU+H0EWTFN2MXLjzd2U+fSpjO2DQh9ryNMifneYrMOOJm63s5FTCX6p5eAB1XPrjJZ/QYGLIQ5FIEjet/Y1syqxE1v9t314wa+7+AE+jlp9wFg+r/4fD8P0n17skzlBRpJgXqSEufPRwNjUJ9EDB8hZm9L5G62j0BVIqP9NIPAEq4LhTlG9r+b+Mn2XNIfN7fgPouqpBVX1mfIhx6wuexoKGz6zWf9YfxPd10H5JJz/5acg6vF+XZuAvuLFNjydGugJoQIrcPt1NlJAoHzn2HrMClK/ulw5Ow0f9/5f15eT+O7afwDDnjYJckO1qok7NJ5roIDtNPASGnVMkyY8jUiA4gG+InN8P7Q9cSLD9thqXDsyk1rbh5HqJBOjAOOvWdDAYgzlFHlXNDn8SnOGAL4lkQkSEAiAF/Fw8N5GEvDFg/Genx6DuOdvzUsxE36BYcwcG1CDlCTGkFTr6dBUc8ery2NYnTkCL1kyEZOfuXKS1BiPnzO1oJDsmPP3eIZb5mdrd6D5UcwESDoyY19koTcHZ7UgT+XqZvhLE0PImZWUDHDdfo+5v/pmKqcvAZ5nasRwhs8p+YOYBxGJrvTvsoIhWxhEZjRMPir2NGhVH2FEhGE8OspSx9DdUqqsvIK4wnqLLk30OV8AgIGuPmIj2z7yTFh9lpU+a5un9I7OLmyIX6aGtiiG8tqAJtezFml9rJh5EvxSme+0qUX2oU4UigVdxNTOnRMqOd/wejnCpQ9EQsffu6AQbzEjsftkPT16YQkkmUj9VkigxJZ/WmMyX+c4s8yaexJ/7joeatX6uu6XPrqv50kncd5NmvNGQghWWWRHVOCZgCM8SSlbCd58JRHw6SM5+w1j6Lm/40/rv62ZumHE4+XZpBLS8lcz9Lg6zBxP/Q0P63C/gU9Ous+nrzDLPV1DtqVHNSTlr9urAfmBMCEtncREgHCBkyxLvk12bh+H4FFUbfZHB4wMc8ptKd1fX5/kDYmFBCDQ/lnuPopXuF87735lyVDh6Jt4PxkxUhWCfp87mqHa/tcqUkhCRJhAKTfwoqKk3MC/Ct7o9qVm4fR8fDLM+tGJwC0/P6Lu81Ni8pe6cd3LJVnh8MmLrxg3qTvnaPIuSObWE0WvmhiHbvyn1vCSDqjKHT+N3mX+5Z7JyedVUkdPcmYii7S3ge6vdMEpa6d8s3p56Yl9FKgxxD2nbauQS7tQMcztiCZbz9P729U/EOkoUuaUuIKVLa6TI7Ozo4VAoEOjPePWXjO5b8Nd8M629CTfSYh1Sx6OT7vtjBdQsI7EPyOPRqIwrfweOyKo65Uhrl7yuL4w8jq2WiIbCCOqaE1u4JundK7n3T27Y9KLFRveL7L5s9hQSTynM8yep0ZlO+YSrxOnbEqMTrlw2PROLefDOba+65eN5pghveLHt5fK1KUuVMdQ6p8JIz4e8igXQ+4SHWKc/ZnkuRRuDpKdKDW8R1veCVhxx+XIj4VLYj+TxPVsqqo/TfVlRRZ5W+gpYV7t5r2/6Kd/BeUiIpH8bV8LZu0mPpYdWcs2jl/y4d7pNKR+ZvCftpnspfz+Vx4sr7mFXs16CXjeemDC8lT8WHmUOGOuRq5UEvW2K2+E8P6ydDxypEFZ3dVhvQFMCZUtTZDdfffWbYKzW8ZUT1cJCWyoIEyWXfCZxdnHGEJlnDUXgccUfRlkvOs829mojtofiSVAki/KLJOlwr37YTCTvfV0kyxYdsxx0xwMP2YKAojr0CcuumUaj7GmoIqdpvZSeZ2UmVLanahrhQ3rSefg7tPsfyWyPP7KZ6TZJUu5hPHorpZwFNKFxpvw4k0O87t+XfnDcmEdrj9ft5g4x1nNWgtep2xBN/1I5lxKX1Al5oea1M3VUHqnfDBgkW3Pia8nPUQqtyTfuTW3vbo8ofzW2/TZOzTwvTZxtuy9/K4ZuPJoMIYuo00KZMpD8T9d0uie7chm6JmZvQjrU+5NjxtnCW2UpzJxSJraI/lmQU8nqlY/P2PReuyJ0nLCJ8M7mrADsr/Z7Me3fiqxicyZ8sV9Q+tXw2sNJJ8PV2P0f4PpH0h8LCrURPW/8OC34T0K7rv4l14VqxvUs1l+++dR791O666dpfMHaSkPGVBEGcE7zz4rEYb8GlXoXz/PqvERZz4s92Rw0pFb39KLOvp/ZdwvrW7n051pr7elhM3TUQ8tpXrpQzodZ4j57cbyLR6zcUnQQUuYUZQAtP5/CktFE/8zL81xs6WKHBwhPdXuq1W0gHtgUWlQrZThKWCQRtdqy42tdvCN4OETwBTaPUn0pSfp9DkFxkVgA4oiMlbn2uhwTUJ6j1kGBcKAKDMFeN/1hiI9uZDIeBo/V1DaHh27hzvYcMDcZOCzjMZvIWVhLBQFB7m6WbX7pNAcgQ31FNOCSKSDxJqHsD8BOXCHYZB90xiHcYWKgqBswmsPxAWW0JF0nwOfENgngOgOa+bOSTkBQ+0INz/YfyyeYZmz1WrkXQzuEu4EIbA+jSJqH4u4jvHI1R0DqDV2VRwPmSHWnHNc1ia8CQ0MKaZY3DwHJwV1kIEV3LrdfHpJMQoqKIxzDfwDqLBkKCg+zYJU2m1HINOCqKekQzzzk4lT33A6+JQJuN8SwCiSUPZnO+xA7Q8RkGwMsnJOqVpRxAgwLJAtNAlg6jUcwYDiRF5A/IgBSOZYHsEgZ1yTQ6s/SF7W6choyOIWdwx6+W4MhrhpvCXN+UUrjwNugmlNJKEiZk60ZtQUzpMgd4ZkSwUjMSUHqCvZGaILDmzCHj8Vxlr2mgXRYwQRQUdTtIiIniA6AKFxA7A4txubOlKDkR5bDlDG+J+wKDALmyjRZaSJHYXpR64Fm6V6ilwIMREK9rEcLX3fP3Zw2TRR75Ic3MUW9kKNkEPHrxtGAYh2yGg7FPuhCArCCAcwSzdFYeP75CjQvtX0ea3o0HmNxAn65Rpq7CwWKRYggoLAM+dVAN8hC5JgWCIDInTMuc6EK9xuBBgiuEKXaRVWBRAQGMtKwv82w3PAFUQFVRYfkKhNO1TAJSkhvuSBaTm0HdJO8NbOyuwjJnwH208/6E0WjCwPrKAhFs2JQ1AcdICgSPUa9qWzirR2ZdsuPo9hZFmUTMrce0o4CKcINy5MjB3HaHbBAG6cAUhwTlUnaU2GPJM4mx+BRciBRBYpIsRjEhClChQOeSTwlkYMYx7S5LFJuR1mCr9ZAhJFD0zrnSQ13AliGk4/j6chnDWc6GwoTbzjN2EdhdKU9AhLMtzPBdK9Ka1LwF1kPMne7ATG0DCIHKcbPnEQT0nOHgf1qgIHiysFxjJIxJvIYgE7dU/4JbpWF3eG1U/eEFNyRCISINUlDoyIDgZag5UB2IgS1iZpb0SZBJ8LnbonEGJO0KYFxWjZEIlggPAEmp6D2gDGAoiAKAICBBAN3nRfyu3UHAlsVflilg/q+WGgL0NDtjQQkAO8NbYJsGoId1Fz1GLhaTBRI5X6C/QWPFZ9BO3Dx3C5Zh6WwgMBkfIXNthgwSyNpveu5LybM5KA95PBFkgCkPycpCpoG81V4bLUKsrJm/JdUV4FkQrMhiTI7gXGgPAM6FuP29RREr6AueGzpHTUW+0P0BF2KHzQHz2kGqib2GIIK9C/0eQu2rup4H2jpvqGnYDVX5BWVrCscyuPXgFJgYEK8lz7QL/z9NfoDrD+H4iZk3Yjz02fPEX2UmG40RsmdJf2EO5q/1ITniN1MmUhOzkCUFC/hYKxnL3UX+iBUInO7G3Hqe5LCP5UmiI4lwCg2EN/VP58sFNQ/EbIZ5noaSSQTVaxYZBgBi+FZBh5w7Fb6w+P9PHb6XBNKiec5GECGgmAGFGyKYBzlQj4vm9pnhnO4qDBRYsN+VQPXNYyH8Ig+377/jZmhhkQx++DtjT5EYq9wyIDX60GonWjO7OB/F2dCUOmSgiQFR0gYkMZB+YkaCMBmtiVcELpVYXKlBpBlIQHKfvUOZNraC2mTTDj4fZf0oG/82XFPqIHQ+kPTMSfPEWTKwoPey2kmOTjvk/gkk4Nw4EUUBvzjID4cDudbA1Zw5pCS4aABCL9XFCvkxD2VZqCvE7A2KA3Cs30FQZBBAGNhWj+MdnMB/CDnHRp1njYbtmNFgErbDtTMcnyl7JIQOc7Zazr6Yie70hc5a/bYCNjENUZpdSwkpNL3+MJknY914IIboXoYUQOt+DgM4lxwfxGQJRAcR9tiiECGGMK4S5AxRDkpS7g/xDK0DzUf4e2s6MkNIlQOBWrDaAG+e0MRklfeRPZQkURYRAVgh6yiQ7AUokuEv2BdYPiC7jKoHpvNjOKdZbYoDwTDpsDNpwJQ0ggm18wum22EB3LLTECqlTRMMvCDMIGFSi6oY8cWFtBZLrbgIhpC61XAEzJXb+zuSxizVu2gyGfK8rxbCPLiYmm7hVjQtBpURunepVeM/fum2hZIKSzo66bwNT6GquyArIIkW0U2ytumpSNC3/gYICF8v3Q9weXkkeTEH9RaK2HgB1pBpYFj3TwKJZByYTIM9Cp4oGABg4i2IpQQaaX3JZejvPJH5/PbtDx5T44qFwqimKteuBaDPpGWHPxhDmqHvSqMzKUXIhUBhKzARGoZHAEsglSY5JgIUibD0H9sSjGHwddCuDkSGGSc/zN2iXcVRq6tRu25bSMtra3MKuUqNsktbPhqf2X7xPPw5Z3FBtbGC+TWeYi1BJ4Dd5g3UdBx6T9Bc5n6WtuT/tVVC2GE3oBBcu0LnyHd0CR0tmXuOEsIBR2B9I6Ti8eRCrUYj9/kKH2EA7JpCTpFtXdSZwbhnPyBA7/1v7uBoTT2Vylg7gqiQBCxiwE8/bZuE8Qkj1+RWhM6Oc7hETfUHBKBCZxxt5qi7CAgR+gR5TC0cYtkCZmaQkhoNCNFlMfdz9R8fWPGfWPz3Tx/zWMpVkryZwXlAJYLkrLojUr7hSr5RVi1WDmcjmjkbsv2pmWI1kyPqu2mZNalqtIiONuiTL0kgQjpn0Z9+80sMnMEdo4GbFi5d03ePooNmW55MwQIoxxj6Yha8XIyz5baNLnQ/S5RlNuOTnkuzlk1qd8g5htTkHQ1g6pBJWtsj+pN+et20sJVh8oI0Y2SnjjoVcUgtdZ2vfmW4MmsYkMIgSSwi7aMRRxzvwNPejwRPXmOMcNryzPc6RwY0kKDHOO+nDQYPGBSOMG6nHW8ioqDiXybRLQ6uzlkRJGHJ4c2p5DiG0mbwQYDbaMvDYjnp9UWIh81xvx3h2RRY+BeK2agkOUIL42swOw7cRNsZhI8ax4cURAIDJirbkqeFB73V5GjNnvORmrcXZ6sz5ChWtn9E6M3xDssvTQHeEUSeXFs1ymHHHVOQKSYHWxSPqMIxw7S8QTcqTRCrQim3cWZggvA8BZMFklCbDvRLIJICaXcu89bxmedtBbhTHDyNOiiR01RGrpuMZ+ayat8aghaGd6qnAfCpcc6xjRMdAY0RQabTw8RKTTBKyUlcLiMZ3zzm0yo4ndcc73qqUIgd8ojBlEEXWpxi4Lj4blsqkCNOwhCfs78Stb7RpwejKvDkj0ohsqBqT4qtBFuCgqjjUWgW0ZyLiS0XMQdsWSVWBZbx004JOfgLMX6neee9XUnn3NE9r2jStgbkJi3FnJAhRZeE6uTw79PVDFUFgR5tssbIKmbxC2cghqDVhhGIGaxhqMg2ZgzqfSReoHMNmGU0+L6kPAngjWjKJ5TnWu61Jw8JpmsrpdSS0YWVKEyTMsJ1aMU/jgyotNgWn4FhFtWtnPnvS9IznnfaN5Y2CLj7R9aMEUTo0jGHZtCE1te5zOjDN6scjhsPBsC1QIR0ja6Z+UcwTO+ZpFioeUI+DcYR4YvMPmghakdiMJd6lZundybzE5mlfNRl5dcTcZoVUUWryjWqPNE6l3STf65yoEmTAhgQlkW4bnFMyUGoLgYpqgwiUa3IcAC4xWEghtCgjuMy5JiGYMgSwN0gaLoKYOgYdKeAdB7qRZyZKlGgRsWxQanPtCwYWiPTCiRaoXGKZsP+ZNrpEwf04lBYwDIt7ibZyAi7DQawHJcRT9cgfntgxRIIigxKmW/8uoyyCKkGhoA42HLJjDujQgVWvubLzi7LHLtu0WYtm84pg0FwuOkIQqZuyUCvECmV9McdkuadmJiaRQjn2uIlecZWBeBqQN0JN22ZV1jvOdPScpCSdZ9gUC6hoak0sUnGc5WkIuLvN9i0c5BPow/RYU5YbJrBVS/vM2Z5ajTrOsQ/uCDnQlZIn7Yj7zQjpX6ToM8HQaIcWIl+x2vEuWbryihIOu+EDOTPIBSfsa9TNGOts917woJg0okoIkkowpESoBSAFdcdj7R9ZnANyP3+JPnaa6qMMh9Afs0utQ8iENZz8fqSgo4zcYFBct3UAYK9FkquA06JgN2T3wd14vNRMVUJFFc4a9kQjfXhcwuDAnagsBGBJFBCsNirgOofOGK5ETLxE7dJ9fhhxx7qIHN18ihlrz6NJY1peEgi9UQVDOQ9ZFBnAZP0rhEHOkZ5XHNmvOgDBxtoDgwEMQVmCsXjkwyq101mkLEXWK9KaOgI4EjdXAAyIZ0o/tyNmJdU7iHRtCQg7RsWfj+OphXigQKZIycxr4FBJmlCaV/kRFNYKb2b2yXQ/h7fT1wq9ky36usTdmc1KHtQWSTqMCLEOO5+4Bn9JIUK7OFrW2fAH2MqTOyY2MsJI1bhysU+i4cgt/o8Kd41Pxi1aHc0DaMDsxozRmqozcpNNbeszTpwZWMpJMGI4W0rLUJuL7bxe3Kg9W/SzIEybUjDiGDaGKRQFIiKAHJLCYB+ZFRgeBEKkYAsAIsFkisEip4/RViJsVAzawbIWC7Q1cPKBGEiMVcMz95ODBH4fz4GQEGQ9MbOBsjtCZgjAoytwpR4oWXfhZ4WU+JJCCwXaBdw6Kf395cQ3AAb4rHALlgPdrOMGEPCPDx04vCF1P747gLvAgYn9k8A/rCtertfv/dhoH2GlsmgPWSBJErfTCihqFdSD40WLgWShOtH/IiIfOcu/ljby+B6gPadEQzgBa40wjTQlgjFaUrCtghWQaBMyw7zG6QA0KMESpRgBVEJRApZQFEthQWMJGDEVRkRltrZLD/lglKDGIomCRyyjDEsYU92/zG8xciKhb/COP5xs8A6Rp49BJAptXTZAwiptIACWipCKpoMDFbKAdr9ieD7rv1oQv5GGcICgMWsqF2hDZr9KNRN3fVTInXIhoSjYn5nuNQvIeqBCSMAivNm+IXD/XdC99p9n0t7OtFBhpiNkFsA3v7/gQO4vyut8/UTINzxud1mFyPKseC8PAlBYuCEdwmGbwGKzlhtfaaAMNgiRGM6tOS6jpJREYP79NE9vyGc/6xsYqxFZEi4E3EzDW+a6GOhE2Zo9J1VKFSv1aPl+bBH6mk8M+f4XlGURfW08RiTVUIMHSRFu4D2O2oIvQaiSZjr6VjD9r3WNKMYGczrBHWe4djgmkuB/Wm3ODyk7glwVT0WhwGs4FF0fBkB9HyPKec2D5WQhaivTKhaqF2EQokLFJTAnucJJZGICRVOZEZ8jD7ZoHQFyHCGByZMCjZEk6mnMylAwnp38viZId0kDlHAXIIjGKjWsngNs42HmiYPWiDB5XaMQsCqECxh3+vMyOYnSanCOmaiy7UMh5DAsYDotrsIU0DOl7ua1p2iHQhRKgIIJPNfIKhCcTIxqcEEEhFkgiCYqEN/WYTVnj03LTSrsnvGGtBkwqQLWFJLGEX1QagpIRmllVGneSmxFCBTTqcQumnBFvjM0bFnHzdCi5ZSAmCLKff1D9TJ+2gYjslJ3SDIsA0yoosKWiBaxAYwgoVCiAiREWgshPaCAFiskJrqZ6k/NlBYjAU++cAMgMiOm9BXGoxW1iqIyQImxC8QrX6jtHIcuacJnUvmHtgX6uusmeno7fPc3uLX9+VB1JpZIQYRBjGIyLEa4mOkwgISGMNEIWA/lkZBgq1jB28EgYh1Z0wyLnpiftTWUU00dpdgniGD8PlqBQPuAP1kreQWQmVGyUQfUcx2n2DfN8RX7AM0SJEDtOfkc3XgemRAzJMEjifNibMJpHp14jH0nBjT6lvZt4PB2+MHvi+ojRcccTiwl8hZCKxqmP2akVippJPXs1d1ZMb1i78m0lnVbsq83KhnWKL2rhmMGmJKPO7kSY2s5xL0xpZfRE8WZwC0UcsKxRYUdvL11WaTaQW8a7tO7txJjiUmJOsU9B30G44L8RsPu9ccMBpexc76b6A0ie8NRBDuA98cQEkQfPAP4EEVwhpCIO7xA55kGI2gSK8PA6g3YKCfc/H79lA2+j8p8Yak/ObiqU+lNDo0XvtzDCjHKlbClstpWUX9iymWKCihbdkD7DU7JkkP4oXyYQFA+CBBRQUhPtpO2CYT1HwlsIKTSUKZNMGCCfN5TvO4KzEA4uQJl3GMHdqDAlFHPvvfwg0agHOJmiLQq6A9xhozdVjznLso5rNBw7y0Li4lM923zv884xPuT/ezyoWWtpwRRWX1hYxvChhqCD3407jQFAUIZisEhDMinZq8vTxB5zV/JN+IxeTA5pUG0dSEDM/INWeLCI6KSEikIdLZS0ltkC2n3lzNCjP1FoGkTqFutT2CQow8j6JDZ6ovW+CVyM9ui8QniwIgkVgsRIiqqIjIsYDJAggRSJBihEgDE5aviRU/Un+ZBoel9thzFupIYIB1oB7dJAKQOsENYgc0YsYDCRfZSFEiCSRZBiSMkIM6w9idz1i94SlxQ5h6hKX0eUPKQCnd2IUjuxdkogQlwgTEDCDzxvexQRuRDgzmRpM1L/aJ7PDMbgPyyqomWcQ5gU/GRD0kHZq2b95dOxRDgh3bTxGzQ7AXQFGVBSZzOoz75pEuHceuGfMQhAD6vhy20euRIvQC7TwDA1c3L16rl0wLlFiCrJuN2HIrI5gzlyHqDgFySTys+pWSHQKBwBjJIGzR+B5RKHw76yKoiPcIci8mg1CVhasjgH0nbIZmkUbDFwhrAP3MxFBo032ONk6o84VCOEvqrlSRMoO1w5IeToT0xzsXVnS86E+yzBDUSiUThAxEv1lJgM51Z9t1gTpEtlvPF7Lue1puzNXamcLEFR4VkMGepzEKuCo28GNsjY9fk56etEfQ2om/cvTUnALErajjjBOIlTAg2RqnLDXUOWT0nMfytRuvr1A3AaJR7kEEJx8tNaeUYi+QHDjHW8v9XSrCARgSBGSQIMSAhAiHT0mP+HVf3eL68f6QML2s7nUBW82EhjiWd+c6mLmhchcOjrb8bqsgxg7KoyKQS2iVWWlWpNG77NbwIvOVDVFv2DZOU4Uwu8oRRYI6ElXRUtrEUSUYRSqliRRthWrOEoPIUGTUpwIsS6yRUolCtLBqVLTpzwcboyYIs4AECkiBOIE2GH8xQgnI4Bmnu9/LaZnegHxPegFs7AQ2GIb0hsiEIm2GwINtwPAdZgOFAqpwPmcxBhwaMcF0ibzzlHf769hcIF0oLQa/U9OYZzgCw16wNy7tbkVBQWdb7269VXyEeGBwGkl4TRVlhIshxCJeEvQJyBPNQlAQVVfX7fQiPQE9SAhSCVPAgXWG4LxfWGkWBRvA7esoHFXoQ1WNw+l+3uuOAeLFpid5tTkqHIoDh+bn983atWjOXIWWpG9ISGqpyuFEvhqEjECIpAAiOrrUCLA0ZUi3EKxVKEcldo0ZuXV1mwq8K1Q7iTkh2kzs7QHeppRhuu4QbN7dHYy7rH14Pvwugy3qCPOH+dM+jJTYCXZMyQy25ORB5Lvkw6Qh05WFRGkr1eQ7M+hd+cwLBtL6wYTaK4GLZkn07kFBz9D4/Y52HSlzL4QuGYbBU4ziFWQypfL6zmLHMdFBPJS/CYEN6czwIsicesNeQi+QliJaWohRGyKxkESiCg0goFVhFIjEkFqNowUrYIEE5+QyU+dmvd2h2AKS0H1lYgRSDkZ4OMDI1Hmq2FCXN/qTidGFOFY5LWuyuyQeqdfjekcMNQ6emGsIXJuyoTY4FBhLkj3HWWd8O+qMC9dPQ77I+Jso80XkdBAdxkEcBYNkQ/3RRSQFocDHBsC2U5i7aM2nbr88NfonCPTSUZWqzale86KwkhtSBZV6p26827/ioCoWOcz0GjDhZS/Cm9/LfLXjRECBAl4JoCA3A2BcGVdWGWi6PTSYIqKi4z40Mi1WKNGAx95DJvRULPvNyZzS0GdJ2HnezdALZOd6k1vZkWTRuZsRNBaDJtBmZgUKUgyZQsUVIMN5hiKppKNW6Na2azoaNBrhN10Brihs3BS+BwYXVsahQBjmrAJcMjCN7sxOKGgFFmDIYIBiojFYJiEowS5pzUURLNZgi6YdLl5HmDZ2bwCZnFE98jyLhYjEOIpG4hmUKaKSoYb4wMGa1YEU7gH4HzMGw2mqesqgWdiYNwJNN8slwISmGbIV7mEohpnckA0kJC30l+BrcFCZDwJwHUDRMKQoJNBCwoFKKCTLka3z9Y/xR8zIYEMkFHkIBLLjo/q2XJU4RUkkjCQ67FD5157bEdqmBbz1OAeWYaYdYhVniLcE7C4Wz4AYkiyAYwp0FIlGNI3YpdjcuN2IQhUY3RpYQNEMI0KTSYHBCZJKblIJtwZKRMQFJBF/4NFBSKCgLIpFCBAUgxJATIoBIxDYDglNyIDFYCoqLAERnhNgewYZoiAmmSOgCIhaIsiqGhc1IEJfE7/NQRlhU0ickhj9esK/oRHcURUNRbUoS+uk29OzswOBCPeu7USKsmpgxgMCtR1cKkfcnp8KPeNj6UsveF0KCSTtGCMgAj5ofQh6t+rcw1+bYXlWYAnCLjUffWqZOWxod4nadPQ9rDlYp4lNSJUCRXEtjEveUIURUpP34qFlbAQgMFFgCICQBYERgsBGEWBaIyUNDQViCCNJQpYVoJZMiHt1owvOrjFG0KiIxEBiIMhunl+JXi5pzgKoT0gDgixmMLgTDh4E3XxN/VNkp+Nhv6biXpT+NgIzRS9XXG85/QNDkUEJTEJht37jLi/Ct95Z2ZIwWd0PJwUGG24UnggP2kYsRkdUNBzpqY3ea/kneTov0lF+w1LD4Yv6nFxNc5ZYbc3YxEOUkyKkCwPk88GQRudHwekoApiSEjKIFKQLoZ6VfqDOhkCnOaVOI5Cj937xX1fWbesYwAigeaQSIqIjEGJCbz8UwcxdMA7yBfdKuuoUsWoLBT4pEiHvzYFhX8sRDxrcIMikGLi6irQWqCkYFQaooSSgiIQKk9R5lJoIk2EEcQTbBf2q5OrPZS1s7YASiLa9KWUJgBpLnvhnQC7uIOsiFkzF35ydhzm4dLCpkQ0GIBwmA3bkBcJmdMTak2O0A0TMonfDpShkSL+gYGMMwLUIcooaQmDIwZjKmkM0oCu6SUR7MKFDruaQgaGZXhoVPyaWWbNpW8LJMSJc1p6QDAMAxCJQYOsykgyAHSoHUQUHaQRAoCIoX1QYbD0T1fuo80vJ5ylSqmMhRxigtSeqHnJ2EBhA688ANxxiD+eKHfCEVLEQCoJW4gMSupN/sQg5gMiYBRSQgNFGi2svkfI/AgxgVoHrgYPR1BIwIDnoyRekVeoJ5Bw3nefi+S4pJhEYdx9wq/xtWNMBRQg0APWfoeu5SeWhVP1ciB0eL5IXJ72LFI1xOg6SmNED2UpQi5NqCjf6zCosbJkT9Xy+T4MjGiH0qKJ9h1k3FgQjKGhMzsoyKhkJqRgWaBiagKBrDRJgsL0NQMzmhLjAxBoxGYqFmu5gdHYQDrHkf2VO4ELASB94K5Dh9u6fIIgMRDmPQAgPeUIEMXML0I8/zM8GXk2j3xM+e8f0JIUT5+t4jOlPPUSsYYcjMIUMCYxaE13HZZbOs02rnvaxuhQaEJtnQjzA9RAI9DvUP0olNzrUO2wJzEzCSES4G8dG2e/7NxZ6ZJhGgP7glDcsQvYv0N+FhZUOrCE3PkVkZC++atgJwyDZwOakkC4QTltEbq7EzYn54SYAcM0wynAqipFIKAghBIhFkiCQFAWMUCAIqMWQSIgCQUixGCMFxjePPonNZ9Bz4brnT9i7G2EqYMfu7HhyKUKJIQo10W4X3OROco3jDx8qGpJ9VmomkM92s+Y/iPv3rjixR/ka82VDi/+nBXizeUVvXi62zqaRvHO6mbDdjSy7pIaysKtKvYgitI3px8DFqyP46fKyaiCrcpG1mnhFUn4biYKwo5A9xTgkAh3EWC0I1/2ObhwPoEsJZDiDAMwU0DAhEKIlgcMkjjXrazoQG4LoWLmpSiCS4Y9Qw7peAOAfDuw7wwSph5h/Vax9suk9rzASMFkU+6n1z2U09ntnO0fM2fpBx2xVQYEG+X+sVC2ZfMlvVKifFejRQj7mk1Zrd0bXKd06x/OQISBOhfQUFxy20ptK1WkJE0EZt2lq0eMu3tQyDoFscjt7AkG8sfwtD8rpfxl2FNlc0QZaD9ZmMTLSKCRIjDZlgGMBgljdFgCSCSsKI2kWKOIWVO+ZJLx5lwOfjgWWimOyUUXGWgaaEq0QCTKzdNWNks6FsheZcrLuTFFuGCWpWEGKEUFEIllBUaUXYbNTU1ThDA0WzYjBU2U7rlssaMKHS4QTFoQNGOhToYfIjCHnR/IQFuK8tJw7K9HRRgdpv1ho2PALZNxwgz6YBUmQKdSUgRVFE+INeG/0B1wOEym6SakklhqDGqatGn4DjGV2MlMieERkEnSdQ9Q7nZiVSBhXKoYh8utTspwhYfidYdamDx9L022Rd/bIuwgbZoKCdguhfeJFxYTG7hbM23yQ7CR7UJxw8naXuKOrNXWdCUerIKQg+KqSZ4Gs4kJyKoNAwZ+rxq4BwZdycQUCxAZDZzSlxZoHLLKNE1QvhQuUKiaSegOoUPL9NYyWLeRbteOtG8rUXNMtmqi6kiQHsyO2rDQdlHDH6KFVQVENkxFjHuOnmMGnCuhk+lKnknm7fTJN4JICXmHJU39FGiGEKGmTx9Nn4bzH26po00SlpRsX7cx//OnK0VpZMxu6pU7G+o+HVPHSc4Htidh5HsCg9UhIfEHTqiT96zeQPdl24Y0FWCMksQHJRRvSL6EA9Yh+thO4/VkBoANB7IBBgshnItg7emkdYMC5UVAkAnnF2JZ+JoDKI6YRgIe1U+1huO3E647JO3pLWmd86Cfj2+cORtPeZucR+MckORxJZLhGCKpIjDMoiK6mYV9jpGFW4YLJUglIlwYC0KOrAEMFLt6AphRkikkYMLbJYDJARILIisqS0GkWEihJBRYoFJLGUKIFggIJQLELICRARkBjAg09AdgQWKEiyKZzVH6ILsCD6gbdIpGg+CccFjQ2HHEqILEDsBsgz5PpmH8WKmS5NjPI9d85Z7fc/19tpib6ymCz4Zl9ca4rRg+7M+h18odcLlocc6cNwaQfw+5gZ2Y8L6d5A8+t1gn327VhiPqPx8SjLNP8TYMNp+auht3khj5u+XKAv90mGYMWBfBUNuWcnxrtNoONDUNavQkeoQapq7Bqjgb2soQoipKoPYpR2RO3BUw0GA8voYeOWB1+PMc5HZ08PX8RR2nwVK2w/K0uqbUFcRJRLlZpfynwjdcNJab7tU7takrnmHnpE8Dtuxo0jXAtXl0ypycynO7BifdTyN0fITbJ305hZJNiyJ4pJ7l3oqGglfgQ7e+erJZMW+tCzBSxEU7q8Uq0zoKtIWIw9KKp4usTZhyLlkkfn7Ygt3NmAHzSp1qNw0bvGqD8cYrCN22Yo1uquJismd2BudNhvIdnMODzGlripU6pwUAa/Vgfa19UmtZkYiGqgJB6CyzMvJEM4aYWRSt4WCi97BnLZHmhpRbqdBiOVMAcECx8XdsGtJSbhNxIaSBt0Ku5KUCXsGKjiYsfwcISFToclUvGPLVZ8g0m1CJhjMf/MPc2SSlqnDBDOO43qaMmLbpWkqTKtizVd026Yos6DrpRNc5h8vHWaDSKnki49POoopcaeRRmolLELLKKU+hYMDjCQiXglevifQfPEd+YaHeCDD6jFkgh5LWndYFv62GqGHo+/nMg05ZO0nbPlAdOlQo04FJ0O/xGE7u8pLok6JhpU0UpYI3G/XNFJkLD1zEpQ5EKKjGMFUhxbFhEwBESUDeygS2GBN6JU3JkBclBGGh7Y8hBZOPmouXU65468eKXY5fUeRUyMg1liQgKRD5+mhb6bsULGxltkH+pqiO9ShuFRqCwYyMZNIXClYIlt0ZCUxNHwjrE1LiO6YumOmx4Tg7xd4eBRyFMjMTCjiIXdBvHWTGYMzArNXHCtLLU0tDQMny25YkeDy3vvg+bCuQ7NtCl+wN8CQQM8Q0QC9osCM0V0eyiHTdwl5UpdSwnW+vyippU2jFcjFoFyLBITqWCb5JIQkjFY9dcMiFeWX+LamHMcsTL5cxEdTohA6YMmm5UOYL5CgxBCy4HVCQSZ1A6Cu5D7eEwyOqbNCVXVe0NTQeOQIO1+8NeY1OGZqRTqgWOPko6DhWNNGEKR76vLEOxzGlAtu4EJteyvA1yOVO6uFBnggYkVRAWLEVBERUR4FY5gYH3CYZCkWVKWhUCCEiCRAFIQRPZYUYeyECyZAYMmetcZTPUF2nghZMpZN0c4yFZwOkhRYxWayUwWqIiGWpaFhMLXBkIiEzMHAAFlRIbiSk4GRAOWd3iZPRGiLUvfY+dngmkdk+rnk2fITtBhwc8UqDL0LMWHESWvKcTVirqxPCd4MmTUQ0fh2gELOjs/HSwfTzRZxskp8E+4B1yx9asnPgbe28olwtRvhiHxj77GcL3kaC62sDS5KmBmJ1BuDmRCMAvcHbR4R4DqEbDj14yjlmFXzWgWxTbRQRdScWAnzPckY3fohjqTJwswiAdDOyD2dx6NPDltPM0aj0JR4Eqw83R4jnVZveBx7T41QtK4f5qzWKfM0/0iglM3sg1J5LecFrX4AWcsDJmQu7ijfrllYWwZwiT86dBhrSaLbdDlPky+ERWocpzwMORWC5HAdD0g0ZliaqPpLs0DIzoHJqjwliY0Uc9E753z253NUI6O92OzSMBiquSo66xnR0xFRbFRyIM6bRkEG7QdIDYdYY6PVVLyy+KOZKNsDEjLhZumU9blc4i1BLdFYdpew6Q0G3sh1iuremIcUpiLNqF5b8tMTTxYsLrN0WkqoQiqAyIhWEjOs6inSXinfZlu9JwUmNAwKcZzqyHJyWBKMENqcmE5ZXjgoHENVKNTpYc1zl3mtGzcZCvRKM6DthhRT9TifOK87uMiHzMcTU0UQnpSKk86cfnD4t8Nq5JIt6EKpgJLmSYw7HGQdmbA9nsuiTaNm8K5GXGCCnRt+pbl4qRxmRrlOTrO44ybGCRGKIw5MN0hrUlwLygoxCaEjKUMzBE7SmjBqB2LQ6lIA0CoagxJta0oXG6vAzRlXe7cwRrqYrRtYrWs5nKxjYzNiWEmYhkcFA4UBNBkqjCMmbDJRhYTqTpxjs0mo82YiMoSz0PKNIdGMEjkGMVKqiaQlrz9u9udYpkFJmCBmikYwkSOa21jGDdkoRdN0whSBFYIVdEGWd6Bi5BB2cvWYPYGwxRnbdmGNNzOzq78IJjvREhGSaYrwsqeCicRscADUgfe7Kc+4pLkBZFcgzliw4cr2TcHQ70blxXIggWwmkhQlPMpiZRymGcOaslgiMEiJoMLBgMWCyKzMxFDQUKQ0y2y6ghEyFKHoDvaHnPDk6cwrqpUVaUompTEYIuZbgFp4HU4QJgw+kPM2cpt/zqCRBjMBFoHNiY6OkfY6ZTRxYZRg1EnzCjx3Hy7bFiE0gnUCMREsItKfU+tmavEtGMz22iGiR1E9qsmJfmHNWEwIbMCYXdN4C4TMRQeQ1WmkjjqbuBwENIxH6Iq0qVBBoh2xSkMyIBKxqlLAZj76uNsOV0XGwKWETW3DG5gocJYyJB1vkuTia+ujF6ghj3Ho7AoMFAoHHlZkgQgJ2BWCqHFhp0x7c3IknYUzWkmJ7wLjQuAWo1coW0wgKZKiiY6twlJNHGBRBmgsMNQljos1ZZG6i67xOMfo7dSFRlqmcmSUJxIX80t1CJ0CkEIM1qbAgO0ATpCIb71OfwTAyDGPVNcITzskN4CdiqqvSIcgcAZ+UtaRGFdv3HbZhs6X8KevJbYHGVVFWHUhShGHQJYHAgVD45KD3d6MUUWBg6hoNOF7189corhtMzScJCaggXANqLA6sjPDNyO0TMLz3LGhikgQCIxA8CzClPuIF4ImsCIpvxoOAtBy4bX2fb1+LppYil7ZPce76jc1sE2U9dzWoVWHINLBV5Y2DdZxkyQxLuZaFAqCmZAS5gaMLVYuQ6R38uzTQntN878RgpKgSipqEpV9AdmsDpDEW5uBoEDVFcgILhmBvkxBgVWSZhHH8gkIRQcp3PIUHTZgOtPKCbhOVL0CHLi5TsIrlMNoREzjDrhRNgklgkEYxEQm40QNWsc40N/wbEIoSIDf25iAwJZDAD0j7LgalNIrmJxDIHqihGB7yAsIMdiP6stCJ3AXHOEU/ia5iQisoqoFFUMKoImpgEQcDivevm9dg7O2mJ5JQSDh6a9XlIgPi8xNFgkh3JPH8c9GEDRLMcOwZnctgFyB0A4FD5FhbFF5QVaHrx7wslCuiIEmDk0mOG+98YD4jtwcHcghhNeWAwxA1o26aukI9JkdgYkSGrTXCA7Rg9QcJ8/9d+hvu8ZIbRi/0WXKszAKKQWEBQSGVQjMIHPEMAgDCGI2pHxOo39XP+ISAjoSYfroKfV102HafR8oWT4En1AhO49IbtQ8woIkT4Q0InKmq9jVymUAqRoKBoIc+guK4v2biu6Gib2HfYKR5SNUwjsSHv+evdcMEs65DXttYKEhYoN19OwrMa8lzEZFmXxCwY5Y0fYXTFhkNJkNhRodJ8AckPRPAyMg7zIwF6SbGPqMYQixhQQ3JkJJY902onneh/d8a+/6vFzwq9/7meeeWM2g7kokXkm1XcUlo7awyoMOBFqmMX9xDC1EfZ8KMpzHeGk49felqAj3MhfJsXQ/JYxWAMkEBZYIQqSFGeLIxRIsICgT3xQQMzwPHBGswxUMz20Dog+a/IfQS34zv353vdZdH4pitD51Ba/ITXqQtRt8n6jtENk6OhoZZ0KUNb9tukECHTKbwGrHkEsSXHrwcYZl3tU9DFM5NzKVgFEKMbtm8i6AoMyRdxA8VkTudswQTbpFN+LmhoDJQNBkacREsHOBiRXR3+yju7D47nuReqBsYLfRWbJQn+r8GaMH1fOFlD6X/MKiLEBNeYXgOMEpHcI+nzPmTHJH9u47+k/dafafy+be8uuPL0/4lKtnBij+Baf2V9l+TFjhqNVM//6T/z3/H9b/SLuSKcKEgjXUMDA=='))) \ No newline at end of file diff --git a/examples/tmp/02105week2/writeup/writeup.html b/examples/tmp/02105week2/writeup/writeup.html new file mode 100644 index 0000000000000000000000000000000000000000..08a6eeee8e4a05dcd058e6e03156862d1d5e01b4 --- /dev/null +++ b/examples/tmp/02105week2/writeup/writeup.html @@ -0,0 +1,5 @@ + + <html><body> + To hand in this assignment, upload the file <b>stones.py</b> + </body></html> + \ No newline at end of file diff --git a/examples/tmp/c02105week2/Makefile b/examples/tmp/c02105week2/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..d6fd3f7dbfc705dbfd095fff519dd9dda7043a1c --- /dev/null +++ b/examples/tmp/c02105week2/Makefile @@ -0,0 +1,53 @@ +# +# Makefile to manage the example Hello Lab +# + +# Get the name of the lab directory +# LAB = $(notdir $(PWD)) # Fail on windows for some reason... + +all: handout handout-tarfile + +handout: + # Rebuild the handout directory that students download + (rm -rf c02105week2-handout; mkdir c02105week2-handout) + cp -p src/Makefile-handout c02105week2-handout/Makefile + cp -p src/README-handout c02105week2-handout/README + cp -p src/driver_python.py c02105week2-handout + + cp -p src/stones.py c02105week2-handout + + cp -p src/docker_helpers.py c02105week2-handout + + cp -p src/stones_tests_grade.py c02105week2-handout + + cp -p src/StoneReport_handin.token c02105week2-handout + + +handout-tarfile: handout + # Build *-handout.tar and autograde.tar + # tar cvf c02105week2-handout.tar c02105week2-handout + # cp -p c02105week2-handout.tar autograde.tar + tar cvf autograde.tar c02105week2-handout + # cp -p c02105week2-handout.tar autograde.tar + +clean: + # Clean the entire lab directory tree. Note that you can run + # "make clean; make" at any time while the lab is live with no + # adverse effects. + rm -f *~ *.tar + (cd src; make clean) + (cd test-autograder; make clean) + rm -rf c02105week2-handout + rm -f autograde.tar +# +# CAREFULL!!! This will delete all student records in the logfile and +# in the handin directory. Don't run this once the lab has started. +# Use it to clean the directory when you are starting a new version +# of the lab from scratch, or when you are debugging the lab prior +# to releasing it to the students. +# +cleanallfiles: + # Reset the lab from scratch. + make clean + rm -f log.txt + rm -rf handin/* diff --git a/examples/tmp/c02105week2/autograde-Makefile b/examples/tmp/c02105week2/autograde-Makefile new file mode 100644 index 0000000000000000000000000000000000000000..8225e82a17329397b97b543e785f96afd210562d --- /dev/null +++ b/examples/tmp/c02105week2/autograde-Makefile @@ -0,0 +1,7 @@ +all: + tar xf autograde.tar + cp stones.py c02105week2-autograde + (cd c02105week2-autograde; python3 driver_python.py) + +clean: + rm -rf *~ c02105week2-autograde \ No newline at end of file diff --git a/examples/tmp/c02105week2/autograde.tar b/examples/tmp/c02105week2/autograde.tar new file mode 100644 index 0000000000000000000000000000000000000000..ced3d8e9aba10f3114d7572d5229cce2ce7f6fcd Binary files /dev/null and b/examples/tmp/c02105week2/autograde.tar differ diff --git a/examples/tmp/c02105week2/c02105week2-autograde/StoneReport_handin.token b/examples/tmp/c02105week2/c02105week2-autograde/StoneReport_handin.token new file mode 100644 index 0000000000000000000000000000000000000000..28772b965549f1c057b4c97903d798c7fe544775 --- /dev/null +++ b/examples/tmp/c02105week2/c02105week2-autograde/StoneReport_handin.token @@ -0,0 +1,179 @@ +# This file contains your results. Do not edit its content. Simply upload it as it is. +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +9852caeff7982dd3966eafc68abd871290dda63b0dd8198cd87e9dc122c6bbe9b6784a54580d42861a21abc5724bd4017c18c36e38c9840cb3cfb6e46a5084c3 31400 +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +.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. \ No newline at end of file diff --git a/examples/tmp/c02105week2/c02105week2-autograde/autograde-Makefile b/examples/tmp/c02105week2/c02105week2-autograde/autograde-Makefile new file mode 100644 index 0000000000000000000000000000000000000000..c5737b290bd8d79d61eefbb597c5f7edab2872fd --- /dev/null +++ b/examples/tmp/c02105week2/c02105week2-autograde/autograde-Makefile @@ -0,0 +1,7 @@ +all: + tar xf autograde.tar + cp stones.py c02105week2-handout + (cd c02105week2-handout; python3 driver_python.py) + +clean: + rm -rf *~ c02105week2-handout \ No newline at end of file diff --git a/examples/tmp/c02105week2/c02105week2-autograde/driver_python.py b/examples/tmp/c02105week2/c02105week2-autograde/driver_python.py new file mode 100644 index 0000000000000000000000000000000000000000..4375e8e376e0cf02b727b6bf9138ebcde6dd42fb --- /dev/null +++ b/examples/tmp/c02105week2/c02105week2-autograde/driver_python.py @@ -0,0 +1,92 @@ +import os +import glob +import shutil +import sys +import subprocess +from unitgrade_private.autolab.autolab import format_autolab_json +from unitgrade_private.docker_helpers import student_token_file_runner +from unitgrade_private import load_token +import time +import unitgrade_private + +verbose = False +tag = "[driver_python.py]" + +if not verbose: + print("="*10) + print(tag, "Starting unitgrade evaluation...") +import unitgrade +print(tag, "Unitgrade version", unitgrade.version.__version__) +print(tag, "Unitgrade-devel version", unitgrade_private.version.__version__) + + +sys.stderr = sys.stdout +wdir = os.getcwd() + +def pfiles(): + print("> Files in dir:") + for f in glob.glob(wdir + "/*"): + print(f) + print("---") + +handin_filename = "stones.py" +student_token_file = 'StoneReport_handin.token' +instructor_grade_script = 'stones_tests_grade.py' +grade_file_relative_destination = "stones_tests_grade.py" +host_tmp_dir = wdir + "/tmp" +homework_file = "stones.py" +# homework_file = "stones.py" +student_should_upload_token = False # Add these from template. + +if not verbose: + pfiles() + print(f"{host_tmp_dir=}") + print(f"{student_token_file=}") + print(f"{instructor_grade_script=}") + +print("Current directory", os.getcwd()) +print("student_token_file", student_token_file) +for f in glob.glob(os.getcwd() + "/*"): + print(f) +try: + # This is how we get the student file structure. + command, host_tmp_dir, token = student_token_file_runner(host_tmp_dir, student_token_file, instructor_grade_script, + grade_file_relative_destination) + # run the stuff. + if not student_should_upload_token: + """ Add the student homework to the right location. """ + print("Moving uploaded file from", os.path.basename(handin_filename), "to", handin_filename) + # print("file exists?", os.path.isfile(os.path.basename(handin_filename))) + shutil.move(os.path.basename(handin_filename), host_tmp_dir + "/" + handin_filename) + + command = f"cd tmp && {command} --noprogress --autolab" + def rcom(cm): + rs = subprocess.run(cm, capture_output=True, text=True, shell=True) + print(rs.stdout) + if len(rs.stderr) > 0: + print(tag, "There were errors in executing the file:") + print(rs.stderr) + + start = time.time() + rcom(command) + ls = glob.glob(token) + f = ls[0] + results, _ = load_token(ls[0]) + +except Exception as e: + if not student_should_upload_token: + print(tag, "A major error occured while starting unitgrade.") + print(tag, "This can mean the grader itself is badly configured, or (more likely) that you submitted a completely wrong file.") + print(tag, "The following is the content of the file you uploaded; is it what you expect?") + with open(host_tmp_dir + "/" + handin_filename, 'r') as f: + print( f.read() ) + print(" ") + print(tag, "If you cannot resolve the problem, please contact the teacher and include details such as this log, as well as the file you submitted.") + + raise e + +if verbose: + print(tag, f"{token=}") + print(tag, results['total']) + +format_autolab_json(results) \ No newline at end of file diff --git a/examples/tmp/c02105week2/c02105week2-autograde/stones.py b/examples/tmp/c02105week2/c02105week2-autograde/stones.py new file mode 100644 index 0000000000000000000000000000000000000000..96c9cf5eaeba7da59ecc9db55ada75b06cd093b0 --- /dev/null +++ b/examples/tmp/c02105week2/c02105week2-autograde/stones.py @@ -0,0 +1,15 @@ +def maximum_stones(W, stone_weights): + stone_weights.sort() + T = 0 + s = 0 + for k, we in enumerate(stone_weights): + T += we + if T <= W: + s = s + 1 + else: + break + return s + +if __name__ == "__main__": + print("The following call using maximum weight of W=15 should return 5.") + print(maximum_stones(15, [2, 5, 3, 1, 8, 4, 5, 7])) diff --git a/examples/tmp/c02105week2/c02105week2-autograde/stones_tests.py b/examples/tmp/c02105week2/c02105week2-autograde/stones_tests.py new file mode 100644 index 0000000000000000000000000000000000000000..9f61cfd3822b0d2f526c318e6b380e8d0c5d6ef1 --- /dev/null +++ b/examples/tmp/c02105week2/c02105week2-autograde/stones_tests.py @@ -0,0 +1,44 @@ +from unitgrade.framework import Report, UTestCase +from unitgrade.evaluate import evaluate_report_student +import stones +from stones import maximum_stones + +# A fancy helper function to generate nicer-looking titles. +def trlist(x): + s = str(list(x)) + if len(s) > 30: + s = s[:30] + "...]" + return s + + +class Stones(UTestCase): + """ Test of the Stones function """ + def stest(self, W, stone_weights): # Helper function. + N = maximum_stones(W, stone_weights) + self.title = f"stones({W}, {trlist(stone_weights)}) = {N} ?" + self.assertEqualC(N) + + def test_basecase(self): + """ Test the stones-example given in the homework """ + N = maximum_stones(15, [2, 5, 3, 1, 8, 4, 5, 7]) + self.assertEqual(N, 5) # Test that we can collect 5 stones. + + def test_stones1(self): + self.stest(4, [4]) # One stone weighing 4 kg. + + def test_stones2(self): + self.stest(4, [1, 4]) # should also give 1 + + def test_stones3(self): + self.stest(4, [4, 1]) # should also give 1 + + def test_stones4(self): + self.stest(13, [2, 5, 3, 1, 8, 4, 5, 7]) + +class StoneReport(Report): + title = "02105 week 2: Stone collection" + questions = [(Stones, 10),] + pack_imports = [stones] + +if __name__ == "__main__": + evaluate_report_student(StoneReport()) diff --git a/examples/tmp/c02105week2/c02105week2-autograde/stones_tests_grade.py b/examples/tmp/c02105week2/c02105week2-autograde/stones_tests_grade.py new file mode 100644 index 0000000000000000000000000000000000000000..4ea35230b3640fc8049c34f102fc80f7fb3636b1 --- /dev/null +++ b/examples/tmp/c02105week2/c02105week2-autograde/stones_tests_grade.py @@ -0,0 +1,4 @@ +# stones_tests.py +''' WARNING: Modifying, decompiling or otherwise tampering with this script, it's data or the resulting .token file will be investigated as a cheating attempt. ''' +import bz2, base64 +exec(bz2.decompress(base64.b64decode('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'))) \ No newline at end of file diff --git a/examples/tmp/c02105week2/c02105week2-autograde/unitgrade_data/Stones.pkl b/examples/tmp/c02105week2/c02105week2-autograde/unitgrade_data/Stones.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1bf38a4fd917fe69b27254e950aac0678e0a28ed Binary files /dev/null and b/examples/tmp/c02105week2/c02105week2-autograde/unitgrade_data/Stones.pkl differ diff --git a/examples/tmp/c02105week2/c02105week2-handout.zip b/examples/tmp/c02105week2/c02105week2-handout.zip new file mode 100644 index 0000000000000000000000000000000000000000..78f0781cfd261377ba61c688e6fab6823801cf2c Binary files /dev/null and b/examples/tmp/c02105week2/c02105week2-handout.zip differ diff --git a/examples/tmp/c02105week2/c02105week2-handout/stones.py b/examples/tmp/c02105week2/c02105week2-handout/stones.py new file mode 100644 index 0000000000000000000000000000000000000000..96c9cf5eaeba7da59ecc9db55ada75b06cd093b0 --- /dev/null +++ b/examples/tmp/c02105week2/c02105week2-handout/stones.py @@ -0,0 +1,15 @@ +def maximum_stones(W, stone_weights): + stone_weights.sort() + T = 0 + s = 0 + for k, we in enumerate(stone_weights): + T += we + if T <= W: + s = s + 1 + else: + break + return s + +if __name__ == "__main__": + print("The following call using maximum weight of W=15 should return 5.") + print(maximum_stones(15, [2, 5, 3, 1, 8, 4, 5, 7])) diff --git a/examples/tmp/c02105week2/c02105week2-handout/stones_tests.py b/examples/tmp/c02105week2/c02105week2-handout/stones_tests.py new file mode 100644 index 0000000000000000000000000000000000000000..9f61cfd3822b0d2f526c318e6b380e8d0c5d6ef1 --- /dev/null +++ b/examples/tmp/c02105week2/c02105week2-handout/stones_tests.py @@ -0,0 +1,44 @@ +from unitgrade.framework import Report, UTestCase +from unitgrade.evaluate import evaluate_report_student +import stones +from stones import maximum_stones + +# A fancy helper function to generate nicer-looking titles. +def trlist(x): + s = str(list(x)) + if len(s) > 30: + s = s[:30] + "...]" + return s + + +class Stones(UTestCase): + """ Test of the Stones function """ + def stest(self, W, stone_weights): # Helper function. + N = maximum_stones(W, stone_weights) + self.title = f"stones({W}, {trlist(stone_weights)}) = {N} ?" + self.assertEqualC(N) + + def test_basecase(self): + """ Test the stones-example given in the homework """ + N = maximum_stones(15, [2, 5, 3, 1, 8, 4, 5, 7]) + self.assertEqual(N, 5) # Test that we can collect 5 stones. + + def test_stones1(self): + self.stest(4, [4]) # One stone weighing 4 kg. + + def test_stones2(self): + self.stest(4, [1, 4]) # should also give 1 + + def test_stones3(self): + self.stest(4, [4, 1]) # should also give 1 + + def test_stones4(self): + self.stest(13, [2, 5, 3, 1, 8, 4, 5, 7]) + +class StoneReport(Report): + title = "02105 week 2: Stone collection" + questions = [(Stones, 10),] + pack_imports = [stones] + +if __name__ == "__main__": + evaluate_report_student(StoneReport()) diff --git a/examples/tmp/c02105week2/c02105week2-handout/unitgrade_data/Stones.pkl b/examples/tmp/c02105week2/c02105week2-handout/unitgrade_data/Stones.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1bf38a4fd917fe69b27254e950aac0678e0a28ed Binary files /dev/null and b/examples/tmp/c02105week2/c02105week2-handout/unitgrade_data/Stones.pkl differ diff --git a/examples/tmp/c02105week2/c02105week2.rb b/examples/tmp/c02105week2/c02105week2.rb new file mode 100644 index 0000000000000000000000000000000000000000..8a4aac3f5cfc2b0c8ba22a6438bcc436410cec1b --- /dev/null +++ b/examples/tmp/c02105week2/c02105week2.rb @@ -0,0 +1,11 @@ +require "AssessmentBase.rb" + +module C02105week2 + include AssessmentBase + + def assessmentInitialize(course) + super("c02105week2",course) + @problems = [] + end + +end \ No newline at end of file diff --git a/examples/tmp/c02105week2/c02105week2.yml b/examples/tmp/c02105week2/c02105week2.yml new file mode 100644 index 0000000000000000000000000000000000000000..3b0fef8549da4fcee84af2839c2a1b3ab74c8651 --- /dev/null +++ b/examples/tmp/c02105week2/c02105week2.yml @@ -0,0 +1,38 @@ +--- + +general: + name: c02105week2 + description: ' Hand in the file stones.py. You can find the full example, including solution, at https://gitlab.compute.dtu.dk/tuhe/unitgrade_private/-/tree/master/examples/02105/instructor/week2 ' + display_name: '02105 week 2: Stone collection' + handin_filename: stones.py + handin_directory: handin + max_grace_days: 0 + handout: c02105week2-handout.zip + writeup: writeup/writeup.html + max_submissions: -1 + disable_handins: false + max_size: 2 + has_svn: false + category_name: Lab +problems: + + - name: Unitgrade score + description: 'Score obtained by automatic grading' + max_score: 10 + optional: false + + - name: Written feedback + description: 'Written (TA) feedback' + max_score: 0 + optional: true + +autograder: + autograde_timeout: 180 + autograde_image: tango_python_tue2 + release_score: true + +# problems: +# - name: Correctness +# description: '' +# max_score: 100.0 +# optional: false \ No newline at end of file diff --git a/examples/tmp/c02105week2/src/Makefile b/examples/tmp/c02105week2/src/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..6d094e3a3869dfe9ee9e51a06150c6999c402286 --- /dev/null +++ b/examples/tmp/c02105week2/src/Makefile @@ -0,0 +1,7 @@ +# Makefile for the Hello Lab +all: + echo "Makefile called... it is empty so far. " + #gcc hello3.c -o hello3 + +clean: + rm -rf *~ hello3 diff --git a/examples/tmp/c02105week2/src/Makefile-handout b/examples/tmp/c02105week2/src/Makefile-handout new file mode 100644 index 0000000000000000000000000000000000000000..6d094e3a3869dfe9ee9e51a06150c6999c402286 --- /dev/null +++ b/examples/tmp/c02105week2/src/Makefile-handout @@ -0,0 +1,7 @@ +# Makefile for the Hello Lab +all: + echo "Makefile called... it is empty so far. " + #gcc hello3.c -o hello3 + +clean: + rm -rf *~ hello3 diff --git a/examples/tmp/c02105week2/src/README b/examples/tmp/c02105week2/src/README new file mode 100644 index 0000000000000000000000000000000000000000..8eea4bef3abb4665581173c4843b6155b3dc59d2 --- /dev/null +++ b/examples/tmp/c02105week2/src/README @@ -0,0 +1,15 @@ +This directory contains all of the code files for the Hello Lab, +including the files that are handed out to students. + +Files: + +# Autograder and solution files +Makefile Makefile and ... +README ... README for this directory +driver.sh* Autograder +hello.c Solution hello.c file + +# Files that are handed out to students +Makefile-handout Makefile and ... +README-handout ... README handed out to students +hello.c-handout Blank hello.c file handed out to students diff --git a/examples/tmp/c02105week2/src/README-handout b/examples/tmp/c02105week2/src/README-handout new file mode 100644 index 0000000000000000000000000000000000000000..8eea4bef3abb4665581173c4843b6155b3dc59d2 --- /dev/null +++ b/examples/tmp/c02105week2/src/README-handout @@ -0,0 +1,15 @@ +This directory contains all of the code files for the Hello Lab, +including the files that are handed out to students. + +Files: + +# Autograder and solution files +Makefile Makefile and ... +README ... README for this directory +driver.sh* Autograder +hello.c Solution hello.c file + +# Files that are handed out to students +Makefile-handout Makefile and ... +README-handout ... README handed out to students +hello.c-handout Blank hello.c file handed out to students diff --git a/examples/tmp/c02105week2/src/StoneReport_handin.token b/examples/tmp/c02105week2/src/StoneReport_handin.token new file mode 100644 index 0000000000000000000000000000000000000000..28772b965549f1c057b4c97903d798c7fe544775 --- /dev/null +++ b/examples/tmp/c02105week2/src/StoneReport_handin.token @@ -0,0 +1,179 @@ +# This file contains your results. Do not edit its content. Simply upload it as it is. +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +9852caeff7982dd3966eafc68abd871290dda63b0dd8198cd87e9dc122c6bbe9b6784a54580d42861a21abc5724bd4017c18c36e38c9840cb3cfb6e46a5084c3 31400 +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +.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. \ No newline at end of file diff --git a/examples/tmp/c02105week2/src/docker_helpers.py b/examples/tmp/c02105week2/src/docker_helpers.py new file mode 100644 index 0000000000000000000000000000000000000000..0b82a931c0268a356ee54f777fbc7ed0ef095e3f --- /dev/null +++ b/examples/tmp/c02105week2/src/docker_helpers.py @@ -0,0 +1,198 @@ +import os +import glob +import shutil +import time +import zipfile +import io +import subprocess +import urllib.request + +def download_docker_images(destination=None): + if destination is None: + destination = os.getcwd() + if not os.path.exists(destination): + os.makedirs(destination) + + print('Beginning file download with urllib2...') + url = 'https://gitlab.compute.dtu.dk/tuhe/unitgrade_private/-/archive/master/unitgrade_private-master.zip?path=docker_images' + result, headers = urllib.request.urlretrieve(url) + + ex = result +"_extract" + zf = zipfile.ZipFile(result) + zf.extractall(path=ex) + dockers = [f for f in zf.namelist() if f[-1] == "/" and len( [s for s in f if s == "/"] ) == 3] + for f in dockers: # zf.namelist(): + tmp_dir = ex + "/" + f + if os.path.isdir(tmp_dir): + dest = destination +"/"+os.path.basename(tmp_dir[:-1]) + + if os.path.isdir(dest): + print("> Destination for docker image", dest, "exists. Skipping download.") + else: + print("> Extracting docker image", os.path.basename(f[:-1]), "to", dest) + shutil.copytree(tmp_dir, dest) + + +def compile_docker_image(Dockerfile, tag=None, no_cache=False): + assert os.path.isfile(Dockerfile) + base = os.path.dirname(Dockerfile) + if tag == None: + tag = os.path.basename(base) + cmd = f"cd {base} && docker build {'--no-cache' if no_cache else ''} --tag {tag} ." + os.system(cmd) + return tag + + +def student_token_file_runner(host_tmp_dir, student_token_file, instructor_grade_script, grade_file_relative_destination): + """ + This code is used to run student unitgrade tests (i.e., a .token file). + Use by autolab code. + + It accepts a student .token file which is extracted, the 'correct' instructor grade script is copied + into it, and it is then run. + + :param Dockerfile_location: + :param host_tmp_dir: + :param student_token_file: + :param ReportClass: + :param instructor_grade_script: + :return: + """ + assert os.path.exists(student_token_file) + assert os.path.exists(instructor_grade_script) + from unitgrade_private import load_token + start = time.time() + results, _ = load_token(student_token_file) + sources = results['sources'][0] + with io.BytesIO(sources['zipfile']) as zb: + with zipfile.ZipFile(zb) as zip: + zip.extractall(host_tmp_dir) + + # Done extracting the zip file! Now time to move the (good) report test class into the location. + gscript = instructor_grade_script + print(f"{sources['report_relative_location']=}") + print(f"{sources['name']=}") + print("Now in docker_helpers.py") + print(f'{gscript=}') + print(f'{instructor_grade_script=}') + gscript_destination = host_tmp_dir + "/" + grade_file_relative_destination + print(f'{gscript_destination=}') + shutil.copy(gscript, gscript_destination) + # Now everything appears very close to being set up and ready to roll!. + d = os.path.normpath(grade_file_relative_destination).split(os.sep) + d = d[:-1] + [os.path.basename(instructor_grade_script)[:-3]] + pycom = ".".join(d) + """ + docker run -v c:/Users/tuhe/Documents/2021/python-docker/tmp:/app python-docker python3 -m cs202courseware.ug2report1_grade + """ + pycom = "python3 -m " + pycom + print(f"{pycom=}") + token_location = host_tmp_dir + "/" + os.path.dirname( grade_file_relative_destination ) + "/*.token" + elapsed = time.time() - start + # print("Elapsed time is", elapsed) + return pycom, host_tmp_dir, token_location + + +def docker_run_token_file(Dockerfile_location, host_tmp_dir, student_token_file, tag=None, instructor_grade_script=None, + fix_user=None, + # grade_script_relative_destination_dir=None, # The relative location relative to the top-dir containing the package. Example: irlc/project1 + xvfb=True): + """ + xvfb: Control whether to use X-windows. Works on linux. This seems like a good idea when using e.g. gym. + + This thingy works: + + To build the image, run: + docker build --tag python-docker . + + To run the app run: + + docker run -v c:/Users/tuhe/Documents/2021/python-docker/tmp:/app python-docker > output.log + + """ + Dockerfile_location = Dockerfile_location.replace("\\", "/") + host_tmp_dir = host_tmp_dir.replace("\\", "/") + student_token_file = student_token_file.replace("\\", "/") + + # A bunch of tests. This is going to be great! + Dockerfile_location = os.path.abspath(Dockerfile_location) + assert os.path.exists(Dockerfile_location) + + start = time.time() + + if fix_user is None: + fix_user = os.name != 'nt' # On Linux, this should probably be true to avoid problem with edit-rights of docker-created files. + + # with open(student_token_file, 'rb') as f: + # results = pickle.load(f) + from unitgrade_private import load_token + results, _ = load_token(student_token_file) + + sources = results['sources'][0] + + if os.path.exists(host_tmp_dir): + shutil.rmtree(host_tmp_dir) + + with io.BytesIO(sources['zipfile']) as zb: + with zipfile.ZipFile(zb) as zip: + zip.extractall(host_tmp_dir) + # Done extracting the zip file! Now time to move the (good) report test class into the location. + gscript = instructor_grade_script + + # if grade_script_relative_destination_dir is None: + # student_grade_script = host_tmp_dir + "/" + sources['report_relative_location'] + # else: + # student_grade_script = host_tmp_dir + "/" + grade_script_relative_destination_dir + # Get relative location from first line of the grade script. + with open(instructor_grade_script, 'r') as f: + student_grade_script_dir = os.path.dirname( host_tmp_dir + "/" + f.read().splitlines()[0][1:].strip() ) + print("student_grade_script", student_grade_script_dir) + + + + student_grade_script_dir = student_grade_script_dir.replace("\\", "/") + instructor_grade_script = student_grade_script_dir + "/"+os.path.basename(gscript) + shutil.copy(gscript, instructor_grade_script) + + """ + docker run -v c:/Users/tuhe/Documents/2021/python-docker/tmp:/home python-docker python3 -m cs202courseware.ug2report1_grade + """ + if tag is None: + dockname = os.path.basename( os.path.dirname(Dockerfile_location) ) + else: + dockname = tag + + tmp_grade_file = sources['name'] + "/" + sources['report_relative_location'] + tmp_grade_file = tmp_grade_file.replace("\\", "/") + + # pycom = ".".join( sources['report_module_specification'][:-1] + [os.path.basename(gscript)[:-3],] ) + pycom = ".".join(os.path.relpath(instructor_grade_script, host_tmp_dir)[:-3].split("/")) + pycom = "python3 -m " + pycom + + if fix_user: + user_cmd = ' --user "$(id -u):$(id -g)" ' + else: + user_cmd = '' + + if xvfb: + user_cmd = " -e DISPLAY=:0 -v /tmp/.X11-unix:/tmp/.X11-unix " + user_cmd + + tmp_path = os.path.abspath(host_tmp_dir).replace("\\", "/") + dcom = f"docker run {user_cmd} -v {tmp_path}:/home {dockname} {pycom}" + cdcom = f"cd {os.path.dirname(Dockerfile_location)}" + fcom = f"{cdcom} && {dcom}" + print("> Running docker command") + print(fcom) + init = time.time() - start + # thtools.execute_command(fcom.split()) + out = subprocess.check_output(fcom, shell=True).decode("utf-8") + host_tmp_dir +"/" + os.path.dirname(tmp_grade_file) + "/" + tokens = glob.glob( os.path.dirname(instructor_grade_script) + "/*.token" ) + for t in tokens: + print("Source image produced token", t) + elapsed = time.time() - start + print("Elapsed time is", elapsed, f"({init=} seconds)") + if len(tokens) != 1: + print("Wrong number of tokens produced:", len(tokens)) + print(out) + return tokens[0] diff --git a/examples/tmp/c02105week2/src/driver.sh b/examples/tmp/c02105week2/src/driver.sh new file mode 100644 index 0000000000000000000000000000000000000000..05a006e95e416fa5d5088f1d61479f73901588c2 --- /dev/null +++ b/examples/tmp/c02105week2/src/driver.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# driver.sh - The simplest autograder we could think of. It checks +# that students can write a C program that compiles, and then +# executes with an exit status of zero. +# Usage: ./driver.sh + +# Compile the code +# echo "Compiling hello3.c" +# python3 -c "print('Hello world from python 2')" +# python3 --version +python3 driver_python.py + +#(make clean; make) +#status=$? +#if [ ${status} -ne 0 ]; then +# echo "Failure: Unable to compile hello3.c (return status = ${status})" +# echo "{\"scores\": {\"Correctness\": 0}}" +# exit +#fi +# +# Run the code +#echo "Running ./hello3" +#./hello3 +#status=$? +#if [ ${status} -eq 0 ]; then +# echo "Success: ./hello3 runs with an exit status of 0" +# echo "{\"scores\": {\"Correctness\": 100}}" +#else +# echo "Failure: ./hello fails or returns nonzero exit status of ${status}" +# echo "{\"scores\": {\"Correctness\": 0}}" +#fi + +exit diff --git a/examples/tmp/c02105week2/src/driver.sh-handout b/examples/tmp/c02105week2/src/driver.sh-handout new file mode 100644 index 0000000000000000000000000000000000000000..05a006e95e416fa5d5088f1d61479f73901588c2 --- /dev/null +++ b/examples/tmp/c02105week2/src/driver.sh-handout @@ -0,0 +1,33 @@ +#!/bin/bash +# driver.sh - The simplest autograder we could think of. It checks +# that students can write a C program that compiles, and then +# executes with an exit status of zero. +# Usage: ./driver.sh + +# Compile the code +# echo "Compiling hello3.c" +# python3 -c "print('Hello world from python 2')" +# python3 --version +python3 driver_python.py + +#(make clean; make) +#status=$? +#if [ ${status} -ne 0 ]; then +# echo "Failure: Unable to compile hello3.c (return status = ${status})" +# echo "{\"scores\": {\"Correctness\": 0}}" +# exit +#fi +# +# Run the code +#echo "Running ./hello3" +#./hello3 +#status=$? +#if [ ${status} -eq 0 ]; then +# echo "Success: ./hello3 runs with an exit status of 0" +# echo "{\"scores\": {\"Correctness\": 100}}" +#else +# echo "Failure: ./hello fails or returns nonzero exit status of ${status}" +# echo "{\"scores\": {\"Correctness\": 0}}" +#fi + +exit diff --git a/examples/tmp/c02105week2/src/driver_python.py b/examples/tmp/c02105week2/src/driver_python.py new file mode 100644 index 0000000000000000000000000000000000000000..4375e8e376e0cf02b727b6bf9138ebcde6dd42fb --- /dev/null +++ b/examples/tmp/c02105week2/src/driver_python.py @@ -0,0 +1,92 @@ +import os +import glob +import shutil +import sys +import subprocess +from unitgrade_private.autolab.autolab import format_autolab_json +from unitgrade_private.docker_helpers import student_token_file_runner +from unitgrade_private import load_token +import time +import unitgrade_private + +verbose = False +tag = "[driver_python.py]" + +if not verbose: + print("="*10) + print(tag, "Starting unitgrade evaluation...") +import unitgrade +print(tag, "Unitgrade version", unitgrade.version.__version__) +print(tag, "Unitgrade-devel version", unitgrade_private.version.__version__) + + +sys.stderr = sys.stdout +wdir = os.getcwd() + +def pfiles(): + print("> Files in dir:") + for f in glob.glob(wdir + "/*"): + print(f) + print("---") + +handin_filename = "stones.py" +student_token_file = 'StoneReport_handin.token' +instructor_grade_script = 'stones_tests_grade.py' +grade_file_relative_destination = "stones_tests_grade.py" +host_tmp_dir = wdir + "/tmp" +homework_file = "stones.py" +# homework_file = "stones.py" +student_should_upload_token = False # Add these from template. + +if not verbose: + pfiles() + print(f"{host_tmp_dir=}") + print(f"{student_token_file=}") + print(f"{instructor_grade_script=}") + +print("Current directory", os.getcwd()) +print("student_token_file", student_token_file) +for f in glob.glob(os.getcwd() + "/*"): + print(f) +try: + # This is how we get the student file structure. + command, host_tmp_dir, token = student_token_file_runner(host_tmp_dir, student_token_file, instructor_grade_script, + grade_file_relative_destination) + # run the stuff. + if not student_should_upload_token: + """ Add the student homework to the right location. """ + print("Moving uploaded file from", os.path.basename(handin_filename), "to", handin_filename) + # print("file exists?", os.path.isfile(os.path.basename(handin_filename))) + shutil.move(os.path.basename(handin_filename), host_tmp_dir + "/" + handin_filename) + + command = f"cd tmp && {command} --noprogress --autolab" + def rcom(cm): + rs = subprocess.run(cm, capture_output=True, text=True, shell=True) + print(rs.stdout) + if len(rs.stderr) > 0: + print(tag, "There were errors in executing the file:") + print(rs.stderr) + + start = time.time() + rcom(command) + ls = glob.glob(token) + f = ls[0] + results, _ = load_token(ls[0]) + +except Exception as e: + if not student_should_upload_token: + print(tag, "A major error occured while starting unitgrade.") + print(tag, "This can mean the grader itself is badly configured, or (more likely) that you submitted a completely wrong file.") + print(tag, "The following is the content of the file you uploaded; is it what you expect?") + with open(host_tmp_dir + "/" + handin_filename, 'r') as f: + print( f.read() ) + print(" ") + print(tag, "If you cannot resolve the problem, please contact the teacher and include details such as this log, as well as the file you submitted.") + + raise e + +if verbose: + print(tag, f"{token=}") + print(tag, results['total']) + +format_autolab_json(results) \ No newline at end of file diff --git a/examples/tmp/c02105week2/src/driver_python.py-handout b/examples/tmp/c02105week2/src/driver_python.py-handout new file mode 100644 index 0000000000000000000000000000000000000000..4375e8e376e0cf02b727b6bf9138ebcde6dd42fb --- /dev/null +++ b/examples/tmp/c02105week2/src/driver_python.py-handout @@ -0,0 +1,92 @@ +import os +import glob +import shutil +import sys +import subprocess +from unitgrade_private.autolab.autolab import format_autolab_json +from unitgrade_private.docker_helpers import student_token_file_runner +from unitgrade_private import load_token +import time +import unitgrade_private + +verbose = False +tag = "[driver_python.py]" + +if not verbose: + print("="*10) + print(tag, "Starting unitgrade evaluation...") +import unitgrade +print(tag, "Unitgrade version", unitgrade.version.__version__) +print(tag, "Unitgrade-devel version", unitgrade_private.version.__version__) + + +sys.stderr = sys.stdout +wdir = os.getcwd() + +def pfiles(): + print("> Files in dir:") + for f in glob.glob(wdir + "/*"): + print(f) + print("---") + +handin_filename = "stones.py" +student_token_file = 'StoneReport_handin.token' +instructor_grade_script = 'stones_tests_grade.py' +grade_file_relative_destination = "stones_tests_grade.py" +host_tmp_dir = wdir + "/tmp" +homework_file = "stones.py" +# homework_file = "stones.py" +student_should_upload_token = False # Add these from template. + +if not verbose: + pfiles() + print(f"{host_tmp_dir=}") + print(f"{student_token_file=}") + print(f"{instructor_grade_script=}") + +print("Current directory", os.getcwd()) +print("student_token_file", student_token_file) +for f in glob.glob(os.getcwd() + "/*"): + print(f) +try: + # This is how we get the student file structure. + command, host_tmp_dir, token = student_token_file_runner(host_tmp_dir, student_token_file, instructor_grade_script, + grade_file_relative_destination) + # run the stuff. + if not student_should_upload_token: + """ Add the student homework to the right location. """ + print("Moving uploaded file from", os.path.basename(handin_filename), "to", handin_filename) + # print("file exists?", os.path.isfile(os.path.basename(handin_filename))) + shutil.move(os.path.basename(handin_filename), host_tmp_dir + "/" + handin_filename) + + command = f"cd tmp && {command} --noprogress --autolab" + def rcom(cm): + rs = subprocess.run(cm, capture_output=True, text=True, shell=True) + print(rs.stdout) + if len(rs.stderr) > 0: + print(tag, "There were errors in executing the file:") + print(rs.stderr) + + start = time.time() + rcom(command) + ls = glob.glob(token) + f = ls[0] + results, _ = load_token(ls[0]) + +except Exception as e: + if not student_should_upload_token: + print(tag, "A major error occured while starting unitgrade.") + print(tag, "This can mean the grader itself is badly configured, or (more likely) that you submitted a completely wrong file.") + print(tag, "The following is the content of the file you uploaded; is it what you expect?") + with open(host_tmp_dir + "/" + handin_filename, 'r') as f: + print( f.read() ) + print(" ") + print(tag, "If you cannot resolve the problem, please contact the teacher and include details such as this log, as well as the file you submitted.") + + raise e + +if verbose: + print(tag, f"{token=}") + print(tag, results['total']) + +format_autolab_json(results) \ No newline at end of file diff --git a/examples/tmp/c02105week2/src/stones.py b/examples/tmp/c02105week2/src/stones.py new file mode 100644 index 0000000000000000000000000000000000000000..28772b965549f1c057b4c97903d798c7fe544775 --- /dev/null +++ b/examples/tmp/c02105week2/src/stones.py @@ -0,0 +1,179 @@ +# This file contains your results. Do not edit its content. Simply upload it as it is. +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +9852caeff7982dd3966eafc68abd871290dda63b0dd8198cd87e9dc122c6bbe9b6784a54580d42861a21abc5724bd4017c18c36e38c9840cb3cfb6e46a5084c3 31400 +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +.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. \ No newline at end of file diff --git a/examples/tmp/c02105week2/src/stones_tests_grade.py b/examples/tmp/c02105week2/src/stones_tests_grade.py new file mode 100644 index 0000000000000000000000000000000000000000..4ea35230b3640fc8049c34f102fc80f7fb3636b1 --- /dev/null +++ b/examples/tmp/c02105week2/src/stones_tests_grade.py @@ -0,0 +1,4 @@ +# stones_tests.py +''' WARNING: Modifying, decompiling or otherwise tampering with this script, it's data or the resulting .token file will be investigated as a cheating attempt. ''' +import bz2, base64 +exec(bz2.decompress(base64.b64decode('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'))) \ No newline at end of file diff --git a/examples/tmp/c02105week2/writeup/writeup.html b/examples/tmp/c02105week2/writeup/writeup.html new file mode 100644 index 0000000000000000000000000000000000000000..08a6eeee8e4a05dcd058e6e03156862d1d5e01b4 --- /dev/null +++ b/examples/tmp/c02105week2/writeup/writeup.html @@ -0,0 +1,5 @@ + + <html><body> + To hand in this assignment, upload the file <b>stones.py</b> + </body></html> + \ No newline at end of file diff --git a/examples/tmp/c02631week5/Makefile b/examples/tmp/c02631week5/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..315a17b0b162a8f382a97133a51277225c0f0f67 --- /dev/null +++ b/examples/tmp/c02631week5/Makefile @@ -0,0 +1,53 @@ +# +# Makefile to manage the example Hello Lab +# + +# Get the name of the lab directory +# LAB = $(notdir $(PWD)) # Fail on windows for some reason... + +all: handout handout-tarfile + +handout: + # Rebuild the handout directory that students download + (rm -rf c02631week5-handout; mkdir c02631week5-handout) + cp -p src/Makefile-handout c02631week5-handout/Makefile + cp -p src/README-handout c02631week5-handout/README + cp -p src/driver_python.py c02631week5-handout + + cp -p src/looping.py c02631week5-handout + + cp -p src/docker_helpers.py c02631week5-handout + + cp -p src/looping_tests_grade.py c02631week5-handout + + cp -p src/Report1Flat_handin.token c02631week5-handout + + +handout-tarfile: handout + # Build *-handout.tar and autograde.tar + # tar cvf c02631week5-handout.tar c02631week5-handout + # cp -p c02631week5-handout.tar autograde.tar + tar cvf autograde.tar c02631week5-handout + # cp -p c02631week5-handout.tar autograde.tar + +clean: + # Clean the entire lab directory tree. Note that you can run + # "make clean; make" at any time while the lab is live with no + # adverse effects. + rm -f *~ *.tar + (cd src; make clean) + (cd test-autograder; make clean) + rm -rf c02631week5-handout + rm -f autograde.tar +# +# CAREFULL!!! This will delete all student records in the logfile and +# in the handin directory. Don't run this once the lab has started. +# Use it to clean the directory when you are starting a new version +# of the lab from scratch, or when you are debugging the lab prior +# to releasing it to the students. +# +cleanallfiles: + # Reset the lab from scratch. + make clean + rm -f log.txt + rm -rf handin/* diff --git a/examples/tmp/c02631week5/autograde-Makefile b/examples/tmp/c02631week5/autograde-Makefile new file mode 100644 index 0000000000000000000000000000000000000000..dc896c7748f55a06288022bb6f3a89a43d31bff4 --- /dev/null +++ b/examples/tmp/c02631week5/autograde-Makefile @@ -0,0 +1,7 @@ +all: + tar xf autograde.tar + cp looping.py c02631week5-autograde + (cd c02631week5-autograde; python3 driver_python.py) + +clean: + rm -rf *~ c02631week5-autograde \ No newline at end of file diff --git a/examples/tmp/c02631week5/autograde.tar b/examples/tmp/c02631week5/autograde.tar new file mode 100644 index 0000000000000000000000000000000000000000..d12f04a6e83a78effe31f775d3ca8d420c7e512e Binary files /dev/null and b/examples/tmp/c02631week5/autograde.tar differ diff --git a/examples/tmp/c02631week5/c02631week5-autograde/Report1Flat_handin.token b/examples/tmp/c02631week5/c02631week5-autograde/Report1Flat_handin.token new file mode 100644 index 0000000000000000000000000000000000000000..2ea703ab9cb00105b3bf3d8f79befcc923868252 --- /dev/null +++ b/examples/tmp/c02631week5/c02631week5-autograde/Report1Flat_handin.token @@ -0,0 +1,202 @@ +# This file contains your results. Do not edit its content. Simply upload it as it is. +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +ba426da415e8071cc74bec270089fe6b6181c69b47ada4ab4f361248ffb4348064ab706575dd29f9b74a52694aba493fd9f3e745269c55683abfd2b20e870c9c 35488 +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +.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 +SzwGM5gI0pl9BscRn+wIAAAAABFla. \ No newline at end of file diff --git a/examples/tmp/c02631week5/c02631week5-autograde/autograde-Makefile b/examples/tmp/c02631week5/c02631week5-autograde/autograde-Makefile new file mode 100644 index 0000000000000000000000000000000000000000..4640cce8e90097573b60ac218e49c145caa63b73 --- /dev/null +++ b/examples/tmp/c02631week5/c02631week5-autograde/autograde-Makefile @@ -0,0 +1,7 @@ +all: + tar xf autograde.tar + cp looping.py c02631week5-handout + (cd c02631week5-handout; python3 driver_python.py) + +clean: + rm -rf *~ c02631week5-handout \ No newline at end of file diff --git a/examples/tmp/c02631week5/c02631week5-autograde/driver_python.py b/examples/tmp/c02631week5/c02631week5-autograde/driver_python.py new file mode 100644 index 0000000000000000000000000000000000000000..286f74612cf1a77248e066f52be1ec0b739ec485 --- /dev/null +++ b/examples/tmp/c02631week5/c02631week5-autograde/driver_python.py @@ -0,0 +1,92 @@ +import os +import glob +import shutil +import sys +import subprocess +from unitgrade_private.autolab.autolab import format_autolab_json +from unitgrade_private.docker_helpers import student_token_file_runner +from unitgrade_private import load_token +import time +import unitgrade_private + +verbose = False +tag = "[driver_python.py]" + +if not verbose: + print("="*10) + print(tag, "Starting unitgrade evaluation...") +import unitgrade +print(tag, "Unitgrade version", unitgrade.version.__version__) +print(tag, "Unitgrade-devel version", unitgrade_private.version.__version__) + + +sys.stderr = sys.stdout +wdir = os.getcwd() + +def pfiles(): + print("> Files in dir:") + for f in glob.glob(wdir + "/*"): + print(f) + print("---") + +handin_filename = "looping.py" +student_token_file = 'Report1Flat_handin.token' +instructor_grade_script = 'looping_tests_grade.py' +grade_file_relative_destination = "looping_tests_grade.py" +host_tmp_dir = wdir + "/tmp" +homework_file = "looping.py" +# homework_file = "looping.py" +student_should_upload_token = False # Add these from template. + +if not verbose: + pfiles() + print(f"{host_tmp_dir=}") + print(f"{student_token_file=}") + print(f"{instructor_grade_script=}") + +print("Current directory", os.getcwd()) +print("student_token_file", student_token_file) +for f in glob.glob(os.getcwd() + "/*"): + print(f) +try: + # This is how we get the student file structure. + command, host_tmp_dir, token = student_token_file_runner(host_tmp_dir, student_token_file, instructor_grade_script, + grade_file_relative_destination) + # run the stuff. + if not student_should_upload_token: + """ Add the student homework to the right location. """ + print("Moving uploaded file from", os.path.basename(handin_filename), "to", handin_filename) + # print("file exists?", os.path.isfile(os.path.basename(handin_filename))) + shutil.move(os.path.basename(handin_filename), host_tmp_dir + "/" + handin_filename) + + command = f"cd tmp && {command} --noprogress --autolab" + def rcom(cm): + rs = subprocess.run(cm, capture_output=True, text=True, shell=True) + print(rs.stdout) + if len(rs.stderr) > 0: + print(tag, "There were errors in executing the file:") + print(rs.stderr) + + start = time.time() + rcom(command) + ls = glob.glob(token) + f = ls[0] + results, _ = load_token(ls[0]) + +except Exception as e: + if not student_should_upload_token: + print(tag, "A major error occured while starting unitgrade.") + print(tag, "This can mean the grader itself is badly configured, or (more likely) that you submitted a completely wrong file.") + print(tag, "The following is the content of the file you uploaded; is it what you expect?") + with open(host_tmp_dir + "/" + handin_filename, 'r') as f: + print( f.read() ) + print(" ") + print(tag, "If you cannot resolve the problem, please contact the teacher and include details such as this log, as well as the file you submitted.") + + raise e + +if verbose: + print(tag, f"{token=}") + print(tag, results['total']) + +format_autolab_json(results) \ No newline at end of file diff --git a/examples/tmp/c02631week5/c02631week5-autograde/looping.py b/examples/tmp/c02631week5/c02631week5-autograde/looping.py new file mode 100644 index 0000000000000000000000000000000000000000..64db4f21b1aa35baa2ad7650bebee649c2581309 --- /dev/null +++ b/examples/tmp/c02631week5/c02631week5-autograde/looping.py @@ -0,0 +1,51 @@ +import numpy as np +import itertools + +def bacteriaGrowth(n0, alpha, K, N): + """ + Calculate time until bacteria growth exceed N starting from a population of n0 bacteria. + hints: + * You need to update the number of bacteria n0 within a loop + """ + # TODO: 7 lines missing. + raise NotImplementedError("Implement function body") + return t + +def clusterAnalysis(reflectance): + reflectance = np.asarray(reflectance) + I1 = np.arange(len(reflectance)) % 2 == 1 + while True: + m = np.asarray( [np.mean( reflectance[~I1] ), np.mean( reflectance[I1] ) ] ) + I1_ = np.argmin( np.abs( reflectance[:, np.newaxis] - m[np.newaxis, :] ), axis=1) == 1 + if all(I1_ == I1): + break + I1 = I1_ + return I1 + 1 + +def fermentationRate(measuredRate, lowerBound, upperBound): + """ + Compute and return the mean value of the rates in 'measuredRate' + which falls within lowerBound and upperBound. + """ + mean_value = np.mean( [r for r in measuredRate if lowerBound < r < upperBound] ) + return mean_value + +def removeIncomplete(id): + """ + Hints: + * Take a look at the example in the exercise. + """ + id = np.asarray(id) + id2 = [] + for i, v in enumerate(id): + if len( [x for x in id if int(x) == int(v) ] ) == 3: + id2.append(v) + return np.asarray(id2) + +if __name__ == "__main__": + # I = clusterAnalysis([1.7, 1.6, 1.3, 1.3, 2.8, 1.4, 2.8, 2.6, 1.6, 2.7]) + # print(I) + print(fermentationRate(np.array([20.1, 19.3, 1.1, 18.2, 19.7, 121.1, 20.3, 20.0]), 15, 25)) + # print(removeIncomplete(np.array([1.3, 2.2, 2.3, 4.2, 5.1, 3.2, 5.3, 3.3, 2.1, 1.1, 5.2, 3.1]))) + # Problem 1: Write a function which add two numbers + # clusterAnalysis([2, 1, 2, 4, 5]) diff --git a/examples/tmp/c02631week5/c02631week5-autograde/looping_tests.py b/examples/tmp/c02631week5/c02631week5-autograde/looping_tests.py new file mode 100644 index 0000000000000000000000000000000000000000..f8076c26210356404b46a61e660ba7ee4617a51b --- /dev/null +++ b/examples/tmp/c02631week5/c02631week5-autograde/looping_tests.py @@ -0,0 +1,138 @@ +from unitgrade.framework import Report, UTestCase +from unitgrade import cache +from unitgrade.evaluate import evaluate_report_student +import numpy as np +import looping +from looping import bacteriaGrowth, clusterAnalysis, removeIncomplete, fermentationRate + +def trlist(x): + s = str(list(x)) + if len(s) > 30: + s = s[:30] + "...]" + return s + +class Bacteria(UTestCase): + """ Bacteria growth rates """ + + def stest(self, n0, alpha, K, N): + g = bacteriaGrowth(n0=n0, alpha=alpha, K=K, N=N) + self.title = f"bacteriaGrowth({n0}, {alpha}, {K}, {N}) = {g} ?" + self.assertEqualC(g) + + def test_growth1(self): + """ Hints: + * Make sure to frobulate the frobulator. + """ + self.stest(100, 0.4, 1000, 500) + + def test_growth2(self): + self.stest(10, 0.4, 1000, 500) + + def test_growth3(self): + self.stest(100, 1.4, 1000, 500) + + def test_growth4(self): + self.stest(100, 0.0004, 1000, 500) + + def test_growth5(self): + """ + hints: + * What happens when n0 > N? (in this case return t=0) """ + self.stest(100, 0.4, 1000, 99) + +class ClusterAnalysis(UTestCase): + """ Cluster analysis """ + + def stest(self, n, seed): + np.random.seed(seed) + x = np.round(np.random.rand(n), 1) + I = clusterAnalysis(x) + self.title = f"clusterAnalysis({list(x)}) = {list(I)} ?" + self.assertEqualC(list(I)) + + def test_cluster1(self): + """ Hints: + * Make sure to frobulate the frobulator. + * Just try harder + """ + self.stest(3, 10) + + def test_cluster2(self): + self.stest(4, 146) + + def test_cluster3(self): + self.stest(5, 12) + + def test_cluster4(self): + """ + Cluster analysis for tied lists + Hints: + * It may be that an observations has the same distance to the two clusters. Where do you assign it in this case? + """ + x = np.array([10.0, 12.0, 10.0, 12.0, 9.0, 11.0, 11.0, 13.0]) + self.assertEqualC(list(clusterAnalysis(x) ) ) + + +class RemoveIncomplete(UTestCase): + """ Remove incomplete IDs """ + + def stest(self, x): + I = list( removeIncomplete(x) ) + self.title = f"removeId({trlist(x)}) = {trlist(I)} ?" + self.assertEqualC(I) + + @cache + def rseq(self, max, n): + np.random.seed(42) + return np.random.randint(max, size=(n,) ) + (np.random.randint(2, size=(n,) )+1)/10 + + def test_incomplete1(self): + self.stest( np.array([1.3, 2.2, 2.3, 4.2, 5.1, 3.2, 5.3, 3.3, 2.1, 1.1, 5.2, 3.1]) ) + + def test_incomplete2(self): + self.stest( np.array([1.1, 1.2, 1.3, 2.1, 2.2, 2.3]) ) + + def test_incomplete3(self): + self.stest(np.array([5.1, 5.2, 4.1, 4.3, 4.2, 8.1, 8.2, 8.3]) ) + + def test_incomplete4(self): + self.stest(np.array([1.1, 1.3, 2.1, 2.2, 3.1, 3.3, 4.1, 4.2, 4.3]) ) + + def test_incomplete5(self): + self.stest(self.rseq(10, 40)) + + +class FermentationRate(UTestCase): + """ Fermentation rate """ + + def stest(self, x, lower, upper): + I = fermentationRate(x, lower, upper) + s = trlist(x) + self.title = f"fermentationRate({s}, {lower}, {upper}) = {I:.3f} ?" + self.assertEqualC(I) + + @cache + def rseq(self, max, n): + np.random.seed(42) + return np.random.randint(max, size=(n,) ) + (np.random.randint(3, size=(n,) )+1)/n + + def test_rate1(self): + self.stest(np.array([20.1, 19.3, 1.1, 18.2, 19.7, 121.1, 20.3, 20.0]), 15, 25) + + def test_rate2(self): + self.stest(np.array([20.1, 19.3, 1.1, 18.2, 19.7, 121.1, 20.3, 20.0]), 1, 200) + + def test_rate3(self): + self.stest(np.array([1.75]), 1, 2) + + def test_rate4(self): + self.stest(np.array([20.1, 19.3, 1.1, 18.2, 19.7, 121.1, 20.3, 20.0]), 18.2, 20) + + +class Report1Flat(Report): + title = "02531 week 5: Looping" + questions = [(ClusterAnalysis, 10), (RemoveIncomplete, 10), (Bacteria, 10), (FermentationRate, 10),] + pack_imports = [looping] + +if __name__ == "__main__": + evaluate_report_student(Report1Flat()) diff --git a/examples/tmp/c02631week5/c02631week5-autograde/looping_tests_grade.py b/examples/tmp/c02631week5/c02631week5-autograde/looping_tests_grade.py new file mode 100644 index 0000000000000000000000000000000000000000..8e88d8efa8f18f1bb256bda6ab57e41f2702665e --- /dev/null +++ b/examples/tmp/c02631week5/c02631week5-autograde/looping_tests_grade.py @@ -0,0 +1,4 @@ +# looping_tests.py +''' WARNING: Modifying, decompiling or otherwise tampering with this script, it's data or the resulting .token file will be investigated as a cheating attempt. ''' +import bz2, base64 +exec(bz2.decompress(base64.b64decode('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'))) \ No newline at end of file diff --git a/examples/tmp/c02631week5/c02631week5-autograde/unitgrade_data/Bacteria.pkl b/examples/tmp/c02631week5/c02631week5-autograde/unitgrade_data/Bacteria.pkl new file mode 100644 index 0000000000000000000000000000000000000000..5fd7927c81b07caaef98db8a9e8111b12d62019b Binary files /dev/null and b/examples/tmp/c02631week5/c02631week5-autograde/unitgrade_data/Bacteria.pkl differ diff --git a/examples/tmp/c02631week5/c02631week5-autograde/unitgrade_data/ClusterAnalysis.pkl b/examples/tmp/c02631week5/c02631week5-autograde/unitgrade_data/ClusterAnalysis.pkl new file mode 100644 index 0000000000000000000000000000000000000000..2f11291cbbf7032f654afea9023684431328a1ce Binary files /dev/null and b/examples/tmp/c02631week5/c02631week5-autograde/unitgrade_data/ClusterAnalysis.pkl differ diff --git a/examples/tmp/c02631week5/c02631week5-autograde/unitgrade_data/FermentationRate.pkl b/examples/tmp/c02631week5/c02631week5-autograde/unitgrade_data/FermentationRate.pkl new file mode 100644 index 0000000000000000000000000000000000000000..0174a699f6daaebd098ec177240e48b8c3293a44 Binary files /dev/null and b/examples/tmp/c02631week5/c02631week5-autograde/unitgrade_data/FermentationRate.pkl differ diff --git a/examples/tmp/c02631week5/c02631week5-autograde/unitgrade_data/RemoveIncomplete.pkl b/examples/tmp/c02631week5/c02631week5-autograde/unitgrade_data/RemoveIncomplete.pkl new file mode 100644 index 0000000000000000000000000000000000000000..c6aef837cef8ea1f347292519cc37296cb025d45 Binary files /dev/null and b/examples/tmp/c02631week5/c02631week5-autograde/unitgrade_data/RemoveIncomplete.pkl differ diff --git a/examples/tmp/c02631week5/c02631week5-handout.zip b/examples/tmp/c02631week5/c02631week5-handout.zip new file mode 100644 index 0000000000000000000000000000000000000000..6af76da24433b9788d99f1264c7c6657a71df26d Binary files /dev/null and b/examples/tmp/c02631week5/c02631week5-handout.zip differ diff --git a/examples/tmp/c02631week5/c02631week5-handout/looping.py b/examples/tmp/c02631week5/c02631week5-handout/looping.py new file mode 100644 index 0000000000000000000000000000000000000000..64db4f21b1aa35baa2ad7650bebee649c2581309 --- /dev/null +++ b/examples/tmp/c02631week5/c02631week5-handout/looping.py @@ -0,0 +1,51 @@ +import numpy as np +import itertools + +def bacteriaGrowth(n0, alpha, K, N): + """ + Calculate time until bacteria growth exceed N starting from a population of n0 bacteria. + hints: + * You need to update the number of bacteria n0 within a loop + """ + # TODO: 7 lines missing. + raise NotImplementedError("Implement function body") + return t + +def clusterAnalysis(reflectance): + reflectance = np.asarray(reflectance) + I1 = np.arange(len(reflectance)) % 2 == 1 + while True: + m = np.asarray( [np.mean( reflectance[~I1] ), np.mean( reflectance[I1] ) ] ) + I1_ = np.argmin( np.abs( reflectance[:, np.newaxis] - m[np.newaxis, :] ), axis=1) == 1 + if all(I1_ == I1): + break + I1 = I1_ + return I1 + 1 + +def fermentationRate(measuredRate, lowerBound, upperBound): + """ + Compute and return the mean value of the rates in 'measuredRate' + which falls within lowerBound and upperBound. + """ + mean_value = np.mean( [r for r in measuredRate if lowerBound < r < upperBound] ) + return mean_value + +def removeIncomplete(id): + """ + Hints: + * Take a look at the example in the exercise. + """ + id = np.asarray(id) + id2 = [] + for i, v in enumerate(id): + if len( [x for x in id if int(x) == int(v) ] ) == 3: + id2.append(v) + return np.asarray(id2) + +if __name__ == "__main__": + # I = clusterAnalysis([1.7, 1.6, 1.3, 1.3, 2.8, 1.4, 2.8, 2.6, 1.6, 2.7]) + # print(I) + print(fermentationRate(np.array([20.1, 19.3, 1.1, 18.2, 19.7, 121.1, 20.3, 20.0]), 15, 25)) + # print(removeIncomplete(np.array([1.3, 2.2, 2.3, 4.2, 5.1, 3.2, 5.3, 3.3, 2.1, 1.1, 5.2, 3.1]))) + # Problem 1: Write a function which add two numbers + # clusterAnalysis([2, 1, 2, 4, 5]) diff --git a/examples/tmp/c02631week5/c02631week5-handout/looping_tests.py b/examples/tmp/c02631week5/c02631week5-handout/looping_tests.py new file mode 100644 index 0000000000000000000000000000000000000000..f8076c26210356404b46a61e660ba7ee4617a51b --- /dev/null +++ b/examples/tmp/c02631week5/c02631week5-handout/looping_tests.py @@ -0,0 +1,138 @@ +from unitgrade.framework import Report, UTestCase +from unitgrade import cache +from unitgrade.evaluate import evaluate_report_student +import numpy as np +import looping +from looping import bacteriaGrowth, clusterAnalysis, removeIncomplete, fermentationRate + +def trlist(x): + s = str(list(x)) + if len(s) > 30: + s = s[:30] + "...]" + return s + +class Bacteria(UTestCase): + """ Bacteria growth rates """ + + def stest(self, n0, alpha, K, N): + g = bacteriaGrowth(n0=n0, alpha=alpha, K=K, N=N) + self.title = f"bacteriaGrowth({n0}, {alpha}, {K}, {N}) = {g} ?" + self.assertEqualC(g) + + def test_growth1(self): + """ Hints: + * Make sure to frobulate the frobulator. + """ + self.stest(100, 0.4, 1000, 500) + + def test_growth2(self): + self.stest(10, 0.4, 1000, 500) + + def test_growth3(self): + self.stest(100, 1.4, 1000, 500) + + def test_growth4(self): + self.stest(100, 0.0004, 1000, 500) + + def test_growth5(self): + """ + hints: + * What happens when n0 > N? (in this case return t=0) """ + self.stest(100, 0.4, 1000, 99) + +class ClusterAnalysis(UTestCase): + """ Cluster analysis """ + + def stest(self, n, seed): + np.random.seed(seed) + x = np.round(np.random.rand(n), 1) + I = clusterAnalysis(x) + self.title = f"clusterAnalysis({list(x)}) = {list(I)} ?" + self.assertEqualC(list(I)) + + def test_cluster1(self): + """ Hints: + * Make sure to frobulate the frobulator. + * Just try harder + """ + self.stest(3, 10) + + def test_cluster2(self): + self.stest(4, 146) + + def test_cluster3(self): + self.stest(5, 12) + + def test_cluster4(self): + """ + Cluster analysis for tied lists + Hints: + * It may be that an observations has the same distance to the two clusters. Where do you assign it in this case? + """ + x = np.array([10.0, 12.0, 10.0, 12.0, 9.0, 11.0, 11.0, 13.0]) + self.assertEqualC(list(clusterAnalysis(x) ) ) + + +class RemoveIncomplete(UTestCase): + """ Remove incomplete IDs """ + + def stest(self, x): + I = list( removeIncomplete(x) ) + self.title = f"removeId({trlist(x)}) = {trlist(I)} ?" + self.assertEqualC(I) + + @cache + def rseq(self, max, n): + np.random.seed(42) + return np.random.randint(max, size=(n,) ) + (np.random.randint(2, size=(n,) )+1)/10 + + def test_incomplete1(self): + self.stest( np.array([1.3, 2.2, 2.3, 4.2, 5.1, 3.2, 5.3, 3.3, 2.1, 1.1, 5.2, 3.1]) ) + + def test_incomplete2(self): + self.stest( np.array([1.1, 1.2, 1.3, 2.1, 2.2, 2.3]) ) + + def test_incomplete3(self): + self.stest(np.array([5.1, 5.2, 4.1, 4.3, 4.2, 8.1, 8.2, 8.3]) ) + + def test_incomplete4(self): + self.stest(np.array([1.1, 1.3, 2.1, 2.2, 3.1, 3.3, 4.1, 4.2, 4.3]) ) + + def test_incomplete5(self): + self.stest(self.rseq(10, 40)) + + +class FermentationRate(UTestCase): + """ Fermentation rate """ + + def stest(self, x, lower, upper): + I = fermentationRate(x, lower, upper) + s = trlist(x) + self.title = f"fermentationRate({s}, {lower}, {upper}) = {I:.3f} ?" + self.assertEqualC(I) + + @cache + def rseq(self, max, n): + np.random.seed(42) + return np.random.randint(max, size=(n,) ) + (np.random.randint(3, size=(n,) )+1)/n + + def test_rate1(self): + self.stest(np.array([20.1, 19.3, 1.1, 18.2, 19.7, 121.1, 20.3, 20.0]), 15, 25) + + def test_rate2(self): + self.stest(np.array([20.1, 19.3, 1.1, 18.2, 19.7, 121.1, 20.3, 20.0]), 1, 200) + + def test_rate3(self): + self.stest(np.array([1.75]), 1, 2) + + def test_rate4(self): + self.stest(np.array([20.1, 19.3, 1.1, 18.2, 19.7, 121.1, 20.3, 20.0]), 18.2, 20) + + +class Report1Flat(Report): + title = "02531 week 5: Looping" + questions = [(ClusterAnalysis, 10), (RemoveIncomplete, 10), (Bacteria, 10), (FermentationRate, 10),] + pack_imports = [looping] + +if __name__ == "__main__": + evaluate_report_student(Report1Flat()) diff --git a/examples/tmp/c02631week5/c02631week5-handout/unitgrade_data/Bacteria.pkl b/examples/tmp/c02631week5/c02631week5-handout/unitgrade_data/Bacteria.pkl new file mode 100644 index 0000000000000000000000000000000000000000..5fd7927c81b07caaef98db8a9e8111b12d62019b Binary files /dev/null and b/examples/tmp/c02631week5/c02631week5-handout/unitgrade_data/Bacteria.pkl differ diff --git a/examples/tmp/c02631week5/c02631week5-handout/unitgrade_data/ClusterAnalysis.pkl b/examples/tmp/c02631week5/c02631week5-handout/unitgrade_data/ClusterAnalysis.pkl new file mode 100644 index 0000000000000000000000000000000000000000..2f11291cbbf7032f654afea9023684431328a1ce Binary files /dev/null and b/examples/tmp/c02631week5/c02631week5-handout/unitgrade_data/ClusterAnalysis.pkl differ diff --git a/examples/tmp/c02631week5/c02631week5-handout/unitgrade_data/FermentationRate.pkl b/examples/tmp/c02631week5/c02631week5-handout/unitgrade_data/FermentationRate.pkl new file mode 100644 index 0000000000000000000000000000000000000000..0174a699f6daaebd098ec177240e48b8c3293a44 Binary files /dev/null and b/examples/tmp/c02631week5/c02631week5-handout/unitgrade_data/FermentationRate.pkl differ diff --git a/examples/tmp/c02631week5/c02631week5-handout/unitgrade_data/RemoveIncomplete.pkl b/examples/tmp/c02631week5/c02631week5-handout/unitgrade_data/RemoveIncomplete.pkl new file mode 100644 index 0000000000000000000000000000000000000000..c6aef837cef8ea1f347292519cc37296cb025d45 Binary files /dev/null and b/examples/tmp/c02631week5/c02631week5-handout/unitgrade_data/RemoveIncomplete.pkl differ diff --git a/examples/tmp/c02631week5/c02631week5.rb b/examples/tmp/c02631week5/c02631week5.rb new file mode 100644 index 0000000000000000000000000000000000000000..7fb4d2cca4f73d960a75f8648b093970002a8bd0 --- /dev/null +++ b/examples/tmp/c02631week5/c02631week5.rb @@ -0,0 +1,11 @@ +require "AssessmentBase.rb" + +module C02631week5 + include AssessmentBase + + def assessmentInitialize(course) + super("c02631week5",course) + @problems = [] + end + +end \ No newline at end of file diff --git a/examples/tmp/c02631week5/c02631week5.yml b/examples/tmp/c02631week5/c02631week5.yml new file mode 100644 index 0000000000000000000000000000000000000000..353bf07c1c88032a0e6144477161e152fa10bd1a --- /dev/null +++ b/examples/tmp/c02631week5/c02631week5.yml @@ -0,0 +1,38 @@ +--- + +general: + name: c02631week5 + description: ' Hand in the file stones.py. You can find the full example, including solution, at https://gitlab.compute.dtu.dk/tuhe/unitgrade_private/-/tree/master/examples/02631/instructor/week5 ' + display_name: '02531 week 5: Looping' + handin_filename: looping.py + handin_directory: handin + max_grace_days: 0 + handout: c02631week5-handout.zip + writeup: writeup/writeup.html + max_submissions: -1 + disable_handins: false + max_size: 2 + has_svn: false + category_name: Lab +problems: + + - name: Unitgrade score + description: 'Score obtained by automatic grading' + max_score: 40 + optional: false + + - name: Written feedback + description: 'Written (TA) feedback' + max_score: 0 + optional: true + +autograder: + autograde_timeout: 180 + autograde_image: tango_python_tue2 + release_score: true + +# problems: +# - name: Correctness +# description: '' +# max_score: 100.0 +# optional: false \ No newline at end of file diff --git a/examples/tmp/c02631week5/src/Makefile b/examples/tmp/c02631week5/src/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..6d094e3a3869dfe9ee9e51a06150c6999c402286 --- /dev/null +++ b/examples/tmp/c02631week5/src/Makefile @@ -0,0 +1,7 @@ +# Makefile for the Hello Lab +all: + echo "Makefile called... it is empty so far. " + #gcc hello3.c -o hello3 + +clean: + rm -rf *~ hello3 diff --git a/examples/tmp/c02631week5/src/Makefile-handout b/examples/tmp/c02631week5/src/Makefile-handout new file mode 100644 index 0000000000000000000000000000000000000000..6d094e3a3869dfe9ee9e51a06150c6999c402286 --- /dev/null +++ b/examples/tmp/c02631week5/src/Makefile-handout @@ -0,0 +1,7 @@ +# Makefile for the Hello Lab +all: + echo "Makefile called... it is empty so far. " + #gcc hello3.c -o hello3 + +clean: + rm -rf *~ hello3 diff --git a/examples/tmp/c02631week5/src/README b/examples/tmp/c02631week5/src/README new file mode 100644 index 0000000000000000000000000000000000000000..8eea4bef3abb4665581173c4843b6155b3dc59d2 --- /dev/null +++ b/examples/tmp/c02631week5/src/README @@ -0,0 +1,15 @@ +This directory contains all of the code files for the Hello Lab, +including the files that are handed out to students. + +Files: + +# Autograder and solution files +Makefile Makefile and ... +README ... README for this directory +driver.sh* Autograder +hello.c Solution hello.c file + +# Files that are handed out to students +Makefile-handout Makefile and ... +README-handout ... README handed out to students +hello.c-handout Blank hello.c file handed out to students diff --git a/examples/tmp/c02631week5/src/README-handout b/examples/tmp/c02631week5/src/README-handout new file mode 100644 index 0000000000000000000000000000000000000000..8eea4bef3abb4665581173c4843b6155b3dc59d2 --- /dev/null +++ b/examples/tmp/c02631week5/src/README-handout @@ -0,0 +1,15 @@ +This directory contains all of the code files for the Hello Lab, +including the files that are handed out to students. + +Files: + +# Autograder and solution files +Makefile Makefile and ... +README ... README for this directory +driver.sh* Autograder +hello.c Solution hello.c file + +# Files that are handed out to students +Makefile-handout Makefile and ... +README-handout ... README handed out to students +hello.c-handout Blank hello.c file handed out to students diff --git a/examples/tmp/c02631week5/src/Report1Flat_handin.token b/examples/tmp/c02631week5/src/Report1Flat_handin.token new file mode 100644 index 0000000000000000000000000000000000000000..2ea703ab9cb00105b3bf3d8f79befcc923868252 --- /dev/null +++ b/examples/tmp/c02631week5/src/Report1Flat_handin.token @@ -0,0 +1,202 @@ +# This file contains your results. Do not edit its content. Simply upload it as it is. +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +ba426da415e8071cc74bec270089fe6b6181c69b47ada4ab4f361248ffb4348064ab706575dd29f9b74a52694aba493fd9f3e745269c55683abfd2b20e870c9c 35488 +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +.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 +SzwGM5gI0pl9BscRn+wIAAAAABFla. \ No newline at end of file diff --git a/examples/tmp/c02631week5/src/docker_helpers.py b/examples/tmp/c02631week5/src/docker_helpers.py new file mode 100644 index 0000000000000000000000000000000000000000..0b82a931c0268a356ee54f777fbc7ed0ef095e3f --- /dev/null +++ b/examples/tmp/c02631week5/src/docker_helpers.py @@ -0,0 +1,198 @@ +import os +import glob +import shutil +import time +import zipfile +import io +import subprocess +import urllib.request + +def download_docker_images(destination=None): + if destination is None: + destination = os.getcwd() + if not os.path.exists(destination): + os.makedirs(destination) + + print('Beginning file download with urllib2...') + url = 'https://gitlab.compute.dtu.dk/tuhe/unitgrade_private/-/archive/master/unitgrade_private-master.zip?path=docker_images' + result, headers = urllib.request.urlretrieve(url) + + ex = result +"_extract" + zf = zipfile.ZipFile(result) + zf.extractall(path=ex) + dockers = [f for f in zf.namelist() if f[-1] == "/" and len( [s for s in f if s == "/"] ) == 3] + for f in dockers: # zf.namelist(): + tmp_dir = ex + "/" + f + if os.path.isdir(tmp_dir): + dest = destination +"/"+os.path.basename(tmp_dir[:-1]) + + if os.path.isdir(dest): + print("> Destination for docker image", dest, "exists. Skipping download.") + else: + print("> Extracting docker image", os.path.basename(f[:-1]), "to", dest) + shutil.copytree(tmp_dir, dest) + + +def compile_docker_image(Dockerfile, tag=None, no_cache=False): + assert os.path.isfile(Dockerfile) + base = os.path.dirname(Dockerfile) + if tag == None: + tag = os.path.basename(base) + cmd = f"cd {base} && docker build {'--no-cache' if no_cache else ''} --tag {tag} ." + os.system(cmd) + return tag + + +def student_token_file_runner(host_tmp_dir, student_token_file, instructor_grade_script, grade_file_relative_destination): + """ + This code is used to run student unitgrade tests (i.e., a .token file). + Use by autolab code. + + It accepts a student .token file which is extracted, the 'correct' instructor grade script is copied + into it, and it is then run. + + :param Dockerfile_location: + :param host_tmp_dir: + :param student_token_file: + :param ReportClass: + :param instructor_grade_script: + :return: + """ + assert os.path.exists(student_token_file) + assert os.path.exists(instructor_grade_script) + from unitgrade_private import load_token + start = time.time() + results, _ = load_token(student_token_file) + sources = results['sources'][0] + with io.BytesIO(sources['zipfile']) as zb: + with zipfile.ZipFile(zb) as zip: + zip.extractall(host_tmp_dir) + + # Done extracting the zip file! Now time to move the (good) report test class into the location. + gscript = instructor_grade_script + print(f"{sources['report_relative_location']=}") + print(f"{sources['name']=}") + print("Now in docker_helpers.py") + print(f'{gscript=}') + print(f'{instructor_grade_script=}') + gscript_destination = host_tmp_dir + "/" + grade_file_relative_destination + print(f'{gscript_destination=}') + shutil.copy(gscript, gscript_destination) + # Now everything appears very close to being set up and ready to roll!. + d = os.path.normpath(grade_file_relative_destination).split(os.sep) + d = d[:-1] + [os.path.basename(instructor_grade_script)[:-3]] + pycom = ".".join(d) + """ + docker run -v c:/Users/tuhe/Documents/2021/python-docker/tmp:/app python-docker python3 -m cs202courseware.ug2report1_grade + """ + pycom = "python3 -m " + pycom + print(f"{pycom=}") + token_location = host_tmp_dir + "/" + os.path.dirname( grade_file_relative_destination ) + "/*.token" + elapsed = time.time() - start + # print("Elapsed time is", elapsed) + return pycom, host_tmp_dir, token_location + + +def docker_run_token_file(Dockerfile_location, host_tmp_dir, student_token_file, tag=None, instructor_grade_script=None, + fix_user=None, + # grade_script_relative_destination_dir=None, # The relative location relative to the top-dir containing the package. Example: irlc/project1 + xvfb=True): + """ + xvfb: Control whether to use X-windows. Works on linux. This seems like a good idea when using e.g. gym. + + This thingy works: + + To build the image, run: + docker build --tag python-docker . + + To run the app run: + + docker run -v c:/Users/tuhe/Documents/2021/python-docker/tmp:/app python-docker > output.log + + """ + Dockerfile_location = Dockerfile_location.replace("\\", "/") + host_tmp_dir = host_tmp_dir.replace("\\", "/") + student_token_file = student_token_file.replace("\\", "/") + + # A bunch of tests. This is going to be great! + Dockerfile_location = os.path.abspath(Dockerfile_location) + assert os.path.exists(Dockerfile_location) + + start = time.time() + + if fix_user is None: + fix_user = os.name != 'nt' # On Linux, this should probably be true to avoid problem with edit-rights of docker-created files. + + # with open(student_token_file, 'rb') as f: + # results = pickle.load(f) + from unitgrade_private import load_token + results, _ = load_token(student_token_file) + + sources = results['sources'][0] + + if os.path.exists(host_tmp_dir): + shutil.rmtree(host_tmp_dir) + + with io.BytesIO(sources['zipfile']) as zb: + with zipfile.ZipFile(zb) as zip: + zip.extractall(host_tmp_dir) + # Done extracting the zip file! Now time to move the (good) report test class into the location. + gscript = instructor_grade_script + + # if grade_script_relative_destination_dir is None: + # student_grade_script = host_tmp_dir + "/" + sources['report_relative_location'] + # else: + # student_grade_script = host_tmp_dir + "/" + grade_script_relative_destination_dir + # Get relative location from first line of the grade script. + with open(instructor_grade_script, 'r') as f: + student_grade_script_dir = os.path.dirname( host_tmp_dir + "/" + f.read().splitlines()[0][1:].strip() ) + print("student_grade_script", student_grade_script_dir) + + + + student_grade_script_dir = student_grade_script_dir.replace("\\", "/") + instructor_grade_script = student_grade_script_dir + "/"+os.path.basename(gscript) + shutil.copy(gscript, instructor_grade_script) + + """ + docker run -v c:/Users/tuhe/Documents/2021/python-docker/tmp:/home python-docker python3 -m cs202courseware.ug2report1_grade + """ + if tag is None: + dockname = os.path.basename( os.path.dirname(Dockerfile_location) ) + else: + dockname = tag + + tmp_grade_file = sources['name'] + "/" + sources['report_relative_location'] + tmp_grade_file = tmp_grade_file.replace("\\", "/") + + # pycom = ".".join( sources['report_module_specification'][:-1] + [os.path.basename(gscript)[:-3],] ) + pycom = ".".join(os.path.relpath(instructor_grade_script, host_tmp_dir)[:-3].split("/")) + pycom = "python3 -m " + pycom + + if fix_user: + user_cmd = ' --user "$(id -u):$(id -g)" ' + else: + user_cmd = '' + + if xvfb: + user_cmd = " -e DISPLAY=:0 -v /tmp/.X11-unix:/tmp/.X11-unix " + user_cmd + + tmp_path = os.path.abspath(host_tmp_dir).replace("\\", "/") + dcom = f"docker run {user_cmd} -v {tmp_path}:/home {dockname} {pycom}" + cdcom = f"cd {os.path.dirname(Dockerfile_location)}" + fcom = f"{cdcom} && {dcom}" + print("> Running docker command") + print(fcom) + init = time.time() - start + # thtools.execute_command(fcom.split()) + out = subprocess.check_output(fcom, shell=True).decode("utf-8") + host_tmp_dir +"/" + os.path.dirname(tmp_grade_file) + "/" + tokens = glob.glob( os.path.dirname(instructor_grade_script) + "/*.token" ) + for t in tokens: + print("Source image produced token", t) + elapsed = time.time() - start + print("Elapsed time is", elapsed, f"({init=} seconds)") + if len(tokens) != 1: + print("Wrong number of tokens produced:", len(tokens)) + print(out) + return tokens[0] diff --git a/examples/tmp/c02631week5/src/driver.sh b/examples/tmp/c02631week5/src/driver.sh new file mode 100644 index 0000000000000000000000000000000000000000..05a006e95e416fa5d5088f1d61479f73901588c2 --- /dev/null +++ b/examples/tmp/c02631week5/src/driver.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# driver.sh - The simplest autograder we could think of. It checks +# that students can write a C program that compiles, and then +# executes with an exit status of zero. +# Usage: ./driver.sh + +# Compile the code +# echo "Compiling hello3.c" +# python3 -c "print('Hello world from python 2')" +# python3 --version +python3 driver_python.py + +#(make clean; make) +#status=$? +#if [ ${status} -ne 0 ]; then +# echo "Failure: Unable to compile hello3.c (return status = ${status})" +# echo "{\"scores\": {\"Correctness\": 0}}" +# exit +#fi +# +# Run the code +#echo "Running ./hello3" +#./hello3 +#status=$? +#if [ ${status} -eq 0 ]; then +# echo "Success: ./hello3 runs with an exit status of 0" +# echo "{\"scores\": {\"Correctness\": 100}}" +#else +# echo "Failure: ./hello fails or returns nonzero exit status of ${status}" +# echo "{\"scores\": {\"Correctness\": 0}}" +#fi + +exit diff --git a/examples/tmp/c02631week5/src/driver.sh-handout b/examples/tmp/c02631week5/src/driver.sh-handout new file mode 100644 index 0000000000000000000000000000000000000000..05a006e95e416fa5d5088f1d61479f73901588c2 --- /dev/null +++ b/examples/tmp/c02631week5/src/driver.sh-handout @@ -0,0 +1,33 @@ +#!/bin/bash +# driver.sh - The simplest autograder we could think of. It checks +# that students can write a C program that compiles, and then +# executes with an exit status of zero. +# Usage: ./driver.sh + +# Compile the code +# echo "Compiling hello3.c" +# python3 -c "print('Hello world from python 2')" +# python3 --version +python3 driver_python.py + +#(make clean; make) +#status=$? +#if [ ${status} -ne 0 ]; then +# echo "Failure: Unable to compile hello3.c (return status = ${status})" +# echo "{\"scores\": {\"Correctness\": 0}}" +# exit +#fi +# +# Run the code +#echo "Running ./hello3" +#./hello3 +#status=$? +#if [ ${status} -eq 0 ]; then +# echo "Success: ./hello3 runs with an exit status of 0" +# echo "{\"scores\": {\"Correctness\": 100}}" +#else +# echo "Failure: ./hello fails or returns nonzero exit status of ${status}" +# echo "{\"scores\": {\"Correctness\": 0}}" +#fi + +exit diff --git a/examples/tmp/c02631week5/src/driver_python.py b/examples/tmp/c02631week5/src/driver_python.py new file mode 100644 index 0000000000000000000000000000000000000000..286f74612cf1a77248e066f52be1ec0b739ec485 --- /dev/null +++ b/examples/tmp/c02631week5/src/driver_python.py @@ -0,0 +1,92 @@ +import os +import glob +import shutil +import sys +import subprocess +from unitgrade_private.autolab.autolab import format_autolab_json +from unitgrade_private.docker_helpers import student_token_file_runner +from unitgrade_private import load_token +import time +import unitgrade_private + +verbose = False +tag = "[driver_python.py]" + +if not verbose: + print("="*10) + print(tag, "Starting unitgrade evaluation...") +import unitgrade +print(tag, "Unitgrade version", unitgrade.version.__version__) +print(tag, "Unitgrade-devel version", unitgrade_private.version.__version__) + + +sys.stderr = sys.stdout +wdir = os.getcwd() + +def pfiles(): + print("> Files in dir:") + for f in glob.glob(wdir + "/*"): + print(f) + print("---") + +handin_filename = "looping.py" +student_token_file = 'Report1Flat_handin.token' +instructor_grade_script = 'looping_tests_grade.py' +grade_file_relative_destination = "looping_tests_grade.py" +host_tmp_dir = wdir + "/tmp" +homework_file = "looping.py" +# homework_file = "looping.py" +student_should_upload_token = False # Add these from template. + +if not verbose: + pfiles() + print(f"{host_tmp_dir=}") + print(f"{student_token_file=}") + print(f"{instructor_grade_script=}") + +print("Current directory", os.getcwd()) +print("student_token_file", student_token_file) +for f in glob.glob(os.getcwd() + "/*"): + print(f) +try: + # This is how we get the student file structure. + command, host_tmp_dir, token = student_token_file_runner(host_tmp_dir, student_token_file, instructor_grade_script, + grade_file_relative_destination) + # run the stuff. + if not student_should_upload_token: + """ Add the student homework to the right location. """ + print("Moving uploaded file from", os.path.basename(handin_filename), "to", handin_filename) + # print("file exists?", os.path.isfile(os.path.basename(handin_filename))) + shutil.move(os.path.basename(handin_filename), host_tmp_dir + "/" + handin_filename) + + command = f"cd tmp && {command} --noprogress --autolab" + def rcom(cm): + rs = subprocess.run(cm, capture_output=True, text=True, shell=True) + print(rs.stdout) + if len(rs.stderr) > 0: + print(tag, "There were errors in executing the file:") + print(rs.stderr) + + start = time.time() + rcom(command) + ls = glob.glob(token) + f = ls[0] + results, _ = load_token(ls[0]) + +except Exception as e: + if not student_should_upload_token: + print(tag, "A major error occured while starting unitgrade.") + print(tag, "This can mean the grader itself is badly configured, or (more likely) that you submitted a completely wrong file.") + print(tag, "The following is the content of the file you uploaded; is it what you expect?") + with open(host_tmp_dir + "/" + handin_filename, 'r') as f: + print( f.read() ) + print(" ") + print(tag, "If you cannot resolve the problem, please contact the teacher and include details such as this log, as well as the file you submitted.") + + raise e + +if verbose: + print(tag, f"{token=}") + print(tag, results['total']) + +format_autolab_json(results) \ No newline at end of file diff --git a/examples/tmp/c02631week5/src/driver_python.py-handout b/examples/tmp/c02631week5/src/driver_python.py-handout new file mode 100644 index 0000000000000000000000000000000000000000..286f74612cf1a77248e066f52be1ec0b739ec485 --- /dev/null +++ b/examples/tmp/c02631week5/src/driver_python.py-handout @@ -0,0 +1,92 @@ +import os +import glob +import shutil +import sys +import subprocess +from unitgrade_private.autolab.autolab import format_autolab_json +from unitgrade_private.docker_helpers import student_token_file_runner +from unitgrade_private import load_token +import time +import unitgrade_private + +verbose = False +tag = "[driver_python.py]" + +if not verbose: + print("="*10) + print(tag, "Starting unitgrade evaluation...") +import unitgrade +print(tag, "Unitgrade version", unitgrade.version.__version__) +print(tag, "Unitgrade-devel version", unitgrade_private.version.__version__) + + +sys.stderr = sys.stdout +wdir = os.getcwd() + +def pfiles(): + print("> Files in dir:") + for f in glob.glob(wdir + "/*"): + print(f) + print("---") + +handin_filename = "looping.py" +student_token_file = 'Report1Flat_handin.token' +instructor_grade_script = 'looping_tests_grade.py' +grade_file_relative_destination = "looping_tests_grade.py" +host_tmp_dir = wdir + "/tmp" +homework_file = "looping.py" +# homework_file = "looping.py" +student_should_upload_token = False # Add these from template. + +if not verbose: + pfiles() + print(f"{host_tmp_dir=}") + print(f"{student_token_file=}") + print(f"{instructor_grade_script=}") + +print("Current directory", os.getcwd()) +print("student_token_file", student_token_file) +for f in glob.glob(os.getcwd() + "/*"): + print(f) +try: + # This is how we get the student file structure. + command, host_tmp_dir, token = student_token_file_runner(host_tmp_dir, student_token_file, instructor_grade_script, + grade_file_relative_destination) + # run the stuff. + if not student_should_upload_token: + """ Add the student homework to the right location. """ + print("Moving uploaded file from", os.path.basename(handin_filename), "to", handin_filename) + # print("file exists?", os.path.isfile(os.path.basename(handin_filename))) + shutil.move(os.path.basename(handin_filename), host_tmp_dir + "/" + handin_filename) + + command = f"cd tmp && {command} --noprogress --autolab" + def rcom(cm): + rs = subprocess.run(cm, capture_output=True, text=True, shell=True) + print(rs.stdout) + if len(rs.stderr) > 0: + print(tag, "There were errors in executing the file:") + print(rs.stderr) + + start = time.time() + rcom(command) + ls = glob.glob(token) + f = ls[0] + results, _ = load_token(ls[0]) + +except Exception as e: + if not student_should_upload_token: + print(tag, "A major error occured while starting unitgrade.") + print(tag, "This can mean the grader itself is badly configured, or (more likely) that you submitted a completely wrong file.") + print(tag, "The following is the content of the file you uploaded; is it what you expect?") + with open(host_tmp_dir + "/" + handin_filename, 'r') as f: + print( f.read() ) + print(" ") + print(tag, "If you cannot resolve the problem, please contact the teacher and include details such as this log, as well as the file you submitted.") + + raise e + +if verbose: + print(tag, f"{token=}") + print(tag, results['total']) + +format_autolab_json(results) \ No newline at end of file diff --git a/examples/tmp/c02631week5/src/looping.py b/examples/tmp/c02631week5/src/looping.py new file mode 100644 index 0000000000000000000000000000000000000000..2ea703ab9cb00105b3bf3d8f79befcc923868252 --- /dev/null +++ b/examples/tmp/c02631week5/src/looping.py @@ -0,0 +1,202 @@ +# This file contains your results. Do not edit its content. Simply upload it as it is. +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +ba426da415e8071cc74bec270089fe6b6181c69b47ada4ab4f361248ffb4348064ab706575dd29f9b74a52694aba493fd9f3e745269c55683abfd2b20e870c9c 35488 +---------------------------------------------------------------------- ..ooO0Ooo.. ---------------------------------------------------------------------- +.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 +SzwGM5gI0pl9BscRn+wIAAAAABFla. \ No newline at end of file diff --git a/examples/tmp/c02631week5/src/looping_tests_grade.py b/examples/tmp/c02631week5/src/looping_tests_grade.py new file mode 100644 index 0000000000000000000000000000000000000000..8e88d8efa8f18f1bb256bda6ab57e41f2702665e --- /dev/null +++ b/examples/tmp/c02631week5/src/looping_tests_grade.py @@ -0,0 +1,4 @@ +# looping_tests.py +''' WARNING: Modifying, decompiling or otherwise tampering with this script, it's data or the resulting .token file will be investigated as a cheating attempt. ''' +import bz2, base64 +exec(bz2.decompress(base64.b64decode('QlpoOTFBWSZTWVV27vwAbQL/gH/2xFZ7/////////v////5gdr5949W77Tc3vnvXveA8U3W97QVVCgrthsMJEvWCLtqUqiA5NGJDd5w32x6+wTVYgbYm2hJX032NKVTr1u1Xz7et1r26z3jeNq1eY1O2c6AU5feees8PRfd76+pnve9aPu29Xnum6988jb3r3okOLr0dWD6opjWi6WzU9327O7V1l2unOwuu67ru6y9HevXHbiuzrdm+cnbtasq96vhoKGhr777gcDa93nLa7zdY2vMRg29PvFXbwFe1aw7zvvfXDfezjxQY9z089g9u7XLWpHcDSfT7cfeyK+S2KXdquzre3u1lPu3fd2bm299w7thyfXW+1eukC9G5756KG+sPu8kfXF33feDyvT290Pm+OJ26np4XZvrzn3Yns29u5Va0tq27Plz332EpogQAmgQBMhNDQg0NMkMTKek09I9TR6mJ6QDQ0YmglNAghIARNA0nqU/ECniamjZRkBo9RoANAaDQ0GgEpiRDSTSeqn5NVNtRin6p7VPSejSep5pTEZqB+qeoAAGhkyDTagGgk0khCEaaaMgCTJgmqfqeUn6U9TJ6ajajJ6ajRobJqAAAaARJEmkwJMm000Kn6NTaYmo2mkZTNCjaEeUeKYnqaDRoMnqNPUGgiREIAhoITEGKmxUepp+jKCfqDUekHlA0DaTQyABoPGD+ggB6OzzokijZFUKIgPpiI/3jakQO+IIp/aFJIkQIZBjVC2UdQMkZBkGSQsLRbWqQBNRfhIJUkkhJH5vV6YO2gtH0f63Cl+RDo++r40j9+zJ9H4n/gKxiYun5Zzes3D8f5IWK13ML1dRUkKlXb8XHS/81kXixrpu9ul4rvwrcVH6zraDLQ1RCuPKDMupuGS71OOdyPDziogWJT7/jyR1eoGXLaEuEX55tfPZ1VqK0ZXnRxGdyNIZKTL0VYMWY6/ZB/OfsJqP1/zc9kCX8vs/PjXj61EX/LVXU1UnWfxzhjd7tkMlY8O459yiKJ/41007GVFVU5wATvYiyBIpIkgQgyCsiqEA/hJKKikEFX9STJAJJnzJCgiMSAKyCCmcxJzNLgoSt/srdJ5G+CbR+W6cL5ztyc4ep9idZMqBZQVYMn6mVWZI0VUFFP42FBiKgKokkCLCSSCSWqhZ9/F+G/mmpPFvZkz7CTT3n4o/8rGMJtOZdHEfBplNaBSw6tRvIT3vCwuSIgO4wPET1VZN+vtieVjJEUpIdkOkO2IYuWLq25M7007sxPGMmj46zEBHXl8ydHqoKdH9Z9pettpdNCREeKteGJBIemkC8dovW5/cbliYpsdht+pcrmFvDP7cY/ow/zrgv13V7OH0Ry4Djxy/+5za/TA0qHVs1Vv5n0SLf3zZp/z7RSnWyM02WGNrRfTDui1t74c/dU/8p3QzimfeN42nosenHlseu2LwH5szOq+WfSD8b/X7TzIjhcKQRkQ6b9H3Qc1OM2/9z2sRrvzas29LnhVYtB4aHo2ELucLh2dRG2k+DY9XVef2nUVjKCkQMblPk/HlRPnskRIWqAxfNm3yuDM026bZVK7uys3vAGgI+Zwp8HwX1c9/7Z9xlwO2TR9fr6bTSaGo/mpfPDPJn+bz72aGXr967h6/PUjD/HH2wvaPDp2nydK9k6iNOMuHe9y5IuNrIu0c2ikY1gyCbuHNDUp8YaipnwJwKpOus2L7LEppPqj618TJ9vn7bjPfDXhuU7b9sQkUdyco2zf/z3kWzndORqJc+WNdMXjnaU6x2r45TpSz265tXAfHnrLlaUmx5p+JLbv035xjmbGHhLNQrIikbdrwZ07KXU6TL7be6Tr0o+WlxaSn5UUW2nQhZRMlzjgUG/sl39Ck0eBp/hpV52PfaC76M4o7dt+/gwjeIY502+JIb11ELSRp+MxHZC7njBqyZkwudU8FWz3Xi8/GYyoO/zeOqbSUJ3fKxG0heeW3eU2H5rlMUeqI+h5FkGqyQfK8/UWE+QSB+xpe49/4/ae756VbctyQoyvKyYCTEoikhElAnWxxzxA7hmiNM0ps6r8iakxmh/u+/X08NUIb8hRM88rneciazJxH1a18XIDOtIRSE3vXQz35wCElraOA4nJHARsrRlJpikXc6TZnVdG+tEfMcBVGHXblU5Vm9kiRDeY20ZLNC+GQg0CSQhC/QjsvUeddm5Zsz127nfIz3WdjoSy7ngiphlhMvRiXAPZB9nEVx5USiK+eOuOuA6vVhvo6EblDdDG3TpD5rwacM7Ndnis7psFzO4XIId2pN8ge/GHx+K4x046gMxjFfBBcNqcLENPbhTRmuuZFioncEQ5QpKeM8D6ibHl0Vb7jQwCUD91gg9LO3vI52kXW/hMkJv8QW0GLFmxH2bYmJKbz44ROTP/lzeCp2CZhFBH2kBlgAhmcyZuUvrlLgUmddLsE/RuG1RnMzHS5YxGtD44Qb1MsjASfMTXNgO6lE/PjfGbNOmg9z6fLSfs0KBHGHBXEcJweIw0uOwk3BBvw736zjU6chcdNso4PAnjLSxLO6D5rvpyxpS5XGgmtCYvHMFy0brrBJa2O3FcaE23gibtoDjt2Z8RRRmXXbc8UWLfDgovc8My4uVcka3KWTdSVYwu/HWSZEssIapyTm/R7HQT2Pdp78vHMHTlij/MvDIvt2a1nkgcwYf15jmabc2MFRtuzLE0TSneI3MPc5Ugl1yI/heZoVZbyjfLns8g65PrI48JaUndxecOWxl7cXb7l7y/+zOWW+4qgjs4NtisI1A4bGyn0bP8mv9SghXfIO3n+ITiReXDbGeLNvJZhBlViRAeBNjaAunucnE3iYlo2I61HLdvzpnnZnLO0Hs7DgmbRpmDqK7F4L0b7Z57TK+zhphXrsYtkLvvChgE6aUgm+FZqV7CKFSZcTYNpGBDSFq73n3yMVGDia5zjVg7fGfGPHV9Liz1fQ3OTqkDtDl7LI6bn4DflEwVKK4vm2k5czPXntB+bgGeNmSvoOP5FCMtzEsSzJAqXVil/KlMhISFdmsBsEPdRqC7C2fXq2hpNX8S7CnY8ZFkk9vDoycHefm0/RzCSGZCSDpNefBPoeyWRSpc+NObXIK39PC+xd20qjT2z0NPB9+GAXaq9lM+q6OiOr7fV8vLzykhFtesXUw7xWKY6tls62FzUDw8GUSe+Ys3wHs0GLrc6CkYfy7v2d148d9uCRqvmiabrW1Gm+eT7TmxecR97vKDnbM4ZmPVquy3Iw+iRMpp5FPtlIpy2v85I0NSaN5h+RsCh93ftnqOahoL6jQytkVaiZZ2kX7bfcbwlePOhJ6O63gp2eMs7q43kPVC7iAm3cEh1JNODGhvMHbCgaGfPPG2ld3LvBcP1eTifKG29LfximAUTGzwwbUqdNz+uIiIx69sesTm3OHcO7nKCwSg3RR5sOgpseVFRP2aPW5VPcOZzLdjKD6+arE0Y1bGi8Enp9l4yxcN7aUbkzMfgqAr8X3cZTu/X330s6I0m2mHUV/tt0SBrFzOA19Cy/jhm4+cmK8Tbngj5EA8b/GJfC2hthM3xNaauaXfPLErhfu+tpdw5U2FIzfx0w1tOVdW2rRn/FNMipUmUGyxk8cTswLFeEVlGtxnp2wX/N2b996RlY0B+qz4HM4kSbtZM2caFzt23uMUsvwFX/Hi+eHQuOg7qx1gMKziLnoph22n9epnN7vDrnxDHPVmjJ1jPvo7DDcp2POenmixyZP2E4LssgHctqmRczUkjiEIHTMvJPbUwCueh0LOcRJNyXhuO0X0Gk209wNl3T4ZPpn4PlHIwK8Mt8maWkzwfuK5xRUKlJTgJRBDu0pGynrZ7EbYd2MsB2Zk0joGR93a7Tu8fgfJqgo+hudElpM51KlDpClgggJqPDzr0I9SvKuPTk41JQYDv2/Q7B1jZjZsleUOdLQovqeBEMpL83MSuJkMdoP3kf1qqaVIqc9DUkE6Jl3g4kJMh9lCjEYNsKimhNMMEFijWxRx92trkr+O8BWgUV6yXuCaG8HC8ICfIyHXj47nLN49HYk8AWFtqybmyw7Q4anuO85MhCFnZfDbWyBYjoquQ/OUHtm976a4ZvHVDknbrS7ZhtpPaXGmJ8vrxGjWcMzmwdmdxvNBV+jjnJrRAV4KCLbzICzRcEXfDt37UOxRZ7kkzVZxQ+Tws1sbf6DrVO9/DuP0IINDi66qvShu6jsYP3axi6MBXcJHecDSzCTsjjN5bBvD3atw4nDQrs5q1ipKqlwdJTmknwsG2uhPfGhF/bDaccA3C/S8rnIkwcUfUZfIV1J4I58eLZZJCTk0ZRUeGZS6n0clvveraXan9oblHiIlCKJxMilKHuzSSwsLFCJZRJClffLeiVgsRkjc31vqnQcVRWIjTZ7Z0wsOaeDYyxyDoqiKisgSbthS5AUn6f1Mbjtw37hnRONOep09m5sxt7StQ1oURwd2L04u7sr4zwkUDar9+HK6tu064DVtcQenXUzfbjg8siGx4801MhhBqfCV5bod1MX0U/5Vx7IH58uR5XvdqQbCDw8Z6MItNbyskuqGaMRONrEXYBYRhY8XKYPRhXh+H28jrRw7tQ7W4jw+HGhRr1VonrTKNeMaLlvQ6wROB9Ao6fv21fC6w7CDUFms0bZQ2O7rnzrrnrMT61HbIV44a9ZR8bE1U1gg3ls1XEyGlx52zKVitd+ErEkMOHUGYRnvabsLbo3U78nfvVvZ5976bWLknl3l9ads4mFZeFXJosZMWLHHQP0dxwIdFe1Egd63jpB3m5g96MhTEu/i+DJcIvzPLiU86xPpE6OYztuTua+M+PheLzr6KbLUU50YbtNN1zZM8smll5CORzR4RxlljveydHj135xyMreIOtWfEcbfOVQkxyPjMv6PggvOsQguLiqVPu1lzPC4M25Oe5b1dlh8I/JB2aW573ovqQq34zK4407M4+bjhRSM3fuU1/e7Sh+MJoXAz4McHNG9JleDzO6WF8jxaDPxeVsDMukT5HMqExCAgKM5i4sa8hQXCEyF9R2fPLIU/kkQeBuPd8TNiLZuwHLtn/Ep8Xf1Bvs85FfblXj4eVeHLeIoiy+U+fQdgQ5gOQoXQR3gj7EExH0OOUsITBY+850xEe2ueNtiTXyOKOwlgwyK/yz9YiHyHoNg7dg2R3FVP1Fxh3bloxWg2LT32zoFKWSoiAsJrsynlnUUIpV66dPc/pL+SkKMHwUcneIVekjut0PgVdZJ5F+x+Ue61Mv4Oqzwb8d/hHzzyWOu20py33fdYo8VWd81H5571nS3WfrfF+fH59ev4OIrWO2DyMlF0efGvF9azpZ7vvx4b12phTjR54ZUxZCxWlNILvayPqBwcbjIdvFGQYhhgzZTO2PIU+g6+njKTi98p+Ur5vfiGfAkQHX9M/TC78WEdvd7s8Cap97PKfdXdR9PCo45tc86dMfCeWnR98qpmm967y9c6dXocFylDLieb0qMWQu0TQJOeXWPbn1rsErIjIVqHA1AMiClR5VYNoT6f8dkzX8pkucHBohbZhFYqWtF+ac9UOs9vugDlJ+O3QIDzV3yrs6vX7OHXjv8XwxRmmLl2/8/18DPwyybN0dhCTOOtFoglDkCgJO69Zf6MCiqzd3MrG7li4jE06JEwHErdEwTyn7E/0IVgfS8fNLpdpSKTpKGttMN0x3ZrazS/t240Tbi3Lpx1lRm6sVYx2fw5XNClvKldx0NtON5pczXyiYo/VeCbuHg3JToxeh/lWY2oihnuP473Ew9E3amWPO8w3ZsK4PasrEZK1xsr/tRjI0qaJLypuDjvgaUo/TgtE4wOco/Mdn0uQsYFJ8xkKTy93R2/qA6NHWTD0dl8gpwQCsDXZHEhICVnT8yN0QOvg+vX2nM8/2fj5oiqqqxA7WQOnTlzK9W+6oncMoyLFVVkNuLAOEOONsQzy+ZzA0LPnVFIKH0Rkr0VKzG2y2yrbGIVYySqyVlWIBUEga/M2QklAkHTc+LQRRug3dHQlKjQXaVCvs/QGphAxFzOsXIRTMFhJGJEZJoQ8lsdSmk37RukKzTeVzcvMaowqfdqpRDHzzt5R92cvOHL+jHOKUxD5rco2aG89jeFtU8MbY0gj8kMpKhKrfCOQxu3HQsJult9xUfKmsNPBxHv3NYtXcxp9FFqrgot8YV+LyYLuZ/flzGcwyUZyQyyiLVU64xmFxxuZtpLNt9fq1g+5RkXjOyoarQn7irTQfq5yzl+0RgSfhaTRK800YNSBEwJshqJIr+o+ZFnOrIswfEIluBB58YNGR8NVju90UoOYw8Yl3Eqg9xYIk85m8oZNUwM5DmEZpDe43KxKWHD1MSsqQwLsbcjvCxDvMhuHd23LrxjRrGx715fNcEmaaB0bNNHc5E3BAQYhk4xtYp5EJO40p0BJwY78g4WdzNocUOIfRrna6/87VPANrGski61zN3lPfhMnUx5PYn8k9Vk1sQoxuYdxsXGNhWMSCpL9QjEMGQve+k6XgbmN2B371ysF0IRTsV1v8+QliYM0IYermaIuiJPD0m72Y727yVhIqI0O4t0aeHJu/nJ/T/Q8dtpWyL9qRWzqusy/TyufutNOSdMHtmi9iHLnPPbjjrQ9TVzVXEJy+KE5RjIgUTbmt4KTF+dZpsfMm+x3TTipEPnEEoJ5pz5cidqhX8Jju13Y0W03wqKByNXHOC66IHyXQsd1QIg+BBXwF9Om153TSOm0+j8g5LI7ZxA6nTktPm9P09v0XzOFr5a6UKKX7k5Vy1Xjin5ScltWMHfqvb8HKvl7L/SnZ6UgWq8Yfsk+qUpK7sWqoqx7aEiZNOu16TFKFC/2v8t0rYfxRi9xvHhJ0wvrJ0SD9Wb9F3d8vOS2fGX4WT87uZjd43Ei97q+XELZ5UexgxM6ko5qZhFXDN6U4BSCng52puxc4eyNe/TAzy49Xh0rIdMFEfhFmtHXDiHpK8n6LtXMxniP3/V0YcrLNl1l324NUz4Ijvks4M+V7x9XD0v3e559qRoi5t9Oyhwr6oyZiAr6Kfrmn73pfetbmEhU88SuPB39u38Xj4620afHgeUjgEGZW1iiILsTiiTpiiTjs4UK/CW2tIqzp3HL7QeRMiUbz8rPUMWEG5y5kNx3cgILoqmibsZX87jI0yoKpW53hKaPO9L3Vke5PzdceEa5qBtlY1O0U/wejp9x1bzh56+U/PQ/XRiHdF90xaNZ3GecfzJ5YmHZJDujPBiS7viRo80OxADZJybXjql245tl4Xo1M3stniTbEUdR3KdCfK7a6TaIfzxKXX4syCDM7SMcpov/b20nfTnI8O75updZVVw75t/5Iwe/Nr4S6XyfOJSWHPaiKeXeM+Py+XZK14UtdJXLVeVH4D2rZxy7rPZTJpS+ZyFcs4ue+Vp8aOU7s3ukkealf0g7cUI4rzXO+yhI0scPhrlWVZcU/sxN5YVpy8siDTuxulGz51rOEsJTeIfaXaoNnvo7pXQ1l5KeNr+NZ4Lqpex59fh5xrlp42JxntyMFZWOZcqYrNTMP9kTK7VK8X44vtzH3TZ6adgcVfd74rpXZXU+x5Ztbh4y93EDdprwk+ZQr9X8sKHdECf5vgZS9H8MrRkqcllSfZvPss806onrw/fyvgOIfU8vDQu4vyEYSxeM9dKUp6IiKxKcpzITt0rKJnZ5VkcXv4+Phue9875iuP3r9SJf6+XNIFV88edk8ItKId0hIIx8vKCh8exunLxNSuOgfcxThDMSJ7n5STMd89OXFKgchAuOWEhLo1DXz2Ad+IZSIk1RAyEwd+M+6XH21iiXzRIgK9Z92v3vIqJmvYbsmI/nxGoiQnQF7+EJmTN34cJSqhq3e+29JEUW+vqn4cj5FjBBDmcuy5otJMfi49mytibulezHB82zpMftceM0xr+dKPlD+ll43M9lPBvde4IYaaC6ciJJO7ieycThc8KDuxP/RtyWn/x45cjs8G+lFE/S7gx1UPTl5cFddLtV1vwQ06PMbC+PlRE9qgSltUpLkeAU+/gFdtDQn32r+S62s3zYyW3PWDO6xdbmfh2zOO0qIZcEsUpr9HieN37PqHEO46ddunJNvPx4MWkN3ksov7SXCJKQOOwp8/DPHLKoh7Qc8dOsjG+cBzXzkesffjIvWOeWdinqlY6WTmJea6217LjkCOdv2wOxurOwT3doetvRMnkaaor166zRXwyHXWeS1o343qzGSJwgu6bhmT1zqVMVpe5LCCG4mntuqlSjkbIV18yCTIHTJhsjKsKziOHdbivDxwccGiPdPubqTRPVH1Zq/0bz0n2532WfUybnRvLj8+wylO+/06Km0ru+12Gs/NB1+0hBW712fDAdvFGBj3cXR5enPh0uvZm+Fb9++O3YjJnRJblcmfGWlBI/nGno/K5g0ys07YkBidbXEhP5FGk3PsR54SLkbVcL0NCL279LcSb2px28KNicOMN02+Vj5UAf2ZkCY+e9GgogNfMyfLdOLIHlIsJHQbDB+fOXdlGHBd8x1LgOvS+4LI8KDcCcgsIxwOz7FTuealEsiQxib57rv3iZ9/Wdt90LDa7zDruHZC05+xZzj4Zum7GxzhKru8Yr4TmyjCKjShD+yMN2wKHvPlHyRkiUZjSes462asQuV5zz/HXcS0pPfs2SzRT6b/pIj/Ldl1LQJUWUprDS7Ya4xhYf8FmE36tNGQ4HxPDs4hzEdRA3VDQwoBqu3Y3JBWTzIFNJ/g8e5T9Hvf6XrD/kivjk0ZTrMF3zV1p85owjOsSrd7bZfVS7Bssa44Y5cJyWfvISQI+lOMkJJJMDnRlC0N22FtH5Sl+bzQEs0yOhFhhUTl25BcMUxqNykrn3Y4jYYwNmdRbQTEmJDDi2IcbqFm7JvbDSSHMpu4RwUWfX0dTUAvqOx+YIFFoGwvimF+cNN7xsEl8JmZJhvPge74HCLY5khiDEkn+r7uvWZdIv3BToA9DrKOXRiXHIFDVEGBqJyqF6mGwfqRRzvKNCZhBNH7KkTN5/AVEIWA04GpjxN9lr2nRMBxQ1Pte0FyEJkr1nGc9H5dTIhz6Resr1jLMQfYyU9RoPYdgXkGjprUgQkD3m43B7NNBj1aO95BwVTKHdwtIEKDk72EUhJj8PhbLMluBJ46HNJSgqFT3poBSn7Ds6dk9cNuCb9tyT0ZtwdbuSeltPjOyoyTAqhT8TnedR+DIQWc7uai5EpOd/ZzByheeGGaWAun/OGs+nH1ccEdPZ9Bl88GNT1ygUR4N8ntGbnhDfImxZ4+SAJTkw4wbH2GD3+55phPnzJlM0DrkEUePDXYJkCkRkIZCOHa59/M4+IHnscTv1CmZ9IxzyDwO/gAoBwfm1cCgQHNxoB8O5rSL/p0/AF9xcEHoG7WD0hm2BmQQ9jxz5ywJ8m2cmzE/RPJvZfiPguGW5UZE376Lm0yN0FTebvwS8mhsPdGk2yipmEfwDNBaSIqRUePGePSvDPx28M/RisVMffnfxzrs0SMIRkeWeX9Aac1TbH1eikA4b+vOcp64SKvKU61kFmKA2uTGWsmGwQDh+w34WaQ2MZDsjICgDCIDCCwBSAqgPcHK5AWQY9BLWg5OmtGtWQDzcFYhW21StvhnMwl55N4Q23A44gMu+27vczAGa0DI3i9UunO2xqbKvLOlo73pQBljAYChZgHA69Ec2vs4x1/UPboOBtp9xFnv8Ghk/hjIjuJp5du4fGD3iwNUDHiX3fk9/I+Q9fzZe7ts83aOyfGv0+3zLWrefGxF+LnrZWtE+mrBVMLJxzwRvsPz7mp4xOExfu63fQLyNrMcDswhjzAG8UDeRq3h7BJJC7mb57Ejx9/kSDfsdu8AihOsGIqjFE6NR5SEjKgsBLrKPVCXHTJJawxebm9XpsOOyEWnYECZOBgiUB9YREANkPitttLZeuEFjaBi7ANjkT7Vv3N5nbKJuy7iZWEmUcByBIZNJmDEzz24MoNuw3zO8NP8+EujPv7H+9Ire7kvpj19X+6Uwpe4exRHiOQcHln3Mza4YZ+knuLga6cQHayDlCfED6jwn1oSLBQEYERgRVAsAcDy4eaoeqPDwAqB61q+OLK8qNQZmOSZvVkStW0rapVQRVFUeXUcybBseXRQNuwNgU4moKFY22GXY0W6JWHRCMfnXVNGOoQ6++UDtdNd3HgawOoFAAbgphe11/b2CYSDm4a9efo3qJ9W9WqDZNxltrLaTKV85511PExR154bZFmgVWbAywd7ZjW1KUrR3BCsuUcPT8A39JOJ2QGbmkHbLRytcN7R2HxGSWyCUdsUspIvU6rQ7QGdZFYsw+C0GEkmTifbBw+n7g2MHmfUt/H6N5nM8p7H3RSdMp8A7d/ed0OcTWHGIW+2lkZelkprCmExbvHpWYqCY8V6TnGYzAMzdfnzgYo5E7JAzs4wkLhhxud73zWre35rKKBrE1Dxf8Wbm9ZyPPa+UIZHLsMODoBMucaNYetqVu0ioi1POLimxcHAMxSWeABDQMFaW70pve2HZApIusbqDHxzLHDG3vjSiHB0xmdHzM0l8aNo6HYNMzB0crOFVRub1Ckl6w644U4LjK4M7bhNUuG7t3enJnjdl3CeKvaFKi32xyyTY3xp4vL42ja09bklKcIztjbbOMeqtdscZoGQTgUXBtUILsWsiE4Ng5e61jWHVOtPnNqQZssyErzes41I4IoureBRp6fOKLig0W/1AD9QZA1iH1aLULjC1skrEVTqgJxXY3l8cPDx6Mh+8KbGjAY6HDMZjQkTYB6ozVFjrn3d+5Nr120Zqgs+fF8svNz27LuIxMYzNolFkHpUqXZLxd6kfw+lPAuBGk2OIypesB1NjpeFQ6EAQA1Bkk3QlAlYTBVigory7CmMFBvQDeQhM89SBnYa3dQt2KylWYCwKq2hBCQ11tFGxIkQiELlBNwpeccTcmlqlbbWgDcRcBgJCa801nTdyODfpbIYLOz6tCSWmeEYzvLhrWMZDlt+NeG+XQ7u6L2k8Nk7+YX1AAj3xbgyPGmoRiSCIK6fKZTrsmsvDWIoqx4aqY3Ep3GUid7Ycb+fAAxIGoDA15xhBIDBLZEHby6WcYZ2QITIQtN20yjUEBwmlg6vlw4TFpg7aZhn+j6KjkUzkrWuuMpbtRt0oXexcGHftA1VM9KezGr3e2t9MEsIrhPrieFaLq5qMwSet+K4VfPptLe0bcukS4QgQKrbls5d8O13aj22244zvDPIddlVK27KcheJY1W2J08Rxg09TeisNjVxGYifgGQnTuIxOoG3t1A2+6c10ucTxOYJpxvexyaZmph3Bmt9jQU+K4vDMMmSXEPCUxRqaFMyTJYzaDhVRWMY1kj3s5xK4R1YzvcUBUhnepkztaKul8tySEx5n9uYtdE0EUCohCLMxQrIiBWNpDhYQ0Ughz56nkHfeskknOt6YKVCGxFxFBSJmTiTckSgaJ92GrECSSFceppoMUnRJJKgSAxMVjn0HWcummiETVNcDkYdccy8Jomg33YKVZGlhG/B/EbYx7Nv2bfu3gCaoyuEAg0I9eubmVOYmpzuVhNuFEYpzuuk1DRiaJt1zPGwwQzDVh72h7mPWBmJgYLYwEJJJJQzN3BbGmOAq+Biq1LFb000Jcx5p88cnUMHHlzfldZH9CMNxnzM0xiw/AYmMUBtJJOwkE1TNiXA3Jkw0QwbLPuOlgQjnnhfZ/z9BwbRGAbKd+IkIoZ/KUAJW2gXiQ3TiSYjzgW9kkClRYnZ2myDvDfYy4E9Bwa6GLCU1WiM8ohFOgukWArneFzfLEvPuh95NzoQkRQ7a1nE4SDKGMMMkCJzyG4pwOGohjk4s4RUNrw6tbJHZ2dMwbwaSgdaLOfUCwQ6aGGnYpAqcQMOEdwhz2H0DgAdDkgUjzgBtDgnh1OSc9g4c1dqUOm8UwIY24BgFb4NTZC+DMALaqVtgWw4YxvmghtX8oaBtQBS1KSKSpKqSEuL234uSW7ibve7mMdKdrXmjp76lSMGSae8vTGEL3yzywml+HSZnTHCCJHOEDgG4A7jRoAvqrkojzqoQnh8g9r+tfaSR63/FP1+L163wj8v3n8fHRZtPZfNPhmjPzKFdPUi2e5fJUu+q1AGco74WkPIUWr5rv0H29vWfN1WfJwnd9u/JcV398r/dewViK+nMQUtsSfZV7nmvDX0B/yGX2j75E+3KJT5jNtAeaLui6IJxa94sV5KeeGg9/HL37T18y8cjMnxQDTjFVYor8exM6nWJpyDxrAMSB7Eh0wqjyVL5K2xS5hvsn7KnhCmO98actodMkjXphQf2kXynDCPpJdiS0MQ0mmjwzFG7qd2pjZYrD8yosV0J1bukp6+OJL1j8M6mqvh7snwjvkejGMfhU/v3+P9ur9v03ldqmJ2mJ5mFcvHQ56/T/Cv1ghLpHpZtZnd9Q/yX9KoRQj+mxGsiySq/yFlgf6XRelG4F6FkVGRWoLeEgDUSRILBxoALIQqChjAxkRFhAsgK2S7qVgLUbgh7jbgH0/VI4I9Pu0107K6IdsXI6vUZovvs0hMUM6BseFvZJX3Ya2xobQaMM2XX9KxMVknReI9URI4x6qMompSJuRJ5NP/D/j0ZvD4gjH5o8i94MWsPjBcKpQ+DKIeZj15mdYuFCeMN273PcuMaeOG5Exxxi8Zkyxeegv3ftN87FuuRieXb7d7CbIaqwUu7Em3C/gtrcKRPzu2tPC5b+zNtAw9IcaDW4i5KNP5sDJvCdjaxdXCCS4GB5RRKfL6yLTFN2MnLz3O7KfXsqZTug1IfhgRrmT6LUrQOWHSbr3zJTiF/U/T7gDtbX6Glo/iMEYwQ5FIEjet/JrZlViJrf4P3IjfjBsPt/hBPGzpn0CXfx/wPX+H2Hyb+IeQZmLBRpJkIasKkhMDwo7ybSpn7cDY/A0b64fwtnJO+SRJl+5Q9AMcxew4fFMb0zDPbDkH57O8nr6u4nNaqqBJJJ0lNBjLkEN6s4ONDdD7cz/kj+B9Pc4fxJLl/jjUO3z/j07lMdxZTZ3TBjYIYIAySrPtw5KFChO/wPmOhI/GIggf96mHY2pj/07P5K4/z7an4m/rCnNNIJjo9rnkyiGdh7mNo8cz3QggPI39BIb20vTJMmHG4kQJu1OYdQDpsJzpn/kHwiRcf7bHIwHZmHczzD4H5CxzogUVDpDgJDYoo+C6w7fQp2DILssiEiQgEQA3dqD5+7Bxx48mD7D3+zmO452/VTIub7hY8gcG2CDyhJjWCp2efUVHPPs9nA2idMGOYOYrNkGYoR/Suc1sDEfg1O9oJDsmPX5/MNOOhnc3ig+lHUBEg3ZMbfB2lZIE/s9zN96WJoewmZWpjhwX6Pub/I0ECSRVUCOZ0rEcIbHbPvDiAbxia6067KCIVsYRGY0TD6Feho0Ko+gokIwnt90Kpg+xy1VVZmwXshPiYZJ1UvwChQOh9RES8CGKH5cSh9FzdP9I7OLmyIX8tDWyiG89qAJ392lb+5iVcv7b4HbvaEymM90JktLtDMo5jJUuRZzZf9lw2B2cXBkEC91dwQNiJGZ9RDzefnhCSSZSP1WSKDEtZ+7MZkv+uejPVJ8pP/sPceiuX7O2+XTtqv1pJO47ybReiMxBCta0R2TgmYgjTIkpXQnefGUR9HWRpP3m0fevb+qn7cO1mbrjyOXs7tYJa4Er2freHaYuJ/2ND/Y4YcSnt22n19+gZ6bOodtjgp5jVOd9vmgH6AYCL3WiMEDuQ4jgpN7MoaQf4f4DjuafMmm3JBS5OzuOYOuXT1CYjCghBofzk9x7aV6hfC/I+tppyk72dOD6tGKkKwT9n1XNUO1/gcqUkhCQzSgB0ccuO2x3QAR9DysL3IfalfD7uas/WjE4Bafn7bu81Ni8Ze6cd3LJVnf82TF14Qb1EeEdQ9i4IeMqk6JX9eCoOvC0/M0kg5RaHp/C7zL/JZ7JyedVUkdPcmYii7S3ge6vdMGPD5Q2Ep4qJNZfOsS9KVBjiHunbauQS8z2VJB0zvMrv3yXhvP0/xa1T8w6ShS5pS4gpUtrpMjs7OjhUCgho3809FubvV9Ue/qYprTwJV71yNYW3nZfu+UYLqFhHYh+Rx6NRGFb97x2RVHXKkNcveVxfGHkdWMtEQ2EEdU0JrdwTdO6V3Punt2x6okTGc1PS/bfQoEyT2ni+Ij2di4ZyeIIacTjuxKjE65c3oT2Hq3nxzm2v5nLxvmmGwkmByHzcsPh5e1qUpcqY6h1T4SRnv9xFAuh9wkOsU5xP6dQRIo3B0lOlBreI63vBKw45eumZ7NtTjPs3nfsVVUfhe/Kiiztt7ClhXq2zXj+2nXuXhIiKR+LV8ls2tJj3MObOGbI5f6cOt0mlI+tu6fememl/f7bjvZX3NDS0mtxD1vnjBhfGqfkw6qGmOuRq5UEvVaOrejdr9Kdz2bVEFZ6u/A6kBTQm1U7bQYj5o9DeCs1vGVE9XCQlsqCBMll3wmo+SlIIxZu1F3HHFHsyyXjWeDejUR2aHmSVBU6vJnLVXv49/d17Bq3q4qseyFnlKVh3nX88FAUR12CcOuWUaj6WmmEJI2VQ5XcfC6MGsHzobYob7Unr6ndivg/xXBHr+Smms2SVIhpI8eD7psRIs4lK2ElIJAmY9kFpvdxfvljKJQriP0eu4O2Os5q0Fr3nbEE3/BHMuJS+oEvJDzWpneFB+GuIYOUtbfo+j2c/CQqt0TfvTXYPdq4SXquG+8Dda+MXXqV9Z+/OCiJIrL8bNIa1Y1opsyu7Pwz19PHYu/nMIeLIzfOgn6E3y9M12S8e01RUYiqfxl5/gskx9j2sr2+17XOYq6nmK8vq22IAdlx9v29fP5eirGJzJnxxXzj61fDXVaRI7ex2Pk/2ekekPVVU7oiWV/7sVv2T1K7rxu4NgFfHIE4M+EntOB9+S3rU5OKB2lRB6w0CIHNEbGs2nDhbi6Tbr937qtzESMObnwzN9aRXB/VFu3u/1X8cK1v59OlabfJ1sTN01EPLhLBdaFzB2HmfTHKSTM52G+UnGQUuYUYwAtP3d9JaKJ++Y/luNnOsgd02R+y/ZcudQB+RCmNS+SzZsiQSDeGrXS7w4hHEHMT5ApvZ2h+7Cofud8yFmLJEAl6GEWsZ5plNCaBO09BBgXBwBwsD+bfxhQYbvsBUbgSP2XBNBnfgKMYmkQyxdCnS7jm0pqJLCgKD8rhLbx7ZN4eQIWHdcU4WkikhOQ7g+kP4R58YeBsH2GtQ9RpYqCoHRhOwPzAZJiKuc7zx5A1CdQ5g4b5d4kmwCh7gg3PoP9cXhGbbqrj5GENzmYckIcw+7gJxH+29SPcOpxjmHQGjlqjgPfSG5OLKNzSJpwJDMwppljfHvHVyryIQIr1Xk8vH0JNAopkIRmgYYhxIBMw4XsQH24Aztg2DmYXVSSEjvEGmmi8in5Wh48ighqcGFgFCtD7Nx7rIHMHQYhqDHFxTklZ0cgEGBZIFpmEsHIaDhDAchEXYD7CAFI5VjlCegSBS6pveO70DF36ajRqeIW9Rj6/LqGo137cAberaKXs6zp3E5VqSiRNyehGdKFZ0DREwCQY2Wg8gV0scYEia8gJq65LRqpsdAuixggigo6nSRERPgB4AUkoB3ByaQ0jPqw4cznmc0UnQ/oBwmEjNy+GlgwT1vlNrITEMmjGZ9JZntKG4jERD90D9wh/Vx9DEea3RA/eR9xQ3MsAYQf2K7jhHi86OUhPeqduxRc9iUawQ+HXS4wDQPokN586n8kIQFYQEDzCW4RWGr7ZCj9LodC+pe7st3aDsMSBMsoz1dSwSMSLEEFBYBv5lUA6pCGSTQsEQGRPPP4Cb9x50L9ZyBBgiukKu6RVWBRAQGMtKwv+bYNp5QVRAVVFh+0sJy9SmgSqSHXkkDEnm0HVI6QvgZpGYAxbdhOSjb+2FyqIlIegpYQumxKGagOOkBQJHym3glwcVaOzLwlz9/uIGkcGGQrE7CjQQkNCSzZcPin1QyHMbg3JABw9gUhkDsnpcnvKbGPomROofgUYGAUQWKSLEYxIQpQoUDjiE6tSMSMYHvMEss78JEeVqv4kCEkWD6F3tTkMXWBEA0hwdsv3bzE2NzbILxIGzbSON4TMLnSnkEJVmq4XgXOu5NKl4C2Qj3sebZhc5O9gmhAZtlB2iECPA2DxP7VQED4Mu0m7FWMHuE3AH29b+yGePXAg0Ze8Oip+wIKdUiEQkQapKHhqQHAx0hwUBypEG1qphkheZ1wBe+ztyx5BGD6AFskslLVA0UkWaALh5HpIDGAoiAKAICBBAOPSi/ueneHXAxir+WMMD+L+5t0B0kpPKygigHuDk2HOotRAx7bMl/WRzcmVEjrj3+hn0JB2+0Xzz9chJDI/vfe2gkMhJpKNBQYq8NlDJlhwj6p1MVg4G17GQPUPuhIqBIJ/s6KU7g4G+STjwktKsqJmnnx0XlFfAsUois3Iak2PcC6UB8g3oX5f3/WURK/dDB8tXIOeot9YcYRdSp8EE81pFaqJ4kSxYrd2GHp7Bd9ndTyP4x035hp2Bqr84rVrCs5WQ3dMKTAwIV5bnu+FVw/d2WLfUCcoe6/y7yeLEdlNq3/IP8G+wd5Mzzsqv5jLTuv4Io0+QnsjHQ2UQJQUL/3YKyTj9NF/hgVCBxOptuehKUf4km6I5MAFByIdfXP+XjlTgP3DaG6bqGkkkE43ZYyDADR+Vahn5B61ccg+7/p9F/nc8IEUT4niZgQ3ky5IkaOcUyHYqEftZmPL6HLkWtfE4Kkygqt9M4HnjOtg/YIPr+X4foGU86oMSDA8L1Ai9uCMSAFP5T/Q+nhz/enne2h3mB4flQ8Br6ZbKB/XZUXKslBEgKjpA0apDTIPxJGgjAZxyFnQw1GaDWTAOSG6iQXwg9e5yeSFtLN4mdUx7fTX9EAyfrtVpDIqblTziGY2G0VEGMj8weibMnyRFkysKD2stpJjbv6r+hV0ymhCQkAccRkB+3xPqerA47g2SElwzCCEX5NqFeu6dlWN4JJpNwZigMSSOegpIpAgAxsK0f5R1cKP7IG8NfhkfIyNc6OQAw+iPJixzb4EoYSEHE8lEOnbETMF76oev4Ao2ZPCwEbGUL0RvJdpFoMScuqNrvPnrQSBnRLCJexgoget+93I9hom0/OcBCiE3J9+FEQTbdL3OhDIiGxSl3w/gGNoHno+/wreRkhnIUhoK3omZAM75wuxWvjkOmiDIQkRgEkSB9BSJBnZoW0b+kLrB9QXazUD4cDvO+Z9BtxA91UNV0O+sQSlWEMc4C6bbYQHcstMQKqVNEwy8IMwgYTGJWwUe+9hbQWS62cBENIXWq4AmZK7P49pLGLNW7NBkM9Twu9sI8OJiabubwiVKA2UmNCI5hZxTX42838DtNsLJBSKzTla4g1PvtVdkBWQRIt0U2yt3TVmGJMv7TAsEJ6zvU+cCAQGfCCd4T5zRcdQDPw3AQRCHMPIB0pBpYFj1zkUhSktsbSPKSHSAZAMugtkUoINNL6Usu3oOmPq6rc4eXB7WSBZKoqMkldKFwI/iR9PnVMh4fcdUTwtPqhUhG7ookyIVAYSswERqGRwBLIJUmNrYQKGGwdT0IURifGY8ZJg7hTEV7fvuYiZkVRuXFHMcmNRltbW5hVlqKhKpVqpT1XfmngQ3asY5yg1tjBenSdRFqCVXWN3xhv0bjbyn0lzhfia4NlfdMZacAnusQQ6PwDpfIW1BTx57HVShrZAp7A/KTOeN4thCrUQMg/Z5ih+AgHLM4SbRbVzykyhNBzP0Ah7/6J/T3HMnV7L6XA9wWigIYMUYgJmc59YLCPEGZly8h7hqOXHYIQjfYGCUEKmMrwwsr6hAgj2CPTgOBlHFgqZmkEiGguEXFCbHyY953dkbS7I/HfN4/uVbJToN8GaLzGA1gklZdEalfOUiriqzU0OZNDvJP5E5biMWWOHC5w5ZjESmwiEby7EmXpJAhHLPoz7bzSwycwR1HAzY1gflO3aPioODTY5MwQIoxxj44ha/gcjLPlto0udP0uUxt+Tnk5s5ZNanfIbuTLbvQOhsg6pBJrW5P2pv5a38JNjV55wascEpZZalHFILnWhe+GhdUsXYxIYRAklhF20Yijjnfeae9HeievIcY4bXjHcdI4LykKC+cd3ThoMHhApHGDdTjrG0KioOJfLbRLQ6uzlkRJGHJ4cjkbcNlM3egxgNM5mCE2I46fVFiIfNQdb8Ny7bcswPkT+D8G4KDlCC+eFmB2HbmJth8o8Kx38URAIDJirbkqeVB8HWBGrNpvORorsnZ6sz5ihXNn7Z0ZviHZZemgO6EUSePFs1ymHHHVOQKSYHWxSPqMIxw7S8QTcqTQiHrQim3cWZggvA8BZMFklCbDvRLIJICaXcVnrd4nnTQW4Uxw8jTwUSPI4lUzqqbjGfqWTVvtxCFoZ2VU4D0qWudsY2JjgHQ0RQabT09RKTTBKyUlcLiMZ3zzm0yo4ndcc73qqUIgd8ojBlEEXWpxi4Lj5ty2VSBGDUMIQo7O/EqtrtGnB6Mq8OSPSiGyoGpPiq0EW4KCmN4hYBZRdi3ESiYqB5cVkM1Ct3ndV4EnPpFoL+Z3npvV1J5+DRPhg0a1sG5CYu6ZyQQosvCdXJ393T1QxVBYEeTbLGyCyvcGi6hDiHHOYxA2szxNQ57BuD73BKGiAcgOwQsRVSHehMEshE9lUMmeCt/LQN+WxzfO+KHcTuRrRlE75xrXZajWrRKacrwXhJLRhZUoTJMywnVoxT+mDKi02BafgVIl1Kycec48wf3kHPOu0O9uO4ImH7Q/TFEKE6Noxh2bQhNbXxOZ0YA+djTHRAOHoGpBCOkbXTPyjiCZ1xNIsVDyhH0N1hZF4ZxqH1QQrkdiMJd1Ss3Tu5N5iczSvmoy8uuJuM0KqKLV504tUd6J1Lukm/knMskYhBCEWRcB1dE2Sg4hgDROMGESjk6jkAwMVhIIdAoI9TZdU0DYNQSwcJYamEGgpCg3NZCkP5GGDgaDaahDYWyg26BQYuI/NCiRaoXMU1z/vJzd4mX9WhQWZDUv9sh5ARe83HEB0XqKf5oh/VcSMhBIQkCMKc/s2GUgipCdZgHV0DrjDi1OYg7bv0TldcXZY6V23aLKlzN0znxZEIKgkqXZCEJqc9jIDrfAlJuUsXwbIbDNG5nh7aJrqOUrBgBsQM7HUk3fIk/IWBsjvM2GYDkfl9Cwk3huN47rJB5veUBl7zvsuOxBPvz/gsU48NU0CAjfwMuV4+Ez6TlEP1hB3kMUT+uI+BmRzr7TaYwcxvQ4mIl+Z1vEXLN12RQRFUnZrZDmPNQKRzzsp8rrZnvvWFBMGlElBEklGFREsAqAF9Ecx3HWZEDGE+PSPxSpXjowxHrf053SodKGSjSdvH8EoKPGdTJQYL9tAGR8MFrwDWkvJUGHLRr5Qu09N3mNGQUhfMHPwiEc9Gl3C0goehEAYQBkBCs81XV0HiPxCrNYTFvIXfY+z3z504HhAgfpzHJRrUqlOtVxiBE4YgTDnAe8hQObCz88wpFJzrQ5o3xZvyoAs3toDgwBDEFZgqhsLE8iw8SxwcBZF4ivonmHBySOFcoGpDclH8sHU57mQ/pNxaQPeJ49oKJO0mGT8Pz12vxQQpkjJ2N3gUEmxKE4r/xIinNVO9h3tpKJqfD216fNtX6zLflvE3ZnNSh7UFkk8Q1CMDufvAZ/GSFCuzha1tnwB9jKkzsjY2HSNW4crFPouHIt/wOTvGp+eKRlzQNowOzGC2N5A31ka15XjfOLLhSbbqtCidHku5vLjw057878Uep+1YEY7YEoghugmYSAKREUANyWEwD70k8hECoCMUBYoRYLJFYJAQ8vXViJpVAy6AbIWC7Q1cPeAjCRGKuGV+0nAwhOr+ewtCBFPBlOhKWZgN2QiFEa6ilHvhaB3Zt77U/MSQgsF6AYc+dP83uMCHVQDuischgsD8vI8YMIfGPf7qdHvhhT+6O+t3gIGR8wfkCtGflfs/sw3h7TM2TMHYSBJErfphRQ1CtqD0IsXAslCciP7yIh3nFz8WS3l9A9R2AUccQ3gAtcaYRpohYIxWlKwrYIVkGgTMsOsxukANCjBEqUYAVRCUQKWUBRLYUFgwkYMRVGRgy21oQofz4JSgxiKJgkcsowxLGFPbt+8bZi5EVC0P0jj++NnkDlGnl5DIEptJOFgGYi9CKAlxUhFU3mTRbBE5q5ZVj68fYe7R8rQfrg/QROlZhPzXw+zNkyfnsFAgb9QAgSwcA9dJsDagxuy2Nuwhuq/YjtE9XupkT3pEMyVwBx/S+c0o4b0pegemBCSGWUBBsOI0h5F9gaCvdvWnq0H8nxuvbDII4EPMg4gV+p7/ykGxfT6Xz9ZMg3PK532YXI8qx4NbXYXB21gidQmGbYDFZww2XxNAGGwIkRjObTguo6SURGD/fponj5zOP9Q2MVYisiRdCcE3DnnblGPIidFW68DxdMSQ/Yz2fy4I/zmk8M/s+y8oyiL4tniMWsghsc8xNWwLys8wJ1IeYVkPX48Z1/1PW9XO6FM79oT0Hxjo8VVWvE/nQeB43dsEvFVPO4OI1uJRdXxZMfl+49D1Pl0G9WEScfr8HhEnck7RIUUwsKgT53TJMIxh1spFU74QgH1mweAWpmBYalthRKWC7jEu7ooSx8M+vuLYe2SB5xyLqERjFR4l/Eb3DY84mXyhAiTndwjAsCqIBZE9n0aGTqPebuPCuJa9ENR8xlmR33ytQpoGep93hdz2kDvgUNIQIEHpfMKRHkZMRJuOMCBBGRUhAhikTh4/CZhvj6drbhuq7H5ETGAtsqKFVEoWmCyHoglQUkIjB0xtZZ3DZgyAh88xt5uoZTHKKuNZujZcueqYJCS6aEIWQkaMvx/ZQSL8kAtJgOiw6FIMiBhGkUWFEqgWsQGMILCoUZERhGSgkUdwQQKZIqObMY5h/wwSRRgKfsOwDYDYnLrQQN6xkms7HMGLAidEMxCs/Ye4dR17Twm5TGwl+v2Voz6/P2/LR2zeX+rjjA8YdUFRIigxjEZFiN0GHAXgEBS96ESwp+aRkGCrWSD08CTEOTeTDEudsT7k1FFSpRtLWCHkC50fVB3gKCdYB/PCs4kijhRqlEH0HCc30DfL5hX2AZYkSIG08ew4d2B2XLCyIXOI9Ok4EjSPbtyGPgcWN9vwrjdv5PB3+cHoLyRUlDw8J4U0vkLIRWNUx+raRWKmkk9vVtd1ZMb7Yu/jbSWdq3sq83KhnbFF7q4ZjBpiSjzvciTLXffbNcUq73mmeFN9geCjlhWKLCjSwtS6aUUhhJ7niVT0rFdjsWL4DMf0DwcN84F8BsPZe47vgWLvPXfMGcT0hoIIc4H5Y6AJIg/CAfqIIrmHAIg9feDumoZBtAkV4Oo5A38FBPqnX6sCgMJp9J1pdfWYS2qU96aHRovXbmGFEHK1pKWy2lZZ+KymWKCihbdiB9RqdEySH8xe1hAUD5kCCigpCfUm6HjBNk+J+SYwgpOcops1gwQh9n4j3nuC8hA9E4BN8Tb2msHrkMkoo7c8Y+MGjiA7hNoi0MzNeH0E77dkHtOfc47INvEiFfOJJn40byp/LW1rV7J/ws8qFpracxRWn3hYxvCIYagg92NO40BkDJBTTSamQwsNKXTv7dwPY4/1J3aDF8mB4SoNx4oQNn7w47osIkwUKL1KohDnbgmGUltkC2n3FzNhRn+QtA0idAt1qekSFFjDzHtkNj0Red8qVyM8dF3CdrAiCRWCiqRFVUYEWSMUkgRUIpEgwEiQBibNHgRU/Un8SDQ8j3WHKW3JDBAOJAO7OQCkDcCFtIgcMYhGCVCiRfRSFEiCKyKRgsVEMIl9YfXD3T1knvBsm8DhHkEpfP0gdJFKdenlQsje+R1SiJCYBAlwMIPjje9igjciHAzhRpMtL9wno6spvgfPKqiY7whwgp8hEOsg6tGrxeIunKihwIc+s6DVmdQLmCjGgpMqj+rNnEuHOdsN7KQhFYE+L1bNdHbIkXjBdZ1BgcOztz6y6ZMFFkCSRdTXEyVk6ho2p84cQtVffZ+9JEHYKA0AuKoZMH5jqwoPhxqLJIQh9ZCi+BmB3Bs8zsH3HzYFcG54caC3kB+9mIoNGu/A5WnVHrCoRxl+GudJEyg7Xjkh5VE7o50LqzleNCfVZghqJRKJugYiX5ykwGcas+u6yQ5RLZbxvei7TxabWZp6UzhYgqO+shgz1OYhVwVG3gxtkbHr8rnn76M/BxROrhfPZOsMEvSnZrROwSyaEHCNrtpveO2z5ztP2Njl/h5gcAckp+NBBCaejLpTpGIvlBw4o6XZ8+0QhAIwJAjJIEGJAQgRDbtMn38l/g6Pbk++Bhe1nsPE6RL7zoKWY5mD2Y8YyaQLUtPDyl++6rIYwelWGxUEtolVlpVqTRtc1Qi75UPCi36hsnCbqYXbKEUWCOhJV0VLaxFElGEUqpYkUbYVqzdKDwFBk1KbiLEuskVKJQrSwalS05cbm+1GTBFm4AgUkQJvAkwg/eOIEZmJRHv+TO9qHcgD2ruQBCbqCDeRgdyQ5xCEXkEGuoPePHMiuaEBHgPfeEgw4GjJgucTxHUUdHpruLhAulBiS/n924bzrBYc/QBwvHPJFQUFD0X6Px3BLLn03g6CPhk8BpJiE4VawkWQ8giaR1Qh4Dd5hkAwZNdn6OZid4Z4oGEQho5EBJptyXo/CGkWCjeZ4dxQOawQhqsbh+B/GZ8LziHoxIoI7fI1Y6MMHQZwN/1cvqW2WV9xITJKs1YCnXXw0FHW3WQYwBhIIARTj7FAiwN+tIuBCtFShHVXqP1GgWKaOfj7PaeUukvYnwNU0WallmB8XZUWAy4ryEG7c83Yp42fhyfjyvgs3qCN4f2TZ7ixdpwFsSKR6U1yEO58vI4qiVpxjunbLBYEOzPqYAYfnHLDa4Vgxm0VxJjN9lECQKfevP7lSA3RDT+hiGKBcDti2IPDBV2b2o2PiJTuPCvy0D73YTzQ8Z3DIsPR6w12iL2iWIlpbaUKI2RWMgiUQUGkFAqsIpEYkgtRtGClbBASGPCWaOWN+fMmYAoaoJwjxFowCKQdjfB1gbHI+NXmhMHf9ieR55pzWqznsVyUnZ8fdezMRNweHgm5Etdc0Q3nEoMQwSPtPWW90PdVGTFenm91o+9tR8Ij5HmQHqahHKMALFD/LFFJAWhyaZbBbB8DDcZ0Pm5fGHL8k74+lJRrdW3SvuPOsyQ6EC1X1T5uW3X9iIIJfY3UG/PfamO+nGPpxryzqXAQQXvagYFuByA1hSamg3qah6I0INxKh9sKMzVympkM/zwovbUbMH2mVvWiqCOzvJjBilfhLtdc4XbMyUW1mlyU5oRNBaDJszGy5gUKUgyZQsUVIMNswxFVdJRq3RrYy8zcNBrdMFgXlhZihIfeZIO26TQMAQpbAJcMjCN68xN6GgFFmDIYIBiojFYJiEowS5pzUURLNZgjUO5Qlwdose4JLbwCZnFE9+R5Fxb4mMBMCMo1SqRgzAymhnbOrMm/ECCre3QUkcQJ0PXElhyeMPoKoJHzhg1Qg7cGxsFWomkUqcIjRAxHhFX54ZgAN12K+BjRJAbTvHQN4GBsoSgg4BKSgHHEgQ1znE5jTxy08h+9HmXhUQyQTOYgF5Uqfx7m+jZ9DJBVYinswpPmk8M7YPcpkv4VOwfVM8IdlCrfJAwCe4wF7sYCJlNJFkAqFO8pEo1pHDFMMcGBxGAiZhYzUJZEQwhhGhSaTA4ITJJTZBKQoFNmjJSJiAsIIoqCkUFAWRSKCCEgkYsA1KASMQ5A4CkR5OAPEiaYGAQ6KzmAwgYhIpAhzk5WAI6393y0FllUzicSQye3SFfeRHWURUNBbQoS+mk18erlwP9iEfIu/oJFWTQwYwGBWg5OCmPzp7fdT6BwfamGdQZRQSSeIwRkAEfBD2od+3ftMNfdsF4VmAJuiqgrjUJ01KqMNDGps1NL4hOY28bzMdnFcs0U1IlQJFdC9ImMShCiKlJ/RooWrYCIRJCRAQQEgCyERgsBGEWBaIyUNDQViCCNJSFLCtBLJkQ8daMLxq4xRtCoiMRAiwgRTNHd3zgTpKOxNQz1tDtDZTjvCQofA2r9x5/o2iz4MNvfcavKn+FIIxHm5vvnH8Y0OBQQ0wxJHpv4HKj9G/Ty6lkU4NDpCsHAyGrvoKT4oD/GRixGR4w3nZMWTSaN17F4i6S6jkehcQHxlH2qUMi6jQQF7GvHGEDUrgUoWA9r44Mgjc4/U7SgCmJISMogUpAwhupV/OG5DVROxwU4hxFH6P8RXs9pr3EYgjrUgwkhCEYEYI8D9Lg6mEye4gY6ysLxFLOoGLDAU9EiRD03KAT44iHkHOEGRSDFyTsLiSWhYRBtBqqQkoIiECxTceZQ4Bg5CCOgJ0gv8yurtSlbNKiVdA4A3ln5YbCBh6kHiRC05mH6hdxxNwqUMjqdUEjMA5UAbv0AwEzOmJuQ00T5gDI3dEOSZooLYMn4kQuJdhahDhFDSEwZGDMQqaQzSgKWGAMQtKhiQeUreig3Mj9vcdf47whpXCuAWLhYYOSftK5DIaBEoMvI1kgyAHICG4gIOsgKBQERQvogw1Hzv0/up8rpfmKVKqYyFHGKC1J3w8Y7yAREN3aAHU8Yg/pih74QipZEAqQvaIRhfXDzfXAScgOB2ClgiEoozW0l8T2P4EGMCswboGDx8gSMSA71GKLtFXkB8gaM5uPz/BZkFvCETkPQVb+qVYawFFCDQB9B9vyZKnw5Fr/B5CB3e9PgoWXrjIyC1xHGbSmNEDupShFxG1BR4vQYVFjkQumJf1eHr97IUVCxyolvkpyGW0oQi0OhOXlmCxJBQjYyGCDIS2gJANybQcFhexuA2dozAwNAaNBmihZrnYHHykA3DsPsp5AgWAgh8IVqJeebifaIgMRDtPYAgfWbmCQ6QfxJ8v6JcM/Y2r4RM+/gP6JIUT6e9ZCbdHN2Q8pJjMoDDkQcYuA7tTzsuPicLrti7OsKDehOk80fAHkIBHjfEofUiU3NyhzWFMRJCLYBajbhfovp+3UhuqSmmgP9wShueQYNihBqb8bFqh2Ywm6cysjMX5pq6AmiobnHVhIJAgY8ugjhXmm2h+mEmQO/ZsujQkkJIMiigIIQSMIskQYAoCxFgQBFRiyCREASCkWIwRgupYC2sjWD6zaSh9kfniBQkJ1Nk35+5uHMcGHJ3lUQqznZjGOrqTsUdww6daDCvz04YYgZ7tZ6z9J922t97FH+ZrxZUN7/4cFd7Nsoq+reaTaJQnvFOiKCnZOSTLJDq1SbCb5IIrSN9nHoYtrI/gp8rJxIYyzCNLfDiM5lcHhizOsviB5maCQCD1IsFoRr+k8O/vPuEsS0PEGAbBTQMCEQoiWDnVI6V9bW5CA4Bd6wDalKIJMBp6hh7ZiAOQ/b9ufcGUqZ+of13Z9jWIene1shBkFkU+ynzz0009T1Zy2R8DY/lClnG22HAh1dP9IqFsy+ZLeqVE+K9GihHyZLnMfQmiR2714D+mBCQCea/IoMDr0pToVxuQkTeRnToZenxNTWUik6EmHpPb7AUmpY/daH2ul+BdgpsVzRBhaD85mMTLSKCCRGGxlgGMBgljdFgCSCSsKI2yLFHELKnXMkl38C4HH0YGjSSl0ZCi4y0DTQlWxAJMrN01Y2RWcFssszLlZdyYouERglqGEYEKhFAxBSLKCwRpRdg2NTU1TdDA0WzYpKbEvIl1Oq01Kmzhz1hg0eBCptzJYRPYRhDzI/KQFuK7M5wctefjowOY8WkM2p4AtJODrh6ISz+3AHA8ATgFM9NMQIqikPqDhz5ewPMQ5uXVXcKthuJCMqpVwlfyCa1tmFMlMbsiYmC2NmHqLrOuitrBhL2UoQ9m+prpwhYfA3BuUweLrdttUW270mbMQaLUUE7C6mGAkXliY3gLgzcPnh2FPpRpQ+Syye4p6uV9Z4Qp9PAWAk+FsHdFyDI5CFzHcLgkV8/F4YC5NEM2QJAQIDIdHdKurNA5ZZRomqF8lC5QqEWiu4OAYfoet5ShPTVXT/Peuw+hZypu2XILBCezg9twaHhTr1+8hbQsQ6JqLFnIcO+XMuiuCL8cKeiGvbzK5wgoQtkDVJDq7qckNIUayeXus/s7Zj46po00SlpRsWfXmP9bpytFasm45loqeDnefk757+U8wHmYcZ0HSFB5FFOsJdZeiD81OFkOe1YSxaUEkiQitMAcVFG9IvnQDtEPtYTnPrxAzK5j0QCDBZDeCLYObbSOkQgXKgiEgE8wupLPgZg7gy0johGAhZU/Iw3zmyG6OqTm2lrTefMgnya/Mmw1npMtu9icQj4RyiHGbCWS4SJCSQWES2URFdTMK+DpGFWmGEi1SFhDQPDcWC4FHlqCGqmHFAVEogBIMjBhbQLASQESCkRUqS0GkWEikkgosUCwCxlCiBYICCUCxCyAkQEZAYwElniHtCCxQkWRTEzx9cFzBB7QqqYMMU9U1os1GRhNSogsQOwGyAz5PcMP4MVMnWfdy8aGes+pfdln2ftv7W7aYm+sppVnz5j4545ncVPfaXMy8odYLFoccjKAvkXJm/XswM7Ma0yd5A8+t1gn327VhiPpPx+BRlmn9rYMNp+augN3khj4u+XKAv+sTDMGLYL4HbfUtBPhMUg3ZXDffXMU8BDiV1oKw6FvJ3RHEklUFsccVMyN2OiCQgFhdJjuh2DX34jnI7OohPX7SjtPeqVth+VpdUJagriJKJcrNL/AfaO7bdJYd+7DPMrEQ3HEHeyI8zrMjowjGxKrw6ZU4OJTjagzp9tO03o9om7J2U5Q3JJsWhPFJPcu9FQ0E6b7iZb3V2wSyYt97FmCliIpy8Up2zoKtIWIw9KJT3OJwYci5ZN+76xBbubMAc6tW63HENHGs7oPx43m8o4w2oo3xVXExWjPFgcTpsHA7OYcE8vpa4qVWE4oA2/Fifa2FUmuZkZCGqgJB6lraGBIRcHCFopXcFhRjFhuL1PhDgi4U8zQo1OIOCBZeSbFriJHGbiQ0kMboVdyUoEuQxUQHCix+9whIVOhyVS8I8dVnxDSbUImGMx/Ph7mySUtU4YIZx3G95oyYtulaSpMkk7JNLqnKUpkhJsinLiJxEHvvTSEoV3FEzHn5VFFLjTys1USsSssrqfMsGBxhDDC1xry6T2nxMJnyBlNwQInyl7CkToWs+/YLj7GHGGfl+rsahw11ehPmn7kB4cFCjhkodjr8ownV1lJdEnJMNKmilKRG4355opMhYeiYlLOBCsVRjGCqQ3tiowsCEINAZyUA1SWjnA1DK5AtaBgbHwZzIEi8ulFt0+L7t3LlC7Jn+4e8p9sejwcBkwQkgpEPw76LnfmChg4Mtsg/ZqiO2pQ2hUagsGMjGTSFwpWClsLoyEpiaPxx1ialxHamKtjpseE4O8XeHgUchTIzEwo4iF3QO2OtTGYMzIBWauOFaWWsNLQ0EXdVyxI8Lx8Dpg+9hWxDVroUvyh4oEiIdmakM8AwtFgRmetvoohyXcJeVKXSsJyubpFTOprGK4mRoFxLBITkWAeKSSCKxVj6L17EL8Nv+TimncdtTb79xEeZ3QQ8EgG2skDqF8yQIwIFlodkUg1HYOB7QI8WD9G6pYbtWmDDv2yhGTOHsSENq/WGnKaHDK1IpugWNnTRtOGslNGEKR6KvLCPnbJwwEd/Iw242kuTVHZ1h+XC5YYlmSSICxYioIiKiO4rHMDA+wTDIUiypS0KgQQkQSIAsJBE8LCjD0wgUDIDBkz0LjKZ3hdk8iFky2TYzfQVWbjpKkjBQSRJrJTBaoiIZaloWEwtcGQiIS7slqASNRIJloShg6EWOYjrHh0LeTKISVCuNM9KecMQmR+jXUyeA8EibnG9Kgy8izFhvElrwm81Yq6sTq8pDkFCUuHLdAGQk/PwQEuyRr5xaPjD4gKVky5JJmrmTWc4cUghzZFA++m+mC4JYkaDC3YNLqqZNCHYNQ6wgMAJL1D0o9rOJNwMsOXjjLM7Cr8LgXonSigiGhOJgJ77zpGN31wyaIygy6LWCoNMDsPA9Ne7nwnoatR6Eo8SVYebo2HMrTvoOPNPS6YtK4f6VZvFPmaf7IoJTN6Qak8VvOC1r7QLOWBiwnSiXz4erczUNUN20MH4ZqJq6SN6PDI5T5MvhEVuHKc2YcisFyOA6HpBozLE1UfGXNJiRkagHJqjvlidTCGONp641jrjMYYRp5zI8mEUFM0xAQ7c/pc3TOJmlaExyIMrKLBBqUG4B3DqCtPhmibcnbHMSjdgYkZcs3plPbeVzg2oQoWqNU9CtBYYT0w4pJRveIEIaIbqF42fyNiaeckzON7GWOZIpCCgaEEqIsdzuJDaXenXZlu2k3LBVk4aBgU4zWrIcG3BkCYMEN1ODANmWku+5QN4bVKNTlYcVw1eDSbI7RCoHJKM5DswyFFP2nE+cV53cZEPmY4mpoohPSkVJ504/OHxb4bVySRb0IVTASXMkxh2OMg7M2B7PW6JNo2bwrkZcYIKdG36luXipHGZGuU5Os6jfJsMEiMURhwYbUhrUlwLwgoxCaEjKUMzBE6SmjBqB0LScykAbAqGoMSbW2yhcbrpjJDc2V3xbmCN9TFbOFitazmcrGOGAMSwkM0MjkoHCgHAW1IRGLeQtoiUjuHbS5kxDDMPMRGUJZ5HlGkOjGCRyDGKlVRNIS15+2/e7limoUmwQXYJGMJEjtfRjGDhu0hhtLtpLCDAg5LHCWUQMHdAgWAIO/p8DF+AxNrm3ZhjXc0t2+WMEx3oiRDnHJMQtU+SieI2d4BxEP1vOnd1KTBAWRXUTcWWOfLFp1Dze5HBgV1IIGbPUWiJTwKb6pqjqmGadMmpERgkRNBhSasCxYLJUqzWtaWihQoKoi0hpmWymoIRMhSh2B1tDwnk4OXEK6qVFWlKJqUxGCLmW4BVHM3GkAbInvDzMnGO+j97IUQNdrFu0DmzYzsdHSPsdMqs5sNIlbdCG/EJC7cH39OhghOUIJ3gjERMCLSnyPoZmrvLRjM8bRDRI6jJPFWTEvrKeaDAR6AZDf6drDeRS9CsDq5kh5dx4OTvEOAxH4YgdEFstRZJALRAaSWIc8UpDcKAStapSwNx+usDefPCrpYKWImbSCmDBQ5SzkSDulGi6OJsJbMYKCGPmPTwCgwUCgc+ls0CEBOwVgqhxY69mXho5Ek7DsebIT8QHGNC4BajUUFKQFLKijNauEpJo3wKIahYhYYahLMuiVHTqq9BrXpPPA/c9vsRZpdlTMFqJiQvZfgpDOgaWWg8lOYQHoIJ6BEO7FTt8kybBuz1PYyE9KBOoBPBVVXziHkB0Bv8Zi1EYV2ftOmxhscr+FPRktsDfKqirDmQpRGHcJgHWQLD6pKFO4fUHHVnSTxrkyTEuGh8nii7ggFoG+iwPVqbobeR8wmwvbBZvYpIEAiMQPkWwpT+8QLwRNIERTxZCUHALZNnBre78u7o20xhIXpk9x7vibTWwJsU9FzWoVWHANLBVBg5dsmSGJdTLQoFQFMyAmTQ0xMVd3angThz89th+BvfXhiSDSDRU5CUq+cOXSBtDILc3waVA0RXECDSawN82IMSqzTMI5faJCEUHKeDyFB14DB2sejKdRPKl8xDy8XWewiusz0CIm4YbrKIbAklgkEYxEQm0aIGrWPMlJr8GxCKEiA39/KQGBLIYAdY91wdCGcVyk4gxB5IoRgd5AWEHUj9eOZE5wNE5ghP+B2O4jJGlqFLSJaDDrkSCOBxL+Jfe7bBy81MTyygkHDrrq8tyweqsBmchUtNXP/fl7YITNeUoewktOaBoQ9IOBQ+VYHlvii8cFWgOXHoCyUM5IWJEPNwnj27cb5FcynxoKostI8DZUSByRtyVdIR5DE5gyESGjPXDAdYwdwcDzfjnPK/+/DlCdskOEYv/Oy6qzMAopBYQFCCY0jG8A4GBcIAREuy0gzyHEaeLg+kghCZRbz5qCp07Klg5D2+AWH3xflCA7j3BxzDyigiRPsh83MnlXKY3JWUBbCBTQUDQTtvMCuj+PUr3Q3zuYe+wpHykaphHUkO/1V13DBLOmQ067WChIWKDfvn5lbHLVdiMizX7gsNNdKPxMJow1Gk1GxRoc54A4odc6TExD8RiYI7SPaYQgRVJYQ3TQkmD6pzpPS9z+v3383x97vpV9f69999t50B9SUSL5J0V6tBcelZ1oM95FqmMX+kROHE3z/fcqtzBg8QxMTl2+LEnATeDFzuM7gbZNGQPloxWAMkEBZRCFSQozzMjFEiwgKBPniggbnuPfqRu7EuxZ8nB0QH5j69BLffO/DO97rLo+9MVofOoLX5hNepC1G3yfjO0Q2To6GhlnQhiUNb9t1QwSsdXcNWPAJYkuPPc3wzLtsqcoyF6mW6KyFEKNMNuJF3hQbJF6kD32ie16TIidOAp3aO0N4aqByA4Gxx1ESweMDEihn/F00buM7LPVCTShmLlpzUpBH/C+wg2W6Kfp9YXZset/si2RxlgLLPUHIDGCcjwEfh9p9CY5o/r3Hf2iVHsfYfyejfMX3nn6/9ylXPY8v3aSx+wznV/v+/TvaOzXwJooPGOeM/+ofw8Wb+M//F3JFOFCQVXbu/A'))) \ No newline at end of file diff --git a/examples/tmp/c02631week5/writeup/writeup.html b/examples/tmp/c02631week5/writeup/writeup.html new file mode 100644 index 0000000000000000000000000000000000000000..d81ace4b8563a838e174c23b501294628c389eb0 --- /dev/null +++ b/examples/tmp/c02631week5/writeup/writeup.html @@ -0,0 +1,5 @@ + + <html><body> + To hand in this assignment, upload the file <b>looping.py</b> + </body></html> + \ No newline at end of file diff --git a/src/unitgrade_private/autolab/autolab.py b/src/unitgrade_private/autolab/autolab.py index dee673b593ac0aed3234fe77d3079104c3ab564c..2de93dfce12df28dbe2d19680f07c8a415b5b732 100644 --- a/src/unitgrade_private/autolab/autolab.py +++ b/src/unitgrade_private/autolab/autolab.py @@ -73,11 +73,13 @@ def paths2report(base_path, report_file): def run_relative(file, base): relative = os.path.relpath(file, base) mod = os.path.normpath(relative)[:-3].split(os.sep) + print(mod) for pyver in ["python", "python3", "python3.9"]: - code = os.system(f"cd {base} && {pyver} -m {'.'.join(mod)}") + cmd = f"cd {base} && {pyver} -m {'.'.join(mod)}" + code = os.system(cmd) if code == 0: return code - raise Exception("Could not run the file", file, "in dir", dir) + raise Exception("Could not run the file", file, "in dir", base, "using code", cmd) def new_deploy_assignment(base_name, INSTRUCTOR_BASE, INSTRUCTOR_GRADE_FILE, STUDENT_BASE, STUDENT_GRADE_FILE = None, # Defaults to instructor grade file. @@ -89,6 +91,9 @@ def new_deploy_assignment(base_name, INSTRUCTOR_BASE, INSTRUCTOR_GRADE_FILE, STU description=None): if STUDENT_GRADE_FILE is None: STUDENT_GRADE_FILE = INSTRUCTOR_GRADE_FILE + run_relative(STUDENT_GRADE_FILE, INSTRUCTOR_BASE) # Generate token in the instructor-directory. The student directory will not work. + else: + run_relative(STUDENT_GRADE_FILE, STUDENT_BASE) """ Check we got correct paths. """ assert os.path.isfile(INSTRUCTOR_GRADE_FILE) @@ -128,7 +133,6 @@ def new_deploy_assignment(base_name, INSTRUCTOR_BASE, INSTRUCTOR_GRADE_FILE, STU ss = ", ".join([f'"{t}": {s}' for t, s in sc]) scores = '{"scores": {' + ss + '}}' - run_relative(STUDENT_GRADE_FILE, STUDENT_BASE) # ======= # problems.append(dict(name='Unitgrade score', description='Automatic score as computed using the _grade.py script', max_score=total_, optional='false')) @@ -172,7 +176,7 @@ def new_deploy_assignment(base_name, INSTRUCTOR_BASE, INSTRUCTOR_GRADE_FILE, STU 'handin_filename': handin_filename, # 'student_token_file': STUDENT_TOKEN_FILE, 'autograde_image': autograde_image_tag, - 'src_files_to_handout': ['driver_python.py', 'student_sources.zip', handin_filename, + 'src_files_to_handout': ['driver_python.py', handin_filename, # 'student_sources.zip', os.path.basename(docker_helpers.__file__), os.path.basename(INSTRUCTOR_GRADE_FILE), student_token_src_filename], # Remove tname later; it is the upload. @@ -208,7 +212,7 @@ def new_deploy_assignment(base_name, INSTRUCTOR_BASE, INSTRUCTOR_GRADE_FILE, STU # zip_base_dir = pathlib.Path(os.path.relpath(STUDENT_GRADE_FILE, STUDENT_BASE)).parent zip_base_dir = pathlib.Path(os.path.relpath(INSTRUCTOR_GRADE_FILE, INSTRUCTOR_BASE)).parent # Alternatively: Unzip the sources directory and hand it out. - shutil.make_archive(LAB_DEST + '/src/student_sources', 'zip', root_dir=STUDENT_BASE, base_dir=str(zip_base_dir)) + # shutil.make_archive(LAB_DEST + '/src/student_sources', 'zip', root_dir=STUDENT_BASE, base_dir=str(zip_base_dir)) print("We made it") shutil.copyfile(docker_helpers.__file__, f"{LAB_DEST}/src/{os.path.basename(docker_helpers.__file__)}") @@ -237,7 +241,7 @@ def new_deploy_assignment(base_name, INSTRUCTOR_BASE, INSTRUCTOR_GRADE_FILE, STU with open(LAB_DEST + "/writeup/writeup.html", 'w') as f: f.write(writeup) - shutil.make_archive(output_tar[:-4], 'tar', root_dir=COURSES_BASE, base_dir=base_name) + # shutil.make_archive(output_tar[:-4], 'tar', root_dir=COURSES_BASE, base_dir=base_name) print("Log in to autolab, go to 'install assessment', upload the tar file", output_tar) # Lets try an alternative creation procedure. if os.path.exists(f"{LAB_DEST}/{base_name}-handout"): diff --git a/src/unitgrade_private/autolab/lab_template/Makefile b/src/unitgrade_private/autolab/lab_template/Makefile index 2e2158af2ed5e96f1412a880288e75c5d7a0f1df..e2228540a42b779831c7345fc123372fc32ef7ac 100644 --- a/src/unitgrade_private/autolab/lab_template/Makefile +++ b/src/unitgrade_private/autolab/lab_template/Makefile @@ -18,8 +18,10 @@ handout: handout-tarfile: handout # Build *-handout.tar and autograde.tar - tar cvf {{ base_name }}-handout.tar {{ base_name }}-handout - cp -p {{ base_name }}-handout.tar autograde.tar + # tar cvf {{ base_name }}-handout.tar {{ base_name }}-handout + # cp -p {{ base_name }}-handout.tar autograde.tar + tar cvf autograde.tar {{ base_name }}-handout + # cp -p {{ base_name }}-handout.tar autograde.tar clean: # Clean the entire lab directory tree. Note that you can run diff --git a/src/unitgrade_private/autolab/lab_template/hello.yml b/src/unitgrade_private/autolab/lab_template/hello.yml index a2e18477b8336fb537dfa2c8a84ef839ba4d45a9..333e36393d021ba13629a68899532a4f770ad75b 100644 --- a/src/unitgrade_private/autolab/lab_template/hello.yml +++ b/src/unitgrade_private/autolab/lab_template/hello.yml @@ -3,11 +3,11 @@ general: name: {{ base_name }} description: '{{description}}' - display_name: {{ display_name }} + display_name: '{{ display_name }}' handin_filename: {{ handin_filename }} handin_directory: handin max_grace_days: 0 - handout: {{ base_name }}-handout.tar + handout: {{ base_name }}-handout.zip writeup: writeup/writeup.html max_submissions: -1 disable_handins: false