Multithreaded Weekly Distributed Depot Verify

About This Project
This project was created to perform a P4 verify against all the depots in a perforce instance on a regular basis without the burden of a long downtime.

This code does this in these steps: The following variables may need to be modified before compiling:
 * 1) Check to see if its a new week
 * 2) Read the log to determine what Depots have been Verified by this process this week
 * 3) Get a list of all the Depots
 * 4) While getting the list of depots the verified depots are filtered out
 * 5) (Multithreaded) Get the number of files and the size of each Depot
 * 6) Sort all the Depots by Size
 * 7) Distribute the unverified depots across the remaining days it is scheduled to run
 * 8) (Multithreaded) Verify the depots that have been allocated to run today
 * 9) Log the depots that were verified
 * LOG_FILE "/var/log/p4verify_log"
 * The location of the verify log file
 * ERROR_LOG "/var/log/p4verify_error_log"
 * The location of the error log file.
 * PASSWD
 * The token for the perforce account
 * PORT
 * The host:port for the perforce server
 * USERNAME
 * The username that will be used to perform the perforce commands
 * WEEKLY_START_DAY
 * The number that will be used as the first day of the week
 * WEEKLY_END_DAY
 * The number that will be used as the end of the week
 * NUM_WEEKLY_RUNS
 * The number of days the process will run
 * DAYS_TO_RUN
 * A numerical list of the days that the process will run
 * NUM_THREADS
 * Number of threads to use when getting size and verifying the depots
 * This number needs to be adjusted based on the number and speed of your processors and the speed of your storage device. If this number is too high the bandwidth to your storage device may become overloaded.