web server code is complete [5 points] code is thoroughly documented with at least one comment per functional unit. [5 points] code makes calls to: socket.socket() socket.bind() socket.listen() socket.accept() socket.recv() [5 points] code has a function called handlerequest() that handles data received from socket.recv(). [5 points] code uses variable and function names that are obvious to the casual reviewer. [25 points] porgram is correct. [5 points] program runs without errors and is able to gracefully handle situations like a kill signal (ctrl-c) or is able to be closed with pre-specified user input. errors are properly handled.