All labs are 10 points. Start with 10, then remove points as follows for infractions, but do not go below zero. Warnings may be issued for certain approaches, but do not change the score. In each infraction below, write down the letter code of the infraction - the list of codes will go into the NOTES2 field of the grading database. I will publish the list of possible infractions to the students later. A: -10 No student name in comment at top of program. Stop grading. B: -10 Program does not run without crashing. Stop grading. Expected problems: C: -2 Student copied function bodies from DrBillsInputOutput.py directly into their code. D: -2 Student copied body of ReadFileAsOneString into their code in-line instead of as function. E: -1 Student name not written to Counts.txt F: -1 Wrong file name written to Counts.txt G: -1 Missing \n on one or more lines of Counts.txt H: -1 Variables named something specifically related to Gettysburg instead of appropriately generic names. I: -1 All 256 entries in Counts list written to file (lots of zeroes). J: -1 Wrong character counts. See note: Note: #10 = 27 means the student copied-and-pasted the Gettysburg.txt file without the very last newline instead of downloading the file properly. This will give a character count of 1465 instead of 1466. This is acceptable. K: -1 File handle not closed. L: -1 No return statement on Main. M: -1 MINOR ERRORS NOT COVERED HERE. Expected Warnings (no credit removed): X: Really bad variable names such as A, B, C. Y: Misuse of names such as Filename = ReadFileAsOneString(pickAFile()) (the result is not a file name, but instead the contents of the file). Z: Overloading file names, such as making output file name same as input file name or using the same variable for both the file name and file handle.