Copyright (c) Since 2000.