NOTE: This is actually the source to a slightly simplified version of the program. The JAVA source provided here is for informational purposes only. Please don't copy any of the JAVA source from this site without contacting me. Thanks!