Tandem Repeats Finder License Terms

The author of this software grants to any individual or organization
the right to use and to make an unlimited number of copies of this
software. You may not de-compile, disassemble, reverse engineer, or
modify the software. This software cannot be sold, incorporated into
commercial software or redistributed. The author of this software
accepts no responsibility for damages resulting from the use of this
software and makes no warranty or representation, either express or
implied, including but not limited to, any implied warranty of
merchantability or fitness for a particular purpose. This software is
provided as is, and the user assumes all risks when using it.
